@punks/backend-entity-manager 0.0.102 → 0.0.103

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.
Files changed (50) hide show
  1. package/dist/cjs/index.js +84 -4
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/abstractions/actions.d.ts +5 -0
  4. package/dist/cjs/types/abstractions/index.d.ts +3 -3
  5. package/dist/cjs/types/abstractions/manager.d.ts +2 -1
  6. package/dist/cjs/types/abstractions/queries.d.ts +4 -1
  7. package/dist/cjs/types/abstractions/versioning.d.ts +7 -1
  8. package/dist/cjs/types/actions/versions.d.ts +8 -0
  9. package/dist/cjs/types/concrete/index.d.ts +4 -2
  10. package/dist/cjs/types/models/index.d.ts +1 -0
  11. package/dist/cjs/types/models/versioning.d.ts +44 -0
  12. package/dist/cjs/types/platforms/nest/__test__/server/app/foos/foo.controller.d.ts +2 -1
  13. package/dist/cjs/types/platforms/nest/__test__/server/app/foos/foo.dto.d.ts +7 -1
  14. package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.types.d.ts +24 -1
  15. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/versioning/providers/entity-versioning/index.d.ts +4 -1
  16. package/dist/cjs/types/platforms/nest/__test__/server/shared/api/facets.d.ts +12 -0
  17. package/dist/cjs/types/platforms/nest/__test__/server/shared/api/fields.d.ts +32 -0
  18. package/dist/cjs/types/platforms/nest/__test__/server/shared/api/versioning.d.ts +16 -0
  19. package/dist/cjs/types/platforms/nest/__test__/tests/ports.d.ts +1 -0
  20. package/dist/cjs/types/providers/services.d.ts +8 -2
  21. package/dist/cjs/types/queries/versions.d.ts +10 -0
  22. package/dist/cjs/types/symbols/ioc.d.ts +2 -0
  23. package/dist/esm/index.js +84 -5
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/types/abstractions/actions.d.ts +5 -0
  26. package/dist/esm/types/abstractions/index.d.ts +3 -3
  27. package/dist/esm/types/abstractions/manager.d.ts +2 -1
  28. package/dist/esm/types/abstractions/queries.d.ts +4 -1
  29. package/dist/esm/types/abstractions/versioning.d.ts +7 -1
  30. package/dist/esm/types/actions/versions.d.ts +8 -0
  31. package/dist/esm/types/concrete/index.d.ts +4 -2
  32. package/dist/esm/types/models/index.d.ts +1 -0
  33. package/dist/esm/types/models/versioning.d.ts +44 -0
  34. package/dist/esm/types/platforms/nest/__test__/server/app/foos/foo.controller.d.ts +2 -1
  35. package/dist/esm/types/platforms/nest/__test__/server/app/foos/foo.dto.d.ts +7 -1
  36. package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.types.d.ts +24 -1
  37. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/versioning/providers/entity-versioning/index.d.ts +4 -1
  38. package/dist/esm/types/platforms/nest/__test__/server/shared/api/facets.d.ts +12 -0
  39. package/dist/esm/types/platforms/nest/__test__/server/shared/api/fields.d.ts +32 -0
  40. package/dist/esm/types/platforms/nest/__test__/server/shared/api/versioning.d.ts +16 -0
  41. package/dist/esm/types/platforms/nest/__test__/tests/ports.d.ts +1 -0
  42. package/dist/esm/types/platforms/nest/__test__/tests/versioning/entity-versioning-api.test.d.ts +1 -0
  43. package/dist/esm/types/platforms/nest/__test__/tests/versioning/entity-versioning-operations.test.d.ts +1 -0
  44. package/dist/esm/types/providers/services.d.ts +8 -2
  45. package/dist/esm/types/queries/versions.d.ts +10 -0
  46. package/dist/esm/types/symbols/ioc.d.ts +2 -0
  47. package/dist/index.d.ts +65 -2
  48. package/package.json +1 -1
  49. /package/dist/cjs/types/platforms/nest/__test__/tests/versioning/{entity-versioning.test.d.ts → entity-versioning-api.test.d.ts} +0 -0
  50. /package/dist/{esm/types/platforms/nest/__test__/tests/versioning/entity-versioning.test.d.ts → cjs/types/platforms/nest/__test__/tests/versioning/entity-versioning-operations.test.d.ts} +0 -0
package/dist/cjs/index.js CHANGED
@@ -461,6 +461,23 @@ class EntityUpsertAction {
461
461
  }
462
462
  }
463
463
 
