@effect-app/infra 2.6.1 → 2.7.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 (36) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/_cjs/services/Repository/legacy.cjs.map +1 -1
  3. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  4. package/_cjs/services/Store/service.cjs.map +1 -1
  5. package/_cjs/services/query/dsl.cjs +10 -11
  6. package/_cjs/services/query/dsl.cjs.map +1 -1
  7. package/_cjs/services/query/new-kid-interpreter.cjs +1 -0
  8. package/_cjs/services/query/new-kid-interpreter.cjs.map +1 -1
  9. package/dist/services/Operations.d.ts +3 -3
  10. package/dist/services/Repository/ext.d.ts +3 -3
  11. package/dist/services/Repository/legacy.d.ts +15 -15
  12. package/dist/services/Repository/legacy.d.ts.map +1 -1
  13. package/dist/services/Repository/legacy.js +1 -1
  14. package/dist/services/Repository/service.d.ts +10 -4
  15. package/dist/services/Repository/service.d.ts.map +1 -1
  16. package/dist/services/RepositoryBase.d.ts.map +1 -1
  17. package/dist/services/RepositoryBase.js +1 -1
  18. package/dist/services/Store/service.d.ts +6 -5
  19. package/dist/services/Store/service.d.ts.map +1 -1
  20. package/dist/services/Store/service.js +1 -1
  21. package/dist/services/query/dsl.d.ts +116 -58
  22. package/dist/services/query/dsl.d.ts.map +1 -1
  23. package/dist/services/query/dsl.js +12 -13
  24. package/dist/services/query/new-kid-interpreter.d.ts +2 -1
  25. package/dist/services/query/new-kid-interpreter.d.ts.map +1 -1
  26. package/dist/services/query/new-kid-interpreter.js +2 -1
  27. package/examples/query.ts +37 -11
  28. package/package.json +1 -1
  29. package/src/services/Repository/legacy.ts +12 -10
  30. package/src/services/Repository/service.ts +20 -12
  31. package/src/services/RepositoryBase.ts +4 -2
  32. package/src/services/Store/service.ts +6 -3
  33. package/src/services/query/dsl.ts +742 -315
  34. package/src/services/query/new-kid-interpreter.ts +10 -3
  35. package/test/dist/query.test.d.ts.map +1 -1
  36. package/test/query.test.ts +245 -11
@@ -4,16 +4,20 @@
4
4
  import type { FieldValues } from "@effect-app/infra/filter/types"
5
5
  import type { FieldPath, FieldPathValue } from "@effect-app/infra/filter/types/path/eager"
6
6
  import type { Ops } from "@effect-app/infra/services/Store/filterApi/query"
7
- import type { Option, Pipeable, S } from "effect-app"
8
- import { Data, flow } from "effect-app"
7
+ import type { Option, S } from "effect-app"
8
+ import { Data, flow, Pipeable } from "effect-app"
9
9
  import type { NonNegativeInt } from "effect-app/Schema"
10
10
  import type { Covariant } from "effect/Types"
11
11
 
12
- import { pipeArguments } from "effect/Pipeable"
13
-
14
- export type QAll<TFieldValues extends FieldValues, A = TFieldValues, R = never, TType extends "one" | "many" = "many"> =
12
+ export type QAll<
13
+ TFieldValues extends FieldValues,
14
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
15
+ A = TFieldValues,
16
+ R = never,
17
+ TType extends "one" | "many" = "many"
18
+ > =
15
19
  | Query<TFieldValues>
16
- | QueryWhere<TFieldValues>
20
+ | QueryWhere<TFieldValues, TFieldValuesRefined>
17
21
  | QueryEnd<TFieldValues, TType>
18
22
  | QueryProjection<TFieldValues, A, R>
19
23
 
@@ -22,6 +26,7 @@ export type QId = typeof QId
22
26
 
23
27
  export interface QueryTogether<
24
28
  out TFieldValues extends FieldValues,
29
+ out TFieldValuesRefined extends TFieldValues = TFieldValues,
25
30
  out T extends "initial" | "where" | "end" | "projection" = "initial",
26
31
  out A = TFieldValues,
27
32
  out R = never,
@@ -30,16 +35,29 @@ export interface QueryTogether<
30
35
  readonly [QId]: {
31
36
  readonly _TFieldValues: Covariant<TFieldValues>
32
37
  readonly _T: Covariant<T>
38
+ readonly _TFieldValuesRefined: Covariant<TFieldValuesRefined>
33
39
  readonly _A: Covariant<A>
34
40
  readonly _R: Covariant<R>
35
41
  readonly _TT: Covariant<TType>
36
42
  }
37
43
  }
38
44
 
39
- export type Query<TFieldValues extends FieldValues> = QueryTogether<TFieldValues, "initial">
40
- export type QueryWhere<TFieldValues extends FieldValues> = QueryTogether<TFieldValues, "where">
45
+ type ExtractTType<T> = T extends QueryTogether<any, any, any, any, any, infer TType> ? TType : never
46
+ // type ExtractFieldValues<T> = T extends QueryTogether<infer TFieldValues, any, any, any, any, any> ? TFieldValues : never
47
+ type ExtractFieldValuesRefined<T> = T extends QueryTogether<any, infer TFieldValuesRefined, any, any, any, any>
48
+ ? TFieldValuesRefined
49
+ : never
50
+
51
+ export type Query<TFieldValues extends FieldValues> = QueryTogether<TFieldValues, TFieldValues, "initial">
52
+ export type QueryWhere<TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues> =
53
+ QueryTogether<
54
+ TFieldValues,
55
+ TFieldValuesRefined,
56
+ "where"
57
+ >
41
58
 
42
59
  export type QueryEnd<TFieldValues extends FieldValues, TType extends "many" | "one" | "count" = "many"> = QueryTogether<
60
+ TFieldValues,
43
61
  TFieldValues,
44
62
  "end",
45
63
  TFieldValues,
@@ -53,6 +71,7 @@ export type QueryProjection<
53
71
  R = never,
