@effect-app/infra 4.0.0-beta.23 → 4.0.0-beta.231
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 +1726 -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 +21 -17
- package/dist/Emailer/fake.d.ts +1 -1
- package/dist/Emailer/fake.js +3 -3
- 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 +10 -6
- 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 +141 -59
- 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 +216 -18
- package/dist/Model/query/dsl.d.ts.map +1 -1
- package/dist/Model/query/dsl.js +240 -5
- package/dist/Model/query/new-kid-interpreter.d.ts +116 -8
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
- package/dist/Model/query/new-kid-interpreter.js +177 -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 +12 -7
- package/dist/Store/ContextMapContainer.d.ts +22 -3
- package/dist/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/Store/ContextMapContainer.js +18 -4
- package/dist/Store/Cosmos/query.d.ts +13 -2
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +179 -41
- 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 +327 -62
- 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 +49 -0
- package/dist/Store/SQL/query.d.ts.map +1 -0
- package/dist/Store/SQL/query.js +527 -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 +32 -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 +6 -4
- 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 -9
- 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 +11 -7
- 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 +15 -7
- 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 -38
- 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 +19 -11
- 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 +65 -57
- package/src/Emailer/fake.ts +2 -2
- package/src/Emailer/service.ts +13 -3
- package/src/MainFiberSet.ts +12 -10
- package/src/Model/Repository/Registry.ts +34 -0
- package/src/Model/Repository/ext.ts +103 -11
- package/src/Model/Repository/internal/internal.ts +266 -151
- 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 +456 -20
- package/src/Model/query/new-kid-interpreter.ts +281 -7
- 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 +12 -7
- package/src/Store/ContextMapContainer.ts +46 -3
- package/src/Store/Cosmos/query.ts +214 -50
- package/src/Store/Cosmos.ts +491 -350
- package/src/Store/Disk.ts +106 -66
- package/src/Store/Memory.ts +365 -91
- package/src/Store/SQL/Pg.ts +364 -0
- package/src/Store/SQL/query.ts +603 -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 +51 -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 +5 -3
- 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 +19 -16
- package/src/api/internal/RequestContextMiddleware.ts +17 -6
- package/src/api/internal/auth.ts +248 -44
- package/src/api/internal/events.ts +19 -10
- package/src/api/layerUtils.ts +13 -9
- 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 +309 -139
- package/src/api/setupRequest.ts +35 -12
- 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/cosmos-query.test.ts +159 -0
- 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/cosmos-query.test.d.ts.map +1 -0
- 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 +901 -38
- package/test/rawQuery.test.ts +338 -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 +1711 -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,121 @@ 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
|
+
readonly _tag: "relation-length"
|
|
184
|
+
readonly path: string
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* An expression that aggregates values across documents (for use with {@link aggregate}).
|
|
189
|
+
* `agg-field` references a document field to group by; other tags are aggregate functions.
|
|
190
|
+
*/
|
|
191
|
+
export type AggregateExpression =
|
|
192
|
+
| {
|
|
193
|
+
readonly _tag: "agg-field"
|
|
194
|
+
readonly path: string
|
|
195
|
+
}
|
|
196
|
+
| {
|
|
197
|
+
readonly _tag: "agg-count"
|
|
198
|
+
}
|
|
199
|
+
| {
|
|
200
|
+
readonly _tag: "agg-count-when"
|
|
201
|
+
readonly operation: ComputedProjectionOperation
|
|
202
|
+
}
|
|
203
|
+
| {
|
|
204
|
+
readonly _tag: "agg-sum"
|
|
205
|
+
readonly field: string
|
|
206
|
+
}
|
|
207
|
+
| {
|
|
208
|
+
readonly _tag: "agg-min"
|
|
209
|
+
readonly field: string
|
|
210
|
+
}
|
|
211
|
+
| {
|
|
212
|
+
readonly _tag: "agg-max"
|
|
213
|
+
readonly field: string
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export type AggregateMap = Readonly<Record<string, AggregateExpression>>
|
|
217
|
+
|
|
218
|
+
export type ComputedProjectionMap = Readonly<Record<string, ComputedProjectionExpression>>
|
|
100
219
|
export type Q<TFieldValues extends FieldValues> =
|
|
101
220
|
| Initial<TFieldValues>
|
|
102
221
|
| Where<TFieldValues>
|
|
@@ -210,7 +329,9 @@ export class Project<A, TFieldValues extends FieldValues, R, TType extends "one"
|
|
|
210
329
|
extends Data.TaggedClass("project")<{
|
|
211
330
|
current: Query<TFieldValues> | QueryWhere<any, TFieldValues> | QueryEnd<TFieldValues, TType>
|
|
212
331
|
schema: S.Codec<A, TFieldValues, R>
|
|
213
|
-
mode: "collect" | "project" | "transform"
|
|
332
|
+
mode: "collect" | "project" | "transform" | "aggregate"
|
|
333
|
+
computed?: ComputedProjectionMap
|
|
334
|
+
aggregateMap?: AggregateMap
|
|
214
335
|
}>
|
|
215
336
|
implements QueryProjection<TFieldValues, A, R>
|
|
216
337
|
{
|
|
@@ -299,6 +420,35 @@ export const count: {
|
|
|
299
420
|
): QueryProjection<ExtractFieldValuesRefined<Q>, NonNegativeInt, never, "count", ExtractExclusiveness<Q>>
|
|
300
421
|
} = (current) => new Count({ current })
|
|
301
422
|
|
|
423
|
+
/**
|
|
424
|
+
* Attach a projection schema to a query.
|
|
425
|
+
*
|
|
426
|
+
* The `select` clause sent to the store is derived from the schema's encoded
|
|
427
|
+
* AST property names (top-level + per-array sub-keys), so a projection always
|
|
428
|
+
* narrows what is read from the store. The repository augments that select
|
|
429
|
+
* with `id` and `_etag` for change tracking. See {@link toFilter} and the
|
|
430
|
+
* dispatch in `Repository/internal/internal.ts`.
|
|
431
|
+
*
|
|
432
|
+
* Modes — pick based on shape of the decoded value and on whether the
|
|
433
|
+
* persistence-model (PM) reverse-mapping is needed:
|
|
434
|
+
*
|
|
435
|
+
* - `"transform"` (default when `mode` omitted): goes through the repo's
|
|
436
|
+
* `parseMany` pipeline. The raw row is reverse-mapped via the
|
|
437
|
+
* etag/PM cache (re-injecting `_etag` and any PM-shape state) before
|
|
438
|
+
* decoding. Decode failures `orDie` (error channel = `never`). Use when
|
|
439
|
+
* the schema operates on the full PM shape (e.g. full-entity reads that
|
|
440
|
+
* must preserve etag tracking).
|
|
441
|
+
*
|
|
442
|
+
* - `"project"`: decodes the raw encoded row directly with the supplied
|
|
443
|
+
* schema. No PM reverse-mapping, no etag cache merge. Decode failures
|
|
444
|
+
* surface as `S.SchemaError`. Use for slim DTOs / aggregations that do not
|
|
445
|
+
* need etag tracking and whose schema input is a plain subset of `Encoded`.
|
|
446
|
+
*
|
|
447
|
+
* - `"collect"`: like `"project"`, but the schema yields `Option<A>` and
|
|
448
|
+
* `None` values are dropped post-decode (`Array.getSomes`). Use to filter
|
|
449
|
+
* rows during decode (e.g. discriminated-union narrowing where some rows
|
|
450
|
+
* should not appear in the result).
|
|
451
|
+
*/
|
|
302
452
|
export const project: {
|
|
303
453
|
<
|
|
304
454
|
Q extends Query<any> | QueryWhere<any, any, any> | QueryEnd<any, "one" | "many", any>,
|
|
@@ -356,6 +506,292 @@ export const project: {
|
|
|
356
506
|
) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>, E>
|
|
357
507
|
} = (schema: any, mode = "transform") => (current: any) => new Project({ current, schema, mode } as any)
|
|
358
508
|
|
|
509
|
+
export const relation = <TFieldValues extends FieldValues>(
|
|
510
|
+
path: FieldPath<TFieldValues>
|
|
511
|
+
) => ({
|
|
512
|
+
length: (): ComputedProjectionExpression => ({
|
|
513
|
+
_tag: "relation-length",
|
|
514
|
+
path: path as string
|
|
515
|
+
}),
|
|
516
|
+
count: (operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
517
|
+
operation
|
|
518
|
+
? {
|
|
519
|
+
_tag: "relation-count",
|
|
520
|
+
path: path as string,
|
|
521
|
+
operation
|
|
522
|
+
}
|
|
523
|
+
: {
|
|
524
|
+
_tag: "relation-count",
|
|
525
|
+
path: path as string
|
|
526
|
+
},
|
|
527
|
+
any: (operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
528
|
+
operation
|
|
529
|
+
? {
|
|
530
|
+
_tag: "relation-any",
|
|
531
|
+
path: path as string,
|
|
532
|
+
operation
|
|
533
|
+
}
|
|
534
|
+
: {
|
|
535
|
+
_tag: "relation-any",
|
|
536
|
+
path: path as string
|
|
537
|
+
},
|
|
538
|
+
every: (operation: ComputedProjectionOperation): ComputedProjectionExpression => ({
|
|
539
|
+
_tag: "relation-every",
|
|
540
|
+
path: path as string,
|
|
541
|
+
operation
|
|
542
|
+
}),
|
|
543
|
+
distinctCount: (field: string, operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
544
|
+
operation
|
|
545
|
+
? {
|
|
546
|
+
_tag: "relation-distinct-count",
|
|
547
|
+
path: path as string,
|
|
548
|
+
field,
|
|
549
|
+
operation
|
|
550
|
+
}
|
|
551
|
+
: {
|
|
552
|
+
_tag: "relation-distinct-count",
|
|
553
|
+
path: path as string,
|
|
554
|
+
field
|
|
555
|
+
},
|
|
556
|
+
sum: (field: string, operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
557
|
+
operation
|
|
558
|
+
? {
|
|
559
|
+
_tag: "relation-sum",
|
|
560
|
+
path: path as string,
|
|
561
|
+
field,
|
|
562
|
+
operation
|
|
563
|
+
}
|
|
564
|
+
: {
|
|
565
|
+
_tag: "relation-sum",
|
|
566
|
+
path: path as string,
|
|
567
|
+
field
|
|
568
|
+
},
|
|
569
|
+
sumExpr: (
|
|
570
|
+
expression: ComputedProjectionMathExpression,
|
|
571
|
+
operation?: ComputedProjectionOperation
|
|
572
|
+
): ComputedProjectionExpression =>
|
|
573
|
+
operation
|
|
574
|
+
? {
|
|
575
|
+
_tag: "relation-sum-expr",
|
|
576
|
+
path: path as string,
|
|
577
|
+
expression,
|
|
578
|
+
operation
|
|
579
|
+
}
|
|
580
|
+
: {
|
|
581
|
+
_tag: "relation-sum-expr",
|
|
582
|
+
path: path as string,
|
|
583
|
+
expression
|
|
584
|
+
},
|
|
585
|
+
sumExprBy: (
|
|
586
|
+
expression: ComputedProjectionMathExpression,
|
|
587
|
+
options: { unit: string },
|
|
588
|
+
operation?: ComputedProjectionOperation
|
|
589
|
+
): ComputedProjectionExpression =>
|
|
590
|
+
operation
|
|
591
|
+
? {
|
|
592
|
+
_tag: "relation-sum-expr-by",
|
|
593
|
+
path: path as string,
|
|
594
|
+
expression,
|
|
595
|
+
unit: options.unit,
|
|
596
|
+
operation
|
|
597
|
+
}
|
|
598
|
+
: {
|
|
599
|
+
_tag: "relation-sum-expr-by",
|
|
600
|
+
path: path as string,
|
|
601
|
+
expression,
|
|
602
|
+
unit: options.unit
|
|
603
|
+
},
|
|
604
|
+
sumExprNormalized: (
|
|
605
|
+
expression: ComputedProjectionMathExpression,
|
|
606
|
+
options: { unit: string; toBase: string; factors: Readonly<Record<string, number>> },
|
|
607
|
+
operation?: ComputedProjectionOperation
|
|
608
|
+
): ComputedProjectionExpression =>
|
|
609
|
+
operation
|
|
610
|
+
? {
|
|
611
|
+
_tag: "relation-sum-expr-normalized",
|
|
612
|
+
path: path as string,
|
|
613
|
+
expression,
|
|
614
|
+
unit: options.unit,
|
|
615
|
+
toBase: options.toBase,
|
|
616
|
+
factors: options.factors,
|
|
617
|
+
operation
|
|
618
|
+
}
|
|
619
|
+
: {
|
|
620
|
+
_tag: "relation-sum-expr-normalized",
|
|
621
|
+
path: path as string,
|
|
622
|
+
expression,
|
|
623
|
+
unit: options.unit,
|
|
624
|
+
toBase: options.toBase,
|
|
625
|
+
factors: options.factors
|
|
626
|
+
},
|
|
627
|
+
collect: (field: string, operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
628
|
+
operation
|
|
629
|
+
? {
|
|
630
|
+
_tag: "relation-collect",
|
|
631
|
+
path: path as string,
|
|
632
|
+
field,
|
|
633
|
+
distinct: false,
|
|
634
|
+
operation
|
|
635
|
+
}
|
|
636
|
+
: {
|
|
637
|
+
_tag: "relation-collect",
|
|
638
|
+
path: path as string,
|
|
639
|
+
field,
|
|
640
|
+
distinct: false
|
|
641
|
+
},
|
|
642
|
+
collectDistinct: (field: string, operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
643
|
+
operation
|
|
644
|
+
? {
|
|
645
|
+
_tag: "relation-collect",
|
|
646
|
+
path: path as string,
|
|
647
|
+
field,
|
|
648
|
+
distinct: true,
|
|
649
|
+
operation
|
|
650
|
+
}
|
|
651
|
+
: {
|
|
652
|
+
_tag: "relation-collect",
|
|
653
|
+
path: path as string,
|
|
654
|
+
field,
|
|
655
|
+
distinct: true
|
|
656
|
+
},
|
|
657
|
+
collectFields: (fields: readonly string[], operation?: ComputedProjectionOperation): ComputedProjectionExpression =>
|
|
658
|
+
operation
|
|
659
|
+
? {
|
|
660
|
+
_tag: "relation-collect-fields",
|
|
661
|
+
path: path as string,
|
|
662
|
+
fields,
|
|
663
|
+
distinct: false,
|
|
664
|
+
operation
|
|
665
|
+
}
|
|
666
|
+
: {
|
|
667
|
+
_tag: "relation-collect-fields",
|
|
668
|
+
path: path as string,
|
|
669
|
+
fields,
|
|
670
|
+
distinct: false
|
|
671
|
+
},
|
|
672
|
+
collectDistinctFields: (
|
|
673
|
+
fields: readonly string[],
|
|
674
|
+
operation?: ComputedProjectionOperation
|
|
675
|
+
): ComputedProjectionExpression =>
|
|
676
|
+
operation
|
|
677
|
+
? {
|
|
678
|
+
_tag: "relation-collect-fields",
|
|
679
|
+
path: path as string,
|
|
680
|
+
fields,
|
|
681
|
+
distinct: true,
|
|
682
|
+
operation
|
|
683
|
+
}
|
|
684
|
+
: {
|
|
685
|
+
_tag: "relation-collect-fields",
|
|
686
|
+
path: path as string,
|
|
687
|
+
fields,
|
|
688
|
+
distinct: true
|
|
689
|
+
}
|
|
690
|
+
})
|
|
691
|
+
|
|
692
|
+
export const expr = {
|
|
693
|
+
field: (field: string): ComputedProjectionMathExpression => ({ _tag: "field", field }),
|
|
694
|
+
mul: (
|
|
695
|
+
left: ComputedProjectionMathExpression,
|
|
696
|
+
right: ComputedProjectionMathExpression
|
|
697
|
+
): ComputedProjectionMathExpression => ({ _tag: "mul", left, right })
|
|
698
|
+
} as const
|
|
699
|
+
|
|
700
|
+
export const computed = <T extends ComputedProjectionMap>(value: T): T => value
|
|
701
|
+
|
|
702
|
+
export const projectComputed: {
|
|
703
|
+
<
|
|
704
|
+
Q extends Query<any> | QueryWhere<any, any, any> | QueryEnd<any, "one" | "many", any>,
|
|
705
|
+
I extends Record<string, unknown>,
|
|
706
|
+
A = ExtractFieldValuesRefined<Q>,
|
|
707
|
+
R = never,
|
|
708
|
+
E extends boolean = ExtractExclusiveness<Q>
|
|
709
|
+
>(
|
|
710
|
+
schema: S.Codec<Option.Option<A>, I, R>,
|
|
711
|
+
computedProjection: ComputedProjectionMap,
|
|
712
|
+
mode: "collect"
|
|
713
|
+
): (
|
|
714
|
+
current: Q
|
|
715
|
+
) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>, E>
|
|
716
|
+
|
|
717
|
+
<
|
|
718
|
+
Q extends Query<any> | QueryWhere<any, any, any> | QueryEnd<any, "one" | "many", any>,
|
|
719
|
+
I extends Record<string, unknown>,
|
|
720
|
+
A = ExtractFieldValuesRefined<Q>,
|
|
721
|
+
R = never,
|
|
722
|
+
E extends boolean = ExtractExclusiveness<Q>
|
|
723
|
+
>(
|
|
724
|
+
schema: S.Codec<A, I, R>,
|
|
725
|
+
computedProjection: ComputedProjectionMap,
|
|
726
|
+
mode?: "project"
|
|
727
|
+
): (
|
|
728
|
+
current: Q
|
|
729
|
+
) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>, E>
|
|
730
|
+
} = (schema: any, computedProjection: ComputedProjectionMap, mode = "project") => (current: any) =>
|
|
731
|
+
new Project({ current, schema, mode, computed: computedProjection } as any)
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* DSL helpers for building aggregate expressions used with {@link aggregate}.
|
|
735
|
+
*
|
|
736
|
+
* - `agg.field(path)` — references a document field for GROUP BY (with optional output alias)
|
|
737
|
+
* - `agg.count()` — COUNT(*) across all rows in the group
|
|
738
|
+
* - `agg.countWhen(op)` — COUNT of rows matching the filter operation
|
|
739
|
+
* - `agg.sum(field)` — SUM of a numeric document field
|
|
740
|
+
* - `agg.min(field)` / `agg.max(field)` — MIN/MAX of a document field
|
|
741
|
+
*/
|
|
742
|
+
export const agg = {
|
|
743
|
+
field: (path: string): AggregateExpression => ({ _tag: "agg-field", path }),
|
|
744
|
+
count: (): AggregateExpression => ({ _tag: "agg-count" }),
|
|
745
|
+
countWhen: (operation: ComputedProjectionOperation): AggregateExpression => ({
|
|
746
|
+
_tag: "agg-count-when",
|
|
747
|
+
operation
|
|
748
|
+
}),
|
|
749
|
+
sum: (field: string): AggregateExpression => ({ _tag: "agg-sum", field }),
|
|
750
|
+
min: (field: string): AggregateExpression => ({ _tag: "agg-min", field }),
|
|
751
|
+
max: (field: string): AggregateExpression => ({ _tag: "agg-max", field })
|
|
752
|
+
} as const
|
|
753
|
+
|
|
754
|
+
/**
|
|
755
|
+
* Attach an aggregate projection to a query, performing GROUP BY + aggregate functions at the
|
|
756
|
+
* database level instead of fetching all rows and grouping in memory.
|
|
757
|
+
*
|
|
758
|
+
* The `aggregateMap` maps each output field name to either:
|
|
759
|
+
* - `agg.field(path)` — a group-by field (document path → output alias)
|
|
760
|
+
* - `agg.count()` / `agg.countWhen(op)` / `agg.sum(f)` / `agg.min(f)` / `agg.max(f)` — an aggregate
|
|
761
|
+
*
|
|
762
|
+
* The output is decoded directly with `schema` (no PM reverse-mapping, no etag tracking).
|
|
763
|
+
* Decode failures surface as `S.SchemaError`.
|
|
764
|
+
*
|
|
765
|
+
* @example
|
|
766
|
+
* ```ts
|
|
767
|
+
* repo.query(
|
|
768
|
+
* where("status", "active"),
|
|
769
|
+
* aggregate(
|
|
770
|
+
* S.Struct({ city: S.String, count: S.Number }),
|
|
771
|
+
* {
|
|
772
|
+
* city: agg.field("address.city"),
|
|
773
|
+
* count: agg.countWhen((q) => q.pipe(where("active", true)))
|
|
774
|
+
* }
|
|
775
|
+
* )
|
|
776
|
+
* )
|
|
777
|
+
* ```
|
|
778
|
+
*/
|
|
779
|
+
export const aggregate: {
|
|
780
|
+
<
|
|
781
|
+
Q extends Query<any> | QueryWhere<any, any, any> | QueryEnd<any, "one" | "many", any>,
|
|
782
|
+
I extends Record<string, unknown>,
|
|
783
|
+
A = ExtractFieldValuesRefined<Q>,
|
|
784
|
+
R = never,
|
|
785
|
+
E extends boolean = ExtractExclusiveness<Q>
|
|
786
|
+
>(
|
|
787
|
+
schema: S.Codec<A, I, R>,
|
|
788
|
+
aggregateMap: AggregateMap
|
|
789
|
+
): (
|
|
790
|
+
current: Q
|
|
791
|
+
) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>, E>
|
|
792
|
+
} = (schema: any, aggregateMap: AggregateMap) => (current: any) =>
|
|
793
|
+
new Project({ current, schema, mode: "aggregate", aggregateMap } as any)
|
|
794
|
+
|
|
359
795
|
type GetArV<T> = T extends readonly (infer R)[] ? R : never
|
|
360
796
|
|
|
361
797
|
export type FilterContinuations<IsCurrentInitial extends boolean = false> = {
|
|
@@ -1538,7 +1974,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1538
1974
|
fb: (current: Query<TFieldValues>) => QueryWhere<TFieldValues, TFieldValuesRefined2, E2>
|
|
1539
1975
|
): (
|
|
1540
1976
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1541
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2
|
|
1977
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2>
|
|
1542
1978
|
|
|
1543
1979
|
<
|
|
1544
1980
|
TFieldValues extends FieldValues,
|
|
@@ -1555,7 +1991,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1555
1991
|
) => QueryWhere<TFieldValues, TFieldValuesRefined3, E3>
|
|
1556
1992
|
): (
|
|
1557
1993
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1558
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined3
|
|
1994
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined3>
|
|
1559
1995
|
|
|
1560
1996
|
<
|
|
1561
1997
|
TFieldValues extends FieldValues,
|
|
@@ -1577,7 +2013,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1577
2013
|
) => QueryWhere<TFieldValues, TFieldValuesRefined4, E4>
|
|
1578
2014
|
): (
|
|
1579
2015
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1580
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined4
|
|
2016
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined4>
|
|
1581
2017
|
|
|
1582
2018
|
<
|
|
1583
2019
|
TFieldValues extends FieldValues,
|
|
@@ -1604,7 +2040,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1604
2040
|
) => QueryWhere<TFieldValues, TFieldValuesRefined5, E5>
|
|
1605
2041
|
): (
|
|
1606
2042
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1607
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined5
|
|
2043
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined5>
|
|
1608
2044
|
|
|
1609
2045
|
<
|
|
1610
2046
|
TFieldValues extends FieldValues,
|
|
@@ -1636,7 +2072,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1636
2072
|
) => QueryWhere<TFieldValues, TFieldValuesRefined6, E6>
|
|
1637
2073
|
): (
|
|
1638
2074
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1639
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined6
|
|
2075
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined6>
|
|
1640
2076
|
|
|
1641
2077
|
<
|
|
1642
2078
|
TFieldValues extends FieldValues,
|
|
@@ -1673,7 +2109,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1673
2109
|
) => QueryWhere<TFieldValues, TFieldValuesRefined7, E7>
|
|
1674
2110
|
): (
|
|
1675
2111
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1676
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined7
|
|
2112
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined7>
|
|
1677
2113
|
|
|
1678
2114
|
<
|
|
1679
2115
|
TFieldValues extends FieldValues,
|
|
@@ -1715,7 +2151,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1715
2151
|
) => QueryWhere<TFieldValues, TFieldValuesRefined8, E8>
|
|
1716
2152
|
): (
|
|
1717
2153
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1718
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2
|
|
2154
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined2>
|
|
1719
2155
|
|
|
1720
2156
|
<
|
|
1721
2157
|
TFieldValues extends FieldValues,
|
|
@@ -1762,7 +2198,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1762
2198
|
) => QueryWhere<TFieldValues, TFieldValuesRefined9, E9>
|
|
1763
2199
|
): (
|
|
1764
2200
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1765
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined9
|
|
2201
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined9>
|
|
1766
2202
|
|
|
1767
2203
|
<
|
|
1768
2204
|
TFieldValues extends FieldValues,
|
|
@@ -1814,7 +2250,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1814
2250
|
) => QueryWhere<TFieldValues, TFieldValuesRefined10, E10>
|
|
1815
2251
|
): (
|
|
1816
2252
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1817
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined10
|
|
2253
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined10>
|
|
1818
2254
|
|
|
1819
2255
|
<
|
|
1820
2256
|
TFieldValues extends FieldValues,
|
|
@@ -1871,7 +2307,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1871
2307
|
) => QueryWhere<TFieldValues, TFieldValuesRefined11, E11>
|
|
1872
2308
|
): (
|
|
1873
2309
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1874
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined11
|
|
2310
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined11>
|
|
1875
2311
|
|
|
1876
2312
|
<
|
|
1877
2313
|
TFieldValues extends FieldValues,
|
|
@@ -1933,7 +2369,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
1933
2369
|
) => QueryWhere<TFieldValues, TFieldValuesRefined12, E12>
|
|
1934
2370
|
): (
|
|
1935
2371
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
1936
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined12
|
|
2372
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined12>
|
|
1937
2373
|
|
|
1938
2374
|
<
|
|
1939
2375
|
TFieldValues extends FieldValues,
|
|
@@ -2000,7 +2436,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
2000
2436
|
) => QueryWhere<TFieldValues, TFieldValuesRefined13, E13>
|
|
2001
2437
|
): (
|
|
2002
2438
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
2003
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined13
|
|
2439
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined13>
|
|
2004
2440
|
|
|
2005
2441
|
<
|
|
2006
2442
|
TFieldValues extends FieldValues,
|
|
@@ -2072,7 +2508,7 @@ export type NestedQueriesFreeDisjointRefinement = {
|
|
|
2072
2508
|
) => QueryWhere<TFieldValues, TFieldValuesRefined14, E14>
|
|
2073
2509
|
): (
|
|
2074
2510
|
current: QueryWhere<TFieldValues, TFieldValuesRefined, E>
|
|
2075
|
-
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined14
|
|
2511
|
+
) => QueryWhere<TFieldValues, TFieldValuesRefined | TFieldValuesRefined14>
|
|
2076
2512
|
}
|
|
2077
2513
|
|
|
2078
2514
|
export type FilterWhere =
|
|
@@ -2099,12 +2535,12 @@ export type WhereEveryOrSome =
|
|
|
2099
2535
|
subPath: TFieldName,
|
|
2100
2536
|
dude: (
|
|
2101
2537
|
current: Query<TFieldValues[TFieldName][number]>
|
|
2102
|
-
) => QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]
|
|
2538
|
+
) => QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]>,
|
|
2103
2539
|
...dudes: ((
|
|
2104
|
-
current: QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]
|
|
2105
|
-
) => QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]
|
|
2540
|
+
current: QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]>
|
|
2541
|
+
) => QueryWhere<TFieldValues[TFieldName][number], TFieldValues[TFieldName][number]>)[]
|
|
2106
2542
|
): (
|
|
2107
2543
|
current: Query<TFieldValues>
|
|
2108
|
-
) => QueryWhere<TFieldValues, TFieldValues
|
|
2544
|
+
) => QueryWhere<TFieldValues, TFieldValues>
|
|
2109
2545
|
}
|
|
2110
2546
|
& FilterContinuationsWithSubpath
|