@punks/backend-entity-manager 0.0.140 → 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.
- package/dist/cjs/index.js +83 -46
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/commands.d.ts +9 -0
- package/dist/cjs/types/abstractions/email.d.ts +4 -0
- package/dist/cjs/types/abstractions/index.d.ts +1 -1
- package/dist/cjs/types/abstractions/manager.d.ts +2 -1
- package/dist/cjs/types/commands/version.d.ts +7 -0
- package/dist/cjs/types/concrete/index.d.ts +2 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.snapshot.d.ts +2 -2
- package/dist/cjs/types/platforms/nest/decorators/email.d.ts +4 -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 +7 -2
- package/dist/cjs/types/symbols/ioc.d.ts +2 -0
- package/dist/esm/index.js +82 -47
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/commands.d.ts +9 -0
- package/dist/esm/types/abstractions/email.d.ts +4 -0
- package/dist/esm/types/abstractions/index.d.ts +1 -1
- package/dist/esm/types/abstractions/manager.d.ts +2 -1
- package/dist/esm/types/commands/version.d.ts +7 -0
- package/dist/esm/types/concrete/index.d.ts +2 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.snapshot.d.ts +2 -2
- package/dist/esm/types/platforms/nest/decorators/email.d.ts +4 -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 +7 -2
- package/dist/esm/types/symbols/ioc.d.ts +2 -0
- package/dist/index.d.ts +58 -28
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -528,16 +528,10 @@ class EntityCreateCommand {
|
|
|
528
528
|
if (!versioning) {
|
|
529
529
|
return;
|
|
530
530
|
}
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
await versioning.createVersion({
|
|
536
|
-
operationType: exports.EntityVersionOperation.Create,
|
|
537
|
-
entityId: id,
|
|
538
|
-
entityType: this.services.getEntityName(),
|
|
539
|
-
data: snapshot,
|
|
540
|
-
modifiedByUserId: context?.userId,
|
|
531
|
+
await this.services.resolveVersionCommand().execute({
|
|
532
|
+
id,
|
|
533
|
+
entity,
|
|
534
|
+
operation: exports.EntityVersionOperation.Create,
|
|
541
535
|
});
|
|
542
536
|
}
|
|
543
537
|
isVersioningEnabled() {
|
|
@@ -580,20 +574,9 @@ class EntityDeleteCommand {
|
|
|
580
574
|
if (!this.isVersioningEnabled()) {
|
|
581
575
|
return;
|
|
582
576
|
}
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
}
|
|
587
|
-
const contextService = this.services.resolveAuthenticationContextProvider();
|
|
588
|
-
const context = await contextService?.getContext();
|
|
589
|
-
const snapshotService = this.services.resolveSnapshotService();
|
|
590
|
-
const snapshot = await snapshotService?.getSnapshot(id);
|
|
591
|
-
await versioning.createVersion({
|
|
592
|
-
operationType: exports.EntityVersionOperation.Delete,
|
|
593
|
-
entityId: id,
|
|
594
|
-
entityType: this.services.getEntityName(),
|
|
595
|
-
data: snapshot,
|
|
596
|
-
modifiedByUserId: context?.userId,
|
|
577
|
+
await this.services.resolveVersionCommand().execute({
|
|
578
|
+
id,
|
|
579
|
+
operation: exports.EntityVersionOperation.Delete,
|
|
597
580
|
});
|
|
598
581
|
}
|
|
599
582
|
isVersioningEnabled() {
|
|
@@ -826,20 +809,10 @@ class EntityUpdateCommand {
|
|
|
826
809
|
if (!this.isVersioningEnabled()) {
|
|
827
810
|
return;
|
|
828
811
|
}
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
const contextService = this.services.resolveAuthenticationContextProvider();
|
|
834
|
-
const context = await contextService?.getContext();
|
|
835
|
-
const snapshotService = this.services.resolveSnapshotService();
|
|
836
|
-
const snapshot = (await snapshotService?.getSnapshot(id)) ?? entity;
|
|
837
|
-
await versioning.createVersion({
|
|
838
|
-
operationType: exports.EntityVersionOperation.Update,
|
|
839
|
-
entityId: id,
|
|
840
|
-
entityType: this.services.getEntityName(),
|
|
841
|
-
data: snapshot,
|
|
842
|
-
modifiedByUserId: context?.userId,
|
|
812
|
+
await this.services.resolveVersionCommand().execute({
|
|
813
|
+
id,
|
|
814
|
+
entity,
|
|
815
|
+
operation: exports.EntityVersionOperation.Update,
|
|
843
816
|
});
|
|
844
817
|
}
|
|
845
818
|
isVersioningEnabled() {
|
|
@@ -895,25 +868,38 @@ class EntityUpsertCommand {
|
|
|
895
868
|
if (!this.isVersioningEnabled()) {
|
|
896
869
|
return;
|
|
897
870
|
}
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
871
|
+
await this.services.resolveVersionCommand().execute({
|
|
872
|
+
id,
|
|
873
|
+
entity,
|
|
874
|
+
operation: exports.EntityVersionOperation.Upsert,
|
|
875
|
+
});
|
|
876
|
+
}
|
|
877
|
+
isVersioningEnabled() {
|
|
878
|
+
return (this.services.resolveEntityConfiguration().versioning?.enabled ?? false);
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
class EntityVersionCommand {
|
|
883
|
+
constructor(services) {
|
|
884
|
+
this.services = services;
|
|
885
|
+
}
|
|
886
|
+
async execute({ id, operation, entity, }) {
|
|
887
|
+
const versioningProvider = this.services.resolveVersioningProvider();
|
|
888
|
+
if (!versioningProvider) {
|
|
889
|
+
throw new Error("Versioning provider is not configured");
|
|
901
890
|
}
|
|
902
891
|
const contextService = this.services.resolveAuthenticationContextProvider();
|
|
903
892
|
const context = await contextService?.getContext();
|
|
904
893
|
const snapshotService = this.services.resolveSnapshotService();
|
|
905
894
|
const snapshot = (await snapshotService?.getSnapshot(id)) ?? entity;
|
|
906
|
-
await
|
|
907
|
-
operationType:
|
|
895
|
+
await versioningProvider.createVersion({
|
|
896
|
+
operationType: operation,
|
|
908
897
|
entityId: id,
|
|
909
898
|
entityType: this.services.getEntityName(),
|
|
910
899
|
data: snapshot,
|
|
911
900
|
modifiedByUserId: context?.userId,
|
|
912
901
|
});
|
|
913
902
|
}
|
|
914
|
-
isVersioningEnabled() {
|
|
915
|
-
return (this.services.resolveEntityConfiguration().versioning?.enabled ?? false);
|
|
916
|
-
}
|
|
917
903
|
}
|
|
918
904
|
|
|
919
905
|
class EntityManager {
|
|
@@ -938,6 +924,9 @@ class EntityManager {
|
|
|
938
924
|
get find() {
|
|
939
925
|
return this.services.resolveFindQuery();
|
|
940
926
|
}
|
|
927
|
+
get version() {
|
|
928
|
+
return this.services.resolveVersionCommand();
|
|
929
|
+
}
|
|
941
930
|
get create() {
|
|
942
931
|
return this.services.resolveCreateCommand();
|
|
943
932
|
}
|
|
@@ -1100,6 +1089,7 @@ const EntityServices = {
|
|
|
1100
1089
|
IEntityUpsertCommand: "IEntityUpsertCommand",
|
|
1101
1090
|
IEntityMergeCommand: "IEntityMergeCommand",
|
|
1102
1091
|
IEntityDeleteCommand: "IEntityDeleteCommand",
|
|
1092
|
+
IEntityVersionCommand: "IEntityVersionCommand",
|
|
1103
1093
|
IEntitiesDeleteCommand: "IEntitiesDeleteCommand",
|
|
1104
1094
|
IEntitiesExportCommand: "IEntitiesExportCommand",
|
|
1105
1095
|
IEntitiesImportCommand: "IEntitiesImportCommand",
|
|
@@ -1160,6 +1150,7 @@ const GlobalServices = {
|
|
|
1160
1150
|
},
|
|
1161
1151
|
Plugins: {
|
|
1162
1152
|
IEmailProvider: "IEmailProvider",
|
|
1153
|
+
IEmailLogger: "IEmailLogger",
|
|
1163
1154
|
IEmailTemplatesCollection: "IEmailTemplatesCollection",
|
|
1164
1155
|
IBucketProvider: "IBucketProvider",
|
|
1165
1156
|
IFileProvider: "IFileProvider",
|
|
@@ -1267,6 +1258,9 @@ class EntityServiceLocator {
|
|
|
1267
1258
|
resolveDeleteItemsCommand() {
|
|
1268
1259
|
return this.services.resolveDeleteItemsCommand(this.entityName);
|
|
1269
1260
|
}
|
|
1261
|
+
resolveVersionCommand() {
|
|
1262
|
+
return this.services.resolveVersionCommand(this.entityName);
|
|
1263
|
+
}
|
|
1270
1264
|
resolveSampleDownloadCommand() {
|
|
1271
1265
|
return this.services.resolveSampleDownloadCommand(this.entityName);
|
|
1272
1266
|
}
|
|
@@ -1396,6 +1390,12 @@ class EntitiesServiceLocator {
|
|
|
1396
1390
|
registerEmailTemplatesCollection(instance) {
|
|
1397
1391
|
this.provider.register(GlobalServices.Plugins.IEmailTemplatesCollection, instance);
|
|
1398
1392
|
}
|
|
1393
|
+
resolveEmailLogger() {
|
|
1394
|
+
return this.provider.resolve(GlobalServices.Plugins.IEmailLogger);
|
|
1395
|
+
}
|
|
1396
|
+
registerEmailLogger(instance) {
|
|
1397
|
+
this.provider.register(GlobalServices.Plugins.IEmailLogger, instance);
|
|
1398
|
+
}
|
|
1399
1399
|
resolvePipelinesController() {
|
|
1400
1400
|
return this.provider.resolve(GlobalServices.Pipelines.IPipelineController);
|
|
1401
1401
|
}
|
|
@@ -1580,6 +1580,12 @@ class EntitiesServiceLocator {
|
|
|
1580
1580
|
registerDeleteCommand(entityName, instance) {
|
|
1581
1581
|
this.provider.registerEntityService(EntityServices.Commands.IEntityDeleteCommand, entityName, instance);
|
|
1582
1582
|
}
|
|
1583
|
+
resolveVersionCommand(entityName) {
|
|
1584
|
+
return this.provider.resolveEntityService(EntityServices.Commands.IEntityVersionCommand, entityName);
|
|
1585
|
+
}
|
|
1586
|
+
registerVersionCommand(entityName, instance) {
|
|
1587
|
+
this.provider.registerEntityService(EntityServices.Commands.IEntityVersionCommand, entityName, instance);
|
|
1588
|
+
}
|
|
1583
1589
|
resolveExportCommand(entityName) {
|
|
1584
1590
|
return this.provider.resolveEntityService(EntityServices.Commands.IEntitiesExportCommand, entityName);
|
|
1585
1591
|
}
|
|
@@ -2206,6 +2212,7 @@ class EntityManagerServiceCollection {
|
|
|
2206
2212
|
return this;
|
|
2207
2213
|
}
|
|
2208
2214
|
mapImportExport(settings) {
|
|
2215
|
+
this.locator.registerVersionCommand(this.entityName, new EntityVersionCommand(this.resolver));
|
|
2209
2216
|
this.locator.registerExportCommand(this.entityName, new EntitiesExportCommand(this.resolver, settings));
|
|
2210
2217
|
this.locator.registerExportAction(this.entityName, new EntitiesExportAction(this.resolver));
|
|
2211
2218
|
this.locator.registerImportCommand(this.entityName, new EntitiesImportCommand(this.resolver, settings));
|
|
@@ -2347,6 +2354,7 @@ const EntityManagerSymbols = {
|
|
|
2347
2354
|
EntityVersioningProvider: Symbol.for("WP:ENTITY_VERSIONING_PROVIDER"),
|
|
2348
2355
|
EmailProvider: Symbol.for("WP:EMAIL_PROVIDER"),
|
|
2349
2356
|
EmailTemplate: Symbol.for("WP:EMAIL_TEMPLATE"),
|
|
2357
|
+
EmailLogger: Symbol.for("WP:EMAIL_LOGGER"),
|
|
2350
2358
|
BucketProvider: Symbol.for("WP:BUCKET_PROVIDER"),
|
|
2351
2359
|
FileProvider: Symbol.for("WP:FILE_PROVIDER"),
|
|
2352
2360
|
FileReferenceRepository: Symbol.for("WP:FILE_REFERENCE_REPO"),
|
|
@@ -2388,6 +2396,9 @@ const WpEmailTemplate = (templateId) => common.applyDecorators(common.Injectable
|
|
|
2388
2396
|
const WpEmailProvider = (providerId) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.EmailProvider, {
|
|
2389
2397
|
providerId,
|
|
2390
2398
|
}));
|
|
2399
|
+
const WpEmailLogger = (providerId) => common.applyDecorators(common.Injectable(), common.SetMetadata(EntityManagerSymbols.EmailLogger, {
|
|
2400
|
+
providerId,
|
|
2401
|
+
}));
|
|
2391
2402
|
|
|
2392
2403
|
const WpEntity = (name, props = {}) => common.applyDecorators(common.SetMetadata(EntityManagerSymbols.Entity, {
|
|
2393
2404
|
name,
|
|
@@ -20291,9 +20302,11 @@ exports.EmailService = class EmailService {
|
|
|
20291
20302
|
async sendTemplatedEmail(input) {
|
|
20292
20303
|
const template = this.getTemplate(input.templateId);
|
|
20293
20304
|
await this.provider.sendTemplatedEmail(input, template);
|
|
20305
|
+
await this.logger.logTemplatedEmail(input);
|
|
20294
20306
|
}
|
|
20295
20307
|
async sendHtmlEmail(input) {
|
|
20296
20308
|
await this.provider.sendHtmlEmail(input);
|
|
20309
|
+
await this.logger.logHtmlEmail(input);
|
|
20297
20310
|
}
|
|
20298
20311
|
getTemplate(templateId) {
|
|
20299
20312
|
const template = this.templates.getTemplate(templateId);
|
|
@@ -20314,6 +20327,12 @@ exports.EmailService = class EmailService {
|
|
|
20314
20327
|
.getEntitiesServicesLocator()
|
|
20315
20328
|
.resolveEmailProvider();
|
|
20316
20329
|
}
|
|
20330
|
+
get logger() {
|
|
20331
|
+
return this.registry
|
|
20332
|
+
.getContainer()
|
|
20333
|
+
.getEntitiesServicesLocator()
|
|
20334
|
+
.resolveEmailLogger();
|
|
20335
|
+
}
|
|
20317
20336
|
};
|
|
20318
20337
|
exports.EmailService = __decorate([
|
|
20319
20338
|
common.Injectable(),
|
|
@@ -21432,6 +21451,7 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
21432
21451
|
await this.registerEmailProviders();
|
|
21433
21452
|
await this.registerEventTrackingProviders();
|
|
21434
21453
|
await this.registerVersioningProviders();
|
|
21454
|
+
await this.registerEmailLogger();
|
|
21435
21455
|
await this.registerFilesReferenceRepositoryProviders();
|
|
21436
21456
|
await this.registerFileProviders();
|
|
21437
21457
|
await this.registerBucketProviders();
|
|
@@ -21577,6 +21597,18 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
21577
21597
|
.registerEventsTracker(providers[0].discoveredClass.instance);
|
|
21578
21598
|
this.logger.log(`Events tracker ${providers[0].discoveredClass.name} registered 🚜`);
|
|
21579
21599
|
}
|
|
21600
|
+
async registerEmailLogger() {
|
|
21601
|
+
const loggers = await this.discoverEmailLogger();
|
|
21602
|
+
if (!loggers.length) {
|
|
21603
|
+
this.logger.warn("No email loggers ⚠️");
|
|
21604
|
+
return;
|
|
21605
|
+
}
|
|
21606
|
+
this.registry
|
|
21607
|
+
.getContainer()
|
|
21608
|
+
.getEntitiesServicesLocator()
|
|
21609
|
+
.registerEmailLogger(loggers[0].discoveredClass.instance);
|
|
21610
|
+
this.logger.log(`Email logger ${loggers[0].discoveredClass.name} registered 🚜`);
|
|
21611
|
+
}
|
|
21580
21612
|
async registerVersioningProviders() {
|
|
21581
21613
|
const providers = await this.discoverVersioningProviders();
|
|
21582
21614
|
if (!providers.length) {
|
|
@@ -21668,6 +21700,9 @@ exports.EntityManagerInitializer = EntityManagerInitializer_1 = class EntityMana
|
|
|
21668
21700
|
async discoverEventTrackingProviders() {
|
|
21669
21701
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EventsTracker);
|
|
21670
21702
|
}
|
|
21703
|
+
async discoverEmailLogger() {
|
|
21704
|
+
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EmailLogger);
|
|
21705
|
+
}
|
|
21671
21706
|
async discoverBucketProviders() {
|
|
21672
21707
|
return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.BucketProvider);
|
|
21673
21708
|
}
|
|
@@ -28219,6 +28254,8 @@ exports.StringFacetItem = StringFacetItem;
|
|
|
28219
28254
|
exports.WpAppInitializer = WpAppInitializer;
|
|
28220
28255
|
exports.WpAwsSesEmailTemplate = WpAwsSesEmailTemplate;
|
|
28221
28256
|
exports.WpBucketProvider = WpBucketProvider;
|
|
28257
|
+
exports.WpEmailLogger = WpEmailLogger;
|
|
28258
|
+
exports.WpEmailProvider = WpEmailProvider;
|
|
28222
28259
|
exports.WpEmailTemplate = WpEmailTemplate;
|
|
28223
28260
|
exports.WpEntity = WpEntity;
|
|
28224
28261
|
exports.WpEntityActions = WpEntityActions;
|