@ackplus/nest-dynamic-templates 1.1.9 → 1.1.11

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 (154) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +193 -6
  3. package/{src → dist}/index.d.ts +2 -1
  4. package/dist/index.js +38 -0
  5. package/dist/index.js.map +1 -0
  6. package/{src → dist}/lib/constant.d.ts +0 -1
  7. package/{src → dist}/lib/constant.js +1 -0
  8. package/dist/lib/constant.js.map +1 -0
  9. package/{src → dist}/lib/dto/create-template-layout.dto.d.ts +0 -1
  10. package/{src → dist}/lib/dto/create-template-layout.dto.js +46 -31
  11. package/dist/lib/dto/create-template-layout.dto.js.map +1 -0
  12. package/{src → dist}/lib/dto/create-template.dto.d.ts +0 -1
  13. package/{src → dist}/lib/dto/create-template.dto.js +52 -35
  14. package/dist/lib/dto/create-template.dto.js.map +1 -0
  15. package/{src → dist}/lib/dto/render-content-template-layout.dto.d.ts +0 -1
  16. package/{src → dist}/lib/dto/render-content-template-layout.dto.js +22 -9
  17. package/dist/lib/dto/render-content-template-layout.dto.js.map +1 -0
  18. package/{src → dist}/lib/dto/render-content-template.dto.d.ts +0 -1
  19. package/{src → dist}/lib/dto/render-content-template.dto.js +25 -11
  20. package/dist/lib/dto/render-content-template.dto.js.map +1 -0
  21. package/{src → dist}/lib/dto/render-template-layout.dto.d.ts +0 -1
  22. package/{src → dist}/lib/dto/render-template-layout.dto.js +28 -16
  23. package/dist/lib/dto/render-template-layout.dto.js.map +1 -0
  24. package/{src → dist}/lib/dto/render-template.dto.d.ts +0 -1
  25. package/{src → dist}/lib/dto/render-template.dto.js +37 -23
  26. package/dist/lib/dto/render-template.dto.js.map +1 -0
  27. package/{src → dist}/lib/dto/template-filter.dto.d.ts +0 -1
  28. package/{src → dist}/lib/dto/template-filter.dto.js +25 -11
  29. package/dist/lib/dto/template-filter.dto.js.map +1 -0
  30. package/{src → dist}/lib/dto/template-layout-filter.dto.d.ts +0 -1
  31. package/{src → dist}/lib/dto/template-layout-filter.dto.js +25 -11
  32. package/dist/lib/dto/template-layout-filter.dto.js.map +1 -0
  33. package/{src → dist}/lib/engines/language/html.engine.d.ts +0 -1
  34. package/dist/lib/engines/language/html.engine.js +47 -0
  35. package/dist/lib/engines/language/html.engine.js.map +1 -0
  36. package/{src → dist}/lib/engines/language/index.d.ts +0 -1
  37. package/{src → dist}/lib/engines/language/index.js +1 -0
  38. package/dist/lib/engines/language/index.js.map +1 -0
  39. package/{src → dist}/lib/engines/language/markdown.engine.d.ts +0 -1
  40. package/dist/lib/engines/language/markdown.engine.js +35 -0
  41. package/dist/lib/engines/language/markdown.engine.js.map +1 -0
  42. package/{src → dist}/lib/engines/language/mjml.engine.d.ts +0 -1
  43. package/dist/lib/engines/language/mjml.engine.js +43 -0
  44. package/dist/lib/engines/language/mjml.engine.js.map +1 -0
  45. package/{src → dist}/lib/engines/language/text.engine.d.ts +0 -1
  46. package/{src → dist}/lib/engines/language/text.engine.js +2 -1
  47. package/dist/lib/engines/language/text.engine.js.map +1 -0
  48. package/{src → dist}/lib/engines/language-engine.d.ts +0 -1
  49. package/{src → dist}/lib/engines/language-engine.js +2 -0
  50. package/dist/lib/engines/language-engine.js.map +1 -0
  51. package/{src → dist}/lib/engines/template/ejs.engine.d.ts +0 -1
  52. package/dist/lib/engines/template/ejs.engine.js +34 -0
  53. package/dist/lib/engines/template/ejs.engine.js.map +1 -0
  54. package/{src → dist}/lib/engines/template/handlebars.engine.d.ts +0 -1
  55. package/dist/lib/engines/template/handlebars.engine.js +35 -0
  56. package/dist/lib/engines/template/handlebars.engine.js.map +1 -0
  57. package/{src → dist}/lib/engines/template/index.d.ts +0 -1
  58. package/{src → dist}/lib/engines/template/index.js +1 -0
  59. package/dist/lib/engines/template/index.js.map +1 -0
  60. package/{src → dist}/lib/engines/template/nunjucks.engine.d.ts +1 -2
  61. package/{src → dist}/lib/engines/template/nunjucks.engine.js +5 -3
  62. package/dist/lib/engines/template/nunjucks.engine.js.map +1 -0
  63. package/{src → dist}/lib/engines/template/pug.engine.d.ts +1 -2
  64. package/dist/lib/engines/template/pug.engine.js +44 -0
  65. package/dist/lib/engines/template/pug.engine.js.map +1 -0
  66. package/{src → dist}/lib/engines/template-engine.d.ts +0 -1
  67. package/{src → dist}/lib/engines/template-engine.js +2 -0
  68. package/dist/lib/engines/template-engine.js.map +1 -0
  69. package/{src → dist}/lib/entities/template-layout.entity.d.ts +0 -1
  70. package/{src → dist}/lib/entities/template-layout.entity.js +59 -34
  71. package/dist/lib/entities/template-layout.entity.js.map +1 -0
  72. package/{src → dist}/lib/entities/template.entity.d.ts +0 -1
  73. package/{src → dist}/lib/entities/template.entity.js +62 -36
  74. package/dist/lib/entities/template.entity.js.map +1 -0
  75. package/{src → dist}/lib/errors/template.errors.d.ts +0 -1
  76. package/{src → dist}/lib/errors/template.errors.js +1 -0
  77. package/dist/lib/errors/template.errors.js.map +1 -0
  78. package/{src → dist}/lib/interfaces/module-config.interface.d.ts +0 -7
  79. package/{src → dist}/lib/interfaces/module-config.interface.js +1 -0
  80. package/dist/lib/interfaces/module-config.interface.js.map +1 -0
  81. package/{src → dist}/lib/interfaces/template.types.d.ts +0 -1
  82. package/{src → dist}/lib/interfaces/template.types.js +1 -0
  83. package/dist/lib/interfaces/template.types.js.map +1 -0
  84. package/{src → dist}/lib/nest-dynamic-templates.module.d.ts +0 -1
  85. package/{src → dist}/lib/nest-dynamic-templates.module.js +15 -6
  86. package/dist/lib/nest-dynamic-templates.module.js.map +1 -0
  87. package/{src → dist}/lib/services/template-config.service.d.ts +0 -37
  88. package/{src → dist}/lib/services/template-config.service.js +15 -44
  89. package/dist/lib/services/template-config.service.js.map +1 -0
  90. package/{src → dist}/lib/services/template-engine.registry.d.ts +0 -1
  91. package/{src → dist}/lib/services/template-engine.registry.js +15 -5
  92. package/dist/lib/services/template-engine.registry.js.map +1 -0
  93. package/{src → dist}/lib/services/template-layout.service.d.ts +0 -13
  94. package/{src → dist}/lib/services/template-layout.service.js +19 -48
  95. package/dist/lib/services/template-layout.service.js.map +1 -0
  96. package/{src → dist}/lib/services/template.service.d.ts +0 -13
  97. package/{src → dist}/lib/services/template.service.js +20 -51
  98. package/dist/lib/services/template.service.js.map +1 -0
  99. package/dist/tsconfig.build.tsbuildinfo +1 -0
  100. package/examples/post.seeder.example.ts +65 -0
  101. package/examples/product.factory.example.ts +84 -0
  102. package/examples/seed.script.example.ts +32 -0
  103. package/examples/seeder.config.example.ts +50 -0
  104. package/examples/user.factory.example.ts +59 -0
  105. package/examples/user.seeder.example.ts +55 -0
  106. package/package.json +171 -6
  107. package/src/index.d.ts.map +0 -1
  108. package/src/index.js +0 -25
  109. package/src/lib/constant.d.ts.map +0 -1
  110. package/src/lib/dto/create-template-layout.dto.d.ts.map +0 -1
  111. package/src/lib/dto/create-template.dto.d.ts.map +0 -1
  112. package/src/lib/dto/render-content-template-layout.dto.d.ts.map +0 -1
  113. package/src/lib/dto/render-content-template.dto.d.ts.map +0 -1
  114. package/src/lib/dto/render-template-layout.dto.d.ts.map +0 -1
  115. package/src/lib/dto/render-template.dto.d.ts.map +0 -1
  116. package/src/lib/dto/template-filter.dto.d.ts.map +0 -1
  117. package/src/lib/dto/template-layout-filter.dto.d.ts.map +0 -1
  118. package/src/lib/engines/language/html.engine.d.ts.map +0 -1
  119. package/src/lib/engines/language/html.engine.js +0 -80
  120. package/src/lib/engines/language/index.d.ts.map +0 -1
  121. package/src/lib/engines/language/markdown.engine.d.ts.map +0 -1
  122. package/src/lib/engines/language/markdown.engine.js +0 -39
  123. package/src/lib/engines/language/mjml.engine.d.ts.map +0 -1
  124. package/src/lib/engines/language/mjml.engine.js +0 -75
  125. package/src/lib/engines/language/text.engine.d.ts.map +0 -1
  126. package/src/lib/engines/language-engine.d.ts.map +0 -1
  127. package/src/lib/engines/template/ejs.engine.d.ts.map +0 -1
  128. package/src/lib/engines/template/ejs.engine.js +0 -65
  129. package/src/lib/engines/template/handlebars.engine.d.ts.map +0 -1
  130. package/src/lib/engines/template/handlebars.engine.js +0 -66
  131. package/src/lib/engines/template/index.d.ts.map +0 -1
  132. package/src/lib/engines/template/nunjucks.engine.d.ts.map +0 -1
  133. package/src/lib/engines/template/pug.engine.d.ts.map +0 -1
  134. package/src/lib/engines/template/pug.engine.js +0 -74
  135. package/src/lib/engines/template-engine.d.ts.map +0 -1
  136. package/src/lib/entities/template-layout.entity.d.ts.map +0 -1
  137. package/src/lib/entities/template.entity.d.ts.map +0 -1
  138. package/src/lib/errors/template.errors.d.ts.map +0 -1
  139. package/src/lib/interfaces/module-config.interface.d.ts.map +0 -1
  140. package/src/lib/interfaces/template.types.d.ts.map +0 -1
  141. package/src/lib/nest-dynamic-templates.module.d.ts.map +0 -1
  142. package/src/lib/services/template-config.service.d.ts.map +0 -1
  143. package/src/lib/services/template-engine.registry.d.ts.map +0 -1
  144. package/src/lib/services/template-layout.service.d.ts.map +0 -1
  145. package/src/lib/services/template.service.d.ts.map +0 -1
  146. package/src/test/helpers.d.ts +0 -5
  147. package/src/test/helpers.d.ts.map +0 -1
  148. package/src/test/helpers.js +0 -33
  149. package/src/test/test-database.config.d.ts +0 -5
  150. package/src/test/test-database.config.d.ts.map +0 -1
  151. package/src/test/test-database.config.js +0 -23
  152. package/src/test/test.setup.d.ts +0 -4
  153. package/src/test/test.setup.d.ts.map +0 -1
  154. package/src/test/test.setup.js +0 -30
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
2
14
  Object.defineProperty(exports, "__esModule", { value: true });
