@webiny/api-headless-cms-ddb-es 6.0.0-alpha.5 → 6.0.0-rc.0

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 (282) hide show
  1. package/README.md +6 -30
  2. package/configurations.d.ts +4 -5
  3. package/configurations.js +12 -24
  4. package/configurations.js.map +1 -1
  5. package/definitions/entry.d.ts +4 -6
  6. package/definitions/entry.js +5 -174
  7. package/definitions/entry.js.map +1 -1
  8. package/definitions/group.d.ts +6 -7
  9. package/definitions/group.js +5 -58
  10. package/definitions/group.js.map +1 -1
  11. package/definitions/model.d.ts +6 -7
  12. package/definitions/model.js +5 -102
  13. package/definitions/model.js.map +1 -1
  14. package/definitions/types.d.ts +59 -0
  15. package/definitions/types.js +3 -0
  16. package/definitions/types.js.map +1 -0
  17. package/dynamoDb/index.d.ts +2 -2
  18. package/dynamoDb/index.js +5 -13
  19. package/dynamoDb/index.js.map +1 -1
  20. package/dynamoDb/storage/longText.js +10 -18
  21. package/dynamoDb/storage/longText.js.map +1 -1
  22. package/dynamoDb/storage/richText.js +10 -18
  23. package/dynamoDb/storage/richText.js.map +1 -1
  24. package/elasticsearch/createElasticsearchIndex.d.ts +1 -1
  25. package/elasticsearch/createElasticsearchIndex.js +7 -15
  26. package/elasticsearch/createElasticsearchIndex.js.map +1 -1
  27. package/elasticsearch/deleteElasticsearchIndex.d.ts +1 -1
  28. package/elasticsearch/deleteElasticsearchIndex.js +3 -10
  29. package/elasticsearch/deleteElasticsearchIndex.js.map +1 -1
  30. package/elasticsearch/index.d.ts +1 -1
  31. package/elasticsearch/index.js +3 -11
  32. package/elasticsearch/index.js.map +1 -1
  33. package/elasticsearch/indexing/dateTimeIndexing.d.ts +1 -1
  34. package/elasticsearch/indexing/dateTimeIndexing.js +1 -8
  35. package/elasticsearch/indexing/dateTimeIndexing.js.map +1 -1
  36. package/elasticsearch/indexing/defaultFieldIndexing.d.ts +1 -1
  37. package/elasticsearch/indexing/defaultFieldIndexing.js +1 -8
  38. package/elasticsearch/indexing/defaultFieldIndexing.js.map +1 -1
  39. package/elasticsearch/indexing/index.d.ts +1 -1
  40. package/elasticsearch/indexing/index.js +8 -16
  41. package/elasticsearch/indexing/index.js.map +1 -1
  42. package/elasticsearch/indexing/jsonIndexing.d.ts +1 -1
  43. package/elasticsearch/indexing/jsonIndexing.js +1 -8
  44. package/elasticsearch/indexing/jsonIndexing.js.map +1 -1
  45. package/elasticsearch/indexing/longTextIndexing.d.ts +1 -1
  46. package/elasticsearch/indexing/longTextIndexing.js +1 -8
  47. package/elasticsearch/indexing/longTextIndexing.js.map +1 -1
  48. package/elasticsearch/indexing/numberIndexing.d.ts +1 -1
  49. package/elasticsearch/indexing/numberIndexing.js +1 -8
  50. package/elasticsearch/indexing/numberIndexing.js.map +1 -1
  51. package/elasticsearch/indexing/objectIndexing.d.ts +1 -1
  52. package/elasticsearch/indexing/objectIndexing.js +6 -13
  53. package/elasticsearch/indexing/objectIndexing.js.map +1 -1
  54. package/elasticsearch/indexing/richTextIndexing.d.ts +1 -1
  55. package/elasticsearch/indexing/richTextIndexing.js +1 -8
  56. package/elasticsearch/indexing/richTextIndexing.js.map +1 -1
  57. package/elasticsearch/indices/base.d.ts +1 -1
  58. package/elasticsearch/indices/base.js +4 -10
  59. package/elasticsearch/indices/base.js.map +1 -1
  60. package/elasticsearch/indices/index.d.ts +1 -1
  61. package/elasticsearch/indices/index.js +3 -11
  62. package/elasticsearch/indices/index.js.map +1 -1
  63. package/elasticsearch/search/index.d.ts +1 -1
  64. package/elasticsearch/search/index.js +4 -11
  65. package/elasticsearch/search/index.js.map +1 -1
  66. package/elasticsearch/search/refSearch.d.ts +1 -1
  67. package/elasticsearch/search/refSearch.js +3 -10
  68. package/elasticsearch/search/refSearch.js.map +1 -1
  69. package/elasticsearch/search/searchableJson.d.ts +1 -1
  70. package/elasticsearch/search/searchableJson.js +9 -16
  71. package/elasticsearch/search/searchableJson.js.map +1 -1
  72. package/elasticsearch/search/timeSearch.d.ts +1 -1
  73. package/elasticsearch/search/timeSearch.js +3 -10
  74. package/elasticsearch/search/timeSearch.js.map +1 -1
  75. package/helpers/entryIndexHelpers.d.ts +9 -9
  76. package/helpers/entryIndexHelpers.js +32 -26
  77. package/helpers/entryIndexHelpers.js.map +1 -1
  78. package/helpers/fieldIdentifier.d.ts +1 -1
  79. package/helpers/fieldIdentifier.js +2 -10
  80. package/helpers/fieldIdentifier.js.map +1 -1
  81. package/helpers/index.d.ts +2 -2
  82. package/helpers/index.js +2 -27
  83. package/helpers/index.js.map +1 -1
  84. package/index.d.ts +2 -2
  85. package/index.js +98 -133
  86. package/index.js.map +1 -1
  87. package/operations/entry/dataLoader/DataLoaderCache.d.ts +0 -2
  88. package/operations/entry/dataLoader/DataLoaderCache.js +2 -9
  89. package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -1
  90. package/operations/entry/dataLoader/constants.js +1 -7
  91. package/operations/entry/dataLoader/constants.js.map +1 -1
  92. package/operations/entry/dataLoader/createBatchScheduleFn.js +4 -10
  93. package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -1
  94. package/operations/entry/dataLoader/getAllEntryRevisions.d.ts +3 -3
  95. package/operations/entry/dataLoader/getAllEntryRevisions.js +11 -24
  96. package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -1
  97. package/operations/entry/dataLoader/getLatestRevisionByEntryId.d.ts +3 -3
  98. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +18 -30
  99. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -1
  100. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.d.ts +3 -3
  101. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +18 -30
  102. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -1
  103. package/operations/entry/dataLoader/getRevisionById.d.ts +3 -3
  104. package/operations/entry/dataLoader/getRevisionById.js +23 -35
  105. package/operations/entry/dataLoader/getRevisionById.js.map +1 -1
  106. package/operations/entry/dataLoader/index.d.ts +3 -3
  107. package/operations/entry/dataLoader/index.js +10 -31
  108. package/operations/entry/dataLoader/index.js.map +1 -1
  109. package/operations/entry/dataLoader/types.d.ts +3 -4
  110. package/operations/entry/dataLoader/types.js +1 -5
  111. package/operations/entry/dataLoader/types.js.map +1 -1
  112. package/operations/entry/dataLoaders.d.ts +13 -13
  113. package/operations/entry/dataLoaders.js +15 -25
  114. package/operations/entry/dataLoaders.js.map +1 -1
  115. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.d.ts +1 -1
  116. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js +1 -8
  117. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -1
  118. package/operations/entry/elasticsearch/body.d.ts +2 -2
  119. package/operations/entry/elasticsearch/body.js +21 -28
  120. package/operations/entry/elasticsearch/body.js.map +1 -1
  121. package/operations/entry/elasticsearch/fields.d.ts +2 -2
  122. package/operations/entry/elasticsearch/fields.js +110 -24
  123. package/operations/entry/elasticsearch/fields.js.map +1 -1
  124. package/operations/entry/elasticsearch/filtering/applyFiltering.d.ts +2 -2
  125. package/operations/entry/elasticsearch/filtering/applyFiltering.js +9 -17
  126. package/operations/entry/elasticsearch/filtering/applyFiltering.js.map +1 -1
  127. package/operations/entry/elasticsearch/filtering/exec.d.ts +6 -5
  128. package/operations/entry/elasticsearch/filtering/exec.js +48 -45
  129. package/operations/entry/elasticsearch/filtering/exec.js.map +1 -1
  130. package/operations/entry/elasticsearch/filtering/index.d.ts +1 -1
  131. package/operations/entry/elasticsearch/filtering/index.js +1 -16
  132. package/operations/entry/elasticsearch/filtering/index.js.map +1 -1
  133. package/operations/entry/elasticsearch/filtering/path.d.ts +1 -1
  134. package/operations/entry/elasticsearch/filtering/path.js +5 -15
  135. package/operations/entry/elasticsearch/filtering/path.js.map +1 -1
  136. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.d.ts +1 -1
  137. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js +6 -14
  138. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js.map +1 -1
  139. package/operations/entry/elasticsearch/filtering/plugins/index.d.ts +1 -1
  140. package/operations/entry/elasticsearch/filtering/plugins/index.js +5 -12
  141. package/operations/entry/elasticsearch/filtering/plugins/index.js.map +1 -1
  142. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.d.ts +1 -1
  143. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js +7 -15
  144. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js.map +1 -1
  145. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.d.ts +1 -1
  146. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js +7 -15
  147. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js.map +1 -1
  148. package/operations/entry/elasticsearch/filtering/populated.d.ts +1 -1
  149. package/operations/entry/elasticsearch/filtering/populated.js +1 -8
  150. package/operations/entry/elasticsearch/filtering/populated.js.map +1 -1
  151. package/operations/entry/elasticsearch/filtering/values.d.ts +1 -1
  152. package/operations/entry/elasticsearch/filtering/values.js +4 -12
  153. package/operations/entry/elasticsearch/filtering/values.js.map +1 -1
  154. package/operations/entry/elasticsearch/fullTextSearch.d.ts +2 -2
  155. package/operations/entry/elasticsearch/fullTextSearch.js +6 -12
  156. package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -1
  157. package/operations/entry/elasticsearch/fullTextSearchFields.d.ts +1 -1
  158. package/operations/entry/elasticsearch/fullTextSearchFields.js +1 -8
  159. package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -1
  160. package/operations/entry/elasticsearch/initialQuery.d.ts +2 -2
  161. package/operations/entry/elasticsearch/initialQuery.js +9 -27
  162. package/operations/entry/elasticsearch/initialQuery.js.map +1 -1
  163. package/operations/entry/elasticsearch/keyword.d.ts +1 -1
  164. package/operations/entry/elasticsearch/keyword.js +4 -9
  165. package/operations/entry/elasticsearch/keyword.js.map +1 -1
  166. package/operations/entry/elasticsearch/plugins/bodyModifier.d.ts +2 -2
  167. package/operations/entry/elasticsearch/plugins/bodyModifier.js +3 -10
  168. package/operations/entry/elasticsearch/plugins/bodyModifier.js.map +1 -1
  169. package/operations/entry/elasticsearch/plugins/operator.d.ts +1 -2
  170. package/operations/entry/elasticsearch/plugins/operator.js +4 -19
  171. package/operations/entry/elasticsearch/plugins/operator.js.map +1 -1
  172. package/operations/entry/elasticsearch/plugins/queryModifier.d.ts +2 -2
  173. package/operations/entry/elasticsearch/plugins/queryModifier.js +3 -10
  174. package/operations/entry/elasticsearch/plugins/queryModifier.js.map +1 -1
  175. package/operations/entry/elasticsearch/plugins/search.d.ts +1 -1
  176. package/operations/entry/elasticsearch/plugins/search.js +5 -13
  177. package/operations/entry/elasticsearch/plugins/search.js.map +1 -1
  178. package/operations/entry/elasticsearch/plugins/sortModifier.d.ts +2 -2
  179. package/operations/entry/elasticsearch/plugins/sortModifier.js +3 -10
  180. package/operations/entry/elasticsearch/plugins/sortModifier.js.map +1 -1
  181. package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js +1 -8
  182. package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -1
  183. package/operations/entry/elasticsearch/sort.d.ts +3 -3
  184. package/operations/entry/elasticsearch/sort.js +51 -33
  185. package/operations/entry/elasticsearch/sort.js.map +1 -1
  186. package/operations/entry/elasticsearch/transformValueForSearch.d.ts +2 -2
  187. package/operations/entry/elasticsearch/transformValueForSearch.js +4 -9
  188. package/operations/entry/elasticsearch/transformValueForSearch.js.map +1 -1
  189. package/operations/entry/elasticsearch/types.d.ts +2 -2
  190. package/operations/entry/elasticsearch/types.js +1 -5
  191. package/operations/entry/elasticsearch/types.js.map +1 -1
  192. package/operations/entry/index.d.ts +5 -4
  193. package/operations/entry/index.js +333 -515
  194. package/operations/entry/index.js.map +1 -1
  195. package/operations/entry/keys.d.ts +31 -1
  196. package/operations/entry/keys.js +56 -19
  197. package/operations/entry/keys.js.map +1 -1
  198. package/operations/entry/recordType.js +3 -12
  199. package/operations/entry/recordType.js.map +1 -1
  200. package/operations/entry/transformations/convertEntryKeys.d.ts +6 -6
  201. package/operations/entry/transformations/convertEntryKeys.js +2 -10
  202. package/operations/entry/transformations/convertEntryKeys.js.map +1 -1
  203. package/operations/entry/transformations/index.d.ts +16 -16
  204. package/operations/entry/transformations/index.js +22 -30
  205. package/operations/entry/transformations/index.js.map +1 -1
  206. package/operations/entry/transformations/modifyEntryValues.d.ts +27 -34
  207. package/operations/entry/transformations/modifyEntryValues.js +1 -8
  208. package/operations/entry/transformations/modifyEntryValues.js.map +1 -1
  209. package/operations/entry/transformations/transformEntryKeys.d.ts +8 -8
  210. package/operations/entry/transformations/transformEntryKeys.js +4 -11
  211. package/operations/entry/transformations/transformEntryKeys.js.map +1 -1
  212. package/operations/entry/transformations/transformEntryToIndex.d.ts +6 -6
  213. package/operations/entry/transformations/transformEntryToIndex.js +3 -10
  214. package/operations/entry/transformations/transformEntryToIndex.js.map +1 -1
  215. package/operations/group/index.d.ts +5 -4
  216. package/operations/group/index.js +39 -73
  217. package/operations/group/index.js.map +1 -1
  218. package/operations/model/index.d.ts +3 -3
  219. package/operations/model/index.js +38 -57
  220. package/operations/model/index.js.map +1 -1
  221. package/package.json +27 -32
  222. package/plugins/CmsElasticsearchModelFieldPlugin.d.ts +1 -1
  223. package/plugins/CmsElasticsearchModelFieldPlugin.js +2 -8
  224. package/plugins/CmsElasticsearchModelFieldPlugin.js.map +1 -1
  225. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.d.ts +1 -1
  226. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js +3 -11
  227. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +1 -1
  228. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.d.ts +2 -2
  229. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js +3 -11
  230. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js.map +1 -1
  231. package/plugins/CmsEntryElasticsearchIndexPlugin.js +2 -9
  232. package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +1 -1
  233. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.d.ts +2 -2
  234. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js +3 -11
  235. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +1 -1
  236. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.d.ts +1 -1
  237. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js +3 -11
  238. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +1 -1
  239. package/plugins/CmsEntryElasticsearchSortModifierPlugin.d.ts +1 -1
  240. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js +3 -11
  241. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +1 -1
  242. package/plugins/CmsEntryElasticsearchValuesModifier.d.ts +12 -12
  243. package/plugins/CmsEntryElasticsearchValuesModifier.js +4 -12
  244. package/plugins/CmsEntryElasticsearchValuesModifier.js.map +1 -1
  245. package/plugins/CmsEntryFilterPlugin.d.ts +3 -3
  246. package/plugins/CmsEntryFilterPlugin.js +2 -9
  247. package/plugins/CmsEntryFilterPlugin.js.map +1 -1
  248. package/plugins/index.d.ts +8 -8
  249. package/plugins/index.js +8 -93
  250. package/plugins/index.js.map +1 -1
  251. package/tasks/createIndexTaskPlugin.d.ts +2 -2
  252. package/tasks/createIndexTaskPlugin.js +36 -62
  253. package/tasks/createIndexTaskPlugin.js.map +1 -1
  254. package/types.d.ts +23 -26
  255. package/types.js +5 -8
  256. package/types.js.map +1 -1
  257. package/values/NoValueContainer.js +1 -8
  258. package/values/NoValueContainer.js.map +1 -1
  259. package/definitions/entryElasticsearch.d.ts +0 -9
  260. package/definitions/entryElasticsearch.js +0 -41
  261. package/definitions/entryElasticsearch.js.map +0 -1
  262. package/definitions/system.d.ts +0 -9
  263. package/definitions/system.js +0 -42
  264. package/definitions/system.js.map +0 -1
  265. package/definitions/table.d.ts +0 -8
  266. package/definitions/table.js +0 -25
  267. package/definitions/table.js.map +0 -1
  268. package/definitions/tableElasticsearch.d.ts +0 -8
  269. package/definitions/tableElasticsearch.js +0 -25
  270. package/definitions/tableElasticsearch.js.map +0 -1
  271. package/elasticsearch/indices/japanese.d.ts +0 -2
  272. package/elasticsearch/indices/japanese.js +0 -14
  273. package/elasticsearch/indices/japanese.js.map +0 -1
  274. package/operations/entry/elasticsearch/logIgnoredEsResponseError.d.ts +0 -9
  275. package/operations/entry/elasticsearch/logIgnoredEsResponseError.js +0 -26
  276. package/operations/entry/elasticsearch/logIgnoredEsResponseError.js.map +0 -1
  277. package/operations/system/index.d.ts +0 -6
  278. package/operations/system/index.js +0 -94
  279. package/operations/system/index.js.map +0 -1
  280. package/operations/system/indexes.d.ts +0 -10
  281. package/operations/system/indexes.js +0 -41
  282. package/operations/system/indexes.js.map +0 -1
