@webiny/api-headless-cms-ddb-es 6.3.0 → 6.4.0-beta.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.
Files changed (217) hide show
  1. package/configurations.js +27 -35
  2. package/configurations.js.map +1 -1
  3. package/definitions/entry.js +7 -9
  4. package/definitions/entry.js.map +1 -1
  5. package/definitions/group.js +7 -9
  6. package/definitions/group.js.map +1 -1
  7. package/definitions/model.js +7 -9
  8. package/definitions/model.js.map +1 -1
  9. package/definitions/types.d.ts +1 -0
  10. package/definitions/types.js +0 -3
  11. package/elasticsearch/createElasticsearchIndex.js +50 -67
  12. package/elasticsearch/createElasticsearchIndex.js.map +1 -1
  13. package/elasticsearch/deleteElasticsearchIndex.js +18 -26
  14. package/elasticsearch/deleteElasticsearchIndex.js.map +1 -1
  15. package/exports/api/cms/opensearch.js +2 -4
  16. package/feature.js +144 -153
  17. package/feature.js.map +1 -1
  18. package/features/CmsEntryOpenSearchBodyModifier/abstractions.js +2 -1
  19. package/features/CmsEntryOpenSearchBodyModifier/abstractions.js.map +1 -1
  20. package/features/CmsEntryOpenSearchBodyModifier/index.js +0 -2
  21. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.d.ts +2 -1
  22. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js +33 -27
  23. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -1
  24. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.d.ts +0 -3
  25. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js +2 -1
  26. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js.map +1 -1
  27. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js +2 -1
  28. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -1
  29. package/features/CmsEntryOpenSearchFieldIndex/constants.js +2 -1
  30. package/features/CmsEntryOpenSearchFieldIndex/constants.js.map +1 -1
  31. package/features/CmsEntryOpenSearchFieldIndex/feature.js +15 -12
  32. package/features/CmsEntryOpenSearchFieldIndex/feature.js.map +1 -1
  33. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js +48 -65
  34. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js.map +1 -1
  35. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.d.ts +5 -2
  36. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js +24 -30
  37. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js.map +1 -1
  38. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js +15 -16
  39. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js.map +1 -1
  40. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js +15 -18
  41. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js.map +1 -1
  42. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js +24 -29
  43. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js.map +1 -1
  44. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.d.ts +4 -2
  45. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js +95 -146
  46. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js.map +1 -1
  47. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js +15 -16
  48. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js.map +1 -1
  49. package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.d.ts +14 -0
  50. package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.js +39 -0
  51. package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.js.map +1 -0
  52. package/features/CmsEntryOpenSearchFieldIndex/index.js +0 -2
  53. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js +26 -28
  54. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js.map +1 -1
  55. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js +2 -1
  56. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js.map +1 -1
  57. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js +2 -1
  58. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js.map +1 -1
  59. package/features/CmsEntryOpenSearchFilter/constants.js +2 -1
  60. package/features/CmsEntryOpenSearchFilter/constants.js.map +1 -1
  61. package/features/CmsEntryOpenSearchFilter/feature.js +9 -8
  62. package/features/CmsEntryOpenSearchFilter/feature.js.map +1 -1
  63. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js +18 -15
  64. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js.map +1 -1
  65. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js +35 -53
  66. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js.map +1 -1
  67. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js +27 -40
  68. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js.map +1 -1
  69. package/features/CmsEntryOpenSearchFilter/index.js +0 -2
  70. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js +2 -1
  71. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js.map +1 -1
  72. package/features/CmsEntryOpenSearchFullTextSearch/index.js +0 -2
  73. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js +10 -9
  74. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js.map +1 -1
  75. package/features/CmsEntryOpenSearchIndex/abstractions.js +2 -1
  76. package/features/CmsEntryOpenSearchIndex/abstractions.js.map +1 -1
  77. package/features/CmsEntryOpenSearchIndex/feature.js +6 -5
  78. package/features/CmsEntryOpenSearchIndex/feature.js.map +1 -1
  79. package/features/CmsEntryOpenSearchIndex/index.js +0 -2
  80. package/features/CmsEntryOpenSearchQueryModifier/abstractions.js +2 -1
  81. package/features/CmsEntryOpenSearchQueryModifier/abstractions.js.map +1 -1
  82. package/features/CmsEntryOpenSearchQueryModifier/index.js +0 -2
  83. package/features/CmsEntryOpenSearchSortModifier/abstractions.js +2 -1
  84. package/features/CmsEntryOpenSearchSortModifier/abstractions.js.map +1 -1
  85. package/features/CmsEntryOpenSearchSortModifier/index.js +0 -2
  86. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js +24 -20
  87. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -1
  88. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js +2 -1
  89. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js.map +1 -1
  90. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js +2 -1
  91. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -1
  92. package/features/CmsEntryOpenSearchValueSearch/feature.js +9 -8
  93. package/features/CmsEntryOpenSearchValueSearch/feature.js.map +1 -1
  94. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js +14 -16
  95. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js.map +1 -1
  96. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js +31 -42
  97. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js.map +1 -1
  98. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js +15 -17
  99. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js.map +1 -1
  100. package/features/CmsEntryOpenSearchValueSearch/index.js +0 -2
  101. package/features/CmsEntryOpenSearchValuesModifier/abstractions.js +2 -1
  102. package/features/CmsEntryOpenSearchValuesModifier/abstractions.js.map +1 -1
  103. package/features/CmsEntryOpenSearchValuesModifier/index.js +0 -2
  104. package/helpers/entryIndexHelpers.d.ts +1 -1
  105. package/helpers/entryIndexHelpers.js +69 -123
  106. package/helpers/entryIndexHelpers.js.map +1 -1
  107. package/helpers/fieldIdentifier.js +18 -30
  108. package/helpers/fieldIdentifier.js.map +1 -1
  109. package/helpers/index.js +0 -2
  110. package/index.js +0 -2
  111. package/operations/entry/dataLoader/DataLoaderCache.js +22 -26
  112. package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -1
  113. package/operations/entry/dataLoader/constants.js +2 -1
  114. package/operations/entry/dataLoader/constants.js.map +1 -1
  115. package/operations/entry/dataLoader/createBatchScheduleFn.js +6 -15
  116. package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -1
  117. package/operations/entry/dataLoader/getAllEntryRevisions.js +18 -29
  118. package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -1
  119. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +27 -37
  120. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -1
  121. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +27 -37
  122. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -1
  123. package/operations/entry/dataLoader/getRevisionById.js +32 -46
  124. package/operations/entry/dataLoader/getRevisionById.js.map +1 -1
  125. package/operations/entry/dataLoader/index.js +8 -9
  126. package/operations/entry/dataLoader/index.js.map +1 -1
  127. package/operations/entry/dataLoader/types.js +0 -3
  128. package/operations/entry/dataLoaders.js +81 -99
  129. package/operations/entry/dataLoaders.js.map +1 -1
  130. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js +6 -24
  131. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -1
  132. package/operations/entry/elasticsearch/body.js +74 -125
  133. package/operations/entry/elasticsearch/body.js.map +1 -1
  134. package/operations/entry/elasticsearch/fields/createSystemField.js +6 -7
  135. package/operations/entry/elasticsearch/fields/createSystemField.js.map +1 -1
  136. package/operations/entry/elasticsearch/fields/live.js +45 -40
  137. package/operations/entry/elasticsearch/fields/live.js.map +1 -1
  138. package/operations/entry/elasticsearch/fields/location.js +45 -40
  139. package/operations/entry/elasticsearch/fields/location.js.map +1 -1
  140. package/operations/entry/elasticsearch/fields/state.js +99 -88
  141. package/operations/entry/elasticsearch/fields/state.js.map +1 -1
  142. package/operations/entry/elasticsearch/fields.js +193 -217
  143. package/operations/entry/elasticsearch/fields.js.map +1 -1
  144. package/operations/entry/elasticsearch/filtering/applyFiltering.js +32 -45
  145. package/operations/entry/elasticsearch/filtering/applyFiltering.js.map +1 -1
  146. package/operations/entry/elasticsearch/filtering/exec.js +85 -114
  147. package/operations/entry/elasticsearch/filtering/exec.js.map +1 -1
  148. package/operations/entry/elasticsearch/filtering/index.js +0 -2
  149. package/operations/entry/elasticsearch/filtering/path.js +24 -33
  150. package/operations/entry/elasticsearch/filtering/path.js.map +1 -1
  151. package/operations/entry/elasticsearch/filtering/populated.js +8 -14
  152. package/operations/entry/elasticsearch/filtering/populated.js.map +1 -1
  153. package/operations/entry/elasticsearch/filtering/values.js +11 -12
  154. package/operations/entry/elasticsearch/filtering/values.js.map +1 -1
  155. package/operations/entry/elasticsearch/fullTextSearch.js +43 -80
  156. package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -1
  157. package/operations/entry/elasticsearch/fullTextSearchFields.js +7 -17
  158. package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -1
  159. package/operations/entry/elasticsearch/initialQuery.js +37 -80
  160. package/operations/entry/elasticsearch/initialQuery.js.map +1 -1
  161. package/operations/entry/elasticsearch/keyword.js +13 -27
  162. package/operations/entry/elasticsearch/keyword.js.map +1 -1
  163. package/operations/entry/elasticsearch/plugins/operator.js +9 -20
  164. package/operations/entry/elasticsearch/plugins/operator.js.map +1 -1
  165. package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js +6 -4
  166. package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -1
  167. package/operations/entry/elasticsearch/sort.js +69 -92
  168. package/operations/entry/elasticsearch/sort.js.map +1 -1
  169. package/operations/entry/elasticsearch/transformValueForSearch.js +9 -14
  170. package/operations/entry/elasticsearch/transformValueForSearch.js.map +1 -1
  171. package/operations/entry/elasticsearch/types.js +0 -3
  172. package/operations/entry/index.js +1313 -1709
  173. package/operations/entry/index.js.map +1 -1
  174. package/operations/entry/keys.js +43 -63
  175. package/operations/entry/keys.js.map +1 -1
  176. package/operations/entry/recordType.js +4 -9
  177. package/operations/entry/recordType.js.map +1 -1
  178. package/operations/entry/transformations/convertEntryKeys.js +21 -26
  179. package/operations/entry/transformations/convertEntryKeys.js.map +1 -1
  180. package/operations/entry/transformations/index.d.ts +0 -2
  181. package/operations/entry/transformations/index.js +84 -114
  182. package/operations/entry/transformations/index.js.map +1 -1
  183. package/operations/entry/transformations/modifyEntryValues.d.ts +1 -1
  184. package/operations/entry/transformations/modifyEntryValues.js +12 -17
  185. package/operations/entry/transformations/modifyEntryValues.js.map +1 -1
  186. package/operations/entry/transformations/transformEntryKeys.js +13 -16
  187. package/operations/entry/transformations/transformEntryKeys.js.map +1 -1
  188. package/operations/entry/transformations/transformEntryToIndex.d.ts +0 -2
  189. package/operations/entry/transformations/transformEntryToIndex.js +16 -22
  190. package/operations/entry/transformations/transformEntryToIndex.js.map +1 -1
  191. package/operations/group/index.js +113 -134
  192. package/operations/group/index.js.map +1 -1
  193. package/operations/model/index.js +128 -156
  194. package/operations/model/index.js.map +1 -1
  195. package/package.json +24 -24
  196. package/tasks/createIndexTaskPlugin.js +35 -38
  197. package/tasks/createIndexTaskPlugin.js.map +1 -1
  198. package/types.js +7 -13
  199. package/types.js.map +1 -1
  200. package/values/NoValueContainer.js +8 -10
  201. package/values/NoValueContainer.js.map +1 -1
  202. package/definitions/types.js.map +0 -1
  203. package/exports/api/cms/opensearch.js.map +0 -1
  204. package/features/CmsEntryOpenSearchBodyModifier/index.js.map +0 -1
  205. package/features/CmsEntryOpenSearchFieldIndex/index.js.map +0 -1
  206. package/features/CmsEntryOpenSearchFilter/index.js.map +0 -1
  207. package/features/CmsEntryOpenSearchFullTextSearch/index.js.map +0 -1
  208. package/features/CmsEntryOpenSearchIndex/index.js.map +0 -1
  209. package/features/CmsEntryOpenSearchQueryModifier/index.js.map +0 -1
  210. package/features/CmsEntryOpenSearchSortModifier/index.js.map +0 -1
  211. package/features/CmsEntryOpenSearchValueSearch/index.js.map +0 -1
  212. package/features/CmsEntryOpenSearchValuesModifier/index.js.map +0 -1
  213. package/helpers/index.js.map +0 -1
  214. package/index.js.map +0 -1
  215. package/operations/entry/dataLoader/types.js.map +0 -1
  216. package/operations/entry/elasticsearch/filtering/index.js.map +0 -1
  217. package/operations/entry/elasticsearch/types.js.map +0 -1
