@webiny/api-page-builder-import-export 0.0.0-unstable.de38392959 → 0.0.0-unstable.e0bfc55d5a

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 (225) hide show
  1. package/client.d.ts +1 -1
  2. package/client.js.map +1 -1
  3. package/export/combine/blocksHandler.d.ts +2 -2
  4. package/export/combine/blocksHandler.js.map +1 -1
  5. package/export/combine/formsHandler.d.ts +2 -2
  6. package/export/combine/formsHandler.js.map +1 -1
  7. package/export/combine/index.d.ts +2 -2
  8. package/export/combine/index.js +2 -2
  9. package/export/combine/index.js.map +1 -1
  10. package/export/combine/templatesHandler.d.ts +2 -2
  11. package/export/combine/templatesHandler.js.map +1 -1
  12. package/export/pages/ExportPagesCleanup.d.ts +5 -0
  13. package/export/pages/ExportPagesCleanup.js +82 -0
  14. package/export/pages/ExportPagesCleanup.js.map +1 -0
  15. package/export/pages/ExportPagesController.d.ts +5 -0
  16. package/export/pages/ExportPagesController.js +31 -0
  17. package/export/pages/ExportPagesController.js.map +1 -0
  18. package/export/pages/ExportPagesZipPages.d.ts +5 -0
  19. package/export/pages/ExportPagesZipPages.js +23 -0
  20. package/export/pages/ExportPagesZipPages.js.map +1 -0
  21. package/export/pages/controller/CombineZippedPages.d.ts +5 -0
  22. package/export/pages/controller/CombineZippedPages.js +75 -0
  23. package/export/pages/controller/CombineZippedPages.js.map +1 -0
  24. package/export/pages/controller/CreateZipPagesTasks.d.ts +8 -0
  25. package/export/pages/controller/CreateZipPagesTasks.js +103 -0
  26. package/export/pages/controller/CreateZipPagesTasks.js.map +1 -0
  27. package/export/pages/controller/ProcessZipPagesTasks.d.ts +6 -0
  28. package/export/pages/controller/ProcessZipPagesTasks.js +61 -0
  29. package/export/pages/controller/ProcessZipPagesTasks.js.map +1 -0
  30. package/export/pages/types.d.ts +53 -0
  31. package/export/pages/types.js +26 -0
  32. package/export/pages/types.js.map +1 -0
  33. package/export/pages/utils.d.ts +2 -0
  34. package/export/pages/utils.js +13 -0
  35. package/export/pages/utils.js.map +1 -0
  36. package/export/pages/zipPages/ZipPages.d.ts +5 -0
  37. package/export/pages/zipPages/ZipPages.js +100 -0
  38. package/export/pages/zipPages/ZipPages.js.map +1 -0
  39. package/export/pages/zipPages/ZipPagesDataManager.d.ts +14 -0
  40. package/export/pages/zipPages/ZipPagesDataManager.js +46 -0
  41. package/export/pages/zipPages/ZipPagesDataManager.js.map +1 -0
  42. package/export/pages/zipPages/getPageFactory.d.ts +4 -0
  43. package/export/pages/zipPages/getPageFactory.js +38 -0
  44. package/export/pages/zipPages/getPageFactory.js.map +1 -0
  45. package/export/process/blocksHandler.d.ts +2 -2
  46. package/export/process/blocksHandler.js.map +1 -1
  47. package/export/process/exporters/BlockExporter.d.ts +2 -2
  48. package/export/process/exporters/BlockExporter.js.map +1 -1
  49. package/export/process/exporters/FormExporter.d.ts +2 -2
  50. package/export/process/exporters/FormExporter.js.map +1 -1
  51. package/export/process/exporters/PageExporter.d.ts +10 -3
  52. package/export/process/exporters/PageExporter.js +2 -1
  53. package/export/process/exporters/PageExporter.js.map +1 -1
  54. package/export/process/exporters/PageTemplateExporter.d.ts +3 -3
  55. package/export/process/exporters/PageTemplateExporter.js +3 -1
  56. package/export/process/exporters/PageTemplateExporter.js.map +1 -1
  57. package/export/process/formsHandler.d.ts +2 -2
  58. package/export/process/formsHandler.js.map +1 -1
  59. package/export/process/index.d.ts +2 -2
  60. package/export/process/index.js +2 -2
  61. package/export/process/index.js.map +1 -1
  62. package/export/process/templatesHandler.d.ts +2 -2
  63. package/export/process/templatesHandler.js.map +1 -1
  64. package/export/s3Stream.d.ts +6 -4
  65. package/export/s3Stream.js +1 -2
  66. package/export/s3Stream.js.map +1 -1
  67. package/export/utils.d.ts +4 -4
  68. package/export/utils.js +7 -9
  69. package/export/utils.js.map +1 -1
  70. package/export/zipper.d.ts +3 -2
  71. package/export/zipper.js.map +1 -1
  72. package/graphql/crud/blocks.crud.d.ts +1 -1
  73. package/graphql/crud/blocks.crud.js +1 -2
  74. package/graphql/crud/blocks.crud.js.map +1 -1
  75. package/graphql/crud/forms.crud.d.ts +1 -1
  76. package/graphql/crud/forms.crud.js +1 -2
  77. package/graphql/crud/forms.crud.js.map +1 -1
  78. package/graphql/crud/importExportTasks.crud.d.ts +2 -2
  79. package/graphql/crud/importExportTasks.crud.js +73 -58
  80. package/graphql/crud/importExportTasks.crud.js.map +1 -1
  81. package/graphql/crud/pages.crud.d.ts +1 -2
  82. package/graphql/crud/pages.crud.js +208 -125
  83. package/graphql/crud/pages.crud.js.map +1 -1
  84. package/graphql/crud/templates.crud.d.ts +1 -1
  85. package/graphql/crud/templates.crud.js +1 -2
  86. package/graphql/crud/templates.crud.js.map +1 -1
  87. package/graphql/crud.d.ts +2 -2
  88. package/graphql/crud.js.map +1 -1
  89. package/graphql/graphql/blocks.gql.d.ts +2 -2
  90. package/graphql/graphql/blocks.gql.js +4 -6
  91. package/graphql/graphql/blocks.gql.js.map +1 -1
  92. package/graphql/graphql/forms.gql.d.ts +2 -2
  93. package/graphql/graphql/forms.gql.js +4 -6
  94. package/graphql/graphql/forms.gql.js.map +1 -1
  95. package/graphql/graphql/importExportTasks.gql.d.ts +2 -2
  96. package/graphql/graphql/importExportTasks.gql.js +5 -7
  97. package/graphql/graphql/importExportTasks.gql.js.map +1 -1
  98. package/graphql/graphql/pages.gql.d.ts +2 -2
  99. package/graphql/graphql/pages.gql.js +101 -14
  100. package/graphql/graphql/pages.gql.js.map +1 -1
  101. package/graphql/graphql/templates.gql.d.ts +2 -2
  102. package/graphql/graphql/templates.gql.js +4 -6
  103. package/graphql/graphql/templates.gql.js.map +1 -1
  104. package/graphql/graphql/utils/resolve.d.ts +3 -3
  105. package/graphql/graphql/utils/resolve.js +14 -5
  106. package/graphql/graphql/utils/resolve.js.map +1 -1
  107. package/graphql/graphql.d.ts +1 -1
  108. package/graphql/graphql.js +1 -2
  109. package/graphql/graphql.js.map +1 -1
  110. package/graphql/index.d.ts +2 -2
  111. package/graphql/index.js +2 -1
  112. package/graphql/index.js.map +1 -1
  113. package/graphql/types.d.ts +61 -33
  114. package/graphql/types.js.map +1 -1
  115. package/import/constants.js +3 -6
  116. package/import/constants.js.map +1 -1
  117. package/import/create/blocksHandler.d.ts +2 -2
  118. package/import/create/blocksHandler.js.map +1 -1
  119. package/import/create/formsHandler.d.ts +2 -2
  120. package/import/create/formsHandler.js.map +1 -1
  121. package/import/create/index.d.ts +2 -2
  122. package/import/create/index.js +2 -2
  123. package/import/create/index.js.map +1 -1
  124. package/import/create/pagesHandler.d.ts +2 -2
  125. package/import/create/pagesHandler.js.map +1 -1
  126. package/import/create/templatesHandler.d.ts +2 -2
  127. package/import/create/templatesHandler.js.map +1 -1
  128. package/import/pages/ImportPagesController.d.ts +5 -0
  129. package/import/pages/ImportPagesController.js +29 -0
  130. package/import/pages/ImportPagesController.js.map +1 -0
  131. package/import/pages/ImportPagesProcessPages.d.ts +6 -0
  132. package/import/pages/ImportPagesProcessPages.js +112 -0
  133. package/import/pages/ImportPagesProcessPages.js.map +1 -0
  134. package/import/pages/controller/ImportPagesProcessPagesChecker.d.ts +6 -0
  135. package/import/pages/controller/ImportPagesProcessPagesChecker.js +40 -0
  136. package/import/pages/controller/ImportPagesProcessPagesChecker.js.map +1 -0
  137. package/import/pages/controller/ImportPagesProcessZipFile.d.ts +5 -0
  138. package/import/pages/controller/ImportPagesProcessZipFile.js +71 -0
  139. package/import/pages/controller/ImportPagesProcessZipFile.js.map +1 -0
  140. package/import/{process/pages → pages/process}/importPage.d.ts +3 -4
  141. package/import/pages/process/importPage.js.map +1 -0
  142. package/import/pages/types.d.ts +48 -0
  143. package/import/pages/types.js +20 -0
  144. package/import/pages/types.js.map +1 -0
  145. package/import/process/blocks/ElementIdsProcessor.d.ts +5 -0
  146. package/import/process/blocks/ElementIdsProcessor.js +26 -0
  147. package/import/process/blocks/ElementIdsProcessor.js.map +1 -0
  148. package/import/process/blocks/blocksHandler.d.ts +2 -2
  149. package/import/process/blocks/blocksHandler.js.map +1 -1
  150. package/import/process/blocks/importBlock.d.ts +3 -3
  151. package/import/process/blocks/importBlock.js +5 -2
  152. package/import/process/blocks/importBlock.js.map +1 -1
  153. package/import/process/forms/formsHandler.d.ts +2 -2
  154. package/import/process/forms/formsHandler.js.map +1 -1
  155. package/import/process/forms/importForm.d.ts +2 -2
  156. package/import/process/forms/importForm.js.map +1 -1
  157. package/import/process/index.d.ts +2 -2
  158. package/import/process/index.js +2 -2
  159. package/import/process/index.js.map +1 -1
  160. package/import/process/templates/importTemplate.d.ts +3 -3
  161. package/import/process/templates/importTemplate.js.map +1 -1
  162. package/import/process/templates/templatesHandler.d.ts +2 -2
  163. package/import/process/templates/templatesHandler.js +3 -1
  164. package/import/process/templates/templatesHandler.js.map +1 -1
  165. package/import/utils/deleteS3Folder.js.map +1 -1
  166. package/import/utils/extractAndUploadZipFileContents.d.ts +1 -1
  167. package/import/utils/extractAndUploadZipFileContents.js +6 -3
  168. package/import/utils/extractAndUploadZipFileContents.js.map +1 -1
  169. package/import/utils/extractZipAndUploadToS3.d.ts +1 -1
  170. package/import/utils/extractZipAndUploadToS3.js.map +1 -1
  171. package/import/utils/getFileNameWithoutExt.js.map +1 -1
  172. package/import/utils/index.js.map +1 -1
  173. package/import/utils/initialStats.js.map +1 -1
  174. package/import/utils/prepareDataDirMap.d.ts +1 -1
  175. package/import/utils/prepareDataDirMap.js.map +1 -1
  176. package/import/utils/updateFilesInData.d.ts +1 -1
  177. package/import/utils/updateFilesInData.js.map +1 -1
  178. package/import/utils/uploadAssets.d.ts +3 -3
  179. package/import/utils/uploadAssets.js.map +1 -1
  180. package/import/utils/uploadFilesFromS3.d.ts +3 -3
  181. package/import/utils/uploadFilesFromS3.js.map +1 -1
  182. package/mockSecurity.d.ts +1 -1
  183. package/mockSecurity.js.map +1 -1
  184. package/package.json +33 -41
  185. package/tasks/common/ChildTasksCleanup.d.ts +12 -0
  186. package/tasks/common/ChildTasksCleanup.js +64 -0
  187. package/tasks/common/ChildTasksCleanup.js.map +1 -0
  188. package/tasks/index.d.ts +1 -0
  189. package/tasks/index.js +13 -0
  190. package/tasks/index.js.map +1 -0
  191. package/tasks/pages/exportPagesCleanupTask.d.ts +3 -0
  192. package/tasks/pages/exportPagesCleanupTask.js +36 -0
  193. package/tasks/pages/exportPagesCleanupTask.js.map +1 -0
  194. package/tasks/pages/exportPagesControllerTask.d.ts +3 -0
  195. package/tasks/pages/exportPagesControllerTask.js +83 -0
  196. package/tasks/pages/exportPagesControllerTask.js.map +1 -0
  197. package/tasks/pages/exportPagesZipPagesTask.d.ts +3 -0
  198. package/tasks/pages/exportPagesZipPagesTask.js +39 -0
  199. package/tasks/pages/exportPagesZipPagesTask.js.map +1 -0
  200. package/tasks/pages/importPagesControllerTask.d.ts +3 -0
  201. package/tasks/pages/importPagesControllerTask.js +39 -0
  202. package/tasks/pages/importPagesControllerTask.js.map +1 -0
  203. package/tasks/pages/importPagesProcessPageTask.d.ts +3 -0
  204. package/tasks/pages/importPagesProcessPageTask.js +39 -0
  205. package/tasks/pages/importPagesProcessPageTask.js.map +1 -0
  206. package/tasks/pages/index.d.ts +1 -0
  207. package/tasks/pages/index.js +17 -0
  208. package/tasks/pages/index.js.map +1 -0
  209. package/types.d.ts +2 -2
  210. package/types.js +2 -4
  211. package/types.js.map +1 -1
  212. package/utils/ZipFiles.d.ts +11 -0
  213. package/utils/ZipFiles.js +124 -0
  214. package/utils/ZipFiles.js.map +1 -0
  215. package/export/combine/pagesHandler.d.ts +0 -6
  216. package/export/combine/pagesHandler.js +0 -101
  217. package/export/combine/pagesHandler.js.map +0 -1
  218. package/export/process/pagesHandler.d.ts +0 -6
  219. package/export/process/pagesHandler.js +0 -191
  220. package/export/process/pagesHandler.js.map +0 -1
  221. package/import/process/pages/importPage.js.map +0 -1
  222. package/import/process/pages/pagesHandler.d.ts +0 -3
  223. package/import/process/pages/pagesHandler.js +0 -185
  224. package/import/process/pages/pagesHandler.js.map +0 -1
  225. /package/import/{process/pages → pages/process}/importPage.js +0 -0
