@ethlete/query 5.40.1 → 5.41.0

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 (107) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/fesm2022/ethlete-query.mjs +47 -41
  3. package/fesm2022/ethlete-query.mjs.map +1 -1
  4. package/index.d.ts +3600 -20
  5. package/package.json +5 -5
  6. package/lib/auth/auth-provider.types.d.ts +0 -133
  7. package/lib/auth/auth-provider.utils.d.ts +0 -9
  8. package/lib/auth/basic-auth-provider.d.ts +0 -10
  9. package/lib/auth/bearer-auth-provider.d.ts +0 -23
  10. package/lib/auth/custom-header-auth-provider.d.ts +0 -9
  11. package/lib/auth/index.d.ts +0 -5
  12. package/lib/class-validator/class-validator.types.d.ts +0 -6
  13. package/lib/class-validator/class-validator.utils.d.ts +0 -2
  14. package/lib/class-validator/index.d.ts +0 -2
  15. package/lib/devtools/components/query-devtools/index.d.ts +0 -1
  16. package/lib/devtools/components/query-devtools/query-devtools.component.d.ts +0 -151
  17. package/lib/devtools/pipes/index.d.ts +0 -1
  18. package/lib/devtools/pipes/query-short-name.pipe.d.ts +0 -8
  19. package/lib/devtools/utils/index.d.ts +0 -1
  20. package/lib/devtools/utils/query-client.utils.d.ts +0 -12
  21. package/lib/directives/index.d.ts +0 -3
  22. package/lib/directives/infinity-query-trigger.directive.d.ts +0 -15
  23. package/lib/directives/infinity-query.directive.d.ts +0 -49
  24. package/lib/directives/query.directive.d.ts +0 -64
  25. package/lib/entity/entity-store.d.ts +0 -25
  26. package/lib/entity/entity.types.d.ts +0 -25
  27. package/lib/entity/entity.utils.d.ts +0 -12
  28. package/lib/entity/index.d.ts +0 -3
  29. package/lib/experimental/auth/bearer-auth-provider-config.d.ts +0 -123
  30. package/lib/experimental/auth/bearer-auth-provider.d.ts +0 -69
  31. package/lib/experimental/auth/index.d.ts +0 -2
  32. package/lib/experimental/gql/gql-query-creator-templates.d.ts +0 -12
  33. package/lib/experimental/gql/gql-query-creator.d.ts +0 -14
  34. package/lib/experimental/gql/gql-query-execute.d.ts +0 -11
  35. package/lib/experimental/gql/gql-query.d.ts +0 -12
  36. package/lib/experimental/gql/index.d.ts +0 -4
  37. package/lib/experimental/http/http-request.d.ts +0 -119
  38. package/lib/experimental/http/index.d.ts +0 -21
  39. package/lib/experimental/http/paged-query-stack.d.ts +0 -172
  40. package/lib/experimental/http/query-client-config.d.ts +0 -45
  41. package/lib/experimental/http/query-client.d.ts +0 -10
  42. package/lib/experimental/http/query-creator-templates.d.ts +0 -24
  43. package/lib/experimental/http/query-creator.d.ts +0 -82
  44. package/lib/experimental/http/query-dependencies.d.ts +0 -26
  45. package/lib/experimental/http/query-error-response.d.ts +0 -19
  46. package/lib/experimental/http/query-errors.d.ts +0 -56
  47. package/lib/experimental/http/query-execute-utils.d.ts +0 -42
  48. package/lib/experimental/http/query-execute.d.ts +0 -25
  49. package/lib/experimental/http/query-features.d.ts +0 -121
  50. package/lib/experimental/http/query-repository.d.ts +0 -69
  51. package/lib/experimental/http/query-snapshot.d.ts +0 -10
  52. package/lib/experimental/http/query-stack.d.ts +0 -109
  53. package/lib/experimental/http/query-state.d.ts +0 -41
  54. package/lib/experimental/http/query-utils.d.ts +0 -61
  55. package/lib/experimental/http/query.d.ts +0 -75
  56. package/lib/experimental/http/secure-query-creator.d.ts +0 -7
  57. package/lib/experimental/http/secure-query-execute.d.ts +0 -7
  58. package/lib/experimental/http/secure-query.d.ts +0 -6
  59. package/lib/experimental/index.d.ts +0 -6
  60. package/lib/experimental/interop/index.d.ts +0 -2
  61. package/lib/experimental/interop/legacy-query-creator.d.ts +0 -45
  62. package/lib/experimental/interop/legacy-query.d.ts +0 -38
  63. package/lib/experimental/pipes/index.d.ts +0 -4
  64. package/lib/experimental/pipes/parse-http-error-code-de.d.ts +0 -3
  65. package/lib/experimental/pipes/parse-http-error-code-de.pipe.d.ts +0 -12
  66. package/lib/experimental/pipes/parse-http-error-code-en.d.ts +0 -3
  67. package/lib/experimental/pipes/parse-http-error-code-en.pipe.d.ts +0 -12
  68. package/lib/experimental/ws/index.d.ts +0 -2
  69. package/lib/experimental/ws/web-socket-client-config.d.ts +0 -17
  70. package/lib/experimental/ws/web-socket-client.d.ts +0 -37
  71. package/lib/experimental/ws/web-socket-errors.d.ts +0 -7
  72. package/lib/gql/gql.d.ts +0 -10
  73. package/lib/gql/index.d.ts +0 -1
  74. package/lib/infinite-query/index.d.ts +0 -3
  75. package/lib/infinite-query/infinity-query.d.ts +0 -30
  76. package/lib/infinite-query/infinity-query.types.d.ts +0 -105
  77. package/lib/infinite-query/infinity-query.utils.d.ts +0 -5
  78. package/lib/logger/index.d.ts +0 -1
  79. package/lib/logger/logger.d.ts +0 -12
  80. package/lib/query/index.d.ts +0 -3
  81. package/lib/query/query.d.ts +0 -60
  82. package/lib/query/query.types.d.ts +0 -397
  83. package/lib/query/query.utils.d.ts +0 -83
  84. package/lib/query-client/index.d.ts +0 -3
  85. package/lib/query-client/query-client.d.ts +0 -29
  86. package/lib/query-client/query-client.types.d.ts +0 -82
  87. package/lib/query-client/query-client.utils.d.ts +0 -4
  88. package/lib/query-creator/index.d.ts +0 -2
  89. package/lib/query-creator/query-creator.d.ts +0 -20
  90. package/lib/query-creator/query-creator.types.d.ts +0 -14
  91. package/lib/query-form/index.d.ts +0 -3
  92. package/lib/query-form/query-form.d.ts +0 -136
  93. package/lib/query-form/query-form.types.d.ts +0 -155
  94. package/lib/query-form/query-form.utils.d.ts +0 -15
  95. package/lib/query-store/index.d.ts +0 -1
  96. package/lib/query-store/query-store.d.ts +0 -31
  97. package/lib/request/index.d.ts +0 -3
  98. package/lib/request/request.d.ts +0 -3
  99. package/lib/request/request.types.d.ts +0 -131
  100. package/lib/request/request.util.d.ts +0 -26
  101. package/lib/symfony/index.d.ts +0 -2
  102. package/lib/symfony/symfony.types.d.ts +0 -19
  103. package/lib/symfony/symfony.utils.d.ts +0 -6
  104. package/lib/utils/data.utils.d.ts +0 -64
  105. package/lib/utils/deep-freeze.util.d.ts +0 -1
  106. package/lib/utils/def.util.d.ts +0 -7
  107. package/lib/utils/index.d.ts +0 -3
