glasswork 1.0.0 → 1.0.1
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 +11 -0
- package/dist/list-query/builder.d.ts.map +1 -1
- package/dist/list-query/builder.js +5 -1
- package/dist/list-query/builder.js.map +1 -1
- package/dist/list-query/filter-value-schemas.d.ts +16 -0
- package/dist/list-query/filter-value-schemas.d.ts.map +1 -0
- package/dist/list-query/filter-value-schemas.js +46 -0
- package/dist/list-query/filter-value-schemas.js.map +1 -0
- package/dist/list-query/index.d.ts +1 -0
- package/dist/list-query/index.d.ts.map +1 -1
- package/dist/list-query/index.js +2 -1
- package/dist/list-query/index.js.map +1 -1
- package/dist/list-query/parse-filter-values.d.ts +21 -0
- package/dist/list-query/parse-filter-values.d.ts.map +1 -0
- package/dist/list-query/parse-filter-values.js +177 -0
- package/dist/list-query/parse-filter-values.js.map +1 -0
- package/dist/list-query/prisma-builder.d.ts.map +1 -1
- package/dist/list-query/prisma-builder.js +3 -50
- package/dist/list-query/prisma-builder.js.map +1 -1
- package/dist/list-query/schema-helpers.d.ts +25 -22
- package/dist/list-query/schema-helpers.d.ts.map +1 -1
- package/dist/list-query/schema-helpers.js +41 -31
- package/dist/list-query/schema-helpers.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **`parseFilterLiteral`**, **`parseFilterValue`**, **`parseWhereFilterValues`** — centralized filter value parsing for query params and Prisma `where` clauses
|
|
13
|
+
- **`filter-value-schemas`** — Valibot operand schemas with transforms for typed Prisma filters
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Typed filter schemas (`dateFilterSchema`, `intFilterSchema`, `numberFilterSchema`, `booleanFilterSchema`) parse string operands to Prisma types via Valibot transforms
|
|
18
|
+
- `parseWhereFilterValues` reuses those schemas with `parse()` instead of custom coercion logic
|
|
19
|
+
- List-query `where` deep copy uses `structuredClone` so parsed `Date` values are preserved
|
|
20
|
+
|
|
10
21
|
## [1.0.0] - 2026-06-10
|
|
11
22
|
|
|
12
23
|
Major release: subpath exports, dependency upgrades (CASL 7, MJML 5, Valibot 1.4, Prisma 7), Prisma list-query helpers, and internal refactors. Breaking changes when upgrading from 0.x.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/list-query/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/list-query/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { buildGlobalSearchWhere } from './global-search.js';
|
|
2
|
+
import { parseWhereFilterValues } from './parse-filter-values.js';
|
|
2
3
|
import { parseQueryParams } from './parser.js';
|
|
3
4
|
import { buildPrismaParams } from './prisma-builder.js';
|
|
4
5
|
import { resolveOrderBy } from './prisma-executor.js';
|
|
@@ -73,9 +74,12 @@ export class ListQueryBuilder {
|
|
|
73
74
|
if (this.whereConditions.length > 0) {
|
|
74
75
|
mergedWhere = this.mergeWhereConditions([validatedWhere, ...this.whereConditions]);
|
|
75
76
|
}
|
|
77
|
+
if (this.validationConfig) {
|
|
78
|
+
mergedWhere = parseWhereFilterValues(mergedWhere, this.validationConfig.whereSchema);
|
|
79
|
+
}
|
|
76
80
|
// Deep copy for params.where to prevent any potential mutation
|
|
77
81
|
// buildAggregationParams uses mergedWhere directly since removeFieldFromWhere is immutable
|
|
78
|
-
const whereForParams =
|
|
82
|
+
const whereForParams = structuredClone(mergedWhere);
|
|
79
83
|
const params = {
|
|
80
84
|
where: whereForParams,
|
|
81
85
|
orderBy: resolveOrderBy(validatedOrderBy, this.config.defaultOrderBy),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/list-query/builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/list-query/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Parse a numeric/boolean literal from a query string token (no dates). */
|
|
2
|
+
export declare function parseFilterLiteral(value: string): string | number | boolean;
|
|
3
|
+
/** Valibot schema for a single Prisma date filter operand (`YYYY-MM-DD` → `Date`). */
|
|
4
|
+
export declare const dateFilterValueSchema: () => import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").DateSchema<undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").IsoDateAction<string, undefined>]>], undefined>, import("valibot").TransformAction<string | Date, Date>]>;
|
|
5
|
+
/** Valibot schema for a single Prisma int filter operand. */
|
|
6
|
+
export declare const intFilterValueSchema: () => import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>], undefined>, import("valibot").TransformAction<string | number, number>]>;
|
|
7
|
+
/** Valibot schema for a single Prisma float/int filter operand (legacy string input). */
|
|
8
|
+
export declare const numberFilterValueSchema: () => import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, import("valibot").TransformAction<string | number | boolean, string | number | boolean>]>;
|
|
9
|
+
/** Valibot schema for a single Prisma boolean filter operand. */
|
|
10
|
+
export declare const booleanFilterValueSchema: () => import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").BooleanSchema<undefined>, import("valibot").PicklistSchema<["true", "false"], undefined>], undefined>, import("valibot").TransformAction<boolean | "true" | "false", boolean>]>;
|
|
11
|
+
/**
|
|
12
|
+
* Valibot schema for comparison operands on paths outside the filter schema (e.g. scope).
|
|
13
|
+
* Parses dates and numeric/boolean literals; leaves other strings unchanged.
|
|
14
|
+
*/
|
|
15
|
+
export declare const unknownComparisonValueSchema: () => import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TransformAction<string, string | number | boolean | Date>]>;
|
|
16
|
+
//# sourceMappingURL=filter-value-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-value-schemas.d.ts","sourceRoot":"","sources":["../../src/list-query/filter-value-schemas.ts"],"names":[],"mappings":"AAaA,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAY3E;AAWD,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,4UAI/B,CAAC;AAEJ,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB,iPAI9B,CAAC;AAEJ,yFAAyF;AACzF,eAAO,MAAM,uBAAuB,mXASjC,CAAC;AAEJ,iEAAiE;AACjE,eAAO,MAAM,wBAAwB,mRAIlC,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,4BAA4B,2KAStC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { boolean, date, isoDate, literal, number, picklist, pipe, string, transform, union, } from 'valibot';
|
|
2
|
+
/** Parse a numeric/boolean literal from a query string token (no dates). */
|
|
3
|
+
export function parseFilterLiteral(value) {
|
|
4
|
+
if (value === 'true') {
|
|
5
|
+
return true;
|
|
6
|
+
}
|
|
7
|
+
if (value === 'false') {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
const numValue = Number(value);
|
|
11
|
+
if (!Number.isNaN(numValue) && value.trim() !== '') {
|
|
12
|
+
return numValue;
|
|
13
|
+
}
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
const ISO_DAY_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
17
|
+
function toUtcDate(value) {
|
|
18
|
+
if (value instanceof Date) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
return new Date(`${value}T00:00:00.000Z`);
|
|
22
|
+
}
|
|
23
|
+
/** Valibot schema for a single Prisma date filter operand (`YYYY-MM-DD` → `Date`). */
|
|
24
|
+
export const dateFilterValueSchema = () => pipe(union([date(), pipe(string(), isoDate())]), transform((value) => toUtcDate(value)));
|
|
25
|
+
/** Valibot schema for a single Prisma int filter operand. */
|
|
26
|
+
export const intFilterValueSchema = () => pipe(union([string(), number()]), transform((value) => (typeof value === 'number' ? value : Number(value))));
|
|
27
|
+
/** Valibot schema for a single Prisma float/int filter operand (legacy string input). */
|
|
28
|
+
export const numberFilterValueSchema = () => pipe(union([string(), number(), literal(true), literal(false)]), transform((value) => {
|
|
29
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
return parseFilterLiteral(value);
|
|
33
|
+
}));
|
|
34
|
+
/** Valibot schema for a single Prisma boolean filter operand. */
|
|
35
|
+
export const booleanFilterValueSchema = () => pipe(union([boolean(), picklist(['true', 'false'])]), transform((value) => (typeof value === 'boolean' ? value : value === 'true')));
|
|
36
|
+
/**
|
|
37
|
+
* Valibot schema for comparison operands on paths outside the filter schema (e.g. scope).
|
|
38
|
+
* Parses dates and numeric/boolean literals; leaves other strings unchanged.
|
|
39
|
+
*/
|
|
40
|
+
export const unknownComparisonValueSchema = () => pipe(string(), transform((value) => {
|
|
41
|
+
if (ISO_DAY_PATTERN.test(value)) {
|
|
42
|
+
return toUtcDate(value);
|
|
43
|
+
}
|
|
44
|
+
return parseFilterLiteral(value);
|
|
45
|
+
}));
|
|
46
|
+
//# sourceMappingURL=filter-value-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-value-schemas.js","sourceRoot":"","sources":["../../src/list-query/filter-value-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { createListQuery, type ListQueryBuilder, type ListQueryConfig, type PaginatedResult, } from './builder.js';
|
|
2
2
|
export { type CaslAbilityLike, type CaslAccessibleBy, registerCasl, withCaslScope, } from './casl.js';
|
|
3
3
|
export type { InferListParams, InferOrderByItem } from './list-params.js';
|
|
4
|
+
export { type FilterScalar, parseFilterLiteral, parseFilterValue, parseWhereFilterValues, } from './parse-filter-values.js';
|
|
4
5
|
export { bindPrismaGroupByDelegate, bindPrismaListDelegate, createPrismaListExecutor, type PrismaGroupByDelegate, type PrismaListDelegate, type PrismaListExecutorConfig, type PrismaListModelDelegate, type PrismaListQueryParams, resolveOrderBy, runGroupByAggregations, } from './prisma-executor.js';
|
|
5
6
|
export { ListQuerySchema } from './query-schema.js';
|
|
6
7
|
export { booleanFilterSchema, createFilterSchema, createSortSchema, dateFilterSchema, enumFilterSchema, intFilterSchema, numberFilterSchema, relationFilterSchema, sortDirectionSchema, stringFilterSchema, } from './schema-helpers.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/list-query/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/list-query/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EACL,KAAK,YAAY,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,cAAc,EACd,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,aAAa,IAAI,mBAAmB,EACpC,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,iBAAiB,EACtB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/list-query/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
// Builder API
|
|
2
2
|
export { createListQuery, } from './builder.js';
|
|
3
3
|
export { registerCasl, withCaslScope, } from './casl.js';
|
|
4
|
+
// Schema helpers
|
|
5
|
+
export { parseFilterLiteral, parseFilterValue, parseWhereFilterValues, } from './parse-filter-values.js';
|
|
4
6
|
export { bindPrismaGroupByDelegate, bindPrismaListDelegate, createPrismaListExecutor, resolveOrderBy, runGroupByAggregations, } from './prisma-executor.js';
|
|
5
7
|
// Query schema
|
|
6
8
|
export { ListQuerySchema } from './query-schema.js';
|
|
7
|
-
// Schema helpers
|
|
8
9
|
export { booleanFilterSchema, createFilterSchema, createSortSchema, dateFilterSchema, enumFilterSchema, intFilterSchema, numberFilterSchema, relationFilterSchema, sortDirectionSchema, stringFilterSchema, } from './schema-helpers.js';
|
|
9
10
|
export { permissiveOrderByEntrySchema, unrestrictedWhereSchema, } from './unrestricted-schemas.js';
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/list-query/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EACL,eAAe,GAIhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EAMxB,cAAc,EACd,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,eAAe;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/list-query/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EACL,eAAe,GAIhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAC;AAEnB,iBAAiB;AACjB,OAAO,EAEL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EAMxB,cAAc,EACd,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,eAAe;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAsB7B,OAAO,EAEL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type BaseIssue, type BaseSchema } from 'valibot';
|
|
2
|
+
import type { FilterOperator } from './types.js';
|
|
3
|
+
type SchemaNode = BaseSchema<unknown, unknown, BaseIssue<unknown>>;
|
|
4
|
+
type WhereRecord = Record<string, unknown>;
|
|
5
|
+
export type FilterScalar = string | number | boolean | Date;
|
|
6
|
+
export { parseFilterLiteral } from './filter-value-schemas.js';
|
|
7
|
+
/**
|
|
8
|
+
* Parse a filter value for `operator` before building Prisma conditions from query params.
|
|
9
|
+
*
|
|
10
|
+
* Substring and IN operators keep the raw string; equality and comparison operators
|
|
11
|
+
* delegate to `parseFilterLiteral`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseFilterValue(value: string, operator: FilterOperator): string | number | boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Parse filter values in a Prisma `where` clause using the list-query filter schema.
|
|
16
|
+
*
|
|
17
|
+
* Query params are parsed earlier via `parseFilterValue`; this pass applies Valibot
|
|
18
|
+
* transforms on typed filter fields after user filters are merged with scope conditions.
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseWhereFilterValues(where: WhereRecord, filterSchema: SchemaNode): WhereRecord;
|
|
21
|
+
//# sourceMappingURL=parse-filter-values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-filter-values.d.ts","sourceRoot":"","sources":["../../src/list-query/parse-filter-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAA2B,MAAM,SAAS,CAAC;AAGnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAOjD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAG3C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAS/D;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,GACvB,MAAM,GAAG,MAAM,GAAG,OAAO,CAmB3B;AAiKD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,GAAG,WAAW,CAEhG"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { object, optional, parse } from 'valibot';
|
|
2
|
+
import { parseFilterLiteral, unknownComparisonValueSchema } from './filter-value-schemas.js';
|
|
3
|
+
import { FILTER_SCHEMA_KIND } from './schema-helpers.js';
|
|
4
|
+
const FILTER_OPERATORS = ['equals', 'not', 'lt', 'lte', 'gt', 'gte', 'in', 'notIn'];
|
|
5
|
+
const COMPARISON_OPERATORS = ['lt', 'lte', 'gt', 'gte'];
|
|
6
|
+
const RELATION_WRAPPER_KEYS = ['is', 'isNot', 'some', 'none', 'every'];
|
|
7
|
+
const LOGICAL_OPERATORS = new Set(['AND', 'OR']);
|
|
8
|
+
export { parseFilterLiteral } from './filter-value-schemas.js';
|
|
9
|
+
const unknownComparisonFilterSchema = object({
|
|
10
|
+
gt: optional(unknownComparisonValueSchema()),
|
|
11
|
+
gte: optional(unknownComparisonValueSchema()),
|
|
12
|
+
lt: optional(unknownComparisonValueSchema()),
|
|
13
|
+
lte: optional(unknownComparisonValueSchema()),
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Parse a filter value for `operator` before building Prisma conditions from query params.
|
|
17
|
+
*
|
|
18
|
+
* Substring and IN operators keep the raw string; equality and comparison operators
|
|
19
|
+
* delegate to `parseFilterLiteral`.
|
|
20
|
+
*/
|
|
21
|
+
export function parseFilterValue(value, operator) {
|
|
22
|
+
const baseOperator = operator.replace(/\*$/, '');
|
|
23
|
+
if (baseOperator.includes('|')) {
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
if (baseOperator === '@=' ||
|
|
27
|
+
baseOperator === '_=' ||
|
|
28
|
+
baseOperator === '_-=' ||
|
|
29
|
+
baseOperator === '!@=' ||
|
|
30
|
+
baseOperator === '!_=' ||
|
|
31
|
+
baseOperator === '!_-=') {
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
return parseFilterLiteral(value);
|
|
35
|
+
}
|
|
36
|
+
function isWhereRecord(value) {
|
|
37
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
38
|
+
}
|
|
39
|
+
function unwrapSchema(schema) {
|
|
40
|
+
let current = schema;
|
|
41
|
+
while (current !== null &&
|
|
42
|
+
typeof current === 'object' &&
|
|
43
|
+
'type' in current &&
|
|
44
|
+
(current.type === 'optional' || current.type === 'nullable') &&
|
|
45
|
+
'wrapped' in current) {
|
|
46
|
+
current = current.wrapped;
|
|
47
|
+
}
|
|
48
|
+
return current;
|
|
49
|
+
}
|
|
50
|
+
function isTypedFilterSchema(schema) {
|
|
51
|
+
const unwrapped = unwrapSchema(schema);
|
|
52
|
+
return typeof unwrapped === 'object' && unwrapped !== null && FILTER_SCHEMA_KIND in unwrapped;
|
|
53
|
+
}
|
|
54
|
+
function getObjectSchemaEntries(schema) {
|
|
55
|
+
const unwrapped = unwrapSchema(schema);
|
|
56
|
+
if (unwrapped.type !== 'object' || !unwrapped.entries) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
return unwrapped.entries;
|
|
60
|
+
}
|
|
61
|
+
function isRelationFilterSchema(schema) {
|
|
62
|
+
const entries = getObjectSchemaEntries(schema);
|
|
63
|
+
if (!entries) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
const keys = Object.keys(entries);
|
|
67
|
+
return keys.length > 0 && keys.every((key) => key === 'is' || key === 'isNot');
|
|
68
|
+
}
|
|
69
|
+
function isFilterConditionObject(value) {
|
|
70
|
+
return FILTER_OPERATORS.some((operator) => operator in value);
|
|
71
|
+
}
|
|
72
|
+
function parseLogicalConditions(value, parseItem) {
|
|
73
|
+
if (!Array.isArray(value)) {
|
|
74
|
+
return value;
|
|
75
|
+
}
|
|
76
|
+
return value.map((item) => (isWhereRecord(item) ? parseItem(item) : item));
|
|
77
|
+
}
|
|
78
|
+
function parseTypedFieldValue(fieldSchema, valueObject) {
|
|
79
|
+
return parse(fieldSchema, valueObject);
|
|
80
|
+
}
|
|
81
|
+
function parseUnknownFilterCondition(value) {
|
|
82
|
+
const comparisonOnly = {};
|
|
83
|
+
for (const operator of COMPARISON_OPERATORS) {
|
|
84
|
+
if (operator in value) {
|
|
85
|
+
comparisonOnly[operator] = value[operator];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (Object.keys(comparisonOnly).length === 0) {
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
const parsedComparisons = parse(unknownComparisonFilterSchema, comparisonOnly);
|
|
92
|
+
return { ...value, ...parsedComparisons };
|
|
93
|
+
}
|
|
94
|
+
function parseUnknownWhereEntry(key, value) {
|
|
95
|
+
if (LOGICAL_OPERATORS.has(key)) {
|
|
96
|
+
return parseLogicalConditions(value, parseUnknownWhere);
|
|
97
|
+
}
|
|
98
|
+
if (!isWhereRecord(value)) {
|
|
99
|
+
return value;
|
|
100
|
+
}
|
|
101
|
+
if (isFilterConditionObject(value)) {
|
|
102
|
+
return parseUnknownFilterCondition(value);
|
|
103
|
+
}
|
|
104
|
+
return parseUnknownWhere(value);
|
|
105
|
+
}
|
|
106
|
+
function parseUnknownWhere(where) {
|
|
107
|
+
const result = {};
|
|
108
|
+
for (const [key, value] of Object.entries(where)) {
|
|
109
|
+
result[key] = parseUnknownWhereEntry(key, value);
|
|
110
|
+
}
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
function parseRelationFilterValue(valueObject, fieldSchema) {
|
|
114
|
+
const relationEntries = getObjectSchemaEntries(fieldSchema);
|
|
115
|
+
const nestedFilterSchema = relationEntries?.is ?? relationEntries?.isNot;
|
|
116
|
+
const parsedRelation = {};
|
|
117
|
+
for (const relKey of RELATION_WRAPPER_KEYS) {
|
|
118
|
+
const nestedValue = valueObject[relKey];
|
|
119
|
+
if (nestedFilterSchema && isWhereRecord(nestedValue)) {
|
|
120
|
+
parsedRelation[relKey] = parseWhereBySchema(nestedValue, nestedFilterSchema);
|
|
121
|
+
}
|
|
122
|
+
else if (relKey in valueObject) {
|
|
123
|
+
parsedRelation[relKey] = nestedValue;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
for (const [relKey, nestedValue] of Object.entries(valueObject)) {
|
|
127
|
+
if (!(relKey in parsedRelation)) {
|
|
128
|
+
parsedRelation[relKey] = nestedValue;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return parsedRelation;
|
|
132
|
+
}
|
|
133
|
+
function parseKnownFieldValue(valueObject, fieldSchema) {
|
|
134
|
+
if (isTypedFilterSchema(fieldSchema)) {
|
|
135
|
+
return parseTypedFieldValue(fieldSchema, valueObject);
|
|
136
|
+
}
|
|
137
|
+
if (isRelationFilterSchema(fieldSchema)) {
|
|
138
|
+
return parseRelationFilterValue(valueObject, fieldSchema);
|
|
139
|
+
}
|
|
140
|
+
if (getObjectSchemaEntries(fieldSchema)) {
|
|
141
|
+
return parseWhereBySchema(valueObject, fieldSchema);
|
|
142
|
+
}
|
|
143
|
+
return valueObject;
|
|
144
|
+
}
|
|
145
|
+
function parseSchemaWhereEntry(key, value, fieldSchema, filterSchema) {
|
|
146
|
+
if (LOGICAL_OPERATORS.has(key)) {
|
|
147
|
+
return parseLogicalConditions(value, (item) => parseWhereBySchema(item, filterSchema));
|
|
148
|
+
}
|
|
149
|
+
if (!fieldSchema) {
|
|
150
|
+
return isWhereRecord(value) ? parseUnknownWhere(value) : value;
|
|
151
|
+
}
|
|
152
|
+
if (!isWhereRecord(value)) {
|
|
153
|
+
return value;
|
|
154
|
+
}
|
|
155
|
+
return parseKnownFieldValue(value, fieldSchema);
|
|
156
|
+
}
|
|
157
|
+
function parseWhereBySchema(where, filterSchema) {
|
|
158
|
+
const entries = getObjectSchemaEntries(filterSchema);
|
|
159
|
+
if (!entries) {
|
|
160
|
+
return parseUnknownWhere(where);
|
|
161
|
+
}
|
|
162
|
+
const result = {};
|
|
163
|
+
for (const [key, value] of Object.entries(where)) {
|
|
164
|
+
result[key] = parseSchemaWhereEntry(key, value, entries[key], filterSchema);
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Parse filter values in a Prisma `where` clause using the list-query filter schema.
|
|
170
|
+
*
|
|
171
|
+
* Query params are parsed earlier via `parseFilterValue`; this pass applies Valibot
|
|
172
|
+
* transforms on typed filter fields after user filters are merged with scope conditions.
|
|
173
|
+
*/
|
|
174
|
+
export function parseWhereFilterValues(where, filterSchema) {
|
|
175
|
+
return parseWhereBySchema(where, filterSchema);
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=parse-filter-values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-filter-values.js","sourceRoot":"","sources":["../../src/list-query/parse-filter-values.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-builder.d.ts","sourceRoot":"","sources":["../../src/list-query/prisma-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prisma-builder.d.ts","sourceRoot":"","sources":["../../src/list-query/prisma-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACX,MAAM,YAAY,CAAC;AAkNpB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY1F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAkC7F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAC5D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAWA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseFilterLiteral, parseFilterValue } from './parse-filter-values.js';
|
|
1
2
|
/**
|
|
2
3
|
* Build condition for equality operators
|
|
3
4
|
*/
|
|
@@ -57,7 +58,7 @@ function buildStringCondition(operator, value, isCaseInsensitive) {
|
|
|
57
58
|
*/
|
|
58
59
|
function buildInCondition(operator, value, isCaseInsensitive) {
|
|
59
60
|
// Split by pipe and parse each value
|
|
60
|
-
const values = value.split('|').map((v) =>
|
|
61
|
+
const values = value.split('|').map((v) => parseFilterLiteral(v.trim()));
|
|
61
62
|
// Check if all values are strings for case-insensitive mode
|
|
62
63
|
const allStrings = values.every((v) => typeof v === 'string');
|
|
63
64
|
if (operator === '@=|') {
|
|
@@ -104,54 +105,6 @@ function operatorToPrismaCondition(operator, value) {
|
|
|
104
105
|
}
|
|
105
106
|
throw new Error(`Unsupported operator: ${operator}`);
|
|
106
107
|
}
|
|
107
|
-
/**
|
|
108
|
-
* Coerce a single literal string to the primitive types we support in filters when the operator
|
|
109
|
-
* does not require a raw string (equality, comparison, IN list tokens).
|
|
110
|
-
*
|
|
111
|
-
* - `true` / `false` → boolean (exact match, case-sensitive).
|
|
112
|
-
* - Numeric-looking strings → number (so `age==42` and `age>18` behave intuitively).
|
|
113
|
-
* - Everything else → unchanged string.
|
|
114
|
-
*/
|
|
115
|
-
function parsePrimitiveValue(value) {
|
|
116
|
-
if (value === 'true') {
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
if (value === 'false') {
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
const numValue = Number(value);
|
|
123
|
-
if (!Number.isNaN(numValue) && value.trim() !== '') {
|
|
124
|
-
return numValue;
|
|
125
|
-
}
|
|
126
|
-
return value;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Coerce a filter value for `operator` before building Prisma conditions.
|
|
130
|
-
*
|
|
131
|
-
* - **Substring / IN**: return the string as-is. Text search must not turn `"432"` into a number;
|
|
132
|
-
* pipe-separated IN lists are split and parsed per segment in `buildInCondition`.
|
|
133
|
-
* - **Equality and comparisons**: delegate to `parsePrimitiveValue` so legacy string inputs like
|
|
134
|
-
* `"42"` or `"true"` still coerce.
|
|
135
|
-
*
|
|
136
|
-
* A trailing `*` on `operator` is stripped before branching; it only affects case-insensitive
|
|
137
|
-
* matching, not how the value is parsed.
|
|
138
|
-
*/
|
|
139
|
-
function parseValue(value, operator) {
|
|
140
|
-
const baseOperator = operator.replace(/\*$/, '');
|
|
141
|
-
// For IN operators, keep the value as string (pipe-separated).
|
|
142
|
-
if (baseOperator.includes('|')) {
|
|
143
|
-
return value;
|
|
144
|
-
}
|
|
145
|
-
if (baseOperator === '@=' ||
|
|
146
|
-
baseOperator === '_=' ||
|
|
147
|
-
baseOperator === '_-=' ||
|
|
148
|
-
baseOperator === '!@=' ||
|
|
149
|
-
baseOperator === '!_=' ||
|
|
150
|
-
baseOperator === '!_-=') {
|
|
151
|
-
return value;
|
|
152
|
-
}
|
|
153
|
-
return parsePrimitiveValue(value);
|
|
154
|
-
}
|
|
155
108
|
/**
|
|
156
109
|
* Build a nested Prisma where condition from a field path
|
|
157
110
|
* For nested paths (relations), wraps in Prisma's relation filter structure { is: { ... } }
|
|
@@ -220,7 +173,7 @@ export function buildWhereClause(filters) {
|
|
|
220
173
|
}
|
|
221
174
|
let where = {};
|
|
222
175
|
for (const filter of filters) {
|
|
223
|
-
const parsedValue =
|
|
176
|
+
const parsedValue = parseFilterValue(filter.value, filter.operator);
|
|
224
177
|
const condition = operatorToPrismaCondition(filter.operator, parsedValue);
|
|
225
178
|
const nestedCondition = buildNestedWhereCondition(filter.fieldPath, condition);
|
|
226
179
|
where = mergeWhereConditions(where, nestedCondition);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-builder.js","sourceRoot":"","sources":["../../src/list-query/prisma-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prisma-builder.js","sourceRoot":"","sources":["../../src/list-query/prisma-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { type BaseIssue, type BaseSchema, type OptionalSchema } from 'valibot';
|
|
2
2
|
import type { SortFieldsToOrderBy } from './sort-field-types.js';
|
|
3
|
+
/** Marks typed filter schemas for schema-aware value parsing in list-query builder. */
|
|
4
|
+
export declare const FILTER_SCHEMA_KIND: unique symbol;
|
|
5
|
+
export type TypedFilterSchemaKind = 'date' | 'int' | 'number' | 'boolean';
|
|
3
6
|
/**
|
|
4
7
|
* Schema for Prisma sort direction
|
|
5
8
|
*/
|
|
@@ -25,45 +28,45 @@ export declare const stringFilterSchema: () => import("valibot").ObjectSchema<{
|
|
|
25
28
|
* Supports numeric comparison operations
|
|
26
29
|
*/
|
|
27
30
|
export declare const numberFilterSchema: () => import("valibot").ObjectSchema<{
|
|
28
|
-
readonly equals: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
|
|
29
|
-
readonly not: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
|
|
30
|
-
readonly lt: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
|
|
31
|
-
readonly lte: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
|
|
32
|
-
readonly gt: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
|
|
33
|
-
readonly gte: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
|
|
31
|
+
readonly equals: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, import("valibot").TransformAction<string | number | boolean, string | number | boolean>]>, undefined>;
|
|
32
|
+
readonly not: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, import("valibot").TransformAction<string | number | boolean, string | number | boolean>]>, undefined>;
|
|
33
|
+
readonly lt: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, import("valibot").TransformAction<string | number | boolean, string | number | boolean>]>, undefined>;
|
|
34
|
+
readonly lte: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, import("valibot").TransformAction<string | number | boolean, string | number | boolean>]>, undefined>;
|
|
35
|
+
readonly gt: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, import("valibot").TransformAction<string | number | boolean, string | number | boolean>]>, undefined>;
|
|
36
|
+
readonly gte: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, import("valibot").TransformAction<string | number | boolean, string | number | boolean>]>, undefined>;
|
|
34
37
|
}, undefined>;
|
|
35
38
|
/**
|
|
36
39
|
* Schema for Prisma IntFilter operations (numeric fields stored as integers).
|
|
37
40
|
*/
|
|
38
41
|
export declare const intFilterSchema: () => import("valibot").ObjectSchema<{
|
|
39
|
-
readonly equals: OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
40
|
-
readonly not: OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
41
|
-
readonly lt: OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
42
|
-
readonly lte: OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
43
|
-
readonly gt: OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
44
|
-
readonly gte: OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
45
|
-
readonly in: OptionalSchema<import("valibot").ArraySchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
|
|
46
|
-
readonly notIn: OptionalSchema<import("valibot").ArraySchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
|
|
42
|
+
readonly equals: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>], undefined>, import("valibot").TransformAction<string | number, number>]>, undefined>;
|
|
43
|
+
readonly not: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>], undefined>, import("valibot").TransformAction<string | number, number>]>, undefined>;
|
|
44
|
+
readonly lt: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>], undefined>, import("valibot").TransformAction<string | number, number>]>, undefined>;
|
|
45
|
+
readonly lte: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>], undefined>, import("valibot").TransformAction<string | number, number>]>, undefined>;
|
|
46
|
+
readonly gt: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>], undefined>, import("valibot").TransformAction<string | number, number>]>, undefined>;
|
|
47
|
+
readonly gte: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>], undefined>, import("valibot").TransformAction<string | number, number>]>, undefined>;
|
|
48
|
+
readonly in: OptionalSchema<import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>], undefined>, import("valibot").TransformAction<string | number, number>]>, undefined>, undefined>;
|
|
49
|
+
readonly notIn: OptionalSchema<import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").NumberSchema<undefined>], undefined>, import("valibot").TransformAction<string | number, number>]>, undefined>, undefined>;
|
|
47
50
|
}, undefined>;
|
|
48
51
|
/**
|
|
49
52
|
* Schema for Prisma DateTimeFilter operations
|
|
50
53
|
* Supports date comparison operations
|
|
51
54
|
*/
|
|
52
55
|
export declare const dateFilterSchema: () => import("valibot").ObjectSchema<{
|
|
53
|
-
readonly equals: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
54
|
-
readonly not: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
55
|
-
readonly lt: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
56
|
-
readonly lte: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
57
|
-
readonly gt: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
58
|
-
readonly gte: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
56
|
+
readonly equals: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").DateSchema<undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").IsoDateAction<string, undefined>]>], undefined>, import("valibot").TransformAction<string | Date, Date>]>, undefined>;
|
|
57
|
+
readonly not: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").DateSchema<undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").IsoDateAction<string, undefined>]>], undefined>, import("valibot").TransformAction<string | Date, Date>]>, undefined>;
|
|
58
|
+
readonly lt: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").DateSchema<undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").IsoDateAction<string, undefined>]>], undefined>, import("valibot").TransformAction<string | Date, Date>]>, undefined>;
|
|
59
|
+
readonly lte: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").DateSchema<undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").IsoDateAction<string, undefined>]>], undefined>, import("valibot").TransformAction<string | Date, Date>]>, undefined>;
|
|
60
|
+
readonly gt: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").DateSchema<undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").IsoDateAction<string, undefined>]>], undefined>, import("valibot").TransformAction<string | Date, Date>]>, undefined>;
|
|
61
|
+
readonly gte: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").DateSchema<undefined>, import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").IsoDateAction<string, undefined>]>], undefined>, import("valibot").TransformAction<string | Date, Date>]>, undefined>;
|
|
59
62
|
}, undefined>;
|
|
60
63
|
/**
|
|
61
64
|
* Schema for Prisma BoolFilter operations
|
|
62
65
|
* Only supports equals and not operations
|
|
63
66
|
*/
|
|
64
67
|
export declare const booleanFilterSchema: () => import("valibot").ObjectSchema<{
|
|
65
|
-
readonly equals: OptionalSchema<import("valibot").UnionSchema<[import("valibot").
|
|
66
|
-
readonly not: OptionalSchema<import("valibot").UnionSchema<[import("valibot").
|
|
68
|
+
readonly equals: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").BooleanSchema<undefined>, import("valibot").PicklistSchema<["true", "false"], undefined>], undefined>, import("valibot").TransformAction<boolean | "true" | "false", boolean>]>, undefined>;
|
|
69
|
+
readonly not: OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").UnionSchema<[import("valibot").BooleanSchema<undefined>, import("valibot").PicklistSchema<["true", "false"], undefined>], undefined>, import("valibot").TransformAction<boolean | "true" | "false", boolean>]>, undefined>;
|
|
67
70
|
}, undefined>;
|
|
68
71
|
/**
|
|
69
72
|
* Schema for Prisma EnumFilter operations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../src/list-query/schema-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../src/list-query/schema-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,cAAc,EAMpB,MAAM,SAAS,CAAC;AAOjB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,eAAsD,CAAC;AAEtF,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAU1E;;GAEG;AACH,eAAO,MAAM,mBAAmB,oEAAkC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;aAU3B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;aAW5B,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;aAazB,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;aAW1B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;aAO7B,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAC7F,UAAU,EAAE,KAAK;;;;;cAQlB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAC7F,YAAY,EAAE,CAAC;;;cAMhB;AAED,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAuDlE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAC5E,MAAM,EAAE,CAAC,GACR,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAUhF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAC1E,MAAM,EAAE,CAAC,qCAGJ,CAAC,6DAGP"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
import { array,
|
|
1
|
+
import { array, object, optional, picklist, string, union, } from 'valibot';
|
|
2
|
+
import { booleanFilterValueSchema, dateFilterValueSchema, intFilterValueSchema, numberFilterValueSchema, } from './filter-value-schemas.js';
|
|
3
|
+
/** Marks typed filter schemas for schema-aware value parsing in list-query builder. */
|
|
4
|
+
export const FILTER_SCHEMA_KIND = Symbol.for('glasswork.list-query.filterSchemaKind');
|
|
5
|
+
function markTypedFilterSchema(schema, kind) {
|
|
6
|
+
Object.defineProperty(schema, FILTER_SCHEMA_KIND, {
|
|
7
|
+
value: kind,
|
|
8
|
+
enumerable: false,
|
|
9
|
+
});
|
|
10
|
+
return schema;
|
|
11
|
+
}
|
|
2
12
|
/**
|
|
3
13
|
* Schema for Prisma sort direction
|
|
4
14
|
*/
|
|
@@ -21,47 +31,47 @@ export const stringFilterSchema = () => object({
|
|
|
21
31
|
* Schema for Prisma IntFilter or FloatFilter operations
|
|
22
32
|
* Supports numeric comparison operations
|
|
23
33
|
*/
|
|
24
|
-
export const numberFilterSchema = () => object({
|
|
25
|
-
equals: optional(
|
|
26
|
-
not: optional(
|
|
27
|
-
lt: optional(
|
|
28
|
-
lte: optional(
|
|
29
|
-
gt: optional(
|
|
30
|
-
gte: optional(
|
|
31
|
-
});
|
|
34
|
+
export const numberFilterSchema = () => markTypedFilterSchema(object({
|
|
35
|
+
equals: optional(numberFilterValueSchema()),
|
|
36
|
+
not: optional(numberFilterValueSchema()),
|
|
37
|
+
lt: optional(numberFilterValueSchema()),
|
|
38
|
+
lte: optional(numberFilterValueSchema()),
|
|
39
|
+
gt: optional(numberFilterValueSchema()),
|
|
40
|
+
gte: optional(numberFilterValueSchema()),
|
|
41
|
+
}), 'number');
|
|
32
42
|
/**
|
|
33
43
|
* Schema for Prisma IntFilter operations (numeric fields stored as integers).
|
|
34
44
|
*/
|
|
35
|
-
export const intFilterSchema = () => object({
|
|
36
|
-
equals: optional(
|
|
37
|
-
not: optional(
|
|
38
|
-
lt: optional(
|
|
39
|
-
lte: optional(
|
|
40
|
-
gt: optional(
|
|
41
|
-
gte: optional(
|
|
42
|
-
in: optional(array(
|
|
43
|
-
notIn: optional(array(
|
|
44
|
-
});
|
|
45
|
+
export const intFilterSchema = () => markTypedFilterSchema(object({
|
|
46
|
+
equals: optional(intFilterValueSchema()),
|
|
47
|
+
not: optional(intFilterValueSchema()),
|
|
48
|
+
lt: optional(intFilterValueSchema()),
|
|
49
|
+
lte: optional(intFilterValueSchema()),
|
|
50
|
+
gt: optional(intFilterValueSchema()),
|
|
51
|
+
gte: optional(intFilterValueSchema()),
|
|
52
|
+
in: optional(array(intFilterValueSchema())),
|
|
53
|
+
notIn: optional(array(intFilterValueSchema())),
|
|
54
|
+
}), 'int');
|
|
45
55
|
/**
|
|
46
56
|
* Schema for Prisma DateTimeFilter operations
|
|
47
57
|
* Supports date comparison operations
|
|
48
58
|
*/
|
|
49
|
-
export const dateFilterSchema = () => object({
|
|
50
|
-
equals: optional(
|
|
51
|
-
not: optional(
|
|
52
|
-
lt: optional(
|
|
53
|
-
lte: optional(
|
|
54
|
-
gt: optional(
|
|
55
|
-
gte: optional(
|
|
56
|
-
});
|
|
59
|
+
export const dateFilterSchema = () => markTypedFilterSchema(object({
|
|
60
|
+
equals: optional(dateFilterValueSchema()),
|
|
61
|
+
not: optional(dateFilterValueSchema()),
|
|
62
|
+
lt: optional(dateFilterValueSchema()),
|
|
63
|
+
lte: optional(dateFilterValueSchema()),
|
|
64
|
+
gt: optional(dateFilterValueSchema()),
|
|
65
|
+
gte: optional(dateFilterValueSchema()),
|
|
66
|
+
}), 'date');
|
|
57
67
|
/**
|
|
58
68
|
* Schema for Prisma BoolFilter operations
|
|
59
69
|
* Only supports equals and not operations
|
|
60
70
|
*/
|
|
61
|
-
export const booleanFilterSchema = () => object({
|
|
62
|
-
equals: optional(
|
|
63
|
-
not: optional(
|
|
64
|
-
});
|
|
71
|
+
export const booleanFilterSchema = () => markTypedFilterSchema(object({
|
|
72
|
+
equals: optional(booleanFilterValueSchema()),
|
|
73
|
+
not: optional(booleanFilterValueSchema()),
|
|
74
|
+
}), 'boolean');
|
|
65
75
|
/**
|
|
66
76
|
* Schema for Prisma EnumFilter operations
|
|
67
77
|
* Supports equals and not operations with specific enum values
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-helpers.js","sourceRoot":"","sources":["../../src/list-query/schema-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"schema-helpers.js","sourceRoot":"","sources":["../../src/list-query/schema-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAIL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,GACN,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AAItF,SAAS,qBAAqB,CAAmB,MAAS,EAAE,IAA2B;IACrF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;QAChD,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CACrC,MAAM,CAAC;IACL,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC1B,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5B,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;CACrD,CAAC,CAAC;AAEL;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CACrC,qBAAqB,CACnB,MAAM,CAAC;IACL,MAAM,EAAE,QAAQ,CAAC,uBAAuB,EAAE,CAAC;IAC3C,GAAG,EAAE,QAAQ,CAAC,uBAAuB,EAAE,CAAC;IACxC,EAAE,EAAE,QAAQ,CAAC,uBAAuB,EAAE,CAAC;IACvC,GAAG,EAAE,QAAQ,CAAC,uBAAuB,EAAE,CAAC;IACxC,EAAE,EAAE,QAAQ,CAAC,uBAAuB,EAAE,CAAC;IACvC,GAAG,EAAE,QAAQ,CAAC,uBAAuB,EAAE,CAAC;CACzC,CAAC,EACF,QAAQ,CACT,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAClC,qBAAqB,CACnB,MAAM,CAAC;IACL,MAAM,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACxC,GAAG,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACrC,EAAE,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACpC,GAAG,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACrC,EAAE,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACpC,GAAG,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACrC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC;CAC/C,CAAC,EACF,KAAK,CACN,CAAC;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,qBAAqB,CACnB,MAAM,CAAC;IACL,MAAM,EAAE,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACzC,GAAG,EAAE,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACtC,EAAE,EAAE,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACrC,GAAG,EAAE,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACtC,EAAE,EAAE,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACrC,GAAG,EAAE,QAAQ,CAAC,qBAAqB,EAAE,CAAC;CACvC,CAAC,EACF,MAAM,CACP,CAAC;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CACtC,qBAAqB,CACnB,MAAM,CAAC;IACL,MAAM,EAAE,QAAQ,CAAC,wBAAwB,EAAE,CAAC;IAC5C,GAAG,EAAE,QAAQ,CAAC,wBAAwB,EAAE,CAAC;CAC1C,CAAC,EACF,SAAS,CACV,CAAC;AAEJ;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAiB;IAEjB,OAAO,MAAM,CAAC;QACZ,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;QAC5B,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC;QACzB,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KACnC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,YAAe;IAEf,OAAO,MAAM,CAAC;QACZ,EAAE,EAAE,QAAQ,CAAC,YAAY,CAAC;QAC1B,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC;KAC9B,CAAC,CAAC;AACL,CAAC;AAID,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CACzB,IAA6B,EAC7B,IAAY,EACZ,MAA2B;IAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAW,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC;IACjC,MAAM,KAAK,GAAG,IAAc,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,QAAQ,KAAK,SAAS,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;IAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IACrB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA+B;IAE/B,OAAO,MAAM,CACX,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC1C,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,qBAAqB,CAAC,KAAgC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAGH,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAS;IAET,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,qBAAqB,CAAC,IAAI,CAIhC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAEhC,MAAS;IACT,OAAO,MAAM,CACX,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAExF,CACF,CAAC;AACJ,CAAC"}
|