@@ -4,21 +4,15 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = exports.EXPORT_PAGES_FOLDER_KEY = void 0;
7
+ exports.default = void 0;
8
8
  var _error = _interopRequireDefault(require("@webiny/error"));
9
9
  var _pubsub = require("@webiny/pubsub");
10
10
  var _handlerGraphql = require("@webiny/handler-graphql");
11
11
  var _api = require("@webiny/api");
12
- var _types = require("../../types");
13
- var _client = require("../../client");
14
- var _utils = require("../../import/utils");
15
- var _utils2 = require("@webiny/utils");
16
12
  var _PagesPermissions = require("@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions");
17
- const EXPORT_PAGES_FOLDER_KEY = "WEBINY_PB_EXPORT_PAGES";
18
- exports.EXPORT_PAGES_FOLDER_KEY = EXPORT_PAGES_FOLDER_KEY;
19
- const EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
20
- const IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
21
- var _default = new _api.ContextPlugin(context => {
13
+ var _types = require("../../export/pages/types");
14
+ var _types2 = require("../../import/pages/types");
15
+ var _default = exports.default = new _api.ContextPlugin(context => {
22
16
  const pagesPermissions = new _PagesPermissions.PagesPermissions({
23
17
  getPermissions: () => context.security.getPermissions("pb.page"),
24
18
  getIdentity: context.security.getIdentity,
@@ -32,11 +26,95 @@ var _default = new _api.ContextPlugin(context => {
32
26
  // Import
33
27
  const onPagesBeforeImport = (0, _pubsub.createTopic)("PageBuilder.onPagesBeforeImport");
34
28
  const onPagesAfterImport = (0, _pubsub.createTopic)("PageBuilder.onPagesAfterImport");
35
- const importExportCrud = {
29
+ context.pageBuilder.pages = {
36
30
  onPagesBeforeExport,
37
31
  onPagesAfterExport,
38
32
  onPagesBeforeImport,
39
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
55
+ });
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
94
+ },
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
110
+ });
111
+ return {
112
+ ...task,
113
+ status: task.taskStatus,
114
+ data,
115
+ stats
116
+ };
117
+ },
40
118
  async importPages(params) {
41
119
  const {
42
120
  category: categorySlug,
@@ -52,139 +130,144 @@ var _default = new _api.ContextPlugin(context => {
52
130
  if (!category) {
53
131
  throw new _handlerGraphql.NotFoundError(`Category with slug "${categorySlug}" not found.`);
54
132
  }
55
-
56
- // Create a task for import page
57
- const task = await context.pageBuilder.importExportTask.createTask({
58
- status: _types.ImportExportTaskStatus.PENDING,
59
- input: {
60
- category: categorySlug,
61
- zipFileUrl
62
- }
63
- });
64
- /**
65
- * Import Pages
66
- * ImportPages
67
- * importPages
68
- */
69
- await onPagesBeforeImport.publish({
70
- params
71
- });
72
- await (0, _client.invokeHandlerClient)({
73
- context,
74
- name: IMPORT_PAGES_CREATE_HANDLER,
75
- payload: {
76
- category: categorySlug,
77
- zipFileUrl,
78
- task,
79
- type: "page",
80
- identity: context.security.getIdentity(),
81
- meta
82
- },
83
- description: "Import Pages - create"
84
- });
85
- await onPagesAfterImport.publish({
86
- params
87
- });
88
- return {
89
- task
90
- };
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,
140
+ input: {
141
+ category: categorySlug,
142
+ zipFileUrl,
143
+ meta,
144
+ identity: {
145
+ id: identity.id,
146
+ displayName: identity.displayName || "unknown",
147
+ type: identity.type
148
+ }
149
+ }
150
+ });
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
+ }
91
172
  },
92
173
  async exportPages(params) {
93
- const {
94
- ids: initialPageIds,
95
- revisionType,
96
- where,
97
- sort,
98
- search
99
- } = params;
100
174
  await pagesPermissions.ensure({
101
175
  rwd: "w"
102
176
  });
103
- let pageIds = initialPageIds || [];
104
- // If no ids are provided then it means we want to export all pages
105
- if (!initialPageIds || Array.isArray(initialPageIds) && initialPageIds.length === 0) {
106
- pageIds = [];
107
- let pages = [];
108
- let meta = {
109
- hasMoreItems: true,
110
- cursor: null,
111
- totalCount: 0
112
- };
113
- // Paginate pages
114
- while (meta.hasMoreItems) {
115
- [pages, meta] = await context.pageBuilder.listLatestPages({
116
- after: meta.cursor,
117
- where: where,
118
- sort: sort,
119
- search: search
120
- });
121
- // Save page ids
122
- pages.forEach(page => pageIds.push(page.id));
177
+ const listPages = input => {
178
+ const {
179
+ revisionType,
180
+ ...conditions
181
+ } = input;
182
+ if (revisionType === "published") {
183
+ return context.pageBuilder.listPublishedPages(conditions);
123
184
  }
124
- }
125
- if (pageIds.length === 0) {
185
+ return context.pageBuilder.listLatestPages(conditions);
186
+ };
187
+ /**
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.
190
+ */
191
+ const [pages, meta] = await listPages({
192
+ ...params,
193
+ limit: 1
194
+ });
195
+ if (!pages.length || meta.totalCount === 0) {
126
196
  throw new _error.default("Cannot export pages - no pages found for provided inputs.", "EMPTY_EXPORT_NO_PAGES_FOUND");
127
197
  }
128
198
 
129
199
  // Create the main task for page export.
130
- const task = await context.pageBuilder.importExportTask.createTask({
131
- status: _types.ImportExportTaskStatus.PENDING
132
- });
133
- const exportPagesDataKey = `${EXPORT_PAGES_FOLDER_KEY}/${task.id}`;
134
- // For each page create a sub-task and invoke the process handler.
135
- for (let i = 0; i < pageIds.length; i++) {
136
- const pageId = pageIds[i];
137
- // Create sub-task.
138
- await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
139
- status: _types.ImportExportTaskStatus.PENDING,
200
+ try {
201
+ await onPagesBeforeExport.publish({
202
+ params
203
+ });
204
+ const task = await context.tasks.trigger({
140
205
  input: {
141
- pageId,
142
- exportPagesDataKey,
143
- revisionType
144
- }
206
+ ...params,
207
+ type: params.revisionType,
208
+ totalPages: meta.totalCount
209
+ },
210
+ definition: _types.PageExportTask.Controller
211
+ });
212
+ await onPagesAfterExport.publish({
213
+ params
145
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;
146
232
  }
147
- // Update main task status.
148
- await context.pageBuilder.importExportTask.updateTask(task.id, {
149
- status: _types.ImportExportTaskStatus.PROCESSING,
150
- stats: (0, _utils.initialStats)(pageIds.length),
151
- input: {
152
- exportPagesDataKey,
153
- revisionType
154
- }
155
- });
156
-
157
- /**
158
- * Export Pages
159
- * ExportPages
160
- * exportPages
161
- */
162
- await onPagesBeforeExport.publish({
163
- params
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
245
+ },
246
+ limit: 10000
164
247
  });
165
- // Invoke handler.
166
- await (0, _client.invokeHandlerClient)({
167
- context,
168
- name: EXPORT_PAGES_PROCESS_HANDLER,
169
- payload: {
170
- taskId: task.id,
171
- subTaskIndex: 1,
172
- type: "page",
173
- identity: context.security.getIdentity()
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
174
258
  },
175
- description: "Export pages - process"
259
+ limit: 10000
176
260
  });
177
- await onPagesAfterExport.publish({
178
- params
261
+ const [pages] = result;
262
+ return pages.map(page => {
263
+ return {
264
+ id: page.id,
265
+ title: page.title,
266
+ version: page.version
267
+ };
179
268
  });
180
- return {
181
- task
182
- };
183
269
  }
184
270
  };
185
- // Modify context
186
- context.pageBuilder.pages = importExportCrud;
187
271
  });
188
- exports.default = _default;
189
272
 
190
273
  //# sourceMappingURL=pages.crud.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_pubsub","_handlerGraphql","_api","_types","_client","_utils","_utils2","_PagesPermissions","EXPORT_PAGES_FOLDER_KEY","exports","EXPORT_PAGES_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_PAGES_CREATE_HANDLER","IMPORT_CREATE_HANDLER","_default","ContextPlugin","context","pagesPermissions","PagesPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","onPagesBeforeExport","createTopic","onPagesAfterExport","onPagesBeforeImport","onPagesAfterImport","importExportCrud","importPages","params","category","categorySlug","zipFileUrl","meta","ensure","rwd","pageBuilder","getCategory","NotFoundError","task","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","publish","invokeHandlerClient","name","payload","type","identity","description","exportPages","ids","initialPageIds","revisionType","where","sort","search","pageIds","Array","isArray","length","pages","hasMoreItems","cursor","totalCount","listLatestPages","after","forEach","page","push","id","WebinyError","exportPagesDataKey","i","pageId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex","default"],"sources":["pages.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport {\n ImportExportTaskStatus,\n PagesImportExportCrud,\n PbImportExportContext,\n OnPagesBeforeExportTopicParams,\n OnPagesAfterExportTopicParams,\n OnPagesBeforeImportTopicParams,\n OnPagesAfterImportTopicParams\n} from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as CreateHandlerPayload } from \"~/import/create\";\nimport { initialStats } from \"~/import/utils\";\nimport { Payload as ExportPagesProcessHandlerPayload } from \"~/export/process\";\nimport { MetaResponse } from \"@webiny/api-page-builder/types\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { PagesPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions\";\n\nexport const EXPORT_PAGES_FOLDER_KEY = \"WEBINY_PB_EXPORT_PAGES\";\nconst EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER as string;\nconst IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER as string;\n\nexport default new ContextPlugin<PbImportExportContext>(context => {\n const pagesPermissions = new PagesPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.page\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n // Export\n const onPagesBeforeExport = createTopic<OnPagesBeforeExportTopicParams>(\n \"PageBuilder.onPagesBeforeExport\"\n );\n const onPagesAfterExport = createTopic<OnPagesAfterExportTopicParams>(\n \"PageBuilder.onPagesAfterExport\"\n );\n\n // Import\n const onPagesBeforeImport = createTopic<OnPagesBeforeImportTopicParams>(\n \"PageBuilder.onPagesBeforeImport\"\n );\n const onPagesAfterImport = createTopic<OnPagesAfterImportTopicParams>(\n \"PageBuilder.onPagesAfterImport\"\n );\n\n const importExportCrud: PagesImportExportCrud = {\n onPagesBeforeExport,\n onPagesAfterExport,\n onPagesBeforeImport,\n onPagesAfterImport,\n async importPages(params) {\n const { category: categorySlug, zipFileUrl, meta } = params;\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n // Bail out early if category not found\n const category = await context.pageBuilder.getCategory(categorySlug);\n if (!category) {\n throw new NotFoundError(`Category with slug \"${categorySlug}\" not found.`);\n }\n\n // Create a task for import page\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING,\n input: {\n category: categorySlug,\n zipFileUrl\n }\n });\n /**\n * Import Pages\n * ImportPages\n * importPages\n */\n await onPagesBeforeImport.publish({ params });\n await invokeHandlerClient<CreateHandlerPayload>({\n context,\n name: IMPORT_PAGES_CREATE_HANDLER,\n payload: {\n category: categorySlug,\n zipFileUrl,\n task,\n type: \"page\",\n identity: context.security.getIdentity(),\n meta\n },\n description: \"Import Pages - create\"\n });\n await onPagesAfterImport.publish({ params });\n\n return {\n task\n };\n },\n\n async exportPages(params) {\n const { ids: initialPageIds, revisionType, where, sort, search } = params;\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n let pageIds: string[] = initialPageIds || [];\n // If no ids are provided then it means we want to export all pages\n if (!initialPageIds || (Array.isArray(initialPageIds) && initialPageIds.length === 0)) {\n pageIds = [];\n let pages = [];\n let meta: MetaResponse = {\n hasMoreItems: true,\n cursor: null,\n totalCount: 0\n };\n // Paginate pages\n while (meta.hasMoreItems) {\n [pages, meta] = await context.pageBuilder.listLatestPages({\n after: meta.cursor,\n where: where,\n sort: sort,\n search: search\n });\n // Save page ids\n pages.forEach(page => pageIds.push(page.id));\n }\n }\n\n if (pageIds.length === 0) {\n throw new WebinyError(\n \"Cannot export pages - no pages found for provided inputs.\",\n \"EMPTY_EXPORT_NO_PAGES_FOUND\"\n );\n }\n\n // Create the main task for page export.\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING\n });\n const exportPagesDataKey = `${EXPORT_PAGES_FOLDER_KEY}/${task.id}`;\n // For each page create a sub-task and invoke the process handler.\n for (let i = 0; i < pageIds.length; i++) {\n const pageId = pageIds[i];\n // Create sub-task.\n await context.pageBuilder.importExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: ImportExportTaskStatus.PENDING,\n input: {\n pageId,\n exportPagesDataKey,\n revisionType\n }\n }\n );\n }\n // Update main task status.\n await context.pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(pageIds.length),\n input: {\n exportPagesDataKey,\n revisionType\n }\n });\n\n /**\n * Export Pages\n * ExportPages\n * exportPages\n */\n await onPagesBeforeExport.publish({ params });\n // Invoke handler.\n await invokeHandlerClient<ExportPagesProcessHandlerPayload>({\n context,\n name: EXPORT_PAGES_PROCESS_HANDLER,\n payload: {\n taskId: task.id,\n subTaskIndex: 1,\n type: \"page\",\n identity: context.security.getIdentity()\n },\n description: \"Export pages - process\"\n });\n await onPagesAfterExport.publish({ params });\n\n return { task };\n }\n };\n // Modify context\n context.pageBuilder.pages = importExportCrud;\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_pubsub","_handlerGraphql","_api","_PagesPermissions","_types","_types2","_default","exports","default","ContextPlugin","context","pagesPermissions","PagesPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","onPagesBeforeExport","createTopic","onPagesAfterExport","onPagesBeforeImport","onPagesAfterImport","pageBuilder","pages","getExportPagesTask","id","task","tasks","getTask","definitionId","PageExportTask","Controller","totalPages","input","data","url","output","error","items","subTasks","listTasks","where","parentId","ZipPages","limit","stats","completed","failed","subTask","Object","keys","done","push","status","taskStatus","total","length","getImportPagesTask","PageImportTask","Process","reduce","result","item","importPages","params","category","categorySlug","zipFileUrl","meta","ensure","rwd","getCategory","NotFoundError","identity","publish","trigger","definition","displayName","type","createdOn","createdBy","ex","console","exportPages","listPages","revisionType","conditions","listPublishedPages","listLatestPages","totalCount","WebinyError","listImportedPages","taskId","pageIdList","collection","pid_in","map","page","title","version"],"sources":["pages.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport type {\n ExportPagesParams,\n OnPagesAfterExportTopicParams,\n OnPagesAfterImportTopicParams,\n OnPagesBeforeExportTopicParams,\n OnPagesBeforeImportTopicParams,\n PbExportPagesTaskData,\n PbImportExportContext,\n PbImportPagesTaskData,\n PbImportPagesTaskStats\n} from \"~/types\";\nimport { PagesPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions\";\nimport type {\n IExportPagesControllerInput,\n IExportPagesControllerOutput,\n IExportPagesZipPagesInput,\n IExportPagesZipPagesOutput\n} from \"~/export/pages/types\";\nimport { PageExportTask } from \"~/export/pages/types\";\nimport type {\n IImportPagesControllerInput,\n IImportPagesControllerOutput,\n IImportPagesProcessPagesInput,\n IImportPagesProcessPagesOutput\n} from \"~/import/pages/types\";\nimport { PageImportTask } from \"~/import/pages/types\";\n\nexport default new ContextPlugin<PbImportExportContext>(context => {\n const pagesPermissions = new PagesPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.page\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n // Export\n const onPagesBeforeExport = createTopic<OnPagesBeforeExportTopicParams>(\n \"PageBuilder.onPagesBeforeExport\"\n );\n const onPagesAfterExport = createTopic<OnPagesAfterExportTopicParams>(\n \"PageBuilder.onPagesAfterExport\"\n );\n\n // Import\n const onPagesBeforeImport = createTopic<OnPagesBeforeImportTopicParams>(\n \"PageBuilder.onPagesBeforeImport\"\n );\n const onPagesAfterImport = createTopic<OnPagesAfterImportTopicParams>(\n \"PageBuilder.onPagesAfterImport\"\n );\n\n context.pageBuilder.pages = {\n onPagesBeforeExport,\n onPagesAfterExport,\n onPagesBeforeImport,\n onPagesAfterImport,\n /**\n * Background task implementation.\n */\n getExportPagesTask: async id => {\n const task = await context.tasks.getTask<\n IExportPagesControllerInput,\n IExportPagesControllerOutput\n >(id);\n\n if (!task || task.definitionId !== PageExportTask.Controller) {\n return null;\n }\n\n const totalPages = task.input.totalPages || 0;\n\n const data: PbExportPagesTaskData = {\n url: task.output?.url,\n error: task.output?.error\n };\n\n const { items: subTasks } = await context.tasks.listTasks<\n IExportPagesZipPagesInput,\n IExportPagesZipPagesOutput\n >({\n where: {\n parentId: task.id,\n definitionId: PageExportTask.ZipPages\n },\n limit: 10000\n });\n\n const stats = {\n completed: [] as string[],\n failed: [] as string[]\n };\n\n for (const subTask of subTasks) {\n if (!subTask.output) {\n continue;\n }\n const completed = Object.keys(subTask.output.done || []);\n const failed = subTask.output.failed || [];\n\n stats.completed.push(...completed);\n stats.failed.push(...failed);\n }\n\n return {\n ...task,\n status: task.taskStatus,\n data,\n stats: {\n total: totalPages,\n completed: stats.completed.length,\n failed: stats.failed.length\n }\n };\n },\n async getImportPagesTask(id) {\n const task = await context.tasks.getTask<\n IImportPagesControllerInput,\n IImportPagesControllerOutput\n >(id);\n\n if (!task || task.definitionId !== PageImportTask.Controller) {\n return null;\n }\n\n const data: PbImportPagesTaskData = {\n error: task.output?.error\n };\n\n const { items: subTasks } = await context.tasks.listTasks<\n IImportPagesProcessPagesInput,\n IImportPagesProcessPagesOutput\n >({\n where: {\n parentId: task.id,\n definitionId: PageImportTask.Process\n },\n limit: 10000\n });\n\n const stats = subTasks.reduce<PbImportPagesTaskStats>(\n (result, item) => {\n if (!item.output) {\n return result;\n }\n return {\n ...result,\n completed: result.completed + (item.output.done || []).length,\n failed: result.failed + (item.output.failed || []).length\n };\n },\n {\n total: task.output?.total || 0,\n completed: 0,\n failed: 0\n }\n );\n\n return {\n ...task,\n status: task.taskStatus,\n data,\n stats\n };\n },\n async importPages(params) {\n const { category: categorySlug, zipFileUrl, meta } = params;\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n // Bail out early if category not found\n const category = await context.pageBuilder.getCategory(categorySlug);\n if (!category) {\n throw new NotFoundError(`Category with slug \"${categorySlug}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n\n try {\n await onPagesBeforeImport.publish({ params });\n const task = await context.tasks.trigger<IImportPagesControllerInput>({\n definition: PageImportTask.Controller,\n input: {\n category: categorySlug,\n zipFileUrl,\n meta,\n identity: {\n id: identity.id,\n displayName: identity.displayName || \"unknown\",\n type: identity.type\n }\n }\n });\n await onPagesAfterImport.publish({ params });\n return {\n task: {\n id: task.id,\n status: task.taskStatus,\n data: {},\n createdOn: task.createdOn,\n createdBy: task.createdBy,\n stats: {\n total: 0,\n completed: 0,\n failed: 0\n }\n }\n };\n } catch (ex) {\n console.error(ex);\n throw ex;\n }\n },\n\n async exportPages(params) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const listPages = (input: ExportPagesParams) => {\n const { revisionType, ...conditions } = input;\n if (revisionType === \"published\") {\n return context.pageBuilder.listPublishedPages(conditions);\n }\n return context.pageBuilder.listLatestPages(conditions);\n };\n /**\n * We just need to check if even a single page exists for the provided params.\n * If not, no point in starting a background task.\n */\n const [pages, meta] = await listPages({\n ...params,\n limit: 1\n });\n if (!pages.length || meta.totalCount === 0) {\n throw new WebinyError(\n \"Cannot export pages - no pages found for provided inputs.\",\n \"EMPTY_EXPORT_NO_PAGES_FOUND\"\n );\n }\n\n // Create the main task for page export.\n try {\n await onPagesBeforeExport.publish({ params });\n const task = await context.tasks.trigger<IExportPagesControllerInput>({\n input: {\n ...params,\n type: params.revisionType,\n totalPages: meta.totalCount\n },\n definition: PageExportTask.Controller\n });\n await onPagesAfterExport.publish({ params });\n return {\n task: {\n id: task.id,\n status: task.taskStatus,\n data: {},\n createdOn: task.createdOn,\n createdBy: task.createdBy,\n stats: {\n total: meta.totalCount,\n completed: 0,\n failed: 0\n }\n }\n };\n } catch (ex) {\n console.error(ex);\n throw ex;\n }\n },\n listImportedPages: async taskId => {\n const task = await context.tasks.getTask<\n IImportPagesControllerInput,\n IImportPagesControllerOutput\n >(taskId);\n\n if (!task || task.definitionId !== PageImportTask.Controller) {\n throw new NotFoundError(`Task with id \"${taskId}\" not found.`);\n }\n const { items: subTasks } = await context.tasks.listTasks<\n IImportPagesProcessPagesInput,\n IImportPagesProcessPagesOutput\n >({\n where: {\n parentId: task.id,\n definitionId: PageImportTask.Process\n },\n limit: 10000\n });\n const pageIdList = subTasks.reduce<string[]>((collection, subTask) => {\n if (!subTask.output?.pageIdList) {\n return collection;\n }\n collection.push(...subTask.output.pageIdList);\n return collection;\n }, []);\n\n const result = await context.pageBuilder.listLatestPages({\n where: {\n pid_in: pageIdList\n },\n limit: 10000\n });\n\n const [pages] = result;\n return pages.map(page => {\n return {\n id: page.id,\n title: page.title,\n version: page.version\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;
@@ -16,7 +16,7 @@ var _PageTemplatesPermissions = require("@webiny/api-page-builder/graphql/crud/p
16
16
  const EXPORT_TEMPLATES_FOLDER_KEY = "WEBINY_PB_EXPORT_TEMPLATE";
17
17
  const EXPORT_TEMPLATES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
18
18
  const IMPORT_TEMPLATES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
19
- var _default = new _api.ContextPlugin(context => {
19
+ var _default = exports.default = new _api.ContextPlugin(context => {
20
20
  const pagesPermissions = new _PageTemplatesPermissions.PageTemplatesPermissions({
21
21
  getPermissions: () => context.security.getPermissions("pb.template"),
22
22
  getIdentity: context.security.getIdentity,
@@ -152,6 +152,5 @@ var _default = new _api.ContextPlugin(context => {
152
152
  // Modify context
153
153
  context.pageBuilder.templates = importExportCrud;
154
154
  });
155
- exports.default = _default;
156
155
 
157
156
  //# sourceMappingURL=templates.crud.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_pubsub","_api","_types","_client","_utils","_utils2","_PageTemplatesPermissions","EXPORT_TEMPLATES_FOLDER_KEY","EXPORT_TEMPLATES_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_TEMPLATES_CREATE_HANDLER","IMPORT_CREATE_HANDLER","_default","ContextPlugin","context","pagesPermissions","PageTemplatesPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","onTemplatesBeforeExport","createTopic","onTemplatesAfterExport","onTemplatesBeforeImport","onTemplatesAfterImport","importExportCrud","importTemplates","params","zipFileUrl","ensure","rwd","task","pageBuilder","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","publish","invokeHandlerClient","name","payload","type","identity","description","exportTemplates","ids","initialTemplateIds","templateIds","Array","isArray","length","templates","listPageTemplates","forEach","template","push","id","WebinyError","exportTemplatesDataKey","i","templateId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex","exports","default"],"sources":["templates.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport {\n ImportExportTaskStatus,\n TemplatesImportExportCrud,\n PbImportExportContext,\n OnTemplatesBeforeExportTopicParams,\n OnTemplatesAfterExportTopicParams,\n OnTemplatesBeforeImportTopicParams,\n OnTemplatesAfterImportTopicParams\n} from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as CreateHandlerPayload } from \"~/import/create\";\nimport { initialStats } from \"~/import/utils\";\nimport { Payload as ExportTemplatesProcessHandlerPayload } from \"~/export/process\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { PageTemplatesPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PageTemplatesPermissions\";\n\nconst EXPORT_TEMPLATES_FOLDER_KEY = \"WEBINY_PB_EXPORT_TEMPLATE\";\nconst EXPORT_TEMPLATES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER as string;\nconst IMPORT_TEMPLATES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER as string;\n\nexport default new ContextPlugin<PbImportExportContext>(context => {\n const pagesPermissions = new PageTemplatesPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.template\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n // Export\n const onTemplatesBeforeExport = createTopic<OnTemplatesBeforeExportTopicParams>(\n \"PageBuilder.onTemplatesBeforeExport\"\n );\n const onTemplatesAfterExport = createTopic<OnTemplatesAfterExportTopicParams>(\n \"PageBuilder.onTemplatesAfterExport\"\n );\n\n // Import\n const onTemplatesBeforeImport = createTopic<OnTemplatesBeforeImportTopicParams>(\n \"PageBuilder.onTemplatesBeforeImport\"\n );\n const onTemplatesAfterImport = createTopic<OnTemplatesAfterImportTopicParams>(\n \"PageBuilder.onTemplatesAfterImport\"\n );\n\n const importExportCrud: TemplatesImportExportCrud = {\n onTemplatesBeforeExport,\n onTemplatesAfterExport,\n onTemplatesBeforeImport,\n onTemplatesAfterImport,\n async importTemplates(params) {\n const { zipFileUrl } = params;\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n // Create a task for import template\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING,\n input: {\n zipFileUrl\n }\n });\n /**\n * Import Templates\n * ImportTemplates\n * importTemplates\n */\n await onTemplatesBeforeImport.publish({ params });\n await invokeHandlerClient<CreateHandlerPayload>({\n context,\n name: IMPORT_TEMPLATES_CREATE_HANDLER,\n payload: {\n zipFileUrl,\n task,\n type: \"template\",\n identity: context.security.getIdentity()\n },\n description: \"Import Templates - create\"\n });\n await onTemplatesAfterImport.publish({ params });\n\n return {\n task\n };\n },\n\n async exportTemplates(params) {\n const { ids: initialTemplateIds } = params;\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n let templateIds: string[] = initialTemplateIds || [];\n // If no ids are provided then it means we want to export all templates\n if (\n !initialTemplateIds ||\n (Array.isArray(initialTemplateIds) && initialTemplateIds.length === 0)\n ) {\n templateIds = [];\n const templates = await context.pageBuilder.listPageTemplates();\n // Save template ids\n templates.forEach(template => templateIds.push(template.id));\n }\n\n if (templateIds.length === 0) {\n throw new WebinyError(\n \"Cannot export templates - no templates found for provided inputs.\",\n \"EMPTY_EXPORT_NO_TEMPLATES_FOUND\"\n );\n }\n\n // Create the main task for templates export.\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING\n });\n const exportTemplatesDataKey = `${EXPORT_TEMPLATES_FOLDER_KEY}/${task.id}`;\n // For each template create a sub task and invoke the process handler.\n for (let i = 0; i < templateIds.length; i++) {\n const templateId = templateIds[i];\n // Create sub task.\n await context.pageBuilder.importExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: ImportExportTaskStatus.PENDING,\n input: {\n templateId,\n exportTemplatesDataKey\n }\n }\n );\n }\n // Update main task status.\n await context.pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(templateIds.length),\n input: {\n exportTemplatesDataKey\n }\n });\n\n /**\n * Export Templates\n * ExportTemplates\n * exportTemplates\n */\n await onTemplatesBeforeExport.publish({ params });\n // Invoke handler.\n await invokeHandlerClient<ExportTemplatesProcessHandlerPayload>({\n context,\n name: EXPORT_TEMPLATES_PROCESS_HANDLER,\n payload: {\n taskId: task.id,\n subTaskIndex: 1,\n type: \"template\",\n identity: context.security.getIdentity()\n },\n description: \"Export templates - process\"\n });\n await onTemplatesAfterExport.publish({ params });\n\n return { task };\n }\n };\n // Modify context\n context.pageBuilder.templates = importExportCrud;\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_pubsub","_api","_types","_client","_utils","_utils2","_PageTemplatesPermissions","EXPORT_TEMPLATES_FOLDER_KEY","EXPORT_TEMPLATES_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_TEMPLATES_CREATE_HANDLER","IMPORT_CREATE_HANDLER","_default","exports","default","ContextPlugin","context","pagesPermissions","PageTemplatesPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","onTemplatesBeforeExport","createTopic","onTemplatesAfterExport","onTemplatesBeforeImport","onTemplatesAfterImport","importExportCrud","importTemplates","params","zipFileUrl","ensure","rwd","task","pageBuilder","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","publish","invokeHandlerClient","name","payload","type","identity","description","exportTemplates","ids","initialTemplateIds","templateIds","Array","isArray","length","templates","listPageTemplates","forEach","template","push","id","WebinyError","exportTemplatesDataKey","i","templateId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex"],"sources":["templates.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport type {\n TemplatesImportExportCrud,\n PbImportExportContext,\n OnTemplatesBeforeExportTopicParams,\n OnTemplatesAfterExportTopicParams,\n OnTemplatesBeforeImportTopicParams,\n OnTemplatesAfterImportTopicParams\n} from \"~/types\";\nimport { ImportExportTaskStatus } from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport type { Payload as CreateHandlerPayload } from \"~/import/create\";\nimport { initialStats } from \"~/import/utils\";\nimport type { Payload as ExportTemplatesProcessHandlerPayload } from \"~/export/process\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { PageTemplatesPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PageTemplatesPermissions\";\n\nconst EXPORT_TEMPLATES_FOLDER_KEY = \"WEBINY_PB_EXPORT_TEMPLATE\";\nconst EXPORT_TEMPLATES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER as string;\nconst IMPORT_TEMPLATES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER as string;\n\nexport default new ContextPlugin<PbImportExportContext>(context => {\n const pagesPermissions = new PageTemplatesPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.template\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n // Export\n const onTemplatesBeforeExport = createTopic<OnTemplatesBeforeExportTopicParams>(\n \"PageBuilder.onTemplatesBeforeExport\"\n );\n const onTemplatesAfterExport = createTopic<OnTemplatesAfterExportTopicParams>(\n \"PageBuilder.onTemplatesAfterExport\"\n );\n\n // Import\n const onTemplatesBeforeImport = createTopic<OnTemplatesBeforeImportTopicParams>(\n \"PageBuilder.onTemplatesBeforeImport\"\n );\n const onTemplatesAfterImport = createTopic<OnTemplatesAfterImportTopicParams>(\n \"PageBuilder.onTemplatesAfterImport\"\n );\n\n const importExportCrud: TemplatesImportExportCrud = {\n onTemplatesBeforeExport,\n onTemplatesAfterExport,\n onTemplatesBeforeImport,\n onTemplatesAfterImport,\n async importTemplates(params) {\n const { zipFileUrl } = params;\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n // Create a task for import template\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING,\n input: {\n zipFileUrl\n }\n });\n /**\n * Import Templates\n * ImportTemplates\n * importTemplates\n */\n await onTemplatesBeforeImport.publish({ params });\n await invokeHandlerClient<CreateHandlerPayload>({\n context,\n name: IMPORT_TEMPLATES_CREATE_HANDLER,\n payload: {\n zipFileUrl,\n task,\n type: \"template\",\n identity: context.security.getIdentity()\n },\n description: \"Import Templates - create\"\n });\n await onTemplatesAfterImport.publish({ params });\n\n return {\n task\n };\n },\n\n async exportTemplates(params) {\n const { ids: initialTemplateIds } = params;\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n let templateIds: string[] = initialTemplateIds || [];\n // If no ids are provided then it means we want to export all templates\n if (\n !initialTemplateIds ||\n (Array.isArray(initialTemplateIds) && initialTemplateIds.length === 0)\n ) {\n templateIds = [];\n const templates = await context.pageBuilder.listPageTemplates();\n // Save template ids\n templates.forEach(template => templateIds.push(template.id));\n }\n\n if (templateIds.length === 0) {\n throw new WebinyError(\n \"Cannot export templates - no templates found for provided inputs.\",\n \"EMPTY_EXPORT_NO_TEMPLATES_FOUND\"\n );\n }\n\n // Create the main task for templates export.\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING\n });\n const exportTemplatesDataKey = `${EXPORT_TEMPLATES_FOLDER_KEY}/${task.id}`;\n // For each template create a sub task and invoke the process handler.\n for (let i = 0; i < templateIds.length; i++) {\n const templateId = templateIds[i];\n // Create sub task.\n await context.pageBuilder.importExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: ImportExportTaskStatus.PENDING,\n input: {\n templateId,\n exportTemplatesDataKey\n }\n }\n );\n }\n // Update main task status.\n await context.pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(templateIds.length),\n input: {\n exportTemplatesDataKey\n }\n });\n\n /**\n * Export Templates\n * ExportTemplates\n * exportTemplates\n */\n await onTemplatesBeforeExport.publish({ params });\n // Invoke handler.\n await invokeHandlerClient<ExportTemplatesProcessHandlerPayload>({\n context,\n name: EXPORT_TEMPLATES_PROCESS_HANDLER,\n payload: {\n taskId: task.id,\n subTaskIndex: 1,\n type: \"template\",\n identity: context.security.getIdentity()\n },\n description: \"Export templates - process\"\n });\n await onTemplatesAfterExport.publish({ params });\n\n return { task };\n }\n };\n // Modify context\n context.pageBuilder.templates = importExportCrud;\n});\n"],"mappings":"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","ignoreList":[]}
package/graphql/crud.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { ImportExportPluginsParams } from "./types";
2
- declare const _default: (params: ImportExportPluginsParams) => import("@webiny/api").ContextPlugin<import("~/graphql/types").PbImportExportContext>[];
1
+ import type { ImportExportPluginsParams } from "./types";
2
+ declare const _default: (params: ImportExportPluginsParams) => import("@webiny/api").ContextPlugin<import("./types").PbImportExportContext>[];
3
3
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","_interopRequireDefault","require","_forms","_pages","_templates","_importExportTasks","_default","params","blocks","forms","pages","templates","importExportTask","exports","default"],"sources":["crud.ts"],"sourcesContent":["import blocks from \"./crud/blocks.crud\";\nimport forms from \"./crud/forms.crud\";\nimport pages from \"./crud/pages.crud\";\nimport templates from \"./crud/templates.crud\";\nimport importExportTask from \"./crud/importExportTasks.crud\";\nimport { ImportExportPluginsParams } from \"~/graphql/types\";\n\nexport default (params: ImportExportPluginsParams) => [\n blocks,\n forms,\n pages,\n templates,\n importExportTask(params as ImportExportPluginsParams)\n];\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,kBAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA6D,IAAAK,QAAA,GAG7CC,MAAiC,IAAK,CAClDC,eAAM,EACNC,cAAK,EACLC,cAAK,EACLC,kBAAS,EACT,IAAAC,0BAAgB,EAACL,MAAmC,CAAC,CACxD;AAAAM,OAAA,CAAAC,OAAA,GAAAR,QAAA"}
1
+ {"version":3,"names":["_blocks","_interopRequireDefault","require","_forms","_pages","_templates","_importExportTasks","_default","params","blocks","forms","pages","templates","importExportTask","exports","default"],"sources":["crud.ts"],"sourcesContent":["import blocks from \"./crud/blocks.crud\";\nimport forms from \"./crud/forms.crud\";\nimport pages from \"./crud/pages.crud\";\nimport templates from \"./crud/templates.crud\";\nimport importExportTask from \"./crud/importExportTasks.crud\";\nimport type { ImportExportPluginsParams } from \"~/graphql/types\";\n\nexport default (params: ImportExportPluginsParams) => [\n blocks,\n forms,\n pages,\n templates,\n importExportTask(params)\n];\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,kBAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA6D,IAAAK,QAAA,GAG7CC,MAAiC,IAAK,CAClDC,eAAM,EACNC,cAAK,EACLC,cAAK,EACLC,kBAAS,EACT,IAAAC,0BAAgB,EAACL,MAAM,CAAC,CAC3B;AAAAM,OAAA,CAAAC,OAAA,GAAAR,QAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/types";
2
- import { PbImportExportContext } from "../types";
1
+ import type { GraphQLSchemaPlugin } from "@webiny/handler-graphql/types";
2
+ import type { PbImportExportContext } from "../types";
3
3
  declare const plugin: GraphQLSchemaPlugin<PbImportExportContext>;
4
4
  export default plugin;
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = void 0;
8
- var _resolve = _interopRequireDefault(require("./utils/resolve"));
7
+ var _resolve = require("./utils/resolve");
9
8
  const plugin = {
10
9
  type: "graphql-schema",
11
10
  schema: {
@@ -39,16 +38,15 @@ const plugin = {
39
38
  resolvers: {
40
39
  PbMutation: {
41
40
  exportBlocks: async (_, args, context) => {
42
- return (0, _resolve.default)(() => context.pageBuilder.blocks.exportBlocks(args));
41
+ return (0, _resolve.resolve)(() => context.pageBuilder.blocks.exportBlocks(args));
43
42
  },
44
43
  importBlocks: async (_, args, context) => {
45
- return (0, _resolve.default)(() => context.pageBuilder.blocks.importBlocks(args));
44
+ return (0, _resolve.resolve)(() => context.pageBuilder.blocks.importBlocks(args));
46
45
  }
47
46
  }
48
47
  }
49
48
  }
50
49
  };
51
- var _default = plugin;
52
- exports.default = _default;
50
+ var _default = exports.default = plugin;
53
51
 
54
52
  //# sourceMappingURL=blocks.gql.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_resolve","_interopRequireDefault","require","plugin","type","schema","typeDefs","resolvers","PbMutation","exportBlocks","_","args","context","resolve","pageBuilder","blocks","importBlocks","_default","exports","default"],"sources":["blocks.gql.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\nimport { PbImportExportContext } from \"../types\";\nimport resolve from \"./utils/resolve\";\n\nconst plugin: GraphQLSchemaPlugin<PbImportExportContext> = {\n type: \"graphql-schema\",\n schema: {\n typeDefs: /* GraphQL */ `\n type PbExportBlockData {\n task: PbImportExportTask\n }\n\n type PbExportBlockResponse {\n data: PbExportBlockData\n error: PbError\n }\n\n type PbImportBlockData {\n task: PbImportExportTask\n }\n\n type PbImportBlockResponse {\n data: PbImportBlockData\n error: PbError\n }\n\n extend type PbMutation {\n # Export blocks\n exportBlocks(ids: [ID!], where: PbListPageBlocksWhereInput): PbExportBlockResponse\n\n # Import blocks\n importBlocks(zipFileUrl: String): PbImportBlockResponse\n }\n `,\n resolvers: {\n PbMutation: {\n exportBlocks: async (_, args: any, context) => {\n return resolve(() => context.pageBuilder.blocks.exportBlocks(args));\n },\n\n importBlocks: async (_, args: any, context) => {\n return resolve(() => context.pageBuilder.blocks.importBlocks(args));\n }\n }\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;AAEA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,MAAMC,MAAkD,GAAG;EACvDC,IAAI,EAAE,gBAAgB;EACtBC,MAAM,EAAE;IACJC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACPC,UAAU,EAAE;QACRC,YAAY,EAAE,MAAAA,CAAOC,CAAC,EAAEC,IAAS,EAAEC,OAAO,KAAK;UAC3C,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,WAAW,CAACC,MAAM,CAACN,YAAY,CAACE,IAAI,CAAC,CAAC;QACvE,CAAC;QAEDK,YAAY,EAAE,MAAAA,CAAON,CAAC,EAAEC,IAAS,EAAEC,OAAO,KAAK;UAC3C,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,WAAW,CAACC,MAAM,CAACC,YAAY,CAACL,IAAI,CAAC,CAAC;QACvE;MACJ;IACJ;EACJ;AACJ,CAAC;AAAC,IAAAM,QAAA,GAEad,MAAM;AAAAe,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_resolve","require","plugin","type","schema","typeDefs","resolvers","PbMutation","exportBlocks","_","args","context","resolve","pageBuilder","blocks","importBlocks","_default","exports","default"],"sources":["blocks.gql.ts"],"sourcesContent":["import type { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\nimport type { PbImportExportContext } from \"../types\";\nimport { resolve } from \"./utils/resolve\";\n\nconst plugin: GraphQLSchemaPlugin<PbImportExportContext> = {\n type: \"graphql-schema\",\n schema: {\n typeDefs: /* GraphQL */ `\n type PbExportBlockData {\n task: PbImportExportTask\n }\n\n type PbExportBlockResponse {\n data: PbExportBlockData\n error: PbError\n }\n\n type PbImportBlockData {\n task: PbImportExportTask\n }\n\n type PbImportBlockResponse {\n data: PbImportBlockData\n error: PbError\n }\n\n extend type PbMutation {\n # Export blocks\n exportBlocks(ids: [ID!], where: PbListPageBlocksWhereInput): PbExportBlockResponse\n\n # Import blocks\n importBlocks(zipFileUrl: String): PbImportBlockResponse\n }\n `,\n resolvers: {\n PbMutation: {\n exportBlocks: async (_, args: any, context) => {\n return resolve(() => context.pageBuilder.blocks.exportBlocks(args));\n },\n\n importBlocks: async (_, args: any, context) => {\n return resolve(() => context.pageBuilder.blocks.importBlocks(args));\n }\n }\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AAEA,MAAMC,MAAkD,GAAG;EACvDC,IAAI,EAAE,gBAAgB;EACtBC,MAAM,EAAE;IACJC,QAAQ,EAAE,aAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACPC,UAAU,EAAE;QACRC,YAAY,EAAE,MAAAA,CAAOC,CAAC,EAAEC,IAAS,EAAEC,OAAO,KAAK;UAC3C,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,WAAW,CAACC,MAAM,CAACN,YAAY,CAACE,IAAI,CAAC,CAAC;QACvE,CAAC;QAEDK,YAAY,EAAE,MAAAA,CAAON,CAAC,EAAEC,IAAS,EAAEC,OAAO,KAAK;UAC3C,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,WAAW,CAACC,MAAM,CAACC,YAAY,CAACL,IAAI,CAAC,CAAC;QACvE;MACJ;IACJ;EACJ;AACJ,CAAC;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEahB,MAAM","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/types";
2
- import { PbImportExportContext } from "../types";
1
+ import type { GraphQLSchemaPlugin } from "@webiny/handler-graphql/types";
2
+ import type { PbImportExportContext } from "../types";
3
3
  declare const plugin: GraphQLSchemaPlugin<PbImportExportContext>;
4
4
  export default plugin;