@dudousxd/nestjs-filter 1.16.0 → 1.18.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.
- package/CHANGELOG.md +28 -0
- package/dist/adapter/adapter.d.ts +139 -1
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/decorator/computed.decorator.d.ts +11 -0
- package/dist/decorator/computed.decorator.d.ts.map +1 -1
- package/dist/decorator/computed.decorator.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runner.d.ts +99 -6
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +230 -22
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +51 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @dudousxd/nestjs-filter
|
|
2
2
|
|
|
3
|
+
## 1.18.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#60](https://github.com/DavideCarvalho/nestjs-filter/pull/60) [`d7bb0ad`](https://github.com/DavideCarvalho/nestjs-filter/commit/d7bb0ad31baaa7e430d1e7528b440fe7c5addf50) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Add opt-in computed-field **projection** (`project: true`) plus computed support in `distinct` and `groupByCount`.
|
|
8
|
+
|
|
9
|
+
Until now a computed field's value never entered the SELECT list — computed aliases only dispatched on filter (`applyComputedField`) and sort (`applyComputedSort`), and `distinct`/`groupByCount` treated a computed alias as an unknown column. This closes all three gaps in core, defining the adapter contract:
|
|
10
|
+
|
|
11
|
+
- **`project: true`** — the inline form grows the flag (`computed: { openCount: { source, project: true } }`, with `type` now optional in the object form) and `@Computed({ project: true })` mirrors it. For each opted-in entry, `FilterRunner.apply()` dispatches the new optional `FilterAdapter.applyComputedSelect(qb, alias, source)` capability (warn-and-skip when unimplemented). Ordering contract: dispatched AFTER `applyDistinct`/`applySelect`, so a sparse `select` keeps its narrowed list and the computed alias is ADDED to it; skipped entirely when a distinct projection was applied. Execution seam: static mode never runs the query, so the adapter records the projected aliases per builder and its `getResultAndCount(qb)` returns the computed values on rows under their aliases (contract documented on `getResultAndCount`). NOTE: unlike `type`, `project` is the first computed option that is NOT a runtime-invisible codegen hint — it changes the emitted query.
|
|
12
|
+
- **Computed `distinct`** — a computed alias in the `distinct` list now bypasses column validation (dev-declared, like computed sorts) and dispatches the new optional `FilterAdapter.applyComputedDistinct(qb, alias, source)` (warn-and-skip); plain columns still batch through `applyDistinct` first, then computed aliases in request order. `getDistinctResultAndCount` rows are already plain objects, so the computed value comes back naturally under its alias.
|
|
13
|
+
- **Computed `groupByCount`** — the adapter capability's `field` parameter widens to `GroupByCountField = string | { alias: string; source: ComputedSource }` (new exported type); the runner passes `{ alias, source }` when the grouping field resolves to a computed alias. The registry comes from the new `FilterRunner.groupByCount` option `filterClass` (static variant, DI-resolved) or, absent that, from `@Filterable` metadata declared on the entity itself (the same entity-level-metadata pattern dynamic mode uses for `aliases`). Adapters implementing `groupByCount` must handle both field shapes.
|
|
14
|
+
|
|
15
|
+
**Breaking for direct users of `buildComputedRegistry`** (now also exported from the package root, together with its entry type): it returns `Map<string, ComputedRegistryEntry>` (`{ source: ComputedSource; project: boolean }`) instead of `Map<string, ComputedSource>` — callers that consumed the mapped value as the source itself must read `.source`. The public filter pipeline behavior is unchanged unless a declaration opts in with `project: true` or a request names a computed alias in `distinct`/`groupByCount`.
|
|
16
|
+
|
|
17
|
+
## 1.17.0
|
|
18
|
+
|
|
19
|
+
### Minor Changes
|
|
20
|
+
|
|
21
|
+
- 903c637: Add `groupByCount` — a terminal group-by-count aggregation over a primary-entity column, with an optional parameterized numeric bucket.
|
|
22
|
+
|
|
23
|
+
Expresses the chart-feeding query shape the entity-row contract couldn't: `SELECT <col> AS value, COUNT(*) AS count ... GROUP BY <col>`, plus a bucketed histogram variant (`FLOOR(col / :bucket) * :bucket`). It's a terminal mode, mutually exclusive with entity-row output — which makes a root-level `GROUP BY` safe (aggregation replaces rows rather than multiplying them, so the "never GROUP BY on the outer query" invariant for entity-row queries is untouched).
|
|
24
|
+
|
|
25
|
+
- **Core**: optional `FilterAdapter.groupByCount` contract method (same optional-capability convention as `applyDistinct`), a `FilterRunner.groupByCount(entity, input, opts)` runner method (dynamic mode, mirroring `findAndCount`), and `GroupByCountSpec`/`GroupByCountItem`/`GroupByCountBucket`/`GroupByCountResult` types. The grouping field is validated against the entity's filterable columns with the same machinery `sort`/`distinct` use — an unknown identifier is rejected (`400`) and never reaches SQL; an adapter without support throws a clear error.
|
|
26
|
+
- **MikroORM**: `groupByCount` implementation. The column is resolved via ORM metadata (never client text) and defensively quoted; the bucket width binds as a `?` parameter, never string-interpolated. Emits a root `GROUP BY` only in this mode.
|
|
27
|
+
- **Client**: terminal `groupByCount(field, opts?)` builder method (and typed narrowing on `TypedFilterQueryBuilder`), a `groupByCount` block on `FilterQueryResult`/`TypedFilterQuery`, and the `{ value, count }[]` / bucketed `{ bucketStart, bucketEnd, count }[]` response shapes.
|
|
28
|
+
|
|
29
|
+
Scope: `COUNT(*)` only, a single grouping column, numeric bucket — no `HAVING`, multi-column grouping, or date truncation. Purely additive.
|
|
30
|
+
|
|
3
31
|
## 1.16.0
|
|
4
32
|
|
|
5
33
|
### Minor Changes
|
|
@@ -28,6 +28,21 @@ export interface EntityRelationInfo {
|
|
|
28
28
|
/** Relation cardinality type. */
|
|
29
29
|
type: 'one-to-one' | 'many-to-one' | 'one-to-many' | 'many-to-many';
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* The grouping target of {@link FilterAdapter.groupByCount}: a plain
|
|
33
|
+
* (already-validated) column property name, or — when the requested field
|
|
34
|
+
* resolves to a computed/virtual alias — an `{ alias, source }` pair carrying
|
|
35
|
+
* the dev-provided computed expression to group by. Adapters implementing
|
|
36
|
+
* `groupByCount` must handle both shapes: for the computed shape, group by the
|
|
37
|
+
* evaluated `source` expression (aliasing the group key as `value`, exactly as
|
|
38
|
+
* for a plain column) instead of resolving a column. The `source` is
|
|
39
|
+
* dev-provided (never client input); an optional numeric bucket applies to the
|
|
40
|
+
* expression the same way it applies to a column.
|
|
41
|
+
*/
|
|
42
|
+
export type GroupByCountField = string | {
|
|
43
|
+
alias: string;
|
|
44
|
+
source: ComputedSource;
|
|
45
|
+
};
|
|
31
46
|
/**
|
|
32
47
|
* Behavior flags for full-text vector search ({@link FilterAdapter.applyVectorSearch}).
|
|
33
48
|
*/
|
|
@@ -234,6 +249,52 @@ export interface FilterAdapter {
|
|
|
234
249
|
* @param entity - The root entity class.
|
|
235
250
|
*/
|
|
236
251
|
applyDistinct?(qb: unknown, fields: string[], entity: Type<unknown>): void;
|
|
252
|
+
/**
|
|
253
|
+
* Terminal group-by-count aggregation mode. Emits
|
|
254
|
+
* `SELECT <col-or-bucket> AS value, COUNT(*) AS count ... GROUP BY <col-or-bucket>`
|
|
255
|
+
* over the **root** entity, returning one row per distinct value (or per
|
|
256
|
+
* numeric bucket when `opts.bucket` is given).
|
|
257
|
+
*
|
|
258
|
+
* Unlike the to-many aggregate seam ({@link applyAggregateField} /
|
|
259
|
+
* {@link applyAggregateSort}), a root-level `GROUP BY` is safe here: this mode
|
|
260
|
+
* is mutually exclusive with entity-row output, so aggregation output replaces
|
|
261
|
+
* rows rather than multiplying them — the "never GROUP BY on the OUTER query"
|
|
262
|
+
* invariant that guards entity-row queries does not apply.
|
|
263
|
+
*
|
|
264
|
+
* `field` must be an already-validated filterable/sortable column (the caller
|
|
265
|
+
* resolves it through the same allowlist/metadata path `sort`/`applyDistinct`
|
|
266
|
+
* use), so no client-supplied identifier reaches the emitted SQL. When
|
|
267
|
+
* `opts.bucket` is a positive number, the bucket width binds as a **parameter**
|
|
268
|
+
* (never string-interpolated) and `value` is the bucket's start
|
|
269
|
+
* (`FLOOR(col / bucket) * bucket`); the caller derives `bucketEnd` from it.
|
|
270
|
+
*
|
|
271
|
+
* When the requested grouping field resolves to a **computed/virtual alias**
|
|
272
|
+
* (declared via `@Filterable.computed` / `@Computed`), the runner passes the
|
|
273
|
+
* `{ alias, source }` shape of {@link GroupByCountField} instead of a column
|
|
274
|
+
* name — the adapter then groups by the evaluated computed expression
|
|
275
|
+
* (dev-provided, never client input), still aliasing the group key as
|
|
276
|
+
* `value`, with `opts.bucket` applying to the expression the same way.
|
|
277
|
+
*
|
|
278
|
+
* Active WHERE / search clauses are applied upstream by the runner before this
|
|
279
|
+
* terminal call; sort/pagination/distinct/select are not.
|
|
280
|
+
*
|
|
281
|
+
* Optional — adapters without aggregation support don't implement it; the
|
|
282
|
+
* runner then rejects a `groupByCount` request with a clear error.
|
|
283
|
+
*
|
|
284
|
+
* @param qb - The query builder instance (WHERE/search already applied).
|
|
285
|
+
* @param field - The already-validated grouping column (property name), or
|
|
286
|
+
* the `{ alias, source }` pair of a computed/virtual grouping field.
|
|
287
|
+
* @param entity - The root entity class.
|
|
288
|
+
* @param opts - Optional numeric bucket width for the bucketed variant.
|
|
289
|
+
* @returns One `{ value, count }` per group (`value` is the bucket start when
|
|
290
|
+
* bucketed); `count` is the `COUNT(*)` for that group.
|
|
291
|
+
*/
|
|
292
|
+
groupByCount?(qb: unknown, field: GroupByCountField, entity: Type<unknown>, opts?: {
|
|
293
|
+
bucket?: number;
|
|
294
|
+
}): Promise<Array<{
|
|
295
|
+
value: unknown;
|
|
296
|
+
count: number;
|
|
297
|
+
}>>;
|
|
237
298
|
/**
|
|
238
299
|
* Restricts the query's projection to the given field(s) — JSON:API "sparse
|
|
239
300
|
* fieldsets". Unlike {@link applyDistinct}, this adds **no** `DISTINCT`
|
|
@@ -283,6 +344,63 @@ export interface FilterAdapter {
|
|
|
283
344
|
* @param direction - Sort direction.
|
|
284
345
|
*/
|
|
285
346
|
applyComputedSort?(qb: unknown, source: ComputedSource, direction: 'asc' | 'desc'): void;
|
|
347
|
+
/**
|
|
348
|
+
* Projects a computed field into the SELECT list under its alias, and records
|
|
349
|
+
* the alias so a later `getResultAndCount(qb)` can return the value on rows.
|
|
350
|
+
*
|
|
351
|
+
* Dispatched by `FilterRunner.apply()` for every computed declaration that
|
|
352
|
+
* opts in via `project: true` (inline `{ source, project: true }` or
|
|
353
|
+
* `@Computed({ project: true })`). Two contract points:
|
|
354
|
+
*
|
|
355
|
+
* - **Additive projection.** The runner dispatches this AFTER
|
|
356
|
+
* {@link applyDistinct}/{@link applySelect}, so whatever projection is
|
|
357
|
+
* already on the builder (the full entity row, or a sparse `select`
|
|
358
|
+
* narrowing) must be KEPT and the computed expression ADDED to it under
|
|
359
|
+
* `alias` (e.g. an `addSelect`, never a projection-replacing `select`).
|
|
360
|
+
* - **Alias bookkeeping.** The adapter must record the alias for this exact
|
|
361
|
+
* builder instance (e.g. in a `WeakMap<qb, string[]>` — the runner never
|
|
362
|
+
* re-passes the aliases) so its {@link getResultAndCount} can surface the
|
|
363
|
+
* computed value on the returned rows under the same alias. See the
|
|
364
|
+
* projection-aware contract on {@link getResultAndCount}.
|
|
365
|
+
*
|
|
366
|
+
* The `source` is dev-provided (never client input) — the same safety
|
|
367
|
+
* contract as {@link applyComputedField}.
|
|
368
|
+
*
|
|
369
|
+
* Optional — when absent and a filter declares `project: true`, the runner
|
|
370
|
+
* warns and skips the projection (rows simply lack the alias).
|
|
371
|
+
*
|
|
372
|
+
* @param qb - The query builder instance.
|
|
373
|
+
* @param alias - The computed field's declared alias (a safe identifier).
|
|
374
|
+
* @param source - The computed source (string | function).
|
|
375
|
+
*/
|
|
376
|
+
applyComputedSelect?(qb: unknown, alias: string, source: ComputedSource): void;
|
|
377
|
+
/**
|
|
378
|
+
* Projects a computed field as a member of a **DISTINCT** projection under
|
|
379
|
+
* its alias. Dispatched by the runner when a request's `distinct` list names
|
|
380
|
+
* a computed/virtual alias (dev-declared via `@Filterable.computed` /
|
|
381
|
+
* `@Computed`): plain columns in the same `distinct` list still go through
|
|
382
|
+
* {@link applyDistinct} (one batched call, dispatched first); each computed
|
|
383
|
+
* alias is then added to that distinct projection via this method, in
|
|
384
|
+
* request order.
|
|
385
|
+
*
|
|
386
|
+
* Execution contract: a distinct projection is executed through
|
|
387
|
+
* {@link getDistinctResultAndCount}, whose rows are already plain
|
|
388
|
+
* `Record<string, unknown>` objects (no entity hydration) — the computed
|
|
389
|
+
* value therefore comes back naturally under `alias` with no extra
|
|
390
|
+
* bookkeeping; the distinct-tuple `total` must count the full projected
|
|
391
|
+
* tuple including the computed expression.
|
|
392
|
+
*
|
|
393
|
+
* The `source` is dev-provided (never client input) — the same safety
|
|
394
|
+
* contract as {@link applyComputedField}.
|
|
395
|
+
*
|
|
396
|
+
* Optional — when absent and a request lists a computed alias in `distinct`,
|
|
397
|
+
* the runner warns and skips that alias (plain distinct columns still apply).
|
|
398
|
+
*
|
|
399
|
+
* @param qb - The query builder instance.
|
|
400
|
+
* @param alias - The computed field's declared alias (a safe identifier).
|
|
401
|
+
* @param source - The computed source (string | function).
|
|
402
|
+
*/
|
|
403
|
+
applyComputedDistinct?(qb: unknown, alias: string, source: ComputedSource): void;
|
|
286
404
|
/**
|
|
287
405
|
* Applies an ORDER BY on a **to-many aggregate field** — a virtual sub-path
|
|
288
406
|
* like `posts.$count` or `posts.$sum.views`, parsed via `parseAggregatePath`.
|
|
@@ -333,7 +451,19 @@ export interface FilterAdapter {
|
|
|
333
451
|
* Executes the query builder and returns the page of entities plus the total
|
|
334
452
|
* count (ignoring limit/offset). Used by `FilterRunner.findAndCount`.
|
|
335
453
|
*
|
|
336
|
-
*
|
|
454
|
+
* **Projection-aware contract (computed `project: true`):** when
|
|
455
|
+
* {@link applyComputedSelect} has recorded computed aliases for this exact
|
|
456
|
+
* `qb` (the adapter is expected to track them per builder — e.g. a
|
|
457
|
+
* `WeakMap<qb, string[]>` — the runner/caller never re-passes them), the
|
|
458
|
+
* returned rows must carry each computed value under its alias alongside the
|
|
459
|
+
* entity's own fields. This is the execution seam for projected computed
|
|
460
|
+
* fields: static mode (`FilterRunner.apply()`) never executes the query
|
|
461
|
+
* itself — the consumer builds via `apply()` and then fetches through this
|
|
462
|
+
* method, so alias bookkeeping lives entirely in the adapter. With no
|
|
463
|
+
* recorded aliases, behavior is unchanged (plain entity rows).
|
|
464
|
+
*
|
|
465
|
+
* Optional — required only if you call `findAndCount` (or execute an
|
|
466
|
+
* `apply()`-built query through the adapter).
|
|
337
467
|
*
|
|
338
468
|
* @param qb - The query builder instance.
|
|
339
469
|
* @returns The fetched rows and the total matching count.
|
|
@@ -355,6 +485,14 @@ export interface FilterAdapter {
|
|
|
355
485
|
* the raw projection instead, mapping DB columns back to the requested
|
|
356
486
|
* property names.
|
|
357
487
|
*
|
|
488
|
+
* Interaction with computed distinct ({@link applyComputedDistinct}): since
|
|
489
|
+
* the rows here are already raw `Record<string, unknown>` objects, a
|
|
490
|
+
* computed alias projected into the distinct list simply comes back as one
|
|
491
|
+
* more key on each row — no per-builder alias bookkeeping is needed (unlike
|
|
492
|
+
* {@link getResultAndCount}'s hydrated path). `fields` carries only the
|
|
493
|
+
* plain (column) distinct fields; the total must nonetheless count distinct
|
|
494
|
+
* tuples over the FULL projection, computed aliases included.
|
|
495
|
+
*
|
|
358
496
|
* Optional — required only when `FilterRunner.findAndCount` is called with a
|
|
359
497
|
* `distinct` projection; `findAndCount` throws if the adapter doesn't
|
|
360
498
|
* implement it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,17 @@ export interface ComputedOptions {
|
|
|
5
5
|
/** Codegen-only value-type hint for filtering the computed field. No runtime
|
|
6
6
|
* effect. Same shape as `@FilterFor`'s `type`. */
|
|
7
7
|
type?: FilterFieldTypeHint;
|
|
8
|
+
/**
|
|
9
|
+
* Opt-in SELECT projection. When true, `FilterRunner.apply()` projects the
|
|
10
|
+
* computed expression into the SELECT list under the field's alias (via the
|
|
11
|
+
* adapter's `applyComputedSelect` capability — warn-and-skip when the
|
|
12
|
+
* adapter doesn't implement it), so executed rows carry the computed value.
|
|
13
|
+
*
|
|
14
|
+
* NOTE: unlike `type` (and every prior `@Computed` option), this is NOT a
|
|
15
|
+
* runtime-invisible codegen hint — it changes the emitted query. Defaults
|
|
16
|
+
* to `false` (filter/sort-only, the historical behavior).
|
|
17
|
+
*/
|
|
18
|
+
project?: boolean;
|
|
8
19
|
}
|
|
9
20
|
/** Declares a computed/virtual field whose SQL source is the decorated method's
|
|
10
21
|
* return value (a string, raw fragment, or ORM query builder). The alias
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computed.decorator.d.ts","sourceRoot":"","sources":["../../src/decorator/computed.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B;sDACkD;IAClD,IAAI,CAAC,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"computed.decorator.d.ts","sourceRoot":"","sources":["../../src/decorator/computed.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B;sDACkD;IAClD,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,eAAe,CAAC;AAClE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,eAAe,CAAC;AA2BjF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAclE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAW/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computed.decorator.js","sourceRoot":"","sources":["../../src/decorator/computed.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"computed.decorator.js","sourceRoot":"","sources":["../../src/decorator/computed.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAmCzE,MAAM,UAAU,QAAQ,CACtB,WAAsC,EACtC,SAA2B;IAE3B,MAAM,KAAK,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,IAAI,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IACvE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,IAAI,UAAU,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAiB,EAAE,IAAI,CAAC;YAC/D,IAAI,GAAG,EAAkB,CAAwB,CAAC;QACpD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC9B,OAAO,CAAC,cAAc,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE1D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,sBAAsB,EAAE,IAAI,CAAC;gBACxE,IAAI,GAAG,EAA2B,CAAiC,CAAC;YACtE,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO,CAAC,cAAc,CAAC,sBAAsB,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAiC,CAAC;AAEtE,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAkB,CAAC,CAAC;IACxD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,OAAO,GAAkB,MAAM,CAAC;IACpC,OAAO,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvE,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAiB,EAAE,OAAO,CAEhD,CAAC;QACd,IAAI,GAAG;YAAE,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxF,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,MAAkB,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAClD,IAAI,OAAO,GAAkB,MAAM,CAAC;IACpC,OAAO,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvE,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,sBAAsB,EAAE,OAAO,CAErD,CAAC;QACd,IAAI,GAAG;YAAE,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const VERSION = "0.0.0";
|
|
2
2
|
export { BaseFilter } from './base-filter.js';
|
|
3
|
-
export type { FilterAdapter, EntityFieldInfo, EntityRelationInfo, VectorSearchOptions, } from './adapter/adapter.js';
|
|
3
|
+
export type { FilterAdapter, EntityFieldInfo, EntityRelationInfo, GroupByCountField, VectorSearchOptions, } from './adapter/adapter.js';
|
|
4
4
|
export { Filterable, getFilterableMetadata } from './decorator/filterable.decorator.js';
|
|
5
5
|
export { normalizeAllowed, allowedFieldNames } from './decorator/allowed.js';
|
|
6
6
|
export type { NormalizedAllowed } from './decorator/allowed.js';
|
|
@@ -17,11 +17,12 @@ export { TenantScoped, getTenantScopedField, } from './decorator/tenant-scoped.d
|
|
|
17
17
|
export type { ContextAccessor, ContextStore, UserRef } from './context-accessor.js';
|
|
18
18
|
export { ApplyFilterInterceptor } from './interceptor/apply-filter.interceptor.js';
|
|
19
19
|
export { FilterExceptionFilter } from './filter/filter-exception.filter.js';
|
|
20
|
-
export { FilterRunner } from './runner.js';
|
|
20
|
+
export { FilterRunner, buildComputedRegistry } from './runner.js';
|
|
21
|
+
export type { ComputedRegistryEntry } from './runner.js';
|
|
21
22
|
export { FilterModule } from './module.js';
|
|
22
23
|
export { FilterException, FilterNotRegisteredException, FilterMissingEntityException, FilterStateUnavailableException, UnknownFilterKeyException, FilterValidationException, FilterMissingAdapterException, FilterMethodException, } from './errors/exceptions.js';
|
|
23
24
|
export { FILTER_MODULE_OPTIONS, FILTER_ADAPTER, FILTERABLE_METADATA, FILTER_FOR_METADATA, FILTER_FOR_OPTS_METADATA, COMPUTED_METADATA, COMPUTED_OPTS_METADATA, FILTER_RELATIONS_METADATA, APPLY_FILTER_METADATA, APPLY_FILTER_REQ_KEY, TENANT_SCOPED_METADATA, CONTEXT_ACCESSOR, } from './tokens.js';
|
|
24
|
-
export type { AllowedFieldEntry, ApplyFilterOptions, CursorPage, CursorPagination, EntityDescription, FieldMeta, FilterableOptions, FilterContext, FilterInput, FilterInputStrict, FilterInputLoose, FilterMetadata, FilterModuleOptions, FilterModuleOptionsFactory, FilterModuleAsyncOptions, InputFormat, InputNormalizer, InputSource, OffsetPagination, OnUnknownKey, RelationMeta, SortItem, StructuredInput, ValidationMode, } from './types.js';
|
|
25
|
+
export type { AllowedFieldEntry, ApplyFilterOptions, CursorPage, CursorPagination, EntityDescription, FieldMeta, FilterableOptions, FilterContext, FilterInput, FilterInputStrict, FilterInputLoose, FilterMetadata, FilterModuleOptions, FilterModuleOptionsFactory, FilterModuleAsyncOptions, GroupByCountSpec, GroupByCountItem, GroupByCountBucket, GroupByCountResult, InputFormat, InputNormalizer, InputSource, OffsetPagination, OnUnknownKey, RelationMeta, SortItem, StructuredInput, ValidationMode, } from './types.js';
|
|
25
26
|
export { resolveInputFromRequest } from './input/source-resolver.js';
|
|
26
27
|
export { normalizeInput } from './input/normalizer.js';
|
|
27
28
|
export { parseSpatieInput } from './input/spatie-parser.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,SAAS,EACT,eAAe,EACf,mBAAmB,GACpB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EACV,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACjG,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,YAAY,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACjG,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EACL,YAAY,EACZ,oBAAoB,GACrB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ export { Relations, getRelationsMap, resolveRelation } from './decorator/relatio
|
|
|
10
10
|
export { TenantScoped, getTenantScopedField, } from './decorator/tenant-scoped.decorator.js';
|
|
11
11
|
export { ApplyFilterInterceptor } from './interceptor/apply-filter.interceptor.js';
|
|
12
12
|
export { FilterExceptionFilter } from './filter/filter-exception.filter.js';
|
|
13
|
-
export { FilterRunner } from './runner.js';
|
|
13
|
+
export { FilterRunner, buildComputedRegistry } from './runner.js';
|
|
14
14
|
export { FilterModule } from './module.js';
|
|
15
15
|
export { FilterException, FilterNotRegisteredException, FilterMissingEntityException, FilterStateUnavailableException, UnknownFilterKeyException, FilterValidationException, FilterMissingAdapterException, FilterMethodException, } from './errors/exceptions.js';
|
|
16
16
|
export { FILTER_MODULE_OPTIONS, FILTER_ADAPTER, FILTERABLE_METADATA, FILTER_FOR_METADATA, FILTER_FOR_OPTS_METADATA, COMPUTED_METADATA, COMPUTED_OPTS_METADATA, FILTER_RELATIONS_METADATA, APPLY_FILTER_METADATA, APPLY_FILTER_REQ_KEY, TENANT_SCOPED_METADATA, CONTEXT_ACCESSOR, } from './tokens.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQ9C,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,SAAS,EACT,eAAe,EACf,mBAAmB,GACpB,MAAM,qCAAqC,CAAC;AAK7C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AASjG,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAEjG,OAAO,EACL,YAAY,EACZ,oBAAoB,GACrB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,eAAe,EACf,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AA+BrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -2,15 +2,31 @@ import { type Type } from '@nestjs/common';
|
|
|
2
2
|
import { ModuleRef } from '@nestjs/core';
|
|
3
3
|
import type { FilterAdapter } from './adapter/adapter.js';
|
|
4
4
|
import type { ContextAccessor } from './context-accessor.js';
|
|
5
|
-
import type { ComputedSource, CursorPage, EntityDescription, FilterContext, FilterModuleOptions, SortItem } from './types.js';
|
|
5
|
+
import type { ComputedSource, CursorPage, EntityDescription, FilterContext, FilterModuleOptions, GroupByCountResult, SortItem } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* One resolved entry of the computed-field registry: the dev-provided SQL
|
|
8
|
+
* `source` plus the runtime flags carried by the declaration (the inline
|
|
9
|
+
* `@Filterable.computed` object form, or `@Computed`'s options).
|
|
10
|
+
*
|
|
11
|
+
* - `project` — when `true`, `FilterRunner.apply()` projects the computed
|
|
12
|
+
* expression into the SELECT list under its alias via the adapter's
|
|
13
|
+
* `applyComputedSelect` capability, so executed rows carry the value.
|
|
14
|
+
* `false` (the default) keeps the historical filter/sort-only behavior.
|
|
15
|
+
*/
|
|
16
|
+
export interface ComputedRegistryEntry {
|
|
17
|
+
source: ComputedSource;
|
|
18
|
+
project: boolean;
|
|
19
|
+
}
|
|
6
20
|
/**
|
|
7
21
|
* Merges the inline `@Filterable.computed` map and `@Computed`-decorated
|
|
8
|
-
* methods into a single alias → {@link
|
|
22
|
+
* methods into a single alias → {@link ComputedRegistryEntry} registry.
|
|
9
23
|
*
|
|
10
|
-
* - Inline map entries are unwrapped: `{ source, type }` →
|
|
11
|
-
* `type` is a codegen-only hint, never read at
|
|
24
|
+
* - Inline map entries are unwrapped: `{ source, type, project }` →
|
|
25
|
+
* `{ source, project }` (the `type` is a codegen-only hint, never read at
|
|
26
|
+
* runtime; `project` defaults to `false`).
|
|
12
27
|
* - `@Computed` methods are bound to `instance` and wrapped so they satisfy
|
|
13
|
-
* the `ComputedSource` function shape (`(ctx) => ComputedReturn`)
|
|
28
|
+
* the `ComputedSource` function shape (`(ctx) => ComputedReturn`); their
|
|
29
|
+
* `project` flag is read from the `@Computed` options map.
|
|
14
30
|
* - On an alias clash between the inline map and a decorator method, the
|
|
15
31
|
* decorator wins — it is the more specific, closer-to-usage declaration.
|
|
16
32
|
*
|
|
@@ -18,7 +34,7 @@ import type { ComputedSource, CursorPage, EntityDescription, FilterContext, Filt
|
|
|
18
34
|
* `getFilterableMetadata`/`getFilterForMap`'s convention — while `instance` is
|
|
19
35
|
* used only to bind decorated methods.
|
|
20
36
|
*/
|
|
21
|
-
export declare function buildComputedRegistry(FilterClass: Function, instance: object): Map<string,
|
|
37
|
+
export declare function buildComputedRegistry(FilterClass: Function, instance: object): Map<string, ComputedRegistryEntry>;
|
|
22
38
|
export declare class FilterRunner {
|
|
23
39
|
private readonly moduleRef;
|
|
24
40
|
private readonly options;
|
|
@@ -115,8 +131,36 @@ export declare class FilterRunner {
|
|
|
115
131
|
* `unsupported` feature/method is logged — static mode warns, dynamic stays silent.
|
|
116
132
|
* Mirrors the original guard: a call needs both a supporting adapter AND a
|
|
117
133
|
* resolved entity, so a missing entity is a silent no-op (never a warning).
|
|
134
|
+
*
|
|
135
|
+
* When a `computed` registry is given (the static `distinct` call site),
|
|
136
|
+
* requested fields matching a registry alias bypass column validation —
|
|
137
|
+
* they are dev-declared, not real columns, mirroring how computed sorts
|
|
138
|
+
* bypass {@link validateSorts} — and are dispatched via `applyComputed`
|
|
139
|
+
* (warn-and-skip through `computedUnsupported` when the adapter lacks the
|
|
140
|
+
* capability). Plain columns are applied FIRST in one batched `apply` call
|
|
141
|
+
* (preserving the historical adapter contract), then each computed alias in
|
|
142
|
+
* request order.
|
|
143
|
+
*
|
|
144
|
+
* @returns `true` when any projection (plain or computed) was applied to the
|
|
145
|
+
* builder — the static distinct call site uses this to suppress
|
|
146
|
+
* `project: true` computed SELECT projection, which only augments
|
|
147
|
+
* entity-row output.
|
|
118
148
|
*/
|
|
119
149
|
private applyProjection;
|
|
150
|
+
/**
|
|
151
|
+
* Projects every `project: true` computed-registry entry into the SELECT
|
|
152
|
+
* list via the adapter's `applyComputedSelect` capability — warn-and-skip
|
|
153
|
+
* (once, not per alias) when the adapter doesn't implement it.
|
|
154
|
+
*
|
|
155
|
+
* Ordering contract (also documented on the adapter capability): `apply()`
|
|
156
|
+
* dispatches this AFTER `applyDistinct`/`applySelect`, so with a sparse
|
|
157
|
+
* `select` in place the computed alias is ADDED to the narrowed projection
|
|
158
|
+
* (adapters implement the capability additively). `apply()` skips this
|
|
159
|
+
* entirely when a distinct projection was applied — distinct replaces
|
|
160
|
+
* entity-row output, and a computed value participates in a distinct
|
|
161
|
+
* projection only by being explicitly listed in `distinct`.
|
|
162
|
+
*/
|
|
163
|
+
private applyProjectedComputed;
|
|
120
164
|
apply<F extends object, Q>(FilterClass: Type<F>, input: unknown, qb: Q, context?: FilterContext, internal?: {
|
|
121
165
|
native?: boolean;
|
|
122
166
|
}): Promise<Q>;
|
|
@@ -260,6 +304,55 @@ export declare class FilterRunner {
|
|
|
260
304
|
* exact (already-validated) field list.
|
|
261
305
|
*/
|
|
262
306
|
private resolveDynamicDistinctFields;
|
|
307
|
+
/**
|
|
308
|
+
* Terminal **group-by-count** aggregation over a single primary-entity column
|
|
309
|
+
* (dynamic mode — no filter class required, mirroring {@link findAndCount}).
|
|
310
|
+
* Answers the chart-feeding query shape the entity-row contract can't express:
|
|
311
|
+
*
|
|
312
|
+
* SELECT <col> AS value, COUNT(*) AS count
|
|
313
|
+
* FROM <entity> WHERE <normal filter clauses> GROUP BY <col>
|
|
314
|
+
*
|
|
315
|
+
* and its numeric-bucketed histogram variant when `groupByCount.bucket` is a
|
|
316
|
+
* positive number (`FLOOR(col / bucket) * bucket`).
|
|
317
|
+
*
|
|
318
|
+
* The `groupByCount.field` is validated against the entity's filterable columns
|
|
319
|
+
* with the **same** allowlist/metadata machinery `sort`/`distinct` use — an
|
|
320
|
+
* unknown identifier is rejected (`BadRequestException`) and never reaches SQL.
|
|
321
|
+
* The active `where`/`search` clauses still apply (built via `applyDynamic`);
|
|
322
|
+
* sort/pagination/distinct/select do not — this mode replaces entity rows.
|
|
323
|
+
*
|
|
324
|
+
* Requires an adapter implementing the optional `groupByCount` method; when
|
|
325
|
+
* absent, a clear error is thrown (`groupByCount is not supported by the
|
|
326
|
+
* active adapter`).
|
|
327
|
+
*
|
|
328
|
+
* **Computed grouping fields**: when the (alias-remapped) grouping field is a
|
|
329
|
+
* computed/virtual alias, the runner passes the adapter the
|
|
330
|
+
* `{ alias, source }` shape of `GroupByCountField` instead of a validated
|
|
331
|
+
* column name — the adapter groups by the dev-provided computed expression.
|
|
332
|
+
* The computed registry is derived from `opts.filterClass` when given (the
|
|
333
|
+
* static variant: inline `@Filterable.computed` + `@Computed` methods of
|
|
334
|
+
* that filter class, DI-resolved so decorated methods bind correctly);
|
|
335
|
+
* otherwise from `@Filterable` metadata declared on the **entity itself**
|
|
336
|
+
* (the same entity-level-metadata pattern dynamic mode already uses for
|
|
337
|
+
* `aliases`). Computed aliases bypass column validation — they are
|
|
338
|
+
* dev-declared, never client input — exactly like computed sort/distinct.
|
|
339
|
+
*
|
|
340
|
+
* @returns `{ value, count }[]` — or, when bucketed, `{ bucketStart, bucketEnd,
|
|
341
|
+
* count }[]` with `bucketEnd = bucketStart + bucket`.
|
|
342
|
+
*/
|
|
343
|
+
groupByCount<E>(entity: Type<E>, input: unknown, opts?: {
|
|
344
|
+
qb?: unknown;
|
|
345
|
+
context?: FilterContext;
|
|
346
|
+
filterClass?: Type<object>;
|
|
347
|
+
}): Promise<GroupByCountResult>;
|
|
348
|
+
/**
|
|
349
|
+
* Parses and validates the raw `groupByCount` structured-input block into a
|
|
350
|
+
* canonical `{ field, bucket? }`. Returns `null` when no usable `field` is
|
|
351
|
+
* present. `bucket` is kept only when it is a finite positive number — a
|
|
352
|
+
* zero/negative/NaN/non-number bucket degrades to the plain (non-bucketed)
|
|
353
|
+
* group-by-count rather than emitting a divide-by-zero or nonsensical width.
|
|
354
|
+
*/
|
|
355
|
+
private parseGroupByCount;
|
|
263
356
|
/**
|
|
264
357
|
* Runs a dynamic query with **keyset (cursor) pagination** and executes it,
|
|
265
358
|
* returning a stable, non-overlapping page plus opaque forward/backward
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,IAAI,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.js
CHANGED
|
@@ -17,7 +17,7 @@ import { parseAggregatePath } from './aggregate/aggregate-path.js';
|
|
|
17
17
|
import { runWithFilterState } from './als-store.js';
|
|
18
18
|
import { resolveFieldAlias } from './decorator/aliases.js';
|
|
19
19
|
import { allowedFieldNames, normalizeAllowed, } from './decorator/allowed.js';
|
|
20
|
-
import { getComputedMap } from './decorator/computed.decorator.js';
|
|
20
|
+
import { getComputedMap, getComputedOptsMap } from './decorator/computed.decorator.js';
|
|
21
21
|
import { getFilterForMap } from './decorator/filter-for.decorator.js';
|
|
22
22
|
import { getFilterableMetadata } from './decorator/filterable.decorator.js';
|
|
23
23
|
import { resolveRelation } from './decorator/relations.decorator.js';
|
|
@@ -35,12 +35,14 @@ const MATCH_ALL_SET = { has: () => true };
|
|
|
35
35
|
const AGGREGATE_COLUMN_FNS = ['sum', 'avg', 'min', 'max'];
|
|
36
36
|
/**
|
|
37
37
|
* Merges the inline `@Filterable.computed` map and `@Computed`-decorated
|
|
38
|
-
* methods into a single alias → {@link
|
|
38
|
+
* methods into a single alias → {@link ComputedRegistryEntry} registry.
|
|
39
39
|
*
|
|
40
|
-
* - Inline map entries are unwrapped: `{ source, type }` →
|
|
41
|
-
* `type` is a codegen-only hint, never read at
|
|
40
|
+
* - Inline map entries are unwrapped: `{ source, type, project }` →
|
|
41
|
+
* `{ source, project }` (the `type` is a codegen-only hint, never read at
|
|
42
|
+
* runtime; `project` defaults to `false`).
|
|
42
43
|
* - `@Computed` methods are bound to `instance` and wrapped so they satisfy
|
|
43
|
-
* the `ComputedSource` function shape (`(ctx) => ComputedReturn`)
|
|
44
|
+
* the `ComputedSource` function shape (`(ctx) => ComputedReturn`); their
|
|
45
|
+
* `project` flag is read from the `@Computed` options map.
|
|
44
46
|
* - On an alias clash between the inline map and a decorator method, the
|
|
45
47
|
* decorator wins — it is the more specific, closer-to-usage declaration.
|
|
46
48
|
*
|
|
@@ -52,14 +54,22 @@ export function buildComputedRegistry(FilterClass, instance) {
|
|
|
52
54
|
const registry = new Map();
|
|
53
55
|
const inline = (getFilterableMetadata(FilterClass)?.computed ?? {});
|
|
54
56
|
for (const [alias, entry] of Object.entries(inline)) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
if (typeof entry === 'object' && entry !== null && 'source' in entry) {
|
|
58
|
+
registry.set(alias, { source: entry.source, project: entry.project === true });
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
registry.set(alias, { source: entry, project: false });
|
|
62
|
+
}
|
|
57
63
|
}
|
|
64
|
+
const decoratorOpts = getComputedOptsMap(FilterClass);
|
|
58
65
|
for (const [alias, methodName] of getComputedMap(FilterClass)) {
|
|
59
66
|
const method = instance[methodName];
|
|
60
67
|
if (typeof method === 'function') {
|
|
61
68
|
const bound = method;
|
|
62
|
-
registry.set(alias,
|
|
69
|
+
registry.set(alias, {
|
|
70
|
+
source: ((ctx) => bound.call(instance, ctx)),
|
|
71
|
+
project: decoratorOpts.get(alias)?.project === true,
|
|
72
|
+
});
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
return registry;
|
|
@@ -271,19 +281,82 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
271
281
|
* `unsupported` feature/method is logged — static mode warns, dynamic stays silent.
|
|
272
282
|
* Mirrors the original guard: a call needs both a supporting adapter AND a
|
|
273
283
|
* resolved entity, so a missing entity is a silent no-op (never a warning).
|
|
284
|
+
*
|
|
285
|
+
* When a `computed` registry is given (the static `distinct` call site),
|
|
286
|
+
* requested fields matching a registry alias bypass column validation —
|
|
287
|
+
* they are dev-declared, not real columns, mirroring how computed sorts
|
|
288
|
+
* bypass {@link validateSorts} — and are dispatched via `applyComputed`
|
|
289
|
+
* (warn-and-skip through `computedUnsupported` when the adapter lacks the
|
|
290
|
+
* capability). Plain columns are applied FIRST in one batched `apply` call
|
|
291
|
+
* (preserving the historical adapter contract), then each computed alias in
|
|
292
|
+
* request order.
|
|
293
|
+
*
|
|
294
|
+
* @returns `true` when any projection (plain or computed) was applied to the
|
|
295
|
+
* builder — the static distinct call site uses this to suppress
|
|
296
|
+
* `project: true` computed SELECT projection, which only augments
|
|
297
|
+
* entity-row output.
|
|
274
298
|
*/
|
|
275
299
|
applyProjection(qb, rawFields, opts) {
|
|
276
300
|
const { entity, adapter, allowed, throwOnInvalid, apply, unsupported, aliasMeta } = opts;
|
|
301
|
+
const { computed, applyComputed, computedUnsupported } = opts;
|
|
277
302
|
const fields = this.remapFieldAliases(this.parseDistinct(rawFields), aliasMeta);
|
|
278
303
|
if (fields.length === 0)
|
|
279
|
-
return;
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
304
|
+
return false;
|
|
305
|
+
// Split computed aliases (dev-declared, bypass column validation — same
|
|
306
|
+
// rationale as computed sorts) from plain column fields.
|
|
307
|
+
const computedAliases = computed ? fields.filter((f) => computed.has(f)) : [];
|
|
308
|
+
const plainFields = computedAliases.length > 0 ? fields.filter((f) => !computed.has(f)) : fields;
|
|
309
|
+
let applied = false;
|
|
310
|
+
if (plainFields.length > 0) {
|
|
311
|
+
if (apply && adapter && entity) {
|
|
312
|
+
const valid = this.validateDistinct(plainFields, allowed, adapter, entity, throwOnInvalid);
|
|
313
|
+
if (valid.length > 0) {
|
|
314
|
+
apply(qb, valid, entity);
|
|
315
|
+
applied = true;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
else if (apply === undefined && unsupported) {
|
|
319
|
+
this.warnUnsupported(unsupported.feature, unsupported.method);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
if (computedAliases.length > 0) {
|
|
323
|
+
if (applyComputed) {
|
|
324
|
+
for (const alias of computedAliases) {
|
|
325
|
+
applyComputed(qb, alias, computed.get(alias).source);
|
|
326
|
+
}
|
|
327
|
+
applied = true;
|
|
328
|
+
}
|
|
329
|
+
else if (computedUnsupported) {
|
|
330
|
+
this.warnUnsupported(computedUnsupported.feature, computedUnsupported.method);
|
|
331
|
+
}
|
|
284
332
|
}
|
|
285
|
-
|
|
286
|
-
|
|
333
|
+
return applied;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Projects every `project: true` computed-registry entry into the SELECT
|
|
337
|
+
* list via the adapter's `applyComputedSelect` capability — warn-and-skip
|
|
338
|
+
* (once, not per alias) when the adapter doesn't implement it.
|
|
339
|
+
*
|
|
340
|
+
* Ordering contract (also documented on the adapter capability): `apply()`
|
|
341
|
+
* dispatches this AFTER `applyDistinct`/`applySelect`, so with a sparse
|
|
342
|
+
* `select` in place the computed alias is ADDED to the narrowed projection
|
|
343
|
+
* (adapters implement the capability additively). `apply()` skips this
|
|
344
|
+
* entirely when a distinct projection was applied — distinct replaces
|
|
345
|
+
* entity-row output, and a computed value participates in a distinct
|
|
346
|
+
* projection only by being explicitly listed in `distinct`.
|
|
347
|
+
*/
|
|
348
|
+
applyProjectedComputed(qb, registry, adapter) {
|
|
349
|
+
let warned = false;
|
|
350
|
+
for (const [alias, entry] of registry) {
|
|
351
|
+
if (!entry.project)
|
|
352
|
+
continue;
|
|
353
|
+
if (adapter?.applyComputedSelect) {
|
|
354
|
+
adapter.applyComputedSelect(qb, alias, entry.source);
|
|
355
|
+
}
|
|
356
|
+
else if (!warned) {
|
|
357
|
+
warned = true;
|
|
358
|
+
this.warnUnsupported(`Computed projection ("${alias}", project: true) declared`, 'applyComputedSelect');
|
|
359
|
+
}
|
|
287
360
|
}
|
|
288
361
|
}
|
|
289
362
|
async apply(FilterClass, input, qb, context = {}, internal = {}) {
|
|
@@ -382,12 +455,12 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
382
455
|
}
|
|
383
456
|
// Check if this key is a computed/virtual field (dev-declared SQL or
|
|
384
457
|
// an `@Computed` method), resolved via the merged registry.
|
|
385
|
-
const
|
|
386
|
-
if (
|
|
458
|
+
const computedEntry = computedRegistry.get(key);
|
|
459
|
+
if (computedEntry !== undefined) {
|
|
387
460
|
if (adapter?.applyComputedField) {
|
|
388
461
|
const filtered = this.enforceAutoFieldOperators(key, value, normalizedAllowed, throwOnInvalidPolicy);
|
|
389
462
|
if (filtered !== undefined) {
|
|
390
|
-
adapter.applyComputedField(qb,
|
|
463
|
+
adapter.applyComputedField(qb, computedEntry.source, filtered);
|
|
391
464
|
}
|
|
392
465
|
}
|
|
393
466
|
else {
|
|
@@ -514,8 +587,11 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
514
587
|
slowSearchHint: `declaring static search = [...] on ${FilterClass.name}`,
|
|
515
588
|
});
|
|
516
589
|
}
|
|
517
|
-
// Apply distinct projection (SELECT DISTINCT) — before sort/pagination
|
|
518
|
-
|
|
590
|
+
// Apply distinct projection (SELECT DISTINCT) — before sort/pagination.
|
|
591
|
+
// A computed alias in the distinct list routes to applyComputedDistinct
|
|
592
|
+
// (the computed registry bypasses column validation, like computed
|
|
593
|
+
// sorts do); plain columns still batch through applyDistinct first.
|
|
594
|
+
const distinctApplied = this.applyProjection(qb, rawDistinct, {
|
|
519
595
|
entity: filterableMeta?.entity,
|
|
520
596
|
adapter,
|
|
521
597
|
allowed: FilterClass.distinct,
|
|
@@ -523,9 +599,18 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
523
599
|
apply: adapter?.applyDistinct?.bind(adapter),
|
|
524
600
|
unsupported: { feature: 'Distinct requested', method: 'applyDistinct' },
|
|
525
601
|
aliasMeta: filterableMeta,
|
|
602
|
+
computed: computedRegistry,
|
|
603
|
+
applyComputed: adapter?.applyComputedDistinct?.bind(adapter),
|
|
604
|
+
computedUnsupported: {
|
|
605
|
+
feature: 'Distinct on a computed field requested',
|
|
606
|
+
method: 'applyComputedDistinct',
|
|
607
|
+
},
|
|
526
608
|
});
|
|
527
609
|
// Apply sparse fieldsets (SELECT narrowing) — validated against the
|
|
528
|
-
// allowlist / entity metadata, mirroring distinct/sort safety.
|
|
610
|
+
// allowlist / entity metadata, mirroring distinct/sort safety. A
|
|
611
|
+
// computed alias here is dropped like any unknown column: computed
|
|
612
|
+
// values enter entity-row projections via `project: true` (below),
|
|
613
|
+
// never via the client's `select` list.
|
|
529
614
|
this.applyProjection(qb, rawSelect, {
|
|
530
615
|
entity: filterableMeta?.entity,
|
|
531
616
|
adapter,
|
|
@@ -535,6 +620,16 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
535
620
|
unsupported: { feature: 'Sparse fieldsets (select) requested', method: 'applySelect' },
|
|
536
621
|
aliasMeta: filterableMeta,
|
|
537
622
|
});
|
|
623
|
+
// Project `project: true` computed fields into the SELECT list —
|
|
624
|
+
// dispatched AFTER applyDistinct/applySelect by contract, so a sparse
|
|
625
|
+
// `select` projection is already in place and the computed alias is
|
|
626
|
+
// ADDED to it (adapters implement applyComputedSelect additively).
|
|
627
|
+
// Skipped when a distinct projection was applied: distinct replaces
|
|
628
|
+
// entity-row output, and a computed value participates in a distinct
|
|
629
|
+
// projection only by being listed in `distinct` explicitly.
|
|
630
|
+
if (!distinctApplied) {
|
|
631
|
+
this.applyProjectedComputed(qb, computedRegistry, adapter);
|
|
632
|
+
}
|
|
538
633
|
// Apply sort — falling back to defaultSort when the client gave none.
|
|
539
634
|
// Only the client-supplied sort is alias-remapped; defaultSort is
|
|
540
635
|
// developer config, already written in real entity-path terms.
|
|
@@ -627,6 +722,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
627
722
|
sort: undefined,
|
|
628
723
|
distinct: undefined,
|
|
629
724
|
select: undefined,
|
|
725
|
+
groupByCount: undefined,
|
|
630
726
|
paginate: undefined,
|
|
631
727
|
};
|
|
632
728
|
}
|
|
@@ -643,6 +739,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
643
739
|
'sort',
|
|
644
740
|
'distinct',
|
|
645
741
|
'select',
|
|
742
|
+
'groupByCount',
|
|
646
743
|
'paginate',
|
|
647
744
|
];
|
|
648
745
|
if (STRUCTURED_KEYS.some((k) => k in inputObj)) {
|
|
@@ -653,6 +750,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
653
750
|
sort: inputObj.sort ?? undefined,
|
|
654
751
|
distinct: inputObj.distinct ?? undefined,
|
|
655
752
|
select: inputObj.select ?? undefined,
|
|
753
|
+
groupByCount: inputObj.groupByCount ?? undefined,
|
|
656
754
|
paginate: inputObj.paginate ?? undefined,
|
|
657
755
|
};
|
|
658
756
|
}
|
|
@@ -664,6 +762,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
664
762
|
sort: undefined,
|
|
665
763
|
distinct: undefined,
|
|
666
764
|
select: undefined,
|
|
765
|
+
groupByCount: undefined,
|
|
667
766
|
paginate: undefined,
|
|
668
767
|
};
|
|
669
768
|
}
|
|
@@ -1075,6 +1174,115 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
1075
1174
|
return [];
|
|
1076
1175
|
return this.validateDistinct(fields, undefined, adapter, entity, this.resolveThrowOnInvalid());
|
|
1077
1176
|
}
|
|
1177
|
+
/**
|
|
1178
|
+
* Terminal **group-by-count** aggregation over a single primary-entity column
|
|
1179
|
+
* (dynamic mode — no filter class required, mirroring {@link findAndCount}).
|
|
1180
|
+
* Answers the chart-feeding query shape the entity-row contract can't express:
|
|
1181
|
+
*
|
|
1182
|
+
* SELECT <col> AS value, COUNT(*) AS count
|
|
1183
|
+
* FROM <entity> WHERE <normal filter clauses> GROUP BY <col>
|
|
1184
|
+
*
|
|
1185
|
+
* and its numeric-bucketed histogram variant when `groupByCount.bucket` is a
|
|
1186
|
+
* positive number (`FLOOR(col / bucket) * bucket`).
|
|
1187
|
+
*
|
|
1188
|
+
* The `groupByCount.field` is validated against the entity's filterable columns
|
|
1189
|
+
* with the **same** allowlist/metadata machinery `sort`/`distinct` use — an
|
|
1190
|
+
* unknown identifier is rejected (`BadRequestException`) and never reaches SQL.
|
|
1191
|
+
* The active `where`/`search` clauses still apply (built via `applyDynamic`);
|
|
1192
|
+
* sort/pagination/distinct/select do not — this mode replaces entity rows.
|
|
1193
|
+
*
|
|
1194
|
+
* Requires an adapter implementing the optional `groupByCount` method; when
|
|
1195
|
+
* absent, a clear error is thrown (`groupByCount is not supported by the
|
|
1196
|
+
* active adapter`).
|
|
1197
|
+
*
|
|
1198
|
+
* **Computed grouping fields**: when the (alias-remapped) grouping field is a
|
|
1199
|
+
* computed/virtual alias, the runner passes the adapter the
|
|
1200
|
+
* `{ alias, source }` shape of `GroupByCountField` instead of a validated
|
|
1201
|
+
* column name — the adapter groups by the dev-provided computed expression.
|
|
1202
|
+
* The computed registry is derived from `opts.filterClass` when given (the
|
|
1203
|
+
* static variant: inline `@Filterable.computed` + `@Computed` methods of
|
|
1204
|
+
* that filter class, DI-resolved so decorated methods bind correctly);
|
|
1205
|
+
* otherwise from `@Filterable` metadata declared on the **entity itself**
|
|
1206
|
+
* (the same entity-level-metadata pattern dynamic mode already uses for
|
|
1207
|
+
* `aliases`). Computed aliases bypass column validation — they are
|
|
1208
|
+
* dev-declared, never client input — exactly like computed sort/distinct.
|
|
1209
|
+
*
|
|
1210
|
+
* @returns `{ value, count }[]` — or, when bucketed, `{ bucketStart, bucketEnd,
|
|
1211
|
+
* count }[]` with `bucketEnd = bucketStart + bucket`.
|
|
1212
|
+
*/
|
|
1213
|
+
async groupByCount(entity, input, opts = {}) {
|
|
1214
|
+
const adapter = this.resolveAdapter();
|
|
1215
|
+
const structured = this.extractStructuredInput(input);
|
|
1216
|
+
const spec = this.parseGroupByCount(structured.groupByCount);
|
|
1217
|
+
if (!spec) {
|
|
1218
|
+
throw new BadRequestException('groupByCount requires a `{ field }` specification (with an optional positive numeric `bucket`).');
|
|
1219
|
+
}
|
|
1220
|
+
if (!adapter?.groupByCount) {
|
|
1221
|
+
throw new Error('groupByCount is not supported by the active adapter (it does not implement groupByCount()).');
|
|
1222
|
+
}
|
|
1223
|
+
// Validate the grouping field the SAME way distinct/sort validate a column —
|
|
1224
|
+
// alias-remap, then allowlist/entity-metadata check — so an unvalidated
|
|
1225
|
+
// identifier can never reach the emitted SQL. Unlike distinct (which
|
|
1226
|
+
// silently drops invalid fields), the grouping column is the whole query, so
|
|
1227
|
+
// an unknown field is rejected outright.
|
|
1228
|
+
const filterableMeta = getFilterableMetadata(entity);
|
|
1229
|
+
const [remapped] = this.remapFieldAliases([spec.field], filterableMeta);
|
|
1230
|
+
const field = remapped ?? spec.field;
|
|
1231
|
+
// Computed grouping: resolve the computed registry (filter class when
|
|
1232
|
+
// given, else entity-level `@Filterable` metadata) and let a matching
|
|
1233
|
+
// alias bypass column validation — it is dev-declared, not a column.
|
|
1234
|
+
const computedRegistry = opts.filterClass
|
|
1235
|
+
? buildComputedRegistry(opts.filterClass, await this.resolveFilter(opts.filterClass))
|
|
1236
|
+
: buildComputedRegistry(entity, Object.create(entity.prototype));
|
|
1237
|
+
const computedEntry = computedRegistry.get(field);
|
|
1238
|
+
let groupField;
|
|
1239
|
+
if (computedEntry) {
|
|
1240
|
+
groupField = { alias: field, source: computedEntry.source };
|
|
1241
|
+
}
|
|
1242
|
+
else {
|
|
1243
|
+
// Validate silently (drop-on-invalid) so we can surface a groupByCount-
|
|
1244
|
+
// specific rejection: the grouping column is the whole query, so an unknown
|
|
1245
|
+
// field is always rejected outright (never silently ignored, unlike a
|
|
1246
|
+
// distinct field), regardless of the ambient throwOnInvalid policy.
|
|
1247
|
+
const validated = this.validateDistinct([field], undefined, adapter, entity, false);
|
|
1248
|
+
if (validated.length === 0 || !validated[0]) {
|
|
1249
|
+
throw new BadRequestException(`Invalid groupByCount field: "${spec.field}".`);
|
|
1250
|
+
}
|
|
1251
|
+
groupField = validated[0];
|
|
1252
|
+
}
|
|
1253
|
+
const qb = opts.qb ?? adapter.createQueryBuilder(entity);
|
|
1254
|
+
// Apply WHERE + search only (no sort/pagination/distinct/select — this mode
|
|
1255
|
+
// replaces entity rows). `skipSortAndPagination` also keeps applyDynamic
|
|
1256
|
+
// from ordering/slicing the pre-aggregation query.
|
|
1257
|
+
await this.applyDynamic(entity, { filter: structured.filter, search: structured.search }, qb, opts.context, { skipSortAndPagination: true, native: true });
|
|
1258
|
+
const bucket = spec.bucket;
|
|
1259
|
+
const rows = await adapter.groupByCount(qb, groupField, entity, bucket ? { bucket } : undefined);
|
|
1260
|
+
if (bucket) {
|
|
1261
|
+
return rows.map((r) => {
|
|
1262
|
+
const bucketStart = Number(r.value);
|
|
1263
|
+
return { bucketStart, bucketEnd: bucketStart + bucket, count: Number(r.count) };
|
|
1264
|
+
});
|
|
1265
|
+
}
|
|
1266
|
+
return rows.map((r) => ({ value: r.value, count: Number(r.count) }));
|
|
1267
|
+
}
|
|
1268
|
+
/**
|
|
1269
|
+
* Parses and validates the raw `groupByCount` structured-input block into a
|
|
1270
|
+
* canonical `{ field, bucket? }`. Returns `null` when no usable `field` is
|
|
1271
|
+
* present. `bucket` is kept only when it is a finite positive number — a
|
|
1272
|
+
* zero/negative/NaN/non-number bucket degrades to the plain (non-bucketed)
|
|
1273
|
+
* group-by-count rather than emitting a divide-by-zero or nonsensical width.
|
|
1274
|
+
*/
|
|
1275
|
+
parseGroupByCount(raw) {
|
|
1276
|
+
if (!raw || typeof raw !== 'object')
|
|
1277
|
+
return null;
|
|
1278
|
+
const obj = raw;
|
|
1279
|
+
if (typeof obj.field !== 'string' || obj.field.length === 0)
|
|
1280
|
+
return null;
|
|
1281
|
+
const bucket = typeof obj.bucket === 'number' && Number.isFinite(obj.bucket) && obj.bucket > 0
|
|
1282
|
+
? obj.bucket
|
|
1283
|
+
: undefined;
|
|
1284
|
+
return { field: obj.field, ...(bucket !== undefined && { bucket }) };
|
|
1285
|
+
}
|
|
1078
1286
|
/**
|
|
1079
1287
|
* Runs a dynamic query with **keyset (cursor) pagination** and executes it,
|
|
1080
1288
|
* returning a stable, non-overlapping page plus opaque forward/backward
|
|
@@ -1560,7 +1768,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
1560
1768
|
for (const sort of sorts) {
|
|
1561
1769
|
if (computed?.has(sort.field)) {
|
|
1562
1770
|
if (adapter.applyComputedSort) {
|
|
1563
|
-
adapter.applyComputedSort(qb, computed.get(sort.field), sort.direction);
|
|
1771
|
+
adapter.applyComputedSort(qb, computed.get(sort.field).source, sort.direction);
|
|
1564
1772
|
}
|
|
1565
1773
|
else {
|
|
1566
1774
|
this.warnUnsupported(`Computed sort "${sort.field}" requested`, 'applyComputedSort');
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EACL,mBAAmB,EACnB,MAAM,EACN,UAAU,EACV,MAAM,EACN,QAAQ,GAET,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAEL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAuB,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAqBtF,MAAM,aAAa,GAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AAExD,wLAAwL;AACxL,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAqB,EACrB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEnD,MAAM,MAAM,GAAG,CAAC,qBAAqB,CAAC,WAAoB,CAAC,EAAE,QAAQ,IAAI,EAAE,CAG1E,CAAC;IACF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1F,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAwB,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAI,QAAoC,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,MAAmC,CAAC;YAClD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAmB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAGM,IAAM,YAAY,oBAAlB,MAAM,YAAY;IASJ;IAC+B;IAI/B;IAbF,MAAM,GAAG,IAAI,MAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;IAEhD,OAAO,CAAuB;IAEtC,iFAAiF;IAChE,gBAAgB,GAAG,IAAI,OAAO,EAA6B,CAAC;IAE7E,YACmB,SAAoB,EACW,OAA4B,EACpD,eAAqC,EAG5C,eAAiC;QALjC,cAAS,GAAT,SAAS,CAAW;QACW,YAAO,GAAP,OAAO,CAAqB;QAI3D,oBAAe,GAAf,eAAe,CAAkB;QAElD,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;IACjC,CAAC;IAED;;;;;;;OAOG;IACK,sBAAsB;QAC5B,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QACtD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAkB,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,CAAC;QAC/F,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH;;;;;;;OAOG;IACK,gBAAgB,CACtB,WAAqB,EACrB,EAAK,EACL,OAA6B,EAC7B,eAA4C;QAE5C,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,QAAQ,GAAG,eAAe,EAAE,QAAQ,EAAE,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QACnC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kBAAkB,KAAK,SAAS,WAAW,CAAC,IAAI,6EAA6E,CAC9H,CAAC;YACF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,EAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;YAC1B,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,OAAe,EAAE,MAAc;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,iCAAiC,MAAM,aAAa,CAAC,CAAC;IACnF,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,MAAgB,EAAE,IAAgC;QAC1E,IAAI,CAAC,IAAI,EAAE,OAAO;YAAE,OAAO,MAAM,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,KAAiB,EAAE,IAAgC;QAC1E,IAAI,CAAC,IAAI,EAAE,OAAO;YAAE,OAAO,KAAK,CAAC;QACjC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB,CACtB,KAA8B,EAC9B,IAAgC;QAEhC,IAAI,CAAC,IAAI,EAAE,OAAO;YAAE,OAAO,KAAK,CAAC;QACjC,MAAM,QAAQ,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QACjD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACK,wBAAwB,CAC9B,OAAuB,EACvB,IAAgC;QAEhC,IAAI,CAAC,IAAI,EAAE,OAAO;YAAE,OAAO,OAAO,CAAC;QACnC,MAAM,KAAK,GAAG,CAAC,OAAuB,EAAkB,EAAE,CACxD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACvB,GAAG,MAAM;YACT,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;SAC3C,CAAC,CAAC,CAAC;QACN,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAqB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAiC,EAAE,CAAC;QAEnD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QACtE,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,kBAAkB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnE,MAAM,cAAc,GAA8B,EAAE,CAAC;YACrD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC7E,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC9E,CAAC;YACD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;gBACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,YAAY;gBAC7B,MAAM,EAAE,cAAc;aACvB,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CAAC,KAAc,EAAE,QAA8B;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;YAClD,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;SAClE,CAAC,CAAC;QACH,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrF,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,EAAE;YAChD,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,WAAW;YACvD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK;YACpC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SACtF,CAAC,CAAC;QACH,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,OAAO;YAC5B,SAAS,EAAE,QAAQ,CAAC,MAAM;YAC1B,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtB,WAAW,EAAE,QAAQ,CAAC,QAAQ;YAC9B,SAAS,EAAE,QAAQ,CAAC,MAAM;YAC1B,WAAW,EAAE,QAAQ,CAAC,QAAQ;YAC9B,aAAa;YACb,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,eAAe,CACrB,EAAK,EACL,SAAkB,EAClB,IAaC;QAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChC,IAAI,KAAK,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CACjC,MAAM,EACN,OAA+B,EAC/B,OAAO,EACP,MAAM,EACN,cAAc,CACf,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,EAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,IAAI,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CACT,WAAoB,EACpB,KAAc,EACd,EAAK,EACL,UAAyB,EAAE,EAC3B,WAAiC,EAAE;QAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,qEAAqE;QACrE,sEAAsE;QACtE,kDAAkD;QAClD,MAAM,cAAc,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC1D,oEAAoE;QACpE,2DAA2D;QAC3D,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEpE,MAAM,EACJ,UAAU,EACV,SAAS,EACT,OAAO,EACP,WAAW,EACX,SAAS,EACT,WAAW,EACX,aAAa,EAAE,gBAAgB,EAC/B,UAAU,EAAE,aAAa,GAC1B,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvC,yEAAyE;QACzE,sEAAsE;QACtE,qDAAqD;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QACtF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAExE,MAAM,UAAU,GACd,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEhG,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,MAAM,OAAO,GAA6B,EAAE,CAAC;QAE7C,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEtD,OAAO,kBAAkB,CACvB;YACE,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;YACxC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,OAAO;YACjB,YAAY;YACZ,YAAY;YACZ,OAAO;YACP,GAAG,CAAC,eAAe,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;SAC9D,EACD,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAE5B,0EAA0E;YAC1E,wDAAwD;YACxD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;YAEjE,2EAA2E;YAC3E,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAErE,+DAA+D;YAC/D,sEAAsE;YACtE,8DAA8D;YAC9D,uEAAuE;YACvE,oEAAoE;YACpE,yDAAyD;YACzD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;gBACxC,GAAG,CAAC,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC;gBAClC,GAAG,YAAY;aAChB,CAAC,CAAC;YACH,MAAM,mBAAmB,GACvB,iBAAiB,CAAC,IAAI,GAAG,CAAC;gBACxB,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,aAAa,EAAE,iBAAiB,CAAC;gBACtE,CAAC,CAAC,aAAa,CAAC;YAEpB,8DAA8D;YAC9D,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,kBAAkB,EAAE,CAAC;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAC7C,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,CACrB,CAAC;gBACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,qBAAqB,CAAC,SAAS,CAAC,CAAC;oBACjC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;iBAAM,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;gBAC1E,IAAI,CAAC,eAAe,CAAC,iCAAiC,EAAE,oBAAoB,CAAC,CAAC;YAChF,CAAC;YAED,oCAAoC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAEzD,qDAAqD;YACrD,MAAM,eAAe,GAAG,IAAI,GAAG,EAG5B,CAAC;YACJ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtD,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAS;gBAClC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACpC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;oBACtC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,GAAG,CAAC;oBACjD,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC5C,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC;wBACH,MAAM,MAAM,GACV,MACD,CAAC,UAAU,CAAE,CAAC;wBACf,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;oBACxC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,IAAI,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACrD,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACnD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC;oBACxC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;wBACvC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC7D,CAAC;oBACD,eAAe,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC9D,SAAS;gBACX,CAAC;gBACD,qEAAqE;gBACrE,4DAA4D;gBAC5D,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBACjC,IAAI,OAAO,EAAE,kBAAkB,EAAE,CAAC;wBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAC7C,GAAG,EACH,KAAK,EACL,iBAAiB,EACjB,oBAAoB,CACrB,CAAC;wBACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;4BAC3B,OAAO,CAAC,kBAAkB,CAAC,EAAa,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;wBACtE,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,YAAY,EAAE,oBAAoB,CAAC,CAAC;oBACjF,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,iEAAiE;gBACjE,uEAAuE;gBACvE,uEAAuE;gBACvE,mEAAmE;gBACnE,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,aAAa,EAAE,CAAC;oBAClB,IAAI,OAAO,EAAE,mBAAmB,EAAE,CAAC;wBACjC,iEAAiE;wBACjE,2DAA2D;wBAC3D,iEAAiE;wBACjE,+DAA+D;wBAC/D,iEAAiE;wBACjE,8DAA8D;wBAC9D,yDAAyD;wBACzD,0DAA0D;wBAC1D,gEAAgE;wBAChE,qBAAqB;wBACrB,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAC7B,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,CACvD,CAAC;wBACF,IAAI,oBAAoB,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BACpD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;4BAC3B,SAAS;wBACX,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAC7C,GAAG,EACH,KAAK,EACL,iBAAiB,EACjB,oBAAoB,CACrB,CAAC;wBACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;4BAC3B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;gCACpE,OAAO,CAAC,mBAAmB,CAAC,EAAa,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;4BAC1E,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,eAAe,CAAC,oBAAoB,GAAG,YAAY,EAAE,qBAAqB,CAAC,CAAC;oBACnF,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,qCAAqC;gBACrC,IAAI,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;wBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAC7C,GAAG,EACH,KAAK,EACL,iBAAiB,EACjB,oBAAoB,CACrB,CAAC;wBACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;4BAC3B,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;wBAC5C,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,YAAY,EAAE,gBAAgB,CAAC,CAAC;oBACzE,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,sEAAsE;gBACtE,IACE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACjB,YAAY;oBACZ,cAAc;oBACd,OAAO,EAAE,kBAAkB;oBAC3B,OAAO,EAAE,sBAAsB,EAC/B,CAAC;oBACD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAClC,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBAC9C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,MAAM,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBACpE,IAAI,SAAS,EAAE,CAAC;4BACd,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;4BAC7D,IAAI,UAAU,EAAE,CAAC;gCACf,OAAO,CAAC,sBAAsB,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gCAC9D,SAAS;4BACX,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;YACD,mDAAmD;YACnD,KAAK,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;gBAClE,MAAM,IAAI,CAAC,aAAa,CACtB,MAAM,CAAC,MAAsB,EAC7B,EAAE,EACF,YAAY,EACZ,OAAO,EACP,OAAO,CACR,CAAC;YACJ,CAAC;YACD,sEAAsE;YACtE,MAAM,mBAAmB,GAAG,GAAG,CAAC;YAChC,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,EAAE,cAAc,GAAG,mBAAmB,EAAE,CAAC;oBAC3C,MAAM,IAAI,qBAAqB,CAC7B,OAAO,EACP,SAAS,EACT,IAAI,KAAK,CACP,sBAAsB,mBAAmB,wCAAwC,CAClF,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAG,CAAC;gBACtC,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAS;gBAClC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACpC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;oBACtC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,GAAG,CAAC;oBACjD,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;oBAC3B,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,MAAM,GACV,MACD,CAAC,UAAU,CAAE,CAAC;oBACf,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBACxC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpE,MAAM,eAAe,GAAI,WAA2D;qBACjF,QAAQ,CAAC;gBACZ,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CACzC,QAAQ,EACR,eAAuC,EACvC,OAAO,EACP,cAAc,CAAC,MAAM,CACtB,CAAC;gBACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnE,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE;oBAC3C,MAAM,EAAE,cAAc,EAAE,MAAM;oBAC9B,OAAO;oBACP,YAAY,EACV,WAGD,CAAC,MAAM;oBACR,cAAc,EAAE,sCAAsC,WAAW,CAAC,IAAI,EAAE;iBACzE,CAAC,CAAC;YACL,CAAC;YAED,uEAAuE;YACvE,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE;gBACpC,MAAM,EAAE,cAAc,EAAE,MAAM;gBAC9B,OAAO;gBACP,OAAO,EAAG,WAA2D,CAAC,QAAQ;gBAC9E,cAAc,EAAE,oBAAoB;gBACpC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;gBAC5C,WAAW,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE;gBACvE,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YAEH,oEAAoE;YACpE,+DAA+D;YAC/D,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE;gBAClC,MAAM,EAAE,cAAc,EAAE,MAAM;gBAC9B,OAAO;gBACP,OAAO,EAAG,WAAyD,CAAC,MAAM;gBAC1E,cAAc,EAAE,oBAAoB;gBACpC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;gBAC1C,WAAW,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE,MAAM,EAAE,aAAa,EAAE;gBACtF,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YAEH,sEAAsE;YACtE,kEAAkE;YAClE,+DAA+D;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;YACpF,MAAM,KAAK,GACT,WAAW,CAAC,MAAM,GAAG,CAAC;gBACpB,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;YAC5D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBAC3C,MAAM,YAAY,GAAI,WAAuD,CAAC,IAAI,CAAC;gBACnF,IAAI,CAAC,sBAAsB,CACzB,EAAE,EACF,KAAK,EACL,YAAoC,EACpC,OAAO,EACP,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,EACvC,gBAAgB,EAChB,YAAY,CACb,CAAC;YACJ,CAAC;YAED,mBAAmB;YACnB,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAE/C,OAAO,EAAE,CAAC;QACZ,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAI,WAAoB;QACjD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,IACE,UAAU,YAAY,KAAK;oBAC3B,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBAC9C,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAC9C,CAAC;oBACD,MAAM,UAAU,CAAC;gBACnB,CAAC;gBACD,MAAM,IAAI,4BAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,MAAc;QACnC,MAAM,KAAK,GAAG,MAAgD,CAAC;QAC/D,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO;QAC9C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAAC,WAAqB,EAAE,GAAW;QACjE,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QACzC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CACzB,kBAAgC,EAChC,EAAK,EACL,YAAoB,EACpB,OAAiC,EACjC,OAAsB;QAEtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,aAAa,YAAY,YAAY,EAAE,yBAAyB,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,UAAmB,EAAE,EAAE;YACzF,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;gBAC9E,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,sBAAsB,CAC5B,KAAc,EACd,WAAiC,EAAE;QAUnC,oEAAoE;QACpE,6EAA6E;QAC7E,mEAAmE;QACnE,MAAM,MAAM,GACV,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9F,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACjD,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,SAAS;aACpB,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAiC,CAAC;QACnD,oEAAoE;QACpE,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,mEAAmE;QACnE,MAAM,eAAe,GAAG;YACtB,QAAQ;YACR,SAAS;YACT,QAAQ;YACR,MAAM;YACN,UAAU;YACV,QAAQ;YACR,UAAU;SACX,CAAC;QACF,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC/C,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS;gBACpC,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,SAAS;gBACtC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS;gBACpC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS;gBAChC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBACxC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS;gBACpC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;aACzC,CAAC;QACJ,CAAC;QACD,4DAA4D;QAC5D,OAAO;YACL,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,SAAS;SACpB,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,oBAAoB,CAAC,KAAc;QAIzC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,QAAQ,GAAG,KAAgC,CAAC;QAClD,IAAI,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAuB,CAAC;QACvD,gDAAgD;QAChD,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,iBAAiB,CAAC,WAAqB;QAC7C,MAAM,IAAI,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;QACjD,IAAI,gBAAgB,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAE5C,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC9B,sFAAsF;YACtF,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,aAAa,EAAE,CAAC;gBAClB,oDAAoD;gBACpD,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;gBAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC9B,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;oBAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YAED,qEAAqE;YACrE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1D,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;oBAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;oBAC9B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;wBACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;4BAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACzD,CAAC;oBACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;oBAChD,OAAO,GAAG,CAAC;gBACb,CAAC;YACH,CAAC;YAED,qFAAqF;YACrF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,uBAAuB,WAAW,CAAC,IAAI,8OAA8O,CACtR,CAAC;YACF,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,oCAAoC;QACpC,OAAO,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACK,sBAAsB,CAC5B,GAAgB,EAChB,IAAoB,EACpB,OAAsB;QAEtB,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,gBAAgB;YAAE,OAAO;QACrE,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,mBAAmB;YAAE,OAAO;QAExE,MAAM,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc;gBAAE,SAAS;YAClF,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEpD,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,SAAS,CAAC,CAAC;YAEnC,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3E,IAAI,CAAC,aAAa;gBAAE,SAAS;YAC7B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAAE,SAAS;gBACtC,KAAK,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;oBACtC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,GAAY;QACxB,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ;YACzB,OAAO,GAAG;iBACP,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;QACxE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACK,gBAAgB,CACtB,QAAkB,EAClB,SAA+B,EAC/B,OAAsB,EACtB,MAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC7C,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC3C,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,kDAAkD;YAClD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH;;;;;OAKG;IACK,iBAAiB,CACvB,EAAK,EACL,UAAkB,EAClB,IAKC;QAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAC/D,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;YAAE,OAAO;QAEhC,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;YACjF,kBAAkB;YAClB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAC9B,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,YAAY,CAAC,MAAM,EAAE;oBAC7D,GAAG,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;iBACpE,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YACzC,CAAC,CAAE,YAAyB;YAC5B,CAAC,CAAC,CAAC,OAAO;iBACL,eAAe,EAAE,CAAC,MAAM,CAAC;gBAC1B,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oBAAoB,OAAO,CAAC,MAAM,kCAAkC,cAAc,EAAE,CACrF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9C,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,YAAY,CAChB,MAAqB,EACrB,KAAc,EACd,EAAK,EACL,UAAyB,EAAE,EAC3B,WAAkE,EAAE;QAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,oEAAoE;QACpE,sEAAsE;QACtE,iEAAiE;QACjE,0DAA0D;QAC1D,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAErD,MAAM,EACJ,UAAU,EACV,SAAS,EACT,OAAO,EACP,WAAW,EACX,SAAS,EACT,WAAW,EACX,aAAa,EAAE,gBAAgB,EAC/B,UAAU,EAAE,aAAa,GAC1B,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QACtF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAExE,uEAAuE;QACvE,mEAAmE;QACnE,+DAA+D;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACpD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,kBAAkB,EAAE,CAAC;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CACjD,aAAa,EACb,MAAM,EACN,OAAO,EACP,cAAc,CACf,CAAC;YACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBACpC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;YACpE,IAAI,CAAC,eAAe,CAAC,iCAAiC,EAAE,oBAAoB,CAAC,CAAC;QAChF,CAAC;QAED,6EAA6E;QAC7E,IAAI,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtD,IAAI,KAAK,KAAK,SAAS;wBAAE,SAAS;oBAClC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACtB,wBAAwB;wBACxB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAClC,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;wBAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;wBAC9C,IACE,SAAS,CAAC,MAAM,GAAG,CAAC;4BACpB,OAAO,CAAC,kBAAkB;4BAC1B,OAAO,CAAC,sBAAsB,EAC9B,CAAC;4BACD,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;4BAChD,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;gCAC1C,OAAO,CAAC,sBAAsB,CAAC,EAAa,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;4BAC3E,CAAC;4BACD,qCAAqC;wBACvC,CAAC;oBACH,CAAC;yBAAM,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC/B,OAAO,CAAC,cAAc,CAAC,EAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBACpD,CAAC;oBACD,gCAAgC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAClF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,aAAa,CAAC,EAAa,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACnE,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE;gBAC3C,MAAM;gBACN,OAAO;gBACP,cAAc,EAAE,iDAAiD;aAClE,CAAC,CAAC;QACL,CAAC;QAED,2EAA2E;QAC3E,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE;YACpC,MAAM;YACN,OAAO;YACP,OAAO,EAAE,SAAS;YAClB,cAAc;YACd,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;YAC5C,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;QAEH,0EAA0E;QAC1E,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE;YAClC,MAAM;YACN,OAAO;YACP,OAAO,EAAE,SAAS;YAClB,cAAc;YACd,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;YAC1C,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;QAEH,sEAAsE;QACtE,uDAAuD;QACvD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACpC,kEAAkE;YAClE,sDAAsD;YACtD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;YACpF,MAAM,KAAK,GACT,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACpF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBACzF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,SAAS,CAAC,EAAa,EAAE,UAAU,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAED,aAAa;YACb,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,YAAY,CAChB,MAAe,EACf,KAAc,EACd,OAAkD,EAAE;QAEpD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE1D,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,0BAA0B,CACxE,QAAQ,EACR,MAAM,EACN,OAAO,CACR,CAAC;QAEF,2EAA2E;QAC3E,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,cAAc,GAAG,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAE/F,4EAA4E;QAC5E,MAAM,IAAI,CAAC,YAAY,CACrB,MAAM,EACN;YACE,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,OAAO,EAAE,YAAY;SACtB,EACD,EAAE,EACF,IAAI,CAAC,OAAO,EACZ,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,yBAAyB,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;YAC5F,sEAAsE;YACtE,mEAAmE;YACnE,yEAAyE;YACzE,OAAO,EAAE,IAAI,EAAE,IAAW,EAAE,KAAK,EAAE,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAE5D,gEAAgE;QAChE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oCAAoC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,kEAAkE,CAClI,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAW,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACK,4BAA4B,CAClC,WAAoB,EACpB,MAAqB,EACrB,OAA6B;QAE7B,sEAAsE;QACtE,wEAAwE;QACxE,8DAA8D;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CACnC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAC/B,qBAAqB,CAAC,MAAM,CAAC,CAC9B,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjG,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAe,EACf,KAAc,EACd,OAAkD,EAAE;QAEpD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,IACE,CAAC,OAAO,EAAE,SAAS;YACnB,CAAC,OAAO,CAAC,aAAa;YACtB,CAAC,OAAO,CAAC,qBAAqB;YAC9B,CAAC,OAAO,CAAC,wBAAwB,EACjC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,yHAAyH,CAC1H,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACzD,uEAAuE;QACvE,6DAA6D;QAC7D,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;QAExE,MAAM,KAAK,GAAG,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,MAAM,MAAM,GACV,KAAK,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,CAAC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC;QAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAE9D,2EAA2E;QAC3E,wEAAwE;QACxE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;QAC5F,MAAM,QAAQ,GACZ,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS;YAClC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACxF,CAAC,CAAC,QAAQ,CAAC;QAEb,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAE/C,2EAA2E;QAC3E,MAAM,IAAI,CAAC,YAAY,CACrB,MAAM,EACN;YACE,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,EACD,EAAE,EACF,IAAI,CAAC,OAAO,EACZ,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAC9C,CAAC;QAEF,0EAA0E;QAC1E,yDAAyD;QACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAE3E,yEAAyE;QACzE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;gBACnD,OAAO,CAAC,qBAAqB,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,OAAO,CAAC,wBAAwB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAmC,CAAC;QAEhF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QACxC,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5D,IAAI,QAAQ;YAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QAEpD,0EAA0E;QAC1E,uEAAuE;QACvE,aAAa;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE1F,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC;QAE9D,OAAO;YACL,KAAK,EAAE,QAA0B;YACjC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACtC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YACxC,OAAO;YACP,OAAO;SACR,CAAC;IACJ,CAAC;IAED,0EAA0E;IAClE,aAAa,CAAC,MAAkB;QACtC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAE,KAAe;SACxE,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;OAGG;IACK,0BAA0B,CAChC,QAAkB,EAClB,MAAqB,EACrB,OAA6B;QAE7B,MAAM,SAAS,GAAG,OAAO,EAAE,kBAAkB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACzC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBACtD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACK,yBAAyB,CAC/B,OAAuB,EACvB,MAAqB,EACrB,OAAsB,EACtB,cAAc,GAAG,KAAK;QAEtB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/F,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAEtE,uEAAuE;QACvE,sEAAsE;QACtE,qEAAqE;QACrE,0EAA0E;QAC1E,sEAAsE;QACtE,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB;YACtC,CAAC,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,OAAO,CAAC,gBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI;YAC/E,CAAC,CAAC,CAAC,KAAa,EAAW,EAAE;gBACzB,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACnE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC/B,OAAO,GAAG,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC;QAEN,MAAM,KAAK,GAAG,CAAC,OAAuB,EAAkB,EAAE,CACxD,OAAO;aACJ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC;gBAC7B,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,MAAM;YACT,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;SAC3C,CAAC,CAAC,CAAC;QAER,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACK,6BAA6B,CACnC,OAAuB,EACvB,WAAgC;QAEhC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,OAAuB,EAAkB,EAAE,CACxD,OAAO;aACJ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,MAAM,CAAC,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,+CAA+C,MAAM,CAAC,KAAK,YAAY,CACxE,CAAC;gBACJ,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,MAAM;YACT,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;SAC3C,CAAC,CAAC;YACH,uEAAuE;YACvE,uEAAuE;aACtE,MAAM,CACL,CAAC,MAAM,EAAE,EAAE,CACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAC7C,CAAC;QACN,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;OASG;IACK,wBAAwB,CAC9B,OAAuB,EACvB,OAAsC,EACtC,cAAuB;QAEvB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAEpE,MAAM,KAAK,GAAG,CAAC,OAAuB,EAAkB,EAAE,CACxD,OAAO;aACJ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,qEAAqE;YACrE,qDAAqD;YACrD,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC,CAAC,6BAA6B;YAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnC,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,IAAI,mBAAmB,CAC3B,aAAa,EAAE,8BAA8B,MAAM,CAAC,KAAK,IAAI,CAC9D,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,MAAM;YACT,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;SAC3C,CAAC,CAAC,CAAC;QAER,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,yBAAyB,CAC/B,KAAa,EACb,KAAc,EACd,OAAsC,EACtC,cAAuB;QAEvB,MAAM,SAAS,GAAG,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC,CAAC,gCAAgC;QAE9D,MAAM,MAAM,GAAG,CAAC,EAAkB,EAAa,EAAE;YAC/C,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,8BAA8B,KAAK,IAAI,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC;YACjE,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBACxC,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;gBACnB,CAAC;qBAAM,IAAI,cAAc,EAAE,CAAC;oBAC1B,MAAM,CAAC,SAAS,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,CAAC;QACD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,oBAAoB,CAAC,KAAa,EAAE,KAAc;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5E,KAAK;gBACL,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC;gBAC/B,KAAK,EAAE,KAAK;aACb,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH;;;OAGG;IACK,qBAAqB,CAAC,WAAsB;QAClD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,IAAI,EAAE,cAAc,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,cAAc,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,WAAsB;QAC/C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,IAAI,EAAE,WAAW,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAClC,CAAC;IAEO,gBAAgB,CAAC,GAAW;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC;QACrD,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM,IAAI,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU,CAAC,GAAY;QACrB,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG;iBACP,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAe,EAAE,CAAC;gBACnE,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAc,EAAE,CAAC;YACrD,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,MAAM,CACf,CAAC,IAAI,EAAoB,EAAE,CACzB,IAAI,IAAI,IAAI;gBACZ,OAAO,IAAI,KAAK,QAAQ;gBACxB,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAC9B,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACK,aAAa,CACnB,KAAiB,EACjB,SAA+B,EAC/B,OAAsB,EACtB,MAAiC,EACjC,cAAc,GAAG,KAAK;QAEtB,MAAM,MAAM,GAAG,CAAC,SAAmC,EAAc,EAAE;YACjE,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClB,MAAM,IAAI,mBAAmB,CAAC,wBAAwB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,iDAAiD;QACjD,IAAI,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,MAAM,EAAE,CAAC;gBACX,oEAAoE;gBACpE,qEAAqE;gBACrE,wEAAwE;gBACxE,sDAAsD;gBACtD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;wBAClB,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;wBACxD,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC;oBAC7C,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,iCAAiC;gBACjC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,uCAAuC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,sBAAsB,CAC5B,KAAa,EACb,SAA+B,EAC/B,OAAsB,EACtB,YAAiC;QAEjC,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxF,IAAI,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,sBAAsB,CAC5B,EAAK,EACL,KAAiB,EACjB,SAA+B,EAC/B,OAAsB,EACtB,MAAiC,EACjC,cAAuB,EACvB,QAAiD,EACjD,YAAiC;QAEjC,MAAM,eAAe,GAAG,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,sEAAsE;QACtE,0EAA0E;QAC1E,mDAAmD;QACnD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAEjF,2EAA2E;QAC3E,2EAA2E;QAC3E,8EAA8E;QAC9E,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YACzF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC/C,OAAO,CAAC,SAAS,CAAC,EAAa,EAAE,UAAU,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,yEAAyE;QACzE,2CAA2C;QAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;oBAC9B,OAAO,CAAC,iBAAiB,CAAC,EAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,kBAAkB,IAAI,CAAC,KAAK,aAAa,EAAE,mBAAmB,CAAC,CAAC;gBACvF,CAAC;gBACD,SAAS;YACX,CAAC;YACD,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC/B,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC;wBAC/E,IAAI,cAAc,EAAE,CAAC;4BACnB,MAAM,IAAI,mBAAmB,CAAC,wBAAwB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;wBACxE,CAAC;wBACD,SAAS;oBACX,CAAC;oBACD,OAAO,CAAC,kBAAkB,CAAC,EAAa,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3E,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,mBAAmB,IAAI,CAAC,KAAK,aAAa,EAAE,oBAAoB,CAAC,CAAC;gBACzF,CAAC;gBACD,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YACrF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1C,OAAO,CAAC,SAAS,CAAC,EAAa,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,GAAY;QACxB,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG;iBACP,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG;iBACP,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;iBACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACK,gBAAgB,CACtB,MAAgB,EAChB,SAA+B,EAC/B,OAAsB,EACtB,MAAiC,EACjC,cAAc,GAAG,KAAK;QAEtB,MAAM,MAAM,GAAG,CAAC,SAAiC,EAAY,EAAE;YAC7D,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClB,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5D,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,uCAAuC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,eAAe,CAAI,EAAK,EAAE,WAAoB,EAAE,OAA6B;QACnF,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ;YAAE,OAAO;QAE5D,MAAM,CAAC,GAAG,WAAsC,CAAC;QAEjD,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,EAAE,qBAAqB;gBAAE,OAAO;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,qBAAqB,CAAC,EAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;CACF,CAAA;AAv5DY,YAAY;IADxB,UAAU,EAAE;IAWR,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC7B,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;IACtB,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;qCAJG,SAAS;GAT5B,YAAY,CAu5DxB"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -32,11 +32,18 @@ export type ComputedReturn = string | object;
|
|
|
32
32
|
/** A computed field's SQL source: a static string (with `{alias}` token) or a
|
|
33
33
|
* function evaluated at query-build time. */
|
|
34
34
|
export type ComputedSource = string | ((ctx: ComputedContext) => ComputedReturn);
|
|
35
|
-
/** A computed map value: the bare source, or
|
|
36
|
-
*
|
|
35
|
+
/** A computed map value: the bare source, or an options object:
|
|
36
|
+
* - `source` — the SQL source (required).
|
|
37
|
+
* - `type` — codegen-only value-type hint; runtime-invisible.
|
|
38
|
+
* - `project` — opt-in SELECT projection: when true, `FilterRunner.apply()`
|
|
39
|
+
* projects the computed expression into the SELECT list under its alias
|
|
40
|
+
* (via the adapter's `applyComputedSelect`), so executed rows carry the
|
|
41
|
+
* computed value. Unlike `type`, this DOES affect the emitted query.
|
|
42
|
+
* Defaults to `false` (filter/sort-only, the historical behavior). */
|
|
37
43
|
export type ComputedEntry = ComputedSource | {
|
|
38
44
|
source: ComputedSource;
|
|
39
|
-
type
|
|
45
|
+
type?: FilterFieldTypeHint;
|
|
46
|
+
project?: boolean;
|
|
40
47
|
};
|
|
41
48
|
export type ComputedMap = Record<string, ComputedEntry>;
|
|
42
49
|
export interface FilterableOptions {
|
|
@@ -252,6 +259,40 @@ export interface CursorPage<E> {
|
|
|
252
259
|
hasNext: boolean;
|
|
253
260
|
hasPrev: boolean;
|
|
254
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Terminal `groupByCount` specification carried on structured input:
|
|
264
|
+
* `{ field, bucket? }`. `field` is the grouping column (validated against the
|
|
265
|
+
* entity's filterable columns before it reaches SQL); `bucket`, when a positive
|
|
266
|
+
* number, switches to the numeric-bucketed histogram variant.
|
|
267
|
+
*/
|
|
268
|
+
export interface GroupByCountSpec {
|
|
269
|
+
field: string;
|
|
270
|
+
bucket?: number;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* One plain (non-bucketed) group of the {@link FilterRunner.groupByCount}
|
|
274
|
+
* aggregation: a distinct column `value` and its `COUNT(*)`.
|
|
275
|
+
*/
|
|
276
|
+
export interface GroupByCountItem {
|
|
277
|
+
value: unknown;
|
|
278
|
+
count: number;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* One numeric bucket of the bucketed {@link FilterRunner.groupByCount}
|
|
282
|
+
* aggregation. `bucketStart` is `FLOOR(col / bucket) * bucket`; the runner
|
|
283
|
+
* derives `bucketEnd = bucketStart + bucket` (half-open `[start, end)`).
|
|
284
|
+
*/
|
|
285
|
+
export interface GroupByCountBucket {
|
|
286
|
+
bucketStart: number;
|
|
287
|
+
bucketEnd: number;
|
|
288
|
+
count: number;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Result of {@link FilterRunner.groupByCount}: a flat list of `{ value, count }`
|
|
292
|
+
* groups, or — when a numeric `bucket` was requested — `{ bucketStart,
|
|
293
|
+
* bucketEnd, count }` buckets.
|
|
294
|
+
*/
|
|
295
|
+
export type GroupByCountResult = GroupByCountItem[] | GroupByCountBucket[];
|
|
255
296
|
/**
|
|
256
297
|
* Structured input format for the filter pipeline.
|
|
257
298
|
*
|
|
@@ -279,6 +320,13 @@ export interface StructuredInput {
|
|
|
279
320
|
* projection.
|
|
280
321
|
*/
|
|
281
322
|
select?: string | string[];
|
|
323
|
+
/**
|
|
324
|
+
* Terminal group-by-count aggregation: `{ field, bucket? }`. Mutually
|
|
325
|
+
* exclusive with entity-row output — a request carrying this is answered by
|
|
326
|
+
* {@link FilterRunner.groupByCount} with `{ value, count }[]` (or bucketed
|
|
327
|
+
* `{ bucketStart, bucketEnd, count }[]`), never entity rows.
|
|
328
|
+
*/
|
|
329
|
+
groupByCount?: GroupByCountSpec;
|
|
282
330
|
paginate?: OffsetPagination | CursorPagination;
|
|
283
331
|
[key: string]: unknown;
|
|
284
332
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,CAAC;AAEjG,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,OAAO,GACP,MAAM,GACN,CAAC,MAAM,GAAG,EAAE,CAAC,GACb,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;0EAE0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;CACb;AAED;sEACsE;AACtE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C;6CAC6C;AAC7C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,cAAc,CAAC,CAAC;AAEjF;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|