@webiny/api-headless-cms-ddb-es 0.0.0-mt-3 → 0.0.0-unstable.40876133bb
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/configurations.d.ts +2 -2
- package/configurations.js +18 -7
- package/configurations.js.map +1 -0
- package/definitions/entry.d.ts +2 -2
- package/definitions/entry.js +6 -7
- package/definitions/entry.js.map +1 -0
- package/definitions/entryElasticsearch.d.ts +2 -2
- package/definitions/entryElasticsearch.js +3 -7
- package/definitions/entryElasticsearch.js.map +1 -0
- package/definitions/group.d.ts +2 -2
- package/definitions/group.js +3 -7
- package/definitions/group.js.map +1 -0
- package/definitions/model.d.ts +2 -2
- package/definitions/model.js +3 -7
- package/definitions/model.js.map +1 -0
- package/definitions/settings.d.ts +2 -2
- package/definitions/settings.js +3 -7
- package/definitions/settings.js.map +1 -0
- package/definitions/system.d.ts +2 -2
- package/definitions/system.js +3 -7
- package/definitions/system.js.map +1 -0
- package/definitions/table.d.ts +2 -2
- package/definitions/table.js.map +1 -0
- package/definitions/tableElasticsearch.d.ts +2 -2
- package/definitions/tableElasticsearch.js.map +1 -0
- package/dynamoDb/index.d.ts +1 -1
- package/dynamoDb/index.js +4 -6
- package/dynamoDb/index.js.map +1 -0
- package/dynamoDb/storage/date.d.ts +2 -3
- package/dynamoDb/storage/date.js +80 -46
- package/dynamoDb/storage/date.js.map +1 -0
- package/dynamoDb/storage/longText.d.ts +7 -4
- package/dynamoDb/storage/longText.js +72 -54
- package/dynamoDb/storage/longText.js.map +1 -0
- package/dynamoDb/storage/richText.d.ts +2 -3
- package/dynamoDb/storage/richText.js +85 -67
- package/dynamoDb/storage/richText.js.map +1 -0
- package/elasticsearch/createElasticsearchIndex.d.ts +9 -0
- package/elasticsearch/createElasticsearchIndex.js +60 -0
- package/elasticsearch/createElasticsearchIndex.js.map +1 -0
- package/elasticsearch/deleteElasticsearchIndex.d.ts +8 -0
- package/elasticsearch/deleteElasticsearchIndex.js +43 -0
- package/elasticsearch/deleteElasticsearchIndex.js.map +1 -0
- package/elasticsearch/index.d.ts +1 -1
- package/elasticsearch/index.js +1 -1
- package/elasticsearch/index.js.map +1 -0
- package/elasticsearch/indexing/dateTimeIndexing.js +15 -1
- package/elasticsearch/indexing/dateTimeIndexing.js.map +1 -0
- package/elasticsearch/indexing/defaultFieldIndexing.js.map +1 -0
- package/elasticsearch/indexing/index.js +1 -1
- package/elasticsearch/indexing/index.js.map +1 -0
- package/elasticsearch/indexing/longTextIndexing.js.map +1 -0
- package/elasticsearch/indexing/numberIndexing.js.map +1 -0
- package/elasticsearch/indexing/objectIndexing.d.ts +9 -0
- package/elasticsearch/indexing/objectIndexing.js +32 -9
- package/elasticsearch/indexing/objectIndexing.js.map +1 -0
- package/elasticsearch/indexing/richTextIndexing.js.map +1 -0
- package/elasticsearch/indices/base.d.ts +2 -0
- package/elasticsearch/indices/base.js +15 -0
- package/elasticsearch/indices/base.js.map +1 -0
- package/elasticsearch/indices/index.d.ts +1 -0
- package/elasticsearch/indices/index.js +16 -0
- package/elasticsearch/indices/index.js.map +1 -0
- package/elasticsearch/indices/japanese.d.ts +2 -0
- package/elasticsearch/indices/japanese.js +16 -0
- package/elasticsearch/indices/japanese.js.map +1 -0
- package/elasticsearch/search/index.d.ts +2 -2
- package/elasticsearch/search/index.js +3 -5
- package/elasticsearch/search/index.js.map +1 -0
- package/elasticsearch/search/refSearch.d.ts +2 -3
- package/elasticsearch/search/refSearch.js +25 -16
- package/elasticsearch/search/refSearch.js.map +1 -0
- package/elasticsearch/search/timeSearch.d.ts +2 -3
- package/elasticsearch/search/timeSearch.js +22 -14
- package/elasticsearch/search/timeSearch.js.map +1 -0
- package/helpers/createElasticsearchQueryBody.js +320 -84
- package/helpers/createElasticsearchQueryBody.js.map +1 -0
- package/helpers/entryIndexHelpers.js +33 -18
- package/helpers/entryIndexHelpers.js.map +1 -0
- package/helpers/fields.d.ts +4 -62
- package/helpers/fields.js +39 -8
- package/helpers/fields.js.map +1 -0
- package/helpers/index.js.map +1 -0
- package/helpers/searchPluginsList.d.ts +2 -2
- package/helpers/searchPluginsList.js +1 -1
- package/helpers/searchPluginsList.js.map +1 -0
- package/helpers/transformValueForSearch.d.ts +5 -2
- package/helpers/transformValueForSearch.js +3 -0
- package/helpers/transformValueForSearch.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +126 -29
- package/index.js.map +1 -0
- package/operations/entry/dataLoaders.d.ts +6 -2
- package/operations/entry/dataLoaders.js +31 -13
- package/operations/entry/dataLoaders.js.map +1 -0
- package/operations/entry/elasticsearchFields.js +6 -0
- package/operations/entry/elasticsearchFields.js.map +1 -0
- package/operations/entry/index.d.ts +2 -2
- package/operations/entry/index.js +445 -331
- package/operations/entry/index.js.map +1 -0
- package/operations/entry/keys.js.map +1 -0
- package/operations/group/index.d.ts +2 -2
- package/operations/group/index.js +8 -15
- package/operations/group/index.js.map +1 -0
- package/operations/model/index.d.ts +2 -2
- package/operations/model/index.js +38 -39
- package/operations/model/index.js.map +1 -0
- package/operations/settings/index.d.ts +2 -2
- package/operations/settings/index.js +7 -13
- package/operations/settings/index.js.map +1 -0
- package/operations/system/index.d.ts +2 -2
- package/operations/system/index.js +5 -11
- package/operations/system/index.js.map +1 -0
- package/package.json +24 -29
- package/plugins/CmsEntryElasticsearchBodyModifierPlugin.d.ts +6 -3
- package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js +3 -3
- package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +1 -0
- package/plugins/CmsEntryElasticsearchFieldPlugin.d.ts +3 -3
- package/plugins/CmsEntryElasticsearchFieldPlugin.js +3 -3
- package/plugins/CmsEntryElasticsearchFieldPlugin.js.map +1 -0
- package/plugins/CmsEntryElasticsearchIndexPlugin.d.ts +4 -0
- package/plugins/CmsEntryElasticsearchIndexPlugin.js +17 -0
- package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +1 -0
- package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.d.ts +30 -0
- package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js +43 -0
- package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +1 -0
- package/plugins/CmsEntryElasticsearchQueryModifierPlugin.d.ts +3 -3
- package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js +3 -3
- package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +1 -0
- package/plugins/CmsEntryElasticsearchSortModifierPlugin.d.ts +3 -3
- package/plugins/CmsEntryElasticsearchSortModifierPlugin.js +3 -3
- package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +1 -0
- package/plugins/index.d.ts +6 -0
- package/plugins/index.js +83 -0
- package/plugins/index.js.map +1 -0
- package/types.d.ts +7 -34
- package/types.js +0 -13
- package/types.js.map +1 -0
- package/helpers/operatorPluginsList.d.ts +0 -7
- package/helpers/operatorPluginsList.js +0 -30
- package/operations/entry/fields.d.ts +0 -3
- package/operations/entry/fields.js +0 -60
- package/operations/system/createElasticsearchTemplate.d.ts +0 -5
- package/operations/system/createElasticsearchTemplate.js +0 -62
- package/upgrades/index.d.ts +0 -2
- package/upgrades/index.js +0 -16
- package/upgrades/utils.d.ts +0 -1
- package/upgrades/utils.js +0 -16
- package/upgrades/v5.0.0/cleanDatabaseRecord.d.ts +0 -6
- package/upgrades/v5.0.0/cleanDatabaseRecord.js +0 -16
- package/upgrades/v5.0.0/createOldVersionIndiceName.d.ts +0 -2
- package/upgrades/v5.0.0/createOldVersionIndiceName.js +0 -12
- package/upgrades/v5.0.0/entryValueFixer.d.ts +0 -4
- package/upgrades/v5.0.0/entryValueFixer.js +0 -124
- package/upgrades/v5.0.0/fieldFinder.d.ts +0 -6
- package/upgrades/v5.0.0/fieldFinder.js +0 -42
- package/upgrades/v5.0.0/helpers.d.ts +0 -4
- package/upgrades/v5.0.0/helpers.js +0 -57
- package/upgrades/v5.0.0/index.d.ts +0 -4
- package/upgrades/v5.0.0/index.js +0 -232
- package/upgrades/v5.8.0/index.d.ts +0 -4
- package/upgrades/v5.8.0/index.js +0 -426
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.prepareEntryToIndex = exports.extractEntriesFromIndex = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
11
|
|
|
12
12
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
13
|
|
|
14
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
-
|
|
16
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
17
|
-
|
|
18
14
|
const prepareEntryToIndex = params => {
|
|
19
15
|
const {
|
|
20
16
|
plugins,
|
|
@@ -49,7 +45,7 @@ const prepareEntryToIndex = params => {
|
|
|
49
45
|
const rawValues = {}; // We're only interested in current model fields.
|
|
50
46
|
|
|
51
47
|
for (const field of model.fields) {
|
|
52
|
-
if (storageEntry.values.hasOwnProperty(field.
|
|
48
|
+
if (storageEntry.values.hasOwnProperty(field.storageId) === false) {
|
|
53
49
|
continue;
|
|
54
50
|
}
|
|
55
51
|
|
|
@@ -66,22 +62,22 @@ const prepareEntryToIndex = params => {
|
|
|
66
62
|
plugins,
|
|
67
63
|
model,
|
|
68
64
|
field,
|
|
69
|
-
rawValue: entry.values[field.
|
|
70
|
-
value: storageEntry.values[field.
|
|
65
|
+
rawValue: entry.values[field.storageId],
|
|
66
|
+
value: storageEntry.values[field.storageId],
|
|
71
67
|
getFieldIndexPlugin,
|
|
72
68
|
getFieldTypePlugin
|
|
73
69
|
});
|
|
74
70
|
|
|
75
71
|
if (typeof value !== "undefined") {
|
|
76
|
-
values[field.
|
|
72
|
+
values[field.storageId] = value;
|
|
77
73
|
}
|
|
78
74
|
|
|
79
75
|
if (typeof rawValue !== "undefined") {
|
|
80
|
-
rawValues[field.
|
|
76
|
+
rawValues[field.storageId] = rawValue;
|
|
81
77
|
}
|
|
82
78
|
}
|
|
83
79
|
|
|
84
|
-
return
|
|
80
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, storageEntry), {}, {
|
|
85
81
|
values,
|
|
86
82
|
rawValues
|
|
87
83
|
});
|
|
@@ -106,7 +102,7 @@ const setupEntriesIndexHelpers = ({
|
|
|
106
102
|
|
|
107
103
|
const defaultIndexFieldPlugin = plugins.find(plugin => plugin.fieldType === "*"); // CmsModelFieldToGraphQLPlugin plugins
|
|
108
104
|
|
|
109
|
-
const fieldTypePlugins = pluginsContainer.byType("cms-model-field-to-graphql").reduce((plugins, plugin) =>
|
|
105
|
+
const fieldTypePlugins = pluginsContainer.byType("cms-model-field-to-graphql").reduce((plugins, plugin) => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugins), {}, {
|
|
110
106
|
[plugin.fieldType]: plugin
|
|
111
107
|
}), {});
|
|
112
108
|
return {
|
|
@@ -157,18 +153,18 @@ const extractEntriesFromIndex = ({
|
|
|
157
153
|
}
|
|
158
154
|
|
|
159
155
|
try {
|
|
160
|
-
indexValues[field.
|
|
156
|
+
indexValues[field.storageId] = targetFieldPlugin.fromIndex({
|
|
161
157
|
plugins,
|
|
162
158
|
model,
|
|
163
159
|
field,
|
|
164
160
|
getFieldIndexPlugin,
|
|
165
161
|
getFieldTypePlugin,
|
|
166
|
-
value: entry.values[field.
|
|
162
|
+
value: entry.values[field.storageId],
|
|
167
163
|
|
|
168
164
|
/**
|
|
169
165
|
* Possibly no rawValues so we must check for the existence of the field.
|
|
170
166
|
*/
|
|
171
|
-
rawValue: entry.rawValues ? entry.rawValues[field.
|
|
167
|
+
rawValue: entry.rawValues ? entry.rawValues[field.storageId] : null
|
|
172
168
|
});
|
|
173
169
|
} catch (ex) {
|
|
174
170
|
throw new _error.default(ex.message || "Could not transform entry field from index.", ex.code || "FIELD_FROM_INDEX_ERROR", {
|
|
@@ -177,10 +173,29 @@ const extractEntriesFromIndex = ({
|
|
|
177
173
|
});
|
|
178
174
|
}
|
|
179
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Let's have a new entry so we do not modify the original one.
|
|
178
|
+
*/
|
|
179
|
+
|
|
180
180
|
|
|
181
|
-
|
|
181
|
+
const newEntry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, entry), {}, {
|
|
182
182
|
values: indexValues
|
|
183
|
-
})
|
|
183
|
+
});
|
|
184
|
+
/**
|
|
185
|
+
* If we want to remove the rawValues, TYPE, latest, published and __type, we must make them optional or ignore them.
|
|
186
|
+
*/
|
|
187
|
+
// @ts-ignore
|
|
188
|
+
|
|
189
|
+
delete newEntry["rawValues"]; // @ts-ignore
|
|
190
|
+
|
|
191
|
+
delete newEntry["TYPE"]; // @ts-ignore
|
|
192
|
+
|
|
193
|
+
delete newEntry["__type"]; // @ts-ignore
|
|
194
|
+
|
|
195
|
+
delete newEntry["latest"]; // @ts-ignore
|
|
196
|
+
|
|
197
|
+
delete newEntry["published"];
|
|
198
|
+
list.push((0, _objectSpread2.default)({}, newEntry));
|
|
184
199
|
}
|
|
185
200
|
|
|
186
201
|
return list;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["prepareEntryToIndex","params","plugins","storageEntry","entry","model","fieldIndexPlugins","defaultIndexFieldPlugin","fieldTypePlugins","setupEntriesIndexHelpers","getFieldIndexPlugin","fieldType","getFieldTypePlugin","pl","WebinyError","values","rawValues","field","fields","hasOwnProperty","storageId","targetFieldPlugin","type","toIndex","value","rawValue","pluginsContainer","byType","plugin","reverse","find","reduce","extractEntriesFromIndex","entries","list","indexValues","fieldTypePlugin","fromIndex","ex","message","code","newEntry","push"],"sources":["entryIndexHelpers.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntry, CmsModel, CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\nimport { CmsIndexEntry, CmsModelFieldToElasticsearchPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ninterface SetupEntriesIndexHelpersParams {\n plugins: PluginsContainer;\n}\n\ninterface ExtractEntriesFromIndexParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entries: CmsIndexEntry[];\n}\n\ninterface PrepareElasticsearchDataParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entry: CmsEntry;\n storageEntry: CmsEntry;\n}\n\nexport const prepareEntryToIndex = (params: PrepareElasticsearchDataParams): CmsIndexEntry => {\n const { plugins, storageEntry, entry, model } = params;\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n const pl = fieldTypePlugins[fieldType];\n if (pl) {\n return pl;\n }\n throw new WebinyError(`Missing field type plugin \"${fieldType}\". Prepare entry for index.`);\n }\n\n // These objects will contain values processed by field index plugins\n const values: Record<string, string> = {};\n const rawValues: Record<string, string> = {};\n\n // We're only interested in current model fields.\n for (const field of model.fields) {\n if (storageEntry.values.hasOwnProperty(field.storageId) === false) {\n continue;\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n\n // TODO: remove this `if` once we convert this plugin to proper plugin class\n if (!targetFieldPlugin || !targetFieldPlugin.toIndex) {\n continue;\n }\n\n const { value, rawValue } = targetFieldPlugin.toIndex({\n plugins,\n model,\n field,\n rawValue: entry.values[field.storageId],\n value: storageEntry.values[field.storageId],\n getFieldIndexPlugin,\n getFieldTypePlugin\n });\n\n if (typeof value !== \"undefined\") {\n values[field.storageId] = value;\n }\n\n if (typeof rawValue !== \"undefined\") {\n rawValues[field.storageId] = rawValue;\n }\n }\n return {\n ...storageEntry,\n values,\n rawValues\n } as CmsIndexEntry;\n};\n\nconst setupEntriesIndexHelpers = ({\n plugins: pluginsContainer\n}: SetupEntriesIndexHelpersParams) => {\n const plugins = pluginsContainer.byType<CmsModelFieldToElasticsearchPlugin>(\n \"cms-model-field-to-elastic-search\"\n );\n\n const fieldIndexPlugins: Record<string, CmsModelFieldToElasticsearchPlugin> = {};\n for (const plugin of plugins.reverse()) {\n if (fieldIndexPlugins[plugin.fieldType]) {\n continue;\n }\n fieldIndexPlugins[plugin.fieldType] = plugin;\n }\n // we will use this plugin if no targeted plugin found\n const defaultIndexFieldPlugin = plugins.find(plugin => plugin.fieldType === \"*\");\n\n // CmsModelFieldToGraphQLPlugin plugins\n const fieldTypePlugins: Record<string, CmsModelFieldToGraphQLPlugin> = pluginsContainer\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce((plugins, plugin) => ({ ...plugins, [plugin.fieldType]: plugin }), {});\n\n return {\n fieldIndexPlugins,\n defaultIndexFieldPlugin,\n fieldTypePlugins\n };\n};\n\nexport const extractEntriesFromIndex = ({\n plugins,\n entries,\n model\n}: ExtractEntriesFromIndexParams): CmsEntry[] => {\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n return fieldTypePlugins[fieldType];\n }\n\n const list: CmsEntry[] = [];\n\n for (const entry of entries) {\n // This object will contain values processed by field index plugins\n const indexValues: Record<string, string> = {};\n\n // We only consider fields that are present in the model\n for (const field of model.fields) {\n const fieldTypePlugin = fieldTypePlugins[field.type];\n if (!fieldTypePlugin) {\n throw new WebinyError(\n `Missing field type plugin \"${field.type}\". Extract entries from index.`\n );\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n if (!targetFieldPlugin || !targetFieldPlugin.fromIndex) {\n continue;\n }\n try {\n indexValues[field.storageId] = targetFieldPlugin.fromIndex({\n plugins,\n model,\n field,\n getFieldIndexPlugin,\n getFieldTypePlugin,\n value: entry.values[field.storageId],\n /**\n * Possibly no rawValues so we must check for the existence of the field.\n */\n rawValue: entry.rawValues ? entry.rawValues[field.storageId] : null\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not transform entry field from index.\",\n ex.code || \"FIELD_FROM_INDEX_ERROR\",\n {\n field,\n entry\n }\n );\n }\n }\n /**\n * Let's have a new entry so we do not modify the original one.\n */\n const newEntry: CmsEntry = {\n ...entry,\n values: indexValues\n };\n /**\n * If we want to remove the rawValues, TYPE, latest, published and __type, we must make them optional or ignore them.\n */\n // @ts-ignore\n delete newEntry[\"rawValues\"];\n // @ts-ignore\n delete newEntry[\"TYPE\"];\n // @ts-ignore\n delete newEntry[\"__type\"];\n // @ts-ignore\n delete newEntry[\"latest\"];\n // @ts-ignore\n delete newEntry[\"published\"];\n list.push({ ...newEntry });\n }\n\n return list;\n};\n"],"mappings":"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"}
|
package/helpers/fields.d.ts
CHANGED
|
@@ -11,67 +11,9 @@ export interface ModelField {
|
|
|
11
11
|
field: CmsModelField;
|
|
12
12
|
path?: ModelFieldPath;
|
|
13
13
|
}
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
isSystemField: boolean;
|
|
19
|
-
isSearchable: boolean;
|
|
20
|
-
isSortable: boolean;
|
|
21
|
-
field: CmsModelField;
|
|
22
|
-
};
|
|
23
|
-
entryId: {
|
|
24
|
-
type: string;
|
|
25
|
-
isSystemField: boolean;
|
|
26
|
-
isSearchable: boolean;
|
|
27
|
-
isSortable: boolean;
|
|
28
|
-
field: CmsModelField;
|
|
29
|
-
};
|
|
30
|
-
savedOn: {
|
|
31
|
-
type: string;
|
|
32
|
-
unmappedType: string;
|
|
33
|
-
keyword: boolean;
|
|
34
|
-
isSystemField: boolean;
|
|
35
|
-
isSearchable: boolean;
|
|
36
|
-
isSortable: boolean;
|
|
37
|
-
field: CmsModelField;
|
|
38
|
-
};
|
|
39
|
-
createdOn: {
|
|
40
|
-
type: string;
|
|
41
|
-
unmappedType: string;
|
|
42
|
-
keyword: boolean;
|
|
43
|
-
isSystemField: boolean;
|
|
44
|
-
isSearchable: boolean;
|
|
45
|
-
isSortable: boolean;
|
|
46
|
-
field: CmsModelField;
|
|
47
|
-
};
|
|
48
|
-
createdBy: {
|
|
49
|
-
type: string;
|
|
50
|
-
unmappedType: any;
|
|
51
|
-
isSystemField: boolean;
|
|
52
|
-
isSearchable: boolean;
|
|
53
|
-
isSortable: boolean;
|
|
54
|
-
path: string;
|
|
55
|
-
field: CmsModelField;
|
|
56
|
-
};
|
|
57
|
-
ownedBy: {
|
|
58
|
-
type: string;
|
|
59
|
-
unmappedType: any;
|
|
60
|
-
isSystemField: boolean;
|
|
61
|
-
isSearchable: boolean;
|
|
62
|
-
isSortable: boolean;
|
|
63
|
-
path: string;
|
|
64
|
-
field: CmsModelField;
|
|
65
|
-
};
|
|
66
|
-
version: {
|
|
67
|
-
type: string;
|
|
68
|
-
unmappedType: any;
|
|
69
|
-
keyword: boolean;
|
|
70
|
-
isSystemField: boolean;
|
|
71
|
-
isSearchable: boolean;
|
|
72
|
-
isSortable: boolean;
|
|
73
|
-
field: CmsModelField;
|
|
74
|
-
};
|
|
75
|
-
};
|
|
14
|
+
export interface ModelFields {
|
|
15
|
+
[fieldId: string]: ModelField;
|
|
16
|
+
}
|
|
17
|
+
export declare const systemFields: ModelFields;
|
|
76
18
|
export declare const createModelFields: (plugins: PluginsContainer, model: CmsModel) => ModelFields;
|
|
77
19
|
export {};
|
package/helpers/fields.js
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.systemFields = exports.createModelFields = void 0;
|
|
9
9
|
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
|
|
10
12
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
13
|
|
|
14
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
15
|
+
|
|
12
16
|
const createSystemField = field => {
|
|
13
|
-
if (!field.
|
|
14
|
-
throw new _error.default(`When creating system field it must have a "
|
|
17
|
+
if (!field.storageId) {
|
|
18
|
+
throw new _error.default(`When creating system field it must have a "storageId".`, "SYSTEM_FIELD_ERROR", {
|
|
19
|
+
field
|
|
20
|
+
});
|
|
21
|
+
} else if (!field.fieldId) {
|
|
22
|
+
throw new _error.default(`When creating system field it must have a "fieldId".`, "SYSTEM_FIELD_ERROR", {
|
|
15
23
|
field
|
|
16
24
|
});
|
|
17
25
|
} else if (!field.type) {
|
|
@@ -20,7 +28,10 @@ const createSystemField = field => {
|
|
|
20
28
|
});
|
|
21
29
|
}
|
|
22
30
|
|
|
23
|
-
return field
|
|
31
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, field), {}, {
|
|
32
|
+
id: field.fieldId,
|
|
33
|
+
label: field.fieldId
|
|
34
|
+
});
|
|
24
35
|
};
|
|
25
36
|
|
|
26
37
|
const systemFields = {
|
|
@@ -30,6 +41,7 @@ const systemFields = {
|
|
|
30
41
|
isSearchable: true,
|
|
31
42
|
isSortable: true,
|
|
32
43
|
field: createSystemField({
|
|
44
|
+
storageId: "id",
|
|
33
45
|
fieldId: "id",
|
|
34
46
|
type: "text"
|
|
35
47
|
})
|
|
@@ -40,6 +52,7 @@ const systemFields = {
|
|
|
40
52
|
isSearchable: true,
|
|
41
53
|
isSortable: true,
|
|
42
54
|
field: createSystemField({
|
|
55
|
+
storageId: "entryId",
|
|
43
56
|
fieldId: "entryId",
|
|
44
57
|
type: "text"
|
|
45
58
|
})
|
|
@@ -52,8 +65,9 @@ const systemFields = {
|
|
|
52
65
|
isSearchable: true,
|
|
53
66
|
isSortable: true,
|
|
54
67
|
field: createSystemField({
|
|
68
|
+
storageId: "savedOn",
|
|
55
69
|
fieldId: "savedOn",
|
|
56
|
-
type: "
|
|
70
|
+
type: "datetime",
|
|
57
71
|
settings: {
|
|
58
72
|
type: "dateTimeWithoutTimezone"
|
|
59
73
|
}
|
|
@@ -67,6 +81,7 @@ const systemFields = {
|
|
|
67
81
|
isSearchable: true,
|
|
68
82
|
isSortable: true,
|
|
69
83
|
field: createSystemField({
|
|
84
|
+
storageId: "createdOn",
|
|
70
85
|
fieldId: "createdOn",
|
|
71
86
|
type: "text",
|
|
72
87
|
settings: {
|
|
@@ -82,6 +97,7 @@ const systemFields = {
|
|
|
82
97
|
isSortable: false,
|
|
83
98
|
path: "createdBy.id",
|
|
84
99
|
field: createSystemField({
|
|
100
|
+
storageId: "createdBy",
|
|
85
101
|
fieldId: "createdBy",
|
|
86
102
|
type: "text"
|
|
87
103
|
})
|
|
@@ -94,6 +110,7 @@ const systemFields = {
|
|
|
94
110
|
isSortable: false,
|
|
95
111
|
path: "ownedBy.id",
|
|
96
112
|
field: createSystemField({
|
|
113
|
+
storageId: "ownedBy",
|
|
97
114
|
fieldId: "ownedBy",
|
|
98
115
|
type: "text"
|
|
99
116
|
})
|
|
@@ -106,9 +123,23 @@ const systemFields = {
|
|
|
106
123
|
isSearchable: true,
|
|
107
124
|
isSortable: true,
|
|
108
125
|
field: createSystemField({
|
|
126
|
+
storageId: "version",
|
|
109
127
|
fieldId: "version",
|
|
110
128
|
type: "number"
|
|
111
129
|
})
|
|
130
|
+
},
|
|
131
|
+
status: {
|
|
132
|
+
type: "string",
|
|
133
|
+
unmappedType: undefined,
|
|
134
|
+
keyword: false,
|
|
135
|
+
isSystemField: true,
|
|
136
|
+
isSearchable: true,
|
|
137
|
+
isSortable: false,
|
|
138
|
+
field: createSystemField({
|
|
139
|
+
storageId: "status",
|
|
140
|
+
fieldId: "status",
|
|
141
|
+
type: "string"
|
|
142
|
+
})
|
|
112
143
|
}
|
|
113
144
|
};
|
|
114
145
|
/*
|
|
@@ -139,8 +170,8 @@ const createModelFields = (plugins, model) => {
|
|
|
139
170
|
} = plugin;
|
|
140
171
|
types[fieldType] = {
|
|
141
172
|
unmappedType: unmappedTypes[fieldType],
|
|
142
|
-
isSearchable
|
|
143
|
-
isSortable
|
|
173
|
+
isSearchable,
|
|
174
|
+
isSortable
|
|
144
175
|
};
|
|
145
176
|
return types;
|
|
146
177
|
}, {});
|
|
@@ -168,7 +199,7 @@ const createModelFields = (plugins, model) => {
|
|
|
168
199
|
field
|
|
169
200
|
};
|
|
170
201
|
return fields;
|
|
171
|
-
}, systemFields);
|
|
202
|
+
}, (0, _cloneDeep.default)(systemFields));
|
|
172
203
|
};
|
|
173
204
|
|
|
174
205
|
exports.createModelFields = createModelFields;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSystemField","field","storageId","WebinyError","fieldId","type","id","label","systemFields","isSystemField","isSearchable","isSortable","entryId","savedOn","unmappedType","keyword","settings","createdOn","createdBy","undefined","path","ownedBy","version","status","createModelFields","plugins","model","unmappedTypes","byType","reduce","acc","plugin","fieldType","fieldTypePlugins","types","fields","lodashCloneDeep"],"sources":["fields.ts"],"sourcesContent":["import {\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"@webiny/api-headless-cms/types\";\nimport WebinyError from \"@webiny/error\";\nimport { CmsModelFieldToElasticsearchPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport lodashCloneDeep from \"lodash/cloneDeep\";\n\ntype ModelFieldPath = string | ((value: string) => string);\nexport interface ModelField {\n unmappedType?: string;\n keyword?: boolean;\n isSearchable: boolean;\n isSortable: boolean;\n type: string;\n isSystemField?: boolean;\n field: CmsModelField;\n path?: ModelFieldPath;\n}\n\nexport interface ModelFields {\n [fieldId: string]: ModelField;\n}\n\ntype UnmappedFieldTypes = {\n [type: string]: (field: CmsModelField) => string | undefined;\n};\n\ninterface FieldTypePlugin {\n unmappedType?: (field: CmsModelField) => string | undefined;\n isSearchable: boolean;\n isSortable: boolean;\n}\ntype FieldTypePlugins = Record<string, FieldTypePlugin>;\n\ntype PartialCmsModelField = Partial<CmsModelField> &\n Pick<CmsModelField, \"storageId\" | \"fieldId\" | \"type\">;\nconst createSystemField = (field: PartialCmsModelField): CmsModelField => {\n if (!field.storageId) {\n throw new WebinyError(\n `When creating system field it must have a \"storageId\".`,\n \"SYSTEM_FIELD_ERROR\",\n {\n field\n }\n );\n } else if (!field.fieldId) {\n throw new WebinyError(\n `When creating system field it must have a \"fieldId\".`,\n \"SYSTEM_FIELD_ERROR\",\n {\n field\n }\n );\n } else if (!field.type) {\n throw new WebinyError(\n `When creating system field it must have a \"type\".`,\n \"SYSTEM_FIELD_ERROR\",\n {\n field\n }\n );\n }\n return {\n ...field,\n id: field.fieldId,\n label: field.fieldId\n };\n};\n\nexport const systemFields: ModelFields = {\n id: {\n type: \"text\",\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n storageId: \"id\",\n fieldId: \"id\",\n type: \"text\"\n })\n },\n entryId: {\n type: \"text\",\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n storageId: \"entryId\",\n fieldId: \"entryId\",\n type: \"text\"\n })\n },\n savedOn: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n storageId: \"savedOn\",\n fieldId: \"savedOn\",\n type: \"datetime\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n })\n },\n createdOn: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n storageId: \"createdOn\",\n fieldId: \"createdOn\",\n type: \"text\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n })\n },\n createdBy: {\n type: \"text\",\n unmappedType: undefined,\n isSystemField: true,\n isSearchable: true,\n isSortable: false,\n path: \"createdBy.id\",\n field: createSystemField({\n storageId: \"createdBy\",\n fieldId: \"createdBy\",\n type: \"text\"\n })\n },\n ownedBy: {\n type: \"text\",\n unmappedType: undefined,\n isSystemField: true,\n isSearchable: true,\n isSortable: false,\n path: \"ownedBy.id\",\n field: createSystemField({\n storageId: \"ownedBy\",\n fieldId: \"ownedBy\",\n type: \"text\"\n })\n },\n version: {\n type: \"number\",\n unmappedType: undefined,\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n storageId: \"version\",\n fieldId: \"version\",\n type: \"number\"\n })\n },\n status: {\n type: \"string\",\n unmappedType: undefined,\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: false,\n field: createSystemField({\n storageId: \"status\",\n fieldId: \"status\",\n type: \"string\"\n })\n }\n};\n\n/*\n * Create an object with key fieldType and options for that field\n */\nexport const createModelFields = (plugins: PluginsContainer, model: CmsModel): ModelFields => {\n // collect all unmappedType from elastic plugins\n const unmappedTypes = plugins\n .byType<CmsModelFieldToElasticsearchPlugin>(\"cms-model-field-to-elastic-search\")\n .reduce((acc, plugin) => {\n if (!plugin.unmappedType) {\n return acc;\n }\n acc[plugin.fieldType] = plugin.unmappedType;\n return acc;\n }, {} as UnmappedFieldTypes);\n /**\n * collect all field types from the plugins\n */\n const fieldTypePlugins = plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce((types, plugin) => {\n const { fieldType, isSearchable, isSortable } = plugin;\n types[fieldType] = {\n unmappedType: unmappedTypes[fieldType],\n isSearchable,\n isSortable\n };\n return types;\n }, {} as FieldTypePlugins);\n\n return model.fields.reduce((fields, field) => {\n const { fieldId, type } = field;\n if (!fieldTypePlugins[type]) {\n throw new WebinyError(`There is no plugin for field type \"${type}\".`);\n }\n const { isSearchable, isSortable, unmappedType } = fieldTypePlugins[type];\n fields[fieldId] = {\n type,\n isSearchable,\n isSortable,\n unmappedType: typeof unmappedType === \"function\" ? unmappedType(field) : undefined,\n isSystemField: false,\n field\n };\n\n return fields;\n }, lodashCloneDeep(systemFields));\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./createElasticsearchQueryBody\";\nexport * from \"./entryIndexHelpers\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ElasticsearchQueryBuilderValueSearchPlugin } from "../types";
|
|
2
1
|
import { PluginsContainer } from "@webiny/plugins";
|
|
2
|
+
import { CmsEntryElasticsearchQueryBuilderValueSearchPlugin } from "../plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin";
|
|
3
3
|
export interface ElasticsearchQuerySearchValuePlugins {
|
|
4
|
-
[fieldType: string]:
|
|
4
|
+
[fieldType: string]: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;
|
|
5
5
|
}
|
|
6
6
|
export declare const searchPluginsList: (plugins: PluginsContainer) => ElasticsearchQuerySearchValuePlugins;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["searchPluginsList","plugins","byType","reduce","plugin","fieldType","WebinyError","name"],"sources":["searchPluginsList.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { CmsEntryElasticsearchQueryBuilderValueSearchPlugin } from \"~/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin\";\n\nexport interface ElasticsearchQuerySearchValuePlugins {\n [fieldType: string]: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n}\n\nexport const searchPluginsList = (\n plugins: PluginsContainer\n): ElasticsearchQuerySearchValuePlugins => {\n return plugins\n .byType<CmsEntryElasticsearchQueryBuilderValueSearchPlugin>(\n \"cms-elastic-search-query-builder-value-search\"\n )\n .reduce((plugins, plugin) => {\n if (plugins[plugin.fieldType]) {\n throw new WebinyError(\n \"There is a ElasticsearchQueryBuilderValueSearchPlugin defined for the field type.\",\n \"PLUGIN_ALREADY_EXISTS\",\n {\n fieldType: plugin.fieldType,\n name: plugin.name || \"unknown\"\n }\n );\n }\n plugins[plugin.fieldType] = plugin;\n\n return plugins;\n }, {} as ElasticsearchQuerySearchValuePlugins);\n};\n"],"mappings":";;;;;;;;;AAAA;;AAQO,MAAMA,iBAAiB,GAC1BC,OAD6B,IAEU;EACvC,OAAOA,OAAO,CACTC,MADE,CAEC,+CAFD,EAIFC,MAJE,CAIK,CAACF,OAAD,EAAUG,MAAV,KAAqB;IACzB,IAAIH,OAAO,CAACG,MAAM,CAACC,SAAR,CAAX,EAA+B;MAC3B,MAAM,IAAIC,cAAJ,CACF,mFADE,EAEF,uBAFE,EAGF;QACID,SAAS,EAAED,MAAM,CAACC,SADtB;QAEIE,IAAI,EAAEH,MAAM,CAACG,IAAP,IAAe;MAFzB,CAHE,CAAN;IAQH;;IACDN,OAAO,CAACG,MAAM,CAACC,SAAR,CAAP,GAA4BD,MAA5B;IAEA,OAAOH,OAAP;EACH,CAlBE,EAkBA,EAlBA,CAAP;AAmBH,CAtBM"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { ElasticsearchQuerySearchValuePlugins } from "./searchPluginsList";
|
|
2
2
|
import { CmsModelField } from "@webiny/api-headless-cms/types";
|
|
3
|
-
interface
|
|
3
|
+
interface TransformValueForSearchParams {
|
|
4
4
|
plugins: ElasticsearchQuerySearchValuePlugins;
|
|
5
5
|
field: CmsModelField;
|
|
6
6
|
value: any;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Transformed can be anything.
|
|
10
|
+
*/
|
|
11
|
+
export declare const transformValueForSearch: (args: TransformValueForSearchParams) => any;
|
|
9
12
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["transformValueForSearch","args","field","plugins","value","plugin","type","transform"],"sources":["transformValueForSearch.ts"],"sourcesContent":["import { ElasticsearchQuerySearchValuePlugins } from \"./searchPluginsList\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\n\ninterface TransformValueForSearchParams {\n plugins: ElasticsearchQuerySearchValuePlugins;\n field: CmsModelField;\n value: any;\n}\n\n/**\n * Transformed can be anything.\n */\nexport const transformValueForSearch = (args: TransformValueForSearchParams): any => {\n const { field, plugins, value } = args;\n const plugin = plugins[field.type];\n if (!plugin) {\n return value;\n }\n return plugin.transform({ field, value });\n};\n"],"mappings":";;;;;;;AASA;AACA;AACA;AACO,MAAMA,uBAAuB,GAAIC,IAAD,IAA8C;EACjF,MAAM;IAAEC,KAAF;IAASC,OAAT;IAAkBC;EAAlB,IAA4BH,IAAlC;EACA,MAAMI,MAAM,GAAGF,OAAO,CAACD,KAAK,CAACI,IAAP,CAAtB;;EACA,IAAI,CAACD,MAAL,EAAa;IACT,OAAOD,KAAP;EACH;;EACD,OAAOC,MAAM,CAACE,SAAP,CAAiB;IAAEL,KAAF;IAASE;EAAT,CAAjB,CAAP;AACH,CAPM"}
|
package/index.d.ts
CHANGED