hazo_notify 1.1.4 → 3.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 (236) hide show
  1. package/README.md +163 -41
  2. package/dist/components/template_manager/category_dialog.d.ts +11 -0
  3. package/dist/components/template_manager/category_dialog.d.ts.map +1 -0
  4. package/dist/components/template_manager/category_dialog.js +41 -0
  5. package/dist/components/template_manager/category_dialog.js.map +1 -0
  6. package/dist/components/template_manager/category_tree.d.ts +13 -0
  7. package/dist/components/template_manager/category_tree.d.ts.map +1 -0
  8. package/dist/components/template_manager/category_tree.js +45 -0
  9. package/dist/components/template_manager/category_tree.js.map +1 -0
  10. package/dist/components/template_manager/index.d.ts +10 -0
  11. package/dist/components/template_manager/index.d.ts.map +1 -0
  12. package/dist/components/template_manager/index.js +8 -0
  13. package/dist/components/template_manager/index.js.map +1 -0
  14. package/dist/components/template_manager/preview_dialog.d.ts +11 -0
  15. package/dist/components/template_manager/preview_dialog.d.ts.map +1 -0
  16. package/dist/components/template_manager/preview_dialog.js +15 -0
  17. package/dist/components/template_manager/preview_dialog.js.map +1 -0
  18. package/dist/components/template_manager/template_dialog.d.ts +12 -0
  19. package/dist/components/template_manager/template_dialog.d.ts.map +1 -0
  20. package/dist/components/template_manager/template_dialog.js +46 -0
  21. package/dist/components/template_manager/template_dialog.js.map +1 -0
  22. package/dist/components/template_manager/template_editor.d.ts +12 -0
  23. package/dist/components/template_manager/template_editor.d.ts.map +1 -0
  24. package/dist/components/template_manager/template_editor.js +57 -0
  25. package/dist/components/template_manager/template_editor.js.map +1 -0
  26. package/dist/components/template_manager/template_globals_admin.d.ts +8 -0
  27. package/dist/components/template_manager/template_globals_admin.d.ts.map +1 -0
  28. package/dist/components/template_manager/template_globals_admin.js +27 -0
  29. package/dist/components/template_manager/template_globals_admin.js.map +1 -0
  30. package/dist/components/template_manager/template_manager_admin.d.ts +44 -0
  31. package/dist/components/template_manager/template_manager_admin.d.ts.map +1 -0
  32. package/dist/components/template_manager/template_manager_admin.js +272 -0
  33. package/dist/components/template_manager/template_manager_admin.js.map +1 -0
  34. package/dist/lib/emailer/emailer.d.ts.map +1 -0
  35. package/dist/lib/emailer/emailer.js.map +1 -0
  36. package/dist/lib/emailer/index.d.ts.map +1 -0
  37. package/dist/lib/emailer/index.js.map +1 -0
  38. package/dist/lib/emailer/providers/index.d.ts.map +1 -0
  39. package/dist/lib/emailer/providers/index.js.map +1 -0
  40. package/dist/lib/emailer/providers/pop3_provider.d.ts.map +1 -0
  41. package/dist/lib/emailer/providers/pop3_provider.js.map +1 -0
  42. package/dist/lib/emailer/providers/smtp_provider.d.ts.map +1 -0
  43. package/dist/lib/emailer/providers/smtp_provider.js.map +1 -0
  44. package/dist/lib/emailer/providers/zeptomail_provider.d.ts.map +1 -0
  45. package/dist/{emailer → lib/emailer}/providers/zeptomail_provider.js +9 -6
  46. package/dist/lib/emailer/providers/zeptomail_provider.js.map +1 -0
  47. package/dist/lib/emailer/types.d.ts.map +1 -0
  48. package/dist/lib/emailer/types.js.map +1 -0
  49. package/dist/lib/emailer/utils/constants.d.ts.map +1 -0
  50. package/dist/lib/emailer/utils/constants.js.map +1 -0
  51. package/dist/lib/emailer/utils/index.d.ts.map +1 -0
  52. package/dist/lib/emailer/utils/index.js.map +1 -0
  53. package/dist/lib/emailer/utils/logger.d.ts.map +1 -0
  54. package/dist/lib/emailer/utils/logger.js.map +1 -0
  55. package/dist/lib/emailer/utils/validation.d.ts.map +1 -0
  56. package/dist/lib/emailer/utils/validation.js.map +1 -0
  57. package/dist/lib/index.d.ts.map +1 -0
  58. package/dist/lib/index.js.map +1 -0
  59. package/dist/lib/template_manager/cache/scope_chain_cache.d.ts +26 -0
  60. package/dist/lib/template_manager/cache/scope_chain_cache.d.ts.map +1 -0
  61. package/dist/lib/template_manager/cache/scope_chain_cache.js +60 -0
  62. package/dist/lib/template_manager/cache/scope_chain_cache.js.map +1 -0
  63. package/dist/{template_manager → lib/template_manager}/config/config_loader.d.ts +16 -15
  64. package/dist/lib/template_manager/config/config_loader.d.ts.map +1 -0
  65. package/dist/lib/template_manager/config/config_loader.js +98 -0
  66. package/dist/lib/template_manager/config/config_loader.js.map +1 -0
  67. package/dist/{template_manager → lib/template_manager}/config/constants.d.ts +4 -54
  68. package/dist/lib/template_manager/config/constants.d.ts.map +1 -0
  69. package/dist/{template_manager → lib/template_manager}/config/constants.js +4 -84
  70. package/dist/lib/template_manager/config/constants.js.map +1 -0
  71. package/dist/lib/template_manager/config/index.d.ts.map +1 -0
  72. package/dist/lib/template_manager/config/index.js.map +1 -0
  73. package/dist/{template_manager → lib/template_manager}/db/category_repository.d.ts +22 -14
  74. package/dist/lib/template_manager/db/category_repository.d.ts.map +1 -0
  75. package/dist/{template_manager → lib/template_manager}/db/category_repository.js +127 -83
  76. package/dist/lib/template_manager/db/category_repository.js.map +1 -0
  77. package/dist/lib/template_manager/db/index.d.ts +6 -0
  78. package/dist/lib/template_manager/db/index.d.ts.map +1 -0
  79. package/dist/lib/template_manager/db/index.js +6 -0
  80. package/dist/lib/template_manager/db/index.js.map +1 -0
  81. package/dist/{template_manager → lib/template_manager}/db/template_repository.d.ts +25 -28
  82. package/dist/lib/template_manager/db/template_repository.d.ts.map +1 -0
  83. package/dist/lib/template_manager/db/template_repository.js +507 -0
  84. package/dist/lib/template_manager/db/template_repository.js.map +1 -0
  85. package/dist/lib/template_manager/engine/handlebars_engine.d.ts.map +1 -0
  86. package/dist/lib/template_manager/engine/handlebars_engine.js.map +1 -0
  87. package/dist/lib/template_manager/engine/index.d.ts.map +1 -0
  88. package/dist/lib/template_manager/engine/index.js.map +1 -0
  89. package/dist/{template_manager → lib/template_manager}/engine/variable_resolver.d.ts +13 -14
  90. package/dist/lib/template_manager/engine/variable_resolver.d.ts.map +1 -0
  91. package/dist/{template_manager → lib/template_manager}/engine/variable_resolver.js +25 -33
  92. package/dist/lib/template_manager/engine/variable_resolver.js.map +1 -0
  93. package/dist/lib/template_manager/handlers/adapters/hazo_auth.d.ts +20 -0
  94. package/dist/lib/template_manager/handlers/adapters/hazo_auth.d.ts.map +1 -0
  95. package/dist/lib/template_manager/handlers/adapters/hazo_auth.js +46 -0
  96. package/dist/lib/template_manager/handlers/adapters/hazo_auth.js.map +1 -0
  97. package/dist/lib/template_manager/handlers/auth.d.ts +47 -0
  98. package/dist/lib/template_manager/handlers/auth.d.ts.map +1 -0
  99. package/dist/lib/template_manager/handlers/auth.js +67 -0
  100. package/dist/lib/template_manager/handlers/auth.js.map +1 -0
  101. package/dist/lib/template_manager/handlers/index.d.ts +67 -0
  102. package/dist/lib/template_manager/handlers/index.d.ts.map +1 -0
  103. package/dist/lib/template_manager/handlers/index.js +284 -0
  104. package/dist/lib/template_manager/handlers/index.js.map +1 -0
  105. package/dist/lib/template_manager/index.d.ts +56 -0
  106. package/dist/lib/template_manager/index.d.ts.map +1 -0
  107. package/dist/lib/template_manager/index.js +68 -0
  108. package/dist/lib/template_manager/index.js.map +1 -0
  109. package/dist/lib/template_manager/init.d.ts +54 -0
  110. package/dist/lib/template_manager/init.d.ts.map +1 -0
  111. package/dist/lib/template_manager/init.js +85 -0
  112. package/dist/lib/template_manager/init.js.map +1 -0
  113. package/dist/lib/template_manager/registry.d.ts +23 -0
  114. package/dist/lib/template_manager/registry.d.ts.map +1 -0
  115. package/dist/lib/template_manager/registry.js +33 -0
  116. package/dist/lib/template_manager/registry.js.map +1 -0
  117. package/dist/lib/template_manager/seed/sync.d.ts +8 -0
  118. package/dist/lib/template_manager/seed/sync.d.ts.map +1 -0
  119. package/dist/lib/template_manager/seed/sync.js +77 -0
  120. package/dist/lib/template_manager/seed/sync.js.map +1 -0
  121. package/dist/{template_manager → lib/template_manager}/template_manager.d.ts +25 -27
  122. package/dist/lib/template_manager/template_manager.d.ts.map +1 -0
  123. package/dist/{template_manager → lib/template_manager}/template_manager.js +41 -55
  124. package/dist/lib/template_manager/template_manager.js.map +1 -0
  125. package/dist/{template_manager → lib/template_manager}/types.d.ts +32 -125
  126. package/dist/lib/template_manager/types.d.ts.map +1 -0
  127. package/dist/lib/template_manager/types.js +12 -0
  128. package/dist/lib/template_manager/types.js.map +1 -0
  129. package/dist/lib/template_manager/utils/index.d.ts.map +1 -0
  130. package/dist/lib/template_manager/utils/index.js.map +1 -0
  131. package/dist/lib/template_manager/utils/system_variables.d.ts.map +1 -0
  132. package/dist/lib/template_manager/utils/system_variables.js.map +1 -0
  133. package/dist/lib/template_manager/utils/validation.d.ts.map +1 -0
  134. package/dist/lib/template_manager/utils/validation.js.map +1 -0
  135. package/dist/lib/utils.d.ts +3 -0
  136. package/dist/lib/utils.d.ts.map +1 -0
  137. package/dist/lib/utils.js +6 -0
  138. package/dist/lib/utils.js.map +1 -0
  139. package/migrations/002_scope_migration.sql +93 -0
  140. package/package.json +65 -37
  141. package/dist/emailer/emailer.d.ts.map +0 -1
  142. package/dist/emailer/emailer.js.map +0 -1
  143. package/dist/emailer/index.d.ts.map +0 -1
  144. package/dist/emailer/index.js.map +0 -1
  145. package/dist/emailer/providers/index.d.ts.map +0 -1
  146. package/dist/emailer/providers/index.js.map +0 -1
  147. package/dist/emailer/providers/pop3_provider.d.ts.map +0 -1
  148. package/dist/emailer/providers/pop3_provider.js.map +0 -1
  149. package/dist/emailer/providers/smtp_provider.d.ts.map +0 -1
  150. package/dist/emailer/providers/smtp_provider.js.map +0 -1
  151. package/dist/emailer/providers/zeptomail_provider.d.ts.map +0 -1
  152. package/dist/emailer/providers/zeptomail_provider.js.map +0 -1
  153. package/dist/emailer/types.d.ts.map +0 -1
  154. package/dist/emailer/types.js.map +0 -1
  155. package/dist/emailer/utils/constants.d.ts.map +0 -1
  156. package/dist/emailer/utils/constants.js.map +0 -1
  157. package/dist/emailer/utils/index.d.ts.map +0 -1
  158. package/dist/emailer/utils/index.js.map +0 -1
  159. package/dist/emailer/utils/logger.d.ts.map +0 -1
  160. package/dist/emailer/utils/logger.js.map +0 -1
  161. package/dist/emailer/utils/validation.d.ts.map +0 -1
  162. package/dist/emailer/utils/validation.js.map +0 -1
  163. package/dist/index.d.ts.map +0 -1
  164. package/dist/index.js.map +0 -1
  165. package/dist/template_manager/config/config_loader.d.ts.map +0 -1
  166. package/dist/template_manager/config/config_loader.js +0 -154
  167. package/dist/template_manager/config/config_loader.js.map +0 -1
  168. package/dist/template_manager/config/constants.d.ts.map +0 -1
  169. package/dist/template_manager/config/constants.js.map +0 -1
  170. package/dist/template_manager/config/index.d.ts.map +0 -1
  171. package/dist/template_manager/config/index.js.map +0 -1
  172. package/dist/template_manager/db/category_repository.d.ts.map +0 -1
  173. package/dist/template_manager/db/category_repository.js.map +0 -1
  174. package/dist/template_manager/db/index.d.ts +0 -6
  175. package/dist/template_manager/db/index.d.ts.map +0 -1
  176. package/dist/template_manager/db/index.js +0 -6
  177. package/dist/template_manager/db/index.js.map +0 -1
  178. package/dist/template_manager/db/template_repository.d.ts.map +0 -1
  179. package/dist/template_manager/db/template_repository.js +0 -674
  180. package/dist/template_manager/db/template_repository.js.map +0 -1
  181. package/dist/template_manager/engine/handlebars_engine.d.ts.map +0 -1
  182. package/dist/template_manager/engine/handlebars_engine.js.map +0 -1
  183. package/dist/template_manager/engine/index.d.ts.map +0 -1
  184. package/dist/template_manager/engine/index.js.map +0 -1
  185. package/dist/template_manager/engine/variable_resolver.d.ts.map +0 -1
  186. package/dist/template_manager/engine/variable_resolver.js.map +0 -1
  187. package/dist/template_manager/index.d.ts +0 -32
  188. package/dist/template_manager/index.d.ts.map +0 -1
  189. package/dist/template_manager/index.js +0 -41
  190. package/dist/template_manager/index.js.map +0 -1
  191. package/dist/template_manager/template_manager.d.ts.map +0 -1
  192. package/dist/template_manager/template_manager.js.map +0 -1
  193. package/dist/template_manager/types.d.ts.map +0 -1
  194. package/dist/template_manager/types.js +0 -11
  195. package/dist/template_manager/types.js.map +0 -1
  196. package/dist/template_manager/utils/index.d.ts.map +0 -1
  197. package/dist/template_manager/utils/index.js.map +0 -1
  198. package/dist/template_manager/utils/system_variables.d.ts.map +0 -1
  199. package/dist/template_manager/utils/system_variables.js.map +0 -1
  200. package/dist/template_manager/utils/validation.d.ts.map +0 -1
  201. package/dist/template_manager/utils/validation.js.map +0 -1
  202. /package/dist/{emailer → lib/emailer}/emailer.d.ts +0 -0
  203. /package/dist/{emailer → lib/emailer}/emailer.js +0 -0
  204. /package/dist/{emailer → lib/emailer}/index.d.ts +0 -0
  205. /package/dist/{emailer → lib/emailer}/index.js +0 -0
  206. /package/dist/{emailer → lib/emailer}/providers/index.d.ts +0 -0
  207. /package/dist/{emailer → lib/emailer}/providers/index.js +0 -0
  208. /package/dist/{emailer → lib/emailer}/providers/pop3_provider.d.ts +0 -0
  209. /package/dist/{emailer → lib/emailer}/providers/pop3_provider.js +0 -0
  210. /package/dist/{emailer → lib/emailer}/providers/smtp_provider.d.ts +0 -0
  211. /package/dist/{emailer → lib/emailer}/providers/smtp_provider.js +0 -0
  212. /package/dist/{emailer → lib/emailer}/providers/zeptomail_provider.d.ts +0 -0
  213. /package/dist/{emailer → lib/emailer}/types.d.ts +0 -0
  214. /package/dist/{emailer → lib/emailer}/types.js +0 -0
  215. /package/dist/{emailer → lib/emailer}/utils/constants.d.ts +0 -0
  216. /package/dist/{emailer → lib/emailer}/utils/constants.js +0 -0
  217. /package/dist/{emailer → lib/emailer}/utils/index.d.ts +0 -0
  218. /package/dist/{emailer → lib/emailer}/utils/index.js +0 -0
  219. /package/dist/{emailer → lib/emailer}/utils/logger.d.ts +0 -0
  220. /package/dist/{emailer → lib/emailer}/utils/logger.js +0 -0
  221. /package/dist/{emailer → lib/emailer}/utils/validation.d.ts +0 -0
  222. /package/dist/{emailer → lib/emailer}/utils/validation.js +0 -0
  223. /package/dist/{index.d.ts → lib/index.d.ts} +0 -0
  224. /package/dist/{index.js → lib/index.js} +0 -0
  225. /package/dist/{template_manager → lib/template_manager}/config/index.d.ts +0 -0
  226. /package/dist/{template_manager → lib/template_manager}/config/index.js +0 -0
  227. /package/dist/{template_manager → lib/template_manager}/engine/handlebars_engine.d.ts +0 -0
  228. /package/dist/{template_manager → lib/template_manager}/engine/handlebars_engine.js +0 -0
  229. /package/dist/{template_manager → lib/template_manager}/engine/index.d.ts +0 -0
  230. /package/dist/{template_manager → lib/template_manager}/engine/index.js +0 -0
  231. /package/dist/{template_manager → lib/template_manager}/utils/index.d.ts +0 -0
  232. /package/dist/{template_manager → lib/template_manager}/utils/index.js +0 -0
  233. /package/dist/{template_manager → lib/template_manager}/utils/system_variables.d.ts +0 -0
  234. /package/dist/{template_manager → lib/template_manager}/utils/system_variables.js +0 -0
  235. /package/dist/{template_manager → lib/template_manager}/utils/validation.d.ts +0 -0
  236. /package/dist/{template_manager → lib/template_manager}/utils/validation.js +0 -0
