hazo_notify 1.0.2 → 1.1.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.
Files changed (153) hide show
  1. package/README.md +1 -5
  2. package/data/templates/email_signature.html +11 -0
  3. package/data/templates/email_signature.txt +4 -0
  4. package/data/templates/email_verification.html +64 -0
  5. package/data/templates/email_verification.txt +11 -0
  6. package/data/templates/forgot_password.html +64 -0
  7. package/data/templates/forgot_password.txt +11 -0
  8. package/data/templates/manifest.json +86 -0
  9. package/data/templates/welcome_email.html +54 -0
  10. package/data/templates/welcome_email.txt +8 -0
  11. package/dist/emailer/emailer.d.ts +1 -1
  12. package/dist/emailer/emailer.d.ts.map +1 -1
  13. package/dist/emailer/emailer.js +19 -9
  14. package/dist/emailer/emailer.js.map +1 -1
  15. package/dist/emailer/index.d.ts +1 -0
  16. package/dist/emailer/index.d.ts.map +1 -1
  17. package/dist/emailer/index.js +5 -1
  18. package/dist/emailer/index.js.map +1 -1
  19. package/dist/emailer/providers/pop3_provider.d.ts +3 -2
  20. package/dist/emailer/providers/pop3_provider.d.ts.map +1 -1
  21. package/dist/emailer/providers/pop3_provider.js +2 -1
  22. package/dist/emailer/providers/pop3_provider.js.map +1 -1
  23. package/dist/emailer/providers/smtp_provider.d.ts +3 -2
  24. package/dist/emailer/providers/smtp_provider.d.ts.map +1 -1
  25. package/dist/emailer/providers/smtp_provider.js +2 -1
  26. package/dist/emailer/providers/smtp_provider.js.map +1 -1
  27. package/dist/emailer/providers/zeptomail_provider.d.ts +3 -2
  28. package/dist/emailer/providers/zeptomail_provider.d.ts.map +1 -1
  29. package/dist/emailer/providers/zeptomail_provider.js +24 -11
  30. package/dist/emailer/providers/zeptomail_provider.js.map +1 -1
  31. package/dist/emailer/types.d.ts +13 -1
  32. package/dist/emailer/types.d.ts.map +1 -1
  33. package/dist/emailer/utils/logger.d.ts +22 -14
  34. package/dist/emailer/utils/logger.d.ts.map +1 -1
  35. package/dist/emailer/utils/logger.js +51 -13
  36. package/dist/emailer/utils/logger.js.map +1 -1
  37. package/dist/index.d.ts +2 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +2 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/template_manager/config/config_loader.d.ts +48 -0
  42. package/dist/template_manager/config/config_loader.d.ts.map +1 -0
  43. package/dist/template_manager/config/config_loader.js +161 -0
  44. package/dist/template_manager/config/config_loader.js.map +1 -0
  45. package/dist/template_manager/config/constants.d.ts +101 -0
  46. package/dist/template_manager/config/constants.d.ts.map +1 -0
  47. package/dist/template_manager/config/constants.js +163 -0
  48. package/dist/template_manager/config/constants.js.map +1 -0
  49. package/dist/template_manager/config/index.d.ts +6 -0
  50. package/dist/template_manager/config/index.d.ts.map +1 -0
  51. package/dist/{lib/emailer/utils → template_manager/config}/index.js +4 -4
  52. package/dist/template_manager/config/index.js.map +1 -0
  53. package/dist/template_manager/db/category_repository.d.ts +57 -0
  54. package/dist/template_manager/db/category_repository.d.ts.map +1 -0
  55. package/dist/template_manager/db/category_repository.js +326 -0
  56. package/dist/template_manager/db/category_repository.js.map +1 -0
  57. package/dist/template_manager/db/index.d.ts +6 -0
  58. package/dist/template_manager/db/index.d.ts.map +1 -0
  59. package/dist/template_manager/db/index.js +23 -0
  60. package/dist/template_manager/db/index.js.map +1 -0
  61. package/dist/template_manager/db/template_repository.d.ts +76 -0
  62. package/dist/template_manager/db/template_repository.d.ts.map +1 -0
  63. package/dist/template_manager/db/template_repository.js +684 -0
  64. package/dist/template_manager/db/template_repository.js.map +1 -0
  65. package/dist/template_manager/engine/handlebars_engine.d.ts +52 -0
  66. package/dist/template_manager/engine/handlebars_engine.d.ts.map +1 -0
  67. package/dist/template_manager/engine/handlebars_engine.js +175 -0
  68. package/dist/template_manager/engine/handlebars_engine.js.map +1 -0
  69. package/dist/template_manager/engine/index.d.ts +6 -0
  70. package/dist/template_manager/engine/index.d.ts.map +1 -0
  71. package/dist/template_manager/engine/index.js +19 -0
  72. package/dist/template_manager/engine/index.js.map +1 -0
  73. package/dist/template_manager/engine/variable_resolver.d.ts +48 -0
  74. package/dist/template_manager/engine/variable_resolver.d.ts.map +1 -0
  75. package/dist/template_manager/engine/variable_resolver.js +223 -0
  76. package/dist/template_manager/engine/variable_resolver.js.map +1 -0
  77. package/dist/template_manager/index.d.ts +32 -0
  78. package/dist/template_manager/index.d.ts.map +1 -0
  79. package/dist/template_manager/index.js +88 -0
  80. package/dist/template_manager/index.js.map +1 -0
  81. package/dist/template_manager/template_manager.d.ts +69 -0
  82. package/dist/template_manager/template_manager.d.ts.map +1 -0
  83. package/dist/template_manager/template_manager.js +335 -0
  84. package/dist/template_manager/template_manager.js.map +1 -0
  85. package/dist/template_manager/types.d.ts +255 -0
  86. package/dist/template_manager/types.d.ts.map +1 -0
  87. package/dist/template_manager/types.js +12 -0
  88. package/dist/template_manager/types.js.map +1 -0
  89. package/dist/template_manager/utils/index.d.ts +6 -0
  90. package/dist/template_manager/utils/index.d.ts.map +1 -0
  91. package/dist/template_manager/utils/index.js +21 -0
  92. package/dist/template_manager/utils/index.js.map +1 -0
  93. package/dist/template_manager/utils/system_variables.d.ts +28 -0
  94. package/dist/template_manager/utils/system_variables.d.ts.map +1 -0
  95. package/dist/template_manager/utils/system_variables.js +209 -0
  96. package/dist/template_manager/utils/system_variables.js.map +1 -0
  97. package/dist/template_manager/utils/validation.d.ts +74 -0
  98. package/dist/template_manager/utils/validation.d.ts.map +1 -0
  99. package/dist/template_manager/utils/validation.js +163 -0
  100. package/dist/template_manager/utils/validation.js.map +1 -0
  101. package/hazo_notify_config.ini +39 -0
  102. package/package.json +69 -21
  103. package/dist/lib/emailer/emailer.d.ts +0 -19
  104. package/dist/lib/emailer/emailer.d.ts.map +0 -1
  105. package/dist/lib/emailer/emailer.js +0 -220
  106. package/dist/lib/emailer/emailer.js.map +0 -1
  107. package/dist/lib/emailer/index.d.ts +0 -11
  108. package/dist/lib/emailer/index.d.ts.map +0 -1
  109. package/dist/lib/emailer/index.js +0 -34
  110. package/dist/lib/emailer/index.js.map +0 -1
  111. package/dist/lib/emailer/providers/index.d.ts +0 -15
  112. package/dist/lib/emailer/providers/index.d.ts.map +0 -1
  113. package/dist/lib/emailer/providers/index.js +0 -36
  114. package/dist/lib/emailer/providers/index.js.map +0 -1
  115. package/dist/lib/emailer/providers/pop3_provider.d.ts +0 -15
  116. package/dist/lib/emailer/providers/pop3_provider.d.ts.map +0 -1
  117. package/dist/lib/emailer/providers/pop3_provider.js +0 -29
  118. package/dist/lib/emailer/providers/pop3_provider.js.map +0 -1
  119. package/dist/lib/emailer/providers/smtp_provider.d.ts +0 -15
  120. package/dist/lib/emailer/providers/smtp_provider.d.ts.map +0 -1
  121. package/dist/lib/emailer/providers/smtp_provider.js +0 -29
  122. package/dist/lib/emailer/providers/smtp_provider.js.map +0 -1
  123. package/dist/lib/emailer/providers/zeptomail_provider.d.ts +0 -15
  124. package/dist/lib/emailer/providers/zeptomail_provider.d.ts.map +0 -1
  125. package/dist/lib/emailer/providers/zeptomail_provider.js +0 -250
  126. package/dist/lib/emailer/providers/zeptomail_provider.js.map +0 -1
  127. package/dist/lib/emailer/types.d.ts +0 -94
  128. package/dist/lib/emailer/types.d.ts.map +0 -1
  129. package/dist/lib/emailer/types.js +0 -6
  130. package/dist/lib/emailer/types.js.map +0 -1
  131. package/dist/lib/emailer/utils/constants.d.ts +0 -14
  132. package/dist/lib/emailer/utils/constants.d.ts.map +0 -1
  133. package/dist/lib/emailer/utils/constants.js +0 -22
  134. package/dist/lib/emailer/utils/constants.js.map +0 -1
  135. package/dist/lib/emailer/utils/index.d.ts +0 -8
  136. package/dist/lib/emailer/utils/index.d.ts.map +0 -1
  137. package/dist/lib/emailer/utils/index.js.map +0 -1
  138. package/dist/lib/emailer/utils/logger.d.ts +0 -37
  139. package/dist/lib/emailer/utils/logger.d.ts.map +0 -1
  140. package/dist/lib/emailer/utils/logger.js +0 -60
  141. package/dist/lib/emailer/utils/logger.js.map +0 -1
  142. package/dist/lib/emailer/utils/validation.d.ts +0 -37
  143. package/dist/lib/emailer/utils/validation.d.ts.map +0 -1
  144. package/dist/lib/emailer/utils/validation.js +0 -81
  145. package/dist/lib/emailer/utils/validation.js.map +0 -1
  146. package/dist/lib/index.d.ts +0 -6
  147. package/dist/lib/index.d.ts.map +0 -1
  148. package/dist/lib/index.js +0 -22
  149. package/dist/lib/index.js.map +0 -1
  150. package/dist/lib/utils.d.ts +0 -3
  151. package/dist/lib/utils.d.ts.map +0 -1
  152. package/dist/lib/utils.js +0 -9
  153. package/dist/lib/utils.js.map +0 -1
