@saraivadev/n8n-nodes-uazapi 0.1.0
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/LICENSE.md +19 -0
- package/README.md +130 -0
- package/dist/credentials/UazapiApi.credentials.d.ts +10 -0
- package/dist/credentials/UazapiApi.credentials.js +56 -0
- package/dist/credentials/UazapiApi.credentials.js.map +1 -0
- package/dist/icons/uazapi.svg +4 -0
- package/dist/nodes/Uazapi/Uazapi.node.d.ts +4 -0
- package/dist/nodes/Uazapi/Uazapi.node.js +85 -0
- package/dist/nodes/Uazapi/Uazapi.node.js.map +1 -0
- package/dist/nodes/Uazapi/Uazapi.node.json +18 -0
- package/dist/nodes/Uazapi/descriptions/AdminDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/AdminDescription.js +206 -0
- package/dist/nodes/Uazapi/descriptions/AdminDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/BusinessDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/BusinessDescription.js +274 -0
- package/dist/nodes/Uazapi/descriptions/BusinessDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/ChatDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/ChatDescription.js +776 -0
- package/dist/nodes/Uazapi/descriptions/ChatDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/ChatbotDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/ChatbotDescription.js +546 -0
- package/dist/nodes/Uazapi/descriptions/ChatbotDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/ContactDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/ContactDescription.js +198 -0
- package/dist/nodes/Uazapi/descriptions/ContactDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/CrmDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/CrmDescription.js +499 -0
- package/dist/nodes/Uazapi/descriptions/CrmDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/GroupDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/GroupDescription.js +705 -0
- package/dist/nodes/Uazapi/descriptions/GroupDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/InstanceDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/InstanceDescription.js +396 -0
- package/dist/nodes/Uazapi/descriptions/InstanceDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/LabelDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/LabelDescription.js +120 -0
- package/dist/nodes/Uazapi/descriptions/LabelDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/MessageDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/MessageDescription.js +1034 -0
- package/dist/nodes/Uazapi/descriptions/MessageDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/ProfileDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/ProfileDescription.js +84 -0
- package/dist/nodes/Uazapi/descriptions/ProfileDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/SenderDescription.d.ts +2 -0
- package/dist/nodes/Uazapi/descriptions/SenderDescription.js +627 -0
- package/dist/nodes/Uazapi/descriptions/SenderDescription.js.map +1 -0
- package/dist/nodes/Uazapi/descriptions/shared.d.ts +5 -0
- package/dist/nodes/Uazapi/descriptions/shared.js +95 -0
- package/dist/nodes/Uazapi/descriptions/shared.js.map +1 -0
- package/dist/nodes/UazapiTrigger/UazapiTrigger.node.d.ts +13 -0
- package/dist/nodes/UazapiTrigger/UazapiTrigger.node.js +362 -0
- package/dist/nodes/UazapiTrigger/UazapiTrigger.node.js.map +1 -0
- package/dist/nodes/UazapiTrigger/UazapiTrigger.node.json +18 -0
- package/dist/package.json +50 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +49 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright 2022 n8n
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
+
the Software without restriction, including without limitation the rights to
|
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
+
so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# n8n-nodes-uazapi
|
|
2
|
+
|
|
3
|
+
Community nodes for n8n that integrate the [uazapiGO V2](https://docs.uazapi.com/) WhatsApp API.
|
|
4
|
+
|
|
5
|
+
This package ships **two nodes**:
|
|
6
|
+
|
|
7
|
+
- **Uazapi** — action node (declarative) covering all 12 uazapi resources: instance, message, chat, contact, group, label, profile, business, sender, CRM, chatbot, admin.
|
|
8
|
+
- **Uazapi Trigger** — trigger node with two modes: **Webhook** (auto-registers the webhook on your uazapi instance) and **SSE** (long-lived event stream).
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
### As a community node (n8n ≥ 1.0)
|
|
13
|
+
|
|
14
|
+
1. In n8n, open **Settings → Community Nodes → Install**.
|
|
15
|
+
2. Enter `n8n-nodes-uazapi` and confirm.
|
|
16
|
+
3. Restart n8n if prompted.
|
|
17
|
+
|
|
18
|
+
### Local development / self-hosted
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
cd /path/to/n8n-nodes-uazapi
|
|
22
|
+
npm install
|
|
23
|
+
npm run build
|
|
24
|
+
npm pack
|
|
25
|
+
# In your n8n custom folder (default ~/.n8n/custom):
|
|
26
|
+
cd ~/.n8n/custom
|
|
27
|
+
npm init -y # if needed
|
|
28
|
+
npm install /absolute/path/to/n8n-nodes-uazapi-X.Y.Z.tgz
|
|
29
|
+
# Restart n8n
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Or use the bundled dev workflow:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm install
|
|
36
|
+
npm run dev # starts n8n with this package loaded + hot reload
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Credentials
|
|
40
|
+
|
|
41
|
+
Create a **uazapi API** credential with:
|
|
42
|
+
|
|
43
|
+
| Field | Required | Description |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| Base URL | yes | `https://saraivaai.uazapi.com` (no trailing slash) |
|
|
46
|
+
| Instance Token | yes | Sent in the `token` header. Used for all per-instance operations. |
|
|
47
|
+
| Admin Token | only for Admin resource | Sent in the `admintoken` header. The Admin resource overrides the default header. |
|
|
48
|
+
|
|
49
|
+
The "Test" button hits `GET /instance/status`.
|
|
50
|
+
|
|
51
|
+
## Uazapi (action) — usage by resource
|
|
52
|
+
|
|
53
|
+
### Instance
|
|
54
|
+
Connect / disconnect / status / update name / delete / privacy (get & set) / presence / proxy (get, set, delete).
|
|
55
|
+
|
|
56
|
+
### Message (most-used)
|
|
57
|
+
Send: text, media (image/video/document/audio/myaudio/ptt/ptv/sticker), contact, location, menu (button/list/poll/carousel), carousel, location-request, payment-request, pix-button, status, presence-in-chat.
|
|
58
|
+
Manage: react, edit, delete, mark-as-read, find, download (with optional transcription).
|
|
59
|
+
|
|
60
|
+
All `send/*` operations expose an **Additional Fields** collection with `delay`, `readchat`, `readmessages`, `replyid`, `mentions` (array → CSV), `forward`, `track_source`, `track_id`, `async`.
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
Resource: Message
|
|
64
|
+
Operation: Send Text
|
|
65
|
+
Number: 5511999999999
|
|
66
|
+
Text: Olá!
|
|
67
|
+
Additional Fields → Delay (Ms): 1500
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Chat
|
|
71
|
+
find / details / archive / read / mute / pin / delete / block / list-blocked / check-on-whatsapp / manage-labels.
|
|
72
|
+
|
|
73
|
+
### Contact
|
|
74
|
+
listAll (`GET /contacts`) / listPaginated (`POST /contacts/list`) / add / remove.
|
|
75
|
+
|
|
76
|
+
### Group
|
|
77
|
+
create / info / inviteInfo / join / leave / list / resetInviteCode / updateAnnounce / updateDescription / updateImage / updateLocked / updateName / manageParticipants (add/remove/promote/demote/approve/reject).
|
|
78
|
+
|
|
79
|
+
### Label
|
|
80
|
+
list / edit (create, rename, recolor, or delete a label).
|
|
81
|
+
|
|
82
|
+
### Profile
|
|
83
|
+
updateName / updateImage.
|
|
84
|
+
|
|
85
|
+
### Business
|
|
86
|
+
getProfile / getCategories / updateProfile / listCatalog / getProduct / deleteProduct / showProduct / hideProduct.
|
|
87
|
+
|
|
88
|
+
### Sender (mass send)
|
|
89
|
+
simple / advanced / control (stop|continue|delete folder) / clearDone / clearAll / listFolders / listMessages.
|
|
90
|
+
|
|
91
|
+
### CRM
|
|
92
|
+
updateFieldsMap (custom field mapping) / editLead (per-chat lead fields including status, value, tags, lead_field01..N).
|
|
93
|
+
|
|
94
|
+
### Chatbot
|
|
95
|
+
updateSettings + CRUD for trigger / agent / knowledge / function / quickReply.
|
|
96
|
+
|
|
97
|
+
### Admin (needs Admin Token)
|
|
98
|
+
createInstance / listInstances / updateInstance / getGlobalWebhook / setGlobalWebhook.
|
|
99
|
+
All Admin operations automatically swap the `token` header for `admintoken`.
|
|
100
|
+
|
|
101
|
+
## Uazapi Trigger
|
|
102
|
+
|
|
103
|
+
### Webhook mode (recommended)
|
|
104
|
+
|
|
105
|
+
1. Add the trigger to a workflow.
|
|
106
|
+
2. Pick **Mode = Webhook**, choose event types.
|
|
107
|
+
3. Activate the workflow — the trigger registers the webhook on your uazapi instance pointing at the n8n production webhook URL.
|
|
108
|
+
4. On workflow deactivation the webhook is removed.
|
|
109
|
+
|
|
110
|
+
`Exclude Messages` defaults to `['wasSentByApi']` to prevent the workflow from re-triggering on its own outbound messages.
|
|
111
|
+
|
|
112
|
+
### SSE mode
|
|
113
|
+
|
|
114
|
+
1. Pick **Mode = SSE**, choose event types.
|
|
115
|
+
2. The trigger opens a long-lived HTTP stream against `${baseUrl}/sse?token=…&events=…` and emits each event.
|
|
116
|
+
3. Reconnects with exponential backoff (5s → 60s).
|
|
117
|
+
|
|
118
|
+
## Scripts
|
|
119
|
+
|
|
120
|
+
| Script | Purpose |
|
|
121
|
+
|---|---|
|
|
122
|
+
| `npm run dev` | n8n with hot reload |
|
|
123
|
+
| `npm run build` | TypeScript build into `dist/` |
|
|
124
|
+
| `npm run lint` | n8n-nodes-base lint |
|
|
125
|
+
| `npm run lint:fix` | Auto-fix lint issues |
|
|
126
|
+
| `npm run release` | Tag + publish workflow |
|
|
127
|
+
|
|
128
|
+
## License
|
|
129
|
+
|
|
130
|
+
[MIT](LICENSE.md)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class UazapiApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
icon: "file:../icons/uazapi.svg";
|
|
6
|
+
documentationUrl: string;
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
authenticate: IAuthenticateGeneric;
|
|
9
|
+
test: ICredentialTestRequest;
|
|
10
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UazapiApi = void 0;
|
|
4
|
+
class UazapiApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'uazapiApi';
|
|
7
|
+
this.displayName = 'Uazapi API';
|
|
8
|
+
this.icon = 'file:../icons/uazapi.svg';
|
|
9
|
+
this.documentationUrl = 'https://docs.uazapi.com/';
|
|
10
|
+
this.properties = [
|
|
11
|
+
{
|
|
12
|
+
displayName: 'Base URL',
|
|
13
|
+
name: 'baseUrl',
|
|
14
|
+
type: 'string',
|
|
15
|
+
default: 'https://saraivaai.uazapi.com',
|
|
16
|
+
placeholder: 'https://saraivaai.uazapi.com',
|
|
17
|
+
description: 'Base URL of your uazapi server (without trailing slash)',
|
|
18
|
+
required: true,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
displayName: 'Instance Token',
|
|
22
|
+
name: 'token',
|
|
23
|
+
type: 'string',
|
|
24
|
+
typeOptions: { password: true },
|
|
25
|
+
default: '',
|
|
26
|
+
description: 'Per-instance token sent in the "token" header',
|
|
27
|
+
required: true,
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
displayName: 'Admin Token',
|
|
31
|
+
name: 'adminToken',
|
|
32
|
+
type: 'string',
|
|
33
|
+
typeOptions: { password: true },
|
|
34
|
+
default: '',
|
|
35
|
+
description: 'Admin token sent in the "admintoken" header. Only required for the Admin resource.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
this.authenticate = {
|
|
39
|
+
type: 'generic',
|
|
40
|
+
properties: {
|
|
41
|
+
headers: {
|
|
42
|
+
token: '={{$credentials.token}}',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
this.test = {
|
|
47
|
+
request: {
|
|
48
|
+
baseURL: '={{$credentials.baseUrl}}',
|
|
49
|
+
url: '/instance/status',
|
|
50
|
+
method: 'GET',
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.UazapiApi = UazapiApi;
|
|
56
|
+
//# sourceMappingURL=UazapiApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UazapiApi.credentials.js","sourceRoot":"","sources":["../../credentials/UazapiApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,SAAS;IAAtB;QACC,SAAI,GAAG,WAAW,CAAC;QAEnB,gBAAW,GAAG,YAAY,CAAC;QAE3B,SAAI,GAAG,0BAAmC,CAAC;QAE3C,qBAAgB,GAAG,0BAA0B,CAAC;QAE9C,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,8BAA8B;gBACvC,WAAW,EAAE,8BAA8B;gBAC3C,WAAW,EAAE,yDAAyD;gBACtE,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,+CAA+C;gBAC5D,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,WAAW,EACV,oFAAoF;aACrF;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,KAAK,EAAE,yBAAyB;iBAChC;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,kBAAkB;gBACvB,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AAvDD,8BAuDC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 60 60">
|
|
2
|
+
<rect width="60" height="60" rx="10" fill="#25D366"/>
|
|
3
|
+
<text x="30" y="38" font-family="Arial, Helvetica, sans-serif" font-size="24" font-weight="bold" fill="#FFFFFF" text-anchor="middle">UZ</text>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Uazapi = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const InstanceDescription_1 = require("./descriptions/InstanceDescription");
|
|
6
|
+
const MessageDescription_1 = require("./descriptions/MessageDescription");
|
|
7
|
+
const ChatDescription_1 = require("./descriptions/ChatDescription");
|
|
8
|
+
const ContactDescription_1 = require("./descriptions/ContactDescription");
|
|
9
|
+
const GroupDescription_1 = require("./descriptions/GroupDescription");
|
|
10
|
+
const LabelDescription_1 = require("./descriptions/LabelDescription");
|
|
11
|
+
const ProfileDescription_1 = require("./descriptions/ProfileDescription");
|
|
12
|
+
const BusinessDescription_1 = require("./descriptions/BusinessDescription");
|
|
13
|
+
const SenderDescription_1 = require("./descriptions/SenderDescription");
|
|
14
|
+
const CrmDescription_1 = require("./descriptions/CrmDescription");
|
|
15
|
+
const ChatbotDescription_1 = require("./descriptions/ChatbotDescription");
|
|
16
|
+
const AdminDescription_1 = require("./descriptions/AdminDescription");
|
|
17
|
+
class Uazapi {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.description = {
|
|
20
|
+
displayName: 'Uazapi',
|
|
21
|
+
name: 'uazapi',
|
|
22
|
+
icon: 'file:../../icons/uazapi.svg',
|
|
23
|
+
group: ['transform'],
|
|
24
|
+
version: 1,
|
|
25
|
+
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
|
|
26
|
+
description: 'Interact with the uazapi WhatsApp API',
|
|
27
|
+
defaults: {
|
|
28
|
+
name: 'Uazapi',
|
|
29
|
+
},
|
|
30
|
+
usableAsTool: true,
|
|
31
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
32
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
33
|
+
credentials: [
|
|
34
|
+
{
|
|
35
|
+
name: 'uazapiApi',
|
|
36
|
+
required: true,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
requestDefaults: {
|
|
40
|
+
baseURL: '={{$credentials.baseUrl}}',
|
|
41
|
+
headers: {
|
|
42
|
+
'Content-Type': 'application/json',
|
|
43
|
+
Accept: 'application/json',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
properties: [
|
|
47
|
+
{
|
|
48
|
+
displayName: 'Resource',
|
|
49
|
+
name: 'resource',
|
|
50
|
+
type: 'options',
|
|
51
|
+
noDataExpression: true,
|
|
52
|
+
options: [
|
|
53
|
+
{ name: 'Admin', value: 'admin' },
|
|
54
|
+
{ name: 'Business', value: 'business' },
|
|
55
|
+
{ name: 'Chat', value: 'chat' },
|
|
56
|
+
{ name: 'Chatbot', value: 'chatbot' },
|
|
57
|
+
{ name: 'Contact', value: 'contact' },
|
|
58
|
+
{ name: 'CRM', value: 'crm' },
|
|
59
|
+
{ name: 'Group', value: 'group' },
|
|
60
|
+
{ name: 'Instance', value: 'instance' },
|
|
61
|
+
{ name: 'Label', value: 'label' },
|
|
62
|
+
{ name: 'Message', value: 'message' },
|
|
63
|
+
{ name: 'Profile', value: 'profile' },
|
|
64
|
+
{ name: 'Sender', value: 'sender' },
|
|
65
|
+
],
|
|
66
|
+
default: 'message',
|
|
67
|
+
},
|
|
68
|
+
...InstanceDescription_1.instanceDescription,
|
|
69
|
+
...MessageDescription_1.messageDescription,
|
|
70
|
+
...ChatDescription_1.chatDescription,
|
|
71
|
+
...ContactDescription_1.contactDescription,
|
|
72
|
+
...GroupDescription_1.groupDescription,
|
|
73
|
+
...LabelDescription_1.labelDescription,
|
|
74
|
+
...ProfileDescription_1.profileDescription,
|
|
75
|
+
...BusinessDescription_1.businessDescription,
|
|
76
|
+
...SenderDescription_1.senderDescription,
|
|
77
|
+
...CrmDescription_1.crmDescription,
|
|
78
|
+
...ChatbotDescription_1.chatbotDescription,
|
|
79
|
+
...AdminDescription_1.adminDescription,
|
|
80
|
+
],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.Uazapi = Uazapi;
|
|
85
|
+
//# sourceMappingURL=Uazapi.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Uazapi.node.js","sourceRoot":"","sources":["../../../nodes/Uazapi/Uazapi.node.ts"],"names":[],"mappings":";;;AAAA,+CAIsB;AAEtB,4EAAyE;AACzE,0EAAuE;AACvE,oEAAiE;AACjE,0EAAuE;AACvE,sEAAmE;AACnE,sEAAmE;AACnE,0EAAuE;AACvE,4EAAyE;AACzE,wEAAqE;AACrE,kEAA+D;AAC/D,0EAAuE;AACvE,sEAAmE;AAEnE,MAAa,MAAM;IAAnB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,QAAQ;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE;gBACT,IAAI,EAAE,QAAQ;aACd;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,2BAA2B;gBACpC,OAAO,EAAE;oBACR,cAAc,EAAE,kBAAkB;oBAClC,MAAM,EAAE,kBAAkB;iBAC1B;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;wBACjC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;wBACvC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;wBACrC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;wBACrC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;wBAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;wBACjC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;wBACvC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;wBACjC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;wBACrC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;wBACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;qBACnC;oBACD,OAAO,EAAE,SAAS;iBAClB;gBACD,GAAG,yCAAmB;gBACtB,GAAG,uCAAkB;gBACrB,GAAG,iCAAe;gBAClB,GAAG,uCAAkB;gBACrB,GAAG,mCAAgB;gBACnB,GAAG,mCAAgB;gBACnB,GAAG,uCAAkB;gBACrB,GAAG,yCAAmB;gBACtB,GAAG,qCAAiB;gBACpB,GAAG,+BAAc;gBACjB,GAAG,uCAAkB;gBACrB,GAAG,mCAAgB;aACnB;SACD,CAAC;IACH,CAAC;CAAA;AAhED,wBAgEC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-base.uazapi",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["Communication"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"credentialDocumentation": [
|
|
8
|
+
{
|
|
9
|
+
"url": "https://docs.uazapi.com/"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"primaryDocumentation": [
|
|
13
|
+
{
|
|
14
|
+
"url": "https://docs.uazapi.com/"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adminDescription = void 0;
|
|
4
|
+
exports.adminDescription = [
|
|
5
|
+
{
|
|
6
|
+
displayName: 'Operation',
|
|
7
|
+
name: 'operation',
|
|
8
|
+
type: 'options',
|
|
9
|
+
noDataExpression: true,
|
|
10
|
+
displayOptions: { show: { resource: ['admin'] } },
|
|
11
|
+
options: [
|
|
12
|
+
{
|
|
13
|
+
name: 'Create Instance',
|
|
14
|
+
value: 'createInstance',
|
|
15
|
+
action: 'Create a new instance',
|
|
16
|
+
description: 'Create a new uazapi instance',
|
|
17
|
+
routing: {
|
|
18
|
+
request: {
|
|
19
|
+
method: 'POST',
|
|
20
|
+
url: '/admin/instance/create',
|
|
21
|
+
headers: { admintoken: '={{$credentials.adminToken}}' },
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'Get Global Webhook',
|
|
27
|
+
value: 'getGlobalWebhook',
|
|
28
|
+
action: 'Get the global webhook',
|
|
29
|
+
description: 'Retrieve the global webhook configuration',
|
|
30
|
+
routing: {
|
|
31
|
+
request: {
|
|
32
|
+
method: 'GET',
|
|
33
|
+
url: '/admin/webhook',
|
|
34
|
+
headers: { admintoken: '={{$credentials.adminToken}}' },
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'List Instances',
|
|
40
|
+
value: 'listInstances',
|
|
41
|
+
action: 'List all instances',
|
|
42
|
+
description: 'List all uazapi instances available to the admin token',
|
|
43
|
+
routing: {
|
|
44
|
+
request: {
|
|
45
|
+
method: 'GET',
|
|
46
|
+
url: '/admin/instance/list',
|
|
47
|
+
headers: { admintoken: '={{$credentials.adminToken}}' },
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'Set Global Webhook',
|
|
53
|
+
value: 'setGlobalWebhook',
|
|
54
|
+
action: 'Set the global webhook',
|
|
55
|
+
description: 'Configure the global webhook for all instances',
|
|
56
|
+
routing: {
|
|
57
|
+
request: {
|
|
58
|
+
method: 'POST',
|
|
59
|
+
url: '/admin/webhook',
|
|
60
|
+
headers: { admintoken: '={{$credentials.adminToken}}' },
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Update Instance',
|
|
66
|
+
value: 'updateInstance',
|
|
67
|
+
action: 'Update an instance',
|
|
68
|
+
description: 'Update metadata of an existing uazapi instance',
|
|
69
|
+
routing: {
|
|
70
|
+
request: {
|
|
71
|
+
method: 'POST',
|
|
72
|
+
url: '/admin/instance/update',
|
|
73
|
+
headers: { admintoken: '={{$credentials.adminToken}}' },
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
default: 'createInstance',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
displayName: 'Instance Options',
|
|
82
|
+
name: 'instanceOptions',
|
|
83
|
+
type: 'collection',
|
|
84
|
+
placeholder: 'Add Option',
|
|
85
|
+
default: {},
|
|
86
|
+
displayOptions: { show: { resource: ['admin'], operation: ['createInstance'] } },
|
|
87
|
+
options: [
|
|
88
|
+
{
|
|
89
|
+
displayName: 'Name',
|
|
90
|
+
name: 'name',
|
|
91
|
+
type: 'string',
|
|
92
|
+
default: '',
|
|
93
|
+
description: 'Display name of the new instance',
|
|
94
|
+
routing: { send: { type: 'body', property: 'name' } },
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
displayName: 'Admin Field 01',
|
|
98
|
+
name: 'adminField01',
|
|
99
|
+
type: 'string',
|
|
100
|
+
default: '',
|
|
101
|
+
description: 'Custom admin metadata field 01',
|
|
102
|
+
routing: { send: { type: 'body', property: 'adminField01' } },
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
displayName: 'Admin Field 02',
|
|
106
|
+
name: 'adminField02',
|
|
107
|
+
type: 'string',
|
|
108
|
+
default: '',
|
|
109
|
+
description: 'Custom admin metadata field 02',
|
|
110
|
+
routing: { send: { type: 'body', property: 'adminField02' } },
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
displayName: 'Token',
|
|
116
|
+
name: 'token',
|
|
117
|
+
type: 'string',
|
|
118
|
+
typeOptions: { password: true },
|
|
119
|
+
required: true,
|
|
120
|
+
default: '',
|
|
121
|
+
description: 'Token of the target instance to update',
|
|
122
|
+
displayOptions: { show: { resource: ['admin'], operation: ['updateInstance'] } },
|
|
123
|
+
routing: { send: { type: 'body', property: 'token' } },
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
displayName: 'Update Fields',
|
|
127
|
+
name: 'updates',
|
|
128
|
+
type: 'collection',
|
|
129
|
+
placeholder: 'Add Update',
|
|
130
|
+
default: {},
|
|
131
|
+
displayOptions: { show: { resource: ['admin'], operation: ['updateInstance'] } },
|
|
132
|
+
options: [
|
|
133
|
+
{
|
|
134
|
+
displayName: 'Name',
|
|
135
|
+
name: 'name',
|
|
136
|
+
type: 'string',
|
|
137
|
+
default: '',
|
|
138
|
+
description: 'New display name for the instance',
|
|
139
|
+
routing: { send: { type: 'body', property: 'name' } },
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
displayName: 'Admin Field 01',
|
|
143
|
+
name: 'adminField01',
|
|
144
|
+
type: 'string',
|
|
145
|
+
default: '',
|
|
146
|
+
description: 'Custom admin metadata field 01',
|
|
147
|
+
routing: { send: { type: 'body', property: 'adminField01' } },
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
displayName: 'Admin Field 02',
|
|
151
|
+
name: 'adminField02',
|
|
152
|
+
type: 'string',
|
|
153
|
+
default: '',
|
|
154
|
+
description: 'Custom admin metadata field 02',
|
|
155
|
+
routing: { send: { type: 'body', property: 'adminField02' } },
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
displayName: 'URL',
|
|
161
|
+
name: 'url',
|
|
162
|
+
type: 'string',
|
|
163
|
+
required: true,
|
|
164
|
+
default: '',
|
|
165
|
+
description: 'Webhook URL that will receive global events',
|
|
166
|
+
displayOptions: { show: { resource: ['admin'], operation: ['setGlobalWebhook'] } },
|
|
167
|
+
routing: { send: { type: 'body', property: 'url' } },
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
displayName: 'Webhook Options',
|
|
171
|
+
name: 'webhookOptions',
|
|
172
|
+
type: 'collection',
|
|
173
|
+
placeholder: 'Add Option',
|
|
174
|
+
default: {},
|
|
175
|
+
displayOptions: { show: { resource: ['admin'], operation: ['setGlobalWebhook'] } },
|
|
176
|
+
options: [
|
|
177
|
+
{
|
|
178
|
+
displayName: 'Events',
|
|
179
|
+
name: 'events',
|
|
180
|
+
type: 'string',
|
|
181
|
+
typeOptions: { multipleValues: true },
|
|
182
|
+
default: [],
|
|
183
|
+
description: 'List of event names that should be delivered to the webhook',
|
|
184
|
+
routing: { send: { type: 'body', property: 'events' } },
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
displayName: 'Enabled',
|
|
188
|
+
name: 'enabled',
|
|
189
|
+
type: 'boolean',
|
|
190
|
+
default: true,
|
|
191
|
+
description: 'Whether the global webhook is enabled',
|
|
192
|
+
routing: { send: { type: 'body', property: 'enabled' } },
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
displayName: 'Exclude Messages',
|
|
196
|
+
name: 'excludeMessages',
|
|
197
|
+
type: 'string',
|
|
198
|
+
typeOptions: { multipleValues: true },
|
|
199
|
+
default: [],
|
|
200
|
+
description: 'List of message types that should be excluded from the webhook payload',
|
|
201
|
+
routing: { send: { type: 'body', property: 'excludeMessages' } },
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
},
|
|
205
|
+
];
|
|
206
|
+
//# sourceMappingURL=AdminDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminDescription.js","sourceRoot":"","sources":["../../../../nodes/Uazapi/descriptions/AdminDescription.ts"],"names":[],"mappings":"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"}
|