@@ -1,20 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- import { EntityStore } from '../entity';
3
- import { QueryClient } from '../query-client';
4
- import { QueryStore } from '../query-store';
5
- import { BaseArguments, GqlQueryConfig, RestQueryConfig, RouteType } from '../query/query.types';
6
- import { QueryContainerConfig } from '../utils';
7
- import { QueryPrepareFn } from './query-creator.types';
8
- export declare class QueryCreator<Arguments extends BaseArguments | undefined, Response, Route extends RouteType<Arguments>, Store extends EntityStore<unknown>, Data, Id> {
9
- private _queryConfig;
10
- private _client;
11
- private _store;
12
- constructor(_queryConfig: RestQueryConfig<Route, Response, Arguments, Store, Data, Id> | GqlQueryConfig<Route, Response, Arguments, Store, Data, Id>, _client: QueryClient, _store: QueryStore);
13
- prepare: QueryPrepareFn<Arguments, Response, Route, Store, Data, Id>;
14
- createSubject: (initialValue?: ReturnType<typeof this.prepare> | null, config?: QueryContainerConfig) => BehaviorSubject<ReturnType<QueryPrepareFn<Arguments, Response, Route, Store, Data, Id>> | null>;
15
- createSignal: (initialValue?: ReturnType<typeof this.prepare> | null, config?: QueryContainerConfig) => import("@angular/core").WritableSignal<ReturnType<QueryPrepareFn<Arguments, Response, Route, Store, Data, Id>> | null>;
16
- /**
17
- * @deprecated Use `myQuery.createSubject()` or `myQuery.createSignal()` instead. Will be removed in v6.
18
- */
19
- behaviorSubject: (initialValue?: ReturnType<typeof this.prepare> | null) => BehaviorSubject<ReturnType<QueryPrepareFn<Arguments, Response, Route, Store, Data, Id>> | null>;
20
- }
@@ -1,14 +0,0 @@
1
- import { EntityStore } from '../entity';
2
- import { AnyLegacyQuery, AnyLegacyQueryCreator, LegacyArgumentsOfQueryArgs, LegacyQuery, LegacyQueryCreator } from '../experimental';
3
- import { Query } from '../query/query';
4
- import { AnyQuery, BaseArguments, EmptyObject, RouteType, WithConfig, WithHeaders, WithMock } from '../query/query.types';
5
- import { QueryCreator } from './query-creator';
6
- export type QueryPrepareFn<Arguments extends BaseArguments | undefined, Response, Route extends RouteType<Arguments>, Store extends EntityStore<unknown>, Data, Id> = Arguments extends BaseArguments ? (args: Arguments & WithHeaders & WithConfig & WithMock<Response>) => Query<Response, Arguments, Route, Store, Data, Id> : (args?: (Arguments extends EmptyObject ? Arguments : EmptyObject) & WithHeaders & WithConfig & WithMock<Response>) => Query<Response, Arguments, Route, Store, Data, Id>;
7
- export type AnyQueryCreator = QueryCreator<any, any, any, any, any, any>;
8
- export type QueryArgsOf<T extends AnyQueryCreator | AnyQuery | AnyLegacyQuery | AnyLegacyQueryCreator | null> = T extends QueryCreator<infer Args, any, any, any, any, any> ? Args : T extends Query<any, infer Args, any, any, any, any> ? Args : T extends LegacyQuery<any, infer Args, any, any, any, any, any> ? Args : T extends LegacyQueryCreator<infer Args, any, any, any, any> ? LegacyArgumentsOfQueryArgs<Args> : never;
9
- export type QueryResponseOf<T extends AnyQueryCreator | AnyQuery | AnyLegacyQuery | AnyLegacyQueryCreator | null> = T extends QueryCreator<any, infer Response, any, any, any, any> ? Response : T extends Query<infer Response, any, any, any, any, any> ? Response : T extends LegacyQuery<infer Response, any, any, any, any, any, any> ? Response : T extends LegacyQueryCreator<any, infer Response, any, any, any> ? Response : never;
10
- export type QueryRouteOf<T extends AnyQueryCreator | AnyQuery | AnyLegacyQuery | AnyLegacyQueryCreator | null> = T extends QueryCreator<any, any, infer Route, any, any, any> ? Route : T extends Query<any, any, infer Route, any, any, any> ? Route : T extends LegacyQuery<any, any, infer Route, any, any, any, any> ? Route : T extends LegacyQueryCreator<infer Args, any, any, any, any> ? RouteType<LegacyArgumentsOfQueryArgs<Args>> : never;
11
- export type QueryStoreOf<T extends AnyQueryCreator | AnyQuery | AnyLegacyQuery | AnyLegacyQueryCreator | null> = T extends QueryCreator<any, any, any, infer Store, any, any> ? Store : T extends Query<any, any, any, infer Store, any, any> ? Store : T extends LegacyQuery<any, any, any, infer Store, any, any, any> ? Store : T extends LegacyQueryCreator<any, any, infer Store, any, any> ? Store : never;
12
- export type QueryDataOf<T extends AnyQueryCreator | AnyLegacyQuery | AnyLegacyQueryCreator | AnyQuery | null> = T extends QueryCreator<any, any, any, any, infer Data, any> ? Data : T extends Query<any, any, any, any, infer Data, any> ? Data : T extends LegacyQuery<any, any, any, any, infer Data, any, any> ? Data : T extends LegacyQueryCreator<any, any, any, any, infer Data> ? Data : never;
13
- export type QueryStoreIdOf<T extends AnyQueryCreator | AnyQuery | AnyLegacyQuery | AnyLegacyQueryCreator | null> = T extends QueryCreator<any, any, any, any, any, infer StoreId> ? StoreId : T extends Query<any, any, any, any, any, infer StoreId> ? StoreId : T extends LegacyQuery<any, any, any, any, any, infer StoreId, any> ? StoreId : T extends LegacyQueryCreator<any, any, any, infer StoreId, any> ? StoreId : never;
14
- export type ConstructQuery<T extends AnyQueryCreator | AnyLegacyQueryCreator> = ReturnType<T['prepare']>;
@@ -1,3 +0,0 @@
1
- export * from './query-form';
2
- export * from './query-form.utils';
3
- export * from './query-form.types';
@@ -1,136 +0,0 @@
1
- import { FormControl, FormGroup } from '@angular/forms';
2
- import { OptionalQueryFieldOptions, QueryFieldOptions, QueryFormGroupControls, QueryFormObserveOptions, QueryFormValue, QueryFormValueEvent, QueryFormWriteOptions } from './query-form.types';
3
- import { Sort } from './query-form.utils';
4
- export declare class QueryField<T> {
5
- data: QueryFieldOptions<T>;
6
- get control(): FormControl<T | null>;
7
- constructor(data: QueryFieldOptions<T>);
8
- }
9
- export declare class SearchQueryField {
10
- _data?: OptionalQueryFieldOptions<string | null> | undefined;
11
- get control(): FormControl<string | null>;
12
- data: QueryFieldOptions<string | null>;
13
- constructor(_data?: OptionalQueryFieldOptions<string | null> | undefined);
14
- }
15
- export declare class SortQueryField {
16
- _data?: OptionalQueryFieldOptions<Sort | null> | undefined;
17
- get control(): FormControl<Sort | null>;
18
- data: QueryFieldOptions<Sort | null>;
19
- constructor(_data?: OptionalQueryFieldOptions<Sort | null> | undefined);
20
- }
21
- export declare class StringArrayQueryField<T extends string[]> {
22
- _data?: OptionalQueryFieldOptions<T | null> | undefined;
23
- get control(): FormControl<T | null>;
24
- data: QueryFieldOptions<T | null>;
25
- constructor(_data?: OptionalQueryFieldOptions<T | null> | undefined);
26
- }
27
- export declare class BooleanArrayQueryField {
28
- _data?: OptionalQueryFieldOptions<boolean[] | null> | undefined;
29
- get control(): FormControl<boolean[] | null>;
30
- data: QueryFieldOptions<boolean[] | null>;
31
- constructor(_data?: OptionalQueryFieldOptions<boolean[] | null> | undefined);
32
- }
33
- export declare class NumberArrayQueryField {
34
- _data?: OptionalQueryFieldOptions<number[] | null> | undefined;
35
- get control(): FormControl<number[] | null>;
36
- data: QueryFieldOptions<number[] | null>;
37
- constructor(_data?: OptionalQueryFieldOptions<number[] | null> | undefined);
38
- }
39
- export declare class DateQueryField {
40
- _data?: OptionalQueryFieldOptions<Date | null> | undefined;
41
- get control(): FormControl<Date | null>;
42
- data: QueryFieldOptions<Date | null>;
43
- constructor(_data?: OptionalQueryFieldOptions<Date | null> | undefined);
44
- }
45
- export declare class DateArrayQueryField {
46
- _data?: OptionalQueryFieldOptions<Date[] | null> | undefined;
47
- get control(): FormControl<Date[] | null>;
48
- data: QueryFieldOptions<Date[] | null>;
49
- constructor(_data?: OptionalQueryFieldOptions<Date[] | null> | undefined);
50
- }
51
- export interface QueryFormOptions {
52
- /**
53
- * A prefix to use for the query parameters. This is useful when you have multiple query forms on the same page.
54
- */
55
- queryParamPrefix?: string | (() => string);
56
- }
57
- export type AnyQueryForm = QueryForm<any>;
58
- export declare class QueryForm<T extends Record<string, QueryField<any>>> {
59
- private _fields;
60
- private _options?;
61
- private readonly _destroy$;
62
- private readonly _unobserveTrigger$;
63
- private readonly _router;
64
- private readonly _activatedRoute;
65
- private readonly _defaultValues;
66
- private readonly _zone;
67
- private readonly _didValueChanges$;
68
- private _isObserving;
69
- private _skipNextResets;
70
- private _queryParamChanges$;
71
- private _queryParams;
72
- /**
73
- * The angular form group that contains all the fields.
74
- *
75
- * **Do not** use any of the following methods on this form group:
76
- * - `setValue`: Use `QueryForm.setValue` instead.
77
- * - `patchValue`: Use `QueryForm.patchValue` instead.
78
- * - `valueChanges`: Use `QueryForm.changes$` instead.
79
- * - `value`: Use `QueryForm.value` instead.
80
- * - `controls`: Use `QueryForm.controls` instead.
81
- */
82
- readonly form: FormGroup<QueryFormGroupControls<T>>;
83
- private readonly _lastFormValue$;
84
- private readonly _currentFormValue$;
85
- private get _formValue();
86
- private get _form();
87
- private readonly _changes$;
88
- readonly changes$: import("rxjs").Observable<QueryFormValueEvent<T>>;
89
- readonly currentValue$: import("rxjs").Observable<QueryFormValue<T>>;
90
- readonly previousValue$: import("rxjs").Observable<QueryFormValue<T> | null>;
91
- readonly changes: import("@angular/core").Signal<QueryFormValueEvent<T> | undefined>;
92
- readonly currentValue: import("@angular/core").Signal<QueryFormValue<T> | undefined>;
93
- readonly previousValue: import("@angular/core").Signal<QueryFormValue<T> | null | undefined>;
94
- /**
95
- * The number of active filters.
96
- *
97
- * Excludes the following fields by default:
98
- * - `page`
99
- * - `skip`
100
- * - `take`
101
- * - `limit`
102
- * - `sort`
103
- * - `sortBy`
104
- * - `sortOrder`
105
- * - `query`
106
- * - `search`
107
- */
108
- readonly activeFilterCount$: import("rxjs").Observable<number>;
109
- get controls(): 0 extends 1 & QueryFormGroupControls<T> ? {
110
- [key: string]: import("@angular/forms").AbstractControl<any, any>;
111
- } : QueryFormGroupControls<T>;
112
- get value(): QueryFormValue<T>;
113
- get defaultFormValue(): QueryFormValue<T>;
114
- constructor(_fields: T, _options?: QueryFormOptions | undefined);
115
- observe(options?: QueryFormObserveOptions): this;
116
- private _handleQueryFormResets;
117
- unobserve(): void;
118
- setFormValueFromUrlQueryParams(options: {
119
- queryParams: Record<string, unknown>;
120
- }): boolean;
121
- setValue(value: QueryFormValue<T>, options?: QueryFormWriteOptions): void;
122
- patchValue(value: Partial<QueryFormValue<T>>, options?: QueryFormWriteOptions): void;
123
- resetFieldToDefault(key: keyof QueryFormValue<T>, options?: QueryFormWriteOptions): void;
124
- resetFieldsToDefault(keys: (keyof QueryFormValue<T>)[], options?: QueryFormWriteOptions): void;
125
- resetAllFieldsToDefault(options?: QueryFormWriteOptions & {
126
- skipFields?: (keyof QueryFormValue<T>)[];
127
- }): void;
128
- private _getDefaultValue;
129
- private _transformKeyToQueryParam;
130
- private _isDefaultValue;
131
- private _setupFormGroup;
132
- private _extractDefaultValues;
133
- private _syncViaUrlQueryParams;
134
- private _handleFormChange;
135
- private _cleanup;
136
- }
@@ -1,155 +0,0 @@
1
- import { FormControl, FormGroup } from '@angular/forms';
2
- import { QueryField } from './query-form';
3
- export interface QueryFieldOptions<T = unknown> {
4
- /**
5
- * The default value of the field.
6
- * Will be set to the initial value of the form control if not specified.
7
- * If a function is provided, it will be called to get the default value.
8
- */
9
- defaultValue?: T | (() => T) | null;
10
- /**
11
- * Debounce time in milliseconds.
12
- */
13
- debounce?: number;
14
- /**
15
- * Whether the debounce should not be applied if the value is falsy.
16
- * This is useful for fields that can be cleared like a search field.
17
- *
18
- * @default false
19
- */
20
- disableDebounceIfFalsy?: boolean;
21
- /**
22
- * The form control for the field.
23
- */
24
- control: FormControl<T | null>;
25
- /**
26
- * Append the field's value to the url.
27
- *
28
- * The field wont be appended to the url if one of the following is true:
29
- * - It is the default value and `appendDefaultValueToUrl` is `false`
30
- * - It is an empty string
31
- * - It is `null`
32
- * - It is `undefined`
33
- *
34
- * @default true
35
- */
36
- appendToUrl?: boolean;
37
- /**
38
- * Append the field's value to the url even if it is the default value.
39
- * Will be ignored if `appendToUrl` is `false`.
40
- *
41
- * @default false
42
- */
43
- appendDefaultValueToUrl?: boolean;
44
- /**
45
- * Reset the field's value to the default value if one or more of the specified fields are changed.
46
- *
47
- * @example
48
- * // Given this field is a `page` field, the field will be reset if the `limit`, `query` or `search` fields are changed.
49
- * ['limit', 'query', 'search']
50
- */
51
- isResetBy?: string | string[];
52
- /**
53
- * Whether the field should change the count of current active filters.
54
- *
55
- * Will be `true` for these common fields:
56
- * - `page`
57
- * - `skip`
58
- * - `take`
59
- * - `limit`
60
- * - `sort`
61
- * - `sortBy`
62
- * - `sortOrder`
63
- * - `query`
64
- * - `search`
65
- * @default false
66
- */
67
- skipInFilterCount?: boolean;
68
- /**
69
- * By default, the field's string value is transformed to it's matching primitive type.
70
- * Meaning that a string `'true'` will be transformed to a boolean `true` and a string `'5'` will be transformed to a number `5`.
71
- * If this is set to `true`, the field's value will not be transformed.
72
- *
73
- * @default false
74
- */
75
- skipAutoTransform?: boolean;
76
- /**
77
- * A function that transforms the the value gotten from the url query params to a value required by the field.
78
- * E.g. for a number field, the value from the url query params is a string, but the field requires a number.
79
- *
80
- * The following common transformations are already implemented:
81
- * - `transformToString`
82
- * - `transformToStringArray`
83
- * - `transformToNumber`
84
- * - `transformToNumberArray`
85
- * - `transformToBoolean`
86
- * - `transformToBooleanArray`
87
- * - `transformToDate` (expects a string in the default js format)
88
- * - `transformToDateArray` (expects strings in the default js format)
89
- * - `transformToSort` (expects a string in the format `field:direction`)
90
- */
91
- queryParamToValueTransformFn?: (val: unknown) => T | null;
92
- /**
93
- * A function that transforms the value of the field to a value that can be appended to the url query params.
94
- *
95
- * The following common transformations are already implemented:
96
- * - `transformToSortQueryParam` (returns an object containing `field` and `direction` properties)
97
- */
98
- valueToQueryParamTransformFn?: (val: T | null) => unknown;
99
- }
100
- export type OptionalQueryFieldOptions<T = string> = Partial<QueryFieldOptions<T>>;
101
- export type QueryFormGroupControls<T extends Record<string, QueryField<any>>> = {
102
- [Property in keyof T]: T[Property]['control'];
103
- };
104
- export type QueryFormValue<T extends Record<string, QueryField<any>>> = {
105
- [Property in keyof T]: T[Property]['control']['value'];
106
- };
107
- export type QueryFormOf<T extends FormGroup> = {
108
- [K in keyof T['controls']]: QueryField<T['controls'][K]['value']>;
109
- };
110
- export interface QueryFormGroup extends FormGroup {
111
- _setValue: FormGroup['setValue'];
112
- _patchValue: FormGroup['patchValue'];
113
- setValue(value: unknown, options?: QueryFormWriteOptions): void;
114
- patchValue(value: unknown, options?: QueryFormWriteOptions): void;
115
- }
116
- export interface QueryFormObserveOptions {
117
- /**
118
- * Whether the form value should be synced to the url query params.
119
- * @default true
120
- */
121
- writeToQueryParams?: boolean;
122
- /**
123
- * Whether the form value should be updated when the url query params change.
124
- * @default true
125
- */
126
- syncOnNavigation?: boolean;
127
- /**
128
- * If true, the navigation will not create a new entry in the browser's history.
129
- * @default false
130
- */
131
- replaceUrl?: boolean;
132
- }
133
- export interface QueryFormValueEvent<T extends Record<string, QueryField<any>>> {
134
- previousValue: QueryFormValue<T> | null;
135
- currentValue: QueryFormValue<T>;
136
- }
137
- export interface QueryFormWriteOptions {
138
- /**
139
- * When true, each change only affects this control, and not its parent.
140
- * @default false
141
- */
142
- onlySelf?: boolean;
143
- /**
144
- * When true or not supplied (the default), both the `statusChanges` and `valueChanges`
145
- * observables emit events with the latest status and value when the control value is updated.
146
- * When false, no events are emitted.
147
- * @default true
148
- */
149
- emitEvent?: boolean;
150
- /**
151
- * When true, the `resetBy` conditions will be ignored for this write.
152
- * @default false
153
- */
154
- skipResets?: boolean;
155
- }
@@ -1,15 +0,0 @@
1
- export declare const transformToString: (value: unknown) => string | null;
2
- export declare const transformToStringArray: (value: unknown) => string[] | null;
3
- export declare const transformToNumber: (value: unknown) => number | null;
4
- export declare const transformToNumberArray: (value: unknown) => number[] | null;
5
- export declare const transformToBoolean: (value: unknown) => boolean | null;
6
- export declare const transformToBooleanArray: (value: unknown) => boolean[] | null;
7
- export declare const transformToDate: (value: unknown) => Date | null;
8
- export declare const transformToDateArray: (value: unknown) => Date[] | null;
9
- export type SortDirection = 'asc' | 'desc' | '';
10
- export interface Sort {
11
- active: string;
12
- direction: SortDirection;
13
- }
14
- export declare const transformToSort: (value: unknown) => Sort | null;
15
- export declare const transformToSortQueryParam: (value: unknown) => string | null;
@@ -1 +0,0 @@
1
- export * from './query-store';
@@ -1,31 +0,0 @@
1
- import { AnyQuery } from '../query';
2
- export declare class QueryStore {
3
- private _config?;
4
- private _garbageCollector;
5
- private _isInLowResourceMode;
6
- private _lastBlurTimestamp;
7
- private _storeChange$;
8
- private _queryCreated$;
9
- readonly storeChange$: import("rxjs").Observable<string>;
10
- readonly queryCreated$: import("rxjs").Observable<AnyQuery>;
11
- constructor(_config?: {
12
- enableChangeLogging?: boolean;
13
- enableGarbageCollectorLogging?: boolean;
14
- autoRefreshQueriesOnWindowFocus?: boolean;
15
- enableSmartPolling?: boolean;
16
- } | undefined);
17
- add(id: string, query: AnyQuery): void;
18
- get<T extends AnyQuery>(id: string): T | null;
19
- remove(id: string): void;
20
- forEach(callback: (value: AnyQuery, key: string) => void): void;
21
- refreshQueriesInUse(config?: {
22
- ignoreCacheValidity?: boolean;
23
- purgeUnused?: boolean;
24
- }): void;
25
- private _initSmartQueryHandling;
26
- private _logState;
27
- private _initGarbageCollector;
28
- private _stopGarbageCollector;
29
- private _runGarbageCollector;
30
- private _logGarbageCollector;
31
- }
@@ -1,3 +0,0 @@
1
- export * from './request';
2
- export * from './request.types';
3
- export * from './request.util';
@@ -1,3 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { RequestConfig, RequestEvent } from './request.types';
3
- export declare const request: <Response = unknown>(config: RequestConfig) => Observable<RequestEvent<Response>>;
@@ -1,131 +0,0 @@
1
- import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';
2
- export type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT' | 'PURGE' | 'LINK' | 'UNLINK' | 'GQL_QUERY' | 'GQL_MUTATE' | 'CUSTOM';
3
- export interface RequestError<Detail = unknown> {
4
- url: string;
5
- status: HttpStatusCode;
6
- statusText: string;
7
- detail: Detail;
8
- httpErrorResponse: HttpErrorResponse;
9
- }
10
- export type RequestHeaders = Record<string, string>;
11
- export type QueryParams = object;
12
- export type PathParams = Record<string, string | number>;
13
- export type CacheAdapterFn = (headers: RequestHeaders) => number | null;
14
- export type RequestHeadersMethodMap = {
15
- [M in Method]?: RequestHeaders;
16
- };
17
- export interface PartialXhrState {
18
- headers: RequestHeaders;
19
- status: number;
20
- statusText: string;
21
- url: string;
22
- }
23
- export interface RequestRetryFnConfig {
24
- error: RequestError;
25
- headers: RequestHeaders;
26
- currentRetryCount: number;
27
- }
28
- export interface RequestRetryFnResult {
29
- retry: boolean;
30
- delay?: number;
31
- }
32
- export type RequestRetryFn = (config: RequestRetryFnConfig) => RequestRetryFnResult;
33
- export interface RequestConfig {
34
- method: Method;
35
- urlWithParams: string;
36
- body?: unknown;
37
- reportProgress?: boolean;
38
- withCredentials?: boolean;
39
- responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
40
- headers?: RequestHeaders;
41
- cacheAdapter?: CacheAdapterFn;
42
- retryFn?: RequestRetryFn;
43
- }
44
- export type RequestProgress = {
45
- current: number;
46
- percentage?: number;
47
- total?: number;
48
- };
49
- export type RequestEvent<Response = unknown> = {
50
- type: 'start';
51
- headers: RequestHeaders;
52
- isRetry?: boolean;
53
- retryNumber?: number;
54
- retryDelay?: number;
55
- } | {
56
- type: 'delay-retry';
57
- headers: RequestHeaders;
58
- retryNumber: number;
59
- retryDelay: number;
60
- } | {
61
- type: 'download-progress';
62
- headers: RequestHeaders;
63
- progress: RequestProgress;
64
- partialText?: string;
65
- } | {
66
- type: 'upload-progress';
67
- headers: RequestHeaders;
68
- progress: RequestProgress;
69
- } | {
70
- type: 'success';
71
- headers: RequestHeaders;
72
- response: Response;
73
- expiresInTimestamp?: number;
74
- } | {
75
- type: 'failure';
76
- headers: RequestHeaders;
77
- error: RequestError;
78
- } | {
79
- type: 'cancel';
80
- headers: RequestHeaders;
81
- };
82
- export interface BuildQueryStringConfig {
83
- /**
84
- * Object notation to use for nested objects.
85
- *
86
- * @example
87
- * // dot notation
88
- * { foo: { bar: 'baz' } } => "foo.bar=baz"
89
- *
90
- * @example
91
- * // bracket notation
92
- * { foo: { bar: 'baz' } } => "foo[bar]=baz"
93
- *
94
- * @example
95
- * // json-stringify notation
96
- * { foo: { bar: 'baz' } } => "foo={\"bar\":\"baz\"}"
97
- *
98
- * @default 'bracket'
99
- */
100
- objectNotation?: 'dot' | 'bracket' | 'json-stringify';
101
- /**
102
- * Whether to write array indexes in bracket notation.
103
- *
104
- * @example
105
- * // true
106
- * { foo: ['bar', 'baz'] } => "foo[0]=bar&foo[1]=baz"
107
- *
108
- * @example
109
- * // false
110
- * { foo: ['bar', 'baz'] } => "foo[]=bar&foo[]=baz"
111
- *
112
- * @default false
113
- */
114
- writeArrayIndexes?: boolean;
115
- /**
116
- * A list of values that should be ignored when building the query string.
117
- *
118
- * Also have a look at `ignoredValuesFns`.
119
- *
120
- * @default [undefined, null, Infinity, -Infinity]
121
- */
122
- ignoredValues?: Array<unknown>;
123
- /**
124
- * A list of functions that should be used to determine whether a value should be ignored when building the query string.
125
- *
126
- * Also have a look at `ignoredValues`.
127
- *
128
- * @default [isNaN, isEmptyString]
129
- */
130
- ignoredValuesFns?: Array<(value: unknown) => boolean>;
131
- }
@@ -1,26 +0,0 @@
1
- import { AnyRoute } from '../query';
2
- import { BuildQueryStringConfig, Method, PathParams, QueryParams, RequestError, RequestHeaders, RequestRetryFn } from './request.types';
3
- export declare const isNaN: (value: unknown) => boolean;
4
- export declare const isEmptyString: (value: unknown) => boolean;
5
- export declare const isRequestError: <T = unknown>(error: unknown) => error is RequestError<T>;
6
- export declare const buildRoute: (options: {
7
- base: string;
8
- route: AnyRoute | null | undefined;
9
- pathParams?: PathParams;
10
- queryParams?: QueryParams;
11
- queryParamConfig?: BuildQueryStringConfig;
12
- }) => string;
13
- export declare const buildQueryString: (params: QueryParams, config?: BuildQueryStringConfig) => string | null;
14
- export declare const extractExpiresInSeconds: (headers: RequestHeaders) => number | null;
15
- export declare const buildTimestampFromSeconds: (seconds: number | null) => number | null;
16
- export declare const serializeBody: (body: unknown) => ArrayBuffer | URLSearchParams | Blob | FormData | string | null;
17
- export declare const transformMethod: (config: {
18
- method: Method;
19
- transferVia?: "GET" | "POST";
20
- }) => "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "TRACE" | "CONNECT" | "PURGE" | "LINK" | "UNLINK" | "CUSTOM";
21
- export declare const detectContentTypeHeader: (body: unknown) => string | null;
22
- export declare const hasHeader: (headers: RequestHeaders, header: string) => boolean;
23
- export declare const forEachHeader: (headers: RequestHeaders, callback: (value: string, key: string) => void) => void;
24
- export declare const parseAllXhrResponseHeaders: (xhr: XMLHttpRequest) => RequestHeaders;
25
- export declare const getResponseUrl: (xhr: XMLHttpRequest) => string | null;
26
- export declare const shouldRetryRequest: RequestRetryFn;
@@ -1,2 +0,0 @@
1
- export * from './symfony.types';
2
- export * from './symfony.utils';
@@ -1,19 +0,0 @@
1
- import { HttpStatusCode } from '@angular/common/http';
2
- export interface SymfonyErrorTrace {
3
- args: string[];
4
- class: string;
5
- file: string;
6
- function: string;
7
- line: number;
8
- namespace: string;
9
- short_class: string;
10
- type: string;
11
- }
12
- export interface SymfonyError {
13
- class: string;
14
- detail: string;
15
- status: HttpStatusCode;
16
- title: string;
17
- trace: SymfonyErrorTrace[];
18
- type: string;
19
- }
@@ -1,6 +0,0 @@
1
- import { FormViolationListView, FormViolationView } from '@ethlete/types';
2
- import { SymfonyError } from './symfony.types';
3
- export declare const isSymfonyError: (error: unknown) => error is SymfonyError;
4
- export declare const isSymfonyPagerfantaOutOfRangeError: (error: unknown) => error is SymfonyError;
5
- export declare const isSymfonyFormViolationListError: (error: unknown) => error is FormViolationListView;
6
- export declare const isSymfonyListError: (error: unknown) => error is FormViolationView[];
@@ -1,64 +0,0 @@
1
- import { CreateComputedOptions, Injector, Signal } from '@angular/core';
2
- import { ToObservableOptions, ToSignalOptions } from '@angular/core/rxjs-interop';
3
- import { Observable, Subscribable } from 'rxjs';
4
- import { AnyLegacyQuery } from '../experimental';
5
- import { AnyQuery, AnyQueryCollection, QueryOf, QueryState } from '../query';
6
- import { QueryDataOf } from '../query-creator';
7
- export interface QueryContainerConfig {
8
- /**
9
- * If `true`, the previous query will be aborted when a new query is pushed into the container.
10
- * @default true // Only if the request can be cached (GET, OPTIONS, HEAD and GQL_QUERY). Otherwise false.
11
- */
12
- abortPrevious?: boolean;
13
- /**
14
- * If `true`, the query will be aborted when the container is destroyed.
15
- * @default true // Only if the request can be cached (GET, OPTIONS, HEAD and GQL_QUERY). Otherwise false.
16
- */
17
- abortOnDestroy?: boolean;
18
- /**
19
- * If `true`, the previous polling will be stopped when a new query is pushed into the container.
20
- * @default true // Only if the query has no other dependents and the request can be cached (GET, OPTIONS, HEAD and GQL_QUERY). Otherwise false.
21
- */
22
- stopPreviousPolling?: boolean;
23
- }
24
- export interface QueryFilterConfig {
25
- /**
26
- * If `true`, the response will be cached until the next response is received or the query fails.
27
- * @default false
28
- */
29
- cacheResponse?: boolean;
30
- }
31
- export declare const addQueryContainerHandling: (obs: Observable<AnyQuery | AnyQuery[] | AnyLegacyQuery | AnyLegacyQuery[] | null>, valueFn: () => AnyQuery | AnyQuery[] | AnyLegacyQuery | AnyLegacyQuery[] | null | undefined, config?: QueryContainerConfig) => void;
32
- export declare function toQuerySignal<T extends AnyQuery | AnyLegacyQuery | null>(source: Observable<T> | Subscribable<T>): Signal<T | undefined>;
33
- export declare function toQuerySignal<T extends AnyQuery | AnyLegacyQuery | null>(source: Observable<T> | Subscribable<T>, options: NoInfer<ToSignalOptions<T | undefined>> & {
34
- initialValue?: undefined;
35
- requireSync?: false;
36
- } & QueryContainerConfig): Signal<T | undefined>;
37
- export declare function toQuerySignal<T extends AnyQuery | AnyLegacyQuery | null>(source: Observable<T> | Subscribable<T>, options: NoInfer<ToSignalOptions<T | null>> & {
38
- initialValue?: null;
39
- requireSync?: false;
40
- } & QueryContainerConfig): Signal<T | null>;
41
- export declare function toQuerySignal<T extends AnyQuery | AnyLegacyQuery | null>(source: Observable<T> | Subscribable<T>, options: NoInfer<ToSignalOptions<T>> & {
42
- initialValue?: undefined;
43
- requireSync: true;
44
- } & QueryContainerConfig): Signal<T>;
45
- export declare function toQuerySignal<T extends AnyQuery | AnyLegacyQuery | null, const U extends T>(source: Observable<T> | Subscribable<T>, options: NoInfer<ToSignalOptions<T | U>> & {
46
- initialValue: U;
47
- requireSync?: false;
48
- } & QueryContainerConfig): Signal<T | U>;
49
- export declare function effectComputed<T extends AnyQuery | AnyLegacyQuery | AnyQuery[] | AnyLegacyQuery[] | null>(computation: () => T, injector: Injector): Signal<T>;
50
- export declare function queryComputed<T extends AnyQuery | AnyLegacyQuery | null>(computation: () => T, options?: CreateComputedOptions<T> & QueryContainerConfig & ToObservableOptions): Signal<T>;
51
- /**
52
- * Creates a signal that will only be reactive until the first query is created.
53
- * All subsequent changes inside the computation will be ignored.
54
- */
55
- export declare function queryComputedTillTruthy<T extends AnyQuery | AnyLegacyQuery | null>(computation: () => T, options?: CreateComputedOptions<T> & QueryContainerConfig & ToObservableOptions): Signal<T | null>;
56
- export declare function queryArrayComputed<T extends AnyQuery[] | AnyLegacyQuery[] | null>(computation: () => T, options?: CreateComputedOptions<T> & QueryContainerConfig & ToObservableOptions): Signal<T>;
57
- export declare function toQuerySubject<T extends AnyQuery | AnyLegacyQuery | null>(source: Signal<T>, options?: ToObservableOptions & QueryContainerConfig): Observable<T>;
58
- export declare function queryStateSignal<T extends Signal<AnyQuery | AnyLegacyQuery | AnyQueryCollection | null>>(source: T, options?: QueryFilterConfig): import("@angular/core").WritableSignal<QueryState<QueryDataOf<QueryOf<ReturnType<T>>>> | null>;
59
- export type QueryStateSignal<T extends Signal<AnyQuery | AnyLegacyQuery | AnyQueryCollection | null>> = Signal<QueryDataOf<QueryOf<ReturnType<T>>> | null> & {
60
- reset: () => void;
61
- };
62
- export declare function queryStateResponseSignal<T extends Signal<AnyQuery | AnyLegacyQuery | AnyQueryCollection | null>>(source: T, options?: QueryFilterConfig): QueryStateSignal<T>;
63
- export declare function queryStateErrorSignal<T extends Signal<AnyQuery | AnyLegacyQuery | AnyQueryCollection | null>>(source: T): Signal<import("@ethlete/query").RequestError<unknown> | null>;
64
- export declare function queryStateLoadingSignal<T extends Signal<AnyQuery | AnyLegacyQuery | AnyQueryCollection | null>>(source: T): Signal<import("../query").Loading | null>;
@@ -1 +0,0 @@
1
- export declare const deepFreeze: <T extends Record<string, unknown>>(object: T) => T;