@@ -1,22 +1,17 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createModelFields = void 0;
8
- var _error = _interopRequireDefault(require("@webiny/error"));
9
- var _plugins = require("../../../plugins");
10
- var _constants = require("@webiny/api-headless-cms/constants");
1
+ import WebinyError from "@webiny/error";
2
+ import { CmsElasticsearchModelFieldPlugin } from "../../../plugins/index.js";
3
+ import { ENTRY_META_FIELDS, isDateTimeEntryMetaField, isIdentityEntryMetaField } from "@webiny/api-headless-cms/constants.js";
4
+ import { getBaseFieldType } from "@webiny/api-headless-cms/utils/getBaseFieldType.js";
5
+ import { createModelField } from "@webiny/api-headless-cms";
11
6
  const createSystemField = field => {
12
- return {
7
+ return createModelField({
13
8
  ...field,
14
9
  id: field.fieldId,
15
10
  label: field.fieldId
16
- };
11
+ });
17
12
  };
18
13
  const createSystemFields = () => {
19
- const onMetaFields = _constants.ENTRY_META_FIELDS.filter(_constants.isDateTimeEntryMetaField).reduce((current, fieldName) => {
14
+ const onMetaFields = ENTRY_META_FIELDS.filter(isDateTimeEntryMetaField).reduce((current, fieldName) => {
20
15
  return {
21
16
  ...current,
22
17
  [fieldName]: {
@@ -38,7 +33,7 @@ const createSystemFields = () => {
38
33
  }
39
34
  };
40
35
  }, {});
41
- const byMetaFields = _constants.ENTRY_META_FIELDS.filter(_constants.isIdentityEntryMetaField).reduce((current, fieldName) => {
36
+ const byMetaFields = ENTRY_META_FIELDS.filter(isIdentityEntryMetaField).reduce((current, fieldName) => {
42
37
  return {
43
38
  ...current,
44
39
  [fieldName]: {
@@ -94,13 +89,13 @@ const createSystemFields = () => {
94
89
  fieldId: "wbyAco_location",
95
90
  type: "object",
96
91
  settings: {
97
- fields: [{
92
+ fields: [createModelField({
98
93
  id: "folderId",
99
94
  fieldId: "folderId",
100
95
  storageId: "folderId",
101
96
  type: "text",
102
97
  label: "Folder ID"
103
- }]
98
+ })]
104
99
  }
105
100
  }),
106
101
  parents: []
@@ -178,6 +173,93 @@ const createSystemFields = () => {
178
173
  type: "text"
179
174
  }),
180
175
  parents: []
176
+ },
177
+ state: {
178
+ type: "object",
179
+ systemField: true,
180
+ searchable: true,
181
+ sortable: false,
182
+ field: createSystemField({
183
+ storageId: "object@state",
184
+ fieldId: "state",
185
+ type: "object",
186
+ settings: {
187
+ fields: [createModelField({
188
+ id: "stepId",
189
+ fieldId: "stepId",
190
+ storageId: "text@stepId",
191
+ type: "text",
192
+ label: "Step ID"
193
+ }), createModelField({
194
+ id: "stepName",
195
+ fieldId: "stepName",
196
+ storageId: "text@stepName",
197
+ type: "text",
198
+ label: "Step Name"
199
+ }), createModelField({
200
+ id: "state",
201
+ fieldId: "state",
202
+ storageId: "text@state",
203
+ type: "text",
204
+ label: "State"
205
+ })]
206
+ }
207
+ }),
208
+ parents: []
209
+ },
210
+ "state.stepId": {
211
+ type: "text",
212
+ systemField: true,
213
+ searchable: true,
214
+ sortable: false,
215
+ parents: [{
216
+ fieldId: "state",
217
+ type: "object",
218
+ storageId: "object@state"
219
+ }],
220
+ field: createSystemField({
221
+ id: "stepId",
222
+ fieldId: "stepId",
223
+ storageId: "text@stepId",
224
+ type: "text",
225
+ label: "Step ID"
226
+ })
227
+ },
228
+ "state.stepName": {
229
+ type: "text",
230
+ systemField: true,
231
+ searchable: true,
232
+ sortable: false,
233
+ parents: [{
234
+ fieldId: "state",
235
+ type: "object",
236
+ storageId: "object@state"
237
+ }],
238
+ field: createSystemField({
239
+ id: "stepName",
240
+ fieldId: "stepName",
241
+ storageId: "text@stepName",
242
+ type: "text",
243
+ label: "Step Name"
244
+ })
245
+ },
246
+ "state.state": {
247
+ type: "text",
248
+ systemField: true,
249
+ searchable: true,
250
+ sortable: false,
251
+ parents: [{
252
+ fieldId: "state",
253
+ type: "object",
254
+ storageId: "object@state"
255
+ }],
256
+ field: createSystemField({
257
+ id: "state",
258
+ fieldId: "state",
259
+ storageId: "text@state",
260
+ type: "text",
261
+ label: "State"
262
+ })
181
263
  }
182
264
  };
183
265
  };
@@ -220,9 +302,10 @@ const buildFieldsList = params => {
220
302
  parents
221
303
  } = params;
222
304
  return fields.reduce((result, field) => {
223
- const plugin = plugins[field.type];
305
+ const fieldType = getBaseFieldType(field);
306
+ const plugin = plugins[fieldType];
224
307
  if (!plugin) {
225
- throw new _error.default(`There is no plugin for field type "${field.type}".`);
308
+ throw new WebinyError(`There is no plugin for field type "${field.type}".`);
226
309
  }
227
310
  const {
228
311
  searchable,
@@ -244,14 +327,14 @@ const buildFieldsList = params => {
244
327
  parents: [...parents, {
245
328
  fieldId: field.fieldId,
246
329
  storageId: field.storageId,
247
- type: field.type
330
+ type: fieldType
248
331
  }]
249
332
  });
250
333
  Object.assign(result, childResult);
251
334
  }
252
335
  const identifier = [...parents.map(p => p.fieldId), field.fieldId].join(".");
253
336
  result[identifier] = {
254
- type: field.type,
337
+ type: fieldType,
255
338
  parents,
256
339
  searchable,
257
340
  sortable,
@@ -263,12 +346,12 @@ const buildFieldsList = params => {
263
346
  return result;
264
347
  }, {});
265
348
  };
266
- const createModelFields = ({
349
+ export const createModelFields = ({
267
350
  plugins,
268
351
  model
269
352
  }) => {
270
353
  const fields = model.fields;
271
- const fieldDefinitionPlugins = plugins.byType(_plugins.CmsElasticsearchModelFieldPlugin.type).filter(plugin => {
354
+ const fieldDefinitionPlugins = plugins.byType(CmsElasticsearchModelFieldPlugin.type).filter(plugin => {
272
355
  return plugin.canBeApplied(model.modelId);
273
356
  });
274
357
  /**
@@ -306,10 +389,13 @@ const createModelFields = ({
306
389
  ...buildFieldsList({
307
390
  fields,
308
391
  plugins: fieldTypePlugins,
309
- parents: []
392
+ parents: [{
393
+ fieldId: "values",
394
+ type: "object",
395
+ storageId: "values"
396
+ }]
310
397
  })
311
398
  };
312
399
  };
313
- exports.createModelFields = createModelFields;
314
400
 
315
401
  //# sourceMappingURL=fields.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_plugins","_constants","createSystemField","field","id","fieldId","label","createSystemFields","onMetaFields","ENTRY_META_FIELDS","filter","isDateTimeEntryMetaField","reduce","current","fieldName","type","unmappedType","keyword","systemField","searchable","sortable","storageId","settings","parents","byMetaFields","isIdentityEntryMetaField","undefined","path","entryId","wbyAco_location","fields","version","status","wbyDeleted","binOriginalFolderId","buildCustomFields","params","fieldTypePlugins","collection","typePlugin","fieldType","fullTextSearch","buildFieldsList","plugins","result","plugin","WebinyError","childFields","length","childResult","Object","assign","identifier","map","p","join","createModelFields","model","fieldDefinitionPlugins","byType","CmsElasticsearchModelFieldPlugin","canBeApplied","modelId","unmappedTypes","acc","types","isSearchable","isSortable","exports"],"sources":["fields.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"@webiny/api-headless-cms/types\";\nimport type { CmsModelFieldToElasticsearchPlugin } from \"~/types\";\nimport type { ModelFieldParent, ModelFields } from \"./types\";\nimport { CmsElasticsearchModelFieldPlugin } from \"~/plugins\";\nimport {\n ENTRY_META_FIELDS,\n isDateTimeEntryMetaField,\n isIdentityEntryMetaField\n} from \"@webiny/api-headless-cms/constants\";\n\ntype PartialCmsModelField = Partial<CmsModelField> &\n Pick<CmsModelField, \"storageId\" | \"fieldId\" | \"type\">;\nconst createSystemField = (field: PartialCmsModelField): CmsModelField => {\n return {\n ...field,\n id: field.fieldId,\n label: field.fieldId\n };\n};\n\nconst createSystemFields = (): ModelFields => {\n const onMetaFields = ENTRY_META_FIELDS.filter(isDateTimeEntryMetaField).reduce(\n (current, fieldName) => {\n return {\n ...current,\n [fieldName]: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: fieldName,\n fieldId: fieldName,\n type: \"text\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n }),\n parents: []\n }\n };\n },\n {}\n );\n\n const byMetaFields = ENTRY_META_FIELDS.filter(isIdentityEntryMetaField).reduce(\n (current, fieldName) => {\n return {\n ...current,\n [fieldName]: {\n type: \"text\",\n unmappedType: undefined,\n systemField: true,\n searchable: true,\n sortable: true,\n path: `${fieldName}.id`,\n field: createSystemField({\n storageId: fieldName,\n fieldId: fieldName,\n type: \"text\"\n }),\n parents: []\n }\n };\n },\n {}\n );\n\n return {\n id: {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"id\",\n fieldId: \"id\",\n type: \"text\"\n }),\n parents: []\n },\n entryId: {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"entryId\",\n fieldId: \"entryId\",\n type: \"text\"\n }),\n parents: []\n },\n\n ...onMetaFields,\n ...byMetaFields,\n\n wbyAco_location: {\n type: \"object\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"location\",\n fieldId: \"wbyAco_location\",\n type: \"object\",\n settings: {\n fields: [\n {\n id: \"folderId\",\n fieldId: \"folderId\",\n storageId: \"folderId\",\n type: \"text\",\n label: \"Folder ID\"\n }\n ]\n }\n }),\n parents: []\n },\n \"wbyAco_location.folderId\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n id: \"folderId\",\n fieldId: \"folderId\",\n storageId: \"folderId\",\n type: \"text\",\n label: \"Folder ID\"\n }),\n parents: [\n {\n fieldId: \"wbyAco_location\",\n type: \"object\",\n storageId: \"location\"\n }\n ]\n },\n version: {\n type: \"number\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"version\",\n fieldId: \"version\",\n type: \"number\"\n }),\n parents: []\n },\n status: {\n type: \"string\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"status\",\n fieldId: \"status\",\n type: \"string\"\n }),\n parents: []\n },\n wbyDeleted: {\n type: \"boolean\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"wbyDeleted\",\n fieldId: \"wbyDeleted\",\n type: \"boolean\"\n }),\n parents: []\n },\n binOriginalFolderId: {\n type: \"text\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"binOriginalFolderId\",\n fieldId: \"binOriginalFolderId\",\n type: \"text\"\n }),\n parents: []\n }\n };\n};\n\ninterface UnmappedFieldTypes {\n [type: string]: (field: Pick<CmsModelField, \"fieldId\" | \"type\">) => string | undefined;\n}\n\ninterface FieldTypePlugin {\n unmappedType?: (field: Pick<CmsModelField, \"fieldId\" | \"type\">) => string | undefined;\n searchable: boolean;\n sortable: boolean;\n fullTextSearch?: boolean;\n}\n\ninterface FieldTypePlugins {\n [key: string]: FieldTypePlugin;\n}\n\ninterface BuildCustomFieldsParams {\n fields: CmsElasticsearchModelFieldPlugin[];\n fieldTypePlugins: FieldTypePlugins;\n}\n\nconst buildCustomFields = (params: BuildCustomFieldsParams) => {\n const { fields, fieldTypePlugins } = params;\n\n return fields.reduce<ModelFields>((collection, field) => {\n const typePlugin = fieldTypePlugins[field.fieldType];\n if (!typePlugin) {\n return collection;\n }\n let unmappedType: string | undefined = undefined;\n if (typePlugin.unmappedType) {\n unmappedType = typePlugin.unmappedType(field);\n }\n\n collection[field.fieldId] = {\n type: field.fieldType,\n field: createSystemField({\n storageId: field.fieldId,\n fieldId: field.fieldId,\n type: field.fieldType\n }),\n unmappedType,\n fullTextSearch: field.searchable ? typePlugin.fullTextSearch : false,\n searchable: field.searchable || typePlugin.searchable,\n sortable: field.sortable || typePlugin.sortable,\n systemField: false,\n path: field.path,\n parents: []\n };\n\n return collection;\n }, {});\n};\n\ninterface BuildParams {\n plugins: FieldTypePlugins;\n fields: CmsModelField[];\n parents: ModelFieldParent[];\n}\n\nconst buildFieldsList = (params: BuildParams): ModelFields => {\n const { plugins, fields, parents } = params;\n\n return fields.reduce<ModelFields>((result, field) => {\n const plugin = plugins[field.type];\n if (!plugin) {\n throw new WebinyError(`There is no plugin for field type \"${field.type}\".`);\n }\n\n const { searchable, sortable, unmappedType, fullTextSearch } = plugin;\n /**\n * If a field has child fields, go through them and add them to a result.\n */\n const childFields = field.settings?.fields || [];\n if (childFields.length > 0) {\n /**\n * Let's build all the child fields\n */\n const childResult = buildFieldsList({\n fields: childFields,\n plugins,\n parents: [\n ...parents,\n {\n fieldId: field.fieldId,\n storageId: field.storageId,\n type: field.type\n }\n ]\n });\n Object.assign(result, childResult);\n }\n\n const identifier = [...parents.map(p => p.fieldId), field.fieldId].join(\".\");\n\n result[identifier] = {\n type: field.type,\n parents,\n searchable,\n sortable,\n fullTextSearch,\n unmappedType: typeof unmappedType === \"function\" ? unmappedType(field) : undefined,\n systemField: false,\n field\n };\n\n return result;\n }, {});\n};\n\ninterface Params {\n plugins: PluginsContainer;\n model: CmsModel;\n}\n\nexport const createModelFields = ({ plugins, model }: Params) => {\n const fields = model.fields;\n const fieldDefinitionPlugins = plugins\n .byType<CmsElasticsearchModelFieldPlugin>(CmsElasticsearchModelFieldPlugin.type)\n .filter(plugin => {\n return plugin.canBeApplied(model.modelId);\n });\n /**\n * Collect all unmappedType from elastic plugins.\n */\n const unmappedTypes = plugins\n .byType<CmsModelFieldToElasticsearchPlugin>(\"cms-model-field-to-elastic-search\")\n .reduce<UnmappedFieldTypes>((acc, plugin) => {\n if (!plugin.unmappedType) {\n return acc;\n }\n acc[plugin.fieldType] = plugin.unmappedType;\n return acc;\n }, {});\n /**\n * Collect all field types from the plugins.\n */\n const fieldTypePlugins = plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce<FieldTypePlugins>((types, plugin) => {\n const { fieldType, fullTextSearch } = plugin;\n types[fieldType] = {\n unmappedType: unmappedTypes[fieldType],\n searchable: plugin.isSearchable,\n sortable: plugin.isSortable,\n fullTextSearch\n };\n return types;\n }, {});\n\n return {\n ...createSystemFields(),\n ...buildCustomFields({\n fields: fieldDefinitionPlugins,\n fieldTypePlugins\n }),\n ...buildFieldsList({\n fields,\n plugins: fieldTypePlugins,\n parents: []\n })\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["WebinyError","CmsElasticsearchModelFieldPlugin","ENTRY_META_FIELDS","isDateTimeEntryMetaField","isIdentityEntryMetaField","getBaseFieldType","createModelField","createSystemField","field","id","fieldId","label","createSystemFields","onMetaFields","filter","reduce","current","fieldName","type","unmappedType","keyword","systemField","searchable","sortable","storageId","settings","parents","byMetaFields","undefined","path","entryId","wbyAco_location","fields","version","status","wbyDeleted","binOriginalFolderId","state","buildCustomFields","params","fieldTypePlugins","collection","typePlugin","fieldType","fullTextSearch","buildFieldsList","plugins","result","plugin","childFields","length","childResult","Object","assign","identifier","map","p","join","createModelFields","model","fieldDefinitionPlugins","byType","canBeApplied","modelId","unmappedTypes","acc","types","isSearchable","isSortable"],"sources":["fields.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsModelFieldToElasticsearchPlugin } from \"~/types.js\";\nimport type { ModelFieldParent, ModelFields } from \"./types.js\";\nimport { CmsElasticsearchModelFieldPlugin } from \"~/plugins/index.js\";\nimport {\n ENTRY_META_FIELDS,\n isDateTimeEntryMetaField,\n isIdentityEntryMetaField\n} from \"@webiny/api-headless-cms/constants.js\";\nimport { getBaseFieldType } from \"@webiny/api-headless-cms/utils/getBaseFieldType.js\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\n\ntype PartialCmsModelField = Partial<CmsModelField> &\n Pick<CmsModelField, \"storageId\" | \"fieldId\" | \"type\">;\nconst createSystemField = (field: PartialCmsModelField): CmsModelField => {\n return createModelField({\n ...field,\n id: field.fieldId,\n label: field.fieldId\n });\n};\n\nconst createSystemFields = (): ModelFields => {\n const onMetaFields = ENTRY_META_FIELDS.filter(isDateTimeEntryMetaField).reduce(\n (current, fieldName) => {\n return {\n ...current,\n [fieldName]: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: fieldName,\n fieldId: fieldName,\n type: \"text\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n }),\n parents: []\n }\n };\n },\n {}\n );\n\n const byMetaFields = ENTRY_META_FIELDS.filter(isIdentityEntryMetaField).reduce(\n (current, fieldName) => {\n return {\n ...current,\n [fieldName]: {\n type: \"text\",\n unmappedType: undefined,\n systemField: true,\n searchable: true,\n sortable: true,\n path: `${fieldName}.id`,\n field: createSystemField({\n storageId: fieldName,\n fieldId: fieldName,\n type: \"text\"\n }),\n parents: []\n }\n };\n },\n {}\n );\n\n return {\n id: {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"id\",\n fieldId: \"id\",\n type: \"text\"\n }),\n parents: []\n },\n entryId: {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"entryId\",\n fieldId: \"entryId\",\n type: \"text\"\n }),\n parents: []\n },\n\n ...onMetaFields,\n ...byMetaFields,\n\n wbyAco_location: {\n type: \"object\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"location\",\n fieldId: \"wbyAco_location\",\n type: \"object\",\n settings: {\n fields: [\n createModelField({\n id: \"folderId\",\n fieldId: \"folderId\",\n storageId: \"folderId\",\n type: \"text\",\n label: \"Folder ID\"\n })\n ]\n }\n }),\n parents: []\n },\n \"wbyAco_location.folderId\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n id: \"folderId\",\n fieldId: \"folderId\",\n storageId: \"folderId\",\n type: \"text\",\n label: \"Folder ID\"\n }),\n parents: [\n {\n fieldId: \"wbyAco_location\",\n type: \"object\",\n storageId: \"location\"\n }\n ]\n },\n version: {\n type: \"number\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"version\",\n fieldId: \"version\",\n type: \"number\"\n }),\n parents: []\n },\n status: {\n type: \"string\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"status\",\n fieldId: \"status\",\n type: \"string\"\n }),\n parents: []\n },\n wbyDeleted: {\n type: \"boolean\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"wbyDeleted\",\n fieldId: \"wbyDeleted\",\n type: \"boolean\"\n }),\n parents: []\n },\n binOriginalFolderId: {\n type: \"text\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"binOriginalFolderId\",\n fieldId: \"binOriginalFolderId\",\n type: \"text\"\n }),\n parents: []\n },\n state: {\n type: \"object\",\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"object@state\",\n fieldId: \"state\",\n type: \"object\",\n settings: {\n fields: [\n createModelField({\n id: \"stepId\",\n fieldId: \"stepId\",\n storageId: \"text@stepId\",\n type: \"text\",\n label: \"Step ID\"\n }),\n createModelField({\n id: \"stepName\",\n fieldId: \"stepName\",\n storageId: \"text@stepName\",\n type: \"text\",\n label: \"Step Name\"\n }),\n createModelField({\n id: \"state\",\n fieldId: \"state\",\n storageId: \"text@state\",\n type: \"text\",\n label: \"State\"\n })\n ]\n }\n }),\n parents: []\n },\n \"state.stepId\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"state\",\n type: \"object\",\n storageId: \"object@state\"\n }\n ],\n field: createSystemField({\n id: \"stepId\",\n fieldId: \"stepId\",\n storageId: \"text@stepId\",\n type: \"text\",\n label: \"Step ID\"\n })\n },\n \"state.stepName\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"state\",\n type: \"object\",\n storageId: \"object@state\"\n }\n ],\n field: createSystemField({\n id: \"stepName\",\n fieldId: \"stepName\",\n storageId: \"text@stepName\",\n type: \"text\",\n label: \"Step Name\"\n })\n },\n \"state.state\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"state\",\n type: \"object\",\n storageId: \"object@state\"\n }\n ],\n field: createSystemField({\n id: \"state\",\n fieldId: \"state\",\n storageId: \"text@state\",\n type: \"text\",\n label: \"State\"\n })\n }\n };\n};\n\ninterface UnmappedFieldTypes {\n [type: string]: (field: Pick<CmsModelField, \"fieldId\" | \"type\">) => string | undefined;\n}\n\ninterface FieldTypePlugin {\n unmappedType?: (field: Pick<CmsModelField, \"fieldId\" | \"type\">) => string | undefined;\n searchable: boolean;\n sortable: boolean;\n fullTextSearch?: boolean;\n}\n\ninterface FieldTypePlugins {\n [key: string]: FieldTypePlugin;\n}\n\ninterface BuildCustomFieldsParams {\n fields: CmsElasticsearchModelFieldPlugin[];\n fieldTypePlugins: FieldTypePlugins;\n}\n\nconst buildCustomFields = (params: BuildCustomFieldsParams) => {\n const { fields, fieldTypePlugins } = params;\n\n return fields.reduce<ModelFields>((collection, field) => {\n const typePlugin = fieldTypePlugins[field.fieldType];\n if (!typePlugin) {\n return collection;\n }\n let unmappedType: string | undefined = undefined;\n if (typePlugin.unmappedType) {\n unmappedType = typePlugin.unmappedType(field);\n }\n\n collection[field.fieldId] = {\n type: field.fieldType,\n field: createSystemField({\n storageId: field.fieldId,\n fieldId: field.fieldId,\n type: field.fieldType\n }),\n unmappedType,\n fullTextSearch: field.searchable ? typePlugin.fullTextSearch : false,\n searchable: field.searchable || typePlugin.searchable,\n sortable: field.sortable || typePlugin.sortable,\n systemField: false,\n path: field.path,\n parents: []\n };\n\n return collection;\n }, {});\n};\n\ninterface BuildParams {\n plugins: FieldTypePlugins;\n fields: CmsModelField[];\n parents: ModelFieldParent[];\n}\n\nconst buildFieldsList = (params: BuildParams): ModelFields => {\n const { plugins, fields, parents } = params;\n\n return fields.reduce<ModelFields>((result, field) => {\n const fieldType = getBaseFieldType(field);\n const plugin = plugins[fieldType];\n if (!plugin) {\n throw new WebinyError(`There is no plugin for field type \"${field.type}\".`);\n }\n\n const { searchable, sortable, unmappedType, fullTextSearch } = plugin;\n /**\n * If a field has child fields, go through them and add them to a result.\n */\n const childFields = field.settings?.fields || [];\n if (childFields.length > 0) {\n /**\n * Let's build all the child fields\n */\n const childResult = buildFieldsList({\n fields: childFields,\n plugins,\n parents: [\n ...parents,\n {\n fieldId: field.fieldId,\n storageId: field.storageId,\n type: fieldType\n }\n ]\n });\n Object.assign(result, childResult);\n }\n\n const identifier = [...parents.map(p => p.fieldId), field.fieldId].join(\".\");\n\n result[identifier] = {\n type: fieldType,\n parents,\n searchable,\n sortable,\n fullTextSearch,\n unmappedType: typeof unmappedType === \"function\" ? unmappedType(field) : undefined,\n systemField: false,\n field\n };\n\n return result;\n }, {});\n};\n\ninterface Params {\n plugins: PluginsContainer;\n model: CmsModel;\n}\n\nexport const createModelFields = ({ plugins, model }: Params) => {\n const fields = model.fields;\n const fieldDefinitionPlugins = plugins\n .byType<CmsElasticsearchModelFieldPlugin>(CmsElasticsearchModelFieldPlugin.type)\n .filter(plugin => {\n return plugin.canBeApplied(model.modelId);\n });\n /**\n * Collect all unmappedType from elastic plugins.\n */\n const unmappedTypes = plugins\n .byType<CmsModelFieldToElasticsearchPlugin>(\"cms-model-field-to-elastic-search\")\n .reduce<UnmappedFieldTypes>((acc, plugin) => {\n if (!plugin.unmappedType) {\n return acc;\n }\n acc[plugin.fieldType] = plugin.unmappedType;\n return acc;\n }, {});\n /**\n * Collect all field types from the plugins.\n */\n const fieldTypePlugins = plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce<FieldTypePlugins>((types, plugin) => {\n const { fieldType, fullTextSearch } = plugin;\n types[fieldType] = {\n unmappedType: unmappedTypes[fieldType],\n searchable: plugin.isSearchable,\n sortable: plugin.isSortable,\n fullTextSearch\n };\n return types;\n }, {});\n\n return {\n ...createSystemFields(),\n ...buildCustomFields({\n fields: fieldDefinitionPlugins,\n fieldTypePlugins\n }),\n ...buildFieldsList({\n fields,\n plugins: fieldTypePlugins,\n parents: [\n {\n fieldId: \"values\",\n type: \"object\",\n storageId: \"values\"\n }\n ]\n })\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import type { ElasticsearchQueryBuilderOperatorPlugins, ElasticsearchQuerySearchValuePlugins } from "../types";
2
- import type { ApplyFilteringCb } from "../../../../plugins/CmsEntryFilterPlugin";
1
+ import type { ElasticsearchQueryBuilderOperatorPlugins, ElasticsearchQuerySearchValuePlugins } from "../../../../operations/entry/elasticsearch/types.js";
2
+ import type { ApplyFilteringCb } from "../../../../plugins/CmsEntryFilterPlugin.js";
3
3
  interface CreateParams {
4
4
  operatorPlugins: ElasticsearchQueryBuilderOperatorPlugins;
5
5
  searchPlugins: ElasticsearchQuerySearchValuePlugins;
@@ -1,19 +1,12 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createApplyFiltering = void 0;
8
- var _error = _interopRequireDefault(require("@webiny/error"));
9
- var _transformValueForSearch = require("../transformValueForSearch");
10
- var _keyword = require("../keyword");
11
- var _path = require("./path");
12
- const createApplyFiltering = ({
1
+ import WebinyError from "@webiny/error";
2
+ import { transformValueForSearch } from "../transformValueForSearch.js";
3
+ import { hasKeyword } from "../keyword.js";
4
+ import { createFieldPathFactory } from "./path.js";
5
+ export const createApplyFiltering = ({
13
6
  operatorPlugins,
14
7
  searchPlugins
15
8
  }) => {
16
- const createFieldPath = (0, _path.createFieldPathFactory)({
9
+ const createFieldPath = createFieldPathFactory({
17
10
  plugins: searchPlugins
18
11
  });
19
12
  return params => {
@@ -26,16 +19,16 @@ const createApplyFiltering = ({
26
19
  } = params;
27
20
  const plugin = operatorPlugins[operator];
28
21
  if (!plugin) {
29
- throw new _error.default(`Elasticsearch operator "${operator}" plugin missing.`, "PLUGIN_MISSING", {
22
+ throw new WebinyError(`Elasticsearch operator "${operator}" plugin missing.`, "PLUGIN_MISSING", {
30
23
  operator
31
24
  });
32
25
  }
33
- const value = (0, _transformValueForSearch.transformValueForSearch)({
26
+ const value = transformValueForSearch({
34
27
  plugins: searchPlugins,
35
28
  field: field.field,
36
29
  value: initialValue
37
30
  });
38
- const keyword = (0, _keyword.hasKeyword)(field);
31
+ const keyword = hasKeyword(field);
39
32
  const {
40
33
  basePath,
41
34
  path
@@ -55,6 +48,5 @@ const createApplyFiltering = ({
55
48
  });
56
49
  };
57
50
  };
58
- exports.createApplyFiltering = createApplyFiltering;
59
51
 
60
52
  //# sourceMappingURL=applyFiltering.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_transformValueForSearch","_keyword","_path","createApplyFiltering","operatorPlugins","searchPlugins","createFieldPath","createFieldPathFactory","plugins","params","key","value","initialValue","query","operator","field","plugin","WebinyError","transformValueForSearch","keyword","hasKeyword","basePath","path","originalValue","apply","name","fieldId","exports"],"sources":["applyFiltering.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { transformValueForSearch } from \"~/operations/entry/elasticsearch/transformValueForSearch\";\nimport { hasKeyword } from \"~/operations/entry/elasticsearch/keyword\";\nimport type {\n ElasticsearchQueryBuilderOperatorPlugins,\n ElasticsearchQuerySearchValuePlugins\n} from \"~/operations/entry/elasticsearch/types\";\nimport { createFieldPathFactory } from \"~/operations/entry/elasticsearch/filtering/path\";\nimport type { ApplyFilteringCb } from \"~/plugins/CmsEntryFilterPlugin\";\n\ninterface CreateParams {\n operatorPlugins: ElasticsearchQueryBuilderOperatorPlugins;\n searchPlugins: ElasticsearchQuerySearchValuePlugins;\n}\n\nexport const createApplyFiltering = ({\n operatorPlugins,\n searchPlugins\n}: CreateParams): ApplyFilteringCb => {\n const createFieldPath = createFieldPathFactory({\n plugins: searchPlugins\n });\n\n return params => {\n const { key, value: initialValue, query, operator, field } = params;\n\n const plugin = operatorPlugins[operator];\n if (!plugin) {\n throw new WebinyError(\n `Elasticsearch operator \"${operator}\" plugin missing.`,\n \"PLUGIN_MISSING\",\n {\n operator\n }\n );\n }\n\n const value = transformValueForSearch({\n plugins: searchPlugins,\n field: field.field,\n value: initialValue\n });\n\n const keyword = hasKeyword(field);\n\n const { basePath, path } = createFieldPath({\n field,\n value,\n originalValue: initialValue,\n key,\n keyword\n });\n\n plugin.apply(query, {\n name: field.field.fieldId,\n basePath,\n path,\n value,\n keyword\n });\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,KAAA,GAAAH,OAAA;AAQO,MAAMI,oBAAoB,GAAGA,CAAC;EACjCC,eAAe;EACfC;AACU,CAAC,KAAuB;EAClC,MAAMC,eAAe,GAAG,IAAAC,4BAAsB,EAAC;IAC3CC,OAAO,EAAEH;EACb,CAAC,CAAC;EAEF,OAAOI,MAAM,IAAI;IACb,MAAM;MAAEC,GAAG;MAAEC,KAAK,EAAEC,YAAY;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAM,CAAC,GAAGN,MAAM;IAEnE,MAAMO,MAAM,GAAGZ,eAAe,CAACU,QAAQ,CAAC;IACxC,IAAI,CAACE,MAAM,EAAE;MACT,MAAM,IAAIC,cAAW,CACjB,2BAA2BH,QAAQ,mBAAmB,EACtD,gBAAgB,EAChB;QACIA;MACJ,CACJ,CAAC;IACL;IAEA,MAAMH,KAAK,GAAG,IAAAO,gDAAuB,EAAC;MAClCV,OAAO,EAAEH,aAAa;MACtBU,KAAK,EAAEA,KAAK,CAACA,KAAK;MAClBJ,KAAK,EAAEC;IACX,CAAC,CAAC;IAEF,MAAMO,OAAO,GAAG,IAAAC,mBAAU,EAACL,KAAK,CAAC;IAEjC,MAAM;MAAEM,QAAQ;MAAEC;IAAK,CAAC,GAAGhB,eAAe,CAAC;MACvCS,KAAK;MACLJ,KAAK;MACLY,aAAa,EAAEX,YAAY;MAC3BF,GAAG;MACHS;IACJ,CAAC,CAAC;IAEFH,MAAM,CAACQ,KAAK,CAACX,KAAK,EAAE;MAChBY,IAAI,EAAEV,KAAK,CAACA,KAAK,CAACW,OAAO;MACzBL,QAAQ;MACRC,IAAI;MACJX,KAAK;MACLQ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC;AAACQ,OAAA,CAAAxB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
1
+ {"version":3,"names":["WebinyError","transformValueForSearch","hasKeyword","createFieldPathFactory","createApplyFiltering","operatorPlugins","searchPlugins","createFieldPath","plugins","params","key","value","initialValue","query","operator","field","plugin","keyword","basePath","path","originalValue","apply","name","fieldId"],"sources":["applyFiltering.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { transformValueForSearch } from \"~/operations/entry/elasticsearch/transformValueForSearch.js\";\nimport { hasKeyword } from \"~/operations/entry/elasticsearch/keyword.js\";\nimport type {\n ElasticsearchQueryBuilderOperatorPlugins,\n ElasticsearchQuerySearchValuePlugins\n} from \"~/operations/entry/elasticsearch/types.js\";\nimport { createFieldPathFactory } from \"~/operations/entry/elasticsearch/filtering/path.js\";\nimport type { ApplyFilteringCb } from \"~/plugins/CmsEntryFilterPlugin.js\";\n\ninterface CreateParams {\n operatorPlugins: ElasticsearchQueryBuilderOperatorPlugins;\n searchPlugins: ElasticsearchQuerySearchValuePlugins;\n}\n\nexport const createApplyFiltering = ({\n operatorPlugins,\n searchPlugins\n}: CreateParams): ApplyFilteringCb => {\n const createFieldPath = createFieldPathFactory({\n plugins: searchPlugins\n });\n\n return params => {\n const { key, value: initialValue, query, operator, field } = params;\n\n const plugin = operatorPlugins[operator];\n if (!plugin) {\n throw new WebinyError(\n `Elasticsearch operator \"${operator}\" plugin missing.`,\n \"PLUGIN_MISSING\",\n {\n operator\n }\n );\n }\n\n const value = transformValueForSearch({\n plugins: searchPlugins,\n field: field.field,\n value: initialValue\n });\n\n const keyword = hasKeyword(field);\n\n const { basePath, path } = createFieldPath({\n field,\n value,\n originalValue: initialValue,\n key,\n keyword\n });\n\n plugin.apply(query, {\n name: field.field.fieldId,\n basePath,\n path,\n value,\n keyword\n });\n };\n};\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,eAAe;AACvC,SAASC,uBAAuB;AAChC,SAASC,UAAU;AAKnB,SAASC,sBAAsB;AAQ/B,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EACjCC,eAAe;EACfC;AACU,CAAC,KAAuB;EAClC,MAAMC,eAAe,GAAGJ,sBAAsB,CAAC;IAC3CK,OAAO,EAAEF;EACb,CAAC,CAAC;EAEF,OAAOG,MAAM,IAAI;IACb,MAAM;MAAEC,GAAG;MAAEC,KAAK,EAAEC,YAAY;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAM,CAAC,GAAGN,MAAM;IAEnE,MAAMO,MAAM,GAAGX,eAAe,CAACS,QAAQ,CAAC;IACxC,IAAI,CAACE,MAAM,EAAE;MACT,MAAM,IAAIhB,WAAW,CACjB,2BAA2Bc,QAAQ,mBAAmB,EACtD,gBAAgB,EAChB;QACIA;MACJ,CACJ,CAAC;IACL;IAEA,MAAMH,KAAK,GAAGV,uBAAuB,CAAC;MAClCO,OAAO,EAAEF,aAAa;MACtBS,KAAK,EAAEA,KAAK,CAACA,KAAK;MAClBJ,KAAK,EAAEC;IACX,CAAC,CAAC;IAEF,MAAMK,OAAO,GAAGf,UAAU,CAACa,KAAK,CAAC;IAEjC,MAAM;MAAEG,QAAQ;MAAEC;IAAK,CAAC,GAAGZ,eAAe,CAAC;MACvCQ,KAAK;MACLJ,KAAK;MACLS,aAAa,EAAER,YAAY;MAC3BF,GAAG;MACHO;IACJ,CAAC,CAAC;IAEFD,MAAM,CAACK,KAAK,CAACR,KAAK,EAAE;MAChBS,IAAI,EAAEP,KAAK,CAACA,KAAK,CAACQ,OAAO;MACzBL,QAAQ;MACRC,IAAI;MACJR,KAAK;MACLM;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,17 +1,18 @@
1
- import type { CmsEntryListWhere, CmsModel } from "@webiny/api-headless-cms/types";
2
- import type { ModelFields } from "../types";
1
+ import type { CmsEntryListWhere, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { ModelFields } from "../../../../operations/entry/elasticsearch/types.js";
3
3
  import type { PluginsContainer } from "@webiny/plugins";
4
- import type { ElasticsearchBoolQueryConfig } from "@webiny/api-elasticsearch/types";
4
+ import type { ElasticsearchBoolQueryConfig } from "@webiny/api-elasticsearch/types.js";
5
5
  export interface CreateExecParams {
6
6
  model: CmsModel;
7
7
  fields: ModelFields;
8
8
  plugins: PluginsContainer;
9
9
  }
10
- export interface ExecParams {
10
+ export interface IExecParams {
11
11
  where: CmsEntryListWhere;
12
12
  query: ElasticsearchBoolQueryConfig;
13
+ isValues?: boolean;
13
14
  }
14
15
  export interface CreateExecFilteringResponse {
15
- (params: ExecParams): void;
16
+ (params: IExecParams): void;
16
17
  }
17
18
  export declare const createExecFiltering: (params: CreateExecParams) => CreateExecFilteringResponse;
@@ -1,21 +1,15 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createExecFiltering = void 0;
8
- var _error = _interopRequireDefault(require("@webiny/error"));
9
- var _search = require("../plugins/search");
10
- var _operator = require("../plugins/operator");
11
- var _initialQuery = require("../initialQuery");
12
- var _apiElasticsearch = require("@webiny/api-elasticsearch");
13
- var _values = require("./values");
14
- var _populated = require("./populated");
15
- var _applyFiltering = require("./applyFiltering");
16
- var _CmsEntryFilterPlugin = require("../../../../plugins/CmsEntryFilterPlugin");
17
- var _assignMinimumShouldMatchToQuery = require("../assignMinimumShouldMatchToQuery");
18
- const createExecFiltering = params => {
1
+ import WebinyError from "@webiny/error";
2
+ import { createSearchPluginList } from "../plugins/search.js";
3
+ import { createOperatorPluginList } from "../plugins/operator.js";
4
+ import { createBaseQuery } from "../initialQuery.js";
5
+ import { parseWhereKey } from "@webiny/api-elasticsearch";
6
+ import { getWhereValues } from "./values.js";
7
+ import { getPopulated } from "./populated.js";
8
+ import { createApplyFiltering } from "./applyFiltering.js";
9
+ import { CmsEntryFilterPlugin } from "../../../../plugins/CmsEntryFilterPlugin.js";
10
+ import { assignMinimumShouldMatchToQuery } from "../assignMinimumShouldMatchToQuery.js";
11
+ import { getBaseFieldType } from "@webiny/api-headless-cms/utils/getBaseFieldType.js";
12
+ export const createExecFiltering = params => {
19
13
  const {
20
14
  fields,
21
15
  plugins,
@@ -25,37 +19,40 @@ const createExecFiltering = params => {
25
19
  /**
26
20
  * We need the search plugins as key -> plugin value, so it is easy to find plugin we need, without iterating through array.
27
21
  */
28
- const searchPlugins = (0, _search.createSearchPluginList)({
22
+ const searchPlugins = createSearchPluginList({
29
23
  plugins
30
24
  });
31
25
  /**
32
26
  * We need the operator plugins, which we execute on our where conditions.
33
27
  */
34
- const operatorPlugins = (0, _operator.createOperatorPluginList)({
35
- plugins,
36
- locale: model.locale
28
+ const operatorPlugins = createOperatorPluginList({
29
+ plugins
37
30
  });
38
- const applyFiltering = (0, _applyFiltering.createApplyFiltering)({
31
+ const applyFiltering = createApplyFiltering({
39
32
  operatorPlugins,
40
33
  searchPlugins
41
34
  });
42
- const filteringPlugins = plugins.byType(_CmsEntryFilterPlugin.CmsEntryFilterPlugin.type).reduce((collection, plugin) => {
35
+ const filteringPlugins = plugins.byType(CmsEntryFilterPlugin.type).reduce((collection, plugin) => {
43
36
  collection[plugin.fieldType] = plugin;
44
37
  return collection;
45
38
  }, {});
46
39
  const getFilterPlugin = type => {
47
- const plugin = filteringPlugins[type] || filteringPlugins["*"];
40
+ const fieldType = getBaseFieldType({
41
+ type
42
+ });
43
+ const plugin = filteringPlugins[fieldType] || filteringPlugins["*"];
48
44
  if (plugin) {
49
45
  return plugin;
50
46
  }
51
- throw new _error.default(`There is no filtering plugin for the given field type "${type}".`, "FILTERING_PLUGIN_ERROR", {
52
- type
47
+ throw new WebinyError(`There is no filtering plugin for the given field type "${fieldType}".`, "FILTERING_PLUGIN_ERROR", {
48
+ fieldType
53
49
  });
54
50
  };
55
51
  const execFiltering = params => {
56
52
  const {
57
53
  where: initialWhere,
58
- query
54
+ query,
55
+ isValues = false
59
56
  } = params;
60
57
  /**
61
58
  * No point in continuing if no "where" conditions exist.
@@ -64,9 +61,7 @@ const createExecFiltering = params => {
64
61
  if (keys.length === 0) {
65
62
  return;
66
63
  }
67
- const where = {
68
- ...initialWhere
69
- };
64
+ const where = structuredClone(initialWhere);
70
65
  for (const key in where) {
71
66
  const value = where[key];
72
67
  /**
@@ -80,15 +75,16 @@ const createExecFiltering = params => {
80
75
  /**
81
76
  * When we are running with AND, the "value" MUST be an array.
82
77
  */else if (key === "AND") {
83
- const childWhereList = (0, _values.getWhereValues)(value, "AND");
84
- const childQuery = (0, _initialQuery.createBaseQuery)();
78
+ const childWhereList = getWhereValues(value, "AND");
79
+ const childQuery = createBaseQuery();
85
80
  for (const childWhere of childWhereList) {
86
81
  execFiltering({
87
82
  query: childQuery,
88
- where: childWhere
83
+ where: childWhere,
84
+ isValues
89
85
  });
90
86
  }
91
- const childQueryBool = (0, _populated.getPopulated)(childQuery);
87
+ const childQueryBool = getPopulated(childQuery);
92
88
  if (Object.keys(childQueryBool).length === 0) {
93
89
  continue;
94
90
  }
@@ -101,18 +97,19 @@ const createExecFiltering = params => {
101
97
  /**
102
98
  * When we are running with OR, the "value" must be an array.
103
99
  */else if (key === "OR") {
104
- const childWhereList = (0, _values.getWhereValues)(value, "OR");
100
+ const childWhereList = getWhereValues(value, "OR");
105
101
  /**
106
102
  * Each of the conditions MUST produce it's own should section.
107
103
  */
108
104
  const should = [];
109
105
  for (const childWhere of childWhereList) {
110
- const childQuery = (0, _initialQuery.createBaseQuery)();
106
+ const childQuery = createBaseQuery();
111
107
  execFiltering({
112
108
  query: childQuery,
113
- where: childWhere
109
+ where: childWhere,
110
+ isValues
114
111
  });
115
- const childQueryBool = (0, _populated.getPopulated)(childQuery);
112
+ const childQueryBool = getPopulated(childQuery);
116
113
  if (Object.keys(childQueryBool).length === 0) {
117
114
  continue;
118
115
  }
@@ -128,16 +125,23 @@ const createExecFiltering = params => {
128
125
  * If there are any should, minimum to have is 1.
129
126
  * Of course, do not override if it's already set.
130
127
  */
131
- (0, _assignMinimumShouldMatchToQuery.assignMinimumShouldMatchToQuery)({
128
+ assignMinimumShouldMatchToQuery({
132
129
  query
133
130
  });
134
131
  continue;
132
+ } else if (key === "values") {
133
+ execFiltering({
134
+ query,
135
+ where: where[key],
136
+ isValues: true
137
+ });
138
+ continue;
135
139
  }
136
140
  const {
137
141
  field: whereFieldId,
138
142
  operator
139
- } = (0, _apiElasticsearch.parseWhereKey)(key);
140
- let fieldId = whereFieldId;
143
+ } = parseWhereKey(key);
144
+ let fieldId = isValues ? `values.${whereFieldId}` : whereFieldId;
141
145
 
142
146
  /**
143
147
  * TODO This will be required until the storage operations receive the fieldId instead of field storageId.
@@ -147,13 +151,13 @@ const createExecFiltering = params => {
147
151
  */
148
152
  const cmsModelField = model.fields.find(f => f.fieldId === fieldId);
149
153
  if (!cmsModelField && !fields[fieldId]) {
150
- throw new _error.default(`There is no CMS Model Field "${fieldId}".`);
154
+ throw new WebinyError(`There is no CMS Model Field "${fieldId}".`);
151
155
  } else if (cmsModelField) {
152
156
  fieldId = cmsModelField.fieldId;
153
157
  }
154
158
  const field = fields[fieldId];
155
159
  if (!field) {
156
- throw new _error.default(`There is no field "${fieldId}".`, "EXEC_FILTERING_ERROR");
160
+ throw new WebinyError(`There is no field "${fieldId}".`, "EXEC_FILTERING_ERROR");
157
161
  }
158
162
  const filterPlugin = getFilterPlugin(field.type);
159
163
  filterPlugin.exec({
@@ -170,6 +174,5 @@ const createExecFiltering = params => {
170
174
  };
171
175
  return execFiltering;
172
176
  };
173
- exports.createExecFiltering = createExecFiltering;
174
177
 
175
178
  //# sourceMappingURL=exec.js.map