@punks/backend-entity-manager 0.0.100 → 0.0.102

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 (80) hide show
  1. package/dist/cjs/index.js +150 -4
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/abstractions/configuration.d.ts +2 -2
  4. package/dist/cjs/types/abstractions/index.d.ts +1 -0
  5. package/dist/cjs/types/abstractions/settings.d.ts +7 -0
  6. package/dist/cjs/types/abstractions/versioning.d.ts +17 -0
  7. package/dist/cjs/types/commands/create.d.ts +2 -0
  8. package/dist/cjs/types/commands/delete.d.ts +2 -0
  9. package/dist/cjs/types/commands/update.d.ts +2 -0
  10. package/dist/cjs/types/commands/upsert.d.ts +2 -0
  11. package/dist/cjs/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.actions.d.ts +8 -0
  12. package/dist/cjs/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.controller.d.ts +13 -0
  13. package/dist/cjs/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.converter.d.ts +9 -0
  14. package/dist/cjs/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.dto.d.ts +37 -0
  15. package/dist/cjs/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.module.d.ts +2 -0
  16. package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities/appEntityVersion.entity.d.ts +11 -0
  17. package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities.d.ts +2 -1
  18. package/dist/cjs/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
  19. package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories/appEntityVersion.repository.d.ts +7 -0
  20. package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories.d.ts +2 -1
  21. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.adapter.d.ts +7 -0
  22. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.authentication.d.ts +11 -0
  23. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.manager.d.ts +7 -0
  24. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.models.d.ts +13 -0
  25. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.module.d.ts +2 -0
  26. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.query.d.ts +12 -0
  27. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +6 -0
  28. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.types.d.ts +47 -0
  29. package/dist/cjs/types/platforms/nest/__test__/server/index.d.ts +1 -0
  30. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/versioning/module.d.ts +2 -0
  31. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/versioning/providers/entity-versioning/index.d.ts +8 -0
  32. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/versioning/providers/index.d.ts +2 -0
  33. package/dist/cjs/types/platforms/nest/__test__/tests/versioning/entity-versioning.test.d.ts +1 -0
  34. package/dist/cjs/types/platforms/nest/decorators/index.d.ts +1 -0
  35. package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +1 -0
  36. package/dist/cjs/types/platforms/nest/decorators/versioning.d.ts +4 -0
  37. package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +2 -0
  38. package/dist/cjs/types/providers/services.d.ts +8 -1
  39. package/dist/cjs/types/symbols/ioc.d.ts +6 -0
  40. package/dist/esm/index.js +150 -5
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/types/abstractions/configuration.d.ts +2 -2
  43. package/dist/esm/types/abstractions/index.d.ts +1 -0
  44. package/dist/esm/types/abstractions/settings.d.ts +7 -0
  45. package/dist/esm/types/abstractions/versioning.d.ts +17 -0
  46. package/dist/esm/types/commands/create.d.ts +2 -0
  47. package/dist/esm/types/commands/delete.d.ts +2 -0
  48. package/dist/esm/types/commands/update.d.ts +2 -0
  49. package/dist/esm/types/commands/upsert.d.ts +2 -0
  50. package/dist/esm/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.actions.d.ts +8 -0
  51. package/dist/esm/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.controller.d.ts +13 -0
  52. package/dist/esm/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.converter.d.ts +9 -0
  53. package/dist/esm/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.dto.d.ts +37 -0
  54. package/dist/esm/types/platforms/nest/__test__/server/app/appEntityVersions/appEntityVersion.module.d.ts +2 -0
  55. package/dist/esm/types/platforms/nest/__test__/server/database/core/entities/appEntityVersion.entity.d.ts +11 -0
  56. package/dist/esm/types/platforms/nest/__test__/server/database/core/entities.d.ts +2 -1
  57. package/dist/esm/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
  58. package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories/appEntityVersion.repository.d.ts +7 -0
  59. package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories.d.ts +2 -1
  60. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.adapter.d.ts +7 -0
  61. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.authentication.d.ts +11 -0
  62. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.manager.d.ts +7 -0
  63. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.models.d.ts +13 -0
  64. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.module.d.ts +2 -0
  65. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.query.d.ts +12 -0
  66. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +6 -0
  67. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.types.d.ts +47 -0
  68. package/dist/esm/types/platforms/nest/__test__/server/index.d.ts +1 -0
  69. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/versioning/module.d.ts +2 -0
  70. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/versioning/providers/entity-versioning/index.d.ts +8 -0
  71. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/versioning/providers/index.d.ts +2 -0
  72. package/dist/esm/types/platforms/nest/__test__/tests/versioning/entity-versioning.test.d.ts +1 -0
  73. package/dist/esm/types/platforms/nest/decorators/index.d.ts +1 -0
  74. package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +1 -0
  75. package/dist/esm/types/platforms/nest/decorators/versioning.d.ts +4 -0
  76. package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +2 -0
  77. package/dist/esm/types/providers/services.d.ts +8 -1
  78. package/dist/esm/types/symbols/ioc.d.ts +6 -0
  79. package/dist/index.d.ts +45 -6
  80. package/package.json +1 -1
