@webiny/api-page-builder-so-ddb-es 5.40.0-beta.1 → 5.40.0-beta.3

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 (76) hide show
  1. package/configurations.js +1 -2
  2. package/configurations.js.map +1 -1
  3. package/definitions/blockCategoryEntity.js.map +1 -1
  4. package/definitions/categoryEntity.js.map +1 -1
  5. package/definitions/menuEntity.js.map +1 -1
  6. package/definitions/pageBlockEntity.js.map +1 -1
  7. package/definitions/pageElasticsearchEntity.js.map +1 -1
  8. package/definitions/pageElementEntity.js.map +1 -1
  9. package/definitions/pageEntity.js.map +1 -1
  10. package/definitions/pageTemplateEntity.js.map +1 -1
  11. package/definitions/settingsEntity.js.map +1 -1
  12. package/definitions/systemEntity.js.map +1 -1
  13. package/definitions/table.d.ts +2 -2
  14. package/definitions/table.js.map +1 -1
  15. package/definitions/tableElasticsearch.d.ts +2 -2
  16. package/definitions/tableElasticsearch.js.map +1 -1
  17. package/elasticsearch/createElasticsearchIndex.js +1 -1
  18. package/elasticsearch/createElasticsearchIndex.js.map +1 -1
  19. package/elasticsearch/indices/base.js +1 -2
  20. package/elasticsearch/indices/base.js.map +1 -1
  21. package/elasticsearch/indices/index.js.map +1 -1
  22. package/elasticsearch/indices/japanese.js +1 -2
  23. package/elasticsearch/indices/japanese.js.map +1 -1
  24. package/index.js.map +1 -1
  25. package/operations/blockCategory/dataLoader.js.map +1 -1
  26. package/operations/blockCategory/fields.js.map +1 -1
  27. package/operations/blockCategory/index.js.map +1 -1
  28. package/operations/blockCategory/keys.js.map +1 -1
  29. package/operations/category/dataLoader.js.map +1 -1
  30. package/operations/category/fields.js.map +1 -1
  31. package/operations/category/index.js.map +1 -1
  32. package/operations/category/keys.js.map +1 -1
  33. package/operations/menu/fields.js.map +1 -1
  34. package/operations/menu/index.js +0 -1
  35. package/operations/menu/index.js.map +1 -1
  36. package/operations/pageBlock/compression.js.map +1 -1
  37. package/operations/pageBlock/dataLoader.js.map +1 -1
  38. package/operations/pageBlock/fields.js.map +1 -1
  39. package/operations/pageBlock/index.js.map +1 -1
  40. package/operations/pageBlock/keys.js.map +1 -1
  41. package/operations/pageElement/fields.js.map +1 -1
  42. package/operations/pageElement/index.js.map +1 -1
  43. package/operations/pageTemplate/dataLoader.js.map +1 -1
  44. package/operations/pageTemplate/fields.js.map +1 -1
  45. package/operations/pageTemplate/index.js.map +1 -1
  46. package/operations/pageTemplate/keys.js.map +1 -1
  47. package/operations/pages/elasticsearchQueryBody.js.map +1 -1
  48. package/operations/pages/fields.js.map +1 -1
  49. package/operations/pages/helpers.js.map +1 -1
  50. package/operations/pages/index.js.map +1 -1
  51. package/operations/pages/keys.js.map +1 -1
  52. package/operations/settings/index.js.map +1 -1
  53. package/operations/system/index.js.map +1 -1
  54. package/package.json +37 -37
  55. package/plugins/definitions/BlockCategoryDynamoDbElasticFieldPlugin.js.map +1 -1
  56. package/plugins/definitions/CategoryDynamoDbElasticFieldPlugin.js.map +1 -1
  57. package/plugins/definitions/IndexPageDataPlugin.js.map +1 -1
  58. package/plugins/definitions/MenuDynamoDbElasticFieldPlugin.js.map +1 -1
  59. package/plugins/definitions/PageBlockDynamoDbFieldPlugin.js.map +1 -1
  60. package/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin.js.map +1 -1
  61. package/plugins/definitions/PageElasticsearchBodyModifierPlugin.js.map +1 -1
  62. package/plugins/definitions/PageElasticsearchFieldPlugin.js.map +1 -1
  63. package/plugins/definitions/PageElasticsearchIndexPlugin.js.map +1 -1
  64. package/plugins/definitions/PageElasticsearchQueryModifierPlugin.js.map +1 -1
  65. package/plugins/definitions/PageElasticsearchSortModifierPlugin.js.map +1 -1
  66. package/plugins/definitions/PageElementDynamoDbElasticFieldPlugin.js.map +1 -1
  67. package/plugins/definitions/PageTemplateDynamoDbElasticFieldPlugin.js.map +1 -1
  68. package/plugins/definitions/SearchLatestPagesPlugin.js.map +1 -1
  69. package/plugins/definitions/SearchPagesPlugin.js.map +1 -1
  70. package/plugins/definitions/SearchPublishedPagesPlugin.js.map +1 -1
  71. package/plugins/definitions/index.js.map +1 -1
  72. package/plugins/index.js.map +1 -1
  73. package/tasks/createIndexTaskPlugin.js.map +1 -1
  74. package/types.d.ts +2 -2
  75. package/types.js +1 -2
  76. package/types.js.map +1 -1
