@punks/backend-entity-manager 0.0.340 → 0.0.341

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"),
@@ -22424,8 +22434,13 @@ exports.EmailService = class EmailService {
22424
22434
  }
22425
22435
  async sendTemplatedEmail(input) {
22426
22436
  const template = this.getTemplate(input.templateId);
22427
- await this.provider.sendTemplatedEmail(input, template);
22428
- await this.logger.logTemplatedEmail(input);
22437
+ const transformedPayload = this.templateMiddleware?.processPayload(input.payload) ?? input.payload;
22438
+ const sendInput = {
22439
+ ...input,
22440
+ payload: transformedPayload,
22441
+ };
22442
+ await this.provider.sendTemplatedEmail(sendInput, template);
22443
+ await this.logger.logTemplatedEmail(sendInput);
22429
22444
  }
22430
22445
  async sendHtmlEmail(input) {
22431
22446
  await this.provider.sendHtmlEmail(input);
@@ -22438,6 +22453,12 @@ exports.EmailService = class EmailService {
22438
22453
  }
22439
22454
  return template;
22440
22455
  }
22456
+ get templateMiddleware() {
22457
+ return this.registry
22458
+ .getContainer()
22459
+ .getEntitiesServicesLocator()
22460
+ .resolveEmailTemplateMiddleware();
22461
+ }
22441
22462
  get templates() {
22442
22463
  return this.registry
22443
22464
  .getContainer()
@@ -23504,6 +23525,7 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
23504
23525
  await this.registerEventTrackingProviders();
23505
23526
  await this.registerVersioningProviders();
23506
23527
  await this.registerEmailLogger();
23528
+ await this.registerEmailTemplateMiddleware();
23507
23529
  await this.registerFilesReferenceRepositoryProviders();
23508
23530
  await this.registerFileProviders();
23509
23531
  await this.registerMediaProviders();
@@ -23753,6 +23775,17 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
23753
23775
  .registerEmailLogger(loggers[0].discoveredClass.instance);
23754
23776
  this.logger.log(`Email logger ${loggers[0].discoveredClass.name} registered 🚜`);
23755
23777
  }
23778
+ async registerEmailTemplateMiddleware() {
23779
+ const loggers = await this.discoverEmailTemplateMiddleware();
23780
+ if (!loggers.length) {
23781
+ return;
23782
+ }
23783
+ this.registry
23784
+ .getContainer()
23785
+ .getEntitiesServicesLocator()
23786
+ .registerEmailTemplateMiddleware(loggers[0].discoveredClass.instance);
23787
+ this.logger.log(`Email template middleware ${loggers[0].discoveredClass.name} registered 🚜`);
23788
+ }
23756
23789
  async registerVersioningProviders() {
23757
23790
  const providers = await this.discoverVersioningProviders();
23758
23791
  if (!providers.length) {
@@ -23868,6 +23901,9 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
23868
23901
  async discoverEmailLogger() {
23869
23902
  return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailLogger);
23870
23903
  }
23904
+ async discoverEmailTemplateMiddleware() {
23905
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailTemplateMiddleware);
23906
+ }
23871
23907
  async discoverOperationLockService() {
23872
23908
  return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.OperationLockService);
23873
23909
  }