@@ -13,7 +13,7 @@ import { IEntityRepository } from "./repository";
13
13
  import { IEntitySearchParameters } from "./searchParameters";
14
14
  import { IEntityFacets } from "./searchResults";
15
15
  import { IEntitySerializer } from "./serializer";
16
- import { EntityManagerSettings } from "./settings";
16
+ import { IEntityConfiguration, EntityManagerSettings } from "./settings";
17
17
  export type EntitiesMapOperationsInput<TEntitiesQueryBuilder> = {
18
18
  queryBuilder: TEntitiesQueryBuilder;
19
19
  settings: EntityManagerSettings;
@@ -25,7 +25,7 @@ export interface IEntityManagerServiceRoot {
25
25
  addAuthentication<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>({ provider, }: {
26
26
  provider: TAuthenticationContextProvider;
27
27
  }): void;
28
- registerEntity<TEntity, TEntityId, TRepository extends IEntityRepository<TEntity, TEntityId, unknown, unknown, unknown, unknown>>(entityName: string, repository: TRepository): IEntityManagerServiceCollection<TEntity, TEntityId>;
28
+ registerEntity<TEntity, TEntityId, TRepository extends IEntityRepository<TEntity, TEntityId, unknown, unknown, unknown, unknown>>(entity: IEntityConfiguration, repository: TRepository): IEntityManagerServiceCollection<TEntity, TEntityId>;
29
29
  }
30
30
  export interface IEntityManagerServiceCollection<TEntity, TEntityId> {
31
31
  getServiceLocator(): EntityServiceLocator<TEntity, TEntityId>;
@@ -25,3 +25,4 @@ export { EntitySerializerColumnDefinition, EntitySerializerSheetDefinition, IEnt
25
25
  export { EntityManagerSettings } from "./settings";
26
26
  export { IEntitySearchResults, IEntityFacet, IEntityFacetItem, IEntityFacets, ISearchResultsPaging, } from "./searchResults";
27
27
  export * from "./tracking";
28
+ export { EntityVersionOperation, EntityVersionInput, IEntityVersioningProvider, } from "./versioning";
@@ -2,3 +2,10 @@ import { EntitiesImportExportSettings } from "./export";
2
2
  export type EntityManagerSettings = {
3
3
  importExport: EntitiesImportExportSettings;
4
4
  };
5
+ export type EntityVersioningOptions = {
6
+ enabled: boolean;
7
+ };
8
+ export type IEntityConfiguration = {
9
+ name: string;
10
+ versioning?: EntityVersioningOptions;
11
+ };
@@ -0,0 +1,17 @@
1
+ export declare enum EntityVersionOperation {
2
+ Create = "create",
3
+ Update = "update",
4
+ Upsert = "upsert",
5
+ Delete = "delete"
6
+ }
7
+ export type EntityVersionInput<TEntity, TEntityId> = {
8
+ operationType: EntityVersionOperation;
9
+ entityType: string;
10
+ entityId: TEntityId;
11
+ data?: TEntity;
12
+ modifiedByUserId?: string;
13
+ };
14
+ export interface IEntityVersioningProvider {
15
+ isEnabled(): boolean;
16
+ versionEntity<TEntity, TEntityId>(input: EntityVersionInput<TEntity, TEntityId>): Promise<void>;
17
+ }
@@ -6,4 +6,6 @@ export declare class EntityCreateCommand<TEntity, TEntityId, TEntityCreateData>
6
6
  execute(input: TEntityCreateData): Promise<TEntity>;
7
7
  private adaptEntity;
8
8
  private authorize;
9
+ private versionEntity;
10
+ private isVersioningEnabled;
9
11
  }
@@ -5,4 +5,6 @@ export declare class EntityDeleteCommand<TEntity, TEntityId> implements IEntityD
5
5
  constructor(services: EntityServiceLocator<TEntity, TEntityId>);
6
6
  execute(id: TEntityId): Promise<void>;
7
7
  private authorize;
8
+ private versionEntity;
9
+ private isVersioningEnabled;
8
10
  }
@@ -6,4 +6,6 @@ export declare class EntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>
6
6
  execute(id: TEntityId, input: TEntityUpdateData): Promise<TEntity>;
7
7
  private adaptEntity;
8
8
  private authorize;
9
+ private versionEntity;
10
+ private isVersioningEnabled;
9
11
  }