@@ -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","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
+ {"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_omit","_interopRequireDefault","require","_error","_cleanup","_configurations","_apiElasticsearch","_elasticsearchQueryBody","_SearchLatestPagesPlugin","_SearchPublishedPagesPlugin","_query","_batchWrite","_helpers","_keys","_sort","_PageDynamoDbElasticsearchFieldPlugin","_dbDynamodb","removePageAttributes","item","omit","createPageStorageOperations","params","entity","esEntity","elasticsearch","plugins","create","page","input","versionKeys","PK","createPartitionKey","SK","createSortKey","latestKeys","createLatestSortKey","items","putBatch","TYPE","createBasicType","createLatestType","esData","getESLatestPageData","batchWriteAll","table","put","index","configurations","es","data","ex","WebinyError","message","code","createFrom","latestPage","original","update","keys","getClean","id","push","deleteOne","publishedPage","partitionKey","deleteBatch","esItems","createPublishedSortKey","createPathPartitionKey","createPathSortKey","previousLatestPage","previousLatestRecord","queryOne","options","lt","reverse","cleanupItem","length","deleteAll","queryAllParams","gte","revisions","queryAll","publishedPathEntryDeleted","revision","status","path","publish","getESPublishedPageData","createPublishedPathType","createPublishedType","unpublish","get","where","pid","published","version","includes","Number","split","pop","sortKey","list","latest","after","previousCursor","limit","initialLimit","createLimit","body","createElasticsearchQueryBody","searchPlugins","byType","SearchPublishedPagesPlugin","type","SearchLatestPagesPlugin","plugin","modifyQuery","query","args","modifySort","sort","response","esConfig","search","meta","hasMoreItems","totalCount","cursor","hits","total","map","_source","encodeCursor","value","listTags","tenant","locale","undefined","size","aggs","tags","terms","field","include","aggregations","Array","isArray","buckets","key","listRevisions","beginsWith","fields","PageDynamoDbElasticsearchFieldPlugin","sortItems","delete","exports"],"sources":["index.ts"],"sourcesContent":["import {\n Page,\n PageStorageOperations,\n PageStorageOperationsCreateFromParams,\n PageStorageOperationsCreateParams,\n PageStorageOperationsDeleteAllParams,\n PageStorageOperationsDeleteParams,\n PageStorageOperationsGetParams,\n PageStorageOperationsListParams,\n PageStorageOperationsListResponse,\n PageStorageOperationsListRevisionsParams,\n PageStorageOperationsListTagsParams,\n PageStorageOperationsPublishParams,\n PageStorageOperationsUnpublishParams,\n PageStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Client } from \"@elastic/elasticsearch\";\nimport {\n ElasticsearchBoolQueryConfig,\n ElasticsearchSearchResponse\n} from \"@webiny/api-elasticsearch/types\";\nimport { configurations } from \"~/configurations\";\nimport { createLimit, encodeCursor } from \"@webiny/api-elasticsearch\";\nimport { createElasticsearchQueryBody } from \"./elasticsearchQueryBody\";\nimport { SearchLatestPagesPlugin } from \"~/plugins/definitions/SearchLatestPagesPlugin\";\nimport { SearchPublishedPagesPlugin } from \"~/plugins/definitions/SearchPublishedPagesPlugin\";\nimport { DbItem, queryAll, QueryAllParams, queryOne } from \"@webiny/db-dynamodb/utils/query\";\nimport { SearchPagesPlugin } from \"~/plugins/definitions/SearchPagesPlugin\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { getESLatestPageData, getESPublishedPageData } from \"./helpers\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport {\n createBasicType,\n createLatestSortKey,\n createLatestType,\n createPartitionKey,\n createPathPartitionKey,\n createPathSortKey,\n createPublishedPathType,\n createPublishedSortKey,\n createPublishedType,\n createSortKey\n} from \"./keys\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { PageDynamoDbElasticsearchFieldPlugin } from \"~/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin\";\nimport { getClean, put } from \"@webiny/db-dynamodb\";\n\n/**\n * This function removes attributes that were once present in the Page record, which we no longer need.\n */\nfunction removePageAttributes(item: Page): Page {\n return omit(item, [\"home\", \"notFound\", \"visibility\"]) as Page;\n}\n\nexport interface CreatePageStorageOperationsParams {\n entity: Entity<any>;\n esEntity: Entity<any>;\n elasticsearch: Client;\n plugins: PluginsContainer;\n}\nexport const createPageStorageOperations = (\n params: CreatePageStorageOperationsParams\n): PageStorageOperations => {\n const { entity, esEntity, elasticsearch, plugins } = params;\n\n const create = async (params: PageStorageOperationsCreateParams): Promise<Page> => {\n const { page, input } = params;\n\n const versionKeys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n const latestKeys = {\n ...versionKeys,\n SK: createLatestSortKey()\n };\n\n const items = [\n entity.putBatch({\n ...page,\n ...versionKeys,\n TYPE: createBasicType()\n }),\n entity.putBatch({\n ...page,\n ...latestKeys,\n TYPE: createLatestType()\n })\n ];\n const esData = getESLatestPageData(plugins, page, input);\n try {\n await batchWriteAll({\n table: entity.table,\n items: items\n });\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create new page.\",\n ex.code || \"CREATE_PAGE_ERROR\",\n {\n versionKeys,\n latestKeys,\n page\n }\n );\n }\n };\n\n const createFrom = async (params: PageStorageOperationsCreateFromParams): Promise<Page> => {\n const { page, latestPage, original } = params;\n\n const versionKeys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n const latestKeys = {\n ...versionKeys,\n SK: createLatestSortKey()\n };\n\n const items = [\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n ...versionKeys\n }),\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n ...latestKeys\n })\n ];\n\n const esData = getESLatestPageData(plugins, page);\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create new page from existing page.\",\n ex.code || \"CREATE_PAGE_FROM_ERROR\",\n {\n versionKeys,\n latestKeys,\n latestPage,\n original,\n page\n }\n );\n }\n };\n\n const update = async (params: PageStorageOperationsUpdateParams): Promise<Page> => {\n const { original, page, input } = params;\n\n const keys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n\n const latestKeys = {\n ...keys,\n SK: createLatestSortKey()\n };\n const latestPage = await getClean<Page>({\n entity,\n keys: latestKeys\n });\n\n const items = [\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n ...keys\n })\n ];\n\n const esData = getESLatestPageData(plugins, page, input);\n\n if (latestPage && latestPage?.id === page.id) {\n /**\n * We also update the regular record.\n */\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n ...latestKeys\n })\n );\n }\n /**\n * Unfortunately we cannot push regular and es record in the batch write because they are two separate tables.\n */\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update existing page.\",\n ex.code || \"UPDATE_PAGE_ERROR\",\n {\n original,\n page,\n latestPage,\n latestKeys,\n keys\n }\n );\n }\n };\n\n /**\n * In case of delete, we must delete records:\n * - revision\n * - path if published\n * Update:\n * - latest\n */\n const deleteOne = async (\n params: PageStorageOperationsDeleteParams\n ): Promise<[Page, Page | null]> => {\n const { page, latestPage, publishedPage } = params;\n\n const partitionKey = createPartitionKey(page);\n\n const items = [\n entity.deleteBatch({\n PK: partitionKey,\n SK: createSortKey(page)\n })\n ];\n const esItems = [];\n if (publishedPage && publishedPage.id === page.id) {\n items.push(\n entity.deleteBatch({\n PK: partitionKey,\n SK: createPublishedSortKey()\n })\n );\n items.push(\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n })\n );\n esItems.push(\n esEntity.deleteBatch({\n PK: partitionKey,\n SK: createPublishedSortKey()\n })\n );\n }\n let previousLatestPage: Page | null = null;\n if (latestPage && latestPage.id === page.id) {\n const previousLatestRecord = await queryOne<Page>({\n entity,\n partitionKey,\n options: {\n lt: createSortKey(latestPage),\n reverse: true\n }\n });\n if (previousLatestRecord) {\n items.push(\n entity.putBatch({\n ...previousLatestRecord,\n TYPE: createLatestType(),\n PK: partitionKey,\n SK: createLatestSortKey()\n })\n );\n esItems.push(\n esEntity.putBatch({\n PK: partitionKey,\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, previousLatestRecord)\n })\n );\n previousLatestPage = cleanupItem(entity, previousLatestRecord);\n }\n }\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not batch write all the page records.\",\n ex.code || \"BATCH_WRITE_RECORDS_ERROR\"\n );\n }\n if (esItems.length === 0) {\n return [page, previousLatestPage];\n }\n try {\n await batchWriteAll({\n table: entity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not batch write all the page Elasticsearch records.\",\n ex.code || \"BATCH_WRITE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return [page, previousLatestPage];\n };\n\n /**\n * In case of deleteAll, we must delete records:\n * - latest\n * - published\n * - path if published\n * - revision\n * - es latest\n * - es published\n */\n const deleteAll = async (params: PageStorageOperationsDeleteAllParams): Promise<[Page]> => {\n const { page } = params;\n\n const partitionKey = createPartitionKey(page);\n const queryAllParams = {\n entity,\n partitionKey,\n options: {\n gte: \" \"\n }\n };\n let revisions: DbItem<Page>[];\n try {\n revisions = await queryAll<Page>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not query for all revisions of the page.\",\n ex.code || \"LIST_REVISIONS_ERROR\",\n {\n params: queryAllParams\n }\n );\n }\n\n /**\n * We need to go through all possible entries and delete them.\n * Also, delete the published entry path record.\n */\n const items = [];\n let publishedPathEntryDeleted = false;\n for (const revision of revisions) {\n if (revision.status === \"published\" && !publishedPathEntryDeleted) {\n publishedPathEntryDeleted = true;\n items.push(\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: revision.path\n })\n );\n }\n items.push(\n entity.deleteBatch({\n PK: revision.PK,\n SK: revision.SK\n })\n );\n }\n const esItems = [\n esEntity.deleteBatch({\n PK: partitionKey,\n SK: createLatestSortKey()\n })\n ];\n /**\n * Delete published record if it is published.\n */\n if (publishedPathEntryDeleted) {\n esItems.push(\n esEntity.deleteBatch({\n PK: partitionKey,\n SK: createPublishedSortKey()\n })\n );\n }\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete all the page records.\",\n ex.code || \"DELETE_RECORDS_ERROR\"\n );\n }\n try {\n await batchWriteAll({\n table: entity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete all the page Elasticsearch records.\",\n ex.code || \"DELETE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return [page];\n };\n\n const publish = async (params: PageStorageOperationsPublishParams): Promise<Page> => {\n const { page, latestPage, publishedPage } = params;\n\n page.status = \"published\";\n\n /**\n * Update the given revision of the page.\n */\n const items = [\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n })\n ];\n const esItems = [];\n /**\n * If we are publishing the latest revision, update the latest revision\n * status in ES. We also need to update the latest page revision entry in ES.\n */\n if (latestPage.id === page.id) {\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n PK: createPartitionKey(page),\n SK: createLatestSortKey()\n })\n );\n\n esItems.push(\n esEntity.putBatch({\n PK: createPartitionKey(page),\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, page)\n })\n );\n }\n /**\n * If we already have a published revision, and it's not the revision being published:\n * - set the existing published revision to \"unpublished\"\n */\n if (publishedPage && publishedPage.id !== page.id) {\n items.push(\n entity.putBatch({\n ...publishedPage,\n status: \"unpublished\",\n PK: createPartitionKey(publishedPage),\n SK: createSortKey(publishedPage)\n })\n );\n /**\n * Remove old published path if required.\n */\n if (publishedPage.path !== page.path) {\n items.push(\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: publishedPage.path\n })\n );\n }\n }\n\n esItems.push(\n esEntity.putBatch({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey(),\n index: configurations.es(page).index,\n data: getESPublishedPageData(plugins, page)\n })\n );\n\n /**\n * Update or insert published path.\n */\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createPublishedPathType(),\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n })\n );\n /**\n * Update or insert published page.\n */\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createPublishedType(),\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n })\n );\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update all the page records when publishing.\",\n ex.code || \"UPDATE_RECORDS_ERROR\"\n );\n }\n /**\n * No point in continuing if there are no items in Elasticsearch data\n */\n if (esItems.length === 0) {\n return page;\n }\n try {\n await batchWriteAll({\n table: esEntity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message ||\n \"Could not update all the page Elasticsearch records when publishing.\",\n ex.code || \"UPDATE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return page;\n };\n\n const unpublish = async (params: PageStorageOperationsUnpublishParams): Promise<Page> => {\n const { page, latestPage } = params;\n\n page.status = \"unpublished\";\n\n const items = [\n entity.deleteBatch({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n }),\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n }),\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n })\n ];\n const esItems = [];\n /*\n * If we are unpublishing the latest revision, let's also update the latest revision entry's status in ES.\n */\n if (latestPage.id === page.id) {\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n PK: createPartitionKey(page),\n SK: createLatestSortKey()\n })\n );\n esItems.push(\n esEntity.putBatch({\n PK: createPartitionKey(page),\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, page)\n })\n );\n }\n\n esItems.push(\n esEntity.deleteBatch({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n })\n );\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update all the page records when unpublishing.\",\n ex.code || \"UPDATE_RECORDS_ERROR\"\n );\n }\n /**\n * No need to go further if no Elasticsearch items to be applied.\n */\n if (esItems.length === 0) {\n return page;\n }\n try {\n await batchWriteAll({\n table: esEntity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message ||\n \"Could not update all the page Elasticsearch records when unpublishing.\",\n ex.code || \"UPDATE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return page;\n };\n\n const get = async (params: PageStorageOperationsGetParams): Promise<Page | null> => {\n const { where } = params;\n const { pid, id, path, published } = where;\n let { version } = where;\n /**\n * In case of having full ID and not having version we can take the version from the id.\n */\n if (id && id.includes(\"#\") && !version) {\n version = Number(id.split(\"#\").pop());\n }\n let partitionKey: string | null = null;\n let sortKey: string;\n if (path) {\n partitionKey = createPathPartitionKey(where);\n sortKey = path;\n } else if (published) {\n sortKey = createPublishedSortKey();\n } else if (version) {\n sortKey = createSortKey({\n version\n });\n } else {\n sortKey = createLatestSortKey();\n }\n /**\n * If partition key is still undefined, create one with id or pid\n */\n if (!partitionKey) {\n partitionKey = createPartitionKey({\n ...where,\n id: pid || (id as string)\n });\n }\n const keys = {\n PK: partitionKey,\n SK: sortKey\n };\n try {\n return await getClean({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page by given params.\",\n ex.code || \"GET_PAGE_ERROR\",\n {\n where,\n keys\n }\n );\n }\n };\n\n const list = async (\n params: PageStorageOperationsListParams\n ): Promise<PageStorageOperationsListResponse> => {\n /**\n * We do not allow loading both published and latest at the same time.\n * @see PageStorageOperationsListWhere\n */\n if (params.where.published && params.where.latest) {\n throw new WebinyError(\n \"Both published and latest cannot be defined at the same time.\",\n \"MALFORMED_WHERE_ERROR\",\n {\n where: params.where\n }\n );\n }\n\n const { after: previousCursor = null, limit: initialLimit } = params;\n\n const limit = createLimit(initialLimit, 50);\n const body = createElasticsearchQueryBody({\n ...params,\n where: {\n ...params.where\n },\n limit,\n after: previousCursor,\n plugins\n });\n\n let searchPlugins: SearchPagesPlugin[] = [];\n if (params.where.published) {\n searchPlugins = plugins.byType<SearchPublishedPagesPlugin>(\n SearchPublishedPagesPlugin.type\n );\n } else if (params.where.latest) {\n searchPlugins = plugins.byType<SearchLatestPagesPlugin>(SearchLatestPagesPlugin.type);\n } else {\n throw new WebinyError(\n \"Only published or latest can be listed. Missing where condition.\",\n \"MALFORMED_WHERE_ERROR\",\n {\n where: params.where\n }\n );\n }\n\n for (const plugin of searchPlugins) {\n /**\n * Apply query modifications\n */\n plugin.modifyQuery({\n query: body.query as unknown as ElasticsearchBoolQueryConfig,\n args: params,\n plugins\n });\n\n /**\n * Apply sort modifications\n */\n plugin.modifySort({\n sort: body.sort,\n args: params,\n plugins\n });\n }\n\n let response: ElasticsearchSearchResponse<Page>;\n const esConfig = configurations.es(params.where);\n try {\n response = await elasticsearch.search({\n ...esConfig,\n body\n });\n } catch (ex) {\n /**\n * Do not throw the error if Elasticsearch index does not exist.\n * In some CRUDs we try to get list of pages but index was not created yet.\n */\n if (ex.message === \"index_not_found_exception\") {\n return {\n items: [],\n meta: {\n hasMoreItems: false,\n totalCount: 0,\n cursor: null\n }\n };\n }\n throw new WebinyError(\n ex.message || \"Could not load pages by given Elasticsearch body.\",\n ex.code || \"LIST_PAGES_ERROR\",\n {\n body\n }\n );\n }\n const { hits, total } = response.body.hits;\n const items = hits.map(item => item._source).map(item => removePageAttributes(item));\n\n const hasMoreItems = items.length > limit;\n if (hasMoreItems) {\n /**\n * Remove the last item from results, we don't want to include it.\n */\n items.pop();\n }\n /**\n * Cursor is the `sort` value of the last item in the array.\n * https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html#search-after\n */\n const cursor =\n items.length > 0 && hasMoreItems\n ? encodeCursor(hits[items.length - 1].sort) || null\n : null;\n return {\n items,\n meta: {\n hasMoreItems,\n totalCount: total.value,\n cursor\n }\n };\n };\n\n const listTags = async (params: PageStorageOperationsListTagsParams): Promise<string[]> => {\n const { where } = params;\n\n const tenant: string = where.tenant;\n const body = createElasticsearchQueryBody({\n ...params,\n where: {\n locale: where.locale,\n search: undefined,\n tenant\n },\n sort: [],\n after: null,\n limit: 100000,\n plugins\n });\n\n const esConfig = configurations.es(where);\n\n try {\n const response: ElasticsearchSearchResponse<string> = await elasticsearch.search({\n ...esConfig,\n body: {\n ...body,\n sort: undefined,\n limit: undefined,\n size: 0,\n aggs: {\n tags: {\n terms: {\n field: \"tags.keyword\",\n include: `.*${where.search}.*`,\n size: 10\n }\n }\n }\n }\n });\n\n const tags = response.body.aggregations[\"tags\"];\n if (!tags || Array.isArray(tags.buckets) === false) {\n return [];\n }\n return tags.buckets.map(item => item.key);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list tags by given parameters.\",\n ex.code || \"LIST_TAGS_ERROR\",\n {\n body,\n where\n }\n );\n }\n };\n\n const listRevisions = async (\n params: PageStorageOperationsListRevisionsParams\n ): Promise<Page[]> => {\n const { where, sort } = params;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n ...where,\n id: where.pid\n }),\n options: {\n beginsWith: \"REV#\",\n reverse: false\n }\n };\n\n let items: Page[] = [];\n try {\n items = await queryAll<Page>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load all the revisions from requested page.\",\n ex.code || \"LOAD_PAGE_REVISIONS_ERROR\",\n {\n params\n }\n );\n }\n\n const fields = plugins.byType<PageDynamoDbElasticsearchFieldPlugin>(\n PageDynamoDbElasticsearchFieldPlugin.type\n );\n\n return sortItems({\n items: items.map(item => removePageAttributes(item)),\n fields,\n sort\n });\n };\n\n return {\n create,\n createFrom,\n update,\n delete: deleteOne,\n deleteAll: deleteAll,\n publish,\n unpublish,\n get,\n list,\n listRevisions,\n listTags\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_omit","_interopRequireDefault","require","_error","_cleanup","_configurations","_apiElasticsearch","_elasticsearchQueryBody","_SearchLatestPagesPlugin","_SearchPublishedPagesPlugin","_query","_batchWrite","_helpers","_keys","_sort","_PageDynamoDbElasticsearchFieldPlugin","_dbDynamodb","removePageAttributes","item","omit","createPageStorageOperations","params","entity","esEntity","elasticsearch","plugins","create","page","input","versionKeys","PK","createPartitionKey","SK","createSortKey","latestKeys","createLatestSortKey","items","putBatch","TYPE","createBasicType","createLatestType","esData","getESLatestPageData","batchWriteAll","table","put","index","configurations","es","data","ex","WebinyError","message","code","createFrom","latestPage","original","update","keys","getClean","id","push","deleteOne","publishedPage","partitionKey","deleteBatch","esItems","createPublishedSortKey","createPathPartitionKey","createPathSortKey","previousLatestPage","previousLatestRecord","queryOne","options","lt","reverse","cleanupItem","length","deleteAll","queryAllParams","gte","revisions","queryAll","publishedPathEntryDeleted","revision","status","path","publish","getESPublishedPageData","createPublishedPathType","createPublishedType","unpublish","get","where","pid","published","version","includes","Number","split","pop","sortKey","list","latest","after","previousCursor","limit","initialLimit","createLimit","body","createElasticsearchQueryBody","searchPlugins","byType","SearchPublishedPagesPlugin","type","SearchLatestPagesPlugin","plugin","modifyQuery","query","args","modifySort","sort","response","esConfig","search","meta","hasMoreItems","totalCount","cursor","hits","total","map","_source","encodeCursor","value","listTags","tenant","locale","undefined","size","aggs","tags","terms","field","include","aggregations","Array","isArray","buckets","key","listRevisions","beginsWith","fields","PageDynamoDbElasticsearchFieldPlugin","sortItems","delete","exports"],"sources":["index.ts"],"sourcesContent":["import {\n Page,\n PageStorageOperations,\n PageStorageOperationsCreateFromParams,\n PageStorageOperationsCreateParams,\n PageStorageOperationsDeleteAllParams,\n PageStorageOperationsDeleteParams,\n PageStorageOperationsGetParams,\n PageStorageOperationsListParams,\n PageStorageOperationsListResponse,\n PageStorageOperationsListRevisionsParams,\n PageStorageOperationsListTagsParams,\n PageStorageOperationsPublishParams,\n PageStorageOperationsUnpublishParams,\n PageStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Client } from \"@elastic/elasticsearch\";\nimport {\n ElasticsearchBoolQueryConfig,\n ElasticsearchSearchResponse\n} from \"@webiny/api-elasticsearch/types\";\nimport { configurations } from \"~/configurations\";\nimport { createLimit, encodeCursor } from \"@webiny/api-elasticsearch\";\nimport { createElasticsearchQueryBody } from \"./elasticsearchQueryBody\";\nimport { SearchLatestPagesPlugin } from \"~/plugins/definitions/SearchLatestPagesPlugin\";\nimport { SearchPublishedPagesPlugin } from \"~/plugins/definitions/SearchPublishedPagesPlugin\";\nimport { DbItem, queryAll, QueryAllParams, queryOne } from \"@webiny/db-dynamodb/utils/query\";\nimport { SearchPagesPlugin } from \"~/plugins/definitions/SearchPagesPlugin\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { getESLatestPageData, getESPublishedPageData } from \"./helpers\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport {\n createBasicType,\n createLatestSortKey,\n createLatestType,\n createPartitionKey,\n createPathPartitionKey,\n createPathSortKey,\n createPublishedPathType,\n createPublishedSortKey,\n createPublishedType,\n createSortKey\n} from \"./keys\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { PageDynamoDbElasticsearchFieldPlugin } from \"~/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin\";\nimport { getClean, put } from \"@webiny/db-dynamodb\";\n\n/**\n * This function removes attributes that were once present in the Page record, which we no longer need.\n */\nfunction removePageAttributes(item: Page): Page {\n return omit(item, [\"home\", \"notFound\", \"visibility\"]) as Page;\n}\n\nexport interface CreatePageStorageOperationsParams {\n entity: Entity<any>;\n esEntity: Entity<any>;\n elasticsearch: Client;\n plugins: PluginsContainer;\n}\nexport const createPageStorageOperations = (\n params: CreatePageStorageOperationsParams\n): PageStorageOperations => {\n const { entity, esEntity, elasticsearch, plugins } = params;\n\n const create = async (params: PageStorageOperationsCreateParams): Promise<Page> => {\n const { page, input } = params;\n\n const versionKeys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n const latestKeys = {\n ...versionKeys,\n SK: createLatestSortKey()\n };\n\n const items = [\n entity.putBatch({\n ...page,\n ...versionKeys,\n TYPE: createBasicType()\n }),\n entity.putBatch({\n ...page,\n ...latestKeys,\n TYPE: createLatestType()\n })\n ];\n const esData = getESLatestPageData(plugins, page, input);\n try {\n await batchWriteAll({\n table: entity.table,\n items: items\n });\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create new page.\",\n ex.code || \"CREATE_PAGE_ERROR\",\n {\n versionKeys,\n latestKeys,\n page\n }\n );\n }\n };\n\n const createFrom = async (params: PageStorageOperationsCreateFromParams): Promise<Page> => {\n const { page, latestPage, original } = params;\n\n const versionKeys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n const latestKeys = {\n ...versionKeys,\n SK: createLatestSortKey()\n };\n\n const items = [\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n ...versionKeys\n }),\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n ...latestKeys\n })\n ];\n\n const esData = getESLatestPageData(plugins, page);\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create new page from existing page.\",\n ex.code || \"CREATE_PAGE_FROM_ERROR\",\n {\n versionKeys,\n latestKeys,\n latestPage,\n original,\n page\n }\n );\n }\n };\n\n const update = async (params: PageStorageOperationsUpdateParams): Promise<Page> => {\n const { original, page, input } = params;\n\n const keys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n\n const latestKeys = {\n ...keys,\n SK: createLatestSortKey()\n };\n const latestPage = await getClean<Page>({\n entity,\n keys: latestKeys\n });\n\n const items = [\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n ...keys\n })\n ];\n\n const esData = getESLatestPageData(plugins, page, input);\n\n if (latestPage && latestPage?.id === page.id) {\n /**\n * We also update the regular record.\n */\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n ...latestKeys\n })\n );\n }\n /**\n * Unfortunately we cannot push regular and es record in the batch write because they are two separate tables.\n */\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update existing page.\",\n ex.code || \"UPDATE_PAGE_ERROR\",\n {\n original,\n page,\n latestPage,\n latestKeys,\n keys\n }\n );\n }\n };\n\n /**\n * In case of delete, we must delete records:\n * - revision\n * - path if published\n * Update:\n * - latest\n */\n const deleteOne = async (\n params: PageStorageOperationsDeleteParams\n ): Promise<[Page, Page | null]> => {\n const { page, latestPage, publishedPage } = params;\n\n const partitionKey = createPartitionKey(page);\n\n const items = [\n entity.deleteBatch({\n PK: partitionKey,\n SK: createSortKey(page)\n })\n ];\n const esItems = [];\n if (publishedPage && publishedPage.id === page.id) {\n items.push(\n entity.deleteBatch({\n PK: partitionKey,\n SK: createPublishedSortKey()\n })\n );\n items.push(\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n })\n );\n esItems.push(\n esEntity.deleteBatch({\n PK: partitionKey,\n SK: createPublishedSortKey()\n })\n );\n }\n let previousLatestPage: Page | null = null;\n if (latestPage && latestPage.id === page.id) {\n const previousLatestRecord = await queryOne<Page>({\n entity,\n partitionKey,\n options: {\n lt: createSortKey(latestPage),\n reverse: true\n }\n });\n if (previousLatestRecord) {\n items.push(\n entity.putBatch({\n ...previousLatestRecord,\n TYPE: createLatestType(),\n PK: partitionKey,\n SK: createLatestSortKey()\n })\n );\n esItems.push(\n esEntity.putBatch({\n PK: partitionKey,\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, previousLatestRecord)\n })\n );\n previousLatestPage = cleanupItem(entity, previousLatestRecord);\n }\n }\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not batch write all the page records.\",\n ex.code || \"BATCH_WRITE_RECORDS_ERROR\"\n );\n }\n if (esItems.length === 0) {\n return [page, previousLatestPage];\n }\n try {\n await batchWriteAll({\n table: entity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not batch write all the page Elasticsearch records.\",\n ex.code || \"BATCH_WRITE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return [page, previousLatestPage];\n };\n\n /**\n * In case of deleteAll, we must delete records:\n * - latest\n * - published\n * - path if published\n * - revision\n * - es latest\n * - es published\n */\n const deleteAll = async (params: PageStorageOperationsDeleteAllParams): Promise<[Page]> => {\n const { page } = params;\n\n const partitionKey = createPartitionKey(page);\n const queryAllParams = {\n entity,\n partitionKey,\n options: {\n gte: \" \"\n }\n };\n let revisions: DbItem<Page>[];\n try {\n revisions = await queryAll<Page>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not query for all revisions of the page.\",\n ex.code || \"LIST_REVISIONS_ERROR\",\n {\n params: queryAllParams\n }\n );\n }\n\n /**\n * We need to go through all possible entries and delete them.\n * Also, delete the published entry path record.\n */\n const items = [];\n let publishedPathEntryDeleted = false;\n for (const revision of revisions) {\n if (revision.status === \"published\" && !publishedPathEntryDeleted) {\n publishedPathEntryDeleted = true;\n items.push(\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: revision.path\n })\n );\n }\n items.push(\n entity.deleteBatch({\n PK: revision.PK,\n SK: revision.SK\n })\n );\n }\n const esItems = [\n esEntity.deleteBatch({\n PK: partitionKey,\n SK: createLatestSortKey()\n })\n ];\n /**\n * Delete published record if it is published.\n */\n if (publishedPathEntryDeleted) {\n esItems.push(\n esEntity.deleteBatch({\n PK: partitionKey,\n SK: createPublishedSortKey()\n })\n );\n }\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete all the page records.\",\n ex.code || \"DELETE_RECORDS_ERROR\"\n );\n }\n try {\n await batchWriteAll({\n table: entity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete all the page Elasticsearch records.\",\n ex.code || \"DELETE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return [page];\n };\n\n const publish = async (params: PageStorageOperationsPublishParams): Promise<Page> => {\n const { page, latestPage, publishedPage } = params;\n\n page.status = \"published\";\n\n /**\n * Update the given revision of the page.\n */\n const items = [\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n })\n ];\n const esItems = [];\n /**\n * If we are publishing the latest revision, update the latest revision\n * status in ES. We also need to update the latest page revision entry in ES.\n */\n if (latestPage.id === page.id) {\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n PK: createPartitionKey(page),\n SK: createLatestSortKey()\n })\n );\n\n esItems.push(\n esEntity.putBatch({\n PK: createPartitionKey(page),\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, page)\n })\n );\n }\n /**\n * If we already have a published revision, and it's not the revision being published:\n * - set the existing published revision to \"unpublished\"\n */\n if (publishedPage && publishedPage.id !== page.id) {\n items.push(\n entity.putBatch({\n ...publishedPage,\n status: \"unpublished\",\n PK: createPartitionKey(publishedPage),\n SK: createSortKey(publishedPage)\n })\n );\n /**\n * Remove old published path if required.\n */\n if (publishedPage.path !== page.path) {\n items.push(\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: publishedPage.path\n })\n );\n }\n }\n\n esItems.push(\n esEntity.putBatch({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey(),\n index: configurations.es(page).index,\n data: getESPublishedPageData(plugins, page)\n })\n );\n\n /**\n * Update or insert published path.\n */\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createPublishedPathType(),\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n })\n );\n /**\n * Update or insert published page.\n */\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createPublishedType(),\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n })\n );\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update all the page records when publishing.\",\n ex.code || \"UPDATE_RECORDS_ERROR\"\n );\n }\n /**\n * No point in continuing if there are no items in Elasticsearch data\n */\n if (esItems.length === 0) {\n return page;\n }\n try {\n await batchWriteAll({\n table: esEntity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message ||\n \"Could not update all the page Elasticsearch records when publishing.\",\n ex.code || \"UPDATE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return page;\n };\n\n const unpublish = async (params: PageStorageOperationsUnpublishParams): Promise<Page> => {\n const { page, latestPage } = params;\n\n page.status = \"unpublished\";\n\n const items = [\n entity.deleteBatch({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n }),\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n }),\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n })\n ];\n const esItems = [];\n /*\n * If we are unpublishing the latest revision, let's also update the latest revision entry's status in ES.\n */\n if (latestPage.id === page.id) {\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n PK: createPartitionKey(page),\n SK: createLatestSortKey()\n })\n );\n esItems.push(\n esEntity.putBatch({\n PK: createPartitionKey(page),\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, page)\n })\n );\n }\n\n esItems.push(\n esEntity.deleteBatch({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n })\n );\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update all the page records when unpublishing.\",\n ex.code || \"UPDATE_RECORDS_ERROR\"\n );\n }\n /**\n * No need to go further if no Elasticsearch items to be applied.\n */\n if (esItems.length === 0) {\n return page;\n }\n try {\n await batchWriteAll({\n table: esEntity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message ||\n \"Could not update all the page Elasticsearch records when unpublishing.\",\n ex.code || \"UPDATE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return page;\n };\n\n const get = async (params: PageStorageOperationsGetParams): Promise<Page | null> => {\n const { where } = params;\n const { pid, id, path, published } = where;\n let { version } = where;\n /**\n * In case of having full ID and not having version we can take the version from the id.\n */\n if (id && id.includes(\"#\") && !version) {\n version = Number(id.split(\"#\").pop());\n }\n let partitionKey: string | null = null;\n let sortKey: string;\n if (path) {\n partitionKey = createPathPartitionKey(where);\n sortKey = path;\n } else if (published) {\n sortKey = createPublishedSortKey();\n } else if (version) {\n sortKey = createSortKey({\n version\n });\n } else {\n sortKey = createLatestSortKey();\n }\n /**\n * If partition key is still undefined, create one with id or pid\n */\n if (!partitionKey) {\n partitionKey = createPartitionKey({\n ...where,\n id: pid || (id as string)\n });\n }\n const keys = {\n PK: partitionKey,\n SK: sortKey\n };\n try {\n return await getClean({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page by given params.\",\n ex.code || \"GET_PAGE_ERROR\",\n {\n where,\n keys\n }\n );\n }\n };\n\n const list = async (\n params: PageStorageOperationsListParams\n ): Promise<PageStorageOperationsListResponse> => {\n /**\n * We do not allow loading both published and latest at the same time.\n * @see PageStorageOperationsListWhere\n */\n if (params.where.published && params.where.latest) {\n throw new WebinyError(\n \"Both published and latest cannot be defined at the same time.\",\n \"MALFORMED_WHERE_ERROR\",\n {\n where: params.where\n }\n );\n }\n\n const { after: previousCursor = null, limit: initialLimit } = params;\n\n const limit = createLimit(initialLimit, 50);\n const body = createElasticsearchQueryBody({\n ...params,\n where: {\n ...params.where\n },\n limit,\n after: previousCursor,\n plugins\n });\n\n let searchPlugins: SearchPagesPlugin[] = [];\n if (params.where.published) {\n searchPlugins = plugins.byType<SearchPublishedPagesPlugin>(\n SearchPublishedPagesPlugin.type\n );\n } else if (params.where.latest) {\n searchPlugins = plugins.byType<SearchLatestPagesPlugin>(SearchLatestPagesPlugin.type);\n } else {\n throw new WebinyError(\n \"Only published or latest can be listed. Missing where condition.\",\n \"MALFORMED_WHERE_ERROR\",\n {\n where: params.where\n }\n );\n }\n\n for (const plugin of searchPlugins) {\n /**\n * Apply query modifications\n */\n plugin.modifyQuery({\n query: body.query as unknown as ElasticsearchBoolQueryConfig,\n args: params,\n plugins\n });\n\n /**\n * Apply sort modifications\n */\n plugin.modifySort({\n sort: body.sort,\n args: params,\n plugins\n });\n }\n\n let response: ElasticsearchSearchResponse<Page>;\n const esConfig = configurations.es(params.where);\n try {\n response = await elasticsearch.search({\n ...esConfig,\n body\n });\n } catch (ex) {\n /**\n * Do not throw the error if Elasticsearch index does not exist.\n * In some CRUDs we try to get list of pages but index was not created yet.\n */\n if (ex.message === \"index_not_found_exception\") {\n return {\n items: [],\n meta: {\n hasMoreItems: false,\n totalCount: 0,\n cursor: null\n }\n };\n }\n throw new WebinyError(\n ex.message || \"Could not load pages by given Elasticsearch body.\",\n ex.code || \"LIST_PAGES_ERROR\",\n {\n body\n }\n );\n }\n const { hits, total } = response.body.hits;\n const items = hits.map(item => item._source).map(item => removePageAttributes(item));\n\n const hasMoreItems = items.length > limit;\n if (hasMoreItems) {\n /**\n * Remove the last item from results, we don't want to include it.\n */\n items.pop();\n }\n /**\n * Cursor is the `sort` value of the last item in the array.\n * https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html#search-after\n */\n const cursor =\n items.length > 0 && hasMoreItems\n ? encodeCursor(hits[items.length - 1].sort) || null\n : null;\n return {\n items,\n meta: {\n hasMoreItems,\n totalCount: total.value,\n cursor\n }\n };\n };\n\n const listTags = async (params: PageStorageOperationsListTagsParams): Promise<string[]> => {\n const { where } = params;\n\n const tenant: string = where.tenant;\n const body = createElasticsearchQueryBody({\n ...params,\n where: {\n locale: where.locale,\n search: undefined,\n tenant\n },\n sort: [],\n after: null,\n limit: 100000,\n plugins\n });\n\n const esConfig = configurations.es(where);\n\n try {\n const response: ElasticsearchSearchResponse<string> = await elasticsearch.search({\n ...esConfig,\n body: {\n ...body,\n sort: undefined,\n limit: undefined,\n size: 0,\n aggs: {\n tags: {\n terms: {\n field: \"tags.keyword\",\n include: `.*${where.search}.*`,\n size: 10\n }\n }\n }\n }\n });\n\n const tags = response.body.aggregations[\"tags\"];\n if (!tags || Array.isArray(tags.buckets) === false) {\n return [];\n }\n return tags.buckets.map(item => item.key);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list tags by given parameters.\",\n ex.code || \"LIST_TAGS_ERROR\",\n {\n body,\n where\n }\n );\n }\n };\n\n const listRevisions = async (\n params: PageStorageOperationsListRevisionsParams\n ): Promise<Page[]> => {\n const { where, sort } = params;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n ...where,\n id: where.pid\n }),\n options: {\n beginsWith: \"REV#\",\n reverse: false\n }\n };\n\n let items: Page[] = [];\n try {\n items = await queryAll<Page>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load all the revisions from requested page.\",\n ex.code || \"LOAD_PAGE_REVISIONS_ERROR\",\n {\n params\n }\n );\n }\n\n const fields = plugins.byType<PageDynamoDbElasticsearchFieldPlugin>(\n PageDynamoDbElasticsearchFieldPlugin.type\n );\n\n return sortItems({\n items: items.map(item => removePageAttributes(item)),\n fields,\n sort\n });\n };\n\n return {\n create,\n createFrom,\n update,\n delete: deleteOne,\n deleteAll: deleteAll,\n publish,\n unpublish,\n get,\n list,\n listRevisions,\n listTags\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","createBasePartitionKey","params","tenant","locale","createPartitionKey","id","parseIdentifier","exports","createSortKey","zeroPad","version","createPathPartitionKey","createPathSortKey","path","createPublishedSortKey","createLatestSortKey","createBasicType","createLatestType","createPublishedType","createPublishedPathType"],"sources":["keys.ts"],"sourcesContent":["import { parseIdentifier, zeroPad } from \"@webiny/utils\";\n\ninterface BasePartitionKeyParams {\n tenant: string;\n locale: string;\n}\n\nconst createBasePartitionKey = (params: BasePartitionKeyParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#PB#`;\n};\n\nexport interface PartitionKeyParams extends BasePartitionKeyParams {\n id: string;\n}\n\nexport const createPartitionKey = (params: PartitionKeyParams): string => {\n const { id } = parseIdentifier(params.id);\n return `${createBasePartitionKey(params)}P#${id}`;\n};\n\nexport interface SortKeyParams {\n version: number;\n}\n\nexport const createSortKey = (params: SortKeyParams): string => {\n return `REV#${zeroPad(params.version)}`;\n};\n\nexport const createPathPartitionKey = (params: BasePartitionKeyParams): string => {\n return `${createBasePartitionKey(params)}PATH`;\n};\n\nexport interface PathSortKeyParams {\n path: string;\n}\n\nexport const createPathSortKey = (params: PathSortKeyParams): string => {\n return params.path;\n};\n\nexport const createPublishedSortKey = (): string => {\n return \"P\";\n};\n\nexport const createLatestSortKey = (): string => {\n return \"L\";\n};\n\nexport const createBasicType = (): string => {\n return \"pb.page\";\n};\n\nexport const createLatestType = (): string => {\n return \"pb.page.l\";\n};\n\nexport const createPublishedType = (): string => {\n return \"pb.page.p\";\n};\n\nexport const createPublishedPathType = (): string => {\n return \"pb.page.p.path\";\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,MAAMC,sBAAsB,GAAIC,MAA8B,IAAa;EACvE,MAAM;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGF,MAAM;EACjC,OAAQ,KAAIC,MAAO,MAAKC,MAAO,MAAK;AACxC,CAAC;AAMM,MAAMC,kBAAkB,GAAIH,MAA0B,IAAa;EACtE,MAAM;IAAEI;EAAG,CAAC,GAAG,IAAAC,sBAAe,EAACL,MAAM,CAACI,EAAE,CAAC;EACzC,OAAQ,GAAEL,sBAAsB,CAACC,MAAM,CAAE,KAAII,EAAG,EAAC;AACrD,CAAC;AAACE,OAAA,CAAAH,kBAAA,GAAAA,kBAAA;AAMK,MAAMI,aAAa,GAAIP,MAAqB,IAAa;EAC5D,OAAQ,OAAM,IAAAQ,cAAO,EAACR,MAAM,CAACS,OAAO,CAAE,EAAC;AAC3C,CAAC;AAACH,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAEK,MAAMG,sBAAsB,GAAIV,MAA8B,IAAa;EAC9E,OAAQ,GAAED,sBAAsB,CAACC,MAAM,CAAE,MAAK;AAClD,CAAC;AAACM,OAAA,CAAAI,sBAAA,GAAAA,sBAAA;AAMK,MAAMC,iBAAiB,GAAIX,MAAyB,IAAa;EACpE,OAAOA,MAAM,CAACY,IAAI;AACtB,CAAC;AAACN,OAAA,CAAAK,iBAAA,GAAAA,iBAAA;AAEK,MAAME,sBAAsB,GAAGA,CAAA,KAAc;EAChD,OAAO,GAAG;AACd,CAAC;AAACP,OAAA,CAAAO,sBAAA,GAAAA,sBAAA;AAEK,MAAMC,mBAAmB,GAAGA,CAAA,KAAc;EAC7C,OAAO,GAAG;AACd,CAAC;AAACR,OAAA,CAAAQ,mBAAA,GAAAA,mBAAA;AAEK,MAAMC,eAAe,GAAGA,CAAA,KAAc;EACzC,OAAO,SAAS;AACpB,CAAC;AAACT,OAAA,CAAAS,eAAA,GAAAA,eAAA;AAEK,MAAMC,gBAAgB,GAAGA,CAAA,KAAc;EAC1C,OAAO,WAAW;AACtB,CAAC;AAACV,OAAA,CAAAU,gBAAA,GAAAA,gBAAA;AAEK,MAAMC,mBAAmB,GAAGA,CAAA,KAAc;EAC7C,OAAO,WAAW;AACtB,CAAC;AAACX,OAAA,CAAAW,mBAAA,GAAAA,mBAAA;AAEK,MAAMC,uBAAuB,GAAGA,CAAA,KAAc;EACjD,OAAO,gBAAgB;AAC3B,CAAC;AAACZ,OAAA,CAAAY,uBAAA,GAAAA,uBAAA"}
1
+ {"version":3,"names":["_utils","require","createBasePartitionKey","params","tenant","locale","createPartitionKey","id","parseIdentifier","exports","createSortKey","zeroPad","version","createPathPartitionKey","createPathSortKey","path","createPublishedSortKey","createLatestSortKey","createBasicType","createLatestType","createPublishedType","createPublishedPathType"],"sources":["keys.ts"],"sourcesContent":["import { parseIdentifier, zeroPad } from \"@webiny/utils\";\n\ninterface BasePartitionKeyParams {\n tenant: string;\n locale: string;\n}\n\nconst createBasePartitionKey = (params: BasePartitionKeyParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#PB#`;\n};\n\nexport interface PartitionKeyParams extends BasePartitionKeyParams {\n id: string;\n}\n\nexport const createPartitionKey = (params: PartitionKeyParams): string => {\n const { id } = parseIdentifier(params.id);\n return `${createBasePartitionKey(params)}P#${id}`;\n};\n\nexport interface SortKeyParams {\n version: number;\n}\n\nexport const createSortKey = (params: SortKeyParams): string => {\n return `REV#${zeroPad(params.version)}`;\n};\n\nexport const createPathPartitionKey = (params: BasePartitionKeyParams): string => {\n return `${createBasePartitionKey(params)}PATH`;\n};\n\nexport interface PathSortKeyParams {\n path: string;\n}\n\nexport const createPathSortKey = (params: PathSortKeyParams): string => {\n return params.path;\n};\n\nexport const createPublishedSortKey = (): string => {\n return \"P\";\n};\n\nexport const createLatestSortKey = (): string => {\n return \"L\";\n};\n\nexport const createBasicType = (): string => {\n return \"pb.page\";\n};\n\nexport const createLatestType = (): string => {\n return \"pb.page.l\";\n};\n\nexport const createPublishedType = (): string => {\n return \"pb.page.p\";\n};\n\nexport const createPublishedPathType = (): string => {\n return \"pb.page.p.path\";\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,MAAMC,sBAAsB,GAAIC,MAA8B,IAAa;EACvE,MAAM;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGF,MAAM;EACjC,OAAQ,KAAIC,MAAO,MAAKC,MAAO,MAAK;AACxC,CAAC;AAMM,MAAMC,kBAAkB,GAAIH,MAA0B,IAAa;EACtE,MAAM;IAAEI;EAAG,CAAC,GAAG,IAAAC,sBAAe,EAACL,MAAM,CAACI,EAAE,CAAC;EACzC,OAAQ,GAAEL,sBAAsB,CAACC,MAAM,CAAE,KAAII,EAAG,EAAC;AACrD,CAAC;AAACE,OAAA,CAAAH,kBAAA,GAAAA,kBAAA;AAMK,MAAMI,aAAa,GAAIP,MAAqB,IAAa;EAC5D,OAAQ,OAAM,IAAAQ,cAAO,EAACR,MAAM,CAACS,OAAO,CAAE,EAAC;AAC3C,CAAC;AAACH,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAEK,MAAMG,sBAAsB,GAAIV,MAA8B,IAAa;EAC9E,OAAQ,GAAED,sBAAsB,CAACC,MAAM,CAAE,MAAK;AAClD,CAAC;AAACM,OAAA,CAAAI,sBAAA,GAAAA,sBAAA;AAMK,MAAMC,iBAAiB,GAAIX,MAAyB,IAAa;EACpE,OAAOA,MAAM,CAACY,IAAI;AACtB,CAAC;AAACN,OAAA,CAAAK,iBAAA,GAAAA,iBAAA;AAEK,MAAME,sBAAsB,GAAGA,CAAA,KAAc;EAChD,OAAO,GAAG;AACd,CAAC;AAACP,OAAA,CAAAO,sBAAA,GAAAA,sBAAA;AAEK,MAAMC,mBAAmB,GAAGA,CAAA,KAAc;EAC7C,OAAO,GAAG;AACd,CAAC;AAACR,OAAA,CAAAQ,mBAAA,GAAAA,mBAAA;AAEK,MAAMC,eAAe,GAAGA,CAAA,KAAc;EACzC,OAAO,SAAS;AACpB,CAAC;AAACT,OAAA,CAAAS,eAAA,GAAAA,eAAA;AAEK,MAAMC,gBAAgB,GAAGA,CAAA,KAAc;EAC1C,OAAO,WAAW;AACtB,CAAC;AAACV,OAAA,CAAAU,gBAAA,GAAAA,gBAAA;AAEK,MAAMC,mBAAmB,GAAGA,CAAA,KAAc;EAC7C,OAAO,WAAW;AACtB,CAAC;AAACX,OAAA,CAAAW,mBAAA,GAAAA,mBAAA;AAEK,MAAMC,uBAAuB,GAAGA,CAAA,KAAc;EACjD,OAAO,gBAAgB;AAC3B,CAAC;AAACZ,OAAA,CAAAY,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_get","require","_error","_interopRequireDefault","_dbDynamodb","createPartitionKey","params","tenant","locale","parts","push","join","createType","createSettingsStorageOperations","entity","getDefaults","keys","PK","SK","result","getClean","websiteUrl","data","deliveryUrl","websitePreviewUrl","appUrl","ex","WebinyError","message","code","get","where","create","settings","put","item","TYPE","update","original","createCacheKey","exports"],"sources":["index.ts"],"sourcesContent":["import {\n DefaultSettings,\n DefaultSettingsCrudOptions,\n Settings,\n SettingsStorageOperations,\n SettingsStorageOperationsCreateParams,\n SettingsStorageOperationsGetParams,\n SettingsStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { getClean } from \"@webiny/db-dynamodb/utils/get\";\nimport WebinyError from \"@webiny/error\";\nimport { put } from \"@webiny/db-dynamodb\";\n\n/**\n * Because it is a possibility that tenant and locale are set as false (for the global settings) we must take\n * it in consideration and create the partition key for the global settings.\n */\ninterface PartitionKeyParams {\n tenant: string | boolean | undefined;\n locale: string | boolean | undefined;\n}\n\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant, locale } = params;\n const parts: string[] = [];\n if (tenant !== false) {\n parts.push(`T#${tenant}`);\n }\n if (locale !== false) {\n parts.push(`L#${locale}`);\n }\n parts.push(\"PB#SETTINGS\");\n\n return parts.join(\"#\");\n};\n\nconst createType = (): string => {\n return \"pb.settings\";\n};\n\nexport interface CreateSettingsStorageOperationsParams {\n entity: Entity;\n}\n\nexport interface DbDefaultSettings {\n data: {\n appUrl: string;\n deliveryUrl: string;\n };\n}\n\nexport const createSettingsStorageOperations = ({\n entity\n}: CreateSettingsStorageOperationsParams): SettingsStorageOperations => {\n const getDefaults = async (): Promise<DefaultSettings | null> => {\n const keys = {\n PK: \"PS#SETTINGS\",\n SK: \"default\"\n };\n\n try {\n const result = await getClean<DbDefaultSettings>({\n entity,\n keys\n });\n if (!result) {\n return null;\n }\n\n return {\n websiteUrl: result.data.deliveryUrl,\n websitePreviewUrl: result.data.appUrl\n };\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load default settings record.\",\n ex.code || \"DEFAULT_SETTINGS_GET_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const get = async (params: SettingsStorageOperationsGetParams) => {\n const { where } = params;\n\n const keys = {\n PK: createPartitionKey(where),\n SK: \"A\"\n };\n try {\n const result = await getClean<{ data: Settings }>({\n entity,\n keys\n });\n return result?.data || null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load settings record.\",\n ex.code || \"SETTINGS_GET_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const create = async (params: SettingsStorageOperationsCreateParams) => {\n const { settings } = params;\n const keys = {\n PK: createPartitionKey(settings),\n SK: \"A\"\n };\n try {\n await put({\n entity,\n item: {\n TYPE: createType(),\n data: settings,\n ...keys\n }\n });\n\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create settings record.\",\n ex.code || \"SETTINGS_CREATE_ERROR\",\n {\n settings,\n keys\n }\n );\n }\n };\n\n const update = async (params: SettingsStorageOperationsUpdateParams) => {\n const { original, settings } = params;\n const keys = {\n PK: createPartitionKey(settings),\n SK: \"A\"\n };\n try {\n await put({\n entity,\n item: {\n data: settings,\n TYPE: createType(),\n ...keys\n }\n });\n\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update settings record.\",\n ex.code || \"SETTINGS_UPDATE_ERROR\",\n {\n original,\n settings,\n keys\n }\n );\n }\n };\n /**\n * We can simply return the partition key for this storage operations.\n */\n const createCacheKey = (params: DefaultSettingsCrudOptions): string => {\n return createPartitionKey(params);\n };\n\n return {\n get,\n getDefaults,\n create,\n update,\n createCacheKey\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_get","require","_error","_interopRequireDefault","_dbDynamodb","createPartitionKey","params","tenant","locale","parts","push","join","createType","createSettingsStorageOperations","entity","getDefaults","keys","PK","SK","result","getClean","websiteUrl","data","deliveryUrl","websitePreviewUrl","appUrl","ex","WebinyError","message","code","get","where","create","settings","put","item","TYPE","update","original","createCacheKey","exports"],"sources":["index.ts"],"sourcesContent":["import {\n DefaultSettings,\n DefaultSettingsCrudOptions,\n Settings,\n SettingsStorageOperations,\n SettingsStorageOperationsCreateParams,\n SettingsStorageOperationsGetParams,\n SettingsStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { getClean } from \"@webiny/db-dynamodb/utils/get\";\nimport WebinyError from \"@webiny/error\";\nimport { put } from \"@webiny/db-dynamodb\";\n\n/**\n * Because it is a possibility that tenant and locale are set as false (for the global settings) we must take\n * it in consideration and create the partition key for the global settings.\n */\ninterface PartitionKeyParams {\n tenant: string | boolean | undefined;\n locale: string | boolean | undefined;\n}\n\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant, locale } = params;\n const parts: string[] = [];\n if (tenant !== false) {\n parts.push(`T#${tenant}`);\n }\n if (locale !== false) {\n parts.push(`L#${locale}`);\n }\n parts.push(\"PB#SETTINGS\");\n\n return parts.join(\"#\");\n};\n\nconst createType = (): string => {\n return \"pb.settings\";\n};\n\nexport interface CreateSettingsStorageOperationsParams {\n entity: Entity;\n}\n\nexport interface DbDefaultSettings {\n data: {\n appUrl: string;\n deliveryUrl: string;\n };\n}\n\nexport const createSettingsStorageOperations = ({\n entity\n}: CreateSettingsStorageOperationsParams): SettingsStorageOperations => {\n const getDefaults = async (): Promise<DefaultSettings | null> => {\n const keys = {\n PK: \"PS#SETTINGS\",\n SK: \"default\"\n };\n\n try {\n const result = await getClean<DbDefaultSettings>({\n entity,\n keys\n });\n if (!result) {\n return null;\n }\n\n return {\n websiteUrl: result.data.deliveryUrl,\n websitePreviewUrl: result.data.appUrl\n };\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load default settings record.\",\n ex.code || \"DEFAULT_SETTINGS_GET_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const get = async (params: SettingsStorageOperationsGetParams) => {\n const { where } = params;\n\n const keys = {\n PK: createPartitionKey(where),\n SK: \"A\"\n };\n try {\n const result = await getClean<{ data: Settings }>({\n entity,\n keys\n });\n return result?.data || null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load settings record.\",\n ex.code || \"SETTINGS_GET_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const create = async (params: SettingsStorageOperationsCreateParams) => {\n const { settings } = params;\n const keys = {\n PK: createPartitionKey(settings),\n SK: \"A\"\n };\n try {\n await put({\n entity,\n item: {\n TYPE: createType(),\n data: settings,\n ...keys\n }\n });\n\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create settings record.\",\n ex.code || \"SETTINGS_CREATE_ERROR\",\n {\n settings,\n keys\n }\n );\n }\n };\n\n const update = async (params: SettingsStorageOperationsUpdateParams) => {\n const { original, settings } = params;\n const keys = {\n PK: createPartitionKey(settings),\n SK: \"A\"\n };\n try {\n await put({\n entity,\n item: {\n data: settings,\n TYPE: createType(),\n ...keys\n }\n });\n\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update settings record.\",\n ex.code || \"SETTINGS_UPDATE_ERROR\",\n {\n original,\n settings,\n keys\n }\n );\n }\n };\n /**\n * We can simply return the partition key for this storage operations.\n */\n const createCacheKey = (params: DefaultSettingsCrudOptions): string => {\n return createPartitionKey(params);\n };\n\n return {\n get,\n getDefaults,\n create,\n update,\n createCacheKey\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_dbDynamodb","createPartitionKey","tenant","createSortKey","createSystemStorageOperations","entity","get","params","keys","PK","SK","getClean","ex","WebinyError","message","code","create","system","put","item","update","original","exports"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n System,\n SystemStorageOperations,\n SystemStorageOperationsCreateParams,\n SystemStorageOperationsGetParams,\n SystemStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { getClean, put } from \"@webiny/db-dynamodb\";\n\ninterface PartitionKeyParams {\n tenant: string;\n}\nconst createPartitionKey = ({ tenant }: PartitionKeyParams): string => {\n return `T#${tenant}#SYSTEM`;\n};\n\nconst createSortKey = (): string => {\n return \"PB\";\n};\n\nexport interface CreateSystemStorageOperationsParams {\n entity: Entity<any>;\n}\nexport const createSystemStorageOperations = ({\n entity\n}: CreateSystemStorageOperationsParams): SystemStorageOperations => {\n const get = async (params: SystemStorageOperationsGetParams): Promise<System | null> => {\n const { tenant } = params;\n const keys = {\n PK: createPartitionKey({ tenant }),\n SK: createSortKey()\n };\n try {\n return await getClean<System>({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load system record.\",\n ex.code || \"SYSTEM_GET_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const create = async (params: SystemStorageOperationsCreateParams): Promise<System> => {\n const { system } = params;\n const keys = {\n PK: createPartitionKey(system),\n SK: createSortKey()\n };\n try {\n await put({\n entity,\n item: {\n ...system,\n ...keys\n }\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create system record.\",\n ex.code || \"SYSTEM_CREATE_ERROR\",\n {\n system,\n keys\n }\n );\n }\n };\n\n const update = async (params: SystemStorageOperationsUpdateParams): Promise<System> => {\n const { original, system } = params;\n const keys = {\n PK: createPartitionKey(original),\n SK: createSortKey()\n };\n try {\n await put({\n entity,\n item: {\n ...system,\n ...keys\n }\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update system record.\",\n ex.code || \"SYSTEM_UPDATE_ERROR\",\n {\n original,\n system,\n keys\n }\n );\n }\n };\n\n return {\n get,\n create,\n update\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AASA,IAAAC,WAAA,GAAAD,OAAA;AAKA,MAAME,kBAAkB,GAAGA,CAAC;EAAEC;AAA2B,CAAC,KAAa;EACnE,OAAQ,KAAIA,MAAO,SAAQ;AAC/B,CAAC;AAED,MAAMC,aAAa,GAAGA,CAAA,KAAc;EAChC,OAAO,IAAI;AACf,CAAC;AAKM,MAAMC,6BAA6B,GAAGA,CAAC;EAC1CC;AACiC,CAAC,KAA8B;EAChE,MAAMC,GAAG,GAAG,MAAOC,MAAwC,IAA6B;IACpF,MAAM;MAAEL;IAAO,CAAC,GAAGK,MAAM;IACzB,MAAMC,IAAI,GAAG;MACTC,EAAE,EAAER,kBAAkB,CAAC;QAAEC;MAAO,CAAC,CAAC;MAClCQ,EAAE,EAAEP,aAAa,CAAC;IACtB,CAAC;IACD,IAAI;MACA,OAAO,MAAM,IAAAQ,oBAAQ,EAAS;QAC1BN,MAAM;QACNG;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOI,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,+BAA+B,EAC7CF,EAAE,CAACG,IAAI,IAAI,kBAAkB,EAC7B;QACIP;MACJ,CACJ,CAAC;IACL;EACJ,CAAC;EAED,MAAMQ,MAAM,GAAG,MAAOT,MAA2C,IAAsB;IACnF,MAAM;MAAEU;IAAO,CAAC,GAAGV,MAAM;IACzB,MAAMC,IAAI,GAAG;MACTC,EAAE,EAAER,kBAAkB,CAACgB,MAAM,CAAC;MAC9BP,EAAE,EAAEP,aAAa,CAAC;IACtB,CAAC;IACD,IAAI;MACA,MAAM,IAAAe,eAAG,EAAC;QACNb,MAAM;QACNc,IAAI,EAAE;UACF,GAAGF,MAAM;UACT,GAAGT;QACP;MACJ,CAAC,CAAC;MACF,OAAOS,MAAM;IACjB,CAAC,CAAC,OAAOL,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,iCAAiC,EAC/CF,EAAE,CAACG,IAAI,IAAI,qBAAqB,EAChC;QACIE,MAAM;QACNT;MACJ,CACJ,CAAC;IACL;EACJ,CAAC;EAED,MAAMY,MAAM,GAAG,MAAOb,MAA2C,IAAsB;IACnF,MAAM;MAAEc,QAAQ;MAAEJ;IAAO,CAAC,GAAGV,MAAM;IACnC,MAAMC,IAAI,GAAG;MACTC,EAAE,EAAER,kBAAkB,CAACoB,QAAQ,CAAC;MAChCX,EAAE,EAAEP,aAAa,CAAC;IACtB,CAAC;IACD,IAAI;MACA,MAAM,IAAAe,eAAG,EAAC;QACNb,MAAM;QACNc,IAAI,EAAE;UACF,GAAGF,MAAM;UACT,GAAGT;QACP;MACJ,CAAC,CAAC;MACF,OAAOS,MAAM;IACjB,CAAC,CAAC,OAAOL,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,iCAAiC,EAC/CF,EAAE,CAACG,IAAI,IAAI,qBAAqB,EAChC;QACIM,QAAQ;QACRJ,MAAM;QACNT;MACJ,CACJ,CAAC;IACL;EACJ,CAAC;EAED,OAAO;IACHF,GAAG;IACHU,MAAM;IACNI;EACJ,CAAC;AACL,CAAC;AAACE,OAAA,CAAAlB,6BAAA,GAAAA,6BAAA"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_dbDynamodb","createPartitionKey","tenant","createSortKey","createSystemStorageOperations","entity","get","params","keys","PK","SK","getClean","ex","WebinyError","message","code","create","system","put","item","update","original","exports"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n System,\n SystemStorageOperations,\n SystemStorageOperationsCreateParams,\n SystemStorageOperationsGetParams,\n SystemStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { getClean, put } from \"@webiny/db-dynamodb\";\n\ninterface PartitionKeyParams {\n tenant: string;\n}\nconst createPartitionKey = ({ tenant }: PartitionKeyParams): string => {\n return `T#${tenant}#SYSTEM`;\n};\n\nconst createSortKey = (): string => {\n return \"PB\";\n};\n\nexport interface CreateSystemStorageOperationsParams {\n entity: Entity<any>;\n}\nexport const createSystemStorageOperations = ({\n entity\n}: CreateSystemStorageOperationsParams): SystemStorageOperations => {\n const get = async (params: SystemStorageOperationsGetParams): Promise<System | null> => {\n const { tenant } = params;\n const keys = {\n PK: createPartitionKey({ tenant }),\n SK: createSortKey()\n };\n try {\n return await getClean<System>({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load system record.\",\n ex.code || \"SYSTEM_GET_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const create = async (params: SystemStorageOperationsCreateParams): Promise<System> => {\n const { system } = params;\n const keys = {\n PK: createPartitionKey(system),\n SK: createSortKey()\n };\n try {\n await put({\n entity,\n item: {\n ...system,\n ...keys\n }\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create system record.\",\n ex.code || \"SYSTEM_CREATE_ERROR\",\n {\n system,\n keys\n }\n );\n }\n };\n\n const update = async (params: SystemStorageOperationsUpdateParams): Promise<System> => {\n const { original, system } = params;\n const keys = {\n PK: createPartitionKey(original),\n SK: createSortKey()\n };\n try {\n await put({\n entity,\n item: {\n ...system,\n ...keys\n }\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update system record.\",\n ex.code || \"SYSTEM_UPDATE_ERROR\",\n {\n original,\n system,\n keys\n }\n );\n }\n };\n\n return {\n get,\n create,\n update\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AASA,IAAAC,WAAA,GAAAD,OAAA;AAKA,MAAME,kBAAkB,GAAGA,CAAC;EAAEC;AAA2B,CAAC,KAAa;EACnE,OAAQ,KAAIA,MAAO,SAAQ;AAC/B,CAAC;AAED,MAAMC,aAAa,GAAGA,CAAA,KAAc;EAChC,OAAO,IAAI;AACf,CAAC;AAKM,MAAMC,6BAA6B,GAAGA,CAAC;EAC1CC;AACiC,CAAC,KAA8B;EAChE,MAAMC,GAAG,GAAG,MAAOC,MAAwC,IAA6B;IACpF,MAAM;MAAEL;IAAO,CAAC,GAAGK,MAAM;IACzB,MAAMC,IAAI,GAAG;MACTC,EAAE,EAAER,kBAAkB,CAAC;QAAEC;MAAO,CAAC,CAAC;MAClCQ,EAAE,EAAEP,aAAa,CAAC;IACtB,CAAC;IACD,IAAI;MACA,OAAO,MAAM,IAAAQ,oBAAQ,EAAS;QAC1BN,MAAM;QACNG;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOI,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,+BAA+B,EAC7CF,EAAE,CAACG,IAAI,IAAI,kBAAkB,EAC7B;QACIP;MACJ,CACJ,CAAC;IACL;EACJ,CAAC;EAED,MAAMQ,MAAM,GAAG,MAAOT,MAA2C,IAAsB;IACnF,MAAM;MAAEU;IAAO,CAAC,GAAGV,MAAM;IACzB,MAAMC,IAAI,GAAG;MACTC,EAAE,EAAER,kBAAkB,CAACgB,MAAM,CAAC;MAC9BP,EAAE,EAAEP,aAAa,CAAC;IACtB,CAAC;IACD,IAAI;MACA,MAAM,IAAAe,eAAG,EAAC;QACNb,MAAM;QACNc,IAAI,EAAE;UACF,GAAGF,MAAM;UACT,GAAGT;QACP;MACJ,CAAC,CAAC;MACF,OAAOS,MAAM;IACjB,CAAC,CAAC,OAAOL,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,iCAAiC,EAC/CF,EAAE,CAACG,IAAI,IAAI,qBAAqB,EAChC;QACIE,MAAM;QACNT;MACJ,CACJ,CAAC;IACL;EACJ,CAAC;EAED,MAAMY,MAAM,GAAG,MAAOb,MAA2C,IAAsB;IACnF,MAAM;MAAEc,QAAQ;MAAEJ;IAAO,CAAC,GAAGV,MAAM;IACnC,MAAMC,IAAI,GAAG;MACTC,EAAE,EAAER,kBAAkB,CAACoB,QAAQ,CAAC;MAChCX,EAAE,EAAEP,aAAa,CAAC;IACtB,CAAC;IACD,IAAI;MACA,MAAM,IAAAe,eAAG,EAAC;QACNb,MAAM;QACNc,IAAI,EAAE;UACF,GAAGF,MAAM;UACT,GAAGT;QACP;MACJ,CAAC,CAAC;MACF,OAAOS,MAAM;IACjB,CAAC,CAAC,OAAOL,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,iCAAiC,EAC/CF,EAAE,CAACG,IAAI,IAAI,qBAAqB,EAChC;QACIM,QAAQ;QACRJ,MAAM;QACNT;MACJ,CACJ,CAAC;IACL;EACJ,CAAC;EAED,OAAO;IACHF,GAAG;IACHU,MAAM;IACNI;EACJ,CAAC;AACL,CAAC;AAACE,OAAA,CAAAlB,6BAAA,GAAAA,6BAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-page-builder-so-ddb-es",
3
- "version": "5.40.0-beta.1",
3
+ "version": "5.40.0-beta.3",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "@webiny/api-page-builder",
@@ -22,50 +22,50 @@
22
22
  "description": "The DynamoDB + Elasticsearch storage operations Webiny Page Builder API.",
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
- "@babel/runtime": "7.22.6",
26
- "@webiny/api-elasticsearch": "5.40.0-beta.1",
27
- "@webiny/api-elasticsearch-tasks": "5.40.0-beta.1",
28
- "@webiny/api-page-builder": "5.40.0-beta.1",
29
- "@webiny/aws-sdk": "5.40.0-beta.1",
30
- "@webiny/db-dynamodb": "5.40.0-beta.1",
31
- "@webiny/error": "5.40.0-beta.1",
32
- "@webiny/handler-db": "5.40.0-beta.1",
33
- "@webiny/plugins": "5.40.0-beta.1",
34
- "@webiny/utils": "5.40.0-beta.1",
25
+ "@babel/runtime": "7.24.1",
26
+ "@webiny/api-elasticsearch": "5.40.0-beta.3",
27
+ "@webiny/api-elasticsearch-tasks": "5.40.0-beta.3",
28
+ "@webiny/api-page-builder": "5.40.0-beta.3",
29
+ "@webiny/aws-sdk": "5.40.0-beta.3",
30
+ "@webiny/db-dynamodb": "5.40.0-beta.3",
31
+ "@webiny/error": "5.40.0-beta.3",
32
+ "@webiny/handler-db": "5.40.0-beta.3",
33
+ "@webiny/plugins": "5.40.0-beta.3",
34
+ "@webiny/utils": "5.40.0-beta.3",
35
35
  "dataloader": "2.2.1",
36
36
  "elastic-ts": "0.8.0",
37
37
  "lodash": "4.17.21"
38
38
  },
39
39
  "devDependencies": {
40
- "@babel/cli": "7.22.6",
41
- "@babel/core": "7.22.8",
42
- "@babel/preset-env": "7.22.7",
43
- "@babel/preset-typescript": "7.22.5",
40
+ "@babel/cli": "7.24.1",
41
+ "@babel/core": "7.24.3",
42
+ "@babel/preset-env": "7.24.3",
43
+ "@babel/preset-typescript": "7.24.1",
44
44
  "@elastic/elasticsearch": "7.12.0",
45
45
  "@elastic/elasticsearch-mock": "0.3.0",
46
- "@webiny/api": "5.40.0-beta.1",
47
- "@webiny/api-aco": "5.40.0-beta.1",
48
- "@webiny/api-dynamodb-to-elasticsearch": "5.40.0-beta.1",
49
- "@webiny/api-headless-cms": "5.40.0-beta.1",
50
- "@webiny/api-headless-cms-ddb-es": "5.40.0-beta.1",
51
- "@webiny/api-i18n": "5.40.0-beta.1",
52
- "@webiny/api-i18n-ddb": "5.40.0-beta.1",
53
- "@webiny/api-page-builder-aco": "5.40.0-beta.1",
54
- "@webiny/api-prerendering-service": "5.40.0-beta.1",
55
- "@webiny/api-security": "5.40.0-beta.1",
56
- "@webiny/api-security-so-ddb": "5.40.0-beta.1",
57
- "@webiny/api-tenancy": "5.40.0-beta.1",
58
- "@webiny/api-tenancy-so-ddb": "5.40.0-beta.1",
59
- "@webiny/api-wcp": "5.40.0-beta.1",
60
- "@webiny/cli": "5.40.0-beta.1",
61
- "@webiny/handler": "5.40.0-beta.1",
62
- "@webiny/handler-aws": "5.40.0-beta.1",
63
- "@webiny/handler-graphql": "5.40.0-beta.1",
64
- "@webiny/project-utils": "5.40.0-beta.1",
46
+ "@webiny/api": "5.40.0-beta.3",
47
+ "@webiny/api-aco": "5.40.0-beta.3",
48
+ "@webiny/api-dynamodb-to-elasticsearch": "5.40.0-beta.3",
49
+ "@webiny/api-headless-cms": "5.40.0-beta.3",
50
+ "@webiny/api-headless-cms-ddb-es": "5.40.0-beta.3",
51
+ "@webiny/api-i18n": "5.40.0-beta.3",
52
+ "@webiny/api-i18n-ddb": "5.40.0-beta.3",
53
+ "@webiny/api-page-builder-aco": "5.40.0-beta.3",
54
+ "@webiny/api-prerendering-service": "5.40.0-beta.3",
55
+ "@webiny/api-security": "5.40.0-beta.3",
56
+ "@webiny/api-security-so-ddb": "5.40.0-beta.3",
57
+ "@webiny/api-tenancy": "5.40.0-beta.3",
58
+ "@webiny/api-tenancy-so-ddb": "5.40.0-beta.3",
59
+ "@webiny/api-wcp": "5.40.0-beta.3",
60
+ "@webiny/cli": "5.40.0-beta.3",
61
+ "@webiny/handler": "5.40.0-beta.3",
62
+ "@webiny/handler-aws": "5.40.0-beta.3",
63
+ "@webiny/handler-graphql": "5.40.0-beta.3",
64
+ "@webiny/project-utils": "5.40.0-beta.3",
65
65
  "graphql": "15.8.0",
66
- "jest": "29.5.0",
66
+ "jest": "29.7.0",
67
67
  "jest-dynalite": "3.6.1",
68
- "rimraf": "3.0.2",
68
+ "rimraf": "5.0.5",
69
69
  "ttypescript": "1.5.15",
70
70
  "typescript": "4.7.4"
71
71
  },
@@ -77,5 +77,5 @@
77
77
  "build": "yarn webiny run build",
78
78
  "watch": "yarn webiny run watch"
79
79
  },
