@ackplus/nest-dynamic-templates 1.1.15 → 2.0.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 (80) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/MIGRATION.md +97 -0
  3. package/README.md +201 -116
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.js +2 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/config/resolve-config.d.ts +7 -0
  8. package/dist/lib/config/resolve-config.js +50 -0
  9. package/dist/lib/config/resolve-config.js.map +1 -0
  10. package/dist/lib/constant.d.ts +1 -0
  11. package/dist/lib/constant.js +2 -1
  12. package/dist/lib/constant.js.map +1 -1
  13. package/dist/lib/dto/create-template-layout.dto.js +49 -12
  14. package/dist/lib/dto/create-template-layout.dto.js.map +1 -1
  15. package/dist/lib/dto/create-template.dto.js +59 -14
  16. package/dist/lib/dto/create-template.dto.js.map +1 -1
  17. package/dist/lib/dto/render-template.dto.d.ts +3 -6
  18. package/dist/lib/dto/render-template.dto.js +17 -38
  19. package/dist/lib/dto/render-template.dto.js.map +1 -1
  20. package/dist/lib/engines/language/html.engine.d.ts +2 -3
  21. package/dist/lib/engines/language/html.engine.js +4 -34
  22. package/dist/lib/engines/language/html.engine.js.map +1 -1
  23. package/dist/lib/engines/language/markdown.engine.d.ts +4 -2
  24. package/dist/lib/engines/language/markdown.engine.js +20 -20
  25. package/dist/lib/engines/language/markdown.engine.js.map +1 -1
  26. package/dist/lib/engines/language/mjml.engine.d.ts +4 -2
  27. package/dist/lib/engines/language/mjml.engine.js +18 -20
  28. package/dist/lib/engines/language/mjml.engine.js.map +1 -1
  29. package/dist/lib/engines/language/text.engine.d.ts +2 -1
  30. package/dist/lib/engines/language/text.engine.js +2 -1
  31. package/dist/lib/engines/language/text.engine.js.map +1 -1
  32. package/dist/lib/engines/language-engine.d.ts +4 -1
  33. package/dist/lib/engines/language-engine.js +2 -0
  34. package/dist/lib/engines/language-engine.js.map +1 -1
  35. package/dist/lib/engines/load-peer.d.ts +1 -0
  36. package/dist/lib/engines/load-peer.js +21 -0
  37. package/dist/lib/engines/load-peer.js.map +1 -0
  38. package/dist/lib/engines/template/ejs.engine.d.ts +6 -3
  39. package/dist/lib/engines/template/ejs.engine.js +13 -12
  40. package/dist/lib/engines/template/ejs.engine.js.map +1 -1
  41. package/dist/lib/engines/template/handlebars.engine.d.ts +8 -3
  42. package/dist/lib/engines/template/handlebars.engine.js +26 -13
  43. package/dist/lib/engines/template/handlebars.engine.js.map +1 -1
  44. package/dist/lib/engines/template/nunjucks.engine.d.ts +8 -8
  45. package/dist/lib/engines/template/nunjucks.engine.js +26 -33
  46. package/dist/lib/engines/template/nunjucks.engine.js.map +1 -1
  47. package/dist/lib/engines/template/pug.engine.d.ts +7 -5
  48. package/dist/lib/engines/template/pug.engine.js +11 -20
  49. package/dist/lib/engines/template/pug.engine.js.map +1 -1
  50. package/dist/lib/engines/template-engine.d.ts +4 -1
  51. package/dist/lib/engines/template-engine.js +2 -0
  52. package/dist/lib/engines/template-engine.js.map +1 -1
  53. package/dist/lib/entities/template-layout.entity.js +51 -14
  54. package/dist/lib/entities/template-layout.entity.js.map +1 -1
  55. package/dist/lib/entities/template.entity.js +58 -15
  56. package/dist/lib/entities/template.entity.js.map +1 -1
  57. package/dist/lib/errors/diagnose.d.ts +11 -0
  58. package/dist/lib/errors/diagnose.js +162 -0
  59. package/dist/lib/errors/diagnose.js.map +1 -0
  60. package/dist/lib/errors/template.errors.d.ts +77 -13
  61. package/dist/lib/errors/template.errors.js +104 -59
  62. package/dist/lib/errors/template.errors.js.map +1 -1
  63. package/dist/lib/interfaces/module-config.interface.d.ts +29 -18
  64. package/dist/lib/nest-dynamic-templates.module.d.ts +1 -4
  65. package/dist/lib/nest-dynamic-templates.module.js +40 -96
  66. package/dist/lib/nest-dynamic-templates.module.js.map +1 -1
  67. package/dist/lib/services/template-config.service.d.ts +12 -15
  68. package/dist/lib/services/template-config.service.js +30 -45
  69. package/dist/lib/services/template-config.service.js.map +1 -1
  70. package/dist/lib/services/template-engine.registry.d.ts +6 -10
  71. package/dist/lib/services/template-engine.registry.js +42 -50
  72. package/dist/lib/services/template-engine.registry.js.map +1 -1
  73. package/dist/lib/services/template-layout.service.d.ts +1 -3
  74. package/dist/lib/services/template-layout.service.js +80 -152
  75. package/dist/lib/services/template-layout.service.js.map +1 -1
  76. package/dist/lib/services/template.service.d.ts +1 -3
  77. package/dist/lib/services/template.service.js +107 -209
  78. package/dist/lib/services/template.service.js.map +1 -1
  79. package/dist/tsconfig.build.tsbuildinfo +1 -1
  80. package/package.json +17 -20
