@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.
- package/README.md +173 -0
- package/package.json +62 -0
- package/src/index.d.ts +5 -0
- package/src/index.js +9 -0
- package/src/index.js.map +1 -0
- package/src/lib/constant.d.ts +1 -0
- package/src/lib/constant.js +5 -0
- package/src/lib/constant.js.map +1 -0
- package/src/lib/controllers/template-layout.controller.d.ts +18 -0
- package/src/lib/controllers/template-layout.controller.js +96 -0
- package/src/lib/controllers/template-layout.controller.js.map +1 -0
- package/src/lib/controllers/template.controller.d.ts +17 -0
- package/src/lib/controllers/template.controller.js +100 -0
- package/src/lib/controllers/template.controller.js.map +1 -0
- package/src/lib/dto/create-template-layout.dto.d.ts +15 -0
- package/src/lib/dto/create-template-layout.dto.js +86 -0
- package/src/lib/dto/create-template-layout.dto.js.map +1 -0
- package/src/lib/dto/create-template.dto.d.ts +16 -0
- package/src/lib/dto/create-template.dto.js +91 -0
- package/src/lib/dto/create-template.dto.js.map +1 -0
- package/src/lib/dto/render-template-layout.dto.d.ts +12 -0
- package/src/lib/dto/render-template-layout.dto.js +69 -0
- package/src/lib/dto/render-template-layout.dto.js.map +1 -0
- package/src/lib/dto/render-template.dto.d.ts +13 -0
- package/src/lib/dto/render-template.dto.js +82 -0
- package/src/lib/dto/render-template.dto.js.map +1 -0
- package/src/lib/dto/template-filter.dto.d.ts +8 -0
- package/src/lib/dto/template-filter.dto.js +62 -0
- package/src/lib/dto/template-filter.dto.js.map +1 -0
- package/src/lib/dto/template-layout-filter.dto.d.ts +8 -0
- package/src/lib/dto/template-layout-filter.dto.js +62 -0
- package/src/lib/dto/template-layout-filter.dto.js.map +1 -0
- package/src/lib/engines/language/html.engine.d.ts +9 -0
- package/src/lib/engines/language/html.engine.js +79 -0
- package/src/lib/engines/language/html.engine.js.map +1 -0
- package/src/lib/engines/language/index.d.ts +4 -0
- package/src/lib/engines/language/index.js +12 -0
- package/src/lib/engines/language/index.js.map +1 -0
- package/src/lib/engines/language/markdown.engine.d.ts +9 -0
- package/src/lib/engines/language/markdown.engine.js +39 -0
- package/src/lib/engines/language/markdown.engine.js.map +1 -0
- package/src/lib/engines/language/mjml.engine.d.ts +9 -0
- package/src/lib/engines/language/mjml.engine.js +77 -0
- package/src/lib/engines/language/mjml.engine.js.map +1 -0
- package/src/lib/engines/language/text.engine.d.ts +7 -0
- package/src/lib/engines/language/text.engine.js +16 -0
- package/src/lib/engines/language/text.engine.js.map +1 -0
- package/src/lib/engines/language-engine.d.ts +5 -0
- package/src/lib/engines/language-engine.js +7 -0
- package/src/lib/engines/language-engine.js.map +1 -0
- package/src/lib/engines/template/ejs.engine.d.ts +9 -0
- package/src/lib/engines/template/ejs.engine.js +66 -0
- package/src/lib/engines/template/ejs.engine.js.map +1 -0
- package/src/lib/engines/template/handlebars.engine.d.ts +9 -0
- package/src/lib/engines/template/handlebars.engine.js +67 -0
- package/src/lib/engines/template/handlebars.engine.js.map +1 -0
- package/src/lib/engines/template/index.d.ts +4 -0
- package/src/lib/engines/template/index.js +12 -0
- package/src/lib/engines/template/index.js.map +1 -0
- package/src/lib/engines/template/nunjucks.engine.d.ts +12 -0
- package/src/lib/engines/template/nunjucks.engine.js +82 -0
- package/src/lib/engines/template/nunjucks.engine.js.map +1 -0
- package/src/lib/engines/template/pug.engine.d.ts +10 -0
- package/src/lib/engines/template/pug.engine.js +67 -0
- package/src/lib/engines/template/pug.engine.js.map +1 -0
- package/src/lib/engines/template-engine.d.ts +5 -0
- package/src/lib/engines/template-engine.js +7 -0
- package/src/lib/engines/template-engine.js.map +1 -0
- package/src/lib/entities/template-layout.entity.d.ts +18 -0
- package/src/lib/entities/template-layout.entity.js +117 -0
- package/src/lib/entities/template-layout.entity.js.map +1 -0
- package/src/lib/entities/template.entity.d.ts +20 -0
- package/src/lib/entities/template.entity.js +127 -0
- package/src/lib/entities/template.entity.js.map +1 -0
- package/src/lib/interfaces/module-config.interface.d.ts +15 -0
- package/src/lib/interfaces/module-config.interface.js +3 -0
- package/src/lib/interfaces/module-config.interface.js.map +1 -0
- package/src/lib/interfaces/template.types.d.ts +22 -0
- package/src/lib/interfaces/template.types.js +25 -0
- package/src/lib/interfaces/template.types.js.map +1 -0
- package/src/lib/services/template-engine.registry.d.ts +22 -0
- package/src/lib/services/template-engine.registry.js +91 -0
- package/src/lib/services/template-engine.registry.js.map +1 -0
- package/src/lib/services/template-layout.service.d.ts +19 -0
- package/src/lib/services/template-layout.service.js +182 -0
- package/src/lib/services/template-layout.service.js.map +1 -0
- package/src/lib/services/template.service.d.ts +21 -0
- package/src/lib/services/template.service.js +231 -0
- package/src/lib/services/template.service.js.map +1 -0
- package/src/lib/templates.module.d.ts +5 -0
- package/src/lib/templates.module.js +50 -0
- package/src/lib/templates.module.js.map +1 -0
- package/src/test/test-database.config.d.ts +4 -0
- package/src/test/test-database.config.js +24 -0
- package/src/test/test-database.config.js.map +1 -0
- package/src/test/test.setup.d.ts +3 -0
- package/src/test/test.setup.js +29 -0
- package/src/test/test.setup.js.map +1 -0
- 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 @@
|
|
|
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
|
+
}
|