@punks/backend-entity-manager 0.0.151 → 0.0.153

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 (46) hide show
  1. package/dist/cjs/index.js +26 -17
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/__test__/entity/foo.d.ts +3 -3
  4. package/dist/cjs/types/__test__/providers/typeorm/serializer/foo.d.ts +4 -5
  5. package/dist/cjs/types/base/serializer.d.ts +8 -5
  6. package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +4 -3
  7. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +4 -3
  8. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +4 -3
  9. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +4 -3
  10. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +4 -3
  11. package/dist/cjs/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +4 -3
  12. package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +4 -3
  13. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +4 -3
  14. package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +4 -3
  15. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +4 -3
  16. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +4 -3
  17. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +4 -3
  18. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +4 -3
  19. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +4 -3
  20. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +4 -3
  21. package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +4 -3
  22. package/dist/cjs/types/platforms/nest/base/entitySerializer.d.ts +1 -1
  23. package/dist/esm/index.js +26 -17
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/types/__test__/entity/foo.d.ts +3 -3
  26. package/dist/esm/types/__test__/providers/typeorm/serializer/foo.d.ts +4 -5
  27. package/dist/esm/types/base/serializer.d.ts +8 -5
  28. package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +4 -3
  29. package/dist/esm/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +4 -3
  30. package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +4 -3
  31. package/dist/esm/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +4 -3
  32. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +4 -3
  33. package/dist/esm/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +4 -3
  34. package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +4 -3
  35. package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +4 -3
  36. package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +4 -3
  37. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +4 -3
  38. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +4 -3
  39. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +4 -3
  40. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +4 -3
  41. package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +4 -3
  42. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +4 -3
  43. package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +4 -3
  44. package/dist/esm/types/platforms/nest/base/entitySerializer.d.ts +1 -1
  45. package/dist/index.d.ts +8 -6
  46. package/package.json +1 -1
@@ -74,13 +74,13 @@ export interface FooUpdateDto {
74
74
  };
75
75
  }
76
76
  export type FooSheetItem = FooEntity;
