@punks/backend-entity-manager 0.0.340 → 0.0.342

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/dist/cjs/index.js CHANGED
@@ -1343,6 +1343,7 @@ const GlobalServices = {
1343
1343
  ICacheInstance: "ICacheInstance",
1344
1344
  IEmailProvider: "IEmailProvider",
1345
1345
  IEmailLogger: "IEmailLogger",
1346
+ IEmailTemplateMiddleware: "IEmailTemplateMiddleware",
1346
1347
  IEmailTemplatesCollection: "IEmailTemplatesCollection",
1347
1348
  IBucketProvider: "IBucketProvider",
1348
1349
  ISecretsProvider: "ISecretsProvider",
@@ -1644,6 +1645,14 @@ class EntitiesServiceLocator {
1644
1645
  registerEmailTemplatesCollection(instance) {
1645
1646
  this.provider.register(GlobalServices.Plugins.IEmailTemplatesCollection, instance);
1646
1647
  }
1648
+ resolveEmailTemplateMiddleware() {
1649
+ return this.provider.resolve(GlobalServices.Plugins.IEmailTemplateMiddleware, {
1650
+ optional: true,
1651
+ });
1652
+ }
1653
+ registerEmailTemplateMiddleware(instance) {
1654
+ this.provider.register(GlobalServices.Plugins.IEmailTemplateMiddleware, instance);
1655
+ }
1647
1656
  resolveEmailLogger() {
1648
1657
  return this.provider.resolve(GlobalServices.Plugins.IEmailLogger);
1649
1658
  }
@@ -3982,6 +3991,7 @@ const EntityManagerSymbols = {
3982
3991
  EmailProvider: Symbol.for("WP:EMAIL_PROVIDER"),
3983
3992
  EmailTemplate: Symbol.for("WP:EMAIL_TEMPLATE"),
3984
3993
  EmailLogger: Symbol.for("WP:EMAIL_LOGGER"),
3994
+ EmailTemplateMiddleware: Symbol.for("WP:EMAIL_TEMPLATE_MIDDLEWARE"),
3985
3995
  BucketProvider: Symbol.for("WP:BUCKET_PROVIDER"),
3986
3996
  MediaProvider: Symbol.for("WP:MEDIA_PROVIDER"),
3987
3997
  MediaReferenceRepository: Symbol.for("WP:MEDIA_REFERENCE_REPOSITORY"),
@@ -4044,6 +4054,7 @@ const WpEmailProvider = (providerId) => common.applyDecorators(common.Injectable
4044
4054
  providerId,
4045
4055
  }));
4046
4056
  const WpEmailLogger = () => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.EmailLogger, {}));
4057
+ const WpEmailTemplateMiddleware = () => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.EmailTemplateMiddleware, {}));
4047
4058
 
4048
4059
  const WpEntity = (name, props = {}) => common.applyDecorators(common.SetMetadata(EntityManagerSymbols.Entity, {
4049
4060
  name,
@@ -22424,8 +22435,13 @@ exports.EmailService = class EmailService {
22424
22435
  }
22425
22436
  async sendTemplatedEmail(input) {
22426
22437
  const template = this.getTemplate(input.templateId);
22427
- await this.provider.sendTemplatedEmail(input, template);
22428
- await this.logger.logTemplatedEmail(input);
22438
+ const transformedPayload = this.templateMiddleware?.processPayload(input.payload) ?? input.payload;
22439
+ const sendInput = {
22440
+ ...input,
22441
+ payload: transformedPayload,
22442
+ };
22443
+ await this.provider.sendTemplatedEmail(sendInput, template);
22444
+ await this.logger.logTemplatedEmail(sendInput);
22429
22445
  }
22430
22446
  async sendHtmlEmail(input) {
22431
22447
  await this.provider.sendHtmlEmail(input);
@@ -22438,6 +22454,12 @@ exports.EmailService = class EmailService {
22438
22454
  }
22439
22455
  return template;
22440
22456
  }
22457
+ get templateMiddleware() {
22458
+ return this.registry
22459
+ .getContainer()
22460
+ .getEntitiesServicesLocator()
22461
+ .resolveEmailTemplateMiddleware();
22462
+ }
22441
22463
  get templates() {
22442
22464
  return this.registry
22443
22465
  .getContainer()
@@ -23504,6 +23526,7 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
23504
23526
  await this.registerEventTrackingProviders();
23505
23527
  await this.registerVersioningProviders();
23506
23528
  await this.registerEmailLogger();
23529
+ await this.registerEmailTemplateMiddleware();
23507
23530
  await this.registerFilesReferenceRepositoryProviders();
23508
23531
  await this.registerFileProviders();
23509
23532
  await this.registerMediaProviders();
@@ -23753,6 +23776,17 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
23753
23776
  .registerEmailLogger(loggers[0].discoveredClass.instance);
23754
23777
  this.logger.log(`Email logger ${loggers[0].discoveredClass.name} registered 🚜`);
23755
23778
  }
23779
+ async registerEmailTemplateMiddleware() {
23780
+ const loggers = await this.discoverEmailTemplateMiddleware();
23781
+ if (!loggers.length) {
23782
+ return;
23783
+ }
23784
+ this.registry
23785
+ .getContainer()
23786
+ .getEntitiesServicesLocator()
23787
+ .registerEmailTemplateMiddleware(loggers[0].discoveredClass.instance);
23788
+ this.logger.log(`Email template middleware ${loggers[0].discoveredClass.name} registered 🚜`);
23789
+ }
23756
23790
  async registerVersioningProviders() {
23757
23791
  const providers = await this.discoverVersioningProviders();
23758
23792
  if (!providers.length) {
@@ -23868,6 +23902,9 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
23868
23902
  async discoverEmailLogger() {
23869
23903
  return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailLogger);
23870
23904
  }
23905
+ async discoverEmailTemplateMiddleware() {
23906
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailTemplateMiddleware);
23907
+ }
23871
23908
  async discoverOperationLockService() {
23872
23909
  return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.OperationLockService);
23873
23910
  }
@@ -44184,6 +44221,7 @@ exports.WpCacheInstance = WpCacheInstance;
44184
44221
  exports.WpEmailLogger = WpEmailLogger;
44185
44222
  exports.WpEmailProvider = WpEmailProvider;
44186
44223
  exports.WpEmailTemplate = WpEmailTemplate;
44224
+ exports.WpEmailTemplateMiddleware = WpEmailTemplateMiddleware;
44187
44225
  exports.WpEntity = WpEntity;
44188
44226
  exports.WpEntityActions = WpEntityActions;
44189
44227
  exports.WpEntityAdapter = WpEntityAdapter;