@yuniruyuni/n8n-nodes-twitch 0.1.5 → 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.
Files changed (206) hide show
  1. package/dist/nodes/{TwitchBans/TwitchBans.node.d.ts → Twitch/Twitch.node.d.ts} +1 -1
  2. package/dist/nodes/Twitch/Twitch.node.js +147 -0
  3. package/dist/nodes/Twitch/Twitch.node.js.map +1 -0
  4. package/dist/nodes/Twitch/resources/Announcement.d.ts +3 -0
  5. package/dist/nodes/Twitch/resources/Announcement.js +116 -0
  6. package/dist/nodes/Twitch/resources/Announcement.js.map +1 -0
  7. package/dist/nodes/Twitch/resources/Ban.d.ts +3 -0
  8. package/dist/nodes/Twitch/resources/Ban.js +202 -0
  9. package/dist/nodes/Twitch/resources/Ban.js.map +1 -0
  10. package/dist/nodes/Twitch/resources/BitsLeaderboard.d.ts +3 -0
  11. package/dist/nodes/Twitch/resources/BitsLeaderboard.js +138 -0
  12. package/dist/nodes/Twitch/resources/BitsLeaderboard.js.map +1 -0
  13. package/dist/nodes/Twitch/resources/Channel.d.ts +3 -0
  14. package/dist/nodes/Twitch/resources/Channel.js +62 -0
  15. package/dist/nodes/Twitch/resources/Channel.js.map +1 -0
  16. package/dist/nodes/Twitch/resources/ChatMessage.d.ts +3 -0
  17. package/dist/nodes/Twitch/resources/ChatMessage.js +95 -0
  18. package/dist/nodes/Twitch/resources/ChatMessage.js.map +1 -0
  19. package/dist/nodes/Twitch/resources/Chatter.d.ts +3 -0
  20. package/dist/nodes/Twitch/resources/Chatter.js +61 -0
  21. package/dist/nodes/Twitch/resources/Chatter.js.map +1 -0
  22. package/dist/nodes/Twitch/resources/Cheermote.d.ts +3 -0
  23. package/dist/nodes/Twitch/resources/Cheermote.js +58 -0
  24. package/dist/nodes/Twitch/resources/Cheermote.js.map +1 -0
  25. package/dist/nodes/Twitch/resources/Clip.d.ts +3 -0
  26. package/dist/nodes/Twitch/resources/Clip.js +224 -0
  27. package/dist/nodes/Twitch/resources/Clip.js.map +1 -0
  28. package/dist/nodes/Twitch/resources/CommonFields.d.ts +2 -0
  29. package/dist/nodes/Twitch/resources/CommonFields.js +241 -0
  30. package/dist/nodes/Twitch/resources/CommonFields.js.map +1 -0
  31. package/dist/nodes/Twitch/resources/CustomReward.d.ts +3 -0
  32. package/dist/nodes/Twitch/resources/CustomReward.js +550 -0
  33. package/dist/nodes/Twitch/resources/CustomReward.js.map +1 -0
  34. package/dist/nodes/Twitch/resources/Emote.d.ts +3 -0
  35. package/dist/nodes/Twitch/resources/Emote.js +56 -0
  36. package/dist/nodes/Twitch/resources/Emote.js.map +1 -0
  37. package/dist/nodes/Twitch/resources/Game.d.ts +3 -0
  38. package/dist/nodes/Twitch/resources/Game.js +191 -0
  39. package/dist/nodes/Twitch/resources/Game.js.map +1 -0
  40. package/dist/nodes/Twitch/resources/Moderator.d.ts +3 -0
  41. package/dist/nodes/Twitch/resources/Moderator.js +175 -0
  42. package/dist/nodes/Twitch/resources/Moderator.js.map +1 -0
  43. package/dist/nodes/Twitch/resources/Poll.d.ts +3 -0
  44. package/dist/nodes/Twitch/resources/Poll.js +349 -0
  45. package/dist/nodes/Twitch/resources/Poll.js.map +1 -0
  46. package/dist/nodes/Twitch/resources/Prediction.d.ts +3 -0
  47. package/dist/nodes/Twitch/resources/Prediction.js +305 -0
  48. package/dist/nodes/Twitch/resources/Prediction.js.map +1 -0
  49. package/dist/nodes/Twitch/resources/Raid.d.ts +3 -0
  50. package/dist/nodes/Twitch/resources/Raid.js +146 -0
  51. package/dist/nodes/Twitch/resources/Raid.js.map +1 -0
  52. package/dist/nodes/Twitch/resources/Redemption.d.ts +3 -0
  53. package/dist/nodes/Twitch/resources/Redemption.js +235 -0
  54. package/dist/nodes/Twitch/resources/Redemption.js.map +1 -0
  55. package/dist/nodes/Twitch/resources/Schedule.d.ts +3 -0
  56. package/dist/nodes/Twitch/resources/Schedule.js +388 -0
  57. package/dist/nodes/Twitch/resources/Schedule.js.map +1 -0
  58. package/dist/nodes/Twitch/resources/Search.d.ts +3 -0
  59. package/dist/nodes/Twitch/resources/Search.js +97 -0
  60. package/dist/nodes/Twitch/resources/Search.js.map +1 -0
  61. package/dist/nodes/Twitch/resources/Stream.d.ts +3 -0
  62. package/dist/nodes/Twitch/resources/Stream.js +68 -0
  63. package/dist/nodes/Twitch/resources/Stream.js.map +1 -0
  64. package/dist/nodes/Twitch/resources/Subscription.d.ts +3 -0
  65. package/dist/nodes/Twitch/resources/Subscription.js +144 -0
  66. package/dist/nodes/Twitch/resources/Subscription.js.map +1 -0
  67. package/dist/nodes/Twitch/resources/Team.d.ts +3 -0
  68. package/dist/nodes/Twitch/resources/Team.js +153 -0
  69. package/dist/nodes/Twitch/resources/Team.js.map +1 -0
  70. package/dist/nodes/Twitch/resources/User.d.ts +3 -0
  71. package/dist/nodes/Twitch/resources/User.js +68 -0
  72. package/dist/nodes/Twitch/resources/User.js.map +1 -0
  73. package/dist/nodes/Twitch/resources/Video.d.ts +3 -0
  74. package/dist/nodes/Twitch/resources/Video.js +296 -0
  75. package/dist/nodes/Twitch/resources/Video.js.map +1 -0
  76. package/dist/nodes/Twitch/resources/Whisper.d.ts +3 -0
  77. package/dist/nodes/Twitch/resources/Whisper.js +78 -0
  78. package/dist/nodes/Twitch/resources/Whisper.js.map +1 -0
  79. package/dist/nodes/Twitch/shared/userIdConverter.js.map +1 -0
  80. package/dist/nodes/TwitchTrigger/TwitchTrigger.node.js +1 -1
  81. package/dist/nodes/TwitchTrigger/TwitchTrigger.node.js.map +1 -1
  82. package/dist/package.json +3 -26
  83. package/dist/tsconfig.tsbuildinfo +1 -1
  84. package/package.json +3 -26
  85. package/dist/nodes/TwitchAnnouncements/TwitchAnnouncements.node.d.ts +0 -4
  86. package/dist/nodes/TwitchAnnouncements/TwitchAnnouncements.node.js +0 -169
  87. package/dist/nodes/TwitchAnnouncements/TwitchAnnouncements.node.js.map +0 -1
  88. package/dist/nodes/TwitchBans/TwitchBans.node.js +0 -340
  89. package/dist/nodes/TwitchBans/TwitchBans.node.js.map +0 -1
  90. package/dist/nodes/TwitchBans/twitch.dark.svg +0 -1
  91. package/dist/nodes/TwitchBans/twitch.svg +0 -1
  92. package/dist/nodes/TwitchBitsLeaderboard/TwitchBitsLeaderboard.node.d.ts +0 -4
  93. package/dist/nodes/TwitchBitsLeaderboard/TwitchBitsLeaderboard.node.js +0 -174
  94. package/dist/nodes/TwitchBitsLeaderboard/TwitchBitsLeaderboard.node.js.map +0 -1
  95. package/dist/nodes/TwitchBitsLeaderboard/twitch.dark.svg +0 -1
  96. package/dist/nodes/TwitchBitsLeaderboard/twitch.svg +0 -1
  97. package/dist/nodes/TwitchChannels/TwitchChannels.node.d.ts +0 -4
  98. package/dist/nodes/TwitchChannels/TwitchChannels.node.js +0 -104
  99. package/dist/nodes/TwitchChannels/TwitchChannels.node.js.map +0 -1
  100. package/dist/nodes/TwitchChannels/twitch.dark.svg +0 -1
  101. package/dist/nodes/TwitchChannels/twitch.svg +0 -1
  102. package/dist/nodes/TwitchChatMessages/TwitchChatMessages.node.d.ts +0 -4
  103. package/dist/nodes/TwitchChatMessages/TwitchChatMessages.node.js +0 -133
  104. package/dist/nodes/TwitchChatMessages/TwitchChatMessages.node.js.map +0 -1
  105. package/dist/nodes/TwitchChatMessages/twitch.dark.svg +0 -1
  106. package/dist/nodes/TwitchChatMessages/twitch.svg +0 -1
  107. package/dist/nodes/TwitchChatters/TwitchChatters.node.d.ts +0 -4
  108. package/dist/nodes/TwitchChatters/TwitchChatters.node.js +0 -133
  109. package/dist/nodes/TwitchChatters/TwitchChatters.node.js.map +0 -1
  110. package/dist/nodes/TwitchChatters/twitch.dark.svg +0 -1
  111. package/dist/nodes/TwitchChatters/twitch.svg +0 -1
  112. package/dist/nodes/TwitchCheermotes/TwitchCheermotes.node.d.ts +0 -4
  113. package/dist/nodes/TwitchCheermotes/TwitchCheermotes.node.js +0 -99
  114. package/dist/nodes/TwitchCheermotes/TwitchCheermotes.node.js.map +0 -1
  115. package/dist/nodes/TwitchCheermotes/twitch.dark.svg +0 -1
  116. package/dist/nodes/TwitchCheermotes/twitch.svg +0 -1
  117. package/dist/nodes/TwitchClips/TwitchClips.node.d.ts +0 -4
  118. package/dist/nodes/TwitchClips/TwitchClips.node.js +0 -291
  119. package/dist/nodes/TwitchClips/TwitchClips.node.js.map +0 -1
  120. package/dist/nodes/TwitchClips/twitch.dark.svg +0 -1
  121. package/dist/nodes/TwitchClips/twitch.svg +0 -1
  122. package/dist/nodes/TwitchCustomRewards/TwitchCustomRewards.node.d.ts +0 -4
  123. package/dist/nodes/TwitchCustomRewards/TwitchCustomRewards.node.js +0 -581
  124. package/dist/nodes/TwitchCustomRewards/TwitchCustomRewards.node.js.map +0 -1
  125. package/dist/nodes/TwitchCustomRewards/twitch.dark.svg +0 -1
  126. package/dist/nodes/TwitchCustomRewards/twitch.svg +0 -1
  127. package/dist/nodes/TwitchEmotes/TwitchEmotes.node.d.ts +0 -4
  128. package/dist/nodes/TwitchEmotes/TwitchEmotes.node.js +0 -97
  129. package/dist/nodes/TwitchEmotes/TwitchEmotes.node.js.map +0 -1
  130. package/dist/nodes/TwitchEmotes/twitch.dark.svg +0 -1
  131. package/dist/nodes/TwitchEmotes/twitch.svg +0 -1
  132. package/dist/nodes/TwitchGames/TwitchGames.node.d.ts +0 -4
  133. package/dist/nodes/TwitchGames/TwitchGames.node.js +0 -230
  134. package/dist/nodes/TwitchGames/TwitchGames.node.js.map +0 -1
  135. package/dist/nodes/TwitchGames/twitch.dark.svg +0 -1
  136. package/dist/nodes/TwitchGames/twitch.svg +0 -1
  137. package/dist/nodes/TwitchModerators/TwitchModerators.node.d.ts +0 -4
  138. package/dist/nodes/TwitchModerators/TwitchModerators.node.js +0 -287
  139. package/dist/nodes/TwitchModerators/TwitchModerators.node.js.map +0 -1
  140. package/dist/nodes/TwitchModerators/twitch.dark.svg +0 -1
  141. package/dist/nodes/TwitchModerators/twitch.svg +0 -1
  142. package/dist/nodes/TwitchPolls/TwitchPolls.node.d.ts +0 -4
  143. package/dist/nodes/TwitchPolls/TwitchPolls.node.js +0 -426
  144. package/dist/nodes/TwitchPolls/TwitchPolls.node.js.map +0 -1
  145. package/dist/nodes/TwitchPolls/twitch.dark.svg +0 -1
  146. package/dist/nodes/TwitchPolls/twitch.svg +0 -1
  147. package/dist/nodes/TwitchPredictions/TwitchPredictions.node.d.ts +0 -4
  148. package/dist/nodes/TwitchPredictions/TwitchPredictions.node.js +0 -382
  149. package/dist/nodes/TwitchPredictions/TwitchPredictions.node.js.map +0 -1
  150. package/dist/nodes/TwitchPredictions/twitch.dark.svg +0 -1
  151. package/dist/nodes/TwitchPredictions/twitch.svg +0 -1
  152. package/dist/nodes/TwitchRaids/TwitchRaids.node.d.ts +0 -4
  153. package/dist/nodes/TwitchRaids/TwitchRaids.node.js +0 -183
  154. package/dist/nodes/TwitchRaids/TwitchRaids.node.js.map +0 -1
  155. package/dist/nodes/TwitchRaids/twitch.dark.svg +0 -1
  156. package/dist/nodes/TwitchRaids/twitch.svg +0 -1
  157. package/dist/nodes/TwitchRedemptions/TwitchRedemptions.node.d.ts +0 -4
  158. package/dist/nodes/TwitchRedemptions/TwitchRedemptions.node.js +0 -274
  159. package/dist/nodes/TwitchRedemptions/TwitchRedemptions.node.js.map +0 -1
  160. package/dist/nodes/TwitchRedemptions/twitch.dark.svg +0 -1
  161. package/dist/nodes/TwitchRedemptions/twitch.svg +0 -1
  162. package/dist/nodes/TwitchSchedule/TwitchSchedule.node.d.ts +0 -4
  163. package/dist/nodes/TwitchSchedule/TwitchSchedule.node.js +0 -432
  164. package/dist/nodes/TwitchSchedule/TwitchSchedule.node.js.map +0 -1
  165. package/dist/nodes/TwitchSchedule/twitch.dark.svg +0 -1
  166. package/dist/nodes/TwitchSchedule/twitch.svg +0 -1
  167. package/dist/nodes/TwitchSearch/TwitchSearch.node.d.ts +0 -4
  168. package/dist/nodes/TwitchSearch/TwitchSearch.node.js +0 -134
  169. package/dist/nodes/TwitchSearch/TwitchSearch.node.js.map +0 -1
  170. package/dist/nodes/TwitchSearch/twitch.dark.svg +0 -1
  171. package/dist/nodes/TwitchSearch/twitch.svg +0 -1
  172. package/dist/nodes/TwitchStreams/TwitchStreams.node.d.ts +0 -4
  173. package/dist/nodes/TwitchStreams/TwitchStreams.node.js +0 -94
  174. package/dist/nodes/TwitchStreams/TwitchStreams.node.js.map +0 -1
  175. package/dist/nodes/TwitchStreams/twitch.dark.svg +0 -1
  176. package/dist/nodes/TwitchStreams/twitch.svg +0 -1
  177. package/dist/nodes/TwitchSubscriptions/TwitchSubscriptions.node.d.ts +0 -4
  178. package/dist/nodes/TwitchSubscriptions/TwitchSubscriptions.node.js +0 -208
  179. package/dist/nodes/TwitchSubscriptions/TwitchSubscriptions.node.js.map +0 -1
  180. package/dist/nodes/TwitchSubscriptions/twitch.dark.svg +0 -1
  181. package/dist/nodes/TwitchSubscriptions/twitch.svg +0 -1
  182. package/dist/nodes/TwitchTeams/TwitchTeams.node.d.ts +0 -4
  183. package/dist/nodes/TwitchTeams/TwitchTeams.node.js +0 -191
  184. package/dist/nodes/TwitchTeams/TwitchTeams.node.js.map +0 -1
  185. package/dist/nodes/TwitchTeams/twitch.dark.svg +0 -1
  186. package/dist/nodes/TwitchTeams/twitch.svg +0 -1
  187. package/dist/nodes/TwitchUsers/TwitchUsers.node.d.ts +0 -4
  188. package/dist/nodes/TwitchUsers/TwitchUsers.node.js +0 -94
  189. package/dist/nodes/TwitchUsers/TwitchUsers.node.js.map +0 -1
  190. package/dist/nodes/TwitchUsers/twitch.dark.svg +0 -1
  191. package/dist/nodes/TwitchUsers/twitch.svg +0 -1
  192. package/dist/nodes/TwitchVideos/TwitchVideos.node.d.ts +0 -4
  193. package/dist/nodes/TwitchVideos/TwitchVideos.node.js +0 -343
  194. package/dist/nodes/TwitchVideos/TwitchVideos.node.js.map +0 -1
  195. package/dist/nodes/TwitchVideos/twitch.dark.svg +0 -1
  196. package/dist/nodes/TwitchVideos/twitch.svg +0 -1
  197. package/dist/nodes/TwitchWhispers/TwitchWhispers.node.d.ts +0 -4
  198. package/dist/nodes/TwitchWhispers/TwitchWhispers.node.js +0 -105
  199. package/dist/nodes/TwitchWhispers/TwitchWhispers.node.js.map +0 -1
  200. package/dist/nodes/TwitchWhispers/twitch.dark.svg +0 -1
  201. package/dist/nodes/TwitchWhispers/twitch.svg +0 -1
  202. package/dist/nodes/shared/userIdConverter.js.map +0 -1
  203. /package/dist/nodes/{shared → Twitch/shared}/userIdConverter.d.ts +0 -0
  204. /package/dist/nodes/{shared → Twitch/shared}/userIdConverter.js +0 -0
  205. /package/dist/nodes/{TwitchAnnouncements → Twitch}/twitch.dark.svg +0 -0
  206. /package/dist/nodes/{TwitchAnnouncements → Twitch}/twitch.svg +0 -0
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pollFields = exports.pollOperations = void 0;
4
+ const userIdConverter_1 = require("../shared/userIdConverter");
5
+ exports.pollOperations = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: {
12
+ show: {
13
+ resource: ['poll'],
14
+ },
15
+ },
16
+ options: [
17
+ {
18
+ name: 'Create Poll',
19
+ value: 'createPoll',
20
+ action: 'Create a poll',
21
+ description: 'Create a poll for a broadcaster',
22
+ routing: {
23
+ request: {
24
+ method: 'POST',
25
+ url: '/polls',
26
+ },
27
+ send: {
28
+ preSend: [
29
+ async function (requestOptions) {
30
+ const broadcasterIdInput = this.getNodeParameter('broadcasterId', 0);
31
+ const broadcasterId = await userIdConverter_1.resolveUserIdOrUsername.call(this, broadcasterIdInput);
32
+ const title = this.getNodeParameter('title', 0);
33
+ const choicesInput = this.getNodeParameter('choices', 0);
34
+ const duration = this.getNodeParameter('duration', 0);
35
+ let choices;
36
+ try {
37
+ choices = JSON.parse(choicesInput);
38
+ if (!Array.isArray(choices)) {
39
+ choices = [choicesInput];
40
+ }
41
+ }
42
+ catch {
43
+ choices = choicesInput.split(',').map(c => c.trim()).filter(c => c);
44
+ }
45
+ const formattedChoices = choices.map(choice => ({ title: choice }));
46
+ const body = {
47
+ broadcaster_id: broadcasterId,
48
+ title: title,
49
+ choices: formattedChoices,
50
+ duration: duration,
51
+ };
52
+ const additionalFields = this.getNodeParameter('additionalFields', 0, {});
53
+ if (additionalFields.bitsVotingEnabled !== undefined) {
54
+ body.bits_voting_enabled = additionalFields.bitsVotingEnabled;
55
+ }
56
+ if (additionalFields.bitsPerVote !== undefined) {
57
+ body.bits_per_vote = additionalFields.bitsPerVote;
58
+ }
59
+ if (additionalFields.channelPointsVotingEnabled !== undefined) {
60
+ body.channel_points_voting_enabled = additionalFields.channelPointsVotingEnabled;
61
+ }
62
+ if (additionalFields.channelPointsPerVote !== undefined) {
63
+ body.channel_points_per_vote = additionalFields.channelPointsPerVote;
64
+ }
65
+ requestOptions.body = body;
66
+ return requestOptions;
67
+ },
68
+ ],
69
+ },
70
+ output: {
71
+ postReceive: [
72
+ {
73
+ type: 'rootProperty',
74
+ properties: {
75
+ property: 'data',
76
+ },
77
+ },
78
+ {
79
+ type: 'setKeyValue',
80
+ properties: {
81
+ index: 0,
82
+ },
83
+ },
84
+ ],
85
+ },
86
+ },
87
+ },
88
+ {
89
+ name: 'Get Polls',
90
+ value: 'getPolls',
91
+ action: 'Get polls',
92
+ description: 'Get polls for a broadcaster',
93
+ routing: {
94
+ request: {
95
+ method: 'GET',
96
+ url: '/polls',
97
+ },
98
+ send: {
99
+ preSend: [
100
+ async function (requestOptions) {
101
+ const broadcasterIdInput = this.getNodeParameter('getBroadcasterId', 0);
102
+ const broadcasterId = await userIdConverter_1.resolveUserIdOrUsername.call(this, broadcasterIdInput);
103
+ const qs = {
104
+ broadcaster_id: broadcasterId,
105
+ };
106
+ const pollIds = this.getNodeParameter('pollIds', 0);
107
+ if (pollIds) {
108
+ qs.id = pollIds;
109
+ }
110
+ const first = this.getNodeParameter('first', 0);
111
+ if (first) {
112
+ qs.first = first;
113
+ }
114
+ requestOptions.qs = qs;
115
+ return requestOptions;
116
+ },
117
+ ],
118
+ },
119
+ output: {
120
+ postReceive: [
121
+ {
122
+ type: 'rootProperty',
123
+ properties: {
124
+ property: 'data',
125
+ },
126
+ },
127
+ ],
128
+ },
129
+ },
130
+ },
131
+ {
132
+ name: 'End Poll',
133
+ value: 'endPoll',
134
+ action: 'End a poll',
135
+ description: 'End an active poll',
136
+ routing: {
137
+ request: {
138
+ method: 'PATCH',
139
+ url: '/polls',
140
+ },
141
+ send: {
142
+ preSend: [
143
+ async function (requestOptions) {
144
+ const broadcasterIdInput = this.getNodeParameter('endBroadcasterId', 0);
145
+ const broadcasterId = await userIdConverter_1.resolveUserIdOrUsername.call(this, broadcasterIdInput);
146
+ const pollId = this.getNodeParameter('pollId', 0);
147
+ const status = this.getNodeParameter('status', 0);
148
+ const body = {
149
+ broadcaster_id: broadcasterId,
150
+ id: pollId,
151
+ status: status,
152
+ };
153
+ requestOptions.body = body;
154
+ return requestOptions;
155
+ },
156
+ ],
157
+ },
158
+ output: {
159
+ postReceive: [
160
+ {
161
+ type: 'rootProperty',
162
+ properties: {
163
+ property: 'data',
164
+ },
165
+ },
166
+ {
167
+ type: 'setKeyValue',
168
+ properties: {
169
+ index: 0,
170
+ },
171
+ },
172
+ ],
173
+ },
174
+ },
175
+ },
176
+ ],
177
+ default: 'getPolls',
178
+ },
179
+ ];
180
+ exports.pollFields = [
181
+ {
182
+ displayName: 'Title',
183
+ name: 'title',
184
+ type: 'string',
185
+ displayOptions: {
186
+ show: {
187
+ resource: ['poll'],
188
+ operation: ['createPoll'],
189
+ },
190
+ },
191
+ default: '',
192
+ required: true,
193
+ placeholder: 'e.g. What game should I play next?',
194
+ description: 'Question displayed for the poll. Maximum: 60 characters.',
195
+ },
196
+ {
197
+ displayName: 'Choices',
198
+ name: 'choices',
199
+ type: 'string',
200
+ displayOptions: {
201
+ show: {
202
+ resource: ['poll'],
203
+ operation: ['createPoll'],
204
+ },
205
+ },
206
+ default: '',
207
+ required: true,
208
+ placeholder: 'e.g. ["Option 1", "Option 2", "Option 3"] or Option 1, Option 2, Option 3',
209
+ description: 'Poll choices as a JSON array or comma-separated list',
210
+ },
211
+ {
212
+ displayName: 'Duration',
213
+ name: 'duration',
214
+ type: 'number',
215
+ displayOptions: {
216
+ show: {
217
+ resource: ['poll'],
218
+ operation: ['createPoll'],
219
+ },
220
+ },
221
+ default: 300,
222
+ required: true,
223
+ typeOptions: {
224
+ minValue: 15,
225
+ maxValue: 1800,
226
+ },
227
+ description: 'Total duration for the poll in seconds. Minimum: 15. Maximum: 1800.',
228
+ },
229
+ {
230
+ displayName: 'Additional Fields',
231
+ name: 'additionalFields',
232
+ type: 'collection',
233
+ placeholder: 'Add Field',
234
+ default: {},
235
+ displayOptions: {
236
+ show: {
237
+ resource: ['poll'],
238
+ operation: ['createPoll'],
239
+ },
240
+ },
241
+ options: [
242
+ {
243
+ displayName: 'Bits Voting Enabled',
244
+ name: 'bitsVotingEnabled',
245
+ type: 'boolean',
246
+ default: false,
247
+ description: 'Whether viewers can cast additional votes using Bits',
248
+ },
249
+ {
250
+ displayName: 'Bits Per Vote',
251
+ name: 'bitsPerVote',
252
+ type: 'number',
253
+ default: 0,
254
+ typeOptions: {
255
+ minValue: 0,
256
+ maxValue: 10000,
257
+ },
258
+ description: 'Number of Bits required to vote once with Bits',
259
+ },
260
+ {
261
+ displayName: 'Channel Points Voting Enabled',
262
+ name: 'channelPointsVotingEnabled',
263
+ type: 'boolean',
264
+ default: false,
265
+ description: 'Whether viewers can cast additional votes using Channel Points',
266
+ },
267
+ {
268
+ displayName: 'Channel Points Per Vote',
269
+ name: 'channelPointsPerVote',
270
+ type: 'number',
271
+ default: 0,
272
+ typeOptions: {
273
+ minValue: 0,
274
+ maxValue: 1000000,
275
+ },
276
+ description: 'Number of Channel Points required to vote once',
277
+ },
278
+ ],
279
+ },
280
+ {
281
+ displayName: 'Poll IDs',
282
+ name: 'pollIds',
283
+ type: 'string',
284
+ displayOptions: {
285
+ show: {
286
+ resource: ['poll'],
287
+ operation: ['getPolls'],
288
+ },
289
+ },
290
+ default: '',
291
+ placeholder: 'e.g. poll-ID-1 or poll-ID-1,poll-ID-2',
292
+ description: 'Filter by poll ID(s). Separate multiple IDs with commas.',
293
+ },
294
+ {
295
+ displayName: 'Poll ID',
296
+ name: 'pollId',
297
+ type: 'string',
298
+ displayOptions: {
299
+ show: {
300
+ resource: ['poll'],
301
+ operation: ['endPoll'],
302
+ },
303
+ },
304
+ default: '',
305
+ required: true,
306
+ placeholder: 'e.g. ed961efd-8a3f-4cf5-a9d0-e616c590cd2a',
307
+ description: 'The ID of the poll to end',
308
+ },
309
+ {
310
+ displayName: 'Status',
311
+ name: 'status',
312
+ type: 'options',
313
+ displayOptions: {
314
+ show: {
315
+ resource: ['poll'],
316
+ operation: ['endPoll'],
317
+ },
318
+ },
319
+ options: [
320
+ {
321
+ name: 'Terminated',
322
+ value: 'TERMINATED',
323
+ description: 'End the poll immediately',
324
+ },
325
+ {
326
+ name: 'Archived',
327
+ value: 'ARCHIVED',
328
+ description: 'Archive the poll immediately',
329
+ },
330
+ ],
331
+ default: 'TERMINATED',
332
+ required: true,
333
+ description: 'The status to set for the poll when ending it',
334
+ },
335
+ {
336
+ displayName: 'Note',
337
+ name: 'pollsNote',
338
+ type: 'notice',
339
+ default: '',
340
+ displayOptions: {
341
+ show: {
342
+ resource: ['poll'],
343
+ operation: ['createPoll', 'endPoll'],
344
+ },
345
+ },
346
+ description: 'Requires OAuth2 authentication with channel:manage:polls scope',
347
+ },
348
+ ];
349
+ //# sourceMappingURL=Poll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Poll.js","sourceRoot":"","sources":["../../../../nodes/Twitch/resources/Poll.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const predictionOperations: INodeProperties[];
3
+ export declare const predictionFields: INodeProperties[];
@@ -0,0 +1,305 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.predictionFields = exports.predictionOperations = void 0;
4
+ const userIdConverter_1 = require("../shared/userIdConverter");
5
+ exports.predictionOperations = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: {
12
+ show: {
13
+ resource: ['prediction'],
14
+ },
15
+ },
16
+ options: [
17
+ {
18
+ name: 'Create Prediction',
19
+ value: 'createPrediction',
20
+ action: 'Create a prediction',
21
+ description: 'Create a Channel Points Prediction',
22
+ routing: {
23
+ request: {
24
+ method: 'POST',
25
+ url: '/predictions',
26
+ },
27
+ send: {
28
+ preSend: [
29
+ async function (requestOptions) {
30
+ const broadcasterIdInput = this.getNodeParameter('broadcasterId', 0);
31
+ const broadcasterId = await userIdConverter_1.resolveUserIdOrUsername.call(this, broadcasterIdInput);
32
+ const title = this.getNodeParameter('title', 0);
33
+ const predictionWindow = this.getNodeParameter('predictionWindow', 0);
34
+ const outcome1Title = this.getNodeParameter('outcome1Title', 0);
35
+ const outcome2Title = this.getNodeParameter('outcome2Title', 0);
36
+ const body = {
37
+ broadcaster_id: broadcasterId,
38
+ title: title,
39
+ outcomes: [
40
+ { title: outcome1Title },
41
+ { title: outcome2Title },
42
+ ],
43
+ prediction_window: predictionWindow,
44
+ };
45
+ requestOptions.body = body;
46
+ return requestOptions;
47
+ },
48
+ ],
49
+ },
50
+ output: {
51
+ postReceive: [
52
+ {
53
+ type: 'rootProperty',
54
+ properties: {
55
+ property: 'data',
56
+ },
57
+ },
58
+ {
59
+ type: 'setKeyValue',
60
+ properties: {
61
+ index: 0,
62
+ },
63
+ },
64
+ ],
65
+ },
66
+ },
67
+ },
68
+ {
69
+ name: 'Get Predictions',
70
+ value: 'getPredictions',
71
+ action: 'Get predictions',
72
+ description: 'Get Channel Points Predictions',
73
+ routing: {
74
+ request: {
75
+ method: 'GET',
76
+ url: '/predictions',
77
+ },
78
+ send: {
79
+ preSend: [
80
+ async function (requestOptions) {
81
+ const broadcasterIdInput = this.getNodeParameter('broadcasterId', 0);
82
+ const broadcasterId = await userIdConverter_1.resolveUserIdOrUsername.call(this, broadcasterIdInput);
83
+ const qs = {
84
+ broadcaster_id: broadcasterId,
85
+ };
86
+ const predictionId = this.getNodeParameter('predictionId', '');
87
+ if (predictionId) {
88
+ qs.id = predictionId;
89
+ }
90
+ const first = this.getNodeParameter('first', '');
91
+ if (first) {
92
+ qs.first = first;
93
+ }
94
+ requestOptions.qs = qs;
95
+ return requestOptions;
96
+ },
97
+ ],
98
+ },
99
+ output: {
100
+ postReceive: [
101
+ {
102
+ type: 'rootProperty',
103
+ properties: {
104
+ property: 'data',
105
+ },
106
+ },
107
+ ],
108
+ },
109
+ },
110
+ },
111
+ {
112
+ name: 'End Prediction',
113
+ value: 'endPrediction',
114
+ action: 'End a prediction',
115
+ description: 'End a Channel Points Prediction',
116
+ routing: {
117
+ request: {
118
+ method: 'PATCH',
119
+ url: '/predictions',
120
+ },
121
+ send: {
122
+ preSend: [
123
+ async function (requestOptions) {
124
+ const broadcasterIdInput = this.getNodeParameter('broadcasterId', 0);
125
+ const broadcasterId = await userIdConverter_1.resolveUserIdOrUsername.call(this, broadcasterIdInput);
126
+ const predictionId = this.getNodeParameter('endPredictionId', 0);
127
+ const status = this.getNodeParameter('status', 0);
128
+ const body = {
129
+ broadcaster_id: broadcasterId,
130
+ id: predictionId,
131
+ status: status,
132
+ };
133
+ if (status === 'RESOLVED') {
134
+ const winningOutcomeId = this.getNodeParameter('winningOutcomeId', 0);
135
+ body.winning_outcome_id = winningOutcomeId;
136
+ }
137
+ requestOptions.body = body;
138
+ return requestOptions;
139
+ },
140
+ ],
141
+ },
142
+ output: {
143
+ postReceive: [
144
+ {
145
+ type: 'rootProperty',
146
+ properties: {
147
+ property: 'data',
148
+ },
149
+ },
150
+ {
151
+ type: 'setKeyValue',
152
+ properties: {
153
+ index: 0,
154
+ },
155
+ },
156
+ ],
157
+ },
158
+ },
159
+ },
160
+ ],
161
+ default: 'getPredictions',
162
+ },
163
+ ];
164
+ exports.predictionFields = [
165
+ {
166
+ displayName: 'Title',
167
+ name: 'title',
168
+ type: 'string',
169
+ displayOptions: {
170
+ show: {
171
+ resource: ['prediction'],
172
+ operation: ['createPrediction'],
173
+ },
174
+ },
175
+ default: '',
176
+ required: true,
177
+ placeholder: 'e.g. Will I win this match?',
178
+ description: 'The question that viewers are predicting. Maximum: 45 characters.',
179
+ },
180
+ {
181
+ displayName: 'Outcome 1 Title',
182
+ name: 'outcome1Title',
183
+ type: 'string',
184
+ displayOptions: {
185
+ show: {
186
+ resource: ['prediction'],
187
+ operation: ['createPrediction'],
188
+ },
189
+ },
190
+ default: '',
191
+ required: true,
192
+ placeholder: 'e.g. Yes',
193
+ description: 'The title for the first outcome. Maximum: 25 characters.',
194
+ },
195
+ {
196
+ displayName: 'Outcome 2 Title',
197
+ name: 'outcome2Title',
198
+ type: 'string',
199
+ displayOptions: {
200
+ show: {
201
+ resource: ['prediction'],
202
+ operation: ['createPrediction'],
203
+ },
204
+ },
205
+ default: '',
206
+ required: true,
207
+ placeholder: 'e.g. No',
208
+ description: 'The title for the second outcome. Maximum: 25 characters.',
209
+ },
210
+ {
211
+ displayName: 'Prediction Window',
212
+ name: 'predictionWindow',
213
+ type: 'number',
214
+ displayOptions: {
215
+ show: {
216
+ resource: ['prediction'],
217
+ operation: ['createPrediction'],
218
+ },
219
+ },
220
+ default: 120,
221
+ required: true,
222
+ typeOptions: {
223
+ minValue: 30,
224
+ maxValue: 1800,
225
+ },
226
+ description: 'The length of time (in seconds) that viewers have to make a prediction. Minimum: 30. Maximum: 1800.',
227
+ },
228
+ {
229
+ displayName: 'Prediction ID',
230
+ name: 'predictionId',
231
+ type: 'string',
232
+ displayOptions: {
233
+ show: {
234
+ resource: ['prediction'],
235
+ operation: ['getPredictions'],
236
+ },
237
+ },
238
+ default: '',
239
+ placeholder: 'e.g. abc123-def456-ghi789',
240
+ description: 'The ID of the prediction to get. If not specified, returns all predictions for the broadcaster.',
241
+ },
242
+ {
243
+ displayName: 'Prediction ID',
244
+ name: 'endPredictionId',
245
+ type: 'string',
246
+ displayOptions: {
247
+ show: {
248
+ resource: ['prediction'],
249
+ operation: ['endPrediction'],
250
+ },
251
+ },
252
+ default: '',
253
+ required: true,
254
+ placeholder: 'e.g. abc123-def456-ghi789',
255
+ description: 'The ID of the prediction to end',
256
+ },
257
+ {
258
+ displayName: 'Status',
259
+ name: 'status',
260
+ type: 'options',
261
+ displayOptions: {
262
+ show: {
263
+ resource: ['prediction'],
264
+ operation: ['endPrediction'],
265
+ },
266
+ },
267
+ options: [
268
+ {
269
+ name: 'RESOLVED',
270
+ value: 'RESOLVED',
271
+ description: 'The winning outcome is determined and points are distributed',
272
+ },
273
+ {
274
+ name: 'CANCELED',
275
+ value: 'CANCELED',
276
+ description: 'The prediction is canceled and points are refunded',
277
+ },
278
+ {
279
+ name: 'LOCKED',
280
+ value: 'LOCKED',
281
+ description: 'The prediction is locked and viewers can no longer make predictions',
282
+ },
283
+ ],
284
+ default: 'RESOLVED',
285
+ required: true,
286
+ description: 'The status to set the prediction to',
287
+ },
288
+ {
289
+ displayName: 'Winning Outcome ID',
290
+ name: 'winningOutcomeId',
291
+ type: 'string',
292
+ displayOptions: {
293
+ show: {
294
+ resource: ['prediction'],
295
+ operation: ['endPrediction'],
296
+ status: ['RESOLVED'],
297
+ },
298
+ },
299
+ default: '',
300
+ required: true,
301
+ placeholder: 'e.g. outcome123',
302
+ description: 'The ID of the winning outcome (required when status is RESOLVED)',
303
+ },
304
+ ];
305
+ //# sourceMappingURL=Prediction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Prediction.js","sourceRoot":"","sources":["../../../../nodes/Twitch/resources/Prediction.ts"],"names":[],"mappings":"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"}