77
- export declare class FooSerializer extends EntitySerializer<FooEntity, FooEntityId, FooSearchParameters, FooSheetItem> {
77
+ export declare class FooSerializer extends EntitySerializer<FooEntity, FooEntityId, FooSearchParameters, FooSheetItem, any> {
78
78
  private readonly repo;
79
- constructor(entityName: string, services: EntityServiceLocator<FooEntity, string>);
79
+ constructor(services: EntityServiceLocator<FooEntity, string>);
80
80
  protected loadEntities(filters?: FooSearchParameters | undefined): Promise<FooEntity[]>;
81
81
  protected convertToSheetItems(entities: FooEntity[]): Promise<FooEntity[]>;
82
82
  protected importItem(item: FooEntity): Promise<FooEntity>;
83
- protected getDefinition(): EntitySerializerSheetDefinition<FooEntity>;
83
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<FooEntity>>;
84
84
  }
85
85
  export declare class FooConverter implements IEntityConverter<FooEntity, FooDto, FooListItemDto, FooCreateDto, FooUpdateDto> {
86
86
  toListItemDto(entity: FooEntity): FooListItemDto;
@@ -1,13 +1,12 @@
1
1
  import { EntitySerializerSheetDefinition } from "../../../../abstractions";
2
2
  import { EntitySerializer } from "../../../../base";
3
+ import { EntityServiceLocator } from "../../../../providers/services";
3
4
  import { FooEntity, FooEntityId } from "../entity/foo";
4
5
  import { FooSearchParameters, FooSheetItem } from "../models/foo";
5
- import { FooTypeOrmRepo } from "../repository/foo";
6
- export declare class FooSerializer extends EntitySerializer<FooEntity, FooEntityId, FooSearchParameters, FooSheetItem> {
7
- private readonly repo;
8
- constructor(entityName: string, repo: FooTypeOrmRepo);
6
+ export declare class FooSerializer extends EntitySerializer<FooEntity, FooEntityId, FooSearchParameters, FooSheetItem, any> {
7
+ constructor(services: EntityServiceLocator<FooEntity, FooEntityId>);
9
8
  protected loadEntities(filters?: FooSearchParameters | undefined): Promise<FooEntity[]>;
10
9
  protected convertToSheetItems(entities: FooEntity[]): Promise<FooEntity[]>;
11
10
  protected importItem(item: FooEntity): Promise<FooEntity>;
12
- protected getDefinition(): EntitySerializerSheetDefinition<FooEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<FooEntity>>;
13
12
  }
@@ -1,10 +1,12 @@
1
1
  /// <reference types="node" />
2
2
  import { EntitySerializationFormat, IEntitySerializer } from "../abstractions";
3
3
  import { EntityExportFile, EntitySerializerSheetDefinition, ImportEntry } from "../abstractions/serializer";
4
- export declare abstract class EntitySerializer<TEntity, TEntityId, TEntitySearchParameters, TSheetItem> implements IEntitySerializer<TEntity, TEntityId, TEntitySearchParameters, TSheetItem> {
5
- protected readonly entityName: string;
4
+ import { EntityServiceLocator } from "../providers/services";
5
+ export declare abstract class EntitySerializer<TEntity, TEntityId, TEntitySearchParameters, TSheetItem, TContext> implements IEntitySerializer<TEntity, TEntityId, TEntitySearchParameters, TSheetItem> {
6
+ protected readonly services: EntityServiceLocator<TEntity, TEntityId>;
6
7
  private readonly logger;
7
- constructor(entityName: string);
8
+ protected readonly entityName: string;
9
+ constructor(services: EntityServiceLocator<TEntity, TEntityId>);
8
10
  export(filters?: TEntitySearchParameters): Promise<TSheetItem[]>;
9
11
  import(items: TSheetItem[]): Promise<void>;
10
12
  parse(data: Buffer, format: EntitySerializationFormat): Promise<ImportEntry<TSheetItem, TEntityId>[]>;
@@ -15,10 +17,11 @@ export declare abstract class EntitySerializer<TEntity, TEntityId, TEntitySearch
15
17
  createSample(format: EntitySerializationFormat): Promise<EntityExportFile>;
16
18
  private buildSampleFile;
17
19
  serialize(data: TSheetItem[], format: EntitySerializationFormat): Promise<EntityExportFile>;
18
- protected abstract getDefinition(): EntitySerializerSheetDefinition<TSheetItem>;
20
+ protected abstract getDefinition(): Promise<EntitySerializerSheetDefinition<TSheetItem>>;
19
21
  protected abstract loadEntities(filters?: TEntitySearchParameters): Promise<TEntity[]>;
20
22
  protected abstract convertToSheetItems(entities: TEntity[]): Promise<TSheetItem[]>;
21
- protected abstract importItem(item: TSheetItem): Promise<TEntity>;
23
+ protected abstract importItem(item: TSheetItem, context: TContext): Promise<TEntity>;
24
+ protected getContext(): Promise<TContext>;
22
25
  private buildExportFile;
23
26
  private getColumnValue;
24
27
  private buildExportFileName;
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppCompanyEntity } from "../../database/core/entities/appCompany.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppCompanyCreateData, AppCompanyCursor, AppCompanyEntityId, AppCompanySearchParameters, AppCompanySheetItem, AppCompanySorting, AppCompanyUpdateData } from "./appCompany.models";
4
- export declare class AppCompanySerializer extends NestEntitySerializer<AppCompanyEntity, AppCompanyEntityId, AppCompanyCreateData, AppCompanyUpdateData, AppCompanySearchParameters, AppCompanySorting, AppCompanyCursor, AppCompanySheetItem> {
5
+ export declare class AppCompanySerializer extends NestEntitySerializer<AppCompanyEntity, AppCompanyEntityId, AppCompanyCreateData, AppCompanyUpdateData, AppCompanySearchParameters, AppCompanySorting, AppCompanyCursor, AppCompanySheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppCompanySearchParameters): Promise<AppCompanyEntity[]>;
7
8
  protected convertToSheetItems(entities: AppCompanyEntity[]): Promise<AppCompanyEntity[]>;
8
- protected importItem(item: AppCompanySheetItem): Promise<AppCompanyEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppCompanyEntity>;
9
+ protected importItem(item: AppCompanySheetItem, context: AppAuthContext): Promise<AppCompanyEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppCompanyEntity>>;
10
11
  }
@@ -1,11 +1,12 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppDirectoryEntity, AppDirectoryEntityId } from "../../database/core/entities/appDirectory.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppDirectoryCreateData, AppDirectoryCursor, AppDirectorySheetItem, AppDirectorySorting, AppDirectoryUpdateData } from "./appDirectory.models";
4
5
  import { AppDirectorySearchParameters } from "./appDirectory.types";
5
- export declare class AppDirectorySerializer extends NestEntitySerializer<AppDirectoryEntity, AppDirectoryEntityId, AppDirectoryCreateData, AppDirectoryUpdateData, AppDirectorySearchParameters, AppDirectorySorting, AppDirectoryCursor, AppDirectorySheetItem> {
6
+ export declare class AppDirectorySerializer extends NestEntitySerializer<AppDirectoryEntity, AppDirectoryEntityId, AppDirectoryCreateData, AppDirectoryUpdateData, AppDirectorySearchParameters, AppDirectorySorting, AppDirectoryCursor, AppDirectorySheetItem, AppAuthContext> {
6
7
  constructor(registry: EntityManagerRegistry);
7
8
  protected loadEntities(filters: AppDirectorySearchParameters): Promise<AppDirectoryEntity[]>;
8
9
  protected convertToSheetItems(entities: AppDirectoryEntity[]): Promise<AppDirectoryEntity[]>;
9
- protected importItem(item: AppDirectorySheetItem): Promise<AppDirectoryEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppDirectoryEntity>;
10
+ protected importItem(item: AppDirectorySheetItem, context: AppAuthContext): Promise<AppDirectoryEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppDirectoryEntity>>;
11
12
  }
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppDivisionEntity } from "../../database/core/entities/appDivision.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppDivisionCreateData, AppDivisionCursor, AppDivisionEntityId, AppDivisionSearchParameters, AppDivisionSheetItem, AppDivisionSorting, AppDivisionUpdateData } from "./appDivision.models";
4
- export declare class AppDivisionSerializer extends NestEntitySerializer<AppDivisionEntity, AppDivisionEntityId, AppDivisionCreateData, AppDivisionUpdateData, AppDivisionSearchParameters, AppDivisionSorting, AppDivisionCursor, AppDivisionSheetItem> {
5
+ export declare class AppDivisionSerializer extends NestEntitySerializer<AppDivisionEntity, AppDivisionEntityId, AppDivisionCreateData, AppDivisionUpdateData, AppDivisionSearchParameters, AppDivisionSorting, AppDivisionCursor, AppDivisionSheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppDivisionSearchParameters): Promise<AppDivisionEntity[]>;
7
8
  protected convertToSheetItems(entities: AppDivisionEntity[]): Promise<AppDivisionEntity[]>;
8
- protected importItem(item: AppDivisionSheetItem): Promise<AppDivisionEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppDivisionEntity>;
9
+ protected importItem(item: AppDivisionSheetItem, context: AppAuthContext): Promise<AppDivisionEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppDivisionEntity>>;
10
11
  }
@@ -1,11 +1,12 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppEmailLogEntity, AppEmailLogEntityId } from "../../database/core/entities/appEmailLog.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppEmailLogCreateData, AppEmailLogCursor, AppEmailLogSheetItem, AppEmailLogSorting, AppEmailLogUpdateData } from "./appEmailLog.models";
4
5
  import { AppEmailLogSearchParameters } from "./appEmailLog.types";
