@punks/backend-entity-manager 0.0.49 → 0.0.51
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 +45 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/index.d.ts +1 -0
- package/dist/cjs/types/abstractions/tracking.d.ts +9 -0
- package/dist/cjs/types/events/index.d.ts +1 -1
- package/dist/cjs/types/events/{globalEvents.d.ts → platformEvents.d.ts} +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities/eventLog.entity.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/decorators/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/decorators/tracking.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/events/consts.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/events/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/events/types.d.ts +26 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +2 -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 +43 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/index.d.ts +1 -0
- package/dist/esm/types/abstractions/tracking.d.ts +9 -0
- package/dist/esm/types/events/index.d.ts +1 -1
- package/dist/esm/types/events/{globalEvents.d.ts → platformEvents.d.ts} +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/database/core/entities/eventLog.entity.d.ts +10 -0
- package/dist/esm/types/platforms/nest/decorators/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +1 -0
- package/dist/esm/types/platforms/nest/decorators/tracking.d.ts +4 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/events/consts.d.ts +7 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/events/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/events/types.d.ts +26 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +2 -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 +67 -12
- package/package.json +1 -1
|
@@ -18,3 +18,4 @@ export { IReplicasConfiguration, ReplicationMode, ReplicaOptions, ReplicaConfigu
|
|
|
18
18
|
export { IEntityRepository } from "./repository";
|
|
19
19
|
export * from "./searchParameters";
|
|
20
20
|
export { IEntitySearchResults, ISearchResultsPaging } from "./searchResults";
|
|
21
|
+
export * from "./tracking";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./platformEvents";
|
|
2
2
|
export * from "./types";
|
|
@@ -10,3 +10,4 @@ export { WpEntityRepository, EntityRepositoryProps } from "./repository";
|
|
|
10
10
|
export { WpEntityManager, EntityManagerProps } from "./manager";
|
|
11
11
|
export { WpEntityQueryBuilder, EntityQueryBuilderProps } from "./queryBuilder";
|
|
12
12
|
export { EntityManagerSymbols } from "./symbols";
|
|
13
|
+
export { WpEventsTracker, EventsTrackerProps } from "./tracking";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface EventsTrackerProps {
|
|
2
|
+
disabled?: boolean;
|
|
3
|
+
}
|
|
4
|
+
export declare const WpEventsTracker: (props?: EventsTrackerProps) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type UserProfile = {
|
|
2
|
+
firstName: string;
|
|
3
|
+
lastName: string;
|
|
4
|
+
};
|
|
5
|
+
export type UserLoginEventPayload = {
|
|
6
|
+
userId: string;
|
|
7
|
+
email: string;
|
|
8
|
+
profile: UserProfile;
|
|
9
|
+
};
|
|
10
|
+
export type UserRegistrationStartedEventPayload = {
|
|
11
|
+
email: string;
|
|
12
|
+
profile: UserProfile;
|
|
13
|
+
};
|
|
14
|
+
export type UserRegistrationCompletedEventPayload = {
|
|
15
|
+
userId: string;
|
|
16
|
+
email: string;
|
|
17
|
+
profile: UserProfile;
|
|
18
|
+
};
|
|
19
|
+
export type UserPasswordResetStartedEventPayload = {
|
|
20
|
+
email: string;
|
|
21
|
+
};
|
|
22
|
+
export type UserPasswordResetCompletedEventPayload = {
|
|
23
|
+
userId: string;
|
|
24
|
+
email: string;
|
|
25
|
+
profile: UserProfile;
|
|
26
|
+
};
|
|
@@ -20,6 +20,7 @@ export declare class EntityManagerInitializer {
|
|
|
20
20
|
private registerAuthentication;
|
|
21
21
|
private registerEntities;
|
|
22
22
|
private executeInitializers;
|
|
23
|
+
private registerEventTrackingProviders;
|
|
23
24
|
private registerEmailProviders;
|
|
24
25
|
private registerEmailTemplates;
|
|
25
26
|
private initializeProviders;
|
|
@@ -31,4 +32,5 @@ export declare class EntityManagerInitializer {
|
|
|
31
32
|
private discoverAppInitializers;
|
|
32
33
|
private discoverEmailTemplates;
|
|
33
34
|
private discoverEmailProviders;
|
|
35
|
+
private discoverEventTrackingProviders;
|
|
34
36
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IAuthenticationContext, IAuthenticationContextProvider, IEmailProvider, IEmailTemplatesCollection } from "../abstractions";
|
|
1
|
+
import { IAuthenticationContext, IAuthenticationContextProvider, IEmailProvider, IEmailTemplatesCollection, IEventLog, IEventsTracker } from "../abstractions";
|
|
2
2
|
import { IEntitiesSearchAction, IEntityActions, IEntityCreateAction, IEntityDeleteAction, IEntityGetAction, IEntityUpdateAction, IEntityUpsertAction } from "../abstractions/actions";
|
|
3
3
|
import { IEntityAdapter } from "../abstractions/adapters";
|
|
4
4
|
import { IEntityAuthorizationMiddleware } from "../abstractions/authorization";
|
|
@@ -55,6 +55,8 @@ export declare class EntitiesServiceLocator {
|
|
|
55
55
|
registerEventEmitter<TEventEmitter extends IEventEmitter>(instance: TEventEmitter): void;
|
|
56
56
|
resolveEmailProvider<TEmailProvider extends IEmailProvider<unknown>>(): TEmailProvider;
|
|
57
57
|
registerEmailProvider<TEmailProvider extends IEmailProvider<unknown>>(instance: TEmailProvider): void;
|
|
58
|
+
resolveEventsTracker<TEventsTracker extends IEventsTracker<TEventLog>, TEventLog extends IEventLog<unknown>>(): TEventsTracker;
|
|
59
|
+
registerEventsTracker<TEventsTracker extends IEventsTracker<TEventLog>, TEventLog extends IEventLog<unknown>>(instance: TEventsTracker): void;
|
|
58
60
|
resolveEmailTemplatesCollection(): IEmailTemplatesCollection;
|
|
59
61
|
registerEmailTemplatesCollection(instance: IEmailTemplatesCollection): void;
|
|
60
62
|
resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
|
package/dist/esm/index.js
CHANGED
|
@@ -79,9 +79,9 @@ var SortDirection;
|
|
|
79
79
|
SortDirection["Desc"] = "desc";
|
|
80
80
|
})(SortDirection || (SortDirection = {}));
|
|
81
81
|
|
|
82
|
-
const
|
|
82
|
+
const PlatformEvents = {
|
|
83
83
|
Messaging: {
|
|
84
|
-
EmailSent: "messaging:email.sent",
|
|
84
|
+
EmailSent: "platform:messaging:email.sent",
|
|
85
85
|
},
|
|
86
86
|
};
|
|
87
87
|
|
|
@@ -119,6 +119,7 @@ class NestEntityManager {
|
|
|
119
119
|
|
|
120
120
|
const EntityManagerSymbols = {
|
|
121
121
|
AppInitializer: Symbol.for("WP:APP_INITIALIZER"),
|
|
122
|
+
EventsTracker: Symbol.for("WP:EVENTS_TRACKER"),
|
|
122
123
|
Entity: Symbol.for("WP:ENTITY"),
|
|
123
124
|
EntityActions: Symbol.for("WP:ENTITY_ACTIONS"),
|
|
124
125
|
EntityAdapter: Symbol.for("WP:ENTITY_ADAPTER"),
|
|
@@ -186,6 +187,10 @@ const WpEntityQueryBuilder = (entityName, props = {}) => applyDecorators(Injecta
|
|
|
186
187
|
...props,
|
|
187
188
|
}));
|
|
188
189
|
|
|
190
|
+
const WpEventsTracker = (props = {}) => applyDecorators(Injectable(), SetMetadata(EntityManagerSymbols.EventsTracker, {
|
|
191
|
+
...props,
|
|
192
|
+
}));
|
|
193
|
+
|
|
189
194
|
const AuthenticationExtensionSymbols = {
|
|
190
195
|
UserService: Symbol.for("WP.EXT:AUTHENTICATION.USER_SERVICE"),
|
|
191
196
|
};
|
|
@@ -217,6 +222,14 @@ class OperationTokenMismatchError extends AuthenticationError {
|
|
|
217
222
|
}
|
|
218
223
|
}
|
|
219
224
|
|
|
225
|
+
const AuthenticationEvents = {
|
|
226
|
+
UserLogin: "authentication:user.login",
|
|
227
|
+
UserRegistrationStarted: "authentication:user.registrationStarted",
|
|
228
|
+
UserRegistrationCompleted: "authentication:user.registrationCompleted",
|
|
229
|
+
UserPasswordResetStarted: "authentication:user.passwordResetStarted",
|
|
230
|
+
UserPasswordResetCompleted: "authentication:user.passwordResetCompleted",
|
|
231
|
+
};
|
|
232
|
+
|
|
220
233
|
/******************************************************************************
|
|
221
234
|
Copyright (c) Microsoft Corporation.
|
|
222
235
|
|
|
@@ -650,6 +663,7 @@ const EntityServices = {
|
|
|
650
663
|
const GlobalServices = {
|
|
651
664
|
Events: {
|
|
652
665
|
IEventEmitter: "IEventEmitter",
|
|
666
|
+
IEventsTracker: "IEventsTracker",
|
|
653
667
|
},
|
|
654
668
|
Authentication: {
|
|
655
669
|
IAuthenticationContextProvider: "IAuthenticationContextProvider",
|
|
@@ -777,6 +791,12 @@ class EntitiesServiceLocator {
|
|
|
777
791
|
registerEmailProvider(instance) {
|
|
778
792
|
this.provider.register(GlobalServices.Messaging.IEmailProvider, instance);
|
|
779
793
|
}
|
|
794
|
+
resolveEventsTracker() {
|
|
795
|
+
return this.provider.resolve(GlobalServices.Events.IEventsTracker);
|
|
796
|
+
}
|
|
797
|
+
registerEventsTracker(instance) {
|
|
798
|
+
this.provider.register(GlobalServices.Events.IEventsTracker, instance);
|
|
799
|
+
}
|
|
780
800
|
resolveEmailTemplatesCollection() {
|
|
781
801
|
return this.provider.resolve(GlobalServices.Messaging.IEmailTemplatesCollection);
|
|
782
802
|
}
|
|
@@ -19547,6 +19567,7 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
19547
19567
|
}
|
|
19548
19568
|
await this.registerEmailTemplates();
|
|
19549
19569
|
await this.registerEmailProviders();
|
|
19570
|
+
await this.registerEventTrackingProviders();
|
|
19550
19571
|
await this.executeInitializers(app);
|
|
19551
19572
|
this.logger.log("Entity manager initialization completed 🚀");
|
|
19552
19573
|
}
|
|
@@ -19600,6 +19621,19 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
19600
19621
|
this.logger.log(`Entity manager app initializer ${initializer.discoveredClass.name} initialized 💪`);
|
|
19601
19622
|
}
|
|
19602
19623
|
}
|
|
19624
|
+
async registerEventTrackingProviders() {
|
|
19625
|
+
const providers = await this.discoverEventTrackingProviders();
|
|
19626
|
+
if (!providers.length) {
|
|
19627
|
+
this.logger.warn("No events tracker ⚠️");
|
|
19628
|
+
return;
|
|
19629
|
+
}
|
|
19630
|
+
// todo: handle multiple trackers
|
|
19631
|
+
this.registry
|
|
19632
|
+
.getContainer()
|
|
19633
|
+
.getEntitiesServicesLocator()
|
|
19634
|
+
.registerEventsTracker(providers[0].discoveredClass.instance);
|
|
19635
|
+
this.logger.log(`Events tracker ${providers[0].discoveredClass.name} registered 🚜`);
|
|
19636
|
+
}
|
|
19603
19637
|
async registerEmailProviders() {
|
|
19604
19638
|
const providers = await this.discoverEmailProviders();
|
|
19605
19639
|
if (!providers.length) {
|
|
@@ -19655,6 +19689,9 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
|
|
|
19655
19689
|
async discoverEmailProviders() {
|
|
19656
19690
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailProvider);
|
|
19657
19691
|
}
|
|
19692
|
+
async discoverEventTrackingProviders() {
|
|
19693
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EventsTracker);
|
|
19694
|
+
}
|
|
19658
19695
|
};
|
|
19659
19696
|
EntityManagerInitializer = EntityManagerInitializer_1 = __decorate([
|
|
19660
19697
|
Injectable(),
|
|
@@ -25095,7 +25132,7 @@ let SendgridEmailProvider = class SendgridEmailProvider {
|
|
|
25095
25132
|
});
|
|
25096
25133
|
}
|
|
25097
25134
|
await this.client.send(request);
|
|
25098
|
-
await this.eventsService.emitEvent(
|
|
25135
|
+
await this.eventsService.emitEvent(PlatformEvents.Messaging.EmailSent, {
|
|
25099
25136
|
from: request.from,
|
|
25100
25137
|
to: request.to,
|
|
25101
25138
|
cc: request.cc,
|
|
@@ -25136,7 +25173,7 @@ let SendgridEmailProvider = class SendgridEmailProvider {
|
|
|
25136
25173
|
});
|
|
25137
25174
|
}
|
|
25138
25175
|
await this.client.send(request);
|
|
25139
|
-
await this.eventsService.emitEvent(
|
|
25176
|
+
await this.eventsService.emitEvent(PlatformEvents.Messaging.EmailSent, {
|
|
25140
25177
|
from: request.from,
|
|
25141
25178
|
to: request.to,
|
|
25142
25179
|
cc: request.cc,
|
|
@@ -25160,6 +25197,7 @@ SendgridEmailProvider = __decorate([
|
|
|
25160
25197
|
|
|
25161
25198
|
var SendgridEmailModule_1;
|
|
25162
25199
|
const ModuleData = {
|
|
25200
|
+
imports: [EntityManagerModule],
|
|
25163
25201
|
providers: [SendgridEmailProvider],
|
|
25164
25202
|
};
|
|
25165
25203
|
let SendgridEmailModule = SendgridEmailModule_1 = class SendgridEmailModule {
|
|
@@ -25214,5 +25252,5 @@ AppSessionMiddleware = __decorate([
|
|
|
25214
25252
|
Injectable()
|
|
25215
25253
|
], AppSessionMiddleware);
|
|
25216
25254
|
|
|
25217
|
-
export { AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, AuthenticationEmailTemplates, AuthenticationError, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsEmailModule, AwsSesEmailTemplate, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EventsService,
|
|
25255
|
+
export { AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsEmailModule, AwsSesEmailTemplate, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EventsService, InvalidCredentialsError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestTypeOrmQueryBuilder, NestTypeOrmRepository, OperationTokenMismatchError, PlatformEvents, QueryBuilderBase, ReplicationMode, SendgridEmailModule, SendgridEmailTemplate, SortDirection, UserRegistrationError, WpAppInitializer, WpAwsSesEmailTemplate, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEventsTracker, WpSendgridEmailTemplate, WpUserService, getLocalizedText, newUuid, renderHandlebarsTemplate };
|
|
25218
25256
|
//# sourceMappingURL=index.js.map
|