n8n-nodes-nowely-y-test 1.0.0 → 1.0.2
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 +276 -264
- package/dist/credentials/GreenApiAuthApi.credentials.js +19 -2
- package/dist/credentials/GreenApiAuthApi.credentials.js.map +1 -1
- package/dist/nodes/Greenapi/GreenapiTrigger.node.js +205 -42
- package/dist/nodes/Greenapi/GreenapiTrigger.node.js.map +1 -1
- package/dist/nodes/Greenapi/GreenapiV1.node.js +220 -208
- package/dist/nodes/Greenapi/GreenapiV1.node.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/apiUrl.js +3 -1
- package/dist/nodes/Greenapi/helpers/apiUrl.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/errors.d.ts +2 -0
- package/dist/nodes/Greenapi/helpers/errors.js +19 -0
- package/dist/nodes/Greenapi/helpers/errors.js.map +1 -0
- package/dist/nodes/Greenapi/helpers/executeExpanded.js +8 -7
- package/dist/nodes/Greenapi/helpers/executeExpanded.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/executeList.js +8 -7
- package/dist/nodes/Greenapi/helpers/executeList.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/executeMessages.js +8 -7
- package/dist/nodes/Greenapi/helpers/executeMessages.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/executePerItem.d.ts +1 -1
- package/dist/nodes/Greenapi/helpers/executePerItem.js +7 -16
- package/dist/nodes/Greenapi/helpers/executePerItem.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/getParams.js +5 -1
- package/dist/nodes/Greenapi/helpers/getParams.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/groupId.d.ts +2 -0
- package/dist/nodes/Greenapi/helpers/groupId.js +8 -0
- package/dist/nodes/Greenapi/helpers/groupId.js.map +1 -0
- package/dist/nodes/Greenapi/helpers/listSearch.js +23 -9
- package/dist/nodes/Greenapi/helpers/listSearch.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/optionalSendFields.js +3 -2
- package/dist/nodes/Greenapi/helpers/optionalSendFields.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/request.d.ts +1 -1
- package/dist/nodes/Greenapi/helpers/request.js +3 -24
- package/dist/nodes/Greenapi/helpers/request.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/retry.d.ts +10 -0
- package/dist/nodes/Greenapi/helpers/retry.js +30 -0
- package/dist/nodes/Greenapi/helpers/retry.js.map +1 -0
- package/dist/nodes/Greenapi/helpers/simplify.js +27 -3
- package/dist/nodes/Greenapi/helpers/simplify.js.map +1 -1
- package/dist/nodes/Greenapi/helpers/typingTime.d.ts +3 -0
- package/dist/nodes/Greenapi/helpers/typingTime.js +13 -0
- package/dist/nodes/Greenapi/helpers/typingTime.js.map +1 -0
- package/dist/nodes/Greenapi/operations/addGroupParticipant.js +4 -1
- package/dist/nodes/Greenapi/operations/addGroupParticipant.js.map +1 -1
- package/dist/nodes/Greenapi/operations/deleteMessage.js +1 -4
- package/dist/nodes/Greenapi/operations/deleteMessage.js.map +1 -1
- package/dist/nodes/Greenapi/operations/deleteStatus.js +1 -4
- package/dist/nodes/Greenapi/operations/deleteStatus.js.map +1 -1
- package/dist/nodes/Greenapi/operations/downloadFile.js +4 -3
- package/dist/nodes/Greenapi/operations/downloadFile.js.map +1 -1
- package/dist/nodes/Greenapi/operations/getAllowedReactions.js +1 -1
- package/dist/nodes/Greenapi/operations/getAllowedReactions.js.map +1 -1
- package/dist/nodes/Greenapi/operations/getContactInfo.js +1 -1
- package/dist/nodes/Greenapi/operations/getGroupData.js +4 -1
- package/dist/nodes/Greenapi/operations/getGroupData.js.map +1 -1
- package/dist/nodes/Greenapi/operations/getIncomingStatuses.js +5 -2
- package/dist/nodes/Greenapi/operations/getIncomingStatuses.js.map +1 -1
- package/dist/nodes/Greenapi/operations/getOutgoingStatuses.js +5 -2
- package/dist/nodes/Greenapi/operations/getOutgoingStatuses.js.map +1 -1
- package/dist/nodes/Greenapi/operations/getStatusStatistic.js +7 -4
- package/dist/nodes/Greenapi/operations/getStatusStatistic.js.map +1 -1
- package/dist/nodes/Greenapi/operations/lastIncomingCalls.js +1 -1
- package/dist/nodes/Greenapi/operations/lastIncomingCalls.js.map +1 -1
- package/dist/nodes/Greenapi/operations/lastIncomingMessages.js +1 -1
- package/dist/nodes/Greenapi/operations/lastIncomingMessages.js.map +1 -1
- package/dist/nodes/Greenapi/operations/lastOutgoingCalls.js +1 -1
- package/dist/nodes/Greenapi/operations/lastOutgoingCalls.js.map +1 -1
- package/dist/nodes/Greenapi/operations/lastOutgoingMessages.js +1 -1
- package/dist/nodes/Greenapi/operations/lastOutgoingMessages.js.map +1 -1
- package/dist/nodes/Greenapi/operations/leaveGroup.js +4 -1
- package/dist/nodes/Greenapi/operations/leaveGroup.js.map +1 -1
- package/dist/nodes/Greenapi/operations/removeAdmin.js +4 -1
- package/dist/nodes/Greenapi/operations/removeAdmin.js.map +1 -1
- package/dist/nodes/Greenapi/operations/removeGroupParticipant.js +4 -1
- package/dist/nodes/Greenapi/operations/removeGroupParticipant.js.map +1 -1
- package/dist/nodes/Greenapi/operations/sendInteractiveButtons.js +6 -6
- package/dist/nodes/Greenapi/operations/sendInteractiveButtons.js.map +1 -1
- package/dist/nodes/Greenapi/operations/sendMediaStatus.js +1 -1
- package/dist/nodes/Greenapi/operations/sendMediaStatus.js.map +1 -1
- package/dist/nodes/Greenapi/operations/sendTemplate.js +4 -4
- package/dist/nodes/Greenapi/operations/sendTemplate.js.map +1 -1
- package/dist/nodes/Greenapi/operations/sendTextStatus.js +2 -2
- package/dist/nodes/Greenapi/operations/sendTextStatus.js.map +1 -1
- package/dist/nodes/Greenapi/operations/sendTyping.js +9 -5
- package/dist/nodes/Greenapi/operations/sendTyping.js.map +1 -1
- package/dist/nodes/Greenapi/operations/sendVoiceStatus.js +1 -1
- package/dist/nodes/Greenapi/operations/sendVoiceStatus.js.map +1 -1
- package/dist/nodes/Greenapi/operations/setGroupAdmin.js +4 -1
- package/dist/nodes/Greenapi/operations/setGroupAdmin.js.map +1 -1
- package/dist/nodes/Greenapi/operations/updateGroupName.js +4 -1
- package/dist/nodes/Greenapi/operations/updateGroupName.js.map +1 -1
- package/dist/nodes/Greenapi/properties/account/accountOperations.js +6 -6
- package/dist/nodes/Greenapi/properties/account/accountOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/account/fields/setSettings.js +5 -8
- package/dist/nodes/Greenapi/properties/account/fields/setSettings.js.map +1 -1
- package/dist/nodes/Greenapi/properties/cloudPassword/fields/cloudPassword.js +8 -8
- package/dist/nodes/Greenapi/properties/cloudPassword/fields/cloudPassword.js.map +1 -1
- package/dist/nodes/Greenapi/properties/contacts/contactsOperations.js +10 -19
- package/dist/nodes/Greenapi/properties/contacts/contactsOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/contacts/fields/contacts.js +12 -9
- package/dist/nodes/Greenapi/properties/contacts/fields/contacts.js.map +1 -1
- package/dist/nodes/Greenapi/properties/group/fields/createGroup.js +5 -5
- package/dist/nodes/Greenapi/properties/group/fields/createGroup.js.map +1 -1
- package/dist/nodes/Greenapi/properties/group/fields/shared.js +7 -6
- package/dist/nodes/Greenapi/properties/group/fields/shared.js.map +1 -1
- package/dist/nodes/Greenapi/properties/group/fields/updateGroupName.js +2 -1
- package/dist/nodes/Greenapi/properties/group/fields/updateGroupName.js.map +1 -1
- package/dist/nodes/Greenapi/properties/group/groupOperations.js +16 -24
- package/dist/nodes/Greenapi/properties/group/groupOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/index.d.ts +0 -1
- package/dist/nodes/Greenapi/properties/index.js +3 -99
- package/dist/nodes/Greenapi/properties/index.js.map +1 -1
- package/dist/nodes/Greenapi/properties/journal/fields/getChatHistory.js +7 -21
- package/dist/nodes/Greenapi/properties/journal/fields/getChatHistory.js.map +1 -1
- package/dist/nodes/Greenapi/properties/journal/fields/getMessage.js +5 -19
- package/dist/nodes/Greenapi/properties/journal/fields/getMessage.js.map +1 -1
- package/dist/nodes/Greenapi/properties/journal/fields/lastMessages.js +6 -4
- package/dist/nodes/Greenapi/properties/journal/fields/lastMessages.js.map +1 -1
- package/dist/nodes/Greenapi/properties/journal/journalOperations.js +1 -1
- package/dist/nodes/Greenapi/properties/journal/journalOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/queue/queueOperations.js +14 -21
- package/dist/nodes/Greenapi/properties/queue/queueOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/receiving/fields/downloadFile.js +9 -21
- package/dist/nodes/Greenapi/properties/receiving/fields/downloadFile.js.map +1 -1
- package/dist/nodes/Greenapi/properties/receiving/receivingOperations.js +9 -17
- package/dist/nodes/Greenapi/properties/receiving/receivingOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/sending/fields/forwardMessages.js +2 -2
- package/dist/nodes/Greenapi/properties/sending/fields/forwardMessages.js.map +1 -1
- package/dist/nodes/Greenapi/properties/sending/fields/sendContact.js +2 -1
- package/dist/nodes/Greenapi/properties/sending/fields/sendContact.js.map +1 -1
- package/dist/nodes/Greenapi/properties/sending/fields/sendFileByUrl.js +1 -1
- package/dist/nodes/Greenapi/properties/sending/fields/sendFileByUrl.js.map +1 -1
- package/dist/nodes/Greenapi/properties/sending/fields/sendInteractiveButtons.js +22 -23
- package/dist/nodes/Greenapi/properties/sending/fields/sendInteractiveButtons.js.map +1 -1
- package/dist/nodes/Greenapi/properties/sending/fields/sendLocation.js +2 -2
- package/dist/nodes/Greenapi/properties/sending/fields/sendLocation.js.map +1 -1
- package/dist/nodes/Greenapi/properties/sending/fields/sendPoll.js +0 -1
- package/dist/nodes/Greenapi/properties/sending/fields/sendPoll.js.map +1 -1
- package/dist/nodes/Greenapi/properties/sending/fields/sendTemplate.js +2 -2
- package/dist/nodes/Greenapi/properties/sending/fields/sendTemplate.js.map +1 -1
- package/dist/nodes/Greenapi/properties/sending/fields/shared.js +8 -20
- package/dist/nodes/Greenapi/properties/sending/fields/shared.js.map +1 -1
- package/dist/nodes/Greenapi/properties/sending/sendingOperations.js +4 -4
- package/dist/nodes/Greenapi/properties/sending/sendingOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/fields/checkAccount.js +5 -4
- package/dist/nodes/Greenapi/properties/service/fields/checkAccount.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/fields/checkWhatsapp.js +4 -2
- package/dist/nodes/Greenapi/properties/service/fields/checkWhatsapp.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/fields/deleteMessage.js +2 -1
- package/dist/nodes/Greenapi/properties/service/fields/deleteMessage.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/fields/editMessage.js +3 -2
- package/dist/nodes/Greenapi/properties/service/fields/editMessage.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/fields/reactions.js +9 -7
- package/dist/nodes/Greenapi/properties/service/fields/reactions.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/fields/readChat.js +2 -1
- package/dist/nodes/Greenapi/properties/service/fields/readChat.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/fields/sendTyping.js +13 -9
- package/dist/nodes/Greenapi/properties/service/fields/sendTyping.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/fields/setDisappearingChat.js +2 -2
- package/dist/nodes/Greenapi/properties/service/fields/setDisappearingChat.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/fields/shared.js +6 -19
- package/dist/nodes/Greenapi/properties/service/fields/shared.js.map +1 -1
- package/dist/nodes/Greenapi/properties/service/serviceOperations.js +7 -7
- package/dist/nodes/Greenapi/properties/service/serviceOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/shared/buildOperations.d.ts +3 -3
- package/dist/nodes/Greenapi/properties/shared/buildOperations.js +29 -15
- package/dist/nodes/Greenapi/properties/shared/buildOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/shared/chatId.d.ts +3 -0
- package/dist/nodes/Greenapi/properties/shared/chatId.js +35 -0
- package/dist/nodes/Greenapi/properties/shared/chatId.js.map +1 -0
- package/dist/nodes/Greenapi/properties/shared/resources.d.ts +8 -0
- package/dist/nodes/Greenapi/properties/shared/resources.js +78 -0
- package/dist/nodes/Greenapi/properties/shared/resources.js.map +1 -0
- package/dist/nodes/Greenapi/properties/statuses/fields/deleteStatus.js +2 -1
- package/dist/nodes/Greenapi/properties/statuses/fields/deleteStatus.js.map +1 -1
- package/dist/nodes/Greenapi/properties/statuses/fields/getIncomingStatuses.js +6 -4
- package/dist/nodes/Greenapi/properties/statuses/fields/getIncomingStatuses.js.map +1 -1
- package/dist/nodes/Greenapi/properties/statuses/fields/getOutgoingStatuses.js +6 -4
- package/dist/nodes/Greenapi/properties/statuses/fields/getOutgoingStatuses.js.map +1 -1
- package/dist/nodes/Greenapi/properties/statuses/fields/sendMediaStatus.js +5 -6
- package/dist/nodes/Greenapi/properties/statuses/fields/sendMediaStatus.js.map +1 -1
- package/dist/nodes/Greenapi/properties/statuses/fields/sendTextStatus.js +17 -13
- package/dist/nodes/Greenapi/properties/statuses/fields/sendTextStatus.js.map +1 -1
- package/dist/nodes/Greenapi/properties/statuses/fields/sendVoiceStatus.js +9 -10
- package/dist/nodes/Greenapi/properties/statuses/fields/sendVoiceStatus.js.map +1 -1
- package/dist/nodes/Greenapi/properties/statuses/statusesOperations.js +13 -23
- package/dist/nodes/Greenapi/properties/statuses/statusesOperations.js.map +1 -1
- package/dist/nodes/Greenapi/properties/templates/fields/getTemplateById.js +2 -1
- package/dist/nodes/Greenapi/properties/templates/fields/getTemplateById.js.map +1 -1
- package/dist/nodes/Greenapi/properties/templates/templatesOperations.js +8 -18
- package/dist/nodes/Greenapi/properties/templates/templatesOperations.js.map +1 -1
- package/package.json +5 -3
- package/dist/package.json +0 -88
- package/dist/tsconfig.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -1,264 +1,276 @@
|
|
|
1
|
-
# n8n-nodes-
|
|
2
|
-
|
|
3
|
-
Integration node for [Green API](https://green-api.com/) in [n8n](https://n8n.io).
|
|
4
|
-
This community node allows automation of WhatsApp, MAX, Telegram and WABA interactions using Green API — including messaging, file transfer, contacts, groups, statuses, and instance management.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 📖 Overview
|
|
9
|
-
|
|
10
|
-
The **GREEN-API node** covers four messengers behind one credential — **WhatsApp**, **MAX**, **Telegram** and **WABA** — letting you send messages, manage chats and groups, and retrieve account information. Green API routes every messenger through the same REST contract, so the **Messenger** field only filters which categories and operations are offered.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Installation
|
|
15
|
-
### Install community node
|
|
16
|
-
Go to `Settings` → `Community Nodes` → `Install`, then enter
|
|
17
|
-
|
|
18
|
-
## Authentication
|
|
19
|
-
|
|
20
|
-
To use this node, you need to have an instance and token from [Green-API](https://green-api.com/en) platform and WhatsApp account:
|
|
21
|
-
|
|
22
|
-
- Sign up at [Green-API](https://green-api.com/en)
|
|
23
|
-
- Create an instance
|
|
24
|
-
- Get the **Instance ID** (`idInstance`) and **API Token
|
|
25
|
-
- Authorize the instance in the [Console](https://console.green-api.com/instanceList)
|
|
26
|
-
|
|
27
|
-
Enter these values in the **Green API** credential when configuring the node.
|
|
28
|
-
|
|
29
|
-
The credential also has an optional **API URL** field. Leave the default `https://api.green-api.com` unless the console shows a dedicated host for your instance (for example `https://7105.api.greenapi.com`) — in that case paste that host instead.
|
|
30
|
-
|
|
31
|
-
## 🧩 Features
|
|
32
|
-
|
|
33
|
-
Pick the messenger in the **Messenger** field, then the **
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
|
40
|
-
|
|
41
|
-
| **
|
|
42
|
-
| **
|
|
43
|
-
| **
|
|
44
|
-
| **
|
|
45
|
-
| **
|
|
46
|
-
| **
|
|
47
|
-
| **
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
|
54
|
-
|
|
55
|
-
| **
|
|
56
|
-
| **
|
|
57
|
-
| **
|
|
58
|
-
| **
|
|
59
|
-
| **
|
|
60
|
-
| **
|
|
61
|
-
| **
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
|
68
|
-
|
|
69
|
-
| **
|
|
70
|
-
| **
|
|
71
|
-
| **
|
|
72
|
-
| **
|
|
73
|
-
| **
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
|
80
|
-
|
|
81
|
-
| **
|
|
82
|
-
| **
|
|
83
|
-
| **
|
|
84
|
-
| **
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
> **
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
"
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
"
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
"
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
"
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
- **
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
"
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
1
|
+
# n8n-nodes-nowely-y-test
|
|
2
|
+
|
|
3
|
+
Integration node for [Green API](https://green-api.com/) in [n8n](https://n8n.io).
|
|
4
|
+
This community node allows automation of WhatsApp, MAX, Telegram and WABA interactions using Green API — including messaging, file transfer, contacts, groups, statuses, and instance management.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 📖 Overview
|
|
9
|
+
|
|
10
|
+
The **GREEN-API node** covers four messengers behind one credential — **WhatsApp**, **MAX**, **Telegram** and **WABA** — letting you send messages, manage chats and groups, and retrieve account information. Green API routes every messenger through the same REST contract, so the **Messenger** field only filters which categories and operations are offered.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
### Install community node
|
|
16
|
+
Go to `Settings` → `Community Nodes` → `Install`, then enter `n8n-nodes-nowely-y-test` — the npm package name this repository publishes.
|
|
17
|
+
|
|
18
|
+
## Authentication
|
|
19
|
+
|
|
20
|
+
To use this node, you need to have an instance and token from [Green-API](https://green-api.com/en) platform and WhatsApp account:
|
|
21
|
+
|
|
22
|
+
- Sign up at [Green-API](https://green-api.com/en)
|
|
23
|
+
- Create an instance
|
|
24
|
+
- Get the **Instance ID** (`idInstance`) and the **API Token Instance** (`apiTokenInstance`)
|
|
25
|
+
- Authorize the instance in the [Console](https://console.green-api.com/instanceList)
|
|
26
|
+
|
|
27
|
+
Enter these values in the **Green API** credential when configuring the node.
|
|
28
|
+
|
|
29
|
+
The credential also has an optional **API URL** field. Leave the default `https://api.green-api.com` unless the console shows a dedicated host for your instance (for example `https://7105.api.greenapi.com`) — in that case paste that host instead.
|
|
30
|
+
|
|
31
|
+
## 🧩 Features
|
|
32
|
+
|
|
33
|
+
Pick the messenger in the **Messenger** field, then the **Resource**. Only the operations Green API documents for that messenger are offered.
|
|
34
|
+
|
|
35
|
+
The tables below list `operation` values — what goes into the node's `operation` parameter. The editor shows their Title Case labels (`sendFileByUrl` is **Send File by URL**).
|
|
36
|
+
|
|
37
|
+
### WhatsApp
|
|
38
|
+
|
|
39
|
+
| Resource | Operations |
|
|
40
|
+
|---|---|
|
|
41
|
+
| **Account** | getSettings, getStateInstance, getWaSettings, logout, reboot, setSettings |
|
|
42
|
+
| **Contact** | addContact, deleteContact, editContact |
|
|
43
|
+
| **Group** | addGroupParticipant, createGroup, getGroupData, leaveGroup, removeAdmin, removeGroupParticipant, setGroupAdmin, updateGroupName |
|
|
44
|
+
| **Journal** | getChatHistory, getMessage, lastIncomingCalls, lastIncomingMessages, lastOutgoingCalls, lastOutgoingMessages |
|
|
45
|
+
| **Queue** | clearMessagesQueue, clearWebhooksQueue, getMessagesCount, getWebhooksCount, showMessagesQueue |
|
|
46
|
+
| **Receiving** | downloadFile |
|
|
47
|
+
| **Sending** | forwardMessages, sendContact, sendFileByUrl, sendInteractiveButtons, sendInteractiveButtonsReply, sendLocation, sendMessage, sendPoll |
|
|
48
|
+
| **Service** | archiveChat, checkWhatsapp, deleteMessage, editMessage, getAvatar, getContactInfo, getContacts, readChat, setDisappearingChat, unarchiveChat |
|
|
49
|
+
| **Status** | deleteStatus, getIncomingStatuses, getOutgoingStatuses, getStatusStatistic, sendMediaStatus, sendTextStatus, sendVoiceStatus |
|
|
50
|
+
|
|
51
|
+
### MAX
|
|
52
|
+
|
|
53
|
+
| Resource | Operations |
|
|
54
|
+
|---|---|
|
|
55
|
+
| **Account** | getAccountSettings, getSettings, getStateInstance, logout, reboot, setSettings |
|
|
56
|
+
| **Cloud Password** | deleteAuthorizationPassword, editAuthorizationPassword, getAuthorizationPasswordStatus, setAuthorizationPassword |
|
|
57
|
+
| **Contact** | addContact, deleteContact, editContact |
|
|
58
|
+
| **Group** | addGroupParticipant, createGroup, getGroupData, leaveGroup, removeAdmin, removeGroupParticipant, setGroupAdmin, updateGroupName |
|
|
59
|
+
| **Journal** | getChatHistory, getMessage, lastIncomingMessages, lastOutgoingMessages |
|
|
60
|
+
| **Queue** | clearMessagesQueue, clearWebhooksQueue, getMessagesCount, getWebhooksCount, showMessagesQueue |
|
|
61
|
+
| **Receiving** | downloadFile |
|
|
62
|
+
| **Sending** | forwardMessages, sendContact, sendFileByUrl, sendLocation, sendMessage, sendPoll |
|
|
63
|
+
| **Service** | checkAccount, deleteMessage, editMessage, getAllowedReactions, getAvatar, getChats, getContactInfo, getContacts, readChat, sendReaction, sendTyping |
|
|
64
|
+
|
|
65
|
+
### Telegram
|
|
66
|
+
|
|
67
|
+
| Resource | Operations |
|
|
68
|
+
|---|---|
|
|
69
|
+
| **Account** | getAccountSettings, getSettings, getStateInstance, logout, reboot, setSettings |
|
|
70
|
+
| **Group** | addGroupParticipant, createGroup, getGroupData, leaveGroup, removeAdmin, removeGroupParticipant, setGroupAdmin, updateGroupName |
|
|
71
|
+
| **Journal** | getChatHistory, getMessage, lastIncomingMessages, lastOutgoingMessages |
|
|
72
|
+
| **Queue** | clearMessagesQueue, clearWebhooksQueue, getMessagesCount, getWebhooksCount, showMessagesQueue |
|
|
73
|
+
| **Receiving** | downloadFile |
|
|
74
|
+
| **Sending** | forwardMessages, sendContact, sendFileByUrl, sendLocation, sendMessage, sendPoll |
|
|
75
|
+
| **Service** | checkAccount, deleteMessage, editMessage, getAvatar, getChats, getContactInfo, getContacts, readChat, sendTyping |
|
|
76
|
+
|
|
77
|
+
### WABA
|
|
78
|
+
|
|
79
|
+
| Resource | Operations |
|
|
80
|
+
|---|---|
|
|
81
|
+
| **Account** | getSettings, getStateInstance, getWaSettings, setSettings |
|
|
82
|
+
| **Journal** | getChatHistory, getMessage, lastIncomingMessages, lastOutgoingMessages |
|
|
83
|
+
| **Queue** | clearMessagesQueue, clearWebhooksQueue, getMessagesCount, getWebhooksCount, showMessagesQueue |
|
|
84
|
+
| **Sending** | sendFileByUrl, sendMessage, sendTemplate |
|
|
85
|
+
| **Template** | getTemplateById, getTemplates |
|
|
86
|
+
|
|
87
|
+
> **Receiving** covers `downloadFile` and is offered on WhatsApp, MAX and Telegram only — Green API documents no DownloadFile method for WABA, whose notifications already carry a `downloadUrl`. Incoming events themselves are handled by the separate **GREEN-API Trigger** node described below.
|
|
88
|
+
> **Cloud Password** manages the MAX two-factor password and is documented for MAX only.
|
|
89
|
+
> Operations whose Green API response body is documented as empty — the deletes, archive/unarchive, typing, the queue clears, logout and reboot — emit `{ "success": true }`, so a downstream IF node always has one key to branch on.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## ⚙️ Usage Examples
|
|
94
|
+
|
|
95
|
+
### 💬 Send Message
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"operation": "sendMessage",
|
|
99
|
+
"chatId": "79001234567@c.us",
|
|
100
|
+
"message": "Hello from n8n and Green API!"
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 📎 Send File by URL
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"operation": "sendFileByUrl",
|
|
108
|
+
"chatId": "79001234567@c.us",
|
|
109
|
+
"urlFile": "https://example.com/image.jpg",
|
|
110
|
+
"fileName": "photo.jpg"
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 📣 Send Text Status
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"operation": "sendTextStatus",
|
|
118
|
+
"message": "Working with Green-API and n8n!",
|
|
119
|
+
"backgroundColor": "#228B22",
|
|
120
|
+
"font": "SERIF",
|
|
121
|
+
"participants": []
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 📤 Send Interactive Buttons Reply
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"operation": "sendInteractiveButtonsReply",
|
|
129
|
+
"chatId": "79001234567@c.us",
|
|
130
|
+
"header": "",
|
|
131
|
+
"body": "Do you confirm the appointment for tomorrow?",
|
|
132
|
+
"footer": "",
|
|
133
|
+
"buttons": [
|
|
134
|
+
{
|
|
135
|
+
"buttonId": "1",
|
|
136
|
+
"buttonText": "Yes"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"buttonId": "2",
|
|
140
|
+
"buttonText": "No"
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 👥 Create Group
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"operation": "createGroup",
|
|
150
|
+
"groupName": "My Team",
|
|
151
|
+
"chatIds": ["79001234567@c.us", "79007654321@c.us"]
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 🧭 Send Location
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"operation": "sendLocation",
|
|
159
|
+
"chatId": "79001234567@c.us",
|
|
160
|
+
"latitude": 40.7128,
|
|
161
|
+
"longitude": -74.0060,
|
|
162
|
+
"nameLocation": "New York",
|
|
163
|
+
"address": "NY, USA"
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### 🔄 Check WhatsApp
|
|
168
|
+
```json
|
|
169
|
+
{
|
|
170
|
+
"operation": "checkWhatsapp",
|
|
171
|
+
"phoneNumber": 79000000000
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 🔐 Set Cloud Password (MAX)
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"operation": "setAuthorizationPassword",
|
|
179
|
+
"password": "qwerty123",
|
|
180
|
+
"hint": "The usual one"
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
> MAX refuses to set a cloud password during the first 24 hours after the account is authorized.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 🔔 Trigger Node
|
|
189
|
+
|
|
190
|
+
The package also ships a **GREEN-API Trigger** node that starts a workflow on incoming Green API webhooks.
|
|
191
|
+
|
|
192
|
+
- **Trigger On** — choose which webhook types start the workflow: *Incoming Message*, *Outgoing Message Sent From Phone*, *Outgoing Message Sent From API*. If none are selected, all message webhooks are processed.
|
|
193
|
+
- **Restrictions on Receiving** — process messages from all chats, personal chats only, or group chats only. Group chats are recognised per messenger: WhatsApp group IDs end with `@g.us`, while MAX and Telegram group IDs are negative numbers such as `-10000000000000`. WhatsApp status updates, broadcast lists and Channel posts match neither restriction and arrive only under *Receive All*.
|
|
194
|
+
- **Restrict to Chat IDs** — process webhooks only from the listed chats.
|
|
195
|
+
|
|
196
|
+
When the trigger is activated it configures the instance's webhook settings and remembers the previous settings, restoring them when the trigger is deactivated. Applying the settings on the instance side can take up to 5 minutes.
|
|
197
|
+
|
|
198
|
+
> Green API allows a single webhook URL per instance. Running two trigger workflows on the same instance is not supported — they would overwrite each other's webhook URL.
|
|
199
|
+
|
|
200
|
+
### Webhook authorization
|
|
201
|
+
|
|
202
|
+
If the instance has a **Webhook URL Token** configured, Green API sends it in an `Authorization` header, under either the `Bearer` or the `Basic` scheme. The trigger checks it and answers **HTTP 401** to a call whose token does not match, without starting the workflow. Green API removes a notification from its queue only on a `200` response and retries anything else every 60 seconds for 24 hours, so a rejected call is not lost.
|
|
203
|
+
|
|
204
|
+
The token is re-read from the instance on every activation and every n8n restart. If you rotate or clear it in the Green API console while the workflow is active, the trigger notices on the next call whose token does not match, re-reads the settings once, and then keeps accepting traffic with the new token. That re-read is throttled to at most once every 5 minutes per trigger, so a flood of calls carrying a wrong token cannot be turned into a flood of requests to Green API.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 🧪 Example Workflow
|
|
209
|
+
|
|
210
|
+
Minimal "auto-reply" workflow: on every incoming message, send a reply back to the same chat.
|
|
211
|
+
|
|
212
|
+
```json
|
|
213
|
+
{
|
|
214
|
+
"name": "Green API auto-reply",
|
|
215
|
+
"nodes": [
|
|
216
|
+
{
|
|
217
|
+
"parameters": { "webhookType": ["incomingMessageReceived"], "chatType": "noReceiveRestriction" },
|
|
218
|
+
"name": "GREEN-API Trigger",
|
|
219
|
+
"type": "n8n-nodes-nowely-y-test.greenapiTrigger",
|
|
220
|
+
"typeVersion": 1,
|
|
221
|
+
"position": [420, 300]
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"parameters": {
|
|
225
|
+
"superResource": "WhatsApp",
|
|
226
|
+
"resource": "waSending",
|
|
227
|
+
"operation": "sendMessage",
|
|
228
|
+
"chatId": { "__rl": true, "mode": "id", "value": "={{ $json.senderData.chatId }}" },
|
|
229
|
+
"message": "Thanks for your message!"
|
|
230
|
+
},
|
|
231
|
+
"name": "Send Message",
|
|
232
|
+
"type": "n8n-nodes-nowely-y-test.greenapi",
|
|
233
|
+
"typeVersion": 1,
|
|
234
|
+
"position": [680, 300]
|
|
235
|
+
}
|
|
236
|
+
],
|
|
237
|
+
"connections": {
|
|
238
|
+
"GREEN-API Trigger": { "main": [[{ "node": "Send Message", "type": "main", "index": 0 }]] }
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
> The node `type` prefix (`n8n-nodes-nowely-y-test`) must match the installed package name.
|
|
244
|
+
|
|
245
|
+
> `resource` values are messenger-specific (`waSending`, `maxSending`, `tgSending`, `wabaSending`, and so on for every resource). Building the node from the editor fills this in for you; it only matters when writing workflow JSON by hand.
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## ✅ Compatibility
|
|
250
|
+
|
|
251
|
+
- Built and tested against **n8n 2.x**: the package compiles and runs its test suite against `n8n-workflow` ^2.16.0, and n8n 2.40.5 ships `n8n-workflow` 2.40.1 — the same major.
|
|
252
|
+
- The `n8n-workflow` peer dependency is deliberately open (`*`), so npm will not block an install on a different major, but nothing here has been built or tested against the n8n 1.x line. Treat n8n 2.x as the supported target.
|
|
253
|
+
- Requires **Node.js >= 20.15** (`engines.node`). n8n 2.x asks for Node >= 24 itself, so on a real n8n 2.x host the higher floor applies.
|
|
254
|
+
- Tested against the Green API HTTP API as documented at [green-api.com/en/docs/api](https://green-api.com/en/docs/api/).
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## 🔗 Resources
|
|
259
|
+
|
|
260
|
+
- 🌐 [Green API Documentation](https://green-api.com/en/docs/)
|
|
261
|
+
- 📘 [n8n Documentation](https://docs.n8n.io)
|
|
262
|
+
- 💬 [n8n Community Forum](https://community.n8n.io)
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 👤 Author
|
|
267
|
+
|
|
268
|
+
Developed by [Green API](https://green-api.com/)
|
|
269
|
+
📧 support@green-api.com
|
|
270
|
+
🌍 https://green-api.com/en/
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## 🪪 License
|
|
275
|
+
|
|
276
|
+
[MIT License](LICENSE.md)
|
|
@@ -12,7 +12,6 @@ class GreenApiAuthApi {
|
|
|
12
12
|
displayName: 'API URL',
|
|
13
13
|
name: 'apiUrl',
|
|
14
14
|
type: 'string',
|
|
15
|
-
required: false,
|
|
16
15
|
default: 'https://api.green-api.com',
|
|
17
16
|
placeholder: 'e.g. https://7105.api.greenapi.com',
|
|
18
17
|
description: 'Base API URL of the instance, as shown in the GREEN-API console. Leave the default unless the console shows a different host for your instance.',
|
|
@@ -33,11 +32,13 @@ class GreenApiAuthApi {
|
|
|
33
32
|
password: true,
|
|
34
33
|
},
|
|
35
34
|
default: '',
|
|
35
|
+
description: 'The apiTokenInstance value shown for the instance in the GREEN-API console',
|
|
36
36
|
},
|
|
37
37
|
];
|
|
38
38
|
this.test = {
|
|
39
39
|
request: {
|
|
40
|
-
|
|
40
|
+
baseURL: '={{ ($credentials.apiUrl || "").trim().replace(/[/]+$/, "") || "https://api.green-api.com" }}',
|
|
41
|
+
url: '=/waInstance{{ $credentials.idInstance }}/getStateInstance/{{ $credentials.apiTokenKey }}',
|
|
41
42
|
method: 'GET',
|
|
42
43
|
},
|
|
43
44
|
rules: [
|
|
@@ -65,6 +66,22 @@ class GreenApiAuthApi {
|
|
|
65
66
|
message: 'Instance is blocked!',
|
|
66
67
|
},
|
|
67
68
|
},
|
|
69
|
+
{
|
|
70
|
+
type: 'responseSuccessBody',
|
|
71
|
+
properties: {
|
|
72
|
+
key: 'stateInstance',
|
|
73
|
+
value: 'sleepMode',
|
|
74
|
+
message: 'Instance is in sleep mode - the phone is switched off!',
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
type: 'responseSuccessBody',
|
|
79
|
+
properties: {
|
|
80
|
+
key: 'stateInstance',
|
|
81
|
+
value: 'suspended',
|
|
82
|
+
message: 'Instance is suspended - temporary restrictions are in effect!',
|
|
83
|
+
},
|
|
84
|
+
},
|
|
68
85
|
],
|
|
69
86
|
};
|
|
70
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GreenApiAuthApi.credentials.js","sourceRoot":"","sources":["../../credentials/GreenApiAuthApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,eAAe;IAA5B;QACC,SAAI,GAAG,iBAAiB,CAAC;QACzB,gBAAW,GAAG,WAAW,CAAC;QAC1B,SAAI,GAAG,mBAA4B,CAAC;QACpC,qBAAgB,GAAG,mCAAmC,CAAC;QACvD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,
|
|
1
|
+
{"version":3,"file":"GreenApiAuthApi.credentials.js","sourceRoot":"","sources":["../../credentials/GreenApiAuthApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,eAAe;IAA5B;QACC,SAAI,GAAG,iBAAiB,CAAC;QACzB,gBAAW,GAAG,WAAW,CAAC;QAC1B,SAAI,GAAG,mBAA4B,CAAC;QACpC,qBAAgB,GAAG,mCAAmC,CAAC;QACvD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,2BAA2B;gBACpC,WAAW,EAAE,oCAAoC;gBACjD,WAAW,EACV,iJAAiJ;aAClJ;YACD;gBACC,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,oBAAoB;gBAIjC,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,4EAA4E;aACzF;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBAYR,OAAO,EACN,+FAA+F;gBAChG,GAAG,EAAE,2FAA2F;gBAChG,MAAM,EAAE,KAAK;aACb;YACD,KAAK,EAAE;gBACN;oBACC,IAAI,EAAE,qBAAqB;oBAC3B,UAAU,EAAE;wBACX,GAAG,EAAE,eAAe;wBACpB,KAAK,EAAE,eAAe;wBACtB,OAAO,EAAE,6BAA6B;qBACtC;iBACD;gBACD;oBACC,IAAI,EAAE,qBAAqB;oBAC3B,UAAU,EAAE;wBACX,GAAG,EAAE,eAAe;wBACpB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,gCAAgC;qBACzC;iBACD;gBACD;oBACC,IAAI,EAAE,qBAAqB;oBAC3B,UAAU,EAAE;wBACX,GAAG,EAAE,eAAe;wBACpB,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,sBAAsB;qBAC/B;iBACD;gBAGD;oBACC,IAAI,EAAE,qBAAqB;oBAC3B,UAAU,EAAE;wBACX,GAAG,EAAE,eAAe;wBACpB,KAAK,EAAE,WAAW;wBAClB,OAAO,EAAE,wDAAwD;qBACjE;iBACD;gBACD;oBACC,IAAI,EAAE,qBAAqB;oBAC3B,UAAU,EAAE;wBACX,GAAG,EAAE,eAAe;wBACpB,KAAK,EAAE,WAAW;wBAClB,OAAO,EAAE,+DAA+D;qBACxE;iBACD;aACD;SACD,CAAC;IACH,CAAC;CAAA;AArGD,0CAqGC"}
|