@@ -1,34 +0,0 @@
1
- "use strict";
2
- /**
3
- * Emailer service exports
4
- * Main entry point for the emailer library
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.Pop3Provider = exports.SmtpProvider = exports.ZeptomailProvider = exports.get_email_provider = exports.load_emailer_config = exports.send_email = void 0;
22
- var emailer_1 = require("./emailer");
23
- Object.defineProperty(exports, "send_email", { enumerable: true, get: function () { return emailer_1.send_email; } });
24
- Object.defineProperty(exports, "load_emailer_config", { enumerable: true, get: function () { return emailer_1.load_emailer_config; } });
25
- __exportStar(require("./types"), exports);
26
- var providers_1 = require("./providers");
27
- Object.defineProperty(exports, "get_email_provider", { enumerable: true, get: function () { return providers_1.get_email_provider; } });
28
- var zeptomail_provider_1 = require("./providers/zeptomail_provider");
29
- Object.defineProperty(exports, "ZeptomailProvider", { enumerable: true, get: function () { return zeptomail_provider_1.ZeptomailProvider; } });
30
- var smtp_provider_1 = require("./providers/smtp_provider");
31
- Object.defineProperty(exports, "SmtpProvider", { enumerable: true, get: function () { return smtp_provider_1.SmtpProvider; } });
32
- var pop3_provider_1 = require("./providers/pop3_provider");
33
- Object.defineProperty(exports, "Pop3Provider", { enumerable: true, get: function () { return pop3_provider_1.Pop3Provider; } });
34
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/emailer/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,qCAA4D;AAAnD,qGAAA,UAAU,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AACxC,0CAAwB;AACxB,yCAAiD;AAAxC,+GAAA,kBAAkB,OAAA;AAC3B,qEAAmE;AAA1D,uHAAA,iBAAiB,OAAA;AAC1B,2DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,2DAAyD;AAAhD,6GAAA,YAAY,OAAA"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Provider factory for email providers
3
- * Selects and returns the appropriate provider based on configuration
4
- */
5
- import { EmailProvider, EmailerConfig } from '../types';
6
- /**
7
- * Get email provider based on configuration module
8
- * @param config - Emailer configuration
9
- * @returns Email provider instance
10
- */
11
- export declare function get_email_provider(config: EmailerConfig): EmailProvider;
12
- export { ZeptomailProvider } from './zeptomail_provider';
13
- export { SmtpProvider } from './smtp_provider';
14
- export { Pop3Provider } from './pop3_provider';
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/emailer/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAiB,MAAM,UAAU,CAAC;AAKvE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAavE;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,36 +0,0 @@
1
- "use strict";
2
- /**
3
- * Provider factory for email providers
4
- * Selects and returns the appropriate provider based on configuration
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.Pop3Provider = exports.SmtpProvider = exports.ZeptomailProvider = void 0;
8
- exports.get_email_provider = get_email_provider;
9
- const zeptomail_provider_1 = require("./zeptomail_provider");
10
- const smtp_provider_1 = require("./smtp_provider");
11
- const pop3_provider_1 = require("./pop3_provider");
12
- /**
13
- * Get email provider based on configuration module
14
- * @param config - Emailer configuration
15
- * @returns Email provider instance
16
- */
17
- function get_email_provider(config) {
18
- const emailer_module = config.emailer_module || 'zeptoemail_api';
19
- switch (emailer_module) {
20
- case 'zeptoemail_api':
21
- return new zeptomail_provider_1.ZeptomailProvider();
22
- case 'smtp':
23
- return new smtp_provider_1.SmtpProvider();
24
- case 'pop3':
25
- return new pop3_provider_1.Pop3Provider();
26
- default:
27
- throw new Error(`Unsupported emailer module: ${emailer_module}`);
28
- }
29
- }
30
- var zeptomail_provider_2 = require("./zeptomail_provider");
31
- Object.defineProperty(exports, "ZeptomailProvider", { enumerable: true, get: function () { return zeptomail_provider_2.ZeptomailProvider; } });
32
- var smtp_provider_2 = require("./smtp_provider");
33
- Object.defineProperty(exports, "SmtpProvider", { enumerable: true, get: function () { return smtp_provider_2.SmtpProvider; } });
34
- var pop3_provider_2 = require("./pop3_provider");
35
- Object.defineProperty(exports, "Pop3Provider", { enumerable: true, get: function () { return pop3_provider_2.Pop3Provider; } });
36
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/emailer/providers/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAYH,gDAaC;AAtBD,6DAAyD;AACzD,mDAA+C;AAC/C,mDAA+C;AAE/C;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,MAAqB;IACtD,MAAM,cAAc,GAAkB,MAAM,CAAC,cAAc,IAAI,gBAAgB,CAAC;IAEhF,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,gBAAgB;YACnB,OAAO,IAAI,sCAAiB,EAAE,CAAC;QACjC,KAAK,MAAM;YACT,OAAO,IAAI,4BAAY,EAAE,CAAC;QAC5B,KAAK,MAAM;YACT,OAAO,IAAI,4BAAY,EAAE,CAAC;QAC5B;YACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,cAAc,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"}
@@ -1,15 +0,0 @@
1
- /**
2
- * POP3 provider implementation (placeholder)
3
- * This provider is not yet implemented and will return an error
4
- */
5
- import { EmailProvider, SendEmailOptions, EmailerConfig, EmailSendResponse } from '../types';
6
- export declare class Pop3Provider implements EmailProvider {
7
- /**
8
- * Send email using POP3 (not implemented)
9
- * @param options - Email send options
10
- * @param config - Emailer configuration
11
- * @returns Promise with error response
12
- */
13
- send_email(options: SendEmailOptions, config: EmailerConfig): Promise<EmailSendResponse>;
14
- }
15
- //# sourceMappingURL=pop3_provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pop3_provider.d.ts","sourceRoot":"","sources":["../../../../src/lib/emailer/providers/pop3_provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7F,qBAAa,YAAa,YAAW,aAAa;IAChD;;;;;OAKG;IACG,UAAU,CACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,iBAAiB,CAAC;CAY9B"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- /**
3
- * POP3 provider implementation (placeholder)
4
- * This provider is not yet implemented and will return an error
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.Pop3Provider = void 0;
8
- class Pop3Provider {
9
- /**
10
- * Send email using POP3 (not implemented)
11
- * @param options - Email send options
12
- * @param config - Emailer configuration
13
- * @returns Promise with error response
14
- */
15
- async send_email(options, config) {
16
- return {
17
- success: false,
18
- error: 'POP3 provider is not yet implemented',
19
- message: 'POP3 provider is not yet implemented. Please use API method instead.',
20
- raw_response: {
21
- provider: 'pop3',
22
- status: 'not_implemented',
23
- message: 'POP3 provider is a placeholder and will be implemented in a future version',
24
- },
25
- };
26
- }
27
- }
28
- exports.Pop3Provider = Pop3Provider;
29
- //# sourceMappingURL=pop3_provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pop3_provider.js","sourceRoot":"","sources":["../../../../src/lib/emailer/providers/pop3_provider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,MAAa,YAAY;IACvB;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,OAAyB,EACzB,MAAqB;QAErB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,sCAAsC;YAC7C,OAAO,EAAE,sEAAsE;YAC/E,YAAY,EAAE;gBACZ,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,4EAA4E;aACtF;SACF,CAAC;IACJ,CAAC;CACF;AAtBD,oCAsBC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * SMTP provider implementation (placeholder)
3
- * This provider is not yet implemented and will return an error
4
- */
5
- import { EmailProvider, SendEmailOptions, EmailerConfig, EmailSendResponse } from '../types';
6
- export declare class SmtpProvider implements EmailProvider {
7
- /**
8
- * Send email using SMTP (not implemented)
9
- * @param options - Email send options
10
- * @param config - Emailer configuration
11
- * @returns Promise with error response
12
- */
13
- send_email(options: SendEmailOptions, config: EmailerConfig): Promise<EmailSendResponse>;
14
- }
15
- //# sourceMappingURL=smtp_provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smtp_provider.d.ts","sourceRoot":"","sources":["../../../../src/lib/emailer/providers/smtp_provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7F,qBAAa,YAAa,YAAW,aAAa;IAChD;;;;;OAKG;IACG,UAAU,CACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,iBAAiB,CAAC;CAY9B"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- /**
3
- * SMTP provider implementation (placeholder)
4
- * This provider is not yet implemented and will return an error
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.SmtpProvider = void 0;
8
- class SmtpProvider {
9
- /**
10
- * Send email using SMTP (not implemented)
11
- * @param options - Email send options
12
- * @param config - Emailer configuration
13
- * @returns Promise with error response
14
- */
15
- async send_email(options, config) {
16
- return {
17
- success: false,
18
- error: 'SMTP provider is not yet implemented',
19
- message: 'SMTP provider is not yet implemented. Please use API method instead.',
20
- raw_response: {
21
- provider: 'smtp',
22
- status: 'not_implemented',
23
- message: 'SMTP provider is a placeholder and will be implemented in a future version',
24
- },
25
- };
26
- }
27
- }
28
- exports.SmtpProvider = SmtpProvider;
29
- //# sourceMappingURL=smtp_provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smtp_provider.js","sourceRoot":"","sources":["../../../../src/lib/emailer/providers/smtp_provider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,MAAa,YAAY;IACvB;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,OAAyB,EACzB,MAAqB;QAErB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,sCAAsC;YAC7C,OAAO,EAAE,sEAAsE;YAC/E,YAAY,EAAE;gBACZ,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,4EAA4E;aACtF;SACF,CAAC;IACJ,CAAC;CACF;AAtBD,oCAsBC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Zeptomail API provider implementation
3
- * Sends emails using the Zeptomail API
4
- */
5
- import { EmailProvider, SendEmailOptions, EmailerConfig, EmailSendResponse } from '../types';
6
- export declare class ZeptomailProvider implements EmailProvider {
7
- /**
8
- * Send email using Zeptomail API
9
- * @param options - Email send options
10
- * @param config - Emailer configuration
11
- * @returns Promise with email send response
12
- */
13
- send_email(options: SendEmailOptions, config: EmailerConfig): Promise<EmailSendResponse>;
14
- }
15
- //# sourceMappingURL=zeptomail_provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zeptomail_provider.d.ts","sourceRoot":"","sources":["../../../../src/lib/emailer/providers/zeptomail_provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAsB,MAAM,UAAU,CAAC;AAMjH,qBAAa,iBAAkB,YAAW,aAAa;IACrD;;;;;OAKG;IACG,UAAU,CACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,iBAAiB,CAAC;CAqR9B"}
@@ -1,250 +0,0 @@
1
- "use strict";
2
- /**
3
- * Zeptomail API provider implementation
4
- * Sends emails using the Zeptomail API
5
- */
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ZeptomailProvider = void 0;
11
- const validation_1 = require("../utils/validation");
12
- const logger_1 = require("../utils/logger");
13
- const isomorphic_dompurify_1 = __importDefault(require("isomorphic-dompurify"));
14
- const constants_1 = require("../utils/constants");
15
- class ZeptomailProvider {
16
- /**
17
- * Send email using Zeptomail API
18
- * @param options - Email send options
19
- * @param config - Emailer configuration
20
- * @returns Promise with email send response
21
- */
22
- async send_email(options, config) {
23
- const filename = 'zeptomail_provider.ts';
24
- const function_name = 'send_email';
25
- try {
26
- // Validate required configuration
27
- if (!config.zeptomail_api_endpoint) {
28
- throw new Error('Zeptomail API endpoint is required');
29
- }
30
- if (!config.zeptomail_api_key) {
31
- throw new Error('Zeptomail API key is required');
32
- }
33
- // Prepare recipient array
34
- const to_emails = Array.isArray(options.to) ? options.to : [options.to];
35
- const cc_emails = options.cc ? (Array.isArray(options.cc) ? options.cc : [options.cc]) : [];
36
- const bcc_emails = options.bcc ? (Array.isArray(options.bcc) ? options.bcc : [options.bcc]) : [];
37
- // Prepare email data according to Zeptomail API format
38
- const email_data = {
39
- from: {
40
- address: options.from || config.from_email,
41
- name: (0, validation_1.sanitize_email_header)(options.from_name || config.from_name || 'Hazo Notify'),
42
- },
43
- to: to_emails.map((email) => ({
44
- email_address: {
45
- address: email,
46
- },
47
- })),
48
- subject: (0, validation_1.sanitize_email_header)(options.subject),
49
- };
50
- // Add content (text and/or html)
51
- if (options.content.text) {
52
- email_data.textbody = options.content.text;
53
- }
54
- if (options.content.html) {
55
- // Sanitize HTML content to prevent XSS attacks
56
- email_data.htmlbody = isomorphic_dompurify_1.default.sanitize(options.content.html);
57
- }
58
- // Add reply-to if specified
59
- if (options.reply_to || config.reply_to_email) {
60
- email_data.reply_to = [
61
- {
62
- address: (0, validation_1.sanitize_email_header)(options.reply_to || config.reply_to_email || ''),
63
- },
64
- ];
65
- }
66
- // Add CC if specified
67
- if (cc_emails.length > 0) {
68
- email_data.cc = cc_emails.map((email) => ({
69
- email_address: {
70
- address: email,
71
- },
72
- }));
73
- }
74
- // Add BCC if specified
75
- if (bcc_emails.length > 0) {
76
- email_data.bcc = bcc_emails.map((email) => ({
77
- email_address: {
78
- address: email,
79
- },
80
- }));
81
- }
82
- // Add attachments if specified
83
- if (options.attachments && options.attachments.length > 0) {
84
- email_data.attachments = options.attachments.map((attachment) => ({
85
- name: attachment.filename,
86
- content: attachment.content,
87
- mime_type: attachment.mime_type,
88
- }));
89
- }
90
- // Prepare request headers
91
- // Handle API key - it may already include the "Zoho-enczapikey" prefix or just be the key
92
- const api_key = config.zeptomail_api_key.trim();
93
- const auth_header = api_key.startsWith('Zoho-enczapikey')
94
- ? api_key
95
- : `Zoho-enczapikey ${api_key}`;
96
- const headers = {
97
- 'Accept': 'application/json',
98
- 'Content-Type': 'application/json',
99
- 'Authorization': auth_header,
100
- };
101
- // Log request for debugging (mask API key in logs)
102
- (0, logger_1.log_info)((0, logger_1.create_log_entry)(filename, function_name, 'Sending email via Zeptomail API', {
103
- endpoint: config.zeptomail_api_endpoint,
104
- method: 'POST',
105
- headers: {
106
- ...headers,
107
- Authorization: headers.Authorization ? 'Zoho-enczapikey ***' : undefined, // Mask API key
108
- },
109
- body: {
110
- from: email_data.from,
111
- to_count: email_data.to.length,
112
- subject: email_data.subject,
113
- has_text: !!email_data.textbody,
114
- has_html: !!email_data.htmlbody,
115
- attachments_count: email_data.attachments?.length || 0,
116
- },
117
- }));
118
- // Set up request timeout
119
- const timeout = config.request_timeout || constants_1.DEFAULT_REQUEST_TIMEOUT;
120
- const controller = new AbortController();
121
- const timeout_id = setTimeout(() => controller.abort(), timeout);
122
- try {
123
- // Make API request
124
- const response = await fetch(config.zeptomail_api_endpoint, {
125
- method: 'POST',
126
- headers: headers,
127
- body: JSON.stringify(email_data),
128
- signal: controller.signal,
129
- });
130
- clearTimeout(timeout_id);
131
- // Parse response (handle both JSON and text responses)
132
- let response_data;
133
- const content_type = response.headers.get('content-type') || '';
134
- // Get response text first for better error handling
135
- const response_text = await response.text();
136
- if (content_type.includes('application/json')) {
137
- try {
138
- response_data = JSON.parse(response_text);
139
- }
140
- catch (e) {
141
- response_data = { error: 'Failed to parse JSON response', raw: response_text };
142
- }
143
- }
144
- else {
145
- // For HTML/text responses, try to extract error information
146
- response_data = {
147
- text: response_text,
148
- error: response_text.trim() || 'Unknown error from server'
149
- };
150
- // Log the full response for debugging
151
- (0, logger_1.log_error)((0, logger_1.create_log_entry)(filename, function_name, 'Zeptomail API returned non-JSON response', {
152
- status: response.status,
153
- statusText: response.statusText,
154
- contentType: content_type,
155
- body: response_text,
156
- headers: Object.fromEntries(response.headers.entries()),
157
- }));
158
- }
159
- const raw_response = {
160
- status: response.status,
161
- status_text: response.statusText,
162
- headers: Object.fromEntries(response.headers.entries()),
163
- body: response_data,
164
- };
165
- // Check if request was successful
166
- if (!response.ok) {
167
- const response_obj = typeof response_data === 'object' ? response_data : {};
168
- const error_message = response_obj.message ||
169
- response_obj.error ||
170
- (typeof response_data === 'string' ? response_data : '') ||
171
- `HTTP ${response.status}: ${response.statusText}`;
172
- // Enhanced error logging
173
- (0, logger_1.log_error)((0, logger_1.create_log_entry)(filename, function_name, 'Zeptomail API error', {
174
- status: response.status,
175
- error_message,
176
- response_body: response_data,
177
- }));
178
- const is_production = process.env.NODE_ENV === 'production';
179
- return {
180
- success: false,
181
- error: error_message,
182
- raw_response: is_production ? { status: response.status, status_text: response.statusText } : raw_response,
183
- message: error_message,
184
- };
185
- }
186
- // Return successful response
187
- const response_obj = typeof response_data === 'object' ? response_data : {};
188
- const data = response_obj.data;
189
- return {
190
- success: true,
191
- message_id: data?.message_id || response_obj.message_id || undefined,
192
- message: 'Email sent successfully',
193
- raw_response: raw_response,
194
- };
195
- }
196
- catch (fetch_error) {
197
- clearTimeout(timeout_id);
198
- // Handle timeout errors
199
- if (fetch_error instanceof Error && fetch_error.name === 'AbortError') {
200
- const timeout_error = `Request timeout after ${timeout}ms`;
201
- (0, logger_1.log_error)((0, logger_1.create_log_entry)(filename, function_name, timeout_error, {
202
- options: {
203
- to: options.to,
204
- subject: options.subject,
205
- has_text: !!options.content.text,
206
- has_html: !!options.content.html,
207
- attachments_count: options.attachments?.length || 0,
208
- },
209
- }));
210
- return {
211
- success: false,
212
- error: timeout_error,
213
- message: timeout_error,
214
- raw_response: undefined,
215
- };
216
- }
217
- // Re-throw to be caught by outer catch
218
- throw fetch_error;
219
- }
220
- }
221
- catch (error) {
222
- const error_message = error instanceof Error ? error.message : 'Unknown error occurred';
223
- const error_string = error instanceof Error ? error.toString() : String(error);
224
- const stack = error instanceof Error ? error.stack : undefined;
225
- const is_production = process.env.NODE_ENV === 'production';
226
- (0, logger_1.log_error)((0, logger_1.create_log_entry)(filename, function_name, error_message, {
227
- line_number: stack || 'unknown',
228
- error: error_string,
229
- options: {
230
- to: options.to,
231
- subject: options.subject,
232
- has_text: !!options.content.text,
233
- has_html: !!options.content.html,
234
- attachments_count: options.attachments?.length || 0,
235
- },
236
- }));
237
- return {
238
- success: false,
239
- error: error_message,
240
- message: error_message,
241
- raw_response: is_production ? undefined : {
242
- error: error_string,
243
- stack: stack,
244
- },
245
- };
246
- }
247
- }
248
- }
249
- exports.ZeptomailProvider = ZeptomailProvider;
250
- //# sourceMappingURL=zeptomail_provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zeptomail_provider.js","sourceRoot":"","sources":["../../../../src/lib/emailer/providers/zeptomail_provider.ts"],"names":[],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- /**
2
- * Type definitions for the emailer service
3
- */
4
- export type EmailerModule = 'zeptoemail_api' | 'smtp' | 'pop3';
5
- export interface EmailContent {
6
- text?: string;
7
- html?: string;
8
- }
9
- export interface EmailAttachment {
10
- filename: string;
11
- content: string;
12
- mime_type: string;
13
- }
14
- export interface SendEmailOptions {
15
- to: string | string[];
16
- subject: string;
17
- content: EmailContent;
18
- attachments?: EmailAttachment[];
19
- from?: string;
20
- from_name?: string;
21
- reply_to?: string;
22
- cc?: string | string[];
23
- bcc?: string | string[];
24
- }
25
- export interface EmailerConfig {
26
- emailer_module: EmailerModule;
27
- zeptomail_api_endpoint?: string;
28
- zeptomail_api_key?: string;
29
- from_email: string;
30
- from_name: string;
31
- reply_to_email?: string;
32
- bounce_email?: string;
33
- return_path_email?: string;
34
- rate_limit_requests?: number;
35
- rate_limit_window?: number;
36
- max_attachment_size?: number;
37
- max_attachments?: number;
38
- request_timeout?: number;
39
- max_subject_length?: number;
40
- max_body_length?: number;
41
- cors_allowed_origins?: string;
42
- smtp_host?: string;
43
- smtp_port?: number;
44
- smtp_secure?: boolean;
45
- smtp_auth_user?: string;
46
- smtp_auth_pass?: string;
47
- smtp_timeout?: number;
48
- smtp_pool?: boolean;
49
- pop3_host?: string;
50
- pop3_port?: number;
51
- pop3_secure?: boolean;
52
- pop3_auth_user?: string;
53
- pop3_auth_pass?: string;
54
- pop3_timeout?: number;
55
- }
56
- export interface EmailSendResponse {
57
- success: boolean;
58
- message_id?: string;
59
- message?: string;
60
- raw_response?: Record<string, unknown> | string;
61
- error?: string;
62
- }
63
- export interface ZeptomailEmailAddress {
64
- address: string;
65
- name?: string;
66
- }
67
- export interface ZeptomailEmailAddressObject {
68
- email_address: ZeptomailEmailAddress;
69
- }
70
- export interface ZeptomailAttachment {
71
- name: string;
72
- content: string;
73
- mime_type: string;
74
- }
75
- export interface ZeptomailEmailData {
76
- from: {
77
- address: string;
78
- name: string;
79
- };
80
- to: ZeptomailEmailAddressObject[];
81
- subject: string;
82
- textbody?: string;
83
- htmlbody?: string;
84
- reply_to?: Array<{
85
- address: string;
86
- }>;
87
- cc?: ZeptomailEmailAddressObject[];
88
- bcc?: ZeptomailEmailAddressObject[];
89
- attachments?: ZeptomailAttachment[];
90
- }
91
- export interface EmailProvider {
92
- send_email(options: SendEmailOptions, config: EmailerConfig): Promise<EmailSendResponse>;
93
- }
94
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/emailer/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- /**
3
- * Type definitions for the emailer service
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/emailer/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Constants for emailer service
3
- * Centralized constants to avoid magic numbers and strings
4
- */
5
- export declare const DEFAULT_RATE_LIMIT_REQUESTS = 10;
6
- export declare const DEFAULT_RATE_LIMIT_WINDOW = 60;
7
- export declare const DEFAULT_MAX_ATTACHMENT_SIZE: number;
8
- export declare const DEFAULT_MAX_ATTACHMENTS = 10;
9
- export declare const DEFAULT_REQUEST_TIMEOUT = 30000;
10
- export declare const MAX_SUBJECT_LENGTH = 255;
11
- export declare const MAX_BODY_LENGTH: number;
12
- export declare const MAX_EMAIL_LENGTH = 254;
13
- export declare const VALID_EMAILER_MODULES: readonly ["zeptoemail_api", "smtp", "pop3"];
14
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/lib/emailer/utils/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAC5D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAG7C,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,eAAe,QAAc,CAAC;AAC3C,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAGpC,eAAO,MAAM,qBAAqB,6CAA8C,CAAC"}