464
+ class EntityVersionsSearchAction {
465
+ constructor(services) {
466
+ this.services = services;
467
+ }
468
+ async execute(request) {
469
+ const results = await this.services
470
+ .resolveVersionsSearchQuery()
471
+ .execute(request.params);
472
+ const converter = this.services.resolveConverter();
473
+ return {
474
+ request,
475
+ paging: results.paging,
476
+ items: results.items.map((x) => (converter?.toListItemDto(x) ?? x)),
477
+ };
478
+ }
479
+ }
480
+
464
481
  class EntityCreateCommand {
465
482
  constructor(services) {
466
483
  this.services = services;
@@ -506,7 +523,7 @@ class EntityCreateCommand {
506
523
  }
507
524
  const contextService = this.services.resolveAuthenticationContextProvider();
508
525
  const context = await contextService?.getContext();
509
- await versioning.versionEntity({
526
+ await versioning.createVersion({
510
527
  operationType: exports.EntityVersionOperation.Create,
511
528
  entityId: id,
512
529
  entityType: this.services.getEntityName(),
@@ -560,7 +577,7 @@ class EntityDeleteCommand {
560
577
  }
561
578
  const contextService = this.services.resolveAuthenticationContextProvider();
562
579
  const context = await contextService?.getContext();
563
- await versioning.versionEntity({
580
+ await versioning.createVersion({
564
581
  operationType: exports.EntityVersionOperation.Delete,
565
582
  entityId: id,
566
583
  entityType: this.services.getEntityName(),
@@ -803,7 +820,7 @@ class EntityUpdateCommand {
803
820
  }
804
821
  const contextService = this.services.resolveAuthenticationContextProvider();
805
822
  const context = await contextService?.getContext();
806
- await versioning.versionEntity({
823
+ await versioning.createVersion({
807
824
  operationType: exports.EntityVersionOperation.Update,
808
825
  entityId: id,
809
826
  entityType: this.services.getEntityName(),
@@ -870,7 +887,7 @@ class EntityUpsertCommand {
870
887
  }
871
888
  const contextService = this.services.resolveAuthenticationContextProvider();
872
889
  const context = await contextService?.getContext();
873
- await versioning.versionEntity({
890
+ await versioning.createVersion({
874
891
  operationType: exports.EntityVersionOperation.Upsert,
875
892
  entityId: id,
876
893
  entityType: this.services.getEntityName(),
@@ -923,6 +940,9 @@ class EntityManager {
923
940
  get sampleDownload() {
924
941
  return this.services.resolveSampleDownloadCommand();
925
942
  }
943
+ get versions() {
944
+ return this.services.resolveVersionsSearchQuery();
945
+ }
926
946
  }
927
947
  class EntityActions {
928
948
  constructor(services) {
@@ -964,6 +984,9 @@ class EntityActions {
964
984
  get sampleDownload() {
965
985
  return this.services.resolveSampleDownloadAction();
966
986
  }
987
+ get versions() {
988
+ return this.services.resolveVersionsSearchAction();
989
+ }
967
990
  }
968
991
 
969
992
  // todo: implement a real IoC container with scopes and stuff
@@ -1019,6 +1042,7 @@ const EntityServices = {
1019
1042
  IEntitiesExportAction: "IEntitiesExportAction",
1020
1043
  IEntitiesImportAction: "IEntitiesImportAction",
1021
1044
  IEntitiesSampleDownloadAction: "IEntitiesSampleDownloadAction",
1045
+ IEntityVersionsSearchAction: "IEntityVersionsSearchAction",
1022
1046
  },
1023
1047
  Authorization: {
1024
1048
  IEntityAuthorizationMiddleware: "IEntityAuthorizationMiddleware",
@@ -1053,6 +1077,7 @@ const EntityServices = {
1053
1077
  IEntityGetQuery: "IEntityGetQuery",
1054
1078
  IEntitiesSearchQuery: "IEntitiesSearchQuery",
1055
1079
  IEntitiesQueryBuilder: "IEntitiesQueryBuilder",
1080
+ IEntityVersionsSearchQuery: "IEntityVersionsSearchQuery",
1056
1081
  },
1057
1082
  Replication: {
1058
1083
  IReplicasConfiguration: "IReplicasConfiguration",
@@ -1159,6 +1184,9 @@ class EntityServiceLocator {
1159
1184
  resolveCountQuery() {
1160
1185
  return this.services.resolveCountQuery(this.entityName);
1161
1186
  }
1187
+ resolveVersionsSearchQuery() {
1188
+ return this.services.resolveVersionsSearchQuery(this.entityName);
1189
+ }
1162
1190
  resolveSearchQuery() {
1163
1191
  return this.services.resolveSearchQuery(this.entityName);
1164
1192
  }
@@ -1198,6 +1226,9 @@ class EntityServiceLocator {
1198
1226
  resolveSearchAction() {
1199
1227
  return this.services.resolveSearchAction(this.entityName);
1200
1228
  }
1229
+ resolveVersionsSearchAction() {
1230
+ return this.services.resolveVersionsSearchAction(this.entityName);
1231
+ }
1201
1232
  resolveCreateAction() {
1202
1233
  return this.services.resolveCreateAction(this.entityName);
1203
1234
  }
@@ -1408,6 +1439,12 @@ class EntitiesServiceLocator {
1408
1439
  registerCountQuery(entityName, instance) {
1409
1440
  this.provider.registerEntityService(EntityServices.Queries.IEntityCountQuery, entityName, instance);
1410
1441
  }
1442
+ resolveVersionsSearchQuery(entityName) {
1443
+ return this.provider.resolveEntityService(EntityServices.Queries.IEntityVersionsSearchQuery, entityName);
1444
+ }
1445
+ registerVersionsSearchQuery(entityName, instance) {
1446
+ this.provider.registerEntityService(EntityServices.Queries.IEntityVersionsSearchQuery, entityName, instance);
1447
+ }
1411
1448
  resolveCreateCommand(entityName) {
1412
1449
  return this.provider.resolveEntityService(EntityServices.Commands.IEntityCreateCommand, entityName);
1413
1450
  }
@@ -1480,6 +1517,12 @@ class EntitiesServiceLocator {
1480
1517
  registerSearchAction(entityName, instance) {
1481
1518
  this.provider.registerEntityService(EntityServices.Actions.IEntitiesSearchAction, entityName, instance);
1482
1519
  }
1520
+ resolveVersionsSearchAction(entityName) {
1521
+ return this.provider.resolveEntityService(EntityServices.Actions.IEntityVersionsSearchAction, entityName);
1522
+ }
1523
+ registerVersionsSearchAction(entityName, instance) {
1524
+ this.provider.registerEntityService(EntityServices.Actions.IEntityVersionsSearchAction, entityName, instance);
1525
+ }
1483
1526
  resolveCreateAction(entityName) {
1484
1527
  return this.provider.resolveEntityService(EntityServices.Actions.IEntityCreateAction, entityName);
1485
1528
  }
@@ -1681,6 +1724,37 @@ class EntitiesSearchQuery {
1681
1724
  }
1682
1725
  }
1683
1726
 
1727
+ class EntityVersionsSearchQuery {
1728
+ constructor(services) {
1729
+ this.services = services;
1730
+ }
1731
+ async execute(request) {
1732
+ const context = await this.getContext();
1733
+ await this.authorizeSearch(context);
1734
+ return await this.services
1735
+ .resolveVersioningProvider()
1736
+ .searchVersions(request);
1737
+ }
1738
+ async getContext() {
1739
+ const authorization = this.services.resolveAuthorizationMiddleware();
1740
+ if (!authorization) {
1741
+ return undefined;
1742
+ }
1743
+ const contextService = this.services.resolveAuthenticationContextProvider();
1744
+ return await contextService.getContext();
1745
+ }
1746
+ async authorizeSearch(context) {
1747
+ const authorization = this.services.resolveAuthorizationMiddleware();
1748
+ if (!authorization) {
1749
+ return;
1750
+ }
1751
+ const { isAuthorized } = await authorization.canSearch(context);
1752
+ if (!isAuthorized) {
1753
+ throw new EntityOperationUnauthorizedException(exports.EntityOperationType.Search, this.services.getEntityName());
1754
+ }
1755
+ }
1756
+ }
1757
+
1684
1758
  var ConnectorMode;
1685
1759
  (function (ConnectorMode) {
1686
1760
  ConnectorMode[ConnectorMode["Sync"] = 0] = "Sync";
@@ -1955,6 +2029,8 @@ class EntityManagerServiceCollection {
1955
2029
  this.locator.registerSearchQuery(this.entityName, new EntitiesSearchQuery(this.resolver));
1956
2030
  this.locator.registerSearchAction(this.entityName, new EntitiesSearchAction(this.resolver));
1957
2031
  this.locator.registerQueryBuilder(this.entityName, queryBuilder);
2032
+ this.locator.registerVersionsSearchQuery(this.entityName, new EntityVersionsSearchQuery(this.resolver));
2033
+ this.locator.registerVersionsSearchAction(this.entityName, new EntityVersionsSearchAction(this.resolver));
1958
2034
  return this;
1959
2035
  }
1960
2036
  mapCreate() {
@@ -2021,6 +2097,9 @@ const toEntitiesImportInput = (request) => ({
2021
2097
  },
2022
2098
  });
2023
2099
 
2100
+ class IEntityVersionsCursor {
2101
+ }
2102
+
2024
2103
  const PLATFORM_EVENT_NAMESPACE = "platform";
2025
2104
  const PlatformEvents = {
2026
2105
  Messaging: {
@@ -27569,6 +27648,7 @@ exports.EntityNotFoundException = EntityNotFoundException;
27569
27648
  exports.EntityOperationUnauthorizedException = EntityOperationUnauthorizedException;
27570
27649
  exports.EntitySeeder = EntitySeeder;
27571
27650
  exports.EntitySerializer = EntitySerializer;
27651
+ exports.IEntityVersionsCursor = IEntityVersionsCursor;
27572
27652
  exports.InvalidCredentialsError = InvalidCredentialsError;
27573
27653
  exports.MemberOf = MemberOf;
27574
27654
  exports.MissingEntityIdError = MissingEntityIdError;