@venturialstd/workflow 0.1.115 → 0.1.116

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 (138) hide show
  1. package/README.md +238 -238
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/modules/chatbot/actions/ask-question.action.d.ts +3 -0
  7. package/dist/modules/chatbot/actions/ask-question.action.d.ts.map +1 -0
  8. package/dist/modules/chatbot/actions/ask-question.action.js +42 -0
  9. package/dist/modules/chatbot/actions/ask-question.action.js.map +1 -0
  10. package/dist/modules/chatbot/actions/index.d.ts +4 -0
  11. package/dist/modules/chatbot/actions/index.d.ts.map +1 -0
  12. package/dist/modules/chatbot/actions/index.js +20 -0
  13. package/dist/modules/chatbot/actions/index.js.map +1 -0
  14. package/dist/modules/chatbot/actions/send-buttons.action.d.ts +3 -0
  15. package/dist/modules/chatbot/actions/send-buttons.action.d.ts.map +1 -0
  16. package/dist/modules/chatbot/actions/send-buttons.action.js +67 -0
  17. package/dist/modules/chatbot/actions/send-buttons.action.js.map +1 -0
  18. package/dist/modules/chatbot/actions/send-message.action.d.ts +3 -0
  19. package/dist/modules/chatbot/actions/send-message.action.d.ts.map +1 -0
  20. package/dist/modules/chatbot/actions/send-message.action.js +52 -0
  21. package/dist/modules/chatbot/actions/send-message.action.js.map +1 -0
  22. package/dist/modules/chatbot/chatbot-nest.module.d.ts +3 -0
  23. package/dist/modules/chatbot/chatbot-nest.module.d.ts.map +1 -0
  24. package/dist/modules/chatbot/chatbot-nest.module.js +21 -0
  25. package/dist/modules/chatbot/chatbot-nest.module.js.map +1 -0
  26. package/dist/modules/chatbot/chatbot.module.d.ts +3 -0
  27. package/dist/modules/chatbot/chatbot.module.d.ts.map +1 -0
  28. package/dist/modules/chatbot/chatbot.module.js +17 -0
  29. package/dist/modules/chatbot/chatbot.module.js.map +1 -0
  30. package/dist/modules/chatbot/credentials.d.ts +3 -0
  31. package/dist/modules/chatbot/credentials.d.ts.map +1 -0
  32. package/dist/modules/chatbot/credentials.js +5 -0
  33. package/dist/modules/chatbot/credentials.js.map +1 -0
  34. package/dist/modules/chatbot/services/ask-question.service.d.ts +5 -0
  35. package/dist/modules/chatbot/services/ask-question.service.d.ts.map +1 -0
  36. package/dist/modules/chatbot/services/ask-question.service.js +25 -0
  37. package/dist/modules/chatbot/services/ask-question.service.js.map +1 -0
  38. package/dist/modules/chatbot/services/index.d.ts +5 -0
  39. package/dist/modules/chatbot/services/index.d.ts.map +1 -0
  40. package/dist/modules/chatbot/services/index.js +21 -0
  41. package/dist/modules/chatbot/services/index.js.map +1 -0
  42. package/dist/modules/chatbot/services/send-buttons.service.d.ts +5 -0
  43. package/dist/modules/chatbot/services/send-buttons.service.d.ts.map +1 -0
  44. package/dist/modules/chatbot/services/send-buttons.service.js +25 -0
  45. package/dist/modules/chatbot/services/send-buttons.service.js.map +1 -0
  46. package/dist/modules/chatbot/services/send-message.service.d.ts +5 -0
  47. package/dist/modules/chatbot/services/send-message.service.d.ts.map +1 -0
  48. package/dist/modules/chatbot/services/send-message.service.js +27 -0
  49. package/dist/modules/chatbot/services/send-message.service.js.map +1 -0
  50. package/dist/modules/chatbot/services/user-responded.service.d.ts +5 -0
  51. package/dist/modules/chatbot/services/user-responded.service.d.ts.map +1 -0
  52. package/dist/modules/chatbot/services/user-responded.service.js +25 -0
  53. package/dist/modules/chatbot/services/user-responded.service.js.map +1 -0
  54. package/dist/modules/chatbot/triggers/index.d.ts +2 -0
  55. package/dist/modules/chatbot/triggers/index.d.ts.map +1 -0
  56. package/dist/modules/chatbot/triggers/index.js +18 -0
  57. package/dist/modules/chatbot/triggers/index.js.map +1 -0
  58. package/dist/modules/chatbot/triggers/user-responded.trigger.d.ts +3 -0
  59. package/dist/modules/chatbot/triggers/user-responded.trigger.d.ts.map +1 -0
  60. package/dist/modules/chatbot/triggers/user-responded.trigger.js +45 -0
  61. package/dist/modules/chatbot/triggers/user-responded.trigger.js.map +1 -0
  62. package/dist/modules/chatgpt/actions/chat-completion.action.d.ts.map +1 -1
  63. package/dist/modules/chatgpt/actions/chat-completion.action.js +4 -56
  64. package/dist/modules/chatgpt/actions/chat-completion.action.js.map +1 -1
  65. package/dist/modules/chatgpt/chatgpt-nest.module.d.ts.map +1 -1
  66. package/dist/modules/chatgpt/chatgpt-nest.module.js +0 -2
  67. package/dist/modules/chatgpt/chatgpt-nest.module.js.map +1 -1
  68. package/dist/modules/chatgpt/chatgpt.module.d.ts.map +1 -1
  69. package/dist/modules/chatgpt/chatgpt.module.js +0 -2
  70. package/dist/modules/chatgpt/chatgpt.module.js.map +1 -1
  71. package/dist/modules/chatgpt/services/chat-completion.service.d.ts +1 -4
  72. package/dist/modules/chatgpt/services/chat-completion.service.d.ts.map +1 -1
  73. package/dist/modules/chatgpt/services/chat-completion.service.js +19 -92
  74. package/dist/modules/chatgpt/services/chat-completion.service.js.map +1 -1
  75. package/dist/modules/email/actions/index.d.ts +3 -0
  76. package/dist/modules/email/actions/index.d.ts.map +1 -0
  77. package/dist/modules/email/actions/index.js +19 -0
  78. package/dist/modules/email/actions/index.js.map +1 -0
  79. package/dist/modules/email/actions/send-email.action.d.ts +3 -0
  80. package/dist/modules/email/actions/send-email.action.d.ts.map +1 -0
  81. package/dist/modules/email/actions/send-email.action.js +84 -0
  82. package/dist/modules/email/actions/send-email.action.js.map +1 -0
  83. package/dist/modules/email/actions/send-template-email.action.d.ts +3 -0
  84. package/dist/modules/email/actions/send-template-email.action.d.ts.map +1 -0
  85. package/dist/modules/email/actions/send-template-email.action.js +91 -0
  86. package/dist/modules/email/actions/send-template-email.action.js.map +1 -0
  87. package/dist/modules/email/auth/email-auth.service.d.ts +9 -0
  88. package/dist/modules/email/auth/email-auth.service.d.ts.map +1 -0
  89. package/dist/modules/email/auth/email-auth.service.js +150 -0
  90. package/dist/modules/email/auth/email-auth.service.js.map +1 -0
  91. package/dist/modules/email/auth/index.d.ts +2 -0
  92. package/dist/modules/email/auth/index.d.ts.map +1 -0
  93. package/dist/modules/email/auth/index.js +18 -0
  94. package/dist/modules/email/auth/index.js.map +1 -0
  95. package/dist/modules/email/credentials.d.ts +3 -0
  96. package/dist/modules/email/credentials.d.ts.map +1 -0
  97. package/dist/modules/email/credentials.js +81 -0
  98. package/dist/modules/email/credentials.js.map +1 -0
  99. package/dist/modules/email/email-nest.module.d.ts +3 -0
  100. package/dist/modules/email/email-nest.module.d.ts.map +1 -0
  101. package/dist/modules/email/email-nest.module.js +24 -0
  102. package/dist/modules/email/email-nest.module.js.map +1 -0
  103. package/dist/modules/email/email.module.d.ts +3 -0
  104. package/dist/modules/email/email.module.d.ts.map +1 -0
  105. package/dist/modules/email/email.module.js +19 -0
  106. package/dist/modules/email/email.module.js.map +1 -0
  107. package/dist/modules/email/services/index.d.ts +3 -0
  108. package/dist/modules/email/services/index.d.ts.map +1 -0
  109. package/dist/modules/email/services/index.js +19 -0
  110. package/dist/modules/email/services/index.js.map +1 -0
  111. package/dist/modules/email/services/send-email.service.d.ts +9 -0
  112. package/dist/modules/email/services/send-email.service.d.ts.map +1 -0
  113. package/dist/modules/email/services/send-email.service.js +99 -0
  114. package/dist/modules/email/services/send-email.service.js.map +1 -0
  115. package/dist/modules/email/services/send-template-email.service.d.ts +9 -0
  116. package/dist/modules/email/services/send-template-email.service.d.ts.map +1 -0
  117. package/dist/modules/email/services/send-template-email.service.js +99 -0
  118. package/dist/modules/email/services/send-template-email.service.js.map +1 -0
  119. package/dist/modules/email/utils/template-options.util.d.ts +6 -0
  120. package/dist/modules/email/utils/template-options.util.d.ts.map +1 -0
  121. package/dist/modules/email/utils/template-options.util.js +30 -0
  122. package/dist/modules/email/utils/template-options.util.js.map +1 -0
  123. package/dist/modules/index.d.ts +2 -0
  124. package/dist/modules/index.d.ts.map +1 -1
  125. package/dist/modules/index.js +9 -1
  126. package/dist/modules/index.js.map +1 -1
  127. package/dist/workflow.module.d.ts.map +1 -1
  128. package/dist/workflow.module.js +9 -3
  129. package/dist/workflow.module.js.map +1 -1
  130. package/package.json +107 -106
  131. package/dist/modules/chatgpt/auth/chatgpt-auth.service.d.ts +0 -5
  132. package/dist/modules/chatgpt/auth/chatgpt-auth.service.d.ts.map +0 -1
  133. package/dist/modules/chatgpt/auth/chatgpt-auth.service.js +0 -68
  134. package/dist/modules/chatgpt/auth/chatgpt-auth.service.js.map +0 -1
  135. package/dist/modules/chatgpt/constants/chatgpt-completion.constants.d.ts +0 -4
  136. package/dist/modules/chatgpt/constants/chatgpt-completion.constants.d.ts.map +0 -1
  137. package/dist/modules/chatgpt/constants/chatgpt-completion.constants.js +0 -32
  138. package/dist/modules/chatgpt/constants/chatgpt-completion.constants.js.map +0 -1
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var EmailAuthService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.EmailAuthService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const email_1 = require("@venturialstd/email");
16
+ let EmailAuthService = EmailAuthService_1 = class EmailAuthService {
17
+ emailService;
18
+ logger = new common_1.Logger(EmailAuthService_1.name);
19
+ constructor(emailService) {
20
+ this.emailService = emailService;
21
+ }
22
+ async authenticate(credentials) {
23
+ try {
24
+ if (!credentials || Object.keys(credentials).length === 0) {
25
+ return {
26
+ success: false,
27
+ message: 'SMTP credentials are required',
28
+ error: 'MISSING_CREDENTIALS',
29
+ };
30
+ }
31
+ const smtpHost = credentials.smtpHost;
32
+ const smtpPort = credentials.smtpPort;
33
+ const smtpUser = credentials.smtpUser;
34
+ const smtpPassword = credentials.smtpPassword;
35
+ const smtpSecure = credentials.smtpSecure;
36
+ if (!smtpHost || !smtpHost.trim()) {
37
+ return {
38
+ success: false,
39
+ message: 'SMTP host is required',
40
+ error: 'MISSING_SMTP_HOST',
41
+ };
42
+ }
43
+ if (!smtpUser || !smtpUser.trim()) {
44
+ return {
45
+ success: false,
46
+ message: 'SMTP username is required',
47
+ error: 'MISSING_SMTP_USER',
48
+ };
49
+ }
50
+ if (!smtpPassword || !smtpPassword.trim()) {
51
+ return {
52
+ success: false,
53
+ message: 'SMTP password is required',
54
+ error: 'MISSING_SMTP_PASSWORD',
55
+ };
56
+ }
57
+ if (smtpPort && (smtpPort < 1 || smtpPort > 65535)) {
58
+ return {
59
+ success: false,
60
+ message: 'SMTP port must be between 1 and 65535',
61
+ error: 'INVALID_SMTP_PORT',
62
+ };
63
+ }
64
+ this.logger.log(`Testing SMTP connection to ${smtpHost}:${smtpPort || 587}`);
65
+ try {
66
+ const port = smtpPort || 587;
67
+ const secure = smtpSecure || false;
68
+ const emailConfig = {
69
+ transporter: 'SMTP',
70
+ smtp: {
71
+ host: smtpHost,
72
+ port,
73
+ secure,
74
+ auth: {
75
+ user: smtpUser,
76
+ pass: smtpPassword,
77
+ },
78
+ },
79
+ };
80
+ this.logger.debug('Validating SMTP credentials using EmailService...');
81
+ await this.emailService.validateCredentials(emailConfig);
82
+ this.logger.log(`✅ SMTP credentials validated successfully for ${smtpHost}:${port}`);
83
+ return {
84
+ success: true,
85
+ message: 'SMTP credentials validated successfully',
86
+ };
87
+ }
88
+ catch (error) {
89
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
90
+ this.logger.error(`❌ SMTP connection failed: ${errorMessage}`, error);
91
+ if (errorMessage.includes('EAUTH')) {
92
+ return {
93
+ success: false,
94
+ message: 'Authentication failed. Please check your username and password.',
95
+ error: 'AUTH_FAILED',
96
+ };
97
+ }
98
+ else if (errorMessage.includes('ECONNREFUSED')) {
99
+ return {
100
+ success: false,
101
+ message: 'Connection refused. Please check the host and port.',
102
+ error: 'CONNECTION_REFUSED',
103
+ };
104
+ }
105
+ else if (errorMessage.includes('ETIMEDOUT') || errorMessage.includes('ENOTFOUND')) {
106
+ return {
107
+ success: false,
108
+ message: 'Connection timeout. Please check the host name and your network.',
109
+ error: 'CONNECTION_TIMEOUT',
110
+ };
111
+ }
112
+ else if (errorMessage.includes('ECONNRESET')) {
113
+ return {
114
+ success: false,
115
+ message: 'Connection reset. The server may have rejected the connection.',
116
+ error: 'CONNECTION_RESET',
117
+ };
118
+ }
119
+ else if (errorMessage.includes('tls') || errorMessage.includes('SSL')) {
120
+ return {
121
+ success: false,
122
+ message: 'TLS/SSL error. Try toggling the "Use SSL/TLS" setting or using a different port.',
123
+ error: 'TLS_ERROR',
124
+ };
125
+ }
126
+ else {
127
+ return {
128
+ success: false,
129
+ message: `SMTP connection failed: ${errorMessage}`,
130
+ error: 'CONNECTION_ERROR',
131
+ };
132
+ }
133
+ }
134
+ }
135
+ catch (error) {
136
+ this.logger.error('Authentication error:', error);
137
+ return {
138
+ success: false,
139
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
140
+ error: 'AUTH_ERROR',
141
+ };
142
+ }
143
+ }
144
+ };
145
+ exports.EmailAuthService = EmailAuthService;
146
+ exports.EmailAuthService = EmailAuthService = EmailAuthService_1 = __decorate([
147
+ (0, common_1.Injectable)(),
148
+ __metadata("design:paramtypes", [email_1.EmailService])
149
+ ], EmailAuthService);
150
+ //# sourceMappingURL=email-auth.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-auth.service.js","sourceRoot":"","sources":["../../../../src/modules/email/auth/email-auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './email-auth.service';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/email/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./email-auth.service"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/email/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC"}
@@ -0,0 +1,3 @@
1
+ import { CredentialFieldDefinition } from '../types';
2
+ export declare const emailCredentials: CredentialFieldDefinition[];
3
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/modules/email/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAc,MAAM,UAAU,CAAC;AAMjE,eAAO,MAAM,gBAAgB,EAAE,yBAAyB,EA2EvD,CAAC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emailCredentials = void 0;
4
+ const types_1 = require("../types");
5
+ exports.emailCredentials = [
6
+ {
7
+ id: 'smtpHost',
8
+ name: 'SMTP Host',
9
+ description: 'SMTP server hostname',
10
+ type: types_1.FIELD_TYPE.STRING,
11
+ validation: {
12
+ required: true,
13
+ minLength: 3,
14
+ },
15
+ placeholder: 'smtp.gmail.com',
16
+ sensitive: false,
17
+ required: true,
18
+ },
19
+ {
20
+ id: 'smtpPort',
21
+ name: 'SMTP Port',
22
+ description: 'SMTP server port (default: 587 for STARTTLS, 465 for SSL)',
23
+ type: types_1.FIELD_TYPE.NUMBER,
24
+ validation: {
25
+ required: false,
26
+ min: 1,
27
+ max: 65535,
28
+ },
29
+ placeholder: '587',
30
+ sensitive: false,
31
+ required: false,
32
+ },
33
+ {
34
+ id: 'smtpSecure',
35
+ name: 'Use SSL/TLS',
36
+ description: 'Use secure connection (true for port 465, false for port 587 with STARTTLS)',
37
+ type: types_1.FIELD_TYPE.BOOLEAN,
38
+ validation: {
39
+ required: false,
40
+ },
41
+ sensitive: false,
42
+ required: false,
43
+ },
44
+ {
45
+ id: 'smtpUser',
46
+ name: 'SMTP Username',
47
+ description: 'SMTP authentication username',
48
+ type: types_1.FIELD_TYPE.STRING,
49
+ validation: {
50
+ required: true,
51
+ },
52
+ placeholder: 'your-email@example.com',
53
+ sensitive: false,
54
+ required: true,
55
+ },
56
+ {
57
+ id: 'smtpPassword',
58
+ name: 'SMTP Password',
59
+ description: 'SMTP authentication password or app-specific password',
60
+ type: types_1.FIELD_TYPE.STRING,
61
+ validation: {
62
+ required: true,
63
+ },
64
+ placeholder: 'Your SMTP password or app-specific password',
65
+ sensitive: true,
66
+ required: true,
67
+ },
68
+ {
69
+ id: 'defaultFrom',
70
+ name: 'Default From Address',
71
+ description: 'Default email sender address',
72
+ type: types_1.FIELD_TYPE.EMAIL,
73
+ validation: {
74
+ required: false,
75
+ },
76
+ placeholder: 'noreply@example.com',
77
+ sensitive: false,
78
+ required: false,
79
+ },
80
+ ];
81
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/modules/email/credentials.ts"],"names":[],"mappings":";;;AAAA,oCAAiE;AAMpD,QAAA,gBAAgB,GAAgC;IAC3D;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,sBAAsB;QACnC,IAAI,EAAE,kBAAU,CAAC,MAAM;QACvB,UAAU,EAAE;YACV,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC;SACb;QACD,WAAW,EAAE,gBAAgB;QAC7B,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,2DAA2D;QACxE,IAAI,EAAE,kBAAU,CAAC,MAAM;QACvB,UAAU,EAAE;YACV,QAAQ,EAAE,KAAK;YACf,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,KAAK;SACX;QACD,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,6EAA6E;QAC1F,IAAI,EAAE,kBAAU,CAAC,OAAO;QACxB,UAAU,EAAE;YACV,QAAQ,EAAE,KAAK;SAChB;QACD,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,kBAAU,CAAC,MAAM;QACvB,UAAU,EAAE;YACV,QAAQ,EAAE,IAAI;SACf;QACD,WAAW,EAAE,wBAAwB;QACrC,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,uDAAuD;QACpE,IAAI,EAAE,kBAAU,CAAC,MAAM;QACvB,UAAU,EAAE;YACV,QAAQ,EAAE,IAAI;SACf;QACD,WAAW,EAAE,6CAA6C;QAC1D,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;KACf;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,kBAAU,CAAC,KAAK;QACtB,UAAU,EAAE;YACV,QAAQ,EAAE,KAAK;SAChB;QACD,WAAW,EAAE,qBAAqB;QAClC,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare class EmailNestModule {
2
+ }
3
+ //# sourceMappingURL=email-nest.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-nest.module.d.ts","sourceRoot":"","sources":["../../../src/modules/email/email-nest.module.ts"],"names":[],"mappings":"AAMA,qBAKa,eAAe;CAAG"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.EmailNestModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const email_1 = require("@venturialstd/email");
12
+ const email_auth_service_1 = require("./auth/email-auth.service");
13
+ const services_1 = require("./services");
14
+ let EmailNestModule = class EmailNestModule {
15
+ };
16
+ exports.EmailNestModule = EmailNestModule;
17
+ exports.EmailNestModule = EmailNestModule = __decorate([
18
+ (0, common_1.Module)({
19
+ imports: [email_1.EmailModule],
20
+ providers: [email_auth_service_1.EmailAuthService, services_1.SendEmailService, services_1.SendTemplateEmailService],
21
+ exports: [email_auth_service_1.EmailAuthService, services_1.SendEmailService, services_1.SendTemplateEmailService],
22
+ })
23
+ ], EmailNestModule);
24
+ //# sourceMappingURL=email-nest.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-nest.module.js","sourceRoot":"","sources":["../../../src/modules/email/email-nest.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+CAAkD;AAElD,kEAA6D;AAC7D,yCAAwE;AAOjE,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAL3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,mBAAW,CAAC;QACtB,SAAS,EAAE,CAAC,qCAAgB,EAAE,2BAAgB,EAAE,mCAAwB,CAAC;QACzE,OAAO,EAAE,CAAC,qCAAgB,EAAE,2BAAgB,EAAE,mCAAwB,CAAC;KACxE,CAAC;GACW,eAAe,CAAG"}
@@ -0,0 +1,3 @@
1
+ import { WorkflowModuleDefinition } from '../types';
2
+ export declare const emailModule: WorkflowModuleDefinition;
3
+ //# sourceMappingURL=email.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.module.d.ts","sourceRoot":"","sources":["../../../src/modules/email/email.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAMpF,eAAO,MAAM,WAAW,EAAE,wBAUzB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emailModule = void 0;
4
+ const send_email_action_1 = require("./actions/send-email.action");
5
+ const send_template_email_action_1 = require("./actions/send-template-email.action");
6
+ const email_auth_service_1 = require("./auth/email-auth.service");
7
+ const credentials_1 = require("./credentials");
8
+ exports.emailModule = {
9
+ key: 'email',
10
+ name: 'Email',
11
+ description: 'Send emails using SMTP with support for simple messages and templates',
12
+ icon: '📧',
13
+ version: '1.0.0',
14
+ credentialFields: credentials_1.emailCredentials,
15
+ authServiceClass: email_auth_service_1.EmailAuthService,
16
+ actions: [send_email_action_1.sendEmailAction, send_template_email_action_1.sendTemplateEmailAction],
17
+ triggers: [],
18
+ };
19
+ //# sourceMappingURL=email.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.module.js","sourceRoot":"","sources":["../../../src/modules/email/email.module.ts"],"names":[],"mappings":";;;AACA,mEAA8D;AAC9D,qFAA+E;AAC/E,kEAA6D;AAC7D,+CAAiD;AAEpC,QAAA,WAAW,GAA6B;IACnD,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uEAAuE;IACpF,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,OAAO;IAChB,gBAAgB,EAAE,8BAAgB;IAClC,gBAAgB,EAAE,qCAA8E;IAChG,OAAO,EAAE,CAAC,mCAAe,EAAE,oDAAuB,CAAC;IACnD,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './send-email.service';
2
+ export * from './send-template-email.service';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/email/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./send-email.service"), exports);
18
+ __exportStar(require("./send-template-email.service"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/email/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,gEAA8C"}
@@ -0,0 +1,9 @@
1
+ import { EmailService } from '@venturialstd/email';
2
+ import { IWorkflowActionService, WorkflowActionContext } from '../../types';
3
+ export declare class SendEmailService implements IWorkflowActionService {
4
+ private readonly emailService;
5
+ private readonly logger;
6
+ constructor(emailService: EmailService);
7
+ perform(inputs: Record<string, unknown>, context: WorkflowActionContext): Promise<Record<string, unknown>>;
8
+ }
9
+ //# sourceMappingURL=send-email.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-email.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/email/services/send-email.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,qBACa,gBAAiB,YAAW,sBAAsB;IAGjD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAFzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAE/B,YAAY,EAAE,YAAY;IAEjD,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAsFpC"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var SendEmailService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.SendEmailService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const email_1 = require("@venturialstd/email");
16
+ let SendEmailService = SendEmailService_1 = class SendEmailService {
17
+ emailService;
18
+ logger = new common_1.Logger(SendEmailService_1.name);
19
+ constructor(emailService) {
20
+ this.emailService = emailService;
21
+ }
22
+ async perform(inputs, context) {
23
+ try {
24
+ const to = inputs.to;
25
+ const subject = inputs.subject;
26
+ const text = inputs.text;
27
+ const html = inputs.html;
28
+ const from = inputs.from;
29
+ const cc = inputs.cc;
30
+ const bcc = inputs.bcc;
31
+ if (!to) {
32
+ throw new Error('Recipient email address (to) is required');
33
+ }
34
+ if (!subject) {
35
+ throw new Error('Email subject is required');
36
+ }
37
+ if (!text && !html) {
38
+ throw new Error('Either text or html content is required');
39
+ }
40
+ this.logger.log(`Sending email to ${to} with subject: ${subject}`);
41
+ if (!context.credentials || Object.keys(context.credentials).length === 0) {
42
+ throw new Error('SMTP credentials are required to send emails from workflows');
43
+ }
44
+ const smtpHost = context.credentials.smtpHost;
45
+ const smtpPort = context.credentials.smtpPort;
46
+ const smtpSecure = context.credentials.smtpSecure;
47
+ const smtpUser = context.credentials.smtpUser;
48
+ const smtpPassword = context.credentials.smtpPassword;
49
+ const defaultFrom = context.credentials.defaultFrom;
50
+ if (!smtpHost || !smtpUser || !smtpPassword) {
51
+ throw new Error('SMTP host, username, and password are required');
52
+ }
53
+ const emailConfig = {
54
+ transporter: 'SMTP',
55
+ smtp: {
56
+ host: smtpHost,
57
+ port: smtpPort || 587,
58
+ secure: smtpSecure || false,
59
+ auth: {
60
+ user: smtpUser,
61
+ pass: smtpPassword,
62
+ },
63
+ },
64
+ defaults: defaultFrom ? { from: defaultFrom } : undefined,
65
+ };
66
+ this.logger.log(`Using SMTP credentials from workflow: ${smtpHost}:${smtpPort || 587}`);
67
+ await this.emailService.sendEmail(emailConfig, {
68
+ to,
69
+ subject,
70
+ text,
71
+ html,
72
+ from,
73
+ cc: cc ? cc.split(',').map((e) => e.trim()) : undefined,
74
+ bcc: bcc ? bcc.split(',').map((e) => e.trim()) : undefined,
75
+ });
76
+ this.logger.log(`Email sent successfully to ${to}`);
77
+ return {
78
+ success: true,
79
+ emailId: `email-${Date.now()}`,
80
+ error: null,
81
+ };
82
+ }
83
+ catch (error) {
84
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
85
+ this.logger.error(`Failed to send email: ${errorMessage}`, error);
86
+ return {
87
+ success: false,
88
+ emailId: null,
89
+ error: errorMessage,
90
+ };
91
+ }
92
+ }
93
+ };
94
+ exports.SendEmailService = SendEmailService;
95
+ exports.SendEmailService = SendEmailService = SendEmailService_1 = __decorate([
96
+ (0, common_1.Injectable)(),
97
+ __metadata("design:paramtypes", [email_1.EmailService])
98
+ ], SendEmailService);
99
+ //# sourceMappingURL=send-email.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-email.service.js","sourceRoot":"","sources":["../../../../src/modules/email/services/send-email.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { EmailService } from '@venturialstd/email';
2
+ import { IWorkflowActionService, WorkflowActionContext } from '../../types';
3
+ export declare class SendTemplateEmailService implements IWorkflowActionService {
4
+ private readonly emailService;
5
+ private readonly logger;
6
+ constructor(emailService: EmailService);
7
+ perform(inputs: Record<string, unknown>, context: WorkflowActionContext): Promise<Record<string, unknown>>;
8
+ }
9
+ //# sourceMappingURL=send-template-email.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-template-email.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/email/services/send-template-email.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,qBACa,wBAAyB,YAAW,sBAAsB;IAGzD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAFzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAEvC,YAAY,EAAE,YAAY;IAEjD,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAsFpC"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var SendTemplateEmailService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.SendTemplateEmailService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const email_1 = require("@venturialstd/email");
16
+ let SendTemplateEmailService = SendTemplateEmailService_1 = class SendTemplateEmailService {
17
+ emailService;
18
+ logger = new common_1.Logger(SendTemplateEmailService_1.name);
19
+ constructor(emailService) {
20
+ this.emailService = emailService;
21
+ }
22
+ async perform(inputs, context) {
23
+ try {
24
+ const to = inputs.to;
25
+ const template = inputs.template;
26
+ const contextData = inputs.context;
27
+ const from = inputs.from;
28
+ const cc = inputs.cc;
29
+ const bcc = inputs.bcc;
30
+ if (!to) {
31
+ throw new Error('Recipient email address (to) is required');
32
+ }
33
+ if (!template) {
34
+ throw new Error('Template name is required');
35
+ }
36
+ if (!contextData || typeof contextData !== 'object') {
37
+ throw new Error('Template context must be a valid JSON object');
38
+ }
39
+ this.logger.log(`Sending template email "${template}" to ${to}`);
40
+ if (!context.credentials || Object.keys(context.credentials).length === 0) {
41
+ throw new Error('SMTP credentials are required to send emails from workflows');
42
+ }
43
+ const smtpHost = context.credentials.smtpHost;
44
+ const smtpPort = context.credentials.smtpPort;
45
+ const smtpSecure = context.credentials.smtpSecure;
46
+ const smtpUser = context.credentials.smtpUser;
47
+ const smtpPassword = context.credentials.smtpPassword;
48
+ const defaultFrom = context.credentials.defaultFrom;
49
+ if (!smtpHost || !smtpUser || !smtpPassword) {
50
+ throw new Error('SMTP host, username, and password are required');
51
+ }
52
+ const emailConfig = {
53
+ transporter: 'SMTP',
54
+ smtp: {
55
+ host: smtpHost,
56
+ port: smtpPort || 587,
57
+ secure: smtpSecure || false,
58
+ auth: {
59
+ user: smtpUser,
60
+ pass: smtpPassword,
61
+ },
62
+ },
63
+ defaults: defaultFrom ? { from: defaultFrom } : undefined,
64
+ };
65
+ this.logger.log(`Using SMTP credentials from workflow: ${smtpHost}:${smtpPort || 587}`);
66
+ await this.emailService.sendEmailWithTemplate(emailConfig, {
67
+ to,
68
+ template,
69
+ context: contextData,
70
+ from,
71
+ cc: cc ? cc.split(',').map((e) => e.trim()) : undefined,
72
+ bcc: bcc ? bcc.split(',').map((e) => e.trim()) : undefined,
73
+ });
74
+ this.logger.log(`Template email "${template}" sent successfully to ${to}`);
75
+ return {
76
+ success: true,
77
+ emailId: `email-${Date.now()}`,
78
+ templateName: template,
79
+ error: null,
80
+ };
81
+ }
82
+ catch (error) {
83
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
84
+ this.logger.error(`Failed to send template email: ${errorMessage}`, error);
85
+ return {
86
+ success: false,
87
+ emailId: null,
88
+ templateName: inputs.template,
89
+ error: errorMessage,
90
+ };
91
+ }
92
+ }
93
+ };
94
+ exports.SendTemplateEmailService = SendTemplateEmailService;
95
+ exports.SendTemplateEmailService = SendTemplateEmailService = SendTemplateEmailService_1 = __decorate([
96
+ (0, common_1.Injectable)(),
97
+ __metadata("design:paramtypes", [email_1.EmailService])
98
+ ], SendTemplateEmailService);
99
+ //# sourceMappingURL=send-template-email.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-template-email.service.js","sourceRoot":"","sources":["../../../../src/modules/email/services/send-template-email.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { WorkflowActionContext } from '../../types';
2
+ export declare function loadEmailTemplateOptions(context: WorkflowActionContext): Promise<Array<{
3
+ label: string;
4
+ value: string;
5
+ }>>;
6
+ //# sourceMappingURL=template-options.util.d.ts.map