adminforth 2.73.0 → 3.0.0-next.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/commands/createApp/templates/package.json.hbs +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -6
- package/dist/index.js.map +1 -1
- package/dist/modules/codeInjector.d.ts.map +1 -1
- package/dist/modules/codeInjector.js.map +1 -1
- package/dist/modules/restApi.d.ts +1 -0
- package/dist/modules/restApi.d.ts.map +1 -1
- package/dist/modules/restApi.js +26 -1
- package/dist/modules/restApi.js.map +1 -1
- package/dist/modules/utils.d.ts +1 -0
- package/dist/modules/utils.d.ts.map +1 -1
- package/dist/modules/utils.js +13 -0
- package/dist/modules/utils.js.map +1 -1
- package/dist/spa/src/afcl/Select.vue +3 -7
- package/dist/spa/src/components/ListActionsThreeDots.vue +1 -1
- package/dist/spa/src/components/ResourceListTable.vue +10 -14
- package/dist/spa/src/types/Common.ts +0 -5
- package/dist/types/Common.d.ts +0 -4
- package/dist/types/Common.d.ts.map +1 -1
- package/dist/types/Common.js.map +1 -1
- package/package.json +25 -7
- package/dist/dataConnectors/clickhouse.d.ts +0 -106
- package/dist/dataConnectors/clickhouse.d.ts.map +0 -1
- package/dist/dataConnectors/clickhouse.js +0 -611
- package/dist/dataConnectors/clickhouse.js.map +0 -1
- package/dist/dataConnectors/mongo.d.ts +0 -118
- package/dist/dataConnectors/mongo.d.ts.map +0 -1
- package/dist/dataConnectors/mongo.js +0 -458
- package/dist/dataConnectors/mongo.js.map +0 -1
- package/dist/dataConnectors/mysql.d.ts +0 -87
- package/dist/dataConnectors/mysql.d.ts.map +0 -1
- package/dist/dataConnectors/mysql.js +0 -569
- package/dist/dataConnectors/mysql.js.map +0 -1
- package/dist/dataConnectors/postgres.d.ts +0 -90
- package/dist/dataConnectors/postgres.d.ts.map +0 -1
- package/dist/dataConnectors/postgres.js +0 -538
- package/dist/dataConnectors/postgres.js.map +0 -1
- package/dist/dataConnectors/qdrant.d.ts +0 -57
- package/dist/dataConnectors/qdrant.d.ts.map +0 -1
- package/dist/dataConnectors/qdrant.js +0 -469
- package/dist/dataConnectors/qdrant.js.map +0 -1
- package/dist/dataConnectors/sqlite.d.ts +0 -92
- package/dist/dataConnectors/sqlite.d.ts.map +0 -1
- package/dist/dataConnectors/sqlite.js +0 -553
- package/dist/dataConnectors/sqlite.js.map +0 -1
|
@@ -1,469 +0,0 @@
|
|
|
1
|
-
import { QdrantClient } from '@qdrant/js-client-rest';
|
|
2
|
-
import dayjs from 'dayjs';
|
|
3
|
-
import { AdminForthDataTypes, AdminForthFilterOperators, AdminForthSortDirections, } from '../types/Common.js';
|
|
4
|
-
import AdminForthBaseConnector from './baseConnector.js';
|
|
5
|
-
class QdrantConnector extends AdminForthBaseConnector {
|
|
6
|
-
async setupClient(url) {
|
|
7
|
-
const parsed = new URL(url);
|
|
8
|
-
const apiKey = parsed.searchParams.get('apiKey');
|
|
9
|
-
this.client = new QdrantClient(Object.assign({ url: `http://${parsed.host}` }, (apiKey ? { apiKey } : {})));
|
|
10
|
-
}
|
|
11
|
-
getCollectionName(resource) {
|
|
12
|
-
return resource.table;
|
|
13
|
-
}
|
|
14
|
-
// Qdrant point ids can be strings or numbers
|
|
15
|
-
normalizePointId(value) {
|
|
16
|
-
if (typeof value === 'number') {
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
if (typeof value === 'string') {
|
|
20
|
-
const trimmed = value.trim();
|
|
21
|
-
if (!trimmed) {
|
|
22
|
-
throw new Error('Qdrant point id cannot be empty');
|
|
23
|
-
}
|
|
24
|
-
if (/^-?\d+$/.test(trimmed) && Number.isSafeInteger(Number(trimmed))) {
|
|
25
|
-
return Number(trimmed);
|
|
26
|
-
}
|
|
27
|
-
return trimmed;
|
|
28
|
-
}
|
|
29
|
-
throw new Error(`Unsupported Qdrant point id type: ${typeof value}`);
|
|
30
|
-
}
|
|
31
|
-
// Checks if the filter is a simple equality filter on the 'id'
|
|
32
|
-
getSingleIdFilterValue(filter) {
|
|
33
|
-
if (filter.operator !== AdminForthFilterOperators.AND || filter.subFilters.length !== 1) {
|
|
34
|
-
return undefined;
|
|
35
|
-
}
|
|
36
|
-
const single = filter.subFilters[0];
|
|
37
|
-
if (single.field !== 'id'
|
|
38
|
-
|| single.operator !== AdminForthFilterOperators.EQ
|
|
39
|
-
|| single.rightField !== undefined
|
|
40
|
-
|| single.value === undefined) {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
return this.normalizePointId(single.value);
|
|
44
|
-
}
|
|
45
|
-
// check if we can use this filter in quadrant
|
|
46
|
-
isLocalOnlyFilter(filter) {
|
|
47
|
-
const single = filter;
|
|
48
|
-
if (single.field || single.insecureRawNoSQL !== undefined || single.insecureRawSQL !== undefined) {
|
|
49
|
-
return this.toQdrantFilter(filter) === undefined;
|
|
50
|
-
}
|
|
51
|
-
const complex = filter;
|
|
52
|
-
return complex.subFilters.some((subFilter) => this.isLocalOnlyFilter(subFilter));
|
|
53
|
-
}
|
|
54
|
-
// get all collections
|
|
55
|
-
async getAllTables() {
|
|
56
|
-
var _a;
|
|
57
|
-
const collections = await this.client.getCollections();
|
|
58
|
-
return ((_a = collections.collections) !== null && _a !== void 0 ? _a : []).map((collection) => collection.name);
|
|
59
|
-
}
|
|
60
|
-
// discover fields
|
|
61
|
-
async discoverFields(resource) {
|
|
62
|
-
return resource.columns.filter((col) => !col.virtual).reduce((acc, col) => {
|
|
63
|
-
if (!col.type) {
|
|
64
|
-
throw new Error(`Type is not defined for column ${col.name} in resource ${resource.table}`);
|
|
65
|
-
}
|
|
66
|
-
acc[col.name] = {
|
|
67
|
-
name: col.name,
|
|
68
|
-
type: col.type,
|
|
69
|
-
primaryKey: col.primaryKey,
|
|
70
|
-
virtual: col.virtual,
|
|
71
|
-
_underlineType: col._underlineType,
|
|
72
|
-
};
|
|
73
|
-
return acc;
|
|
74
|
-
}, {});
|
|
75
|
-
}
|
|
76
|
-
// get field value
|
|
77
|
-
getFieldValue(field, value) {
|
|
78
|
-
if (value === undefined) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
if (field.type === AdminForthDataTypes.DATETIME) {
|
|
82
|
-
return value ? dayjs(value).toISOString() : null;
|
|
83
|
-
}
|
|
84
|
-
if (field.type === AdminForthDataTypes.DATE) {
|
|
85
|
-
return value ? dayjs(value).format('YYYY-MM-DD') : null;
|
|
86
|
-
}
|
|
87
|
-
if (field.type === AdminForthDataTypes.BOOLEAN) {
|
|
88
|
-
return value === null ? null : !!value;
|
|
89
|
-
}
|
|
90
|
-
return value;
|
|
91
|
-
}
|
|
92
|
-
//just passthrough
|
|
93
|
-
setFieldValue(_field, value) {
|
|
94
|
-
return value;
|
|
95
|
-
}
|
|
96
|
-
// detect column type for the discover fields
|
|
97
|
-
detectColumnType(value) {
|
|
98
|
-
if (value === null || value === undefined) {
|
|
99
|
-
return AdminForthDataTypes.STRING;
|
|
100
|
-
}
|
|
101
|
-
if (typeof value === 'boolean') {
|
|
102
|
-
return AdminForthDataTypes.BOOLEAN;
|
|
103
|
-
}
|
|
104
|
-
if (typeof value === 'number') {
|
|
105
|
-
return Number.isInteger(value) ? AdminForthDataTypes.INTEGER : AdminForthDataTypes.FLOAT;
|
|
106
|
-
}
|
|
107
|
-
if (typeof value === 'string') {
|
|
108
|
-
if (dayjs(value).isValid() && value.includes('T')) {
|
|
109
|
-
return AdminForthDataTypes.DATETIME;
|
|
110
|
-
}
|
|
111
|
-
return AdminForthDataTypes.STRING;
|
|
112
|
-
}
|
|
113
|
-
return AdminForthDataTypes.JSON;
|
|
114
|
-
}
|
|
115
|
-
// get field value from point based on field name
|
|
116
|
-
getPointFieldValue(point, fieldName) {
|
|
117
|
-
var _a, _b, _c, _d, _e;
|
|
118
|
-
if (fieldName === 'id') {
|
|
119
|
-
return (_a = point.id) !== null && _a !== void 0 ? _a : null;
|
|
120
|
-
}
|
|
121
|
-
if (fieldName === 'payload') {
|
|
122
|
-
return (_b = point.payload) !== null && _b !== void 0 ? _b : null;
|
|
123
|
-
}
|
|
124
|
-
if (fieldName === 'vector') {
|
|
125
|
-
return (_c = point.vector) !== null && _c !== void 0 ? _c : null;
|
|
126
|
-
}
|
|
127
|
-
return (_e = (_d = point.payload) === null || _d === void 0 ? void 0 : _d[fieldName]) !== null && _e !== void 0 ? _e : null;
|
|
128
|
-
}
|
|
129
|
-
// for comparison purposes
|
|
130
|
-
normalizeComparable(value) {
|
|
131
|
-
if (Array.isArray(value)) {
|
|
132
|
-
return value.map((item) => this.normalizeComparable(item));
|
|
133
|
-
}
|
|
134
|
-
if (value && typeof value === 'object') {
|
|
135
|
-
return JSON.stringify(value);
|
|
136
|
-
}
|
|
137
|
-
return value;
|
|
138
|
-
}
|
|
139
|
-
// compare actual and expected values based on the operator
|
|
140
|
-
compareValues(operator, actual, expected) {
|
|
141
|
-
switch (operator) {
|
|
142
|
-
case AdminForthFilterOperators.EQ:
|
|
143
|
-
return this.normalizeComparable(actual) === this.normalizeComparable(expected);
|
|
144
|
-
case AdminForthFilterOperators.NE:
|
|
145
|
-
return this.normalizeComparable(actual) !== this.normalizeComparable(expected);
|
|
146
|
-
case AdminForthFilterOperators.GT:
|
|
147
|
-
return actual > expected;
|
|
148
|
-
case AdminForthFilterOperators.GTE:
|
|
149
|
-
return actual >= expected;
|
|
150
|
-
case AdminForthFilterOperators.LT:
|
|
151
|
-
return actual < expected;
|
|
152
|
-
case AdminForthFilterOperators.LTE:
|
|
153
|
-
return actual <= expected;
|
|
154
|
-
case AdminForthFilterOperators.LIKE:
|
|
155
|
-
return String(actual !== null && actual !== void 0 ? actual : '').includes(String(expected !== null && expected !== void 0 ? expected : ''));
|
|
156
|
-
case AdminForthFilterOperators.ILIKE:
|
|
157
|
-
return String(actual !== null && actual !== void 0 ? actual : '').toLowerCase().includes(String(expected !== null && expected !== void 0 ? expected : '').toLowerCase());
|
|
158
|
-
case AdminForthFilterOperators.IN:
|
|
159
|
-
return Array.isArray(expected) && expected.some((item) => this.normalizeComparable(item) === this.normalizeComparable(actual));
|
|
160
|
-
case AdminForthFilterOperators.NIN:
|
|
161
|
-
return Array.isArray(expected) && !expected.some((item) => this.normalizeComparable(item) === this.normalizeComparable(actual));
|
|
162
|
-
case AdminForthFilterOperators.IS_EMPTY:
|
|
163
|
-
return actual === null || actual === undefined || actual === '' || (Array.isArray(actual) && actual.length === 0);
|
|
164
|
-
case AdminForthFilterOperators.IS_NOT_EMPTY:
|
|
165
|
-
return !(actual === null || actual === undefined || actual === '' || (Array.isArray(actual) && actual.length === 0));
|
|
166
|
-
default:
|
|
167
|
-
return true;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
// check if we can use this filter in quadrant
|
|
171
|
-
matchesFilter(point, filter) {
|
|
172
|
-
const single = filter;
|
|
173
|
-
if (single.field) {
|
|
174
|
-
const actual = this.getPointFieldValue(point, single.field);
|
|
175
|
-
const expected = single.rightField ? this.getPointFieldValue(point, single.rightField) : single.value;
|
|
176
|
-
return this.compareValues(single.operator, actual, expected);
|
|
177
|
-
}
|
|
178
|
-
if (single.insecureRawNoSQL !== undefined || single.insecureRawSQL !== undefined) {
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
const complex = filter;
|
|
182
|
-
if (complex.operator === AdminForthFilterOperators.AND) {
|
|
183
|
-
return complex.subFilters.every((subFilter) => this.matchesFilter(point, subFilter));
|
|
184
|
-
}
|
|
185
|
-
return complex.subFilters.some((subFilter) => this.matchesFilter(point, subFilter));
|
|
186
|
-
}
|
|
187
|
-
// transform input value to valid qdrant match value
|
|
188
|
-
toQdrantMatchValue(value) {
|
|
189
|
-
if (Array.isArray(value)) {
|
|
190
|
-
const arr = value.filter((v) => ['string', 'number', 'boolean'].includes(typeof v));
|
|
191
|
-
return arr.length ? arr : undefined;
|
|
192
|
-
}
|
|
193
|
-
if (['string', 'number', 'boolean'].includes(typeof value)) {
|
|
194
|
-
return value;
|
|
195
|
-
}
|
|
196
|
-
return undefined;
|
|
197
|
-
}
|
|
198
|
-
// convert our filter format to qdrant filter format
|
|
199
|
-
toQdrantFilter(filter) {
|
|
200
|
-
const single = filter;
|
|
201
|
-
if (single.insecureRawNoSQL !== undefined) {
|
|
202
|
-
return single.insecureRawNoSQL;
|
|
203
|
-
}
|
|
204
|
-
if (single.insecureRawSQL !== undefined) {
|
|
205
|
-
return undefined;
|
|
206
|
-
}
|
|
207
|
-
if (single.field) {
|
|
208
|
-
if (single.rightField || single.field === 'id' || single.field === 'vector' || single.field === 'payload') {
|
|
209
|
-
return undefined;
|
|
210
|
-
}
|
|
211
|
-
const matchValue = this.toQdrantMatchValue(single.value);
|
|
212
|
-
switch (single.operator) {
|
|
213
|
-
case AdminForthFilterOperators.EQ:
|
|
214
|
-
if (matchValue !== undefined && !Array.isArray(matchValue)) {
|
|
215
|
-
return { must: [{ key: single.field, match: { value: matchValue } }] };
|
|
216
|
-
}
|
|
217
|
-
return undefined;
|
|
218
|
-
case AdminForthFilterOperators.NE:
|
|
219
|
-
if (matchValue !== undefined && !Array.isArray(matchValue)) {
|
|
220
|
-
return { must_not: [{ key: single.field, match: { value: matchValue } }] };
|
|
221
|
-
}
|
|
222
|
-
return undefined;
|
|
223
|
-
case AdminForthFilterOperators.IN:
|
|
224
|
-
if (Array.isArray(matchValue)) {
|
|
225
|
-
return { must: [{ key: single.field, match: { any: matchValue } }] };
|
|
226
|
-
}
|
|
227
|
-
return undefined;
|
|
228
|
-
case AdminForthFilterOperators.NIN:
|
|
229
|
-
if (Array.isArray(matchValue)) {
|
|
230
|
-
return { must_not: [{ key: single.field, match: { any: matchValue } }] };
|
|
231
|
-
}
|
|
232
|
-
return undefined;
|
|
233
|
-
case AdminForthFilterOperators.GT:
|
|
234
|
-
return { must: [{ key: single.field, range: { gt: single.value } }] };
|
|
235
|
-
case AdminForthFilterOperators.GTE:
|
|
236
|
-
return { must: [{ key: single.field, range: { gte: single.value } }] };
|
|
237
|
-
case AdminForthFilterOperators.LT:
|
|
238
|
-
return { must: [{ key: single.field, range: { lt: single.value } }] };
|
|
239
|
-
case AdminForthFilterOperators.LTE:
|
|
240
|
-
return { must: [{ key: single.field, range: { lte: single.value } }] };
|
|
241
|
-
default:
|
|
242
|
-
return undefined;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
const complex = filter;
|
|
246
|
-
const subFilters = complex.subFilters.map((subFilter) => this.toQdrantFilter(subFilter)).filter(Boolean);
|
|
247
|
-
if (!subFilters.length) {
|
|
248
|
-
return undefined;
|
|
249
|
-
}
|
|
250
|
-
if (complex.operator === AdminForthFilterOperators.AND) {
|
|
251
|
-
return { must: subFilters };
|
|
252
|
-
}
|
|
253
|
-
return { should: subFilters, min_should: 1 };
|
|
254
|
-
}
|
|
255
|
-
// transform qdrant point to our record format
|
|
256
|
-
mapPointToRecord(resource, point) {
|
|
257
|
-
const result = {};
|
|
258
|
-
for (const column of resource.dataSourceColumns) {
|
|
259
|
-
result[column.name] = this.getPointFieldValue(point, column.name);
|
|
260
|
-
}
|
|
261
|
-
return result;
|
|
262
|
-
}
|
|
263
|
-
// locally sort records
|
|
264
|
-
sortRecords(records, sort) {
|
|
265
|
-
if (!sort.length) {
|
|
266
|
-
return records;
|
|
267
|
-
}
|
|
268
|
-
return [...records].sort((a, b) => {
|
|
269
|
-
for (const sortItem of sort) {
|
|
270
|
-
const left = a[sortItem.field];
|
|
271
|
-
const right = b[sortItem.field];
|
|
272
|
-
if (left === right) {
|
|
273
|
-
continue;
|
|
274
|
-
}
|
|
275
|
-
if (left === null || left === undefined) {
|
|
276
|
-
return sortItem.direction === AdminForthSortDirections.asc ? -1 : 1;
|
|
277
|
-
}
|
|
278
|
-
if (right === null || right === undefined) {
|
|
279
|
-
return sortItem.direction === AdminForthSortDirections.asc ? 1 : -1;
|
|
280
|
-
}
|
|
281
|
-
if (left < right) {
|
|
282
|
-
return sortItem.direction === AdminForthSortDirections.asc ? -1 : 1;
|
|
283
|
-
}
|
|
284
|
-
if (left > right) {
|
|
285
|
-
return sortItem.direction === AdminForthSortDirections.asc ? 1 : -1;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
return 0;
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
// check if we can sort in qdrant
|
|
292
|
-
canUseServerSideSort(resource, sort) {
|
|
293
|
-
if (sort.length !== 1) {
|
|
294
|
-
return false;
|
|
295
|
-
}
|
|
296
|
-
const fieldName = sort[0].field;
|
|
297
|
-
if (['id', 'payload', 'vector'].includes(fieldName)) {
|
|
298
|
-
return false;
|
|
299
|
-
}
|
|
300
|
-
const column = resource.dataSourceColumns.find((item) => item.name === fieldName);
|
|
301
|
-
if (!column) {
|
|
302
|
-
return false;
|
|
303
|
-
}
|
|
304
|
-
return [
|
|
305
|
-
AdminForthDataTypes.STRING,
|
|
306
|
-
AdminForthDataTypes.INTEGER,
|
|
307
|
-
AdminForthDataTypes.FLOAT,
|
|
308
|
-
AdminForthDataTypes.BOOLEAN,
|
|
309
|
-
AdminForthDataTypes.DATE,
|
|
310
|
-
AdminForthDataTypes.DATETIME,
|
|
311
|
-
].includes(column.type);
|
|
312
|
-
}
|
|
313
|
-
isBadRequestError(error) {
|
|
314
|
-
if (!(error instanceof Error)) {
|
|
315
|
-
return false;
|
|
316
|
-
}
|
|
317
|
-
return /bad request/i.test(error.message);
|
|
318
|
-
}
|
|
319
|
-
// get scroll arguments for qdrant
|
|
320
|
-
getScrollArgs(filters, limit, offset) {
|
|
321
|
-
const qdrantFilter = this.toQdrantFilter(filters);
|
|
322
|
-
return Object.assign(Object.assign(Object.assign({ limit }, (offset !== undefined ? { offset } : {})), (qdrantFilter ? { filter: qdrantFilter } : {})), { with_payload: true, with_vector: true });
|
|
323
|
-
}
|
|
324
|
-
// scroll request to qdrant
|
|
325
|
-
async scrollPage(resource, filters, limit, sort, offset) {
|
|
326
|
-
const collectionName = this.getCollectionName(resource);
|
|
327
|
-
const canUseServerSort = this.canUseServerSideSort(resource, sort);
|
|
328
|
-
const baseArgs = this.getScrollArgs(filters, limit, offset);
|
|
329
|
-
if (!canUseServerSort) {
|
|
330
|
-
return {
|
|
331
|
-
response: await this.client.scroll(collectionName, baseArgs),
|
|
332
|
-
usedServerSort: false,
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
try {
|
|
336
|
-
return {
|
|
337
|
-
response: await this.client.scroll(collectionName, Object.assign(Object.assign({}, baseArgs), { order_by: {
|
|
338
|
-
key: sort[0].field,
|
|
339
|
-
direction: sort[0].direction === AdminForthSortDirections.asc ? 'asc' : 'desc',
|
|
340
|
-
} })),
|
|
341
|
-
usedServerSort: true,
|
|
342
|
-
};
|
|
343
|
-
}
|
|
344
|
-
catch (error) {
|
|
345
|
-
if (!this.isBadRequestError(error)) {
|
|
346
|
-
throw error;
|
|
347
|
-
}
|
|
348
|
-
return {
|
|
349
|
-
response: await this.client.scroll(collectionName, baseArgs),
|
|
350
|
-
usedServerSort: false,
|
|
351
|
-
};
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
// filter points based on our filter format
|
|
355
|
-
filterPoints(points, filters) {
|
|
356
|
-
const qdrantFilter = this.toQdrantFilter(filters);
|
|
357
|
-
return qdrantFilter ? points : points.filter((point) => this.matchesFilter(point, filters));
|
|
358
|
-
}
|
|
359
|
-
//scroll pages and filter them until we have enough matches or no more data
|
|
360
|
-
async collectMatchingPoints(resource, filters, sort, requiredMatches) {
|
|
361
|
-
var _a, _b, _c;
|
|
362
|
-
let offset;
|
|
363
|
-
let usedServerSort = false;
|
|
364
|
-
const points = [];
|
|
365
|
-
const pageSize = Math.max(requiredMatches, QdrantConnector.MIN_SCROLL_PAGE_SIZE);
|
|
366
|
-
while (points.length < requiredMatches) {
|
|
367
|
-
const page = await this.scrollPage(resource, filters, pageSize, sort, offset);
|
|
368
|
-
usedServerSort = page.usedServerSort;
|
|
369
|
-
const pagePoints = ((_b = (_a = page.response) === null || _a === void 0 ? void 0 : _a.points) !== null && _b !== void 0 ? _b : []);
|
|
370
|
-
points.push(...this.filterPoints(pagePoints, filters));
|
|
371
|
-
const nextOffset = (_c = page.response) === null || _c === void 0 ? void 0 : _c.next_page_offset;
|
|
372
|
-
if (!nextOffset || pagePoints.length === 0) {
|
|
373
|
-
break;
|
|
374
|
-
}
|
|
375
|
-
offset = nextOffset;
|
|
376
|
-
}
|
|
377
|
-
return { points, usedServerSort };
|
|
378
|
-
}
|
|
379
|
-
// get records by direct ID
|
|
380
|
-
async getDirectIdRecords(resource, pointId, sort) {
|
|
381
|
-
const points = await this.client.retrieve(this.getCollectionName(resource), {
|
|
382
|
-
ids: [pointId],
|
|
383
|
-
with_payload: true,
|
|
384
|
-
with_vector: true,
|
|
385
|
-
});
|
|
386
|
-
const records = (points !== null && points !== void 0 ? points : []).map((point) => this.mapPointToRecord(resource, point));
|
|
387
|
-
return sort.length ? this.sortRecords(records, sort) : records;
|
|
388
|
-
}
|
|
389
|
-
async getDataWithOriginalTypes({ resource, limit, offset, sort, filters }) {
|
|
390
|
-
var _a, _b;
|
|
391
|
-
const directId = this.getSingleIdFilterValue(filters);
|
|
392
|
-
if (directId !== undefined) {
|
|
393
|
-
const records = await this.getDirectIdRecords(resource, directId, sort);
|
|
394
|
-
return records.slice(offset, offset + limit);
|
|
395
|
-
}
|
|
396
|
-
const requestedLimit = Math.max(limit + offset, 1);
|
|
397
|
-
const localFilteringRequired = this.isLocalOnlyFilter(filters);
|
|
398
|
-
const result = localFilteringRequired
|
|
399
|
-
? await this.collectMatchingPoints(resource, filters, sort, requestedLimit)
|
|
400
|
-
: await this.scrollPage(resource, filters, requestedLimit, sort);
|
|
401
|
-
const points = 'points' in result ? result.points : this.filterPoints(((_b = (_a = result.response) === null || _a === void 0 ? void 0 : _a.points) !== null && _b !== void 0 ? _b : []), filters);
|
|
402
|
-
let records = points.map((point) => this.mapPointToRecord(resource, point));
|
|
403
|
-
if (!result.usedServerSort) {
|
|
404
|
-
records = this.sortRecords(records, sort);
|
|
405
|
-
}
|
|
406
|
-
return records.slice(offset, offset + limit);
|
|
407
|
-
}
|
|
408
|
-
async getCount({ resource, filters }) {
|
|
409
|
-
var _a;
|
|
410
|
-
const collectionName = this.getCollectionName(resource);
|
|
411
|
-
const directId = this.getSingleIdFilterValue(filters);
|
|
412
|
-
if (directId !== undefined) {
|
|
413
|
-
const points = await this.client.retrieve(collectionName, {
|
|
414
|
-
ids: [directId],
|
|
415
|
-
with_payload: false,
|
|
416
|
-
with_vector: false,
|
|
417
|
-
});
|
|
418
|
-
return (points !== null && points !== void 0 ? points : []).length;
|
|
419
|
-
}
|
|
420
|
-
const qdrantFilter = this.toQdrantFilter(filters);
|
|
421
|
-
if (qdrantFilter || filters.subFilters.length === 0) {
|
|
422
|
-
const result = await this.client.count(collectionName, Object.assign(Object.assign({}, (qdrantFilter ? { filter: qdrantFilter } : {})), { exact: true }));
|
|
423
|
-
return (_a = result.count) !== null && _a !== void 0 ? _a : 0;
|
|
424
|
-
}
|
|
425
|
-
const allMatches = await this.collectMatchingPoints(resource, filters, [], Number.MAX_SAFE_INTEGER);
|
|
426
|
-
return allMatches.points.length;
|
|
427
|
-
}
|
|
428
|
-
async getMinMaxForColumnsWithOriginalTypes({ resource, columns }) {
|
|
429
|
-
var _a;
|
|
430
|
-
const response = await this.client.scroll(this.getCollectionName(resource), {
|
|
431
|
-
limit: 10000,
|
|
432
|
-
with_payload: true,
|
|
433
|
-
with_vector: true,
|
|
434
|
-
});
|
|
435
|
-
const records = ((_a = response.points) !== null && _a !== void 0 ? _a : []).map((point) => this.mapPointToRecord(resource, point));
|
|
436
|
-
const result = {};
|
|
437
|
-
for (const column of columns) {
|
|
438
|
-
const values = records.map((record) => record[column.name]).filter((value) => value !== null && value !== undefined);
|
|
439
|
-
if (!values.length) {
|
|
440
|
-
result[column.name] = { min: null, max: null };
|
|
441
|
-
continue;
|
|
442
|
-
}
|
|
443
|
-
const sorted = [...values].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
|
|
444
|
-
result[column.name] = {
|
|
445
|
-
min: sorted[0],
|
|
446
|
-
max: sorted[sorted.length - 1],
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
return result;
|
|
450
|
-
}
|
|
451
|
-
async createRecordOriginalValues() {
|
|
452
|
-
throw new Error('Qdrant connector is read-only for AdminForth operations');
|
|
453
|
-
}
|
|
454
|
-
async updateRecordOriginalValues() {
|
|
455
|
-
throw new Error('Qdrant connector is read-only for AdminForth operations');
|
|
456
|
-
}
|
|
457
|
-
async deleteRecord() {
|
|
458
|
-
throw new Error('Qdrant connector is read-only for AdminForth operations');
|
|
459
|
-
}
|
|
460
|
-
async deleteMany() {
|
|
461
|
-
throw new Error('Qdrant connector is read-only for AdminForth operations');
|
|
462
|
-
}
|
|
463
|
-
async close() {
|
|
464
|
-
return;
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
QdrantConnector.MIN_SCROLL_PAGE_SIZE = 50;
|
|
468
|
-
export default QdrantConnector;
|
|
469
|
-
//# sourceMappingURL=qdrant.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"qdrant.js","sourceRoot":"","sources":["../../dataConnectors/qdrant.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { IAdminForthDataSourceConnector, IAdminForthSingleFilter, IAdminForthAndOrFilter, AdminForthResource, AdminForthResourceColumn, AdminForthConfig, IAggregationRule, IGroupByRule } from '../types/Back.js';
|
|
2
|
-
import AdminForthBaseConnector from './baseConnector.js';
|
|
3
|
-
declare class SQLiteConnector extends AdminForthBaseConnector implements IAdminForthDataSourceConnector {
|
|
4
|
-
setupClient(url: string): Promise<void>;
|
|
5
|
-
getAllTables(): Promise<Array<string>>;
|
|
6
|
-
getAllColumnsInTable(tableName: string): Promise<Array<{
|
|
7
|
-
name: string;
|
|
8
|
-
sampleValue?: any;
|
|
9
|
-
}>>;
|
|
10
|
-
hasSQLiteCascadeFk(resource: AdminForthResource, config: AdminForthConfig): Promise<boolean>;
|
|
11
|
-
discoverFields(resource: AdminForthResource, config: AdminForthConfig): Promise<{
|
|
12
|
-
[key: string]: AdminForthResourceColumn;
|
|
13
|
-
}>;
|
|
14
|
-
getFieldValue(field: AdminForthResourceColumn, value: any): any;
|
|
15
|
-
setFieldValue(field: AdminForthResourceColumn, value: any): any;
|
|
16
|
-
OperatorsMap: {
|
|
17
|
-
eq: string;
|
|
18
|
-
ne: string;
|
|
19
|
-
gt: string;
|
|
20
|
-
lt: string;
|
|
21
|
-
gte: string;
|
|
22
|
-
lte: string;
|
|
23
|
-
like: string;
|
|
24
|
-
ilike: string;
|
|
25
|
-
in: string;
|
|
26
|
-
nin: string;
|
|
27
|
-
and: string;
|
|
28
|
-
or: string;
|
|
29
|
-
isEmpty: string;
|
|
30
|
-
isNotEmpty: string;
|
|
31
|
-
};
|
|
32
|
-
SortDirectionsMap: {
|
|
33
|
-
asc: string;
|
|
34
|
-
desc: string;
|
|
35
|
-
};
|
|
36
|
-
getFilterString(filter: IAdminForthSingleFilter | IAdminForthAndOrFilter): string;
|
|
37
|
-
getFilterParams(filter: IAdminForthSingleFilter | IAdminForthAndOrFilter): any[];
|
|
38
|
-
whereClause(filter: IAdminForthAndOrFilter): string;
|
|
39
|
-
private _dateGroupKey;
|
|
40
|
-
getAggregateWithOriginalTypes({ resource, filters, aggregations, groupBy }: {
|
|
41
|
-
resource: AdminForthResource;
|
|
42
|
-
filters: IAdminForthAndOrFilter;
|
|
43
|
-
aggregations: {
|
|
44
|
-
[alias: string]: IAggregationRule;
|
|
45
|
-
};
|
|
46
|
-
groupBy?: IGroupByRule | IGroupByRule[];
|
|
47
|
-
}): Promise<Array<{
|
|
48
|
-
group?: string;
|
|
49
|
-
[key: string]: any;
|
|
50
|
-
}>>;
|
|
51
|
-
getDataWithOriginalTypes({ resource, limit, offset, sort, filters, columns }: {
|
|
52
|
-
resource: any;
|
|
53
|
-
limit: any;
|
|
54
|
-
offset: any;
|
|
55
|
-
sort: any;
|
|
56
|
-
filters: any;
|
|
57
|
-
columns: any;
|
|
58
|
-
}): Promise<any[]>;
|
|
59
|
-
getCount({ resource, filters }: {
|
|
60
|
-
resource: any;
|
|
61
|
-
filters: any;
|
|
62
|
-
}): Promise<number>;
|
|
63
|
-
getMinMaxForColumnsWithOriginalTypes({ resource, columns }: {
|
|
64
|
-
resource: AdminForthResource;
|
|
65
|
-
columns: AdminForthResourceColumn[];
|
|
66
|
-
}): Promise<{
|
|
67
|
-
[key: string]: {
|
|
68
|
-
min: any;
|
|
69
|
-
max: any;
|
|
70
|
-
};
|
|
71
|
-
}>;
|
|
72
|
-
createRecordOriginalValues({ resource, record }: {
|
|
73
|
-
resource: AdminForthResource;
|
|
74
|
-
record: any;
|
|
75
|
-
}): Promise<string>;
|
|
76
|
-
updateRecordOriginalValues({ resource, recordId, newValues }: {
|
|
77
|
-
resource: AdminForthResource;
|
|
78
|
-
recordId: any;
|
|
79
|
-
newValues: any;
|
|
80
|
-
}): Promise<void>;
|
|
81
|
-
deleteRecord({ resource, recordId }: {
|
|
82
|
-
resource: AdminForthResource;
|
|
83
|
-
recordId: any;
|
|
84
|
-
}): Promise<boolean>;
|
|
85
|
-
deleteMany({ resource, recordIds }: {
|
|
86
|
-
resource: AdminForthResource;
|
|
87
|
-
recordIds: string[];
|
|
88
|
-
}): Promise<number>;
|
|
89
|
-
close(): void;
|
|
90
|
-
}
|
|
91
|
-
export default SQLiteConnector;
|
|
92
|
-
//# sourceMappingURL=sqlite.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../dataConnectors/sqlite.ts"],"names":[],"mappings":"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"}
|