@punks/backend-entity-manager 0.0.175 → 0.0.177

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 (58) hide show
  1. package/dist/cjs/index.js +8 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities/appRole.entity.d.ts +2 -1
  4. package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities.d.ts +3 -1
  5. package/dist/cjs/types/platforms/nest/__test__/server/database/core/index.d.ts +11 -3
  6. package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories/appPermission.repository.d.ts +6 -0
  7. package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories/appRolePermission.repository.d.ts +6 -0
  8. package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories.d.ts +3 -1
  9. package/dist/cjs/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.adapter.d.ts +7 -0
  10. package/dist/cjs/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.authentication.d.ts +11 -0
  11. package/dist/cjs/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.manager.d.ts +7 -0
  12. package/dist/cjs/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.models.d.ts +15 -0
  13. package/dist/cjs/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.module.d.ts +2 -0
  14. package/dist/cjs/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.query.d.ts +13 -0
  15. package/dist/cjs/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.types.d.ts +70 -0
  16. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.adapter.d.ts +7 -0
  17. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.authentication.d.ts +11 -0
  18. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.manager.d.ts +7 -0
  19. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.models.d.ts +15 -0
  20. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.module.d.ts +2 -0
  21. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.query.d.ts +13 -0
  22. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.types.d.ts +70 -0
  23. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/providers/index.d.ts +2 -1
  24. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/providers/permissions/index.d.ts +15 -0
  25. package/dist/cjs/types/platforms/nest/extensions/authentication/decorators/currentUser.d.ts +2 -1
  26. package/dist/cjs/types/platforms/nest/extensions/authentication/decorators/guards.d.ts +1 -0
  27. package/dist/cjs/types/platforms/nest/extensions/authentication/decorators/symbols.d.ts +1 -0
  28. package/dist/cjs/types/platforms/nest/extensions/authentication/middlewares/authentication/index.d.ts +1 -0
  29. package/dist/esm/index.js +8 -0
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/types/platforms/nest/__test__/server/database/core/entities/appRole.entity.d.ts +2 -1
  32. package/dist/esm/types/platforms/nest/__test__/server/database/core/entities.d.ts +3 -1
  33. package/dist/esm/types/platforms/nest/__test__/server/database/core/index.d.ts +11 -3
  34. package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories/appPermission.repository.d.ts +6 -0
  35. package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories/appRolePermission.repository.d.ts +6 -0
  36. package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories.d.ts +3 -1
  37. package/dist/esm/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.adapter.d.ts +7 -0
  38. package/dist/esm/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.authentication.d.ts +11 -0
  39. package/dist/esm/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.manager.d.ts +7 -0
  40. package/dist/esm/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.models.d.ts +15 -0
  41. package/dist/esm/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.module.d.ts +2 -0
  42. package/dist/esm/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.query.d.ts +13 -0
  43. package/dist/esm/types/platforms/nest/__test__/server/entities/appPermissions/appPermission.types.d.ts +70 -0
  44. package/dist/esm/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.adapter.d.ts +7 -0
  45. package/dist/esm/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.authentication.d.ts +11 -0
  46. package/dist/esm/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.manager.d.ts +7 -0
  47. package/dist/esm/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.models.d.ts +15 -0
  48. package/dist/esm/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.module.d.ts +2 -0
  49. package/dist/esm/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.query.d.ts +13 -0
  50. package/dist/esm/types/platforms/nest/__test__/server/entities/appRolePermissions/appRolePermission.types.d.ts +70 -0
  51. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/providers/index.d.ts +2 -1
  52. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/providers/permissions/index.d.ts +15 -0
  53. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/currentUser.d.ts +2 -1
  54. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/guards.d.ts +1 -0
  55. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/symbols.d.ts +1 -0
  56. package/dist/esm/types/platforms/nest/extensions/authentication/middlewares/authentication/index.d.ts +1 -0
  57. package/dist/index.d.ts +1 -0
  58. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  import { AppUserRoleEntity } from "./appUserRole.entity";