@@ -0,0 +1,507 @@
1
+ /**
2
+ * Template repository for template manager (v2.0.0)
3
+ *
4
+ * CRUD operations for email templates using hazo_connect.
5
+ * Uses scope_id (null = global) for hierarchical template resolution.
6
+ */
7
+ import { TABLE_TEMPLATES, TABLE_TEMPLATE_CATEGORY, ERROR_MESSAGES, } from '../config/constants.js';
8
+ import { validate_template_name, validate_uuid, validate_template_html_size, validate_template_text_size, } from '../utils/validation.js';
9
+ /**
10
+ * List all templates visible for a given scope (scoped rows + global rows).
11
+ * When scope_id is provided, scoped rows override global rows with the same
12
+ * template_name in the returned set.
13
+ *
14
+ * @param hazo_connect - Database connection instance
15
+ * @param scope_id - Scope to list templates for (null/undefined = global only)
16
+ * @returns Response with array of templates
17
+ */
18
+ export async function list_templates(hazo_connect, scope_id) {
19
+ try {
20
+ if (!hazo_connect) {
21
+ return {
22
+ success: false,
23
+ error: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
24
+ message: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
25
+ };
26
+ }
27
+ let templates;
28
+ if (scope_id) {
29
+ // Fetch rows for this scope AND global rows in parallel
30
+ const scoped_q = hazo_connect
31
+ .query()
32
+ .from(TABLE_TEMPLATES)
33
+ .select('*')
34
+ .where('scope_id', 'eq', scope_id);
35
+ const global_q = hazo_connect
36
+ .query()
37
+ .from(TABLE_TEMPLATES)
38
+ .select('*')
39
+ .where('scope_id', 'is', null);
40
+ const [scoped_rows, global_rows] = await Promise.all([
41
+ hazo_connect.list(scoped_q),
42
+ hazo_connect.list(global_q),
43
+ ]);
44
+ // Merge: scoped rows override global rows with the same template_name
45
+ const by_name = new Map();
46
+ for (const row of global_rows)
47
+ by_name.set(row.template_name, row);
48
+ for (const row of scoped_rows)
49
+ by_name.set(row.template_name, row); // scoped wins
50
+ templates = Array.from(by_name.values()).sort((a, b) => a.template_name.localeCompare(b.template_name));
51
+ }
52
+ else {
53
+ // Global-only
54
+ const q = hazo_connect
55
+ .query()
56
+ .from(TABLE_TEMPLATES)
57
+ .select('*')
58
+ .where('scope_id', 'is', null)
59
+ .order('template_name', 'asc');
60
+ templates = await hazo_connect.list(q);
61
+ }
62
+ return {
63
+ success: true,
64
+ data: templates,
65
+ message: `Found ${templates.length} templates`,
66
+ };
67
+ }
68
+ catch (error) {
69
+ const msg = error instanceof Error ? error.message : 'Unknown error';
70
+ return {
71
+ success: false,
72
+ error: msg,
73
+ message: `Failed to list templates: ${msg}`,
74
+ };
75
+ }
76
+ }
77
+ /**
78
+ * List templates by category ID.
79
+ *
80
+ * @param hazo_connect - Database connection instance
81
+ * @param category_id - Category ID
82
+ * @returns Response with array of templates
83
+ */
84
+ export async function list_templates_by_category(hazo_connect, category_id, scope_id) {
85
+ try {
86
+ if (!hazo_connect) {
87
+ return {
88
+ success: false,
89
+ error: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
90
+ message: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
91
+ };
92
+ }
93
+ if (!validate_uuid(category_id)) {
94
+ return {
95
+ success: false,
96
+ error: 'Invalid category ID',
97
+ message: 'Invalid category ID format',
98
+ };
99
+ }
100
+ let templates;
101
+ if (scope_id != null) {
102
+ const scoped_q = hazo_connect
103
+ .query()
104
+ .from(TABLE_TEMPLATES)
105
+ .select('*')
106
+ .where('template_category_id', 'eq', category_id)
107
+ .where('scope_id', 'eq', scope_id)
108
+ .order('template_name', 'asc');
109
+ const global_q = hazo_connect
110
+ .query()
111
+ .from(TABLE_TEMPLATES)
112
+ .select('*')
113
+ .where('template_category_id', 'eq', category_id)
114
+ .where('scope_id', 'is', null)
115
+ .order('template_name', 'asc');
116
+ const [scoped_rows, global_rows] = await Promise.all([
117
+ hazo_connect.list(scoped_q),
118
+ hazo_connect.list(global_q),
119
+ ]);
120
+ const by_name = new Map();
121
+ for (const row of global_rows)
122
+ by_name.set(row.template_name, row);
123
+ for (const row of scoped_rows)
124
+ by_name.set(row.template_name, row);
125
+ templates = Array.from(by_name.values()).sort((a, b) => a.template_name.localeCompare(b.template_name));
126
+ }
127
+ else {
128
+ const q = hazo_connect
129
+ .query()
130
+ .from(TABLE_TEMPLATES)
131
+ .select('*')
132
+ .where('template_category_id', 'eq', category_id)
133
+ .order('template_name', 'asc');
134
+ templates = await hazo_connect.list(q);
135
+ }
136
+ return {
137
+ success: true,
138
+ data: templates,
139
+ message: `Found ${templates.length} templates in category`,
140
+ };
141
+ }
142
+ catch (error) {
143
+ const msg = error instanceof Error ? error.message : 'Unknown error';
144
+ return {
145
+ success: false,
146
+ error: msg,
147
+ message: `Failed to list templates: ${msg}`,
148
+ };
149
+ }
150
+ }
151
+ /**
152
+ * Get a single email template by ID.
153
+ *
154
+ * @param hazo_connect - Database connection instance
155
+ * @param id - Template ID
156
+ * @returns Response with template data
157
+ */
158
+ export async function get_template(hazo_connect, id) {
159
+ try {
160
+ if (!hazo_connect) {
161
+ return {
162
+ success: false,
163
+ error: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
164
+ message: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
165
+ };
166
+ }
167
+ if (!validate_uuid(id)) {
168
+ return {
169
+ success: false,
170
+ error: 'Invalid template ID',
171
+ message: 'Invalid template ID format',
172
+ };
173
+ }
174
+ const template = await hazo_connect.findById(TABLE_TEMPLATES, id);
175
+ if (!template) {
176
+ return {
177
+ success: false,
178
+ error: ERROR_MESSAGES.TEMPLATE_NOT_FOUND,
179
+ message: ERROR_MESSAGES.TEMPLATE_NOT_FOUND,
180
+ };
181
+ }
182
+ return {
183
+ success: true,
184
+ data: template,
185
+ message: 'Template found',
186
+ };
187
+ }
188
+ catch (error) {
189
+ const msg = error instanceof Error ? error.message : 'Unknown error';
190
+ return {
191
+ success: false,
192
+ error: msg,
193
+ message: `Failed to get template: ${msg}`,
194
+ };
195
+ }
196
+ }
197
+ /**
198
+ * Get a template by name using hierarchical scope resolution.
199
+ *
200
+ * scope_chain: [scope_id, ...ancestors] — chain[0] is deepest (most preferred).
201
+ * Empty array → global-only lookup.
202
+ * Prefers the deepest-scope match; falls back to global (scope_id IS NULL).
203
+ *
204
+ * @param hazo_connect - Database connection instance
205
+ * @param scope_chain - Ordered scope chain, deepest first
206
+ * @param template_name - Template name to look up
207
+ * @returns Response with the best-matching template
208
+ */
209
+ export async function get_template_by_name(hazo_connect, scope_chain, template_name) {
210
+ try {
211
+ if (!hazo_connect) {
212
+ return {
213
+ success: false,
214
+ error: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
215
+ message: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
216
+ };
217
+ }
218
+ let candidates = [];
219
+ if (scope_chain.length > 0) {
220
+ // Fetch all candidates: rows matching template_name where scope_id IN chain OR scope_id IS NULL
221
+ const scoped_q = hazo_connect
222
+ .query()
223
+ .from(TABLE_TEMPLATES)
224
+ .select('*')
225
+ .where('template_name', 'eq', template_name)
226
+ .whereIn('scope_id', scope_chain);
227
+ const global_q = hazo_connect
228
+ .query()
229
+ .from(TABLE_TEMPLATES)
230
+ .select('*')
231
+ .where('template_name', 'eq', template_name)
232
+ .where('scope_id', 'is', null);
233
+ const [scoped, global] = await Promise.all([
234
+ hazo_connect.list(scoped_q),
235
+ hazo_connect.list(global_q),
236
+ ]);
237
+ candidates = [...scoped, ...global];
238
+ }
239
+ else {
240
+ // Global-only
241
+ const q = hazo_connect
242
+ .query()
243
+ .from(TABLE_TEMPLATES)
244
+ .select('*')
245
+ .where('template_name', 'eq', template_name)
246
+ .where('scope_id', 'is', null);
247
+ candidates = await hazo_connect.list(q);
248
+ }
249
+ if (candidates.length === 0) {
250
+ return {
251
+ success: false,
252
+ error: ERROR_MESSAGES.TEMPLATE_NOT_FOUND,
253
+ message: `Template '${template_name}' not found`,
254
+ };
255
+ }
256
+ // Sort: deepest scope first (chain index order), then global (null) last.
257
+ // A scope_id not present in the chain (and not null) also goes last.
258
+ candidates.sort((a, b) => {
259
+ const ai = a.scope_id !== null ? scope_chain.indexOf(a.scope_id) : -1;
260
+ const bi = b.scope_id !== null ? scope_chain.indexOf(b.scope_id) : -1;
261
+ const a_rank = a.scope_id === null ? Infinity : ai === -1 ? Infinity : ai;
262
+ const b_rank = b.scope_id === null ? Infinity : bi === -1 ? Infinity : bi;
263
+ return a_rank - b_rank;
264
+ });
265
+ return {
266
+ success: true,
267
+ data: candidates[0],
268
+ message: 'Template found',
269
+ };
270
+ }
271
+ catch (error) {
272
+ const msg = error instanceof Error ? error.message : 'Unknown error';
273
+ return {
274
+ success: false,
275
+ error: msg,
276
+ message: `Failed to get template: ${msg}`,
277
+ };
278
+ }
279
+ }
280
+ /**
281
+ * Create a new email template.
282
+ *
283
+ * @param hazo_connect - Database connection instance
284
+ * @param data - Template input data
285
+ * @returns Response with created template
286
+ */
287
+ export async function create_template(hazo_connect, data) {
288
+ try {
289
+ if (!hazo_connect) {
290
+ return {
291
+ success: false,
292
+ error: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
293
+ message: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
294
+ };
295
+ }
296
+ if (!validate_template_name(data.template_name)) {
297
+ return {
298
+ success: false,
299
+ error: ERROR_MESSAGES.INVALID_TEMPLATE_NAME,
300
+ message: ERROR_MESSAGES.INVALID_TEMPLATE_NAME,
301
+ };
302
+ }
303
+ if (data.scope_id != null && !validate_uuid(data.scope_id)) {
304
+ return {
305
+ success: false,
306
+ error: 'Invalid scope ID',
307
+ message: 'Invalid scope ID format',
308
+ };
309
+ }
310
+ if (!validate_uuid(data.template_category_id)) {
311
+ return {
312
+ success: false,
313
+ error: 'Invalid category ID',
314
+ message: 'Invalid category ID format',
315
+ };
316
+ }
317
+ if (!validate_template_html_size(data.template_html)) {
318
+ return {
319
+ success: false,
320
+ error: ERROR_MESSAGES.TEMPLATE_HTML_TOO_LARGE,
321
+ message: ERROR_MESSAGES.TEMPLATE_HTML_TOO_LARGE,
322
+ };
323
+ }
324
+ if (!validate_template_text_size(data.template_text)) {
325
+ return {
326
+ success: false,
327
+ error: ERROR_MESSAGES.TEMPLATE_TEXT_TOO_LARGE,
328
+ message: ERROR_MESSAGES.TEMPLATE_TEXT_TOO_LARGE,
329
+ };
330
+ }
331
+ // Check that the category exists
332
+ const category = await hazo_connect.findById(TABLE_TEMPLATE_CATEGORY, data.template_category_id);
333
+ if (!category) {
334
+ return {
335
+ success: false,
336
+ error: ERROR_MESSAGES.CATEGORY_NOT_FOUND,
337
+ message: 'Template category does not exist',
338
+ };
339
+ }
340
+ const template = await hazo_connect.insert(TABLE_TEMPLATES, {
341
+ scope_id: data.scope_id,
342
+ template_category_id: data.template_category_id,
343
+ template_variables: data.template_variables || [],
344
+ template_name: data.template_name.trim(),
345
+ template_html: data.template_html,
346
+ template_text: data.template_text,
347
+ is_modified: false,
348
+ });
349
+ return {
350
+ success: true,
351
+ data: template,
352
+ message: 'Template created successfully',
353
+ };
354
+ }
355
+ catch (error) {
356
+ const msg = error instanceof Error ? error.message : 'Unknown error';
357
+ return {
358
+ success: false,
359
+ error: msg,
360
+ message: `Failed to create template: ${msg}`,
361
+ };
362
+ }
363
+ }
364
+ /**
365
+ * Update an existing email template.
366
+ *
367
+ * @param hazo_connect - Database connection instance
368
+ * @param id - Template ID
369
+ * @param data - Fields to update
370
+ * @returns Response with updated template
371
+ */
372
+ export async function update_template(hazo_connect, id, data) {
373
+ try {
374
+ if (!hazo_connect) {
375
+ return {
376
+ success: false,
377
+ error: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
378
+ message: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
379
+ };
380
+ }
381
+ if (!validate_uuid(id)) {
382
+ return {
383
+ success: false,
384
+ error: 'Invalid template ID',
385
+ message: 'Invalid template ID format',
386
+ };
387
+ }
388
+ const existing = await hazo_connect.findById(TABLE_TEMPLATES, id);
389
+ if (!existing) {
390
+ return {
391
+ success: false,
392
+ error: ERROR_MESSAGES.TEMPLATE_NOT_FOUND,
393
+ message: ERROR_MESSAGES.TEMPLATE_NOT_FOUND,
394
+ };
395
+ }
396
+ if (data.template_name !== undefined &&
397
+ !validate_template_name(data.template_name)) {
398
+ return {
399
+ success: false,
400
+ error: ERROR_MESSAGES.INVALID_TEMPLATE_NAME,
401
+ message: ERROR_MESSAGES.INVALID_TEMPLATE_NAME,
402
+ };
403
+ }
404
+ if (data.template_category_id !== undefined &&
405
+ !validate_uuid(data.template_category_id)) {
406
+ return {
407
+ success: false,
408
+ error: 'Invalid category ID',
409
+ message: 'Invalid category ID format',
410
+ };
411
+ }
412
+ if (data.template_html !== undefined &&
413
+ !validate_template_html_size(data.template_html)) {
414
+ return {
415
+ success: false,
416
+ error: ERROR_MESSAGES.TEMPLATE_HTML_TOO_LARGE,
417
+ message: ERROR_MESSAGES.TEMPLATE_HTML_TOO_LARGE,
418
+ };
419
+ }
420
+ if (data.template_text !== undefined &&
421
+ !validate_template_text_size(data.template_text)) {
422
+ return {
423
+ success: false,
424
+ error: ERROR_MESSAGES.TEMPLATE_TEXT_TOO_LARGE,
425
+ message: ERROR_MESSAGES.TEMPLATE_TEXT_TOO_LARGE,
426
+ };
427
+ }
428
+ const patch = {
429
+ changed_at: new Date().toISOString(),
430
+ };
431
+ if (data.template_name !== undefined)
432
+ patch.template_name = data.template_name.trim();
433
+ if (data.template_category_id !== undefined)
434
+ patch.template_category_id = data.template_category_id;
435
+ if (data.template_variables !== undefined)
436
+ patch.template_variables = data.template_variables;
437
+ if (data.template_html !== undefined)
438
+ patch.template_html = data.template_html;
439
+ if (data.template_text !== undefined)
440
+ patch.template_text = data.template_text;
441
+ if (data.is_modified !== undefined)
442
+ patch.is_modified = data.is_modified;
443
+ const template = await hazo_connect.updateById(TABLE_TEMPLATES, id, patch);
444
+ return {
445
+ success: true,
446
+ data: template,
447
+ message: 'Template updated successfully',
448
+ };
449
+ }
450
+ catch (error) {
451
+ const msg = error instanceof Error ? error.message : 'Unknown error';
452
+ return {
453
+ success: false,
454
+ error: msg,
455
+ message: `Failed to update template: ${msg}`,
456
+ };
457
+ }
458
+ }
459
+ /**
460
+ * Delete a template by ID.
461
+ * Permission enforcement (manifest protection) is done at the API layer.
462
+ *
463
+ * @param hazo_connect - Database connection instance
464
+ * @param id - Template ID
465
+ * @returns Response with deletion result
466
+ */
467
+ export async function delete_template(hazo_connect, id) {
468
+ try {
469
+ if (!hazo_connect) {
470
+ return {
471
+ success: false,
472
+ error: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
473
+ message: ERROR_MESSAGES.DB_CONNECTION_REQUIRED,
474
+ };
475
+ }
476
+ if (!validate_uuid(id)) {
477
+ return {
478
+ success: false,
479
+ error: 'Invalid template ID',
480
+ message: 'Invalid template ID format',
481
+ };
482
+ }
483
+ const existing = await hazo_connect.findById(TABLE_TEMPLATES, id);
484
+ if (!existing) {
485
+ return {
486
+ success: false,
487
+ error: ERROR_MESSAGES.TEMPLATE_NOT_FOUND,
488
+ message: ERROR_MESSAGES.TEMPLATE_NOT_FOUND,
489
+ };
490
+ }
491
+ await hazo_connect.deleteById(TABLE_TEMPLATES, id);
492
+ return {
493
+ success: true,
494
+ data: true,
495
+ message: 'Template deleted successfully',
496
+ };
497
+ }
498
+ catch (error) {
499
+ const msg = error instanceof Error ? error.message : 'Unknown error';
500
+ return {
501
+ success: false,
502
+ error: msg,
503
+ message: `Failed to delete template: ${msg}`,
504
+ };
505
+ }
506
+ }
507
+ //# sourceMappingURL=template_repository.js.map
@@ -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 @@
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,aAAa,CAAC;AA8ExD;;;;;;;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 @@
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 @@
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,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","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,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,wBAAwB,CAAC"}
@@ -1,48 +1,47 @@
1
1
  /**
2
- * Variable resolver for template manager
2
+ * Variable resolver for template manager (v2.0.0)
3
3
  *
4
- * Resolves user variables, system variables, and @template references
4
+ * Resolves user variables, system variables, and @template references.
5
+ * Uses scope_chain (hierarchical scope resolution) instead of org_id.
5
6
  */