5
- export declare class AppEmailLogSerializer extends NestEntitySerializer<AppEmailLogEntity, AppEmailLogEntityId, AppEmailLogCreateData, AppEmailLogUpdateData, AppEmailLogSearchParameters, AppEmailLogSorting, AppEmailLogCursor, AppEmailLogSheetItem> {
6
+ export declare class AppEmailLogSerializer extends NestEntitySerializer<AppEmailLogEntity, AppEmailLogEntityId, AppEmailLogCreateData, AppEmailLogUpdateData, AppEmailLogSearchParameters, AppEmailLogSorting, AppEmailLogCursor, AppEmailLogSheetItem, AppAuthContext> {
6
7
  constructor(registry: EntityManagerRegistry);
7
8
  protected loadEntities(filters: AppEmailLogSearchParameters): Promise<AppEmailLogEntity[]>;
8
9
  protected convertToSheetItems(entities: AppEmailLogEntity[]): Promise<AppEmailLogSheetItem[]>;
9
- protected importItem(item: AppEmailLogSheetItem): Promise<AppEmailLogEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppEmailLogEntity>;
10
+ protected importItem(item: AppEmailLogSheetItem, context: AppAuthContext): Promise<AppEmailLogEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppEmailLogEntity>>;
11
12
  }
@@ -1,11 +1,12 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppEntityVersionEntity } from "../../database/core/entities/appEntityVersion.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppEntityVersionCreateData, AppEntityVersionCursor, AppEntityVersionEntityId, AppEntityVersionSheetItem, AppEntityVersionSorting, AppEntityVersionUpdateData } from "./appEntityVersion.models";
4
5
  import { AppEntityVersionSearchParameters } from "./appEntityVersion.types";
