@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.
Files changed (116) hide show
  1. package/definitions/blockCategoryEntity.d.ts +2 -2
  2. package/definitions/blockCategoryEntity.js +6 -7
  3. package/definitions/blockCategoryEntity.js.map +1 -1
  4. package/definitions/categoryEntity.d.ts +2 -2
  5. package/definitions/categoryEntity.js +6 -7
  6. package/definitions/categoryEntity.js.map +1 -1
  7. package/definitions/menuEntity.d.ts +2 -2
  8. package/definitions/menuEntity.js +6 -7
  9. package/definitions/menuEntity.js.map +1 -1
  10. package/definitions/pageBlockEntity.d.ts +2 -2
  11. package/definitions/pageBlockEntity.js +6 -7
  12. package/definitions/pageBlockEntity.js.map +1 -1
  13. package/definitions/pageElasticsearchEntity.d.ts +2 -2
  14. package/definitions/pageElasticsearchEntity.js +6 -7
  15. package/definitions/pageElasticsearchEntity.js.map +1 -1
  16. package/definitions/pageElementEntity.d.ts +2 -2
  17. package/definitions/pageElementEntity.js +6 -7
  18. package/definitions/pageElementEntity.js.map +1 -1
  19. package/definitions/pageEntity.d.ts +2 -2
  20. package/definitions/pageEntity.js +6 -7
  21. package/definitions/pageEntity.js.map +1 -1
  22. package/definitions/pageTemplateEntity.d.ts +2 -2
  23. package/definitions/pageTemplateEntity.js +6 -7
  24. package/definitions/pageTemplateEntity.js.map +1 -1
  25. package/definitions/settingsEntity.d.ts +2 -2
  26. package/definitions/settingsEntity.js +2 -2
  27. package/definitions/settingsEntity.js.map +1 -1
  28. package/definitions/systemEntity.d.ts +2 -2
  29. package/definitions/systemEntity.js +6 -7
  30. package/definitions/systemEntity.js.map +1 -1
  31. package/definitions/table.d.ts +4 -4
  32. package/definitions/table.js +5 -3
  33. package/definitions/table.js.map +1 -1
  34. package/definitions/tableElasticsearch.d.ts +4 -4
  35. package/definitions/tableElasticsearch.js +5 -3
  36. package/definitions/tableElasticsearch.js.map +1 -1
  37. package/operations/blockCategory/dataLoader.d.ts +1 -1
  38. package/operations/blockCategory/dataLoader.js +1 -3
  39. package/operations/blockCategory/dataLoader.js.map +1 -1
  40. package/operations/blockCategory/index.d.ts +1 -1
  41. package/operations/blockCategory/index.js +25 -14
  42. package/operations/blockCategory/index.js.map +1 -1
  43. package/operations/category/dataLoader.d.ts +1 -1
  44. package/operations/category/dataLoader.js +1 -3
  45. package/operations/category/dataLoader.js.map +1 -1
  46. package/operations/category/index.d.ts +1 -1
  47. package/operations/category/index.js +25 -14
  48. package/operations/category/index.js.map +1 -1
  49. package/operations/menu/index.d.ts +1 -1
  50. package/operations/menu/index.js +29 -19
  51. package/operations/menu/index.js.map +1 -1
  52. package/operations/pageBlock/compression.js +6 -6
  53. package/operations/pageBlock/compression.js.map +1 -1
  54. package/operations/pageBlock/dataLoader.d.ts +1 -1
  55. package/operations/pageBlock/dataLoader.js +1 -3
  56. package/operations/pageBlock/dataLoader.js.map +1 -1
  57. package/operations/pageBlock/index.d.ts +1 -1
  58. package/operations/pageBlock/index.js +28 -19
  59. package/operations/pageBlock/index.js.map +1 -1
  60. package/operations/pageElement/index.d.ts +1 -1
  61. package/operations/pageElement/index.js +29 -19
  62. package/operations/pageElement/index.js.map +1 -1
  63. package/operations/pageTemplate/dataLoader.d.ts +1 -1
  64. package/operations/pageTemplate/dataLoader.js +1 -3
  65. package/operations/pageTemplate/dataLoader.js.map +1 -1
  66. package/operations/pageTemplate/index.d.ts +1 -1
  67. package/operations/pageTemplate/index.js +27 -20
  68. package/operations/pageTemplate/index.js.map +1 -1
  69. package/operations/pages/elasticsearchQueryBody.js +9 -10
  70. package/operations/pages/elasticsearchQueryBody.js.map +1 -1
  71. package/operations/pages/helpers.js +6 -5
  72. package/operations/pages/helpers.js.map +1 -1
  73. package/operations/pages/index.d.ts +1 -1
  74. package/operations/pages/index.js +116 -71
  75. package/operations/pages/index.js.map +1 -1
  76. package/operations/settings/index.d.ts +8 -2
  77. package/operations/settings/index.js +26 -19
  78. package/operations/settings/index.js.map +1 -1
  79. package/operations/system/index.d.ts +1 -1
  80. package/operations/system/index.js +19 -9
  81. package/operations/system/index.js.map +1 -1
  82. package/package.json +33 -30
  83. package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.js +3 -4
  84. package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.js.map +1 -1
  85. package/plugins/definitions/CategoryDynamoDbElasticFieldPlugin.js +3 -4
  86. package/plugins/definitions/CategoryDynamoDbElasticFieldPlugin.js.map +1 -1
  87. package/plugins/definitions/IndexPageDataPlugin.js +1 -4
  88. package/plugins/definitions/IndexPageDataPlugin.js.map +1 -1
  89. package/plugins/definitions/MenuDynamoDbElasticFieldPlugin.js +3 -4
  90. package/plugins/definitions/MenuDynamoDbElasticFieldPlugin.js.map +1 -1
  91. package/plugins/definitions/PageBlockDynamoDbFieldPlugin.js +3 -4
  92. package/plugins/definitions/PageBlockDynamoDbFieldPlugin.js.map +1 -1
  93. package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.js +3 -4
  94. package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.js.map +1 -1
  95. package/plugins/definitions/PageElasticsearchBodyModifierPlugin.js +3 -4
  96. package/plugins/definitions/PageElasticsearchBodyModifierPlugin.js.map +1 -1
  97. package/plugins/definitions/PageElasticsearchFieldPlugin.js +3 -4
  98. package/plugins/definitions/PageElasticsearchFieldPlugin.js.map +1 -1
  99. package/plugins/definitions/PageElasticsearchIndexPlugin.js +3 -4
  100. package/plugins/definitions/PageElasticsearchIndexPlugin.js.map +1 -1
  101. package/plugins/definitions/PageElasticsearchQueryModifierPlugin.js +3 -4
  102. package/plugins/definitions/PageElasticsearchQueryModifierPlugin.js.map +1 -1
  103. package/plugins/definitions/PageElasticsearchSortModifierPlugin.js +3 -4
  104. package/plugins/definitions/PageElasticsearchSortModifierPlugin.js.map +1 -1
  105. package/plugins/definitions/PageElementDynamoDbElasticFieldPlugin.js +3 -4
  106. package/plugins/definitions/PageElementDynamoDbElasticFieldPlugin.js.map +1 -1
  107. package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.js +3 -4
  108. package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.js.map +1 -1
  109. package/plugins/definitions/SearchLatestPagesPlugin.js +3 -4
  110. package/plugins/definitions/SearchLatestPagesPlugin.js.map +1 -1
  111. package/plugins/definitions/SearchPagesPlugin.js +0 -3
  112. package/plugins/definitions/SearchPagesPlugin.js.map +1 -1
  113. package/plugins/definitions/SearchPublishedPagesPlugin.js +3 -4
  114. package/plugins/definitions/SearchPublishedPagesPlugin.js.map +1 -1
  115. package/types.d.ts +8 -9
  116. package/types.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_cleanup","_query","_filter","_sort","_listResponse","_MenuDynamoDbElasticFieldPlugin","_excluded","createPartitionKey","params","tenant","locale","createSortKey","slug","createType","createMenuStorageOperations","entity","plugins","get","where","keys","PK","SK","result","Item","cleanupItem","ex","WebinyError","message","code","create","menu","put","_objectSpread2","default","TYPE","update","original","list","sort","limit","restWhere","_objectWithoutProperties2","queryAllParams","partitionKey","options","undefined","gt","items","queryAll","fields","byType","MenuDynamoDbElasticFieldPlugin","type","filteredItems","filterItems","map","item","sortedItems","sortItems","createListResponse","totalCount","length","after","deleteMenu","delete","exports"],"sources":["index.ts"],"sourcesContent":["import {\n Menu,\n MenuStorageOperations,\n MenuStorageOperationsCreateParams,\n MenuStorageOperationsDeleteParams,\n MenuStorageOperationsGetParams,\n MenuStorageOperationsListParams,\n MenuStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { createListResponse } from \"@webiny/db-dynamodb/utils/listResponse\";\nimport { MenuDynamoDbElasticFieldPlugin } from \"~/plugins/definitions/MenuDynamoDbElasticFieldPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ninterface PartitionKeyParams {\n tenant: string;\n locale: string;\n}\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#PB#M`;\n};\n\ninterface SortKeyParams {\n slug: string;\n}\nconst createSortKey = (params: SortKeyParams): string => {\n const { slug } = params;\n return slug;\n};\n\nconst createType = (): string => {\n return \"pb.menu\";\n};\n\nexport interface CreateMenuStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\nexport const createMenuStorageOperations = ({\n entity,\n plugins\n}: CreateMenuStorageOperationsParams): MenuStorageOperations => {\n const get = async (params: MenuStorageOperationsGetParams) => {\n const { where } = params;\n const keys = {\n PK: createPartitionKey(where),\n SK: createSortKey(where)\n };\n\n try {\n const result = await entity.get(keys);\n if (!result || !result.Item) {\n return null;\n }\n return cleanupItem(entity, result.Item);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load menu by given parameters.\",\n ex.code || \"MENU_GET_ERROR\",\n {\n where\n }\n );\n }\n };\n\n const create = async (params: MenuStorageOperationsCreateParams) => {\n const { menu } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: menu.tenant,\n locale: menu.locale\n }),\n SK: createSortKey(menu)\n };\n\n try {\n await entity.put({\n ...menu,\n TYPE: createType(),\n ...keys\n });\n return menu;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create menu.\",\n ex.code || \"MENU_CREATE_ERROR\",\n {\n keys,\n menu\n }\n );\n }\n };\n\n const update = async (params: MenuStorageOperationsUpdateParams) => {\n const { menu, original } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: menu.tenant,\n locale: menu.locale\n }),\n SK: createSortKey(menu)\n };\n\n try {\n await entity.put({\n ...menu,\n TYPE: createType(),\n ...keys\n });\n return menu;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update menu.\",\n ex.code || \"MENU_UPDATE_ERROR\",\n {\n keys,\n original,\n menu\n }\n );\n }\n };\n\n const list = async (params: MenuStorageOperationsListParams) => {\n const { where, sort, limit = 10 } = params;\n\n const { tenant, locale, ...restWhere } = where;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n tenant,\n locale\n }),\n options: {\n limit: limit || undefined,\n gt: \" \"\n }\n };\n\n let items: Menu[] = [];\n\n try {\n items = await queryAll<Menu>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list menus by given parameters.\",\n ex.code || \"MENUS_LIST_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n\n const fields = plugins.byType<MenuDynamoDbElasticFieldPlugin>(\n MenuDynamoDbElasticFieldPlugin.type\n );\n\n const filteredItems = filterItems<Menu>({\n plugins,\n where: restWhere,\n items,\n fields\n }).map(item => {\n return cleanupItem<Menu>(entity, item);\n }) as Menu[];\n\n const sortedItems = sortItems<Menu>({\n items: filteredItems,\n sort,\n fields\n ///: [\"createdOn\", \"id\", \"title\", \"slug\"]\n });\n\n return createListResponse({\n items: sortedItems,\n limit,\n totalCount: filteredItems.length,\n after: null\n });\n };\n\n const deleteMenu = async (params: MenuStorageOperationsDeleteParams) => {\n const { menu } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: menu.tenant,\n locale: menu.locale\n }),\n SK: createSortKey(menu)\n };\n\n try {\n await entity.delete({\n ...menu,\n ...keys\n });\n return menu;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete menu.\",\n ex.code || \"MENU_DELETE_ERROR\",\n {\n keys,\n menu\n }\n );\n }\n };\n\n return {\n get,\n create,\n update,\n list,\n delete: deleteMenu\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_cleanup","_query","_filter","_sort","_listResponse","_MenuDynamoDbElasticFieldPlugin","_dbDynamodb","createPartitionKey","params","tenant","locale","createSortKey","slug","createType","createMenuStorageOperations","entity","plugins","get","where","keys","PK","SK","getClean","ex","WebinyError","message","code","create","menu","put","item","TYPE","update","original","list","sort","limit","restWhere","queryAllParams","partitionKey","options","undefined","gt","items","queryAll","fields","byType","MenuDynamoDbElasticFieldPlugin","type","filteredItems","filterItems","map","cleanupItem","sortedItems","sortItems","createListResponse","totalCount","length","after","deleteMenu","deleteItem","delete","exports"],"sources":["index.ts"],"sourcesContent":["import {\n Menu,\n MenuStorageOperations,\n MenuStorageOperationsCreateParams,\n MenuStorageOperationsDeleteParams,\n MenuStorageOperationsGetParams,\n MenuStorageOperationsListParams,\n MenuStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { createListResponse } from \"@webiny/db-dynamodb/utils/listResponse\";\nimport { MenuDynamoDbElasticFieldPlugin } from \"~/plugins/definitions/MenuDynamoDbElasticFieldPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { deleteItem, getClean, put } from \"@webiny/db-dynamodb\";\n\ninterface PartitionKeyParams {\n tenant: string;\n locale: string;\n}\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#PB#M`;\n};\n\ninterface SortKeyParams {\n slug: string;\n}\nconst createSortKey = (params: SortKeyParams): string => {\n const { slug } = params;\n return slug;\n};\n\nconst createType = (): string => {\n return \"pb.menu\";\n};\n\nexport interface CreateMenuStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\nexport const createMenuStorageOperations = ({\n entity,\n plugins\n}: CreateMenuStorageOperationsParams): MenuStorageOperations => {\n const get = async (params: MenuStorageOperationsGetParams) => {\n const { where } = params;\n const keys = {\n PK: createPartitionKey(where),\n SK: createSortKey(where)\n };\n\n try {\n return await getClean<Menu>({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load menu by given parameters.\",\n ex.code || \"MENU_GET_ERROR\",\n {\n where\n }\n );\n }\n };\n\n const create = async (params: MenuStorageOperationsCreateParams) => {\n const { menu } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: menu.tenant,\n locale: menu.locale\n }),\n SK: createSortKey(menu)\n };\n\n try {\n await put({\n entity,\n item: {\n ...menu,\n TYPE: createType(),\n ...keys\n }\n });\n return menu;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create menu.\",\n ex.code || \"MENU_CREATE_ERROR\",\n {\n keys,\n menu\n }\n );\n }\n };\n\n const update = async (params: MenuStorageOperationsUpdateParams) => {\n const { menu, original } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: menu.tenant,\n locale: menu.locale\n }),\n SK: createSortKey(menu)\n };\n\n try {\n await put({\n entity,\n item: {\n ...menu,\n TYPE: createType(),\n ...keys\n }\n });\n return menu;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update menu.\",\n ex.code || \"MENU_UPDATE_ERROR\",\n {\n keys,\n original,\n menu\n }\n );\n }\n };\n\n const list = async (params: MenuStorageOperationsListParams) => {\n const { where, sort, limit = 10 } = params;\n\n const { tenant, locale, ...restWhere } = where;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n tenant,\n locale\n }),\n options: {\n limit: limit || undefined,\n gt: \" \"\n }\n };\n\n let items: Menu[] = [];\n\n try {\n items = await queryAll<Menu>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list menus by given parameters.\",\n ex.code || \"MENUS_LIST_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n\n const fields = plugins.byType<MenuDynamoDbElasticFieldPlugin>(\n MenuDynamoDbElasticFieldPlugin.type\n );\n\n const filteredItems = filterItems<Menu>({\n plugins,\n where: restWhere,\n items,\n fields\n }).map(item => {\n return cleanupItem<Menu>(entity, item);\n }) as Menu[];\n\n const sortedItems = sortItems<Menu>({\n items: filteredItems,\n sort,\n fields\n ///: [\"createdOn\", \"id\", \"title\", \"slug\"]\n });\n\n return createListResponse({\n items: sortedItems,\n limit,\n totalCount: filteredItems.length,\n after: null\n });\n };\n\n const deleteMenu = async (params: MenuStorageOperationsDeleteParams) => {\n const { menu } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: menu.tenant,\n locale: menu.locale\n }),\n SK: createSortKey(menu)\n };\n\n try {\n await deleteItem({\n entity,\n keys\n });\n return menu;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete menu.\",\n ex.code || \"MENU_DELETE_ERROR\",\n {\n keys,\n menu\n }\n );\n }\n };\n\n return {\n get,\n create,\n update,\n list,\n delete: deleteMenu\n };\n};\n"],"mappings":"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"}
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.decompress = exports.compress = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
7
  var _gzip = require("@webiny/utils/compression/gzip");
