@effect-app/infra 4.0.0-beta.22 → 4.0.0-beta.221
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.
- package/CHANGELOG.md +1648 -0
- package/_check.sh +1 -1
- package/dist/CUPS.d.ts +12 -7
- package/dist/CUPS.d.ts.map +1 -1
- package/dist/CUPS.js +16 -12
- package/dist/Emailer/Sendgrid.d.ts +15 -15
- package/dist/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/Emailer/Sendgrid.js +20 -16
- package/dist/Emailer/fake.d.ts +1 -1
- package/dist/Emailer/fake.js +2 -2
- package/dist/Emailer/service.d.ts +13 -4
- package/dist/Emailer/service.d.ts.map +1 -1
- package/dist/Emailer/service.js +4 -3
- package/dist/Emailer.d.ts +1 -1
- package/dist/MainFiberSet.d.ts +12 -9
- package/dist/MainFiberSet.d.ts.map +1 -1
- package/dist/MainFiberSet.js +7 -3
- package/dist/Model/Repository/Registry.d.ts +21 -0
- package/dist/Model/Repository/Registry.d.ts.map +1 -0
- package/dist/Model/Repository/Registry.js +18 -0
- package/dist/Model/Repository/ext.d.ts +35 -16
- package/dist/Model/Repository/ext.d.ts.map +1 -1
- package/dist/Model/Repository/ext.js +60 -3
- package/dist/Model/Repository/internal/internal.d.ts +9 -6
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
- package/dist/Model/Repository/internal/internal.js +115 -51
- package/dist/Model/Repository/legacy.d.ts +4 -2
- package/dist/Model/Repository/legacy.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.d.ts +10 -6
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.js +5 -2
- package/dist/Model/Repository/service.d.ts +32 -24
- package/dist/Model/Repository/service.d.ts.map +1 -1
- package/dist/Model/Repository/validation.d.ts +47 -18
- package/dist/Model/Repository/validation.d.ts.map +1 -1
- package/dist/Model/Repository/validation.js +6 -6
- package/dist/Model/Repository.d.ts +2 -1
- package/dist/Model/Repository.d.ts.map +1 -1
- package/dist/Model/Repository.js +2 -1
- package/dist/Model/dsl.d.ts +6 -5
- package/dist/Model/dsl.d.ts.map +1 -1
- package/dist/Model/dsl.js +2 -3
- package/dist/Model/filter/filterApi.d.ts +5 -5
- package/dist/Model/filter/filterApi.d.ts.map +1 -1
- package/dist/Model/filter/types/errors.d.ts +1 -1
- package/dist/Model/filter/types/fields.d.ts +1 -1
- package/dist/Model/filter/types/path/common.d.ts +1 -1
- package/dist/Model/filter/types/path/eager.d.ts +1 -1
- package/dist/Model/filter/types/path/eager.d.ts.map +1 -1
- package/dist/Model/filter/types/path/eager.js +1 -1
- package/dist/Model/filter/types/path/index.d.ts +1 -1
- package/dist/Model/filter/types/utils.d.ts +1 -1
- package/dist/Model/filter/types/validator.d.ts +1 -1
- package/dist/Model/filter/types.d.ts +1 -1
- package/dist/Model/query/dsl.d.ts +142 -17
- package/dist/Model/query/dsl.d.ts.map +1 -1
- package/dist/Model/query/dsl.js +190 -5
- package/dist/Model/query/new-kid-interpreter.d.ts +77 -8
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
- package/dist/Model/query/new-kid-interpreter.js +127 -6
- package/dist/Model/query.d.ts +1 -1
- package/dist/Model.d.ts +2 -1
- package/dist/Model.d.ts.map +1 -1
- package/dist/Model.js +2 -1
- package/dist/QueueMaker/SQLQueue.d.ts +7 -8
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/QueueMaker/SQLQueue.js +135 -117
- package/dist/QueueMaker/errors.d.ts +5 -3
- package/dist/QueueMaker/errors.d.ts.map +1 -1
- package/dist/QueueMaker/errors.js +4 -2
- package/dist/QueueMaker/memQueue.d.ts +9 -5
- package/dist/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.js +81 -65
- package/dist/QueueMaker/sbqueue.d.ts +8 -4
- package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/QueueMaker/sbqueue.js +57 -55
- package/dist/QueueMaker/service.d.ts +4 -2
- package/dist/QueueMaker/service.d.ts.map +1 -1
- package/dist/QueueMaker/service.js +1 -1
- package/dist/RequestContext.d.ts +75 -35
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +14 -14
- package/dist/RequestFiberSet.d.ts +10 -7
- package/dist/RequestFiberSet.d.ts.map +1 -1
- package/dist/RequestFiberSet.js +8 -3
- package/dist/Store/ContextMapContainer.d.ts +22 -3
- package/dist/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/Store/ContextMapContainer.js +17 -3
- package/dist/Store/Cosmos/query.d.ts +7 -2
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +115 -35
- package/dist/Store/Cosmos.d.ts +2 -2
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +343 -244
- package/dist/Store/Disk.d.ts +3 -3
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +76 -36
- package/dist/Store/Memory.d.ts +7 -4
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +251 -58
- package/dist/Store/SQL/Pg.d.ts +4 -0
- package/dist/Store/SQL/Pg.d.ts.map +1 -0
- package/dist/Store/SQL/Pg.js +233 -0
- package/dist/Store/SQL/query.d.ts +43 -0
- package/dist/Store/SQL/query.d.ts.map +1 -0
- package/dist/Store/SQL/query.js +478 -0
- package/dist/Store/SQL.d.ts +21 -0
- package/dist/Store/SQL.d.ts.map +1 -0
- package/dist/Store/SQL.js +450 -0
- package/dist/Store/codeFilter.d.ts +2 -2
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +6 -3
- package/dist/Store/index.d.ts +6 -3
- package/dist/Store/index.d.ts.map +1 -1
- package/dist/Store/index.js +18 -4
- package/dist/Store/service.d.ts +26 -8
- package/dist/Store/service.d.ts.map +1 -1
- package/dist/Store/service.js +25 -6
- package/dist/Store/utils.d.ts +3 -2
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +5 -5
- package/dist/Store.d.ts +1 -1
- package/dist/adapters/SQL/Model.d.ts +32 -43
- package/dist/adapters/SQL/Model.d.ts.map +1 -1
- package/dist/adapters/SQL/Model.js +30 -39
- package/dist/adapters/SQL.d.ts +1 -1
- package/dist/adapters/ServiceBus.d.ts +14 -11
- package/dist/adapters/ServiceBus.d.ts.map +1 -1
- package/dist/adapters/ServiceBus.js +30 -21
- package/dist/adapters/cosmos-client.d.ts +5 -3
- package/dist/adapters/cosmos-client.d.ts.map +1 -1
- package/dist/adapters/cosmos-client.js +5 -3
- package/dist/adapters/index.d.ts +8 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +8 -2
- package/dist/adapters/logger.d.ts +2 -2
- package/dist/adapters/logger.d.ts.map +1 -1
- package/dist/adapters/memQueue.d.ts +5 -3
- package/dist/adapters/memQueue.d.ts.map +1 -1
- package/dist/adapters/memQueue.js +6 -5
- package/dist/adapters/mongo-client.d.ts +4 -3
- package/dist/adapters/mongo-client.d.ts.map +1 -1
- package/dist/adapters/mongo-client.js +5 -3
- package/dist/adapters/redis-client.d.ts +6 -3
- package/dist/adapters/redis-client.d.ts.map +1 -1
- package/dist/adapters/redis-client.js +7 -3
- package/dist/api/ContextProvider.d.ts +12 -8
- package/dist/api/ContextProvider.d.ts.map +1 -1
- package/dist/api/ContextProvider.js +9 -7
- package/dist/api/codec.d.ts +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts +3 -3
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
- package/dist/api/internal/RequestContextMiddleware.js +10 -6
- package/dist/api/internal/auth.d.ts +45 -7
- package/dist/api/internal/auth.d.ts.map +1 -1
- package/dist/api/internal/auth.js +162 -29
- package/dist/api/internal/events.d.ts +6 -4
- package/dist/api/internal/events.d.ts.map +1 -1
- package/dist/api/internal/events.js +16 -9
- package/dist/api/internal/health.d.ts +1 -1
- package/dist/api/layerUtils.d.ts +10 -6
- package/dist/api/layerUtils.d.ts.map +1 -1
- package/dist/api/layerUtils.js +7 -6
- package/dist/api/middlewares.d.ts +1 -1
- package/dist/api/reportError.d.ts +2 -2
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +3 -2
- package/dist/api/routing/middleware/RouterMiddleware.d.ts +5 -4
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.d.ts +42 -3
- package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.js +53 -17
- package/dist/api/routing/middleware.d.ts +1 -2
- package/dist/api/routing/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware.js +1 -2
- package/dist/api/routing/schema/jwt.d.ts +1 -1
- package/dist/api/routing/schema/jwt.d.ts.map +1 -1
- package/dist/api/routing/schema/jwt.js +3 -2
- package/dist/api/routing/tsort.d.ts +1 -1
- package/dist/api/routing/tsort.d.ts.map +1 -1
- package/dist/api/routing/utils.d.ts +4 -4
- package/dist/api/routing/utils.d.ts.map +1 -1
- package/dist/api/routing/utils.js +3 -2
- package/dist/api/routing.d.ts +84 -37
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +115 -45
- package/dist/api/setupRequest.d.ts +10 -6
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +15 -7
- package/dist/api/util.d.ts +1 -1
- package/dist/arbs.d.ts +2 -2
- package/dist/arbs.d.ts.map +1 -1
- package/dist/arbs.js +5 -3
- package/dist/errorReporter.d.ts +7 -5
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +22 -26
- package/dist/errors.d.ts +1 -1
- package/dist/fileUtil.d.ts +2 -2
- package/dist/fileUtil.d.ts.map +1 -1
- package/dist/fileUtil.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/logger/jsonLogger.d.ts +2 -2
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +4 -2
- package/dist/logger/logFmtLogger.d.ts +2 -2
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +2 -2
- package/dist/logger/shared.d.ts +2 -2
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +3 -3
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/otel.d.ts +75 -0
- package/dist/otel.d.ts.map +1 -0
- package/dist/otel.js +65 -0
- package/dist/rateLimit.d.ts +12 -4
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +7 -12
- package/dist/test.d.ts +3 -3
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +2 -2
- package/dist/vitest.d.ts +1 -1
- package/examples/query.ts +46 -38
- package/package.json +46 -37
- package/src/CUPS.ts +15 -11
- package/src/Emailer/Sendgrid.ts +21 -15
- package/src/Emailer/fake.ts +1 -1
- package/src/Emailer/service.ts +13 -3
- package/src/MainFiberSet.ts +9 -6
- package/src/Model/Repository/Registry.ts +34 -0
- package/src/Model/Repository/ext.ts +103 -11
- package/src/Model/Repository/internal/internal.ts +231 -149
- package/src/Model/Repository/legacy.ts +3 -1
- package/src/Model/Repository/makeRepo.ts +15 -10
- package/src/Model/Repository/service.ts +35 -23
- package/src/Model/Repository/validation.ts +5 -5
- package/src/Model/Repository.ts +1 -0
- package/src/Model/dsl.ts +5 -4
- package/src/Model/filter/types/path/eager.ts +1 -2
- package/src/Model/query/dsl.ts +353 -19
- package/src/Model/query/new-kid-interpreter.ts +211 -6
- package/src/Model.ts +1 -0
- package/src/QueueMaker/SQLQueue.ts +150 -153
- package/src/QueueMaker/errors.ts +3 -1
- package/src/QueueMaker/memQueue.ts +111 -105
- package/src/QueueMaker/sbqueue.ts +76 -88
- package/src/QueueMaker/service.ts +3 -1
- package/src/RequestContext.ts +15 -16
- package/src/RequestFiberSet.ts +8 -2
- package/src/Store/ContextMapContainer.ts +45 -2
- package/src/Store/Cosmos/query.ts +143 -44
- package/src/Store/Cosmos.ts +491 -350
- package/src/Store/Disk.ts +106 -66
- package/src/Store/Memory.ts +285 -87
- package/src/Store/SQL/Pg.ts +364 -0
- package/src/Store/SQL/query.ts +540 -0
- package/src/Store/SQL.ts +736 -0
- package/src/Store/codeFilter.ts +5 -2
- package/src/Store/index.ts +20 -3
- package/src/Store/service.ts +45 -10
- package/src/Store/utils.ts +25 -23
- package/src/adapters/SQL/Model.ts +42 -41
- package/src/adapters/ServiceBus.ts +131 -121
- package/src/adapters/cosmos-client.ts +4 -2
- package/src/adapters/index.ts +7 -0
- package/src/adapters/memQueue.ts +5 -4
- package/src/adapters/mongo-client.ts +4 -2
- package/src/adapters/redis-client.ts +6 -2
- package/src/api/ContextProvider.ts +17 -13
- package/src/api/internal/RequestContextMiddleware.ts +16 -5
- package/src/api/internal/auth.ts +248 -44
- package/src/api/internal/events.ts +19 -10
- package/src/api/layerUtils.ts +12 -8
- package/src/api/reportError.ts +2 -1
- package/src/api/routing/middleware/RouterMiddleware.ts +5 -4
- package/src/api/routing/middleware/middleware.ts +60 -15
- package/src/api/routing/middleware.ts +0 -2
- package/src/api/routing/schema/jwt.ts +2 -1
- package/src/api/routing/utils.ts +2 -1
- package/src/api/routing.ts +304 -131
- package/src/api/setupRequest.ts +31 -8
- package/src/arbs.ts +5 -3
- package/src/errorReporter.ts +65 -75
- package/src/fileUtil.ts +1 -1
- package/src/logger/jsonLogger.ts +3 -1
- package/src/logger/logFmtLogger.ts +1 -1
- package/src/logger/shared.ts +3 -2
- package/src/otel.ts +152 -0
- package/src/rateLimit.ts +34 -23
- package/src/test.ts +2 -2
- package/test/auth.test.ts +101 -0
- package/test/contextProvider.test.ts +14 -11
- package/test/controller.test.ts +25 -29
- package/test/dist/auth.test.d.ts.map +1 -0
- package/test/dist/contextProvider.test.d.ts.map +1 -1
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/date-query.test.d.ts.map +1 -0
- package/test/dist/fixtures.d.ts +30 -12
- package/test/dist/fixtures.d.ts.map +1 -1
- package/test/dist/fixtures.js +17 -10
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/dist/rawQuery.test.d.ts.map +1 -1
- package/test/dist/repository-ext.test.d.ts.map +1 -0
- package/test/dist/requires.test.d.ts.map +1 -1
- package/test/dist/router-generator.test.d.ts.map +1 -0
- package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
- package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
- package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
- package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
- package/test/dist/sql-store.test.d.ts.map +1 -0
- package/test/fixtures.ts +16 -9
- package/test/layerUtils.test.ts +1 -1
- package/test/query.test.ts +819 -38
- package/test/rawQuery.test.ts +312 -20
- package/test/repository-ext.test.ts +62 -0
- package/test/requires.test.ts +10 -5
- package/test/router-generator.test.ts +187 -0
- package/test/routing-interruptibility.test.ts +66 -0
- package/test/rpc-e2e-invalidation.test.ts +256 -0
- package/test/rpc-multi-middleware.test.ts +84 -9
- package/test/rpc-stream-fullstack.test.ts +304 -0
- package/test/sql-store.test.ts +1592 -0
- package/test/validateSample.test.ts +17 -12
- package/tsconfig.examples.json +1 -1
- package/tsconfig.json +0 -1
- package/tsconfig.json.bak +2 -2
- package/tsconfig.src.json +35 -35
- package/tsconfig.test.json +2 -2
- package/dist/Operations.d.ts +0 -55
- package/dist/Operations.d.ts.map +0 -1
- package/dist/Operations.js +0 -102
- package/dist/OperationsRepo.d.ts +0 -41
- package/dist/OperationsRepo.d.ts.map +0 -1
- package/dist/OperationsRepo.js +0 -14
- package/eslint.config.mjs +0 -24
- package/src/Operations.ts +0 -235
- package/src/OperationsRepo.ts +0 -16
package/src/Model/query/dsl.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
-
import
|
|
4
|
+
import type * as Option from "effect-app/Option"
|
|
5
|
+
import type * as S from "effect-app/Schema"
|
|
5
6
|
import type { NonNegativeInt } from "effect-app/Schema"
|
|
7
|
+
import * as Data from "effect/Data"
|
|
8
|
+
import { flow } from "effect/Function"
|
|
9
|
+
import * as Pipeable from "effect/Pipeable"
|
|
6
10
|
import type { Covariant } from "effect/Types"
|
|
7
11
|
import type { Ops } from "../filter/filterApi.js"
|
|
8
12
|
import type { FieldValues } from "../filter/types.js"
|
|
@@ -54,7 +58,7 @@ type ExtractFieldValuesRefined<T> = T extends QueryTogether<any, infer TFieldVal
|
|
|
54
58
|
|
|
55
59
|
export type RelationDirection = "some" | "every"
|
|
56
60
|
export type Relation = { relation: RelationDirection }
|
|
57
|
-
export type Query<TFieldValues extends FieldValues> = QueryTogether<TFieldValues, TFieldValues
|
|
61
|
+
export type Query<TFieldValues extends FieldValues> = QueryTogether<TFieldValues, TFieldValues>
|
|
58
62
|
export type QueryWhere<
|
|
59
63
|
TFieldValues extends FieldValues,
|
|
60
64
|
TFieldValuesRefined extends TFieldValues = TFieldValues,
|
|
@@ -97,6 +101,86 @@ export type QueryProjection<
|
|
|
97
101
|
R,
|
|
98
102
|
TType
|
|
99
103
|
>
|
|
104
|
+
|
|
105
|
+
export type ComputedProjectionOperation = (q: Query<any>) => QueryWhere<any, any, any>
|
|
106
|
+
|
|
107
|
+
export type ComputedProjectionMathExpression =
|
|
108
|
+
| {
|
|
109
|
+
readonly _tag: "field"
|
|
110
|
+
readonly field: string
|
|
111
|
+
}
|
|
112
|
+
| {
|
|
113
|
+
readonly _tag: "mul"
|
|
114
|
+
readonly left: ComputedProjectionMathExpression
|
|
115
|
+
readonly right: ComputedProjectionMathExpression
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export type ComputedProjectionExpression =
|
|
119
|
+
| {
|
|
120
|
+
readonly _tag: "relation-count"
|
|
121
|
+
readonly path: string
|
|
122
|
+
readonly operation?: ComputedProjectionOperation
|
|
123
|
+
}
|
|
124
|
+
| {
|
|
125
|
+
readonly _tag: "relation-any"
|
|
126
|
+
readonly path: string
|
|
127
|
+
readonly operation?: ComputedProjectionOperation
|
|
128
|
+
}
|
|
129
|
+
| {
|
|
130
|
+
readonly _tag: "relation-every"
|
|
131
|
+
readonly path: string
|
|
132
|
+
readonly operation: ComputedProjectionOperation
|
|
133
|
+
}
|
|
134
|
+
| {
|
|
135
|
+
readonly _tag: "relation-distinct-count"
|
|
136
|
+
readonly path: string
|
|
137
|
+
readonly field: string
|
|
138
|
+
readonly operation?: ComputedProjectionOperation
|
|
139
|
+
}
|
|
140
|
+
| {
|
|
141
|
+
readonly _tag: "relation-sum"
|
|
142
|
+
readonly path: string
|
|
143
|
+
readonly field: string
|
|
144
|
+
readonly operation?: ComputedProjectionOperation
|
|
145
|
+
}
|
|
146
|
+
| {
|
|
147
|
+
readonly _tag: "relation-sum-expr"
|
|
148
|
+
readonly path: string
|
|
149
|
+
readonly expression: ComputedProjectionMathExpression
|
|
150
|
+
readonly operation?: ComputedProjectionOperation
|
|
151
|
+
}
|
|
152
|
+
| {
|
|
153
|
+
readonly _tag: "relation-sum-expr-by"
|
|
154
|
+
readonly path: string
|
|
155
|
+
readonly expression: ComputedProjectionMathExpression
|
|
156
|
+
readonly unit: string
|
|
157
|
+
readonly operation?: ComputedProjectionOperation
|
|
158
|
+
}
|
|
159
|
+
| {
|
|
160
|
+
readonly _tag: "relation-sum-expr-normalized"
|
|
161
|
+
readonly path: string
|
|
162
|
+
readonly expression: ComputedProjectionMathExpression
|
|
163
|
+
readonly unit: string
|
|
164
|
+
readonly toBase: string
|
|
165
|
+
readonly factors: Readonly<Record<string, number>>
|
|
166
|
+
readonly operation?: ComputedProjectionOperation
|
|
167
|
+
}
|
|
168
|
+
| {
|
|
169
|
+
readonly _tag: "relation-collect"
|
|
170
|
+
readonly path: string
|
|
171
|
+
readonly field: string
|
|
172
|
+
readonly distinct: boolean
|
|
173
|
+
readonly operation?: ComputedProjectionOperation
|
|
174
|
+
}
|
|
175
|
+
| {
|
|
176
|
+
readonly _tag: "relation-collect-fields"
|
|
177
|
+
readonly path: string
|
|
178
|
+
readonly fields: readonly string[]
|
|
179
|
+
readonly distinct: boolean
|
|
180
|
+
readonly operation?: ComputedProjectionOperation
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export type ComputedProjectionMap = Readonly<Record<string, ComputedProjectionExpression>>
|
|
100
184
|
export type Q<TFieldValues extends FieldValues> =
|
|
101
185
|
| Initial<TFieldValues>
|
|
102
186
|
| Where<TFieldValues>
|
|
@@ -211,6 +295,7 @@ export class Project<A, TFieldValues extends FieldValues, R, TType extends "one"
|
|
|
211
295
|
current: Query<TFieldValues> | QueryWhere<any, TFieldValues> | QueryEnd<TFieldValues, TType>
|
|
212
296
|
schema: S.Codec<A, TFieldValues, R>
|
|
213
297
|
mode: "collect" | "project" | "transform"
|
|
298
|
+
computed?: ComputedProjectionMap
|
|
214
299
|
}>
|
|
215
300
|
implements QueryProjection<TFieldValues, A, R>
|
|
216
301
|
{
|
|
@@ -299,6 +384,35 @@ export const count: {
|
|
|
299
384
|
): QueryProjection<ExtractFieldValuesRefined<Q>, NonNegativeInt, never, "count", ExtractExclusiveness<Q>>
|
|
300
385
|
} = (current) => new Count({ current })
|
|
301
386
|
|
|
387
|
+
/**
|
|
388
|
+
* Attach a projection schema to a query.
|
|
389
|
+
*
|
|
390
|
+
* The `select` clause sent to the store is derived from the schema's encoded
|
|
391
|
+
* AST property names (top-level + per-array sub-keys), so a projection always
|
|
392
|
+
* narrows what is read from the store. The repository augments that select
|
|
393
|
+
* with `id` and `_etag` for change tracking. See {@link toFilter} and the
|
|
394
|
+
* dispatch in `Repository/internal/internal.ts`.
|
|
395
|
+
*
|
|
396
|
+
* Modes — pick based on shape of the decoded value and on whether the
|
|
397
|
+
* persistence-model (PM) reverse-mapping is needed:
|
|
398
|
+
*
|
|
399
|
+
* - `"transform"` (default when `mode` omitted): goes through the repo's
|
|
400
|
+
* `parseMany`/`parseMany2` pipeline. The raw row is reverse-mapped via the
|
|
401
|
+
* etag/PM cache (re-injecting `_etag` and any PM-shape state) before
|
|
402
|
+
* decoding. Decode failures `orDie` (error channel = `never`). Use when
|
|
403
|
+
* the schema operates on the full PM shape (e.g. full-entity reads that
|
|
404
|
+
* must preserve etag tracking).
|
|
405
|
+
*
|
|
406
|
+
* - `"project"`: decodes the raw encoded row directly with the supplied
|
|
407
|
+
* schema. No PM reverse-mapping, no etag cache merge. Decode failures
|
|
408
|
+
* surface as `S.SchemaError`. Use for slim DTOs / aggregations that do not
|
|
409
|
+
* need etag tracking and whose schema input is a plain subset of `Encoded`.
|
|
410
|
+
*
|
|
411
|
+
* - `"collect"`: like `"project"`, but the schema yields `Option<A>` and
|
|
412
|
+
* `None` values are dropped post-decode (`Array.getSomes`). Use to filter
|
|
413
|
+
* rows during decode (e.g. discriminated-union narrowing where some rows
|
|
414
|
+
* should not appear in the result).
|
|
415
|
+
*/
|
|
302
416
|
export const project: {
|
|
303
417
|
<
|
|
304
418
|
Q extends Query<any> | QueryWhere<any, any, any> | QueryEnd<any, "one" | "many", any>,
|
|
@@ -356,6 +470,226 @@ export const project: {
|
|
|
356
470
|
) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>, E>
|
|
357
471
|
} = (schema: any, mode = "transform") => (current: any) => new Project({ current, schema, mode } as any)
|
|
358
472
|
|
|
473
|
+
export const relation = <TFieldValues extends FieldValues>(
|
|
474
|
+
path: FieldPath<TFieldValues>
|
|
475
|
+
) => ({
|
|
476
|
+
count: (operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
477
|
+
operation
|
|
478
|
+
? {
|
|
479
|
+
_tag: "relation-count",
|
|
480
|
+
path: path as string,
|
|
481
|
+
operation
|
|
482
|
+
}
|
|
483
|
+
: {
|
|
484
|
+
_tag: "relation-count",
|
|
485
|
+
path: path as string
|
|
486
|
+
},
|
|
487
|
+
any: (operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
488
|
+
operation
|
|
489
|
+
? {
|
|
490
|
+
_tag: "relation-any",
|
|
491
|
+
path: path as string,
|
|
492
|
+
operation
|
|
493
|
+
}
|
|
494
|
+
: {
|
|
495
|
+
_tag: "relation-any",
|
|
496
|
+
path: path as string
|
|
497
|
+
},
|
|
498
|
+
every: (operation: ComputedProjectionOperation): ComputedProjectionExpression => ({
|
|
499
|
+
_tag: "relation-every",
|
|
500
|
+
path: path as string,
|
|
501
|
+
operation
|
|
502
|
+
}),
|
|
503
|
+
distinctCount: (field: string, operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
504
|
+
operation
|
|
505
|
+
? {
|
|
506
|
+
_tag: "relation-distinct-count",
|
|
507
|
+
path: path as string,
|
|
508
|
+
field,
|
|
509
|
+
operation
|
|
510
|
+
}
|
|
511
|
+
: {
|
|
512
|
+
_tag: "relation-distinct-count",
|
|
513
|
+
path: path as string,
|
|
514
|
+
field
|
|
515
|
+
},
|
|
516
|
+
sum: (field: string, operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
517
|
+
operation
|
|
518
|
+
? {
|
|
519
|
+
_tag: "relation-sum",
|
|
520
|
+
path: path as string,
|
|
521
|
+
field,
|
|
522
|
+
operation
|
|
523
|
+
}
|
|
524
|
+
: {
|
|
525
|
+
_tag: "relation-sum",
|
|
526
|
+
path: path as string,
|
|
527
|
+
field
|
|
528
|
+
},
|
|
529
|
+
sumExpr: (
|
|
530
|
+
expression: ComputedProjectionMathExpression,
|
|
531
|
+
operation?: ComputedProjectionOperation
|
|
532
|
+
): ComputedProjectionExpression =>
|
|
533
|
+
operation
|
|
534
|
+
? {
|
|
535
|
+
_tag: "relation-sum-expr",
|
|
536
|
+
path: path as string,
|
|
537
|
+
expression,
|
|
538
|
+
operation
|
|
539
|
+
}
|
|
540
|
+
: {
|
|
541
|
+
_tag: "relation-sum-expr",
|
|
542
|
+
path: path as string,
|
|
543
|
+
expression
|
|
544
|
+
},
|
|
545
|
+
sumExprBy: (
|
|
546
|
+
expression: ComputedProjectionMathExpression,
|
|
547
|
+
options: { unit: string },
|
|
548
|
+
operation?: ComputedProjectionOperation
|
|
549
|
+
): ComputedProjectionExpression =>
|
|
550
|
+
operation
|
|
551
|
+
? {
|
|
552
|
+
_tag: "relation-sum-expr-by",
|
|
553
|
+
path: path as string,
|
|
554
|
+
expression,
|
|
555
|
+
unit: options.unit,
|
|
556
|
+
operation
|
|
557
|
+
}
|
|
558
|
+
: {
|
|
559
|
+
_tag: "relation-sum-expr-by",
|
|
560
|
+
path: path as string,
|
|
561
|
+
expression,
|
|
562
|
+
unit: options.unit
|
|
563
|
+
},
|
|
564
|
+
sumExprNormalized: (
|
|
565
|
+
expression: ComputedProjectionMathExpression,
|
|
566
|
+
options: { unit: string; toBase: string; factors: Readonly<Record<string, number>> },
|
|
567
|
+
operation?: ComputedProjectionOperation
|
|
568
|
+
): ComputedProjectionExpression =>
|
|
569
|
+
operation
|
|
570
|
+
? {
|
|
571
|
+
_tag: "relation-sum-expr-normalized",
|
|
572
|
+
path: path as string,
|
|
573
|
+
expression,
|
|
574
|
+
unit: options.unit,
|
|
575
|
+
toBase: options.toBase,
|
|
576
|
+
factors: options.factors,
|
|
577
|
+
operation
|
|
578
|
+
}
|
|
579
|
+
: {
|
|
580
|
+
_tag: "relation-sum-expr-normalized",
|
|
581
|
+
path: path as string,
|
|
582
|
+
expression,
|
|
583
|
+
unit: options.unit,
|
|
584
|
+
toBase: options.toBase,
|
|
585
|
+
factors: options.factors
|
|
586
|
+
},
|
|
587
|
+
collect: (field: string, operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
588
|
+
operation
|
|
589
|
+
? {
|
|
590
|
+
_tag: "relation-collect",
|
|
591
|
+
path: path as string,
|
|
592
|
+
field,
|
|
593
|
+
distinct: false,
|
|
594
|
+
operation
|
|
595
|
+
}
|
|
596
|
+
: {
|
|
597
|
+
_tag: "relation-collect",
|
|
598
|
+
path: path as string,
|
|
599
|
+
field,
|
|
600
|
+
distinct: false
|
|
601
|
+
},
|
|
602
|
+
collectDistinct: (field: string, operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
603
|
+
operation
|
|
604
|
+
? {
|
|
605
|
+
_tag: "relation-collect",
|
|
606
|
+
path: path as string,
|
|
607
|
+
field,
|
|
608
|
+
distinct: true,
|
|
609
|
+
operation
|
|
610
|
+
}
|
|
611
|
+
: {
|
|
612
|
+
_tag: "relation-collect",
|
|
613
|
+
path: path as string,
|
|
614
|
+
field,
|
|
615
|
+
distinct: true
|
|
616
|
+
},
|
|
617
|
+
collectFields: (fields: readonly string[], operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
618
|
+
operation
|
|
619
|
+
? {
|
|
620
|
+
_tag: "relation-collect-fields",
|
|
621
|
+
path: path as string,
|
|
622
|
+
fields,
|
|
623
|
+
distinct: false,
|
|
624
|
+
operation
|
|
625
|
+
}
|
|
626
|
+
: {
|
|
627
|
+
_tag: "relation-collect-fields",
|
|
628
|
+
path: path as string,
|
|
629
|
+
fields,
|
|
630
|
+
distinct: false
|
|
631
|
+
},
|
|
632
|
+
collectDistinctFields: (
|
|
633
|
+
fields: readonly string[],
|
|
634
|
+
operation?: ComputedProjectionOperation
|
|
635
|
+
): ComputedProjectionExpression =>
|
|
636
|
+
operation
|
|
637
|
+
? {
|
|
638
|
+
_tag: "relation-collect-fields",
|
|
639
|
+
path: path as string,
|
|
640
|
+
fields,
|
|
641
|
+
distinct: true,
|
|
642
|
+
operation
|
|
643
|
+
}
|
|
644
|
+
: {
|
|
645
|
+
_tag: "relation-collect-fields",
|
|
646
|
+
path: path as string,
|
|
647
|
+
fields,
|
|
648
|
+
distinct: true
|
|
649
|
+
}
|
|
650
|
+
})
|
|
651
|
+
|
|
652
|
+
export const expr = {
|
|
653
|
+
field: (field: string): ComputedProjectionMathExpression => ({ _tag: "field", field }),
|
|
654
|
+
mul: (
|
|
655
|
+
left: ComputedProjectionMathExpression,
|
|
656
|
+
right: ComputedProjectionMathExpression
|
|
657
|
+
): ComputedProjectionMathExpression => ({ _tag: "mul", left, right })
|
|
658
|
+
} as const
|
|
659
|
+
|
|
660
|
+
export const computed = <T extends ComputedProjectionMap>(value: T): T => value
|
|
661
|
+
|
|
662
|
+
export const projectComputed: {
|
|
663
|
+
<
|
|
664
|
+
Q extends Query<any> | QueryWhere<any, any, any> | QueryEnd<any, "one" | "many", any>,
|
|
665
|
+
I extends Record<string, unknown>,
|
|
666
|
+
A = ExtractFieldValuesRefined<Q>,
|
|
667
|
+
R = never,
|
|
668
|
+
E extends boolean = ExtractExclusiveness<Q>
|
|
669
|
+
>(
|
|
670
|
+
schema: S.Codec<Option.Option<A>, I, R>,
|
|
671
|
+
computedProjection: ComputedProjectionMap,
|
|
672
|
+
mode: "collect"
|
|
673
|
+
): (
|
|
674
|
+
current: Q
|
|
675
|
+
) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>, E>
|
|
676
|
+
|
|
677
|
+
<
|
|
678
|
+
Q extends Query<any> | QueryWhere<any, any, any> | QueryEnd<any, "one" | "many", any>,
|
|
679
|
+
I extends Record<string, unknown>,
|
|
680
|
+
A = ExtractFieldValuesRefined<Q>,
|
|
681
|
+
R = never,
|
|
682
|
+
E extends boolean = ExtractExclusiveness<Q>
|
|
683
|
+
>(
|
|
684
|
+
schema: S.Codec<A, I, R>,
|
|
685
|
+
computedProjection: ComputedProjectionMap,
|
|
686
|
+
mode?: "project"
|
|
687
|
+
): (
|
|
688
|
+
current: Q
|
|
689
|
+
) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>, E>
|
|
690
|
+
} = (schema: any, computedProjection: ComputedProjectionMap, mode = "project") => (current: any) =>
|
|
691
|
+
new Project({ current, schema, mode, computed: computedProjection } as any)
|
|
692
|
+
|
|
359
693
|
type GetArV<T> = T extends readonly (infer R)[] ? R : never
|
|
360
694
|
|
|
361
695
|
export type FilterContinuations<IsCurrentInitial extends boolean = false> = {
|
|
@@ -1538,7 +1872,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1538
1872
|
fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2, E2>
|
|
1539
1873
|
): (
|
|
1540
1874
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1541
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2
|
|
1875
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2>
|
|
1542
1876
|
|
|
1543
1877
|
<
|
|
1544
1878
|
TFieldValues extends FieldValues,
|
|
@@ -1555,7 +1889,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1555
1889
|
) => QueryWhere<TFieldValues, TFieldValuesRefined3, E3>
|
|
1556
1890
|
): (
|
|
1557
1891
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1558
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined3
|
|
1892
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined3>
|
|
1559
1893
|
|
|
1560
1894
|
<
|
|
1561
1895
|
TFieldValues extends FieldValues,
|
|
@@ -1577,7 +1911,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1577
1911
|
) => QueryWhere<TFieldValues, TFieldValuesRefined4, E4>
|
|
1578
1912
|
): (
|
|
1579
1913
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1580
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined4
|
|
1914
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined4>
|
|
1581
1915
|
|
|
1582
1916
|
<
|
|
1583
1917
|
TFieldValues extends FieldValues,
|
|
@@ -1604,7 +1938,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1604
1938
|
) => QueryWhere<TFieldValues, TFieldValuesRefined5, E5>
|
|
1605
1939
|
): (
|
|
1606
1940
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1607
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined5
|
|
1941
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined5>
|
|
1608
1942
|
|
|
1609
1943
|
<
|
|
1610
1944
|
TFieldValues extends FieldValues,
|
|
@@ -1636,7 +1970,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1636
1970
|
) => QueryWhere<TFieldValues, TFieldValuesRefined6, E6>
|
|
1637
1971
|
): (
|
|
1638
1972
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1639
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined6
|
|
1973
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined6>
|
|
1640
1974
|
|
|
1641
1975
|
<
|
|
1642
1976
|
TFieldValues extends FieldValues,
|
|
@@ -1673,7 +2007,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1673
2007
|
) => QueryWhere<TFieldValues, TFieldValuesRefined7, E7>
|
|
1674
2008
|
): (
|
|
1675
2009
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1676
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined7
|
|
2010
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined7>
|
|
1677
2011
|
|
|
1678
2012
|
<
|
|
1679
2013
|
TFieldValues extends FieldValues,
|
|
@@ -1715,7 +2049,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1715
2049
|
) => QueryWhere<TFieldValues, TFieldValuesRefined8, E8>
|
|
1716
2050
|
): (
|
|
1717
2051
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1718
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2
|
|
2052
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2>
|
|
1719
2053
|
|
|
1720
2054
|
<
|
|
1721
2055
|
TFieldValues extends FieldValues,
|
|
@@ -1762,7 +2096,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1762
2096
|
) => QueryWhere<TFieldValues, TFieldValuesRefined9, E9>
|
|
1763
2097
|
): (
|
|
1764
2098
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1765
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined9
|
|
2099
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined9>
|
|
1766
2100
|
|
|
1767
2101
|
<
|
|
1768
2102
|
TFieldValues extends FieldValues,
|
|
@@ -1814,7 +2148,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1814
2148
|
) => QueryWhere<TFieldValues, TFieldValuesRefined10, E10>
|
|
1815
2149
|
): (
|
|
1816
2150
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1817
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined10
|
|
2151
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined10>
|
|
1818
2152
|
|
|
1819
2153
|
<
|
|
1820
2154
|
TFieldValues extends FieldValues,
|
|
@@ -1871,7 +2205,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1871
2205
|
) => QueryWhere<TFieldValues, TFieldValuesRefined11, E11>
|
|
1872
2206
|
): (
|
|
1873
2207
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1874
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined11
|
|
2208
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined11>
|
|
1875
2209
|
|
|
1876
2210
|
<
|
|
1877
2211
|
TFieldValues extends FieldValues,
|
|
@@ -1933,7 +2267,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1933
2267
|
) => QueryWhere<TFieldValues, TFieldValuesRefined12, E12>
|
|
1934
2268
|
): (
|
|
1935
2269
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1936
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined12
|
|
2270
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined12>
|
|
1937
2271
|
|
|
1938
2272
|
<
|
|
1939
2273
|
TFieldValues extends FieldValues,
|
|
@@ -2000,7 +2334,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
2000
2334
|
) => QueryWhere<TFieldValues, TFieldValuesRefined13, E13>
|
|
2001
2335
|
): (
|
|
2002
2336
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
2003
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined13
|
|
2337
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined13>
|
|
2004
2338
|
|
|
2005
2339
|
<
|
|
2006
2340
|
TFieldValues extends FieldValues,
|
|
@@ -2072,7 +2406,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
2072
2406
|
) => QueryWhere<TFieldValues, TFieldValuesRefined14, E14>
|
|
2073
2407
|
): (
|
|
2074
2408
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
2075
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined14
|
|
2409
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined14>
|
|
2076
2410
|
}
|
|
2077
2411
|
|
|
2078
2412
|
export type FilterWhere =
|
|
@@ -2099,12 +2433,12 @@ export type WhereEveryOrSome =
|
|
|
2099
2433
|
subPath: TFieldName,
|
|
2100
2434
|
dude: (
|
|
2101
2435
|
current: Query<TFieldValues[TFieldName][number]>
|
|
2102
|
-
) => QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]
|
|
2436
|
+
) => QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]>,
|
|
2103
2437
|
...dudes: ((
|
|
2104
|
-
current: QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]
|
|
2105
|
-
) => QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]
|
|
2438
|
+
current: QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]>
|
|
2439
|
+
) => QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]>)[]
|
|
2106
2440
|
): (
|
|
2107
2441
|
current: Query<TFieldValues>
|
|
2108
|
-
) => QueryWhere<TFieldValues, TFieldValues
|
|
2442
|
+
) => QueryWhere<TFieldValues, TFieldValues>
|
|
2109
2443
|
}
|
|
2110
2444
|
& FilterContinuationsWithSubpath
|