@@ -1,76 +1,121 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TemplateValidationError = exports.TemplateContentError = exports.TemplateLayoutError = exports.TemplateLanguageError = exports.TemplateEngineError = exports.TemplateRenderError = void 0;
3
+ exports.TemplateConflictError = exports.TemplateForbiddenError = exports.TemplateInputError = exports.TemplateEngineUnavailableError = exports.TemplateRenderError = exports.TemplateNotFoundError = exports.TemplateErrorCode = void 0;
4
+ exports.isTemplateError = isTemplateError;
4
5
  const common_1 = require("@nestjs/common");
5
- class TemplateRenderError extends common_1.InternalServerErrorException {
6
- constructor(operation, originalError, templateName) {
7
- const message = templateName
8
- ? `Failed to render template '${templateName}' during ${operation}: ${originalError.message}`
9
- : `Failed to render content during ${operation}: ${originalError.message}`;
10
- super({
11
- message,
12
- error: 'TEMPLATE_RENDER_ERROR',
13
- operation,
14
- templateName,
15
- originalError: originalError.message,
16
- });
6
+ var TemplateErrorCode;
7
+ (function (TemplateErrorCode) {
8
+ TemplateErrorCode["NOT_FOUND"] = "TEMPLATE_NOT_FOUND";
9
+ TemplateErrorCode["RENDER_FAILED"] = "TEMPLATE_RENDER_FAILED";
10
+ TemplateErrorCode["ENGINE_UNAVAILABLE"] = "TEMPLATE_ENGINE_UNAVAILABLE";
11
+ TemplateErrorCode["INVALID_INPUT"] = "TEMPLATE_INVALID_INPUT";
12
+ TemplateErrorCode["FORBIDDEN"] = "TEMPLATE_FORBIDDEN";
13
+ TemplateErrorCode["CONFLICT"] = "TEMPLATE_CONFLICT";
14
+ })(TemplateErrorCode || (exports.TemplateErrorCode = TemplateErrorCode = {}));
15
+ const TEMPLATE_ERROR = Symbol.for('nest-dynamic-templates.error');
16
+ function isTemplateError(e) {
17
+ return typeof e === 'object' && e !== null && e[TEMPLATE_ERROR] === true;
18
+ }
19
+ function body(name, status, details) {
20
+ return { statusCode: status, error: name, ...details };
21
+ }
22
+ function cap(s) {
23
+ return s.charAt(0).toUpperCase() + s.slice(1);
24
+ }
25
+ class TemplateNotFoundError extends common_1.NotFoundException {
26
+ code = TemplateErrorCode.NOT_FOUND;
27
+ details;
28
+ [TEMPLATE_ERROR] = true;
29
+ constructor(args) {
30
+ const kind = args.kind ?? 'template';
31
+ const details = {
32
+ code: TemplateErrorCode.NOT_FOUND,
33
+ message: `${cap(kind)} "${args.templateName}" was not found in scope "${args.scope ?? 'system'}"${args.locale ? ` for locale "${args.locale}"` : ''}.`,
34
+ templateName: args.templateName,
35
+ scope: args.scope,
36
+ scopeId: args.scopeId,
37
+ locale: args.locale,
38
+ hint: `Create the ${kind} first, or check the name/scope/locale. Resolution falls back to scope "system" and locale "en".`,
39
+ };
40
+ super(body('TemplateNotFoundError', 404, details));
41
+ this.name = 'TemplateNotFoundError';
42
+ this.details = details;
17
43
  }
18
44
  }
19
- exports.TemplateRenderError = TemplateRenderError;
20
- class TemplateEngineError extends common_1.InternalServerErrorException {
21
- constructor(engine, originalError) {
22
- super({
23
- message: `Template engine '${engine}' failed to render content: ${originalError.message}`,
24
- error: 'TEMPLATE_ENGINE_ERROR',
25
- engine,
26
- originalError: originalError.message,
45
+ exports.TemplateNotFoundError = TemplateNotFoundError;
46
+ class TemplateRenderError extends common_1.UnprocessableEntityException {
47
+ code = TemplateErrorCode.RENDER_FAILED;
48
+ details;
49
+ [TEMPLATE_ERROR] = true;
50
+ constructor(details, cause) {
51
+ const full = { code: TemplateErrorCode.RENDER_FAILED, ...details };
52
+ super(body('TemplateRenderError', 422, full), {
53
+ cause: cause instanceof Error ? cause : undefined,
27
54
  });
55
+ this.name = 'TemplateRenderError';
56
+ this.details = full;
28
57
  }
29
58
  }
30
- exports.TemplateEngineError = TemplateEngineError;
31
- class TemplateLanguageError extends common_1.InternalServerErrorException {
32
- constructor(language, originalError) {
33
- super({
34
- message: `Language processor '${language}' failed to render content: ${originalError.message}`,
35
- error: 'TEMPLATE_LANGUAGE_ERROR',
36
- language,
37
- originalError: originalError.message,
38
- });
59
+ exports.TemplateRenderError = TemplateRenderError;
60
+ class TemplateEngineUnavailableError extends common_1.InternalServerErrorException {
61
+ code = TemplateErrorCode.ENGINE_UNAVAILABLE;
62
+ details;
63
+ [TEMPLATE_ERROR] = true;
64
+ constructor(args) {
65
+ const { engine, kind, reason, peerPackage } = args;
66
+ const configKey = kind === 'template' ? 'engines.template' : 'engines.language';
67
+ const message = reason === 'not-installed'
68
+ ? `${cap(kind)} engine "${engine}" is enabled but its package${peerPackage ? ` "${peerPackage}"` : ''} is not installed.`
69
+ : `${cap(kind)} engine "${engine}" is not enabled.`;
70
+ const hint = reason === 'not-installed'
71
+ ? `Run \`npm install ${peerPackage ?? engine}\`.`
72
+ : `Add it to NestDynamicTemplatesModule.forRoot({ ${configKey}: ['${engine}'] }).`;
73
+ const details = {
74
+ code: TemplateErrorCode.ENGINE_UNAVAILABLE,
75
+ message,
76
+ engine,
77
+ hint,
78
+ };
79
+ super(body('TemplateEngineUnavailableError', 500, details));
80
+ this.name = 'TemplateEngineUnavailableError';
81
+ this.details = details;
39
82
  }
40
83
  }
41
- exports.TemplateLanguageError = TemplateLanguageError;
42
- class TemplateLayoutError extends common_1.InternalServerErrorException {
43
- constructor(layoutName, originalError) {
44
- super({
45
- message: `Template layout '${layoutName}' failed to render: ${originalError.message}`,
46
- error: 'TEMPLATE_LAYOUT_ERROR',
47
- layoutName,
48
- originalError: originalError.message,
49
- });
84
+ exports.TemplateEngineUnavailableError = TemplateEngineUnavailableError;
85
+ class TemplateInputError extends common_1.BadRequestException {
86
+ code = TemplateErrorCode.INVALID_INPUT;
87
+ details;
88
+ [TEMPLATE_ERROR] = true;
89
+ constructor(message, hint) {
90
+ const details = { code: TemplateErrorCode.INVALID_INPUT, message, hint };
91
+ super(body('TemplateInputError', 400, details));
92
+ this.name = 'TemplateInputError';
93
+ this.details = details;
50
94
  }
51
95
  }
52
- exports.TemplateLayoutError = TemplateLayoutError;
53
- class TemplateContentError extends common_1.InternalServerErrorException {
54
- constructor(contentType, originalError) {
55
- super({
56
- message: `Failed to process ${contentType} content: ${originalError.message}`,
57
- error: 'TEMPLATE_CONTENT_ERROR',
58
- contentType,
59
- originalError: originalError.message,
60
- });
96
+ exports.TemplateInputError = TemplateInputError;
97
+ class TemplateForbiddenError extends common_1.ForbiddenException {
98
+ code = TemplateErrorCode.FORBIDDEN;
99
+ details;
100
+ [TEMPLATE_ERROR] = true;
101
+ constructor(message, hint) {
102
+ const details = { code: TemplateErrorCode.FORBIDDEN, message, hint };
103
+ super(body('TemplateForbiddenError', 403, details));
104
+ this.name = 'TemplateForbiddenError';
105
+ this.details = details;
61
106
  }
62
107
  }
63
- exports.TemplateContentError = TemplateContentError;
64
- class TemplateValidationError extends common_1.BadRequestException {
65
- constructor(field, value, reason) {
66
- super({
67
- message: `Template validation failed for field '${field}': ${reason}`,
68
- error: 'TEMPLATE_VALIDATION_ERROR',
69
- field,
70
- value,
71
- reason,
72
- });
108
+ exports.TemplateForbiddenError = TemplateForbiddenError;
109
+ class TemplateConflictError extends common_1.ConflictException {
110
+ code = TemplateErrorCode.CONFLICT;
111
+ details;
112
+ [TEMPLATE_ERROR] = true;
113
+ constructor(message, hint) {
114
+ const details = { code: TemplateErrorCode.CONFLICT, message, hint };
115
+ super(body('TemplateConflictError', 409, details));
116
+ this.name = 'TemplateConflictError';
117
+ this.details = details;
73
118
  }
74
119
  }
75
- exports.TemplateValidationError = TemplateValidationError;
120
+ exports.TemplateConflictError = TemplateConflictError;
76
121
  //# sourceMappingURL=template.errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.errors.js","sourceRoot":"","sources":["../../../src/lib/errors/template.errors.ts"],"names":[],"mappings":";;;AAAA,2CAAmF;AAEnF,MAAa,mBAAoB,SAAQ,qCAA4B;IACjE,YAAY,SAAiB,EAAE,aAAoB,EAAE,YAAqB;QACtE,MAAM,OAAO,GAAG,YAAY;YACxB,CAAC,CAAC,8BAA8B,YAAY,YAAY,SAAS,KAAK,aAAa,CAAC,OAAO,EAAE;YAC7F,CAAC,CAAC,mCAAmC,SAAS,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;QAE/E,KAAK,CAAC;YACF,OAAO;YACP,KAAK,EAAE,uBAAuB;YAC9B,SAAS;YACT,YAAY;YACZ,aAAa,EAAE,aAAa,CAAC,OAAO;SACvC,CAAC,CAAC;IACP,CAAC;CACJ;AAdD,kDAcC;AAED,MAAa,mBAAoB,SAAQ,qCAA4B;IACjE,YAAY,MAAc,EAAE,aAAoB;QAC5C,KAAK,CAAC;YACF,OAAO,EAAE,oBAAoB,MAAM,+BAA+B,aAAa,CAAC,OAAO,EAAE;YACzF,KAAK,EAAE,uBAAuB;YAC9B,MAAM;YACN,aAAa,EAAE,aAAa,CAAC,OAAO;SACvC,CAAC,CAAC;IACP,CAAC;CACJ;AATD,kDASC;AAED,MAAa,qBAAsB,SAAQ,qCAA4B;IACnE,YAAY,QAAgB,EAAE,aAAoB;QAC9C,KAAK,CAAC;YACF,OAAO,EAAE,uBAAuB,QAAQ,+BAA+B,aAAa,CAAC,OAAO,EAAE;YAC9F,KAAK,EAAE,yBAAyB;YAChC,QAAQ;YACR,aAAa,EAAE,aAAa,CAAC,OAAO;SACvC,CAAC,CAAC;IACP,CAAC;CACJ;AATD,sDASC;AAED,MAAa,mBAAoB,SAAQ,qCAA4B;IACjE,YAAY,UAAkB,EAAE,aAAoB;QAChD,KAAK,CAAC;YACF,OAAO,EAAE,oBAAoB,UAAU,uBAAuB,aAAa,CAAC,OAAO,EAAE;YACrF,KAAK,EAAE,uBAAuB;YAC9B,UAAU;YACV,aAAa,EAAE,aAAa,CAAC,OAAO;SACvC,CAAC,CAAC;IACP,CAAC;CACJ;AATD,kDASC;AAED,MAAa,oBAAqB,SAAQ,qCAA4B;IAClE,YAAY,WAAmB,EAAE,aAAoB;QACjD,KAAK,CAAC;YACF,OAAO,EAAE,qBAAqB,WAAW,aAAa,aAAa,CAAC,OAAO,EAAE;YAC7E,KAAK,EAAE,wBAAwB;YAC/B,WAAW;YACX,aAAa,EAAE,aAAa,CAAC,OAAO;SACvC,CAAC,CAAC;IACP,CAAC;CACJ;AATD,oDASC;AAED,MAAa,uBAAwB,SAAQ,4BAAmB;IAC5D,YAAY,KAAa,EAAE,KAAU,EAAE,MAAc;QACjD,KAAK,CAAC;YACF,OAAO,EAAE,yCAAyC,KAAK,MAAM,MAAM,EAAE;YACrE,KAAK,EAAE,2BAA2B;YAClC,KAAK;YACL,KAAK;YACL,MAAM;SACT,CAAC,CAAC;IACP,CAAC;CACJ;AAVD,0DAUC"}
1
+ {"version":3,"file":"template.errors.js","sourceRoot":"","sources":["../../../src/lib/errors/template.errors.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,41 @@
1
1
  import { TemplateEngineEnum, TemplateLanguageEnum } from './template.types';
2
2
  import { ModuleMetadata, Type } from '@nestjs/common';
3
- export interface EngineConfig {
4
- enabled: boolean;
5
- options?: Record<string, any>;
3
+ export type TemplateFilter = (...args: any[]) => any;
4
+ export interface CustomEngineOptions {
5
+ filters?: Record<string, TemplateFilter>;
6
+ globals?: Record<string, any>;
6
7
  }
7
- export interface FilterOptions {
8
- name: string;
9
- filter: (...args: any[]) => any;
10
- }
11
- export type EngineOptions<T> = T & {};
12
- export type CustomEngineOptions = {
13
- filters?: Record<string, FilterOptions['filter']>;
14
- globalValues?: Record<string, (...args: any) => any>;
15
- };
16
8
  export interface NestDynamicTemplatesModuleConfig {
17
9
  isGlobal?: boolean;
18
- enginesOptions?: {
19
- filters?: CustomEngineOptions['filters'];
20
- globalValues?: CustomEngineOptions['globalValues'];
21
- template?: Partial<Record<TemplateEngineEnum, EngineOptions<any>>>;
22
- language?: Partial<Record<TemplateLanguageEnum, EngineOptions<any>>>;
23
- };
24
10
  engines?: {
25
11
  template?: TemplateEngineEnum[];
26
12
  language?: TemplateLanguageEnum[];
27
13
  };
14
+ filters?: Record<string, TemplateFilter>;
15
+ globals?: Record<string, any>;
16
+ engineOptions?: {
17
+ template?: Partial<Record<TemplateEngineEnum, Record<string, any>>>;
18
+ language?: Partial<Record<TemplateLanguageEnum, Record<string, any>>>;
19
+ };
20
+ enginesOptions?: {
21
+ filters?: Record<string, TemplateFilter>;
22
+ globalValues?: Record<string, any>;
23
+ template?: Partial<Record<TemplateEngineEnum, Record<string, any>>>;
24
+ language?: Partial<Record<TemplateLanguageEnum, Record<string, any>>>;
25
+ };
26
+ }
27
+ export interface ResolvedTemplatesConfig {
28
+ isGlobal: boolean;
29
+ engines: {
30
+ template: TemplateEngineEnum[];
31
+ language: TemplateLanguageEnum[];
32
+ };
33
+ filters: Record<string, TemplateFilter>;
34
+ globals: Record<string, any>;
35
+ engineOptions: {
36
+ template: Partial<Record<TemplateEngineEnum, Record<string, any>>>;
37
+ language: Partial<Record<TemplateLanguageEnum, Record<string, any>>>;
38
+ };
28
39
  }
29
40
  export interface NestDynamicTemplatesModuleOptionsFactory {
30
41
  createNestDynamicTemplatesModuleOptions(): Promise<NestDynamicTemplatesModuleConfig> | NestDynamicTemplatesModuleConfig;
@@ -1,10 +1,7 @@
1
1
  import { DynamicModule } from '@nestjs/common';
2
2
  import { NestDynamicTemplatesModuleConfig, NestDynamicTemplatesModuleAsyncOptions } from './interfaces/module-config.interface';
3
3
  export declare class NestDynamicTemplatesModule {
4
- static moduleDefaultOptions: Partial<NestDynamicTemplatesModuleConfig>;
5
4
  static forRoot(config?: NestDynamicTemplatesModuleConfig): DynamicModule;
6
5
  static forRootAsync(options: NestDynamicTemplatesModuleAsyncOptions): DynamicModule;
7
- private static createAsyncProviders;
8
- private static createAsyncOptionsProvider;
9
- private static getOptions;
6
+ private static createAsyncOptionsProviders;
10
7
  }
@@ -5,9 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
8
  var NestDynamicTemplatesModule_1;
12
9
  Object.defineProperty(exports, "__esModule", { value: true });
13
10
  exports.NestDynamicTemplatesModule = void 0;
@@ -15,126 +12,73 @@ const common_1 = require("@nestjs/common");
15
12
  const typeorm_1 = require("@nestjs/typeorm");
16
13
  const template_entity_1 = require("./entities/template.entity");
17
14
  const template_layout_entity_1 = require("./entities/template-layout.entity");
18
- const deepmerge_1 = __importDefault(require("deepmerge"));
19
15
  const template_engine_registry_1 = require("./services/template-engine.registry");
20
16
  const template_layout_service_1 = require("./services/template-layout.service");
21
17
  const template_service_1 = require("./services/template.service");
22
18
  const template_config_service_1 = require("./services/template-config.service");
23
19
  const constant_1 = require("./constant");
24
- const template_types_1 = require("./interfaces/template.types");
25
- const template_types_2 = require("./interfaces/template.types");
26
- const defaultConfig = {
27
- engines: {
28
- template: [template_types_1.TemplateEngineEnum.NUNJUCKS],
29
- language: [template_types_2.TemplateLanguageEnum.HTML, template_types_2.TemplateLanguageEnum.MJML, template_types_2.TemplateLanguageEnum.TEXT]
30
- }
31
- };
32
- let NestDynamicTemplatesModule = class NestDynamicTemplatesModule {
33
- static { NestDynamicTemplatesModule_1 = this; }
34
- static moduleDefaultOptions = defaultConfig;
20
+ const resolve_config_1 = require("./config/resolve-config");
21
+ const SERVICES = [
22
+ template_config_service_1.TemplateConfigService,
23
+ template_engine_registry_1.TemplateEngineRegistryService,
24
+ template_layout_service_1.TemplateLayoutService,
25
+ template_service_1.TemplateService,
26
+ ];
27
+ const EXPORTS = [
28
+ template_config_service_1.TemplateConfigService,
29
+ template_service_1.TemplateService,
30
+ template_layout_service_1.TemplateLayoutService,
31
+ template_engine_registry_1.TemplateEngineRegistryService,
32
+ ];
33
+ const ENTITIES = typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout]);
34
+ let NestDynamicTemplatesModule = NestDynamicTemplatesModule_1 = class NestDynamicTemplatesModule {
35
35
  static forRoot(config = {}) {
36
- const mergedConfig = this.getOptions(config);
37
- template_config_service_1.TemplateConfigService.setOptions(mergedConfig);
36
+ const resolved = (0, resolve_config_1.resolveConfig)(config);
38
37
  return {
39
38
  module: NestDynamicTemplatesModule_1,
40
- global: mergedConfig.isGlobal,
41
- imports: [
42
- typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout]),
43
- ],
39
+ global: resolved.isGlobal,
40
+ imports: [ENTITIES],
44
41
  providers: [
45
- template_config_service_1.TemplateConfigService,
46
- template_engine_registry_1.TemplateEngineRegistryService,
47
- template_layout_service_1.TemplateLayoutService,
48
- template_service_1.TemplateService,
49
- ],
50
- exports: [
51
- template_config_service_1.TemplateConfigService,
52
- template_service_1.TemplateService,
53
- template_layout_service_1.TemplateLayoutService,
42
+ { provide: constant_1.NEST_DYNAMIC_TEMPLATES_OPTIONS, useValue: resolved },
43
+ ...SERVICES,
54
44
  ],
45
+ exports: EXPORTS,
55
46
  };
56
47
  }
57
48
  static forRootAsync(options) {
58
- const asyncProviders = this.createAsyncProviders(options);
59
49
  return {
60
50
  module: NestDynamicTemplatesModule_1,
61
51
  global: options.isGlobal,
62
- imports: [
63
- typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout]),
64
- ...(options.imports || []),
65
- ],
66
- providers: [
67
- ...asyncProviders,
68
- template_config_service_1.TemplateConfigService,
69
- template_engine_registry_1.TemplateEngineRegistryService,
70
- template_layout_service_1.TemplateLayoutService,
71
- template_service_1.TemplateService,
72
- ],
73
- exports: [
74
- template_config_service_1.TemplateConfigService,
75
- template_service_1.TemplateService,
76
- template_layout_service_1.TemplateLayoutService,
77
- ],
52
+ imports: [ENTITIES, ...(options.imports || [])],
53
+ providers: [...this.createAsyncOptionsProviders(options), ...SERVICES],
54
+ exports: EXPORTS,
78
55
  };
79
56
  }
80
- static createAsyncProviders(options) {
81
- if (options.useExisting || options.useFactory) {
82
- return [this.createAsyncOptionsProvider(options)];
83
- }
84
- if (options.useClass) {
57
+ static createAsyncOptionsProviders(options) {
58
+ if (options.useFactory) {
85
59
  return [
86
- this.createAsyncOptionsProvider(options),
87
60
  {
88
- provide: options.useClass,
89
- useClass: options.useClass,
61
+ provide: constant_1.NEST_DYNAMIC_TEMPLATES_OPTIONS,
62
+ useFactory: async (...args) => (0, resolve_config_1.resolveConfig)(await options.useFactory(...args)),
63
+ inject: options.inject || [],
90
64
  },
91
65
  ];
92
66
  }
93
- return [];
94
- }
95
- static createAsyncOptionsProvider(options) {
96
- if (options.useFactory) {
97
- return {
98
- provide: constant_1.NEST_DYNAMIC_TEMPLATES_ASYNC_OPTIONS_PROVIDER,
99
- useFactory: async (...args) => {
100
- const userOptions = options.useFactory ? await options.useFactory(...args) : {};
101
- const mergedOptions = this.getOptions(userOptions);
102
- template_config_service_1.TemplateConfigService.setOptions(mergedOptions);
103
- return mergedOptions;
104
- },
105
- inject: options.inject || [],
106
- };
107
- }
108
- return {
109
- provide: constant_1.NEST_DYNAMIC_TEMPLATES_ASYNC_OPTIONS_PROVIDER,
110
- useFactory: async (optionsFactory) => {
111
- const userOptions = await optionsFactory.createNestDynamicTemplatesModuleOptions();
112
- const mergedOptions = this.getOptions(userOptions);
113
- template_config_service_1.TemplateConfigService.setOptions(mergedOptions);
114
- return mergedOptions;
67
+ const providers = [
68
+ {
69
+ provide: constant_1.NEST_DYNAMIC_TEMPLATES_OPTIONS,
70
+ useFactory: async (factory) => (0, resolve_config_1.resolveConfig)(await factory.createNestDynamicTemplatesModuleOptions()),
71
+ inject: [options.useExisting || options.useClass],
115
72
  },
116
- inject: [options.useExisting || options.useClass],
117
- };
118
- }
119
- static getOptions(options) {
120
- return (0, deepmerge_1.default)(this.moduleDefaultOptions, options);
73
+ ];
74
+ if (options.useClass) {
75
+ providers.push({ provide: options.useClass, useClass: options.useClass });
76
+ }
77
+ return providers;
121
78
  }
122
79
  };
123
80
  exports.NestDynamicTemplatesModule = NestDynamicTemplatesModule;
124
81
  exports.NestDynamicTemplatesModule = NestDynamicTemplatesModule = NestDynamicTemplatesModule_1 = __decorate([
125
- (0, common_1.Module)({
126
- imports: [typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout])],
127
- providers: [
128
- template_config_service_1.TemplateConfigService,
129
- template_engine_registry_1.TemplateEngineRegistryService,
130
- template_layout_service_1.TemplateLayoutService,
131
- template_service_1.TemplateService,
132
- ],
133
- exports: [
134
- template_config_service_1.TemplateConfigService,
135
- template_service_1.TemplateService,
136
- template_layout_service_1.TemplateLayoutService,
137
- ],
138
- })
82
+ (0, common_1.Module)({})
139
83
  ], NestDynamicTemplatesModule);
140
84
  //# sourceMappingURL=nest-dynamic-templates.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nest-dynamic-templates.module.js","sourceRoot":"","sources":["../../src/lib/nest-dynamic-templates.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nest-dynamic-templates.module.js","sourceRoot":"","sources":["../../src/lib/nest-dynamic-templates.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAiE;AACjE,6CAAgD;AAChD,gEAAiE;AACjE,8EAA8E;AAM9E,kFAAoF;AACpF,gFAA2E;AAC3E,kEAA8D;AAC9D,gFAA2E;AAC3E,yCAA4D;AAC5D,4DAAwD;AAExD,MAAM,QAAQ,GAAe;IACzB,+CAAqB;IACrB,wDAA6B;IAC7B,+CAAqB;IACrB,kCAAe;CAClB,CAAC;AAEF,MAAM,OAAO,GAAG;IACZ,+CAAqB;IACrB,kCAAe;IACf,+CAAqB;IACrB,wDAA6B;CAChC,CAAC;AAEF,MAAM,QAAQ,GAAG,uBAAa,CAAC,UAAU,CAAC,CAAC,qCAAmB,EAAE,kDAAyB,CAAC,CAAC,CAAC;AAGrF,IAAM,0BAA0B,kCAAhC,MAAM,0BAA0B;IACnC,MAAM,CAAC,OAAO,CAAC,SAA2C,EAAE;QACxD,MAAM,QAAQ,GAAG,IAAA,8BAAa,EAAC,MAAM,CAAC,CAAC;QAEvC,OAAO;YACH,MAAM,EAAE,4BAA0B;YAClC,MAAM,EAAE,QAAQ,CAAC,QAAQ;YACzB,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,SAAS,EAAE;gBACP,EAAE,OAAO,EAAE,yCAA8B,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBAC/D,GAAG,QAAQ;aACd;YACD,OAAO,EAAE,OAAO;SACnB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAA+C;QAC/D,OAAO;YACH,MAAM,EAAE,4BAA0B;YAClC,MAAM,EAAE,OAAO,CAAC,QAAQ;YACxB,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC/C,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC;YACtE,OAAO,EAAE,OAAO;SACnB,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,2BAA2B,CACtC,OAA+C;QAE/C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;gBACH;oBACI,OAAO,EAAE,yCAA8B;oBACvC,UAAU,EAAE,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE,CACjC,IAAA,8BAAa,EAAC,MAAM,OAAO,CAAC,UAAW,CAAC,GAAG,IAAI,CAAC,CAAC;oBACrD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC/B;aACJ,CAAC;QACN,CAAC;QAED,MAAM,SAAS,GAAe;YAC1B;gBACI,OAAO,EAAE,yCAA8B;gBACvC,UAAU,EAAE,KAAK,EAAE,OAAiD,EAAE,EAAE,CACpE,IAAA,8BAAa,EAAC,MAAM,OAAO,CAAC,uCAAuC,EAAE,CAAC;gBAC1E,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAS,CAAC;aACrD;SACJ,CAAC;QAEF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ,CAAA;AAvDY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,0BAA0B,CAuDtC"}
@@ -1,18 +1,15 @@
1
- import { NestDynamicTemplatesModuleConfig } from '../interfaces/module-config.interface';
1
+ import type { ResolvedTemplatesConfig, TemplateFilter } from '../interfaces/module-config.interface';
2
2
  import { TemplateEngineEnum, TemplateLanguageEnum } from '../interfaces/template.types';
3
3
  export declare class TemplateConfigService {
4
- private static config;
5
- private static readonly defaultConfig;
6
- static setOptions(config: NestDynamicTemplatesModuleConfig): void;
7
- static getOptions(): NestDynamicTemplatesModuleConfig;
8
- static hasConfig(): boolean;
9
- static reset(): void;
10
- static get<K extends keyof NestDynamicTemplatesModuleConfig>(key: K): NestDynamicTemplatesModuleConfig[K];
11
- static isTemplateEngineEnabled(engine: TemplateEngineEnum): boolean;
12
- static isLanguageEngineEnabled(language: TemplateLanguageEnum): boolean;
13
- static getEnabledTemplateEngines(): TemplateEngineEnum[];
14
- static getEnabledLanguageEngines(): TemplateLanguageEnum[];
15
- static getTemplateEngineOptions(engine: TemplateEngineEnum): any;
16
- static getLanguageEngineOptions(language: TemplateLanguageEnum): any;
17
- static getCustomFilters(): Record<string, Function>;
4
+ private readonly config;
5
+ constructor(config: ResolvedTemplatesConfig);
6
+ getOptions(): ResolvedTemplatesConfig;
7
+ isTemplateEngineEnabled(engine: TemplateEngineEnum): boolean;
8
+ isLanguageEngineEnabled(language: TemplateLanguageEnum): boolean;
9
+ getEnabledTemplateEngines(): TemplateEngineEnum[];
10
+ getEnabledLanguageEngines(): TemplateLanguageEnum[];
11
+ getTemplateEngineOptions(engine: TemplateEngineEnum): Record<string, any>;
12
+ getLanguageEngineOptions(language: TemplateLanguageEnum): Record<string, any>;
13
+ getFilters(): Record<string, TemplateFilter>;
14
+ getGlobals(): Record<string, any>;
18
15
  }
@@ -5,68 +5,53 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
8
14
  Object.defineProperty(exports, "__esModule", { value: true });
9
15
  exports.TemplateConfigService = void 0;
10
16
  const common_1 = require("@nestjs/common");
11
- const template_types_1 = require("../interfaces/template.types");
17
+ const constant_1 = require("../constant");
12
18
  let TemplateConfigService = class TemplateConfigService {
13
- static config;
14
- static defaultConfig = {
15
- engines: {
16
- template: [template_types_1.TemplateEngineEnum.NUNJUCKS],
17
- language: [template_types_1.TemplateLanguageEnum.HTML, template_types_1.TemplateLanguageEnum.MJML, template_types_1.TemplateLanguageEnum.TEXT]
18
- }
19
- };
20
- static setOptions(config) {
21
- this.config = { ...this.defaultConfig, ...config };
19
+ config;
20
+ constructor(config) {
21
+ this.config = config;
22
22
  }
23
- static getOptions() {
24
- if (!this.config) {
25
- return this.defaultConfig;
26
- }
23
+ getOptions() {
27
24
  return this.config;
28
25
  }
29
- static hasConfig() {
30
- return !!this.config;
31
- }
32
- static reset() {
33
- this.config = { ...this.defaultConfig };
34
- }
35
- static get(key) {
36
- const config = this.getOptions();
37
- return config[key];
26
+ isTemplateEngineEnabled(engine) {
27
+ return this.config.engines.template.includes(engine);
38
28
  }
39
- static isTemplateEngineEnabled(engine) {
40
- const config = this.getOptions();
41
- return config.engines?.template?.includes(engine) ?? false;
29
+ isLanguageEngineEnabled(language) {
30
+ return this.config.engines.language.includes(language);
42
31
  }
43
- static isLanguageEngineEnabled(language) {
44
- const config = this.getOptions();
45
- return config.engines?.language?.includes(language) ?? false;
32
+ getEnabledTemplateEngines() {
33
+ return this.config.engines.template;
46
34
  }
47
- static getEnabledTemplateEngines() {
48
- const config = this.getOptions();
49
- return config.engines?.template ?? this.defaultConfig.engines.template;
35
+ getEnabledLanguageEngines() {
36
+ return this.config.engines.language;
50
37
  }
51
- static getEnabledLanguageEngines() {
52
- const config = this.getOptions();
53
- return config.engines?.language ?? this.defaultConfig.engines.language;
38
+ getTemplateEngineOptions(engine) {
39
+ return this.config.engineOptions.template[engine] ?? {};
54
40
  }
55
- static getTemplateEngineOptions(engine) {
56
- const config = this.getOptions();
57
- return config.enginesOptions?.template?.[engine];
41
+ getLanguageEngineOptions(language) {
42
+ return this.config.engineOptions.language[language] ?? {};
58
43
  }
59
- static getLanguageEngineOptions(language) {
60
- const config = this.getOptions();
61
- return config.enginesOptions?.language?.[language];
44
+ getFilters() {
45
+ return this.config.filters;
62
46
  }
63
- static getCustomFilters() {
64
- const config = this.getOptions();
65
- return config.enginesOptions?.filters ?? {};
47
+ getGlobals() {
48
+ return this.config.globals;
66
49
  }
67
50
  };
68
51
  exports.TemplateConfigService = TemplateConfigService;
69
52
  exports.TemplateConfigService = TemplateConfigService = __decorate([
70
- (0, common_1.Injectable)()
53
+ (0, common_1.Injectable)(),
54
+ __param(0, (0, common_1.Inject)(constant_1.NEST_DYNAMIC_TEMPLATES_OPTIONS)),
55
+ __metadata("design:paramtypes", [Object])
71
56
  ], TemplateConfigService);
72
57
  //# sourceMappingURL=template-config.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-config.service.js","sourceRoot":"","sources":["../../../src/lib/services/template-config.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAE5C,iEAAwF;AAGjF,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACtB,MAAM,CAAC,MAAM,CAAmC;IAEhD,MAAM,CAAU,aAAa,GAAqC;QACtE,OAAO,EAAE;YACL,QAAQ,EAAE,CAAC,mCAAkB,CAAC,QAAQ,CAAC;YACvC,QAAQ,EAAE,CAAC,qCAAoB,CAAC,IAAI,EAAE,qCAAoB,CAAC,IAAI,EAAE,qCAAoB,CAAC,IAAI,CAAC;SAC9F;KACJ,CAAC;IAKF,MAAM,CAAC,UAAU,CAAC,MAAwC;QACtD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IACvD,CAAC;IAKD,MAAM,CAAC,UAAU;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,aAAa,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAKD,MAAM,CAAC,SAAS;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,CAAC;IAKD,MAAM,CAAC,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC;IAKD,MAAM,CAAC,GAAG,CACN,GAAM;QAEN,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAKD,MAAM,CAAC,uBAAuB,CAAC,MAA0B;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;IAC/D,CAAC;IAKD,MAAM,CAAC,uBAAuB,CAAC,QAA8B;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;IACjE,CAAC;IAKD,MAAM,CAAC,yBAAyB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,QAAS,CAAC;IAC7E,CAAC;IAKD,MAAM,CAAC,yBAAyB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,QAAS,CAAC;IAC7E,CAAC;IAKD,MAAM,CAAC,wBAAwB,CAAC,MAA0B;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAKD,MAAM,CAAC,wBAAwB,CAAC,QAA8B;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAKD,MAAM,CAAC,gBAAgB;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC;IAChD,CAAC;;AAzGQ,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CA0GjC"}
1
+ {"version":3,"file":"template-config.service.js","sourceRoot":"","sources":["../../../src/lib/services/template-config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AAMpD,0CAA6D;AAStD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAGT;IAFrB,YAEqB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;IACjD,CAAC;IAGJ,UAAU;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,uBAAuB,CAAC,MAA0B;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,uBAAuB,CAAC,QAA8B;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,yBAAyB;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;IACxC,CAAC;IAED,yBAAyB;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;IACxC,CAAC;IAED,wBAAwB,CAAC,MAA0B;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5D,CAAC;IAED,wBAAwB,CAAC,QAA8B;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;CACJ,CAAA;AA1CY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;IAGJ,WAAA,IAAA,eAAM,EAAC,yCAA8B,CAAC,CAAA;;GAFlC,qBAAqB,CA0CjC"}