n8n-nodes-manychat 0.1.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/LICENSE.md +19 -0
- package/README.md +146 -0
- package/dist/credentials/ManyChatApi.credentials.d.ts +10 -0
- package/dist/credentials/ManyChatApi.credentials.js +40 -0
- package/dist/credentials/ManyChatApi.credentials.js.map +1 -0
- package/dist/icons/manychat.dark.svg +18 -0
- package/dist/icons/manychat.light.svg +15 -0
- package/dist/nodes/ManyChat/ManyChat.node.d.ts +4 -0
- package/dist/nodes/ManyChat/ManyChat.node.js +81 -0
- package/dist/nodes/ManyChat/ManyChat.node.js.map +1 -0
- package/dist/nodes/ManyChat/ManyChat.node.json +18 -0
- package/dist/nodes/ManyChat/Page/Page/createBotField.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Page/createBotField.js +100 -0
- package/dist/nodes/ManyChat/Page/Page/createBotField.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Page/createCustomField.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Page/createCustomField.js +82 -0
- package/dist/nodes/ManyChat/Page/Page/createCustomField.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Page/createTag.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Page/createTag.js +27 -0
- package/dist/nodes/ManyChat/Page/Page/createTag.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Page/removeTag.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Page/removeTag.js +50 -0
- package/dist/nodes/ManyChat/Page/Page/removeTag.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Page/setBotField.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Page/setBotField.js +47 -0
- package/dist/nodes/ManyChat/Page/Page/setBotField.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Page/setBotFieldByName.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Page/setBotFieldByName.js +47 -0
- package/dist/nodes/ManyChat/Page/Page/setBotFieldByName.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Page/setBotFields.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Page/setBotFields.js +58 -0
- package/dist/nodes/ManyChat/Page/Page/setBotFields.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/addTag.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/addTag.js +64 -0
- package/dist/nodes/ManyChat/Page/Subscriber/addTag.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/createSubscriber.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/createSubscriber.js +193 -0
- package/dist/nodes/ManyChat/Page/Subscriber/createSubscriber.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/findByCustomField.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/findByCustomField.js +46 -0
- package/dist/nodes/ManyChat/Page/Subscriber/findByCustomField.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/findByName.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/findByName.js +26 -0
- package/dist/nodes/ManyChat/Page/Subscriber/findByName.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/findBySystemField.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/findBySystemField.js +45 -0
- package/dist/nodes/ManyChat/Page/Subscriber/findBySystemField.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/getInfo.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/getInfo.js +26 -0
- package/dist/nodes/ManyChat/Page/Subscriber/getInfo.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/getInfoByUserRef.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/getInfoByUserRef.js +26 -0
- package/dist/nodes/ManyChat/Page/Subscriber/getInfoByUserRef.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/removeTag.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/removeTag.js +65 -0
- package/dist/nodes/ManyChat/Page/Subscriber/removeTag.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/updateSubscriber.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/updateSubscriber.js +192 -0
- package/dist/nodes/ManyChat/Page/Subscriber/updateSubscriber.js.map +1 -0
- package/dist/nodes/ManyChat/Page/Subscriber/verifyBySignedRequest.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/Subscriber/verifyBySignedRequest.js +44 -0
- package/dist/nodes/ManyChat/Page/Subscriber/verifyBySignedRequest.js.map +1 -0
- package/dist/nodes/ManyChat/Page/page.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/page.js +191 -0
- package/dist/nodes/ManyChat/Page/page.js.map +1 -0
- package/dist/nodes/ManyChat/Page/subscriber.d.ts +2 -0
- package/dist/nodes/ManyChat/Page/subscriber.js +156 -0
- package/dist/nodes/ManyChat/Page/subscriber.js.map +1 -0
- package/dist/nodes/ManyChat/Profile/Template/generateSingleUseLink.d.ts +2 -0
- package/dist/nodes/ManyChat/Profile/Template/generateSingleUseLink.js +26 -0
- package/dist/nodes/ManyChat/Profile/Template/generateSingleUseLink.js.map +1 -0
- package/dist/nodes/ManyChat/Profile/template.d.ts +2 -0
- package/dist/nodes/ManyChat/Profile/template.js +34 -0
- package/dist/nodes/ManyChat/Profile/template.js.map +1 -0
- package/dist/package.json +50 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +50 -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,146 @@
|
|
|
1
|
+
# n8n-nodes-manychat
|
|
2
|
+
|
|
3
|
+
This is an n8n community node. It lets you use **ManyChat** in your n8n workflows.
|
|
4
|
+
|
|
5
|
+
**ManyChat** is a messaging automation platform that allows you to build chatbots and manage subscribers for channels such as Facebook Messenger, Instagram, and WhatsApp.
|
|
6
|
+
|
|
7
|
+
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
|
|
8
|
+
|
|
9
|
+
[Installation](#installation)
|
|
10
|
+
[Operations](#operations)
|
|
11
|
+
[Credentials](#credentials)
|
|
12
|
+
[Compatibility](#compatibility)
|
|
13
|
+
[Usage](#usage)
|
|
14
|
+
[Resources](#resources)
|
|
15
|
+
[Version history](#version-history)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
22
|
+
|
|
23
|
+
After installation, the node will be available in the n8n editor under **Community Nodes**.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Operations
|
|
28
|
+
|
|
29
|
+
Currently, the node supports the following ManyChat API resources and operations:
|
|
30
|
+
|
|
31
|
+
### Page
|
|
32
|
+
|
|
33
|
+
**Page Information**
|
|
34
|
+
- Get Page Info
|
|
35
|
+
|
|
36
|
+
**Tags**
|
|
37
|
+
- Create Tag
|
|
38
|
+
- Get Tags
|
|
39
|
+
- Remove Tag (by ID)
|
|
40
|
+
- Remove Tag (by Name)
|
|
41
|
+
|
|
42
|
+
**Custom Fields**
|
|
43
|
+
- Create Custom Field
|
|
44
|
+
- Get Custom Fields
|
|
45
|
+
|
|
46
|
+
**Bot Fields**
|
|
47
|
+
- Get Bot Fields
|
|
48
|
+
- Create Bot Field
|
|
49
|
+
- Set Bot Field
|
|
50
|
+
- Set Bot Field (by Name)
|
|
51
|
+
- Set Multiple Bot Fields
|
|
52
|
+
|
|
53
|
+
**Flows & Growth Tools**
|
|
54
|
+
- Get Flows
|
|
55
|
+
- Get Growth Tools
|
|
56
|
+
|
|
57
|
+
**One-Time Notifications**
|
|
58
|
+
- Get One-Time Notification Topics
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### Subscriber
|
|
63
|
+
|
|
64
|
+
**Subscriber Lookup**
|
|
65
|
+
- Get Subscriber Info
|
|
66
|
+
- Get Subscriber Info by User Reference
|
|
67
|
+
- Find Subscriber by Name
|
|
68
|
+
- Find Subscriber by Custom Field
|
|
69
|
+
- Find Subscriber by System Field
|
|
70
|
+
|
|
71
|
+
**Tags**
|
|
72
|
+
- Add Tag to Subscriber
|
|
73
|
+
- Add Tag to Subscriber (by Name)
|
|
74
|
+
- Remove Tag from Subscriber
|
|
75
|
+
- Remove Tag from Subscriber (by Name)
|
|
76
|
+
|
|
77
|
+
**Subscriber Management**
|
|
78
|
+
- Create Subscriber (Unified)
|
|
79
|
+
- Update Subscriber
|
|
80
|
+
- Verify Subscriber by Signed Request
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
> Operation names in n8n are simplified for clarity and may differ slightly from the underlying ManyChat API endpoint names.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Credentials
|
|
89
|
+
|
|
90
|
+
This node requires authentication with the ManyChat API.
|
|
91
|
+
|
|
92
|
+
### Prerequisites
|
|
93
|
+
- A ManyChat account
|
|
94
|
+
- At least one connected page or channel (e.g. Facebook Messenger, Instagram)
|
|
95
|
+
- A ManyChat API access token
|
|
96
|
+
|
|
97
|
+
### Authentication method
|
|
98
|
+
- **API Token (Bearer Token)**
|
|
99
|
+
|
|
100
|
+
### Setup
|
|
101
|
+
1. Log in to your ManyChat account.
|
|
102
|
+
2. Navigate to **Settings → API**.
|
|
103
|
+
3. Generate or copy your API token.
|
|
104
|
+
4. In n8n, create new credentials for **ManyChat API**.
|
|
105
|
+
5. Paste the API token into the credentials field and save.
|
|
106
|
+
|
|
107
|
+
The node will use this token to authenticate all API requests.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Compatibility
|
|
112
|
+
|
|
113
|
+
- **Minimum n8n version:** 2.0.0
|
|
114
|
+
- **Tested against:** n8n 2.x
|
|
115
|
+
|
|
116
|
+
No known incompatibilities at this time.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Usage
|
|
121
|
+
|
|
122
|
+
This node can be used to automate and synchronize ManyChat data inside n8n workflows, for example:
|
|
123
|
+
|
|
124
|
+
- Syncing ManyChat subscribers with a CRM or database
|
|
125
|
+
- Managing subscriber tags and custom fields based on external events
|
|
126
|
+
- Fetching page, flow, and bot field metadata for automation logic
|
|
127
|
+
- Creating and updating subscribers programmatically
|
|
128
|
+
|
|
129
|
+
If you are new to n8n, see the [Try it out](https://docs.n8n.io/try-it-out/) guide to get started with building workflows.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Resources
|
|
134
|
+
|
|
135
|
+
- [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
|
|
136
|
+
- [ManyChat API Swagger documentation](https://api.manychat.com/swagger)
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Version history
|
|
141
|
+
|
|
142
|
+
### 0.1.0
|
|
143
|
+
- Initial release
|
|
144
|
+
- Added **Page** and **Subscriber** resources
|
|
145
|
+
- Support for tags, custom fields, bot fields, and subscriber management
|
|
146
|
+
- Tested with n8n v2
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IAuthenticateGeneric, Icon, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class ManyChatApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
icon: Icon;
|
|
6
|
+
documentationUrl: string;
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
authenticate: IAuthenticateGeneric;
|
|
9
|
+
test: ICredentialTestRequest;
|
|
10
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ManyChatApi = void 0;
|
|
4
|
+
class ManyChatApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'manyChatApi';
|
|
7
|
+
this.displayName = 'ManyChat API';
|
|
8
|
+
this.icon = {
|
|
9
|
+
light: 'file:../icons/manychat.light.svg',
|
|
10
|
+
dark: 'file:../icons/manychat.dark.svg'
|
|
11
|
+
};
|
|
12
|
+
this.documentationUrl = 'https://help.manychat.com/hc/en-us/articles/14959510331420-How-to-generate-a-token-for-the-Manychat-API-and-where-to-get-parameters#h_01JCR55RJ0ZRJE3HVWXVE0BZ33';
|
|
13
|
+
this.properties = [
|
|
14
|
+
{
|
|
15
|
+
displayName: 'Access Token (Bearer)',
|
|
16
|
+
name: 'accessToken',
|
|
17
|
+
type: 'string',
|
|
18
|
+
typeOptions: { password: true },
|
|
19
|
+
default: '',
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
this.authenticate = {
|
|
23
|
+
type: 'generic',
|
|
24
|
+
properties: {
|
|
25
|
+
headers: {
|
|
26
|
+
Authorization: '=Bearer {{$credentials?.accessToken}}',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
this.test = {
|
|
31
|
+
request: {
|
|
32
|
+
baseURL: 'https://api.manychat.com',
|
|
33
|
+
url: '/fb/page/getInfo',
|
|
34
|
+
method: 'GET',
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.ManyChatApi = ManyChatApi;
|
|
40
|
+
//# sourceMappingURL=ManyChatApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyChatApi.credentials.js","sourceRoot":"","sources":["../../credentials/ManyChatApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IAAxB;QACC,SAAI,GAAG,aAAa,CAAC;QAErB,gBAAW,GAAG,cAAc,CAAC;QAE7B,SAAI,GAAS;YACZ,KAAK,EAAE,kCAAkC;YACzC,IAAI,EAAE,iCAAiC;SACvC,CAAC;QAEF,qBAAgB,GACf,kKAAkK,CAAC;QAEpK,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;aACX;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,uCAAuC;iBACtD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,0BAA0B;gBACnC,GAAG,EAAE,kBAAkB;gBACvB,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AAvCD,kCAuCC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg version="1.1" id="Layer_1" xmlns:x="ns_extend;" xmlns:i="ns_ai;" xmlns:graph="ns_graphs;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 80.6 57.6" style="enable-background:new 0 0 80.6 57.6;" xml:space="preserve">
|
|
2
|
+
<style type="text/css">
|
|
3
|
+
.st0{fill:#FFFFFF;}
|
|
4
|
+
</style>
|
|
5
|
+
<metadata>
|
|
6
|
+
<sfw xmlns="ns_sfw;">
|
|
7
|
+
<slices>
|
|
8
|
+
</slices>
|
|
9
|
+
<sliceSourceBounds bottomLeftOrigin="true" height="57.6" width="80.6" x="-231.3" y="12.2">
|
|
10
|
+
</sliceSourceBounds>
|
|
11
|
+
</sfw>
|
|
12
|
+
</metadata>
|
|
13
|
+
<g>
|
|
14
|
+
<path class="st0" d="M68.2,0h-0.6C51.2,0,43.2,24.6,43.2,24.6V5.7H0v51.9h17.3V23h9.2v34.6H45c0,0,9.5-41,18.4-38
|
|
15
|
+
c6,2.3-10.9,37.9-10.9,37.9H77c0,0,3.4-23.2,3.4-31.3C81.2,12.6,79,0,68.2,0">
|
|
16
|
+
</path>
|
|
17
|
+
</g>
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg version="1.1" id="Layer_1" xmlns:x="ns_extend;" xmlns:i="ns_ai;" xmlns:graph="ns_graphs;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 80.6 57.6" style="enable-background:new 0 0 80.6 57.6;" xml:space="preserve">
|
|
2
|
+
<metadata>
|
|
3
|
+
<sfw xmlns="ns_sfw;">
|
|
4
|
+
<slices>
|
|
5
|
+
</slices>
|
|
6
|
+
<sliceSourceBounds bottomLeftOrigin="true" height="57.6" width="80.6" x="-231.3" y="12.2">
|
|
7
|
+
</sliceSourceBounds>
|
|
8
|
+
</sfw>
|
|
9
|
+
</metadata>
|
|
10
|
+
<g>
|
|
11
|
+
<path d="M68.2,0h-0.6C51.2,0,43.2,24.6,43.2,24.6V5.7H0v51.9h17.3V23h9.2v34.6H45c0,0,9.5-41,18.4-38c6,2.3-10.9,37.9-10.9,37.9H77
|
|
12
|
+
c0,0,3.4-23.2,3.4-31.3C81.2,12.6,79,0,68.2,0">
|
|
13
|
+
</path>
|
|
14
|
+
</g>
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ManyChat = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const page_1 = require("./Page/page");
|
|
6
|
+
const subscriber_1 = require("./Page/subscriber");
|
|
7
|
+
class ManyChat {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.description = {
|
|
10
|
+
displayName: 'ManyChat',
|
|
11
|
+
name: 'manyChat',
|
|
12
|
+
icon: {
|
|
13
|
+
light: 'file:../../icons/manychat.light.svg',
|
|
14
|
+
dark: 'file:../../icons/manychat.dark.svg',
|
|
15
|
+
},
|
|
16
|
+
group: ['input'],
|
|
17
|
+
version: 1,
|
|
18
|
+
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
|
|
19
|
+
description: 'Consume issues from the ManyChat API',
|
|
20
|
+
defaults: {
|
|
21
|
+
name: 'ManyChat',
|
|
22
|
+
},
|
|
23
|
+
usableAsTool: true,
|
|
24
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
25
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
26
|
+
credentials: [
|
|
27
|
+
{
|
|
28
|
+
name: 'manyChatApi',
|
|
29
|
+
required: true,
|
|
30
|
+
displayOptions: {
|
|
31
|
+
show: {
|
|
32
|
+
authentication: ['accessToken'],
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
requestDefaults: {
|
|
38
|
+
baseURL: 'https://api.manychat.com',
|
|
39
|
+
headers: {
|
|
40
|
+
Accept: 'application/json',
|
|
41
|
+
'Content-Type': 'application/json',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
properties: [
|
|
45
|
+
{
|
|
46
|
+
displayName: 'Authentication',
|
|
47
|
+
name: 'authentication',
|
|
48
|
+
type: 'options',
|
|
49
|
+
options: [
|
|
50
|
+
{
|
|
51
|
+
name: 'Access Token',
|
|
52
|
+
value: 'accessToken',
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
default: 'accessToken',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
displayName: 'Resource',
|
|
59
|
+
name: 'resource',
|
|
60
|
+
type: 'options',
|
|
61
|
+
noDataExpression: true,
|
|
62
|
+
options: [
|
|
63
|
+
{
|
|
64
|
+
name: 'Page',
|
|
65
|
+
value: 'page',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'Subscriber',
|
|
69
|
+
value: 'subscriber',
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
default: 'page',
|
|
73
|
+
},
|
|
74
|
+
...page_1.page,
|
|
75
|
+
...subscriber_1.subscriber,
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.ManyChat = ManyChat;
|
|
81
|
+
//# sourceMappingURL=ManyChat.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyChat.node.js","sourceRoot":"","sources":["../../../nodes/ManyChat/ManyChat.node.ts"],"names":[],"mappings":";;;AAAA,+CAA8F;AAC9F,sCAAmC;AACnC,kDAA+C;AAG/C,MAAa,QAAQ;IAArB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE;gBACL,KAAK,EAAE,qCAAqC;gBAC5C,IAAI,EAAE,oCAAoC;aAC1C;YACD,KAAK,EAAE,CAAC,OAAO,CAAC;YAChB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE;gBACT,IAAI,EAAE,UAAU;aAChB;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,aAAa;oBACnB,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,cAAc,EAAE,CAAC,aAAa,CAAC;yBAC/B;qBACD;iBACD;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,0BAA0B;gBACnC,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,gBAAgB;oBAC7B,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,cAAc;4BACpB,KAAK,EAAE,aAAa;yBACpB;qBACD;oBACD,OAAO,EAAE,aAAa;iBACtB;gBACD;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,MAAM;yBACb;wBACD;4BACC,IAAI,EAAE,YAAY;4BAClB,KAAK,EAAE,YAAY;yBACnB;qBACD;oBACD,OAAO,EAAE,MAAM;iBACf;gBACD,GAAG,WAAI;gBACP,GAAG,uBAAU;aACb;SACD,CAAC;IACH,CAAC;CAAA;AAtED,4BAsEC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-manychat",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["Development", "Developer Tools"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"credentialDocumentation": [
|
|
8
|
+
{
|
|
9
|
+
"url": "https://help.manychat.com/hc/en-us/articles/14959510331420-How-to-generate-a-token-for-the-Manychat-API-and-where-to-get-parameters#h_01JCR55RJ0ZRJE3HVWXVE0BZ33"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"primaryDocumentation": [
|
|
13
|
+
{
|
|
14
|
+
"url": "https://help.manychat.com/hc/en-us/categories/13556903882652-DevTools-Integrations"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBotField = void 0;
|
|
4
|
+
exports.createBotField = [
|
|
5
|
+
{
|
|
6
|
+
displayName: 'Name',
|
|
7
|
+
name: 'name',
|
|
8
|
+
type: 'string',
|
|
9
|
+
default: '',
|
|
10
|
+
placeholder: 'My bot name',
|
|
11
|
+
required: true,
|
|
12
|
+
displayOptions: {
|
|
13
|
+
show: {
|
|
14
|
+
operation: ['createBotField'],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
routing: {
|
|
18
|
+
request: {
|
|
19
|
+
body: {
|
|
20
|
+
name: '={{ $value }}',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
displayName: 'Type',
|
|
27
|
+
name: 'type',
|
|
28
|
+
type: 'options',
|
|
29
|
+
default: 'text',
|
|
30
|
+
required: true,
|
|
31
|
+
options: [
|
|
32
|
+
{
|
|
33
|
+
name: 'Text',
|
|
34
|
+
value: 'text',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'Number',
|
|
38
|
+
value: 'number',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'Boolean',
|
|
42
|
+
value: 'boolean',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
displayOptions: {
|
|
46
|
+
show: {
|
|
47
|
+
operation: ['createBotField'],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
routing: {
|
|
51
|
+
request: {
|
|
52
|
+
body: {
|
|
53
|
+
type: '={{ $value }}',
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
displayName: 'Description',
|
|
60
|
+
name: 'description',
|
|
61
|
+
type: 'string',
|
|
62
|
+
default: '',
|
|
63
|
+
placeholder: 'This field store my bot name',
|
|
64
|
+
required: true,
|
|
65
|
+
displayOptions: {
|
|
66
|
+
show: {
|
|
67
|
+
operation: ['createBotField'],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
routing: {
|
|
71
|
+
request: {
|
|
72
|
+
body: {
|
|
73
|
+
description: '={{ $value }}',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
displayName: 'Value',
|
|
80
|
+
name: 'value',
|
|
81
|
+
type: 'string',
|
|
82
|
+
default: '',
|
|
83
|
+
placeholder: "'string', 123, true, '2018-07-18', '2018-07-02T00:00:00+00:00'",
|
|
84
|
+
required: true,
|
|
85
|
+
displayOptions: {
|
|
86
|
+
show: {
|
|
87
|
+
resource: ['page'],
|
|
88
|
+
operation: ['createBotField'],
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
routing: {
|
|
92
|
+
request: {
|
|
93
|
+
body: {
|
|
94
|
+
value: '={{ $value }}',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
//# sourceMappingURL=createBotField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBotField.js","sourceRoot":"","sources":["../../../../../nodes/ManyChat/Page/Page/createBotField.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAsB;IAChD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACD;QACD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,IAAI,EAAE,eAAe;iBACrB;aACD;SACD;KACD;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACb;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;aACf;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;aAChB;SACD;QACD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACD;QACD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,IAAI,EAAE,eAAe;iBACrB;aACD;SACD;KACD;IACD;QACC,WAAW,EAAE,aAAa;QAC1B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACD;QACD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,WAAW,EAAE,eAAe;iBAC5B;aACD;SACD;KACD;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,gEAAgE;QAC7E,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAClB,SAAS,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACD;QACD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,KAAK,EAAE,eAAe;iBACtB;aACD;SACD;KACD;CACD,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCustomField = void 0;
|
|
4
|
+
exports.createCustomField = [
|
|
5
|
+
{
|
|
6
|
+
displayName: 'Caption',
|
|
7
|
+
name: 'caption',
|
|
8
|
+
type: 'string',
|
|
9
|
+
default: '',
|
|
10
|
+
placeholder: 'My custom field name',
|
|
11
|
+
required: true,
|
|
12
|
+
displayOptions: {
|
|
13
|
+
show: {
|
|
14
|
+
resource: ['page'],
|
|
15
|
+
operation: ['createCustomField'],
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
routing: {
|
|
19
|
+
request: {
|
|
20
|
+
body: {
|
|
21
|
+
caption: '={{ $value }}',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
displayName: 'Type',
|
|
28
|
+
name: 'type',
|
|
29
|
+
type: 'options',
|
|
30
|
+
default: 'text',
|
|
31
|
+
required: true,
|
|
32
|
+
options: [
|
|
33
|
+
{
|
|
34
|
+
name: 'Text',
|
|
35
|
+
value: 'text',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Number',
|
|
39
|
+
value: 'number',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Boolean',
|
|
43
|
+
value: 'boolean',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
displayOptions: {
|
|
47
|
+
show: {
|
|
48
|
+
resource: ['page'],
|
|
49
|
+
operation: ['createCustomField'],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
routing: {
|
|
53
|
+
request: {
|
|
54
|
+
body: {
|
|
55
|
+
type: '={{ $value }}',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
displayName: 'Description',
|
|
62
|
+
name: 'description',
|
|
63
|
+
type: 'string',
|
|
64
|
+
default: '',
|
|
65
|
+
placeholder: 'This field store my custom field name',
|
|
66
|
+
required: true,
|
|
67
|
+
displayOptions: {
|
|
68
|
+
show: {
|
|
69
|
+
resource: ['page'],
|
|
70
|
+
operation: ['createCustomField'],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
routing: {
|
|
74
|
+
request: {
|
|
75
|
+
body: {
|
|
76
|
+
description: '={{ $value }}',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
//# sourceMappingURL=createCustomField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCustomField.js","sourceRoot":"","sources":["../../../../../nodes/ManyChat/Page/Page/createCustomField.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAsB;IACnD;QACC,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAClB,SAAS,EAAE,CAAC,mBAAmB,CAAC;aAChC;SACD;QACD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,OAAO,EAAE,eAAe;iBACxB;aACD;SACD;KACD;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACb;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;aACf;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;aAChB;SACD;QACD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAClB,SAAS,EAAE,CAAC,mBAAmB,CAAC;aAChC;SACD;QACD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,IAAI,EAAE,eAAe;iBACrB;aACD;SACD;KACD;IACD;QACC,WAAW,EAAE,aAAa;QAC1B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAClB,SAAS,EAAE,CAAC,mBAAmB,CAAC;aAChC;SACD;QACD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,WAAW,EAAE,eAAe;iBAC5B;aACD;SACD;KACD;CACD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTag = void 0;
|
|
4
|
+
exports.createTag = [
|
|
5
|
+
{
|
|
6
|
+
displayName: 'Name',
|
|
7
|
+
name: 'name',
|
|
8
|
+
type: 'string',
|
|
9
|
+
default: '',
|
|
10
|
+
required: true,
|
|
11
|
+
placeholder: 'My tag',
|
|
12
|
+
displayOptions: {
|
|
13
|
+
show: {
|
|
14
|
+
resource: ['page'],
|
|
15
|
+
operation: ['createTag'],
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
routing: {
|
|
19
|
+
request: {
|
|
20
|
+
body: {
|
|
21
|
+
name: '={{ $value }}',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
//# sourceMappingURL=createTag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTag.js","sourceRoot":"","sources":["../../../../../nodes/ManyChat/Page/Page/createTag.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAsB;IAC3C;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAClB,SAAS,EAAE,CAAC,WAAW,CAAC;aACxB;SACD;QACD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,IAAI,EAAE,eAAe;iBACrB;aACD;SACD;KACD;CACD,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeTag = void 0;
|
|
4
|
+
exports.removeTag = [
|
|
5
|
+
{
|
|
6
|
+
displayName: 'Tag',
|
|
7
|
+
name: 'tag',
|
|
8
|
+
type: 'resourceLocator',
|
|
9
|
+
default: { mode: 'id', value: '' },
|
|
10
|
+
required: true,
|
|
11
|
+
modes: [
|
|
12
|
+
{
|
|
13
|
+
displayName: 'By ID',
|
|
14
|
+
name: 'id',
|
|
15
|
+
type: 'string',
|
|
16
|
+
placeholder: 'Enter tag ID...',
|
|
17
|
+
validation: [
|
|
18
|
+
{
|
|
19
|
+
type: 'regex',
|
|
20
|
+
properties: {
|
|
21
|
+
regex: '^[0-9]+$',
|
|
22
|
+
errorMessage: 'Tag ID must be numeric',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
displayName: 'By Name',
|
|
29
|
+
name: 'name',
|
|
30
|
+
type: 'string',
|
|
31
|
+
placeholder: 'Enter tag name...',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
displayOptions: {
|
|
35
|
+
show: {
|
|
36
|
+
resource: ['page'],
|
|
37
|
+
operation: ['removeTag'],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
routing: {
|
|
41
|
+
request: {
|
|
42
|
+
body: {
|
|
43
|
+
tag_id: `={{ $parameter.tagIdentifierType === 'id' ? $parameter.tag.value : undefined }}`,
|
|
44
|
+
tag_name: `={{ $parameter.tagIdentifierType === 'name' ? $parameter.tag.value : undefined }}`,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
//# sourceMappingURL=removeTag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeTag.js","sourceRoot":"","sources":["../../../../../nodes/ManyChat/Page/Page/removeTag.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAsB;IAC3C;QACC,WAAW,EAAE,KAAK;QAClB,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QAClC,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE;YACN;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iBAAiB;gBAC9B,UAAU,EAAE;oBACX;wBACC,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE;4BACX,KAAK,EAAE,UAAU;4BACjB,YAAY,EAAE,wBAAwB;yBACtC;qBACD;iBACD;aACD;YACD;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mBAAmB;aAChC;SACD;QACD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAClB,SAAS,EAAE,CAAC,WAAW,CAAC;aACxB;SACD;QACD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,MAAM,EAAE,iFAAiF;oBACzF,QAAQ,EAAE,mFAAmF;iBAC7F;aACD;SACD;KACD;CACD,CAAC"}
|