@yuniruyuni/n8n-nodes-twitch 0.1.1

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 (139) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.ja.md +243 -0
  3. package/README.md +243 -0
  4. package/dist/credentials/TwitchApi.credentials.d.ts +10 -0
  5. package/dist/credentials/TwitchApi.credentials.js +47 -0
  6. package/dist/credentials/TwitchApi.credentials.js.map +1 -0
  7. package/dist/credentials/TwitchOAuth2Api.credentials.d.ts +10 -0
  8. package/dist/credentials/TwitchOAuth2Api.credentials.js +434 -0
  9. package/dist/credentials/TwitchOAuth2Api.credentials.js.map +1 -0
  10. package/dist/icons/twitch.dark.svg +1 -0
  11. package/dist/icons/twitch.svg +1 -0
  12. package/dist/nodes/TwitchAnnouncements/TwitchAnnouncements.node.d.ts +4 -0
  13. package/dist/nodes/TwitchAnnouncements/TwitchAnnouncements.node.js +196 -0
  14. package/dist/nodes/TwitchAnnouncements/TwitchAnnouncements.node.js.map +1 -0
  15. package/dist/nodes/TwitchAnnouncements/twitch.dark.svg +1 -0
  16. package/dist/nodes/TwitchAnnouncements/twitch.svg +1 -0
  17. package/dist/nodes/TwitchBans/TwitchBans.node.d.ts +4 -0
  18. package/dist/nodes/TwitchBans/TwitchBans.node.js +354 -0
  19. package/dist/nodes/TwitchBans/TwitchBans.node.js.map +1 -0
  20. package/dist/nodes/TwitchBans/twitch.dark.svg +1 -0
  21. package/dist/nodes/TwitchBans/twitch.svg +1 -0
  22. package/dist/nodes/TwitchBitsLeaderboard/TwitchBitsLeaderboard.node.d.ts +4 -0
  23. package/dist/nodes/TwitchBitsLeaderboard/TwitchBitsLeaderboard.node.js +202 -0
  24. package/dist/nodes/TwitchBitsLeaderboard/TwitchBitsLeaderboard.node.js.map +1 -0
  25. package/dist/nodes/TwitchBitsLeaderboard/twitch.dark.svg +1 -0
  26. package/dist/nodes/TwitchBitsLeaderboard/twitch.svg +1 -0
  27. package/dist/nodes/TwitchChannels/TwitchChannels.node.d.ts +4 -0
  28. package/dist/nodes/TwitchChannels/TwitchChannels.node.js +124 -0
  29. package/dist/nodes/TwitchChannels/TwitchChannels.node.js.map +1 -0
  30. package/dist/nodes/TwitchChannels/twitch.dark.svg +1 -0
  31. package/dist/nodes/TwitchChannels/twitch.svg +1 -0
  32. package/dist/nodes/TwitchChatMessages/TwitchChatMessages.node.d.ts +4 -0
  33. package/dist/nodes/TwitchChatMessages/TwitchChatMessages.node.js +160 -0
  34. package/dist/nodes/TwitchChatMessages/TwitchChatMessages.node.js.map +1 -0
  35. package/dist/nodes/TwitchChatMessages/twitch.dark.svg +1 -0
  36. package/dist/nodes/TwitchChatMessages/twitch.svg +1 -0
  37. package/dist/nodes/TwitchChatters/TwitchChatters.node.d.ts +4 -0
  38. package/dist/nodes/TwitchChatters/TwitchChatters.node.js +148 -0
  39. package/dist/nodes/TwitchChatters/TwitchChatters.node.js.map +1 -0
  40. package/dist/nodes/TwitchChatters/twitch.dark.svg +1 -0
  41. package/dist/nodes/TwitchChatters/twitch.svg +1 -0
  42. package/dist/nodes/TwitchCheermotes/TwitchCheermotes.node.d.ts +4 -0
  43. package/dist/nodes/TwitchCheermotes/TwitchCheermotes.node.js +113 -0
  44. package/dist/nodes/TwitchCheermotes/TwitchCheermotes.node.js.map +1 -0
  45. package/dist/nodes/TwitchCheermotes/twitch.dark.svg +1 -0
  46. package/dist/nodes/TwitchCheermotes/twitch.svg +1 -0
  47. package/dist/nodes/TwitchClips/TwitchClips.node.d.ts +4 -0
  48. package/dist/nodes/TwitchClips/TwitchClips.node.js +308 -0
  49. package/dist/nodes/TwitchClips/TwitchClips.node.js.map +1 -0
  50. package/dist/nodes/TwitchClips/twitch.dark.svg +1 -0
  51. package/dist/nodes/TwitchClips/twitch.svg +1 -0
  52. package/dist/nodes/TwitchCustomRewards/TwitchCustomRewards.node.d.ts +4 -0
  53. package/dist/nodes/TwitchCustomRewards/TwitchCustomRewards.node.js +606 -0
  54. package/dist/nodes/TwitchCustomRewards/TwitchCustomRewards.node.js.map +1 -0
  55. package/dist/nodes/TwitchCustomRewards/twitch.dark.svg +1 -0
  56. package/dist/nodes/TwitchCustomRewards/twitch.svg +1 -0
  57. package/dist/nodes/TwitchEmotes/TwitchEmotes.node.d.ts +4 -0
  58. package/dist/nodes/TwitchEmotes/TwitchEmotes.node.js +125 -0
  59. package/dist/nodes/TwitchEmotes/TwitchEmotes.node.js.map +1 -0
  60. package/dist/nodes/TwitchEmotes/twitch.dark.svg +1 -0
  61. package/dist/nodes/TwitchEmotes/twitch.svg +1 -0
  62. package/dist/nodes/TwitchGames/TwitchGames.node.d.ts +4 -0
  63. package/dist/nodes/TwitchGames/TwitchGames.node.js +260 -0
  64. package/dist/nodes/TwitchGames/TwitchGames.node.js.map +1 -0
  65. package/dist/nodes/TwitchGames/twitch.dark.svg +1 -0
  66. package/dist/nodes/TwitchGames/twitch.svg +1 -0
  67. package/dist/nodes/TwitchModerators/TwitchModerators.node.d.ts +4 -0
  68. package/dist/nodes/TwitchModerators/TwitchModerators.node.js +310 -0
  69. package/dist/nodes/TwitchModerators/TwitchModerators.node.js.map +1 -0
  70. package/dist/nodes/TwitchModerators/twitch.dark.svg +1 -0
  71. package/dist/nodes/TwitchModerators/twitch.svg +1 -0
  72. package/dist/nodes/TwitchPolls/TwitchPolls.node.d.ts +4 -0
  73. package/dist/nodes/TwitchPolls/TwitchPolls.node.js +452 -0
  74. package/dist/nodes/TwitchPolls/TwitchPolls.node.js.map +1 -0
  75. package/dist/nodes/TwitchPolls/twitch.dark.svg +1 -0
  76. package/dist/nodes/TwitchPolls/twitch.svg +1 -0
  77. package/dist/nodes/TwitchPredictions/TwitchPredictions.node.d.ts +4 -0
  78. package/dist/nodes/TwitchPredictions/TwitchPredictions.node.js +408 -0
  79. package/dist/nodes/TwitchPredictions/TwitchPredictions.node.js.map +1 -0
  80. package/dist/nodes/TwitchPredictions/twitch.dark.svg +1 -0
  81. package/dist/nodes/TwitchPredictions/twitch.svg +1 -0
  82. package/dist/nodes/TwitchRaids/TwitchRaids.node.d.ts +4 -0
  83. package/dist/nodes/TwitchRaids/TwitchRaids.node.js +192 -0
  84. package/dist/nodes/TwitchRaids/TwitchRaids.node.js.map +1 -0
  85. package/dist/nodes/TwitchRaids/twitch.dark.svg +1 -0
  86. package/dist/nodes/TwitchRaids/twitch.svg +1 -0
  87. package/dist/nodes/TwitchRedemptions/TwitchRedemptions.node.d.ts +4 -0
  88. package/dist/nodes/TwitchRedemptions/TwitchRedemptions.node.js +301 -0
  89. package/dist/nodes/TwitchRedemptions/TwitchRedemptions.node.js.map +1 -0
  90. package/dist/nodes/TwitchRedemptions/twitch.dark.svg +1 -0
  91. package/dist/nodes/TwitchRedemptions/twitch.svg +1 -0
  92. package/dist/nodes/TwitchSchedule/TwitchSchedule.node.d.ts +4 -0
  93. package/dist/nodes/TwitchSchedule/TwitchSchedule.node.js +457 -0
  94. package/dist/nodes/TwitchSchedule/TwitchSchedule.node.js.map +1 -0
  95. package/dist/nodes/TwitchSchedule/twitch.dark.svg +1 -0
  96. package/dist/nodes/TwitchSchedule/twitch.svg +1 -0
  97. package/dist/nodes/TwitchSearch/TwitchSearch.node.d.ts +4 -0
  98. package/dist/nodes/TwitchSearch/TwitchSearch.node.js +164 -0
  99. package/dist/nodes/TwitchSearch/TwitchSearch.node.js.map +1 -0
  100. package/dist/nodes/TwitchSearch/twitch.dark.svg +1 -0
  101. package/dist/nodes/TwitchSearch/twitch.svg +1 -0
  102. package/dist/nodes/TwitchStreams/TwitchStreams.node.d.ts +4 -0
  103. package/dist/nodes/TwitchStreams/TwitchStreams.node.js +124 -0
  104. package/dist/nodes/TwitchStreams/TwitchStreams.node.js.map +1 -0
  105. package/dist/nodes/TwitchStreams/twitch.dark.svg +1 -0
  106. package/dist/nodes/TwitchStreams/twitch.svg +1 -0
  107. package/dist/nodes/TwitchSubscriptions/TwitchSubscriptions.node.d.ts +4 -0
  108. package/dist/nodes/TwitchSubscriptions/TwitchSubscriptions.node.js +232 -0
  109. package/dist/nodes/TwitchSubscriptions/TwitchSubscriptions.node.js.map +1 -0
  110. package/dist/nodes/TwitchSubscriptions/twitch.dark.svg +1 -0
  111. package/dist/nodes/TwitchSubscriptions/twitch.svg +1 -0
  112. package/dist/nodes/TwitchTeams/TwitchTeams.node.d.ts +4 -0
  113. package/dist/nodes/TwitchTeams/TwitchTeams.node.js +219 -0
  114. package/dist/nodes/TwitchTeams/TwitchTeams.node.js.map +1 -0
  115. package/dist/nodes/TwitchTeams/twitch.dark.svg +1 -0
  116. package/dist/nodes/TwitchTeams/twitch.svg +1 -0
  117. package/dist/nodes/TwitchTrigger/TwitchTrigger.node.d.ts +12 -0
  118. package/dist/nodes/TwitchTrigger/TwitchTrigger.node.js +418 -0
  119. package/dist/nodes/TwitchTrigger/TwitchTrigger.node.js.map +1 -0
  120. package/dist/nodes/TwitchTrigger/twitch.dark.svg +1 -0
  121. package/dist/nodes/TwitchTrigger/twitch.svg +1 -0
  122. package/dist/nodes/TwitchUsers/TwitchUsers.node.d.ts +4 -0
  123. package/dist/nodes/TwitchUsers/TwitchUsers.node.js +124 -0
  124. package/dist/nodes/TwitchUsers/TwitchUsers.node.js.map +1 -0
  125. package/dist/nodes/TwitchUsers/twitch.dark.svg +1 -0
  126. package/dist/nodes/TwitchUsers/twitch.svg +1 -0
  127. package/dist/nodes/TwitchVideos/TwitchVideos.node.d.ts +4 -0
  128. package/dist/nodes/TwitchVideos/TwitchVideos.node.js +371 -0
  129. package/dist/nodes/TwitchVideos/TwitchVideos.node.js.map +1 -0
  130. package/dist/nodes/TwitchVideos/twitch.dark.svg +1 -0
  131. package/dist/nodes/TwitchVideos/twitch.svg +1 -0
  132. package/dist/nodes/TwitchWhispers/TwitchWhispers.node.d.ts +4 -0
  133. package/dist/nodes/TwitchWhispers/TwitchWhispers.node.js +105 -0
  134. package/dist/nodes/TwitchWhispers/TwitchWhispers.node.js.map +1 -0
  135. package/dist/nodes/TwitchWhispers/twitch.dark.svg +1 -0
  136. package/dist/nodes/TwitchWhispers/twitch.svg +1 -0
  137. package/dist/package.json +86 -0
  138. package/dist/tsconfig.tsbuildinfo +1 -0
  139. package/package.json +86 -0
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TwitchEmotes = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class TwitchEmotes {
6
+ constructor() {
7
+ this.description = {
8
+ displayName: 'Twitch Emotes',
9
+ name: 'twitchEmotes',
10
+ icon: { light: 'file:twitch.svg', dark: 'file:twitch.dark.svg' },
11
+ group: ['output'],
12
+ version: 1,
13
+ description: 'Get emotes for a Twitch channel',
14
+ defaults: {
15
+ name: 'Twitch Emotes',
16
+ },
17
+ usableAsTool: true,
18
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
19
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
20
+ credentials: [
21
+ {
22
+ name: 'twitchApi',
23
+ required: true,
24
+ displayOptions: {
25
+ show: {
26
+ authentication: ['clientCredentials'],
27
+ },
28
+ },
29
+ },
30
+ {
31
+ name: 'twitchOAuth2Api',
32
+ required: true,
33
+ displayOptions: {
34
+ show: {
35
+ authentication: ['oAuth2'],
36
+ },
37
+ },
38
+ },
39
+ ],
40
+ requestDefaults: {
41
+ baseURL: 'https://api.twitch.tv/helix',
42
+ headers: {
43
+ Accept: 'application/json',
44
+ 'Content-Type': 'application/json',
45
+ },
46
+ },
47
+ properties: [
48
+ {
49
+ displayName: 'Authentication',
50
+ name: 'authentication',
51
+ type: 'options',
52
+ options: [
53
+ {
54
+ name: 'Client Credentials',
55
+ value: 'clientCredentials',
56
+ },
57
+ {
58
+ name: 'OAuth2',
59
+ value: 'oAuth2',
60
+ },
61
+ ],
62
+ default: 'oAuth2',
63
+ },
64
+ {
65
+ displayName: 'Operation',
66
+ name: 'operation',
67
+ type: 'options',
68
+ noDataExpression: true,
69
+ options: [
70
+ {
71
+ name: 'Get Channel Emotes',
72
+ value: 'getChannelEmotes',
73
+ action: 'Get channel emotes',
74
+ description: 'Get emotes for a specific Twitch channel',
75
+ routing: {
76
+ request: {
77
+ method: 'GET',
78
+ url: '/chat/emotes',
79
+ },
80
+ send: {
81
+ preSend: [
82
+ async function (requestOptions) {
83
+ const broadcasterId = this.getNodeParameter('broadcasterId');
84
+ requestOptions.qs = {
85
+ broadcaster_id: broadcasterId,
86
+ };
87
+ return requestOptions;
88
+ },
89
+ ],
90
+ },
91
+ output: {
92
+ postReceive: [
93
+ {
94
+ type: 'rootProperty',
95
+ properties: {
96
+ property: 'data',
97
+ },
98
+ },
99
+ ],
100
+ },
101
+ },
102
+ },
103
+ ],
104
+ default: 'getChannelEmotes',
105
+ },
106
+ {
107
+ displayName: 'Broadcaster ID',
108
+ name: 'broadcasterId',
109
+ type: 'string',
110
+ displayOptions: {
111
+ show: {
112
+ operation: ['getChannelEmotes'],
113
+ },
114
+ },
115
+ default: '',
116
+ required: true,
117
+ placeholder: 'e.g. 123456789',
118
+ description: 'The broadcaster user ID whose emotes you want to get',
119
+ },
120
+ ],
121
+ };
122
+ }
123
+ }
124
+ exports.TwitchEmotes = TwitchEmotes;
125
+ //# sourceMappingURL=TwitchEmotes.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitchEmotes.node.js","sourceRoot":"","sources":["../../../nodes/TwitchEmotes/TwitchEmotes.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitch</title><path fill="#FFFFFF" d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitch</title><path d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"/></svg>
@@ -0,0 +1,4 @@
1
+ import { type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class TwitchGames implements INodeType {
3
+ description: INodeTypeDescription;
4
+ }
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TwitchGames = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class TwitchGames {
6
+ constructor() {
7
+ this.description = {
8
+ displayName: 'Twitch Games',
9
+ name: 'twitchGames',
10
+ icon: { light: 'file:twitch.svg', dark: 'file:twitch.dark.svg' },
11
+ group: ['transform'],
12
+ version: 1,
13
+ subtitle: '={{$parameter["operation"]}}',
14
+ description: 'Interact with Twitch Games API',
15
+ defaults: {
16
+ name: 'Twitch Games',
17
+ },
18
+ usableAsTool: true,
19
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
20
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
21
+ credentials: [
22
+ {
23
+ name: 'twitchApi',
24
+ required: true,
25
+ displayOptions: {
26
+ show: {
27
+ authentication: ['clientCredentials'],
28
+ },
29
+ },
30
+ },
31
+ {
32
+ name: 'twitchOAuth2Api',
33
+ required: true,
34
+ displayOptions: {
35
+ show: {
36
+ authentication: ['oAuth2'],
37
+ },
38
+ },
39
+ },
40
+ ],
41
+ requestDefaults: {
42
+ baseURL: 'https://api.twitch.tv/helix',
43
+ headers: {
44
+ Accept: 'application/json',
45
+ 'Content-Type': 'application/json',
46
+ },
47
+ },
48
+ properties: [
49
+ {
50
+ displayName: 'Authentication',
51
+ name: 'authentication',
52
+ type: 'options',
53
+ options: [
54
+ {
55
+ name: 'Client Credentials',
56
+ value: 'clientCredentials',
57
+ },
58
+ {
59
+ name: 'OAuth2',
60
+ value: 'oAuth2',
61
+ },
62
+ ],
63
+ default: 'oAuth2',
64
+ },
65
+ {
66
+ displayName: 'Operation',
67
+ name: 'operation',
68
+ type: 'options',
69
+ noDataExpression: true,
70
+ options: [
71
+ {
72
+ name: 'Get Games',
73
+ value: 'getGames',
74
+ action: 'Get games by ID or name',
75
+ description: 'Get games by ID, name, or IGDB ID',
76
+ routing: {
77
+ request: {
78
+ method: 'GET',
79
+ url: '/games',
80
+ },
81
+ send: {
82
+ preSend: [
83
+ async function (requestOptions) {
84
+ const searchBy = this.getNodeParameter('searchBy', 0);
85
+ const searchValue = this.getNodeParameter('searchValue', 0);
86
+ if (!searchValue || searchValue.trim() === '') {
87
+ throw new n8n_workflow_1.ApplicationError('Search value is required');
88
+ }
89
+ const values = searchValue.split(',').map((v) => v.trim()).filter((v) => v !== '');
90
+ if (values.length === 0) {
91
+ throw new n8n_workflow_1.ApplicationError('At least one search value is required');
92
+ }
93
+ const qs = {};
94
+ if (searchBy === 'id') {
95
+ qs.id = values;
96
+ }
97
+ else if (searchBy === 'name') {
98
+ qs.name = values;
99
+ }
100
+ else if (searchBy === 'igdb_id') {
101
+ qs.igdb_id = values;
102
+ }
103
+ requestOptions.qs = qs;
104
+ return requestOptions;
105
+ },
106
+ ],
107
+ },
108
+ output: {
109
+ postReceive: [
110
+ {
111
+ type: 'rootProperty',
112
+ properties: {
113
+ property: 'data',
114
+ },
115
+ },
116
+ ],
117
+ },
118
+ },
119
+ },
120
+ {
121
+ name: 'Get Top Games',
122
+ value: 'getTopGames',
123
+ action: 'Get top games by viewer count',
124
+ description: 'Get top games sorted by viewer count',
125
+ routing: {
126
+ request: {
127
+ method: 'GET',
128
+ url: '/games/top',
129
+ },
130
+ send: {
131
+ preSend: [
132
+ async function (requestOptions) {
133
+ const first = this.getNodeParameter('first', 0);
134
+ const after = this.getNodeParameter('after', 0);
135
+ const before = this.getNodeParameter('before', 0);
136
+ const qs = {};
137
+ if (first) {
138
+ if (first < 1 || first > 100) {
139
+ throw new n8n_workflow_1.ApplicationError('First parameter must be between 1 and 100');
140
+ }
141
+ qs.first = first;
142
+ }
143
+ if (after && after.trim() !== '') {
144
+ qs.after = after.trim();
145
+ }
146
+ if (before && before.trim() !== '') {
147
+ qs.before = before.trim();
148
+ }
149
+ requestOptions.qs = qs;
150
+ return requestOptions;
151
+ },
152
+ ],
153
+ },
154
+ output: {
155
+ postReceive: [
156
+ {
157
+ type: 'rootProperty',
158
+ properties: {
159
+ property: 'data',
160
+ },
161
+ },
162
+ ],
163
+ },
164
+ },
165
+ },
166
+ ],
167
+ default: 'getGames',
168
+ },
169
+ {
170
+ displayName: 'Search By',
171
+ name: 'searchBy',
172
+ type: 'options',
173
+ displayOptions: {
174
+ show: {
175
+ operation: ['getGames'],
176
+ },
177
+ },
178
+ options: [
179
+ {
180
+ name: 'Game ID',
181
+ value: 'id',
182
+ description: 'Search by Twitch game ID',
183
+ },
184
+ {
185
+ name: 'Game Name',
186
+ value: 'name',
187
+ description: 'Search by game name',
188
+ },
189
+ {
190
+ name: 'IGDB ID',
191
+ value: 'igdb_id',
192
+ description: 'Search by IGDB (Internet Game Database) ID',
193
+ },
194
+ ],
195
+ default: 'name',
196
+ description: 'The field to search games by',
197
+ },
198
+ {
199
+ displayName: 'Search Value',
200
+ name: 'searchValue',
201
+ type: 'string',
202
+ displayOptions: {
203
+ show: {
204
+ operation: ['getGames'],
205
+ },
206
+ },
207
+ default: '',
208
+ required: true,
209
+ placeholder: 'e.g. Fortnite or 33214,493057',
210
+ description: 'The value to search for. Supports multiple values separated by commas (max 100).',
211
+ },
212
+ {
213
+ displayName: 'First',
214
+ name: 'first',
215
+ type: 'number',
216
+ displayOptions: {
217
+ show: {
218
+ operation: ['getTopGames'],
219
+ },
220
+ },
221
+ default: 20,
222
+ typeOptions: {
223
+ minValue: 1,
224
+ maxValue: 100,
225
+ },
226
+ placeholder: 'e.g. 20',
227
+ description: 'Maximum number of games to return (1-100). Default is 20.',
228
+ },
229
+ {
230
+ displayName: 'After',
231
+ name: 'after',
232
+ type: 'string',
233
+ displayOptions: {
234
+ show: {
235
+ operation: ['getTopGames'],
236
+ },
237
+ },
238
+ default: '',
239
+ placeholder: 'e.g. eyJiIjpudWxsLCJhIjp7Ik9mZnNldCI6MjB9fQ',
240
+ description: 'Cursor for forward pagination. Get this from the pagination object in the previous response.',
241
+ },
242
+ {
243
+ displayName: 'Before',
244
+ name: 'before',
245
+ type: 'string',
246
+ displayOptions: {
247
+ show: {
248
+ operation: ['getTopGames'],
249
+ },
250
+ },
251
+ default: '',
252
+ placeholder: 'e.g. eyJiIjpudWxsLCJhIjp7Ik9mZnNldCI6MjB9fQ',
253
+ description: 'Cursor for backward pagination. Get this from the pagination object in the previous response.',
254
+ },
255
+ ],
256
+ };
257
+ }
258
+ }
259
+ exports.TwitchGames = TwitchGames;
260
+ //# sourceMappingURL=TwitchGames.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitchGames.node.js","sourceRoot":"","sources":["../../../nodes/TwitchGames/TwitchGames.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitch</title><path fill="#FFFFFF" d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitch</title><path d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"/></svg>
@@ -0,0 +1,4 @@
1
+ import { type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class TwitchModerators implements INodeType {
3
+ description: INodeTypeDescription;
4
+ }