10
8
  const GZIP = "gzip";
11
9
  const TO_STORAGE_ENCODING = "base64";
@@ -28,13 +26,15 @@ const decompress = async pageBlock => {
28
26
  try {
29
27
  const buf = await (0, _gzip.decompress)(convertToBuffer(pageBlock.content.value));
30
28
  const value = buf.toString(FROM_STORAGE_ENCODING);
31
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, pageBlock), {}, {
29
+ return {
30
+ ...pageBlock,
32
31
  content: JSON.parse(value)
33
- });
32
+ };
34
33
  } catch (ex) {
35
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, pageBlock), {}, {
34
+ return {
35
+ ...pageBlock,
36
36
  content: null
37
- });
37
+ };
38
38
  }
39
39
  };
40
40
  exports.decompress = decompress;
@@ -1 +1 @@
1
- {"version":3,"names":["_gzip","require","GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","compress","data","gzip","JSON","stringify","compression","toString","exports","decompress","pageBlock","buf","ungzip","content","_objectSpread2","default","parse","ex"],"sources":["compression.ts"],"sourcesContent":["import { compress as gzip, decompress as ungzip } from \"@webiny/utils/compression/gzip\";\nimport { PageBlock } from \"@webiny/api-page-builder/types\";\n\nconst GZIP = \"gzip\";\nconst TO_STORAGE_ENCODING = \"base64\";\nconst FROM_STORAGE_ENCODING = \"utf8\";\n\nconst convertToBuffer = (value: string | Buffer) => {\n if (typeof value === \"string\") {\n return Buffer.from(value, TO_STORAGE_ENCODING);\n }\n return value;\n};\n\nexport const compress = async (data: any) => {\n const value = await gzip(JSON.stringify(data));\n\n return {\n compression: GZIP,\n value: value.toString(TO_STORAGE_ENCODING)\n };\n};\n\nexport const decompress = async (pageBlock: PageBlock) => {\n try {\n const buf = await ungzip(convertToBuffer(pageBlock.content.value));\n const value = buf.toString(FROM_STORAGE_ENCODING);\n return {\n ...pageBlock,\n content: JSON.parse(value)\n };\n } catch (ex) {\n return { ...pageBlock, content: null };\n }\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,MAAMC,IAAI,GAAG,MAAM;AACnB,MAAMC,mBAAmB,GAAG,QAAQ;AACpC,MAAMC,qBAAqB,GAAG,MAAM;AAEpC,MAAMC,eAAe,GAAIC,KAAsB,IAAK;EAChD,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3B,OAAOC,MAAM,CAACC,IAAI,CAACF,KAAK,EAAEH,mBAAmB,CAAC;EAClD;EACA,OAAOG,KAAK;AAChB,CAAC;AAEM,MAAMG,QAAQ,GAAG,MAAOC,IAAS,IAAK;EACzC,MAAMJ,KAAK,GAAG,MAAM,IAAAK,cAAI,EAACC,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;EAE9C,OAAO;IACHI,WAAW,EAAEZ,IAAI;IACjBI,KAAK,EAAEA,KAAK,CAACS,QAAQ,CAACZ,mBAAmB;EAC7C,CAAC;AACL,CAAC;AAACa,OAAA,CAAAP,QAAA,GAAAA,QAAA;AAEK,MAAMQ,UAAU,GAAG,MAAOC,SAAoB,IAAK;EACtD,IAAI;IACA,MAAMC,GAAG,GAAG,MAAM,IAAAC,gBAAM,EAACf,eAAe,CAACa,SAAS,CAACG,OAAO,CAACf,KAAK,CAAC,CAAC;IAClE,MAAMA,KAAK,GAAGa,GAAG,CAACJ,QAAQ,CAACX,qBAAqB,CAAC;IACjD,WAAAkB,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACOL,SAAS;MACZG,OAAO,EAAET,IAAI,CAACY,KAAK,CAAClB,KAAK;IAAC;EAElC,CAAC,CAAC,OAAOmB,EAAE,EAAE;IACT,WAAAH,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAYL,SAAS;MAAEG,OAAO,EAAE;IAAI;EACxC;AACJ,CAAC;AAACL,OAAA,CAAAC,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"names":["_gzip","require","GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","compress","data","gzip","JSON","stringify","compression","toString","exports","decompress","pageBlock","buf","ungzip","content","parse","ex"],"sources":["compression.ts"],"sourcesContent":["import { compress as gzip, decompress as ungzip } from \"@webiny/utils/compression/gzip\";\nimport { PageBlock } from \"@webiny/api-page-builder/types\";\n\nconst GZIP = \"gzip\";\nconst TO_STORAGE_ENCODING = \"base64\";\nconst FROM_STORAGE_ENCODING = \"utf8\";\n\nconst convertToBuffer = (value: string | Buffer) => {\n if (typeof value === \"string\") {\n return Buffer.from(value, TO_STORAGE_ENCODING);\n }\n return value;\n};\n\nexport const compress = async (data: any) => {\n const value = await gzip(JSON.stringify(data));\n\n return {\n compression: GZIP,\n value: value.toString(TO_STORAGE_ENCODING)\n };\n};\n\nexport const decompress = async (pageBlock: PageBlock) => {\n try {\n const buf = await ungzip(convertToBuffer(pageBlock.content.value));\n const value = buf.toString(FROM_STORAGE_ENCODING);\n return {\n ...pageBlock,\n content: JSON.parse(value)\n };\n } catch (ex) {\n return { ...pageBlock, content: null };\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,MAAMC,IAAI,GAAG,MAAM;AACnB,MAAMC,mBAAmB,GAAG,QAAQ;AACpC,MAAMC,qBAAqB,GAAG,MAAM;AAEpC,MAAMC,eAAe,GAAIC,KAAsB,IAAK;EAChD,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3B,OAAOC,MAAM,CAACC,IAAI,CAACF,KAAK,EAAEH,mBAAmB,CAAC;EAClD;EACA,OAAOG,KAAK;AAChB,CAAC;AAEM,MAAMG,QAAQ,GAAG,MAAOC,IAAS,IAAK;EACzC,MAAMJ,KAAK,GAAG,MAAM,IAAAK,cAAI,EAACC,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;EAE9C,OAAO;IACHI,WAAW,EAAEZ,IAAI;IACjBI,KAAK,EAAEA,KAAK,CAACS,QAAQ,CAACZ,mBAAmB;EAC7C,CAAC;AACL,CAAC;AAACa,OAAA,CAAAP,QAAA,GAAAA,QAAA;AAEK,MAAMQ,UAAU,GAAG,MAAOC,SAAoB,IAAK;EACtD,IAAI;IACA,MAAMC,GAAG,GAAG,MAAM,IAAAC,gBAAM,EAACf,eAAe,CAACa,SAAS,CAACG,OAAO,CAACf,KAAK,CAAC,CAAC;IAClE,MAAMA,KAAK,GAAGa,GAAG,CAACJ,QAAQ,CAACX,qBAAqB,CAAC;IACjD,OAAO;MACH,GAAGc,SAAS;MACZG,OAAO,EAAET,IAAI,CAACU,KAAK,CAAChB,KAAK;IAC7B,CAAC;EACL,CAAC,CAAC,OAAOiB,EAAE,EAAE;IACT,OAAO;MAAE,GAAGL,SAAS;MAAEG,OAAO,EAAE;IAAK,CAAC;EAC1C;AACJ,CAAC;AAACL,OAAA,CAAAC,UAAA,GAAAA,UAAA"}
@@ -1,5 +1,5 @@
1
1
  import { PageBlock } from "@webiny/api-page-builder/types";
2
- import { Entity } from "dynamodb-toolbox";
2
+ import { Entity } from "@webiny/db-dynamodb/toolbox";
3
3
  import { DataLoaderInterface } from "../../types";
4
4
  interface Params {
5
5
  entity: Entity<any>;
@@ -5,15 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.PageBlockDataLoader = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _dataloader = _interopRequireDefault(require("dataloader"));
10
9
  var _batchRead = require("@webiny/db-dynamodb/utils/batchRead");
11
10
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
12
11
  var _keys = require("./keys");
13
12
  class PageBlockDataLoader {
13
+ _getDataLoader = undefined;
14
14
  constructor(params) {
15
- (0, _defineProperty2.default)(this, "_getDataLoader", undefined);
16
- (0, _defineProperty2.default)(this, "entity", void 0);
17
15
  this.entity = params.entity;
18
16
  }
19
17
  async getOne(item) {
@@ -1 +1 @@
1
- {"version":3,"names":["_dataloader","_interopRequireDefault","require","_batchRead","_cleanup","_keys","PageBlockDataLoader","constructor","params","_defineProperty2","default","undefined","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","_getDataLoader","cacheKeyFn","key","tenant","locale","id","DataLoader","batched","map","getBatch","PK","createPartitionKey","SK","createSortKey","records","batchReadAll","table","results","reduce","collection","result","cleanupItem","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { PageBlock } from \"@webiny/api-page-builder/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { createPartitionKey, createSortKey } from \"./keys\";\nimport { DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<PageBlock, \"id\" | \"tenant\" | \"locale\">;\n\nexport class PageBlockDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<PageBlock> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<PageBlock[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader() {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.id}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPartitionKey(item),\n SK: createSortKey()\n });\n });\n\n const records = await batchReadAll<PageBlock>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result);\n collection[key] = cleanupItem(this.entity, result) as PageBlock;\n return collection;\n }, {} as Record<string, PageBlock>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,mBAAmB,CAAgC;EAK5DC,WAAWA,CAACC,MAAc,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,0BAJ+BC,SAAS;IAAA,IAAAF,gBAAA,CAAAC,OAAA;IAKhE,IAAI,CAACE,MAAM,GAAGJ,MAAM,CAACI,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAsB;IAC7D,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAAwB;IAClE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAACO,cAAc,EAAE;MACtB,MAAMC,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,EAAG,EAAC;MACtD,CAAC;MACD,IAAI,CAACL,cAAc,GAAG,IAAIM,mBAAU,CAChC,MAAMV,KAAK,IAAI;QACX,MAAMW,OAAO,GAAGX,KAAK,CAACY,GAAG,CAAChB,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACmB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,wBAAkB,EAACnB,IAAI,CAAC;YAC5BoB,EAAE,EAAE,IAAAC,mBAAa,EAAC;UACtB,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMC,OAAO,GAAG,MAAM,IAAAC,uBAAY,EAAY;UAC1CC,KAAK,EAAE,IAAI,CAAC1B,MAAM,CAAC0B,KAAK;UACxBpB,KAAK,EAAEW;QACX,CAAC,CAAC;QAEF,MAAMU,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMjB,GAAG,GAAGD,UAAU,CAACmB,MAAM,CAAC;UAC9BD,UAAU,CAACjB,GAAG,CAAC,GAAG,IAAAmB,oBAAW,EAAC,IAAI,CAAC/B,MAAM,EAAE8B,MAAM,CAAc;UAC/D,OAAOD,UAAU;QACrB,CAAC,EAAE,CAAC,CAA8B,CAAC;QACnC,OAAOvB,KAAK,CAACY,GAAG,CAAChB,IAAI,IAAI;UACrB,MAAMU,GAAG,GAAGD,UAAU,CAACT,IAAI,CAAC;UAC5B,OAAOyB,OAAO,CAACf,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACD,cAAc;EAC9B;AACJ;AAACsB,OAAA,CAAAtC,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_dataloader","_interopRequireDefault","require","_batchRead","_cleanup","_keys","PageBlockDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","id","DataLoader","batched","map","getBatch","PK","createPartitionKey","SK","createSortKey","records","batchReadAll","table","results","reduce","collection","result","cleanupItem","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { PageBlock } from \"@webiny/api-page-builder/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPartitionKey, createSortKey } from \"./keys\";\nimport { DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<PageBlock, \"id\" | \"tenant\" | \"locale\">;\n\nexport class PageBlockDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<PageBlock> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<PageBlock[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader() {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.id}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPartitionKey(item),\n SK: createSortKey()\n });\n });\n\n const records = await batchReadAll<PageBlock>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result);\n collection[key] = cleanupItem(this.entity, result) as PageBlock;\n return collection;\n }, {} as Record<string, PageBlock>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,mBAAmB,CAAgC;EACpDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAsB;IAC7D,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAAwB;IAClE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,EAAG,EAAC;MACtD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,wBAAkB,EAAClB,IAAI,CAAC;YAC5BmB,EAAE,EAAE,IAAAC,mBAAa,EAAC;UACtB,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMC,OAAO,GAAG,MAAM,IAAAC,uBAAY,EAAY;UAC1CC,KAAK,EAAE,IAAI,CAACzB,MAAM,CAACyB,KAAK;UACxBnB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMU,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMjB,GAAG,GAAGD,UAAU,CAACmB,MAAM,CAAC;UAC9BD,UAAU,CAACjB,GAAG,CAAC,GAAG,IAAAmB,oBAAW,EAAC,IAAI,CAAC9B,MAAM,EAAE6B,MAAM,CAAc;UAC/D,OAAOD,UAAU;QACrB,CAAC,EAAE,CAAC,CAA8B,CAAC;QACnC,OAAOtB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOwB,OAAO,CAACf,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACmC,OAAA,CAAApC,mBAAA,GAAAA,mBAAA"}
@@ -1,4 +1,4 @@
1
- import { Entity } from "dynamodb-toolbox";
1
+ import { Entity } from "@webiny/db-dynamodb/toolbox";
2
2
  import { PluginsContainer } from "@webiny/plugins";
3
3
  import { PageBlockStorageOperations } from "../../types";
4
4
  export interface CreatePageBlockStorageOperationsParams {
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createPageBlockStorageOperations = 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,8 +13,8 @@ var _dataLoader = require("./dataLoader");
15
13
  var _listResponse = require("@webiny/db-dynamodb/utils/listResponse");
16
14
  var _PageBlockDynamoDbFieldPlugin = require("../../plugins/definitions/PageBlockDynamoDbFieldPlugin");
17
15
  var _keys = require("./keys");
16
+ var _dbDynamodb = require("@webiny/db-dynamodb");
18
17
  var _compression = require("./compression");
19
- const _excluded = ["tenant", "locale", "blockCategory"];
20
18
  const createType = () => {
21
19
  return "pb.pageBlock";
22
20
  };
@@ -47,11 +45,11 @@ const createPageBlockStorageOperations = ({
47
45
  limit
48
46
  } = params;
49
47
  const {
50
- tenant,
51
- locale,
52
- blockCategory
53
- } = where,
54
- restWhere = (0, _objectWithoutProperties2.default)(where, _excluded);
48
+ tenant,
49
+ locale,
50
+ blockCategory,
51
+ ...restWhere
52
+ } = where;
55
53
  const queryAllParams = {
56
54
  entity,
57
55
  partitionKey: (0, _keys.createGSIPartitionKey)({
@@ -115,11 +113,15 @@ const createPageBlockStorageOperations = ({
115
113
  })
116
114
  };
117
115
  try {
118
- await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, pageBlock), {}, {
119
- TYPE: createType()
120
- }, keys), {}, {
121
- content: await (0, _compression.compress)(pageBlock.content)
122
- }));
116
+ await (0, _dbDynamodb.put)({
117
+ entity,
118
+ item: {
119
+ ...pageBlock,
120
+ TYPE: createType(),
121
+ ...keys,
122
+ content: await (0, _compression.compress)(pageBlock.content)
123
+ }
124
+ });
123
125
  /**
124
126
  * Always clear data loader cache when modifying the records.
125
127
  */
@@ -153,11 +155,15 @@ const createPageBlockStorageOperations = ({
153
155
  })
154
156
  };
155
157
  try {
156
- await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, pageBlock), {}, {
157
- TYPE: createType()
158
- }, keys), {}, {
159
- content: await (0, _compression.compress)(pageBlock.content)
160
- }));
158
+ await (0, _dbDynamodb.put)({
159
+ entity,
160
+ item: {
161
+ ...pageBlock,
162
+ TYPE: createType(),
163
+ ...keys,
164
+ content: await (0, _compression.compress)(pageBlock.content)
165
+ }
166
+ });
161
167
  /**
162
168
  * Always clear data loader cache when modifying the records.
163
169
  */
@@ -184,7 +190,10 @@ const createPageBlockStorageOperations = ({
184
190
  SK: (0, _keys.createSortKey)()
185
191
  };
186
192
  try {
187
- await entity.delete((0, _objectSpread2.default)((0, _objectSpread2.default)({}, pageBlock), keys));
193
+ await (0, _dbDynamodb.deleteItem)({
194
+ entity,
195
+ keys
196
+ });
188
197
  /**
189
198
  * Always clear data loader cache when modifying the records.
190
199
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_query","_sort","_filter","_dataLoader","_listResponse","_PageBlockDynamoDbFieldPlugin","_keys","_compression","_excluded","createType","createPageBlockStorageOperations","entity","plugins","dataLoader","PageBlockDataLoader","get","params","where","pageBlock","getOne","decompress","ex","WebinyError","message","code","list","sort","limit","tenant","locale","blockCategory","restWhere","_objectWithoutProperties2","default","queryAllParams","partitionKey","createGSIPartitionKey","options","index","beginsWith","gt","items","queryAll","fields","byType","PageBlockDynamoDbFieldPlugin","type","filteredItems","filterItems","sortedItems","sortItems","createListResponse","Promise","all","map","item","totalCount","length","after","create","keys","PK","createPartitionKey","id","SK","createSortKey","GSI1_PK","GSI1_SK","createGSISortKey","put","_objectSpread2","TYPE","content","compress","clear","update","original","deletePageBlock","delete","exports"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PageBlock,\n PageBlockStorageOperationsCreateParams,\n PageBlockStorageOperationsDeleteParams,\n PageBlockStorageOperationsGetParams,\n PageBlockStorageOperationsListParams,\n PageBlockStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { PageBlockDataLoader } from \"./dataLoader\";\nimport { createListResponse } from \"@webiny/db-dynamodb/utils/listResponse\";\nimport { PageBlockDynamoDbFieldPlugin } from \"~/plugins/definitions/PageBlockDynamoDbFieldPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createPartitionKey, createSortKey, createGSIPartitionKey, createGSISortKey } from \"./keys\";\nimport { PageBlockStorageOperations } from \"~/types\";\nimport { compress, decompress } from \"./compression\";\n\nconst createType = (): string => {\n return \"pb.pageBlock\";\n};\n\nexport interface CreatePageBlockStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\nexport const createPageBlockStorageOperations = ({\n entity,\n plugins\n}: CreatePageBlockStorageOperationsParams): PageBlockStorageOperations => {\n const dataLoader = new PageBlockDataLoader({\n entity\n });\n\n const get = async (params: PageBlockStorageOperationsGetParams) => {\n const { where } = params;\n\n try {\n const pageBlock = await dataLoader.getOne(where);\n return decompress(pageBlock);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page block by given parameters.\",\n ex.code || \"PAGE_BLOCK_GET_ERROR\",\n {\n where\n }\n );\n }\n };\n\n const list = async (params: PageBlockStorageOperationsListParams) => {\n const { where, sort, limit } = params;\n\n const { tenant, locale, blockCategory, ...restWhere } = where;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createGSIPartitionKey({ tenant, locale }),\n options: blockCategory\n ? {\n index: \"GSI1\",\n beginsWith: `${blockCategory}#`\n }\n : {\n index: \"GSI1\",\n gt: \" \"\n }\n };\n\n let items: PageBlock[] = [];\n\n try {\n items = await queryAll<PageBlock>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list page blocks by given parameters.\",\n ex.code || \"PAGE_BLOCK_LIST_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n\n const fields = plugins.byType<PageBlockDynamoDbFieldPlugin>(\n PageBlockDynamoDbFieldPlugin.type\n );\n\n const filteredItems = filterItems<PageBlock>({\n plugins,\n where: restWhere,\n items,\n fields\n });\n\n const sortedItems = sortItems<PageBlock>({\n items: filteredItems,\n sort,\n fields\n });\n\n return createListResponse({\n items: await Promise.all(sortedItems.map(item => decompress(item))),\n limit: limit || 100000,\n totalCount: filteredItems.length,\n after: null\n });\n };\n\n const create = async (params: PageBlockStorageOperationsCreateParams) => {\n const { pageBlock } = params;\n\n const keys = {\n PK: createPartitionKey({\n tenant: pageBlock.tenant,\n locale: pageBlock.locale,\n id: pageBlock.id\n }),\n SK: createSortKey(),\n GSI1_PK: createGSIPartitionKey({ tenant: pageBlock.tenant, locale: pageBlock.locale }),\n GSI1_SK: createGSISortKey({ blockCategory: pageBlock.blockCategory, id: pageBlock.id })\n };\n\n try {\n await entity.put({\n ...pageBlock,\n TYPE: createType(),\n ...keys,\n content: await compress(pageBlock.content)\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageBlock;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create page block.\",\n ex.code || \"PAGE_BLOCK_CREATE_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const update = async (params: PageBlockStorageOperationsUpdateParams) => {\n const { original, pageBlock } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: original.tenant,\n locale: original.locale,\n id: pageBlock.id\n }),\n SK: createSortKey(),\n GSI1_PK: createGSIPartitionKey({ tenant: pageBlock.tenant, locale: pageBlock.locale }),\n GSI1_SK: createGSISortKey({ blockCategory: pageBlock.blockCategory, id: pageBlock.id })\n };\n\n try {\n await entity.put({\n ...pageBlock,\n TYPE: createType(),\n ...keys,\n content: await compress(pageBlock.content)\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageBlock;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update page block.\",\n ex.code || \"PAGE_BLOCK_UPDATE_ERROR\",\n {\n keys,\n original,\n pageBlock\n }\n );\n }\n };\n\n const deletePageBlock = async (params: PageBlockStorageOperationsDeleteParams) => {\n const { pageBlock } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: pageBlock.tenant,\n locale: pageBlock.locale,\n id: pageBlock.id\n }),\n SK: createSortKey()\n };\n\n try {\n await entity.delete({\n ...pageBlock,\n ...keys\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete page block.\",\n ex.code || \"PAGE_BLOCK_DELETE_ERROR\",\n {\n keys,\n pageBlock\n }\n );\n }\n };\n\n return {\n dataLoader,\n get,\n list,\n create,\n update,\n delete: deletePageBlock\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_query","_sort","_filter","_dataLoader","_listResponse","_PageBlockDynamoDbFieldPlugin","_keys","_dbDynamodb","_compression","createType","createPageBlockStorageOperations","entity","plugins","dataLoader","PageBlockDataLoader","get","params","where","pageBlock","getOne","decompress","ex","WebinyError","message","code","list","sort","limit","tenant","locale","blockCategory","restWhere","queryAllParams","partitionKey","createGSIPartitionKey","options","index","beginsWith","gt","items","queryAll","fields","byType","PageBlockDynamoDbFieldPlugin","type","filteredItems","filterItems","sortedItems","sortItems","createListResponse","Promise","all","map","item","totalCount","length","after","create","keys","PK","createPartitionKey","id","SK","createSortKey","GSI1_PK","GSI1_SK","createGSISortKey","put","TYPE","content","compress","clear","update","original","deletePageBlock","deleteItem","delete","exports"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PageBlock,\n PageBlockStorageOperationsCreateParams,\n PageBlockStorageOperationsDeleteParams,\n PageBlockStorageOperationsGetParams,\n PageBlockStorageOperationsListParams,\n PageBlockStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { PageBlockDataLoader } from \"./dataLoader\";\nimport { createListResponse } from \"@webiny/db-dynamodb/utils/listResponse\";\nimport { PageBlockDynamoDbFieldPlugin } from \"~/plugins/definitions/PageBlockDynamoDbFieldPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGSIPartitionKey, createGSISortKey, createPartitionKey, createSortKey } from \"./keys\";\nimport { PageBlockStorageOperations } from \"~/types\";\nimport { deleteItem, put } from \"@webiny/db-dynamodb\";\nimport { compress, decompress } from \"./compression\";\n\nconst createType = (): string => {\n return \"pb.pageBlock\";\n};\n\nexport interface CreatePageBlockStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\nexport const createPageBlockStorageOperations = ({\n entity,\n plugins\n}: CreatePageBlockStorageOperationsParams): PageBlockStorageOperations => {\n const dataLoader = new PageBlockDataLoader({\n entity\n });\n\n const get = async (params: PageBlockStorageOperationsGetParams) => {\n const { where } = params;\n\n try {\n const pageBlock = await dataLoader.getOne(where);\n return decompress(pageBlock);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page block by given parameters.\",\n ex.code || \"PAGE_BLOCK_GET_ERROR\",\n {\n where\n }\n );\n }\n };\n\n const list = async (params: PageBlockStorageOperationsListParams) => {\n const { where, sort, limit } = params;\n\n const { tenant, locale, blockCategory, ...restWhere } = where;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createGSIPartitionKey({ tenant, locale }),\n options: blockCategory\n ? {\n index: \"GSI1\",\n beginsWith: `${blockCategory}#`\n }\n : {\n index: \"GSI1\",\n gt: \" \"\n }\n };\n\n let items: PageBlock[] = [];\n\n try {\n items = await queryAll<PageBlock>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list page blocks by given parameters.\",\n ex.code || \"PAGE_BLOCK_LIST_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n\n const fields = plugins.byType<PageBlockDynamoDbFieldPlugin>(\n PageBlockDynamoDbFieldPlugin.type\n );\n\n const filteredItems = filterItems<PageBlock>({\n plugins,\n where: restWhere,\n items,\n fields\n });\n\n const sortedItems = sortItems<PageBlock>({\n items: filteredItems,\n sort,\n fields\n });\n\n return createListResponse({\n items: await Promise.all(sortedItems.map(item => decompress(item))),\n limit: limit || 100000,\n totalCount: filteredItems.length,\n after: null\n });\n };\n\n const create = async (params: PageBlockStorageOperationsCreateParams) => {\n const { pageBlock } = params;\n\n const keys = {\n PK: createPartitionKey({\n tenant: pageBlock.tenant,\n locale: pageBlock.locale,\n id: pageBlock.id\n }),\n SK: createSortKey(),\n GSI1_PK: createGSIPartitionKey({ tenant: pageBlock.tenant, locale: pageBlock.locale }),\n GSI1_SK: createGSISortKey({ blockCategory: pageBlock.blockCategory, id: pageBlock.id })\n };\n\n try {\n await put({\n entity,\n item: {\n ...pageBlock,\n TYPE: createType(),\n ...keys,\n content: await compress(pageBlock.content)\n }\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageBlock;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create page block.\",\n ex.code || \"PAGE_BLOCK_CREATE_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const update = async (params: PageBlockStorageOperationsUpdateParams) => {\n const { original, pageBlock } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: original.tenant,\n locale: original.locale,\n id: pageBlock.id\n }),\n SK: createSortKey(),\n GSI1_PK: createGSIPartitionKey({ tenant: pageBlock.tenant, locale: pageBlock.locale }),\n GSI1_SK: createGSISortKey({ blockCategory: pageBlock.blockCategory, id: pageBlock.id })\n };\n\n try {\n await put({\n entity,\n item: {\n ...pageBlock,\n TYPE: createType(),\n ...keys,\n content: await compress(pageBlock.content)\n }\n });\n /**\n * Always clear data loader cache when modifying the records.\n */\n dataLoader.clear();\n\n return pageBlock;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update page block.\",\n ex.code || \"PAGE_BLOCK_UPDATE_ERROR\",\n {\n keys,\n original,\n pageBlock\n }\n );\n }\n };\n\n const deletePageBlock = async (params: PageBlockStorageOperationsDeleteParams) => {\n const { pageBlock } = params;\n const keys = {\n PK: createPartitionKey({\n tenant: pageBlock.tenant,\n locale: pageBlock.locale,\n id: pageBlock.id\n }),\n SK: createSortKey()\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 } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete page block.\",\n ex.code || \"PAGE_BLOCK_DELETE_ERROR\",\n {\n keys,\n pageBlock\n }\n );\n }\n };\n\n return {\n dataLoader,\n get,\n list,\n create,\n update,\n delete: deletePageBlock\n };\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { PageElementStorageOperations } from "@webiny/api-page-builder/types";
2
- import { Entity } from "dynamodb-toolbox";
2
+ import { Entity } from "@webiny/db-dynamodb/toolbox";
3
3
  import { PluginsContainer } from "@webiny/plugins";
4
4
  export interface CreatePageElementStorageOperationsParams {
5
5
  entity: Entity<any>;
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createPageElementStorageOperations = void 0;
8
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
8
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
11
9
  var _error = _interopRequireDefault(require("@webiny/error"));
12
10
  var _query = require("@webiny/db-dynamodb/utils/query");
@@ -14,7 +12,7 @@ var _filter = require("@webiny/db-dynamodb/utils/filter");
14
12
  var _sort = require("@webiny/db-dynamodb/utils/sort");
15
13
  var _listResponse = require("@webiny/db-dynamodb/utils/listResponse");
16
14
  var _PageElementDynamoDbElasticFieldPlugin = require("../../plugins/definitions/PageElementDynamoDbElasticFieldPlugin");
17
- const _excluded = ["tenant", "locale"];
15
+ var _dbDynamodb = require("@webiny/db-dynamodb");
18
16
  const createPartitionKey = params => {
19
17
  const {
20
18
  tenant,
@@ -44,9 +42,14 @@ const createPageElementStorageOperations = ({
44
42
  SK: createSortKey(pageElement)
45
43
  };
46
44
  try {
47
- await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)({}, pageElement), {}, {
48
- TYPE: createType()
49
- }, keys));
45
+ await (0, _dbDynamodb.put)({
46
+ entity,
47
+ item: {
48
+ ...pageElement,
49
+ TYPE: createType(),
50
+ ...keys
51
+ }
52
+ });
50
53
  return pageElement;
51
54
  } catch (ex) {
52
55
  throw new _error.default(ex.message || "Could not create pageElement.", ex.code || "PAGE_ELEMENT_CREATE_ERROR", {
@@ -65,9 +68,14 @@ const createPageElementStorageOperations = ({
65
68
  SK: createSortKey(pageElement)
66
69
  };
67
70
  try {
68
- await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)({}, pageElement), {}, {
69
- TYPE: createType()
70
- }, keys));
71
+ await (0, _dbDynamodb.put)({
72
+ entity,
73
+ item: {
74
+ ...pageElement,
75
+ TYPE: createType(),
76
+ ...keys
77
+ }
78
+ });
71
79
  return pageElement;
72
80
  } catch (ex) {
73
81
  throw new _error.default(ex.message || "Could not update pageElement.", ex.code || "PAGE_ELEMENT_UPDATE_ERROR", {
@@ -86,7 +94,10 @@ const createPageElementStorageOperations = ({
86
94
  SK: createSortKey(pageElement)
87
95
  };
88
96
  try {
89
- await entity.delete(keys);
97
+ await (0, _dbDynamodb.deleteItem)({
98
+ entity,
99
+ keys
100
+ });
90
101
  } catch (ex) {
91
102
  throw new _error.default(ex.message || "Could not delete pageElement.", ex.code || "PAGE_ELEMENT_DELETE_ERROR", {
92
103
  keys,
@@ -103,11 +114,10 @@ const createPageElementStorageOperations = ({
103
114
  SK: createSortKey(where)
104
115
  };
105
116
  try {
106
- const result = await entity.get(keys);
107
- if (!result || !result.Item) {
108
- return null;
109
- }
110
- return (0, _cleanup.cleanupItem)(entity, result.Item);
117
+ return await (0, _dbDynamodb.getClean)({
118
+ entity,
119
+ keys
120
+ });
111
121
  } catch (ex) {
112
122
  throw new _error.default(ex.message || "Could not load page element by given parameters.", ex.code || "PAGE_ELEMENT_GET_ERROR", {
113
123
  where
@@ -121,10 +131,10 @@ const createPageElementStorageOperations = ({
121
131
  limit = 10
122
132
  } = params;
123
133
  const {
124
- tenant,
125
- locale
126
- } = where,
127
- restWhere = (0, _objectWithoutProperties2.default)(where, _excluded);
134
+ tenant,
135
+ locale,
136
+ ...restWhere
137
+ } = where;
128
138
  const queryAllParams = {
129
139
  entity,
130
140
  partitionKey: createPartitionKey({
@@ -1 +1 @@
1
- {"version":3,"names":["_cleanup","require","_error","_interopRequireDefault","_query","_filter","_sort","_listResponse","_PageElementDynamoDbElasticFieldPlugin","_excluded","createPartitionKey","params","tenant","locale","createSortKey","id","createType","createPageElementStorageOperations","entity","plugins","create","pageElement","keys","PK","SK","put","_objectSpread2","default","TYPE","ex","WebinyError","message","code","update","original","deletePageElement","delete","get","where","result","Item","cleanupItem","list","sort","limit","restWhere","_objectWithoutProperties2","queryAllParams","partitionKey","options","undefined","gt","results","queryAll","fields","byType","PageElementDynamoDbElasticFieldPlugin","type","filteredItems","filterItems","items","map","item","sortedItems","sortItems","createListResponse","totalCount","length","after","exports"],"sources":["index.ts"],"sourcesContent":["import {\n PageElement,\n PageElementStorageOperations,\n PageElementStorageOperationsCreateParams,\n PageElementStorageOperationsDeleteParams,\n PageElementStorageOperationsGetParams,\n PageElementStorageOperationsListParams,\n PageElementStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport WebinyError from \"@webiny/error\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { createListResponse } from \"@webiny/db-dynamodb/utils/listResponse\";\nimport { PageElementDynamoDbElasticFieldPlugin } from \"~/plugins/definitions/PageElementDynamoDbElasticFieldPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ninterface PartitionKeyParams {\n tenant: string;\n locale: string;\n}\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#PB#PE`;\n};\n\ninterface SortKeyParams {\n id: string;\n}\nconst createSortKey = (params: SortKeyParams): string => {\n const { id } = params;\n return id;\n};\n\nconst createType = (): string => {\n return \"pb.pageElement\";\n};\n\nexport interface CreatePageElementStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\nexport const createPageElementStorageOperations = ({\n entity,\n plugins\n}: CreatePageElementStorageOperationsParams): PageElementStorageOperations => {\n const create = async (params: PageElementStorageOperationsCreateParams) => {\n const { pageElement } = params;\n const keys = {\n PK: createPartitionKey(pageElement),\n SK: createSortKey(pageElement)\n };\n\n try {\n await entity.put({\n ...pageElement,\n TYPE: createType(),\n ...keys\n });\n return pageElement;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create pageElement.\",\n ex.code || \"PAGE_ELEMENT_CREATE_ERROR\",\n {\n keys,\n pageElement\n }\n );\n }\n };\n\n const update = async (params: PageElementStorageOperationsUpdateParams) => {\n const { pageElement, original } = params;\n const keys = {\n PK: createPartitionKey(pageElement),\n SK: createSortKey(pageElement)\n };\n\n try {\n await entity.put({\n ...pageElement,\n TYPE: createType(),\n ...keys\n });\n return pageElement;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update pageElement.\",\n ex.code || \"PAGE_ELEMENT_UPDATE_ERROR\",\n {\n keys,\n original,\n pageElement\n }\n );\n }\n };\n\n const deletePageElement = async (params: PageElementStorageOperationsDeleteParams) => {\n const { pageElement } = params;\n const keys = {\n PK: createPartitionKey(pageElement),\n SK: createSortKey(pageElement)\n };\n\n try {\n await entity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete pageElement.\",\n ex.code || \"PAGE_ELEMENT_DELETE_ERROR\",\n {\n keys,\n pageElement\n }\n );\n }\n };\n\n const get = async (params: PageElementStorageOperationsGetParams) => {\n const { where } = params;\n\n const keys = {\n PK: createPartitionKey(where),\n SK: createSortKey(where)\n };\n try {\n const result = await entity.get(keys);\n if (!result || !result.Item) {\n return null;\n }\n return cleanupItem(entity, result.Item);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page element by given parameters.\",\n ex.code || \"PAGE_ELEMENT_GET_ERROR\",\n {\n where\n }\n );\n }\n };\n\n const list = async (params: PageElementStorageOperationsListParams) => {\n const { where, sort, limit = 10 } = params;\n\n const { tenant, locale, ...restWhere } = where;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n tenant,\n locale\n }),\n options: {\n limit: limit || undefined,\n gt: \" \"\n }\n };\n\n let results: PageElement[] = [];\n\n try {\n results = await queryAll<PageElement>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list page elements by given parameters.\",\n ex.code || \"PAGE_ELEMENTS_LIST_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n\n const fields = plugins.byType<PageElementDynamoDbElasticFieldPlugin>(\n PageElementDynamoDbElasticFieldPlugin.type\n );\n\n const filteredItems = filterItems<PageElement>({\n plugins,\n where: restWhere,\n items: results,\n fields\n }).map(item => {\n return cleanupItem<PageElement>(entity, item);\n }) as PageElement[];\n\n const sortedItems = sortItems<PageElement>({\n items: filteredItems,\n sort,\n fields\n });\n\n return createListResponse({\n items: sortedItems,\n limit,\n totalCount: filteredItems.length,\n after: null\n });\n };\n\n return {\n get,\n create,\n update,\n delete: deletePageElement,\n list\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_cleanup","require","_error","_interopRequireDefault","_query","_filter","_sort","_listResponse","_PageElementDynamoDbElasticFieldPlugin","_dbDynamodb","createPartitionKey","params","tenant","locale","createSortKey","id","createType","createPageElementStorageOperations","entity","plugins","create","pageElement","keys","PK","SK","put","item","TYPE","ex","WebinyError","message","code","update","original","deletePageElement","deleteItem","get","where","getClean","list","sort","limit","restWhere","queryAllParams","partitionKey","options","undefined","gt","results","queryAll","fields","byType","PageElementDynamoDbElasticFieldPlugin","type","filteredItems","filterItems","items","map","cleanupItem","sortedItems","sortItems","createListResponse","totalCount","length","after","delete","exports"],"sources":["index.ts"],"sourcesContent":["import {\n PageElement,\n PageElementStorageOperations,\n PageElementStorageOperationsCreateParams,\n PageElementStorageOperationsDeleteParams,\n PageElementStorageOperationsGetParams,\n PageElementStorageOperationsListParams,\n PageElementStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport WebinyError from \"@webiny/error\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { createListResponse } from \"@webiny/db-dynamodb/utils/listResponse\";\nimport { PageElementDynamoDbElasticFieldPlugin } from \"~/plugins/definitions/PageElementDynamoDbElasticFieldPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { deleteItem, getClean, put } from \"@webiny/db-dynamodb\";\n\ninterface PartitionKeyParams {\n tenant: string;\n locale: string;\n}\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#PB#PE`;\n};\n\ninterface SortKeyParams {\n id: string;\n}\nconst createSortKey = (params: SortKeyParams): string => {\n const { id } = params;\n return id;\n};\n\nconst createType = (): string => {\n return \"pb.pageElement\";\n};\n\nexport interface CreatePageElementStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\nexport const createPageElementStorageOperations = ({\n entity,\n plugins\n}: CreatePageElementStorageOperationsParams): PageElementStorageOperations => {\n const create = async (params: PageElementStorageOperationsCreateParams) => {\n const { pageElement } = params;\n const keys = {\n PK: createPartitionKey(pageElement),\n SK: createSortKey(pageElement)\n };\n\n try {\n await put({\n entity,\n item: {\n ...pageElement,\n TYPE: createType(),\n ...keys\n }\n });\n return pageElement;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create pageElement.\",\n ex.code || \"PAGE_ELEMENT_CREATE_ERROR\",\n {\n keys,\n pageElement\n }\n );\n }\n };\n\n const update = async (params: PageElementStorageOperationsUpdateParams) => {\n const { pageElement, original } = params;\n const keys = {\n PK: createPartitionKey(pageElement),\n SK: createSortKey(pageElement)\n };\n\n try {\n await put({\n entity,\n item: {\n ...pageElement,\n TYPE: createType(),\n ...keys\n }\n });\n return pageElement;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update pageElement.\",\n ex.code || \"PAGE_ELEMENT_UPDATE_ERROR\",\n {\n keys,\n original,\n pageElement\n }\n );\n }\n };\n\n const deletePageElement = async (params: PageElementStorageOperationsDeleteParams) => {\n const { pageElement } = params;\n const keys = {\n PK: createPartitionKey(pageElement),\n SK: createSortKey(pageElement)\n };\n\n try {\n await deleteItem({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete pageElement.\",\n ex.code || \"PAGE_ELEMENT_DELETE_ERROR\",\n {\n keys,\n pageElement\n }\n );\n }\n };\n\n const get = async (params: PageElementStorageOperationsGetParams) => {\n const { where } = params;\n\n const keys = {\n PK: createPartitionKey(where),\n SK: createSortKey(where)\n };\n try {\n return await getClean<PageElement>({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page element by given parameters.\",\n ex.code || \"PAGE_ELEMENT_GET_ERROR\",\n {\n where\n }\n );\n }\n };\n\n const list = async (params: PageElementStorageOperationsListParams) => {\n const { where, sort, limit = 10 } = params;\n\n const { tenant, locale, ...restWhere } = where;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n tenant,\n locale\n }),\n options: {\n limit: limit || undefined,\n gt: \" \"\n }\n };\n\n let results: PageElement[] = [];\n\n try {\n results = await queryAll<PageElement>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list page elements by given parameters.\",\n ex.code || \"PAGE_ELEMENTS_LIST_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n\n const fields = plugins.byType<PageElementDynamoDbElasticFieldPlugin>(\n PageElementDynamoDbElasticFieldPlugin.type\n );\n\n const filteredItems = filterItems<PageElement>({\n plugins,\n where: restWhere,\n items: results,\n fields\n }).map(item => {\n return cleanupItem<PageElement>(entity, item);\n }) as PageElement[];\n\n const sortedItems = sortItems<PageElement>({\n items: filteredItems,\n sort,\n fields\n });\n\n return createListResponse({\n items: sortedItems,\n limit,\n totalCount: filteredItems.length,\n after: null\n });\n };\n\n return {\n get,\n create,\n update,\n delete: deletePageElement,\n list\n };\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { PageTemplate } from "@webiny/api-page-builder/types";
2
- import { Entity } from "dynamodb-toolbox";
2
+ import { Entity } from "@webiny/db-dynamodb/toolbox";
3
3
  import { DataLoaderInterface } from "../../types";
4
4
  interface Params {
5
5
  entity: Entity<any>;
@@ -5,14 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.PageTemplateDataLoader = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _dataloader = _interopRequireDefault(require("dataloader"));
10
9
  var _batchRead = require("@webiny/db-dynamodb/utils/batchRead");
11
10
  var _keys = require("./keys");
12
11
  class PageTemplateDataLoader {
12
+ _getDataLoader = undefined;
13
13
  constructor(params) {
14
- (0, _defineProperty2.default)(this, "_getDataLoader", undefined);
15
- (0, _defineProperty2.default)(this, "entity", void 0);
16
14
  this.entity = params.entity;
17
15
  }
18
16
  async getOne(item) {
@@ -1 +1 @@
1
- {"version":3,"names":["_dataloader","_interopRequireDefault","require","_batchRead","_keys","PageTemplateDataLoader","constructor","params","_defineProperty2","default","undefined","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","_getDataLoader","cacheKeyFn","key","tenant","locale","id","DataLoader","batched","map","getBatch","PK","createPrimaryPK","SK","records","batchReadAll","table","results","reduce","collection","result","data","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { PageTemplate } from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { createPrimaryPK } from \"./keys\";\nimport { DataContainer, DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<PageTemplate, \"id\" | \"tenant\" | \"locale\">;\n\nexport class PageTemplateDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<PageTemplate> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<PageTemplate[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader() {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.id}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPrimaryPK(item),\n SK: \"A\"\n });\n });\n\n const records = await batchReadAll<DataContainer<PageTemplate>>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result.data);\n collection[key] = result.data as PageTemplate;\n return collection;\n }, {} as Record<string, PageTemplate>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AASO,MAAMG,sBAAsB,CAAgC;EAK/DC,WAAWA,CAACC,MAAc,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,0BAJ+BC,SAAS;IAAA,IAAAF,gBAAA,CAAAC,OAAA;IAKhE,IAAI,CAACE,MAAM,GAAGJ,MAAM,CAACI,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAyB;IAChE,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAA2B;IACrE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAACO,cAAc,EAAE;MACtB,MAAMC,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,EAAG,EAAC;MACtD,CAAC;MACD,IAAI,CAACL,cAAc,GAAG,IAAIM,mBAAU,CAChC,MAAMV,KAAK,IAAI;QACX,MAAMW,OAAO,GAAGX,KAAK,CAACY,GAAG,CAAChB,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACmB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,qBAAe,EAACnB,IAAI,CAAC;YACzBoB,EAAE,EAAE;UACR,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMC,OAAO,GAAG,MAAM,IAAAC,uBAAY,EAA8B;UAC5DC,KAAK,EAAE,IAAI,CAACzB,MAAM,CAACyB,KAAK;UACxBnB,KAAK,EAAEW;QACX,CAAC,CAAC;QAEF,MAAMS,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMhB,GAAG,GAAGD,UAAU,CAACkB,MAAM,CAACC,IAAI,CAAC;UACnCF,UAAU,CAAChB,GAAG,CAAC,GAAGiB,MAAM,CAACC,IAAoB;UAC7C,OAAOF,UAAU;QACrB,CAAC,EAAE,CAAC,CAAiC,CAAC;QACtC,OAAOtB,KAAK,CAACY,GAAG,CAAChB,IAAI,IAAI;UACrB,MAAMU,GAAG,GAAGD,UAAU,CAACT,IAAI,CAAC;UAC5B,OAAOwB,OAAO,CAACd,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACD,cAAc;EAC9B;AACJ;AAACqB,OAAA,CAAArC,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"names":["_dataloader","_interopRequireDefault","require","_batchRead","_keys","PageTemplateDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","id","DataLoader","batched","map","getBatch","PK","createPrimaryPK","SK","records","batchReadAll","table","results","reduce","collection","result","data","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { PageTemplate } from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPrimaryPK } from \"./keys\";\nimport { DataContainer, DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<PageTemplate, \"id\" | \"tenant\" | \"locale\">;\n\nexport class PageTemplateDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<PageTemplate> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<PageTemplate[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader() {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.id}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPrimaryPK(item),\n SK: \"A\"\n });\n });\n\n const records = await batchReadAll<DataContainer<PageTemplate>>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result.data);\n collection[key] = result.data as PageTemplate;\n return collection;\n }, {} as Record<string, PageTemplate>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AASO,MAAMG,sBAAsB,CAAgC;EACvDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAyB;IAChE,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAA2B;IACrE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,EAAG,EAAC;MACtD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,qBAAe,EAAClB,IAAI,CAAC;YACzBmB,EAAE,EAAE;UACR,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMC,OAAO,GAAG,MAAM,IAAAC,uBAAY,EAA8B;UAC5DC,KAAK,EAAE,IAAI,CAACxB,MAAM,CAACwB,KAAK;UACxBlB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMS,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMhB,GAAG,GAAGD,UAAU,CAACkB,MAAM,CAACC,IAAI,CAAC;UACnCF,UAAU,CAAChB,GAAG,CAAC,GAAGiB,MAAM,CAACC,IAAoB;UAC7C,OAAOF,UAAU;QACrB,CAAC,EAAE,CAAC,CAAiC,CAAC;QACtC,OAAOrB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOuB,OAAO,CAACd,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACkC,OAAA,CAAAnC,sBAAA,GAAAA,sBAAA"}
@@ -1,4 +1,4 @@
1
- import { Entity } from "dynamodb-toolbox";
1
+ import { Entity } from "@webiny/db-dynamodb/toolbox";
2
2
  import { PluginsContainer } from "@webiny/plugins";
3
3
  import { PageTemplateStorageOperations } from "../../types";
4
4
  export interface CreatePageTemplateStorageOperationsParams {