5
- export declare class AppEntityVersionSerializer extends NestEntitySerializer<AppEntityVersionEntity, AppEntityVersionEntityId, AppEntityVersionCreateData, AppEntityVersionUpdateData, AppEntityVersionSearchParameters, AppEntityVersionSorting, AppEntityVersionCursor, AppEntityVersionSheetItem> {
6
+ export declare class AppEntityVersionSerializer extends NestEntitySerializer<AppEntityVersionEntity, AppEntityVersionEntityId, AppEntityVersionCreateData, AppEntityVersionUpdateData, AppEntityVersionSearchParameters, AppEntityVersionSorting, AppEntityVersionCursor, AppEntityVersionSheetItem, AppAuthContext> {
6
7
  constructor(registry: EntityManagerRegistry);
7
8
  protected loadEntities(filters: AppEntityVersionSearchParameters): Promise<AppEntityVersionEntity[]>;
8
9
  protected convertToSheetItems(entities: AppEntityVersionEntity[]): Promise<AppEntityVersionSheetItem[]>;
9
- protected importItem(item: AppEntityVersionSheetItem): Promise<AppEntityVersionEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppEntityVersionEntity>;
10
+ protected importItem(item: AppEntityVersionSheetItem, context: AppAuthContext): Promise<AppEntityVersionEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppEntityVersionEntity>>;
11
12
  }
@@ -1,11 +1,12 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppFileReferenceEntity, AppFileReferenceEntityId } from "../../database/core/entities/appFileReference.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppFileReferenceCreateData, AppFileReferenceCursor, AppFileReferenceSheetItem, AppFileReferenceSorting, AppFileReferenceUpdateData } from "./appFileReference.models";
4
5
  import { AppFileReferenceSearchParameters } from "./appFileReference.types";
5
- export declare class AppFileReferenceSerializer extends NestEntitySerializer<AppFileReferenceEntity, AppFileReferenceEntityId, AppFileReferenceCreateData, AppFileReferenceUpdateData, AppFileReferenceSearchParameters, AppFileReferenceSorting, AppFileReferenceCursor, AppFileReferenceSheetItem> {
6
+ export declare class AppFileReferenceSerializer extends NestEntitySerializer<AppFileReferenceEntity, AppFileReferenceEntityId, AppFileReferenceCreateData, AppFileReferenceUpdateData, AppFileReferenceSearchParameters, AppFileReferenceSorting, AppFileReferenceCursor, AppFileReferenceSheetItem, AppAuthContext> {
6
7
  constructor(registry: EntityManagerRegistry);
7
8
  protected loadEntities(filters: AppFileReferenceSearchParameters): Promise<AppFileReferenceEntity[]>;
8
9
  protected convertToSheetItems(entities: AppFileReferenceEntity[]): Promise<AppFileReferenceSheetItem[]>;
9
- protected importItem(item: AppFileReferenceSheetItem): Promise<AppFileReferenceEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppFileReferenceEntity>;
10
+ protected importItem(item: AppFileReferenceSheetItem, context: AppAuthContext): Promise<AppFileReferenceEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppFileReferenceEntity>>;
11
12
  }
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppOrganizationEntity } from "../../database/core/entities/appOrganization.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppOrganizationCreateData, AppOrganizationCursor, AppOrganizationEntityId, AppOrganizationSearchParameters, AppOrganizationSheetItem, AppOrganizationSorting, AppOrganizationUpdateData } from "./appOrganization.models";
4
- export declare class AppOrganizationSerializer extends NestEntitySerializer<AppOrganizationEntity, AppOrganizationEntityId, AppOrganizationCreateData, AppOrganizationUpdateData, AppOrganizationSearchParameters, AppOrganizationSorting, AppOrganizationCursor, AppOrganizationSheetItem> {
5
+ export declare class AppOrganizationSerializer extends NestEntitySerializer<AppOrganizationEntity, AppOrganizationEntityId, AppOrganizationCreateData, AppOrganizationUpdateData, AppOrganizationSearchParameters, AppOrganizationSorting, AppOrganizationCursor, AppOrganizationSheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppOrganizationSearchParameters): Promise<AppOrganizationEntity[]>;
7
8
  protected convertToSheetItems(entities: AppOrganizationEntity[]): Promise<AppOrganizationEntity[]>;
8
- protected importItem(item: AppOrganizationSheetItem): Promise<AppOrganizationEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppOrganizationEntity>;
9
+ protected importItem(item: AppOrganizationSheetItem, context: AppAuthContext): Promise<AppOrganizationEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppOrganizationEntity>>;
10
11
  }
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppRoleEntity } from "../../database/core/entities/appRole.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppRoleCreateData, AppRoleCursor, AppRoleEntityId, AppRoleSearchParameters, AppRoleSheetItem, AppRoleSorting, AppRoleUpdateData } from "./appRole.models";
4
- export declare class AppRoleSerializer extends NestEntitySerializer<AppRoleEntity, AppRoleEntityId, AppRoleCreateData, AppRoleUpdateData, AppRoleSearchParameters, AppRoleSorting, AppRoleCursor, AppRoleSheetItem> {
5
+ export declare class AppRoleSerializer extends NestEntitySerializer<AppRoleEntity, AppRoleEntityId, AppRoleCreateData, AppRoleUpdateData, AppRoleSearchParameters, AppRoleSorting, AppRoleCursor, AppRoleSheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppRoleSearchParameters): Promise<AppRoleEntity[]>;
7
8
  protected convertToSheetItems(entities: AppRoleEntity[]): Promise<AppRoleEntity[]>;