@@ -1,108 +1,90 @@
1
- import WebinyError from "@webiny/error";
1
+ import error from "@webiny/error";
2
2
  import { DataLoaderCache } from "./dataLoader/DataLoaderCache.js";
3
3
  import { getDataLoaderFactory } from "./dataLoader/index.js";
4
4
  import { parseIdentifier } from "@webiny/utils";
5
- export class DataLoadersHandler {
6
- cache = new DataLoaderCache();
7
- constructor(params) {
8
- this.entity = params.entity;
9
- }
10
- async getAllEntryRevisions(params) {
11
- const ids = params.ids.map(id => {
12
- const {
13
- id: entryId
14
- } = parseIdentifier(id);
15
- return entryId;
16
- });
17
- return await this.loadMany("getAllEntryRevisions", params, ids);
18
- }
19
- async getRevisionById(params) {
20
- return await this.loadMany("getRevisionById", params, params.ids);
21
- }
22
- async getPublishedRevisionByEntryId(params) {
23
- const ids = params.ids.map(id => {
24
- const {
25
- id: entryId
26
- } = parseIdentifier(id);
27
- return entryId;
28
- });
29
- return await this.loadMany("getPublishedRevisionByEntryId", params, ids);
30
- }
31
- async getLatestRevisionByEntryId(params) {
32
- const ids = params.ids.map(id => {
33
- const {
34
- id: entryId
35
- } = parseIdentifier(id);
36
- return entryId;
37
- });
38
- return await this.loadMany("getLatestRevisionByEntryId", params, ids);
39
- }
40
-
41
- /**
42
- * TODO @ts-refactor
43
- * Maybe pass on the generics to DataLoader definition?
44
- */
45
- getLoader(name, params) {
46
- const {
47
- model
48
- } = params;
49
- const cacheParams = {
50
- tenant: model.tenant,
51
- modelId: model.modelId,
52
- name
53
- };
54
- let loader = this.cache.getDataLoader(cacheParams);
55
- if (loader) {
56
- return loader;
5
+ class DataLoadersHandler {
6
+ constructor(params){
7
+ this.cache = new DataLoaderCache();
8
+ this.entity = params.entity;
9
+ }
10
+ async getAllEntryRevisions(params) {
11
+ const ids = params.ids.map((id)=>{
12
+ const { id: entryId } = parseIdentifier(id);
13
+ return entryId;
14
+ });
15
+ return await this.loadMany("getAllEntryRevisions", params, ids);
16
+ }
17
+ async getRevisionById(params) {
18
+ return await this.loadMany("getRevisionById", params, params.ids);
19
+ }
20
+ async getPublishedRevisionByEntryId(params) {
21
+ const ids = params.ids.map((id)=>{
22
+ const { id: entryId } = parseIdentifier(id);
23
+ return entryId;
24
+ });
25
+ return await this.loadMany("getPublishedRevisionByEntryId", params, ids);
57
26
  }
58
- const factory = getDataLoaderFactory(name);
59
- loader = factory({
60
- entity: this.entity,
61
- tenant: model.tenant,
62
- modelId: model.modelId
63
- });
64
- this.cache.setDataLoader(cacheParams, loader);
65
- return loader;
66
- }
67
- async loadMany(loader, params, ids) {
68
- let results = [];
69
- try {
70
- results = await this.getLoader(loader, params).loadMany(ids);
71
- if (Array.isArray(results) === true) {
72
- return results.reduce((acc, res) => {
73
- if (Array.isArray(res) === false) {
74
- if (res && res.message) {
75
- throw new WebinyError(res.message, res.code, {
76
- ...res,
77
- data: JSON.stringify(res.data || {})
78
- });
79
- }
80
- throw new WebinyError("Result from the data loader must be an array of arrays which contain requested items.", "DATA_LOADER_RESULTS_ERROR", {
81
- ...params,
82
- loader
27
+ async getLatestRevisionByEntryId(params) {
28
+ const ids = params.ids.map((id)=>{
29
+ const { id: entryId } = parseIdentifier(id);
30
+ return entryId;
31
+ });
32
+ return await this.loadMany("getLatestRevisionByEntryId", params, ids);
33
+ }
34
+ getLoader(name, params) {
35
+ const { model } = params;
36
+ const cacheParams = {
37
+ tenant: model.tenant,
38
+ modelId: model.modelId,
39
+ name
40
+ };
41
+ let loader = this.cache.getDataLoader(cacheParams);
42
+ if (loader) return loader;
43
+ const factory = getDataLoaderFactory(name);
44
+ loader = factory({
45
+ entity: this.entity,
46
+ tenant: model.tenant,
47
+ modelId: model.modelId
48
+ });
49
+ this.cache.setDataLoader(cacheParams, loader);
50
+ return loader;
51
+ }
52
+ async loadMany(loader, params, ids) {
53
+ let results = [];
54
+ try {
55
+ results = await this.getLoader(loader, params).loadMany(ids);
56
+ if (true === Array.isArray(results)) return results.reduce((acc, res)=>{
57
+ if (false === Array.isArray(res)) {
58
+ if (res && res.message) throw new error(res.message, res.code, {
59
+ ...res,
60
+ data: JSON.stringify(res.data || {})
61
+ });
62
+ throw new error("Result from the data loader must be an array of arrays which contain requested items.", "DATA_LOADER_RESULTS_ERROR", {
63
+ ...params,
64
+ loader
65
+ });
66
+ }
67
+ acc.push(...res);
68
+ return acc;
69
+ }, []);
70
+ } catch (ex) {
71
+ throw new error(ex.message || "Data loader error.", ex.code || "DATA_LOADER_ERROR", {
72
+ error: ex,
73
+ ...params,
74
+ loader,
75
+ ids
83
76
  });
84
- }
85
- acc.push(...res);
86
- return acc;
87
- }, []);
88
- }
89
- } catch (ex) {
90
- throw new WebinyError(ex.message || "Data loader error.", ex.code || "DATA_LOADER_ERROR", {
91
- error: ex,
92
- ...params,
93
- loader,
94
- ids
95
- });
77
+ }
78
+ throw new error("Data loader did not return array of items or empty array.", "INVALID_DATA_LOADER_RESULT", {
79
+ loader,
80
+ ids,
81
+ results
82
+ });
83
+ }
84
+ clearAll(params) {
85
+ this.cache.clearAll(params?.model);
96
86
  }
97
- throw new WebinyError(`Data loader did not return array of items or empty array.`, "INVALID_DATA_LOADER_RESULT", {
98
- loader,
99
- ids,
100
- results
101
- });
102
- }
103
- clearAll(params) {
104
- this.cache.clearAll(params?.model);
105
- }
106
87
  }
88
+ export { DataLoadersHandler };
107
89
 
108
90
  //# sourceMappingURL=dataLoaders.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WebinyError","DataLoaderCache","getDataLoaderFactory","parseIdentifier","DataLoadersHandler","cache","constructor","params","entity","getAllEntryRevisions","ids","map","id","entryId","loadMany","getRevisionById","getPublishedRevisionByEntryId","getLatestRevisionByEntryId","getLoader","name","model","cacheParams","tenant","modelId","loader","getDataLoader","factory","setDataLoader","results","Array","isArray","reduce","acc","res","message","code","data","JSON","stringify","push","ex","error","clearAll"],"sources":["dataLoaders.ts"],"sourcesContent":["import type DataLoader from \"dataloader\";\nimport WebinyError from \"@webiny/error\";\nimport type {\n CmsEntryValues,\n CmsModel,\n CmsStorageEntry\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CacheKeyParams } from \"~/operations/entry/dataLoader/DataLoaderCache.js\";\nimport { DataLoaderCache } from \"~/operations/entry/dataLoader/DataLoaderCache.js\";\nimport type { DataLoaders } from \"~/operations/entry/dataLoader/index.js\";\nimport { getDataLoaderFactory } from \"~/operations/entry/dataLoader/index.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport type { DataLoadersHandlerInterfaceClearAllParams, IDataLoadersHandler } from \"~/types.js\";\nimport type { IEntryEntity } from \"~/definitions/types.js\";\n\ninterface DataLoaderParams {\n model: Pick<CmsModel, \"tenant\" | \"modelId\">;\n ids: readonly string[];\n}\n\ninterface GetLoaderParams {\n model: Pick<CmsModel, \"tenant\" | \"modelId\">;\n}\n\ninterface IDataLoadersHandlerParams {\n entity: IEntryEntity;\n}\n\nexport interface ClearAllParams {\n model: Pick<CmsModel, \"tenant\" | \"modelId\">;\n}\n\nexport class DataLoadersHandler implements IDataLoadersHandler {\n private readonly entity;\n private readonly cache = new DataLoaderCache();\n\n public constructor(params: IDataLoadersHandlerParams) {\n this.entity = params.entity;\n }\n\n public async getAllEntryRevisions<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoaderParams\n ): Promise<CmsStorageEntry<T>[]> {\n const ids = params.ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return entryId;\n });\n return await this.loadMany<T>(\"getAllEntryRevisions\", params, ids);\n }\n\n public async getRevisionById<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoaderParams\n ): Promise<CmsStorageEntry<T>[]> {\n return await this.loadMany<T>(\"getRevisionById\", params, params.ids);\n }\n\n public async getPublishedRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoaderParams\n ): Promise<CmsStorageEntry<T>[]> {\n const ids = params.ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return entryId;\n });\n return await this.loadMany<T>(\"getPublishedRevisionByEntryId\", params, ids);\n }\n\n public async getLatestRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoaderParams\n ): Promise<CmsStorageEntry<T>[]> {\n const ids = params.ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return entryId;\n });\n return await this.loadMany<T>(\"getLatestRevisionByEntryId\", params, ids);\n }\n\n /**\n * TODO @ts-refactor\n * Maybe pass on the generics to DataLoader definition?\n */\n private getLoader(name: DataLoaders, params: GetLoaderParams): DataLoader<any, any> {\n const { model } = params;\n const cacheParams: CacheKeyParams = {\n tenant: model.tenant,\n modelId: model.modelId,\n name\n };\n let loader = this.cache.getDataLoader(cacheParams);\n if (loader) {\n return loader;\n }\n const factory = getDataLoaderFactory(name);\n loader = factory({\n entity: this.entity,\n tenant: model.tenant,\n modelId: model.modelId\n });\n this.cache.setDataLoader(cacheParams, loader);\n return loader;\n }\n\n private async loadMany<T extends CmsEntryValues = CmsEntryValues>(\n loader: DataLoaders,\n params: GetLoaderParams,\n ids: readonly string[]\n ): Promise<CmsStorageEntry<T>[]> {\n let results: CmsStorageEntry<T>[] = [];\n try {\n results = await this.getLoader(loader, params).loadMany(ids);\n if (Array.isArray(results) === true) {\n return results.reduce<CmsStorageEntry<T>[]>((acc, res) => {\n if (Array.isArray(res) === false) {\n if (res && res.message) {\n throw new WebinyError(res.message, res.code, {\n ...res,\n data: JSON.stringify(res.data || {})\n });\n }\n throw new WebinyError(\n \"Result from the data loader must be an array of arrays which contain requested items.\",\n \"DATA_LOADER_RESULTS_ERROR\",\n {\n ...params,\n loader\n }\n );\n }\n acc.push(...res);\n return acc;\n }, []);\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Data loader error.\",\n ex.code || \"DATA_LOADER_ERROR\",\n {\n error: ex,\n ...params,\n loader,\n ids\n }\n );\n }\n throw new WebinyError(\n `Data loader did not return array of items or empty array.`,\n \"INVALID_DATA_LOADER_RESULT\",\n {\n loader,\n ids,\n results\n }\n );\n }\n\n public clearAll(params?: DataLoadersHandlerInterfaceClearAllParams): void {\n this.cache.clearAll(params?.model);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"operations/entry/dataLoaders.js","sources":["../../../src/operations/entry/dataLoaders.ts"],"sourcesContent":["import type DataLoader from \"dataloader\";\nimport WebinyError from \"@webiny/error\";\nimport type {\n CmsEntryValues,\n CmsModel,\n CmsStorageEntry\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CacheKeyParams } from \"~/operations/entry/dataLoader/DataLoaderCache.js\";\nimport { DataLoaderCache } from \"~/operations/entry/dataLoader/DataLoaderCache.js\";\nimport type { DataLoaders } from \"~/operations/entry/dataLoader/index.js\";\nimport { getDataLoaderFactory } from \"~/operations/entry/dataLoader/index.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport type { DataLoadersHandlerInterfaceClearAllParams, IDataLoadersHandler } from \"~/types.js\";\nimport type { IEntryEntity } from \"~/definitions/types.js\";\n\ninterface DataLoaderParams {\n model: Pick<CmsModel, \"tenant\" | \"modelId\">;\n ids: readonly string[];\n}\n\ninterface GetLoaderParams {\n model: Pick<CmsModel, \"tenant\" | \"modelId\">;\n}\n\ninterface IDataLoadersHandlerParams {\n entity: IEntryEntity;\n}\n\nexport interface ClearAllParams {\n model: Pick<CmsModel, \"tenant\" | \"modelId\">;\n}\n\nexport class DataLoadersHandler implements IDataLoadersHandler {\n private readonly entity;\n private readonly cache = new DataLoaderCache();\n\n public constructor(params: IDataLoadersHandlerParams) {\n this.entity = params.entity;\n }\n\n public async getAllEntryRevisions<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoaderParams\n ): Promise<CmsStorageEntry<T>[]> {\n const ids = params.ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return entryId;\n });\n return await this.loadMany<T>(\"getAllEntryRevisions\", params, ids);\n }\n\n public async getRevisionById<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoaderParams\n ): Promise<CmsStorageEntry<T>[]> {\n return await this.loadMany<T>(\"getRevisionById\", params, params.ids);\n }\n\n public async getPublishedRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoaderParams\n ): Promise<CmsStorageEntry<T>[]> {\n const ids = params.ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return entryId;\n });\n return await this.loadMany<T>(\"getPublishedRevisionByEntryId\", params, ids);\n }\n\n public async getLatestRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoaderParams\n ): Promise<CmsStorageEntry<T>[]> {\n const ids = params.ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return entryId;\n });\n return await this.loadMany<T>(\"getLatestRevisionByEntryId\", params, ids);\n }\n\n /**\n * TODO @ts-refactor\n * Maybe pass on the generics to DataLoader definition?\n */\n private getLoader(name: DataLoaders, params: GetLoaderParams): DataLoader<any, any> {\n const { model } = params;\n const cacheParams: CacheKeyParams = {\n tenant: model.tenant,\n modelId: model.modelId,\n name\n };\n let loader = this.cache.getDataLoader(cacheParams);\n if (loader) {\n return loader;\n }\n const factory = getDataLoaderFactory(name);\n loader = factory({\n entity: this.entity,\n tenant: model.tenant,\n modelId: model.modelId\n });\n this.cache.setDataLoader(cacheParams, loader);\n return loader;\n }\n\n private async loadMany<T extends CmsEntryValues = CmsEntryValues>(\n loader: DataLoaders,\n params: GetLoaderParams,\n ids: readonly string[]\n ): Promise<CmsStorageEntry<T>[]> {\n let results: CmsStorageEntry<T>[] = [];\n try {\n results = await this.getLoader(loader, params).loadMany(ids);\n if (Array.isArray(results) === true) {\n return results.reduce<CmsStorageEntry<T>[]>((acc, res) => {\n if (Array.isArray(res) === false) {\n if (res && res.message) {\n throw new WebinyError(res.message, res.code, {\n ...res,\n data: JSON.stringify(res.data || {})\n });\n }\n throw new WebinyError(\n \"Result from the data loader must be an array of arrays which contain requested items.\",\n \"DATA_LOADER_RESULTS_ERROR\",\n {\n ...params,\n loader\n }\n );\n }\n acc.push(...res);\n return acc;\n }, []);\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Data loader error.\",\n ex.code || \"DATA_LOADER_ERROR\",\n {\n error: ex,\n ...params,\n loader,\n ids\n }\n );\n }\n throw new WebinyError(\n `Data loader did not return array of items or empty array.`,\n \"INVALID_DATA_LOADER_RESULT\",\n {\n loader,\n ids,\n results\n }\n );\n }\n\n public clearAll(params?: DataLoadersHandlerInterfaceClearAllParams): void {\n this.cache.clearAll(params?.model);\n }\n}\n"],"names":["DataLoadersHandler","params","DataLoaderCache","ids","id","entryId","parseIdentifier","name","model","cacheParams","loader","factory","getDataLoaderFactory","results","Array","acc","res","WebinyError","JSON","ex"],"mappings":"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"}
@@ -1,27 +1,9 @@
1
- /**
2
- * This function will assign a minimum_should_match for the query if conditions are met:
3
- * * should is an array
4
- * * it is not empty
5
- * * minimum_should_match is not already set
6
- *
7
- *
8
- * By the default we set it to 1 as we want at least one OR condition to produce results.
9
- *
10
- * Users can modify minimum_should_match value via the body or query modification plugins.
11
- */
12
-
13
- export const assignMinimumShouldMatchToQuery = ({
14
- query,
15
- value = 1
16
- }) => {
17
- if (!Array.isArray(query.should)) {
18
- return;
19
- } else if (query.should.length === 0) {
20
- return;
21
- } else if (query.minimum_should_match) {
22
- return;
23
- }
24
- query.minimum_should_match = value > 0 ? value : 1;
1
+ const assignMinimumShouldMatchToQuery = ({ query, value = 1 })=>{
2
+ if (!Array.isArray(query.should)) return;
3
+ if (0 === query.should.length) return;
4
+ if (query.minimum_should_match) return;
5
+ query.minimum_should_match = value > 0 ? value : 1;
25
6
  };
7
+ export { assignMinimumShouldMatchToQuery };
26
8
 
27
9
  //# sourceMappingURL=assignMinimumShouldMatchToQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["assignMinimumShouldMatchToQuery","query","value","Array","isArray","should","length","minimum_should_match"],"sources":["assignMinimumShouldMatchToQuery.ts"],"sourcesContent":["import type { QueryDslBoolQuery as BoolQueryConfig } from \"@webiny/api-opensearch/types.js\";\n\n/**\n * This function will assign a minimum_should_match for the query if conditions are met:\n * * should is an array\n * * it is not empty\n * * minimum_should_match is not already set\n *\n *\n * By the default we set it to 1 as we want at least one OR condition to produce results.\n *\n * Users can modify minimum_should_match value via the body or query modification plugins.\n */\ninterface Params {\n query: BoolQueryConfig;\n value?: number;\n}\nexport const assignMinimumShouldMatchToQuery = ({ query, value = 1 }: Params): void => {\n if (!Array.isArray(query.should)) {\n return;\n } else if (query.should.length === 0) {\n return;\n } else if (query.minimum_should_match) {\n return;\n }\n query.minimum_should_match = value > 0 ? value : 1;\n};\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,MAAMA,+BAA+B,GAAGA,CAAC;EAAEC,KAAK;EAAEC,KAAK,GAAG;AAAU,CAAC,KAAW;EACnF,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,KAAK,CAACI,MAAM,CAAC,EAAE;IAC9B;EACJ,CAAC,MAAM,IAAIJ,KAAK,CAACI,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;IAClC;EACJ,CAAC,MAAM,IAAIL,KAAK,CAACM,oBAAoB,EAAE;IACnC;EACJ;EACAN,KAAK,CAACM,oBAAoB,GAAGL,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,CAAC;AACtD,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js","sources":["../../../../src/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.ts"],"sourcesContent":["import type { QueryDslBoolQuery as BoolQueryConfig } from \"@webiny/api-opensearch/types.js\";\n\n/**\n * This function will assign a minimum_should_match for the query if conditions are met:\n * * should is an array\n * * it is not empty\n * * minimum_should_match is not already set\n *\n *\n * By the default we set it to 1 as we want at least one OR condition to produce results.\n *\n * Users can modify minimum_should_match value via the body or query modification plugins.\n */\ninterface Params {\n query: BoolQueryConfig;\n value?: number;\n}\nexport const assignMinimumShouldMatchToQuery = ({ query, value = 1 }: Params): void => {\n if (!Array.isArray(query.should)) {\n return;\n } else if (query.should.length === 0) {\n return;\n } else if (query.minimum_should_match) {\n return;\n }\n query.minimum_should_match = value > 0 ? value : 1;\n};\n"],"names":["assignMinimumShouldMatchToQuery","query","value","Array"],"mappings":"AAiBO,MAAMA,kCAAkC,CAAC,EAAEC,KAAK,EAAEC,QAAQ,CAAC,EAAU;IACxE,IAAI,CAACC,MAAM,OAAO,CAACF,MAAM,MAAM,GAC3B;IACG,IAAIA,AAAwB,MAAxBA,MAAM,MAAM,CAAC,MAAM,EAC1B;IACG,IAAIA,MAAM,oBAAoB,EACjC;IAEJA,MAAM,oBAAoB,GAAGC,QAAQ,IAAIA,QAAQ;AACrD"}
@@ -5,134 +5,83 @@ import { applyFullTextSearch } from "./fullTextSearch.js";
5
5
  import { createElasticsearchSort } from "./sort.js";
6
6
  import { createExecFiltering } from "./filtering/index.js";
7
7
  import { assignMinimumShouldMatchToQuery } from "./assignMinimumShouldMatchToQuery.js";
8
- export const createElasticsearchBody = ({
9
- plugins,
10
- model,
11
- params,
12
- fieldRegistry,
13
- fieldIndexRegistry,
14
- bodyModifiers,
15
- sortModifiers,
16
- queryModifiers,
17
- valueSearchRegistry,
18
- fullTextSearches,
19
- filterRegistry
20
- }) => {
21
- const {
22
- fields,
23
- search: term,
24
- where,
25
- sort: initialSort,
26
- after,
27
- limit
28
- } = params;
29
- /**
30
- * We need the model fields constructed as a key -> field value, so we do not need to iterate through array when we require some field.
31
- */
32
- const modelFields = createModelFields({
33
- model,
34
- fieldRegistry,
35
- fieldIndexRegistry
36
- });
37
-
38
- /**
39
- * Filter query modifiers applicable to this model.
40
- */
41
- const applicableQueryModifiers = queryModifiers.filter(m => {
42
- return !m.modelId || m.modelId === model.modelId;
43
- });
44
- /**
45
- * Filter sort modifiers applicable to this model.
46
- */
47
- const applicableSortModifiers = sortModifiers.filter(m => !m.modelId || m.modelId === model.modelId);
48
- /**
49
- * Filter body modifiers applicable to this model.
50
- */
51
- const applicableBodyModifiers = bodyModifiers.filter(m => {
52
- return !m.modelId || m.modelId === model.modelId;
53
- });
54
- /**
55
- * We need the fields which we can search through via the full text search.
56
- *
57
- */
58
- const fullTextSearchFields = createFullTextSearchFields({
59
- fields: modelFields,
60
- term,
61
- targets: fields
62
- });
63
- /**
64
- * The initial elasticsearch query where we attach some default conditions we always need.
65
- */
66
- const query = createInitialQuery({
67
- where,
68
- model
69
- });
70
- /**
71
- * Apply the full text search, if term is set.
72
- */
73
- applyFullTextSearch({
74
- model,
75
- fullTextSearches,
76
- query,
77
- term,
78
- fields: fullTextSearchFields
79
- });
80
- const execFiltering = createExecFiltering({
81
- model,
82
- fields: modelFields,
83
- plugins,
84
- valueSearchRegistry,
85
- filterRegistry
86
- });
87
- execFiltering({
88
- where,
89
- query
90
- });
91
- for (const modifier of applicableQueryModifiers) {
92
- modifier.modifyQuery({
93
- query,
94
- model,
95
- where
8
+ const createElasticsearchBody = ({ plugins, model, params, fieldRegistry, fieldIndexRegistry, bodyModifiers, sortModifiers, queryModifiers, valueSearchRegistry, fullTextSearches, filterRegistry })=>{
9
+ const { fields, search: term, where, sort: initialSort, after, limit } = params;
10
+ const modelFields = createModelFields({
11
+ model,
12
+ fieldRegistry,
13
+ fieldIndexRegistry
14
+ });
15
+ const applicableQueryModifiers = queryModifiers.filter((m)=>!m.modelId || m.modelId === model.modelId);
16
+ const applicableSortModifiers = sortModifiers.filter((m)=>!m.modelId || m.modelId === model.modelId);
17
+ const applicableBodyModifiers = bodyModifiers.filter((m)=>!m.modelId || m.modelId === model.modelId);
18
+ const fullTextSearchFields = createFullTextSearchFields({
19
+ fields: modelFields,
20
+ term,
21
+ targets: fields
22
+ });
23
+ const query = createInitialQuery({
24
+ where,
25
+ model
26
+ });
27
+ applyFullTextSearch({
28
+ model,
29
+ fullTextSearches,
30
+ query,
31
+ term,
32
+ fields: fullTextSearchFields
33
+ });
34
+ const execFiltering = createExecFiltering({
35
+ model,
36
+ fields: modelFields,
37
+ plugins,
38
+ valueSearchRegistry,
39
+ filterRegistry
40
+ });
41
+ execFiltering({
42
+ where,
43
+ query
44
+ });
45
+ for (const modifier of applicableQueryModifiers)modifier.modifyQuery({
46
+ query,
47
+ model,
48
+ where
49
+ });
50
+ const sort = createElasticsearchSort({
51
+ sort: initialSort,
52
+ modelFields,
53
+ model,
54
+ valueSearchRegistry
55
+ });
56
+ for (const modifier of applicableSortModifiers)modifier.modifySort({
57
+ sort,
58
+ model
96
59
  });
97
- }
98
- const sort = createElasticsearchSort({
99
- sort: initialSort,
100
- modelFields,
101
- model,
102
- valueSearchRegistry
103
- });
104
- for (const modifier of applicableSortModifiers) {
105
- modifier.modifySort({
106
- sort,
107
- model
60
+ const boolQuery = {
61
+ must: query.must.length > 0 ? query.must : void 0,
62
+ must_not: query.must_not.length > 0 ? query.must_not : void 0,
63
+ should: query.should.length > 0 ? query.should : void 0,
64
+ filter: query.filter.length > 0 ? query.filter : void 0
65
+ };
66
+ assignMinimumShouldMatchToQuery({
67
+ query: boolQuery
108
68
  });
109
- }
110
- const boolQuery = {
111
- must: query.must.length > 0 ? query.must : undefined,
112
- must_not: query.must_not.length > 0 ? query.must_not : undefined,
113
- should: query.should.length > 0 ? query.should : undefined,
114
- filter: query.filter.length > 0 ? query.filter : undefined
115
- };
116
- assignMinimumShouldMatchToQuery({
117
- query: boolQuery
118
- });
119
- const body = {
120
- query: {
121
- bool: boolQuery
122
- },
123
- sort,
124
- size: (limit || 0) + 1,
125
- search_after: after,
126
- track_total_hits: true
127
- };
128
- for (const modifier of applicableBodyModifiers) {
129
- modifier.modifyBody({
130
- body,
131
- model,
132
- where
69
+ const body = {
70
+ query: {
71
+ bool: boolQuery
72
+ },
73
+ sort,
74
+ size: (limit || 0) + 1,
75
+ search_after: after,
76
+ track_total_hits: true
77
+ };
78
+ for (const modifier of applicableBodyModifiers)modifier.modifyBody({
79
+ body,
80
+ model,
81
+ where
133
82
  });
134
- }
135
- return body;
83
+ return body;
136
84
  };
85
+ export { createElasticsearchBody };
137
86
 
138
87
  //# sourceMappingURL=body.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createModelFields","createFullTextSearchFields","createInitialQuery","applyFullTextSearch","createElasticsearchSort","createExecFiltering","assignMinimumShouldMatchToQuery","createElasticsearchBody","plugins","model","params","fieldRegistry","fieldIndexRegistry","bodyModifiers","sortModifiers","queryModifiers","valueSearchRegistry","fullTextSearches","filterRegistry","fields","search","term","where","sort","initialSort","after","limit","modelFields","applicableQueryModifiers","filter","m","modelId","applicableSortModifiers","applicableBodyModifiers","fullTextSearchFields","targets","query","execFiltering","modifier","modifyQuery","modifySort","boolQuery","must","length","undefined","must_not","should","body","bool","size","search_after","track_total_hits","modifyBody"],"sources":["body.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsEntryListParams,\n CmsEntryListWhere,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { createModelFields } from \"./fields.js\";\nimport { createFullTextSearchFields } from \"./fullTextSearchFields.js\";\nimport { createInitialQuery } from \"./initialQuery.js\";\nimport { applyFullTextSearch } from \"./fullTextSearch.js\";\nimport type { CmsEntryOpenSearchBodyModifier } from \"~/features/CmsEntryOpenSearchBodyModifier/index.js\";\nimport type { CmsEntryOpenSearchSortModifier } from \"~/features/CmsEntryOpenSearchSortModifier/index.js\";\nimport type { CmsEntryOpenSearchQueryModifier } from \"~/features/CmsEntryOpenSearchQueryModifier/index.js\";\nimport type { CmsEntryOpenSearchValueSearchRegistry } from \"~/features/CmsEntryOpenSearchValueSearch/index.js\";\nimport type { CmsEntryOpenSearchFullTextSearch } from \"~/features/CmsEntryOpenSearchFullTextSearch/index.js\";\nimport { createElasticsearchSort } from \"./sort.js\";\nimport type {\n PrimitiveValue,\n QueryDslBoolQuery as BoolQueryConfig,\n SearchBody\n} from \"@webiny/api-opensearch/types.js\";\nimport { createExecFiltering } from \"./filtering/index.js\";\nimport { assignMinimumShouldMatchToQuery } from \"./assignMinimumShouldMatchToQuery.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/features/graphql/index.js\";\nimport { CmsEntryOpenSearchFieldIndexRegistry } from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\nimport type { CmsEntryOpenSearchFilterRegistry } from \"~/features/CmsEntryOpenSearchFilter/index.js\";\n\ninterface ICreateElasticsearchBodyParams {\n plugins: PluginsContainer;\n model: CmsModel;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;\n bodyModifiers: CmsEntryOpenSearchBodyModifier.Interface[];\n sortModifiers: CmsEntryOpenSearchSortModifier.Interface[];\n queryModifiers: CmsEntryOpenSearchQueryModifier.Interface[];\n valueSearchRegistry: CmsEntryOpenSearchValueSearchRegistry.Interface;\n fullTextSearches: CmsEntryOpenSearchFullTextSearch.Interface[];\n filterRegistry: CmsEntryOpenSearchFilterRegistry.Interface;\n params: Omit<CmsEntryListParams, \"where\" | \"after\"> & {\n where: CmsEntryListWhere;\n after?: PrimitiveValue[];\n };\n}\nexport const createElasticsearchBody = ({\n plugins,\n model,\n params,\n fieldRegistry,\n fieldIndexRegistry,\n bodyModifiers,\n sortModifiers,\n queryModifiers,\n valueSearchRegistry,\n fullTextSearches,\n filterRegistry\n}: ICreateElasticsearchBodyParams): SearchBody => {\n const { fields, search: term, where, sort: initialSort, after, limit } = params;\n /**\n * We need the model fields constructed as a key -> field value, so we do not need to iterate through array when we require some field.\n */\n const modelFields = createModelFields({\n model,\n fieldRegistry,\n fieldIndexRegistry\n });\n\n /**\n * Filter query modifiers applicable to this model.\n */\n const applicableQueryModifiers = queryModifiers.filter(m => {\n return !m.modelId || m.modelId === model.modelId;\n });\n /**\n * Filter sort modifiers applicable to this model.\n */\n const applicableSortModifiers = sortModifiers.filter(\n m => !m.modelId || m.modelId === model.modelId\n );\n /**\n * Filter body modifiers applicable to this model.\n */\n const applicableBodyModifiers = bodyModifiers.filter(m => {\n return !m.modelId || m.modelId === model.modelId;\n });\n /**\n * We need the fields which we can search through via the full text search.\n *\n */\n const fullTextSearchFields = createFullTextSearchFields({\n fields: modelFields,\n term,\n targets: fields\n });\n /**\n * The initial elasticsearch query where we attach some default conditions we always need.\n */\n const query = createInitialQuery({\n where,\n model\n });\n /**\n * Apply the full text search, if term is set.\n */\n applyFullTextSearch({\n model,\n fullTextSearches,\n query,\n term,\n fields: fullTextSearchFields\n });\n\n const execFiltering = createExecFiltering({\n model,\n fields: modelFields,\n plugins,\n valueSearchRegistry,\n filterRegistry\n });\n\n execFiltering({\n where,\n query\n });\n\n for (const modifier of applicableQueryModifiers) {\n modifier.modifyQuery({ query, model, where });\n }\n\n const sort = createElasticsearchSort({\n sort: initialSort,\n modelFields,\n model,\n valueSearchRegistry\n });\n\n for (const modifier of applicableSortModifiers) {\n modifier.modifySort({\n sort,\n model\n });\n }\n\n const boolQuery: BoolQueryConfig = {\n must: query.must.length > 0 ? query.must : undefined,\n must_not: query.must_not.length > 0 ? query.must_not : undefined,\n should: query.should.length > 0 ? query.should : undefined,\n filter: query.filter.length > 0 ? query.filter : undefined\n };\n\n assignMinimumShouldMatchToQuery({\n query: boolQuery\n });\n\n const body: SearchBody = {\n query: {\n bool: boolQuery\n },\n sort,\n size: (limit || 0) + 1,\n search_after: after,\n track_total_hits: true\n };\n\n for (const modifier of applicableBodyModifiers) {\n modifier.modifyBody({\n body,\n model,\n where\n });\n }\n\n return body;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"operations/entry/elasticsearch/body.js","sources":["../../../../src/operations/entry/elasticsearch/body.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsEntryListParams,\n CmsEntryListWhere,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { createModelFields } from \"./fields.js\";\nimport { createFullTextSearchFields } from \"./fullTextSearchFields.js\";\nimport { createInitialQuery } from \"./initialQuery.js\";\nimport { applyFullTextSearch } from \"./fullTextSearch.js\";\nimport type { CmsEntryOpenSearchBodyModifier } from \"~/features/CmsEntryOpenSearchBodyModifier/index.js\";\nimport type { CmsEntryOpenSearchSortModifier } from \"~/features/CmsEntryOpenSearchSortModifier/index.js\";\nimport type { CmsEntryOpenSearchQueryModifier } from \"~/features/CmsEntryOpenSearchQueryModifier/index.js\";\nimport type { CmsEntryOpenSearchValueSearchRegistry } from \"~/features/CmsEntryOpenSearchValueSearch/index.js\";\nimport type { CmsEntryOpenSearchFullTextSearch } from \"~/features/CmsEntryOpenSearchFullTextSearch/index.js\";\nimport { createElasticsearchSort } from \"./sort.js\";\nimport type {\n PrimitiveValue,\n QueryDslBoolQuery as BoolQueryConfig,\n SearchBody\n} from \"@webiny/api-opensearch/types.js\";\nimport { createExecFiltering } from \"./filtering/index.js\";\nimport { assignMinimumShouldMatchToQuery } from \"./assignMinimumShouldMatchToQuery.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/features/graphql/index.js\";\nimport { CmsEntryOpenSearchFieldIndexRegistry } from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\nimport type { CmsEntryOpenSearchFilterRegistry } from \"~/features/CmsEntryOpenSearchFilter/index.js\";\n\ninterface ICreateElasticsearchBodyParams {\n plugins: PluginsContainer;\n model: CmsModel;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;\n bodyModifiers: CmsEntryOpenSearchBodyModifier.Interface[];\n sortModifiers: CmsEntryOpenSearchSortModifier.Interface[];\n queryModifiers: CmsEntryOpenSearchQueryModifier.Interface[];\n valueSearchRegistry: CmsEntryOpenSearchValueSearchRegistry.Interface;\n fullTextSearches: CmsEntryOpenSearchFullTextSearch.Interface[];\n filterRegistry: CmsEntryOpenSearchFilterRegistry.Interface;\n params: Omit<CmsEntryListParams, \"where\" | \"after\"> & {\n where: CmsEntryListWhere;\n after?: PrimitiveValue[];\n };\n}\nexport const createElasticsearchBody = ({\n plugins,\n model,\n params,\n fieldRegistry,\n fieldIndexRegistry,\n bodyModifiers,\n sortModifiers,\n queryModifiers,\n valueSearchRegistry,\n fullTextSearches,\n filterRegistry\n}: ICreateElasticsearchBodyParams): SearchBody => {\n const { fields, search: term, where, sort: initialSort, after, limit } = params;\n /**\n * We need the model fields constructed as a key -> field value, so we do not need to iterate through array when we require some field.\n */\n const modelFields = createModelFields({\n model,\n fieldRegistry,\n fieldIndexRegistry\n });\n\n /**\n * Filter query modifiers applicable to this model.\n */\n const applicableQueryModifiers = queryModifiers.filter(m => {\n return !m.modelId || m.modelId === model.modelId;\n });\n /**\n * Filter sort modifiers applicable to this model.\n */\n const applicableSortModifiers = sortModifiers.filter(\n m => !m.modelId || m.modelId === model.modelId\n );\n /**\n * Filter body modifiers applicable to this model.\n */\n const applicableBodyModifiers = bodyModifiers.filter(m => {\n return !m.modelId || m.modelId === model.modelId;\n });\n /**\n * We need the fields which we can search through via the full text search.\n *\n */\n const fullTextSearchFields = createFullTextSearchFields({\n fields: modelFields,\n term,\n targets: fields\n });\n /**\n * The initial elasticsearch query where we attach some default conditions we always need.\n */\n const query = createInitialQuery({\n where,\n model\n });\n /**\n * Apply the full text search, if term is set.\n */\n applyFullTextSearch({\n model,\n fullTextSearches,\n query,\n term,\n fields: fullTextSearchFields\n });\n\n const execFiltering = createExecFiltering({\n model,\n fields: modelFields,\n plugins,\n valueSearchRegistry,\n filterRegistry\n });\n\n execFiltering({\n where,\n query\n });\n\n for (const modifier of applicableQueryModifiers) {\n modifier.modifyQuery({ query, model, where });\n }\n\n const sort = createElasticsearchSort({\n sort: initialSort,\n modelFields,\n model,\n valueSearchRegistry\n });\n\n for (const modifier of applicableSortModifiers) {\n modifier.modifySort({\n sort,\n model\n });\n }\n\n const boolQuery: BoolQueryConfig = {\n must: query.must.length > 0 ? query.must : undefined,\n must_not: query.must_not.length > 0 ? query.must_not : undefined,\n should: query.should.length > 0 ? query.should : undefined,\n filter: query.filter.length > 0 ? query.filter : undefined\n };\n\n assignMinimumShouldMatchToQuery({\n query: boolQuery\n });\n\n const body: SearchBody = {\n query: {\n bool: boolQuery\n },\n sort,\n size: (limit || 0) + 1,\n search_after: after,\n track_total_hits: true\n };\n\n for (const modifier of applicableBodyModifiers) {\n modifier.modifyBody({\n body,\n model,\n where\n });\n }\n\n return body;\n};\n"],"names":["createElasticsearchBody","plugins","model","params","fieldRegistry","fieldIndexRegistry","bodyModifiers","sortModifiers","queryModifiers","valueSearchRegistry","fullTextSearches","filterRegistry","fields","term","where","initialSort","after","limit","modelFields","createModelFields","applicableQueryModifiers","m","applicableSortModifiers","applicableBodyModifiers","fullTextSearchFields","createFullTextSearchFields","query","createInitialQuery","applyFullTextSearch","execFiltering","createExecFiltering","modifier","sort","createElasticsearchSort","boolQuery","undefined","assignMinimumShouldMatchToQuery","body"],"mappings":";;;;;;;AA2CO,MAAMA,0BAA0B,CAAC,EACpCC,OAAO,EACPC,KAAK,EACLC,MAAM,EACNC,aAAa,EACbC,kBAAkB,EAClBC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,mBAAmB,EACnBC,gBAAgB,EAChBC,cAAc,EACe;IAC7B,MAAM,EAAEC,MAAM,EAAE,QAAQC,IAAI,EAAEC,KAAK,EAAE,MAAMC,WAAW,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGd;IAIzE,MAAMe,cAAcC,kBAAkB;QAClCjB;QACAE;QACAC;IACJ;IAKA,MAAMe,2BAA2BZ,eAAe,MAAM,CAACa,CAAAA,IAC5C,CAACA,EAAE,OAAO,IAAIA,EAAE,OAAO,KAAKnB,MAAM,OAAO;IAKpD,MAAMoB,0BAA0Bf,cAAc,MAAM,CAChDc,CAAAA,IAAK,CAACA,EAAE,OAAO,IAAIA,EAAE,OAAO,KAAKnB,MAAM,OAAO;IAKlD,MAAMqB,0BAA0BjB,cAAc,MAAM,CAACe,CAAAA,IAC1C,CAACA,EAAE,OAAO,IAAIA,EAAE,OAAO,KAAKnB,MAAM,OAAO;IAMpD,MAAMsB,uBAAuBC,2BAA2B;QACpD,QAAQP;QACRL;QACA,SAASD;IACb;IAIA,MAAMc,QAAQC,mBAAmB;QAC7Bb;QACAZ;IACJ;IAIA0B,oBAAoB;QAChB1B;QACAQ;QACAgB;QACAb;QACA,QAAQW;IACZ;IAEA,MAAMK,gBAAgBC,oBAAoB;QACtC5B;QACA,QAAQgB;QACRjB;QACAQ;QACAE;IACJ;IAEAkB,cAAc;QACVf;QACAY;IACJ;IAEA,KAAK,MAAMK,YAAYX,yBACnBW,SAAS,WAAW,CAAC;QAAEL;QAAOxB;QAAOY;IAAM;IAG/C,MAAMkB,OAAOC,wBAAwB;QACjC,MAAMlB;QACNG;QACAhB;QACAO;IACJ;IAEA,KAAK,MAAMsB,YAAYT,wBACnBS,SAAS,UAAU,CAAC;QAChBC;QACA9B;IACJ;IAGJ,MAAMgC,YAA6B;QAC/B,MAAMR,MAAM,IAAI,CAAC,MAAM,GAAG,IAAIA,MAAM,IAAI,GAAGS;QAC3C,UAAUT,MAAM,QAAQ,CAAC,MAAM,GAAG,IAAIA,MAAM,QAAQ,GAAGS;QACvD,QAAQT,MAAM,MAAM,CAAC,MAAM,GAAG,IAAIA,MAAM,MAAM,GAAGS;QACjD,QAAQT,MAAM,MAAM,CAAC,MAAM,GAAG,IAAIA,MAAM,MAAM,GAAGS;IACrD;IAEAC,gCAAgC;QAC5B,OAAOF;IACX;IAEA,MAAMG,OAAmB;QACrB,OAAO;YACH,MAAMH;QACV;QACAF;QACA,MAAOf,AAAAA,CAAAA,SAAS,KAAK;QACrB,cAAcD;QACd,kBAAkB;IACtB;IAEA,KAAK,MAAMe,YAAYR,wBACnBQ,SAAS,UAAU,CAAC;QAChBM;QACAnC;QACAY;IACJ;IAGJ,OAAOuB;AACX"}
@@ -1,10 +1,9 @@
1
1
  import { createModelField } from "@webiny/api-headless-cms";
2
- export const createSystemField = field => {
3
- return createModelField({
4
- ...field,
5
- id: field.fieldId,
6
- label: field.fieldId
7
- });
8
- };
2
+ const createSystemField = (field)=>createModelField({
3
+ ...field,
4
+ id: field.fieldId,
5
+ label: field.fieldId
6
+ });
7
+ export { createSystemField };
9
8
 
10
9
  //# sourceMappingURL=createSystemField.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createModelField","createSystemField","field","id","fieldId","label"],"sources":["createSystemField.ts"],"sourcesContent":["import type { CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\n\ntype PartialCmsModelField = Partial<CmsModelField> &\n Pick<CmsModelField, \"storageId\" | \"fieldId\" | \"type\">;\nexport const createSystemField = (field: PartialCmsModelField): CmsModelField => {\n return createModelField({\n ...field,\n id: field.fieldId,\n label: field.fieldId\n });\n};\n"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,0BAA0B;AAI3D,OAAO,MAAMC,iBAAiB,GAAIC,KAA2B,IAAoB;EAC7E,OAAOF,gBAAgB,CAAC;IACpB,GAAGE,KAAK;IACRC,EAAE,EAAED,KAAK,CAACE,OAAO;IACjBC,KAAK,EAAEH,KAAK,CAACE;EACjB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"operations/entry/elasticsearch/fields/createSystemField.js","sources":["../../../../../src/operations/entry/elasticsearch/fields/createSystemField.ts"],"sourcesContent":["import type { CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\n\ntype PartialCmsModelField = Partial<CmsModelField> &\n Pick<CmsModelField, \"storageId\" | \"fieldId\" | \"type\">;\nexport const createSystemField = (field: PartialCmsModelField): CmsModelField => {\n return createModelField({\n ...field,\n id: field.fieldId,\n label: field.fieldId\n });\n};\n"],"names":["createSystemField","field","createModelField"],"mappings":";AAKO,MAAMA,oBAAoB,CAACC,QACvBC,iBAAiB;QACpB,GAAGD,KAAK;QACR,IAAIA,MAAM,OAAO;QACjB,OAAOA,MAAM,OAAO;IACxB"}