@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.
Files changed (229) hide show
  1. package/configurations.d.ts +18 -0
  2. package/configurations.js +53 -0
  3. package/configurations.js.map +1 -0
  4. package/definitions/blockCategoryEntity.d.ts +10 -0
  5. package/definitions/blockCategoryEntity.js +57 -0
  6. package/definitions/blockCategoryEntity.js.map +1 -0
  7. package/definitions/categoryEntity.d.ts +10 -6
  8. package/definitions/categoryEntity.js +12 -23
  9. package/definitions/categoryEntity.js.map +1 -0
  10. package/definitions/menuEntity.d.ts +10 -6
  11. package/definitions/menuEntity.js +12 -23
  12. package/definitions/menuEntity.js.map +1 -0
  13. package/definitions/pageBlockEntity.d.ts +10 -0
  14. package/definitions/pageBlockEntity.js +74 -0
  15. package/definitions/pageBlockEntity.js.map +1 -0
  16. package/definitions/pageElasticsearchEntity.d.ts +10 -6
  17. package/definitions/pageElasticsearchEntity.js +15 -23
  18. package/definitions/pageElasticsearchEntity.js.map +1 -0
  19. package/definitions/pageElementEntity.d.ts +10 -6
  20. package/definitions/pageElementEntity.js +12 -23
  21. package/definitions/pageElementEntity.js.map +1 -0
  22. package/definitions/pageEntity.d.ts +10 -6
  23. package/definitions/pageEntity.js +20 -32
  24. package/definitions/pageEntity.js.map +1 -0
  25. package/definitions/pageTemplateEntity.d.ts +10 -0
  26. package/definitions/pageTemplateEntity.js +42 -0
  27. package/definitions/pageTemplateEntity.js.map +1 -0
  28. package/definitions/settingsEntity.d.ts +8 -6
  29. package/definitions/settingsEntity.js +11 -54
  30. package/definitions/settingsEntity.js.map +1 -0
  31. package/definitions/systemEntity.d.ts +10 -6
  32. package/definitions/systemEntity.js +15 -23
  33. package/definitions/systemEntity.js.map +1 -0
  34. package/definitions/table.d.ts +8 -5
  35. package/definitions/table.js +22 -21
  36. package/definitions/table.js.map +1 -0
  37. package/definitions/tableElasticsearch.d.ts +9 -5
  38. package/definitions/tableElasticsearch.js +16 -28
  39. package/definitions/tableElasticsearch.js.map +1 -0
  40. package/elasticsearch/createElasticsearchIndex.d.ts +9 -0
  41. package/elasticsearch/createElasticsearchIndex.js +41 -0
  42. package/elasticsearch/createElasticsearchIndex.js.map +1 -0
  43. package/elasticsearch/indices/base.d.ts +2 -0
  44. package/elasticsearch/indices/base.js +14 -0
  45. package/elasticsearch/indices/base.js.map +1 -0
  46. package/elasticsearch/indices/index.d.ts +1 -0
  47. package/elasticsearch/indices/index.js +14 -0
  48. package/elasticsearch/indices/index.js.map +1 -0
  49. package/elasticsearch/indices/japanese.d.ts +2 -0
  50. package/elasticsearch/indices/japanese.js +15 -0
  51. package/elasticsearch/indices/japanese.js.map +1 -0
  52. package/index.d.ts +3 -8
  53. package/index.js +246 -16
  54. package/index.js.map +1 -0
  55. package/operations/blockCategory/dataLoader.d.ts +17 -0
  56. package/operations/blockCategory/dataLoader.js +63 -0
  57. package/operations/blockCategory/dataLoader.js.map +1 -0
  58. package/operations/blockCategory/fields.d.ts +2 -0
  59. package/operations/blockCategory/fields.js +27 -0
  60. package/operations/blockCategory/fields.js.map +1 -0
  61. package/operations/blockCategory/index.d.ts +8 -0
  62. package/operations/blockCategory/index.js +192 -0
  63. package/operations/blockCategory/index.js.map +1 -0
  64. package/operations/blockCategory/keys.d.ts +9 -0
  65. package/operations/blockCategory/keys.js +23 -0
  66. package/operations/blockCategory/keys.js.map +1 -0
  67. package/operations/category/dataLoader.d.ts +17 -0
  68. package/operations/category/{CategoryDataLoader.js → dataLoader.js} +13 -27
  69. package/operations/category/dataLoader.js.map +1 -0
  70. package/operations/category/fields.d.ts +1 -2
  71. package/operations/category/fields.js +4 -5
  72. package/operations/category/fields.js.map +1 -0
  73. package/operations/category/index.d.ts +7 -4
  74. package/operations/category/index.js +185 -21
  75. package/operations/category/index.js.map +1 -0
  76. package/operations/category/keys.d.ts +9 -0
  77. package/operations/category/keys.js +23 -0
  78. package/operations/category/keys.js.map +1 -0
  79. package/operations/menu/fields.d.ts +1 -2
  80. package/operations/menu/fields.js +19 -18
  81. package/operations/menu/fields.js.map +1 -0
  82. package/operations/menu/index.d.ts +7 -4
  83. package/operations/menu/index.js +193 -21
  84. package/operations/menu/index.js.map +1 -0
  85. package/operations/pageBlock/compression.d.ts +18 -0
  86. package/operations/pageBlock/compression.js +42 -0
  87. package/operations/pageBlock/compression.js.map +1 -0
  88. package/operations/pageBlock/dataLoader.d.ts +17 -0
  89. package/operations/pageBlock/dataLoader.js +63 -0
  90. package/operations/pageBlock/dataLoader.js.map +1 -0
  91. package/operations/pageBlock/fields.d.ts +2 -0
  92. package/operations/pageBlock/fields.js +24 -0
  93. package/operations/pageBlock/fields.js.map +1 -0
  94. package/operations/pageBlock/index.d.ts +8 -0
  95. package/operations/pageBlock/index.js +219 -0
  96. package/operations/pageBlock/index.js.map +1 -0
  97. package/operations/pageBlock/keys.d.ts +20 -0
  98. package/operations/pageBlock/keys.js +37 -0
  99. package/operations/pageBlock/keys.js.map +1 -0
  100. package/operations/pageElement/fields.d.ts +1 -2
  101. package/operations/pageElement/fields.js +4 -5
  102. package/operations/pageElement/fields.js.map +1 -0
  103. package/operations/pageElement/index.d.ts +7 -6
  104. package/operations/pageElement/index.js +182 -21
  105. package/operations/pageElement/index.js.map +1 -0
  106. package/operations/pageTemplate/dataLoader.d.ts +17 -0
  107. package/operations/pageTemplate/dataLoader.js +62 -0
  108. package/operations/pageTemplate/dataLoader.js.map +1 -0
  109. package/operations/pageTemplate/fields.d.ts +2 -0
  110. package/operations/pageTemplate/fields.js +24 -0
  111. package/operations/pageTemplate/fields.js.map +1 -0
  112. package/operations/pageTemplate/index.d.ts +8 -0
  113. package/operations/pageTemplate/index.js +204 -0
  114. package/operations/pageTemplate/index.js.map +1 -0
  115. package/operations/pageTemplate/keys.d.ts +5 -0
  116. package/operations/pageTemplate/keys.js +23 -0
  117. package/operations/pageTemplate/keys.js.map +1 -0
  118. package/operations/pages/elasticsearchQueryBody.d.ts +8 -12
  119. package/operations/pages/elasticsearchQueryBody.js +43 -101
  120. package/operations/pages/elasticsearchQueryBody.js.map +1 -0
  121. package/operations/pages/fields.d.ts +3 -2
  122. package/operations/pages/fields.js +18 -5
  123. package/operations/pages/fields.js.map +1 -0
  124. package/operations/pages/helpers.d.ts +10 -18
  125. package/operations/pages/helpers.js +34 -33
  126. package/operations/pages/helpers.js.map +1 -0
  127. package/operations/pages/index.d.ts +10 -4
  128. package/operations/pages/index.js +785 -18
  129. package/operations/pages/index.js.map +1 -0
  130. package/operations/pages/keys.d.ts +24 -0
  131. package/operations/pages/keys.js +59 -0
  132. package/operations/pages/keys.js.map +1 -0
  133. package/operations/pages/logIgnoredEsResponseError.d.ts +7 -0
  134. package/operations/pages/logIgnoredEsResponseError.js +28 -0
  135. package/operations/pages/logIgnoredEsResponseError.js.map +1 -0
  136. package/operations/pages/shouldIgnoreEsResponseError.d.ts +2 -0
  137. package/operations/pages/shouldIgnoreEsResponseError.js +13 -0
  138. package/operations/pages/shouldIgnoreEsResponseError.js.map +1 -0
  139. package/operations/settings/index.d.ts +11 -6
  140. package/operations/settings/index.js +140 -15
  141. package/operations/settings/index.js.map +1 -0
  142. package/operations/system/index.d.ts +5 -4
  143. package/operations/system/index.js +94 -23
  144. package/operations/system/index.js.map +1 -0
  145. package/package.json +44 -36
  146. package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.d.ts +4 -0
  147. package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.js +13 -0
  148. package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.js.map +1 -0
  149. package/plugins/definitions/CategoryDynamoDbElasticFieldPlugin.js +5 -9
  150. package/plugins/definitions/CategoryDynamoDbElasticFieldPlugin.js.map +1 -0
  151. package/plugins/definitions/IndexPageDataPlugin.d.ts +12 -11
  152. package/plugins/definitions/IndexPageDataPlugin.js +3 -12
  153. package/plugins/definitions/IndexPageDataPlugin.js.map +1 -0
  154. package/plugins/definitions/MenuDynamoDbElasticFieldPlugin.js +5 -9
  155. package/plugins/definitions/MenuDynamoDbElasticFieldPlugin.js.map +1 -0
  156. package/plugins/definitions/PageBlockDynamoDbFieldPlugin.d.ts +4 -0
  157. package/plugins/definitions/PageBlockDynamoDbFieldPlugin.js +13 -0
  158. package/plugins/definitions/PageBlockDynamoDbFieldPlugin.js.map +1 -0
  159. package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.d.ts +4 -0
  160. package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.js +13 -0
  161. package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.js.map +1 -0
  162. package/plugins/definitions/PageElasticsearchBodyModifierPlugin.d.ts +6 -2
  163. package/plugins/definitions/PageElasticsearchBodyModifierPlugin.js +6 -10
  164. package/plugins/definitions/PageElasticsearchBodyModifierPlugin.js.map +1 -0
  165. package/plugins/definitions/PageElasticsearchFieldPlugin.d.ts +1 -2
  166. package/plugins/definitions/PageElasticsearchFieldPlugin.js +5 -14
  167. package/plugins/definitions/PageElasticsearchFieldPlugin.js.map +1 -0
  168. package/plugins/definitions/PageElasticsearchIndexPlugin.d.ts +4 -0
  169. package/plugins/definitions/PageElasticsearchIndexPlugin.js +13 -0
  170. package/plugins/definitions/PageElasticsearchIndexPlugin.js.map +1 -0
  171. package/plugins/definitions/PageElasticsearchQueryModifierPlugin.d.ts +8 -2
  172. package/plugins/definitions/PageElasticsearchQueryModifierPlugin.js +6 -10
  173. package/plugins/definitions/PageElasticsearchQueryModifierPlugin.js.map +1 -0
  174. package/plugins/definitions/PageElasticsearchSortModifierPlugin.d.ts +6 -2
  175. package/plugins/definitions/PageElasticsearchSortModifierPlugin.js +6 -10
  176. package/plugins/definitions/PageElasticsearchSortModifierPlugin.js.map +1 -0
  177. package/plugins/definitions/PageElementDynamoDbElasticFieldPlugin.js +5 -9
  178. package/plugins/definitions/PageElementDynamoDbElasticFieldPlugin.js.map +1 -0
  179. package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.d.ts +4 -0
  180. package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.js +13 -0
  181. package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.js.map +1 -0
  182. package/plugins/definitions/SearchLatestPagesPlugin.d.ts +1 -1
  183. package/plugins/definitions/SearchLatestPagesPlugin.js +5 -9
  184. package/plugins/definitions/SearchLatestPagesPlugin.js.map +1 -0
  185. package/plugins/definitions/SearchPagesPlugin.d.ts +4 -4
  186. package/plugins/definitions/SearchPagesPlugin.js +2 -13
  187. package/plugins/definitions/SearchPagesPlugin.js.map +1 -0
  188. package/plugins/definitions/SearchPublishedPagesPlugin.d.ts +1 -1
  189. package/plugins/definitions/SearchPublishedPagesPlugin.js +5 -9
  190. package/plugins/definitions/SearchPublishedPagesPlugin.js.map +1 -0
  191. package/plugins/definitions/index.d.ts +15 -0
  192. package/plugins/definitions/index.js +172 -0
  193. package/plugins/definitions/index.js.map +1 -0
  194. package/plugins/index.d.ts +1 -0
  195. package/plugins/index.js +18 -0
  196. package/plugins/index.js.map +1 -0
  197. package/tasks/createIndexTaskPlugin.d.ts +2 -0
  198. package/tasks/createIndexTaskPlugin.js +36 -0
  199. package/tasks/createIndexTaskPlugin.js.map +1 -0
  200. package/types.d.ts +63 -0
  201. package/types.js +21 -0
  202. package/types.js.map +1 -0
  203. package/operations/category/CategoryDataLoader.d.ts +0 -20
  204. package/operations/category/CategoryStorageOperations.d.ts +0 -29
  205. package/operations/category/CategoryStorageOperations.js +0 -243
  206. package/operations/configurations.d.ts +0 -36
  207. package/operations/configurations.js +0 -71
  208. package/operations/menu/MenuStorageOperations.d.ts +0 -23
  209. package/operations/menu/MenuStorageOperations.js +0 -235
  210. package/operations/pageElement/PageElementStorageOperations.d.ts +0 -23
  211. package/operations/pageElement/PageElementStorageOperations.js +0 -234
  212. package/operations/pages/PageStorageOperations.d.ts +0 -79
  213. package/operations/pages/PageStorageOperations.js +0 -1117
  214. package/operations/settings/SettingsStorageOperations.d.ts +0 -35
  215. package/operations/settings/SettingsStorageOperations.js +0 -191
  216. package/operations/system/InstallationDdbEsPlugin.d.ts +0 -2
  217. package/operations/system/InstallationDdbEsPlugin.js +0 -73
  218. package/operations/system/SystemStorageOperations.d.ts +0 -16
  219. package/operations/system/SystemStorageOperations.js +0 -114
  220. package/upgrades/index.d.ts +0 -2
  221. package/upgrades/index.js +0 -14
  222. package/upgrades/v5.15.0/category.d.ts +0 -2
  223. package/upgrades/v5.15.0/category.js +0 -75
  224. package/upgrades/v5.15.0/index.d.ts +0 -4
  225. package/upgrades/v5.15.0/index.js +0 -52
  226. package/upgrades/v5.15.0/menu.d.ts +0 -2
  227. package/upgrades/v5.15.0/menu.js +0 -75
  228. package/upgrades/v5.15.0/pageElement.d.ts +0 -2
  229. 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
