@querykitjs/web 1.0.0 → 2.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.
@@ -1,180 +0,0 @@
1
- import * as _querykitjs_core from '@querykitjs/core';
2
-
3
- /**
4
- * Filter/query DSL tiplari — `@querykitjs/core`dan, entity maydoni (`FieldKey`)
5
- * bilan ixtisoslashtirilgan. querykit backend (`@querykitjs/drizzle-pg`) qabul
6
- * qiladigan wire-format bilan mos (`{key, operation, value}`).
7
- */
8
-
9
- type FilterOperator = _querykitjs_core.FilterOperator;
10
- type FilterScalar = _querykitjs_core.FilterScalar;
11
- type FilterValue = _querykitjs_core.FilterValue;
12
- /** Entity ustun (maydon) kaliti. */
13
- type FieldKey<T> = Extract<keyof T, string>;
14
- /** Bitta maydon sharti (`operation` default `"="`). */
15
- type FieldCondition<T = Record<string, unknown>> = _querykitjs_core.FieldCondition<FieldKey<T>>;
16
- type AndGroup<T = Record<string, unknown>> = _querykitjs_core.AndGroup<FieldKey<T>>;
17
- type OrGroup<T = Record<string, unknown>> = _querykitjs_core.OrGroup<FieldKey<T>>;
18
- type NotGroup<T = Record<string, unknown>> = _querykitjs_core.NotGroup<FieldKey<T>>;
19
- /** Filter daraxti tuguni: shart yoki mantiqiy guruh. */
20
- type FilterNode<T = Record<string, unknown>> = _querykitjs_core.FilterNode<FieldKey<T>>;
21
- /**
22
- * Public filter: daraxt/tugun yoki flat massiv. Flat massiv implicit `AND` va
23
- * legacy backend (idistr) `IFilter[]` bilan to'liq mos.
24
- */
25
- type Filter<T = Record<string, unknown>> = _querykitjs_core.Filter<FieldKey<T>>;
26
- type SortDirection = _querykitjs_core.SortDirection;
27
- interface Sort {
28
- name?: string;
29
- direction?: SortDirection;
30
- }
31
- /** Sort kirishi: `"-createdAt"` (sortType string) yoki `{ name, direction }`. */
32
- type SortInput = string | Sort;
33
- interface Params<T = Record<string, unknown>> {
34
- filter?: Filter<T>;
35
- sort?: SortInput;
36
- columns?: Record<string, boolean>;
37
- /** Yuklanadigan relationlar (default `with` deb yuboriladi). */
38
- with?: Record<string, unknown>;
39
- /** Soft-delete qilingan qatorlarni ham qo'shish (backend read'lari uchun). */
40
- withDeleted?: boolean;
41
- }
42
- /** Offset (sahifali) paginatsiya kirishi. */
43
- interface ListParams<T = Record<string, unknown>> extends Params<T> {
44
- page?: number;
45
- perPage?: number;
46
- }
47
- /** Infinite-scroll (limit + offset) paginatsiya kirishi. */
48
- interface InfiniteParams<T = Record<string, unknown>> extends Params<T> {
49
- limit?: number;
50
- offset?: number;
51
- }
52
- /** Cursor (keyset) paginatsiya kirishi. */
53
- interface CursorParams<T = Record<string, unknown>> extends Params<T> {
54
- limit?: number;
55
- cursor?: string | null;
56
- cursorKey?: string;
57
- order?: SortDirection;
58
- direction?: "forward" | "backward";
59
- }
60
- /** Normalizatsiya qilingan payload (default field nomlari bilan). */
61
- interface QueryPayload {
62
- filter: FilterNode | FieldCondition[];
63
- sort: Sort;
64
- columns: Record<string, boolean>;
65
- with: Record<string, unknown>;
66
- }
67
- interface ListPayload extends QueryPayload {
68
- page: number;
69
- perPage: number;
70
- }
71
- interface InfinitePayload extends QueryPayload {
72
- limit: number;
73
- offset: number;
74
- }
75
- /** Cursor payload — `sort` o'rniga `order`/`direction` boshqaradi. */
76
- interface CursorPayload {
77
- filter: FilterNode | FieldCondition[];
78
- columns: Record<string, boolean>;
79
- with: Record<string, unknown>;
80
- limit: number;
81
- cursor: string | null;
82
- order: SortDirection;
83
- direction: "forward" | "backward";
84
- cursorKey?: string;
85
- }
86
- /**
87
- * Xom (server, snake_case) meta tiplari — `@querykitjs/core`dan (adapter shu
88
- * shaklda qaytaradi). Server ba'zi maydonlarni bermasligi mumkinligi uchun
89
- * mapper'lar `Partial` qabul qiladi.
90
- */
91
- type RawMeta = Partial<_querykitjs_core.OffsetMeta>;
92
- type RawInfiniteMeta = Partial<_querykitjs_core.InfiniteMeta>;
93
- type RawCursorMeta = Partial<_querykitjs_core.CursorMeta>;
94
- /** Offset (list) — normalizatsiya qilingan meta (camelCase). */
95
- interface Meta {
96
- totalPages: number;
97
- totalCount: number;
98
- currentPage: number;
99
- perPage: number;
100
- hasNext: boolean;
101
- hasPrev: boolean;
102
- }
103
- /** Infinite-scroll — normalizatsiya qilingan meta. */
104
- interface InfiniteMeta {
105
- limit: number;
106
- offset: number;
107
- count: number;
108
- hasMore: boolean;
109
- nextOffset: number | null;
110
- }
111
- /** Cursor — normalizatsiya qilingan meta. */
112
- interface CursorMeta {
113
- limit: number;
114
- hasNext: boolean;
115
- hasPrev: boolean;
116
- nextCursor: string | null;
117
- prevCursor: string | null;
118
- }
119
-
120
- /**
121
- * Bitta list maydonining deklarativ ta'rifi: URL param → filter shartiga qanday
122
- * aylantirilishi. `key` berilmasa param nomi ishlatiladi; `operation` default `=`.
123
- */
124
- interface FieldDescriptor {
125
- /** Backend ustun kaliti (default — schema'dagi param nomi). */
126
- key?: string;
127
- /** Filter operatori (default `"="`). */
128
- operation?: FilterOperator;
129
- /** String qiymatni trim qilish. */
130
- trim?: boolean;
131
- /** Diapazon: `[fromParam, toParam]` URL param nomlari → `>=` va `<=` shartlar. */
132
- range?: [string, string];
133
- }
134
- /** URL param → {@link FieldDescriptor} tavsiflar to'plami. */
135
- type ListSchema = Record<string, FieldDescriptor>;
136
- /**
137
- * List filter schema'sini e'lon qiladi (identity helper — tiplarni saqlaydi).
138
- * URL param'larni `{key, operation}` shartlariga bog'laydi, shu bilan har
139
- * sahifada qo'lda `IFilter[]` qurishni bartaraf qiladi.
140
- *
141
- * @example
142
- * ```ts
143
- * const buyersSchema = defineListSchema({
144
- * id: { operation: "=" },
145
- * buyerName: { operation: "%_%", trim: true },
146
- * status: { operation: "=" },
147
- * createdAt: { range: ["fromDate", "toDate"] },
148
- * });
149
- * ```
150
- */
151
- declare function defineListSchema<S extends ListSchema>(schema: S): S;
152
-
153
- /** URL param nomlari (sahifa/o'lcham/sort) — sozlanadigan. */
154
- interface UrlConfig {
155
- pageParam?: string;
156
- sizeParam?: string;
157
- sortParam?: string;
158
- }
159
- /** `"-createdAt"` → `{ name, direction }` (bo'sh bo'lsa `undefined`). */
160
- declare function decodeSort(value: string | null | undefined): Sort | undefined;
161
- /** `{ name, direction }` → `"-createdAt"` / `"createdAt"` (nomsiz bo'lsa `""`). */
162
- declare function encodeSort(sort: Sort): string;
163
- /** Schema + searchParams → `FieldCondition[]` (bo'sh param'lar tashlanadi). */
164
- declare function schemaToFilter(schema: ListSchema, searchParams: URLSearchParams): FieldCondition[];
165
- /** searchParams → normalizatsiyalanmagan {@link ListParams} (filter/sort/page/perPage). */
166
- declare function readListParams(schema: ListSchema, searchParams: URLSearchParams, url?: UrlConfig): ListParams;
167
- /** searchParams → to'liq, yuborishga tayyor {@link ListPayload}. */
168
- declare function searchParamsToPayload(schema: ListSchema, searchParams: URLSearchParams, url?: UrlConfig): ListPayload;
169
- /** Filter param'ini o'rnatadi/o'chiradi va `page`ni reset qiladi. */
170
- declare function setParam(searchParams: URLSearchParams, name: string, value: string | null | undefined, url?: UrlConfig): URLSearchParams;
171
- /** Sahifani o'rnatadi (`page` reset qilinmaydi). */
172
- declare function setPage(searchParams: URLSearchParams, page: number, url?: UrlConfig): URLSearchParams;
173
- /** Sahifa o'lchamini o'rnatadi va `page`ni reset qiladi. */
174
- declare function setSize(searchParams: URLSearchParams, size: number, url?: UrlConfig): URLSearchParams;
175
- /** Sortni o'rnatadi (`"-createdAt"` yoki `{name,direction}`) va `page`ni reset qiladi. */
176
- declare function setSort(searchParams: URLSearchParams, sort: SortInput, url?: UrlConfig): URLSearchParams;
177
- /** Barcha list param'larini tozalaydi (ixtiyoriy saqlanadigan kalitlar bilan). */
178
- declare function resetParams(searchParams: URLSearchParams, keep?: string[]): URLSearchParams;
179
-
180
- export { type AndGroup as A, setSize as B, type CursorParams as C, setSort as D, type FieldKey as F, type InfiniteParams as I, type ListParams as L, type Meta as M, type NotGroup as N, type OrGroup as O, type Params as P, type QueryPayload as Q, type RawCursorMeta as R, type Sort as S, type UrlConfig as U, type CursorPayload as a, type InfinitePayload as b, type ListPayload as c, type Filter as d, type FieldCondition as e, type FilterNode as f, type SortInput as g, type CursorMeta as h, type RawInfiniteMeta as i, type InfiniteMeta as j, type RawMeta as k, type FieldDescriptor as l, type FilterOperator as m, type FilterScalar as n, type FilterValue as o, type ListSchema as p, type SortDirection as q, decodeSort as r, defineListSchema as s, encodeSort as t, readListParams as u, resetParams as v, schemaToFilter as w, searchParamsToPayload as x, setPage as y, setParam as z };