6
7
  import type { HazoConnectInstance, TemplateRenderResult } from '../types.js';
7
8
  /**
8
- * Merge user variables with system variables
9
- *
10
- * System variables take lower priority than user variables
9
+ * Merge user variables with system variables.
10
+ * System variables take lower priority than user variables.
11
11
  *
12
12
  * @param user_variables - Variables provided by user
13
13
  * @returns Merged variables with system variables
14
14
  */
15
15
  export declare function resolve_variables(user_variables: Record<string, string>): Record<string, string>;
16
16
  /**
17
- * Extract @template references from content
17
+ * Extract @template references from content.
18
18
  *
19
19
  * @param content - Template content to scan
20
20
  * @returns Array of template names referenced
21
21
  */
22
22
  export declare function extract_template_references(content: string): string[];
23
23
  /**
24
- * Resolve @template references in content
25
- *
26
- * Recursively fetches and renders referenced templates
24
+ * Resolve @template references in HTML content.
25
+ * Recursively fetches and renders referenced templates using the scope_chain.
27
26
  *
28
27
  * @param content - Template content with @references
29
28
  * @param variables - Variables to use for rendering
30
29
  * @param hazo_connect - Database connection
31
- * @param org_id - Organization ID
30
+ * @param scope_chain - Ordered scope chain, deepest first (see get_template_by_name)
32
31
  * @param visited - Set of already visited templates (for circular detection)
33
32
  * @param depth - Current recursion depth
34
33
  * @returns Resolved content with references replaced
35
34
  */
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>;
35
+ export declare function resolve_template_references(content: string, variables: Record<string, string>, hazo_connect: HazoConnectInstance, scope_chain: string[], visited?: Set<string>, depth?: number): Promise<TemplateRenderResult>;
37
36
  /**
38
- * Resolve @template references for both HTML and text content
37
+ * Resolve @template references for both HTML and text content.
39
38
  *
40
39
  * @param html_content - HTML template content
41
40
  * @param text_content - Text template content
42
41
  * @param variables - Variables for rendering
43
42
  * @param hazo_connect - Database connection
44
- * @param org_id - Organization ID
43
+ * @param scope_chain - Ordered scope chain, deepest first
45
44
  * @returns Resolved HTML and text content
46
45
  */
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>;
46
+ export declare function resolve_all_template_references(html_content: string, text_content: string, variables: Record<string, string>, hazo_connect: HazoConnectInstance, scope_chain: string[]): Promise<TemplateRenderResult>;
48
47
  //# 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;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAUrB;;;;;;GAMG;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;;;;;;;;;;;GAWG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,YAAY,EAAE,mBAAmB,EACjC,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,EAChC,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAiF/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,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAwC/B"}