@stackbit/cms-core 0.5.1-staging.1 → 0.5.2-develop.2
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/dist/types/search-filter.d.ts +10 -2
- package/dist/types/search-filter.d.ts.map +1 -1
- package/dist/utils/search-utils.d.ts.map +1 -1
- package/dist/utils/search-utils.js +106 -7
- package/dist/utils/search-utils.js.map +1 -1
- package/package.json +5 -5
- package/src/types/search-filter.ts +13 -2
- package/src/utils/search-utils.ts +136 -10
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
declare type Distribute<U> = U extends any ? U[] : never;
|
|
2
|
-
declare type
|
|
2
|
+
export declare type ReferenceValueType = {
|
|
3
|
+
srcType: string;
|
|
4
|
+
srcProjectId: string;
|
|
5
|
+
srcDocumentId: string;
|
|
6
|
+
};
|
|
7
|
+
declare type ValueType = string | number | Date | boolean | ReferenceValueType;
|
|
3
8
|
declare type BaseFilterItem = {
|
|
4
9
|
field: string;
|
|
5
10
|
isMeta?: boolean;
|
|
@@ -11,6 +16,9 @@ declare type EqualFilterItem = BaseFilterItem & {
|
|
|
11
16
|
declare type UndefinedFilterItem = BaseFilterItem & {
|
|
12
17
|
operator: 'is-undefined' | 'is-not-undefined';
|
|
13
18
|
};
|
|
19
|
+
declare type EmptyFilterItem = BaseFilterItem & {
|
|
20
|
+
operator: 'is-empty' | 'is-not-empty';
|
|
21
|
+
};
|
|
14
22
|
declare type CompareFilterItem = BaseFilterItem & {
|
|
15
23
|
operator: 'gte' | 'lte';
|
|
16
24
|
value: ValueType;
|
|
@@ -32,7 +40,7 @@ declare type BetweenFilterItem = BaseFilterItem & {
|
|
|
32
40
|
startValue: ValueType;
|
|
33
41
|
endValue: ValueType;
|
|
34
42
|
};
|
|
35
|
-
export declare type SearchFilterItem = EqualFilterItem | UndefinedFilterItem | CompareFilterItem | IncludeStringFilterItem | IncludeListFilterItem | IncludeAllFilterItem | BetweenFilterItem;
|
|
43
|
+
export declare type SearchFilterItem = EqualFilterItem | UndefinedFilterItem | CompareFilterItem | IncludeStringFilterItem | IncludeListFilterItem | IncludeAllFilterItem | BetweenFilterItem | EmptyFilterItem;
|
|
36
44
|
export declare type SearchFilter = LogicalOperator;
|
|
37
45
|
declare type LogicalOperator = LogicalAndOperator;
|
|
38
46
|
declare type LogicalAndOperator = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-filter.d.ts","sourceRoot":"","sources":["../../src/types/search-filter.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;AAEjD,aAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"search-filter.d.ts","sourceRoot":"","sources":["../../src/types/search-filter.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;AAEjD,oBAAY,kBAAkB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,aAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,kBAAkB,CAAC;AAEvE,aAAK,cAAc,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,aAAK,eAAe,GAAG,cAAc,GAAG;IACpC,QAAQ,EAAE,IAAI,GAAG,KAAK,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,aAAK,mBAAmB,GAAG,cAAc,GAAG;IACxC,QAAQ,EAAE,cAAc,GAAG,kBAAkB,CAAC;CACjD,CAAC;AAEF,aAAK,eAAe,GAAG,cAAc,GAAG;IACpC,QAAQ,EAAE,UAAU,GAAG,cAAc,CAAC;CACzC,CAAC;AAEF,aAAK,iBAAiB,GAAG,cAAc,GAAG;IACtC,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,aAAK,uBAAuB,GAAG,cAAc,GAAG;IAC5C,QAAQ,EAAE,UAAU,GAAG,cAAc,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,aAAK,qBAAqB,GAAG,cAAc,GAAG;IAC1C,QAAQ,EAAE,IAAI,GAAG,KAAK,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;CACjC,CAAC;AAEF,aAAK,oBAAoB,GAAG,cAAc,GAAG;IACzC,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;CACjC,CAAC;AAEF,aAAK,iBAAiB,GAAG,cAAc,GAAG;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,oBAAY,gBAAgB,GACtB,eAAe,GACf,mBAAmB,GACnB,iBAAiB,GACjB,uBAAuB,GACvB,qBAAqB,GACrB,oBAAoB,GACpB,iBAAiB,GACjB,eAAe,CAAC;AAEtB,oBAAY,YAAY,GAAG,eAAe,CAAC;AAE3C,aAAK,eAAe,GAAG,kBAAkB,CAAC;AAE1C,aAAK,kBAAkB,GAAG;IACtB,GAAG,EAAE,gBAAgB,EAAE,CAAC;CAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-utils.d.ts","sourceRoot":"","sources":["../../src/utils/search-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"search-utils.d.ts","sourceRoot":"","sources":["../../src/utils/search-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAsB,YAAY,EAAoB,MAAM,wBAAwB,CAAC;AAY5F,aAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAEjF,eAAO,MAAM,eAAe,SAAU;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,SAAS,EAAE,kBAAkB,QAAQ,EAAE,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1C,KAAG;IACA,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,kBAAkB,QAAQ,EAAE,CAAC;CA+CvC,CAAC"}
|
|
@@ -57,6 +57,9 @@ const searchDocuments = (data) => {
|
|
|
57
57
|
};
|
|
58
58
|
exports.searchDocuments = searchDocuments;
|
|
59
59
|
const isDocumentMatchesPattern = (document, query, locale) => {
|
|
60
|
+
if (document.srcModelLabel.toLowerCase().includes(query)) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
60
63
|
return lodash_1.default.some(document.fields, (field) => {
|
|
61
64
|
var _a;
|
|
62
65
|
let value;
|
|
@@ -120,8 +123,11 @@ const isFieldMatchesFilter = ({ document, field, filter, locale, schema }) => {
|
|
|
120
123
|
if (!model || model.type === 'image') {
|
|
121
124
|
throw new Error(`Can't find model for the ${filter.field}`);
|
|
122
125
|
}
|
|
123
|
-
return isListFieldMatches({ field, filter, model, locale });
|
|
126
|
+
return isListFieldMatches({ field, filter, model, locale, document });
|
|
124
127
|
}
|
|
128
|
+
case 'cross-reference':
|
|
129
|
+
case 'reference':
|
|
130
|
+
return isReferenceFieldMatches({ field, filter, locale, document });
|
|
125
131
|
default:
|
|
126
132
|
throw new Error(`Unsupported filter for field ${filter.field} with type ${field === null || field === void 0 ? void 0 : field.type}`);
|
|
127
133
|
}
|
|
@@ -297,27 +303,120 @@ const isEnumFieldMatches = ({ field, filter, locale }) => {
|
|
|
297
303
|
}
|
|
298
304
|
throw new Error(`Not supported operator ${filter.operator} for field ${filter.field}`);
|
|
299
305
|
};
|
|
300
|
-
const isListFieldMatches = ({ field, filter, locale, model }) => {
|
|
306
|
+
const isListFieldMatches = ({ field, filter, locale, model, document }) => {
|
|
301
307
|
var _a, _b, _c, _d, _e;
|
|
302
308
|
const fieldModel = (_a = model === null || model === void 0 ? void 0 : model.fields) === null || _a === void 0 ? void 0 : _a.find((field) => field.name === filter.field);
|
|
303
309
|
const listItemsType = (fieldModel === null || fieldModel === void 0 ? void 0 : fieldModel.type) === 'list' && ((_b = fieldModel.items) === null || _b === void 0 ? void 0 : _b.type);
|
|
304
|
-
const isPrimitiveList = listItemsType && ['string', 'slug', 'url', 'text', 'markdown', 'boolean', 'date', 'datetime', 'number', 'enum'].includes(listItemsType);
|
|
310
|
+
const isPrimitiveList = listItemsType && ['string', 'slug', 'url', 'text', 'markdown', 'boolean', 'date', 'datetime', 'number', 'enum', 'reference', 'cross-reference'].includes(listItemsType);
|
|
305
311
|
if (!isPrimitiveList) {
|
|
306
312
|
throw new Error(`Unsupported filter for list field ${filter.field} with children ${listItemsType}`);
|
|
307
313
|
}
|
|
308
|
-
const
|
|
314
|
+
const localizedField = (0, content_store_utils_1.getDocumentFieldForLocale)(field, locale);
|
|
309
315
|
switch (filter.operator) {
|
|
316
|
+
case 'is-empty': return ((_c = localizedField === null || localizedField === void 0 ? void 0 : localizedField.items.length) !== null && _c !== void 0 ? _c : 0) === 0;
|
|
317
|
+
case 'is-not-empty': return ((_d = localizedField === null || localizedField === void 0 ? void 0 : localizedField.items.length) !== null && _d !== void 0 ? _d : 0) > 0;
|
|
310
318
|
case 'in': // one of
|
|
311
319
|
case 'nin': // none of
|
|
312
320
|
case 'all': { // all of
|
|
313
321
|
const filterValues = filter.values;
|
|
314
322
|
switch (filter.operator) {
|
|
315
323
|
case 'in':
|
|
316
|
-
return (_e = fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.some((value) => filterValues.includes(value))) !== null && _e !== void 0 ? _e : false;
|
|
317
324
|
case 'nin':
|
|
318
|
-
|
|
325
|
+
const result = (_e = localizedField === null || localizedField === void 0 ? void 0 : localizedField.items.some((item) => {
|
|
326
|
+
switch (item.type) {
|
|
327
|
+
case 'string':
|
|
328
|
+
case 'slug':
|
|
329
|
+
case 'url':
|
|
330
|
+
case 'text':
|
|
331
|
+
case 'markdown':
|
|
332
|
+
case 'boolean':
|
|
333
|
+
case 'date':
|
|
334
|
+
case 'datetime':
|
|
335
|
+
case 'number':
|
|
336
|
+
case 'enum': {
|
|
337
|
+
return filterValues.includes(item.value);
|
|
338
|
+
}
|
|
339
|
+
case 'reference':
|
|
340
|
+
case 'cross-reference': {
|
|
341
|
+
if (item.isUnset) {
|
|
342
|
+
// include unset items for nin operator and not for in
|
|
343
|
+
return false;
|
|
344
|
+
}
|
|
345
|
+
let { srcType, srcProjectId } = document;
|
|
346
|
+
if (item.type === 'cross-reference') {
|
|
347
|
+
srcType = item.refSrcType;
|
|
348
|
+
srcProjectId = item.refProjectId;
|
|
349
|
+
}
|
|
350
|
+
return filterValues.find((filterObject) => filterObject.srcType === srcType && filterObject.srcProjectId === srcProjectId && filterObject.srcDocumentId === item.refId);
|
|
351
|
+
}
|
|
352
|
+
default: return false;
|
|
353
|
+
}
|
|
354
|
+
})) !== null && _e !== void 0 ? _e : false;
|
|
355
|
+
return filter.operator === 'in' ? result : !result;
|
|
319
356
|
case 'all':
|
|
320
|
-
return filterValues.every((
|
|
357
|
+
return filterValues.every((filterValue) => {
|
|
358
|
+
return localizedField === null || localizedField === void 0 ? void 0 : localizedField.items.find((item) => {
|
|
359
|
+
switch (item.type) {
|
|
360
|
+
case 'string':
|
|
361
|
+
case 'slug':
|
|
362
|
+
case 'url':
|
|
363
|
+
case 'text':
|
|
364
|
+
case 'markdown':
|
|
365
|
+
case 'boolean':
|
|
366
|
+
case 'date':
|
|
367
|
+
case 'datetime':
|
|
368
|
+
case 'number':
|
|
369
|
+
case 'enum': {
|
|
370
|
+
return item.value === filterValue;
|
|
371
|
+
}
|
|
372
|
+
case 'reference':
|
|
373
|
+
case 'cross-reference': {
|
|
374
|
+
if (item.isUnset) {
|
|
375
|
+
return false;
|
|
376
|
+
}
|
|
377
|
+
let { srcType, srcProjectId } = document;
|
|
378
|
+
if ((item === null || item === void 0 ? void 0 : item.type) === 'cross-reference') {
|
|
379
|
+
srcType = item.refSrcType;
|
|
380
|
+
srcProjectId = item.refProjectId;
|
|
381
|
+
}
|
|
382
|
+
return filterValue.srcType === srcType && filterValue.srcProjectId === srcProjectId && filterValue.srcDocumentId === item.refId;
|
|
383
|
+
}
|
|
384
|
+
default: return false;
|
|
385
|
+
}
|
|
386
|
+
});
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
throw new Error(`Not supported operator ${filter.operator} for field ${filter.field}`);
|
|
392
|
+
};
|
|
393
|
+
const isReferenceFieldMatches = ({ field, filter, document, locale }) => {
|
|
394
|
+
var _a;
|
|
395
|
+
// ignoring case
|
|
396
|
+
const fieldValue = (0, content_store_utils_1.getDocumentFieldForLocale)(field, locale);
|
|
397
|
+
switch (filter.operator) {
|
|
398
|
+
case 'is-undefined': return (_a = fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.isUnset) !== null && _a !== void 0 ? _a : false;
|
|
399
|
+
case 'is-not-undefined': return !(fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.isUnset);
|
|
400
|
+
case 'in':
|
|
401
|
+
case 'nin': {
|
|
402
|
+
if (typeof filter.values[0] !== 'object' || filter.values[0] instanceof Date) {
|
|
403
|
+
throw new Error(`Filter value should be array of objects for field ${filter.field}`);
|
|
404
|
+
}
|
|
405
|
+
const filterValues = filter.values;
|
|
406
|
+
if (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.isUnset) {
|
|
407
|
+
// include unset items in nin operator
|
|
408
|
+
return filter.operator === 'nin';
|
|
409
|
+
}
|
|
410
|
+
let { srcType, srcProjectId } = document;
|
|
411
|
+
if ((fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.type) === 'cross-reference') {
|
|
412
|
+
srcType = fieldValue.refSrcType;
|
|
413
|
+
srcProjectId = fieldValue.refProjectId;
|
|
414
|
+
}
|
|
415
|
+
switch (filter.operator) {
|
|
416
|
+
case 'in':
|
|
417
|
+
return filterValues.some((filterValue) => filterValue.srcType === srcType && filterValue.srcProjectId === srcProjectId && filterValue.srcDocumentId === (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.refId));
|
|
418
|
+
case 'nin':
|
|
419
|
+
return filterValues.every((filterValue) => filterValue.srcType !== srcType || filterValue.srcProjectId !== srcProjectId || filterValue.srcDocumentId !== (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.refId));
|
|
321
420
|
}
|
|
322
421
|
}
|
|
323
422
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-utils.js","sourceRoot":"","sources":["../../src/utils/search-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search-utils.js","sourceRoot":"","sources":["../../src/utils/search-utils.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AAKvB,gEAAuF;AAEvF,MAAM,UAAU,GAAG;IACf,SAAS,EAAE;QACP,IAAI,EAAE,MAAM;KACf;IACD,SAAS,EAAE;QACP,IAAI,EAAE,MAAM;KACf;CACK,CAAC;AAIJ,MAAM,eAAe,GAAG,CAAC,IAY/B,EAGC,EAAE;;IACA,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE,CAAC;IAExC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEnC,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;;QACnD,MAAM,eAAe,GAAG,IAAA,wCAAkB,EAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACpF,MAAM,eAAe,GAAG,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,SAAS,EAAE,QAAQ,CAAC,YAAY;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,EAAE;YAClB,OAAO,KAAK,CAAC;SAChB;QAED,YAAY,IAAI,CAAC,CAAC;QAElB,IAAI,KAAK,EAAE;YACP,MAAM,OAAO,GAAG,wBAAwB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,MAAA,IAAI,CAAC,cAAc,0CAAG,eAAe,CAAC,CAAC,CAAC;YACjH,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO,KAAK,CAAC;aAChB;SACJ;QAED,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,EAAE;YAClB,2DAA2D;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;;gBAC7C,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClD,OAAO,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,MAAA,IAAI,CAAC,cAAc,0CAAG,eAAe,CAAC,EAAE,CAAC,CAAC;YACpI,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO,KAAK,CAAC;aAChB;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,YAAY;KACtB,CAAC;AACN,CAAC,CAAC;AA7DW,QAAA,eAAe,mBA6D1B;AAEF,MAAM,wBAAwB,GAAG,CAAC,QAAoC,EAAE,KAAa,EAAE,MAAe,EAAW,EAAE;IAC/G,IAAI,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACtD,OAAO,IAAI,CAAC;KACf;IAED,OAAO,gBAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;;QACrC,IAAI,KAAK,CAAC;QACV,QAAQ,KAAK,CAAC,IAAI,EAAE;YAChB,KAAK,QAAQ,CAAC;YACd,KAAK,MAAM,CAAC;YACZ,KAAK,KAAK,CAAC;YACX,KAAK,MAAM,CAAC;YACZ,KAAK,UAAU,CAAC;YAChB,KAAK,MAAM;gBACP,KAAK,GAAG,MAAA,IAAA,+CAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,0CAAE,KAAK,CAAC;gBACxD,MAAM;SACb;QAED,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC1D;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,QAAoC,EAAE,MAAwB,EAAmC,EAAE;IAC1H,IAAI,MAAM,CAAC,MAAM,EAAE;QACf,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,EAAE;YAC9D,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC7D;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO;YACH,GAAG,QAAQ;YACX,KAAK,EAAE,SAAS;SACnB,CAAC;KACL;SAAM;QACH,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SACtD;QACD,OAAO,aAAa,CAAC;KACxB;AACL,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EAOT,EAAW,EAAE;;IACV,QAAQ,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACP,OAAO,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAE3D,KAAK,QAAQ;YACT,OAAO,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAE3D,KAAK,SAAS;YACV,OAAO,qBAAqB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAE5D,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACX,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAEzD,KAAK,MAAM;YACP,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAEzD,KAAK,MAAM,CAAC,CAAC;YACT,MAAM,KAAK,GAAG,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,QAAQ,CAAC,OAAO,CAAC,0CAAG,QAAQ,CAAC,YAAY,CAAC,0CAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC3F,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aAC/D;YACD,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;SACzE;QAED,KAAK,iBAAiB,CAAC;QACvB,KAAK,WAAW;YACZ,OAAO,uBAAuB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAExE;YACI,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,KAAK,cAAc,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,CAAC,CAAC;KAChG;AACL,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,EAC1B,KAAK,EACL,MAAM,EACN,MAAM,EAKT,EAAE,EAAE;;IACD,gBAAgB;IAChB,MAAM,UAAU,GAAG,MAAA,MAAA,IAAA,+CAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,0CAAE,KAAK,0CAAE,WAAW,EAAE,CAAC;IAElF,QAAQ,MAAM,CAAC,QAAQ,EAAE;QACrB,KAAK,cAAc,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QACrD,KAAK,kBAAkB,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QAEzD,KAAK,IAAI,CAAC,CAAC,MAAM;QACjB,KAAK,KAAK,CAAC,CAAC,MAAM;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,cAAc,CAAC,CAAC;YACjB,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,2CAA2C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aAC9E;YAED,MAAM,WAAW,GAAG,MAAA,MAAM,CAAC,KAAK,0CAAE,QAAQ,GAAG,WAAW,EAAE,CAAC;YAE3D,QAAQ,MAAM,CAAC,QAAQ,EAAE;gBACrB,KAAK,IAAI;oBACL,OAAO,UAAU,KAAK,WAAW,CAAC;gBACtC,KAAK,KAAK;oBACN,OAAO,UAAU,KAAK,WAAW,CAAC;gBACtC,KAAK,UAAU;oBACX,OAAO,OAAO,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;gBACtD,KAAK,cAAc;oBACf,OAAO,CAAC,OAAO,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;aAC1D;SACJ;KACJ;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAA0G,EAAE,EAAE;;IAC/J,MAAM,UAAU,GAAG,MAAA,IAAA,+CAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,0CAAE,KAAK,CAAC;IAEnE,QAAQ,MAAM,CAAC,QAAQ,EAAE;QACrB,KAAK,cAAc,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QACrD,KAAK,kBAAkB,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QAEzD,KAAK,IAAI,CAAC,CAAC,MAAM;QACjB,KAAK,KAAK,CAAC,CAAC,MAAM;QAClB,KAAK,KAAK,CAAC,CAAC,KAAK;QACjB,KAAK,KAAK,CAAC,CAAC;YACR,KAAK;YACL,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,2CAA2C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aAC9E;YAED,QAAQ,MAAM,CAAC,QAAQ,EAAE;gBACrB,KAAK,IAAI;oBACL,OAAO,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC;gBACvC,KAAK,KAAK;oBACN,OAAO,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC;gBACvC,KAAK,KAAK;oBACN,OAAO,OAAO,CAAC,UAAU,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7D,KAAK,KAAK;oBACN,OAAO,OAAO,CAAC,UAAU,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;aAChE;SACJ;QAED,KAAK,SAAS,CAAC,CAAC;YACZ,QAAQ;YACR,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC9E,MAAM,IAAI,KAAK,CAAC,6DAA6D,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aAChG;YAED,OAAO,OAAO,CAAC,UAAU,IAAI,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;SAClG;KACJ;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,MAAM,EAKT,EAAE,EAAE;;IACD,MAAM,UAAU,GAAG,MAAA,IAAA,+CAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,0CAAE,KAAK,CAAC;IAEnE,QAAQ,MAAM,CAAC,QAAQ,EAAE;QACrB,KAAK,cAAc,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QACrD,KAAK,kBAAkB,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QAEzD,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC,CAAC;YACR,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;gBACnC,MAAM,IAAI,KAAK,CAAC,4CAA4C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aAC/E;YAED,QAAQ,MAAM,CAAC,QAAQ,EAAE;gBACrB,KAAK,IAAI;oBACL,OAAO,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC;gBACvC,KAAK,KAAK;oBACN,OAAO,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC;aAC1C;SACJ;KACJ;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAc,EAAoB,EAAE;IACxD,IAAI,SAAS,CAAC;IACd,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;QACtB,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;SAAM,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,0BAA0B,CAAC,EAAE;QACjD,4BAA4B;QAC5B,wEAAwE;QACxE,wCAAwC;QACxC,wCAAwC;QACxC,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KAClD;IACD,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QACvC,OAAO,SAAS,CAAC;KACpB;AACL,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EACxB,KAAK,EACL,MAAM,EACN,MAAM,EAKT,EAAE,EAAE;;IACD,MAAM,SAAS,GAAG,MAAA,IAAA,+CAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,0CAAE,KAAK,CAAC;IAClE,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,SAAS,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;KAC/E;IAED,QAAQ,MAAM,CAAC,QAAQ,EAAE;QACrB,KAAK,cAAc,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QACrD,KAAK,kBAAkB,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QAEzD,KAAK,IAAI,CAAC,CAAC,MAAM;QACjB,KAAK,KAAK,CAAC,CAAC,MAAM;QAClB,KAAK,KAAK,CAAC,CAAC,KAAK;QACjB,KAAK,KAAK,CAAC,CAAC;YACR,KAAK;YACL,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,0DAA0D,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aAC7F;YAED,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjD,IAAI,CAAC,WAAW,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,mDAAmD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aACtF;YAED,QAAQ,MAAM,CAAC,QAAQ,EAAE;gBACrB,KAAK,IAAI,CAAC;gBACV,KAAK,KAAK,CAAC,CAAC,EAAC,2BAA2B;oBACpC,MAAM,MAAM,GAAG,CACX,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,EAAE,MAAK,WAAW,CAAC,WAAW,EAAE;wBACvD,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,MAAK,WAAW,CAAC,QAAQ,EAAE;wBACjD,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE,MAAK,WAAW,CAAC,OAAO,EAAE,CAClD,CAAC;oBACF,OAAO,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBACtD;gBAED,KAAK,KAAK;oBACN,OAAO,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE,mCAAI,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACjE,KAAK,KAAK;oBACN,OAAO,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE,mCAAI,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;aACpE;SACJ;QAED,KAAK,SAAS,CAAC,CAAC;YACZ,QAAQ;YACR,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC9E,MAAM,IAAI,KAAK,CAAC,4EAA4E,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aAC/G;YAED,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,qEAAqE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aACxG;YAED,OAAO,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE,mCAAI,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE,mCAAI,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;SACnH;KACJ;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAwG,EAAE,EAAE;;IAC3J,MAAM,UAAU,GAAG,MAAA,IAAA,+CAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,0CAAE,KAAK,CAAC;IAEnE,QAAQ,MAAM,CAAC,QAAQ,EAAE;QACrB,KAAK,cAAc,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QACrD,KAAK,kBAAkB,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,CAAC;QAEzD,KAAK,IAAI,CAAC,CAAC,SAAS;QACpB,KAAK,KAAK,CAAC,CAAC,EAAE,UAAU;YACpB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAe,CAAC;YAE5C,QAAQ,MAAM,CAAC,QAAQ,EAAE;gBACrB,KAAK,IAAI;oBACL,OAAO,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC7C,KAAK,KAAK;oBACN,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aACjD;SACJ;KACJ;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EACxB,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,QAAQ,EAOX,EAAE,EAAE;;IACD,MAAM,UAAU,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,MAAM,KAAI,MAAA,UAAU,CAAC,KAAK,0CAAE,IAAI,CAAA,CAAC;IAC5E,MAAM,eAAe,GACjB,aAAa,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC5K,IAAI,CAAC,eAAe,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,KAAK,kBAAkB,aAAa,EAAE,CAAC,CAAC;KACvG;IAED,MAAM,cAAc,GAAG,IAAA,+CAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEhE,QAAQ,MAAM,CAAC,QAAQ,EAAE;QACrB,KAAK,UAAU,CAAC,CAAC,OAAO,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAC,MAAM,mCAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QAClE,KAAK,cAAc,CAAC,CAAC,OAAO,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEpE,KAAK,IAAI,CAAC,CAAC,SAAS;QACpB,KAAK,KAAK,CAAC,CAAC,UAAU;QACtB,KAAK,KAAK,CAAC,CAAC,EAAE,SAAS;YACnB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAe,CAAC;YAE5C,QAAQ,MAAM,CAAC,QAAQ,EAAE;gBACrB,KAAK,IAAI,CAAC;gBACV,KAAK,KAAK;oBACN,MAAM,MAAM,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE;4BACf,KAAK,QAAQ,CAAC;4BACd,KAAK,MAAM,CAAC;4BACZ,KAAK,KAAK,CAAC;4BACX,KAAK,MAAM,CAAC;4BACZ,KAAK,UAAU,CAAC;4BAChB,KAAK,SAAS,CAAC;4BACf,KAAK,MAAM,CAAC;4BACZ,KAAK,UAAU,CAAC;4BAChB,KAAK,QAAQ,CAAC;4BACd,KAAK,MAAM,CAAC,CAAC;gCACT,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;6BAC5C;4BAED,KAAK,WAAW,CAAC;4BACjB,KAAK,iBAAiB,CAAC,CAAC;gCACpB,IAAI,IAAI,CAAC,OAAO,EAAE;oCACd,sDAAsD;oCACtD,OAAO,KAAK,CAAC;iCAChB;gCAED,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;gCACzC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;oCACjC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;oCAC1B,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;iCACpC;gCACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,KAAK,OAAO,IAAI,YAAY,CAAC,YAAY,KAAK,YAAY,IAAI,YAAY,CAAC,aAAa,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;6BAC3K;4BAED,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;yBACzB;oBACL,CAAC,CAAC,mCAAI,KAAK,CAAC;oBACZ,OAAO,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvD,KAAK,KAAK;oBACN,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE;wBACtC,OAAO,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;4BACvC,QAAQ,IAAI,CAAC,IAAI,EAAE;gCACf,KAAK,QAAQ,CAAC;gCACd,KAAK,MAAM,CAAC;gCACZ,KAAK,KAAK,CAAC;gCACX,KAAK,MAAM,CAAC;gCACZ,KAAK,UAAU,CAAC;gCAChB,KAAK,SAAS,CAAC;gCACf,KAAK,MAAM,CAAC;gCACZ,KAAK,UAAU,CAAC;gCAChB,KAAK,QAAQ,CAAC;gCACd,KAAK,MAAM,CAAC,CAAC;oCACT,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC;iCACrC;gCAED,KAAK,WAAW,CAAC;gCACjB,KAAK,iBAAiB,CAAC,CAAC;oCACpB,IAAI,IAAI,CAAC,OAAO,EAAE;wCACd,OAAO,KAAK,CAAC;qCAChB;oCAED,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;oCACzC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,iBAAiB,EAAE;wCAClC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;wCAC1B,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;qCACpC;oCAED,OAAO,WAAW,CAAC,OAAO,KAAK,OAAO,IAAI,WAAW,CAAC,YAAY,KAAK,YAAY,IAAI,WAAW,CAAC,aAAa,KAAK,IAAI,CAAC,KAAK,CAAC;iCACnI;gCAED,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;6BACzB;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;aACV;SACJ;KACJ;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,EAC7B,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EAMT,EAAE,EAAE;;IACD,gBAAgB;IAChB,MAAM,UAAU,GAAG,IAAA,+CAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE5D,QAAQ,MAAM,CAAC,QAAQ,EAAE;QACrB,KAAK,cAAc,CAAC,CAAC,OAAO,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,mCAAI,KAAK,CAAC;QACzD,KAAK,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAA,CAAC;QAErD,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC,CAAC;YACR,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE;gBAC1E,MAAM,IAAI,KAAK,CAAC,qDAAqD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aACxF;YAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAA8B,CAAC;YAE3D,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE;gBACrB,sCAAsC;gBACtC,OAAO,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;aACpC;YAED,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;YACzC,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,iBAAiB,EAAE;gBACxC,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;gBAChC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;aAC1C;YAED,QAAQ,MAAM,CAAC,QAAQ,EAAE;gBACrB,KAAK,IAAI;oBACL,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO,IAAI,WAAW,CAAC,YAAY,KAAK,YAAY,IAAI,WAAW,CAAC,aAAa,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAA,CAAC,CAAA;gBAC9K,KAAK,KAAK;oBACN,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO,IAAI,WAAW,CAAC,YAAY,KAAK,YAAY,IAAI,WAAW,CAAC,aAAa,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAA,CAAC,CAAA;aAClL;SACJ;KACJ;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackbit/cms-core",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2-develop.2",
|
|
4
4
|
"description": "stackbit-dev",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"@babel/parser": "^7.11.5",
|
|
32
32
|
"@babel/traverse": "^7.11.5",
|
|
33
33
|
"@iarna/toml": "^2.2.3",
|
|
34
|
-
"@stackbit/sdk": "0.5.
|
|
35
|
-
"@stackbit/types": "0.6.
|
|
36
|
-
"@stackbit/utils": "0.2.
|
|
34
|
+
"@stackbit/sdk": "0.5.2-develop.1",
|
|
35
|
+
"@stackbit/types": "0.6.2-develop.1",
|
|
36
|
+
"@stackbit/utils": "0.2.29-develop.1",
|
|
37
37
|
"chalk": "^4.0.1",
|
|
38
38
|
"esm": "^3.2.25",
|
|
39
39
|
"fs-extra": "^8.1.0",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"slugify": "^1.6.5",
|
|
49
49
|
"uuid": "^9.0.0"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "8e3de302ba6f5616536d40663e5984d129dd40eb"
|
|
52
52
|
}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
type Distribute<U> = U extends any ? U[] : never;
|
|
2
2
|
|
|
3
|
-
type
|
|
3
|
+
export type ReferenceValueType = {
|
|
4
|
+
srcType: string;
|
|
5
|
+
srcProjectId: string;
|
|
6
|
+
srcDocumentId: string;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
type ValueType = string | number | Date | boolean | ReferenceValueType;
|
|
4
10
|
|
|
5
11
|
type BaseFilterItem = {
|
|
6
12
|
field: string;
|
|
@@ -16,6 +22,10 @@ type UndefinedFilterItem = BaseFilterItem & {
|
|
|
16
22
|
operator: 'is-undefined' | 'is-not-undefined';
|
|
17
23
|
};
|
|
18
24
|
|
|
25
|
+
type EmptyFilterItem = BaseFilterItem & {
|
|
26
|
+
operator: 'is-empty' | 'is-not-empty';
|
|
27
|
+
};
|
|
28
|
+
|
|
19
29
|
type CompareFilterItem = BaseFilterItem & {
|
|
20
30
|
operator: 'gte' | 'lte';
|
|
21
31
|
value: ValueType;
|
|
@@ -49,7 +59,8 @@ export type SearchFilterItem =
|
|
|
49
59
|
| IncludeStringFilterItem
|
|
50
60
|
| IncludeListFilterItem
|
|
51
61
|
| IncludeAllFilterItem
|
|
52
|
-
| BetweenFilterItem
|
|
62
|
+
| BetweenFilterItem
|
|
63
|
+
| EmptyFilterItem;
|
|
53
64
|
|
|
54
65
|
export type SearchFilter = LogicalOperator;
|
|
55
66
|
|
|
@@ -2,7 +2,7 @@ import _ from 'lodash';
|
|
|
2
2
|
import { ImageModel, Model } from '@stackbit/sdk';
|
|
3
3
|
|
|
4
4
|
import * as ContentStoreTypes from '../types';
|
|
5
|
-
import { SearchFilter, SearchFilterItem } from '../types/search-filter';
|
|
5
|
+
import { ReferenceValueType, SearchFilter, SearchFilterItem } from '../types/search-filter';
|
|
6
6
|
import { getContentSourceId, getDocumentFieldForLocale } from '../content-store-utils';
|
|
7
7
|
|
|
8
8
|
const META_FIELD = {
|
|
@@ -80,6 +80,10 @@ export const searchDocuments = (data: {
|
|
|
80
80
|
};
|
|
81
81
|
|
|
82
82
|
const isDocumentMatchesPattern = (document: ContentStoreTypes.Document, query: string, locale?: string): boolean => {
|
|
83
|
+
if (document.srcModelLabel.toLowerCase().includes(query)) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
|
|
83
87
|
return _.some(document.fields, (field) => {
|
|
84
88
|
let value;
|
|
85
89
|
switch (field.type) {
|
|
@@ -161,9 +165,13 @@ const isFieldMatchesFilter = ({
|
|
|
161
165
|
if (!model || model.type === 'image') {
|
|
162
166
|
throw new Error(`Can't find model for the ${filter.field}`);
|
|
163
167
|
}
|
|
164
|
-
return isListFieldMatches({ field, filter, model, locale });
|
|
168
|
+
return isListFieldMatches({ field, filter, model, locale, document });
|
|
165
169
|
}
|
|
166
170
|
|
|
171
|
+
case 'cross-reference':
|
|
172
|
+
case 'reference':
|
|
173
|
+
return isReferenceFieldMatches({ field, filter, locale, document });
|
|
174
|
+
|
|
167
175
|
default:
|
|
168
176
|
throw new Error(`Unsupported filter for field ${filter.field} with type ${field?.type}`);
|
|
169
177
|
}
|
|
@@ -399,26 +407,29 @@ const isListFieldMatches = ({
|
|
|
399
407
|
field,
|
|
400
408
|
filter,
|
|
401
409
|
locale,
|
|
402
|
-
model
|
|
410
|
+
model,
|
|
411
|
+
document
|
|
403
412
|
}: {
|
|
404
413
|
field: ContentStoreTypes.DocumentFieldForType<'list'>;
|
|
405
414
|
filter: SearchFilterItem;
|
|
406
415
|
model: Model;
|
|
416
|
+
document: ContentStoreTypes.Document;
|
|
407
417
|
locale?: string;
|
|
408
418
|
}) => {
|
|
409
419
|
const fieldModel = model?.fields?.find((field) => field.name === filter.field);
|
|
410
420
|
const listItemsType = fieldModel?.type === 'list' && fieldModel.items?.type;
|
|
411
421
|
const isPrimitiveList =
|
|
412
|
-
listItemsType && ['string', 'slug', 'url', 'text', 'markdown', 'boolean', 'date', 'datetime', 'number', 'enum'].includes(listItemsType);
|
|
422
|
+
listItemsType && ['string', 'slug', 'url', 'text', 'markdown', 'boolean', 'date', 'datetime', 'number', 'enum', 'reference', 'cross-reference'].includes(listItemsType);
|
|
413
423
|
if (!isPrimitiveList) {
|
|
414
424
|
throw new Error(`Unsupported filter for list field ${filter.field} with children ${listItemsType}`);
|
|
415
425
|
}
|
|
416
426
|
|
|
417
|
-
const
|
|
418
|
-
'value' in item ? item.value : undefined
|
|
419
|
-
);
|
|
427
|
+
const localizedField = getDocumentFieldForLocale(field, locale);
|
|
420
428
|
|
|
421
429
|
switch (filter.operator) {
|
|
430
|
+
case 'is-empty': return (localizedField?.items.length ?? 0) === 0;
|
|
431
|
+
case 'is-not-empty': return (localizedField?.items.length ?? 0) > 0;
|
|
432
|
+
|
|
422
433
|
case 'in': // one of
|
|
423
434
|
case 'nin': // none of
|
|
424
435
|
case 'all': { // all of
|
|
@@ -426,11 +437,126 @@ const isListFieldMatches = ({
|
|
|
426
437
|
|
|
427
438
|
switch (filter.operator) {
|
|
428
439
|
case 'in':
|
|
429
|
-
return fieldValue?.some((value) => filterValues.includes(value)) ?? false;
|
|
430
440
|
case 'nin':
|
|
431
|
-
|
|
441
|
+
const result = localizedField?.items.some((item) => {
|
|
442
|
+
switch (item.type) {
|
|
443
|
+
case 'string':
|
|
444
|
+
case 'slug':
|
|
445
|
+
case 'url':
|
|
446
|
+
case 'text':
|
|
447
|
+
case 'markdown':
|
|
448
|
+
case 'boolean':
|
|
449
|
+
case 'date':
|
|
450
|
+
case 'datetime':
|
|
451
|
+
case 'number':
|
|
452
|
+
case 'enum': {
|
|
453
|
+
return filterValues.includes(item.value);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
case 'reference':
|
|
457
|
+
case 'cross-reference': {
|
|
458
|
+
if (item.isUnset) {
|
|
459
|
+
// include unset items for nin operator and not for in
|
|
460
|
+
return false;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
let { srcType, srcProjectId } = document;
|
|
464
|
+
if (item.type === 'cross-reference') {
|
|
465
|
+
srcType = item.refSrcType;
|
|
466
|
+
srcProjectId = item.refProjectId;
|
|
467
|
+
}
|
|
468
|
+
return filterValues.find((filterObject) => filterObject.srcType === srcType && filterObject.srcProjectId === srcProjectId && filterObject.srcDocumentId === item.refId);
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
default: return false;
|
|
472
|
+
}
|
|
473
|
+
}) ?? false;
|
|
474
|
+
return filter.operator === 'in' ? result : !result;
|
|
432
475
|
case 'all':
|
|
433
|
-
return filterValues.every((
|
|
476
|
+
return filterValues.every((filterValue) => {
|
|
477
|
+
return localizedField?.items.find((item) => {
|
|
478
|
+
switch (item.type) {
|
|
479
|
+
case 'string':
|
|
480
|
+
case 'slug':
|
|
481
|
+
case 'url':
|
|
482
|
+
case 'text':
|
|
483
|
+
case 'markdown':
|
|
484
|
+
case 'boolean':
|
|
485
|
+
case 'date':
|
|
486
|
+
case 'datetime':
|
|
487
|
+
case 'number':
|
|
488
|
+
case 'enum': {
|
|
489
|
+
return item.value === filterValue;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
case 'reference':
|
|
493
|
+
case 'cross-reference': {
|
|
494
|
+
if (item.isUnset) {
|
|
495
|
+
return false;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
let { srcType, srcProjectId } = document;
|
|
499
|
+
if (item?.type === 'cross-reference') {
|
|
500
|
+
srcType = item.refSrcType;
|
|
501
|
+
srcProjectId = item.refProjectId;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
return filterValue.srcType === srcType && filterValue.srcProjectId === srcProjectId && filterValue.srcDocumentId === item.refId;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
default: return false;
|
|
508
|
+
}
|
|
509
|
+
});
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
throw new Error(`Not supported operator ${filter.operator} for field ${filter.field}`);
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
const isReferenceFieldMatches = ({
|
|
519
|
+
field,
|
|
520
|
+
filter,
|
|
521
|
+
document,
|
|
522
|
+
locale
|
|
523
|
+
}: {
|
|
524
|
+
field: ContentStoreTypes.DocumentFieldForType<'reference' | 'cross-reference'>;
|
|
525
|
+
filter: SearchFilterItem;
|
|
526
|
+
document: ContentStoreTypes.Document;
|
|
527
|
+
locale?: string;
|
|
528
|
+
}) => {
|
|
529
|
+
// ignoring case
|
|
530
|
+
const fieldValue = getDocumentFieldForLocale(field, locale);
|
|
531
|
+
|
|
532
|
+
switch (filter.operator) {
|
|
533
|
+
case 'is-undefined': return fieldValue?.isUnset ?? false;
|
|
534
|
+
case 'is-not-undefined': return !fieldValue?.isUnset;
|
|
535
|
+
|
|
536
|
+
case 'in':
|
|
537
|
+
case 'nin': {
|
|
538
|
+
if (typeof filter.values[0] !== 'object' || filter.values[0] instanceof Date) {
|
|
539
|
+
throw new Error(`Filter value should be array of objects for field ${filter.field}`);
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
const filterValues = filter.values as ReferenceValueType[];
|
|
543
|
+
|
|
544
|
+
if (fieldValue?.isUnset) {
|
|
545
|
+
// include unset items in nin operator
|
|
546
|
+
return filter.operator === 'nin';
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
let { srcType, srcProjectId } = document;
|
|
550
|
+
if (fieldValue?.type === 'cross-reference') {
|
|
551
|
+
srcType = fieldValue.refSrcType;
|
|
552
|
+
srcProjectId = fieldValue.refProjectId;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
switch (filter.operator) {
|
|
556
|
+
case 'in':
|
|
557
|
+
return filterValues.some((filterValue) => filterValue.srcType === srcType && filterValue.srcProjectId === srcProjectId && filterValue.srcDocumentId === fieldValue?.refId)
|
|
558
|
+
case 'nin':
|
|
559
|
+
return filterValues.every((filterValue) => filterValue.srcType !== srcType || filterValue.srcProjectId !== srcProjectId || filterValue.srcDocumentId !== fieldValue?.refId)
|
|
434
560
|
}
|
|
435
561
|
}
|
|
436
562
|
}
|