@webiny/api-page-builder-so-ddb-es 5.39.0-beta.1 → 5.39.0-beta.2
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/definitions/blockCategoryEntity.d.ts +2 -2
- package/definitions/blockCategoryEntity.js +6 -7
- package/definitions/blockCategoryEntity.js.map +1 -1
- package/definitions/categoryEntity.d.ts +2 -2
- package/definitions/categoryEntity.js +6 -7
- package/definitions/categoryEntity.js.map +1 -1
- package/definitions/menuEntity.d.ts +2 -2
- package/definitions/menuEntity.js +6 -7
- package/definitions/menuEntity.js.map +1 -1
- package/definitions/pageBlockEntity.d.ts +2 -2
- package/definitions/pageBlockEntity.js +6 -7
- package/definitions/pageBlockEntity.js.map +1 -1
- package/definitions/pageElasticsearchEntity.d.ts +2 -2
- package/definitions/pageElasticsearchEntity.js +6 -7
- package/definitions/pageElasticsearchEntity.js.map +1 -1
- package/definitions/pageElementEntity.d.ts +2 -2
- package/definitions/pageElementEntity.js +6 -7
- package/definitions/pageElementEntity.js.map +1 -1
- package/definitions/pageEntity.d.ts +2 -2
- package/definitions/pageEntity.js +6 -7
- package/definitions/pageEntity.js.map +1 -1
- package/definitions/pageTemplateEntity.d.ts +2 -2
- package/definitions/pageTemplateEntity.js +6 -7
- package/definitions/pageTemplateEntity.js.map +1 -1
- package/definitions/settingsEntity.d.ts +2 -2
- package/definitions/settingsEntity.js +2 -2
- package/definitions/settingsEntity.js.map +1 -1
- package/definitions/systemEntity.d.ts +2 -2
- package/definitions/systemEntity.js +6 -7
- package/definitions/systemEntity.js.map +1 -1
- package/definitions/table.d.ts +4 -4
- package/definitions/table.js +5 -3
- package/definitions/table.js.map +1 -1
- package/definitions/tableElasticsearch.d.ts +4 -4
- package/definitions/tableElasticsearch.js +5 -3
- package/definitions/tableElasticsearch.js.map +1 -1
- package/operations/blockCategory/dataLoader.d.ts +1 -1
- package/operations/blockCategory/dataLoader.js +1 -3
- package/operations/blockCategory/dataLoader.js.map +1 -1
- package/operations/blockCategory/index.d.ts +1 -1
- package/operations/blockCategory/index.js +25 -14
- package/operations/blockCategory/index.js.map +1 -1
- package/operations/category/dataLoader.d.ts +1 -1
- package/operations/category/dataLoader.js +1 -3
- package/operations/category/dataLoader.js.map +1 -1
- package/operations/category/index.d.ts +1 -1
- package/operations/category/index.js +25 -14
- package/operations/category/index.js.map +1 -1
- package/operations/menu/index.d.ts +1 -1
- package/operations/menu/index.js +29 -19
- package/operations/menu/index.js.map +1 -1
- package/operations/pageBlock/compression.js +6 -6
- package/operations/pageBlock/compression.js.map +1 -1
- package/operations/pageBlock/dataLoader.d.ts +1 -1
- package/operations/pageBlock/dataLoader.js +1 -3
- package/operations/pageBlock/dataLoader.js.map +1 -1
- package/operations/pageBlock/index.d.ts +1 -1
- package/operations/pageBlock/index.js +28 -19
- package/operations/pageBlock/index.js.map +1 -1
- package/operations/pageElement/index.d.ts +1 -1
- package/operations/pageElement/index.js +29 -19
- package/operations/pageElement/index.js.map +1 -1
- package/operations/pageTemplate/dataLoader.d.ts +1 -1
- package/operations/pageTemplate/dataLoader.js +1 -3
- package/operations/pageTemplate/dataLoader.js.map +1 -1
- package/operations/pageTemplate/index.d.ts +1 -1
- package/operations/pageTemplate/index.js +27 -20
- package/operations/pageTemplate/index.js.map +1 -1
- package/operations/pages/elasticsearchQueryBody.js +9 -10
- package/operations/pages/elasticsearchQueryBody.js.map +1 -1
- package/operations/pages/helpers.js +6 -5
- package/operations/pages/helpers.js.map +1 -1
- package/operations/pages/index.d.ts +1 -1
- package/operations/pages/index.js +116 -71
- package/operations/pages/index.js.map +1 -1
- package/operations/settings/index.d.ts +8 -2
- package/operations/settings/index.js +26 -19
- package/operations/settings/index.js.map +1 -1
- package/operations/system/index.d.ts +1 -1
- package/operations/system/index.js +19 -9
- package/operations/system/index.js.map +1 -1
- package/package.json +33 -30
- package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.js +3 -4
- package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.js.map +1 -1
- package/plugins/definitions/CategoryDynamoDbElasticFieldPlugin.js +3 -4
- package/plugins/definitions/CategoryDynamoDbElasticFieldPlugin.js.map +1 -1
- package/plugins/definitions/IndexPageDataPlugin.js +1 -4
- package/plugins/definitions/IndexPageDataPlugin.js.map +1 -1
- package/plugins/definitions/MenuDynamoDbElasticFieldPlugin.js +3 -4
- package/plugins/definitions/MenuDynamoDbElasticFieldPlugin.js.map +1 -1
- package/plugins/definitions/PageBlockDynamoDbFieldPlugin.js +3 -4
- package/plugins/definitions/PageBlockDynamoDbFieldPlugin.js.map +1 -1
- package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.js +3 -4
- package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.js.map +1 -1
- package/plugins/definitions/PageElasticsearchBodyModifierPlugin.js +3 -4
- package/plugins/definitions/PageElasticsearchBodyModifierPlugin.js.map +1 -1
- package/plugins/definitions/PageElasticsearchFieldPlugin.js +3 -4
- package/plugins/definitions/PageElasticsearchFieldPlugin.js.map +1 -1
- package/plugins/definitions/PageElasticsearchIndexPlugin.js +3 -4
- package/plugins/definitions/PageElasticsearchIndexPlugin.js.map +1 -1
- package/plugins/definitions/PageElasticsearchQueryModifierPlugin.js +3 -4
- package/plugins/definitions/PageElasticsearchQueryModifierPlugin.js.map +1 -1
- package/plugins/definitions/PageElasticsearchSortModifierPlugin.js +3 -4
- package/plugins/definitions/PageElasticsearchSortModifierPlugin.js.map +1 -1
- package/plugins/definitions/PageElementDynamoDbElasticFieldPlugin.js +3 -4
- package/plugins/definitions/PageElementDynamoDbElasticFieldPlugin.js.map +1 -1
- package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.js +3 -4
- package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.js.map +1 -1
- package/plugins/definitions/SearchLatestPagesPlugin.js +3 -4
- package/plugins/definitions/SearchLatestPagesPlugin.js.map +1 -1
- package/plugins/definitions/SearchPagesPlugin.js +0 -3
- package/plugins/definitions/SearchPagesPlugin.js.map +1 -1
- package/plugins/definitions/SearchPublishedPagesPlugin.js +3 -4
- package/plugins/definitions/SearchPublishedPagesPlugin.js.map +1 -1
- package/types.d.ts +8 -9
- package/types.js.map +1 -1
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.createPageTemplateStorageOperations = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
9
|
var _query = require("@webiny/db-dynamodb/utils/query");
|
|
12
10
|
var _sort = require("@webiny/db-dynamodb/utils/sort");
|
|
@@ -15,7 +13,7 @@ var _dataLoader = require("./dataLoader");
|
|
|
15
13
|
var _listResponse = require("@webiny/db-dynamodb/utils/listResponse");
|
|
16
14
|
var _PageTemplateDynamoDbElasticFieldPlugin = require("../../plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin");
|
|
17
15
|
var _keys = require("./keys");
|
|
18
|
-
|
|
16
|
+
var _dbDynamodb = require("@webiny/db-dynamodb");
|
|
19
17
|
const createType = () => {
|
|
20
18
|
return "pb.pageTemplate";
|
|
21
19
|
};
|
|
@@ -46,7 +44,7 @@ const createPageTemplateStorageOperations = ({
|
|
|
46
44
|
eq: where.slug
|
|
47
45
|
}
|
|
48
46
|
});
|
|
49
|
-
return
|
|
47
|
+
return result?.data || null;
|
|
50
48
|
} catch (ex) {
|
|
51
49
|
throw new _error.default(ex.message || "Could not load page template by given parameters.", ex.code || "PAGE_TEMPLATE_GET_ERROR", {
|
|
52
50
|
where
|
|
@@ -60,10 +58,10 @@ const createPageTemplateStorageOperations = ({
|
|
|
60
58
|
limit
|
|
61
59
|
} = params;
|
|
62
60
|
const {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
tenant,
|
|
62
|
+
locale,
|
|
63
|
+
...restWhere
|
|
64
|
+
} = where;
|
|
67
65
|
const queryAllParams = {
|
|
68
66
|
entity,
|
|
69
67
|
partitionKey: (0, _keys.createGSI1PK)({
|
|
@@ -84,7 +82,7 @@ const createPageTemplateStorageOperations = ({
|
|
|
84
82
|
options: queryAllParams.options
|
|
85
83
|
});
|
|
86
84
|
}
|
|
87
|
-
const itemsData = items.map(item => item
|
|
85
|
+
const itemsData = items.map(item => item?.data).filter(Boolean);
|
|
88
86
|
const fields = plugins.byType(_PageTemplateDynamoDbElasticFieldPlugin.PageTemplateDynamoDbElasticFieldPlugin.type);
|
|
89
87
|
const filteredItems = (0, _filter.filterItems)({
|
|
90
88
|
plugins,
|
|
@@ -115,10 +113,14 @@ const createPageTemplateStorageOperations = ({
|
|
|
115
113
|
GSI1_SK: pageTemplate.slug
|
|
116
114
|
};
|
|
117
115
|
try {
|
|
118
|
-
await
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
116
|
+
await (0, _dbDynamodb.put)({
|
|
117
|
+
entity,
|
|
118
|
+
item: {
|
|
119
|
+
data: pageTemplate,
|
|
120
|
+
TYPE: createType(),
|
|
121
|
+
...keys
|
|
122
|
+
}
|
|
123
|
+
});
|
|
122
124
|
/**
|
|
123
125
|
* Always clear data loader cache when modifying the records.
|
|
124
126
|
*/
|
|
@@ -142,10 +144,14 @@ const createPageTemplateStorageOperations = ({
|
|
|
142
144
|
GSI1_SK: pageTemplate.slug
|
|
143
145
|
};
|
|
144
146
|
try {
|
|
145
|
-
await
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
await (0, _dbDynamodb.put)({
|
|
148
|
+
entity,
|
|
149
|
+
item: {
|
|
150
|
+
data: pageTemplate,
|
|
151
|
+
TYPE: createType(),
|
|
152
|
+
...keys
|
|
153
|
+
}
|
|
154
|
+
});
|
|
149
155
|
/**
|
|
150
156
|
* Always clear data loader cache when modifying the records.
|
|
151
157
|
*/
|
|
@@ -168,9 +174,10 @@ const createPageTemplateStorageOperations = ({
|
|
|
168
174
|
SK: "A"
|
|
169
175
|
};
|
|
170
176
|
try {
|
|
171
|
-
await
|
|
172
|
-
|
|
173
|
-
|
|
177
|
+
await (0, _dbDynamodb.deleteItem)({
|
|
178
|
+
entity,
|
|
179
|
+
keys
|
|
180
|
+
});
|
|
174
181
|
/**
|
|
175
182
|
* Always clear data loader cache when modifying the records.
|
|
176
183
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_query","_sort","_filter","_dataLoader","_listResponse","_PageTemplateDynamoDbElasticFieldPlugin","_keys","_excluded","createType","createPageTemplateStorageOperations","entity","plugins","dataLoader","PageTemplateDataLoader","get","params","where","id","getOne","tenant","locale","result","queryOne","partitionKey","createGSI1PK","options","index","eq","slug","data","ex","WebinyError","message","code","list","sort","limit","restWhere","_objectWithoutProperties2","default","queryAllParams","gt","items","queryAll","itemsData","map","item","filter","Boolean","fields","byType","PageTemplateDynamoDbElasticFieldPlugin","type","filteredItems","filterItems","sortedItems","sortItems","createListResponse","totalCount","length","after","create","pageTemplate","keys","PK","createPrimaryPK","SK","GSI1_PK","GSI1_SK","put","_objectSpread2","TYPE","clear","update","original","deletePageTemplate","delete","exports"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PageTemplate,\n PageTemplateStorageOperationsCreateParams,\n PageTemplateStorageOperationsDeleteParams,\n PageTemplateStorageOperationsGetParams,\n PageTemplateStorageOperationsListParams,\n PageTemplateStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { queryAll, QueryAllParams, queryOne } from \"@webiny/db-dynamodb/utils/query\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { PageTemplateDataLoader } from \"./dataLoader\";\nimport { createListResponse } from \"@webiny/db-dynamodb/utils/listResponse\";\nimport { PageTemplateDynamoDbElasticFieldPlugin } from \"~/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGSI1PK, createPrimaryPK } from \"./keys\";\nimport { DataContainer, PageTemplateStorageOperations } from \"~/types\";\n\nconst createType = (): string => {\n return \"pb.pageTemplate\";\n};\n\nexport interface CreatePageTemplateStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\n\nexport const createPageTemplateStorageOperations = ({\n entity,\n plugins\n}: CreatePageTemplateStorageOperationsParams): PageTemplateStorageOperations => {\n const dataLoader = new PageTemplateDataLoader({\n entity\n });\n\n const get = async (params: PageTemplateStorageOperationsGetParams) => {\n const { where } = params;\n\n try {\n if (where.id) {\n return await dataLoader.getOne({\n id: where.id,\n tenant: where.tenant,\n locale: where.locale\n });\n }\n\n const result = await queryOne<{ data: PageTemplate }>({\n entity,\n partitionKey: createGSI1PK(where),\n options: {\n index: \"GSI1\",\n eq: where.slug\n }\n });\n\n return result?.data || null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page template by given parameters.\",\n ex.code || \"PAGE_TEMPLATE_GET_ERROR\",\n {\n where\n }\n );\n }\n };\n\n const list = async (params: PageTemplateStorageOperationsListParams) => {\n const { where, sort, limit } = params;\n\n const { tenant, locale, ...restWhere } = where;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createGSI1PK({ tenant, locale }),\n options: {\n index: \"GSI1\",\n gt: \" \"\n }\n };\n\n let items: DataContainer<PageTemplate>[] = [];\n\n try {\n items = await queryAll<DataContainer<PageTemplate>>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list page templates by given parameters.\",\n ex.code || \"PAGE_TEMPLATE_LIST_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n\n const itemsData = items.map(item => item?.data).filter(Boolean);\n\n const fields = plugins.byType<PageTemplateDynamoDbElasticFieldPlugin>(\n PageTemplateDynamoDbElasticFieldPlugin.type\n );\n\n const filteredItems = filterItems<PageTemplate>({\n plugins,\n where: restWhere,\n items: itemsData,\n fields\n });\n\n const sortedItems = sortItems<PageTemplate>({\n items: filteredItems,\n sort,\n fields\n });\n\n return createListResponse({\n items: sortedItems,\n limit: limit || 100000,\n totalCount: sortedItems.length,\n after: null\n });\n };\n\n const create = async (params: PageTemplateStorageOperationsCreateParams) => {\n const { pageTemplate } = params;\n\n const keys = {\n PK: createPrimaryPK(pageTemplate),\n SK: \"A\",\n GSI1_PK: createGSI1PK(pageTemplate),\n GSI1_SK: pageTemplate.slug\n };\n\n try {\n await entity.put({\n data: pageTemplate,\n TYPE: createType(),\n ...keys\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageTemplate;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create page template.\",\n ex.code || \"PAGE_TEMPLATE_CREATE_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const update = async (params: PageTemplateStorageOperationsUpdateParams) => {\n const { original, pageTemplate } = params;\n const keys = {\n PK: createPrimaryPK(pageTemplate),\n SK: \"A\",\n GSI1_PK: createGSI1PK(pageTemplate),\n GSI1_SK: pageTemplate.slug\n };\n\n try {\n await entity.put({\n data: pageTemplate,\n TYPE: createType(),\n ...keys\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageTemplate;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update page template.\",\n ex.code || \"PAGE_TEMPLATE_UPDATE_ERROR\",\n {\n keys,\n original,\n pageTemplate\n }\n );\n }\n };\n\n const deletePageTemplate = async (params: PageTemplateStorageOperationsDeleteParams) => {\n const { pageTemplate } = params;\n const keys = {\n PK: createPrimaryPK(pageTemplate),\n SK: \"A\"\n };\n\n try {\n await entity.delete({\n data: pageTemplate,\n ...keys\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageTemplate;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete page template.\",\n ex.code || \"PAGE_TEMPLATE_DELETE_ERROR\",\n {\n keys,\n pageTemplate\n }\n );\n }\n };\n\n return {\n dataLoader,\n get,\n list,\n create,\n update,\n delete: deletePageTemplate\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_query","_sort","_filter","_dataLoader","_listResponse","_PageTemplateDynamoDbElasticFieldPlugin","_keys","_dbDynamodb","createType","createPageTemplateStorageOperations","entity","plugins","dataLoader","PageTemplateDataLoader","get","params","where","id","getOne","tenant","locale","result","queryOne","partitionKey","createGSI1PK","options","index","eq","slug","data","ex","WebinyError","message","code","list","sort","limit","restWhere","queryAllParams","gt","items","queryAll","itemsData","map","item","filter","Boolean","fields","byType","PageTemplateDynamoDbElasticFieldPlugin","type","filteredItems","filterItems","sortedItems","sortItems","createListResponse","totalCount","length","after","create","pageTemplate","keys","PK","createPrimaryPK","SK","GSI1_PK","GSI1_SK","put","TYPE","clear","update","original","deletePageTemplate","deleteItem","delete","exports"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PageTemplate,\n PageTemplateStorageOperationsCreateParams,\n PageTemplateStorageOperationsDeleteParams,\n PageTemplateStorageOperationsGetParams,\n PageTemplateStorageOperationsListParams,\n PageTemplateStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { queryAll, QueryAllParams, queryOne } from \"@webiny/db-dynamodb/utils/query\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { PageTemplateDataLoader } from \"./dataLoader\";\nimport { createListResponse } from \"@webiny/db-dynamodb/utils/listResponse\";\nimport { PageTemplateDynamoDbElasticFieldPlugin } from \"~/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGSI1PK, createPrimaryPK } from \"./keys\";\nimport { DataContainer, PageTemplateStorageOperations } from \"~/types\";\nimport { deleteItem, put } from \"@webiny/db-dynamodb\";\n\nconst createType = (): string => {\n return \"pb.pageTemplate\";\n};\n\nexport interface CreatePageTemplateStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\n\nexport const createPageTemplateStorageOperations = ({\n entity,\n plugins\n}: CreatePageTemplateStorageOperationsParams): PageTemplateStorageOperations => {\n const dataLoader = new PageTemplateDataLoader({\n entity\n });\n\n const get = async (params: PageTemplateStorageOperationsGetParams) => {\n const { where } = params;\n\n try {\n if (where.id) {\n return await dataLoader.getOne({\n id: where.id,\n tenant: where.tenant,\n locale: where.locale\n });\n }\n\n const result = await queryOne<{ data: PageTemplate }>({\n entity,\n partitionKey: createGSI1PK(where),\n options: {\n index: \"GSI1\",\n eq: where.slug\n }\n });\n\n return result?.data || null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page template by given parameters.\",\n ex.code || \"PAGE_TEMPLATE_GET_ERROR\",\n {\n where\n }\n );\n }\n };\n\n const list = async (params: PageTemplateStorageOperationsListParams) => {\n const { where, sort, limit } = params;\n\n const { tenant, locale, ...restWhere } = where;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createGSI1PK({ tenant, locale }),\n options: {\n index: \"GSI1\",\n gt: \" \"\n }\n };\n\n let items: DataContainer<PageTemplate>[] = [];\n\n try {\n items = await queryAll<DataContainer<PageTemplate>>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list page templates by given parameters.\",\n ex.code || \"PAGE_TEMPLATE_LIST_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n\n const itemsData = items.map(item => item?.data).filter(Boolean);\n\n const fields = plugins.byType<PageTemplateDynamoDbElasticFieldPlugin>(\n PageTemplateDynamoDbElasticFieldPlugin.type\n );\n\n const filteredItems = filterItems<PageTemplate>({\n plugins,\n where: restWhere,\n items: itemsData,\n fields\n });\n\n const sortedItems = sortItems<PageTemplate>({\n items: filteredItems,\n sort,\n fields\n });\n\n return createListResponse({\n items: sortedItems,\n limit: limit || 100000,\n totalCount: sortedItems.length,\n after: null\n });\n };\n\n const create = async (params: PageTemplateStorageOperationsCreateParams) => {\n const { pageTemplate } = params;\n\n const keys = {\n PK: createPrimaryPK(pageTemplate),\n SK: \"A\",\n GSI1_PK: createGSI1PK(pageTemplate),\n GSI1_SK: pageTemplate.slug\n };\n\n try {\n await put({\n entity,\n item: {\n data: pageTemplate,\n TYPE: createType(),\n ...keys\n }\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageTemplate;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create page template.\",\n ex.code || \"PAGE_TEMPLATE_CREATE_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const update = async (params: PageTemplateStorageOperationsUpdateParams) => {\n const { original, pageTemplate } = params;\n const keys = {\n PK: createPrimaryPK(pageTemplate),\n SK: \"A\",\n GSI1_PK: createGSI1PK(pageTemplate),\n GSI1_SK: pageTemplate.slug\n };\n\n try {\n await put({\n entity,\n item: {\n data: pageTemplate,\n TYPE: createType(),\n ...keys\n }\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageTemplate;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update page template.\",\n ex.code || \"PAGE_TEMPLATE_UPDATE_ERROR\",\n {\n keys,\n original,\n pageTemplate\n }\n );\n }\n };\n\n const deletePageTemplate = async (params: PageTemplateStorageOperationsDeleteParams) => {\n const { pageTemplate } = params;\n const keys = {\n PK: createPrimaryPK(pageTemplate),\n SK: \"A\"\n };\n\n try {\n await deleteItem({\n entity,\n keys\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageTemplate;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete page template.\",\n ex.code || \"PAGE_TEMPLATE_DELETE_ERROR\",\n {\n keys,\n pageTemplate\n }\n );\n }\n };\n\n return {\n dataLoader,\n get,\n list,\n create,\n update,\n delete: deletePageTemplate\n };\n};\n"],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.createElasticsearchQueryBody = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
10
9
|
var _apiElasticsearch = require("@webiny/api-elasticsearch");
|
|
11
10
|
var _PageElasticsearchFieldPlugin = require("../../plugins/definitions/PageElasticsearchFieldPlugin");
|
|
@@ -72,7 +71,9 @@ const createElasticsearchQuery = params => {
|
|
|
72
71
|
* Be aware that, if having more registered operator plugins of same type, the last one will be used.
|
|
73
72
|
*/
|
|
74
73
|
const operatorPlugins = (0, _apiElasticsearch.getElasticsearchOperatorPluginsByLocale)(plugins, initialWhere.locale);
|
|
75
|
-
const where =
|
|
74
|
+
const where = {
|
|
75
|
+
...initialWhere
|
|
76
|
+
};
|
|
76
77
|
/**
|
|
77
78
|
* Tags are specific so extract them and remove from where.
|
|
78
79
|
*/
|
|
@@ -160,9 +161,10 @@ const createElasticsearchQueryBody = params => {
|
|
|
160
161
|
return acc;
|
|
161
162
|
}, {});
|
|
162
163
|
const limit = (0, _apiElasticsearch.createLimit)(initialLimit, 100);
|
|
163
|
-
const query = createElasticsearchQuery(
|
|
164
|
+
const query = createElasticsearchQuery({
|
|
165
|
+
...params,
|
|
164
166
|
fieldPlugins
|
|
165
|
-
})
|
|
167
|
+
});
|
|
166
168
|
const sort = (0, _apiElasticsearch.createSort)({
|
|
167
169
|
sort: initialSort,
|
|
168
170
|
fieldPlugins
|
|
@@ -187,16 +189,13 @@ const createElasticsearchQueryBody = params => {
|
|
|
187
189
|
query: {
|
|
188
190
|
constant_score: {
|
|
189
191
|
filter: {
|
|
190
|
-
bool:
|
|
192
|
+
bool: {
|
|
193
|
+
...query
|
|
194
|
+
}
|
|
191
195
|
}
|
|
192
196
|
}
|
|
193
197
|
},
|
|
194
198
|
size: limit + 1,
|
|
195
|
-
/**
|
|
196
|
-
* Casting as any is required due to search_after is accepting an array of values.
|
|
197
|
-
* Which is correct in some cases. In our case, it is not.
|
|
198
|
-
* https://www.elastic.co/guide/en/elasticsearch/reference/7.13/paginate-search-results.html
|
|
199
|
-
*/
|
|
200
199
|
search_after: (0, _apiElasticsearch.decodeCursor)(after),
|
|
201
200
|
sort
|
|
202
201
|
};
|
|
@@ -1 +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","_objectSpread2","default","tags_in","tags","tags_rule","tagsRule","Array","isArray","length","terms","bool","map","tag","search","query_string","allow_leading_wildcard","fields","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","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 { SearchBody as esSearchBody } from \"elastic-ts\";\nimport {\n applyWhere,\n createLimit,\n createSort,\n decodeCursor,\n getElasticsearchOperatorPluginsByLocale\n} from \"@webiny/api-elasticsearch\";\nimport { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types\";\nimport { 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 { 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 = process.env.ELASTICSEARCH_SHARED_INDEXES === \"true\";\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 /**\n * Casting as any is required due to search_after is accepting an array of values.\n * Which is correct in some cases. In our case, it is not.\n * https://www.elastic.co/guide/en/elasticsearch/reference/7.13/paginate-search-results.html\n */\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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"}
|
|
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","process","env","ELASTICSEARCH_SHARED_INDEXES","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 { SearchBody as esSearchBody } from \"elastic-ts\";\nimport {\n applyWhere,\n createLimit,\n createSort,\n decodeCursor,\n getElasticsearchOperatorPluginsByLocale\n} from \"@webiny/api-elasticsearch\";\nimport { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types\";\nimport { 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 { 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 = process.env.ELASTICSEARCH_SHARED_INDEXES === \"true\";\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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"}
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.getESPublishedPageData = exports.getESPageData = exports.getESLatestPageData = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
8
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
10
9
|
var _IndexPageDataPlugin = require("../../plugins/definitions/IndexPageDataPlugin");
|
|
11
10
|
/**
|
|
@@ -44,9 +43,10 @@ const getESPageData = page => {
|
|
|
44
43
|
};
|
|
45
44
|
exports.getESPageData = getESPageData;
|
|
46
45
|
const getESLatestPageData = (plugins, page, input = {}) => {
|
|
47
|
-
const data =
|
|
46
|
+
const data = {
|
|
47
|
+
...getESPageData(page),
|
|
48
48
|
latest: true
|
|
49
|
-
}
|
|
49
|
+
};
|
|
50
50
|
return modifyData({
|
|
51
51
|
data,
|
|
52
52
|
page,
|
|
@@ -56,9 +56,10 @@ const getESLatestPageData = (plugins, page, input = {}) => {
|
|
|
56
56
|
};
|
|
57
57
|
exports.getESLatestPageData = getESLatestPageData;
|
|
58
58
|
const getESPublishedPageData = (plugins, page, input = {}) => {
|
|
59
|
-
const data =
|
|
59
|
+
const data = {
|
|
60
|
+
...getESPageData(page),
|
|
60
61
|
published: true
|
|
61
|
-
}
|
|
62
|
+
};
|
|
62
63
|
return modifyData({
|
|
63
64
|
data,
|
|
64
65
|
page,
|
|
@@ -1 +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","
|
|
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 { Page } from \"@webiny/api-page-builder/types\";\nimport { 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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PageStorageOperations } from "@webiny/api-page-builder/types";
|
|
2
|
-
import { Entity } from "dynamodb
|
|
2
|
+
import { Entity } from "@webiny/db-dynamodb/toolbox";
|
|
3
3
|
import { Client } from "@elastic/elasticsearch";
|
|
4
4
|
import { PluginsContainer } from "@webiny/plugins";
|
|
5
5
|
export interface CreatePageStorageOperationsParams {
|