@dudousxd/nestjs-filter 1.14.0 → 1.16.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 +26 -0
- package/README.md +1 -1
- package/dist/adapter/adapter.d.ts +39 -0
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/aggregate/aggregate-path.d.ts +18 -0
- package/dist/aggregate/aggregate-path.d.ts.map +1 -0
- package/dist/aggregate/aggregate-path.js +28 -0
- package/dist/aggregate/aggregate-path.js.map +1 -0
- package/dist/base-filter.d.ts +13 -1
- package/dist/base-filter.d.ts.map +1 -1
- package/dist/base-filter.js +13 -1
- package/dist/base-filter.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runner.d.ts +84 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +235 -12
- package/dist/runner.js.map +1 -1
- package/package.json +1 -1
- package/skills/filter-safety/SKILL.md +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @dudousxd/nestjs-filter
|
|
2
2
|
|
|
3
|
+
## 1.16.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#56](https://github.com/DavideCarvalho/nestjs-filter/pull/56) [`8452d5a`](https://github.com/DavideCarvalho/nestjs-filter/commit/8452d5ac23195a2eb22325f904da117b28d31234) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Blacklisted filter keys are now also excluded from `where` column filters (security-expectation fix).
|
|
8
|
+
|
|
9
|
+
Previously, `blacklistMethod(key)` and the static `@Filterable({ blocked })` config only gated **structured** dispatch — the separate `where` ColumnFilter pipeline never consulted the blacklist, so a client `where: [{ field: <blacklisted>, ... }]` was applied anyway. In a filtering library, a "blacklisted" field reads as "cannot be filtered on", and probing it through `where` leaks information via result counts even when the field is absent from the response.
|
|
10
|
+
|
|
11
|
+
Blacklisted keys (both the static `blocked` list and runtime `blacklistMethod`) now also drop matching `where` column-filter clauses. Matching clauses are **dropped and ignored with a warning** naming the field (not rejected with a 400, so existing clients keep working), at any depth of the AND/OR tree, and a group emptied by pruning collapses cleanly. The field is compared after alias resolution, so an alias pointing at a blacklisted field is blocked too.
|
|
12
|
+
|
|
13
|
+
Consumers who relied on `where`-filtering a blacklisted field will see those filter nodes ignored (with a warning). Whitelist behavior is unchanged: `whitelistMethod`/`allowed` are additive dispatch grants and do not constrain `where`. The `applyDynamic` admin path is unchanged (it intentionally has no whitelist/blacklist).
|
|
14
|
+
|
|
15
|
+
## 1.15.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- [#51](https://github.com/DavideCarvalho/nestjs-filter/pull/51) [`3f21e1f`](https://github.com/DavideCarvalho/nestjs-filter/commit/3f21e1f9d40ca7f210518f6ab2c8e52c3ecd2dd8) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Native to-many aggregate fields: sort and filter root rows by an aggregate of a one-to-many / many-to-many collection via a virtual sub-path — `posts.$count`, `posts.$sum.views`, `posts.$avg.rating`, `posts.$min.createdAt`, `posts.$max.total`.
|
|
20
|
+
|
|
21
|
+
- `sort=-posts.$count`, `posts.$sum.views[gt]=100`, and the typed `filterQuery().sortDesc('posts.$count').where('posts.$sum.views','gt',100)` all work.
|
|
22
|
+
- Compiled to correlated scalar subqueries (both adapters; TypeORM param-free) — no row multiplication, pagination stays intact. Many-to-many correlates through the pivot/junction table.
|
|
23
|
+
- Auto-discovered from ORM metadata under `autoFields: true` (with no `allowed` list), subject to the block-list; only real numeric child columns qualify for `$sum`/`$avg`/`$min`/`$max`; the client comparison value is always bound as a parameter.
|
|
24
|
+
- Empty collection: `$count` → 0, `$sum` → 0 (COALESCE), `$avg`/`$min`/`$max` → NULL.
|
|
25
|
+
- Typed as `number` in the generated `filterQuery()`, pruned by `maxDepth` (an aggregate path counts as one relation hop).
|
|
26
|
+
|
|
27
|
+
Computed string sources are now emitted verbatim in both the MikroORM and TypeORM adapters — the `{alias}` token is no longer substituted. A correlated subquery in a _computed_ field must use the function form (`({ alias }) => ...`). Computed fields are for virtual columns that don't exist in a table (e.g. `fullName`); to aggregate a to-many collection, use the native aggregate paths above.
|
|
28
|
+
|
|
3
29
|
## 1.14.0
|
|
4
30
|
|
|
5
31
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ class UsersController {
|
|
|
59
59
|
|
|
60
60
|
### Decorators
|
|
61
61
|
|
|
62
|
-
- **`@Filterable({ entity, allowed?, blocked? })`** -- Class decorator. Associates a filter with an entity. `allowed` whitelists keys; `blocked` blacklists them.
|
|
62
|
+
- **`@Filterable({ entity, allowed?, blocked? })`** -- Class decorator. Associates a filter with an entity. `allowed` whitelists keys; `blocked` blacklists them. A blacklisted key is barred from filtering entirely: it is skipped in structured dispatch **and** dropped from `where` column filters (matching clauses are ignored with a warning, at any depth, rather than rejected). The runtime `blacklistMethod(key)` behaves the same; `whitelistMethod`/`allowed` grant dispatch access and do **not** constrain `where`.
|
|
63
63
|
- **`@FilterFor(inputKey?)`** -- Method decorator. Maps an input key to the method. Defaults to the method name if omitted.
|
|
64
64
|
- **`@ApplyFilter(FilterClass, options?)`** -- Parameter decorator. Resolves input from the request, runs the filter, and injects the QueryBuilder. Options: `source` (`'auto'|'query'|'body'|Function`), `dto`, `resolve` (dynamic filter selection).
|
|
65
65
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Type } from '@nestjs/common';
|
|
2
|
+
import type { AggregatePath } from '../aggregate/aggregate-path.js';
|
|
2
3
|
import type { ColumnFilter } from '../operators/types.js';
|
|
3
4
|
import type { ComputedSource, SortItem } from '../types.js';
|
|
4
5
|
/**
|
|
@@ -282,6 +283,44 @@ export interface FilterAdapter {
|
|
|
282
283
|
* @param direction - Sort direction.
|
|
283
284
|
*/
|
|
284
285
|
applyComputedSort?(qb: unknown, source: ComputedSource, direction: 'asc' | 'desc'): void;
|
|
286
|
+
/**
|
|
287
|
+
* Applies an ORDER BY on a **to-many aggregate field** — a virtual sub-path
|
|
288
|
+
* like `posts.$count` or `posts.$sum.views`, parsed via `parseAggregatePath`.
|
|
289
|
+
* Implementations compile the aggregate into a correlated scalar subquery
|
|
290
|
+
* (never a JOIN + GROUP BY, which would multiply root rows) and order by it,
|
|
291
|
+
* the same technique {@link applyComputedSort} uses for dev-provided SQL.
|
|
292
|
+
*
|
|
293
|
+
* Optional — adapters that don't support to-many aggregate fields should not
|
|
294
|
+
* implement this. When a client requests one and the adapter lacks this
|
|
295
|
+
* method, the runner logs a warning and skips the sort.
|
|
296
|
+
*
|
|
297
|
+
* @param qb - The query builder instance.
|
|
298
|
+
* @param aggregate - The parsed aggregate path (relation + fn + optional column).
|
|
299
|
+
* @param direction - Sort direction.
|
|
300
|
+
*/
|
|
301
|
+
applyAggregateSort?(qb: unknown, aggregate: AggregatePath, direction: 'asc' | 'desc'): void;
|
|
302
|
+
/**
|
|
303
|
+
* Applies a WHERE condition on a **to-many aggregate field** — a virtual
|
|
304
|
+
* sub-path like `posts.$count` or `posts.$sum.views`, parsed via
|
|
305
|
+
* `parseAggregatePath`. Implementations compile the aggregate into a
|
|
306
|
+
* correlated scalar subquery and compare it using `filter.operator` /
|
|
307
|
+
* `filter.value`, the same technique {@link applyComputedField} uses for
|
|
308
|
+
* dev-provided SQL. The client-supplied comparison value is always
|
|
309
|
+
* parameterized, never inlined; only the dev-derived subquery SQL
|
|
310
|
+
* (relation/column names, already validated against ORM metadata) is
|
|
311
|
+
* ever emitted verbatim.
|
|
312
|
+
*
|
|
313
|
+
* Optional — adapters that don't support to-many aggregate fields should not
|
|
314
|
+
* implement this. When a client requests one and the adapter lacks this
|
|
315
|
+
* method, the runner logs a warning and skips the filter.
|
|
316
|
+
*
|
|
317
|
+
* @param qb - The query builder instance.
|
|
318
|
+
* @param aggregate - The parsed aggregate path (relation + fn + optional column).
|
|
319
|
+
* @param filter - The single-operator condition to apply (`field` carries the
|
|
320
|
+
* original client-facing path; adapters typically ignore it in favor of the
|
|
321
|
+
* compiled subquery, using `operator`/`value` for the comparison).
|
|
322
|
+
*/
|
|
323
|
+
applyAggregateField?(qb: unknown, aggregate: AggregatePath, filter: ColumnFilter): void;
|
|
285
324
|
/**
|
|
286
325
|
* Applies offset-based pagination to the query builder.
|
|
287
326
|
*
|
|
@@ -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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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type AggregateFn = 'count' | 'sum' | 'avg' | 'min' | 'max';
|
|
2
|
+
export interface AggregatePath {
|
|
3
|
+
relation: string;
|
|
4
|
+
fn: AggregateFn;
|
|
5
|
+
column?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Parses a to-many aggregate field path.
|
|
9
|
+
*
|
|
10
|
+
* Grammar (single relation hop only):
|
|
11
|
+
* - `<relation>.$count` → { relation, fn: 'count' }
|
|
12
|
+
* - `<relation>.$<fn>.<childColumn>` → { relation, fn, column } for fn in sum|avg|min|max
|
|
13
|
+
*
|
|
14
|
+
* Returns `null` for anything else so callers can fall through to
|
|
15
|
+
* non-aggregate field handling instead of throwing.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseAggregatePath(path: string): AggregatePath | null;
|
|
18
|
+
//# sourceMappingURL=aggregate-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-path.d.ts","sourceRoot":"","sources":["../../src/aggregate/aggregate-path.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAClE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,WAAW,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAWrE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const COLUMN_FNS = new Set(['sum', 'avg', 'min', 'max']);
|
|
2
|
+
/**
|
|
3
|
+
* Parses a to-many aggregate field path.
|
|
4
|
+
*
|
|
5
|
+
* Grammar (single relation hop only):
|
|
6
|
+
* - `<relation>.$count` → { relation, fn: 'count' }
|
|
7
|
+
* - `<relation>.$<fn>.<childColumn>` → { relation, fn, column } for fn in sum|avg|min|max
|
|
8
|
+
*
|
|
9
|
+
* Returns `null` for anything else so callers can fall through to
|
|
10
|
+
* non-aggregate field handling instead of throwing.
|
|
11
|
+
*/
|
|
12
|
+
export function parseAggregatePath(path) {
|
|
13
|
+
const parts = path.split('.');
|
|
14
|
+
// <rel>.$<fn> → 2 parts, $count
|
|
15
|
+
// <rel>.$<fn>.<col> → 3 parts, column fns
|
|
16
|
+
if (parts.length < 2 || parts.length > 3)
|
|
17
|
+
return null;
|
|
18
|
+
const [relation, token, column] = parts;
|
|
19
|
+
if (!relation || !token || !token.startsWith('$'))
|
|
20
|
+
return null;
|
|
21
|
+
const fn = token.slice(1);
|
|
22
|
+
if (fn === 'count')
|
|
23
|
+
return parts.length === 2 ? { relation, fn } : null;
|
|
24
|
+
if (COLUMN_FNS.has(fn))
|
|
25
|
+
return parts.length === 3 && column ? { relation, fn, column } : null;
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=aggregate-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-path.js","sourceRoot":"","sources":["../../src/aggregate/aggregate-path.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEtE;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,2CAA2C;IAC3C,+CAA+C;IAC/C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IACxC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC;IACzC,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9F,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/base-filter.d.ts
CHANGED
|
@@ -36,11 +36,23 @@ export declare abstract class BaseFilter<TQuery = unknown> {
|
|
|
36
36
|
/**
|
|
37
37
|
* Dynamically whitelist a filter key at runtime (typically called in setup()).
|
|
38
38
|
* Whitelisted keys bypass static allowed/blocked checks in the dispatcher.
|
|
39
|
+
*
|
|
40
|
+
* Whitelisting is additive (it grants structured @FilterFor dispatch access)
|
|
41
|
+
* and keyed by dispatch key, not by entity column, so it does NOT constrain
|
|
42
|
+
* `where` column filters: it neither restricts which columns a client may
|
|
43
|
+
* filter on nor re-enables a column that is otherwise blacklisted there. To
|
|
44
|
+
* bar a field from `where`, blacklist it ({@link blacklistMethod}).
|
|
39
45
|
*/
|
|
40
46
|
protected whitelistMethod(key: string): void;
|
|
41
47
|
/**
|
|
42
48
|
* Dynamically blacklist a filter key at runtime (typically called in setup()).
|
|
43
|
-
* Blacklisted keys are skipped during dispatch regardless of static
|
|
49
|
+
* Blacklisted keys are skipped during dispatch regardless of static
|
|
50
|
+
* configuration, AND their matching `where` column filters are dropped (a
|
|
51
|
+
* blacklisted field cannot be filtered on at all — structurally or via
|
|
52
|
+
* `where`). A dropped `where` clause is ignored with a warning naming the
|
|
53
|
+
* field, not rejected, so existing clients keep working; the field's key is
|
|
54
|
+
* compared after alias resolution, so an alias pointing at a blacklisted
|
|
55
|
+
* field is blocked too. Same effect as the static `@Filterable.blocked` list.
|
|
44
56
|
*/
|
|
45
57
|
protected blacklistMethod(key: string): void;
|
|
46
58
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-filter.d.ts","sourceRoot":"","sources":["../src/base-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,8BAAsB,UAAU,CAAC,MAAM,GAAG,OAAO;IAC/C,IAAI,MAAM,IAAI,MAAM,CAInB;IAED,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAI9C;IAED,IAAI,QAAQ,IAAI,aAAa,CAI5B;IAED,IAAI,QAAQ,IAAI,aAAa,GAAG,IAAI,CAInC;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,QAAQ,IAAI,MAAM,GAAG,SAAS;IAIxC;;;;;;;;OAQG;IACH,SAAS,CAAC,cAAc,IAAI,OAAO,GAAG,SAAS;IAI/C
|
|
1
|
+
{"version":3,"file":"base-filter.d.ts","sourceRoot":"","sources":["../src/base-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,8BAAsB,UAAU,CAAC,MAAM,GAAG,OAAO;IAC/C,IAAI,MAAM,IAAI,MAAM,CAInB;IAED,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAI9C;IAED,IAAI,QAAQ,IAAI,aAAa,CAI5B;IAED,IAAI,QAAQ,IAAI,aAAa,GAAG,IAAI,CAInC;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,QAAQ,IAAI,MAAM,GAAG,SAAS;IAIxC;;;;;;;;OAQG;IACH,SAAS,CAAC,cAAc,IAAI,OAAO,GAAG,SAAS;IAI/C;;;;;;;;;OASG;IACH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;;;;OASG;IACH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM5C;;;OAGG;IACH,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAC3B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO;IAOlD;;;OAGG;IACH,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IACjD,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAapD;;;;;;;;;;;OAWG;cACa,OAAO,CACrB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC;IAsBhB,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAC/B"}
|
package/dist/base-filter.js
CHANGED
|
@@ -59,6 +59,12 @@ export class BaseFilter {
|
|
|
59
59
|
/**
|
|
60
60
|
* Dynamically whitelist a filter key at runtime (typically called in setup()).
|
|
61
61
|
* Whitelisted keys bypass static allowed/blocked checks in the dispatcher.
|
|
62
|
+
*
|
|
63
|
+
* Whitelisting is additive (it grants structured @FilterFor dispatch access)
|
|
64
|
+
* and keyed by dispatch key, not by entity column, so it does NOT constrain
|
|
65
|
+
* `where` column filters: it neither restricts which columns a client may
|
|
66
|
+
* filter on nor re-enables a column that is otherwise blacklisted there. To
|
|
67
|
+
* bar a field from `where`, blacklist it ({@link blacklistMethod}).
|
|
62
68
|
*/
|
|
63
69
|
whitelistMethod(key) {
|
|
64
70
|
const s = filterAls.getStore();
|
|
@@ -68,7 +74,13 @@ export class BaseFilter {
|
|
|
68
74
|
}
|
|
69
75
|
/**
|
|
70
76
|
* Dynamically blacklist a filter key at runtime (typically called in setup()).
|
|
71
|
-
* Blacklisted keys are skipped during dispatch regardless of static
|
|
77
|
+
* Blacklisted keys are skipped during dispatch regardless of static
|
|
78
|
+
* configuration, AND their matching `where` column filters are dropped (a
|
|
79
|
+
* blacklisted field cannot be filtered on at all — structurally or via
|
|
80
|
+
* `where`). A dropped `where` clause is ignored with a warning naming the
|
|
81
|
+
* field, not rejected, so existing clients keep working; the field's key is
|
|
82
|
+
* compared after alias resolution, so an alias pointing at a blacklisted
|
|
83
|
+
* field is blocked too. Same effect as the static `@Filterable.blocked` list.
|
|
72
84
|
*/
|
|
73
85
|
blacklistMethod(key) {
|
|
74
86
|
const s = filterAls.getStore();
|
package/dist/base-filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-filter.js","sourceRoot":"","sources":["../src/base-filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAGzE,MAAM,OAAgB,UAAU;IAC9B,IAAI,MAAM;QACR,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,+BAA+B,EAAE,CAAC;QACpD,OAAO,CAAC,CAAC,MAAgB,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,+BAA+B,EAAE,CAAC;QACpD,OAAO,CAAC,CAAC,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ;QACV,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,+BAA+B,EAAE,CAAC;QACpD,OAAO,CAAC,CAAC,QAAQ,CAAC;IACpB,CAAC;IAED,IAAI,QAAQ;QACV,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,+BAA+B,EAAE,CAAC;QACpD,OAAO,CAAC,CAAC,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACO,QAAQ;QAChB,OAAO,SAAS,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAC5D,CAAC;IAED;;;;;;;;OAQG;IACO,cAAc;QACtB,OAAO,SAAS,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC3D,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"base-filter.js","sourceRoot":"","sources":["../src/base-filter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -34,4 +34,6 @@ export { ColumnFilterDto } from './operators/column-filter.dto.js';
|
|
|
34
34
|
export { validateColumnFilter, validateColumnFilters, normalizeOperator, InvalidColumnFilterError, MAX_FILTER_DEPTH, isValidFieldPath, parseFieldPath, hasArrayPathSegment, } from './operators/validate-column-filter.js';
|
|
35
35
|
export type { FieldPathSegment } from './operators/validate-column-filter.js';
|
|
36
36
|
export { isOperatorObject, valueToColumnFilters } from './operators/value-shape.js';
|
|
37
|
+
export { parseAggregatePath } from './aggregate/aggregate-path.js';
|
|
38
|
+
export type { AggregateFn, AggregatePath } from './aggregate/aggregate-path.js';
|
|
37
39
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,4 +23,5 @@ export { FILTER_OPERATORS, OPERATOR_ALIASES } from './operators/types.js';
|
|
|
23
23
|
export { ColumnFilterDto } from './operators/column-filter.dto.js';
|
|
24
24
|
export { validateColumnFilter, validateColumnFilters, normalizeOperator, InvalidColumnFilterError, MAX_FILTER_DEPTH, isValidFieldPath, parseFieldPath, hasArrayPathSegment, } from './operators/validate-column-filter.js';
|
|
25
25
|
export { isOperatorObject, valueToColumnFilters } from './operators/value-shape.js';
|
|
26
|
+
export { parseAggregatePath } from './aggregate/aggregate-path.js';
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
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;AAO9C,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,MAAM,aAAa,CAAC;AAC3C,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;AA2BrB,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"}
|
|
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;AAO9C,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,MAAM,aAAa,CAAC;AAC3C,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;AA2BrB,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
|
@@ -167,6 +167,29 @@ export declare class FilterRunner {
|
|
|
167
167
|
* logged warning.
|
|
168
168
|
*/
|
|
169
169
|
private resolveAutoFields;
|
|
170
|
+
/**
|
|
171
|
+
* Synthesizes allowed to-many aggregate keys (`<rel>.$count`,
|
|
172
|
+
* `<rel>.$sum.<col>`, …) from ORM relation/field metadata, and adds them to
|
|
173
|
+
* the auto-field `set` in place.
|
|
174
|
+
*
|
|
175
|
+
* For every relation reported by `getEntityRelations` whose cardinality is
|
|
176
|
+
* `one-to-many` or `many-to-many` (a to-one relation has no "many" to
|
|
177
|
+
* aggregate) and that isn't excluded by `@Filterable.blocked`, adds:
|
|
178
|
+
* - `${rel.name}.$count` — always (no child column needed).
|
|
179
|
+
* - `${rel.name}.$sum.${col}` / `.$avg.` / `.$min.` / `.$max.` — one set per
|
|
180
|
+
* **numeric** child column reported by `getRelatedFields`. Non-numeric
|
|
181
|
+
* child columns (strings, dates, …) never qualify — `SUM`/`AVG`/`MIN`/
|
|
182
|
+
* `MAX` over them is either a SQL error or nonsensical, and allowing them
|
|
183
|
+
* would let a client probe arbitrary child columns through the aggregate
|
|
184
|
+
* path.
|
|
185
|
+
*
|
|
186
|
+
* A no-op unless the adapter implements both `getEntityRelations` and
|
|
187
|
+
* `getRelatedFields` (relation-cardinality + related-field introspection)
|
|
188
|
+
* AND at least one of the aggregate-apply capabilities
|
|
189
|
+
* (`applyAggregateSort`/`applyAggregateField`) — without those, there is
|
|
190
|
+
* nothing for the synthesized keys to ever be consumed by.
|
|
191
|
+
*/
|
|
192
|
+
private addAggregateAutoFields;
|
|
170
193
|
/**
|
|
171
194
|
* Parses raw include input into an array of string paths.
|
|
172
195
|
*
|
|
@@ -275,6 +298,26 @@ export declare class FilterRunner {
|
|
|
275
298
|
* No-op (pass-through) when the adapter exposes no metadata.
|
|
276
299
|
*/
|
|
277
300
|
private pruneUnknownColumnFilters;
|
|
301
|
+
/**
|
|
302
|
+
* Drops `where` column-filter clauses whose resolved field is blacklisted —
|
|
303
|
+
* either statically (`@Filterable.blocked`) or at runtime (`blacklistMethod`,
|
|
304
|
+
* via the `$blacklisted` set). A blacklisted field is one a client may not
|
|
305
|
+
* filter on; letting it through `where` would leak the field's values via
|
|
306
|
+
* result counts even when the column is absent from the response — the exact
|
|
307
|
+
* information-disclosure the blacklist exists to prevent.
|
|
308
|
+
*
|
|
309
|
+
* Matching clauses are DROPPED (not rejected with a 400), mirroring the
|
|
310
|
+
* unknown-column handling in {@link pruneUnknownColumnFilters}, so a client
|
|
311
|
+
* whose stray filter was previously (wrongly) honored keeps working — but a
|
|
312
|
+
* distinct warning naming the field is emitted so the silent behavior change
|
|
313
|
+
* is observable. Recurses AND/OR; a group emptied by pruning collapses.
|
|
314
|
+
*
|
|
315
|
+
* Fields are compared AFTER alias remap ({@link remapColumnFilterAliases}),
|
|
316
|
+
* matching structured dispatch's own `$blacklisted.has(key)` gate — which
|
|
317
|
+
* runs on post-remap keys — so blacklisting a key blocks both the field and
|
|
318
|
+
* any alias pointing at it, consistently across both pipelines.
|
|
319
|
+
*/
|
|
320
|
+
private pruneBlacklistedColumnFilters;
|
|
278
321
|
/**
|
|
279
322
|
* Enforces per-field operator allowlists on a `where` ColumnFilter tree.
|
|
280
323
|
*
|
|
@@ -301,6 +344,24 @@ export declare class FilterRunner {
|
|
|
301
344
|
* disallowed operator raises instead of being dropped.
|
|
302
345
|
*/
|
|
303
346
|
private enforceAutoFieldOperators;
|
|
347
|
+
/**
|
|
348
|
+
* Converts an auto-field-shaped value (scalar, array, or operator object —
|
|
349
|
+
* the same three shapes {@link enforceAutoFieldOperators} interprets) into
|
|
350
|
+
* one or more single-operator {@link ColumnFilter} entries for `field`.
|
|
351
|
+
*
|
|
352
|
+
* Used by aggregate-path filter routing, whose adapter capability
|
|
353
|
+
* (`applyAggregateField`) takes a single-operator `ColumnFilter` (mirroring
|
|
354
|
+
* the `where[]` shape) rather than a raw value. An operator object with
|
|
355
|
+
* multiple keys (e.g. `{ gte: 1, lte: 10 }`) yields one `ColumnFilter` per
|
|
356
|
+
* operator, ANDed by the caller issuing one `applyAggregateField` call per
|
|
357
|
+
* entry — the same implicit AND semantics as multiple `where[]` clauses on
|
|
358
|
+
* the same field.
|
|
359
|
+
*
|
|
360
|
+
* - scalar → `[{ field, operator: 'equals', value }]`
|
|
361
|
+
* - array → `[{ field, operator: 'in', value }]`
|
|
362
|
+
* - operator object → one entry per `{ operator, value }` pair
|
|
363
|
+
*/
|
|
364
|
+
private valueToColumnFilters;
|
|
304
365
|
/**
|
|
305
366
|
* Applies global search for dynamic mode: auto-detects all string columns
|
|
306
367
|
* from entity metadata (no filter class with static search config).
|
|
@@ -332,13 +393,35 @@ export declare class FilterRunner {
|
|
|
332
393
|
* Silently skips invalid fields.
|
|
333
394
|
*/
|
|
334
395
|
private validateSorts;
|
|
396
|
+
/**
|
|
397
|
+
* Validates a single to-many aggregate sort field (`posts.$count`, …),
|
|
398
|
+
* mirroring how {@link validateSorts} gates a real column: the static
|
|
399
|
+
* `FilterClass.sort` allowlist wins when declared (exact membership,
|
|
400
|
+
* same as a real column); otherwise falls back to the resolved auto-field
|
|
401
|
+
* set — the same `Set` `resolveAutoFields`/`addAggregateAutoFields` build
|
|
402
|
+
* for the filter/where path, which already honors `@Filterable.blocked`
|
|
403
|
+
* and to-many-only exposure (a to-one relation or a blocked relation never
|
|
404
|
+
* makes it into that Set).
|
|
405
|
+
*
|
|
406
|
+
* When the adapter can't introspect relation cardinality / related columns
|
|
407
|
+
* (`getEntityRelations`/`getRelatedFields` absent) there is nothing to
|
|
408
|
+
* validate the aggregate key against, so — matching the same graceful
|
|
409
|
+
* degradation the filter/where aggregate branch uses — this returns `true`
|
|
410
|
+
* (accept any well-formed aggregate path), the pre-discovery behavior.
|
|
411
|
+
*/
|
|
412
|
+
private isAggregateSortAllowed;
|
|
335
413
|
/**
|
|
336
414
|
* Applies a list of sorts, routing computed/virtual aliases to
|
|
337
415
|
* `applyComputedSort` (their dev-provided SQL expression) and regular columns
|
|
338
416
|
* to `applySort`. Order is preserved across the mix so the resulting
|
|
339
417
|
* `ORDER BY` matches the requested column order. Regular columns are still
|
|
340
418
|
* validated against the allowlist / entity metadata; computed aliases bypass
|
|
341
|
-
* that check because they are dev-declared, not real columns.
|
|
419
|
+
* that check because they are dev-declared, not real columns. To-many
|
|
420
|
+
* aggregate sorts (`posts.$count`, …) ARE validated — see
|
|
421
|
+
* {@link isAggregateSortAllowed} — the same allow/block-list enforcement
|
|
422
|
+
* the filter/where path applies to aggregate keys (`apply()`'s aggregate-
|
|
423
|
+
* path branch), so a blocked or to-one relation can't be reached through
|
|
424
|
+
* `sort` even though it can't be reached through `where` either.
|
|
342
425
|
*/
|
|
343
426
|
private applySortsWithComputed;
|
|
344
427
|
/**
|
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,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.js
CHANGED
|
@@ -13,6 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
var FilterRunner_1;
|
|
14
14
|
import { BadRequestException, Inject, Injectable, Logger, Optional, } from '@nestjs/common';
|
|
15
15
|
import { ModuleRef } from '@nestjs/core';
|
|
16
|
+
import { parseAggregatePath } from './aggregate/aggregate-path.js';
|
|
16
17
|
import { runWithFilterState } from './als-store.js';
|
|
17
18
|
import { resolveFieldAlias } from './decorator/aliases.js';
|
|
18
19
|
import { allowedFieldNames, normalizeAllowed, } from './decorator/allowed.js';
|
|
@@ -30,6 +31,8 @@ import { normalizeOperator, validateColumnFilters } from './operators/validate-c
|
|
|
30
31
|
import { buildKeyset, decodeCursor, encodeCursor, extractCursorValues, } from './pagination/cursor.js';
|
|
31
32
|
import { CONTEXT_ACCESSOR, FILTER_ADAPTER, FILTER_MODULE_OPTIONS } from './tokens.js';
|
|
32
33
|
const MATCH_ALL_SET = { has: () => true };
|
|
34
|
+
/** Numeric-column aggregate functions synthesized per to-many relation (see {@link FilterRunner.addAggregateAutoFields}). `$count` is handled separately — it needs no child column. */
|
|
35
|
+
const AGGREGATE_COLUMN_FNS = ['sum', 'avg', 'min', 'max'];
|
|
33
36
|
/**
|
|
34
37
|
* Merges the inline `@Filterable.computed` map and `@Computed`-decorated
|
|
35
38
|
* methods into a single alias → {@link ComputedSource} registry.
|
|
@@ -321,15 +324,28 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
321
324
|
// Resolve the (possibly operator-restricting) allowlist once for this run.
|
|
322
325
|
const normalizedAllowed = normalizeAllowed(filterableMeta?.allowed);
|
|
323
326
|
const throwOnInvalidPolicy = this.resolveThrowOnInvalid(FilterClass);
|
|
327
|
+
// Drop `where` clauses on blacklisted fields — both the static
|
|
328
|
+
// `@Filterable.blocked` config and any runtime `blacklistMethod` keys
|
|
329
|
+
// (`$blacklisted`, populated during the setup() run above). A
|
|
330
|
+
// blacklisted field cannot be filtered structurally, so it must not be
|
|
331
|
+
// filterable via `where` either. Runs before operator-allowlist and
|
|
332
|
+
// validation. See {@link pruneBlacklistedColumnFilters}.
|
|
333
|
+
const blacklistedFields = new Set([
|
|
334
|
+
...(filterableMeta?.blocked ?? []),
|
|
335
|
+
...$blacklisted,
|
|
336
|
+
]);
|
|
337
|
+
const scopedColumnFilters = blacklistedFields.size > 0
|
|
338
|
+
? this.pruneBlacklistedColumnFilters(columnFilters, blacklistedFields)
|
|
339
|
+
: columnFilters;
|
|
324
340
|
// Apply column filters via adapter before @FilterFor dispatch
|
|
325
|
-
if (
|
|
326
|
-
const opAllowed = this.enforceOperatorAllowlist(
|
|
341
|
+
if (scopedColumnFilters.length > 0 && adapter?.applyColumnFilters) {
|
|
342
|
+
const opAllowed = this.enforceOperatorAllowlist(scopedColumnFilters, normalizedAllowed, throwOnInvalidPolicy);
|
|
327
343
|
if (opAllowed.length > 0) {
|
|
328
344
|
validateColumnFilters(opAllowed);
|
|
329
345
|
adapter.applyColumnFilters(qb, opAllowed, filterableMeta?.entity);
|
|
330
346
|
}
|
|
331
347
|
}
|
|
332
|
-
else if (
|
|
348
|
+
else if (scopedColumnFilters.length > 0 && !adapter?.applyColumnFilters) {
|
|
333
349
|
this.warnUnsupported('Column filters (where) provided', 'applyColumnFilters');
|
|
334
350
|
}
|
|
335
351
|
// Resolve auto-fields configuration
|
|
@@ -379,6 +395,40 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
379
395
|
}
|
|
380
396
|
continue;
|
|
381
397
|
}
|
|
398
|
+
// Check if this key is a to-many aggregate path (`posts.$count`,
|
|
399
|
+
// `posts.$sum.views`, …). Intercepted before auto-field / dot-notation
|
|
400
|
+
// relation handling so the aggregate's `$fn` segment is never mistaken
|
|
401
|
+
// for a real relation field. A parse-miss falls through unchanged.
|
|
402
|
+
const aggregatePath = parseAggregatePath(key);
|
|
403
|
+
if (aggregatePath) {
|
|
404
|
+
if (adapter?.applyAggregateField) {
|
|
405
|
+
// When the adapter can introspect relation cardinality + related
|
|
406
|
+
// columns (the same capability `resolveAutoFields` uses to
|
|
407
|
+
// synthesize aggregate keys — see `addAggregateAutoFields`), the
|
|
408
|
+
// path must be a member of the resolved auto-field set: honors
|
|
409
|
+
// `@Filterable.blocked`, to-many-only exposure, and numeric-only
|
|
410
|
+
// child columns exactly like a real column would be. Adapters
|
|
411
|
+
// that can't introspect relations keep the pre-discovery
|
|
412
|
+
// behavior (accept any well-formed aggregate path) — same
|
|
413
|
+
// graceful degradation every other metadata-optional capability
|
|
414
|
+
// in this file uses.
|
|
415
|
+
const canValidateAggregate = !!(adapter.getEntityRelations && adapter.getRelatedFields);
|
|
416
|
+
if (canValidateAggregate && !autoFieldSet?.has(key)) {
|
|
417
|
+
this.handleUnknownKey(key);
|
|
418
|
+
continue;
|
|
419
|
+
}
|
|
420
|
+
const filtered = this.enforceAutoFieldOperators(key, value, normalizedAllowed, throwOnInvalidPolicy);
|
|
421
|
+
if (filtered !== undefined) {
|
|
422
|
+
for (const columnFilter of this.valueToColumnFilters(key, filtered)) {
|
|
423
|
+
adapter.applyAggregateField(qb, aggregatePath, columnFilter);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
this.warnUnsupported(`Aggregate field "${key}" provided`, 'applyAggregateField');
|
|
429
|
+
}
|
|
430
|
+
continue;
|
|
431
|
+
}
|
|
382
432
|
// Check if this key is an auto-field
|
|
383
433
|
if (autoFieldSet?.has(key)) {
|
|
384
434
|
if (adapter?.applyAutoField) {
|
|
@@ -494,7 +544,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
494
544
|
: this.parseSorts(this.resolveDefaultSort(FilterClass));
|
|
495
545
|
if (sorts.length > 0 && adapter?.applySort) {
|
|
496
546
|
const allowedSorts = FilterClass.sort;
|
|
497
|
-
this.applySortsWithComputed(qb, sorts, allowedSorts, adapter, filterableMeta?.entity, this.resolveThrowOnInvalid(FilterClass), computedRegistry);
|
|
547
|
+
this.applySortsWithComputed(qb, sorts, allowedSorts, adapter, filterableMeta?.entity, this.resolveThrowOnInvalid(FilterClass), computedRegistry, autoFieldSet);
|
|
498
548
|
}
|
|
499
549
|
// Apply pagination
|
|
500
550
|
this.applyPagination(qb, rawPaginate, adapter);
|
|
@@ -691,6 +741,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
691
741
|
if (!filterForMap.has(field.name))
|
|
692
742
|
set.add(field.name);
|
|
693
743
|
}
|
|
744
|
+
this.addAggregateAutoFields(set, meta, adapter);
|
|
694
745
|
return set;
|
|
695
746
|
}
|
|
696
747
|
}
|
|
@@ -701,6 +752,54 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
701
752
|
// Explicit list of auto-field names
|
|
702
753
|
return new Set(autoFieldsConfig);
|
|
703
754
|
}
|
|
755
|
+
/**
|
|
756
|
+
* Synthesizes allowed to-many aggregate keys (`<rel>.$count`,
|
|
757
|
+
* `<rel>.$sum.<col>`, …) from ORM relation/field metadata, and adds them to
|
|
758
|
+
* the auto-field `set` in place.
|
|
759
|
+
*
|
|
760
|
+
* For every relation reported by `getEntityRelations` whose cardinality is
|
|
761
|
+
* `one-to-many` or `many-to-many` (a to-one relation has no "many" to
|
|
762
|
+
* aggregate) and that isn't excluded by `@Filterable.blocked`, adds:
|
|
763
|
+
* - `${rel.name}.$count` — always (no child column needed).
|
|
764
|
+
* - `${rel.name}.$sum.${col}` / `.$avg.` / `.$min.` / `.$max.` — one set per
|
|
765
|
+
* **numeric** child column reported by `getRelatedFields`. Non-numeric
|
|
766
|
+
* child columns (strings, dates, …) never qualify — `SUM`/`AVG`/`MIN`/
|
|
767
|
+
* `MAX` over them is either a SQL error or nonsensical, and allowing them
|
|
768
|
+
* would let a client probe arbitrary child columns through the aggregate
|
|
769
|
+
* path.
|
|
770
|
+
*
|
|
771
|
+
* A no-op unless the adapter implements both `getEntityRelations` and
|
|
772
|
+
* `getRelatedFields` (relation-cardinality + related-field introspection)
|
|
773
|
+
* AND at least one of the aggregate-apply capabilities
|
|
774
|
+
* (`applyAggregateSort`/`applyAggregateField`) — without those, there is
|
|
775
|
+
* nothing for the synthesized keys to ever be consumed by.
|
|
776
|
+
*/
|
|
777
|
+
addAggregateAutoFields(set, meta, adapter) {
|
|
778
|
+
if (!adapter.getEntityRelations || !adapter.getRelatedFields)
|
|
779
|
+
return;
|
|
780
|
+
if (!adapter.applyAggregateSort && !adapter.applyAggregateField)
|
|
781
|
+
return;
|
|
782
|
+
const relations = adapter.getEntityRelations(meta.entity);
|
|
783
|
+
if (!relations)
|
|
784
|
+
return;
|
|
785
|
+
for (const relation of relations) {
|
|
786
|
+
if (relation.type !== 'one-to-many' && relation.type !== 'many-to-many')
|
|
787
|
+
continue;
|
|
788
|
+
if (meta.blocked?.includes(relation.name))
|
|
789
|
+
continue;
|
|
790
|
+
set.add(`${relation.name}.$count`);
|
|
791
|
+
const relatedFields = adapter.getRelatedFields(meta.entity, relation.name);
|
|
792
|
+
if (!relatedFields)
|
|
793
|
+
continue;
|
|
794
|
+
for (const field of relatedFields) {
|
|
795
|
+
if (field.type !== 'number')
|
|
796
|
+
continue;
|
|
797
|
+
for (const fn of AGGREGATE_COLUMN_FNS) {
|
|
798
|
+
set.add(`${relation.name}.$${fn}.${field.name}`);
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
}
|
|
704
803
|
/**
|
|
705
804
|
* Parses raw include input into an array of string paths.
|
|
706
805
|
*
|
|
@@ -1137,6 +1236,50 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
1137
1236
|
}));
|
|
1138
1237
|
return prune(filters);
|
|
1139
1238
|
}
|
|
1239
|
+
/**
|
|
1240
|
+
* Drops `where` column-filter clauses whose resolved field is blacklisted —
|
|
1241
|
+
* either statically (`@Filterable.blocked`) or at runtime (`blacklistMethod`,
|
|
1242
|
+
* via the `$blacklisted` set). A blacklisted field is one a client may not
|
|
1243
|
+
* filter on; letting it through `where` would leak the field's values via
|
|
1244
|
+
* result counts even when the column is absent from the response — the exact
|
|
1245
|
+
* information-disclosure the blacklist exists to prevent.
|
|
1246
|
+
*
|
|
1247
|
+
* Matching clauses are DROPPED (not rejected with a 400), mirroring the
|
|
1248
|
+
* unknown-column handling in {@link pruneUnknownColumnFilters}, so a client
|
|
1249
|
+
* whose stray filter was previously (wrongly) honored keeps working — but a
|
|
1250
|
+
* distinct warning naming the field is emitted so the silent behavior change
|
|
1251
|
+
* is observable. Recurses AND/OR; a group emptied by pruning collapses.
|
|
1252
|
+
*
|
|
1253
|
+
* Fields are compared AFTER alias remap ({@link remapColumnFilterAliases}),
|
|
1254
|
+
* matching structured dispatch's own `$blacklisted.has(key)` gate — which
|
|
1255
|
+
* runs on post-remap keys — so blacklisting a key blocks both the field and
|
|
1256
|
+
* any alias pointing at it, consistently across both pipelines.
|
|
1257
|
+
*/
|
|
1258
|
+
pruneBlacklistedColumnFilters(filters, blacklisted) {
|
|
1259
|
+
const warned = new Set();
|
|
1260
|
+
const prune = (clauses) => clauses
|
|
1261
|
+
.filter((clause) => {
|
|
1262
|
+
if (clause.field && blacklisted.has(clause.field)) {
|
|
1263
|
+
if (!warned.has(clause.field)) {
|
|
1264
|
+
warned.add(clause.field);
|
|
1265
|
+
this.logger.warn(`Column filter (where) on blacklisted field "${clause.field}" ignored.`);
|
|
1266
|
+
}
|
|
1267
|
+
return false;
|
|
1268
|
+
}
|
|
1269
|
+
return true;
|
|
1270
|
+
})
|
|
1271
|
+
.map((clause) => ({
|
|
1272
|
+
...clause,
|
|
1273
|
+
...(clause.AND && { AND: prune(clause.AND) }),
|
|
1274
|
+
...(clause.OR && { OR: prune(clause.OR) }),
|
|
1275
|
+
}))
|
|
1276
|
+
// Collapse group nodes (no field of their own — `!field`, matching the
|
|
1277
|
+
// group convention used across the where pipeline) emptied by pruning.
|
|
1278
|
+
.filter((clause) => Boolean(clause.field) ||
|
|
1279
|
+
Boolean(clause.AND && clause.AND.length > 0) ||
|
|
1280
|
+
Boolean(clause.OR && clause.OR.length > 0));
|
|
1281
|
+
return prune(filters);
|
|
1282
|
+
}
|
|
1140
1283
|
/**
|
|
1141
1284
|
* Enforces per-field operator allowlists on a `where` ColumnFilter tree.
|
|
1142
1285
|
*
|
|
@@ -1217,6 +1360,36 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
1217
1360
|
}
|
|
1218
1361
|
return permitted.has('equals') ? value : reject('equals');
|
|
1219
1362
|
}
|
|
1363
|
+
/**
|
|
1364
|
+
* Converts an auto-field-shaped value (scalar, array, or operator object —
|
|
1365
|
+
* the same three shapes {@link enforceAutoFieldOperators} interprets) into
|
|
1366
|
+
* one or more single-operator {@link ColumnFilter} entries for `field`.
|
|
1367
|
+
*
|
|
1368
|
+
* Used by aggregate-path filter routing, whose adapter capability
|
|
1369
|
+
* (`applyAggregateField`) takes a single-operator `ColumnFilter` (mirroring
|
|
1370
|
+
* the `where[]` shape) rather than a raw value. An operator object with
|
|
1371
|
+
* multiple keys (e.g. `{ gte: 1, lte: 10 }`) yields one `ColumnFilter` per
|
|
1372
|
+
* operator, ANDed by the caller issuing one `applyAggregateField` call per
|
|
1373
|
+
* entry — the same implicit AND semantics as multiple `where[]` clauses on
|
|
1374
|
+
* the same field.
|
|
1375
|
+
*
|
|
1376
|
+
* - scalar → `[{ field, operator: 'equals', value }]`
|
|
1377
|
+
* - array → `[{ field, operator: 'in', value }]`
|
|
1378
|
+
* - operator object → one entry per `{ operator, value }` pair
|
|
1379
|
+
*/
|
|
1380
|
+
valueToColumnFilters(field, value) {
|
|
1381
|
+
if (Array.isArray(value)) {
|
|
1382
|
+
return [{ field, operator: 'in', value }];
|
|
1383
|
+
}
|
|
1384
|
+
if (value != null && typeof value === 'object') {
|
|
1385
|
+
return Object.entries(value).map(([op, opVal]) => ({
|
|
1386
|
+
field,
|
|
1387
|
+
operator: normalizeOperator(op),
|
|
1388
|
+
value: opVal,
|
|
1389
|
+
}));
|
|
1390
|
+
}
|
|
1391
|
+
return [{ field, operator: 'equals', value }];
|
|
1392
|
+
}
|
|
1220
1393
|
/**
|
|
1221
1394
|
* Applies global search for dynamic mode: auto-detects all string columns
|
|
1222
1395
|
* from entity metadata (no filter class with static search config).
|
|
@@ -1328,28 +1501,62 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
1328
1501
|
// No metadata available — pass through
|
|
1329
1502
|
return sorts;
|
|
1330
1503
|
}
|
|
1504
|
+
/**
|
|
1505
|
+
* Validates a single to-many aggregate sort field (`posts.$count`, …),
|
|
1506
|
+
* mirroring how {@link validateSorts} gates a real column: the static
|
|
1507
|
+
* `FilterClass.sort` allowlist wins when declared (exact membership,
|
|
1508
|
+
* same as a real column); otherwise falls back to the resolved auto-field
|
|
1509
|
+
* set — the same `Set` `resolveAutoFields`/`addAggregateAutoFields` build
|
|
1510
|
+
* for the filter/where path, which already honors `@Filterable.blocked`
|
|
1511
|
+
* and to-many-only exposure (a to-one relation or a blocked relation never
|
|
1512
|
+
* makes it into that Set).
|
|
1513
|
+
*
|
|
1514
|
+
* When the adapter can't introspect relation cardinality / related columns
|
|
1515
|
+
* (`getEntityRelations`/`getRelatedFields` absent) there is nothing to
|
|
1516
|
+
* validate the aggregate key against, so — matching the same graceful
|
|
1517
|
+
* degradation the filter/where aggregate branch uses — this returns `true`
|
|
1518
|
+
* (accept any well-formed aggregate path), the pre-discovery behavior.
|
|
1519
|
+
*/
|
|
1520
|
+
isAggregateSortAllowed(field, allowlist, adapter, autoFieldSet) {
|
|
1521
|
+
if (allowlist)
|
|
1522
|
+
return allowlist.includes(field);
|
|
1523
|
+
const canValidateAggregate = !!(adapter.getEntityRelations && adapter.getRelatedFields);
|
|
1524
|
+
if (!canValidateAggregate)
|
|
1525
|
+
return true;
|
|
1526
|
+
return !!autoFieldSet?.has(field);
|
|
1527
|
+
}
|
|
1331
1528
|
/**
|
|
1332
1529
|
* Applies a list of sorts, routing computed/virtual aliases to
|
|
1333
1530
|
* `applyComputedSort` (their dev-provided SQL expression) and regular columns
|
|
1334
1531
|
* to `applySort`. Order is preserved across the mix so the resulting
|
|
1335
1532
|
* `ORDER BY` matches the requested column order. Regular columns are still
|
|
1336
1533
|
* validated against the allowlist / entity metadata; computed aliases bypass
|
|
1337
|
-
* that check because they are dev-declared, not real columns.
|
|
1534
|
+
* that check because they are dev-declared, not real columns. To-many
|
|
1535
|
+
* aggregate sorts (`posts.$count`, …) ARE validated — see
|
|
1536
|
+
* {@link isAggregateSortAllowed} — the same allow/block-list enforcement
|
|
1537
|
+
* the filter/where path applies to aggregate keys (`apply()`'s aggregate-
|
|
1538
|
+
* path branch), so a blocked or to-one relation can't be reached through
|
|
1539
|
+
* `sort` even though it can't be reached through `where` either.
|
|
1338
1540
|
*/
|
|
1339
|
-
applySortsWithComputed(qb, sorts, allowlist, adapter, entity, throwOnInvalid, computed) {
|
|
1541
|
+
applySortsWithComputed(qb, sorts, allowlist, adapter, entity, throwOnInvalid, computed, autoFieldSet) {
|
|
1340
1542
|
const hasComputedSort = !!computed && sorts.some((s) => computed.has(s.field));
|
|
1341
|
-
//
|
|
1342
|
-
//
|
|
1343
|
-
// the
|
|
1344
|
-
|
|
1543
|
+
// A to-many aggregate sort (`posts.$count`, `posts.$sum.views`, …) is
|
|
1544
|
+
// parsed on demand — it's never in the `computed` registry — so detect it
|
|
1545
|
+
// the same way the per-item mixed path below does.
|
|
1546
|
+
const hasAggregateSort = sorts.some((s) => parseAggregatePath(s.field) !== null);
|
|
1547
|
+
// Fast path / backward-compatible behavior: no computed or aggregate sorts
|
|
1548
|
+
// → validate all sorts and apply them in a single batched `applySort` call
|
|
1549
|
+
// (preserving the prior contract relied upon by existing tests and adapters).
|
|
1550
|
+
if (!hasComputedSort && !hasAggregateSort) {
|
|
1345
1551
|
const validSorts = this.validateSorts(sorts, allowlist, adapter, entity, throwOnInvalid);
|
|
1346
1552
|
if (validSorts.length > 0 && adapter.applySort) {
|
|
1347
1553
|
adapter.applySort(qb, validSorts);
|
|
1348
1554
|
}
|
|
1349
1555
|
return;
|
|
1350
1556
|
}
|
|
1351
|
-
// Mixed path: route computed aliases to applyComputedSort
|
|
1352
|
-
// to applySort, per item, so the
|
|
1557
|
+
// Mixed path: route computed aliases to applyComputedSort, aggregate paths
|
|
1558
|
+
// to applyAggregateSort, and real columns to applySort, per item, so the
|
|
1559
|
+
// resulting ORDER BY honors request order.
|
|
1353
1560
|
for (const sort of sorts) {
|
|
1354
1561
|
if (computed?.has(sort.field)) {
|
|
1355
1562
|
if (adapter.applyComputedSort) {
|
|
@@ -1360,6 +1567,22 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
|
|
|
1360
1567
|
}
|
|
1361
1568
|
continue;
|
|
1362
1569
|
}
|
|
1570
|
+
const aggregatePath = parseAggregatePath(sort.field);
|
|
1571
|
+
if (aggregatePath) {
|
|
1572
|
+
if (adapter.applyAggregateSort) {
|
|
1573
|
+
if (!this.isAggregateSortAllowed(sort.field, allowlist, adapter, autoFieldSet)) {
|
|
1574
|
+
if (throwOnInvalid) {
|
|
1575
|
+
throw new BadRequestException(`Invalid sort field: "${sort.field}".`);
|
|
1576
|
+
}
|
|
1577
|
+
continue;
|
|
1578
|
+
}
|
|
1579
|
+
adapter.applyAggregateSort(qb, aggregatePath, sort.direction);
|
|
1580
|
+
}
|
|
1581
|
+
else {
|
|
1582
|
+
this.warnUnsupported(`Aggregate sort "${sort.field}" requested`, 'applyAggregateSort');
|
|
1583
|
+
}
|
|
1584
|
+
continue;
|
|
1585
|
+
}
|
|
1363
1586
|
const valid = this.validateSorts([sort], allowlist, adapter, entity, throwOnInvalid);
|
|
1364
1587
|
if (valid.length > 0 && adapter.applySort) {
|
|
1365
1588
|
adapter.applySort(qb, valid);
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -72,6 +72,14 @@ A disallowed operator is dropped (or raises `BadRequestException` under `throwOn
|
|
|
72
72
|
Source: `packages/core/src/types.ts` (`AllowedFieldEntry`), `packages/core/src/runner.ts`
|
|
73
73
|
(`enforceOperatorAllowlist`, `enforceAutoFieldOperators`)
|
|
74
74
|
|
|
75
|
+
`blocked` (the static blacklist) and the runtime `blacklistMethod(key)` bar a key from
|
|
76
|
+
filtering **entirely** — a blacklisted field is skipped in structured dispatch *and* its
|
|
77
|
+
matching `where` column filters are dropped (ignored with a warning, at any depth in
|
|
78
|
+
AND/OR groups), so it cannot be probed via `where` to leak values through result counts.
|
|
79
|
+
The comparison runs after alias remap, so an alias pointing at a blacklisted field is
|
|
80
|
+
blocked too. `whitelistMethod`/`allowed` are additive dispatch grants and do **not**
|
|
81
|
+
constrain `where`. Source: `packages/core/src/runner.ts` (`pruneBlacklistedColumnFilters`).
|
|
82
|
+
|
|
75
83
|
### 2. `throwOnInvalid` and `onUnknownKey`: fail loud, not silent
|
|
76
84
|
|
|
77
85
|
By default invalid sorts/distinct/unknown `where` columns are silently dropped and unknown
|