@punks/backend-entity-manager 0.0.132 → 0.0.134

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.
@@ -1,7 +1,7 @@
1
1
  import { IEntityManagerServiceRoot } from "../../abstractions/configuration";
2
2
  import { IEntityConverter } from "../../abstractions/converters";
3
3
  import { IEntitiesQueryBuilder } from "../../abstractions/queries";
4
- import { IEntitySearchParameters } from "../../abstractions/searchParameters";
4
+ import { IEntitySearchParameters, ISearchSorting } from "../../abstractions/searchParameters";
5
5
  import { IEntitiesSearchResults } from "../../models";
6
6
  import { EntityServiceLocator } from "../../providers/services";
7
7
  import { InMemoryRepository } from "../../testing/mocks/repository";
@@ -35,6 +35,10 @@ export interface FooFacets {
35
35
  export declare class FooQueryBuilder implements IEntitiesQueryBuilder<FooEntity, string, FooSearchParameters, FooSorting, FooCursor, FooFacets, unknown> {
36
36
  private readonly repository;
37
37
  constructor(services: EntityServiceLocator<FooEntity, string>);
38
+ find(request?: {
39
+ filters?: FooSearchFilters | undefined;
40
+ sorting?: ISearchSorting<FooSorting> | undefined;
41
+ } | undefined, context?: IAuthenticationContext<unknown> | undefined): Promise<FooEntity>;
38
42
  get(id: string): Promise<FooEntity | undefined>;
39
43
  exists(filters: FooSearchFilters, context?: IAuthenticationContext<unknown> | undefined): Promise<boolean>;
40
44
  count(filters: FooSearchFilters, context?: IAuthenticationContext<unknown> | undefined): Promise<number>;
@@ -7,7 +7,8 @@ export declare enum EntityOperationType {
7
7
  Update = 1,
8
8
  Delete = 2,
9
9
  Read = 3,
10
- Search = 4
10
+ Search = 4,
11
+ Find = 5
11
12
  }
12
13
  export declare abstract class EntityManagerUnauthorizedException extends EntityManagerException {
13
14
  constructor(message: string);
@@ -1,11 +1,12 @@
1
1
  import { IEntitiesDeleteCommand, IEntitiesDeleteParameters, IEntitiesExportCommand, IEntitiesImportCommand, IEntitiesSampleDownloadCommand, IEntityCreateCommand, IEntityDeleteCommand, IEntityUpdateCommand, IEntityUpsertCommand } from "./commands";
2
2
  import { SortingType } from "./common";
3
- import { IEntitiesCountQuery, IEntitiesSearchQuery, IEntityExistsQuery, IEntityGetQuery, IEntityVersionsSearchQuery } from "./queries";
3
+ import { IEntitiesCountQuery, IEntitiesFindQuery, IEntitiesSearchQuery, IEntityExistsQuery, IEntityGetQuery, IEntityVersionsSearchQuery } from "./queries";
4
4
  import { IEntitySearchParameters } from "./searchParameters";
5
5
  import { IEntityFacets } from "./searchResults";
6
6
  export interface IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets> {
7
7
  get get(): IEntityGetQuery<TEntity, TEntityId>;
8
8
  get search(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
9
+ get find(): IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>;
9
10
  get exists(): IEntityExistsQuery<TEntity, NonNullable<TEntitySearchParameters["filters"]>>;
10
11
  get count(): IEntitiesCountQuery<TEntity, NonNullable<TEntitySearchParameters["filters"]>>;
11
12
  get create(): IEntityCreateCommand<TEntity, TEntityCreateData>;
@@ -10,6 +10,12 @@ export interface IEntitiesSearchQuery<TEntity, TEntitySearchParameters extends I
10
10
  export interface IEntityGetQuery<TEntity, TEntityId> {
11
11
  execute(id: TEntityId): Promise<TEntity | undefined>;
12
12
  }
13
+ export interface IEntitiesFindQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor> {
14
+ execute(request: {
15
+ filters?: TEntitySearchParameters["filters"];
16
+ sorting?: TEntitySearchParameters["sorting"];
17
+ }): Promise<TEntity>;
18
+ }
13
19
  export interface IEntityExistsQuery<TEntity, TEntityFilters extends ISearchFilters> {
14
20
  execute(filters: TEntityFilters): Promise<boolean>;
15
21
  }
@@ -21,6 +27,10 @@ export interface IEntityVersionsSearchQuery<TEntity, TCursor> {
21
27
  }
22
28
  export interface IEntitiesQueryBuilder<TEntity, TEntityId, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets, TUserContext> {
23
29
  get(id: TEntityId, context?: IAuthenticationContext<TUserContext>): Promise<TEntity | undefined>;
30
+ find(request?: {
31
+ filters?: TEntitySearchParameters["filters"];
32
+ sorting?: TEntitySearchParameters["sorting"];
33
+ }, context?: IAuthenticationContext<TUserContext>): Promise<TEntity>;
24
34
  search(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
25
35
  exists(filters: NonNullable<TEntitySearchParameters["filters"]>, context?: IAuthenticationContext<TUserContext>): Promise<boolean>;
26
36
  count(filters: NonNullable<TEntitySearchParameters["filters"]>, context?: IAuthenticationContext<TUserContext>): Promise<number>;
@@ -2,7 +2,7 @@ import { IEntitiesCountAction, IEntitiesDeleteAction, IEntitiesExportAction, IEn
2
2
  import { IEntitiesDeleteCommand, IEntitiesDeleteParameters, IEntitiesExportCommand, IEntitiesImportCommand, IEntitiesSampleDownloadCommand, IEntityCreateCommand, IEntityDeleteCommand, IEntityUpdateCommand, IEntityUpsertCommand } from "../abstractions/commands";
3
3
  import { SortingType } from "../abstractions/common";
4
4
  import { IEntityManager } from "../abstractions/manager";
5
- import { IEntitiesCountQuery, IEntitiesSearchQuery, IEntityExistsQuery, IEntityGetQuery, IEntityVersionsSearchQuery } from "../abstractions/queries";
5
+ import { IEntitiesCountQuery, IEntitiesFindQuery, IEntitiesSearchQuery, IEntityExistsQuery, IEntityGetQuery, IEntityVersionsSearchQuery } from "../abstractions/queries";
6
6
  import { IEntitySearchParameters } from "../abstractions/searchParameters";
7
7
  import { IEntityFacets } from "../abstractions/searchResults";
8
8
  import { EntityServiceLocator } from "../providers/services";
@@ -14,6 +14,7 @@ export declare class EntityManager<TEntity, TEntityId, TEntityCreateData, TEntit
14
14
  get deleteItems(): IEntitiesDeleteCommand<TEntity, TEntitiesDeleteParameters, TSorting>;
15
15
  get get(): IEntityGetQuery<TEntity, TEntityId>;
16
16
  get search(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
17
+ get find(): IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>;
17
18
  get create(): IEntityCreateCommand<TEntity, TEntityCreateData>;
18
19
  get update(): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
19
20
  get upsert(): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
@@ -9,7 +9,7 @@ import { IEntityConverter } from "../abstractions/converters";
9
9
  import { IEntityEventsManager, IEventEmitter } from "../abstractions/events";
10
10
  import { IEntityManager } from "../abstractions/manager";
11
11
  import { IPipelinesController } from "../abstractions/pipelines";
12
- import { IEntitiesCountQuery, IEntitiesQueryBuilder, IEntitiesSearchQuery, IEntityExistsQuery, IEntityGetQuery, IEntityVersionsSearchQuery } from "../abstractions/queries";
12
+ import { IEntitiesCountQuery, IEntitiesFindQuery, IEntitiesQueryBuilder, IEntitiesSearchQuery, IEntityExistsQuery, IEntityGetQuery, IEntityVersionsSearchQuery } from "../abstractions/queries";
13
13
  import { IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IReplicasConfiguration } from "../abstractions/replication";
14
14
  import { IEntityRepository } from "../abstractions/repository";
15
15
  import { IEntitySearchParameters, ISearchFilters } from "../abstractions/searchParameters";
@@ -42,6 +42,7 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
42
42
  resolveCountQuery<TEntityFilters extends ISearchFilters>(): IEntitiesCountQuery<TEntity, TEntityFilters>;
43
43
  resolveVersionsSearchQuery<TCursor>(): IEntityVersionsSearchQuery<TEntity, TCursor>;
44
44
  resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
45
+ resolveFindQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor>(): IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>;
45
46
  resolveCreateCommand<TEntityCreateData>(): IEntityCreateCommand<TEntity, TEntityCreateData>;
46
47
  resolveUpdateCommand<TEntityUpdateData>(): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
47
48
  resolveUpsertCommand<TEntityUpdateData>(): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
@@ -128,6 +129,8 @@ export declare class EntitiesServiceLocator {
128
129
  registerGetQuery<TEntity, TEntityId>(entityName: string, instance: IEntityGetQuery<TEntity, TEntityId>): void;
129
130
  resolveSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
130
131
  registerSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string, instance: IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>): void;
132
+ resolveFindQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor>(entityName: string): IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>;
133
+ registerFindQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor>(entityName: string, instance: IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>): void;
131
134
  resolveExistsQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntityExistsQuery<TEntity, TEntityFilters>;
132
135
  registerExistsQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string, instance: IEntityExistsQuery<TEntity, TEntityFilters>): void;
133
136
  resolveCountQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntitiesCountQuery<TEntity, TEntityFilters>;
@@ -0,0 +1,12 @@
1
+ import { SortingType } from "../abstractions/common";
2
+ import { IEntitiesFindQuery } from "../abstractions/queries";
3
+ import { IEntitySearchParameters } from "../abstractions/searchParameters";
4
+ import { EntityServiceLocator } from "../providers/services";
5
+ export declare class EntitiesFindQuery<TEntity, TEntityId, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TUserContext> implements IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor> {
6
+ private readonly services;
7
+ constructor(services: EntityServiceLocator<TEntity, TEntityId>);
8
+ execute(request: TEntitySearchParameters): Promise<TEntity>;
9
+ private getContext;
10
+ private filterAllowedEntities;
11
+ private authorizeSearch;
12
+ }
@@ -46,6 +46,7 @@ export declare const EntityServices: {
46
46
  IEntityCountQuery: string;
47
47
  IEntityExistsQuery: string;
48
48
  IEntityGetQuery: string;
49
+ IEntitiesFindQuery: string;
49
50
  IEntitiesSearchQuery: string;
50
51
  IEntitiesQueryBuilder: string;
51
52
  IEntityVersionsSearchQuery: string;
package/dist/index.d.ts CHANGED
@@ -643,6 +643,12 @@ interface IEntitiesSearchQuery<TEntity, TEntitySearchParameters extends IEntityS
643
643
  interface IEntityGetQuery<TEntity, TEntityId> {
644
644
  execute(id: TEntityId): Promise<TEntity | undefined>;
645
645
  }
646
+ interface IEntitiesFindQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor> {
647
+ execute(request: {
648
+ filters?: TEntitySearchParameters["filters"];
649
+ sorting?: TEntitySearchParameters["sorting"];
650
+ }): Promise<TEntity>;
651
+ }
646
652
  interface IEntityExistsQuery<TEntity, TEntityFilters extends ISearchFilters> {
647
653
  execute(filters: TEntityFilters): Promise<boolean>;
648
654
  }
@@ -654,6 +660,10 @@ interface IEntityVersionsSearchQuery<TEntity, TCursor> {
654
660
  }
655
661
  interface IEntitiesQueryBuilder<TEntity, TEntityId, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets, TUserContext> {
656
662
  get(id: TEntityId, context?: IAuthenticationContext<TUserContext>): Promise<TEntity | undefined>;
663
+ find(request?: {
664
+ filters?: TEntitySearchParameters["filters"];
665
+ sorting?: TEntitySearchParameters["sorting"];
666
+ }, context?: IAuthenticationContext<TUserContext>): Promise<TEntity>;
657
667
  search(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
658
668
  exists(filters: NonNullable<TEntitySearchParameters["filters"]>, context?: IAuthenticationContext<TUserContext>): Promise<boolean>;
659
669
  count(filters: NonNullable<TEntitySearchParameters["filters"]>, context?: IAuthenticationContext<TUserContext>): Promise<number>;
@@ -663,6 +673,7 @@ interface IEntitiesQueryBuilder<TEntity, TEntityId, TEntitySearchParameters exte
663
673
  interface IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitiesDeleteParameters extends IEntitiesDeleteParameters<TSorting>, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets> {
664
674
  get get(): IEntityGetQuery<TEntity, TEntityId>;
665
675
  get search(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
676
+ get find(): IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>;
666
677
  get exists(): IEntityExistsQuery<TEntity, NonNullable<TEntitySearchParameters["filters"]>>;
667
678
  get count(): IEntitiesCountQuery<TEntity, NonNullable<TEntitySearchParameters["filters"]>>;
668
679
  get create(): IEntityCreateCommand<TEntity, TEntityCreateData>;
@@ -748,6 +759,7 @@ declare class EntityServiceLocator<TEntity, TEntityId> {
748
759
  resolveCountQuery<TEntityFilters extends ISearchFilters>(): IEntitiesCountQuery<TEntity, TEntityFilters>;
749
760
  resolveVersionsSearchQuery<TCursor>(): IEntityVersionsSearchQuery<TEntity, TCursor>;
750
761
  resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
762
+ resolveFindQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor>(): IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>;
751
763
  resolveCreateCommand<TEntityCreateData>(): IEntityCreateCommand<TEntity, TEntityCreateData>;
752
764
  resolveUpdateCommand<TEntityUpdateData>(): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
753
765
  resolveUpsertCommand<TEntityUpdateData>(): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
@@ -834,6 +846,8 @@ declare class EntitiesServiceLocator {
834
846
  registerGetQuery<TEntity, TEntityId>(entityName: string, instance: IEntityGetQuery<TEntity, TEntityId>): void;
835
847
  resolveSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
836
848
  registerSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string, instance: IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>): void;
849
+ resolveFindQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor>(entityName: string): IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>;
850
+ registerFindQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor>(entityName: string, instance: IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>): void;
837
851
  resolveExistsQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntityExistsQuery<TEntity, TEntityFilters>;
838
852
  registerExistsQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string, instance: IEntityExistsQuery<TEntity, TEntityFilters>): void;
839
853
  resolveCountQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntitiesCountQuery<TEntity, TEntityFilters>;
@@ -962,7 +976,8 @@ declare enum EntityOperationType {
962
976
  Update = 1,
963
977
  Delete = 2,
964
978
  Read = 3,
965
- Search = 4
979
+ Search = 4,
980
+ Find = 5
966
981
  }
967
982
  declare abstract class EntityManagerUnauthorizedException extends EntityManagerException {
968
983
  constructor(message: string);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@punks/backend-entity-manager",
3
- "version": "0.0.132",
3
+ "version": "0.0.134",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",