@ethlete/query 0.1.0-next.2 → 0.1.0-next.20

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 (45) hide show
  1. package/esm2020/lib/auth/auth-provider.types.mjs +1 -1
  2. package/esm2020/lib/auth/auth-provider.utils.mjs +1 -1
  3. package/esm2020/lib/auth/basic-auth-provider.mjs +4 -5
  4. package/esm2020/lib/auth/bearer-auth-provider.mjs +117 -60
  5. package/esm2020/lib/auth/custom-header-auth-provider.mjs +4 -5
  6. package/esm2020/lib/directives/infinity-query-trigger.directive.mjs +3 -3
  7. package/esm2020/lib/directives/infinity-query.directive.mjs +36 -11
  8. package/esm2020/lib/directives/query.directive.mjs +20 -19
  9. package/esm2020/lib/infinite-query/infinity-query.mjs +11 -11
  10. package/esm2020/lib/infinite-query/infinity-query.types.mjs +1 -1
  11. package/esm2020/lib/query/query.mjs +53 -23
  12. package/esm2020/lib/query/query.types.mjs +1 -1
  13. package/esm2020/lib/query/query.utils.mjs +42 -4
  14. package/esm2020/lib/query-client/query-client.mjs +15 -13
  15. package/esm2020/lib/query-client/query-client.types.mjs +1 -1
  16. package/esm2020/lib/query-form/query-form.mjs +10 -7
  17. package/esm2020/lib/query-form/query-form.types.mjs +1 -1
  18. package/esm2020/lib/query-form/query-form.utils.mjs +21 -1
  19. package/esm2020/lib/request/request.mjs +4 -2
  20. package/esm2020/lib/request/request.util.mjs +16 -8
  21. package/esm2020/lib/utils/deep-freeze.util.mjs +5 -1
  22. package/fesm2015/ethlete-query.mjs +443 -248
  23. package/fesm2015/ethlete-query.mjs.map +1 -1
  24. package/fesm2020/ethlete-query.mjs +430 -242
  25. package/fesm2020/ethlete-query.mjs.map +1 -1
  26. package/lib/auth/auth-provider.types.d.ts +30 -22
  27. package/lib/auth/auth-provider.utils.d.ts +2 -1
  28. package/lib/auth/basic-auth-provider.d.ts +0 -2
  29. package/lib/auth/bearer-auth-provider.d.ts +14 -14
  30. package/lib/auth/custom-header-auth-provider.d.ts +0 -2
  31. package/lib/directives/infinity-query-trigger.directive.d.ts +1 -1
  32. package/lib/directives/infinity-query.directive.d.ts +7 -2
  33. package/lib/directives/query.directive.d.ts +5 -5
  34. package/lib/infinite-query/infinity-query.types.d.ts +7 -4
  35. package/lib/query/query.d.ts +5 -3
  36. package/lib/query/query.types.d.ts +32 -15
  37. package/lib/query/query.utils.d.ts +22 -5
  38. package/lib/query-client/query-client.d.ts +11 -10
  39. package/lib/query-client/query-client.types.d.ts +9 -9
  40. package/lib/query-form/query-form.d.ts +1 -1
  41. package/lib/query-form/query-form.types.d.ts +13 -3
  42. package/lib/query-form/query-form.utils.d.ts +5 -0
  43. package/lib/request/request.types.d.ts +10 -10
  44. package/lib/utils/deep-freeze.util.d.ts +1 -1
  45. package/package.json +6 -6
@@ -1,6 +1,5 @@
1
- import { RouteString } from '../query';
2
- import { QueryClient } from '../query-client';
3
- import { Method } from '../request';
1
+ import { QueryResponseType } from '../query';
2
+ import { AnyQueryCreator, QueryCreatorArgs, QueryCreatorReturnType } from '../query-client';
4
3
  export interface AuthProvider {
5
4
  /**
6
5
  * The up to date auth header.
@@ -12,10 +11,6 @@ export interface AuthProvider {
12
11
  * @internal
13
12
  */
14
13
  cleanUp(): void;
15
- /**
16
- * Reference to the query client
17
- */
18
- queryClient: QueryClient | null;
19
14
  }
20
15
  export interface AuthProviderBasicConfig {
21
16
  /**
@@ -39,30 +34,39 @@ export interface AuthProviderCustomHeaderConfig {
39
34
  */
40
35
  value: string;
41
36
  }
