@growsalesai/n8n-nodes-ycloud 0.1.9 → 0.2.1
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/dist/nodes/YCloud/YCloud.node.d.ts +8 -5
- package/dist/nodes/YCloud/YCloud.node.js +62 -2230
- package/dist/nodes/YCloud/YCloud.node.js.map +1 -1
- package/dist/nodes/YCloud/actions/balance.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/balance.action.js +8 -0
- package/dist/nodes/YCloud/actions/balance.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/contact.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/contact.action.js +68 -0
- package/dist/nodes/YCloud/actions/contact.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/customEvent.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/customEvent.action.js +65 -0
- package/dist/nodes/YCloud/actions/customEvent.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/email.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/email.action.js +28 -0
- package/dist/nodes/YCloud/actions/email.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/index.d.ts +17 -0
- package/dist/nodes/YCloud/actions/index.js +54 -0
- package/dist/nodes/YCloud/actions/index.js.map +1 -0
- package/dist/nodes/YCloud/actions/sms.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/sms.action.js +42 -0
- package/dist/nodes/YCloud/actions/sms.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/unsubscriber.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/unsubscriber.action.js +38 -0
- package/dist/nodes/YCloud/actions/unsubscriber.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/verification.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/verification.action.js +34 -0
- package/dist/nodes/YCloud/actions/verification.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/voice.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/voice.action.js +31 -0
- package/dist/nodes/YCloud/actions/voice.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/webhookEndpoint.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/webhookEndpoint.action.js +53 -0
- package/dist/nodes/YCloud/actions/webhookEndpoint.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/whatsappBusinessAccount.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/whatsappBusinessAccount.action.js +22 -0
- package/dist/nodes/YCloud/actions/whatsappBusinessAccount.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/whatsappCalling.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/whatsappCalling.action.js +37 -0
- package/dist/nodes/YCloud/actions/whatsappCalling.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/whatsappFlow.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/whatsappFlow.action.js +61 -0
- package/dist/nodes/YCloud/actions/whatsappFlow.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/whatsappInboundMessage.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/whatsappInboundMessage.action.js +16 -0
- package/dist/nodes/YCloud/actions/whatsappInboundMessage.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/whatsappMedia.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/whatsappMedia.action.js +33 -0
- package/dist/nodes/YCloud/actions/whatsappMedia.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/whatsappMessage.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/whatsappMessage.action.js +114 -0
- package/dist/nodes/YCloud/actions/whatsappMessage.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/whatsappPhoneNumber.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/whatsappPhoneNumber.action.js +73 -0
- package/dist/nodes/YCloud/actions/whatsappPhoneNumber.action.js.map +1 -0
- package/dist/nodes/YCloud/actions/whatsappTemplate.action.d.ts +2 -0
- package/dist/nodes/YCloud/actions/whatsappTemplate.action.js +60 -0
- package/dist/nodes/YCloud/actions/whatsappTemplate.action.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/balance.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/balance.description.js +15 -0
- package/dist/nodes/YCloud/descriptions/balance.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/contact.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/contact.description.js +75 -0
- package/dist/nodes/YCloud/descriptions/contact.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/customEvent.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/customEvent.description.js +93 -0
- package/dist/nodes/YCloud/descriptions/customEvent.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/email.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/email.description.js +68 -0
- package/dist/nodes/YCloud/descriptions/email.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/index.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/index.js +67 -0
- package/dist/nodes/YCloud/descriptions/index.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/shared.d.ts +3 -0
- package/dist/nodes/YCloud/descriptions/shared.js +19 -0
- package/dist/nodes/YCloud/descriptions/shared.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/sms.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/sms.description.js +67 -0
- package/dist/nodes/YCloud/descriptions/sms.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/unsubscriber.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/unsubscriber.description.js +56 -0
- package/dist/nodes/YCloud/descriptions/unsubscriber.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/verification.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/verification.description.js +77 -0
- package/dist/nodes/YCloud/descriptions/verification.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/voice.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/voice.description.js +54 -0
- package/dist/nodes/YCloud/descriptions/voice.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/webhookEndpoint.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/webhookEndpoint.description.js +91 -0
- package/dist/nodes/YCloud/descriptions/webhookEndpoint.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/whatsappBusinessAccount.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/whatsappBusinessAccount.description.js +30 -0
- package/dist/nodes/YCloud/descriptions/whatsappBusinessAccount.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/whatsappCalling.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/whatsappCalling.description.js +69 -0
- package/dist/nodes/YCloud/descriptions/whatsappCalling.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/whatsappFlow.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/whatsappFlow.description.js +94 -0
- package/dist/nodes/YCloud/descriptions/whatsappFlow.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/whatsappInboundMessage.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/whatsappInboundMessage.description.js +28 -0
- package/dist/nodes/YCloud/descriptions/whatsappInboundMessage.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/whatsappMedia.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/whatsappMedia.description.js +34 -0
- package/dist/nodes/YCloud/descriptions/whatsappMedia.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/whatsappMessage.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/whatsappMessage.description.js +305 -0
- package/dist/nodes/YCloud/descriptions/whatsappMessage.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/whatsappPhoneNumber.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/whatsappPhoneNumber.description.js +92 -0
- package/dist/nodes/YCloud/descriptions/whatsappPhoneNumber.description.js.map +1 -0
- package/dist/nodes/YCloud/descriptions/whatsappTemplate.description.d.ts +2 -0
- package/dist/nodes/YCloud/descriptions/whatsappTemplate.description.js +87 -0
- package/dist/nodes/YCloud/descriptions/whatsappTemplate.description.js.map +1 -0
- package/dist/nodes/YCloud/methods/index.d.ts +15 -0
- package/dist/nodes/YCloud/methods/index.js +52 -0
- package/dist/nodes/YCloud/methods/index.js.map +1 -0
- package/dist/nodes/YCloud/methods/listSearch.d.ts +4 -0
- package/dist/nodes/YCloud/methods/listSearch.js +63 -0
- package/dist/nodes/YCloud/methods/listSearch.js.map +1 -0
- package/dist/nodes/YCloud/methods/loadOptions.d.ts +5 -0
- package/dist/nodes/YCloud/methods/loadOptions.js +107 -0
- package/dist/nodes/YCloud/methods/loadOptions.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTemplates = getTemplates;
|
|
4
|
+
exports.getWhatsAppPhoneNumbers = getWhatsAppPhoneNumbers;
|
|
5
|
+
exports.getContacts = getContacts;
|
|
6
|
+
const GenericFunctions_1 = require("../GenericFunctions");
|
|
7
|
+
async function getTemplates(filter) {
|
|
8
|
+
const response = await GenericFunctions_1.ycloudApiRequest.call(this, 'GET', '/whatsapp/templates', undefined, { limit: 100 });
|
|
9
|
+
const items = (response.items || []);
|
|
10
|
+
const results = items
|
|
11
|
+
.filter((t) => { var _a; return !filter || ((_a = t.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(filter.toLowerCase())); })
|
|
12
|
+
.map((t) => {
|
|
13
|
+
const components = (t.components || []);
|
|
14
|
+
const body = components.find((c) => { var _a; return ((_a = c.type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'BODY'; });
|
|
15
|
+
const bodyVarCount = body
|
|
16
|
+
? [...new Set((body.text || '').match(/\{\{\d+\}\}/g) || [])].length
|
|
17
|
+
: 0;
|
|
18
|
+
const buttonsComp = components.find((c) => { var _a; return ((_a = c.type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'BUTTONS'; });
|
|
19
|
+
const btns = buttonsComp ? (buttonsComp.buttons || []) : [];
|
|
20
|
+
const urlBtnCount = btns.filter((b) => { var _a, _b; return ((_a = b.type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'URL' && ((_b = b.url) === null || _b === void 0 ? void 0 : _b.includes('{{1}}')); }).length;
|
|
21
|
+
const header = components.find((c) => { var _a; return ((_a = c.type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'HEADER'; });
|
|
22
|
+
const headerInfo = header ? header.format || 'TEXT' : 'none';
|
|
23
|
+
return {
|
|
24
|
+
name: `${t.name} (${t.language})`,
|
|
25
|
+
value: t.name,
|
|
26
|
+
description: `${t.category || ''} | ${t.status || ''} | header: ${headerInfo} | body vars: ${bodyVarCount} | URL btn vars: ${urlBtnCount}`,
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
return { results };
|
|
30
|
+
}
|
|
31
|
+
async function getWhatsAppPhoneNumbers(filter) {
|
|
32
|
+
const response = await GenericFunctions_1.ycloudApiRequest.call(this, 'GET', '/whatsapp/phoneNumbers');
|
|
33
|
+
const items = (response.items || []);
|
|
34
|
+
const results = items
|
|
35
|
+
.filter((n) => {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
return !filter ||
|
|
38
|
+
((_a = n.displayPhoneNumber) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(filter.toLowerCase())) ||
|
|
39
|
+
((_b = n.verifiedName) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(filter.toLowerCase()));
|
|
40
|
+
})
|
|
41
|
+
.map((n) => ({
|
|
42
|
+
name: `${n.displayPhoneNumber || n.phoneNumber} — ${n.verifiedName || n.id}`,
|
|
43
|
+
value: n.phoneNumber,
|
|
44
|
+
}));
|
|
45
|
+
return { results };
|
|
46
|
+
}
|
|
47
|
+
async function getContacts(filter) {
|
|
48
|
+
const response = await GenericFunctions_1.ycloudApiRequest.call(this, 'GET', '/contacts', undefined, { limit: 100 });
|
|
49
|
+
const items = (response.items || []);
|
|
50
|
+
const results = items
|
|
51
|
+
.filter((c) => {
|
|
52
|
+
var _a, _b;
|
|
53
|
+
return !filter ||
|
|
54
|
+
((_a = c.nickname) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(filter.toLowerCase())) ||
|
|
55
|
+
((_b = c.phoneNumber) === null || _b === void 0 ? void 0 : _b.includes(filter));
|
|
56
|
+
})
|
|
57
|
+
.map((c) => ({
|
|
58
|
+
name: `${c.nickname || c.phoneNumber} — ${c.phoneNumber}`,
|
|
59
|
+
value: c.phoneNumber,
|
|
60
|
+
}));
|
|
61
|
+
return { results };
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=listSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listSearch.js","sourceRoot":"","sources":["../../../../nodes/YCloud/methods/listSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ILoadOptionsFunctions, INodePropertyOptions } from 'n8n-workflow';
|
|
2
|
+
export declare function getTemplateLanguages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
3
|
+
export declare function getTemplateHeaderInfo(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
4
|
+
export declare function getTemplateBodyInfo(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
5
|
+
export declare function getTemplateButtonsInfo(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTemplateLanguages = getTemplateLanguages;
|
|
4
|
+
exports.getTemplateHeaderInfo = getTemplateHeaderInfo;
|
|
5
|
+
exports.getTemplateBodyInfo = getTemplateBodyInfo;
|
|
6
|
+
exports.getTemplateButtonsInfo = getTemplateButtonsInfo;
|
|
7
|
+
const GenericFunctions_1 = require("../GenericFunctions");
|
|
8
|
+
async function getTemplateLanguages() {
|
|
9
|
+
const response = await GenericFunctions_1.ycloudApiRequest.call(this, 'GET', '/whatsapp/templates', undefined, { limit: 100 });
|
|
10
|
+
const items = (response.items || []);
|
|
11
|
+
const langs = [...new Set(items.map((t) => t.language))].filter(Boolean).sort();
|
|
12
|
+
return langs.map((l) => ({ name: l, value: l }));
|
|
13
|
+
}
|
|
14
|
+
async function fetchComponents(ctx, templateName, language) {
|
|
15
|
+
const response = await GenericFunctions_1.ycloudApiRequest.call(ctx, 'GET', '/whatsapp/templates', undefined, { limit: 100 });
|
|
16
|
+
const items = (response.items || []);
|
|
17
|
+
const tpl = items.find((t) => t.name === templateName && t.language === language);
|
|
18
|
+
if (!tpl)
|
|
19
|
+
return null;
|
|
20
|
+
return (tpl.components || []);
|
|
21
|
+
}
|
|
22
|
+
async function getTemplateHeaderInfo() {
|
|
23
|
+
const name = this.getNodeParameter('templateName', '', { extractValue: true });
|
|
24
|
+
const lang = this.getNodeParameter('templateLanguage', '');
|
|
25
|
+
if (!name || !lang) {
|
|
26
|
+
return [{ name: '— Select template and language, then click refresh —', value: '__pending__' }];
|
|
27
|
+
}
|
|
28
|
+
const components = await fetchComponents(this, name, lang);
|
|
29
|
+
if (!components) {
|
|
30
|
+
return [{ name: `Template "${name}" (${lang}) not found`, value: '__pending__' }];
|
|
31
|
+
}
|
|
32
|
+
const header = components.find((c) => { var _a; return ((_a = c.type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'HEADER'; });
|
|
33
|
+
if (!header) {
|
|
34
|
+
return [{ name: 'No header', value: 'none' }];
|
|
35
|
+
}
|
|
36
|
+
const format = (header.format || 'TEXT').toUpperCase();
|
|
37
|
+
const hasVar = (header.text || '').includes('{{1}}');
|
|
38
|
+
if (format === 'TEXT') {
|
|
39
|
+
return hasVar
|
|
40
|
+
? [{ name: 'TEXT — has {{1}} variable → fill "Header Variable" below', value: 'text_var' }]
|
|
41
|
+
: [{ name: 'TEXT — no variable → leave header fields empty', value: 'text_novar' }];
|
|
42
|
+
}
|
|
43
|
+
return [{ name: `${format} → fill "Header Media URL or ID" below`, value: format.toLowerCase() }];
|
|
44
|
+
}
|
|
45
|
+
async function getTemplateBodyInfo() {
|
|
46
|
+
const name = this.getNodeParameter('templateName', '', { extractValue: true });
|
|
47
|
+
const lang = this.getNodeParameter('templateLanguage', '');
|
|
48
|
+
if (!name || !lang) {
|
|
49
|
+
return [{ name: '— Select template and language, then click refresh —', value: '__pending__' }];
|
|
50
|
+
}
|
|
51
|
+
const components = await fetchComponents(this, name, lang);
|
|
52
|
+
if (!components) {
|
|
53
|
+
return [{ name: `Template "${name}" (${lang}) not found`, value: '__pending__' }];
|
|
54
|
+
}
|
|
55
|
+
const body = components.find((c) => { var _a; return ((_a = c.type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'BODY'; });
|
|
56
|
+
if (!body) {
|
|
57
|
+
return [{ name: 'No body variables', value: 'no_vars' }];
|
|
58
|
+
}
|
|
59
|
+
const text = body.text || '';
|
|
60
|
+
const vars = [...new Set(text.match(/\{\{\d+\}\}/g) || [])].sort();
|
|
61
|
+
if (vars.length === 0) {
|
|
62
|
+
return [{ name: 'No body variables → leave "Body Variables" empty', value: 'no_vars' }];
|
|
63
|
+
}
|
|
64
|
+
const result = [
|
|
65
|
+
{
|
|
66
|
+
name: `${vars.length} variable${vars.length !== 1 ? 's' : ''}: ${vars.join(', ')} → add ${vars.length} item${vars.length !== 1 ? 's' : ''} in "Body Variables" below`,
|
|
67
|
+
value: 'has_vars',
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
vars.forEach((v, i) => {
|
|
71
|
+
result.push({ name: ` [${i + 1}] ${v} → Body Variables item ${i + 1}`, value: `var${i + 1}` });
|
|
72
|
+
});
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
async function getTemplateButtonsInfo() {
|
|
76
|
+
const name = this.getNodeParameter('templateName', '', { extractValue: true });
|
|
77
|
+
const lang = this.getNodeParameter('templateLanguage', '');
|
|
78
|
+
if (!name || !lang) {
|
|
79
|
+
return [{ name: '— Select template and language, then click refresh —', value: '__pending__' }];
|
|
80
|
+
}
|
|
81
|
+
const components = await fetchComponents(this, name, lang);
|
|
82
|
+
if (!components) {
|
|
83
|
+
return [{ name: `Template "${name}" (${lang}) not found`, value: '__pending__' }];
|
|
84
|
+
}
|
|
85
|
+
const buttonsComp = components.find((c) => { var _a; return ((_a = c.type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'BUTTONS'; });
|
|
86
|
+
if (!buttonsComp) {
|
|
87
|
+
return [{ name: 'No buttons', value: 'no_url_vars' }];
|
|
88
|
+
}
|
|
89
|
+
const btns = buttonsComp.buttons || [];
|
|
90
|
+
const urlBtns = btns.filter((b) => { var _a, _b; return ((_a = b.type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'URL' && ((_b = b.url) === null || _b === void 0 ? void 0 : _b.includes('{{1}}')); });
|
|
91
|
+
const summaryValue = urlBtns.length > 0 ? 'has_url_vars' : 'no_url_vars';
|
|
92
|
+
const summaryName = urlBtns.length > 0
|
|
93
|
+
? `${btns.length} button${btns.length !== 1 ? 's' : ''} — ${urlBtns.length} need URL variable${urlBtns.length !== 1 ? 's' : ''} → add ${urlBtns.length} item${urlBtns.length !== 1 ? 's' : ''} in "Button URL Variables" below`
|
|
94
|
+
: `${btns.length} button${btns.length !== 1 ? 's' : ''} — no URL variables needed → leave "Button URL Variables" empty`;
|
|
95
|
+
const result = [{ name: summaryName, value: summaryValue }];
|
|
96
|
+
btns.forEach((btn, idx) => {
|
|
97
|
+
var _a;
|
|
98
|
+
const type = (btn.type || '?').toUpperCase();
|
|
99
|
+
const hasUrlVar = type === 'URL' && ((_a = btn.url) === null || _a === void 0 ? void 0 : _a.includes('{{1}}'));
|
|
100
|
+
result.push({
|
|
101
|
+
name: ` [${idx}] "${btn.text}" (${type})${hasUrlVar ? ` → Button URL Variables: index ${idx}` : ''}`,
|
|
102
|
+
value: hasUrlVar ? `url_btn_${idx}` : `btn_${idx}`,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=loadOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadOptions.js","sourceRoot":"","sources":["../../../../nodes/YCloud/methods/loadOptions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED