@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.
Files changed (124) hide show
  1. package/dist/nodes/YCloud/YCloud.node.d.ts +8 -5
  2. package/dist/nodes/YCloud/YCloud.node.js +62 -2230
  3. package/dist/nodes/YCloud/YCloud.node.js.map +1 -1
  4. package/dist/nodes/YCloud/actions/balance.action.d.ts +2 -0
  5. package/dist/nodes/YCloud/actions/balance.action.js +8 -0
  6. package/dist/nodes/YCloud/actions/balance.action.js.map +1 -0
  7. package/dist/nodes/YCloud/actions/contact.action.d.ts +2 -0
  8. package/dist/nodes/YCloud/actions/contact.action.js +68 -0
  9. package/dist/nodes/YCloud/actions/contact.action.js.map +1 -0
  10. package/dist/nodes/YCloud/actions/customEvent.action.d.ts +2 -0
  11. package/dist/nodes/YCloud/actions/customEvent.action.js +65 -0
  12. package/dist/nodes/YCloud/actions/customEvent.action.js.map +1 -0
  13. package/dist/nodes/YCloud/actions/email.action.d.ts +2 -0
  14. package/dist/nodes/YCloud/actions/email.action.js +28 -0
  15. package/dist/nodes/YCloud/actions/email.action.js.map +1 -0
  16. package/dist/nodes/YCloud/actions/index.d.ts +17 -0
  17. package/dist/nodes/YCloud/actions/index.js +54 -0
  18. package/dist/nodes/YCloud/actions/index.js.map +1 -0
  19. package/dist/nodes/YCloud/actions/sms.action.d.ts +2 -0
  20. package/dist/nodes/YCloud/actions/sms.action.js +42 -0
  21. package/dist/nodes/YCloud/actions/sms.action.js.map +1 -0
  22. package/dist/nodes/YCloud/actions/unsubscriber.action.d.ts +2 -0
  23. package/dist/nodes/YCloud/actions/unsubscriber.action.js +38 -0
  24. package/dist/nodes/YCloud/actions/unsubscriber.action.js.map +1 -0
  25. package/dist/nodes/YCloud/actions/verification.action.d.ts +2 -0
  26. package/dist/nodes/YCloud/actions/verification.action.js +34 -0
  27. package/dist/nodes/YCloud/actions/verification.action.js.map +1 -0
  28. package/dist/nodes/YCloud/actions/voice.action.d.ts +2 -0
  29. package/dist/nodes/YCloud/actions/voice.action.js +31 -0
  30. package/dist/nodes/YCloud/actions/voice.action.js.map +1 -0
  31. package/dist/nodes/YCloud/actions/webhookEndpoint.action.d.ts +2 -0
  32. package/dist/nodes/YCloud/actions/webhookEndpoint.action.js +53 -0
  33. package/dist/nodes/YCloud/actions/webhookEndpoint.action.js.map +1 -0
  34. package/dist/nodes/YCloud/actions/whatsappBusinessAccount.action.d.ts +2 -0
  35. package/dist/nodes/YCloud/actions/whatsappBusinessAccount.action.js +22 -0
  36. package/dist/nodes/YCloud/actions/whatsappBusinessAccount.action.js.map +1 -0
  37. package/dist/nodes/YCloud/actions/whatsappCalling.action.d.ts +2 -0
  38. package/dist/nodes/YCloud/actions/whatsappCalling.action.js +37 -0
  39. package/dist/nodes/YCloud/actions/whatsappCalling.action.js.map +1 -0
  40. package/dist/nodes/YCloud/actions/whatsappFlow.action.d.ts +2 -0
  41. package/dist/nodes/YCloud/actions/whatsappFlow.action.js +61 -0
  42. package/dist/nodes/YCloud/actions/whatsappFlow.action.js.map +1 -0
  43. package/dist/nodes/YCloud/actions/whatsappInboundMessage.action.d.ts +2 -0
  44. package/dist/nodes/YCloud/actions/whatsappInboundMessage.action.js +16 -0
  45. package/dist/nodes/YCloud/actions/whatsappInboundMessage.action.js.map +1 -0
  46. package/dist/nodes/YCloud/actions/whatsappMedia.action.d.ts +2 -0
  47. package/dist/nodes/YCloud/actions/whatsappMedia.action.js +33 -0
  48. package/dist/nodes/YCloud/actions/whatsappMedia.action.js.map +1 -0
  49. package/dist/nodes/YCloud/actions/whatsappMessage.action.d.ts +2 -0
  50. package/dist/nodes/YCloud/actions/whatsappMessage.action.js +114 -0
  51. package/dist/nodes/YCloud/actions/whatsappMessage.action.js.map +1 -0
  52. package/dist/nodes/YCloud/actions/whatsappPhoneNumber.action.d.ts +2 -0
  53. package/dist/nodes/YCloud/actions/whatsappPhoneNumber.action.js +73 -0
  54. package/dist/nodes/YCloud/actions/whatsappPhoneNumber.action.js.map +1 -0
  55. package/dist/nodes/YCloud/actions/whatsappTemplate.action.d.ts +2 -0
  56. package/dist/nodes/YCloud/actions/whatsappTemplate.action.js +60 -0
  57. package/dist/nodes/YCloud/actions/whatsappTemplate.action.js.map +1 -0
  58. package/dist/nodes/YCloud/descriptions/balance.description.d.ts +2 -0
  59. package/dist/nodes/YCloud/descriptions/balance.description.js +15 -0
  60. package/dist/nodes/YCloud/descriptions/balance.description.js.map +1 -0
  61. package/dist/nodes/YCloud/descriptions/contact.description.d.ts +2 -0
  62. package/dist/nodes/YCloud/descriptions/contact.description.js +75 -0
  63. package/dist/nodes/YCloud/descriptions/contact.description.js.map +1 -0
  64. package/dist/nodes/YCloud/descriptions/customEvent.description.d.ts +2 -0
  65. package/dist/nodes/YCloud/descriptions/customEvent.description.js +93 -0
  66. package/dist/nodes/YCloud/descriptions/customEvent.description.js.map +1 -0
  67. package/dist/nodes/YCloud/descriptions/email.description.d.ts +2 -0
  68. package/dist/nodes/YCloud/descriptions/email.description.js +68 -0
  69. package/dist/nodes/YCloud/descriptions/email.description.js.map +1 -0
  70. package/dist/nodes/YCloud/descriptions/index.d.ts +2 -0
  71. package/dist/nodes/YCloud/descriptions/index.js +67 -0
  72. package/dist/nodes/YCloud/descriptions/index.js.map +1 -0
  73. package/dist/nodes/YCloud/descriptions/shared.d.ts +3 -0
  74. package/dist/nodes/YCloud/descriptions/shared.js +19 -0
  75. package/dist/nodes/YCloud/descriptions/shared.js.map +1 -0
  76. package/dist/nodes/YCloud/descriptions/sms.description.d.ts +2 -0
  77. package/dist/nodes/YCloud/descriptions/sms.description.js +67 -0
  78. package/dist/nodes/YCloud/descriptions/sms.description.js.map +1 -0
  79. package/dist/nodes/YCloud/descriptions/unsubscriber.description.d.ts +2 -0
  80. package/dist/nodes/YCloud/descriptions/unsubscriber.description.js +56 -0
  81. package/dist/nodes/YCloud/descriptions/unsubscriber.description.js.map +1 -0
  82. package/dist/nodes/YCloud/descriptions/verification.description.d.ts +2 -0
  83. package/dist/nodes/YCloud/descriptions/verification.description.js +77 -0
  84. package/dist/nodes/YCloud/descriptions/verification.description.js.map +1 -0
  85. package/dist/nodes/YCloud/descriptions/voice.description.d.ts +2 -0
  86. package/dist/nodes/YCloud/descriptions/voice.description.js +54 -0
  87. package/dist/nodes/YCloud/descriptions/voice.description.js.map +1 -0
  88. package/dist/nodes/YCloud/descriptions/webhookEndpoint.description.d.ts +2 -0
  89. package/dist/nodes/YCloud/descriptions/webhookEndpoint.description.js +91 -0
  90. package/dist/nodes/YCloud/descriptions/webhookEndpoint.description.js.map +1 -0
  91. package/dist/nodes/YCloud/descriptions/whatsappBusinessAccount.description.d.ts +2 -0
  92. package/dist/nodes/YCloud/descriptions/whatsappBusinessAccount.description.js +30 -0
  93. package/dist/nodes/YCloud/descriptions/whatsappBusinessAccount.description.js.map +1 -0
  94. package/dist/nodes/YCloud/descriptions/whatsappCalling.description.d.ts +2 -0
  95. package/dist/nodes/YCloud/descriptions/whatsappCalling.description.js +69 -0
  96. package/dist/nodes/YCloud/descriptions/whatsappCalling.description.js.map +1 -0
  97. package/dist/nodes/YCloud/descriptions/whatsappFlow.description.d.ts +2 -0
  98. package/dist/nodes/YCloud/descriptions/whatsappFlow.description.js +94 -0
  99. package/dist/nodes/YCloud/descriptions/whatsappFlow.description.js.map +1 -0
  100. package/dist/nodes/YCloud/descriptions/whatsappInboundMessage.description.d.ts +2 -0
  101. package/dist/nodes/YCloud/descriptions/whatsappInboundMessage.description.js +28 -0
  102. package/dist/nodes/YCloud/descriptions/whatsappInboundMessage.description.js.map +1 -0
  103. package/dist/nodes/YCloud/descriptions/whatsappMedia.description.d.ts +2 -0
  104. package/dist/nodes/YCloud/descriptions/whatsappMedia.description.js +34 -0
  105. package/dist/nodes/YCloud/descriptions/whatsappMedia.description.js.map +1 -0
  106. package/dist/nodes/YCloud/descriptions/whatsappMessage.description.d.ts +2 -0
  107. package/dist/nodes/YCloud/descriptions/whatsappMessage.description.js +305 -0
  108. package/dist/nodes/YCloud/descriptions/whatsappMessage.description.js.map +1 -0
  109. package/dist/nodes/YCloud/descriptions/whatsappPhoneNumber.description.d.ts +2 -0
  110. package/dist/nodes/YCloud/descriptions/whatsappPhoneNumber.description.js +92 -0
  111. package/dist/nodes/YCloud/descriptions/whatsappPhoneNumber.description.js.map +1 -0
  112. package/dist/nodes/YCloud/descriptions/whatsappTemplate.description.d.ts +2 -0
  113. package/dist/nodes/YCloud/descriptions/whatsappTemplate.description.js +87 -0
  114. package/dist/nodes/YCloud/descriptions/whatsappTemplate.description.js.map +1 -0
  115. package/dist/nodes/YCloud/methods/index.d.ts +15 -0
  116. package/dist/nodes/YCloud/methods/index.js +52 -0
  117. package/dist/nodes/YCloud/methods/index.js.map +1 -0
  118. package/dist/nodes/YCloud/methods/listSearch.d.ts +4 -0
  119. package/dist/nodes/YCloud/methods/listSearch.js +63 -0
  120. package/dist/nodes/YCloud/methods/listSearch.js.map +1 -0
  121. package/dist/nodes/YCloud/methods/loadOptions.d.ts +5 -0
  122. package/dist/nodes/YCloud/methods/loadOptions.js +107 -0
  123. package/dist/nodes/YCloud/methods/loadOptions.js.map +1 -0
  124. 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@growsalesai/n8n-nodes-ycloud",
3
- "version": "0.1.9",
3
+ "version": "0.2.1",
4
4
  "description": "n8n community nodes for YCloud API — WhatsApp, SMS, Email, Voice, Verification and more",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",