@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.
- package/README.md +6 -30
- package/configurations.d.ts +4 -5
- package/configurations.js +12 -24
- package/configurations.js.map +1 -1
- package/definitions/entry.d.ts +4 -6
- package/definitions/entry.js +5 -174
- package/definitions/entry.js.map +1 -1
- package/definitions/group.d.ts +6 -7
- package/definitions/group.js +5 -58
- package/definitions/group.js.map +1 -1
- package/definitions/model.d.ts +6 -7
- package/definitions/model.js +5 -102
- package/definitions/model.js.map +1 -1
- package/definitions/types.d.ts +59 -0
- package/definitions/types.js +3 -0
- package/definitions/types.js.map +1 -0
- package/dynamoDb/index.d.ts +2 -2
- package/dynamoDb/index.js +5 -13
- package/dynamoDb/index.js.map +1 -1
- package/dynamoDb/storage/longText.js +10 -18
- package/dynamoDb/storage/longText.js.map +1 -1
- package/dynamoDb/storage/richText.js +10 -18
- package/dynamoDb/storage/richText.js.map +1 -1
- package/elasticsearch/createElasticsearchIndex.d.ts +1 -1
- package/elasticsearch/createElasticsearchIndex.js +7 -15
- package/elasticsearch/createElasticsearchIndex.js.map +1 -1
- package/elasticsearch/deleteElasticsearchIndex.d.ts +1 -1
- package/elasticsearch/deleteElasticsearchIndex.js +3 -10
- package/elasticsearch/deleteElasticsearchIndex.js.map +1 -1
- package/elasticsearch/index.d.ts +1 -1
- package/elasticsearch/index.js +3 -11
- package/elasticsearch/index.js.map +1 -1
- package/elasticsearch/indexing/dateTimeIndexing.d.ts +1 -1
- package/elasticsearch/indexing/dateTimeIndexing.js +1 -8
- package/elasticsearch/indexing/dateTimeIndexing.js.map +1 -1
- package/elasticsearch/indexing/defaultFieldIndexing.d.ts +1 -1
- package/elasticsearch/indexing/defaultFieldIndexing.js +1 -8
- package/elasticsearch/indexing/defaultFieldIndexing.js.map +1 -1
- package/elasticsearch/indexing/index.d.ts +1 -1
- package/elasticsearch/indexing/index.js +8 -16
- package/elasticsearch/indexing/index.js.map +1 -1
- package/elasticsearch/indexing/jsonIndexing.d.ts +1 -1
- package/elasticsearch/indexing/jsonIndexing.js +1 -8
- package/elasticsearch/indexing/jsonIndexing.js.map +1 -1
- package/elasticsearch/indexing/longTextIndexing.d.ts +1 -1
- package/elasticsearch/indexing/longTextIndexing.js +1 -8
- package/elasticsearch/indexing/longTextIndexing.js.map +1 -1
- package/elasticsearch/indexing/numberIndexing.d.ts +1 -1
- package/elasticsearch/indexing/numberIndexing.js +1 -8
- package/elasticsearch/indexing/numberIndexing.js.map +1 -1
- package/elasticsearch/indexing/objectIndexing.d.ts +1 -1
- package/elasticsearch/indexing/objectIndexing.js +6 -13
- package/elasticsearch/indexing/objectIndexing.js.map +1 -1
- package/elasticsearch/indexing/richTextIndexing.d.ts +1 -1
- package/elasticsearch/indexing/richTextIndexing.js +1 -8
- package/elasticsearch/indexing/richTextIndexing.js.map +1 -1
- package/elasticsearch/indices/base.d.ts +1 -1
- package/elasticsearch/indices/base.js +4 -10
- package/elasticsearch/indices/base.js.map +1 -1
- package/elasticsearch/indices/index.d.ts +1 -1
- package/elasticsearch/indices/index.js +3 -11
- package/elasticsearch/indices/index.js.map +1 -1
- package/elasticsearch/search/index.d.ts +1 -1
- package/elasticsearch/search/index.js +4 -11
- package/elasticsearch/search/index.js.map +1 -1
- package/elasticsearch/search/refSearch.d.ts +1 -1
- package/elasticsearch/search/refSearch.js +3 -10
- package/elasticsearch/search/refSearch.js.map +1 -1
- package/elasticsearch/search/searchableJson.d.ts +1 -1
- package/elasticsearch/search/searchableJson.js +9 -16
- package/elasticsearch/search/searchableJson.js.map +1 -1
- package/elasticsearch/search/timeSearch.d.ts +1 -1
- package/elasticsearch/search/timeSearch.js +3 -10
- package/elasticsearch/search/timeSearch.js.map +1 -1
- package/helpers/entryIndexHelpers.d.ts +9 -9
- package/helpers/entryIndexHelpers.js +32 -26
- package/helpers/entryIndexHelpers.js.map +1 -1
- package/helpers/fieldIdentifier.d.ts +1 -1
- package/helpers/fieldIdentifier.js +2 -10
- package/helpers/fieldIdentifier.js.map +1 -1
- package/helpers/index.d.ts +2 -2
- package/helpers/index.js +2 -27
- package/helpers/index.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.js +98 -133
- package/index.js.map +1 -1
- package/operations/entry/dataLoader/DataLoaderCache.d.ts +0 -2
- package/operations/entry/dataLoader/DataLoaderCache.js +2 -9
- package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -1
- package/operations/entry/dataLoader/constants.js +1 -7
- package/operations/entry/dataLoader/constants.js.map +1 -1
- package/operations/entry/dataLoader/createBatchScheduleFn.js +4 -10
- package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -1
- package/operations/entry/dataLoader/getAllEntryRevisions.d.ts +3 -3
- package/operations/entry/dataLoader/getAllEntryRevisions.js +11 -24
- package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -1
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.d.ts +3 -3
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +18 -30
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -1
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.d.ts +3 -3
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +18 -30
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -1
- package/operations/entry/dataLoader/getRevisionById.d.ts +3 -3
- package/operations/entry/dataLoader/getRevisionById.js +23 -35
- package/operations/entry/dataLoader/getRevisionById.js.map +1 -1
- package/operations/entry/dataLoader/index.d.ts +3 -3
- package/operations/entry/dataLoader/index.js +10 -31
- package/operations/entry/dataLoader/index.js.map +1 -1
- package/operations/entry/dataLoader/types.d.ts +3 -4
- package/operations/entry/dataLoader/types.js +1 -5
- package/operations/entry/dataLoader/types.js.map +1 -1
- package/operations/entry/dataLoaders.d.ts +13 -13
- package/operations/entry/dataLoaders.js +15 -25
- package/operations/entry/dataLoaders.js.map +1 -1
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.d.ts +1 -1
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js +1 -8
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -1
- package/operations/entry/elasticsearch/body.d.ts +2 -2
- package/operations/entry/elasticsearch/body.js +21 -28
- package/operations/entry/elasticsearch/body.js.map +1 -1
- package/operations/entry/elasticsearch/fields.d.ts +2 -2
- package/operations/entry/elasticsearch/fields.js +110 -24
- package/operations/entry/elasticsearch/fields.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/applyFiltering.d.ts +2 -2
- package/operations/entry/elasticsearch/filtering/applyFiltering.js +9 -17
- package/operations/entry/elasticsearch/filtering/applyFiltering.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/exec.d.ts +6 -5
- package/operations/entry/elasticsearch/filtering/exec.js +48 -45
- package/operations/entry/elasticsearch/filtering/exec.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/index.d.ts +1 -1
- package/operations/entry/elasticsearch/filtering/index.js +1 -16
- package/operations/entry/elasticsearch/filtering/index.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/path.d.ts +1 -1
- package/operations/entry/elasticsearch/filtering/path.js +5 -15
- package/operations/entry/elasticsearch/filtering/path.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.d.ts +1 -1
- package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js +6 -14
- package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/plugins/index.d.ts +1 -1
- package/operations/entry/elasticsearch/filtering/plugins/index.js +5 -12
- package/operations/entry/elasticsearch/filtering/plugins/index.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.d.ts +1 -1
- package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js +7 -15
- package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.d.ts +1 -1
- package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js +7 -15
- package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/populated.d.ts +1 -1
- package/operations/entry/elasticsearch/filtering/populated.js +1 -8
- package/operations/entry/elasticsearch/filtering/populated.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/values.d.ts +1 -1
- package/operations/entry/elasticsearch/filtering/values.js +4 -12
- package/operations/entry/elasticsearch/filtering/values.js.map +1 -1
- package/operations/entry/elasticsearch/fullTextSearch.d.ts +2 -2
- package/operations/entry/elasticsearch/fullTextSearch.js +6 -12
- package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -1
- package/operations/entry/elasticsearch/fullTextSearchFields.d.ts +1 -1
- package/operations/entry/elasticsearch/fullTextSearchFields.js +1 -8
- package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -1
- package/operations/entry/elasticsearch/initialQuery.d.ts +2 -2
- package/operations/entry/elasticsearch/initialQuery.js +9 -27
- package/operations/entry/elasticsearch/initialQuery.js.map +1 -1
- package/operations/entry/elasticsearch/keyword.d.ts +1 -1
- package/operations/entry/elasticsearch/keyword.js +4 -9
- package/operations/entry/elasticsearch/keyword.js.map +1 -1
- package/operations/entry/elasticsearch/plugins/bodyModifier.d.ts +2 -2
- package/operations/entry/elasticsearch/plugins/bodyModifier.js +3 -10
- package/operations/entry/elasticsearch/plugins/bodyModifier.js.map +1 -1
- package/operations/entry/elasticsearch/plugins/operator.d.ts +1 -2
- package/operations/entry/elasticsearch/plugins/operator.js +4 -19
- package/operations/entry/elasticsearch/plugins/operator.js.map +1 -1
- package/operations/entry/elasticsearch/plugins/queryModifier.d.ts +2 -2
- package/operations/entry/elasticsearch/plugins/queryModifier.js +3 -10
- package/operations/entry/elasticsearch/plugins/queryModifier.js.map +1 -1
- package/operations/entry/elasticsearch/plugins/search.d.ts +1 -1
- package/operations/entry/elasticsearch/plugins/search.js +5 -13
- package/operations/entry/elasticsearch/plugins/search.js.map +1 -1
- package/operations/entry/elasticsearch/plugins/sortModifier.d.ts +2 -2
- package/operations/entry/elasticsearch/plugins/sortModifier.js +3 -10
- package/operations/entry/elasticsearch/plugins/sortModifier.js.map +1 -1
- package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js +1 -8
- package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -1
- package/operations/entry/elasticsearch/sort.d.ts +3 -3
- package/operations/entry/elasticsearch/sort.js +51 -33
- package/operations/entry/elasticsearch/sort.js.map +1 -1
- package/operations/entry/elasticsearch/transformValueForSearch.d.ts +2 -2
- package/operations/entry/elasticsearch/transformValueForSearch.js +4 -9
- package/operations/entry/elasticsearch/transformValueForSearch.js.map +1 -1
- package/operations/entry/elasticsearch/types.d.ts +2 -2
- package/operations/entry/elasticsearch/types.js +1 -5
- package/operations/entry/elasticsearch/types.js.map +1 -1
- package/operations/entry/index.d.ts +5 -4
- package/operations/entry/index.js +333 -515
- package/operations/entry/index.js.map +1 -1
- package/operations/entry/keys.d.ts +31 -1
- package/operations/entry/keys.js +56 -19
- package/operations/entry/keys.js.map +1 -1
- package/operations/entry/recordType.js +3 -12
- package/operations/entry/recordType.js.map +1 -1
- package/operations/entry/transformations/convertEntryKeys.d.ts +6 -6
- package/operations/entry/transformations/convertEntryKeys.js +2 -10
- package/operations/entry/transformations/convertEntryKeys.js.map +1 -1
- package/operations/entry/transformations/index.d.ts +16 -16
- package/operations/entry/transformations/index.js +22 -30
- package/operations/entry/transformations/index.js.map +1 -1
- package/operations/entry/transformations/modifyEntryValues.d.ts +27 -34
- package/operations/entry/transformations/modifyEntryValues.js +1 -8
- package/operations/entry/transformations/modifyEntryValues.js.map +1 -1
- package/operations/entry/transformations/transformEntryKeys.d.ts +8 -8
- package/operations/entry/transformations/transformEntryKeys.js +4 -11
- package/operations/entry/transformations/transformEntryKeys.js.map +1 -1
- package/operations/entry/transformations/transformEntryToIndex.d.ts +6 -6
- package/operations/entry/transformations/transformEntryToIndex.js +3 -10
- package/operations/entry/transformations/transformEntryToIndex.js.map +1 -1
- package/operations/group/index.d.ts +5 -4
- package/operations/group/index.js +39 -73
- package/operations/group/index.js.map +1 -1
- package/operations/model/index.d.ts +3 -3
- package/operations/model/index.js +38 -57
- package/operations/model/index.js.map +1 -1
- package/package.json +27 -32
- package/plugins/CmsElasticsearchModelFieldPlugin.d.ts +1 -1
- package/plugins/CmsElasticsearchModelFieldPlugin.js +2 -8
- package/plugins/CmsElasticsearchModelFieldPlugin.js.map +1 -1
- package/plugins/CmsEntryElasticsearchBodyModifierPlugin.d.ts +1 -1
- package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js +3 -11
- package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +1 -1
- package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.d.ts +2 -2
- package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js +3 -11
- package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js.map +1 -1
- package/plugins/CmsEntryElasticsearchIndexPlugin.js +2 -9
- package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +1 -1
- package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.d.ts +2 -2
- package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js +3 -11
- package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +1 -1
- package/plugins/CmsEntryElasticsearchQueryModifierPlugin.d.ts +1 -1
- package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js +3 -11
- package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +1 -1
- package/plugins/CmsEntryElasticsearchSortModifierPlugin.d.ts +1 -1
- package/plugins/CmsEntryElasticsearchSortModifierPlugin.js +3 -11
- package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +1 -1
- package/plugins/CmsEntryElasticsearchValuesModifier.d.ts +12 -12
- package/plugins/CmsEntryElasticsearchValuesModifier.js +4 -12
- package/plugins/CmsEntryElasticsearchValuesModifier.js.map +1 -1
- package/plugins/CmsEntryFilterPlugin.d.ts +3 -3
- package/plugins/CmsEntryFilterPlugin.js +2 -9
- package/plugins/CmsEntryFilterPlugin.js.map +1 -1
- package/plugins/index.d.ts +8 -8
- package/plugins/index.js +8 -93
- package/plugins/index.js.map +1 -1
- package/tasks/createIndexTaskPlugin.d.ts +2 -2
- package/tasks/createIndexTaskPlugin.js +36 -62
- package/tasks/createIndexTaskPlugin.js.map +1 -1
- package/types.d.ts +23 -26
- package/types.js +5 -8
- package/types.js.map +1 -1
- package/values/NoValueContainer.js +1 -8
- package/values/NoValueContainer.js.map +1 -1
- package/definitions/entryElasticsearch.d.ts +0 -9
- package/definitions/entryElasticsearch.js +0 -41
- package/definitions/entryElasticsearch.js.map +0 -1
- package/definitions/system.d.ts +0 -9
- package/definitions/system.js +0 -42
- package/definitions/system.js.map +0 -1
- package/definitions/table.d.ts +0 -8
- package/definitions/table.js +0 -25
- package/definitions/table.js.map +0 -1
- package/definitions/tableElasticsearch.d.ts +0 -8
- package/definitions/tableElasticsearch.js +0 -25
- package/definitions/tableElasticsearch.js.map +0 -1
- package/elasticsearch/indices/japanese.d.ts +0 -2
- package/elasticsearch/indices/japanese.js +0 -14
- package/elasticsearch/indices/japanese.js.map +0 -1
- package/operations/entry/elasticsearch/logIgnoredEsResponseError.d.ts +0 -9
- package/operations/entry/elasticsearch/logIgnoredEsResponseError.js +0 -26
- package/operations/entry/elasticsearch/logIgnoredEsResponseError.js.map +0 -1
- package/operations/system/index.d.ts +0 -6
- package/operations/system/index.js +0 -94
- package/operations/system/index.js.map +0 -1
- package/operations/system/indexes.d.ts +0 -10
- package/operations/system/indexes.js +0 -41
- package/operations/system/indexes.js.map +0 -1
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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 =
|
|
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 =
|
|
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
|
|
305
|
+
const fieldType = getBaseFieldType(field);
|
|
306
|
+
const plugin = plugins[fieldType];
|
|
224
307
|
if (!plugin) {
|
|
225
|
-
throw new
|
|
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:
|
|
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:
|
|
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(
|
|
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 "
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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 =
|
|
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
|
|
22
|
+
throw new WebinyError(`Elasticsearch operator "${operator}" plugin missing.`, "PLUGIN_MISSING", {
|
|
30
23
|
operator
|
|
31
24
|
});
|
|
32
25
|
}
|
|
33
|
-
const value =
|
|
26
|
+
const value = transformValueForSearch({
|
|
34
27
|
plugins: searchPlugins,
|
|
35
28
|
field: field.field,
|
|
36
29
|
value: initialValue
|
|
37
30
|
});
|
|
38
|
-
const keyword =
|
|
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":["
|
|
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 "
|
|
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
|
|
10
|
+
export interface IExecParams {
|
|
11
11
|
where: CmsEntryListWhere;
|
|
12
12
|
query: ElasticsearchBoolQueryConfig;
|
|
13
|
+
isValues?: boolean;
|
|
13
14
|
}
|
|
14
15
|
export interface CreateExecFilteringResponse {
|
|
15
|
-
(params:
|
|
16
|
+
(params: IExecParams): void;
|
|
16
17
|
}
|
|
17
18
|
export declare const createExecFiltering: (params: CreateExecParams) => CreateExecFilteringResponse;
|
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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 =
|
|
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 =
|
|
35
|
-
plugins
|
|
36
|
-
locale: model.locale
|
|
28
|
+
const operatorPlugins = createOperatorPluginList({
|
|
29
|
+
plugins
|
|
37
30
|
});
|
|
38
|
-
const applyFiltering =
|
|
31
|
+
const applyFiltering = createApplyFiltering({
|
|
39
32
|
operatorPlugins,
|
|
40
33
|
searchPlugins
|
|
41
34
|
});
|
|
42
|
-
const filteringPlugins = plugins.byType(
|
|
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
|
|
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
|
|
52
|
-
|
|
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 =
|
|
84
|
-
const childQuery =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
106
|
+
const childQuery = createBaseQuery();
|
|
111
107
|
execFiltering({
|
|
112
108
|
query: childQuery,
|
|
113
|
-
where: childWhere
|
|
109
|
+
where: childWhere,
|
|
110
|
+
isValues
|
|
114
111
|
});
|
|
115
|
-
const childQueryBool =
|
|
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
|
-
|
|
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
|
-
} =
|
|
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
|
|
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
|
|
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
|