@punks/backend-entity-manager 0.0.132 → 0.0.133

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);
@@ -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>;
@@ -748,6 +758,7 @@ declare class EntityServiceLocator<TEntity, TEntityId> {
748
758
  resolveCountQuery<TEntityFilters extends ISearchFilters>(): IEntitiesCountQuery<TEntity, TEntityFilters>;
749
759
  resolveVersionsSearchQuery<TCursor>(): IEntityVersionsSearchQuery<TEntity, TCursor>;
750
760
  resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
761
+ resolveFindQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor>(): IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>;
751
762
  resolveCreateCommand<TEntityCreateData>(): IEntityCreateCommand<TEntity, TEntityCreateData>;
752
763
  resolveUpdateCommand<TEntityUpdateData>(): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
753
764
  resolveUpsertCommand<TEntityUpdateData>(): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
@@ -834,6 +845,8 @@ declare class EntitiesServiceLocator {
834
845
  registerGetQuery<TEntity, TEntityId>(entityName: string, instance: IEntityGetQuery<TEntity, TEntityId>): void;
835
846
  resolveSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
836
847
  registerSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets>(entityName: string, instance: IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>): void;
848
+ resolveFindQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor>(entityName: string): IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>;
849
+ registerFindQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor>(entityName: string, instance: IEntitiesFindQuery<TEntity, TEntitySearchParameters, TSorting, TCursor>): void;
837
850
  resolveExistsQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntityExistsQuery<TEntity, TEntityFilters>;
838
851
  registerExistsQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string, instance: IEntityExistsQuery<TEntity, TEntityFilters>): void;
839
852
  resolveCountQuery<TEntity, TEntityFilters extends ISearchFilters>(entityName: string): IEntitiesCountQuery<TEntity, TEntityFilters>;
@@ -962,7 +975,8 @@ declare enum EntityOperationType {
962
975
  Update = 1,
963
976
  Delete = 2,
964
977
  Read = 3,
965
- Search = 4
978
+ Search = 4,
979
+ Find = 5
966
980
  }
967
981
  declare abstract class EntityManagerUnauthorizedException extends EntityManagerException {
968
982
  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.133",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",