@@ -7,4 +7,6 @@ export declare class EntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>
7
7
  private upsertEntity;
8
8
  private adaptEntity;
9
9
  private authorize;
10
+ private versionEntity;
11
+ private isVersioningEnabled;
10
12
  }
@@ -0,0 +1,8 @@
1
+ import { EntityManagerRegistry, NestEntityActions } from "../../../..";
2
+ import { AppEntityVersionCreateDto, AppEntityVersionDto, AppEntityVersionListItemDto, AppEntityVersionUpdateDto } from "./appEntityVersion.dto";
3
+ import { AppEntityVersionEntity } from "../../database/core/entities/appEntityVersion.entity";
4
+ import { AppEntityVersionCursor, AppEntityVersionEntityId, AppEntityVersionFacets, AppEntityVersionSorting } from "../../entities/appEntityVersions/appEntityVersion.models";
5
+ import { AppEntityVersionDeleteParameters, AppEntityVersionSearchParameters } from "../../entities/appEntityVersions/appEntityVersion.types";
6
+ export declare class AppEntityVersionActions extends NestEntityActions<AppEntityVersionEntity, AppEntityVersionEntityId, AppEntityVersionCreateDto, AppEntityVersionUpdateDto, AppEntityVersionDto, AppEntityVersionListItemDto, AppEntityVersionDeleteParameters, AppEntityVersionSearchParameters, AppEntityVersionSorting, AppEntityVersionCursor, AppEntityVersionFacets> {
7
+ constructor(registry: EntityManagerRegistry);
8
+ }
@@ -0,0 +1,13 @@
1
+ import { AppEntityVersionActions } from "./appEntityVersion.actions";
2
+ import { AppEntityVersionCreateDto, AppEntityVersionDto, AppEntityVersionExportRequest, AppEntityVersionExportResponse, AppEntityVersionSampleDownloadRequest, AppEntityVersionSampleDownloadResponse, AppEntityVersionSearchRequest, AppEntityVersionSearchResponse, AppEntityVersionUpdateDto } from "./appEntityVersion.dto";
3
+ export declare class AppEntityVersionController {
4
+ private readonly actions;
5
+ constructor(actions: AppEntityVersionActions);
6
+ item(id: string): Promise<AppEntityVersionDto | undefined>;
7
+ create(data: AppEntityVersionCreateDto): Promise<AppEntityVersionDto>;
8
+ update(id: string, item: AppEntityVersionUpdateDto): Promise<AppEntityVersionDto>;
9
+ delete(id: string): Promise<void>;
10
+ search(request: AppEntityVersionSearchRequest): Promise<AppEntityVersionSearchResponse>;
11
+ export(request: AppEntityVersionExportRequest): Promise<AppEntityVersionExportResponse>;
12
+ sampleDownload(request: AppEntityVersionSampleDownloadRequest): Promise<AppEntityVersionSampleDownloadResponse>;
13
+ }
@@ -0,0 +1,9 @@
1
+ import { IEntityConverter } from "../../../../../..";
2
+ import { AppEntityVersionCreateDto, AppEntityVersionDto, AppEntityVersionListItemDto, AppEntityVersionUpdateDto } from "./appEntityVersion.dto";
3
+ import { AppEntityVersionEntity } from "../../database/core/entities/appEntityVersion.entity";
4
+ export declare class AppEntityVersionConverter implements IEntityConverter<AppEntityVersionEntity, AppEntityVersionDto, AppEntityVersionListItemDto, AppEntityVersionCreateDto, AppEntityVersionUpdateDto> {
5
+ toListItemDto(entity: AppEntityVersionEntity): AppEntityVersionListItemDto;
6
+ toEntityDto(entity: AppEntityVersionEntity): AppEntityVersionDto;
7
+ createDtoToEntity(input: AppEntityVersionCreateDto): Partial<AppEntityVersionEntity>;
8
+ updateDtoToEntity(input: AppEntityVersionUpdateDto): Partial<AppEntityVersionEntity>;
9
+ }
@@ -0,0 +1,37 @@
1
+ import { EntitySerializationFormat } from "../../../../../..";
2
+ import { AppEntityVersionSearchParameters, AppEntityVersionSearchResults } from "../../entities/appEntityVersions/appEntityVersion.types";
3
+ export declare class AppEntityVersionDto {
4
+ id: string;
5
+ createdOn: Date;
6
+ updatedOn: Date;
7
+ }
8
+ export declare class AppEntityVersionListItemDto {
9
+ id: string;
10
+ }
11
+ export declare class AppEntityVersionCreateDto {
12
+ }
13
+ export declare class AppEntityVersionUpdateDto {
14
+ id: string;
15
+ }
16
+ export declare class AppEntityVersionSearchRequest {
17
+ params: AppEntityVersionSearchParameters;
18
+ }
19
+ export declare class AppEntityVersionSearchResponse extends AppEntityVersionSearchResults<AppEntityVersionListItemDto> {
20
+ items: AppEntityVersionListItemDto[];
21
+ }
22
+ export declare class AppEntityVersionEntitiesExportOptions {
23
+ format: EntitySerializationFormat;
24
+ }
25
+ export declare class AppEntityVersionExportRequest {
26
+ options: AppEntityVersionEntitiesExportOptions;
27
+ filter?: AppEntityVersionSearchParameters;
28
+ }
29
+ export declare class AppEntityVersionExportResponse {
30
+ downloadUrl: string;
31
+ }
32
+ export declare class AppEntityVersionSampleDownloadRequest {
33
+ format: EntitySerializationFormat;
34
+ }
35
+ export declare class AppEntityVersionSampleDownloadResponse {
36
+ downloadUrl: string;
37
+ }
@@ -0,0 +1,2 @@
1
+ export declare class AppEntityVersionAppModule {
2
+ }
@@ -0,0 +1,11 @@
1
+ import { EntityVersionOperation } from "../../../../../../../abstractions/versioning";
2
+ export declare class AppEntityVersionEntity {
3
+ id: string;
4
+ entityId: string;
5
+ entityType: string;
6
+ data: any;
7
+ operationType: EntityVersionOperation;
8
+ operationUserId?: string;
9
+ createdOn: Date;
10
+ updatedOn: Date;
11
+ }
@@ -9,4 +9,5 @@ import { AppUserGroupEntity } from "./entities/appUserGroup.entity";
9
9
  import { AppUserGroupMemberEntity } from "./entities/appUserGroupMember.entity";