3
15
  exports.TemplateLayoutService = void 0;
4
- const tslib_1 = require("tslib");
5
16
  const common_1 = require("@nestjs/common");
6
17
  const typeorm_1 = require("@nestjs/typeorm");
7
18
  const typeorm_2 = require("typeorm");
@@ -9,6 +20,8 @@ const template_layout_entity_1 = require("../entities/template-layout.entity");
9
20
  const template_engine_registry_1 = require("./template-engine.registry");
10
21
  const template_errors_1 = require("../errors/template.errors");
11
22
  let TemplateLayoutService = class TemplateLayoutService {
23
+ layoutRepository;
24
+ engineRegistry;
12
25
  constructor(layoutRepository, engineRegistry) {
13
26
  this.layoutRepository = layoutRepository;
14
27
  this.engineRegistry = engineRegistry;
@@ -16,17 +29,14 @@ let TemplateLayoutService = class TemplateLayoutService {
16
29
  async render(renderDto) {
17
30
  const { name, scope, scopeId, locale, context } = renderDto;
18
31
  try {
19
- // Find template with fallback
20
32
  const templateLayout = await this.findTemplateLayout(name, scope, scopeId, locale);
21
33
  if (!templateLayout) {
22
34
  throw new common_1.NotFoundException(`Template layout not found: ${name} in scope ${scope || 'system'}`);
23
35
  }
24
- // Validate content exists
25
36
  if (!templateLayout.content) {
26
37
  throw new common_1.BadRequestException(`Template layout '${name}' has no content to render`);
27
38
  }
28
39
  let content = templateLayout.content;
29
- // Render content by template engine
30
40
  if (templateLayout.engine) {
31
41
  try {
32
42
  content = await this.renderEngine(templateLayout.engine, content, context || {});
@@ -35,7 +45,6 @@ let TemplateLayoutService = class TemplateLayoutService {
35
45
  throw new template_errors_1.TemplateEngineError(templateLayout.engine, error);
36
46
  }
37
47
  }
38
- // If template has language format, process with language engine
39
48
  if (templateLayout.language) {
40
49
  try {
41
50
  content = await this.renderLanguage(templateLayout.language, content, context || {});
@@ -49,14 +58,12 @@ let TemplateLayoutService = class TemplateLayoutService {
49
58
  };
50
59
  }
51
60
  catch (error) {
52
- // Re-throw known template errors
53
61
  if (error instanceof template_errors_1.TemplateEngineError ||
54
62
  error instanceof template_errors_1.TemplateLanguageError ||
55
63
  error instanceof common_1.NotFoundException ||
56
64
  error instanceof common_1.BadRequestException) {
57
65
  throw error;
58
66
  }
59
- // Wrap unknown errors
60
67
  throw new template_errors_1.TemplateRenderError('template layout rendering', error, name);
61
68
  }
62
69
  }
@@ -67,7 +74,6 @@ let TemplateLayoutService = class TemplateLayoutService {
67
74
  throw new common_1.BadRequestException('Content is required for template layout rendering');
68
75
  }
69
76
  let renderContent = content;
70
- // Render content by template engine
71
77
  if (engine) {
72
78
  try {
73
79
  renderContent = await this.renderEngine(engine, content, context || {});
@@ -76,7 +82,6 @@ let TemplateLayoutService = class TemplateLayoutService {
76
82
  throw new template_errors_1.TemplateEngineError(engine, error);
77
83
  }
78
84
  }
79
- // Render content by language engine
80
85
  if (language) {
81
86
  try {
82
87
  renderContent = await this.renderLanguage(language, renderContent, context || {});
@@ -88,13 +93,11 @@ let TemplateLayoutService = class TemplateLayoutService {
88
93
  return renderContent;
89
94
  }
90
95
  catch (error) {
91
- // Re-throw known template errors
92
96
  if (error instanceof template_errors_1.TemplateEngineError ||
93
97
  error instanceof template_errors_1.TemplateLanguageError ||
94
98
  error instanceof common_1.BadRequestException) {
95
99
  throw error;
96
100
  }
97
- // Wrap unknown errors
98
101
  throw new template_errors_1.TemplateRenderError('template layout content rendering', error);
99
102
  }
100
103
  }
@@ -134,12 +137,8 @@ let TemplateLayoutService = class TemplateLayoutService {
134
137
  throw new template_errors_1.TemplateEngineError(engine, error);
135
138
  }
136
139
  }
137
- /**
138
- * Get all templates, with scoped templates taking precedence over system templates
139
- */
140
140
  async getTemplateLayouts(filter = {}) {
141
141
  const { scope, scopeId, type, locale, excludeNames = [], } = filter;
142
- // Build the where clause
143
142
  const where = {};
144
143
  if (type)
145
144
  where.type = type;
@@ -157,7 +156,6 @@ let TemplateLayoutService = class TemplateLayoutService {
157
156
  if (scope === 'system') {
158
157
  return systemTemplates;
159
158
  }
160
- // First get all templates matching the filters
161
159
  const templates = await this.layoutRepository.find({
162
160
  where: {
163
161
  ...where,
@@ -168,7 +166,6 @@ let TemplateLayoutService = class TemplateLayoutService {
168
166
  createdAt: 'DESC',
169
167
  },
170
168
  });
171
- // Create a map to store unique templates by name+type
172
169
  const templateMap = new Map();
173
170
  for (const template of systemTemplates) {
174
171
  const key = `${template.type}/${template.name}/${template.locale}`;
@@ -178,7 +175,6 @@ let TemplateLayoutService = class TemplateLayoutService {
178
175
  const key = `${template.type}/${template.name}/${template.locale}`;
179
176
  templateMap.set(key, template);
180
177
  }
181
- // Convert map values back to array
182
178
  return Array.from(templateMap.values());
183
179
  }
184
180
  async getTemplateLayoutById(id) {
@@ -187,13 +183,7 @@ let TemplateLayoutService = class TemplateLayoutService {
187
183
  });
188
184
  }
189
185
  async findTemplateLayout(name, scope, scopeId, locale) {
190
- // Try to find template in the following order:
191
- // 1. Scoped template with locale
192
- // 2. Scoped template without locale
193
- // 3. System template with locale
194
- // 4. System template without locale
195
186
  const locales = (locale ? [locale, 'en'] : ['en']).filter(Boolean);
196
- // First try to find in the specified scope
197
187
  for (const currentLocale of locales) {
198
188
  const template = await this.layoutRepository.findOne({
199
189
  where: {
@@ -207,7 +197,6 @@ let TemplateLayoutService = class TemplateLayoutService {
207
197
  return template;
208
198
  }
209
199
  }
210
- // If not found and not already in system scope, try system scope
211
200
  if (scope !== 'system') {
212
201
  for (const currentLocale of locales) {
213
202
  const template = await this.layoutRepository.findOne({
@@ -225,15 +214,10 @@ let TemplateLayoutService = class TemplateLayoutService {
225
214
  }
226
215
  return null;
227
216
  }
228
- /**
229
- * Create a system template. Only system templates can be created directly.
230
- */
231
217
  async createTemplateLayout(data) {
232
- // Ensure this is a system template
233
218
  if (data.scope !== 'system') {
234
219
  throw new common_1.ForbiddenException('Only system templates can be created directly');
235
220
  }
236
- // Check if template already exists
237
221
  const existingTemplate = await this.layoutRepository.findOne({
238
222
  where: {
239
223
  name: data.name,
@@ -247,7 +231,7 @@ let TemplateLayoutService = class TemplateLayoutService {
247
231
  }
248
232
  const template = this.layoutRepository.create({
249
233
  ...data,
250
- scopeId: undefined, // Ensure system templates have no scopeId
234
+ scopeId: undefined,
251
235
  });
252
236
  return this.layoutRepository.save(template);
253
237
  }
@@ -262,7 +246,6 @@ let TemplateLayoutService = class TemplateLayoutService {
262
246
  if (!updates.scope) {
263
247
  throw new common_1.BadRequestException('Scope is required when overwriting system template');
264
248
  }
265
- // Check if template already exists in target scope
266
249
  const existingTemplate = await this.layoutRepository.findOne({
267
250
  where: {
268
251
  name: template.name,
@@ -272,11 +255,9 @@ let TemplateLayoutService = class TemplateLayoutService {
272
255
  },
273
256
  });
274
257
  if (existingTemplate) {
275
- // Update existing template in target scope
276
258
  template = existingTemplate;
277
259
  }
278
260
  else {
279
- // Create new template in target scope
280
261
  const newTemplate = this.layoutRepository.create({
281
262
  ...template,
282
263
  id: undefined,
@@ -292,34 +273,24 @@ let TemplateLayoutService = class TemplateLayoutService {
292
273
  await this.layoutRepository.save(template);
293
274
  return template;
294
275
  }
295
- /**
296
- * Update a template
297
- */
298
276
  async updateTemplateLayout(id, updates, canUpdateSystemTemplate = false) {
299
- // Find the template
300
277
  let template = await this.layoutRepository.findOne({
301
278
  where: { id },
302
279
  });
303
280
  if (!template) {
304
281
  throw new common_1.NotFoundException(`Template not found: ${id}`);
305
282
  }
306
- // If it's a system template and we can't update it, try to overwrite it
307
283
  if (template.scope === 'system' && !canUpdateSystemTemplate) {
308
284
  if (updates.scope) {
309
- // Otherwise, allow overwriting to custom scope
310
285
  return this.overwriteSystemTemplateLayout(id, updates);
311
286
  }
312
287
  else {
313
288
  throw new common_1.ForbiddenException('Cannot update system templates');
314
289
  }
315
290
  }
316
- // For regular updates
317
291
  template = this.layoutRepository.merge(template, updates);
318
292
  return this.layoutRepository.save(template);
319
293
  }
320
- /**
321
- * Delete a scoped template
322
- */
323
294
  async deleteTemplateLayout(id, canDeleteSystemTemplate = false) {
324
295
  const template = await this.layoutRepository.findOne({
325
296
  where: { id },
@@ -327,7 +298,6 @@ let TemplateLayoutService = class TemplateLayoutService {
327
298
  if (!template) {
328
299
  throw new Error(`Template not found: ${id}`);
329
300
  }
330
- // Prevent deleting system templates
331
301
  if (template.scope === 'system' && !canDeleteSystemTemplate) {
332
302
  throw new common_1.ForbiddenException('Cannot delete system templates');
333
303
  }
@@ -335,9 +305,10 @@ let TemplateLayoutService = class TemplateLayoutService {
335
305
  }
336
306
  };
337
307
  exports.TemplateLayoutService = TemplateLayoutService;
338
- exports.TemplateLayoutService = TemplateLayoutService = tslib_1.__decorate([
308
+ exports.TemplateLayoutService = TemplateLayoutService = __decorate([
339
309
  (0, common_1.Injectable)(),
340
- tslib_1.__param(0, (0, typeorm_1.InjectRepository)(template_layout_entity_1.NestDynamicTemplateLayout)),
341
- tslib_1.__metadata("design:paramtypes", [typeorm_2.Repository,
310
+ __param(0, (0, typeorm_1.InjectRepository)(template_layout_entity_1.NestDynamicTemplateLayout)),
311
+ __metadata("design:paramtypes", [typeorm_2.Repository,
342
312
  template_engine_registry_1.TemplateEngineRegistryService])
343
313
  ], TemplateLayoutService);
314
+ //# sourceMappingURL=template-layout.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-layout.service.js","sourceRoot":"","sources":["../../../src/lib/services/template-layout.service.ts"],"names":[],"mappings":"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"}
@@ -16,24 +16,11 @@ export declare class TemplateService {
16
16
  renderContent(input: RenderContentTemplateDto): Promise<string>;
17
17
  renderLanguage(language: TemplateLanguageEnum, content: string, context: Record<string, any>): Promise<string>;
18
18
  renderEngine(engine: TemplateEngineEnum, content: string, context: Record<string, any>): Promise<string>;
19
- /**
20
- * Get all templates, with scoped templates taking precedence over system templates
21
- */
22
19
  getTemplates(filter?: TemplateFilterDto): Promise<NestDynamicTemplate[]>;
23
20
  getTemplateById(id: string): Promise<NestDynamicTemplate | null>;
24
21
  findTemplate(name: string, scope?: string, scopeId?: string, locale?: string): Promise<NestDynamicTemplate | null>;
25
- /**
26
- * Create a system template. Only system templates can be created directly.
27
- */
28
22
  createTemplate(data: CreateTemplateDto): Promise<NestDynamicTemplate>;
29
23
  overwriteSystemTemplate(templateId: string, updates: Partial<CreateTemplateDto>): Promise<NestDynamicTemplate>;
30
- /**
31
- * Update a template
32
- */
33
24
  updateTemplate(id: string, updates: Partial<CreateTemplateDto>, canUpdateSystemTemplate?: boolean): Promise<NestDynamicTemplate>;
34
- /**
35
- * Delete a scoped template
36
- */
37
25
  deleteTemplate(id: string, canDeleteSystemTemplate?: boolean): Promise<void>;
38
26
  }
39
- //# sourceMappingURL=template.service.d.ts.map
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
2
14
  Object.defineProperty(exports, "__esModule", { value: true });
3
15
  exports.TemplateService = void 0;
4
- const tslib_1 = require("tslib");
5
16
  const common_1 = require("@nestjs/common");
6
17
  const typeorm_1 = require("@nestjs/typeorm");
7
18
  const typeorm_2 = require("typeorm");
@@ -12,6 +23,9 @@ const template_engine_registry_1 = require("./template-engine.registry");
12
23
  const lodash_1 = require("lodash");
13
24
  const template_errors_1 = require("../errors/template.errors");
14
25
  let TemplateService = class TemplateService {
26
+ templateRepository;
27
+ engineRegistry;
28
+ templateLayoutService;
15
29
  constructor(templateRepository, engineRegistry, templateLayoutService) {
16
30
  this.templateRepository = templateRepository;
17
31
  this.engineRegistry = engineRegistry;
@@ -20,7 +34,6 @@ let TemplateService = class TemplateService {
20
34
  async render(renderDto) {
21
35
  const { name, scope, scopeId, locale, context } = renderDto;
22
36
  try {
23
- // Find template with fallback
24
37
  if (!name) {
25
38
  throw new common_1.BadRequestException('Template name is required');
26
39
  }
@@ -30,7 +43,6 @@ let TemplateService = class TemplateService {
30
43
  }
31
44
  let content = template.content;
32
45
  let subject = template.subject;
33
- // Render subject by template engine
34
46
  if (template.subject && template.engine) {
35
47
  try {
36
48
  const subjectEngine = this.engineRegistry.getTemplateEngine(template.engine);
@@ -40,7 +52,6 @@ let TemplateService = class TemplateService {
40
52
  throw new template_errors_1.TemplateEngineError(template.engine, error);
41
53
  }
42
54
  }
43
- // Render content by template engine
44
55
  if (template.engine) {
45
56
  try {
46
57
  content = await this.renderEngine(template.engine, content, context || {});
@@ -49,7 +60,6 @@ let TemplateService = class TemplateService {
49
60
  throw new template_errors_1.TemplateEngineError(template.engine, error);
50
61
  }
51
62
  }
52
- // If template has layout, apply it
53
63
  let layout;
54
64
  if (template.templateLayoutName) {
55
65
  try {
@@ -69,7 +79,6 @@ let TemplateService = class TemplateService {
69
79
  throw new template_errors_1.TemplateLayoutError(template.templateLayoutName, error);
70
80
  }
71
81
  }
72
- // If template has language format, process with language engine
73
82
  if (!layout && template.language) {
74
83
  try {
75
84
  content = await this.renderLanguage(template.language, content, context || {});
@@ -84,14 +93,12 @@ let TemplateService = class TemplateService {
84
93
  };
85
94
  }
86
95
  catch (error) {
87
- // Re-throw known template errors
88
96
  if (error instanceof template_errors_1.TemplateEngineError ||
89
97
  error instanceof template_errors_1.TemplateLanguageError ||
90
98
  error instanceof template_errors_1.TemplateLayoutError ||
91
99
  error instanceof common_1.NotFoundException) {
92
100
  throw error;
93
101
  }
94
- // Wrap unknown errors
95
102
  throw new template_errors_1.TemplateRenderError('template rendering', error, name);
96
103
  }
97
104
  }
@@ -102,14 +109,12 @@ let TemplateService = class TemplateService {
102
109
  throw new common_1.BadRequestException('Content is required for rendering');
103
110
  }
104
111
  let renderContent = content;
105
- // Step 1: Render template variables first
106
112
  try {
107
113
  renderContent = await this.renderEngine(engine || template_types_1.TemplateEngineEnum.NUNJUCKS, renderContent, context || {});
108
114
  }
109
115
  catch (error) {
110
116
  throw new template_errors_1.TemplateEngineError(engine || template_types_1.TemplateEngineEnum.NUNJUCKS, error);
111
117
  }
112
- // Step 2: Handle MJML with layouts intelligently
113
118
  let templateLayout = null;
114
119
  if (templateLayoutId) {
115
120
  try {
@@ -126,7 +131,6 @@ let TemplateService = class TemplateService {
126
131
  }
127
132
  if (templateLayout) {
128
133
  try {
129
- // Step 3: Render the layout content
130
134
  renderContent = await this.templateLayoutService.renderContent({
131
135
  content: templateLayout.content,
132
136
  language: language,
@@ -142,7 +146,6 @@ let TemplateService = class TemplateService {
142
146
  }
143
147
  }
144
148
  }
145
- // Step 4: Render the content with the language engine
146
149
  if ((!templateLayoutId || !templateLayout) && language) {
147
150
  try {
148
151
  renderContent = await this.renderLanguage(language, renderContent, context || {});
@@ -154,7 +157,6 @@ let TemplateService = class TemplateService {
154
157
  return renderContent;
155
158
  }
156
159
  catch (error) {
157
- // Re-throw known template errors
158
160
  if (error instanceof template_errors_1.TemplateEngineError ||
159
161
  error instanceof template_errors_1.TemplateLanguageError ||
160
162
  error instanceof template_errors_1.TemplateLayoutError ||
@@ -163,7 +165,6 @@ let TemplateService = class TemplateService {
163
165
  error instanceof common_1.BadRequestException) {
164
166
  throw error;
165
167
  }
166
- // Wrap unknown errors
167
168
  throw new template_errors_1.TemplateRenderError('content rendering', error);
168
169
  }
169
170
  }
@@ -203,12 +204,8 @@ let TemplateService = class TemplateService {
203
204
  throw new template_errors_1.TemplateEngineError(engine, error);
204
205
  }
205
206
  }
206
- /**
207
- * Get all templates, with scoped templates taking precedence over system templates
208
- */
209
207
  async getTemplates(filter = {}) {
210
208
  const { scope, scopeId, type, locale, excludeNames = [], } = filter;
211
- // Build the where clause
212
209
  const where = {};
213
210
  if (type)
214
211
  where.type = type;
@@ -226,7 +223,6 @@ let TemplateService = class TemplateService {
226
223
  if (scope === 'system') {
227
224
  return systemTemplates;
228
225
  }
229
- // First get all templates matching the filters
230
226
  const templates = await this.templateRepository.find({
231
227
  where: {
232
228
  ...where,
@@ -237,7 +233,6 @@ let TemplateService = class TemplateService {
237
233
  createdAt: 'DESC',
238
234
  },
239
235
  });
240
- // Create a map to store unique templates by name+type
241
236
  const templateMap = new Map();
242
237
  for (const template of systemTemplates) {
243
238
  const key = `${template.type}/${template.name}/${template.locale}`;
@@ -247,7 +242,6 @@ let TemplateService = class TemplateService {
247
242
  const key = `${template.type}/${template.name}/${template.locale}`;
248
243
  templateMap.set(key, template);
249
244
  }
250
- // Convert map values back to array
251
245
  return Array.from(templateMap.values());
252
246
  }
253
247
  async getTemplateById(id) {
@@ -256,13 +250,7 @@ let TemplateService = class TemplateService {
256
250
  });
257
251
  }
258
252
  async findTemplate(name, scope, scopeId, locale) {
259
- // Try to find template in the following order:
260
- // 1. Scoped template with locale
261
- // 2. Scoped template without locale
262
- // 3. System template with locale
263
- // 4. System template without locale
264
253
  const locales = (locale ? [locale, 'en'] : ['en']).filter(Boolean);
265
- // First try to find in the specified scope
266
254
  for (const currentLocale of locales) {
267
255
  const template = await this.templateRepository.findOne({
268
256
  where: {
@@ -276,7 +264,6 @@ let TemplateService = class TemplateService {
276
264
  return template;
277
265
  }
278
266
  }
279
- // If not found and not already in system scope, try system scope
280
267
  if (scope !== 'system') {
281
268
  for (const currentLocale of locales) {
282
269
  const template = await this.templateRepository.findOne({
@@ -294,15 +281,10 @@ let TemplateService = class TemplateService {
294
281
  }
295
282
  return null;
296
283
  }
297
- /**
298
- * Create a system template. Only system templates can be created directly.
299
- */
300
284
  async createTemplate(data) {
301
- // Ensure this is a system template
302
285
  if (data.scope !== 'system') {
303
286
  throw new common_1.ForbiddenException('Only system templates can be created directly');
304
287
  }
305
- // Check if template already exists
306
288
  const existingTemplate = await this.templateRepository.findOne({
307
289
  where: {
308
290
  name: data.name,
@@ -316,7 +298,7 @@ let TemplateService = class TemplateService {
316
298
  }
317
299
  const template = this.templateRepository.create({
318
300
  ...data,
319
- scopeId: undefined, // Ensure system templates have no scopeId
301
+ scopeId: undefined,
320
302
  });
321
303
  return this.templateRepository.save(template);
322
304
  }
@@ -331,7 +313,6 @@ let TemplateService = class TemplateService {
331
313
  if (!updates.scope) {
332
314
  throw new common_1.BadRequestException('Scope is required when overwriting system template');
333
315
  }
334
- // Check if template already exists in target scope
335
316
  const existingTemplate = await this.templateRepository.findOne({
336
317
  where: {
337
318
  name: template.name,
@@ -341,11 +322,9 @@ let TemplateService = class TemplateService {
341
322
  },
342
323
  });
343
324
  if (existingTemplate) {
344
- // Update existing template in target scope
345
325
  template = existingTemplate;
346
326
  }
347
327
  else {
348
- // Create new template in target scope
349
328
  const newTemplate = this.templateRepository.create({
350
329
  ...template,
351
330
  id: undefined,
@@ -362,34 +341,24 @@ let TemplateService = class TemplateService {
362
341
  await this.templateRepository.save(template);
363
342
  return template;
364
343
  }
365
- /**
366
- * Update a template
367
- */
368
344
  async updateTemplate(id, updates, canUpdateSystemTemplate = false) {
369
- // Find the template
370
345
  let template = await this.templateRepository.findOne({
371
346
  where: { id },
372
347
  });
373
348
  if (!template) {
374
349
  throw new common_1.NotFoundException(`Template not found: ${id}`);
375
350
  }
376
- // If it's a system template and we can't update it, try to overwrite it
377
351
  if (template.scope === 'system' && !canUpdateSystemTemplate) {
378
352
  if (updates.scope) {
379
- // Otherwise, allow overwriting to custom scope
380
353
  return this.overwriteSystemTemplate(id, updates);
381
354
  }
382
355
  else {
383
356
  throw new common_1.ForbiddenException('Cannot update system templates');
384
357
  }
385
358
  }
386
- // For regular updates
387
359
  template = this.templateRepository.merge(template, updates);
388
360
  return this.templateRepository.save(template);
389
361
  }
390
- /**
391
- * Delete a scoped template
392
- */
393
362
  async deleteTemplate(id, canDeleteSystemTemplate = false) {
394
363
  const template = await this.templateRepository.findOne({
395
364
  where: { id },
@@ -397,7 +366,6 @@ let TemplateService = class TemplateService {
397
366
  if (!template) {
398
367
  throw new Error(`Template not found: ${id}`);
399
368
  }
400
- // Prevent deleting system templates
401
369
  if (template.scope === 'system' && !canDeleteSystemTemplate) {
402
370
  throw new common_1.ForbiddenException('Cannot delete system templates');
403
371
  }
@@ -405,10 +373,11 @@ let TemplateService = class TemplateService {
405
373
  }
406
374
  };
407
375
  exports.TemplateService = TemplateService;
408
- exports.TemplateService = TemplateService = tslib_1.__decorate([
376
+ exports.TemplateService = TemplateService = __decorate([
409
377
  (0, common_1.Injectable)(),
410
- tslib_1.__param(0, (0, typeorm_1.InjectRepository)(template_entity_1.NestDynamicTemplate)),
411
- tslib_1.__metadata("design:paramtypes", [typeorm_2.Repository,
378
+ __param(0, (0, typeorm_1.InjectRepository)(template_entity_1.NestDynamicTemplate)),
379
+ __metadata("design:paramtypes", [typeorm_2.Repository,
412
380
  template_engine_registry_1.TemplateEngineRegistryService,
413
381
  template_layout_service_1.TemplateLayoutService])
414
382
  ], TemplateService);
383
+ //# sourceMappingURL=template.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../../src/lib/services/template.service.ts"],"names":[],"mappings":"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"}