hazo_notify 1.0.1 → 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 (155) 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/{lib/emailer → emailer}/emailer.d.ts +2 -2
  12. package/dist/emailer/emailer.d.ts.map +1 -0
  13. package/dist/{lib/emailer → emailer}/emailer.js +38 -24
  14. package/dist/emailer/emailer.js.map +1 -0
  15. package/dist/{lib/emailer → emailer}/index.d.ts +1 -0
  16. package/dist/emailer/index.d.ts.map +1 -0
  17. package/dist/{lib/emailer → emailer}/index.js +5 -1
  18. package/dist/emailer/index.js.map +1 -0
  19. package/dist/{lib/emailer → emailer}/providers/index.d.ts +1 -1
  20. package/dist/emailer/providers/index.d.ts.map +1 -0
  21. package/dist/emailer/providers/index.js.map +1 -0
  22. package/dist/{lib/emailer → emailer}/providers/pop3_provider.d.ts +3 -2
  23. package/dist/emailer/providers/pop3_provider.d.ts.map +1 -0
  24. package/dist/{lib/emailer → emailer}/providers/pop3_provider.js +2 -1
  25. package/dist/emailer/providers/pop3_provider.js.map +1 -0
  26. package/dist/{lib/emailer → emailer}/providers/smtp_provider.d.ts +3 -2
  27. package/dist/emailer/providers/smtp_provider.d.ts.map +1 -0
  28. package/dist/{lib/emailer → emailer}/providers/smtp_provider.js +2 -1
  29. package/dist/emailer/providers/smtp_provider.js.map +1 -0
  30. package/dist/{lib/emailer → emailer}/providers/zeptomail_provider.d.ts +3 -2
  31. package/dist/emailer/providers/zeptomail_provider.d.ts.map +1 -0
  32. package/dist/{lib/emailer → emailer}/providers/zeptomail_provider.js +56 -38
  33. package/dist/emailer/providers/zeptomail_provider.js.map +1 -0
  34. package/dist/{lib/emailer → emailer}/types.d.ts +13 -1
  35. package/dist/emailer/types.d.ts.map +1 -0
  36. package/dist/emailer/types.js.map +1 -0
  37. package/dist/{lib/emailer → emailer}/utils/constants.d.ts +1 -0
  38. package/dist/emailer/utils/constants.d.ts.map +1 -0
  39. package/dist/emailer/utils/constants.js.map +1 -0
  40. package/dist/emailer/utils/index.d.ts.map +1 -0
  41. package/dist/emailer/utils/index.js.map +1 -0
  42. package/dist/emailer/utils/logger.d.ts +48 -0
  43. package/dist/emailer/utils/logger.d.ts.map +1 -0
  44. package/dist/emailer/utils/logger.js +98 -0
  45. package/dist/emailer/utils/logger.js.map +1 -0
  46. package/dist/emailer/utils/validation.d.ts.map +1 -0
  47. package/dist/emailer/utils/validation.js.map +1 -0
  48. package/dist/index.d.ts +7 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/{lib/index.js → index.js} +2 -1
  51. package/dist/index.js.map +1 -0
  52. package/dist/template_manager/config/config_loader.d.ts +48 -0
  53. package/dist/template_manager/config/config_loader.d.ts.map +1 -0
  54. package/dist/template_manager/config/config_loader.js +161 -0
  55. package/dist/template_manager/config/config_loader.js.map +1 -0
  56. package/dist/template_manager/config/constants.d.ts +101 -0
  57. package/dist/template_manager/config/constants.d.ts.map +1 -0
  58. package/dist/template_manager/config/constants.js +163 -0
  59. package/dist/template_manager/config/constants.js.map +1 -0
  60. package/dist/template_manager/config/index.d.ts +6 -0
  61. package/dist/template_manager/config/index.d.ts.map +1 -0
  62. package/dist/template_manager/config/index.js +24 -0
  63. package/dist/template_manager/config/index.js.map +1 -0
  64. package/dist/template_manager/db/category_repository.d.ts +57 -0
  65. package/dist/template_manager/db/category_repository.d.ts.map +1 -0
  66. package/dist/template_manager/db/category_repository.js +326 -0
  67. package/dist/template_manager/db/category_repository.js.map +1 -0
  68. package/dist/template_manager/db/index.d.ts +6 -0
  69. package/dist/template_manager/db/index.d.ts.map +1 -0
  70. package/dist/template_manager/db/index.js +23 -0
  71. package/dist/template_manager/db/index.js.map +1 -0
  72. package/dist/template_manager/db/template_repository.d.ts +76 -0
  73. package/dist/template_manager/db/template_repository.d.ts.map +1 -0
  74. package/dist/template_manager/db/template_repository.js +684 -0
  75. package/dist/template_manager/db/template_repository.js.map +1 -0
  76. package/dist/template_manager/engine/handlebars_engine.d.ts +52 -0
  77. package/dist/template_manager/engine/handlebars_engine.d.ts.map +1 -0
  78. package/dist/template_manager/engine/handlebars_engine.js +175 -0
  79. package/dist/template_manager/engine/handlebars_engine.js.map +1 -0
  80. package/dist/template_manager/engine/index.d.ts +6 -0
  81. package/dist/template_manager/engine/index.d.ts.map +1 -0
  82. package/dist/template_manager/engine/index.js +19 -0
  83. package/dist/template_manager/engine/index.js.map +1 -0
  84. package/dist/template_manager/engine/variable_resolver.d.ts +48 -0
  85. package/dist/template_manager/engine/variable_resolver.d.ts.map +1 -0
  86. package/dist/template_manager/engine/variable_resolver.js +223 -0
  87. package/dist/template_manager/engine/variable_resolver.js.map +1 -0
  88. package/dist/template_manager/index.d.ts +32 -0
  89. package/dist/template_manager/index.d.ts.map +1 -0
  90. package/dist/template_manager/index.js +88 -0
  91. package/dist/template_manager/index.js.map +1 -0
  92. package/dist/template_manager/template_manager.d.ts +69 -0
  93. package/dist/template_manager/template_manager.d.ts.map +1 -0
  94. package/dist/template_manager/template_manager.js +335 -0
  95. package/dist/template_manager/template_manager.js.map +1 -0
  96. package/dist/template_manager/types.d.ts +255 -0
  97. package/dist/template_manager/types.d.ts.map +1 -0
  98. package/dist/template_manager/types.js +12 -0
  99. package/dist/template_manager/types.js.map +1 -0
  100. package/dist/template_manager/utils/index.d.ts +6 -0
  101. package/dist/template_manager/utils/index.d.ts.map +1 -0
  102. package/dist/template_manager/utils/index.js +21 -0
  103. package/dist/template_manager/utils/index.js.map +1 -0
  104. package/dist/template_manager/utils/system_variables.d.ts +28 -0
  105. package/dist/template_manager/utils/system_variables.d.ts.map +1 -0
  106. package/dist/template_manager/utils/system_variables.js +209 -0
  107. package/dist/template_manager/utils/system_variables.js.map +1 -0
  108. package/dist/template_manager/utils/validation.d.ts +74 -0
  109. package/dist/template_manager/utils/validation.d.ts.map +1 -0
  110. package/dist/template_manager/utils/validation.js +163 -0
  111. package/dist/template_manager/utils/validation.js.map +1 -0
  112. package/dist/utils.d.ts +12 -0
  113. package/dist/utils.d.ts.map +1 -0
  114. package/dist/utils.js +18 -0
  115. package/dist/utils.js.map +1 -0
  116. package/hazo_notify_config.ini +39 -0
  117. package/package.json +71 -21
  118. package/dist/lib/emailer/emailer.d.ts.map +0 -1
  119. package/dist/lib/emailer/emailer.js.map +0 -1
  120. package/dist/lib/emailer/index.d.ts.map +0 -1
  121. package/dist/lib/emailer/index.js.map +0 -1
  122. package/dist/lib/emailer/providers/index.d.ts.map +0 -1
  123. package/dist/lib/emailer/providers/index.js.map +0 -1
  124. package/dist/lib/emailer/providers/pop3_provider.d.ts.map +0 -1
  125. package/dist/lib/emailer/providers/pop3_provider.js.map +0 -1
  126. package/dist/lib/emailer/providers/smtp_provider.d.ts.map +0 -1
  127. package/dist/lib/emailer/providers/smtp_provider.js.map +0 -1
  128. package/dist/lib/emailer/providers/zeptomail_provider.d.ts.map +0 -1
  129. package/dist/lib/emailer/providers/zeptomail_provider.js.map +0 -1
  130. package/dist/lib/emailer/types.d.ts.map +0 -1
  131. package/dist/lib/emailer/types.js.map +0 -1
  132. package/dist/lib/emailer/utils/constants.d.ts.map +0 -1
  133. package/dist/lib/emailer/utils/constants.js.map +0 -1
  134. package/dist/lib/emailer/utils/index.d.ts.map +0 -1
  135. package/dist/lib/emailer/utils/index.js.map +0 -1
  136. package/dist/lib/emailer/utils/logger.d.ts +0 -37
  137. package/dist/lib/emailer/utils/logger.d.ts.map +0 -1
  138. package/dist/lib/emailer/utils/logger.js +0 -60
  139. package/dist/lib/emailer/utils/logger.js.map +0 -1
  140. package/dist/lib/emailer/utils/validation.d.ts.map +0 -1
  141. package/dist/lib/emailer/utils/validation.js.map +0 -1
  142. package/dist/lib/index.d.ts +0 -6
  143. package/dist/lib/index.d.ts.map +0 -1
  144. package/dist/lib/index.js.map +0 -1
  145. package/dist/lib/utils.d.ts +0 -3
  146. package/dist/lib/utils.d.ts.map +0 -1
  147. package/dist/lib/utils.js +0 -9
  148. package/dist/lib/utils.js.map +0 -1
  149. /package/dist/{lib/emailer → emailer}/providers/index.js +0 -0
  150. /package/dist/{lib/emailer → emailer}/types.js +0 -0
  151. /package/dist/{lib/emailer → emailer}/utils/constants.js +0 -0
  152. /package/dist/{lib/emailer → emailer}/utils/index.d.ts +0 -0
  153. /package/dist/{lib/emailer → emailer}/utils/index.js +0 -0
  154. /package/dist/{lib/emailer → emailer}/utils/validation.d.ts +0 -0
  155. /package/dist/{lib/emailer → emailer}/utils/validation.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template_repository.js","sourceRoot":"","sources":["../../../src/lib/template_manager/db/template_repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Handlebars template engine for template manager
