@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 +38 -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/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 +38 -2
- 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/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 +10 -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;
|
|
@@ -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"),
|
|
@@ -22409,8 +22419,13 @@ let EmailService = class EmailService {
|
|
|
22409
22419
|
}
|
|
22410
22420
|
async sendTemplatedEmail(input) {
|
|
22411
22421
|
const template = this.getTemplate(input.templateId);
|
|
22412
|
-
|
|
22413
|
-
|
|
22422
|
+
const transformedPayload = this.templateMiddleware?.processPayload(input.payload) ?? input.payload;
|
|
22423
|
+
const sendInput = {
|
|
22424
|
+
...input,
|
|
22425
|
+
payload: transformedPayload,
|
|
22426
|
+
};
|
|
22427
|
+
await this.provider.sendTemplatedEmail(sendInput, template);
|
|
22428
|
+
await this.logger.logTemplatedEmail(sendInput);
|
|
22414
22429
|
}
|
|
22415
22430
|
async sendHtmlEmail(input) {
|
|
22416
22431
|
await this.provider.sendHtmlEmail(input);
|
|
@@ -22423,6 +22438,12 @@ let EmailService = class EmailService {
|
|
|
22423
22438
|
}
|
|
22424
22439
|
return template;
|
|
22425
22440
|
}
|
|
22441
|
+
get templateMiddleware() {
|
|
22442
|
+
return this.registry
|
|
22443
|
+
.getContainer()
|
|
22444
|
+
.getEntitiesServicesLocator()
|
|
22445
|
+
.resolveEmailTemplateMiddleware();
|
|
22446
|
+
}
|
|
22426
22447
|
get templates() {
|
|
22427
22448
|
return this.registry
|
|
22428
22449
|
.getContainer()
|
|
@@ -23489,6 +23510,7 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
23489
23510
|
await this.registerEventTrackingProviders();
|
|
23490
23511
|
await this.registerVersioningProviders();
|
|
23491
23512
|
await this.registerEmailLogger();
|
|
23513
|
+
await this.registerEmailTemplateMiddleware();
|
|
23492
23514
|
await this.registerFilesReferenceRepositoryProviders();
|
|
23493
23515
|
await this.registerFileProviders();
|
|
23494
23516
|
await this.registerMediaProviders();
|
|
@@ -23738,6 +23760,17 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
23738
23760
|
.registerEmailLogger(loggers[0].discoveredClass.instance);
|
|
23739
23761
|
this.logger.log(`Email logger ${loggers[0].discoveredClass.name} registered 🚜`);
|
|
23740
23762
|
}
|
|
23763
|
+
async registerEmailTemplateMiddleware() {
|
|
23764
|
+
const loggers = await this.discoverEmailTemplateMiddleware();
|
|
23765
|
+
if (!loggers.length) {
|
|
23766
|
+
return;
|
|
23767
|
+
}
|
|
23768
|
+
this.registry
|
|
23769
|
+
.getContainer()
|
|
23770
|
+
.getEntitiesServicesLocator()
|
|
23771
|
+
.registerEmailTemplateMiddleware(loggers[0].discoveredClass.instance);
|
|
23772
|
+
this.logger.log(`Email template middleware ${loggers[0].discoveredClass.name} registered 🚜`);
|
|
23773
|
+
}
|
|
23741
23774
|
async registerVersioningProviders() {
|
|
23742
23775
|
const providers = await this.discoverVersioningProviders();
|
|
23743
23776
|
if (!providers.length) {
|
|
@@ -23853,6 +23886,9 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
23853
23886
|
async discoverEmailLogger() {
|
|
23854
23887
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailLogger);
|
|
23855
23888
|
}
|
|
23889
|
+
async discoverEmailTemplateMiddleware() {
|
|
23890
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailTemplateMiddleware);
|
|
23891
|
+
}
|
|
23856
23892
|
async discoverOperationLockService() {
|
|
23857
23893
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.OperationLockService);
|
|
23858
23894
|
}
|