@webiny/api-page-builder-import-export 0.0.0-unstable.3386f66516 → 0.0.0-unstable.3bc8100a7f

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 (261) hide show
  1. package/client.d.ts +1 -1
  2. package/client.js +12 -25
  3. package/client.js.map +1 -1
  4. package/export/combine/blocksHandler.d.ts +2 -2
  5. package/export/combine/blocksHandler.js +14 -19
  6. package/export/combine/blocksHandler.js.map +1 -1
  7. package/export/combine/formsHandler.d.ts +6 -0
  8. package/export/combine/{pagesHandler.js → formsHandler.js} +25 -30
  9. package/export/combine/formsHandler.js.map +1 -0
  10. package/export/combine/index.d.ts +2 -2
  11. package/export/combine/index.js +24 -23
  12. package/export/combine/index.js.map +1 -1
  13. package/export/combine/templatesHandler.d.ts +2 -2
  14. package/export/combine/templatesHandler.js +14 -19
  15. package/export/combine/templatesHandler.js.map +1 -1
  16. package/export/pages/ExportPagesCleanup.d.ts +5 -0
  17. package/export/pages/ExportPagesCleanup.js +82 -0
  18. package/export/pages/ExportPagesCleanup.js.map +1 -0
  19. package/export/pages/ExportPagesController.d.ts +5 -0
  20. package/export/pages/ExportPagesController.js +31 -0
  21. package/export/pages/ExportPagesController.js.map +1 -0
  22. package/export/pages/ExportPagesZipPages.d.ts +5 -0
  23. package/export/pages/ExportPagesZipPages.js +23 -0
  24. package/export/pages/ExportPagesZipPages.js.map +1 -0
  25. package/export/pages/controller/CombineZippedPages.d.ts +5 -0
  26. package/export/pages/controller/CombineZippedPages.js +75 -0
  27. package/export/pages/controller/CombineZippedPages.js.map +1 -0
  28. package/export/pages/controller/CreateZipPagesTasks.d.ts +8 -0
  29. package/export/pages/controller/CreateZipPagesTasks.js +103 -0
  30. package/export/pages/controller/CreateZipPagesTasks.js.map +1 -0
  31. package/export/pages/controller/ProcessZipPagesTasks.d.ts +6 -0
  32. package/export/pages/controller/ProcessZipPagesTasks.js +61 -0
  33. package/export/pages/controller/ProcessZipPagesTasks.js.map +1 -0
  34. package/export/pages/types.d.ts +53 -0
  35. package/export/pages/types.js +26 -0
  36. package/export/pages/types.js.map +1 -0
  37. package/export/pages/utils.d.ts +2 -0
  38. package/export/pages/utils.js +13 -0
  39. package/export/pages/utils.js.map +1 -0
  40. package/export/pages/zipPages/ZipPages.d.ts +5 -0
  41. package/export/pages/zipPages/ZipPages.js +100 -0
  42. package/export/pages/zipPages/ZipPages.js.map +1 -0
  43. package/export/pages/zipPages/ZipPagesDataManager.d.ts +14 -0
  44. package/export/pages/zipPages/ZipPagesDataManager.js +46 -0
  45. package/export/pages/zipPages/ZipPagesDataManager.js.map +1 -0
  46. package/export/pages/zipPages/getPageFactory.d.ts +4 -0
  47. package/export/pages/zipPages/getPageFactory.js +38 -0
  48. package/export/pages/zipPages/getPageFactory.js.map +1 -0
  49. package/export/process/blocksHandler.d.ts +2 -2
  50. package/export/process/blocksHandler.js +29 -36
  51. package/export/process/blocksHandler.js.map +1 -1
  52. package/export/process/exporters/BlockExporter.d.ts +12 -0
  53. package/export/process/exporters/BlockExporter.js +57 -0
  54. package/export/process/exporters/BlockExporter.js.map +1 -0
  55. package/export/process/exporters/FormExporter.d.ts +9 -0
  56. package/export/process/exporters/FormExporter.js +36 -0
  57. package/export/process/exporters/FormExporter.js.map +1 -0
  58. package/export/process/exporters/PageExporter.d.ts +18 -0
  59. package/export/process/exporters/PageExporter.js +59 -0
  60. package/export/process/exporters/PageExporter.js.map +1 -0
  61. package/export/process/exporters/PageTemplateExporter.d.ts +11 -0
  62. package/export/process/exporters/PageTemplateExporter.js +58 -0
  63. package/export/process/exporters/PageTemplateExporter.js.map +1 -0
  64. package/export/process/formsHandler.d.ts +6 -0
  65. package/export/process/{pagesHandler.js → formsHandler.js} +48 -63
  66. package/export/process/formsHandler.js.map +1 -0
  67. package/export/process/index.d.ts +2 -2
  68. package/export/process/index.js +24 -23
  69. package/export/process/index.js.map +1 -1
  70. package/export/process/templatesHandler.d.ts +2 -2
  71. package/export/process/templatesHandler.js +29 -37
  72. package/export/process/templatesHandler.js.map +1 -1
  73. package/export/s3Stream.d.ts +16 -11
  74. package/export/s3Stream.js +27 -42
  75. package/export/s3Stream.js.map +1 -1
  76. package/export/utils.d.ts +11 -9
  77. package/export/utils.js +54 -58
  78. package/export/utils.js.map +1 -1
  79. package/export/zipper.d.ts +7 -6
  80. package/export/zipper.js +46 -62
  81. package/export/zipper.js.map +1 -1
  82. package/graphql/crud/blocks.crud.d.ts +1 -1
  83. package/graphql/crud/blocks.crud.js +65 -62
  84. package/graphql/crud/blocks.crud.js.map +1 -1
  85. package/graphql/crud/forms.crud.d.ts +4 -0
  86. package/graphql/crud/forms.crud.js +162 -0
  87. package/graphql/crud/forms.crud.js.map +1 -0
  88. package/graphql/crud/importExportTasks.crud.d.ts +2 -2
  89. package/graphql/crud/importExportTasks.crud.js +150 -165
  90. package/graphql/crud/importExportTasks.crud.js.map +1 -1
  91. package/graphql/crud/pages.crud.d.ts +1 -1
  92. package/graphql/crud/pages.crud.js +241 -142
  93. package/graphql/crud/pages.crud.js.map +1 -1
  94. package/graphql/crud/templates.crud.d.ts +1 -1
  95. package/graphql/crud/templates.crud.js +63 -47
  96. package/graphql/crud/templates.crud.js.map +1 -1
  97. package/graphql/crud.d.ts +2 -2
  98. package/graphql/crud.js +4 -8
  99. package/graphql/crud.js.map +1 -1
  100. package/graphql/graphql/blocks.gql.d.ts +2 -2
  101. package/graphql/graphql/blocks.gql.js +8 -13
  102. package/graphql/graphql/blocks.gql.js.map +1 -1
  103. package/graphql/graphql/forms.gql.d.ts +4 -0
  104. package/graphql/graphql/forms.gql.js +60 -0
  105. package/graphql/graphql/forms.gql.js.map +1 -0
  106. package/graphql/graphql/importExportTasks.gql.d.ts +2 -2
  107. package/graphql/graphql/importExportTasks.gql.js +8 -13
  108. package/graphql/graphql/importExportTasks.gql.js.map +1 -1
  109. package/graphql/graphql/pages.gql.d.ts +2 -2
  110. package/graphql/graphql/pages.gql.js +104 -20
  111. package/graphql/graphql/pages.gql.js.map +1 -1
  112. package/graphql/graphql/templates.gql.d.ts +2 -2
  113. package/graphql/graphql/templates.gql.js +7 -12
  114. package/graphql/graphql/templates.gql.js.map +1 -1
  115. package/graphql/graphql/utils/resolve.d.ts +3 -3
  116. package/graphql/graphql/utils/resolve.js +15 -7
  117. package/graphql/graphql/utils/resolve.js.map +1 -1
  118. package/graphql/graphql.d.ts +1 -1
  119. package/graphql/graphql.js +3 -7
  120. package/graphql/graphql.js.map +1 -1
  121. package/graphql/index.d.ts +2 -2
  122. package/graphql/index.js +4 -6
  123. package/graphql/index.js.map +1 -1
  124. package/graphql/types.d.ts +194 -31
  125. package/graphql/types.js +3 -1
  126. package/graphql/types.js.map +1 -1
  127. package/import/constants.d.ts +3 -0
  128. package/import/constants.js +13 -0
  129. package/import/constants.js.map +1 -0
  130. package/import/create/blocksHandler.d.ts +2 -2
  131. package/import/create/blocksHandler.js +13 -22
  132. package/import/create/blocksHandler.js.map +1 -1
  133. package/import/create/formsHandler.d.ts +3 -0
  134. package/import/create/formsHandler.js +105 -0
  135. package/import/create/formsHandler.js.map +1 -0
  136. package/import/create/index.d.ts +2 -2
  137. package/import/create/index.js +24 -23
  138. package/import/create/index.js.map +1 -1
  139. package/import/create/pagesHandler.d.ts +2 -2
  140. package/import/create/pagesHandler.js +12 -19
  141. package/import/create/pagesHandler.js.map +1 -1
  142. package/import/create/templatesHandler.d.ts +2 -2
  143. package/import/create/templatesHandler.js +12 -19
  144. package/import/create/templatesHandler.js.map +1 -1
  145. package/import/pages/ImportPagesController.d.ts +5 -0
  146. package/import/pages/ImportPagesController.js +29 -0
  147. package/import/pages/ImportPagesController.js.map +1 -0
  148. package/import/pages/ImportPagesProcessPages.d.ts +6 -0
  149. package/import/pages/ImportPagesProcessPages.js +112 -0
  150. package/import/pages/ImportPagesProcessPages.js.map +1 -0
  151. package/import/pages/controller/ImportPagesProcessPagesChecker.d.ts +6 -0
  152. package/import/pages/controller/ImportPagesProcessPagesChecker.js +40 -0
  153. package/import/pages/controller/ImportPagesProcessPagesChecker.js.map +1 -0
  154. package/import/pages/controller/ImportPagesProcessZipFile.d.ts +5 -0
  155. package/import/pages/controller/ImportPagesProcessZipFile.js +71 -0
  156. package/import/pages/controller/ImportPagesProcessZipFile.js.map +1 -0
  157. package/import/pages/process/importPage.d.ts +10 -0
  158. package/import/pages/process/importPage.js +94 -0
  159. package/import/pages/process/importPage.js.map +1 -0
  160. package/import/pages/types.d.ts +48 -0
  161. package/import/pages/types.js +20 -0
  162. package/import/pages/types.js.map +1 -0
  163. package/import/process/blocks/ElementIdsProcessor.d.ts +5 -0
  164. package/import/process/blocks/ElementIdsProcessor.js +26 -0
  165. package/import/process/blocks/ElementIdsProcessor.js.map +1 -0
  166. package/import/process/{blocksHandler.d.ts → blocks/blocksHandler.d.ts} +2 -2
  167. package/import/process/{blocksHandler.js → blocks/blocksHandler.js} +32 -38
  168. package/import/process/blocks/blocksHandler.js.map +1 -0
  169. package/import/process/blocks/importBlock.d.ts +11 -0
  170. package/import/process/blocks/importBlock.js +101 -0
  171. package/import/process/blocks/importBlock.js.map +1 -0
  172. package/import/process/forms/formsHandler.d.ts +3 -0
  173. package/import/process/{pagesHandler.js → forms/formsHandler.js} +54 -57
  174. package/import/process/forms/formsHandler.js.map +1 -0
  175. package/import/process/forms/importForm.d.ts +9 -0
  176. package/import/process/forms/importForm.js +47 -0
  177. package/import/process/forms/importForm.js.map +1 -0
  178. package/import/process/index.d.ts +2 -2
  179. package/import/process/index.js +26 -25
  180. package/import/process/index.js.map +1 -1
  181. package/import/process/templates/importTemplate.d.ts +11 -0
  182. package/import/process/templates/importTemplate.js +70 -0
  183. package/import/process/templates/importTemplate.js.map +1 -0
  184. package/import/process/{templatesHandler.d.ts → templates/templatesHandler.d.ts} +2 -2
  185. package/import/process/{templatesHandler.js → templates/templatesHandler.js} +36 -34
  186. package/import/process/templates/templatesHandler.js.map +1 -0
  187. package/import/utils/deleteS3Folder.d.ts +1 -0
  188. package/import/utils/deleteS3Folder.js +21 -0
  189. package/import/utils/deleteS3Folder.js.map +1 -0
  190. package/import/utils/extractAndUploadZipFileContents.d.ts +7 -0
  191. package/import/utils/extractAndUploadZipFileContents.js +126 -0
  192. package/import/utils/extractAndUploadZipFileContents.js.map +1 -0
  193. package/import/utils/extractZipAndUploadToS3.d.ts +2 -0
  194. package/import/utils/extractZipAndUploadToS3.js +100 -0
  195. package/import/utils/extractZipAndUploadToS3.js.map +1 -0
  196. package/import/utils/getFileNameWithoutExt.d.ts +1 -0
  197. package/import/utils/getFileNameWithoutExt.js +13 -0
  198. package/import/utils/getFileNameWithoutExt.js.map +1 -0
  199. package/import/utils/index.d.ts +9 -0
  200. package/import/utils/index.js +106 -0
  201. package/import/utils/index.js.map +1 -0
  202. package/import/utils/initialStats.d.ts +7 -0
  203. package/import/utils/initialStats.js +18 -0
  204. package/import/utils/initialStats.js.map +1 -0
  205. package/import/utils/prepareDataDirMap.d.ts +6 -0
  206. package/import/utils/prepareDataDirMap.js +31 -0
  207. package/import/utils/prepareDataDirMap.js.map +1 -0
  208. package/import/utils/updateFilesInData.d.ts +8 -0
  209. package/import/utils/updateFilesInData.js +51 -0
  210. package/import/utils/updateFilesInData.js.map +1 -0
  211. package/import/utils/uploadAssets.d.ts +10 -0
  212. package/import/utils/uploadAssets.js +92 -0
  213. package/import/utils/uploadAssets.js.map +1 -0
  214. package/import/utils/uploadFilesFromS3.d.ts +3 -0
  215. package/import/utils/uploadFilesFromS3.js +21 -0
  216. package/import/utils/uploadFilesFromS3.js.map +1 -0
  217. package/mockSecurity.d.ts +1 -1
  218. package/mockSecurity.js +2 -3
  219. package/mockSecurity.js.map +1 -1
  220. package/package.json +36 -52
  221. package/tasks/common/ChildTasksCleanup.d.ts +12 -0
  222. package/tasks/common/ChildTasksCleanup.js +64 -0
  223. package/tasks/common/ChildTasksCleanup.js.map +1 -0
  224. package/tasks/index.d.ts +1 -0
  225. package/tasks/index.js +13 -0
  226. package/tasks/index.js.map +1 -0
  227. package/tasks/pages/exportPagesCleanupTask.d.ts +3 -0
  228. package/tasks/pages/exportPagesCleanupTask.js +36 -0
  229. package/tasks/pages/exportPagesCleanupTask.js.map +1 -0
  230. package/tasks/pages/exportPagesControllerTask.d.ts +3 -0
  231. package/tasks/pages/exportPagesControllerTask.js +83 -0
  232. package/tasks/pages/exportPagesControllerTask.js.map +1 -0
  233. package/tasks/pages/exportPagesZipPagesTask.d.ts +3 -0
  234. package/tasks/pages/exportPagesZipPagesTask.js +39 -0
  235. package/tasks/pages/exportPagesZipPagesTask.js.map +1 -0
  236. package/tasks/pages/importPagesControllerTask.d.ts +3 -0
  237. package/tasks/pages/importPagesControllerTask.js +39 -0
  238. package/tasks/pages/importPagesControllerTask.js.map +1 -0
  239. package/tasks/pages/importPagesProcessPageTask.d.ts +3 -0
  240. package/tasks/pages/importPagesProcessPageTask.js +39 -0
  241. package/tasks/pages/importPagesProcessPageTask.js.map +1 -0
  242. package/tasks/pages/index.d.ts +1 -0
  243. package/tasks/pages/index.js +17 -0
  244. package/tasks/pages/index.js.map +1 -0
  245. package/types.d.ts +23 -2
  246. package/types.js +60 -13
  247. package/types.js.map +1 -1
  248. package/utils/ZipFiles.d.ts +11 -0
  249. package/utils/ZipFiles.js +124 -0
  250. package/utils/ZipFiles.js.map +1 -0
  251. package/export/combine/pagesHandler.d.ts +0 -6
  252. package/export/combine/pagesHandler.js.map +0 -1
  253. package/export/process/pagesHandler.d.ts +0 -6
  254. package/export/process/pagesHandler.js.map +0 -1
  255. package/import/process/blocksHandler.js.map +0 -1
  256. package/import/process/pagesHandler.d.ts +0 -3
  257. package/import/process/pagesHandler.js.map +0 -1
  258. package/import/process/templatesHandler.js.map +0 -1
  259. package/import/utils.d.ts +0 -56
  260. package/import/utils.js +0 -696
  261. package/import/utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["validStatus","ImportExportTaskStatus","PENDING","PROCESSING","COMPLETED","FAILED","CreateDataModel","withFields","status","string","validation","create","data","object","input","stats","error","UpdateDataModel","PERMISSION_NAME","storageOperations","ContextPlugin","context","pageBuilder","console","log","getLocale","locale","i18n","getContentLocale","WebinyError","importExportTask","getTask","id","permission","checkBasePermissions","rwd","tenant","tenancy","getCurrentTenant","params","where","code","ex","message","identity","security","getIdentity","checkOwnPermissions","listTasks","sort","limit","listParams","Array","isArray","length","own","createdBy","items","createTask","createDataModel","populate","validate","mdbid","toJSON","createdOn","Date","toISOString","type","displayName","task","updateTask","original","NotFoundError","updateDataModel","onlyDirty","deleteTask","updateStats","updateTaskStats","createSubTask","parent","importExportSubTask","subTask","updateSubTask","subTaskId","getSubTask","listSubTasks"],"sources":["importExportTasks.crud.ts"],"sourcesContent":["/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\n/**\n * Package @commodo/fields does not have types.\n */\n// @ts-ignore\nimport { string, withFields } from \"@commodo/fields\";\n/**\n * Package commodo-fields-object does not have types.\n */\n// @ts-ignore\nimport { object } from \"commodo-fields-object\";\nimport { validation } from \"@webiny/validation\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport checkBasePermissions from \"@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions\";\nimport checkOwnPermissions from \"@webiny/api-page-builder/graphql/crud/utils/checkOwnPermissions\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport {\n ImportExportPluginsParams,\n ImportExportTask,\n ImportExportTaskStatus,\n ImportExportTaskStorageOperationsListSubTaskParams\n} from \"~/types\";\nimport { PbImportExportContext } from \"~/graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { PageElementStorageOperationsListParams } from \"@webiny/api-page-builder/types\";\n\nconst validStatus = `${ImportExportTaskStatus.PENDING}:${ImportExportTaskStatus.PROCESSING}:${ImportExportTaskStatus.COMPLETED}:${ImportExportTaskStatus.FAILED}`;\n\nconst CreateDataModel = withFields({\n status: string({\n validation: validation.create(`required,in:${validStatus}`)\n }),\n data: object(),\n input: object(),\n stats: object(),\n error: object()\n})();\n\nconst UpdateDataModel = withFields({\n status: string({\n validation: validation.create(`in:${validStatus}`)\n }),\n data: object(),\n input: object(),\n stats: object(),\n error: object()\n})();\n\nconst PERMISSION_NAME = \"pb.page\";\n\nexport default ({ storageOperations }: ImportExportPluginsParams) =>\n new ContextPlugin<PbImportExportContext>(async context => {\n /**\n * If pageBuilder is not defined on the context, do not continue, but log it.\n */\n if (!context.pageBuilder) {\n console.log(\"Missing pageBuilder on context. Skipping ImportExportTasks crud.\");\n return;\n }\n\n const getLocale = () => {\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in importExportTasks.crud.ts\",\n \"LOCALE_ERROR\"\n );\n }\n return locale;\n };\n\n // Modify context\n context.pageBuilder.importExportTask = {\n storageOperations,\n async getTask(id) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id\n }\n };\n\n let importExportTask: ImportExportTask | null = null;\n\n try {\n importExportTask = await storageOperations.getTask(params);\n\n if (!importExportTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, importExportTask);\n\n return importExportTask;\n },\n\n async listTasks(params) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const { sort, limit } = params || {};\n\n const listParams: PageElementStorageOperationsListParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code\n },\n sort: Array.isArray(sort) && sort.length > 0 ? sort : [\"createdOn_ASC\"],\n limit: limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (permission.own) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportTask.\",\n ex.code || \"LIST_ELEMENTS_ERROR\",\n {\n params\n }\n );\n }\n },\n\n async createTask(input) {\n await checkBasePermissions(context, PERMISSION_NAME, { rwd: \"w\" });\n\n const createDataModel = new CreateDataModel().populate(input);\n await createDataModel.validate();\n\n const id: string = mdbid();\n const identity = context.security.getIdentity();\n\n const data: ImportExportTask = await createDataModel.toJSON();\n\n const importExportTask: ImportExportTask = {\n ...data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createTask({\n input: data,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateTask(id, input) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, original);\n\n const updateDataModel = new UpdateDataModel().populate(input);\n await updateDataModel.validate();\n\n const data = await updateDataModel.toJSON({ onlyDirty: true });\n\n const importExportTask: ImportExportTask = {\n ...original,\n ...data\n };\n\n try {\n return await storageOperations.updateTask({\n input: data,\n original,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original,\n importExportTask\n }\n );\n }\n },\n\n async deleteTask(id) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"d\"\n });\n\n const importExportTask = await context.pageBuilder.importExportTask.getTask(id);\n if (!importExportTask) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, importExportTask);\n\n try {\n return await storageOperations.deleteTask({\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete importExportTask.\",\n ex.code || \"DELETE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateStats(id, input) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, original);\n\n try {\n return await storageOperations.updateTaskStats({\n input,\n original\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original\n }\n );\n }\n },\n\n async createSubTask(parent, id, input) {\n await checkBasePermissions(context, PERMISSION_NAME, { rwd: \"w\" });\n\n const createDataModel = new CreateDataModel().populate(input);\n await createDataModel.validate();\n\n const identity = context.security.getIdentity();\n\n const data = await createDataModel.toJSON();\n\n const importExportSubTask: ImportExportTask = {\n ...data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id: id,\n parent: parent,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createSubTask({\n input: data,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportSubTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask\n }\n );\n }\n },\n\n async updateSubTask(parent, subTaskId, input) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n const original = await context.pageBuilder.importExportTask.getSubTask(\n parent,\n subTaskId\n );\n if (!original) {\n throw new NotFoundError(\n `ImportExportTask parent: \"${parent}\" and id: \"${subTaskId}\" not found.`\n );\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, original);\n\n const updateDataModel = new UpdateDataModel().populate(input);\n await updateDataModel.validate();\n\n const data = await updateDataModel.toJSON({ onlyDirty: true });\n // TODO: Merge recursively\n const importExportSubTask: ImportExportTask = {\n ...original,\n ...data\n };\n\n try {\n return await storageOperations.updateSubTask({\n input: data,\n original,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportSubTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask,\n original\n }\n );\n }\n },\n\n async getSubTask(parent, subTaskId) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id: subTaskId,\n parent: parent\n }\n };\n\n let importExportSubTask: ImportExportTask | null = null;\n\n try {\n importExportSubTask = await storageOperations.getSubTask(params);\n if (!importExportSubTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportSubTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, importExportSubTask);\n\n return importExportSubTask;\n },\n\n async listSubTasks(parent, status, limit) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const listParams: ImportExportTaskStorageOperationsListSubTaskParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n parent: parent,\n status\n },\n limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (permission.own) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listSubTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportSubTask.\",\n ex.code || \"LIST_IMPORT_EXPORT_TASK_ERROR\",\n {\n params: {\n parent,\n status,\n limit\n }\n }\n );\n }\n }\n };\n });\n"],"mappings":"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"}
