@punks/backend-entity-manager 0.0.141 → 0.0.142

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.
@@ -30,3 +30,7 @@ export interface IEmailProvider<TTemplateData> {
30
30
  sendTemplatedEmail<TPayload, TAugmentedPayload>(input: TemplatedEmailInput<TPayload>, template: IEmailTemplate<TTemplateData, TPayload, TAugmentedPayload>): Promise<void>;
31
31
  sendHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
32
32
  }
33
+ export interface IEmailLogger {
34
+ logTemplatedEmail<TPayload>(input: TemplatedEmailInput<TPayload>): Promise<void>;
35
+ logHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
36
+ }
@@ -6,3 +6,7 @@ export interface EmailProviderProps {
6
6
  providerId: string;
7
7
  }
8
8
  export declare const WpEmailProvider: (providerId: string) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
9
+ export interface EmailLoggerProps {
10
+ providerId: string;
11
+ }
12
+ export declare const WpEmailLogger: (providerId: string) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -4,7 +4,7 @@ export { WpEntityActions, EntityActionsProps } from "./actions";
4
4
  export { WpEntityAdapter, EntityAdapterProps } from "./adapter";
5
5
  export { WpEntityConnector, EntityConnectorProps } from "./connector";
6
6
  export { WpEntityConverter, EntityConverterProps } from "./converter";
7
- export { WpEmailTemplate, EmailTemplateProps } from "./email";
7
+ export { WpEmailTemplate, EmailTemplateProps, WpEmailLogger, EmailLoggerProps, WpEmailProvider, EmailProviderProps, } from "./email";
8
8
  export { WpEntity, EntityProps } from "./entity";
9
9
  export { WpFileProvider, FileProviderProps, WpFileReferenceRepository, FileReferenceRepositoryProps, } from "./files";
10
10
  export { WpAppInitializer } from "./initializer";