8
- protected importItem(item: AppRoleSheetItem): Promise<AppRoleEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppRoleEntity>;
9
+ protected importItem(item: AppRoleSheetItem, context: AppAuthContext): Promise<AppRoleEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppRoleEntity>>;
10
11
  }
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppTenantEntity } from "../../database/core/entities/appTenant.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppTenantCreateData, AppTenantCursor, AppTenantEntityId, AppTenantSearchParameters, AppTenantSheetItem, AppTenantSorting, AppTenantUpdateData } from "./appTenant.models";
4
- export declare class AppTenantSerializer extends NestEntitySerializer<AppTenantEntity, AppTenantEntityId, AppTenantCreateData, AppTenantUpdateData, AppTenantSearchParameters, AppTenantSorting, AppTenantCursor, AppTenantSheetItem> {
5
+ export declare class AppTenantSerializer extends NestEntitySerializer<AppTenantEntity, AppTenantEntityId, AppTenantCreateData, AppTenantUpdateData, AppTenantSearchParameters, AppTenantSorting, AppTenantCursor, AppTenantSheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppTenantSearchParameters): Promise<AppTenantEntity[]>;
7
8
  protected convertToSheetItems(entities: AppTenantEntity[]): Promise<AppTenantEntity[]>;
8
- protected importItem(item: AppTenantSheetItem): Promise<AppTenantEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppTenantEntity>;
9
+ protected importItem(item: AppTenantSheetItem, context: AppAuthContext): Promise<AppTenantEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppTenantEntity>>;
10
11
  }
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppUserGroupMemberEntity } from "../../database/core/entities/appUserGroupMember.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppUserGroupMemberCreateData, AppUserGroupMemberCursor, AppUserGroupMemberEntityId, AppUserGroupMemberSearchParameters, AppUserGroupMemberSheetItem, AppUserGroupMemberSorting, AppUserGroupMemberUpdateData } from "./appUserGroupMember.models";
4
- export declare class AppUserGroupMemberSerializer extends NestEntitySerializer<AppUserGroupMemberEntity, AppUserGroupMemberEntityId, AppUserGroupMemberCreateData, AppUserGroupMemberUpdateData, AppUserGroupMemberSearchParameters, AppUserGroupMemberSorting, AppUserGroupMemberCursor, AppUserGroupMemberSheetItem> {
5
+ export declare class AppUserGroupMemberSerializer extends NestEntitySerializer<AppUserGroupMemberEntity, AppUserGroupMemberEntityId, AppUserGroupMemberCreateData, AppUserGroupMemberUpdateData, AppUserGroupMemberSearchParameters, AppUserGroupMemberSorting, AppUserGroupMemberCursor, AppUserGroupMemberSheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppUserGroupMemberSearchParameters): Promise<AppUserGroupMemberEntity[]>;
7
8
  protected convertToSheetItems(entities: AppUserGroupMemberEntity[]): Promise<AppUserGroupMemberEntity[]>;
8
- protected importItem(item: AppUserGroupMemberSheetItem): Promise<AppUserGroupMemberEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserGroupMemberEntity>;
9
+ protected importItem(item: AppUserGroupMemberSheetItem, context: AppAuthContext): Promise<AppUserGroupMemberEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserGroupMemberEntity>>;
10
11
  }
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppUserGroupEntity } from "../../database/core/entities/appUserGroup.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppUserGroupCreateData, AppUserGroupCursor, AppUserGroupEntityId, AppUserGroupSearchParameters, AppUserGroupSheetItem, AppUserGroupSorting, AppUserGroupUpdateData } from "./appUserGroup.models";
4
- export declare class AppUserGroupSerializer extends NestEntitySerializer<AppUserGroupEntity, AppUserGroupEntityId, AppUserGroupCreateData, AppUserGroupUpdateData, AppUserGroupSearchParameters, AppUserGroupSorting, AppUserGroupCursor, AppUserGroupSheetItem> {
5
+ export declare class AppUserGroupSerializer extends NestEntitySerializer<AppUserGroupEntity, AppUserGroupEntityId, AppUserGroupCreateData, AppUserGroupUpdateData, AppUserGroupSearchParameters, AppUserGroupSorting, AppUserGroupCursor, AppUserGroupSheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppUserGroupSearchParameters): Promise<AppUserGroupEntity[]>;
7
8
  protected convertToSheetItems(entities: AppUserGroupEntity[]): Promise<AppUserGroupEntity[]>;
