@ackplus/nest-dynamic-templates 0.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 (99) hide show
  1. package/README.md +173 -0
  2. package/package.json +62 -0
  3. package/src/index.d.ts +5 -0
  4. package/src/index.js +9 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/constant.d.ts +1 -0
  7. package/src/lib/constant.js +5 -0
  8. package/src/lib/constant.js.map +1 -0
  9. package/src/lib/controllers/template-layout.controller.d.ts +18 -0
  10. package/src/lib/controllers/template-layout.controller.js +96 -0
  11. package/src/lib/controllers/template-layout.controller.js.map +1 -0
  12. package/src/lib/controllers/template.controller.d.ts +17 -0
  13. package/src/lib/controllers/template.controller.js +100 -0
  14. package/src/lib/controllers/template.controller.js.map +1 -0
  15. package/src/lib/dto/create-template-layout.dto.d.ts +15 -0
  16. package/src/lib/dto/create-template-layout.dto.js +86 -0
  17. package/src/lib/dto/create-template-layout.dto.js.map +1 -0
  18. package/src/lib/dto/create-template.dto.d.ts +16 -0
  19. package/src/lib/dto/create-template.dto.js +91 -0
  20. package/src/lib/dto/create-template.dto.js.map +1 -0
  21. package/src/lib/dto/render-template-layout.dto.d.ts +12 -0
  22. package/src/lib/dto/render-template-layout.dto.js +69 -0
  23. package/src/lib/dto/render-template-layout.dto.js.map +1 -0
  24. package/src/lib/dto/render-template.dto.d.ts +13 -0
  25. package/src/lib/dto/render-template.dto.js +82 -0
  26. package/src/lib/dto/render-template.dto.js.map +1 -0
  27. package/src/lib/dto/template-filter.dto.d.ts +8 -0
  28. package/src/lib/dto/template-filter.dto.js +62 -0
  29. package/src/lib/dto/template-filter.dto.js.map +1 -0
  30. package/src/lib/dto/template-layout-filter.dto.d.ts +8 -0
  31. package/src/lib/dto/template-layout-filter.dto.js +62 -0
  32. package/src/lib/dto/template-layout-filter.dto.js.map +1 -0
  33. package/src/lib/engines/language/html.engine.d.ts +9 -0
  34. package/src/lib/engines/language/html.engine.js +79 -0
  35. package/src/lib/engines/language/html.engine.js.map +1 -0
  36. package/src/lib/engines/language/index.d.ts +4 -0
  37. package/src/lib/engines/language/index.js +12 -0
  38. package/src/lib/engines/language/index.js.map +1 -0
  39. package/src/lib/engines/language/markdown.engine.d.ts +9 -0
  40. package/src/lib/engines/language/markdown.engine.js +39 -0
  41. package/src/lib/engines/language/markdown.engine.js.map +1 -0
  42. package/src/lib/engines/language/mjml.engine.d.ts +9 -0
  43. package/src/lib/engines/language/mjml.engine.js +77 -0
  44. package/src/lib/engines/language/mjml.engine.js.map +1 -0
  45. package/src/lib/engines/language/text.engine.d.ts +7 -0
  46. package/src/lib/engines/language/text.engine.js +16 -0
  47. package/src/lib/engines/language/text.engine.js.map +1 -0
  48. package/src/lib/engines/language-engine.d.ts +5 -0
  49. package/src/lib/engines/language-engine.js +7 -0
  50. package/src/lib/engines/language-engine.js.map +1 -0
  51. package/src/lib/engines/template/ejs.engine.d.ts +9 -0
  52. package/src/lib/engines/template/ejs.engine.js +66 -0
  53. package/src/lib/engines/template/ejs.engine.js.map +1 -0
  54. package/src/lib/engines/template/handlebars.engine.d.ts +9 -0
  55. package/src/lib/engines/template/handlebars.engine.js +67 -0
  56. package/src/lib/engines/template/handlebars.engine.js.map +1 -0
  57. package/src/lib/engines/template/index.d.ts +4 -0
  58. package/src/lib/engines/template/index.js +12 -0
  59. package/src/lib/engines/template/index.js.map +1 -0
  60. package/src/lib/engines/template/nunjucks.engine.d.ts +12 -0
  61. package/src/lib/engines/template/nunjucks.engine.js +82 -0
  62. package/src/lib/engines/template/nunjucks.engine.js.map +1 -0
  63. package/src/lib/engines/template/pug.engine.d.ts +10 -0
  64. package/src/lib/engines/template/pug.engine.js +67 -0
  65. package/src/lib/engines/template/pug.engine.js.map +1 -0
  66. package/src/lib/engines/template-engine.d.ts +5 -0
  67. package/src/lib/engines/template-engine.js +7 -0
  68. package/src/lib/engines/template-engine.js.map +1 -0
  69. package/src/lib/entities/template-layout.entity.d.ts +18 -0
  70. package/src/lib/entities/template-layout.entity.js +117 -0
  71. package/src/lib/entities/template-layout.entity.js.map +1 -0
  72. package/src/lib/entities/template.entity.d.ts +20 -0
  73. package/src/lib/entities/template.entity.js +127 -0
  74. package/src/lib/entities/template.entity.js.map +1 -0
  75. package/src/lib/interfaces/module-config.interface.d.ts +15 -0
  76. package/src/lib/interfaces/module-config.interface.js +3 -0
  77. package/src/lib/interfaces/module-config.interface.js.map +1 -0
  78. package/src/lib/interfaces/template.types.d.ts +22 -0
  79. package/src/lib/interfaces/template.types.js +25 -0
  80. package/src/lib/interfaces/template.types.js.map +1 -0
  81. package/src/lib/services/template-engine.registry.d.ts +22 -0
  82. package/src/lib/services/template-engine.registry.js +91 -0
  83. package/src/lib/services/template-engine.registry.js.map +1 -0
  84. package/src/lib/services/template-layout.service.d.ts +19 -0
  85. package/src/lib/services/template-layout.service.js +182 -0
  86. package/src/lib/services/template-layout.service.js.map +1 -0
  87. package/src/lib/services/template.service.d.ts +21 -0
  88. package/src/lib/services/template.service.js +231 -0
  89. package/src/lib/services/template.service.js.map +1 -0
  90. package/src/lib/templates.module.d.ts +5 -0
  91. package/src/lib/templates.module.js +50 -0
  92. package/src/lib/templates.module.js.map +1 -0
  93. package/src/test/test-database.config.d.ts +4 -0
  94. package/src/test/test-database.config.js +24 -0
  95. package/src/test/test-database.config.js.map +1 -0
  96. package/src/test/test.setup.d.ts +3 -0
  97. package/src/test/test.setup.js +29 -0
  98. package/src/test/test.setup.js.map +1 -0
  99. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NestDynamicTemplateLayout = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typeorm_1 = require("typeorm");