@@ -16,6 +16,7 @@ export declare const EntityManagerSymbols: {
16
16
  EntityVersioningProvider: symbol;
17
17
  EmailProvider: symbol;
18
18
  EmailTemplate: symbol;
19
+ EmailLogger: symbol;
19
20
  BucketProvider: symbol;
20
21
  FileProvider: symbol;
21
22
  FileReferenceRepository: symbol;
@@ -24,6 +24,7 @@ export declare class EntityManagerInitializer {
24
24
  private registerBucketProviders;
25
25
  private registerFilesReferenceRepositoryProviders;
26
26
  private registerEventTrackingProviders;
27
+ private registerEmailLogger;
27
28
  private registerVersioningProviders;
28
29
  private registerEmailProviders;
29
30
  private registerEmailTemplates;
@@ -43,6 +44,7 @@ export declare class EntityManagerInitializer {
43
44
  private discoverEmailTemplates;
44
45
  private discoverEmailProviders;
45
46
  private discoverEventTrackingProviders;
47
+ private discoverEmailLogger;
46
48
  private discoverBucketProviders;
47
49
  private discoverFileProviders;
48
50
  private discoverFilesReferenceRepositoryProviders;
@@ -8,4 +8,5 @@ export declare class EmailService {
8
8
  private getTemplate;
9
9
  private get templates();
10
10
  private get provider();
11
+ private get logger();
11
12
  }
@@ -1,4 +1,4 @@
1
- import { IAuthenticationContext, IAuthenticationContextProvider, IBucketProvider, IEmailProvider, IEmailTemplatesCollection, IEntityFacets, IEntitySerializer, IEntitySnapshotService, IEntityVersioningProvider, IEventLog, IEventsTracker, IFileProvider, IFilesReferenceRepository } from "../abstractions";
1
+ import { IAuthenticationContext, IAuthenticationContextProvider, IBucketProvider, IEmailLogger, IEmailProvider, IEmailTemplatesCollection, IEntityFacets, IEntitySerializer, IEntitySnapshotService, IEntityVersioningProvider, IEventLog, IEventsTracker, IFileProvider, IFilesReferenceRepository } from "../abstractions";
2
2
  import { IEntitiesCountAction, IEntitiesDeleteAction, IEntitiesExportAction, IEntitiesImportAction, IEntitiesSampleDownloadAction, IEntitiesSearchAction, IEntityActions, IEntityCreateAction, IEntityDeleteAction, IEntityExistsAction, IEntityGetAction, IEntityUpdateAction, IEntityUpsertAction, IEntityVersionsSearchAction } from "../abstractions/actions";
3
3
  import { IEntityAdapter } from "../abstractions/adapters";
4
4
  import { IEntityAuthorizationMiddleware } from "../abstractions/authorization";
@@ -93,6 +93,8 @@ export declare class EntitiesServiceLocator {
93
93
  registerEventsTracker<TEventsTracker extends IEventsTracker<TEventLog>, TEventLog extends IEventLog<unknown>>(instance: TEventsTracker): void;
94
94
  resolveEmailTemplatesCollection(): IEmailTemplatesCollection;
95
95
  registerEmailTemplatesCollection(instance: IEmailTemplatesCollection): void;
96
+ resolveEmailLogger(): IEmailLogger;
97
+ registerEmailLogger(instance: IEmailLogger): void;
96
98
  resolvePipelinesController(): IPipelinesController;
97
99
  registerPipelinesController(instance: IPipelinesController): void;
98
100
  resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
@@ -85,6 +85,7 @@ export declare const GlobalServices: {
85
85
  };
86
86
  Plugins: {
87
87
  IEmailProvider: string;
88
+ IEmailLogger: string;
88
89
  IEmailTemplatesCollection: string;
89
90
  IBucketProvider: string;
90
91
  IFileProvider: string;
package/dist/esm/index.js CHANGED
@@ -1142,6 +1142,7 @@ const GlobalServices = {
1142
1142
  },
1143
1143
  Plugins: {
1144
1144
  IEmailProvider: "IEmailProvider",
1145
+ IEmailLogger: "IEmailLogger",
1145
1146
  IEmailTemplatesCollection: "IEmailTemplatesCollection",
1146
1147
  IBucketProvider: "IBucketProvider",
1147
1148
  IFileProvider: "IFileProvider",
@@ -1381,6 +1382,12 @@ class EntitiesServiceLocator {
1381
1382
  registerEmailTemplatesCollection(instance) {
1382
1383
  this.provider.register(GlobalServices.Plugins.IEmailTemplatesCollection, instance);
1383
1384
  }
1385
+ resolveEmailLogger() {
1386
+ return this.provider.resolve(GlobalServices.Plugins.IEmailLogger);
1387
+ }
1388
+ registerEmailLogger(instance) {
1389
+ this.provider.register(GlobalServices.Plugins.IEmailLogger, instance);
1390
+ }
1384
1391
  resolvePipelinesController() {
1385
1392
  return this.provider.resolve(GlobalServices.Pipelines.IPipelineController);
1386
1393
  }
@@ -2339,6 +2346,7 @@ const EntityManagerSymbols = {
2339
2346
  EntityVersioningProvider: Symbol.for("WP:ENTITY_VERSIONING_PROVIDER"),
2340
2347
  EmailProvider: Symbol.for("WP:EMAIL_PROVIDER"),
2341
2348
  EmailTemplate: Symbol.for("WP:EMAIL_TEMPLATE"),
2349
+ EmailLogger: Symbol.for("WP:EMAIL_LOGGER"),
2342
2350
  BucketProvider: Symbol.for("WP:BUCKET_PROVIDER"),
2343
2351
  FileProvider: Symbol.for("WP:FILE_PROVIDER"),
2344
2352
  FileReferenceRepository: Symbol.for("WP:FILE_REFERENCE_REPO"),
@@ -2380,6 +2388,9 @@ const WpEmailTemplate = (templateId) => applyDecorators(Injectable(), SetMetadat
2380
2388
  const WpEmailProvider = (providerId) => applyDecorators(Injectable(), SetMetadata(EntityManagerSymbols.EmailProvider, {
2381
2389
  providerId,
2382
2390
  }));
2391
+ const WpEmailLogger = (providerId) => applyDecorators(Injectable(), SetMetadata(EntityManagerSymbols.EmailLogger, {
2392
+ providerId,
2393
+ }));
2383
2394
 
2384
2395
  const WpEntity = (name, props = {}) => applyDecorators(SetMetadata(EntityManagerSymbols.Entity, {
2385
2396
  name,
@@ -20283,9 +20294,11 @@ let EmailService = class EmailService {
20283
20294
  async sendTemplatedEmail(input) {
20284
20295
  const template = this.getTemplate(input.templateId);
20285
20296
  await this.provider.sendTemplatedEmail(input, template);
20297
+ await this.logger.logTemplatedEmail(input);
20286
20298
  }
20287
20299
  async sendHtmlEmail(input) {
20288
20300
  await this.provider.sendHtmlEmail(input);
20301
+ await this.logger.logHtmlEmail(input);
20289
20302
  }
20290
20303
  getTemplate(templateId) {
20291
20304
  const template = this.templates.getTemplate(templateId);
@@ -20306,6 +20319,12 @@ let EmailService = class EmailService {
20306
20319
  .getEntitiesServicesLocator()
20307
20320
  .resolveEmailProvider();
20308
20321
  }
20322
+ get logger() {
20323
+ return this.registry
20324
+ .getContainer()
20325
+ .getEntitiesServicesLocator()
20326
+ .resolveEmailLogger();
20327
+ }
20309
20328
  };
20310
20329
  EmailService = __decorate([
20311
20330
  Injectable(),
@@ -21424,6 +21443,7 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
21424
21443
  await this.registerEmailProviders();
21425
21444
  await this.registerEventTrackingProviders();
21426
21445
  await this.registerVersioningProviders();
21446
+ await this.registerEmailLogger();
21427
21447
  await this.registerFilesReferenceRepositoryProviders();
21428
21448
  await this.registerFileProviders();
21429
21449
  await this.registerBucketProviders();
@@ -21569,6 +21589,18 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
21569
21589
  .registerEventsTracker(providers[0].discoveredClass.instance);
21570
21590
  this.logger.log(`Events tracker ${providers[0].discoveredClass.name} registered 🚜`);
21571
21591
  }
21592
+ async registerEmailLogger() {
21593
+ const loggers = await this.discoverEmailLogger();
21594
+ if (!loggers.length) {
21595
+ this.logger.warn("No email loggers ⚠️");
21596
+ return;
21597
+ }
21598
+ this.registry
21599
+ .getContainer()
21600
+ .getEntitiesServicesLocator()
21601
+ .registerEmailLogger(loggers[0].discoveredClass.instance);
21602
+ this.logger.log(`Email logger ${loggers[0].discoveredClass.name} registered 🚜`);
21603
+ }
21572
21604
  async registerVersioningProviders() {
21573
21605
  const providers = await this.discoverVersioningProviders();
21574
21606
  if (!providers.length) {
@@ -21660,6 +21692,9 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
21660
21692
  async discoverEventTrackingProviders() {
21661
21693
  return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EventsTracker);
21662
21694
  }
21695
+ async discoverEmailLogger() {
21696
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailLogger);
21697
+ }
21663
21698
  async discoverBucketProviders() {
21664
21699
  return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.BucketProvider);
21665
21700
  }
@@ -28160,5 +28195,5 @@ InMemoryEmailProvider = __decorate([
28160
28195
  WpEmailProvider("in-memory")
28161
28196
  ], InMemoryEmailProvider);
28162
28197
 
28163
- export { AUTHENTICATION_EVENTS_NAMESPACE, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, AuthGuard, Authenticated, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsBucketModule, AwsEmailModule, AwsS3BucketError as AwsS2BucketError, AwsS3BucketProvider, AwsSesEmailTemplate, BooleanFacet, BooleanFacetItem, BucketItemType, CurrentUser, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntitySeeder, EntitySerializationFormat, EntitySerializer, EntitySnapshotService, EntityVersionOperation, EventsService, FilesService, IEntityVersionsCursor, InMemoryBucketProvider, InMemoryEmailProvider, InvalidCredentialsError, MemberOf, MissingEntityIdError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestEntitySerializer, NestEntitySnapshotService, NestPipelineTemplate, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, NumericFacet, NumericFacetItem, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, PipelineController, PipelineErrorType, PipelineStatus, PipelineStepErrorType, PipelinesBuilder, PipelinesRunner, PlatformEvents, Public, QueryBuilderBase, QueryBuilderOperation, ReplicationMode, Roles, SendgridEmailModule, SendgridEmailTemplate, SortDirection, StringFacet, StringFacetItem, TrackingService, UserCreationError, UserRegistrationError, WpAppInitializer, WpAwsSesEmailTemplate, WpBucketProvider, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEntitySerializer, WpEntitySnapshotService, WpEntityVersioningProvider, WpEventsTracker, WpFileProvider, WpFileReferenceRepository, WpPipeline, WpRolesService, WpSendgridEmailTemplate, WpUserRolesService, WpUserService, buildRolesGuard, createContainer, createExpressFileResponse, getLocalizedText, newUuid, renderHandlebarsTemplate, toEntitiesImportInput };
28198
+ export { AUTHENTICATION_EVENTS_NAMESPACE, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, AuthGuard, Authenticated, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsBucketModule, AwsEmailModule, AwsS3BucketError as AwsS2BucketError, AwsS3BucketProvider, AwsSesEmailTemplate, BooleanFacet, BooleanFacetItem, BucketItemType, CurrentUser, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntitySeeder, EntitySerializationFormat, EntitySerializer, EntitySnapshotService, EntityVersionOperation, EventsService, FilesService, IEntityVersionsCursor, InMemoryBucketProvider, InMemoryEmailProvider, InvalidCredentialsError, MemberOf, MissingEntityIdError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestEntitySerializer, NestEntitySnapshotService, NestPipelineTemplate, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, NumericFacet, NumericFacetItem, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, PipelineController, PipelineErrorType, PipelineStatus, PipelineStepErrorType, PipelinesBuilder, PipelinesRunner, PlatformEvents, Public, QueryBuilderBase, QueryBuilderOperation, ReplicationMode, Roles, SendgridEmailModule, SendgridEmailTemplate, SortDirection, StringFacet, StringFacetItem, TrackingService, UserCreationError, UserRegistrationError, WpAppInitializer, WpAwsSesEmailTemplate, WpBucketProvider, WpEmailLogger, WpEmailProvider, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEntitySerializer, WpEntitySnapshotService, WpEntityVersioningProvider, WpEventsTracker, WpFileProvider, WpFileReferenceRepository, WpPipeline, WpRolesService, WpSendgridEmailTemplate, WpUserRolesService, WpUserService, buildRolesGuard, createContainer, createExpressFileResponse, getLocalizedText, newUuid, renderHandlebarsTemplate, toEntitiesImportInput };
28164
28199
  //# sourceMappingURL=index.js.map