54
72
  TType extends "many" | "one" | "count" = "many"
55
73
  > = QueryTogether<
74
+ TFieldValues,
56
75
  TFieldValues,
57
76
  "projection",
58
77
  A,
@@ -79,7 +98,7 @@ export class Initial<TFieldValues extends FieldValues> extends Data.TaggedClass(
79
98
  }
80
99
  pipe() {
81
100
  // eslint-disable-next-line prefer-rest-params
82
- return pipeArguments(this, arguments)
101
+ return Pipeable.pipeArguments(this, arguments)
83
102
  }
84
103
  }
85
104
 
@@ -91,7 +110,7 @@ export class Where<TFieldValues extends FieldValues> extends Data.TaggedClass("w
91
110
 
92
111
  pipe() {
93
112
  // eslint-disable-next-line prefer-rest-params
94
- return pipeArguments(this, arguments)
113
+ return Pipeable.pipeArguments(this, arguments)
95
114
  }
96
115
  }
97
116
 
@@ -102,7 +121,7 @@ export class And<TFieldValues extends FieldValues> extends Data.TaggedClass("and
102
121
  readonly [QId]!: any
103
122
  pipe() {
104
123
  // eslint-disable-next-line prefer-rest-params
105
- return pipeArguments(this, arguments)
124
+ return Pipeable.pipeArguments(this, arguments)
106
125
  }
107
126
  }
108
127
 
@@ -113,45 +132,45 @@ export class Or<TFieldValues extends FieldValues> extends Data.TaggedClass("or")
113
132
  readonly [QId]!: any
114
133
  pipe() {
115
134
  // eslint-disable-next-line prefer-rest-params
116
- return pipeArguments(this, arguments)
135
+ return Pipeable.pipeArguments(this, arguments)
117
136
  }
118
137
  }
119
138
 
120
139
  export class Page<TFieldValues extends FieldValues> extends Data.TaggedClass("page")<{
121
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>
140
+ current: Query<TFieldValues> | QueryWhere<any, TFieldValues> | QueryEnd<TFieldValues>
122
141
  take?: number | undefined
123
142
  skip?: number | undefined
124
143
  }> implements QueryEnd<TFieldValues> {
125
144
  readonly [QId]!: any
126
145
  pipe() {
127
146
  // eslint-disable-next-line prefer-rest-params
128
- return pipeArguments(this, arguments)
147
+ return Pipeable.pipeArguments(this, arguments)
129
148
  }
130
149
  }
131
150
 
132
151
  export class One<TFieldValues extends FieldValues> extends Data.TaggedClass("one")<{
133
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>
152
+ current: Query<TFieldValues> | QueryWhere<any, TFieldValues> | QueryEnd<TFieldValues>
134
153
  }> implements QueryEnd<TFieldValues, "one"> {
135
154
  readonly [QId]!: any
136
155
  pipe() {
137
156
  // eslint-disable-next-line prefer-rest-params
138
- return pipeArguments(this, arguments)
157
+ return Pipeable.pipeArguments(this, arguments)
139
158
  }
140
159
  }
141
160
 
142
161
  export class Count<TFieldValues extends FieldValues> extends Data.TaggedClass("count")<{
143
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>
162
+ current: Query<TFieldValues> | QueryWhere<any, TFieldValues> | QueryEnd<TFieldValues>
144
163
  }> implements QueryEnd<TFieldValues, "count"> {
145
164
  readonly [QId]!: any
146
165
  pipe() {
147
166
  // eslint-disable-next-line prefer-rest-params
148
- return pipeArguments(this, arguments)
167
+ return Pipeable.pipeArguments(this, arguments)
149
168
  }
150
169
  }
151
170
 
152
171
  export class Order<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>>
153
172
  extends Data.TaggedClass("order")<{
154
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>
173
+ current: Query<TFieldValues> | QueryWhere<any, TFieldValues> | QueryEnd<TFieldValues>
155
174
  field: TFieldName
156
175
  direction: "ASC" | "DESC"
157
176
  }>
@@ -160,13 +179,13 @@ export class Order<TFieldValues extends FieldValues, TFieldName extends FieldPat
160
179
  readonly [QId]!: any
161
180
  pipe() {
162
181
  // eslint-disable-next-line prefer-rest-params
163
- return pipeArguments(this, arguments)
182
+ return Pipeable.pipeArguments(this, arguments)
164
183
  }
165
184
  }
166
185
 
167
186
  export class Project<A, TFieldValues extends FieldValues, R, TType extends "one" | "many" = "many">
168
187
  extends Data.TaggedClass("project")<{
169
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues, TType>
188
+ current: Query<TFieldValues> | QueryWhere<any, TFieldValues> | QueryEnd<TFieldValues, TType>
170
189
  schema: S.Schema<A, TFieldValues, R>
171
190
  mode: "collect" | "project" | "transform"
172
191
  }>
@@ -175,7 +194,7 @@ export class Project<A, TFieldValues extends FieldValues, R, TType extends "one"
175
194
  readonly [QId]!: any
176
195
  pipe() {
177
196
  // eslint-disable-next-line prefer-rest-params
178
- return pipeArguments(this, arguments)
197
+ return Pipeable.pipeArguments(this, arguments)
179
198
  }
180
199
  }
181
200
 
@@ -184,42 +203,54 @@ export const make: <TFieldValues extends FieldValues>() => Query<TFieldValues> =
184
203
  export const where: FilterWhere = (...operation: any[]) => (current: any) =>
185
204
  new Where({ current, operation: typeof operation[0] === "function" ? flow(...operation as [any]) : operation } as any)
186
205
 
187
- export const and: FilterContinuation = (...operation: any[]) => (current: any) =>
206
+ export const and: FilterContinuationAnd = (...operation: any[]) => (current: any) =>
188
207
  new And({ current, operation: typeof operation[0] === "function" ? flow(...operation as [any]) : operation } as any)
189
208
 