- } // we do not allow not published and not latest
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
- context,
63
+ plugins,
103
64
  where: initialWhere,
104
- plugins: fieldPlugins
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 operatorPlugins = context.plugins.byType(_ElasticsearchQueryBuilderOperatorPlugin.ElasticsearchQueryBuilderOperatorPlugin.type).reduce((acc, plugin) => {
115
- acc[plugin.getOperator()] = plugin;
116
- return acc;
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
- } = where;
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 = where["tenant"] || context.tenancy.getCurrentTenant().id;
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
- context,
153
+ plugins,
208
154
  where,
209
155
  limit: initialLimit,
210
156
  sort: initialSort,
211
157
  after
212
158
  } = params;
213
- const fieldPlugins = context.plugins.byType(_PageElasticsearchFieldPlugin.PageElasticsearchFieldPlugin.type).reduce((acc, plugin) => {
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, _limit.createLimit)(initialLimit, 100);
218
- const query = createElasticsearchQuery(_objectSpread(_objectSpread({}, params), {}, {
219
- plugins: fieldPlugins
220
- }));
221
- const sort = (0, _sort.createSort)({
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 = context.plugins.byType(_PageElasticsearchQueryModifierPlugin.PageElasticsearchQueryModifierPlugin.type);
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: _objectSpread({}, query)
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 = context.plugins.byType(_PageElasticsearchBodyModifierPlugin.PageElasticsearchBodyModifierPlugin.type);
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
- exports.createElasticsearchQueryBody = createElasticsearchQueryBody;
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
- declare const _default: () => PageElasticsearchFieldPlugin[];
3
- export default _default;
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.default = void 0;
7
-
6
+ exports.createPagesElasticsearchFields = exports.createPagesDynamoDbFields = void 0;
8
7
  var _PageElasticsearchFieldPlugin = require("../../plugins/definitions/PageElasticsearchFieldPlugin");
9
-
10
- var _default = () => [new _PageElasticsearchFieldPlugin.PageElasticsearchFieldPlugin({
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
- exports.default = _default;
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 { PbContext } from "@webiny/api-page-builder/graphql/types";
2
- import { Page } from "@webiny/api-page-builder/types";
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
- type: string;
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: any;
36
- snippet: any;
26
+ publishedOn: string | null;
27
+ tags: string[];
28
+ snippet: string | null;
37
29
  images: {
38
- general: any;
30
+ general: import("@webiny/api-page-builder/types").File | undefined;
39
31
  };
40
32
  };
41
- export declare const getESLatestPageData: (context: PbContext, page: Page) => Record<string, any>;
42
- export declare const getESPublishedPageData: (context: PbContext, page: Page) => Record<string, any>;
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 getESLatestPageData = (context, page) => {
58
- const data = _objectSpread(_objectSpread({}, getESPageData(page)), {}, {
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 getESPublishedPageData = (context, page) => {
68
- const data = _objectSpread(_objectSpread({}, getESPageData(page)), {}, {
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 modifyData = (data, page, context) => {
78
- const pagePlugins = context.plugins.byType(_IndexPageDataPlugin.IndexPageDataPlugin.type);
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 { Params, PageStorageOperationsProviderPlugin } from "@webiny/api-page-builder/plugins/PageStorageOperationsProviderPlugin";
2
- import { PageStorageOperations } from "@webiny/api-page-builder/types";
3
- export declare class PageStorageOperationsDdbEsProviderPlugin extends PageStorageOperationsProviderPlugin {
4
- provide({ context }: Params): Promise<PageStorageOperations>;
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;