10
10
  import { AppUserProfileEntity } from "./entities/appUserProfile.entity";
11
11
  import { AppUserRoleEntity } from "./entities/appUserRole.entity";
12
- export declare const CoreDatabaseEntities: (typeof AppUserProfileEntity | typeof AppRoleEntity | typeof AppUserRoleEntity | typeof AppUserEntity | typeof AppUserGroupEntity | typeof AppOrganizationEntity | typeof AppUserGroupMemberEntity | typeof AppTenantEntity | typeof AppCompanyEntity | typeof AppDivisionEntity | typeof FooEntity)[];
12
+ import { AppEntityVersionEntity } from "./entities/appEntityVersion.entity";
13
+ export declare const CoreDatabaseEntities: (typeof AppUserProfileEntity | typeof AppRoleEntity | typeof AppUserRoleEntity | typeof AppUserEntity | typeof AppUserGroupEntity | typeof AppOrganizationEntity | typeof AppUserGroupMemberEntity | typeof AppTenantEntity | typeof AppCompanyEntity | typeof AppDivisionEntity | typeof AppEntityVersionEntity | typeof FooEntity)[];
@@ -11,12 +11,16 @@ import { AppUserGroupMemberEntity } from "./entities/appUserGroupMember.entity";
11
11
  import { AppUserProfileEntity } from "./entities/appUserProfile.entity";
12
12
  import { AppUserRoleEntity } from "./entities/appUserRole.entity";
13
13
  import { DynamicModule } from "@nestjs/common";
