@punks/backend-entity-manager 0.0.92 → 0.0.94

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 +88 -5
  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 +6 -1
  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 +89 -6
  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 +6 -1
  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 +26 -12
  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, }: {
@@ -1,8 +1,13 @@
1
1
  /// <reference types="node" />
2
2
  import { EntitySerializationFormat } from "./serializer";
3
+ export type EntitiesImportInputFile = {
4
+ fileName: string;
5
+ content: Buffer;
6
+ contentType: string;
7
+ };
3
8
  export type EntitiesImportInput = {
4
9
  format: EntitySerializationFormat;
5
- content: Buffer;
10
+ file: EntitiesImportInputFile;
6
11
  };
7
12
  export type EntitiesImportStatistics = {
8
13
  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
 
@@ -131,9 +136,14 @@ type EntitiesSampleDownloadResult = {
131
136
  downloadUrl: string;
132
137
  };
133
138
 
139
+ type EntitiesImportInputFile = {
140
+ fileName: string;
141
+ content: Buffer;
142
+ contentType: string;
143
+ };
134
144
  type EntitiesImportInput = {
135
145
  format: EntitySerializationFormat;
136
- content: Buffer;
146
+ file: EntitiesImportInputFile;
137
147
  };
138
148
  type EntitiesImportStatistics = {
139
149
  importedCount: number;
@@ -648,7 +658,7 @@ declare class EntityServiceLocator<TEntity, TEntityId> {
648
658
  resolveConnectorDeleteManager<TEntityId>(): IEntityConnectorDeleteManager<TEntity, TEntityId>;
649
659
  resolveConnectorsConfiguration(): IConnectorsConfiguration<TEntity>;
650
660
  resolveConverter<TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
651
- resolveSerializer(): IEntitySerializer<TEntity>;
661
+ resolveSerializer(): IEntitySerializer<TEntity, TEntityId>;
652
662
  resolveAdapter<TEntityCreateData, TEntityUpdateData>(): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
653
663
  resolveAuthorizationMiddleware<TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
654
664
  resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
@@ -720,8 +730,8 @@ declare class EntitiesServiceLocator {
720
730
  resolveAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
721
731
  registerConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string, instance: IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>): void;
722
732
  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>;
733
+ registerSerializer<TEntity, TEntityId>(entityName: string, instance: IEntitySerializer<TEntity, TEntityId>): void;
734
+ resolveSerializer<TEntity, TEntityId>(entityName: string): IEntitySerializer<TEntity, TEntityId>;
725
735
  resolveAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
726
736
  registerAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext>): void;
727
737
  resolveGetQuery<TEntity, TEntityId>(entityName: string): IEntityGetQuery<TEntity, TEntityId>;
@@ -796,7 +806,7 @@ interface IEntityManagerServiceRoot {
796
806
  interface IEntityManagerServiceCollection<TEntity, TEntityId> {
797
807
  getServiceLocator(): EntityServiceLocator<TEntity, TEntityId>;
798
808
  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>;
809
+ addSerializer<TEntitySerializer extends IEntitySerializer<TEntity, TEntityId>>(serializer: TEntitySerializer): IEntityManagerServiceCollection<TEntity, TEntityId>;
800
810
  addConverter<TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput, TEntityConverter extends IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput>>(converter: TEntityConverter): IEntityManagerServiceCollection<TEntity, TEntityId>;
801
811
  addAdapter<TEntityCreateData, TEntityUpdateData, TEntityAdapter extends IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData>>(adapter: TEntityAdapter): IEntityManagerServiceCollection<TEntity, TEntityId>;
802
812
  addAuthorization<TEntityAuthorizationMiddleware extends IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext>, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>({ middleware, }: {
@@ -919,10 +929,14 @@ declare abstract class EntitySeeder<TEntity, TFindCondition> implements IEntityS
919
929
  abstract get priority(): number | undefined;
920
930
  }
921
931
 
922
- declare abstract class EntitySerializer<TEntity> implements IEntitySerializer<TEntity> {
932
+ declare abstract class EntitySerializer<TEntity, TEntityId> implements IEntitySerializer<TEntity, TEntityId> {
923
933
  protected readonly entityName: string;
924
934
  constructor(entityName: string);
925
- parse(data: Buffer, format: EntitySerializationFormat): Promise<TEntity[]>;
935
+ parse(data: Buffer, format: EntitySerializationFormat): Promise<ImportEntry<TEntity, TEntityId>[]>;
936
+ private parseCsv;
937
+ private parseXlsx;
938
+ private convertSheetRecord;
939
+ private parseColumnValue;
926
940
  createSample(format: EntitySerializationFormat): Promise<EntityExportFile>;
927
941
  private buildSampleFile;
928
942
  serialize(data: TEntity[], format: EntitySerializationFormat): Promise<EntityExportFile>;
@@ -1167,20 +1181,20 @@ declare class EntityManagerRegistry {
1167
1181
  }
1168
1182
 
1169
1183
  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>;
1184
+ protected readonly services: EntityServiceLocator<TEntity, unknown>;
1171
1185
  private actionsInstance;
1172
1186
  constructor(entityName: string, registry: EntityManagerRegistry);
1173
1187
  get manager(): IEntityActions<TEntity, TEntityId, TEntityCreateDto, TEntityUpdateDto, TEntityDto, TEntityListItemDto, TEntitiesDeleteParameters, TEntitySearchParameters, TSorting, TCursor, TFacets>;
1174
1188
  }
1175
1189
 
1176
1190
  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>;
1191
+ protected readonly services: EntityServiceLocator<TEntity, unknown>;
1178
1192
  private managerInstance;
1179
1193
  constructor(entityName: string, registry: EntityManagerRegistry);
1180
1194
  get manager(): IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitiesDeleteParameters, TEntitySearchParameters, TSorting, TCursor, TFacets>;
1181
1195
  }
1182
1196
 
1183
- declare abstract class NestEntitySerializer<TEntity> extends EntitySerializer<TEntity> {
1197
+ declare abstract class NestEntitySerializer<TEntity, TEntityId> extends EntitySerializer<TEntity, TEntityId> {
1184
1198
  protected readonly services: EntityServiceLocator<TEntity, unknown>;
1185
1199
  constructor(entityName: string, registry: EntityManagerRegistry);
1186
1200
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@punks/backend-entity-manager",
3
- "version": "0.0.92",
3
+ "version": "0.0.94",
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"