@punks/backend-entity-manager 0.0.91 → 0.0.93

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 +108 -13
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/__test__/entity/foo.d.ts +1 -1
  4. package/dist/cjs/types/__test__/providers/typeorm/entity/foo.d.ts +1 -1
  5. package/dist/cjs/types/abstractions/configuration.d.ts +1 -1
  6. package/dist/cjs/types/abstractions/import.d.ts +2 -0
  7. package/dist/cjs/types/abstractions/serializer.d.ts +7 -2
  8. package/dist/cjs/types/base/serializer.d.ts +7 -3
  9. package/dist/cjs/types/commands/import.d.ts +5 -0
  10. package/dist/cjs/types/platforms/nest/__test__/server/app/appCompanies/appCompany.serializer.d.ts +1 -1
  11. package/dist/cjs/types/platforms/nest/__test__/server/app/appDivisions/appDivision.serializer.d.ts +1 -1
  12. package/dist/cjs/types/platforms/nest/__test__/server/app/appOrganizations/appOrganization.serializer.d.ts +1 -1
  13. package/dist/cjs/types/platforms/nest/__test__/server/app/appRoles/appRole.serializer.d.ts +1 -1
  14. package/dist/cjs/types/platforms/nest/__test__/server/app/appTenants/appTenant.serializer.d.ts +1 -1
  15. package/dist/cjs/types/platforms/nest/__test__/server/app/appUserGroupMembers/appUserGroupMember.serializer.d.ts +1 -1
  16. package/dist/cjs/types/platforms/nest/__test__/server/app/appUserGroups/appUserGroup.serializer.d.ts +1 -1
  17. package/dist/cjs/types/platforms/nest/__test__/server/app/appUserProfiles/appUserProfile.serializer.d.ts +1 -1
  18. package/dist/cjs/types/platforms/nest/__test__/server/app/appUserRoles/appUserRole.serializer.d.ts +1 -1
  19. package/dist/cjs/types/platforms/nest/__test__/server/app/appUsers/appUser.serializer.d.ts +1 -1
  20. package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +1 -1
  21. package/dist/cjs/types/platforms/nest/base/entityActions.d.ts +1 -1
  22. package/dist/cjs/types/platforms/nest/base/entityManager.d.ts +1 -1
  23. package/dist/cjs/types/platforms/nest/base/entitySerializer.d.ts +1 -1
  24. package/dist/cjs/types/providers/services.d.ts +3 -3
  25. package/dist/esm/index.js +109 -14
  26. package/dist/esm/index.js.map +1 -1
  27. package/dist/esm/types/__test__/entity/foo.d.ts +1 -1
  28. package/dist/esm/types/__test__/providers/typeorm/entity/foo.d.ts +1 -1
  29. package/dist/esm/types/abstractions/configuration.d.ts +1 -1
  30. package/dist/esm/types/abstractions/import.d.ts +2 -0
  31. package/dist/esm/types/abstractions/serializer.d.ts +7 -2
  32. package/dist/esm/types/base/serializer.d.ts +7 -3
  33. package/dist/esm/types/commands/import.d.ts +5 -0
  34. package/dist/esm/types/platforms/nest/__test__/server/app/appCompanies/appCompany.serializer.d.ts +1 -1
  35. package/dist/esm/types/platforms/nest/__test__/server/app/appDivisions/appDivision.serializer.d.ts +1 -1
  36. package/dist/esm/types/platforms/nest/__test__/server/app/appOrganizations/appOrganization.serializer.d.ts +1 -1
  37. package/dist/esm/types/platforms/nest/__test__/server/app/appRoles/appRole.serializer.d.ts +1 -1
  38. package/dist/esm/types/platforms/nest/__test__/server/app/appTenants/appTenant.serializer.d.ts +1 -1
  39. package/dist/esm/types/platforms/nest/__test__/server/app/appUserGroupMembers/appUserGroupMember.serializer.d.ts +1 -1
  40. package/dist/esm/types/platforms/nest/__test__/server/app/appUserGroups/appUserGroup.serializer.d.ts +1 -1
  41. package/dist/esm/types/platforms/nest/__test__/server/app/appUserProfiles/appUserProfile.serializer.d.ts +1 -1
  42. package/dist/esm/types/platforms/nest/__test__/server/app/appUserRoles/appUserRole.serializer.d.ts +1 -1
  43. package/dist/esm/types/platforms/nest/__test__/server/app/appUsers/appUser.serializer.d.ts +1 -1
  44. package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +1 -1
  45. package/dist/esm/types/platforms/nest/base/entityActions.d.ts +1 -1
  46. package/dist/esm/types/platforms/nest/base/entityManager.d.ts +1 -1
  47. package/dist/esm/types/platforms/nest/base/entitySerializer.d.ts +1 -1
  48. package/dist/esm/types/providers/services.d.ts +3 -3
  49. package/dist/index.d.ts +22 -11
  50. package/package.json +3 -3