80
- "gitHead": "cadaa7aa80ddff01df7ecb3b356f2be9432e14e0"
80
+ "gitHead": "638d8b84063906cd1aa979ed6e0487ad26fbcf2f"
81
81
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_FieldPlugin","require","BlockCategoryDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["BlockCategoryDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class BlockCategoryDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.field.blockCategory\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,uCAAuC,SAASC,wBAAW,CAAC;EACrE,OAAgCC,IAAI,GAAW,6CAA6C;AAChG;AAACC,OAAA,CAAAH,uCAAA,GAAAA,uCAAA"}
1
+ {"version":3,"names":["_FieldPlugin","require","BlockCategoryDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["BlockCategoryDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class BlockCategoryDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.field.blockCategory\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,uCAAuC,SAASC,wBAAW,CAAC;EACrE,OAAgCC,IAAI,GAAW,6CAA6C;AAChG;AAACC,OAAA,CAAAH,uCAAA,GAAAA,uCAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_FieldPlugin","require","CategoryDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["CategoryDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class CategoryDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.field.category\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,kCAAkC,SAASC,wBAAW,CAAC;EAChE,OAAgCC,IAAI,GAAW,wCAAwC;AAC3F;AAACC,OAAA,CAAAH,kCAAA,GAAAA,kCAAA"}
1
+ {"version":3,"names":["_FieldPlugin","require","CategoryDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["CategoryDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class CategoryDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.field.category\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,kCAAkC,SAASC,wBAAW,CAAC;EAChE,OAAgCC,IAAI,GAAW,wCAAwC;AAC3F;AAACC,OAAA,CAAAH,kCAAA,GAAAA,kCAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_plugins","require","IndexPageDataPlugin","Plugin","type","constructor","callable","apply","params","exports"],"sources":["IndexPageDataPlugin.ts"],"sourcesContent":["import { Plugin, PluginsContainer } from \"@webiny/plugins\";\nimport { Page } from \"@webiny/api-page-builder/types\";\n\ninterface ApplyPageDataParams<TPage, TData = Record<string, any>> {\n data: TData;\n input: Record<string, any>;\n page: TPage;\n plugins: PluginsContainer;\n}\n\ninterface ApplyPageDataCallable<TPage, TData> {\n (params: ApplyPageDataParams<TPage, TData>): void;\n}\n\nexport class IndexPageDataPlugin<\n TPage extends Page = Page,\n TData = Record<string, any>\n> extends Plugin {\n public static override readonly type: string = \"pb.elasticsearch.index-page-data\";\n private readonly callable: ApplyPageDataCallable<TPage, TData>;\n\n public constructor(callable: ApplyPageDataCallable<TPage, TData>) {\n super();\n this.callable = callable;\n }\n\n public apply(params: ApplyPageDataParams<TPage, TData>): void {\n if (typeof this.callable !== \"function\") {\n return;\n }\n this.callable(params);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAcO,MAAMC,mBAAmB,SAGtBC,eAAM,CAAC;EACb,OAAgCC,IAAI,GAAW,kCAAkC;EAG1EC,WAAWA,CAACC,QAA6C,EAAE;IAC9D,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EAEOC,KAAKA,CAACC,MAAyC,EAAQ;IAC1D,IAAI,OAAO,IAAI,CAACF,QAAQ,KAAK,UAAU,EAAE;MACrC;IACJ;IACA,IAAI,CAACA,QAAQ,CAACE,MAAM,CAAC;EACzB;AACJ;AAACC,OAAA,CAAAP,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_plugins","require","IndexPageDataPlugin","Plugin","type","constructor","callable","apply","params","exports"],"sources":["IndexPageDataPlugin.ts"],"sourcesContent":["import { Plugin, PluginsContainer } from \"@webiny/plugins\";\nimport { Page } from \"@webiny/api-page-builder/types\";\n\ninterface ApplyPageDataParams<TPage, TData = Record<string, any>> {\n data: TData;\n input: Record<string, any>;\n page: TPage;\n plugins: PluginsContainer;\n}\n\ninterface ApplyPageDataCallable<TPage, TData> {\n (params: ApplyPageDataParams<TPage, TData>): void;\n}\n\nexport class IndexPageDataPlugin<\n TPage extends Page = Page,\n TData = Record<string, any>\n> extends Plugin {\n public static override readonly type: string = \"pb.elasticsearch.index-page-data\";\n private readonly callable: ApplyPageDataCallable<TPage, TData>;\n\n public constructor(callable: ApplyPageDataCallable<TPage, TData>) {\n super();\n this.callable = callable;\n }\n\n public apply(params: ApplyPageDataParams<TPage, TData>): void {\n if (typeof this.callable !== \"function\") {\n return;\n }\n this.callable(params);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAcO,MAAMC,mBAAmB,SAGtBC,eAAM,CAAC;EACb,OAAgCC,IAAI,GAAW,kCAAkC;EAG1EC,WAAWA,CAACC,QAA6C,EAAE;IAC9D,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EAEOC,KAAKA,CAACC,MAAyC,EAAQ;IAC1D,IAAI,OAAO,IAAI,CAACF,QAAQ,KAAK,UAAU,EAAE;MACrC;IACJ;IACA,IAAI,CAACA,QAAQ,CAACE,MAAM,CAAC;EACzB;AACJ;AAACC,OAAA,CAAAP,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_FieldPlugin","require","MenuDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["MenuDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class MenuDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.field.menu\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,8BAA8B,SAASC,wBAAW,CAAC;EAC5D,OAAgCC,IAAI,GAAW,oCAAoC;AACvF;AAACC,OAAA,CAAAH,8BAAA,GAAAA,8BAAA"}
1
+ {"version":3,"names":["_FieldPlugin","require","MenuDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["MenuDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class MenuDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.field.menu\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,8BAA8B,SAASC,wBAAW,CAAC;EAC5D,OAAgCC,IAAI,GAAW,oCAAoC;AACvF;AAACC,OAAA,CAAAH,8BAAA,GAAAA,8BAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_FieldPlugin","require","PageBlockDynamoDbFieldPlugin","FieldPlugin","type","exports"],"sources":["PageBlockDynamoDbFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class PageBlockDynamoDbFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.field.pageBlock\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,4BAA4B,SAASC,wBAAW,CAAC;EAC1D,OAAgCC,IAAI,GAAW,sCAAsC;AACzF;AAACC,OAAA,CAAAH,4BAAA,GAAAA,4BAAA"}
1
+ {"version":3,"names":["_FieldPlugin","require","PageBlockDynamoDbFieldPlugin","FieldPlugin","type","exports"],"sources":["PageBlockDynamoDbFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class PageBlockDynamoDbFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.field.pageBlock\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,4BAA4B,SAASC,wBAAW,CAAC;EAC1D,OAAgCC,IAAI,GAAW,sCAAsC;AACzF;AAACC,OAAA,CAAAH,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_FieldPlugin","require","PageDynamoDbElasticsearchFieldPlugin","FieldPlugin","type","exports"],"sources":["PageDynamoDbElasticsearchFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class PageDynamoDbElasticsearchFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.page.field\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,oCAAoC,SAASC,wBAAW,CAAC;EAClE,OAAgCC,IAAI,GAAW,oCAAoC;AACvF;AAACC,OAAA,CAAAH,oCAAA,GAAAA,oCAAA"}
1
+ {"version":3,"names":["_FieldPlugin","require","PageDynamoDbElasticsearchFieldPlugin","FieldPlugin","type","exports"],"sources":["PageDynamoDbElasticsearchFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class PageDynamoDbElasticsearchFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.page.field\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,oCAAoC,SAASC,wBAAW,CAAC;EAClE,OAAgCC,IAAI,GAAW,oCAAoC;AACvF;AAACC,OAAA,CAAAH,oCAAA,GAAAA,oCAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchBodyModifierPlugin","ElasticsearchBodyModifierPlugin","type","exports"],"sources":["PageElasticsearchBodyModifierPlugin.ts"],"sourcesContent":["import {\n ElasticsearchBodyModifierPlugin,\n ModifyBodyParams as BaseModifyBodyParams\n} from \"@webiny/api-elasticsearch\";\n\nexport interface ModifyBodyParams extends BaseModifyBodyParams {\n where: Record<string, any>;\n}\n\nexport class PageElasticsearchBodyModifierPlugin extends ElasticsearchBodyModifierPlugin<ModifyBodyParams> {\n public static override readonly type: string = \"pageBuilder.elasticsearch.modifier.body.page\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AASO,MAAMC,mCAAmC,SAASC,iDAA+B,CAAmB;EACvG,OAAgCC,IAAI,GAAW,8CAA8C;AACjG;AAACC,OAAA,CAAAH,mCAAA,GAAAA,mCAAA"}
1
+ {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchBodyModifierPlugin","ElasticsearchBodyModifierPlugin","type","exports"],"sources":["PageElasticsearchBodyModifierPlugin.ts"],"sourcesContent":["import {\n ElasticsearchBodyModifierPlugin,\n ModifyBodyParams as BaseModifyBodyParams\n} from \"@webiny/api-elasticsearch\";\n\nexport interface ModifyBodyParams extends BaseModifyBodyParams {\n where: Record<string, any>;\n}\n\nexport class PageElasticsearchBodyModifierPlugin extends ElasticsearchBodyModifierPlugin<ModifyBodyParams> {\n public static override readonly type: string = \"pageBuilder.elasticsearch.modifier.body.page\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AASO,MAAMC,mCAAmC,SAASC,iDAA+B,CAAmB;EACvG,OAAgCC,IAAI,GAAW,8CAA8C;AACjG;AAACC,OAAA,CAAAH,mCAAA,GAAAA,mCAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchFieldPlugin","ElasticsearchFieldPlugin","type","exports"],"sources":["PageElasticsearchFieldPlugin.ts"],"sourcesContent":["import { ElasticsearchFieldPlugin } from \"@webiny/api-elasticsearch\";\n\nexport class PageElasticsearchFieldPlugin extends ElasticsearchFieldPlugin {\n public static override readonly type: string = \"pageBuilder.elasticsearch.fieldDefinition.page\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEO,MAAMC,4BAA4B,SAASC,0CAAwB,CAAC;EACvE,OAAgCC,IAAI,GAAW,gDAAgD;AACnG;AAACC,OAAA,CAAAH,4BAAA,GAAAA,4BAAA"}
1
+ {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchFieldPlugin","ElasticsearchFieldPlugin","type","exports"],"sources":["PageElasticsearchFieldPlugin.ts"],"sourcesContent":["import { ElasticsearchFieldPlugin } from \"@webiny/api-elasticsearch\";\n\nexport class PageElasticsearchFieldPlugin extends ElasticsearchFieldPlugin {\n public static override readonly type: string = \"pageBuilder.elasticsearch.fieldDefinition.page\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEO,MAAMC,4BAA4B,SAASC,0CAAwB,CAAC;EACvE,OAAgCC,IAAI,GAAW,gDAAgD;AACnG;AAACC,OAAA,CAAAH,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchIndexPlugin","ElasticsearchIndexPlugin","type","exports"],"sources":["PageElasticsearchIndexPlugin.ts"],"sourcesContent":["import { ElasticsearchIndexPlugin } from \"@webiny/api-elasticsearch\";\n\nexport class PageElasticsearchIndexPlugin extends ElasticsearchIndexPlugin {\n public static override readonly type: string = \"pageBuilder.page.elasticsearch.index\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEO,MAAMC,4BAA4B,SAASC,0CAAwB,CAAC;EACvE,OAAgCC,IAAI,GAAW,sCAAsC;AACzF;AAACC,OAAA,CAAAH,4BAAA,GAAAA,4BAAA"}
1
+ {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchIndexPlugin","ElasticsearchIndexPlugin","type","exports"],"sources":["PageElasticsearchIndexPlugin.ts"],"sourcesContent":["import { ElasticsearchIndexPlugin } from \"@webiny/api-elasticsearch\";\n\nexport class PageElasticsearchIndexPlugin extends ElasticsearchIndexPlugin {\n public static override readonly type: string = \"pageBuilder.page.elasticsearch.index\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEO,MAAMC,4BAA4B,SAASC,0CAAwB,CAAC;EACvE,OAAgCC,IAAI,GAAW,sCAAsC;AACzF;AAACC,OAAA,CAAAH,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchQueryModifierPlugin","ElasticsearchQueryModifierPlugin","type","exports"],"sources":["PageElasticsearchQueryModifierPlugin.ts"],"sourcesContent":["import {\n ElasticsearchQueryModifierPlugin,\n ModifyQueryParams as BaseModifyQueryParams\n} from \"@webiny/api-elasticsearch\";\nimport { SortType } from \"@webiny/api-elasticsearch/types\";\n\nexport interface ModifyQueryParams extends BaseModifyQueryParams {\n limit: number;\n sort: SortType;\n}\n\nexport class PageElasticsearchQueryModifierPlugin extends ElasticsearchQueryModifierPlugin<ModifyQueryParams> {\n public static override readonly type: string = \"pageBuilder.elasticsearch.modifier.query.page\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAWO,MAAMC,oCAAoC,SAASC,kDAAgC,CAAoB;EAC1G,OAAgCC,IAAI,GAAW,+CAA+C;AAClG;AAACC,OAAA,CAAAH,oCAAA,GAAAA,oCAAA"}
1
+ {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchQueryModifierPlugin","ElasticsearchQueryModifierPlugin","type","exports"],"sources":["PageElasticsearchQueryModifierPlugin.ts"],"sourcesContent":["import {\n ElasticsearchQueryModifierPlugin,\n ModifyQueryParams as BaseModifyQueryParams\n} from \"@webiny/api-elasticsearch\";\nimport { SortType } from \"@webiny/api-elasticsearch/types\";\n\nexport interface ModifyQueryParams extends BaseModifyQueryParams {\n limit: number;\n sort: SortType;\n}\n\nexport class PageElasticsearchQueryModifierPlugin extends ElasticsearchQueryModifierPlugin<ModifyQueryParams> {\n public static override readonly type: string = \"pageBuilder.elasticsearch.modifier.query.page\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAWO,MAAMC,oCAAoC,SAASC,kDAAgC,CAAoB;EAC1G,OAAgCC,IAAI,GAAW,+CAA+C;AAClG;AAACC,OAAA,CAAAH,oCAAA,GAAAA,oCAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchSortModifierPlugin","ElasticsearchSortModifierPlugin","type","exports"],"sources":["PageElasticsearchSortModifierPlugin.ts"],"sourcesContent":["import {\n ElasticsearchSortModifierPlugin,\n ModifySortParams as BaseModifySortParams\n} from \"@webiny/api-elasticsearch\";\n\nexport interface ModifySortParams extends BaseModifySortParams {\n where: Record<string, any>;\n}\n\nexport class PageElasticsearchSortModifierPlugin extends ElasticsearchSortModifierPlugin<ModifySortParams> {\n public static override readonly type: string = \"pageBuilder.elasticsearch.modifier.sort.page\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AASO,MAAMC,mCAAmC,SAASC,iDAA+B,CAAmB;EACvG,OAAgCC,IAAI,GAAW,8CAA8C;AACjG;AAACC,OAAA,CAAAH,mCAAA,GAAAA,mCAAA"}
1
+ {"version":3,"names":["_apiElasticsearch","require","PageElasticsearchSortModifierPlugin","ElasticsearchSortModifierPlugin","type","exports"],"sources":["PageElasticsearchSortModifierPlugin.ts"],"sourcesContent":["import {\n ElasticsearchSortModifierPlugin,\n ModifySortParams as BaseModifySortParams\n} from \"@webiny/api-elasticsearch\";\n\nexport interface ModifySortParams extends BaseModifySortParams {\n where: Record<string, any>;\n}\n\nexport class PageElasticsearchSortModifierPlugin extends ElasticsearchSortModifierPlugin<ModifySortParams> {\n public static override readonly type: string = \"pageBuilder.elasticsearch.modifier.sort.page\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AASO,MAAMC,mCAAmC,SAASC,iDAA+B,CAAmB;EACvG,OAAgCC,IAAI,GAAW,8CAA8C;AACjG;AAACC,OAAA,CAAAH,mCAAA,GAAAA,mCAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_FieldPlugin","require","PageElementDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["PageElementDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class PageElementDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.field.pageElement\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,qCAAqC,SAASC,wBAAW,CAAC;EACnE,OAAgCC,IAAI,GAAW,2CAA2C;AAC9F;AAACC,OAAA,CAAAH,qCAAA,GAAAA,qCAAA"}
1
+ {"version":3,"names":["_FieldPlugin","require","PageElementDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["PageElementDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class PageElementDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.es.field.pageElement\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,qCAAqC,SAASC,wBAAW,CAAC;EACnE,OAAgCC,IAAI,GAAW,2CAA2C;AAC9F;AAACC,OAAA,CAAAH,qCAAA,GAAAA,qCAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_FieldPlugin","require","PageTemplateDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["PageTemplateDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class PageTemplateDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.field.pageTemplate\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,sCAAsC,SAASC,wBAAW,CAAC;EACpE,OAAgCC,IAAI,GAAW,yCAAyC;AAC5F;AAACC,OAAA,CAAAH,sCAAA,GAAAA,sCAAA"}
1
+ {"version":3,"names":["_FieldPlugin","require","PageTemplateDynamoDbElasticFieldPlugin","FieldPlugin","type","exports"],"sources":["PageTemplateDynamoDbElasticFieldPlugin.ts"],"sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class PageTemplateDynamoDbElasticFieldPlugin extends FieldPlugin {\n public static override readonly type: string = \"pageBuilder.dynamodb.field.pageTemplate\";\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,sCAAsC,SAASC,wBAAW,CAAC;EACpE,OAAgCC,IAAI,GAAW,yCAAyC;AAC5F;AAACC,OAAA,CAAAH,sCAAA,GAAAA,sCAAA","ignoreList":[]}