42
- export interface AuthProviderBearerConfig {
37
+ export interface AuthProviderBearerConfig<T extends AnyQueryCreator> {
43
38
  /**
44
39
  * The initial jwt
45
40
  */
46
- token: string;
41
+ token?: string;
47
42
  /**
48
43
  * Refresh token configuration
49
44
  */
50
- refreshConfig?: BearerRefreshConfig;
45
+ refreshConfig?: BearerRefreshConfig<T>;
51
46
  }
52
- export interface BearerRefreshConfig {
47
+ export interface BearerRefreshConfig<T extends AnyQueryCreator> {
48
+ /**
49
+ * The query used to trade the refresh token for a new token response.
50
+ */
51
+ queryCreator: T;
53
52
  /**
54
53
  * The initial refresh token
55
54
  */
56
- token: string;
55
+ token?: string;
56
+ /**
57
+ * The cookie name where the refresh token is stored
58
+ */
59
+ cookieName?: string;
57
60
  /**
58
- * The api's refresh route
59
- * @example /api/auth/refresh-token
61
+ * Enable or disable the cookie
62
+ * @default true
60
63
  */
61
- route: RouteString;
64
+ cookieEnabled?: boolean;
62
65
  /**
63
- * The api's refresh route method
66
+ * The time in milliseconds before the token expires when the refresh should be triggered.
67
+ * @default 300000 (5 minutes)
64
68
  */
65
- method: Method;
69
+ refreshBuffer?: number;
66
70
  /**
67
71
  * The expires in property name inside the jwt body
68
72
  * @default 'exp'
@@ -75,18 +79,22 @@ export interface BearerRefreshConfig {
75
79
  strategy?: AuthBearerRefreshStrategy;
76
80
  /**
77
81
  * Adapter function used to build the request body for the refresh request.
78
- * @default { refreshToken: "refreshToken" }
82
+ * @default { body: { refreshToken: "refreshToken" } }
79
83
  */
80
- bodyAdapter?: (refreshToken: string) => unknown;
84
+ requestArgsAdapter?: (tokens: {
85
+ token: string | null;
86
+ refreshToken: string;
87
+ }) => QueryCreatorArgs<T>;
81
88
  /**
82
89
  * Adapter function used to extract the token and refreshToken from the response.
83
90
  * @default { token: "token", refreshToken: "refreshToken" }
84
91
  */
85
- responseAdapter?: (response: unknown) => TokenResponse;
92
+ responseAdapter?: (response: NonNullable<QueryResponseType<QueryCreatorReturnType<T>>>) => TokenResponse;
86
93
  }
87
94
  export declare const enum AuthBearerRefreshStrategy {
88
95
  /**
89
96
  * Automatically refresh the token 5 minutes before expiration.
97
+ * The time can be configured with the `refreshBuffer` property.
90
98
  */
91
99
  BeforeExpiration = "beforeExpiration"
92
100
  }
@@ -94,10 +102,10 @@ export interface TokenResponse {
94
102
  /**
95
103
  * The access token used inside the authorization http header.
96
104
  */
97
- token: string;
105
+ token: string | null;
98
106
  /**
99
107
  * The refresh token used for requesting a new token response once the current tokes is expired.
100
108
  * This property is required if the bearer refresh config is set.
101
109
  */
102
- refreshToken?: string;
110
+ refreshToken: string | null;
103
111
  }
@@ -1,8 +1,9 @@
1
+ import { AnyQueryCreator } from '../query-client';
1
2
  import { AuthProvider } from './auth-provider.types';
2
3
  import { BasicAuthProvider } from './basic-auth-provider';
3
4
  import { BearerAuthProvider } from './bearer-auth-provider';
4
5
  import { CustomHeaderAuthProvider } from './custom-header-auth-provider';
5
6
  export declare const isBasicAuthProvider: (authProvider: AuthProvider) => authProvider is BasicAuthProvider;
6
- export declare const isBearerAuthProvider: (authProvider: AuthProvider) => authProvider is BearerAuthProvider;
7
+ export declare const isBearerAuthProvider: <T extends AnyQueryCreator = AnyQueryCreator>(authProvider: AuthProvider) => authProvider is BearerAuthProvider<T>;
7
8
  export declare const isCustomHeaderAuthProvider: (authProvider: AuthProvider) => authProvider is CustomHeaderAuthProvider;
8
9
  export declare const decryptBearer: <Result = Record<string, unknown>>(token: string) => Result | null;
@@ -1,4 +1,3 @@
1
- import { QueryClient } from '../query-client';
2
1
  import { AuthProvider, AuthProviderBasicConfig } from './auth-provider.types';
3
2
  export declare class BasicAuthProvider implements AuthProvider {
4
3
  private _config;
@@ -6,7 +5,6 @@ export declare class BasicAuthProvider implements AuthProvider {
6
5
  Authorization: string;
7
6
  };
8
7
  private get _basicAuthString();
9
- queryClient: QueryClient | null;
10
8
  constructor(_config: AuthProviderBasicConfig);
11
9
  cleanUp(): void;
12
10
  }
@@ -1,21 +1,21 @@
1
- import { Subject } from 'rxjs';
2
- import { QueryClient } from '../query-client';
3
- import { RequestError } from '../request';
1
+ import { AnyQueryCreator } from '../query-client';
4
2
  import { AuthProvider, AuthProviderBearerConfig, TokenResponse } from './auth-provider.types';
5
- export declare class BearerAuthProvider implements AuthProvider {
3
+ export declare class BearerAuthProvider<T extends AnyQueryCreator> implements AuthProvider {
6
4
  private _config;
7
- private _token;
8
- private _refreshToken;
9
- private _refreshTimerSubscription;
5
+ private readonly _destroy$;
6
+ private readonly _currentRefreshQuery$;
7
+ private readonly _tokens$;
10
8
  get header(): {
11
9
  Authorization: string;
12
10
  };
13
- queryClient: QueryClient | null;
14
- onRefreshInitiation$: Subject<void>;
15
- onRefreshSuccess$: Subject<TokenResponse>;
16
- onRefreshFailure$: Subject<RequestError<unknown>>;
17
- constructor(_config: AuthProviderBearerConfig);
11
+ get tokens$(): import("rxjs").Observable<TokenResponse>;
12
+ get tokens(): TokenResponse;
13
+ get currentRefreshQuery$(): import("rxjs").Observable<ReturnType<T["prepare"]> | null>;
14
+ get currentRefreshQuery(): ReturnType<T["prepare"]> | null;
15
+ constructor(_config: AuthProviderBearerConfig<T>);
18
16
  cleanUp(): void;
19
- private _setupRefresh;
20
- private _refresh;
17
+ enableCookie(): void;
18
+ disableCookie(): void;
19
+ private _prepareForRefresh;
20
+ private _refreshQuery;
21
21
  }
@@ -1,11 +1,9 @@
1
- import { QueryClient } from '../query-client';
2
1
  import { AuthProvider, AuthProviderCustomHeaderConfig } from './auth-provider.types';
3
2
  export declare class CustomHeaderAuthProvider implements AuthProvider {
4
3
  private _config;
5
4
  get header(): {
6
5
  [x: string]: string;
7
6
  };
8
- queryClient: QueryClient | null;
9
7
  constructor(_config: AuthProviderCustomHeaderConfig);
10
8
  cleanUp(): void;
11
9
  }
@@ -11,5 +11,5 @@ export declare class InfinityQueryTriggerDirective implements OnInit, OnDestroy
11
11
  ngOnDestroy(): void;
12
12
  private _setupIntersectionObserver;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<InfinityQueryTriggerDirective, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<InfinityQueryTriggerDirective, "[infinityQueryTrigger], infinity-query-trigger", never, { "scrollContainerSelector": "scrollContainerSelector"; }, {}, never, never, true>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<InfinityQueryTriggerDirective, "[infinityQueryTrigger], infinity-query-trigger", never, { "scrollContainerSelector": "scrollContainerSelector"; }, {}, never, never, true, never>;
15
15
  }
@@ -18,26 +18,31 @@ interface InfinityQueryContext<Q extends InfinityQueryConfig<AnyQueryCreator, Ba
18
18
  }
19
19
  export declare const INFINITY_QUERY_TOKEN: InjectionToken<InfinityQueryDirective<any>>;
20
20
  export declare class InfinityQueryDirective<Q extends InfinityQueryConfig<AnyQueryCreator, BaseArguments, any, unknown[]>> implements OnInit, OnDestroy {
21
+ private readonly _queryConfigChanged$;
21
22
  private readonly _viewContext;
22
23
  private _infinityQueryInstance;
23
- private _destroy$;
24
+ private readonly _destroy$;
24
25
  private readonly _cdr;
25
26
  private readonly _viewContainerRef;
26
27
  private readonly _mainTemplateRef;
27
28
  private readonly _errorHandler;
29
+ private readonly _data$;
28
30
  private _isMainViewCreated;
29
31
  get infinityQuery(): Q;
30
32
  set infinityQuery(v: Q);
31
33
  private _infinityQuery;
32
34
  get context(): InfinityQueryContext<Q>;
33
35
  get instance(): InfinityQuery<AnyQueryCreator, import("../query").Query<any, any, any, any, any>, BaseArguments, any, unknown[]> | null;
36
+ get data$(): import("rxjs").Observable<Q["response"]["arrayType"]>;
37
+ get data(): Q["response"]["arrayType"];
34
38
  static ngTemplateContextGuard<Q extends InfinityQueryConfig<AnyQueryCreator, BaseArguments, any, unknown[]>>(dir: InfinityQueryDirective<Q>, ctx: unknown): ctx is InfinityQueryContext<Q>;
35
39
  ngOnInit(): void;
36
40
  ngOnDestroy(): void;
37
41
  private _setupInfinityQuery;
38
42
  _loadNextPage(): void;
39
43
  private _renderMainView;
44
+ private _cleanup;
40
45
  static ɵfac: i0.ɵɵFactoryDeclaration<InfinityQueryDirective<any>, never>;
41
- static ɵdir: i0.ɵɵDirectiveDeclaration<InfinityQueryDirective<any>, "[infinityQuery]", never, { "infinityQuery": "infinityQuery"; }, {}, never, never, true>;
46
+ static ɵdir: i0.ɵɵDirectiveDeclaration<InfinityQueryDirective<any>, "[infinityQuery]", ["infinityQuery"], { "infinityQuery": "infinityQuery"; }, {}, never, never, true, never>;
42
47
  }
43
48
  export {};
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectorRef, ErrorHandler, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
2
- import { AnyQuery, QueryRawResponseType, QueryResponseType } from '../query';
2
+ import { AnyQuery, AnyQueryCreatorCollection, AnyQueryOfCreatorCollection, QueryOf, QueryRawResponseType, QueryResponseType } from '../query';
3
3
  import { RequestError } from '../request';
4
4
  import * as i0 from "@angular/core";
5
5
  interface QueryContext<Q extends AnyQuery | null> {
@@ -9,7 +9,7 @@ interface QueryContext<Q extends AnyQuery | null> {
9
9
  loading: boolean;
10
10
  error: RequestError<unknown> | null;
11
11
  }
12
- export declare class QueryDirective<Q extends AnyQuery | null> implements OnInit, OnDestroy {
12
+ export declare class QueryDirective<Q extends AnyQuery | AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> | null> implements OnInit, OnDestroy {
13
13
  private _mainTemplateRef;
14
14
  private _viewContainerRef;
15
15
  private _errorHandler;
@@ -23,14 +23,14 @@ export declare class QueryDirective<Q extends AnyQuery | null> implements OnInit
23
23
  get cache(): boolean;
24
24
  set cache(v: boolean);
25
25
  private _cache;
26
- constructor(_mainTemplateRef: TemplateRef<QueryContext<Q>>, _viewContainerRef: ViewContainerRef, _errorHandler: ErrorHandler, _cdr: ChangeDetectorRef);
27
- static ngTemplateContextGuard<Q extends AnyQuery | null>(dir: QueryDirective<Q>, ctx: unknown): ctx is QueryContext<Q>;
26
+ constructor(_mainTemplateRef: TemplateRef<QueryContext<QueryOf<Q>>>, _viewContainerRef: ViewContainerRef, _errorHandler: ErrorHandler, _cdr: ChangeDetectorRef);
27
+ static ngTemplateContextGuard<Q extends AnyQuery | AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> | null>(dir: QueryDirective<Q>, ctx: unknown): ctx is QueryContext<QueryOf<Q>>;
28
28
  ngOnInit(): void;
29
29
  ngOnDestroy(): void;
30
30
  private _subscribeToQuery;
31
31
  private _updateView;
32
32
  private _renderMainView;
33
33
  static ɵfac: i0.ɵɵFactoryDeclaration<QueryDirective<any>, never>;
34
- static ɵdir: i0.ɵɵDirectiveDeclaration<QueryDirective<any>, "[query]", never, { "query": "query"; "cache": "queryCache"; }, {}, never, never, true>;
34
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QueryDirective<any>, "[query]", never, { "query": "query"; "cache": "queryCache"; }, {}, never, never, true, never>;
35
35
  }
36
36
  export {};
@@ -1,7 +1,7 @@
1
- import { BaseArguments } from '../query';
2
- import { AnyQueryCreator } from '../query-client';
3
- export declare type InfinityQueryParamLocation = 'path' | 'query' | 'body' | 'header' | 'variable';
4
- export declare type AppendItemsLocation = 'start' | 'end';
1
+ import { BaseArguments, QueryStateData } from '../query';
2
+ import { AnyQueryCreator, QueryCreatorArgs, QueryCreatorReturnType } from '../query-client';
3
+ export type InfinityQueryParamLocation = 'path' | 'query' | 'body' | 'header' | 'variable';
4
+ export type AppendItemsLocation = 'start' | 'end';
5
5
  export interface PageParamCalculatorOptions {
6
6
  page: number;
7
7
  totalPages: number | null;
@@ -89,3 +89,6 @@ export interface InfinityQueryConfig<QueryCreator extends AnyQueryCreator, Argum
89
89
  totalPagesExtractor?: (data: TotalPagesExtractorOptions<QueryResponse>) => number;
90
90
  };
91
91
  }
92
+ type OmitUndefined<T> = T extends undefined ? never : T;
93
+ export type InfinityQueryConfigType<QueryCreator extends AnyQueryCreator, InfinityResponse extends unknown[]> = InfinityQueryConfig<QueryCreator, OmitUndefined<QueryCreatorArgs<QueryCreator>>, QueryStateData<QueryCreatorReturnType<QueryCreator>['state']>, InfinityResponse>;
94
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { DefaultResponseTransformer, QueryClient, ResponseTransformerType } from '../query-client';
2
2
  import { Method as MethodType } from '../request';
3
- import { BaseArguments, GqlQueryConfig, PollConfig, QueryConfig, QueryState, RouteType, RunQueryOptions } from './query.types';
4
- export declare class Query<Response, Arguments extends BaseArguments | undefined, Route extends RouteType<Arguments>, Method extends MethodType, ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>> {
3
+ import { BaseArguments, GqlQueryConfig, PollConfig, QueryState, RestQueryConfig, RouteType, RunQueryOptions, WithUseResultIn } from './query.types';
4
+ export declare class Query<Response, Arguments extends (BaseArguments & WithUseResultIn<Response, ResponseTransformer>) | undefined, Route extends RouteType<Arguments>, Method extends MethodType, ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>> {
5
5
  private _client;
6
6
  private _queryConfig;
7
7
  private _route;
@@ -9,16 +9,18 @@ export declare class Query<Response, Arguments extends BaseArguments | undefined
9
9
  private _currentId;
10
10
  private _abortController;
11
11
  private _pollingSubscription;
12
+ private _onAbort$;
12
13
  private readonly _state$;
13
14
  private get _nextId();
14
15
  get state$(): import("rxjs").Observable<QueryState<ReturnType<ResponseTransformer>, Response>>;
15
16
  get state(): QueryState<ReturnType<ResponseTransformer>, Response>;
16
17
  get isExpired(): boolean;
17
- constructor(_client: QueryClient, _queryConfig: QueryConfig<Route, Response, Arguments, ResponseTransformer> | GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>, _route: Route, _args: Arguments | undefined);
18
+ constructor(_client: QueryClient, _queryConfig: RestQueryConfig<Route, Response, Arguments, ResponseTransformer> | GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>, _route: Route, _args: Arguments | undefined);
18
19
  clone(): import("../query-client").QueryCreator<Arguments, Method, Response, Route, ResponseTransformer>;
19
20
  execute<ComputedResponse extends ReturnType<ResponseTransformer>>(options?: RunQueryOptions): this;
20
21
  abort(): this;
21
22
  poll(config: PollConfig): this;
22
23
  stopPolling(): this;
24
+ private _updateUseResultInDependencies;
23
25
  private _handleExecuteError;
24
26
  }
@@ -1,8 +1,8 @@
1
1
  import { Observable } from 'rxjs';
2
- import { ResponseTransformerType } from '../query-client';
2
+ import { AnyQueryCreator, QueryCreatorReturnType, ResponseTransformerType } from '../query-client';
3
3
  import { Method, PathParams, QueryParams, RequestError } from '../request';
4
4
  import { Query } from './query';
5
- export interface QueryConfig<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> {
5
+ export interface RestQueryConfig<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> {
6
6
  /**
7
7
  * The http method to use for the query.
8
8
  */
@@ -51,9 +51,9 @@ export interface GqlQueryConfig<Route extends RouteType<Arguments> | undefined,
51
51
  args?: Arguments;
52
52
  };
53
53
  }
54
- export declare type QueryConfigWithoutMethod<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> = Omit<QueryConfig<Route, Response, Arguments, ResponseTransformer>, 'method'>;
55
- export declare type GqlQueryConfigWithoutMethod<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> = Omit<GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>, 'method'>;
56
- export declare type BaseArguments = WithHeaders & WithVariables & WithBody & WithQueryParams & WithPathParams;
54
+ export type QueryConfigWithoutMethod<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> = Omit<RestQueryConfig<Route, Response, Arguments, ResponseTransformer>, 'method'>;
55
+ export type GqlQueryConfigWithoutMethod<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> = Omit<GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>, 'method'>;
56
+ export type BaseArguments = WithHeaders & WithVariables & WithBody & WithQueryParams & WithPathParams;
57
57
  export interface WithHeaders {
58
58
  headers?: Record<string, string>;
59
59
  }
@@ -69,14 +69,17 @@ export interface WithQueryParams {
69
69
  export interface WithPathParams {
70
70
  pathParams?: PathParams;
71
71
  }
72
- export declare type EmptyObject = {};
72
+ export type WithUseResultIn<Response, ResponseTransformer extends ResponseTransformerType<Response>> = {
73
+ useResultIn?: Query<Response, any, any, any, ResponseTransformer>[];
74
+ };
75
+ export type EmptyObject = {};
73
76
  export interface RunQueryOptions {
74
77
  skipCache?: boolean;
75
78
  }
76
- export declare type RouteType<Arguments extends BaseArguments | undefined> = Arguments extends {
79
+ export type RouteType<Arguments extends BaseArguments | undefined> = Arguments extends {
77
80
  pathParams: infer PathParams;
78
81
  } ? (p: PathParams) => RouteString : RouteString;
79
- export declare type RouteString = `/${string}`;
82
+ export type RouteString = `/${string}`;
80
83
  export interface PollConfig {
81
84
  interval: number;
82
85
  takeUntil: Observable<unknown>;
@@ -117,12 +120,26 @@ export interface QueryStateMeta {
117
120
  export interface QueryStateSuccessMeta extends QueryStateMeta {
118
121
  readonly expiresAt: number | null;
119
122
  }
120
- export declare type QueryState<Response = unknown, RawResponse = unknown> = Loading | Success<Response, RawResponse> | Failure | Cancelled | Prepared;
121
- export declare type QueryStateData<T extends QueryState = QueryState> = T extends Success<infer Response> ? Response : never;
122
- export declare type QueryStateRawData<T extends QueryState = QueryState> = T extends Success<infer Response, infer RawResponse> ? RawResponse : never;
123
- export declare type AnyQuery = Query<any, any, any, any, any>;
124
- export declare type QueryType<T extends {
123
+ export type QueryState<Response = unknown, RawResponse = unknown> = Loading | Success<Response, RawResponse> | Failure | Cancelled | Prepared;
124
+ export type QueryStateData<T extends QueryState = QueryState> = T extends Success<infer Response> ? Response : never;
125
+ export type QueryStateRawData<T extends QueryState = QueryState> = T extends Success<infer Response, infer RawResponse> ? RawResponse : never;
126
+ export type AnyQuery = Query<any, any, any, any, any>;
127
+ export type QueryType<T extends {
125
128
  prepare: (args: any) => AnyQuery;
126
129
  }> = T['prepare'] extends () => infer R ? R : T['prepare'] extends (args: any) => infer R ? R : never;
127
- export declare type QueryResponseType<Q extends AnyQuery | null> = Q extends AnyQuery ? QueryStateData<Q['state']> | null : null;
128
- export declare type QueryRawResponseType<Q extends AnyQuery | null> = Q extends AnyQuery ? QueryStateRawData<Q['state']> | null : null;
130
+ export type QueryResponseType<Q extends AnyQuery | null> = Q extends AnyQuery ? QueryStateData<Q['state']> | null : null;
131
+ export type QueryRawResponseType<Q extends AnyQuery | null> = Q extends AnyQuery ? QueryStateRawData<Q['state']> | null : null;
132
+ export type AnyQueryCreatorCollection = {
133
+ [name: string]: AnyQueryCreator;
134
+ };
135
+ export type AnyQueryOfCreatorCollection<T extends {
136
+ [name: string]: AnyQueryCreator;
137
+ }> = {
138
+ [K in keyof T]: {
139
+ type: K;
140
+ query: QueryCreatorReturnType<T[K]>;
141
+ };
142
+ }[keyof T];
143
+ export type QueryOf<T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> | AnyQuery | null> = T extends AnyQuery ? T : T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> ? T['query'] : never;
144
+ export type AnyQueryResponseOfCreatorCollection<T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection>> = QueryResponseType<T['query']>;
145
+ export type AnyQueryRawResponseOfCreatorCollection<T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection>> = QueryRawResponseType<T['query']>;
@@ -1,10 +1,20 @@
1
- import { Observable } from 'rxjs';
1
+ import { BehaviorSubject, Observable } from 'rxjs';
2
2
  import { ResponseTransformerType } from '../query-client';
3
3
  import { RequestHeaders } from '../request';
4
- import { BaseArguments, Cancelled, Failure, GqlQueryConfig, Loading, Prepared, QueryState, QueryStateData, QueryStateRawData, RouteType, Success } from './query.types';
5
- export declare function filterSuccess(): <T extends QueryState<unknown, unknown>, Response_1 extends QueryStateData<T>, RawResponse extends QueryStateRawData<T>>(source: Observable<T>) => Observable<Success<Response_1, RawResponse>>;
6
- export declare function filterFailure(): <T extends QueryState<unknown, unknown>>(source: Observable<T>) => Observable<Failure>;
7
- export declare function takeUntilResponse(): <T extends QueryState<unknown, unknown>>(source: Observable<T>) => Observable<T>;
4
+ import { AnyQuery, AnyQueryCreatorCollection, AnyQueryOfCreatorCollection, BaseArguments, Cancelled, Failure, GqlQueryConfig, Loading, Prepared, QueryRawResponseType, QueryResponseType, QueryState, QueryStateData, QueryStateRawData, QueryStateType, RouteType, Success } from './query.types';
5
+ type OmitNull<T> = T extends null ? never : T;
6
+ export declare function filterSuccess(): <T extends QueryState<unknown, unknown> | null, Response_1 extends QueryStateData<OmitNull<T>>, RawResponse extends QueryStateRawData<OmitNull<T>>>(source: Observable<T>) => Observable<Success<Response_1, RawResponse>>;
7
+ export declare function filterFailure(): <T extends QueryState<unknown, unknown> | null>(source: Observable<T>) => Observable<Failure>;
8
+ export declare function filterQueryStates(allowedStates: QueryStateType[]): <T extends QueryState<unknown, unknown> | null>(source: Observable<T>) => Observable<T>;
9
+ export declare function takeUntilResponse(config?: {
10
+ excludeNull?: boolean;
11
+ }): <T extends QueryState<unknown, unknown> | null>(source: Observable<T>) => Observable<T>;
12
+ export declare function filterNull(): <T>(source: Observable<T>) => Observable<OmitNull<T>>;
13
+ export declare function switchQueryState(): <T extends AnyQuery | null, Response_1 extends QueryResponseType<OmitNull<T>>, RawResponse extends QueryRawResponseType<OmitNull<T>>>(source: Observable<T>) => Observable<QueryState<OmitNull<Response_1>, OmitNull<RawResponse>> | null>;
14
+ export declare function switchQueryCollectionState(): <T extends {
15
+ type: string;
16
+ query: import("@ethlete/query").Query<any, any, any, any, any>;
17
+ } | null, Response_1 extends QueryResponseType<OmitNull<T>["query"]>, RawResponse extends QueryRawResponseType<OmitNull<T>["query"]>>(source: Observable<T>) => Observable<QueryState<OmitNull<Response_1>, OmitNull<RawResponse>> | null>;
8
18
  export declare const isQueryStateLoading: (state: QueryState | null | undefined) => state is Loading;
9
19
  export declare const isQueryStateSuccess: (state: QueryState | null | undefined) => state is Success<unknown, unknown>;
10
20
  export declare const isQueryStateFailure: (state: QueryState | null | undefined) => state is Failure;
@@ -12,3 +22,10 @@ export declare const isQueryStateCancelled: (state: QueryState | null | undefine
12
22
  export declare const isQueryStatePrepared: (state: QueryState | null | undefined) => state is Prepared;
13
23
  export declare const mergeHeaders: (...headers: Array<RequestHeaders | null | undefined>) => RequestHeaders | null | undefined;
14
24
  export declare const isGqlQueryConfig: <Response_1, Arguments extends BaseArguments | undefined, Route extends RouteType<Arguments> | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> | undefined>(config: unknown) => config is GqlQueryConfig<Route, Response_1, Arguments, ResponseTransformer>;
25
+ export declare const isQuery: <T extends AnyQuery>(query: unknown) => query is T;
26
+ export declare const createQueryCollection: <T extends AnyQueryCreatorCollection, R extends AnyQueryOfCreatorCollection<T>>(queryMap: T) => BehaviorSubject<R | null>;
27
+ export declare const extractQuery: <T extends AnyQuery | {
28
+ type: string;
29
+ query: import("@ethlete/query").Query<any, any, any, any, any>;
30
+ } | null>(v: T) => import("@ethlete/query").Query<any, any, any, any, any> | null;
31
+ export {};
@@ -1,22 +1,23 @@
1
1
  import { AuthProvider } from '../auth';
2
- import { BaseArguments, GqlQueryConfig, GqlQueryConfigWithoutMethod, QueryConfig, QueryConfigWithoutMethod, RouteType } from '../query';
2
+ import { BaseArguments, GqlQueryConfig, GqlQueryConfigWithoutMethod, QueryConfigWithoutMethod, RestQueryConfig, RouteType } from '../query';
3
3
  import { Method as MethodType } from '../request';
4
4
  import { DefaultResponseTransformer, QueryClientConfig, QueryCreator, ResponseTransformerType } from './query-client.types';
5
5
  export declare class QueryClient {
6
6
  private _clientConfig;
7
7
  private readonly _store;
8
- private _authProvider;
9
8
  get config(): QueryClientConfig;
10
9
  get authProvider(): AuthProvider | null;
10
+ get authProvider$(): import("rxjs").Observable<AuthProvider | null>;
11
+ private readonly _authProvider$;
11
12
  constructor(_clientConfig: QueryClientConfig);
12
- get: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GET", Response_1, Route, ResponseTransformer>;
13
- post: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "POST", Response_1, Route, ResponseTransformer>;
14
- put: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "PUT", Response_1, Route, ResponseTransformer>;
15
- patch: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "PATCH", Response_1, Route, ResponseTransformer>;
16
- delete: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "DELETE", Response_1, Route, ResponseTransformer>;
17
- gqlQuery: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: GqlQueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GQL_QUERY", Response_1, Route, ResponseTransformer>;
18
- gqlMutate: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: GqlQueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GQL_MUTATE", Response_1, Route, ResponseTransformer>;
19
- fetch: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, Method extends MethodType, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfig<Route, Response_1, Arguments, ResponseTransformer> | GqlQueryConfig<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, Method, Response_1, Route, ResponseTransformer>;
13
+ get: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GET", Response_1, Route, ResponseTransformer>;
14
+ post: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "POST", Response_1, Route, ResponseTransformer>;
15
+ put: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "PUT", Response_1, Route, ResponseTransformer>;
16
+ patch: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "PATCH", Response_1, Route, ResponseTransformer>;
17
+ delete: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "DELETE", Response_1, Route, ResponseTransformer>;
18
+ gqlQuery: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: GqlQueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GQL_QUERY", Response_1, Route, ResponseTransformer>;
19
+ gqlMutate: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: GqlQueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GQL_MUTATE", Response_1, Route, ResponseTransformer>;
20
+ fetch: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, Method extends MethodType, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: RestQueryConfig<Route, Response_1, Arguments, ResponseTransformer> | GqlQueryConfig<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, Method, Response_1, Route, ResponseTransformer>;
20
21
  setAuthProvider: (authProvider: AuthProvider) => void;
21
22
  clearAuthProvider: () => void;
22
23
  }
@@ -1,6 +1,6 @@
1
1
  import { BehaviorSubject } from 'rxjs';
2
2
  import { Query } from '../query/query';
3
- import { BaseArguments, EmptyObject, RouteType, WithHeaders } from '../query/query.types';
3
+ import { BaseArguments, EmptyObject, RouteType, WithHeaders, WithUseResultIn } from '../query/query.types';
4
4
  import { CacheAdapterFn, Method as MethodType } from '../request';
5
5
  export interface QueryClientConfig {
6
6
  /**
@@ -33,15 +33,15 @@ export interface QueryClientConfig {
33
33
  cacheAdapter?: CacheAdapterFn;
34
34
  };
35
35
  }
36
- export declare type QueryCreator<Arguments extends BaseArguments | undefined, Method extends MethodType, Response, Route extends RouteType<Arguments>, ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>> = (Arguments extends Record<string, unknown> ? {
37
- prepare: (args: Arguments & WithHeaders) => Query<Response, Arguments, Route, Method, ResponseTransformer>;
36
+ export type QueryCreator<Arguments extends BaseArguments | undefined, Method extends MethodType, Response, Route extends RouteType<Arguments>, ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>> = (Arguments extends BaseArguments ? {
37
+ prepare: (args: Arguments & WithHeaders & WithUseResultIn<Response, ResponseTransformer>) => Query<Response, Arguments, Route, Method, ResponseTransformer>;
38
38
  } : {
39
- prepare: (args?: (Arguments extends EmptyObject ? Arguments : EmptyObject) & WithHeaders) => Query<Response, Arguments, Route, Method, ResponseTransformer>;
39
+ prepare: (args?: (Arguments extends EmptyObject ? Arguments : EmptyObject) & WithHeaders & WithUseResultIn<Response, ResponseTransformer>) => Query<Response, Arguments, Route, Method, ResponseTransformer>;
40
40
  }) & {
41
41
  behaviorSubject: <T extends Query<Response, Arguments, Route, Method, ResponseTransformer>>(initialValue?: T | null) => BehaviorSubject<T | null>;
42
42
  };
43
- export declare type AnyQueryCreator = QueryCreator<any, any, any, any, any>;
44
- export declare type QueryCreatorArgs<T extends AnyQueryCreator> = Parameters<T['prepare']>[0];
45
- export declare type ResponseTransformerType<Response> = (response: Response) => unknown;
46
- export declare type DefaultResponseTransformer<Response> = (response: Response) => Response;
47
- export declare type QueryCreatorReturnType<T extends AnyQueryCreator> = ReturnType<T['prepare']>;
43
+ export type AnyQueryCreator = QueryCreator<any, any, any, any, any>;
44
+ export type QueryCreatorArgs<T extends AnyQueryCreator> = Parameters<T['prepare']>[0];
45
+ export type ResponseTransformerType<Response> = (response: Response) => unknown;
46
+ export type DefaultResponseTransformer<Response> = (response: Response) => Response;
47
+ export type QueryCreatorReturnType<T extends AnyQueryCreator> = ReturnType<T['prepare']>;
@@ -1,6 +1,6 @@
1
1
  import { FormGroup } from '@angular/forms';
2
2
  import { Observable } from 'rxjs';
3
- import { QueryFormGroup, QueryFieldOptions, QueryFormValue } from './query-form.types';
3
+ import { QueryFieldOptions, QueryFormGroup, QueryFormValue } from './query-form.types';
4
4
  export declare class QueryField<T> {
5
5
  data: QueryFieldOptions<T>;
6
6
  changes$: Observable<T | null>;
@@ -26,18 +26,28 @@ export interface QueryFieldOptions<T = unknown> {
26
26
  * E.g. for a number field, the value from the url query params is a string, but the field requires a number.
27
27
  *
28
28
  * The following common transformations are already implemented:
29
+ * - `transformToString`
30
+ * - `transformToStringArray`
29
31
  * - `transformToNumber`
30
32
  * - `transformToNumberArray`
31
33
  * - `transformToBoolean`
32
34
  * - `transformToBooleanArray`
33
35
  * - `transformToDate` (expects a string in the default js format)
34
36
  * - `transformToDateArray` (expects strings in the default js format)
37
+ * - `transformToSort` (expects a string in the format `field:direction`)
35
38
  */
36
- queryParamTransformFn?: (val: unknown) => T | null;
39
+ queryParamToValueTransformFn?: (val: unknown) => T | null;
40
+ /**
41
+ * A function that transforms the value of the field to a value that can be appended to the url query params.
42
+ *
43
+ * The following common transformations are already implemented:
44
+ * - `transformToSortQueryParam` (returns an object containing `field` and `direction` properties)
45
+ */
46
+ valueToQueryParamTransformFn?: (val: T | null) => unknown;
37
47
  }
38
- export declare type QueryFormGroup<T extends Record<string, QueryField<any>>> = {
48
+ export type QueryFormGroup<T extends Record<string, QueryField<any>>> = {
39
49
  [Property in keyof T]: T[Property]['control'];
40
50
  };
41
- export declare type QueryFormValue<T extends Record<string, QueryField<any>>> = {
51
+ export type QueryFormValue<T extends Record<string, QueryField<any>>> = {
42
52
  [Property in keyof T]: T[Property]['control']['value'];
43
53
  };
@@ -6,3 +6,8 @@ export declare const transformToBoolean: (value: unknown) => boolean | null;
6
6
  export declare const transformToBooleanArray: (value: unknown) => boolean[] | null;
7
7
  export declare const transformToDate: (value: unknown) => Date | null;
8
8
  export declare const transformToDateArray: (value: unknown) => Date[] | null;
9
+ export declare const transformToSort: (value: unknown) => {
10
+ active: string;
11
+ direction: "desc" | "asc";
12
+ } | null;
13
+ export declare const transformToSortQueryParam: (value: unknown) => string | null;
@@ -1,4 +1,4 @@
1
- export declare type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT' | 'PURGE' | 'LINK' | 'UNLINK' | 'GQL_QUERY' | 'GQL_MUTATE' | 'CUSTOM';
1
+ export type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT' | 'PURGE' | 'LINK' | 'UNLINK' | 'GQL_QUERY' | 'GQL_MUTATE' | 'CUSTOM';
2
2
  export interface RequestError<Detail = unknown> {
3
3
  code: number;
4
4
  message: string;
@@ -7,12 +7,12 @@ export interface RequestError<Detail = unknown> {
7
7
  route: string;
8
8
  requestInit?: RequestInit;
9
9
  }
10
- export declare type ParamPrimitive = string | number | boolean | null | undefined;
11
- export declare type Params = Record<string | number | symbol, ParamPrimitive | ParamArray>;
12
- export declare type ParamArray = Array<ParamPrimitive>;
13
- export declare type UnfilteredParamPrimitive = string | number | boolean | null | undefined;
14
- export declare type QueryParams = Record<string | number | symbol, UnfilteredParamPrimitive | UnfilteredParamArray>;
15
- export declare type PathParams = Record<string, string | number>;
16
- export declare type UnfilteredParamArray = Array<UnfilteredParamPrimitive>;
17
- export declare type CacheAdapterFn = (headers: Headers) => number | null;
18
- export declare type RequestHeaders = Record<string, string>;
10
+ export type ParamPrimitive = string | number | boolean | null | undefined;
11
+ export type Params = Record<string | number | symbol, ParamPrimitive | ParamArray>;
12
+ export type ParamArray = Array<ParamPrimitive>;
13
+ export type UnfilteredParamPrimitive = string | number | boolean | null | undefined;
14
+ export type QueryParams = Record<string | number | symbol, UnfilteredParamPrimitive | UnfilteredParamArray>;
15
+ export type PathParams = Record<string, string | number>;
16
+ export type UnfilteredParamArray = Array<UnfilteredParamPrimitive>;
17
+ export type CacheAdapterFn = (headers: Headers) => number | null;
18
+ export type RequestHeaders = Record<string, string>;
@@ -1 +1 @@
1
- export declare const deepFreeze: <T extends Record<string, unknown>>(object: T) => Readonly<T>;
1
+ export declare const deepFreeze: <T extends Record<string, unknown>>(object: T) => T;
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@ethlete/query",
3
- "version": "0.1.0-next.2",
3
+ "version": "0.1.0-next.20",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
7
7
  "peerDependencies": {
8
- "@angular/common": "^14.2.0",
9
- "@angular/core": "^14.2.0",
10
- "rxjs": "7.5.7",
11
- "@angular/forms": "14.2.9",
12
- "@angular/router": "14.2.9"
8
+ "@angular/common": "^14.2.0 || ^15.0.0",
9
+ "@angular/core": "^14.2.0 || ^15.0.0",
10
+ "@ethlete/core": "0.2.0-next.16",
11
+ "@angular/forms": "15.1.2",
12
+ "@angular/router": "15.1.2"
13
13
  },
14
14
  "module": "fesm2015/ethlete-query.mjs",
15
15
  "es2020": "fesm2020/ethlete-query.mjs",