8
- protected importItem(item: AppUserGroupSheetItem): Promise<AppUserGroupEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserGroupEntity>;
9
+ protected importItem(item: AppUserGroupSheetItem, context: AppAuthContext): Promise<AppUserGroupEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserGroupEntity>>;
10
11
  }
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppUserProfileEntity } from "../../database/core/entities/appUserProfile.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppUserProfileCreateData, AppUserProfileCursor, AppUserProfileEntityId, AppUserProfileSearchParameters, AppUserProfileSheetItem, AppUserProfileSorting, AppUserProfileUpdateData } from "./appUserProfile.models";
4
- export declare class AppUserProfileSerializer extends NestEntitySerializer<AppUserProfileEntity, AppUserProfileEntityId, AppUserProfileCreateData, AppUserProfileUpdateData, AppUserProfileSearchParameters, AppUserProfileSorting, AppUserProfileCursor, AppUserProfileSheetItem> {
5
+ export declare class AppUserProfileSerializer extends NestEntitySerializer<AppUserProfileEntity, AppUserProfileEntityId, AppUserProfileCreateData, AppUserProfileUpdateData, AppUserProfileSearchParameters, AppUserProfileSorting, AppUserProfileCursor, AppUserProfileSheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppUserProfileSearchParameters): Promise<AppUserProfileEntity[]>;
7
8
  protected convertToSheetItems(entities: AppUserProfileEntity[]): Promise<AppUserProfileEntity[]>;
8
- protected importItem(item: AppUserProfileSheetItem): Promise<AppUserProfileEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserProfileEntity>;
9
+ protected importItem(item: AppUserProfileSheetItem, context: AppAuthContext): Promise<AppUserProfileEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserProfileEntity>>;
10
11
  }
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppUserRoleEntity } from "../../database/core/entities/appUserRole.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppUserRoleCreateData, AppUserRoleCursor, AppUserRoleEntityId, AppUserRoleSearchParameters, AppUserRoleSheetItem, AppUserRoleSorting, AppUserRoleUpdateData } from "./appUserRole.models";
4
- export declare class AppUserRoleSerializer extends NestEntitySerializer<AppUserRoleEntity, AppUserRoleEntityId, AppUserRoleCreateData, AppUserRoleUpdateData, AppUserRoleSearchParameters, AppUserRoleSorting, AppUserRoleCursor, AppUserRoleSheetItem> {
5
+ export declare class AppUserRoleSerializer extends NestEntitySerializer<AppUserRoleEntity, AppUserRoleEntityId, AppUserRoleCreateData, AppUserRoleUpdateData, AppUserRoleSearchParameters, AppUserRoleSorting, AppUserRoleCursor, AppUserRoleSheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppUserRoleSearchParameters): Promise<AppUserRoleEntity[]>;
7
8
  protected convertToSheetItems(entities: AppUserRoleEntity[]): Promise<AppUserRoleEntity[]>;
8
- protected importItem(item: AppUserRoleSheetItem): Promise<AppUserRoleEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserRoleEntity>;
9
+ protected importItem(item: AppUserRoleSheetItem, context: AppAuthContext): Promise<AppUserRoleEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserRoleEntity>>;
10
11
  }
