@webiny/api-website-builder 6.0.0-alpha.0

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 (180) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -0
  3. package/WebsiteBuilderContextSetup.d.ts +12 -0
  4. package/WebsiteBuilderContextSetup.js +91 -0
  5. package/WebsiteBuilderContextSetup.js.map +1 -0
  6. package/constants.d.ts +3 -0
  7. package/constants.js +11 -0
  8. package/constants.js.map +1 -0
  9. package/createWebsiteBuilder.d.ts +2 -0
  10. package/createWebsiteBuilder.js +16 -0
  11. package/createWebsiteBuilder.js.map +1 -0
  12. package/createWebsiteBuilderGraphQL.d.ts +4 -0
  13. package/createWebsiteBuilderGraphQL.js +124 -0
  14. package/createWebsiteBuilderGraphQL.js.map +1 -0
  15. package/index.d.ts +3 -0
  16. package/index.js +23 -0
  17. package/index.js.map +1 -0
  18. package/package.json +54 -0
  19. package/page/CmsPagesStorage.d.ts +23 -0
  20. package/page/CmsPagesStorage.js +106 -0
  21. package/page/CmsPagesStorage.js.map +1 -0
  22. package/page/page.crud.d.ts +3 -0
  23. package/page/page.crud.js +208 -0
  24. package/page/page.crud.js.map +1 -0
  25. package/page/page.gql.d.ts +10 -0
  26. package/page/page.gql.js +380 -0
  27. package/page/page.gql.js.map +1 -0
  28. package/page/page.model.d.ts +3 -0
  29. package/page/page.model.js +50 -0
  30. package/page/page.model.js.map +1 -0
  31. package/page/page.modelModifier.d.ts +23 -0
  32. package/page/page.modelModifier.js +56 -0
  33. package/page/page.modelModifier.js.map +1 -0
  34. package/page/page.types.d.ts +307 -0
  35. package/page/page.types.js +7 -0
  36. package/page/page.types.js.map +1 -0
  37. package/page/useCases/CreatePage/CreatePage.d.ts +7 -0
  38. package/page/useCases/CreatePage/CreatePage.js +19 -0
  39. package/page/useCases/CreatePage/CreatePage.js.map +1 -0
  40. package/page/useCases/CreatePage/CreatePageWithEvents.d.ts +9 -0
  41. package/page/useCases/CreatePage/CreatePageWithEvents.js +25 -0
  42. package/page/useCases/CreatePage/CreatePageWithEvents.js.map +1 -0
  43. package/page/useCases/CreatePage/ICreatePage.d.ts +4 -0
  44. package/page/useCases/CreatePage/ICreatePage.js +7 -0
  45. package/page/useCases/CreatePage/ICreatePage.js.map +1 -0
  46. package/page/useCases/CreatePage/index.d.ts +15 -0
  47. package/page/useCases/CreatePage/index.js +18 -0
  48. package/page/useCases/CreatePage/index.js.map +1 -0
  49. package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFrom.d.ts +7 -0
  50. package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFrom.js +17 -0
  51. package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFrom.js.map +1 -0
  52. package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.d.ts +10 -0
  53. package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.js +32 -0
  54. package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.js.map +1 -0
  55. package/page/useCases/CreatePageRevisionFrom/ICreatePageRevisionFrom.d.ts +4 -0
  56. package/page/useCases/CreatePageRevisionFrom/ICreatePageRevisionFrom.js +7 -0
  57. package/page/useCases/CreatePageRevisionFrom/ICreatePageRevisionFrom.js.map +1 -0
  58. package/page/useCases/CreatePageRevisionFrom/index.d.ts +16 -0
  59. package/page/useCases/CreatePageRevisionFrom/index.js +18 -0
  60. package/page/useCases/CreatePageRevisionFrom/index.js.map +1 -0
  61. package/page/useCases/DeletePage/DeletePage.d.ts +7 -0
  62. package/page/useCases/DeletePage/DeletePage.js +17 -0
  63. package/page/useCases/DeletePage/DeletePage.js.map +1 -0
  64. package/page/useCases/DeletePage/DeletePageWithEvents.d.ts +10 -0
  65. package/page/useCases/DeletePage/DeletePageWithEvents.js +30 -0
  66. package/page/useCases/DeletePage/DeletePageWithEvents.js.map +1 -0
  67. package/page/useCases/DeletePage/IDeletePage.d.ts +4 -0
  68. package/page/useCases/DeletePage/IDeletePage.js +7 -0
  69. package/page/useCases/DeletePage/IDeletePage.js.map +1 -0
  70. package/page/useCases/DeletePage/index.d.ts +16 -0
  71. package/page/useCases/DeletePage/index.js +18 -0
  72. package/page/useCases/DeletePage/index.js.map +1 -0
  73. package/page/useCases/DuplicatePage/DuplicatePage.d.ts +9 -0
  74. package/page/useCases/DuplicatePage/DuplicatePage.js +43 -0
  75. package/page/useCases/DuplicatePage/DuplicatePage.js.map +1 -0
  76. package/page/useCases/DuplicatePage/DuplicatePageWithEvents.d.ts +10 -0
  77. package/page/useCases/DuplicatePage/DuplicatePageWithEvents.js +36 -0
  78. package/page/useCases/DuplicatePage/DuplicatePageWithEvents.js.map +1 -0
  79. package/page/useCases/DuplicatePage/IDuplicatePage.d.ts +4 -0
  80. package/page/useCases/DuplicatePage/IDuplicatePage.js +7 -0
  81. package/page/useCases/DuplicatePage/IDuplicatePage.js.map +1 -0
  82. package/page/useCases/DuplicatePage/index.d.ts +16 -0
  83. package/page/useCases/DuplicatePage/index.js +18 -0
  84. package/page/useCases/DuplicatePage/index.js.map +1 -0
  85. package/page/useCases/GetPageById/GetPageById.d.ts +7 -0
  86. package/page/useCases/GetPageById/GetPageById.js +17 -0
  87. package/page/useCases/GetPageById/GetPageById.js.map +1 -0
  88. package/page/useCases/GetPageById/IGetPageById.d.ts +4 -0
  89. package/page/useCases/GetPageById/IGetPageById.js +7 -0
  90. package/page/useCases/GetPageById/IGetPageById.js.map +1 -0
  91. package/page/useCases/GetPageById/index.d.ts +9 -0
  92. package/page/useCases/GetPageById/index.js +16 -0
  93. package/page/useCases/GetPageById/index.js.map +1 -0
  94. package/page/useCases/GetPageByPath/GetPageByPath.d.ts +11 -0
  95. package/page/useCases/GetPageByPath/GetPageByPath.js +28 -0
  96. package/page/useCases/GetPageByPath/GetPageByPath.js.map +1 -0
  97. package/page/useCases/GetPageByPath/IGetPageByPath.d.ts +4 -0
  98. package/page/useCases/GetPageByPath/IGetPageByPath.js +7 -0
  99. package/page/useCases/GetPageByPath/IGetPageByPath.js.map +1 -0
  100. package/page/useCases/GetPageByPath/index.d.ts +9 -0
  101. package/page/useCases/GetPageByPath/index.js +16 -0
  102. package/page/useCases/GetPageByPath/index.js.map +1 -0
  103. package/page/useCases/GetPageRevisions/GetPageRevisions.d.ts +7 -0
  104. package/page/useCases/GetPageRevisions/GetPageRevisions.js +17 -0
  105. package/page/useCases/GetPageRevisions/GetPageRevisions.js.map +1 -0
  106. package/page/useCases/GetPageRevisions/IGetPageById.d.ts +4 -0
  107. package/page/useCases/GetPageRevisions/IGetPageById.js +7 -0
  108. package/page/useCases/GetPageRevisions/IGetPageById.js.map +1 -0
  109. package/page/useCases/GetPageRevisions/index.d.ts +9 -0
  110. package/page/useCases/GetPageRevisions/index.js +16 -0
  111. package/page/useCases/GetPageRevisions/index.js.map +1 -0
  112. package/page/useCases/ListPages/IListPages.d.ts +5 -0
  113. package/page/useCases/ListPages/IListPages.js +7 -0
  114. package/page/useCases/ListPages/IListPages.js.map +1 -0
  115. package/page/useCases/ListPages/ListPages.d.ts +8 -0
  116. package/page/useCases/ListPages/ListPages.js +17 -0
  117. package/page/useCases/ListPages/ListPages.js.map +1 -0
  118. package/page/useCases/ListPages/index.d.ts +9 -0
  119. package/page/useCases/ListPages/index.js +16 -0
  120. package/page/useCases/ListPages/index.js.map +1 -0
  121. package/page/useCases/MovePage/IMovePage.d.ts +4 -0
  122. package/page/useCases/MovePage/IMovePage.js +7 -0
  123. package/page/useCases/MovePage/IMovePage.js.map +1 -0
  124. package/page/useCases/MovePage/MovePage.d.ts +7 -0
  125. package/page/useCases/MovePage/MovePage.js +17 -0
  126. package/page/useCases/MovePage/MovePage.js.map +1 -0
  127. package/page/useCases/MovePage/MovePageWithEvents.d.ts +10 -0
  128. package/page/useCases/MovePage/MovePageWithEvents.js +36 -0
  129. package/page/useCases/MovePage/MovePageWithEvents.js.map +1 -0
  130. package/page/useCases/MovePage/index.d.ts +16 -0
  131. package/page/useCases/MovePage/index.js +18 -0
  132. package/page/useCases/MovePage/index.js.map +1 -0
  133. package/page/useCases/PublishPage/IPublishPage.d.ts +4 -0
  134. package/page/useCases/PublishPage/IPublishPage.js +7 -0
  135. package/page/useCases/PublishPage/IPublishPage.js.map +1 -0
  136. package/page/useCases/PublishPage/PublishPage.d.ts +7 -0
  137. package/page/useCases/PublishPage/PublishPage.js +17 -0
  138. package/page/useCases/PublishPage/PublishPage.js.map +1 -0
  139. package/page/useCases/PublishPage/PublishPageWithEvents.d.ts +10 -0
  140. package/page/useCases/PublishPage/PublishPageWithEvents.js +31 -0
  141. package/page/useCases/PublishPage/PublishPageWithEvents.js.map +1 -0
  142. package/page/useCases/PublishPage/index.d.ts +16 -0
  143. package/page/useCases/PublishPage/index.js +18 -0
  144. package/page/useCases/PublishPage/index.js.map +1 -0
  145. package/page/useCases/UnpublishPage/IUnpublishPage.d.ts +4 -0
  146. package/page/useCases/UnpublishPage/IUnpublishPage.js +7 -0
  147. package/page/useCases/UnpublishPage/IUnpublishPage.js.map +1 -0
  148. package/page/useCases/UnpublishPage/UnpublishPage.d.ts +7 -0
  149. package/page/useCases/UnpublishPage/UnpublishPage.js +17 -0
  150. package/page/useCases/UnpublishPage/UnpublishPage.js.map +1 -0
  151. package/page/useCases/UnpublishPage/UnpublishPageWithEvents.d.ts +10 -0
  152. package/page/useCases/UnpublishPage/UnpublishPageWithEvents.js +31 -0
  153. package/page/useCases/UnpublishPage/UnpublishPageWithEvents.js.map +1 -0
  154. package/page/useCases/UnpublishPage/index.d.ts +16 -0
  155. package/page/useCases/UnpublishPage/index.js +18 -0
  156. package/page/useCases/UnpublishPage/index.js.map +1 -0
  157. package/page/useCases/UpdatePage/IUpdatePage.d.ts +4 -0
  158. package/page/useCases/UpdatePage/IUpdatePage.js +7 -0
  159. package/page/useCases/UpdatePage/IUpdatePage.js.map +1 -0
  160. package/page/useCases/UpdatePage/UpdatePage.d.ts +7 -0
  161. package/page/useCases/UpdatePage/UpdatePage.js +20 -0
  162. package/page/useCases/UpdatePage/UpdatePage.js.map +1 -0
  163. package/page/useCases/UpdatePage/UpdatePageWithEvents.d.ts +10 -0
  164. package/page/useCases/UpdatePage/UpdatePageWithEvents.js +40 -0
  165. package/page/useCases/UpdatePage/UpdatePageWithEvents.js.map +1 -0
  166. package/page/useCases/UpdatePage/index.d.ts +16 -0
  167. package/page/useCases/UpdatePage/index.js +18 -0
  168. package/page/useCases/UpdatePage/index.js.map +1 -0
  169. package/page/useCases/index.d.ts +9 -0
  170. package/page/useCases/index.js +106 -0
  171. package/page/useCases/index.js.map +1 -0
  172. package/types.d.ts +33 -0
  173. package/types.js +7 -0
  174. package/types.js.map +1 -0
  175. package/utils/ensureAuthentication.d.ts +2 -0
  176. package/utils/ensureAuthentication.js +16 -0
  177. package/utils/ensureAuthentication.js.map +1 -0
  178. package/utils/resolve.d.ts +3 -0
  179. package/utils/resolve.js +26 -0
  180. package/utils/resolve.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_renderFields","require","_renderInputFields","_renderListFilterFields","_renderSortEnum","_apiAdminSettings","_handlerGraphql","_ensureAuthentication","_resolve","_page","_constants","_constants2","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createPageTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","listFilterFieldsRender","renderListFilterFields","onByMetaGqlFields","ENTRY_META_FIELDS","map","fieldType","isDateTimeEntryMetaField","join","sortEnumRender","renderSortEnum","f","typeDefs","exports","createPagesSchema","pageGraphQL","GraphQLSchemaPlugin","resolvers","WbQuery","getPageModel","_","__","context","resolve","ensureAuthentication","cms","getModel","PAGE_MODEL_ID","getPageByPath","path","page","websiteBuilder","getByPath","NotFoundError","id","properties","bindings","elements","getPageById","getById","getPageRevisions","pageId","revisions","version","title","status","locked","savedOn","listPages","args","entries","meta","list","ListResponse","e","ErrorResponse","getSettings","GetSettings","create","settings","execute","WEBSITE_BUILDER_SETTINGS","data","getData","Response","previewDomain","getIntegrations","WEBSITE_BUILDER_INTEGRATIONS","WbMutation","createPage","updatePage","update","duplicatePage","duplicate","publishPage","publish","unpublishPage","unpublish","movePage","folderId","move","createPageRevisionFrom","createRevisionFrom","deletePage","delete","updateSettings","saveSettings","SaveSettings","updateIntegrations"],"sources":["page.gql.ts"],"sourcesContent":["import { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum\";\nimport { GetSettings, SaveSettings } from \"@webiny/api-admin-settings\";\nimport {\n ErrorResponse,\n GraphQLSchemaPlugin,\n ListResponse,\n NotFoundError,\n Response\n} from \"@webiny/handler-graphql\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\nimport { PAGE_MODEL_ID } from \"~/page/page.model\";\nimport type { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport type { WebsiteBuilderContext } from \"~/types\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"@webiny/api-headless-cms/constants\";\nimport { WEBSITE_BUILDER_INTEGRATIONS, WEBSITE_BUILDER_SETTINGS } from \"~/constants\";\n\nexport interface CreatePageTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createPageTypeDefs = (params: CreatePageTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const onByMetaGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"WbIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n\n type WbPage {\n id: ID!\n pageId: String!\n wbyAco_location: WbLocation\n status: String!\n version: Number!\n locked: Boolean!\n ${onByMetaGqlFields}\n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n\n input WbPageCreateInput {\n wbyAco_location: WbLocationInput\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input WbPageUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input WbPagesListWhereInput {\n wbyAco_location: WbLocationWhereInput\n latest: Boolean\n published: Boolean\n ${listFilterFieldsRender}\n AND: [WbPagesListWhereInput!]\n OR: [WbPagesListWhereInput!]\n }\n\n type WbSettings {\n previewDomain: String!\n }\n\n type WbPageResponse {\n data: WbPage\n error: WbError\n }\n\n type WbSettingsResponse {\n data: WbSettings\n error: WbError\n }\n\n type WbIntegrationsResponse {\n data: JSON!\n error: WbError\n }\n\n input WbSettingsInput {\n previewDomain: String!\n }\n \n type WbPagesListResponse {\n data: [WbPage]\n error: WbError\n meta: WbMeta\n }\n\n type WbPageModelResponse {\n data: JSON\n error: WbError\n }\n \n enum WbPageListSorter {\n ${sortEnumRender}\n }\n \n type WbPageRevision {\n id: ID!\n pageId: ID!\n version: Int!\n title: String!\n status: String!\n locked: Boolean!\n savedOn: DateTime!\n }\n \n type WbPageRevisionsResponse {\n data: [WbPageRevision!]\n error: WbError\n }\n\n extend type WbQuery {\n getPageModel: WbPageModelResponse\n getPageByPath(path: String!): WbPageResponse\n getPageById(id: ID!): WbPageResponse\n getPageRevisions(pageId: ID!): WbPageRevisionsResponse\n listPages(\n where: WbPagesListWhereInput\n limit: Int\n after: String\n sort: [WbPageListSorter]\n search: String\n ): WbPagesListResponse\n getSettings: WbSettingsResponse\n getIntegrations: WbIntegrationsResponse\n }\n\n extend type WbMutation {\n createPage(data: WbPageCreateInput!): WbPageResponse\n updatePage(id: ID!, data: WbPageUpdateInput!): WbPageResponse\n publishPage(id: ID!): WbPageResponse\n unpublishPage(id: ID!): WbPageResponse\n duplicatePage(id: ID!): WbPageResponse\n movePage(id: ID!, folderId: ID!): WbBooleanResponse\n createPageRevisionFrom(id: ID!): WbPageResponse\n deletePage(id: ID!): WbBooleanResponse\n updateSettings(data: WbSettingsInput!): BooleanResponse\n updateIntegrations(data: JSON!): BooleanResponse\n }\n `;\n};\n\nexport const createPagesSchema = (params: CreatePageTypeDefsParams) => {\n const pageGraphQL = new GraphQLSchemaPlugin<WebsiteBuilderContext>({\n typeDefs: createPageTypeDefs(params),\n resolvers: {\n WbQuery: {\n getPageModel: async (_, __, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.cms.getModel(PAGE_MODEL_ID);\n });\n },\n getPageByPath: async (_, { path }, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n\n const page = await context.websiteBuilder.page.getByPath(path);\n\n if (!page) {\n throw new NotFoundError(`Page ${path} was not found!`);\n }\n\n return {\n id: page.id,\n properties: page.properties,\n bindings: page.bindings,\n elements: page.elements\n };\n });\n },\n getPageById: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.websiteBuilder.page.getById(id);\n });\n },\n getPageRevisions: async (_, { pageId }, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n const revisions = await context.websiteBuilder.page.getPageRevisions(\n pageId\n );\n\n return revisions.map(page => {\n return {\n id: page.id,\n pageId: page.pageId,\n version: page.version,\n title: page.properties.title,\n status: page.status,\n locked: page.locked,\n savedOn: page.savedOn\n };\n });\n });\n },\n listPages: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await context.websiteBuilder.page.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n getSettings: async (_, args, context) => {\n ensureAuthentication(context);\n const getSettings = GetSettings.create(context);\n const settings = await getSettings.execute(WEBSITE_BUILDER_SETTINGS);\n const data = settings.getData();\n\n return new Response({\n previewDomain: data.previewDomain ?? \"\"\n });\n },\n getIntegrations: async (_, args, context) => {\n ensureAuthentication(context);\n const getSettings = GetSettings.create(context);\n const settings = await getSettings.execute(WEBSITE_BUILDER_INTEGRATIONS);\n return new Response(settings.getData());\n }\n },\n WbMutation: {\n createPage: async (_, { data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.websiteBuilder.page.create(data);\n });\n },\n updatePage: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.websiteBuilder.page.update(id, data);\n });\n },\n duplicatePage: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.websiteBuilder.page.duplicate({ id });\n });\n },\n publishPage: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.websiteBuilder.page.publish({ id });\n });\n },\n unpublishPage: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.websiteBuilder.page.unpublish({ id });\n });\n },\n movePage: async (_, { id, folderId }, context) => {\n ensureAuthentication(context);\n await context.websiteBuilder.page.move({ id, folderId });\n return new Response(true);\n },\n createPageRevisionFrom: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.websiteBuilder.page.createRevisionFrom({ id });\n });\n },\n deletePage: async (_, { id }, context) => {\n ensureAuthentication(context);\n await context.websiteBuilder.page.delete({ id });\n return new Response(true);\n },\n updateSettings: async (_, args, context) => {\n ensureAuthentication(context);\n const saveSettings = SaveSettings.create(context);\n await saveSettings.execute({\n name: WEBSITE_BUILDER_SETTINGS,\n settings: args.data\n });\n return new Response(true);\n },\n updateIntegrations: async (_, args, context) => {\n ensureAuthentication(context);\n const saveSettings = SaveSettings.create(context);\n await saveSettings.execute({\n name: WEBSITE_BUILDER_INTEGRATIONS,\n settings: args.data\n });\n return new Response(true);\n }\n }\n }\n });\n\n pageGraphQL.name = \"wb.graphql.pages\";\n\n return pageGraphQL;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export declare const elementsField: () => import("@webiny/api-headless-cms/types").CmsModelField;
2
+ export declare const PAGE_MODEL_ID = "wbPage";
3
+ export declare const createPageModel: () => import("@webiny/api-headless-cms").CmsPrivateModelFull;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.elementsField = exports.createPageModel = exports.PAGE_MODEL_ID = void 0;
7
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
8
+ const propertiesField = () => (0, _apiHeadlessCms.createModelField)({
9
+ label: "Properties",
10
+ type: "searchable-json"
11
+ });
12
+ const metadataField = () => (0, _apiHeadlessCms.createModelField)({
13
+ label: "Metadata",
14
+ type: "json"
15
+ });
16
+ const bindingsField = () => (0, _apiHeadlessCms.createModelField)({
17
+ label: "Bindings",
18
+ type: "json"
19
+ });
20
+ const elementsField = () => (0, _apiHeadlessCms.createModelField)({
21
+ label: "Elements",
22
+ type: "json"
23
+ });
24
+ exports.elementsField = elementsField;
25
+ const extensionsField = () => (0, _apiHeadlessCms.createModelField)({
26
+ label: "Extensions",
27
+ fieldId: "extensions",
28
+ type: "object",
29
+ settings: {
30
+ layout: [],
31
+ fields: []
32
+ }
33
+ });
34
+ const PAGE_MODEL_ID = exports.PAGE_MODEL_ID = "wbPage";
35
+ const createPageModel = () => {
36
+ const fields = [propertiesField(), metadataField(), bindingsField(), elementsField(), extensionsField()];
37
+ return (0, _apiHeadlessCms.createPrivateModel)({
38
+ name: "Website Builder - Page",
39
+ modelId: PAGE_MODEL_ID,
40
+ titleFieldId: "properties.title",
41
+ authorization: {
42
+ // Disables base permission checks, but leaves FLP checks enabled.
43
+ permissions: false
44
+ },
45
+ fields
46
+ });
47
+ };
48
+ exports.createPageModel = createPageModel;
49
+
50
+ //# sourceMappingURL=page.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_apiHeadlessCms","require","propertiesField","createModelField","label","type","metadataField","bindingsField","elementsField","exports","extensionsField","fieldId","settings","layout","fields","PAGE_MODEL_ID","createPageModel","createPrivateModel","name","modelId","titleFieldId","authorization","permissions"],"sources":["page.model.ts"],"sourcesContent":["import { createPrivateModel, createModelField } from \"@webiny/api-headless-cms\";\n\nconst propertiesField = () =>\n createModelField({\n label: \"Properties\",\n type: \"searchable-json\"\n });\n\nconst metadataField = () =>\n createModelField({\n label: \"Metadata\",\n type: \"json\"\n });\n\nconst bindingsField = () =>\n createModelField({\n label: \"Bindings\",\n type: \"json\"\n });\n\nexport const elementsField = () =>\n createModelField({\n label: \"Elements\",\n type: \"json\"\n });\n\nconst extensionsField = () =>\n createModelField({\n label: \"Extensions\",\n fieldId: \"extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n\nexport const PAGE_MODEL_ID = \"wbPage\";\n\nexport const createPageModel = () => {\n const fields = [\n propertiesField(),\n metadataField(),\n bindingsField(),\n elementsField(),\n extensionsField()\n ];\n\n return createPrivateModel({\n name: \"Website Builder - Page\",\n modelId: PAGE_MODEL_ID,\n titleFieldId: \"properties.title\",\n authorization: {\n // Disables base permission checks, but leaves FLP checks enabled.\n permissions: false\n },\n fields\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAEA,MAAMC,eAAe,GAAGA,CAAA,KACpB,IAAAC,gCAAgB,EAAC;EACbC,KAAK,EAAE,YAAY;EACnBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAMC,aAAa,GAAGA,CAAA,KAClB,IAAAH,gCAAgB,EAAC;EACbC,KAAK,EAAE,UAAU;EACjBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAME,aAAa,GAAGA,CAAA,KAClB,IAAAJ,gCAAgB,EAAC;EACbC,KAAK,EAAE,UAAU;EACjBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEC,MAAMG,aAAa,GAAGA,CAAA,KACzB,IAAAL,gCAAgB,EAAC;EACbC,KAAK,EAAE,UAAU;EACjBC,IAAI,EAAE;AACV,CAAC,CAAC;AAACI,OAAA,CAAAD,aAAA,GAAAA,aAAA;AAEP,MAAME,eAAe,GAAGA,CAAA,KACpB,IAAAP,gCAAgB,EAAC;EACbC,KAAK,EAAE,YAAY;EACnBO,OAAO,EAAE,YAAY;EACrBN,IAAI,EAAE,QAAQ;EACdO,QAAQ,EAAE;IACNC,MAAM,EAAE,EAAE;IACVC,MAAM,EAAE;EACZ;AACJ,CAAC,CAAC;AAEC,MAAMC,aAAa,GAAAN,OAAA,CAAAM,aAAA,GAAG,QAAQ;AAE9B,MAAMC,eAAe,GAAGA,CAAA,KAAM;EACjC,MAAMF,MAAM,GAAG,CACXZ,eAAe,CAAC,CAAC,EACjBI,aAAa,CAAC,CAAC,EACfC,aAAa,CAAC,CAAC,EACfC,aAAa,CAAC,CAAC,EACfE,eAAe,CAAC,CAAC,CACpB;EAED,OAAO,IAAAO,kCAAkB,EAAC;IACtBC,IAAI,EAAE,wBAAwB;IAC9BC,OAAO,EAAEJ,aAAa;IACtBK,YAAY,EAAE,kBAAkB;IAChCC,aAAa,EAAE;MACX;MACAC,WAAW,EAAE;IACjB,CAAC;IACDR;EACJ,CAAC,CAAC;AACN,CAAC;AAACL,OAAA,CAAAO,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
3
+ import type { CmsModelField } from "@webiny/api-headless-cms/types";
4
+ declare class CmsModelFieldsModifier {
5
+ private fields;
6
+ constructor(fields: CmsModelField[]);
7
+ addField(field: CmsModelField): void;
8
+ }
9
+ interface CmsModelModifierCallableParams {
10
+ modifier: CmsModelFieldsModifier;
11
+ }
12
+ interface CmsModelModifierCallable {
13
+ (params: CmsModelModifierCallableParams): Promise<void> | void;
14
+ }
15
+ export declare class CmsModelModifierPlugin extends Plugin {
16
+ static type: string;
17
+ private readonly modelId;
18
+ private readonly cb;
19
+ constructor(modelId: string, cb: CmsModelModifierCallable);
20
+ modifyModel(model: CmsPrivateModelFull): Promise<void>;
21
+ }
22
+ export declare const createPageModelModifier: (cb: CmsModelModifierCallable) => CmsModelModifierPlugin;
23
+ export {};
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createPageModelModifier = exports.CmsModelModifierPlugin = void 0;
7
+ var _plugins = require("@webiny/plugins");
8
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
9
+ var _page = require("./page.model");
10
+ class CmsModelFieldsModifier {
11
+ constructor(fields) {
12
+ this.fields = fields;
13
+ }
14
+ addField(field) {
15
+ this.fields.push({
16
+ ...field,
17
+ storageId: `${field.type}@${field.id}`
18
+ });
19
+ }
20
+ }
21
+ class CmsModelModifierPlugin extends _plugins.Plugin {
22
+ static type = "wb-page.cms-model-modifier";
23
+ constructor(modelId, cb) {
24
+ super();
25
+ this.modelId = modelId;
26
+ this.cb = cb;
27
+ }
28
+ async modifyModel(model) {
29
+ if (model.modelId !== this.modelId) {
30
+ return;
31
+ }
32
+ let extensionsField = model.fields.find(field => field.fieldId === "extensions");
33
+ if (!extensionsField) {
34
+ extensionsField = (0, _apiHeadlessCms.createModelField)({
35
+ label: "Extensions",
36
+ type: "object",
37
+ settings: {
38
+ layout: [],
39
+ fields: []
40
+ }
41
+ });
42
+ model.fields.push(extensionsField);
43
+ }
44
+ const modifier = new CmsModelFieldsModifier(extensionsField.settings.fields);
45
+ await this.cb({
46
+ modifier
47
+ });
48
+ }
49
+ }
50
+ exports.CmsModelModifierPlugin = CmsModelModifierPlugin;
51
+ const createPageModelModifier = cb => {
52
+ return new CmsModelModifierPlugin(_page.PAGE_MODEL_ID, cb);
53
+ };
54
+ exports.createPageModelModifier = createPageModelModifier;
55
+
56
+ //# sourceMappingURL=page.modelModifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_plugins","require","_apiHeadlessCms","_page","CmsModelFieldsModifier","constructor","fields","addField","field","push","storageId","type","id","CmsModelModifierPlugin","Plugin","modelId","cb","modifyModel","model","extensionsField","find","fieldId","createModelField","label","settings","layout","modifier","exports","createPageModelModifier","PAGE_MODEL_ID"],"sources":["page.modelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsPrivateModelFull, createModelField } from \"@webiny/api-headless-cms\";\nimport type { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { PAGE_MODEL_ID } from \"~/page/page.model\";\n\nclass CmsModelFieldsModifier {\n private fields: CmsModelField[];\n\n constructor(fields: CmsModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n this.fields.push({\n ...field,\n storageId: `${field.type}@${field.id}`\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: CmsModelFieldsModifier;\n}\n\ninterface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\nexport class CmsModelModifierPlugin extends Plugin {\n public static override type = \"wb-page.cms-model-modifier\";\n private readonly modelId: string;\n private readonly cb: CmsModelModifierCallable;\n\n constructor(modelId: string, cb: CmsModelModifierCallable) {\n super();\n this.modelId = modelId;\n this.cb = cb;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== this.modelId) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n const modifier = new CmsModelFieldsModifier(extensionsField.settings!.fields!);\n await this.cb({ modifier });\n }\n}\n\nexport const createPageModelModifier = (cb: CmsModelModifierCallable) => {\n return new CmsModelModifierPlugin(PAGE_MODEL_ID, cb);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AAEA,MAAMG,sBAAsB,CAAC;EAGzBC,WAAWA,CAACC,MAAuB,EAAE;IACjC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAC,QAAQA,CAACC,KAAoB,EAAE;IAC3B,IAAI,CAACF,MAAM,CAACG,IAAI,CAAC;MACb,GAAGD,KAAK;MACRE,SAAS,EAAE,GAAGF,KAAK,CAACG,IAAI,IAAIH,KAAK,CAACI,EAAE;IACxC,CAAC,CAAC;EACN;AACJ;AAUO,MAAMC,sBAAsB,SAASC,eAAM,CAAC;EAC/C,OAAuBH,IAAI,GAAG,4BAA4B;EAI1DN,WAAWA,CAACU,OAAe,EAAEC,EAA4B,EAAE;IACvD,KAAK,CAAC,CAAC;IACP,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,EAAE,GAAGA,EAAE;EAChB;EAEA,MAAMC,WAAWA,CAACC,KAA0B,EAAiB;IACzD,IAAIA,KAAK,CAACH,OAAO,KAAK,IAAI,CAACA,OAAO,EAAE;MAChC;IACJ;IAEA,IAAII,eAAe,GAAGD,KAAK,CAACZ,MAAM,CAACc,IAAI,CAACZ,KAAK,IAAIA,KAAK,CAACa,OAAO,KAAK,YAAY,CAAC;IAChF,IAAI,CAACF,eAAe,EAAE;MAClBA,eAAe,GAAG,IAAAG,gCAAgB,EAAC;QAC/BC,KAAK,EAAE,YAAY;QACnBZ,IAAI,EAAE,QAAQ;QACda,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACVnB,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACFY,KAAK,CAACZ,MAAM,CAACG,IAAI,CAACU,eAAe,CAAC;IACtC;IAEA,MAAMO,QAAQ,GAAG,IAAItB,sBAAsB,CAACe,eAAe,CAACK,QAAQ,CAAElB,MAAO,CAAC;IAC9E,MAAM,IAAI,CAACU,EAAE,CAAC;MAAEU;IAAS,CAAC,CAAC;EAC/B;AACJ;AAACC,OAAA,CAAAd,sBAAA,GAAAA,sBAAA;AAEM,MAAMe,uBAAuB,GAAIZ,EAA4B,IAAK;EACrE,OAAO,IAAIH,sBAAsB,CAACgB,mBAAa,EAAEb,EAAE,CAAC;AACxD,CAAC;AAACW,OAAA,CAAAC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -0,0 +1,307 @@
1
+ import type { WbIdentity, WbListMeta, WbLocation } from "../types";
2
+ import { CmsEntryGetParams, CmsEntryListSort, CmsEntryListWhere } from "@webiny/api-headless-cms/types";
3
+ import type { Topic } from "@webiny/pubsub/types";
4
+ export interface WbPage {
5
+ id: string;
6
+ pageId: string;
7
+ wbyAco_location: WbLocation;
8
+ status: string;
9
+ version: number;
10
+ locked: boolean;
11
+ createdOn: string;
12
+ createdBy: WbIdentity;
13
+ savedOn: string;
14
+ savedBy: WbIdentity;
15
+ modifiedOn: string;
16
+ modifiedBy: WbIdentity;
17
+ tenant: string;
18
+ locale: string;
19
+ webinyVersion: string;
20
+ properties: Record<string, any>;
21
+ metadata: Record<string, any>;
22
+ bindings: Record<string, any>;
23
+ elements: Record<string, any>;
24
+ extensions?: Record<string, any>;
25
+ }
26
+ export interface ListWbPagesParams {
27
+ where: CmsEntryListWhere;
28
+ sort: CmsEntryListSort;
29
+ limit: number;
30
+ after: string | null;
31
+ search?: string;
32
+ }
33
+ export interface GetWbPageParams {
34
+ id: string;
35
+ }
36
+ export type CreateWbPageData = Pick<WbPage, "properties" | "metadata" | "bindings" | "elements" | "wbyAco_location" | "extensions">;
37
+ export interface UpdateWbPageData {
38
+ location?: WbLocation;
39
+ properties?: Record<string, any>;
40
+ metadata?: Record<string, any>;
41
+ bindings?: Record<string, any>;
42
+ elements?: Record<string, any>;
43
+ }
44
+ export interface DeleteWbPageParams {
45
+ id: string;
46
+ }
47
+ export interface DuplicateWbPageParams {
48
+ id: string;
49
+ }
50
+ export interface PublishWbPageParams {
51
+ id: string;
52
+ }
53
+ export interface UnpublishWbPageParams {
54
+ id: string;
55
+ }
56
+ export interface MoveWbPageParams {
57
+ id: string;
58
+ folderId: string;
59
+ }
60
+ export interface CreateWbPageRevisionFromParams {
61
+ id: string;
62
+ }
63
+ /**
64
+ * @category StorageOperations
65
+ * @category PagesStorageOperations
66
+ * @category PagesStorageOperationsParams
67
+ */
68
+ export interface WbPagesStorageOperationsGetParams extends CmsEntryGetParams {
69
+ }
70
+ /**
71
+ * @category StorageOperations
72
+ * @category PagesStorageOperations
73
+ * @category PagesStorageOperationsParams
74
+ */
75
+ export interface WbPagesStorageOperationsCreateParams {
76
+ data: CreateWbPageData;
77
+ }
78
+ /**
79
+ * @category StorageOperations
80
+ * @category PagesStorageOperations
81
+ * @category PagesStorageOperationsParams
82
+ */
83
+ export interface WbPagesStorageOperationsUpdateParams {
84
+ id: string;
85
+ data: UpdateWbPageData;
86
+ }
87
+ /**
88
+ * @category StorageOperations
89
+ * @category PagesStorageOperations
90
+ * @category PagesStorageOperationsParams
91
+ */
92
+ export type WbPagesStorageOperationsPublishParams = PublishWbPageParams;
93
+ /**
94
+ * @category StorageOperations
95
+ * @category PagesStorageOperations
96
+ * @category PagesStorageOperationsParams
97
+ */
98
+ export type WbPagesStorageOperationsUnpublishParams = UnpublishWbPageParams;
99
+ /**
100
+ * @category StorageOperations
101
+ * @category PagesStorageOperations
102
+ * @category PagesStorageOperationsParams
103
+ */
104
+ export type WbPagesStorageOperationsMoveParams = MoveWbPageParams;
105
+ /**
106
+ * @category StorageOperations
107
+ * @category PagesStorageOperations
108
+ * @category PagesStorageOperationsParams
109
+ */
110
+ export type WbPagesStorageOperationsCreateRevisionFromParams = CreateWbPageRevisionFromParams;
111
+ /**
112
+ * @category StorageOperations
113
+ * @category PagesStorageOperations
114
+ * @category PagesStorageOperationsParams
115
+ */
116
+ export interface WbPagesStorageOperationsDeleteParams {
117
+ id: string;
118
+ }
119
+ /**
120
+ * @category StorageOperations
121
+ * @category PagesStorageOperations
122
+ * @category PagesStorageOperationsParams
123
+ */
124
+ export interface WbPagesStorageOperationsListParams {
125
+ where: CmsEntryListWhere;
126
+ sort: CmsEntryListSort;
127
+ limit: number;
128
+ after: string | null;
129
+ search?: string;
130
+ }
131
+ /**
132
+ * @category StorageOperations
133
+ * @category PagesStorageOperations
134
+ * @category PagesStorageOperationsResponse
135
+ */
136
+ export type WbPagesStorageOperationsListResponse = [WbPage[], WbListMeta];
137
+ export interface OnWebsiteBuilderPageBeforeCreateTopicParams {
138
+ input: CreateWbPageData;
139
+ }
140
+ export interface OnWebsiteBuilderPageAfterCreateTopicParams {
141
+ page: WbPage;
142
+ }
143
+ export interface OnWebsiteBuilderPageBeforeUpdateTopicParams {
144
+ original: WbPage;
145
+ input: Record<string, any>;
146
+ }
147
+ export interface OnWebsiteBuilderPageAfterUpdateTopicParams {
148
+ original: WbPage;
149
+ page: WbPage;
150
+ input: Record<string, any>;
151
+ }
152
+ export interface OnWebsiteBuilderPageBeforePublishTopicParams {
153
+ page: WbPage;
154
+ }
155
+ export interface OnWebsiteBuilderPageAfterPublishTopicParams {
156
+ page: WbPage;
157
+ }
158
+ export interface OnWebsiteBuilderPageBeforeUnpublishTopicParams {
159
+ page: WbPage;
160
+ }
161
+ export interface OnWebsiteBuilderPageAfterUnpublishTopicParams {
162
+ page: WbPage;
163
+ }
164
+ export interface OnWebsiteBuilderPageBeforeDuplicateTopicParams {
165
+ original: WbPage;
166
+ }
167
+ export interface OnWebsiteBuilderPageAfterDuplicateTopicParams {
168
+ original: WbPage;
169
+ page: WbPage;
170
+ }
171
+ export interface OnWebsiteBuilderPageBeforeCreateRevisionFromTopicParams {
172
+ original: WbPage;
173
+ }
174
+ export interface OnWebsiteBuilderPageAfterCreateRevisionFromTopicParams {
175
+ original: WbPage;
176
+ page: WbPage;
177
+ }
178
+ export interface OnWebsiteBuilderPageBeforeMoveTopicParams {
179
+ page: WbPage;
180
+ folderId: string;
181
+ }
182
+ export interface OnWebsiteBuilderPageAfterMoveTopicParams {
183
+ page: WbPage;
184
+ folderId: string;
185
+ }
186
+ export interface OnWebsiteBuilderPageBeforeDeleteTopicParams {
187
+ page: WbPage;
188
+ }
189
+ export interface OnWebsiteBuilderPageAfterDeleteTopicParams {
190
+ page: WbPage;
191
+ }
192
+ /**
193
+ * @category StorageOperations
194
+ * @category PagesStorageOperations
195
+ */
196
+ export interface WbPagesStorageOperations {
197
+ /**
198
+ * Get a published page using a filter.
199
+ */
200
+ get: (params: WbPagesStorageOperationsGetParams) => Promise<WbPage | null>;
201
+ /**
202
+ * Get a single page by ID (can be draft or published).
203
+ */
204
+ getById: (id: string) => Promise<WbPage | null>;
205
+ /**
206
+ * Get all revisions for the given page.
207
+ */
208
+ getRevisions: (pageId: string) => Promise<WbPage[]>;
209
+ /**
210
+ * Get a list of pages filtered by given parameters.
211
+ */
212
+ list: (params: WbPagesStorageOperationsListParams) => Promise<WbPagesStorageOperationsListResponse>;
213
+ /**
214
+ * Insert the page data into the database.
215
+ */
216
+ create: (params: WbPagesStorageOperationsCreateParams) => Promise<WbPage>;
217
+ /**
218
+ * Update the page data in the database.
219
+ */
220
+ update: (params: WbPagesStorageOperationsUpdateParams) => Promise<WbPage>;
221
+ /**
222
+ * Publish the page and store the information in the database.
223
+ */
224
+ publish: (params: WbPagesStorageOperationsPublishParams) => Promise<WbPage>;
225
+ /**
226
+ * Unpublish the page and store the information in the database.
227
+ */
228
+ unpublish: (params: WbPagesStorageOperationsUnpublishParams) => Promise<WbPage>;
229
+ /**
230
+ * Move the page into a folder and store the information in the database.
231
+ */
232
+ move: (params: MoveWbPageParams) => Promise<void>;
233
+ /**
234
+ * Create a page revision and store the information in the database.
235
+ */
236
+ createRevisionFrom: (params: CreateWbPageRevisionFromParams) => Promise<WbPage>;
237
+ /**
238
+ * Delete the page from the database.
239
+ */
240
+ delete: (params: WbPagesStorageOperationsDeleteParams) => Promise<void>;
241
+ }
242
+ export interface WbPageCrud {
243
+ /**
244
+ * Get a single page with given ID from the storage.
245
+ */
246
+ getById(id: string): Promise<WbPage | null>;
247
+ /**
248
+ * Get a single published page by given path.
249
+ */
250
+ getByPath(path: string): Promise<WbPage | null>;
251
+ /**
252
+ * Get information about page revisions.
253
+ */
254
+ getPageRevisions(pageID: string): Promise<WbPage[]>;
255
+ /**
256
+ * Get a list of pages filtered by given parameters.
257
+ */
258
+ list(params: ListWbPagesParams): Promise<[WbPage[], WbListMeta]>;
259
+ /**
260
+ * Create a new page in the storage.
261
+ */
262
+ create(data: CreateWbPageData): Promise<WbPage>;
263
+ /**
264
+ * Update an existing page in the storage.
265
+ */
266
+ update(id: string, data: UpdateWbPageData): Promise<WbPage>;
267
+ /**
268
+ * Duplicate a page and store it as a new page in the storage.
269
+ */
270
+ duplicate(params: DuplicateWbPageParams): Promise<WbPage>;
271
+ /**
272
+ * Publish a page.
273
+ */
274
+ publish(params: PublishWbPageParams): Promise<WbPage>;
275
+ /**
276
+ * Unpublish a page.
277
+ */
278
+ unpublish(params: UnpublishWbPageParams): Promise<WbPage>;
279
+ /**
280
+ * Move a page into a folder
281
+ */
282
+ move(params: MoveWbPageParams): Promise<void>;
283
+ /**
284
+ * Create a page revision from an id.
285
+ */
286
+ createRevisionFrom(params: CreateWbPageRevisionFromParams): Promise<WbPage>;
287
+ /**
288
+ * Delete a page from the storage.
289
+ */
290
+ delete(params: DeleteWbPageParams): Promise<void>;
291
+ onWebsiteBuilderPageBeforeCreate: Topic<OnWebsiteBuilderPageBeforeCreateTopicParams>;
292
+ onWebsiteBuilderPageAfterCreate: Topic<OnWebsiteBuilderPageAfterCreateTopicParams>;
293
+ onWebsiteBuilderPageBeforeUpdate: Topic<OnWebsiteBuilderPageBeforeUpdateTopicParams>;
294
+ onWebsiteBuilderPageAfterUpdate: Topic<OnWebsiteBuilderPageAfterUpdateTopicParams>;
295
+ onWebsiteBuilderPageBeforePublish: Topic<OnWebsiteBuilderPageBeforePublishTopicParams>;
296
+ onWebsiteBuilderPageAfterPublish: Topic<OnWebsiteBuilderPageAfterPublishTopicParams>;
297
+ onWebsiteBuilderPageBeforeUnpublish: Topic<OnWebsiteBuilderPageBeforeUnpublishTopicParams>;
298
+ onWebsiteBuilderPageAfterUnpublish: Topic<OnWebsiteBuilderPageAfterUnpublishTopicParams>;
299
+ onWebsiteBuilderPageBeforeDuplicate: Topic<OnWebsiteBuilderPageBeforeDuplicateTopicParams>;
300
+ onWebsiteBuilderPageAfterDuplicate: Topic<OnWebsiteBuilderPageAfterDuplicateTopicParams>;
301
+ onWebsiteBuilderPageBeforeMove: Topic<OnWebsiteBuilderPageBeforeMoveTopicParams>;
302
+ onWebsiteBuilderPageAfterMove: Topic<OnWebsiteBuilderPageAfterMoveTopicParams>;
303
+ onWebsiteBuilderPageBeforeCreateRevisionFrom: Topic<OnWebsiteBuilderPageBeforeCreateRevisionFromTopicParams>;
304
+ onWebsiteBuilderPageAfterCreateRevisionFrom: Topic<OnWebsiteBuilderPageAfterCreateRevisionFromTopicParams>;
305
+ onWebsiteBuilderPageBeforeDelete: Topic<OnWebsiteBuilderPageBeforeDeleteTopicParams>;
306
+ onWebsiteBuilderPageAfterDelete: Topic<OnWebsiteBuilderPageAfterDeleteTopicParams>;
307
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=page.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["page.types.ts"],"sourcesContent":["import type { WbIdentity, WbListMeta, WbLocation } from \"~/types\";\nimport {\n CmsEntryGetParams,\n CmsEntryListSort,\n CmsEntryListWhere\n} from \"@webiny/api-headless-cms/types\";\nimport type { Topic } from \"@webiny/pubsub/types\";\n\nexport interface WbPage {\n id: string;\n pageId: string;\n wbyAco_location: WbLocation;\n status: string;\n version: number;\n locked: boolean;\n createdOn: string;\n createdBy: WbIdentity;\n savedOn: string;\n savedBy: WbIdentity;\n modifiedOn: string;\n modifiedBy: WbIdentity;\n tenant: string;\n locale: string;\n webinyVersion: string;\n\n properties: Record<string, any>;\n metadata: Record<string, any>;\n bindings: Record<string, any>;\n elements: Record<string, any>;\n extensions?: Record<string, any>;\n}\n\nexport interface ListWbPagesParams {\n where: CmsEntryListWhere;\n sort: CmsEntryListSort;\n limit: number;\n after: string | null;\n search?: string;\n}\n\nexport interface GetWbPageParams {\n id: string;\n}\n\nexport type CreateWbPageData = Pick<\n WbPage,\n \"properties\" | \"metadata\" | \"bindings\" | \"elements\" | \"wbyAco_location\" | \"extensions\"\n>;\n\nexport interface UpdateWbPageData {\n location?: WbLocation;\n properties?: Record<string, any>;\n metadata?: Record<string, any>;\n bindings?: Record<string, any>;\n elements?: Record<string, any>;\n}\n\nexport interface DeleteWbPageParams {\n id: string;\n}\n\nexport interface DuplicateWbPageParams {\n id: string;\n}\n\nexport interface PublishWbPageParams {\n id: string;\n}\n\nexport interface UnpublishWbPageParams {\n id: string;\n}\n\nexport interface MoveWbPageParams {\n id: string;\n folderId: string;\n}\n\nexport interface CreateWbPageRevisionFromParams {\n id: string;\n}\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsParams\n */\nexport interface WbPagesStorageOperationsGetParams extends CmsEntryGetParams {}\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsParams\n */\nexport interface WbPagesStorageOperationsCreateParams {\n data: CreateWbPageData;\n}\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsParams\n */\nexport interface WbPagesStorageOperationsUpdateParams {\n id: string;\n data: UpdateWbPageData;\n}\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsParams\n */\nexport type WbPagesStorageOperationsPublishParams = PublishWbPageParams;\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsParams\n */\nexport type WbPagesStorageOperationsUnpublishParams = UnpublishWbPageParams;\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsParams\n */\nexport type WbPagesStorageOperationsMoveParams = MoveWbPageParams;\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsParams\n */\nexport type WbPagesStorageOperationsCreateRevisionFromParams = CreateWbPageRevisionFromParams;\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsParams\n */\nexport interface WbPagesStorageOperationsDeleteParams {\n id: string;\n}\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsParams\n */\nexport interface WbPagesStorageOperationsListParams {\n where: CmsEntryListWhere;\n sort: CmsEntryListSort;\n limit: number;\n after: string | null;\n search?: string;\n}\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n * @category PagesStorageOperationsResponse\n */\nexport type WbPagesStorageOperationsListResponse = [WbPage[], WbListMeta];\n\nexport interface OnWebsiteBuilderPageBeforeCreateTopicParams {\n input: CreateWbPageData;\n}\n\nexport interface OnWebsiteBuilderPageAfterCreateTopicParams {\n page: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageBeforeUpdateTopicParams {\n original: WbPage;\n input: Record<string, any>;\n}\n\nexport interface OnWebsiteBuilderPageAfterUpdateTopicParams {\n original: WbPage;\n page: WbPage;\n input: Record<string, any>;\n}\n\nexport interface OnWebsiteBuilderPageBeforePublishTopicParams {\n page: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageAfterPublishTopicParams {\n page: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageBeforeUnpublishTopicParams {\n page: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageAfterUnpublishTopicParams {\n page: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageBeforeDuplicateTopicParams {\n original: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageAfterDuplicateTopicParams {\n original: WbPage;\n page: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageBeforeCreateRevisionFromTopicParams {\n original: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageAfterCreateRevisionFromTopicParams {\n original: WbPage;\n page: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageBeforeMoveTopicParams {\n page: WbPage;\n folderId: string;\n}\n\nexport interface OnWebsiteBuilderPageAfterMoveTopicParams {\n page: WbPage;\n folderId: string;\n}\n\nexport interface OnWebsiteBuilderPageBeforeDeleteTopicParams {\n page: WbPage;\n}\n\nexport interface OnWebsiteBuilderPageAfterDeleteTopicParams {\n page: WbPage;\n}\n\n/**\n * @category StorageOperations\n * @category PagesStorageOperations\n */\nexport interface WbPagesStorageOperations {\n /**\n * Get a published page using a filter.\n */\n get: (params: WbPagesStorageOperationsGetParams) => Promise<WbPage | null>;\n /**\n * Get a single page by ID (can be draft or published).\n */\n getById: (id: string) => Promise<WbPage | null>;\n /**\n * Get all revisions for the given page.\n */\n getRevisions: (pageId: string) => Promise<WbPage[]>;\n /**\n * Get a list of pages filtered by given parameters.\n */\n list: (\n params: WbPagesStorageOperationsListParams\n ) => Promise<WbPagesStorageOperationsListResponse>;\n /**\n * Insert the page data into the database.\n */\n create: (params: WbPagesStorageOperationsCreateParams) => Promise<WbPage>;\n /**\n * Update the page data in the database.\n */\n update: (params: WbPagesStorageOperationsUpdateParams) => Promise<WbPage>;\n /**\n * Publish the page and store the information in the database.\n */\n publish: (params: WbPagesStorageOperationsPublishParams) => Promise<WbPage>;\n /**\n * Unpublish the page and store the information in the database.\n */\n unpublish: (params: WbPagesStorageOperationsUnpublishParams) => Promise<WbPage>;\n /**\n * Move the page into a folder and store the information in the database.\n */\n move: (params: MoveWbPageParams) => Promise<void>;\n /**\n * Create a page revision and store the information in the database.\n */\n createRevisionFrom: (params: CreateWbPageRevisionFromParams) => Promise<WbPage>;\n /**\n * Delete the page from the database.\n */\n delete: (params: WbPagesStorageOperationsDeleteParams) => Promise<void>;\n}\n\nexport interface WbPageCrud {\n /**\n * Get a single page with given ID from the storage.\n */\n getById(id: string): Promise<WbPage | null>;\n /**\n * Get a single published page by given path.\n */\n getByPath(path: string): Promise<WbPage | null>;\n\n /**\n * Get information about page revisions.\n */\n getPageRevisions(pageID: string): Promise<WbPage[]>;\n /**\n * Get a list of pages filtered by given parameters.\n */\n list(params: ListWbPagesParams): Promise<[WbPage[], WbListMeta]>;\n /**\n * Create a new page in the storage.\n */\n create(data: CreateWbPageData): Promise<WbPage>;\n /**\n * Update an existing page in the storage.\n */\n update(id: string, data: UpdateWbPageData): Promise<WbPage>;\n /**\n * Duplicate a page and store it as a new page in the storage.\n */\n duplicate(params: DuplicateWbPageParams): Promise<WbPage>;\n /**\n * Publish a page.\n */\n publish(params: PublishWbPageParams): Promise<WbPage>;\n /**\n * Unpublish a page.\n */\n unpublish(params: UnpublishWbPageParams): Promise<WbPage>;\n /**\n * Move a page into a folder\n */\n move(params: MoveWbPageParams): Promise<void>;\n /**\n * Create a page revision from an id.\n */\n createRevisionFrom(params: CreateWbPageRevisionFromParams): Promise<WbPage>;\n /**\n * Delete a page from the storage.\n */\n delete(params: DeleteWbPageParams): Promise<void>;\n\n onWebsiteBuilderPageBeforeCreate: Topic<OnWebsiteBuilderPageBeforeCreateTopicParams>;\n onWebsiteBuilderPageAfterCreate: Topic<OnWebsiteBuilderPageAfterCreateTopicParams>;\n onWebsiteBuilderPageBeforeUpdate: Topic<OnWebsiteBuilderPageBeforeUpdateTopicParams>;\n onWebsiteBuilderPageAfterUpdate: Topic<OnWebsiteBuilderPageAfterUpdateTopicParams>;\n onWebsiteBuilderPageBeforePublish: Topic<OnWebsiteBuilderPageBeforePublishTopicParams>;\n onWebsiteBuilderPageAfterPublish: Topic<OnWebsiteBuilderPageAfterPublishTopicParams>;\n onWebsiteBuilderPageBeforeUnpublish: Topic<OnWebsiteBuilderPageBeforeUnpublishTopicParams>;\n onWebsiteBuilderPageAfterUnpublish: Topic<OnWebsiteBuilderPageAfterUnpublishTopicParams>;\n onWebsiteBuilderPageBeforeDuplicate: Topic<OnWebsiteBuilderPageBeforeDuplicateTopicParams>;\n onWebsiteBuilderPageAfterDuplicate: Topic<OnWebsiteBuilderPageAfterDuplicateTopicParams>;\n onWebsiteBuilderPageBeforeMove: Topic<OnWebsiteBuilderPageBeforeMoveTopicParams>;\n onWebsiteBuilderPageAfterMove: Topic<OnWebsiteBuilderPageAfterMoveTopicParams>;\n onWebsiteBuilderPageBeforeCreateRevisionFrom: Topic<OnWebsiteBuilderPageBeforeCreateRevisionFromTopicParams>;\n onWebsiteBuilderPageAfterCreateRevisionFrom: Topic<OnWebsiteBuilderPageAfterCreateRevisionFromTopicParams>;\n onWebsiteBuilderPageBeforeDelete: Topic<OnWebsiteBuilderPageBeforeDeleteTopicParams>;\n onWebsiteBuilderPageAfterDelete: Topic<OnWebsiteBuilderPageAfterDeleteTopicParams>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { ICreatePage } from "./ICreatePage";
2
+ import type { CreateWbPageData, WbPagesStorageOperations } from "../../page.types";
3
+ export declare class CreatePage implements ICreatePage {
4
+ private readonly createOperation;
5
+ constructor(createOperation: WbPagesStorageOperations["create"]);
6
+ execute(data: CreateWbPageData): Promise<import("../../page.types").WbPage>;
7
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CreatePage = void 0;
7
+ class CreatePage {
8
+ constructor(createOperation) {
9
+ this.createOperation = createOperation;
10
+ }
11
+ async execute(data) {
12
+ return await this.createOperation({
13
+ data
14
+ });
15
+ }
16
+ }
17
+ exports.CreatePage = CreatePage;
18
+
19
+ //# sourceMappingURL=CreatePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CreatePage","constructor","createOperation","execute","data","exports"],"sources":["CreatePage.ts"],"sourcesContent":["import type { ICreatePage } from \"./ICreatePage\";\nimport type { CreateWbPageData, WbPagesStorageOperations } from \"~/page/page.types\";\n\nexport class CreatePage implements ICreatePage {\n private readonly createOperation: WbPagesStorageOperations[\"create\"];\n\n constructor(createOperation: WbPagesStorageOperations[\"create\"]) {\n this.createOperation = createOperation;\n }\n\n async execute(data: CreateWbPageData) {\n return await this.createOperation({ data });\n }\n}\n"],"mappings":";;;;;;AAGO,MAAMA,UAAU,CAAwB;EAG3CC,WAAWA,CAACC,eAAmD,EAAE;IAC7D,IAAI,CAACA,eAAe,GAAGA,eAAe;EAC1C;EAEA,MAAMC,OAAOA,CAACC,IAAsB,EAAE;IAClC,OAAO,MAAM,IAAI,CAACF,eAAe,CAAC;MAAEE;IAAK,CAAC,CAAC;EAC/C;AACJ;AAACC,OAAA,CAAAL,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import type { ICreatePage } from "./ICreatePage";
2
+ import type { CreatePageUseCasesTopics } from "./index";
3
+ import type { CreateWbPageData } from "../../page.types";
4
+ export declare class CreatePageWithEvents implements ICreatePage {
5
+ private topics;
6
+ private readonly decoretee;
7
+ constructor(topics: CreatePageUseCasesTopics, decoretee: ICreatePage);
8
+ execute(data: CreateWbPageData): Promise<import("../../page.types").WbPage>;
9
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CreatePageWithEvents = void 0;
7
+ class CreatePageWithEvents {
8
+ constructor(topics, decoretee) {
9
+ this.topics = topics;
10
+ this.decoretee = decoretee;
11
+ }
12
+ async execute(data) {
13
+ await this.topics.onWebsiteBuilderPageBeforeCreate.publish({
14
+ input: data
15
+ });
16
+ const page = await this.decoretee.execute(data);
17
+ await this.topics.onWebsiteBuilderPageAfterCreate.publish({
18
+ page
19
+ });
20
+ return page;
21
+ }
22
+ }
23
+ exports.CreatePageWithEvents = CreatePageWithEvents;
24
+
25
+ //# sourceMappingURL=CreatePageWithEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CreatePageWithEvents","constructor","topics","decoretee","execute","data","onWebsiteBuilderPageBeforeCreate","publish","input","page","onWebsiteBuilderPageAfterCreate","exports"],"sources":["CreatePageWithEvents.ts"],"sourcesContent":["import type { ICreatePage } from \"./ICreatePage\";\nimport type { CreatePageUseCasesTopics } from \"./index\";\nimport type { CreateWbPageData } from \"~/page/page.types\";\n\nexport class CreatePageWithEvents implements ICreatePage {\n private topics: CreatePageUseCasesTopics;\n private readonly decoretee: ICreatePage;\n\n constructor(topics: CreatePageUseCasesTopics, decoretee: ICreatePage) {\n this.topics = topics;\n this.decoretee = decoretee;\n }\n\n async execute(data: CreateWbPageData) {\n await this.topics.onWebsiteBuilderPageBeforeCreate.publish({ input: data });\n const page = await this.decoretee.execute(data);\n await this.topics.onWebsiteBuilderPageAfterCreate.publish({ page });\n return page;\n }\n}\n"],"mappings":";;;;;;AAIO,MAAMA,oBAAoB,CAAwB;EAIrDC,WAAWA,CAACC,MAAgC,EAAEC,SAAsB,EAAE;IAClE,IAAI,CAACD,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAMC,OAAOA,CAACC,IAAsB,EAAE;IAClC,MAAM,IAAI,CAACH,MAAM,CAACI,gCAAgC,CAACC,OAAO,CAAC;MAAEC,KAAK,EAAEH;IAAK,CAAC,CAAC;IAC3E,MAAMI,IAAI,GAAG,MAAM,IAAI,CAACN,SAAS,CAACC,OAAO,CAACC,IAAI,CAAC;IAC/C,MAAM,IAAI,CAACH,MAAM,CAACQ,+BAA+B,CAACH,OAAO,CAAC;MAAEE;IAAK,CAAC,CAAC;IACnE,OAAOA,IAAI;EACf;AACJ;AAACE,OAAA,CAAAX,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type { CreateWbPageData, WbPage } from "../../page.types";
2
+ export interface ICreatePage {
3
+ execute: (data: CreateWbPageData) => Promise<WbPage>;
4
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=ICreatePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["ICreatePage.ts"],"sourcesContent":["import type { CreateWbPageData, WbPage } from \"~/page/page.types\";\n\nexport interface ICreatePage {\n execute: (data: CreateWbPageData) => Promise<WbPage>;\n}\n"],"mappings":"","ignoreList":[]}