6
+ const class_validator_1 = require("class-validator");
7
+ const template_types_1 = require("../interfaces/template.types");
8
+ const swagger_1 = require("@nestjs/swagger");
9
+ let NestDynamicTemplateLayout = class NestDynamicTemplateLayout {
10
+ };
11
+ exports.NestDynamicTemplateLayout = NestDynamicTemplateLayout;
12
+ tslib_1.__decorate([
13
+ (0, swagger_1.ApiProperty)({ type: String, format: 'uuid', readOnly: true }),
14
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
15
+ tslib_1.__metadata("design:type", String)
16
+ ], NestDynamicTemplateLayout.prototype, "id", void 0);
17
+ tslib_1.__decorate([
18
+ (0, swagger_1.ApiProperty)({ type: String }),
19
+ (0, class_validator_1.IsNotEmpty)(),
20
+ (0, class_validator_1.Matches)(/^[a-z0-9\-_]+$/, { message: 'Invalid layout name format' }),
21
+ (0, typeorm_1.Column)(),
22
+ tslib_1.__metadata("design:type", String)
23
+ ], NestDynamicTemplateLayout.prototype, "name", void 0);
24
+ tslib_1.__decorate([
25
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
26
+ (0, class_validator_1.IsString)(),
27
+ (0, class_validator_1.IsOptional)(),
28
+ (0, typeorm_1.Column)({ nullable: true }),
29
+ tslib_1.__metadata("design:type", String)
30
+ ], NestDynamicTemplateLayout.prototype, "displayName", void 0);
31
+ tslib_1.__decorate([
32
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.IsOptional)(),
35
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
36
+ tslib_1.__metadata("design:type", String)
37
+ ], NestDynamicTemplateLayout.prototype, "description", void 0);
38
+ tslib_1.__decorate([
39
+ (0, swagger_1.ApiProperty)({ enum: template_types_1.TemplateTypeEnum, type: String }),
40
+ (0, class_validator_1.IsEnum)(template_types_1.TemplateTypeEnum),
41
+ (0, typeorm_1.Column)({
42
+ type: 'text',
43
+ default: template_types_1.TemplateTypeEnum.EMAIL
44
+ }),
45
+ tslib_1.__metadata("design:type", String)
46
+ ], NestDynamicTemplateLayout.prototype, "type", void 0);
47
+ tslib_1.__decorate([
48
+ (0, swagger_1.ApiProperty)({ enum: template_types_1.TemplateEngineEnum, type: String }),
49
+ (0, class_validator_1.IsEnum)(template_types_1.TemplateEngineEnum),
50
+ (0, typeorm_1.Column)({
51
+ type: 'text',
52
+ default: template_types_1.TemplateEngineEnum.NUNJUCKS
53
+ }),
54
+ tslib_1.__metadata("design:type", String)
55
+ ], NestDynamicTemplateLayout.prototype, "engine", void 0);
56
+ tslib_1.__decorate([
57
+ (0, swagger_1.ApiProperty)({ enum: template_types_1.TemplateLanguageEnum, type: String, nullable: true }),
58
+ (0, class_validator_1.IsEnum)(template_types_1.TemplateLanguageEnum),
59
+ (0, class_validator_1.IsOptional)(),
60
+ (0, typeorm_1.Column)({
61
+ type: 'text',
62
+ nullable: true
63
+ }),
64
+ tslib_1.__metadata("design:type", String)
65
+ ], NestDynamicTemplateLayout.prototype, "language", void 0);
66
+ tslib_1.__decorate([
67
+ (0, swagger_1.ApiProperty)({ type: String }),
68
+ (0, class_validator_1.IsString)(),
69
+ (0, typeorm_1.Column)('text'),
70
+ tslib_1.__metadata("design:type", String)
71
+ ], NestDynamicTemplateLayout.prototype, "content", void 0);
72
+ tslib_1.__decorate([
73
+ (0, swagger_1.ApiProperty)({ type: String }),
74
+ (0, class_validator_1.IsString)(),
75
+ (0, typeorm_1.Column)({ default: 'system' }),
76
+ tslib_1.__metadata("design:type", String)
77
+ ], NestDynamicTemplateLayout.prototype, "scope", void 0);
78
+ tslib_1.__decorate([
79
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
80
+ (0, class_validator_1.IsOptional)(),
81
+ (0, typeorm_1.Column)({ nullable: true }),
82
+ tslib_1.__metadata("design:type", String)
83
+ ], NestDynamicTemplateLayout.prototype, "scopeId", void 0);
84
+ tslib_1.__decorate([
85
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
86
+ (0, class_validator_1.IsString)(),
87
+ (0, class_validator_1.IsOptional)(),
88
+ (0, typeorm_1.Column)({ nullable: true, default: 'en' }),
89
+ tslib_1.__metadata("design:type", String)
90
+ ], NestDynamicTemplateLayout.prototype, "locale", void 0);
91
+ tslib_1.__decorate([
92
+ (0, swagger_1.ApiProperty)({ type: Object, nullable: true }),
93
+ (0, class_validator_1.IsOptional)(),
94
+ (0, typeorm_1.Column)('simple-json', { nullable: true }),
95
+ tslib_1.__metadata("design:type", Object)
96
+ ], NestDynamicTemplateLayout.prototype, "previewContext", void 0);
97
+ tslib_1.__decorate([
98
+ (0, swagger_1.ApiProperty)({ type: Boolean }),
99
+ (0, class_validator_1.IsBoolean)(),
100
+ (0, typeorm_1.Column)({ default: true }),
101
+ tslib_1.__metadata("design:type", Boolean)
102
+ ], NestDynamicTemplateLayout.prototype, "isActive", void 0);
103
+ tslib_1.__decorate([
104
+ (0, swagger_1.ApiProperty)({ type: Date, readOnly: true }),
105
+ (0, typeorm_1.CreateDateColumn)(),
106
+ tslib_1.__metadata("design:type", Date)
107
+ ], NestDynamicTemplateLayout.prototype, "createdAt", void 0);
108
+ tslib_1.__decorate([
109
+ (0, swagger_1.ApiProperty)({ type: Date, readOnly: true }),
110
+ (0, typeorm_1.UpdateDateColumn)(),
111
+ tslib_1.__metadata("design:type", Date)
112
+ ], NestDynamicTemplateLayout.prototype, "updatedAt", void 0);
113
+ exports.NestDynamicTemplateLayout = NestDynamicTemplateLayout = tslib_1.__decorate([
114
+ (0, typeorm_1.Entity)('template_layouts'),
115
+ (0, typeorm_1.Index)(['name', 'scope', 'scopeId', 'locale'], { unique: true })
116
+ ], NestDynamicTemplateLayout);
117
+ //# sourceMappingURL=template-layout.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-layout.entity.js","sourceRoot":"","sources":["../../../../../../packages/nest-dynamic-templates/src/lib/entities/template-layout.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { TemplateTypeEnum, TemplateEngineEnum, TemplateLanguageEnum } from '../interfaces/template.types';
2
+ export declare class NestDynamicTemplate {
3
+ id: string;
4
+ name: string;
5
+ displayName?: string;
6
+ description?: string;
7
+ type: TemplateTypeEnum;
8
+ engine: TemplateEngineEnum;
9
+ language?: TemplateLanguageEnum;
10
+ subject?: string;
11
+ content: string;
12
+ templateLayoutName?: string;
13
+ scope?: string;
14
+ scopeId?: string;
15
+ locale?: string;
16
+ previewContext?: Record<string, any>;
17
+ isActive: boolean;
18
+ createdAt: Date;
19
+ updatedAt: Date;
20
+ }
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NestDynamicTemplate = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typeorm_1 = require("typeorm");
6
+ const template_types_1 = require("../interfaces/template.types");
7
+ const class_validator_1 = require("class-validator");
8
+ const swagger_1 = require("@nestjs/swagger");
9
+ let NestDynamicTemplate = class NestDynamicTemplate {
10
+ };
11
+ exports.NestDynamicTemplate = NestDynamicTemplate;
12
+ tslib_1.__decorate([
13
+ (0, swagger_1.ApiProperty)({ type: String, format: 'uuid', readOnly: true }),
14
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
15
+ tslib_1.__metadata("design:type", String)
16
+ ], NestDynamicTemplate.prototype, "id", void 0);
17
+ tslib_1.__decorate([
18
+ (0, swagger_1.ApiProperty)({ type: String }),
19
+ (0, class_validator_1.IsString)(),
20
+ (0, class_validator_1.IsNotEmpty)(),
21
+ (0, class_validator_1.Matches)(/^[a-z0-9\-_]+$/, { message: 'Invalid template name format' }),
22
+ (0, typeorm_1.Column)(),
23
+ tslib_1.__metadata("design:type", String)
24
+ ], NestDynamicTemplate.prototype, "name", void 0);
25
+ tslib_1.__decorate([
26
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
27
+ (0, class_validator_1.IsString)(),
28
+ (0, class_validator_1.IsOptional)(),
29
+ (0, typeorm_1.Column)({ nullable: true }),
30
+ tslib_1.__metadata("design:type", String)
31
+ ], NestDynamicTemplate.prototype, "displayName", void 0);
32
+ tslib_1.__decorate([
33
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
34
+ (0, class_validator_1.IsString)(),
35
+ (0, class_validator_1.IsOptional)(),
36
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
37
+ tslib_1.__metadata("design:type", String)
38
+ ], NestDynamicTemplate.prototype, "description", void 0);
39
+ tslib_1.__decorate([
40
+ (0, swagger_1.ApiProperty)({ enum: template_types_1.TemplateTypeEnum, type: String }),
41
+ (0, class_validator_1.IsEnum)(template_types_1.TemplateTypeEnum),
42
+ (0, typeorm_1.Column)({ type: 'text' }),
43
+ tslib_1.__metadata("design:type", String)
44
+ ], NestDynamicTemplate.prototype, "type", void 0);
45
+ tslib_1.__decorate([
46
+ (0, swagger_1.ApiProperty)({ enum: template_types_1.TemplateEngineEnum, type: String }),
47
+ (0, class_validator_1.IsEnum)(template_types_1.TemplateEngineEnum),
48
+ (0, typeorm_1.Column)({
49
+ type: 'text',
50
+ enum: template_types_1.TemplateEngineEnum,
51
+ default: template_types_1.TemplateEngineEnum.NUNJUCKS
52
+ }),
53
+ tslib_1.__metadata("design:type", String)
54
+ ], NestDynamicTemplate.prototype, "engine", void 0);
55
+ tslib_1.__decorate([
56
+ (0, swagger_1.ApiProperty)({ enum: template_types_1.TemplateLanguageEnum, type: String, nullable: true }),
57
+ (0, class_validator_1.IsEnum)(template_types_1.TemplateLanguageEnum),
58
+ (0, class_validator_1.IsOptional)(),
59
+ (0, typeorm_1.Column)({ type: 'text' }),
60
+ tslib_1.__metadata("design:type", String)
61
+ ], NestDynamicTemplate.prototype, "language", void 0);
62
+ tslib_1.__decorate([
63
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
64
+ (0, class_validator_1.IsString)(),
65
+ (0, class_validator_1.IsOptional)(),
66
+ (0, typeorm_1.Column)({ nullable: true }),
67
+ tslib_1.__metadata("design:type", String)
68
+ ], NestDynamicTemplate.prototype, "subject", void 0);
69
+ tslib_1.__decorate([
70
+ (0, swagger_1.ApiProperty)({ type: String }),
71
+ (0, class_validator_1.IsString)(),
72
+ (0, class_validator_1.IsOptional)(),
73
+ (0, typeorm_1.Column)('text'),
74
+ tslib_1.__metadata("design:type", String)
75
+ ], NestDynamicTemplate.prototype, "content", void 0);
76
+ tslib_1.__decorate([
77
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
78
+ (0, class_validator_1.IsString)(),
79
+ (0, class_validator_1.IsOptional)(),
80
+ (0, typeorm_1.Column)({ nullable: true }),
81
+ tslib_1.__metadata("design:type", String)
82
+ ], NestDynamicTemplate.prototype, "templateLayoutName", void 0);
83
+ tslib_1.__decorate([
84
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
85
+ (0, class_validator_1.IsString)(),
86
+ (0, typeorm_1.Column)({ nullable: true, default: 'system' }),
87
+ tslib_1.__metadata("design:type", String)
88
+ ], NestDynamicTemplate.prototype, "scope", void 0);
89
+ tslib_1.__decorate([
90
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
91
+ (0, class_validator_1.IsString)(),
92
+ (0, typeorm_1.Column)({ nullable: true }),
93
+ tslib_1.__metadata("design:type", String)
94
+ ], NestDynamicTemplate.prototype, "scopeId", void 0);
95
+ tslib_1.__decorate([
96
+ (0, swagger_1.ApiProperty)({ type: String, nullable: true }),
97
+ (0, class_validator_1.IsString)(),
98
+ (0, typeorm_1.Column)({ nullable: true, default: 'en' }),
99
+ tslib_1.__metadata("design:type", String)
100
+ ], NestDynamicTemplate.prototype, "locale", void 0);
101
+ tslib_1.__decorate([
102
+ (0, swagger_1.ApiProperty)({ type: Object, nullable: true }),
103
+ (0, class_validator_1.IsOptional)(),
104
+ (0, typeorm_1.Column)('simple-json', { nullable: true }),
105
+ tslib_1.__metadata("design:type", Object)
106
+ ], NestDynamicTemplate.prototype, "previewContext", void 0);
107
+ tslib_1.__decorate([
108
+ (0, swagger_1.ApiProperty)({ type: Boolean }),
109
+ (0, class_validator_1.IsBoolean)(),
110
+ (0, typeorm_1.Column)({ default: true }),
111
+ tslib_1.__metadata("design:type", Boolean)
112
+ ], NestDynamicTemplate.prototype, "isActive", void 0);
113
+ tslib_1.__decorate([
114
+ (0, swagger_1.ApiProperty)({ type: Date, readOnly: true }),
115
+ (0, typeorm_1.CreateDateColumn)(),
116
+ tslib_1.__metadata("design:type", Date)
117
+ ], NestDynamicTemplate.prototype, "createdAt", void 0);
118
+ tslib_1.__decorate([
119
+ (0, swagger_1.ApiProperty)({ type: Date, readOnly: true }),
120
+ (0, typeorm_1.UpdateDateColumn)(),
121
+ tslib_1.__metadata("design:type", Date)
122
+ ], NestDynamicTemplate.prototype, "updatedAt", void 0);
123
+ exports.NestDynamicTemplate = NestDynamicTemplate = tslib_1.__decorate([
124
+ (0, typeorm_1.Entity)('nest_dynamic_templates'),
125
+ (0, typeorm_1.Index)(['type', 'name', 'scope', 'scopeId', 'locale'], { unique: true })
126
+ ], NestDynamicTemplate);
127
+ //# sourceMappingURL=template.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.entity.js","sourceRoot":"","sources":["../../../../../../packages/nest-dynamic-templates/src/lib/entities/template.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { TemplateEngineEnum, TemplateLanguageEnum } from './template.types';
2
+ export interface EngineConfig {
3
+ enabled: boolean;
4
+ options?: Record<string, any>;
5
+ }
6
+ export interface NestDynamicTemplatesModuleConfig {
7
+ enginesOptions?: {
8
+ template?: Record<TemplateEngineEnum, any>;
9
+ language?: Record<TemplateLanguageEnum, any>;
10
+ };
11
+ engines?: {
12
+ template?: TemplateEngineEnum[];
13
+ language?: TemplateLanguageEnum[];
14
+ };
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=module-config.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-config.interface.js","sourceRoot":"","sources":["../../../../../../packages/nest-dynamic-templates/src/lib/interfaces/module-config.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ export declare enum TemplateTypeEnum {
2
+ EMAIL = "email",
3
+ SMS = "sms",
4
+ PUSH = "push",
5
+ PDF = "pdf"
6
+ }
7
+ export declare enum TemplateEngineEnum {
8
+ NUNJUCKS = "njk",
9
+ HANDLEBARS = "hbs",
10
+ EJS = "ejs",
11
+ PUG = "pug"
12
+ }
13
+ export declare enum TemplateLanguageEnum {
14
+ MJML = "mjml",
15
+ HTML = "html",
16
+ MARKDOWN = "md",
17
+ TEXT = "txt"
18
+ }
19
+ export interface Scope {
20
+ scope: string;
21
+ id: string;
22
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplateLanguageEnum = exports.TemplateEngineEnum = exports.TemplateTypeEnum = void 0;
4
+ var TemplateTypeEnum;
5
+ (function (TemplateTypeEnum) {
6
+ TemplateTypeEnum["EMAIL"] = "email";
7
+ TemplateTypeEnum["SMS"] = "sms";
8
+ TemplateTypeEnum["PUSH"] = "push";
9
+ TemplateTypeEnum["PDF"] = "pdf";
10
+ })(TemplateTypeEnum || (exports.TemplateTypeEnum = TemplateTypeEnum = {}));
11
+ var TemplateEngineEnum;
12
+ (function (TemplateEngineEnum) {
13
+ TemplateEngineEnum["NUNJUCKS"] = "njk";
14
+ TemplateEngineEnum["HANDLEBARS"] = "hbs";
15
+ TemplateEngineEnum["EJS"] = "ejs";
16
+ TemplateEngineEnum["PUG"] = "pug";
17
+ })(TemplateEngineEnum || (exports.TemplateEngineEnum = TemplateEngineEnum = {}));
18
+ var TemplateLanguageEnum;
19
+ (function (TemplateLanguageEnum) {
20
+ TemplateLanguageEnum["MJML"] = "mjml";
21
+ TemplateLanguageEnum["HTML"] = "html";
22
+ TemplateLanguageEnum["MARKDOWN"] = "md";
23
+ TemplateLanguageEnum["TEXT"] = "txt";
24
+ })(TemplateLanguageEnum || (exports.TemplateLanguageEnum = TemplateLanguageEnum = {}));
25
+ //# sourceMappingURL=template.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.types.js","sourceRoot":"","sources":["../../../../../../packages/nest-dynamic-templates/src/lib/interfaces/template.types.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,mCAAe,CAAA;IACf,+BAAW,CAAA;IACX,iCAAa,CAAA;IACb,+BAAW,CAAA;AACf,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,sCAAgB,CAAA;IAChB,wCAAkB,CAAA;IAClB,iCAAW,CAAA;IACX,iCAAW,CAAA;AACf,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B;AAED,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,qCAAa,CAAA;IACb,uCAAe,CAAA;IACf,oCAAY,CAAA;AAChB,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B"}
@@ -0,0 +1,22 @@
1
+ import { TemplateEngineEnum, TemplateLanguageEnum } from '../interfaces/template.types';
2
+ import { NestDynamicTemplatesModuleConfig } from '../interfaces/module-config.interface';
3
+ import { TemplateEngine } from '../engines/template-engine';
4
+ import { LanguageEngine } from '../engines/language-engine';
5
+ type ClassType<T> = new (...args: any[]) => T;
6
+ export declare class TemplateEngineRegistryService {
7
+ private config;
8
+ private templateEngines;
9
+ private languageEngines;
10
+ constructor(config: NestDynamicTemplatesModuleConfig);
11
+ registerTemplateEngines(engineClasses: ClassType<TemplateEngine>[]): void;
12
+ registerTemplateEngine(format: TemplateEngineEnum, engine: TemplateEngine): void;
13
+ registerLanguageEngine(format: TemplateLanguageEnum, engine: LanguageEngine): void;
14
+ getTemplateEngine(format: TemplateEngineEnum): TemplateEngine;
15
+ getLanguageEngine(format: TemplateLanguageEnum): LanguageEngine;
16
+ registerLanguageEngines(engineClasses: ClassType<LanguageEngine>[]): void;
17
+ hasTemplateEngine(format: TemplateEngineEnum): boolean;
18
+ hasLanguageEngine(format: TemplateLanguageEnum): boolean;
19
+ getSupportedTemplateFormats(): TemplateEngineEnum[];
20
+ getSupportedLanguageFormats(): TemplateLanguageEnum[];
21
+ }
22
+ export {};
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplateEngineRegistryService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const nunjucks_engine_1 = require("../engines/template/nunjucks.engine");
7
+ const mjml_engine_1 = require("../engines/language/mjml.engine");
8
+ const html_engine_1 = require("../engines/language/html.engine");
9
+ const language_1 = require("../engines/language");
10
+ const ejs_engine_1 = require("../engines/template/ejs.engine");
11
+ const handlebars_engine_1 = require("../engines/template/handlebars.engine");
12
+ const pug_engine_1 = require("../engines/template/pug.engine");
13
+ const constant_1 = require("../constant");
14
+ let TemplateEngineRegistryService = class TemplateEngineRegistryService {
15
+ constructor(config) {
16
+ this.config = config;
17
+ this.templateEngines = new Map();
18
+ this.languageEngines = new Map();
19
+ this.registerTemplateEngines([
20
+ nunjucks_engine_1.NunjucksEngine,
21
+ handlebars_engine_1.HandlebarsEngine,
22
+ ejs_engine_1.EjsEngine,
23
+ pug_engine_1.PugEngine
24
+ ]);
25
+ this.registerLanguageEngines([
26
+ mjml_engine_1.MjmlEngine,
27
+ html_engine_1.HtmlEngine,
28
+ language_1.TextEngine,
29
+ language_1.MarkdownEngine
30
+ ]);
31
+ }
32
+ registerTemplateEngines(engineClasses) {
33
+ engineClasses.forEach(EngineClass => {
34
+ const engineName = EngineClass.engineName;
35
+ if (!engineName) {
36
+ throw new Error(`Engine class ${EngineClass.name} must define static engineName property`);
37
+ }
38
+ const options = this.config.enginesOptions?.template?.[engineName];
39
+ this.registerTemplateEngine(engineName, new EngineClass(options));
40
+ });
41
+ }
42
+ registerTemplateEngine(format, engine) {
43
+ this.templateEngines.set(format, engine);
44
+ }
45
+ registerLanguageEngine(format, engine) {
46
+ this.languageEngines.set(format, engine);
47
+ }
48
+ getTemplateEngine(format) {
49
+ const engine = this.templateEngines.get(format);
50
+ if (!engine) {
51
+ throw new Error(`Template engine not found for format: ${format}`);
52
+ }
53
+ return engine;
54
+ }
55
+ getLanguageEngine(format) {
56
+ const engine = this.languageEngines.get(format);
57
+ if (!engine) {
58
+ throw new Error(`Language engine not found for format: ${format}`);
59
+ }
60
+ return engine;
61
+ }
62
+ registerLanguageEngines(engineClasses) {
63
+ engineClasses.forEach(EngineClass => {
64
+ const engineName = EngineClass.engineName;
65
+ if (!engineName) {
66
+ throw new Error(`Engine class ${EngineClass.name} must define static engineName property`);
67
+ }
68
+ const options = this.config.enginesOptions?.language?.[engineName];
69
+ this.registerLanguageEngine(engineName, new EngineClass(options));
70
+ });
71
+ }
72
+ hasTemplateEngine(format) {
73
+ return this.templateEngines.has(format);
74
+ }
75
+ hasLanguageEngine(format) {
76
+ return this.languageEngines.has(format);
77
+ }
78
+ getSupportedTemplateFormats() {
79
+ return Array.from(this.templateEngines.keys());
80
+ }
81
+ getSupportedLanguageFormats() {
82
+ return Array.from(this.languageEngines.keys());
83
+ }
84
+ };
85
+ exports.TemplateEngineRegistryService = TemplateEngineRegistryService;
86
+ exports.TemplateEngineRegistryService = TemplateEngineRegistryService = tslib_1.__decorate([
87
+ (0, common_1.Injectable)(),
88
+ tslib_1.__param(0, (0, common_1.Inject)(constant_1.NEST_DYNAMIC_TEMPLATES_MODULE_CONFIG)),
89
+ tslib_1.__metadata("design:paramtypes", [Object])
90
+ ], TemplateEngineRegistryService);
91
+ //# sourceMappingURL=template-engine.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-engine.registry.js","sourceRoot":"","sources":["../../../../../../packages/nest-dynamic-templates/src/lib/services/template-engine.registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Repository } from 'typeorm';
2
+ import { NestDynamicTemplateLayout } from '../entities/template-layout.entity';
3
+ import { TemplateTypeEnum } from '../interfaces/template.types';
4
+ import { TemplateLayoutFilterDto } from '../dto/template-layout-filter.dto';
5
+ import { TemplateEngineRegistryService } from './template-engine.registry';
6
+ import { RenderTemplateLayoutDto, RenderTemplateLayoutOutput } from '../dto/render-template-layout.dto';
7
+ import { CreateTemplateLayoutDto } from '../dto/create-template-layout.dto';
8
+ export declare class TemplateLayoutService {
9
+ private readonly layoutRepository;
10
+ private readonly engineRegistry;
11
+ constructor(layoutRepository: Repository<NestDynamicTemplateLayout>, engineRegistry: TemplateEngineRegistryService);
12
+ render(renderDto: RenderTemplateLayoutDto): Promise<RenderTemplateLayoutOutput>;
13
+ getTemplateLayouts(filter?: TemplateLayoutFilterDto): Promise<NestDynamicTemplateLayout[]>;
14
+ findTemplateLayout(name: string, type: TemplateTypeEnum, scope?: string, scopeId?: string, locale?: string): Promise<NestDynamicTemplateLayout>;
15
+ createSystemTemplateLayout(data: CreateTemplateLayoutDto): Promise<NestDynamicTemplateLayout>;
16
+ updateSystemTemplateLayout(id: string, updates: Partial<CreateTemplateLayoutDto>, canUpdateSystemTemplate?: boolean): Promise<NestDynamicTemplateLayout>;
17
+ deleteTemplateLayout(id: string, canDeleteSystemTemplate?: boolean): Promise<void>;
18
+ deleteSystemTemplateLayout(id: string, canDeleteSystemTemplate?: boolean): Promise<void>;
19
+ }