14
+ import { AppEntityVersionEntity } from "./entities/appEntityVersion.entity";
14
15
  export declare const mockDatabaseProviders: (dataSource: DataSource) => ({
15
16
  provide: string | Function;
16
17
  useValue: import("typeorm").Repository<AppCompanyEntity>;
17
18
  } | {
18
19
  provide: string | Function;
19
20
  useValue: import("typeorm").Repository<AppDivisionEntity>;
21
+ } | {
22
+ provide: string | Function;
23
+ useValue: import("typeorm").Repository<AppEntityVersionEntity>;
20
24
  } | {
21
25
  provide: string | Function;
22
26
  useValue: import("typeorm").Repository<FooEntity>;
@@ -0,0 +1,7 @@
1
+ import { Repository } from "typeorm";
2
+ import { NestTypeOrmRepository } from "../../../../..";
3
+ import { AppEntityVersionEntity } from "../entities/appEntityVersion.entity";
4
+ import { AppEntityVersionEntityId } from "../../../entities/appEntityVersions/appEntityVersion.models";
5
+ export declare class AppEntityVersionRepository extends NestTypeOrmRepository<AppEntityVersionEntity, AppEntityVersionEntityId> {
6
+ constructor(repository: Repository<AppEntityVersionEntity>);
7
+ }
@@ -1,5 +1,6 @@
1
1
  import { AppCompanyRepository } from "./repositories/appCompany.repository";
2
2
  import { AppDivisionRepository } from "./repositories/appDivision.repository";
3
+ import { AppEntityVersionRepository } from "./repositories/appEntityVersion.repository";
3
4
  import { AppOrganizationRepository } from "./repositories/appOrganization.repository";
4
5
  import { AppRoleRepository } from "./repositories/appRole.repository";
5
6
  import { AppTenantRepository } from "./repositories/appTenant.repository";
@@ -9,4 +10,4 @@ import { AppUserGroupMemberRepository } from "./repositories/appUserGroupMember.
9
10
  import { AppUserProfileRepository } from "./repositories/appUserProfile.repository";
10
11
  import { AppUserRoleRepository } from "./repositories/appUserRole.repository";
11
12
  import { FooRepository } from "./repositories/foo.repository";
12
- export declare const CoreDatabaseRepositories: (typeof AppCompanyRepository | typeof AppDivisionRepository | typeof AppOrganizationRepository | typeof AppRoleRepository | typeof AppTenantRepository | typeof AppUserRepository | typeof AppUserGroupRepository | typeof AppUserGroupMemberRepository | typeof AppUserProfileRepository | typeof AppUserRoleRepository | typeof FooRepository)[];
13
+ export declare const CoreDatabaseRepositories: (typeof AppCompanyRepository | typeof AppDivisionRepository | typeof AppEntityVersionRepository | typeof AppOrganizationRepository | typeof AppRoleRepository | typeof AppTenantRepository | typeof AppUserRepository | typeof AppUserGroupRepository | typeof AppUserGroupMemberRepository | typeof AppUserProfileRepository | typeof AppUserRoleRepository | typeof FooRepository)[];
@@ -0,0 +1,7 @@
1
+ import { DeepPartial, IEntityAdapter } from "../../../../../..";
2
+ import { AppEntityVersionEntity } from "../../database/core/entities/appEntityVersion.entity";
3
+ import { AppEntityVersionCreateData, AppEntityVersionUpdateData } from "./appEntityVersion.models";
4
+ export declare class AppEntityVersionAdapter implements IEntityAdapter<AppEntityVersionEntity, AppEntityVersionCreateData, AppEntityVersionUpdateData> {
5
+ createDataToEntity(data: AppEntityVersionCreateData): DeepPartial<AppEntityVersionEntity>;
6
+ updateDataToEntity(data: AppEntityVersionUpdateData): DeepPartial<AppEntityVersionEntity>;
7
+ }
@@ -0,0 +1,11 @@
1
+ import { IAuthorizationResult } from "../../../../../..";
2
+ import { AppAuthContext, AppEntityAuthorizationMiddlewareBase } from "../../infrastructure/authentication/index";
3
+ import { AppEntityVersionEntity } from "../../database/core/entities/appEntityVersion.entity";
4
+ export declare class AppEntityVersionAuthMiddleware extends AppEntityAuthorizationMiddlewareBase<AppEntityVersionEntity> {
5
+ canSearch(context: AppAuthContext): Promise<IAuthorizationResult>;
6
+ canRead(entity: Partial<AppEntityVersionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
7
+ canCreate(entity: Partial<AppEntityVersionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
8
+ canUpdate(entity: Partial<AppEntityVersionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
9
+ canDelete(entity: Partial<AppEntityVersionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
10
+ canDeleteItems(context: AppAuthContext): Promise<IAuthorizationResult>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { NestEntityManager, EntityManagerRegistry } from "../../../../../..";
2
+ import { AppEntityVersionCreateData, AppEntityVersionCursor, AppEntityVersionEntityId, AppEntityVersionFacets, AppEntityVersionSorting, AppEntityVersionUpdateData } from "./appEntityVersion.models";
3
+ import { AppEntityVersionSearchParameters, AppEntityVersionDeleteParameters } from "./appEntityVersion.types";
4
+ import { AppEntityVersionEntity } from "../../database/core/entities/appEntityVersion.entity";
5
+ export declare class AppEntityVersionEntityManager extends NestEntityManager<AppEntityVersionEntity, AppEntityVersionEntityId, AppEntityVersionCreateData, AppEntityVersionUpdateData, AppEntityVersionDeleteParameters, AppEntityVersionSearchParameters, AppEntityVersionSorting, AppEntityVersionCursor, AppEntityVersionFacets> {
6
+ constructor(registry: EntityManagerRegistry);
7
+ }
@@ -0,0 +1,13 @@
1
+ import { DeepPartial } from "../../../../../..";
2
+ import { AppEntityVersionEntity } from "../../database/core/entities/appEntityVersion.entity";
3
+ export type AppEntityVersionEntityId = string;
4
+ export type AppEntityVersionCreateData = DeepPartial<Omit<AppEntityVersionEntity, "id">>;
5
+ export type AppEntityVersionUpdateData = DeepPartial<Omit<AppEntityVersionEntity, "id">>;
6
+ export declare enum AppEntityVersionSorting {
7
+ Name = "Name"
8
+ }
9
+ export type AppEntityVersionCursor = number;
10
+ export declare class AppEntityVersionSearchFilters {
11
+ }
12
+ export declare class AppEntityVersionFacets {
13
+ }
@@ -0,0 +1,2 @@
1
+ export declare class AppEntityVersionEntityModule {
2
+ }
@@ -0,0 +1,12 @@
1
+ import { FindOptionsWhere } from "typeorm";
2
+ import { IAuthenticationContext, EntityManagerRegistry, NestTypeOrmQueryBuilder } from "../../../../../..";
3
+ import { AppEntityVersionEntity } from "../../database/core/entities/appEntityVersion.entity";
4
+ import { AppEntityVersionFacets, AppEntityVersionSorting } from "./appEntityVersion.models";
5
+ import { AppEntityVersionSearchParameters } from "./appEntityVersion.types";
6
+ import { AppAuthContext } from "../../infrastructure/authentication/types";
7
+ export declare class AppEntityVersionQueryBuilder extends NestTypeOrmQueryBuilder<AppEntityVersionEntity, AppEntityVersionSearchParameters, AppEntityVersionSorting, AppEntityVersionFacets, AppAuthContext> {
8
+ constructor(registry: EntityManagerRegistry);
9
+ protected buildContextFilter(context?: IAuthenticationContext<AppAuthContext>): FindOptionsWhere<AppEntityVersionEntity> | FindOptionsWhere<AppEntityVersionEntity>[];
10
+ protected buildWhereClause(request: AppEntityVersionSearchParameters): FindOptionsWhere<AppEntityVersionEntity> | FindOptionsWhere<AppEntityVersionEntity>[];
11
+ protected calculateFacets(request: AppEntityVersionSearchParameters, context?: IAuthenticationContext<AppAuthContext>): Promise<AppEntityVersionFacets>;
12
+ }
@@ -0,0 +1,6 @@
1
+ import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
+ import { AppEntityVersionEntity } from "../../database/core/entities/appEntityVersion.entity";
3
+ export declare class AppEntityVersionSerializer extends NestEntitySerializer<AppEntityVersionEntity, string> {
4
+ constructor(registry: EntityManagerRegistry);
5
+ protected getDefinition(): EntitySerializerSheetDefinition<AppEntityVersionEntity>;
6
+ }
@@ -0,0 +1,47 @@
1
+ import { IEntitiesDeleteParameters, IEntitiesSearchResults, IEntitiesSearchResultsPaging, IEntitySearchParameters, IFullTextQuery, ISearchOptions, ISearchRequestPaging, ISearchSorting, ISearchSortingField, SortDirection } from "../../../../../..";
2
+ import { AppEntityVersionSorting, AppEntityVersionCursor, AppEntityVersionSearchFilters, AppEntityVersionFacets } from "./appEntityVersion.models";
3
+ export declare class AppEntityVersionSearchSortingField implements ISearchSortingField<AppEntityVersionSorting> {
4
+ field: AppEntityVersionSorting;
5
+ direction: SortDirection;
6
+ }
7
+ export declare class AppEntityVersionQuerySorting implements ISearchSorting<AppEntityVersionSorting> {
8
+ fields: AppEntityVersionSearchSortingField[];
9
+ }
10
+ export declare class AppEntityVersionQueryPaging implements ISearchRequestPaging<AppEntityVersionCursor> {
11
+ cursor?: AppEntityVersionCursor;
12
+ pageSize: number;
13
+ }
14
+ export declare class AppEntityVersionSearchOptions implements ISearchOptions {
15
+ includeFacets?: boolean;
16
+ }
17
+ export declare class AppEntityVersionFullTextQuery implements IFullTextQuery {
18
+ term: string;
19
+ fields?: string[];
20
+ }
21
+ export declare class AppEntityVersionSearchParameters implements IEntitySearchParameters<AppEntityVersionSorting, AppEntityVersionCursor> {
22
+ query?: AppEntityVersionFullTextQuery;
23
+ filters?: AppEntityVersionSearchFilters;
24
+ sorting?: AppEntityVersionQuerySorting;
25
+ paging?: AppEntityVersionQueryPaging;
26
+ options?: AppEntityVersionSearchOptions;
27
+ }
28
+ export declare class AppEntityVersionSearchResultsPaging implements IEntitiesSearchResultsPaging<AppEntityVersionCursor> {
29
+ pageIndex: number;
30
+ pageSize: number;
31
+ totPageItems: number;
32
+ totPages: number;
33
+ totItems: number;
34
+ nextPageCursor?: AppEntityVersionCursor;
35
+ currentPageCursor?: AppEntityVersionCursor;
36
+ prevPageCursor?: AppEntityVersionCursor;
37
+ }
38
+ export declare class AppEntityVersionSearchResults<TResult> implements IEntitiesSearchResults<AppEntityVersionSearchParameters, TResult, AppEntityVersionSorting, AppEntityVersionCursor, AppEntityVersionFacets> {
39
+ request: AppEntityVersionSearchParameters;
40
+ facets?: AppEntityVersionFacets;
41
+ paging?: AppEntityVersionSearchResultsPaging;
42
+ items: TResult[];
43
+ }
44
+ export declare class AppEntityVersionDeleteParameters implements IEntitiesDeleteParameters<AppEntityVersionSorting> {
45
+ filters?: AppEntityVersionSearchFilters;
46
+ sorting?: AppEntityVersionQuerySorting;
47
+ }
@@ -3,6 +3,7 @@ export declare const createTestServer: (options?: {
3
3
  serverStartPort?: number;
4
4
  useAuthentication?: boolean;
5
5
  useAuthorization?: boolean;
6
+ useVersioning?: boolean;
6
7
  extraControllers?: any[];
7
8
  extraProviders?: any[];
8
9
  enableLogging?: boolean;
@@ -0,0 +1,2 @@
1
+ export declare class VersioningInfrastructureModule {
2
+ }
@@ -0,0 +1,8 @@
1
+ import { EntityVersionInput, IEntityVersioningProvider } from "../../../../../../../../abstractions";
2
+ import { AppEntityVersionRepository } from "../../../../database/core/repositories/appEntityVersion.repository";
3
+ export declare class EntityVersioningProvider implements IEntityVersioningProvider {
4
+ private readonly entityVersionsRepo;
5
+ constructor(entityVersionsRepo: AppEntityVersionRepository);
6
+ isEnabled(): boolean;
7
+ versionEntity<TEntity, TEntityId = string>(input: EntityVersionInput<TEntity, TEntityId>): Promise<void>;
8
+ }
@@ -0,0 +1,2 @@
1
+ import { EntityVersioningProvider } from "./entity-versioning";
2
+ export declare const VersioningProviders: (typeof EntityVersioningProvider)[];
@@ -15,3 +15,4 @@ export { WpEntitySeeder, EntitySeederProps } from "./seed";
15
15
  export { WpEntitySerializer, EntitySerializerProps } from "./serializer";
16
16
  export { EntityManagerSymbols } from "./symbols";
17
17
  export { WpEventsTracker, EventsTrackerProps } from "./tracking";
18
+ export { WpEntityVersioningProvider, EntityVersioningProviderProps, } from "./versioning";
@@ -12,6 +12,7 @@ export declare const EntityManagerSymbols: {
12
12
  EntityManager: symbol;
13
13
  EntityQueryBuilder: symbol;
14
14
  EntitySeeder: symbol;
15
+ EntityVersioningProvider: symbol;
15
16
  EmailProvider: symbol;
16
17
  EmailTemplate: symbol;
17
18
  BucketProvider: symbol;
@@ -0,0 +1,4 @@
1
+ export interface EntityVersioningProviderProps {
2
+ disabled?: boolean;
3
+ }
4
+ export declare const WpEntityVersioningProvider: (props?: EntityVersioningProviderProps) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -22,12 +22,14 @@ export declare class EntityManagerInitializer {
22
22
  private executeSeeders;
23
23
  private registerBucketProviders;
24
24
  private registerEventTrackingProviders;
25
+ private registerVersioningProviders;
25
26
  private registerEmailProviders;
26
27
  private registerEmailTemplates;
27
28
  private registerPipelinesServices;
28
29
  private initializeProviders;
29
30
  private discoverEntities;
30
31
  private discoverRepositories;
32
+ private discoverVersioningProviders;
31
33
  private discoverQueryBuilders;
32
34
  private discoverConverters;
33
35
  private discoverSerializers;
@@ -1,4 +1,4 @@
1
- import { IAuthenticationContext, IAuthenticationContextProvider, IBucketProvider, IEmailProvider, IEmailTemplatesCollection, IEntityFacets, IEntitySerializer, IEventLog, IEventsTracker } from "../abstractions";
1
+ import { IAuthenticationContext, IAuthenticationContextProvider, IBucketProvider, IEmailProvider, IEmailTemplatesCollection, IEntityFacets, IEntitySerializer, IEntityVersioningProvider, IEventLog, IEventsTracker } from "../abstractions";
2
2
  import { IEntitiesCountAction, IEntitiesDeleteAction, IEntitiesExportAction, IEntitiesImportAction, IEntitiesSampleDownloadAction, IEntitiesSearchAction, IEntityActions, IEntityCreateAction, IEntityDeleteAction, IEntityExistsAction, IEntityGetAction, IEntityUpdateAction, IEntityUpsertAction } from "../abstractions/actions";
3
3
  import { IEntityAdapter } from "../abstractions/adapters";
4
4
  import { IEntityAuthorizationMiddleware } from "../abstractions/authorization";
@@ -13,6 +13,7 @@ import { IEntitiesCountQuery, IEntitiesQueryBuilder, IEntitiesSearchQuery, IEnti
13
13
  import { IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IReplicasConfiguration } from "../abstractions/replication";
14
14
  import { IEntityRepository } from "../abstractions/repository";
15
15
  import { IEntitySearchParameters, ISearchFilters } from "../abstractions/searchParameters";
16
+ import { IEntityConfiguration } from "../abstractions/settings";
16
17
  import { ServiceLocator } from "../ioc";
17
18
  export declare class EntityServiceLocator<TEntity, TEntityId> {
18
19
  private readonly services;
@@ -24,6 +25,8 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
24
25
  resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, any, unknown, any>;
25
26
  resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
26
27
  resolveEventsManager(): IEntityEventsManager<TEntity, TEntityId>;
28
+ resolveVersioningProvider(): IEntityVersioningProvider;
29
+ resolveEntityConfiguration(): IEntityConfiguration;
27
30
  resolveReplicaSyncManager(): IEntityReplicaSyncManager<TEntity>;
28
31
  resolveReplicaConfiguration(): IReplicasConfiguration<TEntity, TEntityId>;
29
32
  resolveReplicaDeleteManager<TEntityId>(): IEntityReplicaDeleteManager<TEntity, TEntityId>;
@@ -69,6 +72,8 @@ export declare class EntitiesServiceLocator {
69
72
  registerEventEmitter<TEventEmitter extends IEventEmitter>(instance: TEventEmitter): void;
70
73
  resolveEmailProvider<TEmailProvider extends IEmailProvider<unknown>>(): TEmailProvider;
71
74
  registerEmailProvider<TEmailProvider extends IEmailProvider<unknown>>(instance: TEmailProvider): void;
75
+ resolveEntityVersioningProvider<TEntityVersioningProvider extends IEntityVersioningProvider>(): TEntityVersioningProvider;
76
+ registerEntityVersioningProvider<TEntityVersioningProvider extends IEntityVersioningProvider>(instance: TEntityVersioningProvider): void;
72
77
  resolveBucketProvider<TBucketProvider extends IBucketProvider>(): TBucketProvider;
73
78
  registerBucketProvider<TBucketProvider extends IBucketProvider>(instance: TBucketProvider): void;
74
79
  resolveEventsTracker<TEventsTracker extends IEventsTracker<TEventLog>, TEventLog extends IEventLog<unknown>>(): TEventsTracker;
@@ -79,6 +84,8 @@ export declare class EntitiesServiceLocator {
79
84
  registerPipelinesController(instance: IPipelinesController): void;
80
85
  resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
81
86
  registerAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(instance: TAuthenticationContextProvider): void;
87
+ resolveEntityConfiguration(entityName: string): IEntityConfiguration;
88
+ registerEntityConfiguration(entityName: string, instance: IEntityConfiguration): void;
82
89
  resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, any, unknown, any>;
83
90
  registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, any, unknown, any>): void;
84
91
  resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, any, unknown, any>;
@@ -60,6 +60,9 @@ export declare const EntityServices: {
60
60
  Storage: {
61
61
  IEntityRepository: string;
62
62
  };
63
+ Settings: {
64
+ IEntityConfiguration: string;
65
+ };
63
66
  };
64
67
  export declare const GlobalServices: {
65
68
  Events: {
@@ -77,4 +80,7 @@ export declare const GlobalServices: {
77
80
  IEmailTemplatesCollection: string;
78
81
  IBucketProvider: string;
79
82
  };
83
+ Versioning: {
84
+ IEntityVersioningProvider: string;
85
+ };
80
86
  };