@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 +40 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/email.d.ts +3 -0
- package/dist/cjs/types/platforms/nest/decorators/email.d.ts +3 -0
- package/dist/cjs/types/platforms/nest/decorators/index.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/services/email/index.d.ts +1 -0
- package/dist/cjs/types/providers/services.d.ts +3 -1
- package/dist/cjs/types/symbols/ioc.d.ts +1 -0
- package/dist/esm/index.js +40 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/email.d.ts +3 -0
- package/dist/esm/types/platforms/nest/decorators/email.d.ts +3 -0
- package/dist/esm/types/platforms/nest/decorators/index.d.ts +1 -1
- package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +1 -0
- package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/services/email/index.d.ts +1 -0
- package/dist/esm/types/providers/services.d.ts +3 -1
- package/dist/esm/types/symbols/ioc.d.ts +1 -0
- package/dist/index.d.ts +13 -1
- package/package.json +1 -1
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
export interface IEmailTemplateMiddleware {
|
|
2
|
+
processPayload(payload: unknown): Promise<unknown>;
|
|
3
|
+
}
|
|
1
4
|
export interface IEmailTemplate<TTemplateData, TPayload, TAugmentedPayload = TPayload> {
|
|
2
5
|
processPayload(payload: TPayload): Promise<TAugmentedPayload>;
|
|
3
6
|
getTemplateData(payload: TAugmentedPayload): Promise<TTemplateData>;
|
|
@@ -9,3 +9,6 @@ export declare const WpEmailProvider: (providerId: string) => <TFunction extends
|
|
|
9
9
|
export interface EmailLoggerProps {
|
|
10
10
|
}
|
|
11
11
|
export declare const WpEmailLogger: () => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
12
|
+
export interface EmailTemplateMiddlewareProps {
|
|
13
|
+
}
|
|
14
|
+
export declare const WpEmailTemplateMiddleware: () => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -7,7 +7,7 @@ export { WpEntityAdapter, EntityAdapterProps } from "./adapter";
|
|
|
7
7
|
export { WpEntityConnector, EntityConnectorProps } from "./connector";
|
|
8
8
|
export { WpEntityConnectorMapper, EntityConnectorMapperProps, } from "./connectorMapper";
|
|
9
9
|
export { WpEntityConverter, EntityConverterProps } from "./converter";
|
|
10
|
-
export { WpEmailTemplate, EmailTemplateProps, WpEmailLogger, EmailLoggerProps, WpEmailProvider, EmailProviderProps, } from "./email";
|
|
10
|
+
export { WpEmailTemplate, EmailTemplateProps, WpEmailLogger, EmailLoggerProps, WpEmailProvider, EmailProviderProps, WpEmailTemplateMiddleware, EmailTemplateMiddlewareProps, } from "./email";
|
|
11
11
|
export { WpEntity, EntityProps } from "./entity";
|
|
12
12
|
export { WpFileProvider, FileProviderProps, WpFileReferenceRepository, FileReferenceRepositoryProps, } from "./files";
|
|
13
13
|
export { WpAppInitializer } from "./initializer";
|
|
@@ -31,6 +31,7 @@ export declare class EntityManagerInitializer {
|
|
|
31
31
|
private registerFilesReferenceRepositoryProviders;
|
|
32
32
|
private registerEventTrackingProviders;
|
|
33
33
|
private registerEmailLogger;
|
|
34
|
+
private registerEmailTemplateMiddleware;
|
|
34
35
|
private registerVersioningProviders;
|
|
35
36
|
private registerEmailProviders;
|
|
36
37
|
private registerEmailTemplates;
|
|
@@ -55,6 +56,7 @@ export declare class EntityManagerInitializer {
|
|
|
55
56
|
private discoverEmailProviders;
|
|
56
57
|
private discoverEventTrackingProviders;
|
|
57
58
|
private discoverEmailLogger;
|
|
59
|
+
private discoverEmailTemplateMiddleware;
|
|
58
60
|
private discoverOperationLockService;
|
|
59
61
|
private discoverBucketProviders;
|
|
60
62
|
private discoverSecretsProviders;
|
|
@@ -6,6 +6,7 @@ export declare class EmailService {
|
|
|
6
6
|
sendTemplatedEmail<TPayload>(input: TemplatedEmailInput<TPayload>): Promise<void>;
|
|
7
7
|
sendHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
|
|
8
8
|
private getTemplate;
|
|
9
|
+
private get templateMiddleware();
|
|
9
10
|
private get templates();
|
|
10
11
|
private get provider();
|
|
11
12
|
private get logger();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IAuthenticationContext, IAuthenticationContextProvider, IAuthenticationMiddleware, IBucketProvider, ICacheInstance, IEmailLogger, IEmailProvider, IEmailTemplatesCollection, IEntityFacets, IEntitySerializer, IEntitySnapshotService, IEntityVersioningProvider, IEventLog, IEventsTracker, IFileProvider, IFilesReferenceRepository, IMediaFolderRepository, IMediaProvider, IMediaReferenceRepository, IOperationLockService, ISecretsProvider } from "../abstractions";
|
|
1
|
+
import { IAuthenticationContext, IAuthenticationContextProvider, IAuthenticationMiddleware, IBucketProvider, ICacheInstance, IEmailLogger, IEmailProvider, IEmailTemplateMiddleware, IEmailTemplatesCollection, IEntityFacets, IEntitySerializer, IEntitySnapshotService, IEntityVersioningProvider, IEventLog, IEventsTracker, IFileProvider, IFilesReferenceRepository, IMediaFolderRepository, IMediaProvider, IMediaReferenceRepository, IOperationLockService, ISecretsProvider } 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";
|
|
@@ -110,6 +110,8 @@ export declare class EntitiesServiceLocator {
|
|
|
110
110
|
registerOperationLockService(instance: IOperationLockService): void;
|
|
111
111
|
resolveEmailTemplatesCollection(): IEmailTemplatesCollection;
|
|
112
112
|
registerEmailTemplatesCollection(instance: IEmailTemplatesCollection): void;
|
|
113
|
+
resolveEmailTemplateMiddleware(): IEmailTemplateMiddleware | undefined;
|
|
114
|
+
registerEmailTemplateMiddleware(instance: IEmailTemplateMiddleware): void;
|
|
113
115
|
resolveEmailLogger(): IEmailLogger;
|
|
114
116
|
registerEmailLogger(instance: IEmailLogger): void;
|
|
115
117
|
resolvePipelinesController(): IPipelinesController;
|
package/dist/esm/index.js
CHANGED
|
@@ -1328,6 +1328,7 @@ const GlobalServices = {
|
|
|
1328
1328
|
ICacheInstance: "ICacheInstance",
|
|
1329
1329
|
IEmailProvider: "IEmailProvider",
|
|
1330
1330
|
IEmailLogger: "IEmailLogger",
|
|
1331
|
+
IEmailTemplateMiddleware: "IEmailTemplateMiddleware",
|
|
1331
1332
|
IEmailTemplatesCollection: "IEmailTemplatesCollection",
|
|
1332
1333
|
IBucketProvider: "IBucketProvider",
|
|
1333
1334
|
ISecretsProvider: "ISecretsProvider",
|
|
@@ -1629,6 +1630,14 @@ class EntitiesServiceLocator {
|
|
|
1629
1630
|
registerEmailTemplatesCollection(instance) {
|
|
1630
1631
|
this.provider.register(GlobalServices.Plugins.IEmailTemplatesCollection, instance);
|
|
1631
1632
|
}
|
|
1633
|
+
resolveEmailTemplateMiddleware() {
|
|
1634
|
+
return this.provider.resolve(GlobalServices.Plugins.IEmailTemplateMiddleware, {
|
|
1635
|
+
optional: true,
|
|
1636
|
+
});
|
|
1637
|
+
}
|
|
1638
|
+
registerEmailTemplateMiddleware(instance) {
|
|
1639
|
+
this.provider.register(GlobalServices.Plugins.IEmailTemplateMiddleware, instance);
|
|
1640
|
+
}
|
|
1632
1641
|
resolveEmailLogger() {
|
|
1633
1642
|
return this.provider.resolve(GlobalServices.Plugins.IEmailLogger);
|
|
1634
1643
|
}
|
|
@@ -3967,6 +3976,7 @@ const EntityManagerSymbols = {
|
|
|
3967
3976
|
EmailProvider: Symbol.for("WP:EMAIL_PROVIDER"),
|
|
3968
3977
|
EmailTemplate: Symbol.for("WP:EMAIL_TEMPLATE"),
|
|
3969
3978
|
EmailLogger: Symbol.for("WP:EMAIL_LOGGER"),
|
|
3979
|
+
EmailTemplateMiddleware: Symbol.for("WP:EMAIL_TEMPLATE_MIDDLEWARE"),
|
|
3970
3980
|
BucketProvider: Symbol.for("WP:BUCKET_PROVIDER"),
|
|
3971
3981
|
MediaProvider: Symbol.for("WP:MEDIA_PROVIDER"),
|
|
3972
3982
|
MediaReferenceRepository: Symbol.for("WP:MEDIA_REFERENCE_REPOSITORY"),
|
|
@@ -4029,6 +4039,7 @@ const WpEmailProvider = (providerId) => applyDecorators(Injectable(), SetMetadat
|
|
|
4029
4039
|
providerId,
|
|
4030
4040
|
}));
|
|
4031
4041
|
const WpEmailLogger = () => applyDecorators(Injectable(), SetMetadata(EntityManagerSymbols.EmailLogger, {}));
|
|
4042
|
+
const WpEmailTemplateMiddleware = () => applyDecorators(Injectable(), SetMetadata(EntityManagerSymbols.EmailTemplateMiddleware, {}));
|
|
4032
4043
|
|
|
4033
4044
|
const WpEntity = (name, props = {}) => applyDecorators(SetMetadata(EntityManagerSymbols.Entity, {
|
|
4034
4045
|
name,
|
|
@@ -22409,8 +22420,13 @@ let EmailService = class EmailService {
|
|
|
22409
22420
|
}
|
|
22410
22421
|
async sendTemplatedEmail(input) {
|
|
22411
22422
|
const template = this.getTemplate(input.templateId);
|
|
22412
|
-
|
|
22413
|
-
|
|
22423
|
+
const transformedPayload = this.templateMiddleware?.processPayload(input.payload) ?? input.payload;
|
|
22424
|
+
const sendInput = {
|
|
22425
|
+
...input,
|
|
22426
|
+
payload: transformedPayload,
|
|
22427
|
+
};
|
|
22428
|
+
await this.provider.sendTemplatedEmail(sendInput, template);
|
|
22429
|
+
await this.logger.logTemplatedEmail(sendInput);
|
|
22414
22430
|
}
|
|
22415
22431
|
async sendHtmlEmail(input) {
|
|
22416
22432
|
await this.provider.sendHtmlEmail(input);
|
|
@@ -22423,6 +22439,12 @@ let EmailService = class EmailService {
|
|
|
22423
22439
|
}
|
|
22424
22440
|
return template;
|
|
22425
22441
|
}
|
|
22442
|
+
get templateMiddleware() {
|
|
22443
|
+
return this.registry
|
|
22444
|
+
.getContainer()
|
|
22445
|
+
.getEntitiesServicesLocator()
|
|
22446
|
+
.resolveEmailTemplateMiddleware();
|
|
22447
|
+
}
|
|
22426
22448
|
get templates() {
|
|
22427
22449
|
return this.registry
|
|
22428
22450
|
.getContainer()
|
|
@@ -23489,6 +23511,7 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
23489
23511
|
await this.registerEventTrackingProviders();
|
|
23490
23512
|
await this.registerVersioningProviders();
|
|
23491
23513
|
await this.registerEmailLogger();
|
|
23514
|
+
await this.registerEmailTemplateMiddleware();
|
|
23492
23515
|
await this.registerFilesReferenceRepositoryProviders();
|
|
23493
23516
|
await this.registerFileProviders();
|
|
23494
23517
|
await this.registerMediaProviders();
|
|
@@ -23738,6 +23761,17 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
23738
23761
|
.registerEmailLogger(loggers[0].discoveredClass.instance);
|
|
23739
23762
|
this.logger.log(`Email logger ${loggers[0].discoveredClass.name} registered 🚜`);
|
|
23740
23763
|
}
|
|
23764
|
+
async registerEmailTemplateMiddleware() {
|
|
23765
|
+
const loggers = await this.discoverEmailTemplateMiddleware();
|
|
23766
|
+
if (!loggers.length) {
|
|
23767
|
+
return;
|
|
23768
|
+
}
|
|
23769
|
+
this.registry
|
|
23770
|
+
.getContainer()
|
|
23771
|
+
.getEntitiesServicesLocator()
|
|
23772
|
+
.registerEmailTemplateMiddleware(loggers[0].discoveredClass.instance);
|
|
23773
|
+
this.logger.log(`Email template middleware ${loggers[0].discoveredClass.name} registered 🚜`);
|
|
23774
|
+
}
|
|
23741
23775
|
async registerVersioningProviders() {
|
|
23742
23776
|
const providers = await this.discoverVersioningProviders();
|
|
23743
23777
|
if (!providers.length) {
|
|
@@ -23853,6 +23887,9 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
23853
23887
|
async discoverEmailLogger() {
|
|
23854
23888
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailLogger);
|
|
23855
23889
|
}
|
|
23890
|
+
async discoverEmailTemplateMiddleware() {
|
|
23891
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailTemplateMiddleware);
|
|
23892
|
+
}
|
|
23856
23893
|
async discoverOperationLockService() {
|
|
23857
23894
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.OperationLockService);
|
|
23858
23895
|
}
|
|
@@ -44104,5 +44141,5 @@ InMemorySecretsProvider = __decorate([
|
|
|
44104
44141
|
WpSecretsProvider("inMemorySecretsManager")
|
|
44105
44142
|
], InMemorySecretsProvider);
|
|
44106
44143
|
|
|
44107
|
-
export { AUTHENTICATION_EVENTS_NAMESPACE, ApiKeyAccess, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSession, AppSessionMiddleware, AppSessionService, AuthGuard, Authenticated, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsBucketModule, AwsDynamoDbModule, AwsEmailModule, AwsJobsModule, AwsS3BucketError, AwsS3BucketProvider, AwsS3MediaError, AwsS3MediaModule, AwsS3MediaProvider, AwsSecretsModule, AwsSecretsProvider, AwsSesEmailTemplate, BucketItemType, CacheService, ConnectorMode, CurrentUser, CustomDiscoveryModule, CustomDiscoveryService, DynamoDbCacheInstance, DynamoDbCollection, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntitySeeder, EntitySerializationFormat, EntitySerializer, EntitySnapshotService, EntityVersionOperation, EventsService, ExclusiveOperationResult, FilesManager, IEntityVersionsCursor, InMemoryBucketProvider, InMemoryEmailProvider, InMemoryMediaProvider, InMemorySecretsProvider, InvalidCredentialsError, JobConcurrency, JobInstance, JobProviderState, JobRunType, JobSchedule, JobStatus, JobsModule, JobsService, LockNotFoundError, MediaLibraryService, MemberOf, MissingEntityIdError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestEntitySerializer, NestEntitySnapshotService, NestPipelineTemplate, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, OperationLockService, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, Permissions, PipelineController, PipelineErrorType, PipelineInvocationError, PipelineStatus, PipelineStepErrorType, PipelinesBuilder, PipelinesRunner, PlatformEvents, Public, QueryBuilderBase, QueryBuilderOperation, ReplicationMode, Roles, SanityMediaError, SanityMediaModule, SanityMediaProvider, SecretsService, SendgridEmailModule, SendgridEmailTemplate, SortDirection, TrackingService, TypeOrmQueryBuilder, TypeOrmRepository, TypeormCacheInstance, TypeormOperationLockRepository, UserCreationError, UserRegistrationError, WpApiKeysService, WpAppInitializer, WpAwsSesEmailTemplate, WpBucketProvider, WpCacheInstance, WpEmailLogger, WpEmailProvider, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConnectorMapper, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEntitySerializer, WpEntitySnapshotService, WpEntityVersioningProvider, WpEventsTracker, WpFileProvider, WpFileReferenceRepository, WpGlobalAuthenticationMiddleware, WpMediaFolderRepository, WpMediaProvider, WpMediaReferenceRepository, WpPermissionsService, WpPipeline, WpRolesService, WpSendgridEmailTemplate, WpUserRolesService, WpUserService, awsBatchSettings, buildPermissionsGuard, buildProviderToken, buildRolesGuard, createContainer, createExpressFileResponse, getEntityManagerProviderToken, getLocalizedText, newUuid, renderHandlebarsTemplate, sessionStorage, toEntitiesImportInput };
|
|
44144
|
+
export { AUTHENTICATION_EVENTS_NAMESPACE, ApiKeyAccess, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSession, AppSessionMiddleware, AppSessionService, AuthGuard, Authenticated, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsBucketModule, AwsDynamoDbModule, AwsEmailModule, AwsJobsModule, AwsS3BucketError, AwsS3BucketProvider, AwsS3MediaError, AwsS3MediaModule, AwsS3MediaProvider, AwsSecretsModule, AwsSecretsProvider, AwsSesEmailTemplate, BucketItemType, CacheService, ConnectorMode, CurrentUser, CustomDiscoveryModule, CustomDiscoveryService, DynamoDbCacheInstance, DynamoDbCollection, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntitySeeder, EntitySerializationFormat, EntitySerializer, EntitySnapshotService, EntityVersionOperation, EventsService, ExclusiveOperationResult, FilesManager, IEntityVersionsCursor, InMemoryBucketProvider, InMemoryEmailProvider, InMemoryMediaProvider, InMemorySecretsProvider, InvalidCredentialsError, JobConcurrency, JobInstance, JobProviderState, JobRunType, JobSchedule, JobStatus, JobsModule, JobsService, LockNotFoundError, MediaLibraryService, MemberOf, MissingEntityIdError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestEntitySerializer, NestEntitySnapshotService, NestPipelineTemplate, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, OperationLockService, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, Permissions, PipelineController, PipelineErrorType, PipelineInvocationError, PipelineStatus, PipelineStepErrorType, PipelinesBuilder, PipelinesRunner, PlatformEvents, Public, QueryBuilderBase, QueryBuilderOperation, ReplicationMode, Roles, SanityMediaError, SanityMediaModule, SanityMediaProvider, SecretsService, SendgridEmailModule, SendgridEmailTemplate, SortDirection, TrackingService, TypeOrmQueryBuilder, TypeOrmRepository, TypeormCacheInstance, TypeormOperationLockRepository, UserCreationError, UserRegistrationError, WpApiKeysService, WpAppInitializer, WpAwsSesEmailTemplate, WpBucketProvider, WpCacheInstance, WpEmailLogger, WpEmailProvider, WpEmailTemplate, WpEmailTemplateMiddleware, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConnectorMapper, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEntitySerializer, WpEntitySnapshotService, WpEntityVersioningProvider, WpEventsTracker, WpFileProvider, WpFileReferenceRepository, WpGlobalAuthenticationMiddleware, WpMediaFolderRepository, WpMediaProvider, WpMediaReferenceRepository, WpPermissionsService, WpPipeline, WpRolesService, WpSendgridEmailTemplate, WpUserRolesService, WpUserService, awsBatchSettings, buildPermissionsGuard, buildProviderToken, buildRolesGuard, createContainer, createExpressFileResponse, getEntityManagerProviderToken, getLocalizedText, newUuid, renderHandlebarsTemplate, sessionStorage, toEntitiesImportInput };
|
|
44108
44145
|
//# sourceMappingURL=index.js.map
|