@stackbit/cms-core 0.5.2-develop.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.
@@ -1,5 +1,10 @@
1
1
  declare type Distribute<U> = U extends any ? U[] : never;
2
- declare type ValueType = string | number | Date | boolean;
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;AAElD,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,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,CAAC;AAExB,oBAAY,YAAY,GAAG,eAAe,CAAC;AAE3C,aAAK,eAAe,GAAG,kBAAkB,CAAC;AAE1C,aAAK,kBAAkB,GAAG;IACtB,GAAG,EAAE,gBAAgB,EAAE,CAAC;CAC3B,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,EAAE,YAAY,EAAoB,MAAM,wBAAwB,CAAC;AAYxE,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"}
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 fieldValue = (_d = (_c = (0, content_store_utils_1.getDocumentFieldForLocale)(field, locale)) === null || _c === void 0 ? void 0 : _c.items) === null || _d === void 0 ? void 0 : _d.map((item) => 'value' in item ? item.value : undefined);
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
- return !(fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.some((value) => filterValues.includes(value)));
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((value) => fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.includes(value));
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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbit/cms-core",
3
- "version": "0.5.2-develop.1",
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",
@@ -48,5 +48,5 @@
48
48
  "slugify": "^1.6.5",
49
49
  "uuid": "^9.0.0"
50
50
  },
51
- "gitHead": "29d399aa3b34dbf10c1007a166e609eab611b68e"
51
+ "gitHead": "8e3de302ba6f5616536d40663e5984d129dd40eb"
52
52
  }
@@ -1,6 +1,12 @@
1
1
  type Distribute<U> = U extends any ? U[] : never;
2
2
 
3
- type ValueType = string | number | Date | boolean;
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 fieldValue = getDocumentFieldForLocale(field, locale)?.items?.map((item) =>
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
- return !fieldValue?.some((value) => filterValues.includes(value));
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((value) => fieldValue?.includes(value));
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
  }