1
+ {"version":3,"names":["_zod","_interopRequireDefault","require","_utils","_api","_handlerGraphql","_types","_error","_PagesPermissions","dataModelStats","zod","object","ImportExportTaskStatus","PENDING","number","optional","default","PROCESSING","COMPLETED","FAILED","total","CreateDataModel","status","enum","data","passthrough","input","error","stats","UpdateDataModel","_default","storageOperations","ContextPlugin","context","pageBuilder","console","log","pagesPermissions","PagesPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","getLocale","locale","i18n","getContentLocale","WebinyError","importExportTask","getTask","id","ensure","rwd","tenant","tenancy","getCurrentTenant","params","where","code","ex","message","owns","createdBy","listTasks","sort","limit","listParams","Array","isArray","length","canAccessOnlyOwnRecords","identity","items","createTask","validation","safeParse","success","createZodError","mdbid","parent","createdOn","Date","toISOString","type","displayName","task","updateTask","original","NotFoundError","key","value","undefined","deleteTask","updateStats","updateTaskStats","createSubTask","importExportSubTask","subTask","updateSubTask","subTaskId","getSubTask","listSubTasks","exports"],"sources":["importExportTasks.crud.ts"],"sourcesContent":["import zod from \"zod\";\nimport { createZodError, mdbid } from \"@webiny/utils\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport type {\n ImportExportPluginsParams,\n ImportExportTask,\n ImportExportTaskStorageOperationsListSubTaskParams\n} from \"~/types\";\nimport { ImportExportTaskStatus } from \"~/types\";\nimport type { PbImportExportContext } from \"~/graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport type { PageElementStorageOperationsListParams } from \"@webiny/api-page-builder/types\";\nimport { PagesPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions\";\n\nconst dataModelStats = zod\n .object({\n [ImportExportTaskStatus.PENDING]: zod.number().optional().default(0),\n [ImportExportTaskStatus.PROCESSING]: zod.number().optional().default(0),\n [ImportExportTaskStatus.COMPLETED]: zod.number().optional().default(0),\n [ImportExportTaskStatus.FAILED]: zod.number().optional().default(0),\n total: zod.number().optional().default(0)\n })\n .optional()\n .default({\n [ImportExportTaskStatus.PENDING]: 0,\n [ImportExportTaskStatus.PROCESSING]: 0,\n [ImportExportTaskStatus.COMPLETED]: 0,\n [ImportExportTaskStatus.FAILED]: 0,\n total: 0\n });\n\nconst CreateDataModel = zod.object({\n status: zod.enum([\n ImportExportTaskStatus.PENDING,\n ImportExportTaskStatus.PROCESSING,\n ImportExportTaskStatus.COMPLETED,\n ImportExportTaskStatus.FAILED\n ]),\n data: zod.object({}).passthrough().default({}),\n input: zod.object({}).passthrough().default({}),\n error: zod.object({}).passthrough().default({}),\n stats: dataModelStats\n});\n\nconst UpdateDataModel = zod.object({\n status: zod\n .enum([\n ImportExportTaskStatus.PENDING,\n ImportExportTaskStatus.PROCESSING,\n ImportExportTaskStatus.COMPLETED,\n ImportExportTaskStatus.FAILED\n ])\n .optional(),\n data: zod.object({}).passthrough().default({}),\n input: zod.object({}).passthrough().default({}),\n error: zod.object({}).passthrough().default({}),\n stats: dataModelStats\n});\n\nexport default ({ storageOperations }: ImportExportPluginsParams) =>\n new ContextPlugin<PbImportExportContext>(async context => {\n /**\n * If pageBuilder is not defined on the context, do not continue, but log it.\n */\n if (!context.pageBuilder) {\n console.log(\"Missing pageBuilder on context. Skipping ImportExportTasks crud.\");\n return;\n }\n\n const pagesPermissions = new PagesPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.page\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n const getLocale = () => {\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in importExportTasks.crud.ts\",\n \"LOCALE_ERROR\"\n );\n }\n return locale;\n };\n\n // Modify context\n context.pageBuilder.importExportTask = {\n storageOperations,\n async getTask(id) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id\n }\n };\n\n let importExportTask: ImportExportTask | null = null;\n\n try {\n importExportTask = await storageOperations.getTask(params);\n\n if (!importExportTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n\n await pagesPermissions.ensure({ owns: importExportTask.createdBy });\n\n return importExportTask;\n },\n\n async listTasks(params) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const { sort, limit } = params || {};\n\n const listParams: PageElementStorageOperationsListParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code\n },\n sort: Array.isArray(sort) && sort.length > 0 ? sort : [\"createdOn_ASC\"],\n limit: limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (await pagesPermissions.canAccessOnlyOwnRecords) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportTask.\",\n ex.code || \"LIST_ELEMENTS_ERROR\",\n {\n params\n }\n );\n }\n },\n\n async createTask(input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const validation = CreateDataModel.safeParse(input);\n if (!validation.success) {\n throw createZodError(validation.error);\n }\n\n const id: string = mdbid();\n const identity = context.security.getIdentity();\n\n const importExportTask: ImportExportTask = {\n ...validation.data,\n parent: \"\",\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createTask({\n input: validation.data,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateTask(id, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n await pagesPermissions.ensure({ owns: original.createdBy });\n\n const validation = UpdateDataModel.safeParse(input);\n if (!validation.success) {\n throw createZodError(validation.error);\n }\n\n const importExportTask = {\n ...original\n };\n\n for (const key in validation.data) {\n // @ts-expect-error\n const value = validation.data[key];\n if (value === undefined) {\n continue;\n }\n // @ts-expect-error\n importExportTask[key] = value;\n }\n\n try {\n return await storageOperations.updateTask({\n input: validation.data,\n original,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original,\n importExportTask\n }\n );\n }\n },\n\n async deleteTask(id) {\n await pagesPermissions.ensure({ rwd: \"d\" });\n\n const importExportTask = await context.pageBuilder.importExportTask.getTask(id);\n if (!importExportTask) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n await pagesPermissions.ensure({ owns: importExportTask.createdBy });\n\n try {\n return await storageOperations.deleteTask({\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete importExportTask.\",\n ex.code || \"DELETE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateStats(id, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n await pagesPermissions.ensure({ owns: original.createdBy });\n\n try {\n return await storageOperations.updateTaskStats({\n input,\n original\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original\n }\n );\n }\n },\n\n async createSubTask(parent, id, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const validation = CreateDataModel.safeParse(input);\n if (!validation.success) {\n throw createZodError(validation.error);\n }\n\n const identity = context.security.getIdentity();\n\n const importExportSubTask: ImportExportTask = {\n ...validation.data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id,\n parent,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createSubTask({\n input: validation.data,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportSubTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask\n }\n );\n }\n },\n\n async updateSubTask(parent, subTaskId, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const original = await context.pageBuilder.importExportTask.getSubTask(\n parent,\n subTaskId\n );\n if (!original) {\n throw new NotFoundError(\n `ImportExportTask parent: \"${parent}\" and id: \"${subTaskId}\" not found.`\n );\n }\n\n await pagesPermissions.ensure({ owns: original.createdBy });\n\n const validation = UpdateDataModel.safeParse(input);\n if (!validation.success) {\n throw createZodError(validation.error);\n }\n\n const importExportSubTask = {\n ...original\n };\n for (const key in validation.data) {\n // @ts-expect-error\n const value = validation.data[key];\n if (value === undefined) {\n continue;\n }\n // @ts-expect-error\n importExportSubTask[key] = value;\n }\n\n try {\n return await storageOperations.updateSubTask({\n input: validation.data,\n original,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportSubTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask,\n original\n }\n );\n }\n },\n\n async getSubTask(parent, subTaskId) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id: subTaskId,\n parent: parent\n }\n };\n\n let importExportSubTask: ImportExportTask | null = null;\n\n try {\n importExportSubTask = await storageOperations.getSubTask(params);\n if (!importExportSubTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportSubTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n\n await pagesPermissions.ensure({ owns: importExportSubTask.createdBy });\n\n return importExportSubTask;\n },\n\n async listSubTasks(parent, status, limit) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const listParams: ImportExportTaskStorageOperationsListSubTaskParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n parent: parent,\n status\n },\n limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (await pagesPermissions.canAccessOnlyOwnRecords()) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listSubTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportSubTask.\",\n ex.code || \"LIST_IMPORT_EXPORT_TASK_ERROR\",\n {\n params: {\n parent,\n status,\n limit\n }\n }\n );\n }\n }\n };\n });\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import { ContextPlugin } from "@webiny/api";
2
- import { PbImportExportContext } from "../../types";
2
+ import type { PbImportExportContext } from "../../types";
3
3
  declare const _default: ContextPlugin<PbImportExportContext>;
4
4
  export default _default;
@@ -1,174 +1,273 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _error = _interopRequireDefault(require("@webiny/error"));
11
-
9
+ var _pubsub = require("@webiny/pubsub");
12
10
  var _handlerGraphql = require("@webiny/handler-graphql");
13
-
14
11
  var _api = require("@webiny/api");
15
-
16
- var _checkBasePermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions"));
17
-
18
- var _types = require("../../types");
19
-
20
- var _client = require("../../client");
21
-
22
- var _utils = require("../../import/utils");
23
-
24
- var _utils2 = require("../../export/utils");
25
-
26
- var _utils3 = require("@webiny/utils");
27
-
28
- const PERMISSION_NAME = "pb.page";
29
- const EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
30
- const IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
31
-
32
- var _default = new _api.ContextPlugin(context => {
33
- const importExportCrud = {
34
- async importPages({
35
- category: categorySlug,
36
- zipFileUrl,
37
- meta
38
- }) {
39
- await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
40
- rwd: "w"
41
- }); // Bail out early if category not found
42
-
43
- const category = await context.pageBuilder.getCategory(categorySlug);
44
-
45
- if (!category) {
46
- throw new _handlerGraphql.NotFoundError(`Category with slug "${categorySlug}" not found.`);
47
- } // Create a task for import page
48
-
49
-
50
- const task = await context.pageBuilder.importExportTask.createTask({
51
- status: _types.ImportExportTaskStatus.PENDING,
52
- input: {
53
- category: categorySlug,
54
- zipFileUrl
55
- }
12
+ var _PagesPermissions = require("@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions");
13
+ var _types = require("../../export/pages/types");
14
+ var _types2 = require("../../import/pages/types");
15
+ var _default = exports.default = new _api.ContextPlugin(context => {
16
+ const pagesPermissions = new _PagesPermissions.PagesPermissions({
17
+ getPermissions: () => context.security.getPermissions("pb.page"),
18
+ getIdentity: context.security.getIdentity,
19
+ fullAccessPermissionName: "pb.*"
20
+ });
21
+
22
+ // Export
23
+ const onPagesBeforeExport = (0, _pubsub.createTopic)("PageBuilder.onPagesBeforeExport");
24
+ const onPagesAfterExport = (0, _pubsub.createTopic)("PageBuilder.onPagesAfterExport");
25
+
26
+ // Import
27
+ const onPagesBeforeImport = (0, _pubsub.createTopic)("PageBuilder.onPagesBeforeImport");
28
+ const onPagesAfterImport = (0, _pubsub.createTopic)("PageBuilder.onPagesAfterImport");
29
+ context.pageBuilder.pages = {
30
+ onPagesBeforeExport,
31
+ onPagesAfterExport,
32
+ onPagesBeforeImport,
33
+ onPagesAfterImport,
34
+ /**
35
+ * Background task implementation.
36
+ */
37
+ getExportPagesTask: async id => {
38
+ const task = await context.tasks.getTask(id);
39
+ if (!task || task.definitionId !== _types.PageExportTask.Controller) {
40
+ return null;
41
+ }
42
+ const totalPages = task.input.totalPages || 0;
43
+ const data = {
44
+ url: task.output?.url,
45
+ error: task.output?.error
46
+ };
47
+ const {
48
+ items: subTasks
49
+ } = await context.tasks.listTasks({
50
+ where: {
51
+ parentId: task.id,
52
+ definitionId: _types.PageExportTask.ZipPages
53
+ },
54
+ limit: 10000
56
55
  });
57
- /**
58
- * Import Pages
59
- * ImportPages
60
- * importPages
61
- */
62
-
63
- await (0, _client.invokeHandlerClient)({
64
- context,
65
- name: IMPORT_PAGES_CREATE_HANDLER,
66
- payload: {
67
- category: categorySlug,
68
- zipFileUrl,
69
- task,
70
- type: "page",
71
- identity: context.security.getIdentity(),
72
- meta
56
+ const stats = {
57
+ completed: [],
58
+ failed: []
59
+ };
60
+ for (const subTask of subTasks) {
61
+ if (!subTask.output) {
62
+ continue;
63
+ }
64
+ const completed = Object.keys(subTask.output.done || []);
65
+ const failed = subTask.output.failed || [];
66
+ stats.completed.push(...completed);
67
+ stats.failed.push(...failed);
68
+ }
69
+ return {
70
+ ...task,
71
+ status: task.taskStatus,
72
+ data,
73
+ stats: {
74
+ total: totalPages,
75
+ completed: stats.completed.length,
76
+ failed: stats.failed.length
77
+ }
78
+ };
79
+ },
80
+ async getImportPagesTask(id) {
81
+ const task = await context.tasks.getTask(id);
82
+ if (!task || task.definitionId !== _types2.PageImportTask.Controller) {
83
+ return null;
84
+ }
85
+ const data = {
86
+ error: task.output?.error
87
+ };
88
+ const {
89
+ items: subTasks
90
+ } = await context.tasks.listTasks({
91
+ where: {
92
+ parentId: task.id,
93
+ definitionId: _types2.PageImportTask.Process
73
94
  },
74
- description: "Import Pages - create"
95
+ limit: 10000
96
+ });
97
+ const stats = subTasks.reduce((result, item) => {
98
+ if (!item.output) {
99
+ return result;
100
+ }
101
+ return {
102
+ ...result,
103
+ completed: result.completed + (item.output.done || []).length,
104
+ failed: result.failed + (item.output.failed || []).length
105
+ };
106
+ }, {
107
+ total: task.output?.total || 0,
108
+ completed: 0,
109
+ failed: 0
75
110
  });
76
111
  return {
77
- task
112
+ ...task,
113
+ status: task.taskStatus,
114
+ data,
115
+ stats
78
116
  };
79
117
  },
80
-
81
- async exportPages({
82
- ids: initialPageIds,
83
- revisionType,
84
- where,
85
- sort,
86
- search
87
- }) {
88
- await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
118
+ async importPages(params) {
119
+ const {
120
+ category: categorySlug,
121
+ zipFileUrl,
122
+ meta
123
+ } = params;
124
+ await pagesPermissions.ensure({
89
125
  rwd: "w"
90
126
  });
91
- let pageIds = initialPageIds || []; // If no ids are provided then it means we want to export all pages
92
-
93
- if (!initialPageIds || Array.isArray(initialPageIds) && initialPageIds.length === 0) {
94
- pageIds = [];
95
- let pages = [];
96
- let meta = {
97
- hasMoreItems: true,
98
- cursor: null,
99
- totalCount: 0
100
- }; // Paginate pages
101
-
102
- while (meta.hasMoreItems) {
103
- [pages, meta] = await context.pageBuilder.listLatestPages({
104
- after: meta.cursor,
105
- where: where,
106
- sort: sort,
107
- search: search
108
- }); // Save page ids
109
127
 
110
- pages.forEach(page => pageIds.push(page.id));
111
- }
128
+ // Bail out early if category not found
129
+ const category = await context.pageBuilder.getCategory(categorySlug);
130
+ if (!category) {
131
+ throw new _handlerGraphql.NotFoundError(`Category with slug "${categorySlug}" not found.`);
112
132
  }
113
-
114
- if (pageIds.length === 0) {
115
- throw new _error.default("Cannot export pages - no pages found for provided inputs.", "EMPTY_EXPORT_NO_PAGES_FOUND");
116
- } // Create the main task for page export.
117
-
118
-
119
- const task = await context.pageBuilder.importExportTask.createTask({
120
- status: _types.ImportExportTaskStatus.PENDING
121
- });
122
- const exportPagesDataKey = `${_utils2.EXPORT_PAGES_FOLDER_KEY}/${task.id}`; // For each page create a sub task and invoke the process handler.
123
-
124
- for (let i = 0; i < pageIds.length; i++) {
125
- const pageId = pageIds[i]; // Create sub task.
126
-
127
- await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils3.zeroPad)(i + 1, 5), {
128
- status: _types.ImportExportTaskStatus.PENDING,
133
+ const identity = context.security.getIdentity();
134
+ try {
135
+ await onPagesBeforeImport.publish({
136
+ params
137
+ });
138
+ const task = await context.tasks.trigger({
139
+ definition: _types2.PageImportTask.Controller,
129
140
  input: {
130
- pageId,
131
- exportPagesDataKey,
132
- revisionType
141
+ category: categorySlug,
142
+ zipFileUrl,
143
+ meta,
144
+ identity: {
145
+ id: identity.id,
146
+ displayName: identity.displayName || "unknown",
147
+ type: identity.type
148
+ }
133
149
  }
134
150
  });
135
- } // Update main task status.
136
-
137
-
138
- await context.pageBuilder.importExportTask.updateTask(task.id, {
139
- status: _types.ImportExportTaskStatus.PROCESSING,
140
- stats: (0, _utils.initialStats)(pageIds.length),
141
- input: {
142
- exportPagesDataKey,
143
- revisionType
144
- }
151
+ await onPagesAfterImport.publish({
152
+ params
153
+ });
154
+ return {
155
+ task: {
156
+ id: task.id,
157
+ status: task.taskStatus,
158
+ data: {},
159
+ createdOn: task.createdOn,
160
+ createdBy: task.createdBy,
161
+ stats: {
162
+ total: 0,
163
+ completed: 0,
164
+ failed: 0
165
+ }
166
+ }
167
+ };
168
+ } catch (ex) {
169
+ console.error(ex);
170
+ throw ex;
171
+ }
172
+ },
173
+ async exportPages(params) {
174
+ await pagesPermissions.ensure({
175
+ rwd: "w"
145
176
  });
177
+ const listPages = input => {
178
+ const {
179
+ revisionType,
180
+ ...conditions
181
+ } = input;
182
+ if (revisionType === "published") {
183
+ return context.pageBuilder.listPublishedPages(conditions);
184
+ }
185
+ return context.pageBuilder.listLatestPages(conditions);
186
+ };
146
187
  /**
147
- * Export Pages
148
- * ExportPages
149
- * exportPages
188
+ * We just need to check if even a single page exists for the provided params.
189
+ * If not, no point in starting a background task.
150
190
  */
151
- // Invoke handler.
191
+ const [pages, meta] = await listPages({
192
+ ...params,
193
+ limit: 1
194
+ });
195
+ if (!pages.length || meta.totalCount === 0) {
196
+ throw new _error.default("Cannot export pages - no pages found for provided inputs.", "EMPTY_EXPORT_NO_PAGES_FOUND");
197
+ }
152
198
 
153
- await (0, _client.invokeHandlerClient)({
154
- context,
155
- name: EXPORT_PAGES_PROCESS_HANDLER,
156
- payload: {
157
- taskId: task.id,
158
- subTaskIndex: 1,
159
- type: "page",
160
- identity: context.security.getIdentity()
199
+ // Create the main task for page export.
200
+ try {
201
+ await onPagesBeforeExport.publish({
202
+ params
203
+ });
204
+ const task = await context.tasks.trigger({
205
+ input: {
206
+ ...params,
207
+ type: params.revisionType,
208
+ totalPages: meta.totalCount
209
+ },
210
+ definition: _types.PageExportTask.Controller
211
+ });
212
+ await onPagesAfterExport.publish({
213
+ params
214
+ });
215
+ return {
216
+ task: {
217
+ id: task.id,
218
+ status: task.taskStatus,
219
+ data: {},
220
+ createdOn: task.createdOn,
221
+ createdBy: task.createdBy,
222
+ stats: {
223
+ total: meta.totalCount,
224
+ completed: 0,
225
+ failed: 0
226
+ }
227
+ }
228
+ };
229
+ } catch (ex) {
230
+ console.error(ex);
231
+ throw ex;
232
+ }
233
+ },
234
+ listImportedPages: async taskId => {
235
+ const task = await context.tasks.getTask(taskId);
236
+ if (!task || task.definitionId !== _types2.PageImportTask.Controller) {
237
+ throw new _handlerGraphql.NotFoundError(`Task with id "${taskId}" not found.`);
238
+ }
239
+ const {
240
+ items: subTasks
241
+ } = await context.tasks.listTasks({
242
+ where: {
243
+ parentId: task.id,
244
+ definitionId: _types2.PageImportTask.Process
161
245
  },
162
- description: "Export pages - process"
246
+ limit: 10000
247
+ });
248
+ const pageIdList = subTasks.reduce((collection, subTask) => {
249
+ if (!subTask.output?.pageIdList) {
250
+ return collection;
251
+ }
252
+ collection.push(...subTask.output.pageIdList);
253
+ return collection;
254
+ }, []);
255
+ const result = await context.pageBuilder.listLatestPages({
256
+ where: {
257
+ pid_in: pageIdList
258
+ },
259
+ limit: 10000
260
+ });
261
+ const [pages] = result;
262
+ return pages.map(page => {
263
+ return {
264
+ id: page.id,
265
+ title: page.title,
266
+ version: page.version
267
+ };
163
268
  });
164
- return {
165
- task
166
- };
167
269
  }
168
-
169
- }; // Modify context
170
-
171
- context.pageBuilder.pages = importExportCrud;
270
+ };
172
271
  });
173
272
 
174
- exports.default = _default;
273
+ //# sourceMappingURL=pages.crud.js.map