@@ -67,7 +67,7 @@ export interface FooUpdateDto {
67
67
  age: number;
68
68
  };
69
69
  }
70
- export declare class FooSerializer extends EntitySerializer<FooEntity> {
70
+ export declare class FooSerializer extends EntitySerializer<FooEntity, string> {
71
71
  constructor(entityName: string);
72
72
  protected getDefinition(): EntitySerializerSheetDefinition<FooEntity>;
73
73
  }
@@ -81,7 +81,7 @@ export declare class FooConverter implements IEntityConverter<FooEntity, FooDto,
81
81
  createDtoToEntity(input: FooCreateInput): Partial<FooEntity>;
82
82
  updateDtoToEntity(input: FooUpdateInput): Partial<FooEntity>;
83
83
  }
84
- export declare class FooSerializer extends EntitySerializer<FooEntity> {
84
+ export declare class FooSerializer extends EntitySerializer<FooEntity, string> {
85
85
  protected getDefinition(): EntitySerializerSheetDefinition<FooEntity>;
86
86
  }
87
87
  export declare const registerFooTypeOrmEntity: (container: IEntityManagerServiceRoot, dataSource: DataSource, options?: {
@@ -30,7 +30,7 @@ export interface IEntityManagerServiceRoot {
30
30
  export interface IEntityManagerServiceCollection<TEntity, TEntityId> {
31
31
  getServiceLocator(): EntityServiceLocator<TEntity, TEntityId>;
32
32
  mapCrudOperations<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets, TEntitiesQueryBuilder extends IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, unknown>>(input: EntitiesMapOperationsInput<TEntitiesQueryBuilder>): IEntityManagerServiceCollection<TEntity, TEntityId>;
33
- addSerializer<TEntitySerializer extends IEntitySerializer<TEntity>>(serializer: TEntitySerializer): IEntityManagerServiceCollection<TEntity, TEntityId>;
33
+ addSerializer<TEntitySerializer extends IEntitySerializer<TEntity, TEntityId>>(serializer: TEntitySerializer): IEntityManagerServiceCollection<TEntity, TEntityId>;
34
34
  addConverter<TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput, TEntityConverter extends IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput>>(converter: TEntityConverter): IEntityManagerServiceCollection<TEntity, TEntityId>;
35
35
  addAdapter<TEntityCreateData, TEntityUpdateData, TEntityAdapter extends IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData>>(adapter: TEntityAdapter): IEntityManagerServiceCollection<TEntity, TEntityId>;
36
36
  addAuthorization<TEntityAuthorizationMiddleware extends IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext>, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>({ middleware, }: {
@@ -2,7 +2,9 @@
2
2
  import { EntitySerializationFormat } from "./serializer";
3
3
  export type EntitiesImportInput = {
4
4
  format: EntitySerializationFormat;
5
+ fileName: string;
5
6
  content: Buffer;
7
+ contentType: string;
6
8
  };
7
9
  export type EntitiesImportStatistics = {
8
10
  importedCount: number;
@@ -6,6 +6,7 @@ export type EntitySerializerColumnDefinition<TEntity> = {
6
6
  sampleValue?: any;
7
7
  parser?: (value: any) => any;
8
8
  converter?: (value: any, item: TEntity) => any;
9
+ idColumn?: boolean;
9
10
  };
10
11
  export type EntitySerializerSheetDefinition<TEntity> = {
11
12
  columns: EntitySerializerColumnDefinition<TEntity>[];
@@ -20,8 +21,12 @@ export declare enum EntitySerializationFormat {
20
21
  Json = "json",
21
22
  Xlsx = "xlsx"
22
23
  }
23
- export interface IEntitySerializer<TEntity> {
24
+ export type ImportEntry<TEntity, TEntityId> = {
25
+ id?: TEntityId;
26
+ item: TEntity;
27
+ };
28
+ export interface IEntitySerializer<TEntity, TEntityId> {
24
29
  serialize(data: TEntity[], format: EntitySerializationFormat): Promise<EntityExportFile>;
25
- parse(data: Buffer, format: EntitySerializationFormat): Promise<TEntity[]>;
30
+ parse(data: Buffer, format: EntitySerializationFormat): Promise<ImportEntry<TEntity, TEntityId>[]>;
26
31
  createSample(format: EntitySerializationFormat): Promise<EntityExportFile>;
27
32
  }
@@ -1,10 +1,14 @@
1
1
  /// <reference types="node" />
2
2
  import { EntitySerializationFormat, IEntitySerializer } from "../abstractions";
3
- import { EntityExportFile, EntitySerializerSheetDefinition } from "../abstractions/serializer";
4
- export declare abstract class EntitySerializer<TEntity> implements IEntitySerializer<TEntity> {
3
+ import { EntityExportFile, EntitySerializerSheetDefinition, ImportEntry } from "../abstractions/serializer";
4
+ export declare abstract class EntitySerializer<TEntity, TEntityId> implements IEntitySerializer<TEntity, TEntityId> {
5
5
  protected readonly entityName: string;
6
6
  constructor(entityName: string);
7
- parse(data: Buffer, format: EntitySerializationFormat): Promise<TEntity[]>;
7
+ parse(data: Buffer, format: EntitySerializationFormat): Promise<ImportEntry<TEntity, TEntityId>[]>;
8
+ private parseCsv;
9
+ private parseXlsx;
10
+ private convertSheetRecord;
11
+ private parseColumnValue;
8
12
  createSample(format: EntitySerializationFormat): Promise<EntityExportFile>;
9
13
  private buildSampleFile;
10
14
  serialize(data: TEntity[], format: EntitySerializationFormat): Promise<EntityExportFile>;
@@ -7,4 +7,9 @@ export declare class EntitiesImportCommand<TEntity> implements IEntitiesImportCo
7
7
  private readonly settings;
8
8
  constructor(services: EntityServiceLocator<TEntity, unknown>, settings: EntitiesImportExportSettings);
9
9
  execute(input: EntitiesImportInput): Promise<EntitiesImportResult>;
10
+ private importEntity;
11
+ private parseImportFile;
12
+ private uploadImportFile;
13
+ private buildAbsoluteBucketPath;
14
+ private get bucket();
10
15
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppCompanyEntity } from "../../database/core/entities/appCompany.entity";
4
- export declare class AppCompanySerializer extends NestEntitySerializer<AppCompanyEntity> {
4
+ export declare class AppCompanySerializer extends NestEntitySerializer<AppCompanyEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppCompanyEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppDivisionEntity } from "../../database/core/entities/appDivision.entity";
4
- export declare class AppDivisionSerializer extends NestEntitySerializer<AppDivisionEntity> {
4
+ export declare class AppDivisionSerializer extends NestEntitySerializer<AppDivisionEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppDivisionEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppOrganizationEntity } from "../../database/core/entities/appOrganization.entity";
4
- export declare class AppOrganizationSerializer extends NestEntitySerializer<AppOrganizationEntity> {
4
+ export declare class AppOrganizationSerializer extends NestEntitySerializer<AppOrganizationEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppOrganizationEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppRoleEntity } from "../../database/core/entities/appRole.entity";
4
- export declare class AppRoleSerializer extends NestEntitySerializer<AppRoleEntity> {
4
+ export declare class AppRoleSerializer extends NestEntitySerializer<AppRoleEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppRoleEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppTenantEntity } from "../../database/core/entities/appTenant.entity";
4
- export declare class AppTenantSerializer extends NestEntitySerializer<AppTenantEntity> {
4
+ export declare class AppTenantSerializer extends NestEntitySerializer<AppTenantEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppTenantEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppUserGroupMemberEntity } from "../../database/core/entities/appUserGroupMember.entity";
4
- export declare class AppUserGroupMemberSerializer extends NestEntitySerializer<AppUserGroupMemberEntity> {
4
+ export declare class AppUserGroupMemberSerializer extends NestEntitySerializer<AppUserGroupMemberEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppUserGroupMemberEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppUserGroupEntity } from "../../database/core/entities/appUserGroup.entity";
4
- export declare class AppUserGroupSerializer extends NestEntitySerializer<AppUserGroupEntity> {
4
+ export declare class AppUserGroupSerializer extends NestEntitySerializer<AppUserGroupEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppUserGroupEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppUserProfileEntity } from "../../database/core/entities/appUserProfile.entity";
4
- export declare class AppUserProfileSerializer extends NestEntitySerializer<AppUserProfileEntity> {
4
+ export declare class AppUserProfileSerializer extends NestEntitySerializer<AppUserProfileEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppUserProfileEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppUserRoleEntity } from "../../database/core/entities/appUserRole.entity";
4
- export declare class AppUserRoleSerializer extends NestEntitySerializer<AppUserRoleEntity> {
4
+ export declare class AppUserRoleSerializer extends NestEntitySerializer<AppUserRoleEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppUserRoleEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { NestEntitySerializer } from "../../../../base";
2
2
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions";
3
3
  import { AppUserEntity } from "../../database/core/entities/appUser.entity";
4
- export declare class AppUserSerializer extends NestEntitySerializer<AppUserEntity> {
4
+ export declare class AppUserSerializer extends NestEntitySerializer<AppUserEntity, string> {
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<AppUserEntity>;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { EntityManagerRegistry, EntitySerializerSheetDefinition, NestEntitySerializer } from "../../../../../..";
2
2
  import { FooEntity } from "../../database/core/entities/foo.entity";
3
- export declare class FooSerializer extends NestEntitySerializer<FooEntity> {
3
+ export declare class FooSerializer extends NestEntitySerializer<FooEntity, string> {
4
4
  constructor(registry: EntityManagerRegistry);
5
5
  protected getDefinition(): EntitySerializerSheetDefinition<FooEntity>;
6
6
  }
@@ -3,7 +3,7 @@ import { IEntitiesDeleteParameters } from "../../../abstractions/commands";
3
3
  import { EntityServiceLocator } from "../../../providers/services";
4
4
  import { EntityManagerRegistry } from "../ioc";
5
5
  export declare abstract class NestEntityActions<TEntity, TEntityId, TEntityCreateDto, TEntityUpdateDto, TEntityDto, TEntityListItemDto, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets> {
6
- protected readonly services: EntityServiceLocator<TEntity, TEntityId>;
6
+ protected readonly services: EntityServiceLocator<TEntity, unknown>;
7
7
  private actionsInstance;
8
8
  constructor(entityName: string, registry: EntityManagerRegistry);
9
9
  get manager(): IEntityActions<TEntity, TEntityId, TEntityCreateDto, TEntityUpdateDto, TEntityDto, TEntityListItemDto, TEntitiesDeleteParameters, TEntitySearchParameters, TSorting, TCursor, TFacets>;
@@ -3,7 +3,7 @@ import { IEntitiesDeleteParameters } from "../../../abstractions/commands";
3
3
  import { EntityServiceLocator } from "../../../providers/services";
4
4
  import { EntityManagerRegistry } from "../ioc/registry";
5
5
  export declare abstract class NestEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets> {
6
- protected readonly services: EntityServiceLocator<TEntity, TEntityId>;
6
+ protected readonly services: EntityServiceLocator<TEntity, unknown>;
7
7
  private managerInstance;
8
8
  constructor(entityName: string, registry: EntityManagerRegistry);
9
9
  get manager(): IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitiesDeleteParameters, TEntitySearchParameters, TSorting, TCursor, TFacets>;
@@ -1,7 +1,7 @@
1
1
  import { EntitySerializer } from "../../../base/serializer";
2
2
  import { EntityServiceLocator } from "../../../providers/services";
3
3
  import { EntityManagerRegistry } from "../ioc";
4
- export declare abstract class NestEntitySerializer<TEntity> extends EntitySerializer<TEntity> {
4
+ export declare abstract class NestEntitySerializer<TEntity, TEntityId> extends EntitySerializer<TEntity, TEntityId> {
5
5
  protected readonly services: EntityServiceLocator<TEntity, unknown>;
6
6
  constructor(entityName: string, registry: EntityManagerRegistry);
7
7
  }
@@ -31,7 +31,7 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
31
31
  resolveConnectorDeleteManager<TEntityId>(): IEntityConnectorDeleteManager<TEntity, TEntityId>;
32
32
  resolveConnectorsConfiguration(): IConnectorsConfiguration<TEntity>;
33
33
  resolveConverter<TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
34
- resolveSerializer(): IEntitySerializer<TEntity>;
34
+ resolveSerializer(): IEntitySerializer<TEntity, TEntityId>;
35
35
  resolveAdapter<TEntityCreateData, TEntityUpdateData>(): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
36
36
  resolveAuthorizationMiddleware<TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
37
37
  resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
@@ -103,8 +103,8 @@ export declare class EntitiesServiceLocator {
103
103
  resolveAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
104
104
  registerConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string, instance: IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>): void;
105
105
  resolveConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
106
- registerSerializer<TEntity>(entityName: string, instance: IEntitySerializer<TEntity>): void;
107
- resolveSerializer<TEntity>(entityName: string): IEntitySerializer<TEntity>;
106
+ registerSerializer<TEntity, TEntityId>(entityName: string, instance: IEntitySerializer<TEntity, TEntityId>): void;
107
+ resolveSerializer<TEntity, TEntityId>(entityName: string): IEntitySerializer<TEntity, TEntityId>;
108
108
  resolveAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
109
109
  registerAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext>): void;
110
110
  resolveGetQuery<TEntity, TEntityId>(entityName: string): IEntityGetQuery<TEntity, TEntityId>;
package/dist/index.d.ts CHANGED
@@ -79,6 +79,7 @@ type EntitySerializerColumnDefinition<TEntity> = {
79
79
  sampleValue?: any;
80
80
  parser?: (value: any) => any;
81
81
  converter?: (value: any, item: TEntity) => any;
82
+ idColumn?: boolean;
82
83
  };
83
84
  type EntitySerializerSheetDefinition<TEntity> = {
84
85
  columns: EntitySerializerColumnDefinition<TEntity>[];
@@ -93,9 +94,13 @@ declare enum EntitySerializationFormat {
93
94
  Json = "json",
94
95
  Xlsx = "xlsx"
95
96
  }
96
- interface IEntitySerializer<TEntity> {
97
+ type ImportEntry<TEntity, TEntityId> = {
98
+ id?: TEntityId;
99
+ item: TEntity;
100
+ };
101
+ interface IEntitySerializer<TEntity, TEntityId> {
97
102
  serialize(data: TEntity[], format: EntitySerializationFormat): Promise<EntityExportFile>;
98
- parse(data: Buffer, format: EntitySerializationFormat): Promise<TEntity[]>;
103
+ parse(data: Buffer, format: EntitySerializationFormat): Promise<ImportEntry<TEntity, TEntityId>[]>;
99
104
  createSample(format: EntitySerializationFormat): Promise<EntityExportFile>;
100
105
  }
101
106
 
@@ -133,7 +138,9 @@ type EntitiesSampleDownloadResult = {
133
138
 
134
139
  type EntitiesImportInput = {
135
140
  format: EntitySerializationFormat;
141
+ fileName: string;
136
142
  content: Buffer;
143
+ contentType: string;
137
144
  };
138
145
  type EntitiesImportStatistics = {
139
146
  importedCount: number;
@@ -648,7 +655,7 @@ declare class EntityServiceLocator<TEntity, TEntityId> {
648
655
  resolveConnectorDeleteManager<TEntityId>(): IEntityConnectorDeleteManager<TEntity, TEntityId>;
649
656
  resolveConnectorsConfiguration(): IConnectorsConfiguration<TEntity>;
650
657
  resolveConverter<TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
651
- resolveSerializer(): IEntitySerializer<TEntity>;
658
+ resolveSerializer(): IEntitySerializer<TEntity, TEntityId>;
652
659
  resolveAdapter<TEntityCreateData, TEntityUpdateData>(): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
653
660
  resolveAuthorizationMiddleware<TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
654
661
  resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
@@ -720,8 +727,8 @@ declare class EntitiesServiceLocator {
720
727
  resolveAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
721
728
  registerConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string, instance: IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>): void;
722
729
  resolveConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
723
- registerSerializer<TEntity>(entityName: string, instance: IEntitySerializer<TEntity>): void;
724
- resolveSerializer<TEntity>(entityName: string): IEntitySerializer<TEntity>;
730
+ registerSerializer<TEntity, TEntityId>(entityName: string, instance: IEntitySerializer<TEntity, TEntityId>): void;
731
+ resolveSerializer<TEntity, TEntityId>(entityName: string): IEntitySerializer<TEntity, TEntityId>;
725
732
  resolveAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
726
733
  registerAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext>): void;
727
734
  resolveGetQuery<TEntity, TEntityId>(entityName: string): IEntityGetQuery<TEntity, TEntityId>;
@@ -796,7 +803,7 @@ interface IEntityManagerServiceRoot {
796
803
  interface IEntityManagerServiceCollection<TEntity, TEntityId> {
797
804
  getServiceLocator(): EntityServiceLocator<TEntity, TEntityId>;
798
805
  mapCrudOperations<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets, TEntitiesQueryBuilder extends IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, unknown>>(input: EntitiesMapOperationsInput<TEntitiesQueryBuilder>): IEntityManagerServiceCollection<TEntity, TEntityId>;
799
- addSerializer<TEntitySerializer extends IEntitySerializer<TEntity>>(serializer: TEntitySerializer): IEntityManagerServiceCollection<TEntity, TEntityId>;
806
+ addSerializer<TEntitySerializer extends IEntitySerializer<TEntity, TEntityId>>(serializer: TEntitySerializer): IEntityManagerServiceCollection<TEntity, TEntityId>;
800
807
  addConverter<TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput, TEntityConverter extends IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput>>(converter: TEntityConverter): IEntityManagerServiceCollection<TEntity, TEntityId>;
801
808
  addAdapter<TEntityCreateData, TEntityUpdateData, TEntityAdapter extends IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData>>(adapter: TEntityAdapter): IEntityManagerServiceCollection<TEntity, TEntityId>;
802
809
  addAuthorization<TEntityAuthorizationMiddleware extends IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext>, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>({ middleware, }: {
@@ -919,10 +926,14 @@ declare abstract class EntitySeeder<TEntity, TFindCondition> implements IEntityS
919
926
  abstract get priority(): number | undefined;
920
927
  }
921
928
 
922
- declare abstract class EntitySerializer<TEntity> implements IEntitySerializer<TEntity> {
929
+ declare abstract class EntitySerializer<TEntity, TEntityId> implements IEntitySerializer<TEntity, TEntityId> {
923
930
  protected readonly entityName: string;
924
931
  constructor(entityName: string);
925
- parse(data: Buffer, format: EntitySerializationFormat): Promise<TEntity[]>;
932
+ parse(data: Buffer, format: EntitySerializationFormat): Promise<ImportEntry<TEntity, TEntityId>[]>;
933
+ private parseCsv;
934
+ private parseXlsx;
935
+ private convertSheetRecord;
936
+ private parseColumnValue;
926
937
  createSample(format: EntitySerializationFormat): Promise<EntityExportFile>;
927
938
  private buildSampleFile;
928
939
  serialize(data: TEntity[], format: EntitySerializationFormat): Promise<EntityExportFile>;
@@ -1167,20 +1178,20 @@ declare class EntityManagerRegistry {
1167
1178
  }
1168
1179
 
1169
1180
  declare abstract class NestEntityActions<TEntity, TEntityId, TEntityCreateDto, TEntityUpdateDto, TEntityDto, TEntityListItemDto, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets> {
1170
- protected readonly services: EntityServiceLocator<TEntity, TEntityId>;
1181
+ protected readonly services: EntityServiceLocator<TEntity, unknown>;
1171
1182
  private actionsInstance;
1172
1183
  constructor(entityName: string, registry: EntityManagerRegistry);
1173
1184
  get manager(): IEntityActions<TEntity, TEntityId, TEntityCreateDto, TEntityUpdateDto, TEntityDto, TEntityListItemDto, TEntitiesDeleteParameters, TEntitySearchParameters, TSorting, TCursor, TFacets>;
1174
1185
  }
1175
1186
 
1176
1187
  declare abstract class NestEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets> {
1177
- protected readonly services: EntityServiceLocator<TEntity, TEntityId>;
1188
+ protected readonly services: EntityServiceLocator<TEntity, unknown>;
1178
1189
  private managerInstance;
1179
1190
  constructor(entityName: string, registry: EntityManagerRegistry);
1180
1191
  get manager(): IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitiesDeleteParameters, TEntitySearchParameters, TSorting, TCursor, TFacets>;
1181
1192
  }
1182
1193
 
1183
- declare abstract class NestEntitySerializer<TEntity> extends EntitySerializer<TEntity> {
1194
+ declare abstract class NestEntitySerializer<TEntity, TEntityId> extends EntitySerializer<TEntity, TEntityId> {
1184
1195
  protected readonly services: EntityServiceLocator<TEntity, unknown>;
1185
1196
  constructor(entityName: string, registry: EntityManagerRegistry);
1186
1197
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@punks/backend-entity-manager",
3
- "version": "0.0.91",
3
+ "version": "0.0.93",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -38,7 +38,7 @@
38
38
  "@nestjs/swagger": "^7.1.2",
39
39
  "@nestjs/testing": "^10.1.0",
40
40
  "@nestjs/typeorm": "^10.0.0",
41
- "@punks/backend-core": "^0.0.17",
41
+ "@punks/backend-core": "^0.0.21",
42
42
  "@rollup/plugin-commonjs": "^21.0.1",
43
43
  "@rollup/plugin-json": "^6.0.0",
44
44
  "@rollup/plugin-node-resolve": "^13.0.6",
@@ -84,7 +84,7 @@
84
84
  "@nestjs/swagger": "^7.1.2",
85
85
  "@nestjs/testing": "^10.1.0",
86
86
  "@nestjs/typeorm": "^10.0.0",
87
- "@punks/backend-core": "0.0.17",
87
+ "@punks/backend-core": "0.0.21",
88
88
  "@sendgrid/mail": "^7.7.0",
89
89
  "bcrypt": "^5.1.0",
90
90
  "typeorm": "^0.3.17"