@webiny/api-page-builder-so-ddb-es 0.0.0-mt-2 → 0.0.0-unstable.06b2ede40f
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 +18 -0
- package/configurations.js +53 -0
- package/configurations.js.map +1 -0
- package/definitions/blockCategoryEntity.d.ts +10 -0
- package/definitions/blockCategoryEntity.js +57 -0
- package/definitions/blockCategoryEntity.js.map +1 -0
- package/definitions/categoryEntity.d.ts +10 -6
- package/definitions/categoryEntity.js +12 -23
- package/definitions/categoryEntity.js.map +1 -0
- package/definitions/menuEntity.d.ts +10 -6
- package/definitions/menuEntity.js +12 -23
- package/definitions/menuEntity.js.map +1 -0
- package/definitions/pageBlockEntity.d.ts +10 -0
- package/definitions/pageBlockEntity.js +74 -0
- package/definitions/pageBlockEntity.js.map +1 -0
- package/definitions/pageElasticsearchEntity.d.ts +10 -6
- package/definitions/pageElasticsearchEntity.js +15 -23
- package/definitions/pageElasticsearchEntity.js.map +1 -0
- package/definitions/pageElementEntity.d.ts +10 -6
- package/definitions/pageElementEntity.js +12 -23
- package/definitions/pageElementEntity.js.map +1 -0
- package/definitions/pageEntity.d.ts +10 -6
- package/definitions/pageEntity.js +20 -32
- package/definitions/pageEntity.js.map +1 -0
- package/definitions/pageTemplateEntity.d.ts +10 -0
- package/definitions/pageTemplateEntity.js +42 -0
- package/definitions/pageTemplateEntity.js.map +1 -0
- package/definitions/settingsEntity.d.ts +8 -6
- package/definitions/settingsEntity.js +11 -54
- package/definitions/settingsEntity.js.map +1 -0
- package/definitions/systemEntity.d.ts +10 -6
- package/definitions/systemEntity.js +15 -23
- package/definitions/systemEntity.js.map +1 -0
- package/definitions/table.d.ts +8 -5
- package/definitions/table.js +22 -21
- package/definitions/table.js.map +1 -0
- package/definitions/tableElasticsearch.d.ts +9 -5
- package/definitions/tableElasticsearch.js +16 -28
- package/definitions/tableElasticsearch.js.map +1 -0
- package/elasticsearch/createElasticsearchIndex.d.ts +9 -0
- package/elasticsearch/createElasticsearchIndex.js +41 -0
- package/elasticsearch/createElasticsearchIndex.js.map +1 -0
- package/elasticsearch/indices/base.d.ts +2 -0
- package/elasticsearch/indices/base.js +14 -0
- package/elasticsearch/indices/base.js.map +1 -0
- package/elasticsearch/indices/index.d.ts +1 -0
- package/elasticsearch/indices/index.js +14 -0
- package/elasticsearch/indices/index.js.map +1 -0
- package/elasticsearch/indices/japanese.d.ts +2 -0
- package/elasticsearch/indices/japanese.js +15 -0
- package/elasticsearch/indices/japanese.js.map +1 -0
- package/index.d.ts +3 -8
- package/index.js +246 -16
- package/index.js.map +1 -0
- package/operations/blockCategory/dataLoader.d.ts +17 -0
- package/operations/blockCategory/dataLoader.js +63 -0
- package/operations/blockCategory/dataLoader.js.map +1 -0
- package/operations/blockCategory/fields.d.ts +2 -0
- package/operations/blockCategory/fields.js +27 -0
- package/operations/blockCategory/fields.js.map +1 -0
- package/operations/blockCategory/index.d.ts +8 -0
- package/operations/blockCategory/index.js +192 -0
- package/operations/blockCategory/index.js.map +1 -0
- package/operations/blockCategory/keys.d.ts +9 -0
- package/operations/blockCategory/keys.js +23 -0
- package/operations/blockCategory/keys.js.map +1 -0
- package/operations/category/dataLoader.d.ts +17 -0
- package/operations/category/{CategoryDataLoader.js → dataLoader.js} +13 -27
- package/operations/category/dataLoader.js.map +1 -0
- package/operations/category/fields.d.ts +1 -2
- package/operations/category/fields.js +4 -5
- package/operations/category/fields.js.map +1 -0
- package/operations/category/index.d.ts +7 -4
- package/operations/category/index.js +185 -21
- package/operations/category/index.js.map +1 -0
- package/operations/category/keys.d.ts +9 -0
- package/operations/category/keys.js +23 -0
- package/operations/category/keys.js.map +1 -0
- package/operations/menu/fields.d.ts +1 -2
- package/operations/menu/fields.js +19 -18
- package/operations/menu/fields.js.map +1 -0
- package/operations/menu/index.d.ts +7 -4
- package/operations/menu/index.js +193 -21
- package/operations/menu/index.js.map +1 -0
- package/operations/pageBlock/compression.d.ts +18 -0
- package/operations/pageBlock/compression.js +42 -0
- package/operations/pageBlock/compression.js.map +1 -0
- package/operations/pageBlock/dataLoader.d.ts +17 -0
- package/operations/pageBlock/dataLoader.js +63 -0
- package/operations/pageBlock/dataLoader.js.map +1 -0
- package/operations/pageBlock/fields.d.ts +2 -0
- package/operations/pageBlock/fields.js +24 -0
- package/operations/pageBlock/fields.js.map +1 -0
- package/operations/pageBlock/index.d.ts +8 -0
- package/operations/pageBlock/index.js +219 -0
- package/operations/pageBlock/index.js.map +1 -0
- package/operations/pageBlock/keys.d.ts +20 -0
- package/operations/pageBlock/keys.js +37 -0
- package/operations/pageBlock/keys.js.map +1 -0
- package/operations/pageElement/fields.d.ts +1 -2
- package/operations/pageElement/fields.js +4 -5
- package/operations/pageElement/fields.js.map +1 -0
- package/operations/pageElement/index.d.ts +7 -6
- package/operations/pageElement/index.js +182 -21
- package/operations/pageElement/index.js.map +1 -0
- package/operations/pageTemplate/dataLoader.d.ts +17 -0
- package/operations/pageTemplate/dataLoader.js +62 -0
- package/operations/pageTemplate/dataLoader.js.map +1 -0
- package/operations/pageTemplate/fields.d.ts +2 -0
- package/operations/pageTemplate/fields.js +24 -0
- package/operations/pageTemplate/fields.js.map +1 -0
- package/operations/pageTemplate/index.d.ts +8 -0
- package/operations/pageTemplate/index.js +204 -0
- package/operations/pageTemplate/index.js.map +1 -0
- package/operations/pageTemplate/keys.d.ts +5 -0
- package/operations/pageTemplate/keys.js +23 -0
- package/operations/pageTemplate/keys.js.map +1 -0
- package/operations/pages/elasticsearchQueryBody.d.ts +8 -12
- package/operations/pages/elasticsearchQueryBody.js +43 -101
- package/operations/pages/elasticsearchQueryBody.js.map +1 -0
- package/operations/pages/fields.d.ts +3 -2
- package/operations/pages/fields.js +18 -5
- package/operations/pages/fields.js.map +1 -0
- package/operations/pages/helpers.d.ts +10 -18
- package/operations/pages/helpers.js +34 -33
- package/operations/pages/helpers.js.map +1 -0
- package/operations/pages/index.d.ts +10 -4
- package/operations/pages/index.js +785 -18
- package/operations/pages/index.js.map +1 -0
- package/operations/pages/keys.d.ts +24 -0
- package/operations/pages/keys.js +59 -0
- package/operations/pages/keys.js.map +1 -0
- package/operations/pages/logIgnoredEsResponseError.d.ts +7 -0
- package/operations/pages/logIgnoredEsResponseError.js +28 -0
- package/operations/pages/logIgnoredEsResponseError.js.map +1 -0
- package/operations/pages/shouldIgnoreEsResponseError.d.ts +2 -0
- package/operations/pages/shouldIgnoreEsResponseError.js +13 -0
- package/operations/pages/shouldIgnoreEsResponseError.js.map +1 -0
- package/operations/settings/index.d.ts +11 -6
- package/operations/settings/index.js +140 -15
- package/operations/settings/index.js.map +1 -0
- package/operations/system/index.d.ts +5 -4
- package/operations/system/index.js +94 -23
- package/operations/system/index.js.map +1 -0
- package/package.json +44 -36
- package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.d.ts +4 -0
- package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.js +13 -0
- package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.js.map +1 -0
- package/plugins/definitions/CategoryDynamoDbElasticFieldPlugin.js +5 -9
- package/plugins/definitions/CategoryDynamoDbElasticFieldPlugin.js.map +1 -0
- package/plugins/definitions/IndexPageDataPlugin.d.ts +12 -11
- package/plugins/definitions/IndexPageDataPlugin.js +3 -12
- package/plugins/definitions/IndexPageDataPlugin.js.map +1 -0
- package/plugins/definitions/MenuDynamoDbElasticFieldPlugin.js +5 -9
- package/plugins/definitions/MenuDynamoDbElasticFieldPlugin.js.map +1 -0
- package/plugins/definitions/PageBlockDynamoDbFieldPlugin.d.ts +4 -0
- package/plugins/definitions/PageBlockDynamoDbFieldPlugin.js +13 -0
- package/plugins/definitions/PageBlockDynamoDbFieldPlugin.js.map +1 -0
- package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.d.ts +4 -0
- package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.js +13 -0
- package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.js.map +1 -0
- package/plugins/definitions/PageElasticsearchBodyModifierPlugin.d.ts +6 -2
- package/plugins/definitions/PageElasticsearchBodyModifierPlugin.js +6 -10
- package/plugins/definitions/PageElasticsearchBodyModifierPlugin.js.map +1 -0
- package/plugins/definitions/PageElasticsearchFieldPlugin.d.ts +1 -2
- package/plugins/definitions/PageElasticsearchFieldPlugin.js +5 -14
- package/plugins/definitions/PageElasticsearchFieldPlugin.js.map +1 -0
- package/plugins/definitions/PageElasticsearchIndexPlugin.d.ts +4 -0
- package/plugins/definitions/PageElasticsearchIndexPlugin.js +13 -0
- package/plugins/definitions/PageElasticsearchIndexPlugin.js.map +1 -0
- package/plugins/definitions/PageElasticsearchQueryModifierPlugin.d.ts +8 -2
- package/plugins/definitions/PageElasticsearchQueryModifierPlugin.js +6 -10
- package/plugins/definitions/PageElasticsearchQueryModifierPlugin.js.map +1 -0
- package/plugins/definitions/PageElasticsearchSortModifierPlugin.d.ts +6 -2
- package/plugins/definitions/PageElasticsearchSortModifierPlugin.js +6 -10
- package/plugins/definitions/PageElasticsearchSortModifierPlugin.js.map +1 -0
- package/plugins/definitions/PageElementDynamoDbElasticFieldPlugin.js +5 -9
- package/plugins/definitions/PageElementDynamoDbElasticFieldPlugin.js.map +1 -0
- package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.d.ts +4 -0
- package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.js +13 -0
- package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.js.map +1 -0
- package/plugins/definitions/SearchLatestPagesPlugin.d.ts +1 -1
- package/plugins/definitions/SearchLatestPagesPlugin.js +5 -9
- package/plugins/definitions/SearchLatestPagesPlugin.js.map +1 -0
- package/plugins/definitions/SearchPagesPlugin.d.ts +4 -4
- package/plugins/definitions/SearchPagesPlugin.js +2 -13
- package/plugins/definitions/SearchPagesPlugin.js.map +1 -0
- package/plugins/definitions/SearchPublishedPagesPlugin.d.ts +1 -1
- package/plugins/definitions/SearchPublishedPagesPlugin.js +5 -9
- package/plugins/definitions/SearchPublishedPagesPlugin.js.map +1 -0
- package/plugins/definitions/index.d.ts +15 -0
- package/plugins/definitions/index.js +172 -0
- package/plugins/definitions/index.js.map +1 -0
- package/plugins/index.d.ts +1 -0
- package/plugins/index.js +18 -0
- package/plugins/index.js.map +1 -0
- package/tasks/createIndexTaskPlugin.d.ts +2 -0
- package/tasks/createIndexTaskPlugin.js +36 -0
- package/tasks/createIndexTaskPlugin.js.map +1 -0
- package/types.d.ts +63 -0
- package/types.js +21 -0
- package/types.js.map +1 -0
- package/operations/category/CategoryDataLoader.d.ts +0 -20
- package/operations/category/CategoryStorageOperations.d.ts +0 -29
- package/operations/category/CategoryStorageOperations.js +0 -243
- package/operations/configurations.d.ts +0 -36
- package/operations/configurations.js +0 -71
- package/operations/menu/MenuStorageOperations.d.ts +0 -23
- package/operations/menu/MenuStorageOperations.js +0 -235
- package/operations/pageElement/PageElementStorageOperations.d.ts +0 -23
- package/operations/pageElement/PageElementStorageOperations.js +0 -234
- package/operations/pages/PageStorageOperations.d.ts +0 -79
- package/operations/pages/PageStorageOperations.js +0 -1117
- package/operations/settings/SettingsStorageOperations.d.ts +0 -35
- package/operations/settings/SettingsStorageOperations.js +0 -191
- package/operations/system/InstallationDdbEsPlugin.d.ts +0 -2
- package/operations/system/InstallationDdbEsPlugin.js +0 -73
- package/operations/system/SystemStorageOperations.d.ts +0 -16
- package/operations/system/SystemStorageOperations.js +0 -114
- package/upgrades/index.d.ts +0 -2
- package/upgrades/index.js +0 -14
- package/upgrades/v5.15.0/category.d.ts +0 -2
- package/upgrades/v5.15.0/category.js +0 -75
- package/upgrades/v5.15.0/index.d.ts +0 -4
- package/upgrades/v5.15.0/index.js +0 -52
- package/upgrades/v5.15.0/menu.d.ts +0 -2
- package/upgrades/v5.15.0/menu.js +0 -75
- package/upgrades/v5.15.0/pageElement.d.ts +0 -2
- package/upgrades/v5.15.0/pageElement.js +0 -75
|
@@ -1,38 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createElasticsearchQueryBody = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
|
-
|
|
14
|
-
var _cursors = require("@webiny/api-elasticsearch/cursors");
|
|
15
|
-
|
|
16
|
-
var _sort = require("@webiny/api-elasticsearch/sort");
|
|
17
|
-
|
|
18
|
-
var _limit = require("@webiny/api-elasticsearch/limit");
|
|
19
|
-
|
|
20
|
-
var _ElasticsearchQueryBuilderOperatorPlugin = require("@webiny/api-elasticsearch/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin");
|
|
21
|
-
|
|
9
|
+
var _apiElasticsearch = require("@webiny/api-elasticsearch");
|
|
22
10
|
var _PageElasticsearchFieldPlugin = require("../../plugins/definitions/PageElasticsearchFieldPlugin");
|
|
23
|
-
|
|
24
11
|
var _PageElasticsearchSortModifierPlugin = require("../../plugins/definitions/PageElasticsearchSortModifierPlugin");
|
|
25
|
-
|
|
26
12
|
var _PageElasticsearchQueryModifierPlugin = require("../../plugins/definitions/PageElasticsearchQueryModifierPlugin");
|
|
27
|
-
|
|
28
13
|
var _PageElasticsearchBodyModifierPlugin = require("../../plugins/definitions/PageElasticsearchBodyModifierPlugin");
|
|
29
|
-
|
|
30
|
-
var _where = require("@webiny/api-elasticsearch/where");
|
|
31
|
-
|
|
32
|
-
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; }
|
|
33
|
-
|
|
34
|
-
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; }
|
|
35
|
-
|
|
36
14
|
/**
|
|
37
15
|
* Latest and published are specific in Elasticsearch to that extend that they are tagged in the published or latest property.
|
|
38
16
|
* We allow either published or either latest.
|
|
@@ -40,8 +18,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
40
18
|
*/
|
|
41
19
|
const createInitialQueryValue = args => {
|
|
42
20
|
const {
|
|
43
|
-
where
|
|
44
|
-
context
|
|
21
|
+
where
|
|
45
22
|
} = args;
|
|
46
23
|
const query = {
|
|
47
24
|
must: [],
|
|
@@ -49,25 +26,10 @@ const createInitialQueryValue = args => {
|
|
|
49
26
|
should: [],
|
|
50
27
|
filter: []
|
|
51
28
|
};
|
|
52
|
-
/**
|
|
53
|
-
* When ES index is shared between tenants, we need to filter records by tenant ID
|
|
54
|
-
*/
|
|
55
29
|
|
|
56
|
-
const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === "true";
|
|
57
|
-
|
|
58
|
-
if (sharedIndex) {
|
|
59
|
-
const tenant = context.tenancy.getCurrentTenant();
|
|
60
|
-
query.must.push({
|
|
61
|
-
term: {
|
|
62
|
-
"tenant.keyword": tenant.id
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
30
|
/**
|
|
67
31
|
* We must transform published and latest where args into something that is understandable by our Elasticsearch
|
|
68
32
|
*/
|
|
69
|
-
|
|
70
|
-
|
|
71
33
|
if (where.published === true) {
|
|
72
34
|
query.must.push({
|
|
73
35
|
term: {
|
|
@@ -80,7 +42,8 @@ const createInitialQueryValue = args => {
|
|
|
80
42
|
latest: true
|
|
81
43
|
}
|
|
82
44
|
});
|
|
83
|
-
}
|
|
45
|
+
}
|
|
46
|
+
// we do not allow not published and not latest
|
|
84
47
|
else if (where.published === false) {
|
|
85
48
|
throw new _error.default(`Cannot call Elasticsearch query with "published" set at false.`, "ELASTICSEARCH_UNSUPPORTED_QUERY", {
|
|
86
49
|
where
|
|
@@ -90,46 +53,37 @@ const createInitialQueryValue = args => {
|
|
|
90
53
|
where
|
|
91
54
|
});
|
|
92
55
|
}
|
|
93
|
-
|
|
94
56
|
delete where.published;
|
|
95
|
-
delete where.latest;
|
|
96
|
-
|
|
57
|
+
delete where.latest;
|
|
58
|
+
//
|
|
97
59
|
return query;
|
|
98
60
|
};
|
|
99
|
-
|
|
100
61
|
const createElasticsearchQuery = params => {
|
|
101
62
|
const {
|
|
102
|
-
|
|
63
|
+
plugins,
|
|
103
64
|
where: initialWhere,
|
|
104
|
-
|
|
65
|
+
fieldPlugins
|
|
105
66
|
} = params;
|
|
106
67
|
const query = createInitialQueryValue({
|
|
107
|
-
context,
|
|
108
68
|
where: initialWhere
|
|
109
69
|
});
|
|
110
70
|
/**
|
|
111
71
|
* Be aware that, if having more registered operator plugins of same type, the last one will be used.
|
|
112
72
|
*/
|
|
113
|
-
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}, {});
|
|
118
|
-
|
|
119
|
-
const where = _objectSpread({}, initialWhere);
|
|
73
|
+
const operatorPlugins = (0, _apiElasticsearch.getElasticsearchOperatorPluginsByLocale)(plugins, initialWhere.locale);
|
|
74
|
+
const where = {
|
|
75
|
+
...initialWhere
|
|
76
|
+
};
|
|
120
77
|
/**
|
|
121
78
|
* Tags are specific so extract them and remove from where.
|
|
122
79
|
*/
|
|
123
|
-
|
|
124
|
-
|
|
125
80
|
const {
|
|
126
81
|
tags_in: tags,
|
|
127
82
|
tags_rule: tagsRule
|
|
128
|
-
} =
|
|
83
|
+
} = initialWhere;
|
|
129
84
|
delete where["tags_in"];
|
|
130
85
|
delete where["tags_rule"];
|
|
131
|
-
|
|
132
|
-
if (Array.isArray(tags) === true && tags.length > 0) {
|
|
86
|
+
if (tags && Array.isArray(tags) === true && tags.length > 0) {
|
|
133
87
|
if (tagsRule === "any") {
|
|
134
88
|
query.filter.push({
|
|
135
89
|
terms: {
|
|
@@ -153,8 +107,6 @@ const createElasticsearchQuery = params => {
|
|
|
153
107
|
/**
|
|
154
108
|
* Specific search parameter
|
|
155
109
|
*/
|
|
156
|
-
|
|
157
|
-
|
|
158
110
|
if (where.search) {
|
|
159
111
|
query.must.push({
|
|
160
112
|
query_string: {
|
|
@@ -164,18 +116,16 @@ const createElasticsearchQuery = params => {
|
|
|
164
116
|
}
|
|
165
117
|
});
|
|
166
118
|
}
|
|
167
|
-
|
|
168
119
|
delete where.search;
|
|
120
|
+
|
|
169
121
|
/**
|
|
170
122
|
* !!! IMPORTANT !!! There are few specific cases where we hardcode the query conditions.
|
|
171
123
|
*
|
|
172
124
|
* When ES index is shared between tenants, we need to filter records by tenant ID.
|
|
173
125
|
*/
|
|
174
|
-
|
|
175
|
-
const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === "true";
|
|
176
|
-
|
|
126
|
+
const sharedIndex = (0, _apiElasticsearch.isSharedElasticsearchIndex)();
|
|
177
127
|
if (sharedIndex) {
|
|
178
|
-
const tenant =
|
|
128
|
+
const tenant = initialWhere.tenant;
|
|
179
129
|
query.must.push({
|
|
180
130
|
term: {
|
|
181
131
|
"tenant.keyword": tenant
|
|
@@ -185,15 +135,12 @@ const createElasticsearchQuery = params => {
|
|
|
185
135
|
* Remove so it is not applied again later.
|
|
186
136
|
* Possibly tenant is not defined, but just in case, remove it.
|
|
187
137
|
*/
|
|
188
|
-
|
|
189
138
|
delete where["tenant"];
|
|
190
139
|
}
|
|
191
140
|
/**
|
|
192
141
|
* We apply other conditions as they are passed via the where value.
|
|
193
142
|
*/
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
(0, _where.applyWhere)({
|
|
143
|
+
(0, _apiElasticsearch.applyWhere)({
|
|
197
144
|
query,
|
|
198
145
|
where,
|
|
199
146
|
fields: fieldPlugins,
|
|
@@ -201,71 +148,66 @@ const createElasticsearchQuery = params => {
|
|
|
201
148
|
});
|
|
202
149
|
return query;
|
|
203
150
|
};
|
|
204
|
-
|
|
205
151
|
const createElasticsearchQueryBody = params => {
|
|
206
152
|
const {
|
|
207
|
-
|
|
153
|
+
plugins,
|
|
208
154
|
where,
|
|
209
155
|
limit: initialLimit,
|
|
210
156
|
sort: initialSort,
|
|
211
157
|
after
|
|
212
158
|
} = params;
|
|
213
|
-
const fieldPlugins =
|
|
159
|
+
const fieldPlugins = plugins.byType(_PageElasticsearchFieldPlugin.PageElasticsearchFieldPlugin.type).reduce((acc, plugin) => {
|
|
214
160
|
acc[plugin.field] = plugin;
|
|
215
161
|
return acc;
|
|
216
162
|
}, {});
|
|
217
|
-
const limit = (0,
|
|
218
|
-
const query = createElasticsearchQuery(
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
163
|
+
const limit = (0, _apiElasticsearch.createLimit)(initialLimit, 100);
|
|
164
|
+
const query = createElasticsearchQuery({
|
|
165
|
+
...params,
|
|
166
|
+
fieldPlugins
|
|
167
|
+
});
|
|
168
|
+
const sort = (0, _apiElasticsearch.createSort)({
|
|
222
169
|
sort: initialSort,
|
|
223
170
|
fieldPlugins
|
|
224
171
|
});
|
|
225
|
-
const queryModifiers =
|
|
226
|
-
|
|
172
|
+
const queryModifiers = plugins.byType(_PageElasticsearchQueryModifierPlugin.PageElasticsearchQueryModifierPlugin.type);
|
|
227
173
|
for (const plugin of queryModifiers) {
|
|
228
174
|
plugin.modifyQuery({
|
|
229
175
|
query,
|
|
230
|
-
where
|
|
176
|
+
where,
|
|
177
|
+
sort,
|
|
178
|
+
limit
|
|
231
179
|
});
|
|
232
180
|
}
|
|
233
|
-
|
|
234
|
-
const sortModifiers = context.plugins.byType(_PageElasticsearchSortModifierPlugin.PageElasticsearchSortModifierPlugin.type);
|
|
235
|
-
|
|
181
|
+
const sortModifiers = plugins.byType(_PageElasticsearchSortModifierPlugin.PageElasticsearchSortModifierPlugin.type);
|
|
236
182
|
for (const plugin of sortModifiers) {
|
|
237
183
|
plugin.modifySort({
|
|
238
|
-
sort
|
|
184
|
+
sort,
|
|
185
|
+
where
|
|
239
186
|
});
|
|
240
187
|
}
|
|
241
|
-
|
|
242
188
|
const body = {
|
|
243
189
|
query: {
|
|
244
190
|
constant_score: {
|
|
245
191
|
filter: {
|
|
246
|
-
bool:
|
|
192
|
+
bool: {
|
|
193
|
+
...query
|
|
194
|
+
}
|
|
247
195
|
}
|
|
248
196
|
}
|
|
249
197
|
},
|
|
250
198
|
size: limit + 1,
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Casting as any is required due to search_after is accepting an array of values.
|
|
254
|
-
* Which is correct in some cases. In our case, it is not.
|
|
255
|
-
* https://www.elastic.co/guide/en/elasticsearch/reference/7.13/paginate-search-results.html
|
|
256
|
-
*/
|
|
257
|
-
search_after: (0, _cursors.decodeCursor)(after),
|
|
199
|
+
search_after: (0, _apiElasticsearch.decodeCursor)(after),
|
|
258
200
|
sort
|
|
259
201
|
};
|
|
260
|
-
const bodyModifiers =
|
|
261
|
-
|
|
202
|
+
const bodyModifiers = plugins.byType(_PageElasticsearchBodyModifierPlugin.PageElasticsearchBodyModifierPlugin.type);
|
|
262
203
|
for (const plugin of bodyModifiers) {
|
|
263
204
|
plugin.modifyBody({
|
|
264
|
-
body
|
|
205
|
+
body,
|
|
206
|
+
where
|
|
265
207
|
});
|
|
266
208
|
}
|
|
267
|
-
|
|
268
209
|
return body;
|
|
269
210
|
};
|
|
211
|
+
exports.createElasticsearchQueryBody = createElasticsearchQueryBody;
|
|
270
212
|
|
|
271
|
-
|
|
213
|
+
//# sourceMappingURL=elasticsearchQueryBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_apiElasticsearch","_PageElasticsearchFieldPlugin","_PageElasticsearchSortModifierPlugin","_PageElasticsearchQueryModifierPlugin","_PageElasticsearchBodyModifierPlugin","createInitialQueryValue","args","where","query","must","must_not","should","filter","published","push","term","latest","WebinyError","createElasticsearchQuery","params","plugins","initialWhere","fieldPlugins","operatorPlugins","getElasticsearchOperatorPluginsByLocale","locale","tags_in","tags","tags_rule","tagsRule","Array","isArray","length","terms","bool","map","tag","search","query_string","allow_leading_wildcard","fields","sharedIndex","isSharedElasticsearchIndex","tenant","applyWhere","operators","createElasticsearchQueryBody","limit","initialLimit","sort","initialSort","after","byType","PageElasticsearchFieldPlugin","type","reduce","acc","plugin","field","createLimit","createSort","queryModifiers","PageElasticsearchQueryModifierPlugin","modifyQuery","sortModifiers","PageElasticsearchSortModifierPlugin","modifySort","body","constant_score","size","search_after","decodeCursor","bodyModifiers","PageElasticsearchBodyModifierPlugin","modifyBody","exports"],"sources":["elasticsearchQueryBody.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { SearchBody as esSearchBody } from \"elastic-ts\";\nimport {\n applyWhere,\n createLimit,\n createSort,\n decodeCursor,\n getElasticsearchOperatorPluginsByLocale,\n isSharedElasticsearchIndex\n} from \"@webiny/api-elasticsearch\";\nimport type { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types\";\nimport type { PageStorageOperationsListWhere } from \"@webiny/api-page-builder/types\";\nimport { PageElasticsearchFieldPlugin } from \"~/plugins/definitions/PageElasticsearchFieldPlugin\";\nimport { PageElasticsearchSortModifierPlugin } from \"~/plugins/definitions/PageElasticsearchSortModifierPlugin\";\nimport { PageElasticsearchQueryModifierPlugin } from \"~/plugins/definitions/PageElasticsearchQueryModifierPlugin\";\nimport { PageElasticsearchBodyModifierPlugin } from \"~/plugins/definitions/PageElasticsearchBodyModifierPlugin\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\n\ninterface CreateElasticsearchQueryArgs {\n where: PageStorageOperationsListWhere;\n}\n\n/**\n * Latest and published are specific in Elasticsearch to that extend that they are tagged in the published or latest property.\n * We allow either published or either latest.\n * Latest is used in the manage API and published in the read API.\n */\nconst createInitialQueryValue = (\n args: CreateElasticsearchQueryArgs\n): ElasticsearchBoolQueryConfig => {\n const { where } = args;\n\n const query: ElasticsearchBoolQueryConfig = {\n must: [],\n must_not: [],\n should: [],\n filter: []\n };\n\n /**\n * We must transform published and latest where args into something that is understandable by our Elasticsearch\n */\n if (where.published === true) {\n query.must.push({\n term: {\n published: true\n }\n });\n } else if (where.latest === true) {\n query.must.push({\n term: {\n latest: true\n }\n });\n }\n // we do not allow not published and not latest\n else if (where.published === false) {\n throw new WebinyError(\n `Cannot call Elasticsearch query with \"published\" set at false.`,\n \"ELASTICSEARCH_UNSUPPORTED_QUERY\",\n {\n where\n }\n );\n } else if (where.latest === false) {\n throw new WebinyError(\n `Cannot call Elasticsearch query with \"latest\" set at false.`,\n \"ELASTICSEARCH_UNSUPPORTED_QUERY\",\n {\n where\n }\n );\n }\n delete where.published;\n delete where.latest;\n //\n return query;\n};\n\ninterface CreateElasticsearchBodyParams {\n plugins: PluginsContainer;\n where: PageStorageOperationsListWhere;\n limit: number;\n after: string | null;\n sort: string[];\n fieldPlugins: Record<string, PageElasticsearchFieldPlugin>;\n}\n\nconst createElasticsearchQuery = (params: CreateElasticsearchBodyParams) => {\n const { plugins, where: initialWhere, fieldPlugins } = params;\n const query = createInitialQueryValue({\n where: initialWhere\n });\n /**\n * Be aware that, if having more registered operator plugins of same type, the last one will be used.\n */\n const operatorPlugins = getElasticsearchOperatorPluginsByLocale(plugins, initialWhere.locale);\n\n const where: Partial<PageStorageOperationsListWhere> = {\n ...initialWhere\n };\n /**\n * Tags are specific so extract them and remove from where.\n */\n const { tags_in: tags, tags_rule: tagsRule } = initialWhere;\n delete where[\"tags_in\"];\n delete where[\"tags_rule\"];\n if (tags && Array.isArray(tags) === true && tags.length > 0) {\n if (tagsRule === \"any\") {\n query.filter.push({\n terms: {\n \"tags.keyword\": tags\n }\n });\n } else {\n query.filter.push({\n bool: {\n must: tags.map(tag => {\n return {\n term: {\n \"tags.keyword\": tag\n }\n };\n })\n }\n });\n }\n }\n /**\n * Specific search parameter\n */\n if (where.search) {\n query.must.push({\n query_string: {\n query: `*${where.search}*`,\n allow_leading_wildcard: true,\n fields: [\"titleLC\", \"snippet\"]\n }\n });\n }\n delete where.search;\n\n /**\n * !!! IMPORTANT !!! There are few specific cases where we hardcode the query conditions.\n *\n * When ES index is shared between tenants, we need to filter records by tenant ID.\n */\n const sharedIndex = isSharedElasticsearchIndex();\n if (sharedIndex) {\n const tenant = initialWhere.tenant;\n query.must.push({ term: { \"tenant.keyword\": tenant } });\n /**\n * Remove so it is not applied again later.\n * Possibly tenant is not defined, but just in case, remove it.\n */\n delete where[\"tenant\"];\n }\n /**\n * We apply other conditions as they are passed via the where value.\n */\n applyWhere({\n query,\n where,\n fields: fieldPlugins,\n operators: operatorPlugins\n });\n\n return query;\n};\n\nexport const createElasticsearchQueryBody = (\n params: Omit<CreateElasticsearchBodyParams, \"fieldPlugins\">\n): esSearchBody & Pick<Required<esSearchBody>, \"sort\"> => {\n const { plugins, where, limit: initialLimit, sort: initialSort, after } = params;\n\n const fieldPlugins = plugins\n .byType<PageElasticsearchFieldPlugin>(PageElasticsearchFieldPlugin.type)\n .reduce((acc, plugin) => {\n acc[plugin.field] = plugin;\n return acc;\n }, {} as Record<string, PageElasticsearchFieldPlugin>);\n\n const limit = createLimit(initialLimit, 100);\n\n const query = createElasticsearchQuery({\n ...params,\n fieldPlugins\n });\n\n const sort = createSort({\n sort: initialSort,\n fieldPlugins\n });\n\n const queryModifiers = plugins.byType<PageElasticsearchQueryModifierPlugin>(\n PageElasticsearchQueryModifierPlugin.type\n );\n for (const plugin of queryModifiers) {\n plugin.modifyQuery({\n query,\n where,\n sort,\n limit\n });\n }\n\n const sortModifiers = plugins.byType<PageElasticsearchSortModifierPlugin>(\n PageElasticsearchSortModifierPlugin.type\n );\n for (const plugin of sortModifiers) {\n plugin.modifySort({\n sort,\n where\n });\n }\n\n const body = {\n query: {\n constant_score: {\n filter: {\n bool: {\n ...query\n }\n }\n }\n },\n size: limit + 1,\n search_after: decodeCursor(after),\n sort\n };\n\n const bodyModifiers = plugins.byType<PageElasticsearchBodyModifierPlugin>(\n PageElasticsearchBodyModifierPlugin.type\n );\n for (const plugin of bodyModifiers) {\n plugin.modifyBody({\n body,\n where\n });\n }\n\n return body;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { PageElasticsearchFieldPlugin } from "../../plugins/definitions/PageElasticsearchFieldPlugin";
|
|
2
|
-
|
|
3
|
-
export
|
|
2
|
+
import { PageDynamoDbElasticsearchFieldPlugin } from "../../plugins/definitions/PageDynamoDbElasticsearchFieldPlugin";
|
|
3
|
+
export declare const createPagesElasticsearchFields: () => PageElasticsearchFieldPlugin[];
|
|
4
|
+
export declare const createPagesDynamoDbFields: () => PageDynamoDbElasticsearchFieldPlugin[];
|
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
6
|
+
exports.createPagesElasticsearchFields = exports.createPagesDynamoDbFields = void 0;
|
|
8
7
|
var _PageElasticsearchFieldPlugin = require("../../plugins/definitions/PageElasticsearchFieldPlugin");
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
var _PageDynamoDbElasticsearchFieldPlugin = require("../../plugins/definitions/PageDynamoDbElasticsearchFieldPlugin");
|
|
9
|
+
const createPagesElasticsearchFields = () => [new _PageElasticsearchFieldPlugin.PageElasticsearchFieldPlugin({
|
|
11
10
|
field: "createdOn",
|
|
12
11
|
unmappedType: "date",
|
|
13
12
|
keyword: false
|
|
@@ -31,6 +30,11 @@ var _default = () => [new _PageElasticsearchFieldPlugin.PageElasticsearchFieldPl
|
|
|
31
30
|
unmappedType: "text",
|
|
32
31
|
keyword: true,
|
|
33
32
|
searchable: true
|
|
33
|
+
}), new _PageElasticsearchFieldPlugin.PageElasticsearchFieldPlugin({
|
|
34
|
+
field: "path",
|
|
35
|
+
unmappedType: "text",
|
|
36
|
+
keyword: true,
|
|
37
|
+
searchable: true
|
|
34
38
|
}),
|
|
35
39
|
/**
|
|
36
40
|
* Defines all fields that are not strictly defined.
|
|
@@ -38,5 +42,14 @@ var _default = () => [new _PageElasticsearchFieldPlugin.PageElasticsearchFieldPl
|
|
|
38
42
|
new _PageElasticsearchFieldPlugin.PageElasticsearchFieldPlugin({
|
|
39
43
|
field: "*"
|
|
40
44
|
})];
|
|
45
|
+
exports.createPagesElasticsearchFields = createPagesElasticsearchFields;
|
|
46
|
+
const createPagesDynamoDbFields = () => {
|
|
47
|
+
return [new _PageDynamoDbElasticsearchFieldPlugin.PageDynamoDbElasticsearchFieldPlugin({
|
|
48
|
+
field: "version",
|
|
49
|
+
type: "number",
|
|
50
|
+
sortable: true
|
|
51
|
+
})];
|
|
52
|
+
};
|
|
53
|
+
exports.createPagesDynamoDbFields = createPagesDynamoDbFields;
|
|
41
54
|
|
|
42
|
-
|
|
55
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_PageElasticsearchFieldPlugin","require","_PageDynamoDbElasticsearchFieldPlugin","createPagesElasticsearchFields","PageElasticsearchFieldPlugin","field","unmappedType","keyword","path","searchable","exports","createPagesDynamoDbFields","PageDynamoDbElasticsearchFieldPlugin","type","sortable"],"sources":["fields.ts"],"sourcesContent":["import { PageElasticsearchFieldPlugin } from \"~/plugins/definitions/PageElasticsearchFieldPlugin\";\nimport { PageDynamoDbElasticsearchFieldPlugin } from \"~/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin\";\n\nexport const createPagesElasticsearchFields = (): PageElasticsearchFieldPlugin[] => [\n new PageElasticsearchFieldPlugin({\n field: \"createdOn\",\n unmappedType: \"date\",\n keyword: false\n }),\n new PageElasticsearchFieldPlugin({\n field: \"savedOn\",\n unmappedType: \"date\",\n keyword: false\n }),\n new PageElasticsearchFieldPlugin({\n field: \"publishedOn\",\n unmappedType: \"date\",\n keyword: false\n }),\n new PageElasticsearchFieldPlugin({\n field: \"createdBy\",\n path: \"createdBy.id\"\n }),\n new PageElasticsearchFieldPlugin({\n field: \"ownedBy\",\n path: \"ownedBy.id\"\n }),\n new PageElasticsearchFieldPlugin({\n field: \"title\",\n path: \"titleLC\",\n unmappedType: \"text\",\n keyword: true,\n searchable: true\n }),\n new PageElasticsearchFieldPlugin({\n field: \"path\",\n unmappedType: \"text\",\n keyword: true,\n searchable: true\n }),\n /**\n * Defines all fields that are not strictly defined.\n */\n new PageElasticsearchFieldPlugin({\n field: \"*\"\n })\n];\n\nexport const createPagesDynamoDbFields = (): PageDynamoDbElasticsearchFieldPlugin[] => {\n return [\n new PageDynamoDbElasticsearchFieldPlugin({\n field: \"version\",\n type: \"number\",\n sortable: true\n })\n ];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,6BAAA,GAAAC,OAAA;AACA,IAAAC,qCAAA,GAAAD,OAAA;AAEO,MAAME,8BAA8B,GAAGA,CAAA,KAAsC,CAChF,IAAIC,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,WAAW;EAClBC,YAAY,EAAE,MAAM;EACpBC,OAAO,EAAE;AACb,CAAC,CAAC,EACF,IAAIH,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,SAAS;EAChBC,YAAY,EAAE,MAAM;EACpBC,OAAO,EAAE;AACb,CAAC,CAAC,EACF,IAAIH,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,aAAa;EACpBC,YAAY,EAAE,MAAM;EACpBC,OAAO,EAAE;AACb,CAAC,CAAC,EACF,IAAIH,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,WAAW;EAClBG,IAAI,EAAE;AACV,CAAC,CAAC,EACF,IAAIJ,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,SAAS;EAChBG,IAAI,EAAE;AACV,CAAC,CAAC,EACF,IAAIJ,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,OAAO;EACdG,IAAI,EAAE,SAAS;EACfF,YAAY,EAAE,MAAM;EACpBC,OAAO,EAAE,IAAI;EACbE,UAAU,EAAE;AAChB,CAAC,CAAC,EACF,IAAIL,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,MAAM;EACbC,YAAY,EAAE,MAAM;EACpBC,OAAO,EAAE,IAAI;EACbE,UAAU,EAAE;AAChB,CAAC,CAAC;AACF;AACJ;AACA;AACI,IAAIL,0DAA4B,CAAC;EAC7BC,KAAK,EAAE;AACX,CAAC,CAAC,CACL;AAACK,OAAA,CAAAP,8BAAA,GAAAA,8BAAA;AAEK,MAAMQ,yBAAyB,GAAGA,CAAA,KAA8C;EACnF,OAAO,CACH,IAAIC,0EAAoC,CAAC;IACrCP,KAAK,EAAE,SAAS;IAChBQ,IAAI,EAAE,QAAQ;IACdC,QAAQ,EAAE;EACd,CAAC,CAAC,CACL;AACL,CAAC;AAACJ,OAAA,CAAAC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { Page } from "@webiny/api-page-builder/types";
|
|
2
|
+
import type { PluginsContainer } from "@webiny/plugins";
|
|
3
3
|
/**
|
|
4
4
|
* Map our system fields to the Elasticsearch data.
|
|
5
5
|
* We need to add new fields if we add them into our system.
|
|
@@ -14,16 +14,8 @@ export declare const getESPageData: (page: Page) => {
|
|
|
14
14
|
locale: string;
|
|
15
15
|
createdOn: string;
|
|
16
16
|
savedOn: string;
|
|
17
|
-
createdBy:
|
|
18
|
-
|
|
19
|
-
id: string;
|
|
20
|
-
displayName: string;
|
|
21
|
-
};
|
|
22
|
-
ownedBy: {
|
|
23
|
-
type: string;
|
|
24
|
-
id: string;
|
|
25
|
-
displayName: string;
|
|
26
|
-
};
|
|
17
|
+
createdBy: import("@webiny/api-page-builder/types").CreatedBy;
|
|
18
|
+
ownedBy: import("@webiny/api-page-builder/types").CreatedBy;
|
|
27
19
|
category: string;
|
|
28
20
|
version: number;
|
|
29
21
|
title: string;
|
|
@@ -31,12 +23,12 @@ export declare const getESPageData: (page: Page) => {
|
|
|
31
23
|
path: string;
|
|
32
24
|
status: import("@webiny/api-page-builder/types").PageStatus;
|
|
33
25
|
locked: boolean;
|
|
34
|
-
publishedOn: string;
|
|
35
|
-
tags:
|
|
36
|
-
snippet:
|
|
26
|
+
publishedOn: string | null;
|
|
27
|
+
tags: string[];
|
|
28
|
+
snippet: string | null;
|
|
37
29
|
images: {
|
|
38
|
-
general:
|
|
30
|
+
general: import("@webiny/api-page-builder/types").File | undefined;
|
|
39
31
|
};
|
|
40
32
|
};
|
|
41
|
-
export declare const getESLatestPageData: (
|
|
42
|
-
export declare const getESPublishedPageData: (
|
|
33
|
+
export declare const getESLatestPageData: (plugins: PluginsContainer, page: Page, input?: Record<string, any>) => Record<string, any>;
|
|
34
|
+
export declare const getESPublishedPageData: (plugins: PluginsContainer, page: Page, input?: Record<string, any>) => Record<string, any>;
|
|
@@ -1,22 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.getESPublishedPageData = exports.getESPageData = exports.getESLatestPageData = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _IndexPageDataPlugin = require("../../plugins/definitions/IndexPageDataPlugin");
|
|
13
|
-
|
|
14
8
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
15
|
-
|
|
16
|
-
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; }
|
|
17
|
-
|
|
18
|
-
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; }
|
|
19
|
-
|
|
9
|
+
var _IndexPageDataPlugin = require("../../plugins/definitions/IndexPageDataPlugin");
|
|
20
10
|
/**
|
|
21
11
|
* Map our system fields to the Elasticsearch data.
|
|
22
12
|
* We need to add new fields if we add them into our system.
|
|
@@ -51,39 +41,50 @@ const getESPageData = page => {
|
|
|
51
41
|
}
|
|
52
42
|
};
|
|
53
43
|
};
|
|
54
|
-
|
|
55
44
|
exports.getESPageData = getESPageData;
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
45
|
+
const getESLatestPageData = (plugins, page, input = {}) => {
|
|
46
|
+
const data = {
|
|
47
|
+
...getESPageData(page),
|
|
59
48
|
latest: true
|
|
49
|
+
};
|
|
50
|
+
return modifyData({
|
|
51
|
+
data,
|
|
52
|
+
page,
|
|
53
|
+
plugins,
|
|
54
|
+
input
|
|
60
55
|
});
|
|
61
|
-
|
|
62
|
-
return modifyData(data, page, context);
|
|
63
56
|
};
|
|
64
|
-
|
|
65
57
|
exports.getESLatestPageData = getESLatestPageData;
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
|
|
58
|
+
const getESPublishedPageData = (plugins, page, input = {}) => {
|
|
59
|
+
const data = {
|
|
60
|
+
...getESPageData(page),
|
|
69
61
|
published: true
|
|
62
|
+
};
|
|
63
|
+
return modifyData({
|
|
64
|
+
data,
|
|
65
|
+
page,
|
|
66
|
+
plugins,
|
|
67
|
+
input
|
|
70
68
|
});
|
|
71
|
-
|
|
72
|
-
return modifyData(data, page, context);
|
|
73
69
|
};
|
|
74
|
-
|
|
75
70
|
exports.getESPublishedPageData = getESPublishedPageData;
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
71
|
+
const modifyData = params => {
|
|
72
|
+
const {
|
|
73
|
+
data,
|
|
74
|
+
page,
|
|
75
|
+
plugins,
|
|
76
|
+
input
|
|
77
|
+
} = params;
|
|
78
|
+
const pagePlugins = plugins.byType(_IndexPageDataPlugin.IndexPageDataPlugin.type);
|
|
80
79
|
for (const plugin of pagePlugins) {
|
|
81
80
|
plugin.apply({
|
|
82
|
-
context,
|
|
83
81
|
page,
|
|
84
|
-
data
|
|
82
|
+
data,
|
|
83
|
+
plugins,
|
|
84
|
+
input
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
|
-
|
|
88
87
|
return data;
|
|
89
|
-
};
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_get","_interopRequireDefault","require","_IndexPageDataPlugin","getESPageData","page","__type","tenant","webinyVersion","id","pid","editor","locale","createdOn","savedOn","createdBy","ownedBy","category","version","title","titleLC","toLowerCase","path","status","locked","publishedOn","tags","lodashGet","snippet","images","general","exports","getESLatestPageData","plugins","input","data","latest","modifyData","getESPublishedPageData","published","params","pagePlugins","byType","IndexPageDataPlugin","type","plugin","apply"],"sources":["helpers.ts"],"sourcesContent":["import lodashGet from \"lodash/get\";\nimport { IndexPageDataPlugin } from \"~/plugins/definitions/IndexPageDataPlugin\";\nimport type { Page } from \"@webiny/api-page-builder/types\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\n\n/**\n * Map our system fields to the Elasticsearch data.\n * We need to add new fields if we add them into our system.\n */\nexport const getESPageData = (page: Page) => {\n return {\n __type: \"page\",\n tenant: page.tenant,\n webinyVersion: page.webinyVersion,\n id: page.id,\n pid: page.pid,\n editor: page.editor,\n locale: page.locale,\n createdOn: page.createdOn,\n savedOn: page.savedOn,\n createdBy: page.createdBy,\n ownedBy: page.ownedBy,\n category: page.category,\n version: page.version,\n title: page.title,\n titleLC: page.title.toLowerCase(),\n path: page.path,\n status: page.status,\n locked: page.locked,\n publishedOn: page.publishedOn,\n\n // Pull tags & snippet from settings.general.\n tags: lodashGet(page, \"settings.general.tags\") || [],\n snippet: lodashGet(page, \"settings.general.snippet\") || null,\n\n // Save some images that could maybe be used on listing pages.\n images: {\n general: lodashGet(page, \"settings.general.image\")\n }\n };\n};\n\nexport const getESLatestPageData = (\n plugins: PluginsContainer,\n page: Page,\n input: Record<string, any> = {}\n) => {\n const data = { ...getESPageData(page), latest: true };\n return modifyData({ data, page, plugins, input });\n};\n\nexport const getESPublishedPageData = (\n plugins: PluginsContainer,\n page: Page,\n input: Record<string, any> = {}\n) => {\n const data = { ...getESPageData(page), published: true };\n return modifyData({ data, page, plugins, input });\n};\n\ninterface ModifyDataParams {\n input: Record<string, any>;\n data: Record<string, any>;\n page: Page;\n plugins: PluginsContainer;\n}\n\nconst modifyData = (params: ModifyDataParams) => {\n const { data, page, plugins, input } = params;\n const pagePlugins = plugins.byType<IndexPageDataPlugin>(IndexPageDataPlugin.type);\n\n for (const plugin of pagePlugins) {\n plugin.apply({ page, data, plugins, input });\n }\n\n return data;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAIA;AACA;AACA;AACA;AACO,MAAME,aAAa,GAAIC,IAAU,IAAK;EACzC,OAAO;IACHC,MAAM,EAAE,MAAM;IACdC,MAAM,EAAEF,IAAI,CAACE,MAAM;IACnBC,aAAa,EAAEH,IAAI,CAACG,aAAa;IACjCC,EAAE,EAAEJ,IAAI,CAACI,EAAE;IACXC,GAAG,EAAEL,IAAI,CAACK,GAAG;IACbC,MAAM,EAAEN,IAAI,CAACM,MAAM;IACnBC,MAAM,EAAEP,IAAI,CAACO,MAAM;IACnBC,SAAS,EAAER,IAAI,CAACQ,SAAS;IACzBC,OAAO,EAAET,IAAI,CAACS,OAAO;IACrBC,SAAS,EAAEV,IAAI,CAACU,SAAS;IACzBC,OAAO,EAAEX,IAAI,CAACW,OAAO;IACrBC,QAAQ,EAAEZ,IAAI,CAACY,QAAQ;IACvBC,OAAO,EAAEb,IAAI,CAACa,OAAO;IACrBC,KAAK,EAAEd,IAAI,CAACc,KAAK;IACjBC,OAAO,EAAEf,IAAI,CAACc,KAAK,CAACE,WAAW,CAAC,CAAC;IACjCC,IAAI,EAAEjB,IAAI,CAACiB,IAAI;IACfC,MAAM,EAAElB,IAAI,CAACkB,MAAM;IACnBC,MAAM,EAAEnB,IAAI,CAACmB,MAAM;IACnBC,WAAW,EAAEpB,IAAI,CAACoB,WAAW;IAE7B;IACAC,IAAI,EAAE,IAAAC,YAAS,EAACtB,IAAI,EAAE,uBAAuB,CAAC,IAAI,EAAE;IACpDuB,OAAO,EAAE,IAAAD,YAAS,EAACtB,IAAI,EAAE,0BAA0B,CAAC,IAAI,IAAI;IAE5D;IACAwB,MAAM,EAAE;MACJC,OAAO,EAAE,IAAAH,YAAS,EAACtB,IAAI,EAAE,wBAAwB;IACrD;EACJ,CAAC;AACL,CAAC;AAAC0B,OAAA,CAAA3B,aAAA,GAAAA,aAAA;AAEK,MAAM4B,mBAAmB,GAAGA,CAC/BC,OAAyB,EACzB5B,IAAU,EACV6B,KAA0B,GAAG,CAAC,CAAC,KAC9B;EACD,MAAMC,IAAI,GAAG;IAAE,GAAG/B,aAAa,CAACC,IAAI,CAAC;IAAE+B,MAAM,EAAE;EAAK,CAAC;EACrD,OAAOC,UAAU,CAAC;IAAEF,IAAI;IAAE9B,IAAI;IAAE4B,OAAO;IAAEC;EAAM,CAAC,CAAC;AACrD,CAAC;AAACH,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AAEK,MAAMM,sBAAsB,GAAGA,CAClCL,OAAyB,EACzB5B,IAAU,EACV6B,KAA0B,GAAG,CAAC,CAAC,KAC9B;EACD,MAAMC,IAAI,GAAG;IAAE,GAAG/B,aAAa,CAACC,IAAI,CAAC;IAAEkC,SAAS,EAAE;EAAK,CAAC;EACxD,OAAOF,UAAU,CAAC;IAAEF,IAAI;IAAE9B,IAAI;IAAE4B,OAAO;IAAEC;EAAM,CAAC,CAAC;AACrD,CAAC;AAACH,OAAA,CAAAO,sBAAA,GAAAA,sBAAA;AASF,MAAMD,UAAU,GAAIG,MAAwB,IAAK;EAC7C,MAAM;IAAEL,IAAI;IAAE9B,IAAI;IAAE4B,OAAO;IAAEC;EAAM,CAAC,GAAGM,MAAM;EAC7C,MAAMC,WAAW,GAAGR,OAAO,CAACS,MAAM,CAAsBC,wCAAmB,CAACC,IAAI,CAAC;EAEjF,KAAK,MAAMC,MAAM,IAAIJ,WAAW,EAAE;IAC9BI,MAAM,CAACC,KAAK,CAAC;MAAEzC,IAAI;MAAE8B,IAAI;MAAEF,OAAO;MAAEC;IAAM,CAAC,CAAC;EAChD;EAEA,OAAOC,IAAI;AACf,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { PageStorageOperations } from "@webiny/api-page-builder/types";
|
|
2
|
+
import type { Entity } from "@webiny/db-dynamodb/toolbox";
|
|
3
|
+
import type { Client } from "@elastic/elasticsearch";
|
|
4
|
+
import type { PluginsContainer } from "@webiny/plugins";
|
|
5
|
+
export interface CreatePageStorageOperationsParams {
|
|
6
|
+
entity: Entity<any>;
|
|
7
|
+
esEntity: Entity<any>;
|
|
8
|
+
elasticsearch: Client;
|
|
9
|
+
plugins: PluginsContainer;
|
|
5
10
|
}
|
|
11
|
+
export declare const createPageStorageOperations: (params: CreatePageStorageOperationsParams) => PageStorageOperations;
|