@dudousxd/nestjs-filter 1.30.0 → 1.32.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 +99 -0
- package/dist/adapter/adapter.d.ts +15 -1
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/decorator/filterable.decorator.d.ts.map +1 -1
- package/dist/decorator/filterable.decorator.js +1 -0
- package/dist/decorator/filterable.decorator.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptor/apply-filter.interceptor.d.ts +10 -0
- package/dist/interceptor/apply-filter.interceptor.d.ts.map +1 -1
- package/dist/interceptor/apply-filter.interceptor.js +36 -6
- package/dist/interceptor/apply-filter.interceptor.js.map +1 -1
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +23 -3
- package/dist/module.js.map +1 -1
- package/dist/runner.d.ts +38 -5
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +91 -33
- package/dist/runner.js.map +1 -1
- package/dist/tokens.d.ts +7 -0
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +7 -0
- package/dist/tokens.js.map +1 -1
- package/dist/types.d.ts +56 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,104 @@
|
|
|
1
1
|
# @dudousxd/nestjs-filter
|
|
2
2
|
|
|
3
|
+
## 1.32.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`0e2e58b`](https://github.com/DavideCarvalho/nestjs-filter/commit/0e2e58b0e06f96bd94cbd15c1da380787098b381) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - `groupByCount` takes a `limit` — the top N groups by count
|
|
8
|
+
|
|
9
|
+
A grouping column whose distinct values grow with the data — tags, external ids, a free-text
|
|
10
|
+
label — answers the unbounded aggregate with one row per value, which is a listing wearing an
|
|
11
|
+
aggregate's shape. The caller that wants it most, a value picker, renders a handful.
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
filterQuery()
|
|
15
|
+
.where("base.id", "in", baseIds)
|
|
16
|
+
.groupByCount("tag", { limit: 20 });
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The adapter seam gains `opts.limit` alongside `opts.bucket`, and the MikroORM and TypeORM adapters
|
|
20
|
+
implement it as `ORDER BY COUNT(*) DESC LIMIT n`. Ordering only becomes part of the contract once
|
|
21
|
+
rows are being dropped: without a limit the caller still receives every group in whatever order the
|
|
22
|
+
database returns, exactly as before.
|
|
23
|
+
|
|
24
|
+
A limit that is not a positive integer degrades to the unbounded form rather than failing the
|
|
25
|
+
request, matching how `bucket` already treats a non-positive width. Numeric strings are coerced, so
|
|
26
|
+
`?groupByCount[limit]=20` on a GET route works.
|
|
27
|
+
|
|
28
|
+
- [`0e2e58b`](https://github.com/DavideCarvalho/nestjs-filter/commit/0e2e58b0e06f96bd94cbd15c1da380787098b381) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - A filter can name its own adapter, so one app can host two filterable backends
|
|
29
|
+
|
|
30
|
+
`FilterModule.forRoot`'s adapter is global, which is right for an app whose filterable data all
|
|
31
|
+
lives behind one ORM. It stops being right the moment a second filterable backend shares the
|
|
32
|
+
process — a library that ships its own console over its own read model, a second data source, an
|
|
33
|
+
adapter over an HTTP service. Registering two global adapters does not compose: whichever one DI
|
|
34
|
+
hands over first answers for every filter in the app, including the ones written against the other.
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
@Filterable({ entity: DurableRun, adapter: RUN_QUERY_ADAPTER })
|
|
38
|
+
export class RunFilter extends BaseFilter<RunQueryDraft> {}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The token is resolved per filter class, for its routes, its `groupByCount`, its `findAndCount` and
|
|
42
|
+
its `fieldExtent`/`fieldHistogram`. Filters that name nothing keep using the global adapter, so an
|
|
43
|
+
app with one backend is unaffected.
|
|
44
|
+
|
|
45
|
+
A declared token that does not resolve throws, rather than falling back: a filter that names the
|
|
46
|
+
adapter it needs and then quietly runs on a different backend's would answer with rows from the
|
|
47
|
+
wrong data source — a failure that looks like a successful query.
|
|
48
|
+
|
|
49
|
+
## 1.31.0
|
|
50
|
+
|
|
51
|
+
### Minor Changes
|
|
52
|
+
|
|
53
|
+
- [`fc10518`](https://github.com/DavideCarvalho/nestjs-filter/commit/fc10518711dae46f08a97dcf3638b5760b171ec0) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Give `FILTER_ADAPTER` a single owner, and accept the adapter as config
|
|
54
|
+
|
|
55
|
+
`FilterModule.forRoot()` registered `{ provide: FILTER_ADAPTER, useValue: null }`
|
|
56
|
+
as the no-adapter default, and the adapter modules registered the real adapter for
|
|
57
|
+
the _same_ token. Both are global, so two providers competed and the winner came
|
|
58
|
+
down to container resolution order. That order changed in NestJS 12: constructor
|
|
59
|
+
injection began resolving to the `null` default while `app.get(FILTER_ADAPTER)`
|
|
60
|
+
still returned the real adapter, so every `@Inject(FILTER_ADAPTER)` consumer
|
|
61
|
+
silently received `null` and failed at request time with
|
|
62
|
+
`Cannot read properties of null`. NestJS 11 happened to pick the real adapter,
|
|
63
|
+
but neither version ever promised an order.
|
|
64
|
+
|
|
65
|
+
The adapter modules now register a new internal token, `FILTER_ADAPTER_IMPL`, and
|
|
66
|
+
`FilterModule` is the only module that provides `FILTER_ADAPTER` — resolving it
|
|
67
|
+
from that token, or `null` when no adapter is installed. One provider, nothing to
|
|
68
|
+
disambiguate.
|
|
69
|
+
|
|
70
|
+
`FilterModule.forRoot()` also accepts the adapter directly now:
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { mikroOrmAdapter } from "@dudousxd/nestjs-filter-mikro-orm";
|
|
74
|
+
|
|
75
|
+
FilterModule.forRoot({ adapter: mikroOrmAdapter });
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`typeOrmAdapter(dataSourceName?)` is the TypeORM equivalent. This is the preferred
|
|
79
|
+
form — one module instead of two — and it makes registering two adapters for one
|
|
80
|
+
token impossible by construction.
|
|
81
|
+
|
|
82
|
+
Not breaking: `MikroOrmFilterModule` / `TypeOrmFilterModule` keep working unchanged,
|
|
83
|
+
and `FILTER_ADAPTER` still resolves to `null` when no adapter is installed. Upgrade
|
|
84
|
+
core and the adapter package together — an older adapter package still registers
|
|
85
|
+
the public token itself, which reintroduces the ambiguity this release removes.
|
|
86
|
+
|
|
87
|
+
### Patch Changes
|
|
88
|
+
|
|
89
|
+
- [`43f582e`](https://github.com/DavideCarvalho/nestjs-filter/commit/43f582eb28d713fabe4776420b0426f86ca04116) - Verify support for NestJS 12.
|
|
90
|
+
|
|
91
|
+
The peer ranges already read `>=10.0.0`, so NestJS 12 was admitted without a change; what moves
|
|
92
|
+
here is the dev dependencies, which now sit on the 12.x line so the suite actually runs against
|
|
93
|
+
NestJS 12 rather than only claiming to support it. `@nestjs/typeorm` follows onto its own 12.x
|
|
94
|
+
release.
|
|
95
|
+
|
|
96
|
+
No source change was needed. NestJS 12 ships its core packages as pure ESM and these packages are
|
|
97
|
+
already `"type": "module"`; none of them implements a `PipeTransform`, so the `ArgumentMetadata`
|
|
98
|
+
generic added in v12 does not reach this code, and none subclasses `ConsoleLogger`. The example and
|
|
99
|
+
integration apps move to 12 alongside the packages, so a single copy of `@nestjs/core` stays in the
|
|
100
|
+
tree and `ModuleRef` resolves to the class the container registered.
|
|
101
|
+
|
|
3
102
|
## 1.30.0
|
|
4
103
|
|
|
5
104
|
### Minor Changes
|
|
@@ -310,12 +310,26 @@ export interface FilterAdapter {
|
|
|
310
310
|
* @param field - The already-validated grouping column (property name), or
|
|
311
311
|
* the `{ alias, source }` pair of a computed/virtual grouping field.
|
|
312
312
|
* @param entity - The root entity class.
|
|
313
|
-
*
|
|
313
|
+
* `opts.limit`, when present, asks for the **top N groups by count**: order by
|
|
314
|
+
* `COUNT(*)` descending and return at most that many rows. It exists because a
|
|
315
|
+
* grouping column whose cardinality grows with the data (tags, external ids, a
|
|
316
|
+
* free-text label) makes the unbounded form a listing rather than an
|
|
317
|
+
* aggregate, and the caller that needs it most — a value picker — only ever
|
|
318
|
+
* renders a handful. Adapters that cannot bound the aggregate may return every
|
|
319
|
+
* group; a caller must not assume the bound was applied.
|
|
320
|
+
*
|
|
321
|
+
* Ordering is otherwise unspecified, and deliberately so: it only becomes
|
|
322
|
+
* meaningful once rows are being dropped, and pinning it unconditionally would
|
|
323
|
+
* add a sort to every existing caller that reads the whole result anyway.
|
|
324
|
+
*
|
|
325
|
+
* @param opts - Optional numeric bucket width for the bucketed variant, and an
|
|
326
|
+
* optional positive `limit` for the top-N form.
|
|
314
327
|
* @returns One `{ value, count }` per group (`value` is the bucket start when
|
|
315
328
|
* bucketed); `count` is the `COUNT(*)` for that group.
|
|
316
329
|
*/
|
|
317
330
|
groupByCount?(qb: unknown, field: GroupByCountField, entity: Type<unknown>, opts?: {
|
|
318
331
|
bucket?: number;
|
|
332
|
+
limit?: number;
|
|
319
333
|
}): Promise<Array<{
|
|
320
334
|
value: unknown;
|
|
321
335
|
count: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrE;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;CACrE;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAEnF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAElF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAEhD;;;;;;;;;OASG;IACH,uBAAuB,CAAC,CACtB,EAAE,EAAE,OAAO,EACX,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAExF;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAElE;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC;IAElE;;;;;;;;;;;;OAYG;IACH,kBAAkB,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAExE;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC;IAEzF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;IAE7F;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAEhG;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAE7E;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAExF;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,CAChB,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,mBAAmB,GACzB,IAAI,CAAC;IAER;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAE3E
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterable.decorator.d.ts","sourceRoot":"","sources":["../../src/decorator/filterable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErE,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"filterable.decorator.d.ts","sourceRoot":"","sources":["../../src/decorator/filterable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErE,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAyBrE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhF"}
|
|
@@ -11,6 +11,7 @@ export function Filterable(options) {
|
|
|
11
11
|
}
|
|
12
12
|
const meta = {
|
|
13
13
|
entity: options.entity,
|
|
14
|
+
...(options.adapter !== undefined && { adapter: options.adapter }),
|
|
14
15
|
...(options.allowed !== undefined && { allowed: options.allowed }),
|
|
15
16
|
...(options.blocked !== undefined && { blocked: options.blocked }),
|
|
16
17
|
autoFields: options.autoFields ?? true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterable.decorator.js","sourceRoot":"","sources":["../../src/decorator/filterable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,MAAM,UAAU,UAAU,CAAC,OAA0B;IACnD,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,4BAA4B,CAAC,MAAM,CAAC,IAAI,IAAI,iBAAiB,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,IAAI,6CAA6C,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,IAAI,GAAmB;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YACvF,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9E,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YACpF,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,wDAAwD;YACxD,iEAAiE;YACjE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACnE,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAA+B,CAAC;AACxF,CAAC"}
|
|
1
|
+
{"version":3,"file":"filterable.decorator.js","sourceRoot":"","sources":["../../src/decorator/filterable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,MAAM,UAAU,UAAU,CAAC,OAA0B;IACnD,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,4BAA4B,CAAC,MAAM,CAAC,IAAI,IAAI,iBAAiB,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,IAAI,6CAA6C,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,IAAI,GAAmB;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YACvF,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9E,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YACpF,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,wDAAwD;YACxD,iEAAiE;YACjE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACnE,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAA+B,CAAC;AACxF,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export { FilterRunner, buildComputedRegistry } from './runner.js';
|
|
|
21
21
|
export type { ComputedRegistryEntry } from './runner.js';
|
|
22
22
|
export { FilterModule } from './module.js';
|
|
23
23
|
export { FilterException, FilterNotRegisteredException, FilterMissingEntityException, FilterStateUnavailableException, UnknownFilterKeyException, FilterValidationException, FilterMissingAdapterException, FilterMethodException, } from './errors/exceptions.js';
|
|
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 { FILTER_MODULE_OPTIONS, FILTER_ADAPTER, FILTER_ADAPTER_IMPL, 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';
|
|
25
25
|
export type { AllowedFieldEntry, ApplyFilterOptions, CursorPage, CursorPagination, EntityDescription, FieldHistogram, FieldHistogramSpec, 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';
|
|
26
26
|
export { resolveInputFromRequest } from './input/source-resolver.js';
|
|
27
27
|
export { normalizeInput } from './input/normalizer.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,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,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,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,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;AACrB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,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;AAChC,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,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;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export { FilterExceptionFilter } from './filter/filter-exception.filter.js';
|
|
|
13
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
|
-
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';
|
|
16
|
+
export { FILTER_MODULE_OPTIONS, FILTER_ADAPTER, FILTER_ADAPTER_IMPL, 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';
|
|
17
17
|
export { resolveInputFromRequest } from './input/source-resolver.js';
|
|
18
18
|
export { normalizeInput } from './input/normalizer.js';
|
|
19
19
|
export { parseSpatieInput } from './input/spatie-parser.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;AAU9C,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;AAiCrB,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"}
|
|
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;AAU9C,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,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAiCrB,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"}
|
|
@@ -7,7 +7,17 @@ export declare class ApplyFilterInterceptor implements NestInterceptor {
|
|
|
7
7
|
private cachedRunner;
|
|
8
8
|
private adapterResolved;
|
|
9
9
|
private cachedAdapter;
|
|
10
|
+
/** Adapters resolved from a filter-declared token (`@Filterable({ adapter })`), memoized per
|
|
11
|
+
* token alongside the global one above. */
|
|
12
|
+
private readonly scopedAdapters;
|
|
10
13
|
private getRunner;
|
|
14
|
+
/**
|
|
15
|
+
* The adapter for ONE filter class: its own `@Filterable({ adapter })` token when it names one,
|
|
16
|
+
* else the application-wide adapter. A declared token that does not resolve throws — a filter that
|
|
17
|
+
* names its backend and then silently builds a query against another one would answer from the
|
|
18
|
+
* wrong data source, which reads as a successful request.
|
|
19
|
+
*/
|
|
20
|
+
private getAdapterFor;
|
|
11
21
|
private getAdapter;
|
|
12
22
|
intercept(ctx: ExecutionContext, next: CallHandler): Observable<unknown>;
|
|
13
23
|
private runAll;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-filter.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptor/apply-filter.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"apply-filter.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptor/apply-filter.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAGrB,KAAK,eAAe,EAErB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAiBvC,qBACa,sBAAuB,YAAW,eAAe;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAKjD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,aAAa,CAA8B;IACnD;gDAC4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAE3E,OAAO,CAAC,SAAS;IASjB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,UAAU;IAwBlB,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;YAmB1D,MAAM;CAyCrB"}
|
|
@@ -28,6 +28,9 @@ let ApplyFilterInterceptor = class ApplyFilterInterceptor {
|
|
|
28
28
|
cachedRunner = null;
|
|
29
29
|
adapterResolved = false;
|
|
30
30
|
cachedAdapter = null;
|
|
31
|
+
/** Adapters resolved from a filter-declared token (`@Filterable({ adapter })`), memoized per
|
|
32
|
+
* token alongside the global one above. */
|
|
33
|
+
scopedAdapters = new Map();
|
|
31
34
|
getRunner() {
|
|
32
35
|
if (this.cachedRunner === null) {
|
|
33
36
|
const runner = this.moduleRef.get(FilterRunner, { strict: false });
|
|
@@ -36,6 +39,31 @@ let ApplyFilterInterceptor = class ApplyFilterInterceptor {
|
|
|
36
39
|
}
|
|
37
40
|
return this.cachedRunner;
|
|
38
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* The adapter for ONE filter class: its own `@Filterable({ adapter })` token when it names one,
|
|
44
|
+
* else the application-wide adapter. A declared token that does not resolve throws — a filter that
|
|
45
|
+
* names its backend and then silently builds a query against another one would answer from the
|
|
46
|
+
* wrong data source, which reads as a successful request.
|
|
47
|
+
*/
|
|
48
|
+
getAdapterFor(token, filterName) {
|
|
49
|
+
if (token === undefined)
|
|
50
|
+
return this.getAdapter();
|
|
51
|
+
const cached = this.scopedAdapters.get(token);
|
|
52
|
+
if (cached)
|
|
53
|
+
return cached;
|
|
54
|
+
let resolved = null;
|
|
55
|
+
try {
|
|
56
|
+
resolved = this.moduleRef.get(token, { strict: false });
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
resolved = null;
|
|
60
|
+
}
|
|
61
|
+
if (!resolved) {
|
|
62
|
+
throw new Error(`@Filterable on ${filterName} names an adapter token that is not registered. Provide it in a module reachable from this one.`);
|
|
63
|
+
}
|
|
64
|
+
this.scopedAdapters.set(token, resolved);
|
|
65
|
+
return resolved;
|
|
66
|
+
}
|
|
39
67
|
getAdapter() {
|
|
40
68
|
if (this.adapterResolved)
|
|
41
69
|
return this.cachedAdapter;
|
|
@@ -74,19 +102,21 @@ let ApplyFilterInterceptor = class ApplyFilterInterceptor {
|
|
|
74
102
|
}
|
|
75
103
|
const slot = req[APPLY_FILTER_REQ_KEY];
|
|
76
104
|
const runner = this.getRunner();
|
|
77
|
-
|
|
78
|
-
return from(this.runAll(entries, slot, req, runner, adapter)).pipe(switchMap(() => next.handle()));
|
|
105
|
+
return from(this.runAll(entries, slot, req, runner)).pipe(switchMap(() => next.handle()));
|
|
79
106
|
}
|
|
80
|
-
async runAll(entries, slot, req, runner
|
|
81
|
-
if (!adapter) {
|
|
82
|
-
throw new FilterMissingAdapterException();
|
|
83
|
-
}
|
|
107
|
+
async runAll(entries, slot, req, runner) {
|
|
84
108
|
for (const entry of entries) {
|
|
85
109
|
const FilterClass = entry.options.resolve ? entry.options.resolve(req) : entry.filterClass;
|
|
86
110
|
const filterableMeta = getFilterableMetadata(FilterClass);
|
|
87
111
|
if (!filterableMeta) {
|
|
88
112
|
throw new FilterMissingEntityException(FilterClass.name);
|
|
89
113
|
}
|
|
114
|
+
// Resolved PER ENTRY, not once for the request: a route may apply two filters written against
|
|
115
|
+
// different backends, and the builder each gets has to come from its own adapter.
|
|
116
|
+
const adapter = this.getAdapterFor(filterableMeta.adapter, FilterClass.name);
|
|
117
|
+
if (!adapter) {
|
|
118
|
+
throw new FilterMissingAdapterException();
|
|
119
|
+
}
|
|
90
120
|
const qb = adapter.createQueryBuilder(filterableMeta.entity);
|
|
91
121
|
const source = entry.options.source ?? 'auto';
|
|
92
122
|
const rawInput = resolveInputFromRequest(req, source);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-filter.interceptor.js","sourceRoot":"","sources":["../../src/interceptor/apply-filter.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAGL,UAAU,
|
|
1
|
+
{"version":3,"file":"apply-filter.interceptor.js","sourceRoot":"","sources":["../../src/interceptor/apply-filter.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAGL,UAAU,GAIX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAEL,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG7D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACJ;IAA7B,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAErD,6EAA6E;IAC7E,+EAA+E;IAC/E,qDAAqD;IAC7C,YAAY,GAAwB,IAAI,CAAC;IACzC,eAAe,GAAG,KAAK,CAAC;IACxB,aAAa,GAAyB,IAAI,CAAC;IACnD;gDAC4C;IAC3B,cAAc,GAAG,IAAI,GAAG,EAAiC,CAAC;IAEnE,SAAS;QACf,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;YAC3B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACK,aAAa,CACnB,KAAiC,EACjC,UAAkB;QAElB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,IAAI,QAAQ,GAAyB,IAAI,CAAC;QAC1C,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAgB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,kBAAkB,UAAU,iGAAiG,CAC9H,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAEpD,8EAA8E;QAC9E,IAAI,OAAO,GAAyB,IAAI,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAuB,cAAc,EAAE;gBACxE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,QAAQ,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,SAAS,CAAC,GAAqB,EAAE,IAAiB;QAChD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QAE/C,MAAM,GAAG,GAAG,GAAG;aACZ,YAAY,EAAE;aACd,UAAU,EAAuD,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC9B,GAAiC,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;QAChE,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,oBAAoB,CAAc,CAAC;QAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAEO,KAAK,CAAC,MAAM,CAClB,OAAmC,EACnC,IAAe,EACf,GAAY,EACZ,MAAoB;QAEpB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;YAC3F,MAAM,cAAc,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,4BAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YAED,8FAA8F;YAC9F,kFAAkF;YAClF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,6BAA6B,EAAE,CAAC;YAC5C,CAAC;YAED,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;YAC9C,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACtD,wEAAwE;YACxE,sEAAsE;YACtE,qEAAqE;YACrE,yEAAyE;YACzE,4BAA4B;YAC5B,MAAM,MAAM,CAAC,KAAK,CAChB,WAA2B,EAC3B,QAAQ,EACR,EAAE,EACF,EAAE,GAAG,EAAE,EACP;gBACE,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;gBAC1C,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;aACvC,CACF,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAA;AAtIY,sBAAsB;IADlC,UAAU,EAAE;qCAE6B,SAAS;GADtC,sBAAsB,CAsIlC"}
|
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAyB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtF,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAQpB,qBACa,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAyB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtF,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAQpB,qBACa,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa;IAgChE,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,aAAa;IAuBrE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,aAAa;IAQ/D,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;QAC9B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/B,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;KACpB,GAAG,aAAa;IAoBjB,OAAO,CAAC,MAAM,CAAC,yBAAyB;CA2BzC"}
|
package/dist/module.js
CHANGED
|
@@ -9,7 +9,7 @@ import { Module } from '@nestjs/common';
|
|
|
9
9
|
import { APP_INTERCEPTOR } from '@nestjs/core';
|
|
10
10
|
import { ApplyFilterInterceptor } from './interceptor/apply-filter.interceptor.js';
|
|
11
11
|
import { FilterRunner } from './runner.js';
|
|
12
|
-
import { FILTER_ADAPTER, FILTER_MODULE_OPTIONS } from './tokens.js';
|
|
12
|
+
import { FILTER_ADAPTER, FILTER_ADAPTER_IMPL, FILTER_MODULE_OPTIONS } from './tokens.js';
|
|
13
13
|
let FilterCoreModule = class FilterCoreModule {
|
|
14
14
|
};
|
|
15
15
|
FilterCoreModule = __decorate([
|
|
@@ -24,7 +24,23 @@ let FilterModule = FilterModule_1 = class FilterModule {
|
|
|
24
24
|
static forRoot(options = {}) {
|
|
25
25
|
const providers = [
|
|
26
26
|
{ provide: FILTER_MODULE_OPTIONS, useValue: options },
|
|
27
|
-
|
|
27
|
+
// Only registered when the adapter came through the options. An adapter
|
|
28
|
+
// module registers the same token itself; the two are alternatives, and
|
|
29
|
+
// supplying both is what this indirection exists to make impossible.
|
|
30
|
+
...(options.adapter
|
|
31
|
+
? [
|
|
32
|
+
{
|
|
33
|
+
provide: FILTER_ADAPTER_IMPL,
|
|
34
|
+
useFactory: options.adapter.useFactory,
|
|
35
|
+
inject: [...(options.adapter.inject ?? [])],
|
|
36
|
+
},
|
|
37
|
+
]
|
|
38
|
+
: []),
|
|
39
|
+
{
|
|
40
|
+
provide: FILTER_ADAPTER,
|
|
41
|
+
useFactory: (impl) => impl ?? null,
|
|
42
|
+
inject: [{ token: FILTER_ADAPTER_IMPL, optional: true }],
|
|
43
|
+
},
|
|
28
44
|
FilterRunner,
|
|
29
45
|
ApplyFilterInterceptor,
|
|
30
46
|
{ provide: APP_INTERCEPTOR, useExisting: ApplyFilterInterceptor },
|
|
@@ -41,7 +57,11 @@ let FilterModule = FilterModule_1 = class FilterModule {
|
|
|
41
57
|
const asyncProviders = Array.isArray(asyncProvider) ? asyncProvider : [asyncProvider];
|
|
42
58
|
const providers = [
|
|
43
59
|
...asyncProviders,
|
|
44
|
-
{
|
|
60
|
+
{
|
|
61
|
+
provide: FILTER_ADAPTER,
|
|
62
|
+
useFactory: (impl) => impl ?? null,
|
|
63
|
+
inject: [{ token: FILTER_ADAPTER_IMPL, optional: true }],
|
|
64
|
+
},
|
|
45
65
|
FilterRunner,
|
|
46
66
|
ApplyFilterInterceptor,
|
|
47
67
|
{ provide: APP_INTERCEPTOR, useExisting: ApplyFilterInterceptor },
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAsB,MAAM,EAA4B,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -40,7 +40,12 @@ export declare class FilterRunner {
|
|
|
40
40
|
private readonly options;
|
|
41
41
|
private readonly contextAccessor?;
|
|
42
42
|
private readonly logger;
|
|
43
|
-
|
|
43
|
+
/** The application-wide adapter (`FilterModule.forRoot`'s), used by every filter that does not
|
|
44
|
+
* name its own — see {@link FilterableOptions.adapter}. */
|
|
45
|
+
private defaultAdapter;
|
|
46
|
+
/** Adapters resolved from a filter-declared token, memoized per token: they are application-scoped
|
|
47
|
+
* providers, so re-resolving them per request is pure overhead. */
|
|
48
|
+
private readonly scopedAdapters;
|
|
44
49
|
/** Per-entity metadata cache for `describe()`. Metadata is static at runtime. */
|
|
45
50
|
private readonly descriptionCache;
|
|
46
51
|
constructor(moduleRef: ModuleRef, options: FilterModuleOptions, injectedAdapter: FilterAdapter | null, contextAccessor?: ContextAccessor | undefined);
|
|
@@ -68,6 +73,18 @@ export declare class FilterRunner {
|
|
|
68
73
|
* same path equality filters use), so it stays portable across ORMs.
|
|
69
74
|
*/
|
|
70
75
|
private applyTenantScope;
|
|
76
|
+
/**
|
|
77
|
+
* The adapter that answers for a request, given the classes it is made against.
|
|
78
|
+
*
|
|
79
|
+
* The FIRST source declaring `@Filterable({ adapter })` wins (a filter class before the entity it
|
|
80
|
+
* targets, since the class is the more specific declaration), and everything else falls through to
|
|
81
|
+
* the application-wide adapter. Sources are passed as they are known at the call site; `undefined`
|
|
82
|
+
* entries are skipped, so a dynamic call with no filter class behaves exactly as before.
|
|
83
|
+
*
|
|
84
|
+
* A declared token that does not resolve THROWS rather than falling back: a filter naming the
|
|
85
|
+
* adapter it needs, then quietly running on a different backend's, would answer with rows from the
|
|
86
|
+
* wrong data source — a failure that looks like a successful query.
|
|
87
|
+
*/
|
|
71
88
|
private resolveAdapter;
|
|
72
89
|
/**
|
|
73
90
|
* Warn that a requested feature was skipped because the active adapter doesn't
|
|
@@ -291,6 +308,14 @@ export declare class FilterRunner {
|
|
|
291
308
|
* is the only way in.
|
|
292
309
|
*/
|
|
293
310
|
trustedPageSize?: boolean;
|
|
311
|
+
/**
|
|
312
|
+
* The filter class this dynamic pass runs on behalf of, when there is one — the aggregate
|
|
313
|
+
* modes ({@link groupByCount}, {@link fieldExtent}, {@link fieldHistogram}) apply their WHERE
|
|
314
|
+
* through here while still being scoped to a class. It selects the ADAPTER (see
|
|
315
|
+
* {@link FilterableOptions.adapter}); without it, a class whose entity is backed by a
|
|
316
|
+
* non-global adapter would have its predicates applied to a builder from a different backend.
|
|
317
|
+
*/
|
|
318
|
+
filterClass?: Type<object> | undefined;
|
|
294
319
|
}): Promise<Q>;
|
|
295
320
|
/**
|
|
296
321
|
* Runs a dynamic query and **executes** it, returning the page of rows plus
|
|
@@ -373,10 +398,18 @@ export declare class FilterRunner {
|
|
|
373
398
|
}): Promise<GroupByCountResult>;
|
|
374
399
|
/**
|
|
375
400
|
* Parses and validates the raw `groupByCount` structured-input block into a
|
|
376
|
-
* canonical `{ field, bucket? }`. Returns `null` when no usable
|
|
377
|
-
* present. `bucket` is kept only when it is a finite positive
|
|
378
|
-
* zero/negative/NaN/non-number bucket degrades to the plain
|
|
379
|
-
* group-by-count rather than emitting a divide-by-zero or
|
|
401
|
+
* canonical `{ field, bucket?, limit? }`. Returns `null` when no usable
|
|
402
|
+
* `field` is present. `bucket` is kept only when it is a finite positive
|
|
403
|
+
* number — a zero/negative/NaN/non-number bucket degrades to the plain
|
|
404
|
+
* (non-bucketed) group-by-count rather than emitting a divide-by-zero or
|
|
405
|
+
* nonsensical width. `limit` is kept on the same terms and must additionally
|
|
406
|
+
* be an integer; anything else degrades to the unbounded form, since a
|
|
407
|
+
* fractional or negative row count is not a narrower question, just a
|
|
408
|
+
* malformed one.
|
|
409
|
+
*
|
|
410
|
+
* Both arrive over the wire as strings on a GET route (`?groupByCount[limit]=20`),
|
|
411
|
+
* so numeric strings are coerced before those checks — otherwise the bound a
|
|
412
|
+
* caller asked for would be silently dropped by the shape test alone.
|
|
380
413
|
*/
|
|
381
414
|
private parseGroupByCount;
|
|
382
415
|
/**
|
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,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|