190
- export const or: FilterContinuation = (...operation: any[]) => (current: any) =>
209
+ export const or: FilterContinuationOr = (...operation: any[]) => (current: any) =>
191
210
  new Or({ current, operation: typeof operation[0] === "function" ? flow(...operation as [any]) : operation } as any)
192
211
 
193
- export const order: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>>(
194
- field: TFieldName,
195
- direction?: "ASC" | "DESC"
196
- ) => (current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>) => QueryEnd<TFieldValues> =
197
- (field, direction = "ASC") => (current) => new Order({ current, field, direction })
198
-
199
- export const page: <TFieldValues extends FieldValues>(
200
- page: { skip?: number; take?: number }
201
- ) => (current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>) => QueryEnd<TFieldValues> =
202
- ({ skip, take }) => (current) =>
203
- new Page({
204
- current,
205
- take,
206
- skip
207
- })
208
-
209
- export const one: <TFieldValues extends FieldValues>(
210
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues>
211
- ) => QueryEnd<TFieldValues, "one"> = (current) =>
212
+ export const order: {
213
+ <
214
+ Q extends Query<any> | QueryWhere<any, any> | QueryEnd<any>
215
+ >(
216
+ field: FieldPath<ExtractFieldValuesRefined<Q>>,
217
+ direction?: "ASC" | "DESC"
218
+ ): (
219
+ current: Q
220
+ ) => QueryEnd<ExtractFieldValuesRefined<Q>>
221
+ } = (field, direction = "ASC") => (current) => new Order({ current, field: field as any, direction })
222
+
223
+ export const page: {
224
+ (
225
+ page: { skip?: number; take?: number }
226
+ ): <Q extends Query<any> | QueryWhere<any, any> | QueryEnd<any>>(
227
+ current: Q
228
+ ) => QueryEnd<ExtractFieldValuesRefined<Q>>
229
+ } = ({ skip, take }) => (current) =>
230
+ new Page({
231
+ current,
232
+ take,
233
+ skip
234
+ })
235
+
236
+ export const one: {
237
+ <Q extends Query<any> | QueryWhere<any, any> | QueryEnd<any>>(
238
+ current: Q
239
+ ): QueryEnd<ExtractFieldValuesRefined<Q>, "one">
240
+ } = (current) =>
212
241
  new One({
213
242
  current
214
243
  })
215
244
 
216
245
  // TODO: implement count like one instead? or should we change schema projection to work with arrays, so we can count the elements?
217
246
  // no it's better to implement a distinct count so that the implementation can be optimised per adapter.
218
- export const count: <
219
- TFieldValues extends FieldValues
220
- >(
221
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues, "many">
222
- ) => QueryProjection<TFieldValues, NonNegativeInt, never, "count"> = (current) =>
247
+ export const count: {
248
+ <
249
+ Q extends Query<any> | QueryWhere<any, any> | QueryEnd<any>
250
+ >(
251
+ current: Q
252
+ ): QueryProjection<ExtractFieldValuesRefined<Q>, NonNegativeInt, never, "count">
253
+ } = (current) =>
223
254
  // new Project({ current: current as any, /* TODO: why */ schema: S.Struct({ id: S.unknown }) })
224
255
  new Count({ current })
225
256
 
@@ -233,37 +264,38 @@ export const count: <
233
264
 
234
265
  export const project: {
235
266
  <
236
- TFieldValues extends FieldValues,
237
- A = FieldValues,
238
- R = never,
239
- TType extends "one" | "many" = "many"
267
+ Q extends Query<any> | QueryWhere<any, any> | QueryEnd<any, "one" | "many">,
268
+ I extends Partial<ExtractFieldValuesRefined<Q>> = ExtractFieldValuesRefined<Q>,
269
+ A = ExtractFieldValuesRefined<Q>,
270
+ R = never
240
271
  >(
241
- schema: S.Schema<Option<A>, TFieldValues, R>,
272
+ schema: S.Schema<Option<A>, { [K in keyof I & keyof ExtractFieldValuesRefined<Q>]: I[K] }, R>,
242
273
  mode: "collect"
243
274
  ): (
244
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues, TType>
245
- ) => QueryProjection<TFieldValues, A, R, TType>
275
+ current: Q
276
+ ) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>>
277
+
246
278
  <
247
- TFieldValues extends FieldValues,
248
- A = FieldValues,
249
- R = never,
250
- TType extends "one" | "many" = "many"
279
+ Q extends Query<any> | QueryWhere<any, any> | QueryEnd<any, "one" | "many">,
280
+ I extends Partial<ExtractFieldValuesRefined<Q>> = ExtractFieldValuesRefined<Q>,
281
+ A = ExtractFieldValuesRefined<Q>,
282
+ R = never
251
283
  >(
252
- schema: S.Schema<A, TFieldValues, R>,
284
+ schema: S.Schema<A, { [K in keyof I & keyof ExtractFieldValuesRefined<Q>]: I[K] }, R>,
253
285
  mode: "project"
254
286
  ): (
255
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues, TType>
256
- ) => QueryProjection<TFieldValues, A, R, TType>
287
+ current: Q
288
+ ) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>>
257
289
  <
258
- TFieldValues extends FieldValues,
259
- A = FieldValues,
260
- R = never,
261
- TType extends "one" | "many" = "many"
290
+ Q extends Query<any> | QueryWhere<any, any> | QueryEnd<any, "one" | "many">,
291
+ I extends Partial<ExtractFieldValuesRefined<Q>> = ExtractFieldValuesRefined<Q>,
292
+ A = ExtractFieldValuesRefined<Q>,
293
+ R = never
262
294
  >(
263
- schema: S.Schema<A, TFieldValues, R>
295
+ schema: S.Schema<A, { [K in keyof I & keyof ExtractFieldValuesRefined<Q>]: I[K] }, R>
264
296
  ): (
265
- current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues, TType>
266
- ) => QueryProjection<TFieldValues, A, R, TType>
297
+ current: Q
298
+ ) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>>
267
299
  } = (schema: any, mode = "transform") => (current: any) => new Project({ current, /* TODO: why */ schema, mode } as any)
