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,22 +0,0 @@
1
- "use strict";
2
- /**
3
- * Constants for emailer service
4
- * Centralized constants to avoid magic numbers and strings
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.VALID_EMAILER_MODULES = exports.MAX_EMAIL_LENGTH = exports.MAX_BODY_LENGTH = exports.MAX_SUBJECT_LENGTH = exports.DEFAULT_REQUEST_TIMEOUT = exports.DEFAULT_MAX_ATTACHMENTS = exports.DEFAULT_MAX_ATTACHMENT_SIZE = exports.DEFAULT_RATE_LIMIT_WINDOW = exports.DEFAULT_RATE_LIMIT_REQUESTS = void 0;
8
- // Rate limiting constants
9
- exports.DEFAULT_RATE_LIMIT_REQUESTS = 10; // requests per minute
10
- exports.DEFAULT_RATE_LIMIT_WINDOW = 60; // seconds
11
- // Attachment limits
12
- exports.DEFAULT_MAX_ATTACHMENT_SIZE = 10 * 1024 * 1024; // 10MB in bytes
13
- exports.DEFAULT_MAX_ATTACHMENTS = 10;
14
- // Request timeout
15
- exports.DEFAULT_REQUEST_TIMEOUT = 30000; // 30 seconds in milliseconds
16
- // Input length limits
17
- exports.MAX_SUBJECT_LENGTH = 255; // characters
18
- exports.MAX_BODY_LENGTH = 1024 * 1024; // 1MB in bytes
19
- exports.MAX_EMAIL_LENGTH = 254; // characters (RFC 5321)
20
- // Valid emailer modules
21
- exports.VALID_EMAILER_MODULES = ['zeptoemail_api', 'smtp', 'pop3'];
22
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/emailer/utils/constants.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,0BAA0B;AACb,QAAA,2BAA2B,GAAG,EAAE,CAAC,CAAC,sBAAsB;AACxD,QAAA,yBAAyB,GAAG,EAAE,CAAC,CAAC,UAAU;AAEvD,oBAAoB;AACP,QAAA,2BAA2B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,gBAAgB;AAChE,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAE1C,kBAAkB;AACL,QAAA,uBAAuB,GAAG,KAAK,CAAC,CAAC,6BAA6B;AAE3E,sBAAsB;AACT,QAAA,kBAAkB,GAAG,GAAG,CAAC,CAAC,aAAa;AACvC,QAAA,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,eAAe;AAC9C,QAAA,gBAAgB,GAAG,GAAG,CAAC,CAAC,wBAAwB;AAE7D,wBAAwB;AACX,QAAA,qBAAqB,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Utility functions for emailer service
3
- * Centralized exports for validation, logging, and constants
4
- */
5
- export * from './constants';
6
- export * from './validation';
7
- export * from './logger';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/emailer/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/emailer/utils/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,8CAA4B;AAC5B,+CAA6B;AAC7B,2CAAyB"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Centralized logging utility for emailer service
3
- * Provides consistent JSON logging format across all components
4
- */
5
- interface LogEntry {
6
- filename: string;
7
- function_name: string;
8
- line_number?: string | number;
9
- message: string;
10
- [key: string]: unknown;
11
- }
12
- /**
13
- * Log an error message
14
- * @param entry - Log entry object
15
- */
16
- export declare function log_error(entry: LogEntry): void;
17
- /**
18
- * Log an info message
19
- * @param entry - Log entry object
20
- */
21
- export declare function log_info(entry: LogEntry): void;
22
- /**
23
- * Log a warning message
24
- * @param entry - Log entry object
25
- */
26
- export declare function log_warning(entry: LogEntry): void;
27
- /**
28
- * Create a log entry with standard fields
29
- * @param filename - Name of the file
30
- * @param function_name - Name of the function
31
- * @param message - Log message
32
- * @param additional_data - Additional data to include
33
- * @returns Log entry object
34
- */
35
- export declare function create_log_entry(filename: string, function_name: string, message: string, additional_data?: Record<string, unknown>): LogEntry;
36
- export {};
37
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/lib/emailer/utils/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU,QAAQ;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAM/C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAM9C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAMjD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,QAAQ,CAOV"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- /**
3
- * Centralized logging utility for emailer service
4
- * Provides consistent JSON logging format across all components
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.log_error = log_error;
8
- exports.log_info = log_info;
9
- exports.log_warning = log_warning;
10
- exports.create_log_entry = create_log_entry;
11
- /**
12
- * Log an error message
13
- * @param entry - Log entry object
14
- */
15
- function log_error(entry) {
16
- console.error(JSON.stringify({
17
- level: 'error',
18
- timestamp: new Date().toISOString(),
19
- ...entry,
20
- }));
21
- }
22
- /**
23
- * Log an info message
24
- * @param entry - Log entry object
25
- */
26
- function log_info(entry) {
27
- console.log(JSON.stringify({
28
- level: 'info',
29
- timestamp: new Date().toISOString(),
30
- ...entry,
31
- }));
32
- }
33
- /**
34
- * Log a warning message
35
- * @param entry - Log entry object
36
- */
37
- function log_warning(entry) {
38
- console.warn(JSON.stringify({
39
- level: 'warning',
40
- timestamp: new Date().toISOString(),
41
- ...entry,
42
- }));
43
- }
44
- /**
45
- * Create a log entry with standard fields
46
- * @param filename - Name of the file
47
- * @param function_name - Name of the function
48
- * @param message - Log message
49
- * @param additional_data - Additional data to include
50
- * @returns Log entry object
51
- */
52
- function create_log_entry(filename, function_name, message, additional_data) {
53
- return {
54
- filename,
55
- function_name,
56
- message,
57
- ...(additional_data || {}),
58
- };
59
- }
60
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/lib/emailer/utils/logger.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAcH,8BAMC;AAMD,4BAMC;AAMD,kCAMC;AAUD,4CAYC;AAxDD;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAe;IACvC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3B,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,KAAK;KACT,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAe;IACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACzB,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,KAAK;KACT,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAe;IACzC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,KAAK;KACT,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,QAAgB,EAChB,aAAqB,EACrB,OAAe,EACf,eAAyC;IAEzC,OAAO;QACL,QAAQ;QACR,aAAa;QACb,OAAO;QACP,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;KAC3B,CAAC;AACJ,CAAC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Validation utilities for emailer service
3
- * Provides email validation, sanitization, and input validation functions
4
- */
5
- /**
6
- * Validate email address format
7
- * @param email - Email address to validate
8
- * @returns boolean indicating if email is valid
9
- */
10
- export declare function validate_email_address(email: string): boolean;
11
- /**
12
- * Sanitize email header to prevent injection attacks
13
- * Removes newlines, carriage returns, and other control characters
14
- * @param value - Header value to sanitize
15
- * @returns Sanitized header value
16
- */
17
- export declare function sanitize_email_header(value: string): string;
18
- /**
19
- * Validate subject length
20
- * @param subject - Email subject to validate
21
- * @returns boolean indicating if subject is valid
22
- */
23
- export declare function validate_subject_length(subject: string): boolean;
24
- /**
25
- * Validate body length
26
- * @param body - Email body to validate
27
- * @returns boolean indicating if body is valid
28
- */
29
- export declare function validate_body_length(body: string): boolean;
30
- /**
31
- * Validate attachment size
32
- * @param content - Base64 encoded attachment content
33
- * @param max_size - Maximum size in bytes
34
- * @returns boolean indicating if attachment size is valid
35
- */
36
- export declare function validate_attachment_size(content: string, max_size: number): boolean;
37
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/lib/emailer/utils/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAS7D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAKhE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWnF"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
- /**
3
- * Validation utilities for emailer service
4
- * Provides email validation, sanitization, and input validation functions
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.validate_email_address = validate_email_address;
8
- exports.sanitize_email_header = sanitize_email_header;
9
- exports.validate_subject_length = validate_subject_length;
10
- exports.validate_body_length = validate_body_length;
11
- exports.validate_attachment_size = validate_attachment_size;
12
- const constants_1 = require("./constants");
13
- /**
14
- * Validate email address format
15
- * @param email - Email address to validate
16
- * @returns boolean indicating if email is valid
17
- */
18
- function validate_email_address(email) {
19
- if (!email || typeof email !== 'string') {
20
- return false;
21
- }
22
- // RFC 5322 compliant regex (simplified)
23
- const email_regex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
24
- return email_regex.test(email) && email.length <= constants_1.MAX_EMAIL_LENGTH;
25
- }
26
- /**
27
- * Sanitize email header to prevent injection attacks
28
- * Removes newlines, carriage returns, and other control characters
29
- * @param value - Header value to sanitize
30
- * @returns Sanitized header value
31
- */
32
- function sanitize_email_header(value) {
33
- if (!value || typeof value !== 'string') {
34
- return '';
35
- }
36
- // Remove newlines, carriage returns, and other control characters
37
- return value.replace(/[\r\n\t\0\x08\x0B\x0C\x1F]/g, '').trim();
38
- }
39
- /**
40
- * Validate subject length
41
- * @param subject - Email subject to validate
42
- * @returns boolean indicating if subject is valid
43
- */
44
- function validate_subject_length(subject) {
45
- if (!subject || typeof subject !== 'string') {
46
- return false;
47
- }
48
- return subject.length <= constants_1.MAX_SUBJECT_LENGTH;
49
- }
50
- /**
51
- * Validate body length
52
- * @param body - Email body to validate
53
- * @returns boolean indicating if body is valid
54
- */
55
- function validate_body_length(body) {
56
- if (!body || typeof body !== 'string') {
57
- return false;
58
- }
59
- // Calculate byte length (UTF-8 encoding)
60
- const byte_length = Buffer.from(body, 'utf8').length;
61
- return byte_length <= constants_1.MAX_BODY_LENGTH;
62
- }
63
- /**
64
- * Validate attachment size
65
- * @param content - Base64 encoded attachment content
66
- * @param max_size - Maximum size in bytes
67
- * @returns boolean indicating if attachment size is valid
68
- */
69
- function validate_attachment_size(content, max_size) {
70
- if (!content || typeof content !== 'string') {
71
- return false;
72
- }
73
- try {
74
- const size = Buffer.from(content, 'base64').length;
75
- return size <= max_size;
76
- }
77
- catch (error) {
78
- return false;
79
- }
80
- }
81
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/lib/emailer/utils/validation.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AASH,wDASC;AAQD,sDAOC;AAOD,0DAKC;AAOD,oDAQC;AAQD,4DAWC;AA7ED,2CAAoF;AAEpF;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,KAAa;IAClD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,MAAM,WAAW,GAAG,sIAAsI,CAAC;IAE3J,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,4BAAgB,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,KAAa;IACjD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kEAAkE;IAClE,OAAO,KAAK,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,OAAe;IACrD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,IAAI,8BAAkB,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yCAAyC;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;IACrD,OAAO,WAAW,IAAI,2BAAe,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,OAAe,EAAE,QAAgB;IACxE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC;QACnD,OAAO,IAAI,IAAI,QAAQ,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Main library exports
3
- * Entry point for the hazo_notify library
4
- */
5
- export * from './emailer';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,WAAW,CAAC"}
package/dist/lib/index.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- /**
3
- * Main library exports
4
- * Entry point for the hazo_notify 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
- __exportStar(require("./emailer"), exports);
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,4CAA0B"}
@@ -1,3 +0,0 @@
1
- import { type ClassValue } from "clsx";
2
- export declare function cn(...inputs: ClassValue[]): string;
3
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
package/dist/lib/utils.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cn = cn;
4
- const clsx_1 = require("clsx");
5
- const tailwind_merge_1 = require("tailwind-merge");
6
- function cn(...inputs) {
7
- return (0, tailwind_merge_1.twMerge)((0, clsx_1.clsx)(inputs));
8
- }
9
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":";;AAGA,gBAEC;AALD,+BAA6C;AAC7C,mDAAyC;AAEzC,SAAgB,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,IAAA,wBAAO,EAAC,IAAA,WAAI,EAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}