@webzzconnect/n8n-nodes-webzzconnect 0.0.0-stage → 0.5.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 +21 -0
- package/README.md +141 -2
- package/dist/credentials/WebzzConnectApi.credentials.d.ts +10 -0
- package/dist/credentials/WebzzConnectApi.credentials.js +52 -0
- package/dist/credentials/WebzzConnectApi.credentials.js.map +1 -0
- package/dist/credentials/WebzzConnectOAuth2Api.credentials.d.ts +9 -0
- package/dist/credentials/WebzzConnectOAuth2Api.credentials.js +82 -0
- package/dist/credentials/WebzzConnectOAuth2Api.credentials.js.map +1 -0
- package/dist/nodes/WebzzConnect/GenericFunctions.d.ts +54 -0
- package/dist/nodes/WebzzConnect/GenericFunctions.js +295 -0
- package/dist/nodes/WebzzConnect/GenericFunctions.js.map +1 -0
- package/dist/nodes/WebzzConnect/WebzzConnect.node.d.ts +20 -0
- package/dist/nodes/WebzzConnect/WebzzConnect.node.js +845 -0
- package/dist/nodes/WebzzConnect/WebzzConnect.node.js.map +1 -0
- package/dist/nodes/WebzzConnect/WebzzConnect.node.json +12 -0
- package/dist/nodes/WebzzConnect/descriptions/ConnectionDescription.d.ts +2 -0
- package/dist/nodes/WebzzConnect/descriptions/ConnectionDescription.js +22 -0
- package/dist/nodes/WebzzConnect/descriptions/ConnectionDescription.js.map +1 -0
- package/dist/nodes/WebzzConnect/descriptions/ContactDescription.d.ts +3 -0
- package/dist/nodes/WebzzConnect/descriptions/ContactDescription.js +185 -0
- package/dist/nodes/WebzzConnect/descriptions/ContactDescription.js.map +1 -0
- package/dist/nodes/WebzzConnect/descriptions/ConversationDescription.d.ts +4 -0
- package/dist/nodes/WebzzConnect/descriptions/ConversationDescription.js +522 -0
- package/dist/nodes/WebzzConnect/descriptions/ConversationDescription.js.map +1 -0
- package/dist/nodes/WebzzConnect/descriptions/DealDescription.d.ts +3 -0
- package/dist/nodes/WebzzConnect/descriptions/DealDescription.js +282 -0
- package/dist/nodes/WebzzConnect/descriptions/DealDescription.js.map +1 -0
- package/dist/nodes/WebzzConnect/descriptions/WhatsAppTemplateDescription.d.ts +3 -0
- package/dist/nodes/WebzzConnect/descriptions/WhatsAppTemplateDescription.js +106 -0
- package/dist/nodes/WebzzConnect/descriptions/WhatsAppTemplateDescription.js.map +1 -0
- package/dist/nodes/WebzzConnect/webzzconnect.dark.svg +19 -0
- package/dist/nodes/WebzzConnect/webzzconnect.svg +19 -0
- package/dist/nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.d.ts +18 -0
- package/dist/nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.js +321 -0
- package/dist/nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.js.map +1 -0
- package/dist/nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.json +12 -0
- package/dist/nodes/WebzzConnectTrigger/webzzconnect.dark.svg +19 -0
- package/dist/nodes/WebzzConnectTrigger/webzzconnect.svg +19 -0
- package/dist/package.json +64 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +62 -4
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.COPY = exports.authenticationProperty = exports.PKCE_CREDENTIAL = exports.API_KEY_CREDENTIAL = exports.BASE_URL = void 0;
|
|
4
|
+
exports.digitsOnly = digitsOnly;
|
|
5
|
+
exports.stripInternalKeys = stripInternalKeys;
|
|
6
|
+
exports.getCredentialName = getCredentialName;
|
|
7
|
+
exports.getAccountId = getAccountId;
|
|
8
|
+
exports.getConnectionInfo = getConnectionInfo;
|
|
9
|
+
exports.pathId = pathId;
|
|
10
|
+
exports.parseAssignee = parseAssignee;
|
|
11
|
+
exports.wzRawRequest = wzRawRequest;
|
|
12
|
+
exports.readErrorInfo = readErrorInfo;
|
|
13
|
+
exports.handleApiError = handleApiError;
|
|
14
|
+
exports.errorForItem = errorForItem;
|
|
15
|
+
exports.wzApiRequest = wzApiRequest;
|
|
16
|
+
exports.wzPaginate = wzPaginate;
|
|
17
|
+
exports.asArray = asArray;
|
|
18
|
+
exports.asObject = asObject;
|
|
19
|
+
exports.unwrapContact = unwrapContact;
|
|
20
|
+
exports.pairsToObject = pairsToObject;
|
|
21
|
+
exports.phonesMatch = phonesMatch;
|
|
22
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
23
|
+
exports.BASE_URL = 'https://connect.webzz.cloud';
|
|
24
|
+
exports.API_KEY_CREDENTIAL = 'webzzConnectApi';
|
|
25
|
+
exports.PKCE_CREDENTIAL = 'webzzConnectOAuth2Api';
|
|
26
|
+
exports.authenticationProperty = {
|
|
27
|
+
displayName: 'Authentication',
|
|
28
|
+
name: 'authentication',
|
|
29
|
+
type: 'options',
|
|
30
|
+
options: [
|
|
31
|
+
{ name: 'API Key', value: 'apiKey' },
|
|
32
|
+
{ name: 'OAuth2', value: 'oAuth2' },
|
|
33
|
+
],
|
|
34
|
+
default: 'apiKey',
|
|
35
|
+
description: 'To answer customers as a bot, use a key that acts as a virtual agent, or OAuth with Connect as → A virtual agent. The flow then sees and answers only that agent\'s conversations. For other flows, an account key\'s messages arrive with sender null.',
|
|
36
|
+
};
|
|
37
|
+
exports.COPY = {
|
|
38
|
+
handoffOneTarget: 'A virtual agent hands a conversation to one target: a person, another virtual agent, or your team. Choose an agent or a team, not both. Nothing was changed. (handoff_one_target)',
|
|
39
|
+
connectionKindUnknown: "Couldn't check which kind of connection this is, so nothing was changed. Run again. (connection_kind_unknown)",
|
|
40
|
+
assignNoTarget: 'Choose a person or virtual agent to assign. To remove the assignee, use Unassign. Nothing was changed. (assign_no_target)',
|
|
41
|
+
contactNotVisible: '[422] This contact may already exist, but this virtual agent sees only the contacts of conversations it handles. To create or update contacts across the account, use an account key or an "as me" connection.',
|
|
42
|
+
};
|
|
43
|
+
const ERROR_COPY = {
|
|
44
|
+
'403:agent_paused': '[403] The virtual agent is paused, so this connection can\'t act. Set the agent live in WebzzConnect, then run again. (agent_paused)',
|
|
45
|
+
'409:not_handling': '[409] This virtual agent isn\'t handling this conversation any more: a person took it, it was handed off, or it\'s resolved. Stop the flow for this conversation. (not_handling)',
|
|
46
|
+
'422:assignee_not_available': '[422] That person or virtual agent can\'t take this conversation: unknown, removed, or not in the conversation\'s inbox. Nothing was changed. (assignee_not_available)',
|
|
47
|
+
'422:conversation_resolved': '[422] A virtual agent can\'t be assigned to a resolved conversation. Reopen it first, or assign a person. (conversation_resolved)',
|
|
48
|
+
'422:handoff_note_not_allowed': '[422] Only the virtual agent handling this conversation can add a hand-off note, and only when it hands the conversation to someone. Remove the note, or use a virtual agent connection. Nothing was changed. (handoff_note_not_allowed)',
|
|
49
|
+
'422:handoff_note_invalid': '[422] The hand-off note must be 1 to 500 characters. Nothing was changed. (handoff_note_invalid)',
|
|
50
|
+
};
|
|
51
|
+
function digitsOnly(value) {
|
|
52
|
+
return value.replace(/\D/g, '');
|
|
53
|
+
}
|
|
54
|
+
function stripInternalKeys(value) {
|
|
55
|
+
if (Array.isArray(value)) {
|
|
56
|
+
return value.map((entry) => stripInternalKeys(entry));
|
|
57
|
+
}
|
|
58
|
+
if (value !== null && typeof value === 'object') {
|
|
59
|
+
const clean = {};
|
|
60
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
61
|
+
if (key.startsWith('wz_'))
|
|
62
|
+
continue;
|
|
63
|
+
clean[key] = stripInternalKeys(entry);
|
|
64
|
+
}
|
|
65
|
+
return clean;
|
|
66
|
+
}
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
function getCredentialName() {
|
|
70
|
+
const selected = 'getInputData' in this
|
|
71
|
+
? this.getNodeParameter('authentication', 0, 'apiKey')
|
|
72
|
+
: this.getNodeParameter('authentication', 'apiKey');
|
|
73
|
+
return selected === 'oAuth2' ? exports.PKCE_CREDENTIAL : exports.API_KEY_CREDENTIAL;
|
|
74
|
+
}
|
|
75
|
+
const tokenInfoCache = new WeakMap();
|
|
76
|
+
async function sendRequest(method, url, options) {
|
|
77
|
+
const requestOptions = {
|
|
78
|
+
method,
|
|
79
|
+
url,
|
|
80
|
+
json: true,
|
|
81
|
+
headers: { Accept: 'application/json' },
|
|
82
|
+
};
|
|
83
|
+
if (options.qs && Object.keys(options.qs).length > 0)
|
|
84
|
+
requestOptions.qs = options.qs;
|
|
85
|
+
if (options.body && Object.keys(options.body).length > 0)
|
|
86
|
+
requestOptions.body = options.body;
|
|
87
|
+
return await this.helpers.httpRequestWithAuthentication.call(this, getCredentialName.call(this), requestOptions);
|
|
88
|
+
}
|
|
89
|
+
async function getAccountId() {
|
|
90
|
+
const credentialName = getCredentialName.call(this);
|
|
91
|
+
if (credentialName === exports.PKCE_CREDENTIAL) {
|
|
92
|
+
const credentials = await this.getCredentials(credentialName);
|
|
93
|
+
const tokenData = credentials.oauthTokenData;
|
|
94
|
+
if ((tokenData === null || tokenData === void 0 ? void 0 : tokenData.account_id) !== undefined && tokenData.account_id !== null) {
|
|
95
|
+
return String(tokenData.account_id);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const account = (await getTokenInfo.call(this)).account;
|
|
99
|
+
if ((account === null || account === void 0 ? void 0 : account.id) === undefined) {
|
|
100
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Could not determine the WebzzConnect account for this credential. Check the API key, or reconnect the OAuth credential.');
|
|
101
|
+
}
|
|
102
|
+
return String(account.id);
|
|
103
|
+
}
|
|
104
|
+
async function getTokenInfo() {
|
|
105
|
+
const cached = tokenInfoCache.get(this);
|
|
106
|
+
if (cached !== undefined)
|
|
107
|
+
return cached;
|
|
108
|
+
const info = (await sendRequest.call(this, 'GET', `${exports.BASE_URL}/api/v1/token_info`, {}));
|
|
109
|
+
tokenInfoCache.set(this, info);
|
|
110
|
+
return info;
|
|
111
|
+
}
|
|
112
|
+
async function getConnectionInfo() {
|
|
113
|
+
try {
|
|
114
|
+
return await getTokenInfo.call(this);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
return handleApiError.call(this, error);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function pathId(value) {
|
|
121
|
+
const id = String(value !== null && value !== void 0 ? value : '').trim();
|
|
122
|
+
if (!/^\d+$/.test(id)) {
|
|
123
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `"${String(value)}" is not a valid ID (a number)`);
|
|
124
|
+
}
|
|
125
|
+
return id;
|
|
126
|
+
}
|
|
127
|
+
function parseAssignee(value) {
|
|
128
|
+
const raw = String(value !== null && value !== void 0 ? value : '').trim();
|
|
129
|
+
if (raw === '')
|
|
130
|
+
return undefined;
|
|
131
|
+
const match = /^(?:(User|AgentBot):)?(\d+)$/.exec(raw);
|
|
132
|
+
if (!match) {
|
|
133
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `"${raw}" is not a valid agent (a number, or AgentBot:number)`);
|
|
134
|
+
}
|
|
135
|
+
if (/^0+$/.test(match[2]))
|
|
136
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), exports.COPY.assignNoTarget);
|
|
137
|
+
return { id: match[2], type: match[1] === 'AgentBot' ? 'AgentBot' : 'User' };
|
|
138
|
+
}
|
|
139
|
+
async function wzRawRequest(method, path, options = {}) {
|
|
140
|
+
if (options.absolute) {
|
|
141
|
+
return await sendRequest.call(this, method, `${exports.BASE_URL}${path}`, options);
|
|
142
|
+
}
|
|
143
|
+
const accountId = await getAccountId.call(this);
|
|
144
|
+
return await sendRequest.call(this, method, `${exports.BASE_URL}/api/v1/accounts/${pathId.call(this, accountId)}${path}`, options);
|
|
145
|
+
}
|
|
146
|
+
function readErrorInfo(error) {
|
|
147
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
148
|
+
const err = error;
|
|
149
|
+
const response = (_a = err.response) !== null && _a !== void 0 ? _a : (_b = err.cause) === null || _b === void 0 ? void 0 : _b.response;
|
|
150
|
+
const rawStatus = (_f = (_e = (_d = (_c = err.httpCode) !== null && _c !== void 0 ? _c : err.statusCode) !== null && _d !== void 0 ? _d : err.status) !== null && _e !== void 0 ? _e : response === null || response === void 0 ? void 0 : response.status) !== null && _f !== void 0 ? _f : (_g = err.cause) === null || _g === void 0 ? void 0 : _g.status;
|
|
151
|
+
const status = rawStatus !== undefined ? Number(rawStatus) : undefined;
|
|
152
|
+
let body = (_j = (_h = response === null || response === void 0 ? void 0 : response.data) !== null && _h !== void 0 ? _h : response === null || response === void 0 ? void 0 : response.body) !== null && _j !== void 0 ? _j : (_k = err.context) === null || _k === void 0 ? void 0 : _k.data;
|
|
153
|
+
if (typeof body === 'string') {
|
|
154
|
+
try {
|
|
155
|
+
body = JSON.parse(body);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const bodyObject = body !== null && typeof body === 'object' ? body : undefined;
|
|
161
|
+
let message = '';
|
|
162
|
+
if (bodyObject) {
|
|
163
|
+
const direct = (_m = (_l = bodyObject.message) !== null && _l !== void 0 ? _l : bodyObject.error_description) !== null && _m !== void 0 ? _m : bodyObject.error;
|
|
164
|
+
if (typeof direct === 'string')
|
|
165
|
+
message = direct;
|
|
166
|
+
else if (Array.isArray(bodyObject.errors))
|
|
167
|
+
message = bodyObject.errors.join(', ');
|
|
168
|
+
}
|
|
169
|
+
else if (typeof body === 'string') {
|
|
170
|
+
message = body;
|
|
171
|
+
}
|
|
172
|
+
const headers = ((_o = response === null || response === void 0 ? void 0 : response.headers) !== null && _o !== void 0 ? _o : {});
|
|
173
|
+
const retryAfter = (_p = headers['retry-after']) !== null && _p !== void 0 ? _p : headers['Retry-After'];
|
|
174
|
+
return {
|
|
175
|
+
status: Number.isFinite(status) ? status : undefined,
|
|
176
|
+
message: message || err.description || err.message || 'Unknown error',
|
|
177
|
+
retryAfter: retryAfter !== undefined ? String(retryAfter) : undefined,
|
|
178
|
+
body: bodyObject,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
function handleApiError(error) {
|
|
182
|
+
var _a, _b, _c, _d;
|
|
183
|
+
if (error instanceof n8n_workflow_1.NodeOperationError)
|
|
184
|
+
throw error;
|
|
185
|
+
const info = readErrorInfo(error);
|
|
186
|
+
const options = {
|
|
187
|
+
message: info.message,
|
|
188
|
+
};
|
|
189
|
+
if (info.status !== undefined)
|
|
190
|
+
options.httpCode = String(info.status);
|
|
191
|
+
const code = String((_d = (_b = (_a = info.body) === null || _a === void 0 ? void 0 : _a.error_code) !== null && _b !== void 0 ? _b : (_c = info.body) === null || _c === void 0 ? void 0 : _c.error) !== null && _d !== void 0 ? _d : '');
|
|
192
|
+
const copy = ERROR_COPY[`${info.status}:${code}`];
|
|
193
|
+
if (copy) {
|
|
194
|
+
options.message = copy;
|
|
195
|
+
}
|
|
196
|
+
else if (info.status === 429) {
|
|
197
|
+
options.message = 'WebzzConnect rate limit reached';
|
|
198
|
+
options.description = info.retryAfter
|
|
199
|
+
? `Too many requests. WebzzConnect asks you to retry after ${info.retryAfter} seconds (Retry-After). Add a Wait node or enable "Retry On Fail" for this node.`
|
|
200
|
+
: 'Too many requests. Wait a moment and retry, or enable "Retry On Fail" for this node. Contact search is limited to 100 requests per minute per account.';
|
|
201
|
+
}
|
|
202
|
+
else if (info.status === 403) {
|
|
203
|
+
options.message = `[403] This connection isn't allowed to do this. For a virtual agent its role decides; for an API key, its scopes and inboxes; for OAuth, what was approved at consent. (${info.message})`;
|
|
204
|
+
}
|
|
205
|
+
else if (info.status === 401) {
|
|
206
|
+
options.description =
|
|
207
|
+
'The WebzzConnect API key or access token was rejected. Check the API key (it may have been revoked), or reconnect the OAuth credential. A password change in WebzzConnect revokes OAuth connections.';
|
|
208
|
+
}
|
|
209
|
+
throw new n8n_workflow_1.NodeApiError(this.getNode(), error, options);
|
|
210
|
+
}
|
|
211
|
+
function errorForItem(node, error, itemIndex) {
|
|
212
|
+
if (error instanceof n8n_workflow_1.NodeApiError || error instanceof n8n_workflow_1.NodeOperationError) {
|
|
213
|
+
error.context.itemIndex = itemIndex;
|
|
214
|
+
return error;
|
|
215
|
+
}
|
|
216
|
+
return new n8n_workflow_1.NodeApiError(node, error, { itemIndex });
|
|
217
|
+
}
|
|
218
|
+
async function wzApiRequest(method, path, options = {}) {
|
|
219
|
+
try {
|
|
220
|
+
return await wzRawRequest.call(this, method, path, options);
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
return handleApiError.call(this, error);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
async function wzPaginate(path, options) {
|
|
227
|
+
var _a;
|
|
228
|
+
const results = [];
|
|
229
|
+
let page = 1;
|
|
230
|
+
for (let guard = 0; guard < 1000; guard++) {
|
|
231
|
+
const response = await wzApiRequest.call(this, 'GET', path, {
|
|
232
|
+
qs: { ...((_a = options.qs) !== null && _a !== void 0 ? _a : {}), page },
|
|
233
|
+
});
|
|
234
|
+
const items = options.extract(response);
|
|
235
|
+
results.push(...items);
|
|
236
|
+
if (!options.returnAll && results.length >= options.limit)
|
|
237
|
+
break;
|
|
238
|
+
const more = options.hasMore
|
|
239
|
+
? options.hasMore(response, items)
|
|
240
|
+
: items.length >= options.pageSize;
|
|
241
|
+
if (!more || items.length === 0)
|
|
242
|
+
break;
|
|
243
|
+
page++;
|
|
244
|
+
}
|
|
245
|
+
return options.returnAll ? results : results.slice(0, options.limit);
|
|
246
|
+
}
|
|
247
|
+
function asArray(response) {
|
|
248
|
+
if (Array.isArray(response))
|
|
249
|
+
return response;
|
|
250
|
+
const root = asObject(response);
|
|
251
|
+
for (const key of ['payload', 'data']) {
|
|
252
|
+
if (Array.isArray(root[key]))
|
|
253
|
+
return root[key];
|
|
254
|
+
}
|
|
255
|
+
return [];
|
|
256
|
+
}
|
|
257
|
+
function asObject(value) {
|
|
258
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value)
|
|
259
|
+
? value
|
|
260
|
+
: {};
|
|
261
|
+
}
|
|
262
|
+
function unwrapContact(response) {
|
|
263
|
+
const root = asObject(response);
|
|
264
|
+
const payload = asObject(root.payload);
|
|
265
|
+
if (Object.keys(payload).length > 0) {
|
|
266
|
+
const nested = asObject(payload.contact);
|
|
267
|
+
return Object.keys(nested).length > 0 ? nested : payload;
|
|
268
|
+
}
|
|
269
|
+
return root;
|
|
270
|
+
}
|
|
271
|
+
function pairsToObject(pairs) {
|
|
272
|
+
var _a, _b;
|
|
273
|
+
const out = {};
|
|
274
|
+
const entries = (_a = pairs === null || pairs === void 0 ? void 0 : pairs.values) !== null && _a !== void 0 ? _a : [];
|
|
275
|
+
for (const entry of entries) {
|
|
276
|
+
const key = String((_b = entry.key) !== null && _b !== void 0 ? _b : '').trim();
|
|
277
|
+
if (key)
|
|
278
|
+
out[key] = entry.value;
|
|
279
|
+
}
|
|
280
|
+
return out;
|
|
281
|
+
}
|
|
282
|
+
function phonesMatch(a, b) {
|
|
283
|
+
const da = digitsOnly(a);
|
|
284
|
+
const db = digitsOnly(b);
|
|
285
|
+
if (!da || !db)
|
|
286
|
+
return false;
|
|
287
|
+
if (da === db)
|
|
288
|
+
return true;
|
|
289
|
+
const sa = da.replace(/^0+/, '');
|
|
290
|
+
const sb = db.replace(/^0+/, '');
|
|
291
|
+
if (sa.length < 7 || sb.length < 7)
|
|
292
|
+
return false;
|
|
293
|
+
return sa.endsWith(sb) || sb.endsWith(sa);
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=GenericFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/WebzzConnect/GenericFunctions.ts"],"names":[],"mappings":";;;AAgFA,gCAEC;AAGD,8CAaC;AAGD,8CAOC;AA2BD,oCAiBC;AAiBD,8CAMC;AAMD,wBAMC;AAOD,sCAYC;AAGD,oCAgBC;AAGD,sCA+CC;AAGD,wCAyBC;AAMD,oCAUC;AAGD,oCAWC;AAaD,gCAqBC;AAGD,0BAOC;AAED,4BAIC;AAGD,sCAQC;AAGD,sCAQC;AAGD,kCASC;AArZD,+CAAgE;AAEnD,QAAA,QAAQ,GAAG,6BAA6B,CAAC;AAEzC,QAAA,kBAAkB,GAAG,iBAAiB,CAAC;AACvC,QAAA,eAAe,GAAG,uBAAuB,CAAC;AAG1C,QAAA,sBAAsB,GAAoB;IACtD,WAAW,EAAE,gBAAgB;IAC7B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE;QACR,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KACnC;IACD,OAAO,EAAE,QAAQ;IACjB,WAAW,EACV,yPAAyP;CAC1P,CAAC;AAGW,QAAA,IAAI,GAAG;IACnB,gBAAgB,EACf,mLAAmL;IACpL,qBAAqB,EACpB,+GAA+G;IAChH,cAAc,EACb,2HAA2H;IAC5H,iBAAiB,EAChB,gNAAgN;CACjN,CAAC;AAEF,MAAM,UAAU,GAA2B;IAC1C,kBAAkB,EACjB,sIAAsI;IACvI,kBAAkB,EACjB,kLAAkL;IACnL,4BAA4B,EAC3B,wKAAwK;IACzK,2BAA2B,EAC1B,mIAAmI;IACpI,8BAA8B,EAC7B,0OAA0O;IAC3O,0BAA0B,EACzB,kGAAkG;CACnG,CAAC;AAsBF,SAAgB,UAAU,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAGD,SAAgB,iBAAiB,CAAI,KAAQ;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAiB,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAoB,CAAC,EAAE,CAAC;YACjE,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,KAAK,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,KAAU,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAGD,SAAgB,iBAAiB;IAEhC,MAAM,QAAQ,GACb,cAAc,IAAI,IAAI;QACrB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,EAAE,QAAQ,CAAC;QACtD,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,uBAAe,CAAC,CAAC,CAAC,0BAAkB,CAAC;AACrE,CAAC;AAGD,MAAM,cAAc,GAAG,IAAI,OAAO,EAAuB,CAAC;AAE1D,KAAK,UAAU,WAAW,CAEzB,MAA2B,EAC3B,GAAW,EACX,OAAuB;IAEvB,MAAM,cAAc,GAAwB;QAC3C,MAAM;QACN,GAAG;QACH,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACvC,CAAC;IACF,IAAI,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,cAAc,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IACrF,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7F,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAC3D,IAAI,EACJ,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,cAAc,CACd,CAAC;AACH,CAAC;AAGM,KAAK,UAAU,YAAY;IACjC,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,cAAc,KAAK,uBAAe,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,WAAW,CAAC,cAAyC,CAAC;QACxE,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,MAAK,SAAS,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC1E,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAkC,CAAC;IACnF,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,MAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,yHAAyH,CACzH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAGD,KAAK,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CACnC,IAAI,EACJ,KAAK,EACL,GAAG,gBAAQ,oBAAoB,EAC/B,EAAE,CACF,CAAgB,CAAC;IAClB,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC;AACb,CAAC;AAGM,KAAK,UAAU,iBAAiB;IACtC,IAAI,CAAC;QACJ,OAAO,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;AACF,CAAC;AAMD,SAAgB,MAAM,CAAkB,KAAc;IACrD,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAOD,SAAgB,aAAa,CAE5B,KAAc;IAEd,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,GAAG,uDAAuD,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,YAAI,CAAC,cAAc,CAAC,CAAC;IAC7F,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9E,CAAC;AAGM,KAAK,UAAU,YAAY,CAEjC,MAA2B,EAC3B,IAAY,EACZ,UAA0B,EAAE;IAE5B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAQ,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,MAAM,WAAW,CAAC,IAAI,CAC5B,IAAI,EACJ,MAAM,EACN,GAAG,gBAAQ,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,EACpE,OAAO,CACP,CAAC;AACH,CAAC;AAGD,SAAgB,aAAa,CAAC,KAAc;;IAC3C,MAAM,GAAG,GAAG,KAYX,CAAC;IACF,MAAM,QAAQ,GAAG,MAAA,GAAG,CAAC,QAAQ,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,QAAQ,CAAC;IACrD,MAAM,SAAS,GACd,MAAA,MAAA,MAAA,MAAA,GAAG,CAAC,QAAQ,mCAAI,GAAG,CAAC,UAAU,mCAAI,GAAG,CAAC,MAAM,mCAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,MAAM,CAAC;IACvF,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvE,IAAI,IAAI,GAAY,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,MAAA,GAAG,CAAC,OAAO,0CAAE,IAAI,CAAC;IAC1E,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACF,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjG,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAA,MAAA,UAAU,CAAC,OAAO,mCAAI,UAAU,CAAC,iBAAiB,mCAAI,UAAU,CAAC,KAAK,CAAC;QACtF,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,GAAG,MAAM,CAAC;aAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,GAAI,UAAU,CAAC,MAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjG,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,mCAAI,EAAE,CAAgB,CAAC;IACzD,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAEpE,OAAO;QACN,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACpD,OAAO,EAAE,OAAO,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,IAAI,eAAe;QACrE,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QACrE,IAAI,EAAE,UAAU;KAChB,CAAC;AACH,CAAC;AAGD,SAAgB,cAAc,CAAkB,KAAc;;IAC7D,IAAI,KAAK,YAAY,iCAAkB;QAAE,MAAM,KAAK,CAAC;IACrD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,OAAO,GAAiE;QAC7E,OAAO,EAAE,IAAI,CAAC,OAAO;KACrB,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,mCAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAElD,IAAI,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,GAAG,iCAAiC,CAAC;QACpD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU;YACpC,CAAC,CAAC,2DAA2D,IAAI,CAAC,UAAU,kFAAkF;YAC9J,CAAC,CAAC,wJAAwJ,CAAC;IAC7J,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,GAAG,2KAA2K,IAAI,CAAC,OAAO,GAAG,CAAC;IAC9M,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO,CAAC,WAAW;YAClB,sMAAsM,CAAC;IACzM,CAAC;IACD,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAmB,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAMD,SAAgB,YAAY,CAC3B,IAAW,EACX,KAAc,EACd,SAAiB;IAEjB,IAAI,KAAK,YAAY,2BAAY,IAAI,KAAK,YAAY,iCAAkB,EAAE,CAAC;QAC1E,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QACpC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,2BAAY,CAAC,IAAI,EAAE,KAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AACnE,CAAC;AAGM,KAAK,UAAU,YAAY,CAEjC,MAA2B,EAC3B,IAAY,EACZ,UAA0B,EAAE;IAE5B,IAAI,CAAC;QACJ,OAAO,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;AACF,CAAC;AAaM,KAAK,UAAU,UAAU,CAE/B,IAAY,EACZ,OAAwB;;IAExB,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC3D,EAAE,EAAE,EAAE,GAAG,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,EAAE,CAAC,EAAE,IAAI,EAAE;SACnC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK;YAAE,MAAM;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO;YAC3B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;YAClC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QACvC,IAAI,EAAE,CAAC;IACR,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAGD,SAAgB,OAAO,CAAC,QAAiB;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAyB,CAAC;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAkB,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACtC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1E,CAAC,CAAE,KAAqB;QACxB,CAAC,CAAC,EAAE,CAAC;AACP,CAAC;AAGD,SAAgB,aAAa,CAAC,QAAiB;IAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAGD,SAAgB,aAAa,CAAC,KAA8B;;IAC3D,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAoC,mCAAI,EAAE,CAAC;IACnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAA,KAAK,CAAC,GAAG,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,GAAG;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAe,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAGD,SAAgB,WAAW,CAAC,CAAS,EAAE,CAAS;IAC/C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodePropertyOptions, INodeType, INodeTypeDescription, ResourceMapperFields } from 'n8n-workflow';
|
|
2
|
+
export declare class WebzzConnect implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
methods: {
|
|
5
|
+
resourceMapping: {
|
|
6
|
+
getTemplateFields(this: ILoadOptionsFunctions): Promise<ResourceMapperFields>;
|
|
7
|
+
};
|
|
8
|
+
loadOptions: {
|
|
9
|
+
getPipelines(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
10
|
+
getStages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
11
|
+
getLostReasons(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
12
|
+
getInboxes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
13
|
+
getAgents(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
14
|
+
getTeams(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
15
|
+
getWhatsAppInboxes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
16
|
+
getWhatsAppTemplates(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
20
|
+
}
|