268
300
 
269
301
  export type FilterWheres = {
@@ -277,6 +309,17 @@ export type FilterWheres = {
277
309
  ): (
278
310
  current: Query<TFieldValues>
279
311
  ) => QueryWhere<TFieldValues>
312
+ <
313
+ TFieldValues extends FieldValues,
314
+ TFieldName extends FieldPath<TFieldValues>,
315
+ const V extends FieldPathValue<TFieldValues, TFieldName>
316
+ >(
317
+ path: TFieldName,
318
+ op: "neq",
319
+ value: V
320
+ ): (
321
+ current: Query<TFieldValues>
322
+ ) => QueryWhere<TFieldValues, TFieldName extends "_tag" ? Exclude<TFieldValues, { _tag: V }> : TFieldValues>
280
323
  <
281
324
  TFieldValues extends FieldValues,
282
325
  TFieldName extends FieldPath<TFieldValues>,
@@ -354,120 +397,151 @@ export type FilterWheres = {
354
397
  }
355
398
 
356
399
  export type FilterWhere =
400
+ // the one below should take care of this case as well
401
+ // & {
402
+ // <
403
+ // TFieldValues extends FieldValues,
404
+ // TFieldName extends FieldPath<TFieldValues>,
405
+ // const V extends FieldPathValue<TFieldValues, TFieldName>
406
+ // >(
407
+ // path: TFieldName,
408
+ // value: V
409
+ // ): (
410
+ // current: Query<TFieldValues>
411
+ // ) => QueryWhere<TFieldValues, TFieldName extends "_tag" ? Extract<TFieldValues, { _tag: V }> : TFieldValues>
412
+ // }
413
+ & {
414
+ <
415
+ TFieldValues extends FieldValues,
416
+ const TFieldName extends FieldPath<TFieldValues>,
417
+ const V extends FieldPathValue<TFieldValues, TFieldName>
418
+ >(
419
+ path: TFieldName,
420
+ value: V
421
+ ): (
422
+ current: Query<TFieldValues>
423
+ ) => QueryWhere<
424
+ TFieldValues,
425
+ // TFieldValues[TFieldName] must be a union of string literals to let the refinement work
426
+ string extends TFieldValues[TFieldName] ? TFieldValues
427
+ : TFieldValues[TFieldName] extends string ? Extract<TFieldValues, { [K in TFieldName]: V }>
428
+ : TFieldValues
429
+ >
430
+ }
357
431
  & {
358
- <TFieldValues extends FieldValues>(
359
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
360
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
361
-
362
- <TFieldValues extends FieldValues>(
363
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
364
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
365
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
366
-
367
- <TFieldValues extends FieldValues>(
368
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
369
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
370
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
371
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
372
-
373
- <TFieldValues extends FieldValues>(
374
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
375
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
376
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
377
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
378
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
379
-
380
- <TFieldValues extends FieldValues>(
381
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
382
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
383
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
384
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
385
- ff: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
386
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
387
- <TFieldValues extends FieldValues>(
388
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
389
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
390
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
391
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
392
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
393
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
394
- <TFieldValues extends FieldValues>(
395
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
396
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
397
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
398
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
399
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
400
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
401
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
402
- <TFieldValues extends FieldValues>(
403
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
404
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
405
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
406
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
407
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
408
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
409
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
410
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
411
- <TFieldValues extends FieldValues>(
412
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
413
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
414
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
415
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
416
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
417
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
418
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
419
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
420
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
421
- <TFieldValues extends FieldValues>(
422
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
423
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
424
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
425
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
426
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
427
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
428
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
429
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
430
- fk: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
431
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
432
- <TFieldValues extends FieldValues>(
433
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
434
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
435
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
436
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
437
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
438
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
439
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
440
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
441
- fk: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
442
- fl: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
443
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
444
- <TFieldValues extends FieldValues>(
445
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
446
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
447
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
448
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
449
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
450
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
451
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
452
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
453
- fk: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
454
- fl: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
455
- fm: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
456
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
457
- <TFieldValues extends FieldValues>(
458
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
459
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
460
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
461
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
462
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
463
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
464
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
465
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
466
- fk: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
467
- fl: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
468
- fm: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
469
- fn: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
470
- ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
432
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
433
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
434
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
435
+
436
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
437
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
438
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
439
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
440
+
441
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
442
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
443
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
444
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
445
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
446
+
447
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
448
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
449
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
450
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
451
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
452
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
453
+
454
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
455
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
456
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
457
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
458
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
459
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
460
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
461
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
462
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
463
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
464
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
465
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
466
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
467
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
468
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
469
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
470
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
471
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
472
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
473
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
474
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
475
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
476
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
477
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
478
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
479
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
480
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
481
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
482
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
483
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
484
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
485
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
486
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
487
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
488
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
489
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
490
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
491
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
492
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
493
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
494
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
495
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
496
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
497
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
498
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
499
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
500
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
501
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
502
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
503
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
504
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
505
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
506
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
507
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
508
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
509
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
510
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
511
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
512
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
513
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
514
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
515
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
516
+ fl: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
517
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
518
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
519
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
520
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
521
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
522
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
523
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
524
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
525
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
526
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
527
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
528
+ fl: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
529
+ fm: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
530
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
531
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
532
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
533
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
534
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
535
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
536
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
537
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
538
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
539
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
540
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
541
+ fl: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
542
+ fm: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
543
+ fn: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
544
+ ): (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
471
545
  }
472
546
  & {
473
547
  <
@@ -575,13 +649,14 @@ export type FilterContinuations = {
575
649
  <
576
650
  TFieldValues extends FieldValues,
577
651
  TFieldName extends FieldPath<TFieldValues>,
578
- V extends FieldPathValue<TFieldValues, TFieldName>
652
+ V extends FieldPathValue<TFieldValues, TFieldName>,
653
+ TFieldValuesRefined extends TFieldValues = TFieldValues
579
654
  >(
580
655
  path: TFieldName,
581
656
  value: V
582
657
  ): (
583
- current: QueryWhere<TFieldValues>
584
- ) => QueryWhere<TFieldValues>
658
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
659
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined>
585
660
  // breaks flow pipe type inference
586
661
  // <
587
662
  // TFieldValues extends FieldValues,
@@ -597,29 +672,32 @@ export type FilterContinuations = {
597
672
  <
598
673
  TFieldValues extends FieldValues,
599
674
  TFieldName extends FieldPath<TFieldValues>,
600
- V extends FieldPathValue<TFieldValues, TFieldName>
675
+ V extends FieldPathValue<TFieldValues, TFieldName>,
676
+ TFieldValuesRefined extends TFieldValues = TFieldValues
601
677
  >(
602
678
  path: TFieldName,
603
679
  op: "gt" | "gte" | "lt" | "lte" | "neq",
604
680
  value: V // only numbers?
605
681
  ): (
606
- current: QueryWhere<TFieldValues>
607
- ) => QueryWhere<TFieldValues>
682
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
683
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined>
608
684
  <
609
685
  TFieldValues extends FieldValues,
610
686
  TFieldName extends FieldPath<TFieldValues>,
611
- V extends string
687
+ V extends string,
688
+ TFieldValuesRefined extends TFieldValues = TFieldValues
612
689
  >(
613
690
  path: TFieldName,
614
691
  op: "startsWith" | "endsWith" | "contains" | "notContains" | "notStartsWith" | "notEndsWith",
615
692
  value: V
616
693
  ): (
617
- current: QueryWhere<TFieldValues>
618
- ) => QueryWhere<TFieldValues>
694
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
695
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined>
619
696
  <
620
697
  TFieldValues extends FieldValues,
621
698
  TFieldName extends FieldPath<TFieldValues>,
622
- V extends FieldPathValue<TFieldValues, TFieldName>
699
+ V extends FieldPathValue<TFieldValues, TFieldName>,
700
+ TFieldValuesRefined extends TFieldValues = TFieldValues
623
701
  >(
624
702
  path: TFieldName,
625
703
  op:
@@ -627,12 +705,13 @@ export type FilterContinuations = {
627
705
  | "notIn",
628
706
  value: readonly V[]
629
707
  ): (
630
- current: QueryWhere<TFieldValues>
631
- ) => QueryWhere<TFieldValues>
708
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
709
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined>
632
710
  <
633
711
  TFieldValues extends FieldValues,
634
712
  TFieldName extends FieldPath<TFieldValues>,
635
- V extends FieldPathValue<TFieldValues, TFieldName>
713
+ V extends FieldPathValue<TFieldValues, TFieldName>,
714
+ TFieldValuesRefined extends TFieldValues = TFieldValues
636
715
  >(
637
716
  path: TFieldName,
638
717
  op:
@@ -640,12 +719,13 @@ export type FilterContinuations = {
640
719
  | "notIncludes",
641
720
  value: GetArV<V>
642
721
  ): (
643
- current: QueryWhere<TFieldValues>
644
- ) => QueryWhere<TFieldValues>
722
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
723
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined>
645
724
  <
646
725
  TFieldValues extends FieldValues,
647
726
  TFieldName extends FieldPath<TFieldValues>,
648
- V extends FieldPathValue<TFieldValues, TFieldName>
727
+ V extends FieldPathValue<TFieldValues, TFieldName>,
728
+ TFieldValuesRefined extends TFieldValues = TFieldValues
649
729
  >(
650
730
  path: TFieldName,
651
731
  op:
@@ -655,126 +735,414 @@ export type FilterContinuations = {
655
735
  | "notIncludes-all",
656
736
  value: readonly GetArV<V>[]
657
737
  ): (
658
- current: QueryWhere<TFieldValues>
659
- ) => QueryWhere<TFieldValues>
738
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
739
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined>
660
740
  }
661
741
 
662
742
  type GetArV<T> = T extends readonly (infer R)[] ? R : never
663
743
 
664
744
  export type FilterContinuationClosure = {
665
- <TFieldValues extends FieldValues>(
666
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>
667
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
668
-
669
- <TFieldValues extends FieldValues>(
670
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
671
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
672
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
673
-
674
- <TFieldValues extends FieldValues>(
675
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
676
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
677
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
678
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
679
-
680
- <TFieldValues extends FieldValues>(
681
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
682
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
683
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
684
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
685
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
686
-
687
- <TFieldValues extends FieldValues>(
688
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
689
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
690
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
691
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
692
- ff: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
693
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
694
- <TFieldValues extends FieldValues>(
695
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
696
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
697
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
698
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
699
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
700
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
701
- <TFieldValues extends FieldValues>(
702
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
703
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
704
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
705
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
706
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
707
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
708
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
709
- <TFieldValues extends FieldValues>(
710
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
711
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
712
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
713
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
714
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
715
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
716
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
717
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
718
- <TFieldValues extends FieldValues>(
719
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
720
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
721
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
722
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
723
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
724
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
725
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
726
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
727
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
728
- <TFieldValues extends FieldValues>(
729
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
730
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
731
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
732
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
733
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
734
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
735
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
736
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
737
- fk: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
738
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
739
- <TFieldValues extends FieldValues>(
740
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
741
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
742
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
743
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
744
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
745
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
746
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
747
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
748
- fk: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
749
- fl: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
750
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
751
- <TFieldValues extends FieldValues>(
752
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
753
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
754
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
755
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
756
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
757
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
758
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
759
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
760
- fk: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
761
- fl: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
762
- fm: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
763
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
764
- <TFieldValues extends FieldValues>(
765
- fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues>,
766
- fc: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
767
- fd: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
768
- fe: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
769
- fg: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
770
- fh: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
771
- fi: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
772
- fj: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
773
- fk: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
774
- fl: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
775
- fm: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>,
776
- fn: (query: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
777
- ): (current: QueryWhere<TFieldValues>) => QueryWhere<TFieldValues>
745
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
746
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>
747
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
748
+
749
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
750
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
751
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
752
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
753
+
754
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
755
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
756
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
757
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
758
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
759
+
760
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
761
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
762
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
763
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
764
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
765
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
766
+
767
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
768
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
769
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
770
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
771
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
772
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
773
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
774
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
775
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
776
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
777
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
778
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
779
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
780
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
781
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
782
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
783
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
784
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
785
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
786
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
787
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
788
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
789
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
790
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
791
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
792
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
793
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
794
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
795
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
796
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
797
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
798
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
799
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
800
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
801
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
802
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
803
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
804
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
805
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
806
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
807
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
808
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
809
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
810
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
811
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
812
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
813
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
814
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
815
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
816
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
817
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
818
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
819
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
820
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
821
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
822
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
823
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
824
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
825
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
826
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
827
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
828
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
829
+ fl: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
830
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
831
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
832
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
833
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
834
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
835
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
836
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
837
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
838
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
839
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
840
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
841
+ fl: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
842
+ fm: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
843
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
844
+ <TFieldValues extends FieldValues, TFieldValuesRefined extends TFieldValues = TFieldValues>(
845
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
846
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
847
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
848
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
849
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
850
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
851
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
852
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
853
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
854
+ fl: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
855
+ fm: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>,
856
+ fn: (query: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
857
+ ): (current: QueryWhere<TFieldValues, TFieldValuesRefined>) => QueryWhere<TFieldValues, TFieldValuesRefined>
858
+ }
859
+
860
+ export type FilterContinuationClosureOr = {
861
+ <
862
+ TFieldValues extends FieldValues,
863
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
864
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues
865
+ >(
866
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>
867
+ ): (
868
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
869
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2>
870
+
871
+ <
872
+ TFieldValues extends FieldValues,
873
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
874
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
875
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues
876
+ >(
877
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
878
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>
879
+ ): (
880
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
881
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined3>
882
+
883
+ <
884
+ TFieldValues extends FieldValues,
885
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
886
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
887
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
888
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues
889
+ >(
890
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
891
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
892
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>
893
+ ): (
894
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
895
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined4>
896
+
897
+ <
898
+ TFieldValues extends FieldValues,
899
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
900
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
901
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
902
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
903
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues
904
+ >(
905
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
906
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
907
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
908
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>
909
+ ): (
910
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
911
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined5>
912
+
913
+ <
914
+ TFieldValues extends FieldValues,
915
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
916
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
917
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
918
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
919
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues,
920
+ TFieldValuesRefined6 extends TFieldValues = TFieldValues
921
+ >(
922
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
923
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
924
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
925
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>,
926
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined5>) => QueryWhere<TFieldValues, TFieldValuesRefined6>
927
+ ): (
928
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
929
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined6>
930
+
931
+ <
932
+ TFieldValues extends FieldValues,
933
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
934
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
935
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
936
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
937
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues,
938
+ TFieldValuesRefined6 extends TFieldValues = TFieldValues,
939
+ TFieldValuesRefined7 extends TFieldValues = TFieldValues
940
+ >(
941
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
942
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
943
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
944
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>,
945
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined5>) => QueryWhere<TFieldValues, TFieldValuesRefined6>,
946
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined6>) => QueryWhere<TFieldValues, TFieldValuesRefined7>
947
+ ): (
948
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
949
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined7>
950
+
951
+ <
952
+ TFieldValues extends FieldValues,
953
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
954
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
955
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
956
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
957
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues,
958
+ TFieldValuesRefined6 extends TFieldValues = TFieldValues,
959
+ TFieldValuesRefined7 extends TFieldValues = TFieldValues,
960
+ TFieldValuesRefined8 extends TFieldValues = TFieldValues
961
+ >(
962
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
963
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
964
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
965
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>,
966
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined5>) => QueryWhere<TFieldValues, TFieldValuesRefined6>,
967
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined6>) => QueryWhere<TFieldValues, TFieldValuesRefined7>,
968
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined7>) => QueryWhere<TFieldValues, TFieldValuesRefined8>
969
+ ): (
970
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
971
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2>
972
+
973
+ <
974
+ TFieldValues extends FieldValues,
975
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
976
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
977
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
978
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
979
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues,
980
+ TFieldValuesRefined6 extends TFieldValues = TFieldValues,
981
+ TFieldValuesRefined7 extends TFieldValues = TFieldValues,
982
+ TFieldValuesRefined8 extends TFieldValues = TFieldValues,
983
+ TFieldValuesRefined9 extends TFieldValues = TFieldValues
984
+ >(
985
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
986
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
987
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
988
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>,
989
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined5>) => QueryWhere<TFieldValues, TFieldValuesRefined6>,
990
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined6>) => QueryWhere<TFieldValues, TFieldValuesRefined7>,
991
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined7>) => QueryWhere<TFieldValues, TFieldValuesRefined8>,
992
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined8>) => QueryWhere<TFieldValues, TFieldValuesRefined9>
993
+ ): (
994
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
995
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined9>
996
+
997
+ <
998
+ TFieldValues extends FieldValues,
999
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
1000
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
1001
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
1002
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
1003
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues,
1004
+ TFieldValuesRefined6 extends TFieldValues = TFieldValues,
1005
+ TFieldValuesRefined7 extends TFieldValues = TFieldValues,
1006
+ TFieldValuesRefined8 extends TFieldValues = TFieldValues,
1007
+ TFieldValuesRefined9 extends TFieldValues = TFieldValues,
1008
+ TFieldValuesRefined10 extends TFieldValues = TFieldValues
1009
+ >(
1010
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
1011
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
1012
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
1013
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>,
1014
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined5>) => QueryWhere<TFieldValues, TFieldValuesRefined6>,
1015
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined6>) => QueryWhere<TFieldValues, TFieldValuesRefined7>,
1016
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined7>) => QueryWhere<TFieldValues, TFieldValuesRefined8>,
1017
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined8>) => QueryWhere<TFieldValues, TFieldValuesRefined9>,
1018
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined9>) => QueryWhere<TFieldValues, TFieldValuesRefined10>
1019
+ ): (
1020
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
1021
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined10>
1022
+
1023
+ <
1024
+ TFieldValues extends FieldValues,
1025
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
1026
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
1027
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
1028
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
1029
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues,
1030
+ TFieldValuesRefined6 extends TFieldValues = TFieldValues,
1031
+ TFieldValuesRefined7 extends TFieldValues = TFieldValues,
1032
+ TFieldValuesRefined8 extends TFieldValues = TFieldValues,
1033
+ TFieldValuesRefined9 extends TFieldValues = TFieldValues,
1034
+ TFieldValuesRefined10 extends TFieldValues = TFieldValues,
1035
+ TFieldValuesRefined11 extends TFieldValues = TFieldValues
1036
+ >(
1037
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
1038
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
1039
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
1040
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>,
1041
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined5>) => QueryWhere<TFieldValues, TFieldValuesRefined6>,
1042
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined6>) => QueryWhere<TFieldValues, TFieldValuesRefined7>,
1043
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined7>) => QueryWhere<TFieldValues, TFieldValuesRefined8>,
1044
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined8>) => QueryWhere<TFieldValues, TFieldValuesRefined9>,
1045
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined9>) => QueryWhere<TFieldValues, TFieldValuesRefined10>,
1046
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined10>) => QueryWhere<TFieldValues, TFieldValuesRefined11>
1047
+ ): (
1048
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
1049
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined11>
1050
+
1051
+ <
1052
+ TFieldValues extends FieldValues,
1053
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
1054
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
1055
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
1056
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
1057
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues,
1058
+ TFieldValuesRefined6 extends TFieldValues = TFieldValues,
1059
+ TFieldValuesRefined7 extends TFieldValues = TFieldValues,
1060
+ TFieldValuesRefined8 extends TFieldValues = TFieldValues,
1061
+ TFieldValuesRefined9 extends TFieldValues = TFieldValues,
1062
+ TFieldValuesRefined10 extends TFieldValues = TFieldValues,
1063
+ TFieldValuesRefined11 extends TFieldValues = TFieldValues,
1064
+ TFieldValuesRefined12 extends TFieldValues = TFieldValues
1065
+ >(
1066
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
1067
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
1068
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
1069
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>,
1070
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined5>) => QueryWhere<TFieldValues, TFieldValuesRefined6>,
1071
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined6>) => QueryWhere<TFieldValues, TFieldValuesRefined7>,
1072
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined7>) => QueryWhere<TFieldValues, TFieldValuesRefined8>,
1073
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined8>) => QueryWhere<TFieldValues, TFieldValuesRefined9>,
1074
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined9>) => QueryWhere<TFieldValues, TFieldValuesRefined10>,
1075
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined10>) => QueryWhere<TFieldValues, TFieldValuesRefined11>,
1076
+ fl: (query: QueryWhere<TFieldValues, TFieldValuesRefined11>) => QueryWhere<TFieldValues, TFieldValuesRefined12>
1077
+ ): (
1078
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
1079
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined12>
1080
+
1081
+ <
1082
+ TFieldValues extends FieldValues,
1083
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
1084
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
1085
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
1086
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
1087
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues,
1088
+ TFieldValuesRefined6 extends TFieldValues = TFieldValues,
1089
+ TFieldValuesRefined7 extends TFieldValues = TFieldValues,
1090
+ TFieldValuesRefined8 extends TFieldValues = TFieldValues,
1091
+ TFieldValuesRefined9 extends TFieldValues = TFieldValues,
1092
+ TFieldValuesRefined10 extends TFieldValues = TFieldValues,
1093
+ TFieldValuesRefined11 extends TFieldValues = TFieldValues,
1094
+ TFieldValuesRefined12 extends TFieldValues = TFieldValues,
1095
+ TFieldValuesRefined13 extends TFieldValues = TFieldValues
1096
+ >(
1097
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
1098
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
1099
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
1100
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>,
1101
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined5>) => QueryWhere<TFieldValues, TFieldValuesRefined6>,
1102
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined6>) => QueryWhere<TFieldValues, TFieldValuesRefined7>,
1103
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined7>) => QueryWhere<TFieldValues, TFieldValuesRefined8>,
1104
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined8>) => QueryWhere<TFieldValues, TFieldValuesRefined9>,
1105
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined9>) => QueryWhere<TFieldValues, TFieldValuesRefined10>,
1106
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined10>) => QueryWhere<TFieldValues, TFieldValuesRefined11>,
1107
+ fl: (query: QueryWhere<TFieldValues, TFieldValuesRefined11>) => QueryWhere<TFieldValues, TFieldValuesRefined12>,
1108
+ fm: (query: QueryWhere<TFieldValues, TFieldValuesRefined12>) => QueryWhere<TFieldValues, TFieldValuesRefined13>
1109
+ ): (
1110
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
1111
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined13>
1112
+
1113
+ <
1114
+ TFieldValues extends FieldValues,
1115
+ TFieldValuesRefined extends TFieldValues = TFieldValues,
1116
+ TFieldValuesRefined2 extends TFieldValues = TFieldValues,
1117
+ TFieldValuesRefined3 extends TFieldValues = TFieldValues,
1118
+ TFieldValuesRefined4 extends TFieldValues = TFieldValues,
1119
+ TFieldValuesRefined5 extends TFieldValues = TFieldValues,
1120
+ TFieldValuesRefined6 extends TFieldValues = TFieldValues,
1121
+ TFieldValuesRefined7 extends TFieldValues = TFieldValues,
1122
+ TFieldValuesRefined8 extends TFieldValues = TFieldValues,
1123
+ TFieldValuesRefined9 extends TFieldValues = TFieldValues,
1124
+ TFieldValuesRefined10 extends TFieldValues = TFieldValues,
1125
+ TFieldValuesRefined11 extends TFieldValues = TFieldValues,
1126
+ TFieldValuesRefined12 extends TFieldValues = TFieldValues,
1127
+ TFieldValuesRefined13 extends TFieldValues = TFieldValues,
1128
+ TFieldValuesRefined14 extends TFieldValues = TFieldValues
1129
+ >(
1130
+ fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2>,
1131
+ fc: (query: QueryWhere<TFieldValues, TFieldValuesRefined2>) => QueryWhere<TFieldValues, TFieldValuesRefined3>,
1132
+ fd: (query: QueryWhere<TFieldValues, TFieldValuesRefined3>) => QueryWhere<TFieldValues, TFieldValuesRefined4>,
1133
+ fe: (query: QueryWhere<TFieldValues, TFieldValuesRefined4>) => QueryWhere<TFieldValues, TFieldValuesRefined5>,
1134
+ ff: (query: QueryWhere<TFieldValues, TFieldValuesRefined5>) => QueryWhere<TFieldValues, TFieldValuesRefined6>,
1135
+ fg: (query: QueryWhere<TFieldValues, TFieldValuesRefined6>) => QueryWhere<TFieldValues, TFieldValuesRefined7>,
1136
+ fh: (query: QueryWhere<TFieldValues, TFieldValuesRefined7>) => QueryWhere<TFieldValues, TFieldValuesRefined8>,
1137
+ fi: (query: QueryWhere<TFieldValues, TFieldValuesRefined8>) => QueryWhere<TFieldValues, TFieldValuesRefined9>,
1138
+ fj: (query: QueryWhere<TFieldValues, TFieldValuesRefined9>) => QueryWhere<TFieldValues, TFieldValuesRefined10>,
1139
+ fk: (query: QueryWhere<TFieldValues, TFieldValuesRefined10>) => QueryWhere<TFieldValues, TFieldValuesRefined11>,
1140
+ fl: (query: QueryWhere<TFieldValues, TFieldValuesRefined11>) => QueryWhere<TFieldValues, TFieldValuesRefined12>,
1141
+ fm: (query: QueryWhere<TFieldValues, TFieldValuesRefined12>) => QueryWhere<TFieldValues, TFieldValuesRefined13>,
1142
+ fn: (query: QueryWhere<TFieldValues, TFieldValuesRefined13>) => QueryWhere<TFieldValues, TFieldValuesRefined14>
1143
+ ): (
1144
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
1145
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined14>
778
1146
  }
779
1147
 
780
1148
  export type FilterContinuation =
@@ -783,13 +1151,72 @@ export type FilterContinuation =
783
1151
  <
784
1152
  TFieldValues extends FieldValues,
785
1153
  TFieldName extends FieldPath<TFieldValues>,
786
- V extends FieldPathValue<TFieldValues, TFieldName>
1154
+ V extends FieldPathValue<TFieldValues, TFieldName>,
1155
+ TFieldValuesRefined extends TFieldValues = TFieldValues
787
1156
  >(f: {
788
1157
  path: TFieldName
789
1158
  op: Ops
790
1159
  value: V
791
1160
  }): (
1161
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
1162
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined>
1163
+ }
1164
+ & FilterContinuations
1165
+
1166
+ export type FilterContinuationAnd =
1167
+ & {
1168
+ <
1169
+ TFieldValues extends FieldValues,
1170
+ TFieldName extends FieldPath<TFieldValues>,
1171
+ const V extends FieldPathValue<TFieldValues, TFieldName>
1172
+ >(
1173
+ path: TFieldName,
1174
+ value: V
1175
+ ): (
792
1176
  current: QueryWhere<TFieldValues>
793
- ) => QueryWhere<TFieldValues>
1177
+ ) => QueryWhere<TFieldValues, TFieldName extends "_tag" ? Extract<TFieldValues, { _tag: V }> : TFieldValues>
1178
+ <
1179
+ TFieldValues extends FieldValues,
1180
+ TFieldName extends FieldPath<TFieldValues>,
1181
+ const V extends FieldPathValue<TFieldValues, TFieldName>
1182
+ >(
1183
+ path: TFieldName,
1184
+ op: "neq",
1185
+ value: V
1186
+ ): (
1187
+ current: QueryWhere<TFieldValues>
1188
+ ) => QueryWhere<TFieldValues, TFieldName extends "_tag" ? Exclude<TFieldValues, { _tag: V }> : TFieldValues>
1189
+ <
1190
+ TFieldValues extends FieldValues,
1191
+ TFieldName extends FieldPath<TFieldValues>,
1192
+ const V extends FieldPathValue<TFieldValues, TFieldName>,
1193
+ TFieldValuesRefined extends TFieldValues = TFieldValues
1194
+ >(
1195
+ path: TFieldName,
1196
+ value: V
1197
+ ): (
1198
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
1199
+ ) => QueryWhere<
1200
+ TFieldValues,
1201
+ TFieldName extends "_tag" ? Extract<TFieldValuesRefined, { _tag: V }> : TFieldValuesRefined
1202
+ >
1203
+ }
1204
+ & FilterContinuation
1205
+
1206
+ export type FilterContinuationOr =
1207
+ & FilterContinuationClosureOr
1208
+ & {
1209
+ <
1210
+ TFieldValues extends FieldValues,
1211
+ TFieldName extends FieldPath<TFieldValues>,
1212
+ V extends FieldPathValue<TFieldValues, TFieldName>,
1213
+ TFieldValuesRefined extends TFieldValues = TFieldValues
1214
+ >(f: {
1215
+ path: TFieldName
1216
+ op: Ops
1217
+ value: V
1218
+ }): (
1219
+ current: QueryWhere<TFieldValues, TFieldValuesRefined>
1220
+ ) => QueryWhere<TFieldValues, TFieldValuesRefined>
794
1221
  }
795
1222
  & FilterContinuations