@@ -1,10 +1,11 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { AppUserEntity } from "../../database/core/entities/appUser.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { AppUserCreateData, AppUserCursor, AppUserEntityId, AppUserSearchParameters, AppUserSheetItem, AppUserSorting, AppUserUpdateData } from "./appUser.models";
4
- export declare class AppUserSerializer extends NestEntitySerializer<AppUserEntity, AppUserEntityId, AppUserCreateData, AppUserUpdateData, AppUserSearchParameters, AppUserSorting, AppUserCursor, AppUserSheetItem> {
5
+ export declare class AppUserSerializer extends NestEntitySerializer<AppUserEntity, AppUserEntityId, AppUserCreateData, AppUserUpdateData, AppUserSearchParameters, AppUserSorting, AppUserCursor, AppUserSheetItem, AppAuthContext> {
5
6
  constructor(registry: EntityManagerRegistry);
6
7
  protected loadEntities(filters: AppUserSearchParameters): Promise<AppUserEntity[]>;
7
8
  protected convertToSheetItems(entities: AppUserEntity[]): Promise<AppUserEntity[]>;
8
- protected importItem(item: AppUserSheetItem): Promise<AppUserEntity>;
9
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserEntity>;
9
+ protected importItem(item: AppUserSheetItem, context: AppAuthContext): Promise<AppUserEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserEntity>>;
10
11
  }
@@ -1,11 +1,12 @@
1
1
  import { NestEntitySerializer, EntityManagerRegistry, EntitySerializerSheetDefinition } from "../../../../../..";
2
2
  import { CrmContactEntity } from "../../database/core/entities/crmContact.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { CrmContactCreateData, CrmContactCursor, CrmContactEntityId, CrmContactSheetItem, CrmContactSorting, CrmContactUpdateData } from "./crmContact.models";
4
5
  import { CrmContactSearchParameters } from "./crmContact.types";
5
- export declare class CrmContactSerializer extends NestEntitySerializer<CrmContactEntity, CrmContactEntityId, CrmContactCreateData, CrmContactUpdateData, CrmContactSearchParameters, CrmContactSorting, CrmContactCursor, CrmContactSheetItem> {
6
+ export declare class CrmContactSerializer extends NestEntitySerializer<CrmContactEntity, CrmContactEntityId, CrmContactCreateData, CrmContactUpdateData, CrmContactSearchParameters, CrmContactSorting, CrmContactCursor, CrmContactSheetItem, AppAuthContext> {
6
7
  constructor(registry: EntityManagerRegistry);
7
8
  protected loadEntities(filters: CrmContactSearchParameters): Promise<CrmContactEntity[]>;
8
9
  protected convertToSheetItems(entities: CrmContactEntity[]): Promise<CrmContactSheetItem[]>;
9
- protected importItem(item: CrmContactSheetItem): Promise<CrmContactEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<CrmContactEntity>;
10
+ protected importItem(item: CrmContactSheetItem, context: AppAuthContext): Promise<CrmContactEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<CrmContactEntity>>;
11
12
  }
@@ -1,11 +1,12 @@
1
1
  import { EntityManagerRegistry, EntitySerializerSheetDefinition, NestEntitySerializer } from "../../../../../..";
2
2
  import { FooEntity } from "../../database/core/entities/foo.entity";
3
+ import { AppAuthContext } from "../../infrastructure/authentication";
3
4
  import { FooCreateData, FooCursor, FooEntityId, FooSheetItem, FooSorting, FooUpdateData } from "./foo.models";
4
5
  import { FooSearchParameters } from "./foo.types";
5
- export declare class FooSerializer extends NestEntitySerializer<FooEntity, FooEntityId, FooCreateData, FooUpdateData, FooSearchParameters, FooSorting, FooCursor, FooSheetItem> {
6
+ export declare class FooSerializer extends NestEntitySerializer<FooEntity, FooEntityId, FooCreateData, FooUpdateData, FooSearchParameters, FooSorting, FooCursor, FooSheetItem, AppAuthContext> {
6
7
  constructor(registry: EntityManagerRegistry);
7
8
  protected loadEntities(filters: FooSearchParameters): Promise<FooEntity[]>;
8
9
  protected convertToSheetItems(entities: FooEntity[]): Promise<FooSheetItem[]>;
9
- protected importItem(item: FooSheetItem): Promise<FooEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<FooSheetItem>;
10
+ protected importItem(item: FooSheetItem, context: AppAuthContext): Promise<FooEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<FooSheetItem>>;
11
12
  }
@@ -1,7 +1,7 @@
1
1
  import { IEntityManager, IEntitySearchParameters, SortingType } from "../../../abstractions";
2
2
  import { EntitySerializer } from "../../../base/serializer";
3
3
  import { EntityManagerRegistry } from "../ioc";
4
- export declare abstract class NestEntitySerializer<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TSheetItem> extends EntitySerializer<TEntity, TEntityId, TEntitySearchParameters, TSheetItem> {
4
+ export declare abstract class NestEntitySerializer<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TSheetItem, TContext> extends EntitySerializer<TEntity, TEntityId, TEntitySearchParameters, TSheetItem, TContext> {
5
5
  private readonly registry;
6
6
  constructor(entityName: string, registry: EntityManagerRegistry);
7
7
  protected get manager(): IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, any, TEntitySearchParameters, TSorting, TCursor, any>;
package/dist/esm/index.js CHANGED
@@ -130,9 +130,10 @@ class EntitySeeder {
130
130
 
131
131
  const DEFAULT_DELIMITER = ";";
132
132
  class EntitySerializer {
133
- constructor(entityName) {
134
- this.entityName = entityName;
135
- this.logger = Log.getLogger(`${entityName} -> Serializer`);
133
+ constructor(services) {
134
+ this.services = services;
135
+ this.entityName = services.getEntityName();
136
+ this.logger = Log.getLogger(`${services.getEntityName()} -> Serializer`);
136
137
  }
137
138
  async export(filters) {
138
139
  const entities = await this.loadEntities(filters ?? {});
@@ -140,35 +141,36 @@ class EntitySerializer {
140
141
  }
141
142
  async import(items) {
142
143
  this.logger.info(`Entities import -> started (${items.length} items)`);
144
+ const context = await this.getContext();
143
145
  for (const [index, item] of items.entries()) {
144
- await this.importItem(item);
146
+ await this.importItem(item, context);
145
147
  this.logger.info(`Entity imported -> ${index + 1}/${items.length}`);
146
148
  }
147
149
  this.logger.info(`Entities import -> completed (${items.length} items)`);
148
150
  }
149
151
  async parse(data, format) {
152
+ const definition = await this.getDefinition();
150
153
  switch (format) {
151
154
  case EntitySerializationFormat.Csv:
152
- return this.parseCsv(data);
155
+ return this.parseCsv(data, definition);
153
156
  case EntitySerializationFormat.Xlsx:
154
- return this.parseXlsx(data);
157
+ return this.parseXlsx(data, definition);
155
158
  default:
156
159
  throw new Error(`Format ${format} not supported`);
157
160
  }
158
161
  }
159
- parseCsv(data) {
162
+ parseCsv(data, definition) {
160
163
  const records = csvParse(data, DEFAULT_DELIMITER);
161
- return records.map((x) => this.convertSheetRecord(x));
164
+ return records.map((x) => this.convertSheetRecord(x, definition));
162
165
  }
163
- parseXlsx(data) {
166
+ parseXlsx(data, definition) {
164
167
  const records = excelParse(data);
165
- return records.map((x) => this.convertSheetRecord(x));
168
+ return records.map((x) => this.convertSheetRecord(x, definition));
166
169
  }
167
- convertSheetRecord(record) {
170
+ convertSheetRecord(record, definition) {
168
171
  if (!record._type || record._type !== this.entityName) {
169
172
  throw new Error(`Invalid record type ${record._type} -> record: \n${JSON.stringify(record)}`);
170
173
  }
171
- const definition = this.getDefinition();
172
174
  const entity = {};
173
175
  for (const column of definition.columns) {
174
176
  entity[column.selector] = this.parseColumnValue(record, column);
@@ -191,6 +193,7 @@ class EntitySerializer {
191
193
  format,
192
194
  refDate: new Date(),
193
195
  });
196
+ const definition = await this.getDefinition();
194
197
  switch (format) {
195
198
  case EntitySerializationFormat.Csv:
196
199
  return {
@@ -201,7 +204,7 @@ class EntitySerializer {
201
204
  name: "_type",
202
205
  value: () => this.entityName,
203
206
  },
204
- ...this.getDefinition().columns.map((c) => ({
207
+ ...definition.columns.map((c) => ({
205
208
  name: c.name,
206
209
  value: () => c.sampleValue ?? "",
207
210
  })),
@@ -221,7 +224,7 @@ class EntitySerializer {
221
224
  header: "_type",
222
225
  value: () => this.entityName,
223
226
  },
224
- ...this.getDefinition().columns.map((c) => ({
227
+ ...definition.columns.map((c) => ({
225
228
  header: c.name,
226
229
  value: () => c.sampleValue ?? "",
227
230
  headerSize: c.colSpan,
@@ -236,11 +239,17 @@ class EntitySerializer {
236
239
  async serialize(data, format) {
237
240
  return await this.buildExportFile(data, format);
238
241
  }
242
+ async getContext() {
243
+ return (await this.services
244
+ .resolveAuthenticationContextProvider()
245
+ ?.getContext());
246
+ }
239
247
  async buildExportFile(data, format) {
240
248
  const fileName = this.buildExportFileName({
241
249
  format,
242
250
  refDate: new Date(),
243
251
  });
252
+ const definition = await this.getDefinition();
244
253
  switch (format) {
245
254
  case EntitySerializationFormat.Csv:
246
255
  return {
@@ -251,7 +260,7 @@ class EntitySerializer {
251
260
  name: "_type",
252
261
  value: () => this.entityName,
253
262
  },
254
- ...this.getDefinition().columns.map((c) => ({
263
+ ...definition.columns.map((c) => ({
255
264
  name: c.name,
256
265
  value: (item) => this.getColumnValue(item, c),
257
266
  })),
@@ -271,7 +280,7 @@ class EntitySerializer {
271
280
  header: "_type",
272
281
  value: () => this.entityName,
273
282
  },
274
- ...this.getDefinition().columns.map((c) => ({
283
+ ...definition.columns.map((c) => ({
275
284
  header: c.name,
276
285
  value: (item) => this.getColumnValue(item, c),
277
286
  headerSize: c.colSpan,
@@ -2312,7 +2321,7 @@ class NestEntityManager {
2312
2321
 
2313
2322
  class NestEntitySerializer extends EntitySerializer {
2314
2323
  constructor(entityName, registry) {
2315
- super(entityName);
2324
+ super(registry.resolveEntityServicesCollection(entityName));
2316
2325
  this.registry = registry;
2317
2326
  }
2318
2327
  get manager() {