3
+ *
4
+ * Provides template rendering with variable substitution
5
+ */
6
+ import type { TemplateRenderResult } from '../types';
7
+ /**
8
+ * Render a template string with Handlebars
9
+ *
10
+ * @param template_string - Template content with {{variable}} placeholders
11
+ * @param variables - Variables to substitute
12
+ * @param cache_key - Optional cache key for template reuse
13
+ * @returns Rendered template string
14
+ */
15
+ export declare function render_handlebars_string(template_string: string, variables: Record<string, string>, cache_key?: string): string;
16
+ /**
17
+ * Render a template with both HTML and text versions
18
+ *
19
+ * @param html_template - HTML template content
20
+ * @param text_template - Text template content
21
+ * @param variables - Variables to substitute
22
+ * @param template_name - Template name for caching
23
+ * @returns Render result with both HTML and text
24
+ */
25
+ export declare function render_handlebars(html_template: string, text_template: string, variables: Record<string, string>, template_name?: string): TemplateRenderResult;
26
+ /**
27
+ * Render HTML template only
28
+ *
29
+ * @param html_template - HTML template content
30
+ * @param variables - Variables to substitute
31
+ * @param cache_key - Optional cache key
32
+ * @returns Render result with HTML
33
+ */
34
+ export declare function render_handlebars_html(html_template: string, variables: Record<string, string>, cache_key?: string): TemplateRenderResult;
35
+ /**
36
+ * Clear the template cache
37
+ */
38
+ export declare function clear_template_cache(): void;
39
+ /**
40
+ * Remove a specific template from cache
41
+ *
42
+ * @param template_name - Template name to remove from cache
43
+ */
44
+ export declare function invalidate_template_cache(template_name: string): void;
45
+ /**
46
+ * Check if a template is cached
47
+ *
48
+ * @param template_name - Template name to check
49
+ * @returns true if template is cached
50
+ */
51
+ export declare function is_template_cached(template_name: string): boolean;
52
+ //# sourceMappingURL=handlebars_engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlebars_engine.d.ts","sourceRoot":"","sources":["../../../src/lib/template_manager/engine/handlebars_engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AA8ErD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAGR;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,aAAa,CAAC,EAAE,MAAM,GACrB,oBAAoB,CA+BtB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,SAAS,CAAC,EAAE,MAAM,GACjB,oBAAoB,CAsBtB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAGrE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAKjE"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ /**
3
+ * Handlebars template engine for template manager
4
+ *
5
+ * Provides template rendering with variable substitution
6
+ */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.render_handlebars_string = render_handlebars_string;
12
+ exports.render_handlebars = render_handlebars;
13
+ exports.render_handlebars_html = render_handlebars_html;
14
+ exports.clear_template_cache = clear_template_cache;
15
+ exports.invalidate_template_cache = invalidate_template_cache;
16
+ exports.is_template_cached = is_template_cached;
17
+ const handlebars_1 = __importDefault(require("handlebars"));
18
+ /**
19
+ * Compile and cache templates for performance
20
+ */
21
+ const template_cache = new Map();
22
+ /**
23
+ * Register custom Handlebars helpers
24
+ */
25
+ function register_helpers() {
26
+ // Helper for uppercase
27
+ if (!handlebars_1.default.helpers['uppercase']) {
28
+ handlebars_1.default.registerHelper('uppercase', (str) => {
29
+ return typeof str === 'string' ? str.toUpperCase() : '';
30
+ });
31
+ }
32
+ // Helper for lowercase
33
+ if (!handlebars_1.default.helpers['lowercase']) {
34
+ handlebars_1.default.registerHelper('lowercase', (str) => {
35
+ return typeof str === 'string' ? str.toLowerCase() : '';
36
+ });
37
+ }
38
+ // Helper for capitalize
39
+ if (!handlebars_1.default.helpers['capitalize']) {
40
+ handlebars_1.default.registerHelper('capitalize', (str) => {
41
+ if (typeof str !== 'string' || str.length === 0)
42
+ return '';
43
+ return str.charAt(0).toUpperCase() + str.slice(1);
44
+ });
45
+ }
46
+ // Helper for default value
47
+ if (!handlebars_1.default.helpers['default']) {
48
+ handlebars_1.default.registerHelper('default', (value, defaultValue) => {
49
+ return value || defaultValue;
50
+ });
51
+ }
52
+ // Helper for equality check
53
+ if (!handlebars_1.default.helpers['eq']) {
54
+ handlebars_1.default.registerHelper('eq', (a, b) => {
55
+ return a === b;
56
+ });
57
+ }
58
+ }
59
+ // Register helpers on module load
60
+ register_helpers();
61
+ /**
62
+ * Get or compile a template
63
+ *
64
+ * @param template_string - Template content to compile
65
+ * @param cache_key - Optional cache key for template reuse
66
+ * @returns Compiled template function
67
+ */
68
+ function get_compiled_template(template_string, cache_key) {
69
+ if (cache_key && template_cache.has(cache_key)) {
70
+ return template_cache.get(cache_key);
71
+ }
72
+ const compiled = handlebars_1.default.compile(template_string, {
73
+ strict: false,
74
+ noEscape: false, // HTML escape by default for security
75
+ });
76
+ if (cache_key) {
77
+ template_cache.set(cache_key, compiled);
78
+ }
79
+ return compiled;
80
+ }
81
+ /**
82
+ * Render a template string with Handlebars
83
+ *
84
+ * @param template_string - Template content with {{variable}} placeholders
85
+ * @param variables - Variables to substitute
86
+ * @param cache_key - Optional cache key for template reuse
87
+ * @returns Rendered template string
88
+ */
89
+ function render_handlebars_string(template_string, variables, cache_key) {
90
+ const template = get_compiled_template(template_string, cache_key);
91
+ return template(variables);
92
+ }
93
+ /**
94
+ * Render a template with both HTML and text versions
95
+ *
96
+ * @param html_template - HTML template content
97
+ * @param text_template - Text template content
98
+ * @param variables - Variables to substitute
99
+ * @param template_name - Template name for caching
100
+ * @returns Render result with both HTML and text
101
+ */
102
+ function render_handlebars(html_template, text_template, variables, template_name) {
103
+ try {
104
+ const html_cache_key = template_name ? `${template_name}_html` : undefined;
105
+ const text_cache_key = template_name ? `${template_name}_text` : undefined;
106
+ const rendered_html = render_handlebars_string(html_template, variables, html_cache_key);
107
+ const rendered_text = render_handlebars_string(text_template, variables, text_cache_key);
108
+ return {
109
+ success: true,
110
+ rendered_html,
111
+ rendered_text,
112
+ message: 'Template rendered successfully',
113
+ };
114
+ }
115
+ catch (error) {
116
+ const error_message = error instanceof Error ? error.message : 'Unknown rendering error';
117
+ return {
118
+ success: false,
119
+ error: error_message,
120
+ message: `Failed to render template: ${error_message}`,
121
+ };
122
+ }
123
+ }
124
+ /**
125
+ * Render HTML template only
126
+ *
127
+ * @param html_template - HTML template content
128
+ * @param variables - Variables to substitute
129
+ * @param cache_key - Optional cache key
130
+ * @returns Render result with HTML
131
+ */
132
+ function render_handlebars_html(html_template, variables, cache_key) {
133
+ try {
134
+ const rendered_html = render_handlebars_string(html_template, variables, cache_key);
135
+ return {
136
+ success: true,
137
+ rendered_html,
138
+ message: 'HTML template rendered successfully',
139
+ };
140
+ }
141
+ catch (error) {
142
+ const error_message = error instanceof Error ? error.message : 'Unknown rendering error';
143
+ return {
144
+ success: false,
145
+ error: error_message,
146
+ message: `Failed to render HTML template: ${error_message}`,
147
+ };
148
+ }
149
+ }
150
+ /**
151
+ * Clear the template cache
152
+ */
153
+ function clear_template_cache() {
154
+ template_cache.clear();
155
+ }
156
+ /**
157
+ * Remove a specific template from cache
158
+ *
159
+ * @param template_name - Template name to remove from cache
160
+ */
161
+ function invalidate_template_cache(template_name) {
162
+ template_cache.delete(`${template_name}_html`);
163
+ template_cache.delete(`${template_name}_text`);
164
+ }
165
+ /**
166
+ * Check if a template is cached
167
+ *
168
+ * @param template_name - Template name to check
169
+ * @returns true if template is cached
170
+ */
171
+ function is_template_cached(template_name) {
172
+ return (template_cache.has(`${template_name}_html`) ||
173
+ template_cache.has(`${template_name}_text`));
174
+ }
175
+ //# sourceMappingURL=handlebars_engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlebars_engine.js","sourceRoot":"","sources":["../../../src/lib/template_manager/engine/handlebars_engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Engine barrel export for template manager
3
+ */
4
+ export { render_handlebars, render_handlebars_string, render_handlebars_html, clear_template_cache, invalidate_template_cache, is_template_cached, } from './handlebars_engine';
5
+ export { resolve_variables, extract_template_references, resolve_template_references, resolve_all_template_references, } from './variable_resolver';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/template_manager/engine/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Engine barrel export for template manager
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolve_all_template_references = exports.resolve_template_references = exports.extract_template_references = exports.resolve_variables = exports.is_template_cached = exports.invalidate_template_cache = exports.clear_template_cache = exports.render_handlebars_html = exports.render_handlebars_string = exports.render_handlebars = void 0;
7
+ var handlebars_engine_1 = require("./handlebars_engine");
8
+ Object.defineProperty(exports, "render_handlebars", { enumerable: true, get: function () { return handlebars_engine_1.render_handlebars; } });
9
+ Object.defineProperty(exports, "render_handlebars_string", { enumerable: true, get: function () { return handlebars_engine_1.render_handlebars_string; } });
10
+ Object.defineProperty(exports, "render_handlebars_html", { enumerable: true, get: function () { return handlebars_engine_1.render_handlebars_html; } });
11
+ Object.defineProperty(exports, "clear_template_cache", { enumerable: true, get: function () { return handlebars_engine_1.clear_template_cache; } });
12
+ Object.defineProperty(exports, "invalidate_template_cache", { enumerable: true, get: function () { return handlebars_engine_1.invalidate_template_cache; } });
13
+ Object.defineProperty(exports, "is_template_cached", { enumerable: true, get: function () { return handlebars_engine_1.is_template_cached; } });
14
+ var variable_resolver_1 = require("./variable_resolver");
15
+ Object.defineProperty(exports, "resolve_variables", { enumerable: true, get: function () { return variable_resolver_1.resolve_variables; } });
16
+ Object.defineProperty(exports, "extract_template_references", { enumerable: true, get: function () { return variable_resolver_1.extract_template_references; } });
17
+ Object.defineProperty(exports, "resolve_template_references", { enumerable: true, get: function () { return variable_resolver_1.resolve_template_references; } });
18
+ Object.defineProperty(exports, "resolve_all_template_references", { enumerable: true, get: function () { return variable_resolver_1.resolve_all_template_references; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/template_manager/engine/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yDAO6B;AAN3B,sHAAA,iBAAiB,OAAA;AACjB,6HAAA,wBAAwB,OAAA;AACxB,2HAAA,sBAAsB,OAAA;AACtB,yHAAA,oBAAoB,OAAA;AACpB,8HAAA,yBAAyB,OAAA;AACzB,uHAAA,kBAAkB,OAAA;AAGpB,yDAK6B;AAJ3B,sHAAA,iBAAiB,OAAA;AACjB,gIAAA,2BAA2B,OAAA;AAC3B,gIAAA,2BAA2B,OAAA;AAC3B,oIAAA,+BAA+B,OAAA"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Variable resolver for template manager
3
+ *
4
+ * Resolves user variables, system variables, and @template references
5
+ */
6
+ import type { HazoConnectInstance, TemplateRenderResult } from '../types';
7
+ /**
8
+ * Merge user variables with system variables
9
+ *
10
+ * System variables take lower priority than user variables
11
+ *
12
+ * @param user_variables - Variables provided by user
13
+ * @returns Merged variables with system variables
14
+ */
15
+ export declare function resolve_variables(user_variables: Record<string, string>): Record<string, string>;
16
+ /**
17
+ * Extract @template references from content
18
+ *
19
+ * @param content - Template content to scan
20
+ * @returns Array of template names referenced
21
+ */
22
+ export declare function extract_template_references(content: string): string[];
23
+ /**
24
+ * Resolve @template references in content
25
+ *
26
+ * Recursively fetches and renders referenced templates
27
+ *
28
+ * @param content - Template content with @references
29
+ * @param variables - Variables to use for rendering
30
+ * @param hazo_connect - Database connection
31
+ * @param org_id - Organization ID
32
+ * @param visited - Set of already visited templates (for circular detection)
33
+ * @param depth - Current recursion depth
34
+ * @returns Resolved content with references replaced
35
+ */
36
+ export declare function resolve_template_references(content: string, variables: Record<string, string>, hazo_connect: HazoConnectInstance, org_id: string, visited?: Set<string>, depth?: number): Promise<TemplateRenderResult>;
37
+ /**
38
+ * Resolve @template references for both HTML and text content
39
+ *
40
+ * @param html_content - HTML template content
41
+ * @param text_content - Text template content
42
+ * @param variables - Variables for rendering
43
+ * @param hazo_connect - Database connection
44
+ * @param org_id - Organization ID
45
+ * @returns Resolved HTML and text content
46
+ */
47
+ export declare function resolve_all_template_references(html_content: string, text_content: string, variables: Record<string, string>, hazo_connect: HazoConnectInstance, org_id: string): Promise<TemplateRenderResult>;
48
+ //# sourceMappingURL=variable_resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable_resolver.d.ts","sourceRoot":"","sources":["../../../src/lib/template_manager/engine/variable_resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,UAAU,CAAC;AAUlB;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAerE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,YAAY,EAAE,mBAAmB,EACjC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,EAChC,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAuF/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,YAAY,EAAE,mBAAmB,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,oBAAoB,CAAC,CAyC/B"}
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ /**
3
+ * Variable resolver for template manager
4
+ *
5
+ * Resolves user variables, system variables, and @template references
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.resolve_variables = resolve_variables;
9
+ exports.extract_template_references = extract_template_references;
10
+ exports.resolve_template_references = resolve_template_references;
11
+ exports.resolve_all_template_references = resolve_all_template_references;
12
+ const constants_1 = require("../config/constants");
13
+ const system_variables_1 = require("../utils/system_variables");
14
+ const template_repository_1 = require("../db/template_repository");
15
+ const handlebars_engine_1 = require("./handlebars_engine");
16
+ /**
17
+ * Merge user variables with system variables
18
+ *
19
+ * System variables take lower priority than user variables
20
+ *
21
+ * @param user_variables - Variables provided by user
22
+ * @returns Merged variables with system variables
23
+ */
24
+ function resolve_variables(user_variables) {
25
+ const system_vars = (0, system_variables_1.resolve_system_variables)();
26
+ return {
27
+ ...system_vars,
28
+ ...user_variables, // User variables override system variables
29
+ };
30
+ }
31
+ /**
32
+ * Extract @template references from content
33
+ *
34
+ * @param content - Template content to scan
35
+ * @returns Array of template names referenced
36
+ */
37
+ function extract_template_references(content) {
38
+ if (typeof content !== 'string') {
39
+ return [];
40
+ }
41
+ const matches = content.matchAll(constants_1.TEMPLATE_REFERENCE_PATTERN);
42
+ const references = new Set();
43
+ for (const match of matches) {
44
+ if (match[1]) {
45
+ references.add(match[1]);
46
+ }
47
+ }
48
+ return Array.from(references);
49
+ }
50
+ /**
51
+ * Resolve @template references in content
52
+ *
53
+ * Recursively fetches and renders referenced templates
54
+ *
55
+ * @param content - Template content with @references
56
+ * @param variables - Variables to use for rendering
57
+ * @param hazo_connect - Database connection
58
+ * @param org_id - Organization ID
59
+ * @param visited - Set of already visited templates (for circular detection)
60
+ * @param depth - Current recursion depth
61
+ * @returns Resolved content with references replaced
62
+ */
63
+ async function resolve_template_references(content, variables, hazo_connect, org_id, visited = new Set(), depth = 0) {
64
+ try {
65
+ // Check max depth
66
+ if (depth > constants_1.MAX_TEMPLATE_REFERENCE_DEPTH) {
67
+ return {
68
+ success: false,
69
+ error: constants_1.ERROR_MESSAGES.MAX_REFERENCE_DEPTH_EXCEEDED,
70
+ message: constants_1.ERROR_MESSAGES.MAX_REFERENCE_DEPTH_EXCEEDED,
71
+ };
72
+ }
73
+ const references = extract_template_references(content);
74
+ if (references.length === 0) {
75
+ return {
76
+ success: true,
77
+ rendered_html: content,
78
+ message: 'No template references to resolve',
79
+ };
80
+ }
81
+ let resolved_content = content;
82
+ for (const ref_name of references) {
83
+ // Check for circular reference
84
+ if (visited.has(ref_name)) {
85
+ return {
86
+ success: false,
87
+ error: constants_1.ERROR_MESSAGES.CIRCULAR_REFERENCE_DETECTED,
88
+ message: `Circular reference detected: ${ref_name}`,
89
+ };
90
+ }
91
+ // Fetch the referenced template
92
+ const template_result = await (0, template_repository_1.get_template_by_name)(hazo_connect, org_id, ref_name);
93
+ if (!template_result.success || !template_result.data) {
94
+ // Template not found, leave reference as-is
95
+ continue;
96
+ }
97
+ const template = template_result.data;
98
+ visited.add(ref_name);
99
+ // Recursively resolve any references in the fetched template
100
+ const nested_result = await resolve_template_references(template.template_html, variables, hazo_connect, org_id, new Set(visited), depth + 1);
101
+ if (!nested_result.success) {
102
+ return nested_result;
103
+ }
104
+ // Render the fetched template with variables
105
+ const rendered_ref = (0, handlebars_engine_1.render_handlebars_string)(nested_result.rendered_html || template.template_html, variables);
106
+ // Replace the @reference with rendered content
107
+ const ref_pattern = new RegExp(`@${ref_name}\\b`, 'g');
108
+ resolved_content = resolved_content.replace(ref_pattern, rendered_ref);
109
+ }
110
+ return {
111
+ success: true,
112
+ rendered_html: resolved_content,
113
+ message: 'Template references resolved successfully',
114
+ };
115
+ }
116
+ catch (error) {
117
+ const error_message = error instanceof Error ? error.message : 'Unknown error occurred';
118
+ return {
119
+ success: false,
120
+ error: error_message,
121
+ message: `Failed to resolve template references: ${error_message}`,
122
+ };
123
+ }
124
+ }
125
+ /**
126
+ * Resolve @template references for both HTML and text content
127
+ *
128
+ * @param html_content - HTML template content
129
+ * @param text_content - Text template content
130
+ * @param variables - Variables for rendering
131
+ * @param hazo_connect - Database connection
132
+ * @param org_id - Organization ID
133
+ * @returns Resolved HTML and text content
134
+ */
135
+ async function resolve_all_template_references(html_content, text_content, variables, hazo_connect, org_id) {
136
+ try {
137
+ // Resolve HTML references
138
+ const html_result = await resolve_template_references(html_content, variables, hazo_connect, org_id);
139
+ if (!html_result.success) {
140
+ return html_result;
141
+ }
142
+ // Resolve text references (fetch text version of templates)
143
+ const text_result = await resolve_text_template_references(text_content, variables, hazo_connect, org_id);
144
+ if (!text_result.success) {
145
+ return text_result;
146
+ }
147
+ return {
148
+ success: true,
149
+ rendered_html: html_result.rendered_html,
150
+ rendered_text: text_result.rendered_text,
151
+ message: 'All template references resolved',
152
+ };
153
+ }
154
+ catch (error) {
155
+ const error_message = error instanceof Error ? error.message : 'Unknown error occurred';
156
+ return {
157
+ success: false,
158
+ error: error_message,
159
+ message: `Failed to resolve all references: ${error_message}`,
160
+ };
161
+ }
162
+ }
163
+ /**
164
+ * Resolve @template references in text content
165
+ * Uses template_text instead of template_html
166
+ */
167
+ async function resolve_text_template_references(content, variables, hazo_connect, org_id, visited = new Set(), depth = 0) {
168
+ try {
169
+ if (depth > constants_1.MAX_TEMPLATE_REFERENCE_DEPTH) {
170
+ return {
171
+ success: false,
172
+ error: constants_1.ERROR_MESSAGES.MAX_REFERENCE_DEPTH_EXCEEDED,
173
+ message: constants_1.ERROR_MESSAGES.MAX_REFERENCE_DEPTH_EXCEEDED,
174
+ };
175
+ }
176
+ const references = extract_template_references(content);
177
+ if (references.length === 0) {
178
+ return {
179
+ success: true,
180
+ rendered_text: content,
181
+ message: 'No template references to resolve',
182
+ };
183
+ }
184
+ let resolved_content = content;
185
+ for (const ref_name of references) {
186
+ if (visited.has(ref_name)) {
187
+ return {
188
+ success: false,
189
+ error: constants_1.ERROR_MESSAGES.CIRCULAR_REFERENCE_DETECTED,
190
+ message: `Circular reference detected: ${ref_name}`,
191
+ };
192
+ }
193
+ const template_result = await (0, template_repository_1.get_template_by_name)(hazo_connect, org_id, ref_name);
194
+ if (!template_result.success || !template_result.data) {
195
+ continue;
196
+ }
197
+ const template = template_result.data;
198
+ visited.add(ref_name);
199
+ // Recursively resolve text template references
200
+ const nested_result = await resolve_text_template_references(template.template_text, variables, hazo_connect, org_id, new Set(visited), depth + 1);
201
+ if (!nested_result.success) {
202
+ return nested_result;
203
+ }
204
+ const rendered_ref = (0, handlebars_engine_1.render_handlebars_string)(nested_result.rendered_text || template.template_text, variables);
205
+ const ref_pattern = new RegExp(`@${ref_name}\\b`, 'g');
206
+ resolved_content = resolved_content.replace(ref_pattern, rendered_ref);
207
+ }
208
+ return {
209
+ success: true,
210
+ rendered_text: resolved_content,
211
+ message: 'Text template references resolved successfully',
212
+ };
213
+ }
214
+ catch (error) {
215
+ const error_message = error instanceof Error ? error.message : 'Unknown error occurred';
216
+ return {
217
+ success: false,
218
+ error: error_message,
219
+ message: `Failed to resolve text references: ${error_message}`,
220
+ };
221
+ }
222
+ }
223
+ //# sourceMappingURL=variable_resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable_resolver.js","sourceRoot":"","sources":["../../../src/lib/template_manager/engine/variable_resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Template Manager Module
3
+ *
4
+ * Email template management with Handlebars rendering and database storage
5
+ *
6
+ * Usage:
7
+ * ```typescript
8
+ * import { send_template_email, seed_default_templates } from 'hazo_notify/template_manager';
9
+ * import { createHazoConnect } from 'hazo_connect/server';
10
+ *
11
+ * const hazo = createHazoConnect({ type: 'sqlite', sqlite: { database_path: './db.sqlite' } });
12
+ *
13
+ * // Seed default templates on app init
14
+ * await seed_default_templates(hazo, org_id, root_org_id);
15
+ *
16
+ * // Send templated email
17
+ * const result = await send_template_email({
18
+ * template_name: 'welcome_email',
19
+ * variables: { user_name: 'John', login_url: 'https://example.com/login' },
20
+ * to: 'john@example.com',
21
+ * subject: 'Welcome!'
22
+ * }, hazo, org_id);
23
+ * ```
24
+ */
25
+ export { send_template_email, render_template, preview_template, validate_template_variables, } from './template_manager';
26
+ export { load_template_config, get_template_variables, get_all_variable_names, clear_config_cache, } from './config/config_loader';
27
+ export { list_categories, get_category, create_category, update_category, delete_category, find_category_by_name, list_templates, list_templates_by_category, get_template, get_template_by_name, create_template, update_template, delete_template, seed_default_templates, } from './db';
28
+ export { render_handlebars, render_handlebars_string, clear_template_cache, invalidate_template_cache, resolve_variables, extract_template_references, resolve_template_references, } from './engine';
29
+ export { get_system_variables, resolve_system_variables, get_system_variable_definitions, validate_template_name, validate_category_name, validate_variable_name, extract_variables_from_content, validate_provided_variables, } from './utils';
30
+ export { TABLE_TEMPLATE_CATEGORY, TABLE_TEMPLATES, DEFAULT_TEMPLATE_NAMES, DEFAULT_CATEGORY_NAMES, MAX_TEMPLATE_NAME_LENGTH, MAX_CATEGORY_NAME_LENGTH, VARIABLE_PATTERN, TEMPLATE_REFERENCE_PATTERN, ERROR_MESSAGES, } from './config/constants';
31
+ export type { TemplateVariableDefinition, TemplateTypeDefinition, SystemVariable, TemplateManagerConfig, EmailType, TemplateCategory, TemplateCategoryInput, TemplateCategoryUpdate, EmailTemplate, EmailTemplateInput, EmailTemplateUpdate, HazoConnectInstance, HazoConnectQueryBuilder, TemplateRenderResult, TemplateOperationResponse, TemplateEmailAttachment, SendTemplateEmailOptions, SendTemplateEmailResponse, CategoryTreeItem, VariableItem, TemplateReferenceItem, DefaultTemplateManifestEntry, DefaultTemplateManifest, Logger, } from './types';
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/template_manager/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAEL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,qBAAqB,EAErB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,MAAM,CAAC;AAGd,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,+BAA+B,EAC/B,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAEV,0BAA0B,EAC1B,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EAErB,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EAEnB,mBAAmB,EACnB,uBAAuB,EAEvB,oBAAoB,EACpB,yBAAyB,EAEzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EAEzB,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EAErB,4BAA4B,EAC5B,uBAAuB,EAEvB,MAAM,GACP,MAAM,SAAS,CAAC"}