@tstdl/base 0.78.0-beta37 → 0.78.0-beta38
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/examples/mail/basic.js +12 -7
- package/examples/mail/basic.js.map +1 -1
- package/examples/mail/templates/hello-name.d.ts +2 -0
- package/examples/mail/templates/hello-name.js +11 -0
- package/examples/mail/templates/hello-name.js.map +1 -0
- package/examples/pdf/basic.js +6 -3
- package/examples/pdf/basic.js.map +1 -1
- package/examples/pdf/templates/hello-name.d.ts +1 -1
- package/examples/pdf/templates/hello-name.js +12 -4
- package/examples/pdf/templates/hello-name.js.map +1 -1
- package/mail/index.d.ts +0 -3
- package/mail/index.js +0 -3
- package/mail/index.js.map +1 -1
- package/mail/mail.service.d.ts +3 -5
- package/mail/mail.service.js +8 -14
- package/mail/mail.service.js.map +1 -1
- package/mail/models/mail-template.model.d.ts +11 -10
- package/mail/models/mail-template.model.js +7 -0
- package/mail/models/mail-template.model.js.map +1 -1
- package/mail/module.d.ts +1 -5
- package/mail/module.js +2 -11
- package/mail/module.js.map +1 -1
- package/mail/tokens.d.ts +0 -3
- package/mail/tokens.js +1 -2
- package/mail/tokens.js.map +1 -1
- package/openid-connect/oidc.service.js.map +1 -1
- package/package.json +2 -2
- package/pdf/pdf.service.d.ts +48 -10
- package/pdf/pdf.service.js +114 -4
- package/pdf/pdf.service.js.map +1 -1
- package/schema/decorators/optional.d.ts +3 -1
- package/schema/decorators/optional.js +2 -2
- package/schema/decorators/optional.js.map +1 -1
- package/schema/decorators/types.d.ts +3 -3
- package/schema/types.d.ts +4 -3
- package/schema/types.js.map +1 -1
- package/schema/utils/schema.js +2 -2
- package/schema/utils/schema.js.map +1 -1
- package/schema/utils/value-type.d.ts +2 -2
- package/schema/utils/value-type.js +10 -0
- package/schema/utils/value-type.js.map +1 -1
- package/templates/index.d.ts +2 -0
- package/templates/index.js +2 -0
- package/templates/index.js.map +1 -1
- package/templates/module.d.ts +3 -1
- package/templates/module.js +31 -8
- package/templates/module.js.map +1 -1
- package/templates/providers/file.provider-template.d.ts +16 -0
- package/templates/providers/{file-template.provider.js → file.provider-template.js} +22 -15
- package/templates/providers/file.provider-template.js.map +1 -0
- package/templates/providers/memory.template-provider.d.ts +8 -0
- package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js} +8 -6
- package/templates/providers/memory.template-provider.js.map +1 -0
- package/templates/renderers/handlebars.template-renderer.d.ts +13 -9
- package/templates/renderers/handlebars.template-renderer.js +35 -32
- package/templates/renderers/handlebars.template-renderer.js.map +1 -1
- package/templates/renderers/mjml.template-renderer.d.ts +6 -6
- package/templates/renderers/mjml.template-renderer.js +8 -9
- package/templates/renderers/mjml.template-renderer.js.map +1 -1
- package/templates/renderers/string.template-renderer.d.ts +8 -0
- package/{mail/template-providers/memory-mail-template.provider.js → templates/renderers/string.template-renderer.js} +13 -7
- package/templates/renderers/string.template-renderer.js.map +1 -0
- package/templates/resolvers/file.template-resolver.d.ts +23 -0
- package/templates/resolvers/file.template-resolver.js +63 -0
- package/templates/resolvers/file.template-resolver.js.map +1 -0
- package/templates/resolvers/string.template-resolver.d.ts +13 -0
- package/templates/resolvers/string.template-resolver.js +44 -0
- package/templates/resolvers/string.template-resolver.js.map +1 -0
- package/templates/template-renderer.provider.js +7 -19
- package/templates/template-renderer.provider.js.map +1 -1
- package/templates/template-resolver.provider.d.ts +8 -0
- package/templates/template-resolver.provider.js +48 -0
- package/templates/template-resolver.provider.js.map +1 -0
- package/templates/template.model.d.ts +14 -5
- package/templates/template.model.js +41 -4
- package/templates/template.model.js.map +1 -1
- package/templates/template.renderer.d.ts +14 -3
- package/templates/template.renderer.js +3 -0
- package/templates/template.renderer.js.map +1 -1
- package/templates/template.resolver.d.ts +5 -0
- package/templates/template.resolver.js +7 -0
- package/templates/template.resolver.js.map +1 -0
- package/templates/template.service.d.ts +10 -4
- package/templates/template.service.js +17 -4
- package/templates/template.service.js.map +1 -1
- package/templates/tokens.d.ts +3 -2
- package/templates/tokens.js +2 -1
- package/templates/tokens.js.map +1 -1
- package/utils/function/memoize.d.ts +1 -0
- package/utils/function/memoize.js +5 -2
- package/utils/function/memoize.js.map +1 -1
- package/mail/mail-template-renderer.provider.d.ts +0 -8
- package/mail/mail-template-renderer.provider.js +0 -60
- package/mail/mail-template-renderer.provider.js.map +0 -1
- package/mail/mail-template.provider.d.ts +0 -4
- package/mail/mail-template.provider.js +0 -7
- package/mail/mail-template.provider.js.map +0 -1
- package/mail/mail-template.renderer.d.ts +0 -10
- package/mail/mail-template.renderer.js +0 -7
- package/mail/mail-template.renderer.js.map +0 -1
- package/mail/template-providers/file-mail-template.provider.d.ts +0 -24
- package/mail/template-providers/file-mail-template.provider.js +0 -51
- package/mail/template-providers/file-mail-template.provider.js.map +0 -1
- package/mail/template-providers/memory-mail-template.provider.d.ts +0 -6
- package/mail/template-providers/memory-mail-template.provider.js.map +0 -1
- package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +0 -13
- package/mail/template-renderers/handlebars.mail-template-renderer.js +0 -49
- package/mail/template-renderers/handlebars.mail-template-renderer.js.map +0 -1
- package/mail/template-renderers/mjml.mail-template-renderer.d.ts +0 -14
- package/mail/template-renderers/mjml.mail-template-renderer.js +0 -63
- package/mail/template-renderers/mjml.mail-template-renderer.js.map +0 -1
- package/templates/providers/file-template.provider.base.d.ts +0 -12
- package/templates/providers/file-template.provider.base.js +0 -50
- package/templates/providers/file-template.provider.base.js.map +0 -1
- package/templates/providers/file-template.provider.d.ts +0 -22
- package/templates/providers/file-template.provider.js.map +0 -1
- package/templates/providers/memory-template.provider.base.d.ts +0 -9
- package/templates/providers/memory-template.provider.base.js.map +0 -1
- package/templates/providers/memory-template.provider.d.ts +0 -4
- package/templates/providers/memory-template.provider.js +0 -18
- package/templates/providers/memory-template.provider.js.map +0 -1
package/pdf/pdf.service.js
CHANGED
|
@@ -9,14 +9,107 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PdfService = void 0;
|
|
12
|
+
exports.pdfTemplate = exports.PdfService = exports.PdfTemplate = exports.PdfRenderOptions = exports.PdfMarginObject = exports.PdfFormat = void 0;
|
|
13
13
|
const container_1 = require("../container");
|
|
14
14
|
const core_1 = require("../core");
|
|
15
15
|
const disposable_1 = require("../disposable/disposable");
|
|
16
16
|
const pool_1 = require("../pool");
|
|
17
|
+
const schema_1 = require("../schema");
|
|
17
18
|
const templates_1 = require("../templates");
|
|
18
19
|
const type_guards_1 = require("../utils/type-guards");
|
|
19
20
|
const puppeteer = require("puppeteer");
|
|
21
|
+
var PdfFormat;
|
|
22
|
+
(function (PdfFormat) {
|
|
23
|
+
PdfFormat["Letter"] = "letter";
|
|
24
|
+
PdfFormat["Legal"] = "legal";
|
|
25
|
+
PdfFormat["Tabloid"] = "tabloid";
|
|
26
|
+
PdfFormat["Ledger"] = "ledger";
|
|
27
|
+
PdfFormat["A0"] = "a0";
|
|
28
|
+
PdfFormat["A1"] = "a1";
|
|
29
|
+
PdfFormat["A2"] = "a2";
|
|
30
|
+
PdfFormat["A3"] = "a3";
|
|
31
|
+
PdfFormat["A4"] = "a4";
|
|
32
|
+
PdfFormat["A5"] = "a5";
|
|
33
|
+
PdfFormat["A6"] = "a6";
|
|
34
|
+
})(PdfFormat = exports.PdfFormat || (exports.PdfFormat = {}));
|
|
35
|
+
class PdfMarginObject {
|
|
36
|
+
}
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, schema_1.Optional)([Number, String]),
|
|
39
|
+
__metadata("design:type", Object)
|
|
40
|
+
], PdfMarginObject.prototype, "top", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, schema_1.Optional)([Number, String]),
|
|
43
|
+
__metadata("design:type", Object)
|
|
44
|
+
], PdfMarginObject.prototype, "bottom", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, schema_1.Optional)([Number, String]),
|
|
47
|
+
__metadata("design:type", Object)
|
|
48
|
+
], PdfMarginObject.prototype, "right", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, schema_1.Optional)([Number, String]),
|
|
51
|
+
__metadata("design:type", Object)
|
|
52
|
+
], PdfMarginObject.prototype, "left", void 0);
|
|
53
|
+
exports.PdfMarginObject = PdfMarginObject;
|
|
54
|
+
class PdfRenderOptions {
|
|
55
|
+
}
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, schema_1.Optional)(),
|
|
58
|
+
__metadata("design:type", Boolean)
|
|
59
|
+
], PdfRenderOptions.prototype, "omitDefaultBackground", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, schema_1.Optional)(),
|
|
62
|
+
__metadata("design:type", Boolean)
|
|
63
|
+
], PdfRenderOptions.prototype, "renderBackground", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, schema_1.Optional)(),
|
|
66
|
+
__metadata("design:type", Boolean)
|
|
67
|
+
], PdfRenderOptions.prototype, "landscape", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, schema_1.Optional)(),
|
|
70
|
+
(0, schema_1.Enumeration)(PdfFormat),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], PdfRenderOptions.prototype, "format", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, schema_1.Optional)([String, Number]),
|
|
75
|
+
__metadata("design:type", Object)
|
|
76
|
+
], PdfRenderOptions.prototype, "width", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, schema_1.Optional)([String, Number]),
|
|
79
|
+
__metadata("design:type", Object)
|
|
80
|
+
], PdfRenderOptions.prototype, "height", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
(0, schema_1.Optional)(),
|
|
83
|
+
__metadata("design:type", Number)
|
|
84
|
+
], PdfRenderOptions.prototype, "scale", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
(0, schema_1.Optional)([String, Number, PdfMarginObject]),
|
|
87
|
+
__metadata("design:type", Object)
|
|
88
|
+
], PdfRenderOptions.prototype, "margin", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
(0, schema_1.Optional)(),
|
|
91
|
+
__metadata("design:type", Boolean)
|
|
92
|
+
], PdfRenderOptions.prototype, "displayHeaderFooter", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
(0, schema_1.Optional)(),
|
|
95
|
+
__metadata("design:type", Boolean)
|
|
96
|
+
], PdfRenderOptions.prototype, "waitForNetworkIdle", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
(0, schema_1.Optional)(),
|
|
99
|
+
__metadata("design:type", String)
|
|
100
|
+
], PdfRenderOptions.prototype, "headerTemplate", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
(0, schema_1.Optional)(),
|
|
103
|
+
__metadata("design:type", String)
|
|
104
|
+
], PdfRenderOptions.prototype, "footerTemplate", void 0);
|
|
105
|
+
exports.PdfRenderOptions = PdfRenderOptions;
|
|
106
|
+
class PdfTemplate extends templates_1.Template {
|
|
107
|
+
}
|
|
108
|
+
__decorate([
|
|
109
|
+
(0, schema_1.Optional)(),
|
|
110
|
+
__metadata("design:type", Object)
|
|
111
|
+
], PdfTemplate.prototype, "options", void 0);
|
|
112
|
+
exports.PdfTemplate = PdfTemplate;
|
|
20
113
|
let PdfService = class PdfService {
|
|
21
114
|
constructor(templateService) {
|
|
22
115
|
this.templateService = templateService;
|
|
@@ -37,9 +130,16 @@ let PdfService = class PdfService {
|
|
|
37
130
|
async renderUrl(url, options) {
|
|
38
131
|
return this.render(async (page) => page.goto(url, { waitUntil: (options?.waitForNetworkIdle == true) ? 'networkidle2' : 'load' }), options);
|
|
39
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* renders a pdf template
|
|
135
|
+
* @param key template key
|
|
136
|
+
* @param templateContext context for template rendering
|
|
137
|
+
* @param options additional options, overwrites options specified in template
|
|
138
|
+
* @returns PDF bytes
|
|
139
|
+
*/
|
|
40
140
|
async renderTemplate(key, templateContext, options) {
|
|
41
|
-
const
|
|
42
|
-
return this.renderHtml(
|
|
141
|
+
const { fields: { header, body, footer }, options: optionsFromTemplate } = await this.templateService.render(key, templateContext);
|
|
142
|
+
return this.renderHtml(body, { ...optionsFromTemplate, headerTemplate: header, footerTemplate: footer, ...options });
|
|
43
143
|
}
|
|
44
144
|
async render(handler, options) {
|
|
45
145
|
return this.pool.use(async (browser) => {
|
|
@@ -64,7 +164,10 @@ let PdfService = class PdfService {
|
|
|
64
164
|
height: options?.height,
|
|
65
165
|
omitBackground: options?.omitDefaultBackground,
|
|
66
166
|
printBackground: options?.renderBackground,
|
|
67
|
-
margin
|
|
167
|
+
margin,
|
|
168
|
+
displayHeaderFooter: options?.displayHeaderFooter,
|
|
169
|
+
headerTemplate: '',
|
|
170
|
+
footerTemplate: ''
|
|
68
171
|
});
|
|
69
172
|
return result;
|
|
70
173
|
}
|
|
@@ -79,4 +182,11 @@ PdfService = __decorate([
|
|
|
79
182
|
__metadata("design:paramtypes", [templates_1.TemplateService])
|
|
80
183
|
], PdfService);
|
|
81
184
|
exports.PdfService = PdfService;
|
|
185
|
+
function pdfTemplate(fields, options) {
|
|
186
|
+
return {
|
|
187
|
+
fields,
|
|
188
|
+
options
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
exports.pdfTemplate = pdfTemplate;
|
|
82
192
|
//# sourceMappingURL=pdf.service.js.map
|
package/pdf/pdf.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../source/pdf/pdf.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,4CAAsD;AACtD,kCAAkC;AAElC,yDAAuD;AACvD,kCAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../source/pdf/pdf.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import type { Decorator } from "../../reflection";
|
|
2
|
-
|
|
2
|
+
import type { OneOrMany } from "../../types";
|
|
3
|
+
import type { SchemaTestable } from '../schema';
|
|
4
|
+
export declare function Optional(schema?: OneOrMany<SchemaTestable>): Decorator<'property' | 'accessor'>;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.Optional = void 0;
|
|
5
5
|
const utils_1 = require("./utils");
|
|
6
|
-
function Optional() {
|
|
7
|
-
return (0, utils_1.createSchemaPropertyDecorator)({ optional: true });
|
|
6
|
+
function Optional(schema) {
|
|
7
|
+
return (0, utils_1.createSchemaPropertyDecorator)({ schema, optional: true });
|
|
8
8
|
}
|
|
9
9
|
exports.Optional = Optional;
|
|
10
10
|
//# sourceMappingURL=optional.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../source/schema/decorators/optional.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../source/schema/decorators/optional.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAKzD,mCAAwD;AAExD,SAAgB,QAAQ,CAAC,MAAkC;IACzD,OAAO,IAAA,qCAA6B,EAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AAFD,4BAEC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { OneOrMany } from "../../types";
|
|
2
|
-
import type {
|
|
2
|
+
import type { SchemaTestable } from '../schema';
|
|
3
3
|
import type { ObjectSchema, SchemaArrayConstraint, SchemaFactoryFunction, SchemaValueCoercer, SchemaValueConstraint, SchemaValueTransformer, ValueSchema } from '../types';
|
|
4
4
|
export declare type SchemaTypeReflectionData = Partial<Pick<ObjectSchema, 'mask' | 'allowUnknownProperties'>> & {
|
|
5
5
|
factory?: SchemaFactoryFunction<any>;
|
|
6
6
|
};
|
|
7
7
|
export declare type SchemaPropertyReflectionData = {
|
|
8
|
-
|
|
8
|
+
schema?: OneOrMany<SchemaTestable>;
|
|
9
9
|
array?: boolean;
|
|
10
10
|
optional?: boolean;
|
|
11
11
|
nullable?: boolean;
|
|
@@ -15,4 +15,4 @@ export declare type SchemaPropertyReflectionData = {
|
|
|
15
15
|
arrayConstraints?: readonly SchemaArrayConstraint[];
|
|
16
16
|
valueConstraints?: readonly SchemaValueConstraint[];
|
|
17
17
|
};
|
|
18
|
-
export declare type PropertyOptions = Partial<ValueSchema
|
|
18
|
+
export declare type PropertyOptions = Partial<ValueSchema<any>>;
|
package/schema/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { JsonPath } from "../json-path/json-path";
|
|
2
2
|
import type { AbstractConstructor, OneOrMany, Record, Type, TypedOmit } from "../types";
|
|
3
|
-
import type { NormalizedSchema, Schema } from './schema';
|
|
3
|
+
import type { NormalizedSchema, Schema, SchemaTestable } from './schema';
|
|
4
4
|
import type { SchemaError } from './schema.error';
|
|
5
5
|
declare const schemaOutputTypeSymbol: unique symbol;
|
|
6
6
|
export declare type SchemaFactoryFunction<T, O = T> = (data: T) => NormalizeValueType<O>;
|
|
@@ -24,7 +24,7 @@ export declare type ObjectSchema<T = any, O = T> = {
|
|
|
24
24
|
factory?: SchemaFactory<T, O>;
|
|
25
25
|
properties: ObjectSchemaProperties<T>;
|
|
26
26
|
mask?: boolean;
|
|
27
|
-
allowUnknownProperties?: OneOrMany<
|
|
27
|
+
allowUnknownProperties?: OneOrMany<SchemaTestable>;
|
|
28
28
|
};
|
|
29
29
|
export declare type TypeSchema<T = any> = {
|
|
30
30
|
type: ValueType<T>;
|
|
@@ -34,7 +34,7 @@ export declare type NormalizedTypeSchema<T = any> = {
|
|
|
34
34
|
};
|
|
35
35
|
export declare type ValueSchema<T = unknown, O = T> = {
|
|
36
36
|
[schemaOutputTypeSymbol]?: O;
|
|
37
|
-
schema: OneOrMany<
|
|
37
|
+
schema: OneOrMany<SchemaTestable<T, O>>;
|
|
38
38
|
array?: boolean;
|
|
39
39
|
optional?: boolean;
|
|
40
40
|
nullable?: boolean;
|
|
@@ -162,6 +162,7 @@ export declare function isValueSchema<T, O>(schema: any): schema is ValueSchema<
|
|
|
162
162
|
export declare function isTypeSchema<T, O>(schema: Schema<T, O>): schema is TypeSchema<O>;
|
|
163
163
|
export declare function isTypeSchema<T, O>(schema: any): schema is TypeSchema<O>;
|
|
164
164
|
export declare function isDeferredValueType<T>(value: ValueType<T>): value is DeferredValueType<T>;
|
|
165
|
+
export declare function isDeferredValueType(value: any): value is DeferredValueType;
|
|
165
166
|
export declare function resolveValueTypes<T>(valueTypes: OneOrMany<ValueType<T>>): OneOrMany<ResolvedValueType<T>>;
|
|
166
167
|
export declare function resolveValueType<T>(valueType: ValueType<T>): ResolvedValueType<T>;
|
|
167
168
|
export declare function valueTypesOrSchemasToSchemas<T, O>(valueTypesOrSchemas: OneOrMany<ValueType<O> | Schema<T, O>>): OneOrMany<Schema<T, O>>;
|
package/schema/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/schema/types.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;AAIjD,mDAAqD;AACrD,sDAA+E;AAgHlE,QAAA,qBAAqB,GAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAwC,EAAE,MAAwC,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAClL,QAAA,uBAAuB,GAAG,IAAI,GAAG,CAAC,6BAAqB,CAAC,CAAC;AAEtE,MAAsB,qBAAqB;CAE1C;AAFD,sDAEC;AAID,MAAsB,qBAAqB;CAK1C;AALD,sDAKC;AAED,MAAsB,sBAAsB;CAK3C;AALD,wDAKC;AAED,MAAsB,kBAAkB;CAKvC;AALD,gDAKC;AAgCD,SAAgB,sBAAsB,CAAmB,UAAqC;IAC5F,OAAO,IAAA,qBAAY,EAAC,UAAU,EAAE,uBAAS,CAA8B,CAAC;AAC1E,CAAC;AAFD,wDAEC;AAED,SAAgB,YAAY,CAAyC,MAA0B;IAC7F,OAAO,IAAA,qBAAY,EAAC,MAAM,EAAE,uBAAS,CAAuB,CAAC;AAC/D,CAAC;AAFD,oCAEC;AAED,SAAgB,WAAW,CAAW,MAA+B,EAAE,OAAgD;IACrH,OAAO,IAAA,qBAAY,EAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,uBAAS,CAAC,CAAC;AACzD,CAAC;AAFD,kCAEC;AAED,SAAgB,UAAU,CAAI,IAAkB;IAC9C,OAAO,EAAE,IAAI,EAAuC,CAAC;AACvD,CAAC;AAFD,gCAEC;AAED,SAAgB,QAAQ,CAAO,KAAU;IACvC,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAFD,4BAEC;AAID,SAAgB,cAAc,CAAC,MAAW;IACxC,OAAO,IAAA,sBAAQ,EAAE,MAA4C,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC;AAFD,wCAEC;AAID,SAAgB,aAAa,CAAC,MAAW;IACvC,OAAO,IAAA,sBAAQ,EAAC,MAAM,CAAC,IAAI,IAAA,uBAAS,EAAE,MAAkC,EAAE,MAAM,CAAC,CAAC;AACpF,CAAC;AAFD,sCAEC;AAID,SAAgB,YAAY,CAAC,MAAW;IACtC,IAAI,CAAC,IAAA,sBAAQ,EAAC,MAAM,CAAC,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,IAAI,GAAI,MAAqB,CAAC,IAAI,CAAC;IAEzC,OAAO,IAAA,sBAAQ,EAAC,MAAM,CAAC;WAClB,CACD,IAAA,wBAAU,EAAC,IAAI,CAAC;eACb,CAAC,IAAI,IAAI,WAAW,CAAC;eACrB,CAAC,IAAI,IAAI,MAAM,CAAC;eAChB,CAAC,IAAI,IAAI,KAAK,CAAC,CACnB,CAAC;AACN,CAAC;AAdD,oCAcC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/schema/types.ts"],"names":[],"mappings":"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"}
|
package/schema/utils/schema.js
CHANGED
|
@@ -37,7 +37,7 @@ function _normalizeObjectSchema(schema) {
|
|
|
37
37
|
}
|
|
38
38
|
function _normalizeValueSchema(schema) {
|
|
39
39
|
const normalizedValueSchema = {
|
|
40
|
-
schema: new Set((0, array_1.toArray)(schema.schema)),
|
|
40
|
+
schema: new Set((0, array_1.toArray)(schema.schema).map(types_1.valueTypeOrSchemaToSchema)),
|
|
41
41
|
array: schema.array ?? false,
|
|
42
42
|
optional: schema.optional ?? false,
|
|
43
43
|
nullable: schema.nullable ?? false,
|
|
@@ -83,7 +83,7 @@ function _getObjectSchemaFromReflection(type) {
|
|
|
83
83
|
const properties = {};
|
|
84
84
|
for (const [key, propertyMetadata] of metadata.properties) {
|
|
85
85
|
const reflectionData = propertyMetadata.data.tryGet('schema');
|
|
86
|
-
const itemType =
|
|
86
|
+
const itemType = reflectionData?.schema;
|
|
87
87
|
const array = (reflectionData?.array == true) ? true : undefined;
|
|
88
88
|
if (array && ((0, type_guards_1.isUndefined)(itemType) || ((0, type_guards_1.isArray)(itemType) && (itemType.length == 0)))) {
|
|
89
89
|
throw new Error(`Item type missing on type ${type.name} at property "${String(key)}"`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../source/schema/utils/schema.ts"],"names":[],"mappings":";;;AAAA,wDAA2D;AAE3D,mDAA8C;AAC9C,0DAAyD;AACzD,sDAAwD;AACxD,yDAAiF;AAGjF,8CAA2C;AAE3C,oCAA6K;AAEhK,QAAA,eAAe,GAAG,IAAA,uBAAa,EAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,QAAA,qBAAqB,GAAG,IAAA,uBAAa,EAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,QAAA,oBAAoB,GAAG,IAAA,uBAAa,EAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,QAAA,mBAAmB,GAAG,IAAA,uBAAa,EAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1E,QAAA,kBAAkB,GAAG,IAAA,uBAAa,EAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACxE,QAAA,uBAAuB,GAAG,IAAA,uBAAa,EAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAErG,SAAS,gBAAgB,CAAO,MAAoB;IAClD,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,IAAA,6BAAqB,EAAC,MAAM,CAA2B,CAAC;KAChE;IAED,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;QACzB,OAAO,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC;KACrC;IAED,IAAI,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE;QACxB,OAAO,IAAA,2BAAmB,EAAC,MAAM,CAAC,CAAC;KACpC;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB,CAAO,MAA0B;IAC9D,MAAM,gBAAgB,GAAiC;QACrD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,IAAA,wBAAe,EAAC,MAAM,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAA,qBAAO,EAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAmD;QAC/M,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,sBAAsB,EAAE,IAAI,GAAG,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,iCAAyB,CAAC,CAAC;KAC7G,CAAC;IAEF,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,qBAAqB,CAAO,MAAyB;IAC5D,MAAM,qBAAqB,GAAgC;QACzD,MAAM,EAAE,IAAI,GAAG,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../source/schema/utils/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SchemaTestable } from '../schema';
|
|
2
2
|
import type { ResolvedValueType, ValueType } from '../types';
|
|
3
3
|
export declare function getValueType(value: unknown): ResolvedValueType<any>;
|
|
4
4
|
export declare function getValueTypeName(valueType: ValueType): string;
|
|
5
|
-
export declare function getSchemaTypeNames(schema:
|
|
5
|
+
export declare function getSchemaTypeNames(schema: SchemaTestable): string[];
|
|
@@ -26,6 +26,13 @@ function getSchemaTypeNames(schema) {
|
|
|
26
26
|
const name = getValueTypeName(schema.type);
|
|
27
27
|
return [name];
|
|
28
28
|
}
|
|
29
|
+
if ((0, type_guards_1.isFunction)(schema)) {
|
|
30
|
+
const name = getValueTypeName(schema);
|
|
31
|
+
return [name];
|
|
32
|
+
}
|
|
33
|
+
if ((0, type_guards_1.isString)(schema)) {
|
|
34
|
+
return [schema];
|
|
35
|
+
}
|
|
29
36
|
if ((0, types_1.isObjectSchema)(schema)) {
|
|
30
37
|
const name = getValueTypeName(schema.sourceType ?? Object);
|
|
31
38
|
return [name];
|
|
@@ -33,6 +40,9 @@ function getSchemaTypeNames(schema) {
|
|
|
33
40
|
if ((0, types_1.isValueSchema)(schema)) {
|
|
34
41
|
return [...new Set((0, array_1.toArray)(schema.schema).flatMap(getSchemaTypeNames))];
|
|
35
42
|
}
|
|
43
|
+
if ((0, types_1.isDeferredValueType)(schema)) {
|
|
44
|
+
return getSchemaTypeNames((0, types_1.resolveValueType)(schema));
|
|
45
|
+
}
|
|
36
46
|
throw new Error('Unsupported schema');
|
|
37
47
|
}
|
|
38
48
|
exports.getSchemaTypeNames = getSchemaTypeNames;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-type.js","sourceRoot":"","sources":["../../../source/schema/utils/value-type.ts"],"names":[],"mappings":";;;AACA,mDAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"value-type.js","sourceRoot":"","sources":["../../../source/schema/utils/value-type.ts"],"names":[],"mappings":";;;AACA,mDAA8C;AAC9C,yDAAgF;AAGhF,oCAA8G;AAE9G,SAAgB,YAAY,CAAC,KAAc;IACzC,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE;QACtB,OAAO,WAAW,CAAC;KACpB;IAED,IAAI,IAAA,oBAAM,EAAC,KAAK,CAAC,EAAE;QACjB,OAAO,MAAM,CAAC;KACf;IAED,OAAQ,KAAgB,CAAC,WAAkC,CAAC;AAC9D,CAAC;AAVD,oCAUC;AAED,SAAgB,gBAAgB,CAAC,SAAoB;IACnD,MAAM,iBAAiB,GAAG,IAAA,wBAAgB,EAAC,SAAS,CAAC,CAAC;IAEtD,OAAO,IAAA,sBAAQ,EAAC,iBAAiB,CAAC;QAChC,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC7B,CAAC;AAND,4CAMC;AAED,SAAgB,kBAAkB,CAAC,MAAsB;IACvD,IAAI,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE;QACxB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,IAAA,wBAAU,EAAC,MAAM,CAAC,EAAE;QACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,IAAA,sBAAQ,EAAC,MAAM,CAAC,EAAE;QACpB,OAAO,CAAC,MAAM,CAAC,CAAC;KACjB;IAED,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;QACzB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;KACzE;IAED,IAAI,IAAA,2BAAmB,EAAC,MAAM,CAAC,EAAE;QAC/B,OAAO,kBAAkB,CAAC,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAC,CAAC;KACrD;IAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC;AA7BD,gDA6BC"}
|
package/templates/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export * from './module';
|
|
2
2
|
export * from './template-renderer.provider';
|
|
3
|
+
export * from './template-resolver.provider';
|
|
3
4
|
export * from './template.model';
|
|
4
5
|
export * from './template.provider';
|
|
5
6
|
export * from './template.renderer';
|
|
7
|
+
export * from './template.resolver';
|
|
6
8
|
export * from './template.service';
|
|
7
9
|
export * from './tokens';
|
package/templates/index.js
CHANGED
|
@@ -16,9 +16,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./module"), exports);
|
|
18
18
|
__exportStar(require("./template-renderer.provider"), exports);
|
|
19
|
+
__exportStar(require("./template-resolver.provider"), exports);
|
|
19
20
|
__exportStar(require("./template.model"), exports);
|
|
20
21
|
__exportStar(require("./template.provider"), exports);
|
|
21
22
|
__exportStar(require("./template.renderer"), exports);
|
|
23
|
+
__exportStar(require("./template.resolver"), exports);
|
|
22
24
|
__exportStar(require("./template.service"), exports);
|
|
23
25
|
__exportStar(require("./tokens"), exports);
|
|
24
26
|
//# sourceMappingURL=index.js.map
|
package/templates/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/templates/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+DAA6C;AAC7C,mDAAiC;AACjC,sDAAoC;AACpC,sDAAoC;AACpC,qDAAmC;AACnC,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/templates/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+DAA6C;AAC7C,+DAA6C;AAC7C,mDAAiC;AACjC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,qDAAmC;AACnC,2CAAyB"}
|
package/templates/module.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { Type } from "../types";
|
|
2
2
|
import { TemplateProvider } from './template.provider';
|
|
3
3
|
import type { TemplateRenderer } from './template.renderer';
|
|
4
|
+
import type { TemplateResolver } from './template.resolver';
|
|
4
5
|
export declare type TemplateModuleConfig = {
|
|
5
6
|
templateProvider: Type<TemplateProvider>;
|
|
7
|
+
templateResolvers: Type<TemplateResolver>[];
|
|
6
8
|
templateRenderers: Type<TemplateRenderer>[];
|
|
7
9
|
};
|
|
8
10
|
export declare const templateModuleConfig: TemplateModuleConfig;
|
|
9
11
|
/**
|
|
10
12
|
* configure mail module
|
|
11
13
|
*/
|
|
12
|
-
export declare function configureTemplates({ templateProvider, templateRenderers }?: Partial<TemplateModuleConfig>): void;
|
|
14
|
+
export declare function configureTemplates({ templateProvider, templateResolvers, templateRenderers }?: Partial<TemplateModuleConfig>): void;
|
package/templates/module.js
CHANGED
|
@@ -2,24 +2,47 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.configureTemplates = exports.templateModuleConfig = void 0;
|
|
4
4
|
const container_1 = require("../container");
|
|
5
|
-
const
|
|
5
|
+
const string_template_renderer_1 = require("./renderers/string.template-renderer");
|
|
6
|
+
const string_template_resolver_1 = require("./resolvers/string.template-resolver");
|
|
6
7
|
const template_provider_1 = require("./template.provider");
|
|
7
8
|
const tokens_1 = require("./tokens");
|
|
8
9
|
exports.templateModuleConfig = {
|
|
9
10
|
templateProvider: (0, container_1.stubClass)(template_provider_1.TemplateProvider),
|
|
10
|
-
|
|
11
|
+
templateResolvers: [string_template_resolver_1.StringTemplateResolver],
|
|
12
|
+
templateRenderers: [string_template_renderer_1.StringTemplateRenderer]
|
|
11
13
|
};
|
|
12
|
-
container_1.container.registerSingleton(template_provider_1.TemplateProvider, {
|
|
14
|
+
container_1.container.registerSingleton(template_provider_1.TemplateProvider, { useTokenProvider: () => exports.templateModuleConfig.templateProvider });
|
|
15
|
+
container_1.container.registerSingleton(tokens_1.TEMPLATE_RESOLVERS, {
|
|
16
|
+
useFactory: (_, context) => {
|
|
17
|
+
if (context.isAsync) {
|
|
18
|
+
return (async () => {
|
|
19
|
+
const resolves = exports.templateModuleConfig.templateResolvers.map(async (type) => context.resolveAsync(type));
|
|
20
|
+
return Promise.all(resolves);
|
|
21
|
+
})();
|
|
22
|
+
}
|
|
23
|
+
const resolves = exports.templateModuleConfig.templateResolvers.map((type) => context.resolve(type));
|
|
24
|
+
return resolves.map((type) => context.resolve(type));
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
container_1.container.registerSingleton(tokens_1.TEMPLATE_RENDERERS, {
|
|
28
|
+
useFactory: (_, context) => {
|
|
29
|
+
if (context.isAsync) {
|
|
30
|
+
return (async () => {
|
|
31
|
+
const resolves = exports.templateModuleConfig.templateRenderers.map(async (type) => context.resolveAsync(type));
|
|
32
|
+
return Promise.all(resolves);
|
|
33
|
+
})();
|
|
34
|
+
}
|
|
35
|
+
const resolves = exports.templateModuleConfig.templateRenderers.map((type) => context.resolve(type));
|
|
36
|
+
return resolves.map((type) => context.resolve(type));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
13
39
|
/**
|
|
14
40
|
* configure mail module
|
|
15
41
|
*/
|
|
16
|
-
function configureTemplates({ templateProvider, templateRenderers } = {}) {
|
|
42
|
+
function configureTemplates({ templateProvider, templateResolvers, templateRenderers } = {}) {
|
|
17
43
|
exports.templateModuleConfig.templateProvider = templateProvider ?? exports.templateModuleConfig.templateProvider;
|
|
44
|
+
exports.templateModuleConfig.templateResolvers = [...new Set([...exports.templateModuleConfig.templateResolvers, ...(templateResolvers ?? [])])];
|
|
18
45
|
exports.templateModuleConfig.templateRenderers = [...new Set([...exports.templateModuleConfig.templateRenderers, ...(templateRenderers ?? [])])];
|
|
19
|
-
if ((0, type_guards_1.isDefined)(templateProvider)) {
|
|
20
|
-
container_1.container.registerSingleton(template_provider_1.TemplateProvider, { useToken: templateProvider });
|
|
21
|
-
}
|
|
22
|
-
container_1.container.registerSingleton(tokens_1.TEMPLATE_RENDERERS, { useValue: exports.templateModuleConfig.templateRenderers });
|
|
23
46
|
}
|
|
24
47
|
exports.configureTemplates = configureTemplates;
|
|
25
48
|
//# sourceMappingURL=module.js.map
|
package/templates/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../source/templates/module.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AAEnD,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../source/templates/module.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AAEnD,mFAA8E;AAC9E,mFAA8E;AAC9E,2DAAuD;AAGvD,qCAAkE;AAQrD,QAAA,oBAAoB,GAAyB;IACxD,gBAAgB,EAAE,IAAA,qBAAS,EAAC,oCAAgB,CAAC;IAC7C,iBAAiB,EAAE,CAAC,iDAAsB,CAAC;IAC3C,iBAAiB,EAAE,CAAC,iDAAsB,CAAC;CAC5C,CAAC;AAEF,qBAAS,CAAC,iBAAiB,CAAC,oCAAgB,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,4BAAoB,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAEjH,qBAAS,CAAC,iBAAiB,CAAC,2BAAkB,EAAE;IAC9C,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACzB,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,OAAO,CAAC,KAAK,IAAI,EAAE;gBACjB,MAAM,QAAQ,GAAG,4BAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxG,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC,EAAE,CAAC;SACN;QAED,MAAM,QAAQ,GAAG,4BAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACF,CAAC,CAAC;AAEH,qBAAS,CAAC,iBAAiB,CAAC,2BAAkB,EAAE;IAC9C,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACzB,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,OAAO,CAAC,KAAK,IAAI,EAAE;gBACjB,MAAM,QAAQ,GAAG,4BAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxG,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC,EAAE,CAAC;SACN;QAED,MAAM,QAAQ,GAAG,4BAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,SAAgB,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,KAAoC,EAAE;IAC/H,4BAAoB,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,4BAAoB,CAAC,gBAAgB,CAAC;IAClG,4BAAoB,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,4BAAoB,CAAC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjI,4BAAoB,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,4BAAoB,CAAC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACnI,CAAC;AAJD,gDAIC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Injectable } from "../../container";
|
|
2
|
+
import { resolveArgumentType } from "../../container";
|
|
3
|
+
import { Template } from '../template.model';
|
|
4
|
+
import { TemplateProvider } from '../template.provider';
|
|
5
|
+
export declare type FileTemplateProviderConfig = {
|
|
6
|
+
basePath?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare type FileTemplateProviderArgument = string;
|
|
9
|
+
export declare const fileTemplateProviderConfig: FileTemplateProviderConfig;
|
|
10
|
+
export declare class FileTemplateProvider extends TemplateProvider implements Injectable<FileTemplateProviderArgument> {
|
|
11
|
+
private readonly basePath;
|
|
12
|
+
readonly [resolveArgumentType]: FileTemplateProviderArgument;
|
|
13
|
+
constructor(basePath: string);
|
|
14
|
+
get(key: string): Promise<Template>;
|
|
15
|
+
}
|
|
16
|
+
export declare function configureFileTemplateProvider(config?: Partial<FileTemplateProviderConfig>): void;
|
|
@@ -12,20 +12,31 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.configureFileTemplateProvider = exports.FileTemplateProvider = exports.fileTemplateProviderConfig = void 0;
|
|
16
16
|
const container_1 = require("../../container");
|
|
17
|
+
const bad_request_error_1 = require("../../error/bad-request.error");
|
|
17
18
|
const schema_1 = require("../../schema");
|
|
18
|
-
const
|
|
19
|
+
const path = require("path");
|
|
20
|
+
const template_model_1 = require("../template.model");
|
|
21
|
+
const template_provider_1 = require("../template.provider");
|
|
19
22
|
exports.fileTemplateProviderConfig = {};
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
template: (0, schema_1.optional)((0, schema_1.string)()),
|
|
23
|
-
templateFile: (0, schema_1.optional)((0, schema_1.string)()),
|
|
24
|
-
options: (0, schema_1.optional)((0, schema_1.unknown)())
|
|
25
|
-
});
|
|
26
|
-
let FileTemplateProvider = class FileTemplateProvider extends file_template_provider_base_1.FileTemplateProviderBase {
|
|
23
|
+
const keyPattern = /^[\w\-/]+$/u;
|
|
24
|
+
let FileTemplateProvider = class FileTemplateProvider extends template_provider_1.TemplateProvider {
|
|
27
25
|
constructor(basePath) {
|
|
28
|
-
super(
|
|
26
|
+
super();
|
|
27
|
+
this.basePath = path.resolve(basePath);
|
|
28
|
+
}
|
|
29
|
+
async get(key) {
|
|
30
|
+
if (!keyPattern.test(key)) {
|
|
31
|
+
throw new bad_request_error_1.BadRequestError('Illegal template key. Only a-z, A-Z, 0-9, _ and - are allowed.');
|
|
32
|
+
}
|
|
33
|
+
const filePath = path.resolve(this.basePath, `${key}.js`);
|
|
34
|
+
if (!filePath.startsWith(this.basePath)) {
|
|
35
|
+
throw new bad_request_error_1.BadRequestError(`Illegal file path. Must be inside "${this.basePath}".`);
|
|
36
|
+
}
|
|
37
|
+
const templateModule = await Promise.resolve().then(() => require(filePath));
|
|
38
|
+
const fileContent = templateModule.default;
|
|
39
|
+
return schema_1.Schema.parse(template_model_1.Template, fileContent);
|
|
29
40
|
}
|
|
30
41
|
};
|
|
31
42
|
FileTemplateProvider = __decorate([
|
|
@@ -40,8 +51,4 @@ function configureFileTemplateProvider(config = {}) {
|
|
|
40
51
|
exports.fileTemplateProviderConfig.basePath = config.basePath ?? exports.fileTemplateProviderConfig.basePath;
|
|
41
52
|
}
|
|
42
53
|
exports.configureFileTemplateProvider = configureFileTemplateProvider;
|
|
43
|
-
|
|
44
|
-
return template;
|
|
45
|
-
}
|
|
46
|
-
exports.fileTemplate = fileTemplate;
|
|
47
|
-
//# sourceMappingURL=file-template.provider.js.map
|
|
54
|
+
//# sourceMappingURL=file.provider-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.provider-template.js","sourceRoot":"","sources":["../../../source/templates/providers/file.provider-template.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AACxE,qEAA4D;AAC5D,yCAAkC;AAClC,6BAA6B;AAC7B,sDAA6C;AAC7C,4DAAwD;AAQ3C,QAAA,0BAA0B,GAA+B,EAAE,CAAC;AAEzE,MAAM,UAAU,GAAG,aAAa,CAAC;AAK1B,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oCAAgB;IAIxD,YAAyB,QAAgB;QACvC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,mCAAe,CAAC,gEAAgE,CAAC,CAAC;SAC7F;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvC,MAAM,IAAI,mCAAe,CAAC,sCAAsC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;SACpF;QAED,MAAM,cAAc,GAAG,2CAAa,QAAQ,EAAyB,CAAC;QACtE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;QAC3C,OAAO,eAAM,CAAC,KAAK,CAAC,yBAAQ,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAzBY,oBAAoB;IAHhC,IAAA,qBAAS,EAAC;QACT,uBAAuB,EAAE,GAAG,EAAE,CAAC,kCAA0B,CAAC,QAAQ;KACnE,CAAC;IAKa,WAAA,IAAA,qBAAS,GAAE,CAAA;;GAJb,oBAAoB,CAyBhC;AAzBY,oDAAoB;AA2BjC,SAAgB,6BAA6B,CAAC,SAA8C,EAAE;IAC5F,kCAA0B,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,kCAA0B,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAFD,sEAEC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Template } from '../template.model';
|
|
2
|
+
import { TemplateProvider } from '../template.provider';
|
|
3
|
+
export declare class MemoryTemplateProvider extends TemplateProvider {
|
|
4
|
+
private readonly map;
|
|
5
|
+
constructor();
|
|
6
|
+
add(key: string, template: Template): void;
|
|
7
|
+
get(key: string): Promise<Template>;
|
|
8
|
+
}
|
package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js}
RENAMED
|
@@ -9,11 +9,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.MemoryTemplateProvider = void 0;
|
|
13
13
|
const container_1 = require("../../container");
|
|
14
14
|
const type_guards_1 = require("../../utils/type-guards");
|
|
15
|
-
|
|
15
|
+
const template_provider_1 = require("../template.provider");
|
|
16
|
+
let MemoryTemplateProvider = class MemoryTemplateProvider extends template_provider_1.TemplateProvider {
|
|
16
17
|
constructor() {
|
|
18
|
+
super();
|
|
17
19
|
this.map = new Map();
|
|
18
20
|
}
|
|
19
21
|
add(key, template) {
|
|
@@ -27,9 +29,9 @@ let MemoryTemplateProviderBase = class MemoryTemplateProviderBase {
|
|
|
27
29
|
return template;
|
|
28
30
|
}
|
|
29
31
|
};
|
|
30
|
-
|
|
32
|
+
MemoryTemplateProvider = __decorate([
|
|
31
33
|
(0, container_1.singleton)(),
|
|
32
34
|
__metadata("design:paramtypes", [])
|
|
33
|
-
],
|
|
34
|
-
exports.
|
|
35
|
-
//# sourceMappingURL=memory-
|
|
35
|
+
], MemoryTemplateProvider);
|
|
36
|
+
exports.MemoryTemplateProvider = MemoryTemplateProvider;
|
|
37
|
+
//# sourceMappingURL=memory.template-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.template-provider.js","sourceRoot":"","sources":["../../../source/templates/providers/memory.template-provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,yDAAkD;AAElD,4DAAwD;AAGjD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,oCAAgB;IAG1D;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,QAAkB;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,IAAA,yBAAW,EAAC,QAAQ,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,iBAAiB,CAAC,CAAC;SACnD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AAtBY,sBAAsB;IADlC,IAAA,qBAAS,GAAE;;GACC,sBAAsB,CAsBlC;AAtBY,wDAAsB"}
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import type { Record } from "../../types";
|
|
2
2
|
import * as handlebars from 'handlebars';
|
|
3
|
-
import
|
|
4
|
-
import type {
|
|
3
|
+
import { TemplateResolverProvider } from '../template-resolver.provider';
|
|
4
|
+
import type { TemplateField } from '../template.model';
|
|
5
|
+
import type { TemplateRenderObject } from '../template.renderer';
|
|
5
6
|
import { TemplateRenderer } from '../template.renderer';
|
|
6
7
|
export declare type HandlebarsTemplateHelper = handlebars.HelperDelegate;
|
|
7
8
|
export declare type HandlebarsTemplateHelpersObject = Record<string, HandlebarsTemplateHelper>;
|
|
8
|
-
export declare type HandlebarsTemplatePartial = string |
|
|
9
|
+
export declare type HandlebarsTemplatePartial = string | TemplateField<string, 'handlebars', HandlebarsRendererOptions> | handlebars.TemplateDelegate;
|
|
9
10
|
export declare type HandlebarsTemplatePartialsObject = Record<string, HandlebarsTemplatePartial>;
|
|
10
|
-
export declare type
|
|
11
|
+
export declare type HandlebarsRendererOptions = {
|
|
11
12
|
strict?: boolean;
|
|
12
13
|
preventIndent?: boolean;
|
|
13
14
|
helpers?: HandlebarsTemplateHelpersObject;
|
|
14
15
|
partials?: HandlebarsTemplatePartialsObject;
|
|
15
16
|
};
|
|
16
|
-
export declare type
|
|
17
|
-
export declare class HandlebarsTemplateRenderer extends TemplateRenderer<
|
|
17
|
+
export declare type HandlebarsTemplateRenderObject = TemplateRenderObject<'handlebars', HandlebarsRendererOptions>;
|
|
18
|
+
export declare class HandlebarsTemplateRenderer extends TemplateRenderer<'handlebars', HandlebarsRendererOptions> {
|
|
19
|
+
private readonly templateResolverProvider;
|
|
20
|
+
private readonly compileHandlebarsTemplate;
|
|
21
|
+
constructor(templateResolverProvider: TemplateResolverProvider);
|
|
18
22
|
canHandleType(type: string): boolean;
|
|
19
|
-
|
|
23
|
+
_render(renderObject: HandlebarsTemplateRenderObject, context?: object): Promise<string>;
|
|
24
|
+
private _compileHandlebarsTemplate;
|
|
25
|
+
private normalizePartial;
|
|
20
26
|
}
|
|
21
|
-
export declare function handlebarsTemplateOptions<T extends HandlebarsTemplateOptions>(options: T): T;
|
|
22
|
-
export declare function handlebarsTemplate<T extends HandlebarsTemplate = HandlebarsTemplate>(template: T): T;
|