2
+ export type AppRoleEntityId = string;
2
3
  export declare class AppRoleEntity {
3
- id: string;
4
+ id: AppRoleEntityId;
4
5
  uid: string;
5
6
  name: string;
6
7
  userRoles?: AppUserRoleEntity[];
@@ -13,4 +13,6 @@ import { AppEntityVersionEntity } from "./entities/appEntityVersion.entity";
13
13
  import { AppDirectoryEntity } from "./entities/appDirectory.entity";
14
14
  import { AppFileReferenceEntity } from "./entities/appFileReference.entity";
15
15
  import { AppEmailLogEntity } from "./entities/appEmailLog.entity";
16
- export declare const CoreDatabaseEntities: (typeof AppUserProfileEntity | typeof AppRoleEntity | typeof AppUserRoleEntity | typeof AppUserEntity | typeof AppUserGroupEntity | typeof AppOrganizationEntity | typeof AppUserGroupMemberEntity | typeof AppDirectoryEntity | typeof AppTenantEntity | typeof AppCompanyEntity | typeof AppDivisionEntity | typeof AppEmailLogEntity | typeof AppEntityVersionEntity | typeof AppFileReferenceEntity | typeof FooEntity)[];
16
+ import { AppPermissionEntity } from "./entities/appPermission.entity";
17
+ import { AppRolePermissionEntity } from "./entities/appRolePermission.entity";
18
+ export declare const CoreDatabaseEntities: (typeof AppUserProfileEntity | typeof AppRoleEntity | typeof AppUserRoleEntity | typeof AppUserEntity | typeof AppUserGroupEntity | typeof AppOrganizationEntity | typeof AppUserGroupMemberEntity | typeof AppDirectoryEntity | typeof AppTenantEntity | typeof AppCompanyEntity | typeof AppDivisionEntity | typeof AppEmailLogEntity | typeof AppEntityVersionEntity | typeof AppFileReferenceEntity | typeof AppRolePermissionEntity | typeof AppPermissionEntity | typeof FooEntity)[];
@@ -16,6 +16,8 @@ import { AppDirectoryEntity } from "./entities/appDirectory.entity";
16
16
  import { CrmContactEntity } from "./entities/crmContact.entity";
17
17
  import { AppFileReferenceEntity } from "./entities/appFileReference.entity";
18
18
  import { AppEmailLogEntity } from "./entities/appEmailLog.entity";
19
+ import { AppPermissionEntity } from "./entities/appPermission.entity";
20
+ import { AppRolePermissionEntity } from "./entities/appRolePermission.entity";
19
21
  export declare const mockDatabaseProviders: (dataSource: DataSource) => ({
20
22
  provide: string | Function;
21
23
  useValue: import("typeorm").Repository<AppCompanyEntity>;
@@ -34,15 +36,18 @@ export declare const mockDatabaseProviders: (dataSource: DataSource) => ({
34
36
  } | {
35
37
  provide: string | Function;
36
38
  useValue: import("typeorm").Repository<AppFileReferenceEntity>;
37
- } | {
38
- provide: string | Function;
39
- useValue: import("typeorm").Repository<FooEntity>;
40
39
  } | {
41
40
  provide: string | Function;
42
41
  useValue: import("typeorm").Repository<AppOrganizationEntity>;
43
42
  } | {
44
43
  provide: string | Function;
45
44
  useValue: import("typeorm").Repository<AppRoleEntity>;
45
+ } | {
46
+ provide: string | Function;
47
+ useValue: import("typeorm").Repository<AppRolePermissionEntity>;
48
+ } | {
49
+ provide: string | Function;
50
+ useValue: import("typeorm").Repository<AppPermissionEntity>;
46
51
  } | {
47
52
  provide: string | Function;
48
53
  useValue: import("typeorm").Repository<AppTenantEntity>;
@@ -64,6 +69,9 @@ export declare const mockDatabaseProviders: (dataSource: DataSource) => ({
64
69
  } | {
65
70
  provide: string | Function;
66
71
  useValue: import("typeorm").Repository<CrmContactEntity>;
72
+ } | {
73
+ provide: string | Function;
74
+ useValue: import("typeorm").Repository<FooEntity>;
67
75
  })[];
68
76
  export declare class CoreDatabaseModule {
69
77
  static forRoot(dataSource: any): DynamicModule;
@@ -0,0 +1,6 @@
1
+ import { Repository } from "typeorm";
2
+ import { AppPermissionEntity, AppPermissionEntityId } from "../entities/appPermission.entity";
3
+ import { NestTypeOrmRepository } from "../../../../../integrations";
4
+ export declare class AppPermissionRepository extends NestTypeOrmRepository<AppPermissionEntity, AppPermissionEntityId> {
5
+ constructor(repository: Repository<AppPermissionEntity>);
6
+ }
@@ -0,0 +1,6 @@
1
+ import { Repository } from "typeorm";
2
+ import { AppRolePermissionEntity, AppRolePermissionEntityId } from "../entities/appRolePermission.entity";
3
+ import { NestTypeOrmRepository } from "../../../../../integrations";
4
+ export declare class AppRolePermissionRepository extends NestTypeOrmRepository<AppRolePermissionEntity, AppRolePermissionEntityId> {
5
+ constructor(repository: Repository<AppRolePermissionEntity>);
6
+ }
@@ -5,7 +5,9 @@ import { AppEmailLogRepository } from "./repositories/appEmailLog.repository";
5
5
  import { AppEntityVersionRepository } from "./repositories/appEntityVersion.repository";
6
6
  import { AppFileReferenceRepository } from "./repositories/appFileReference.repository";
7
7
  import { AppOrganizationRepository } from "./repositories/appOrganization.repository";
8
+ import { AppPermissionRepository } from "./repositories/appPermission.repository";
8
9
  import { AppRoleRepository } from "./repositories/appRole.repository";
10
+ import { AppRolePermissionRepository } from "./repositories/appRolePermission.repository";
9
11
  import { AppTenantRepository } from "./repositories/appTenant.repository";
10
12
  import { AppUserRepository } from "./repositories/appUser.repository";
11
13
  import { AppUserGroupRepository } from "./repositories/appUserGroup.repository";
@@ -14,4 +16,4 @@ import { AppUserProfileRepository } from "./repositories/appUserProfile.reposito
14
16
  import { AppUserRoleRepository } from "./repositories/appUserRole.repository";
15
17
  import { CrmContactRepository } from "./repositories/crmContact.repository";
16
18
  import { FooRepository } from "./repositories/foo.repository";
17
- export declare const CoreDatabaseRepositories: (typeof AppCompanyRepository | typeof AppDirectoryRepository | typeof AppDivisionRepository | typeof AppEmailLogRepository | typeof AppEntityVersionRepository | typeof AppFileReferenceRepository | typeof AppOrganizationRepository | typeof AppRoleRepository | typeof AppTenantRepository | typeof AppUserRepository | typeof AppUserGroupRepository | typeof AppUserGroupMemberRepository | typeof AppUserProfileRepository | typeof AppUserRoleRepository | typeof CrmContactRepository | typeof FooRepository)[];
19
+ export declare const CoreDatabaseRepositories: (typeof AppCompanyRepository | typeof AppDirectoryRepository | typeof AppDivisionRepository | typeof AppEmailLogRepository | typeof AppEntityVersionRepository | typeof AppFileReferenceRepository | typeof AppOrganizationRepository | typeof AppPermissionRepository | typeof AppRoleRepository | typeof AppRolePermissionRepository | typeof AppTenantRepository | typeof AppUserRepository | typeof AppUserGroupRepository | typeof AppUserGroupMemberRepository | typeof AppUserProfileRepository | typeof AppUserRoleRepository | typeof CrmContactRepository | typeof FooRepository)[];
@@ -0,0 +1,7 @@
1
+ import { DeepPartial, IEntityAdapter } from "../../../../../..";
2
+ import { AppPermissionEntity } from "../../database/core/entities/appPermission.entity";
3
+ import { AppPermissionCreateData, AppPermissionUpdateData } from "./appPermission.models";
4
+ export declare class AppPermissionAdapter implements IEntityAdapter<AppPermissionEntity, AppPermissionCreateData, AppPermissionUpdateData> {
5
+ createDataToEntity(data: AppPermissionCreateData): DeepPartial<AppPermissionEntity>;
6
+ updateDataToEntity(data: AppPermissionUpdateData): DeepPartial<AppPermissionEntity>;
7
+ }
@@ -0,0 +1,11 @@
1
+ import { IAuthorizationResult } from "../../../../../..";
2
+ import { AppAuthContext, AppEntityAuthorizationMiddlewareBase } from "../../infrastructure/authentication/index";
3
+ import { AppPermissionEntity } from "../../database/core/entities/appPermission.entity";
4
+ export declare class AppPermissionAuthMiddleware extends AppEntityAuthorizationMiddlewareBase<AppPermissionEntity> {
5
+ canSearch(context: AppAuthContext): Promise<IAuthorizationResult>;
6
+ canRead(entity: Partial<AppPermissionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
7
+ canCreate(entity: Partial<AppPermissionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
8
+ canUpdate(entity: Partial<AppPermissionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
9
+ canDelete(entity: Partial<AppPermissionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
10
+ canDeleteItems(context: AppAuthContext): Promise<IAuthorizationResult>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { NestEntityManager, EntityManagerRegistry } from "../../../../../..";
2
+ import { AppPermissionCreateData, AppPermissionCursor, AppPermissionFacets, AppPermissionSorting, AppPermissionUpdateData } from "./appPermission.models";
3
+ import { AppPermissionSearchParameters, AppPermissionDeleteParameters } from "./appPermission.types";
4
+ import { AppPermissionEntity, AppPermissionEntityId } from "../../database/core/entities/appPermission.entity";
5
+ export declare class AppPermissionEntityManager extends NestEntityManager<AppPermissionEntity, AppPermissionEntityId, AppPermissionCreateData, AppPermissionUpdateData, AppPermissionDeleteParameters, AppPermissionSearchParameters, AppPermissionSorting, AppPermissionCursor, AppPermissionFacets> {
6
+ constructor(registry: EntityManagerRegistry);
7
+ }
@@ -0,0 +1,15 @@
1
+ import { DeepPartial } from "../../../../../..";
2
+ import { AppPermissionEntity } from "../../database/core/entities/appPermission.entity";
3
+ import { StringFilter } from "../../shared/api/fields";
4
+ export type AppPermissionCreateData = DeepPartial<Omit<AppPermissionEntity, "id">>;
5
+ export type AppPermissionUpdateData = DeepPartial<Omit<AppPermissionEntity, "id">>;
6
+ export declare enum AppPermissionSorting {
7
+ Name = "Name"
8
+ }
9
+ export type AppPermissionCursor = number;
10
+ export declare class AppPermissionSearchFilters {
11
+ uid?: StringFilter;
12
+ }
13
+ export declare class AppPermissionFacets {
14
+ }
15
+ export type AppPermissionSheetItem = AppPermissionEntity;
@@ -0,0 +1,2 @@
1
+ export declare class AppPermissionEntityModule {
2
+ }
@@ -0,0 +1,13 @@
1
+ import { FindOptionsOrder, FindOptionsWhere } from "typeorm";
2
+ import { EntityManagerRegistry, NestTypeOrmQueryBuilder } from "../../../../../..";
3
+ import { AppPermissionEntity, AppPermissionEntityId } from "../../database/core/entities/appPermission.entity";
4
+ import { AppPermissionFacets, AppPermissionSorting } from "./appPermission.models";
5
+ import { AppPermissionSearchParameters } from "./appPermission.types";
6
+ import { AppAuthContext, AppUserContext } from "../../infrastructure/authentication/types";
7
+ export declare class AppPermissionQueryBuilder extends NestTypeOrmQueryBuilder<AppPermissionEntity, AppPermissionEntityId, AppPermissionSearchParameters, AppPermissionSorting, AppPermissionFacets, AppUserContext> {
8
+ constructor(registry: EntityManagerRegistry);
9
+ protected buildContextFilter(context?: AppAuthContext): FindOptionsWhere<AppPermissionEntity> | FindOptionsWhere<AppPermissionEntity>[];
10
+ protected buildSortingClause(request: AppPermissionSearchParameters): FindOptionsOrder<AppPermissionEntity>;
11
+ protected buildWhereClause(request: AppPermissionSearchParameters): FindOptionsWhere<AppPermissionEntity> | FindOptionsWhere<AppPermissionEntity>[];
12
+ protected calculateFacets(request: AppPermissionSearchParameters, context?: AppAuthContext): Promise<AppPermissionFacets>;
13
+ }
@@ -0,0 +1,70 @@
1
+ import { IEntitiesDeleteParameters, IEntitiesSearchResults, IEntitiesSearchResultsPaging, IEntitySearchParameters, IFullTextQuery, ISearchOptions, ISearchQueryRelations, ISearchRequestPaging, ISearchSorting, ISearchSortingField, IEntityVersionsSearchParameters, IEntityVersionsResultsPaging, IEntityVersionsSearchResults, SortDirection } from "../../../../../..";
2
+ import { AppPermissionEntity } from "../../database/core/entities/appPermission.entity";
3
+ import { AppPermissionSorting, AppPermissionCursor, AppPermissionSearchFilters, AppPermissionFacets } from "./appPermission.models";
4
+ import { EntityVersionsCursor, EntityVersionsFilters, EntityVersionsReference, EntityVersionsSorting } from "../../shared/api/versioning";
5
+ export declare class AppPermissionSearchSortingField implements ISearchSortingField<AppPermissionSorting> {
6
+ field: AppPermissionSorting;
7
+ direction: SortDirection;
8
+ }
9
+ export declare class AppPermissionQuerySorting implements ISearchSorting<AppPermissionSorting> {
10
+ fields: AppPermissionSearchSortingField[];
11
+ }
12
+ export declare class AppPermissionQueryPaging implements ISearchRequestPaging<AppPermissionCursor> {
13
+ cursor?: AppPermissionCursor;
14
+ pageSize: number;
15
+ }
16
+ export declare class AppPermissionSearchOptions implements ISearchOptions {
17
+ includeFacets?: boolean;
18
+ }
19
+ export declare class AppPermissionFullTextQuery implements IFullTextQuery {
20
+ term: string;
21
+ fields: string[];
22
+ }
23
+ export declare class AppPermissionSearchParameters implements IEntitySearchParameters<AppPermissionEntity, AppPermissionSorting, AppPermissionCursor> {
24
+ query?: AppPermissionFullTextQuery;
25
+ filters?: AppPermissionSearchFilters;
26
+ sorting?: AppPermissionQuerySorting;
27
+ paging?: AppPermissionQueryPaging;
28
+ options?: AppPermissionSearchOptions;
29
+ relations?: ISearchQueryRelations<AppPermissionEntity>;
30
+ }
31
+ export declare class AppPermissionSearchResultsPaging implements IEntitiesSearchResultsPaging<AppPermissionCursor> {
32
+ pageIndex: number;
33
+ pageSize: number;
34
+ totPageItems: number;
35
+ totPages: number;
36
+ totItems: number;
37
+ nextPageCursor?: AppPermissionCursor;
38
+ currentPageCursor?: AppPermissionCursor;
39
+ prevPageCursor?: AppPermissionCursor;
40
+ }
41
+ export declare class AppPermissionSearchResults<TResult> implements IEntitiesSearchResults<AppPermissionEntity, AppPermissionSearchParameters, TResult, AppPermissionSorting, AppPermissionCursor, AppPermissionFacets> {
42
+ request: AppPermissionSearchParameters;
43
+ facets?: AppPermissionFacets;
44
+ paging?: AppPermissionSearchResultsPaging;
45
+ items: TResult[];
46
+ }
47
+ export declare class AppPermissionDeleteParameters implements IEntitiesDeleteParameters<AppPermissionSorting> {
48
+ filters?: AppPermissionSearchFilters;
49
+ sorting?: AppPermissionQuerySorting;
50
+ }
51
+ export declare class AppPermissionVersionsSearchParameters implements IEntityVersionsSearchParameters<AppPermissionCursor> {
52
+ entity: EntityVersionsReference;
53
+ filters?: EntityVersionsFilters;
54
+ sorting?: EntityVersionsSorting;
55
+ paging?: EntityVersionsCursor<AppPermissionCursor>;
56
+ }
57
+ export declare class AppPermissionVersionsResultsPaging implements IEntityVersionsResultsPaging<AppPermissionCursor> {
58
+ pageIndex: number;
59
+ pageSize: number;
60
+ totPageItems: number;
61
+ totPages: number;
62
+ totItems: number;
63
+ nextPageCursor?: AppPermissionCursor;
64
+ currentPageCursor?: AppPermissionCursor;
65
+ prevPageCursor?: AppPermissionCursor;
66
+ }
67
+ export declare class AppPermissionVersionsSearchResults<TResult> implements IEntityVersionsSearchResults<TResult, AppPermissionCursor> {
68
+ paging?: AppPermissionVersionsResultsPaging;
69
+ items: TResult[];
70
+ }
@@ -0,0 +1,7 @@
1
+ import { DeepPartial, IEntityAdapter } from "../../../../../..";
2
+ import { AppRolePermissionEntity } from "../../database/core/entities/appRolePermission.entity";
3
+ import { AppRolePermissionCreateData, AppRolePermissionUpdateData } from "./appRolePermission.models";
4
+ export declare class AppRolePermissionAdapter implements IEntityAdapter<AppRolePermissionEntity, AppRolePermissionCreateData, AppRolePermissionUpdateData> {
5
+ createDataToEntity(data: AppRolePermissionCreateData): DeepPartial<AppRolePermissionEntity>;
6
+ updateDataToEntity(data: AppRolePermissionUpdateData): DeepPartial<AppRolePermissionEntity>;
7
+ }
@@ -0,0 +1,11 @@
1
+ import { IAuthorizationResult } from "../../../../../..";
2
+ import { AppAuthContext, AppEntityAuthorizationMiddlewareBase } from "../../infrastructure/authentication/index";
3
+ import { AppRolePermissionEntity } from "../../database/core/entities/appRolePermission.entity";
4
+ export declare class AppRolePermissionAuthMiddleware extends AppEntityAuthorizationMiddlewareBase<AppRolePermissionEntity> {
5
+ canSearch(context: AppAuthContext): Promise<IAuthorizationResult>;
6
+ canRead(entity: Partial<AppRolePermissionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
7
+ canCreate(entity: Partial<AppRolePermissionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
8
+ canUpdate(entity: Partial<AppRolePermissionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
9
+ canDelete(entity: Partial<AppRolePermissionEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
10
+ canDeleteItems(context: AppAuthContext): Promise<IAuthorizationResult>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { NestEntityManager, EntityManagerRegistry } from "../../../../../..";
2
+ import { AppRolePermissionCreateData, AppRolePermissionCursor, AppRolePermissionFacets, AppRolePermissionSorting, AppRolePermissionUpdateData } from "./appRolePermission.models";
3
+ import { AppRolePermissionSearchParameters, AppRolePermissionDeleteParameters } from "./appRolePermission.types";
4
+ import { AppRolePermissionEntity, AppRolePermissionEntityId } from "../../database/core/entities/appRolePermission.entity";
5
+ export declare class AppRolePermissionEntityManager extends NestEntityManager<AppRolePermissionEntity, AppRolePermissionEntityId, AppRolePermissionCreateData, AppRolePermissionUpdateData, AppRolePermissionDeleteParameters, AppRolePermissionSearchParameters, AppRolePermissionSorting, AppRolePermissionCursor, AppRolePermissionFacets> {
6
+ constructor(registry: EntityManagerRegistry);
7
+ }
@@ -0,0 +1,15 @@
1
+ import { DeepPartial } from "../../../../../..";
2
+ import { AppRolePermissionEntity } from "../../database/core/entities/appRolePermission.entity";
3
+ export type AppRolePermissionCreateData = DeepPartial<Omit<AppRolePermissionEntity, "id">>;
4
+ export type AppRolePermissionUpdateData = DeepPartial<Omit<AppRolePermissionEntity, "id">>;
5
+ export declare enum AppRolePermissionSorting {
6
+ Name = "Name"
7
+ }
8
+ export type AppRolePermissionCursor = number;
9
+ export declare class AppRolePermissionSearchFilters {
10
+ roleIds?: string[];
11
+ permissionIds?: string[];
12
+ }
13
+ export declare class AppRolePermissionFacets {
14
+ }
15
+ export type AppRolePermissionSheetItem = AppRolePermissionEntity;
@@ -0,0 +1,2 @@
1
+ export declare class AppRolePermissionEntityModule {
2
+ }
@@ -0,0 +1,13 @@
1
+ import { FindOptionsOrder, FindOptionsWhere } from "typeorm";
2
+ import { EntityManagerRegistry, NestTypeOrmQueryBuilder } from "../../../../../..";
3
+ import { AppRolePermissionEntity, AppRolePermissionEntityId } from "../../database/core/entities/appRolePermission.entity";
4
+ import { AppRolePermissionFacets, AppRolePermissionSorting } from "./appRolePermission.models";
5
+ import { AppRolePermissionSearchParameters } from "./appRolePermission.types";
6
+ import { AppAuthContext, AppUserContext } from "../../infrastructure/authentication/types";
7
+ export declare class AppRolePermissionQueryBuilder extends NestTypeOrmQueryBuilder<AppRolePermissionEntity, AppRolePermissionEntityId, AppRolePermissionSearchParameters, AppRolePermissionSorting, AppRolePermissionFacets, AppUserContext> {
8
+ constructor(registry: EntityManagerRegistry);
9
+ protected buildContextFilter(context?: AppAuthContext): FindOptionsWhere<AppRolePermissionEntity> | FindOptionsWhere<AppRolePermissionEntity>[];
10
+ protected buildSortingClause(request: AppRolePermissionSearchParameters): FindOptionsOrder<AppRolePermissionEntity>;
11
+ protected buildWhereClause(request: AppRolePermissionSearchParameters): FindOptionsWhere<AppRolePermissionEntity> | FindOptionsWhere<AppRolePermissionEntity>[];
12
+ protected calculateFacets(request: AppRolePermissionSearchParameters, context?: AppAuthContext): Promise<AppRolePermissionFacets>;
13
+ }
@@ -0,0 +1,70 @@
1
+ import { IEntitiesDeleteParameters, IEntitiesSearchResults, IEntitiesSearchResultsPaging, IEntitySearchParameters, IFullTextQuery, ISearchOptions, ISearchQueryRelations, ISearchRequestPaging, ISearchSorting, ISearchSortingField, IEntityVersionsSearchParameters, IEntityVersionsResultsPaging, IEntityVersionsSearchResults, SortDirection } from "../../../../../..";
2
+ import { AppRolePermissionEntity } from "../../database/core/entities/appRolePermission.entity";
3
+ import { AppRolePermissionSorting, AppRolePermissionCursor, AppRolePermissionSearchFilters, AppRolePermissionFacets } from "./appRolePermission.models";
4
+ import { EntityVersionsCursor, EntityVersionsFilters, EntityVersionsReference, EntityVersionsSorting } from "../../shared/api/versioning";
5
+ export declare class AppRolePermissionSearchSortingField implements ISearchSortingField<AppRolePermissionSorting> {
6
+ field: AppRolePermissionSorting;
7
+ direction: SortDirection;
8
+ }
9
+ export declare class AppRolePermissionQuerySorting implements ISearchSorting<AppRolePermissionSorting> {
10
+ fields: AppRolePermissionSearchSortingField[];
11
+ }
12
+ export declare class AppRolePermissionQueryPaging implements ISearchRequestPaging<AppRolePermissionCursor> {
13
+ cursor?: AppRolePermissionCursor;
14
+ pageSize: number;
15
+ }
16
+ export declare class AppRolePermissionSearchOptions implements ISearchOptions {
17
+ includeFacets?: boolean;
18
+ }
19
+ export declare class AppRolePermissionFullTextQuery implements IFullTextQuery {
20
+ term: string;
21
+ fields: string[];
22
+ }
23
+ export declare class AppRolePermissionSearchParameters implements IEntitySearchParameters<AppRolePermissionEntity, AppRolePermissionSorting, AppRolePermissionCursor> {
24
+ query?: AppRolePermissionFullTextQuery;
25
+ filters?: AppRolePermissionSearchFilters;
26
+ sorting?: AppRolePermissionQuerySorting;
27
+ paging?: AppRolePermissionQueryPaging;
28
+ options?: AppRolePermissionSearchOptions;
29
+ relations?: ISearchQueryRelations<AppRolePermissionEntity>;
30
+ }
31
+ export declare class AppRolePermissionSearchResultsPaging implements IEntitiesSearchResultsPaging<AppRolePermissionCursor> {
32
+ pageIndex: number;
33
+ pageSize: number;
34
+ totPageItems: number;
35
+ totPages: number;
36
+ totItems: number;
37
+ nextPageCursor?: AppRolePermissionCursor;
38
+ currentPageCursor?: AppRolePermissionCursor;
39
+ prevPageCursor?: AppRolePermissionCursor;
40
+ }
41
+ export declare class AppRolePermissionSearchResults<TResult> implements IEntitiesSearchResults<AppRolePermissionEntity, AppRolePermissionSearchParameters, TResult, AppRolePermissionSorting, AppRolePermissionCursor, AppRolePermissionFacets> {
42
+ request: AppRolePermissionSearchParameters;
43
+ facets?: AppRolePermissionFacets;
44
+ paging?: AppRolePermissionSearchResultsPaging;
45
+ items: TResult[];
46
+ }
47
+ export declare class AppRolePermissionDeleteParameters implements IEntitiesDeleteParameters<AppRolePermissionSorting> {
48
+ filters?: AppRolePermissionSearchFilters;
49
+ sorting?: AppRolePermissionQuerySorting;
50
+ }
51
+ export declare class AppRolePermissionVersionsSearchParameters implements IEntityVersionsSearchParameters<AppRolePermissionCursor> {
52
+ entity: EntityVersionsReference;
53
+ filters?: EntityVersionsFilters;
54
+ sorting?: EntityVersionsSorting;
55
+ paging?: EntityVersionsCursor<AppRolePermissionCursor>;
56
+ }
57
+ export declare class AppRolePermissionVersionsResultsPaging implements IEntityVersionsResultsPaging<AppRolePermissionCursor> {
58
+ pageIndex: number;
59
+ pageSize: number;
60
+ totPageItems: number;
61
+ totPages: number;
62
+ totItems: number;
63
+ nextPageCursor?: AppRolePermissionCursor;
64
+ currentPageCursor?: AppRolePermissionCursor;
65
+ prevPageCursor?: AppRolePermissionCursor;
66
+ }
67
+ export declare class AppRolePermissionVersionsSearchResults<TResult> implements IEntityVersionsSearchResults<TResult, AppRolePermissionCursor> {
68
+ paging?: AppRolePermissionVersionsResultsPaging;
69
+ items: TResult[];
70
+ }
@@ -1,5 +1,6 @@
1
1
  import { AppAuthContextProvider } from "./context";
2
+ import { AuthPermissionService } from "./permissions";
2
3
  import { AuthRolesService } from "./roles";
3
4
  import { AuthUserRolesService } from "./userRoles";
4
5
  import { AuthUserService } from "./users";
5
- export declare const AuthProviders: (typeof AppAuthContextProvider | typeof AuthRolesService | typeof AuthUserRolesService | typeof AuthUserService)[];
6
+ export declare const AuthProviders: (typeof AppAuthContextProvider | typeof AuthPermissionService | typeof AuthRolesService | typeof AuthUserRolesService | typeof AuthUserService)[];
@@ -0,0 +1,15 @@
1
+ import { IAuthPermissionService } from "../../../../../../extensions";
2
+ import { AppRoleEntityManager } from "../../../../entities/appRoles/appRole.manager";
3
+ import { AppRoleEntity } from "../../../../database/core/entities/appRole.entity";
4
+ import { DeepPartial } from "../../../../../../../../types";
5
+ import { AppPermissionEntity } from "../../../../database/core/entities/appPermission.entity";
6
+ export declare class AuthPermissionService implements IAuthPermissionService<AppPermissionEntity> {
7
+ private readonly rolesManager;
8
+ constructor(rolesManager: AppRoleEntityManager);
9
+ ensure(uid: string, data: DeepPartial<Omit<AppRoleEntity, "uid">>): Promise<AppRoleEntity>;
10
+ create(data: DeepPartial<AppRoleEntity>): Promise<AppRoleEntity>;
11
+ update(id: string, data: DeepPartial<AppRoleEntity>): Promise<void>;
12
+ delete(id: string): Promise<void>;
13
+ getById(id: string): Promise<AppRoleEntity | undefined>;
14
+ getByUid(uid: string): Promise<AppRoleEntity | undefined>;
15
+ }
@@ -1,6 +1,7 @@
1
- import { IAuthRole, IAuthUser } from "../abstractions";
1
+ import { IAuthPermission, IAuthRole, IAuthUser } from "../abstractions";
2
2
  export type CurrentUserData = {
3
3
  user: IAuthUser;
4
4
  roles: IAuthRole[];
5
+ permissions: IAuthPermission[];
5
6
  };
6
7
  export declare const CurrentUser: (...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -1,6 +1,7 @@
1
1
  import { AppRole, RolesGuardOptions } from "../types";
2
2
  export declare const Public: () => import("@nestjs/common").CustomDecorator<string>;
3
3
  export declare const Authenticated: () => import("@nestjs/common").CustomDecorator<string>;
4
+ export declare const Permissions: (...permissions: string[]) => import("@nestjs/common").CustomDecorator<string>;
4
5
  export declare const Roles: (...roles: string[]) => import("@nestjs/common").CustomDecorator<string>;
5
6
  export declare const MemberOf: (...groups: string[]) => import("@nestjs/common").CustomDecorator<string>;
6
7
  export declare const buildRolesGuard: ({ mainRole, secondaryRoles, }: {
@@ -8,5 +8,6 @@ export declare const AuthenticationGuardsSymbols: {
8
8
  Authenticated: string;
9
9
  Public: string;
10
10
  Roles: string;
11
+ Permissions: string;
11
12
  MemberOf: string;
12
13
  };
@@ -6,5 +6,6 @@ export declare class AuthenticationMiddleware implements NestMiddleware {
6
6
  use(req: any, res: any, next: (error?: any) => void): Promise<void>;
7
7
  private getUserFromToken;
8
8
  private getUserRoles;
9
+ private getUserPermissions;
9
10
  private extractTokenFromHeader;
10
11
  }
package/dist/esm/index.js CHANGED
@@ -2497,9 +2497,11 @@ const CurrentUser = createParamDecorator((data, context) => {
2497
2497
  }
2498
2498
  const user = request.auth.user;
2499
2499
  const roles = request.auth.roles;
2500
+ const permissions = request.auth.permissions;
2500
2501
  return {
2501
2502
  user,
2502
2503
  roles,
2504
+ permissions,
2503
2505
  };
2504
2506
  });
2505
2507
 
@@ -2513,6 +2515,7 @@ const AuthenticationGuardsSymbols = {
2513
2515
  Authenticated: "guard:authenticated",
2514
2516
  Public: "guard:public",
2515
2517
  Roles: "guard:roles",
2518
+ Permissions: "guard:permissions",
2516
2519
  MemberOf: "guard:memberOf",
2517
2520
  };
2518
2521
 
@@ -22010,9 +22013,11 @@ let AuthenticationMiddleware = class AuthenticationMiddleware {
22010
22013
  if (parsedToken.isValid) {
22011
22014
  const user = await this.getUserFromToken(parsedToken.data);
22012
22015
  const roles = user ? await this.getUserRoles(user) : [];
22016
+ const permissions = user ? await this.getUserPermissions(user) : [];
22013
22017
  req.auth = {
22014
22018
  user,
22015
22019
  roles,
22020
+ permissions,
22016
22021
  };
22017
22022
  }
22018
22023
  }
@@ -22024,6 +22029,9 @@ let AuthenticationMiddleware = class AuthenticationMiddleware {
22024
22029
  async getUserRoles(user) {
22025
22030
  return await this.authService.userRolesService.getUserRoles(user.id);
22026
22031
  }
22032
+ async getUserPermissions(user) {
22033
+ return await this.authService.userRolesService.getUserPermissions(user.id);
22034
+ }
22027
22035
  extractTokenFromHeader(request) {
22028
22036
  const [type, token] = request.headers.authorization?.split(" ") ?? [];
22029
22037
  return type === "Bearer" ? token : undefined;