@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.
Files changed (56) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +130 -0
  3. package/dist/credentials/UazapiApi.credentials.d.ts +10 -0
  4. package/dist/credentials/UazapiApi.credentials.js +56 -0
  5. package/dist/credentials/UazapiApi.credentials.js.map +1 -0
  6. package/dist/icons/uazapi.svg +4 -0
  7. package/dist/nodes/Uazapi/Uazapi.node.d.ts +4 -0
  8. package/dist/nodes/Uazapi/Uazapi.node.js +85 -0
  9. package/dist/nodes/Uazapi/Uazapi.node.js.map +1 -0
  10. package/dist/nodes/Uazapi/Uazapi.node.json +18 -0
  11. package/dist/nodes/Uazapi/descriptions/AdminDescription.d.ts +2 -0
  12. package/dist/nodes/Uazapi/descriptions/AdminDescription.js +206 -0
  13. package/dist/nodes/Uazapi/descriptions/AdminDescription.js.map +1 -0
  14. package/dist/nodes/Uazapi/descriptions/BusinessDescription.d.ts +2 -0
  15. package/dist/nodes/Uazapi/descriptions/BusinessDescription.js +274 -0
  16. package/dist/nodes/Uazapi/descriptions/BusinessDescription.js.map +1 -0
  17. package/dist/nodes/Uazapi/descriptions/ChatDescription.d.ts +2 -0
  18. package/dist/nodes/Uazapi/descriptions/ChatDescription.js +776 -0
  19. package/dist/nodes/Uazapi/descriptions/ChatDescription.js.map +1 -0
  20. package/dist/nodes/Uazapi/descriptions/ChatbotDescription.d.ts +2 -0
  21. package/dist/nodes/Uazapi/descriptions/ChatbotDescription.js +546 -0
  22. package/dist/nodes/Uazapi/descriptions/ChatbotDescription.js.map +1 -0
  23. package/dist/nodes/Uazapi/descriptions/ContactDescription.d.ts +2 -0
  24. package/dist/nodes/Uazapi/descriptions/ContactDescription.js +198 -0
  25. package/dist/nodes/Uazapi/descriptions/ContactDescription.js.map +1 -0
  26. package/dist/nodes/Uazapi/descriptions/CrmDescription.d.ts +2 -0
  27. package/dist/nodes/Uazapi/descriptions/CrmDescription.js +499 -0
  28. package/dist/nodes/Uazapi/descriptions/CrmDescription.js.map +1 -0
  29. package/dist/nodes/Uazapi/descriptions/GroupDescription.d.ts +2 -0
  30. package/dist/nodes/Uazapi/descriptions/GroupDescription.js +705 -0
  31. package/dist/nodes/Uazapi/descriptions/GroupDescription.js.map +1 -0
  32. package/dist/nodes/Uazapi/descriptions/InstanceDescription.d.ts +2 -0
  33. package/dist/nodes/Uazapi/descriptions/InstanceDescription.js +396 -0
  34. package/dist/nodes/Uazapi/descriptions/InstanceDescription.js.map +1 -0
  35. package/dist/nodes/Uazapi/descriptions/LabelDescription.d.ts +2 -0
  36. package/dist/nodes/Uazapi/descriptions/LabelDescription.js +120 -0
  37. package/dist/nodes/Uazapi/descriptions/LabelDescription.js.map +1 -0
  38. package/dist/nodes/Uazapi/descriptions/MessageDescription.d.ts +2 -0
  39. package/dist/nodes/Uazapi/descriptions/MessageDescription.js +1034 -0
  40. package/dist/nodes/Uazapi/descriptions/MessageDescription.js.map +1 -0
  41. package/dist/nodes/Uazapi/descriptions/ProfileDescription.d.ts +2 -0
  42. package/dist/nodes/Uazapi/descriptions/ProfileDescription.js +84 -0
  43. package/dist/nodes/Uazapi/descriptions/ProfileDescription.js.map +1 -0
  44. package/dist/nodes/Uazapi/descriptions/SenderDescription.d.ts +2 -0
  45. package/dist/nodes/Uazapi/descriptions/SenderDescription.js +627 -0
  46. package/dist/nodes/Uazapi/descriptions/SenderDescription.js.map +1 -0
  47. package/dist/nodes/Uazapi/descriptions/shared.d.ts +5 -0
  48. package/dist/nodes/Uazapi/descriptions/shared.js +95 -0
  49. package/dist/nodes/Uazapi/descriptions/shared.js.map +1 -0
  50. package/dist/nodes/UazapiTrigger/UazapiTrigger.node.d.ts +13 -0
  51. package/dist/nodes/UazapiTrigger/UazapiTrigger.node.js +362 -0
  52. package/dist/nodes/UazapiTrigger/UazapiTrigger.node.js.map +1 -0
  53. package/dist/nodes/UazapiTrigger/UazapiTrigger.node.json +18 -0
  54. package/dist/package.json +50 -0
  55. package/dist/tsconfig.tsbuildinfo +1 -0
  56. 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,4 @@
1
+ import { type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Uazapi implements INodeType {
3
+ description: INodeTypeDescription;
4
+ }
@@ -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,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const adminDescription: INodeProperties[];
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const businessDescription: INodeProperties[];