@webiny/api-page-builder-import-export 0.0.0-unstable.1e66d121db → 0.0.0-unstable.2696f9d9e8
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.
- package/client.d.ts +2 -2
- package/client.js +12 -25
- package/client.js.map +1 -1
- package/export/combine/blocksHandler.d.ts +6 -0
- package/export/combine/blocksHandler.js +101 -0
- package/export/combine/blocksHandler.js.map +1 -0
- package/export/combine/formsHandler.d.ts +6 -0
- package/export/combine/formsHandler.js +101 -0
- package/export/combine/formsHandler.js.map +1 -0
- package/{exportPages → export}/combine/index.d.ts +3 -2
- package/export/combine/index.js +44 -0
- package/export/combine/index.js.map +1 -0
- package/export/combine/pagesHandler.d.ts +6 -0
- package/export/combine/pagesHandler.js +101 -0
- package/export/combine/pagesHandler.js.map +1 -0
- package/export/combine/templatesHandler.d.ts +6 -0
- package/export/combine/templatesHandler.js +101 -0
- package/export/combine/templatesHandler.js.map +1 -0
- package/export/process/blocksHandler.d.ts +6 -0
- package/export/process/blocksHandler.js +169 -0
- package/export/process/blocksHandler.js.map +1 -0
- package/export/process/exporters/BlockExporter.d.ts +12 -0
- package/export/process/exporters/BlockExporter.js +57 -0
- package/export/process/exporters/BlockExporter.js.map +1 -0
- package/export/process/exporters/FormExporter.d.ts +9 -0
- package/export/process/exporters/FormExporter.js +36 -0
- package/export/process/exporters/FormExporter.js.map +1 -0
- package/export/process/exporters/PageExporter.d.ts +11 -0
- package/export/process/exporters/PageExporter.js +58 -0
- package/export/process/exporters/PageExporter.js.map +1 -0
- package/export/process/exporters/PageTemplateExporter.d.ts +11 -0
- package/export/process/exporters/PageTemplateExporter.js +56 -0
- package/export/process/exporters/PageTemplateExporter.js.map +1 -0
- package/export/process/formsHandler.d.ts +6 -0
- package/export/process/formsHandler.js +189 -0
- package/export/process/formsHandler.js.map +1 -0
- package/{exportPages → export}/process/index.d.ts +4 -6
- package/export/process/index.js +41 -0
- package/export/process/index.js.map +1 -0
- package/export/process/pagesHandler.d.ts +6 -0
- package/export/process/pagesHandler.js +191 -0
- package/export/process/pagesHandler.js.map +1 -0
- package/export/process/templatesHandler.d.ts +6 -0
- package/export/process/templatesHandler.js +168 -0
- package/export/process/templatesHandler.js.map +1 -0
- package/export/s3Stream.d.ts +34 -0
- package/{exportPages → export}/s3Stream.js +28 -42
- package/export/s3Stream.js.map +1 -0
- package/export/utils.d.ts +24 -0
- package/export/utils.js +171 -0
- package/export/utils.js.map +1 -0
- package/{exportPages → export}/zipper.d.ts +11 -10
- package/export/zipper.js +120 -0
- package/export/zipper.js.map +1 -0
- package/graphql/crud/blocks.crud.d.ts +4 -0
- package/graphql/crud/blocks.crud.js +159 -0
- package/graphql/crud/blocks.crud.js.map +1 -0
- package/graphql/crud/forms.crud.d.ts +4 -0
- package/graphql/crud/forms.crud.js +163 -0
- package/graphql/crud/forms.crud.js.map +1 -0
- package/graphql/crud/importExportTasks.crud.d.ts +5 -0
- package/graphql/crud/{pageImportExportTasks.crud.js → importExportTasks.crud.js} +121 -151
- package/graphql/crud/importExportTasks.crud.js.map +1 -0
- package/graphql/crud/pages.crud.d.ts +3 -2
- package/graphql/crud/pages.crud.js +89 -69
- package/graphql/crud/pages.crud.js.map +1 -1
- package/graphql/crud/templates.crud.d.ts +4 -0
- package/graphql/crud/templates.crud.js +157 -0
- package/graphql/crud/templates.crud.js.map +1 -0
- package/graphql/crud.d.ts +2 -2
- package/graphql/crud.js +7 -7
- package/graphql/crud.js.map +1 -1
- package/graphql/graphql/blocks.gql.d.ts +4 -0
- package/graphql/graphql/blocks.gql.js +54 -0
- package/graphql/graphql/blocks.gql.js.map +1 -0
- package/graphql/graphql/forms.gql.d.ts +4 -0
- package/graphql/graphql/forms.gql.js +62 -0
- package/graphql/graphql/forms.gql.js.map +1 -0
- package/graphql/graphql/importExportTasks.gql.d.ts +4 -0
- package/graphql/graphql/{pageImportExportTasks.gql.js → importExportTasks.gql.js} +21 -24
- package/graphql/graphql/importExportTasks.gql.js.map +1 -0
- package/graphql/graphql/pages.gql.d.ts +2 -2
- package/graphql/graphql/pages.gql.js +7 -16
- package/graphql/graphql/pages.gql.js.map +1 -1
- package/graphql/graphql/templates.gql.d.ts +4 -0
- package/graphql/graphql/templates.gql.js +54 -0
- package/graphql/graphql/templates.gql.js.map +1 -0
- package/graphql/graphql/utils/resolve.d.ts +1 -1
- package/graphql/graphql/utils/resolve.js +2 -3
- package/graphql/graphql/utils/resolve.js.map +1 -1
- package/graphql/graphql.js +7 -6
- package/graphql/graphql.js.map +1 -1
- package/graphql/index.d.ts +2 -2
- package/graphql/index.js +2 -5
- package/graphql/index.js.map +1 -1
- package/graphql/types.d.ts +195 -23
- package/graphql/types.js +3 -1
- package/graphql/types.js.map +1 -1
- package/import/constants.d.ts +3 -0
- package/import/constants.js +16 -0
- package/import/constants.js.map +1 -0
- package/import/create/blocksHandler.d.ts +3 -0
- package/import/create/blocksHandler.js +101 -0
- package/import/create/blocksHandler.js.map +1 -0
- package/import/create/formsHandler.d.ts +3 -0
- package/import/create/formsHandler.js +105 -0
- package/import/create/formsHandler.js.map +1 -0
- package/{importPages → import}/create/index.d.ts +7 -5
- package/import/create/index.js +44 -0
- package/import/create/index.js.map +1 -0
- package/import/create/pagesHandler.d.ts +3 -0
- package/import/create/pagesHandler.js +105 -0
- package/import/create/pagesHandler.js.map +1 -0
- package/import/create/templatesHandler.d.ts +3 -0
- package/import/create/templatesHandler.js +101 -0
- package/import/create/templatesHandler.js.map +1 -0
- package/import/process/blocks/blocksHandler.d.ts +3 -0
- package/import/process/blocks/blocksHandler.js +169 -0
- package/import/process/blocks/blocksHandler.js.map +1 -0
- package/import/process/blocks/importBlock.d.ts +11 -0
- package/import/process/blocks/importBlock.js +98 -0
- package/import/process/blocks/importBlock.js.map +1 -0
- package/import/process/forms/formsHandler.d.ts +3 -0
- package/import/process/forms/formsHandler.js +178 -0
- package/import/process/forms/formsHandler.js.map +1 -0
- package/import/process/forms/importForm.d.ts +9 -0
- package/import/process/forms/importForm.js +47 -0
- package/import/process/forms/importForm.js.map +1 -0
- package/{importPages → import}/process/index.d.ts +5 -3
- package/import/process/index.js +41 -0
- package/import/process/index.js.map +1 -0
- package/import/process/pages/importPage.d.ts +11 -0
- package/import/process/pages/importPage.js +94 -0
- package/import/process/pages/importPage.js.map +1 -0
- package/import/process/pages/pagesHandler.d.ts +3 -0
- package/import/process/pages/pagesHandler.js +185 -0
- package/import/process/pages/pagesHandler.js.map +1 -0
- package/import/process/templates/importTemplate.d.ts +11 -0
- package/import/process/templates/importTemplate.js +70 -0
- package/import/process/templates/importTemplate.js.map +1 -0
- package/import/process/templates/templatesHandler.d.ts +3 -0
- package/import/process/templates/templatesHandler.js +172 -0
- package/import/process/templates/templatesHandler.js.map +1 -0
- package/import/utils/deleteS3Folder.d.ts +1 -0
- package/import/utils/deleteS3Folder.js +21 -0
- package/import/utils/deleteS3Folder.js.map +1 -0
- package/import/utils/extractAndUploadZipFileContents.d.ts +7 -0
- package/import/utils/extractAndUploadZipFileContents.js +123 -0
- package/import/utils/extractAndUploadZipFileContents.js.map +1 -0
- package/import/utils/extractZipAndUploadToS3.d.ts +2 -0
- package/import/utils/extractZipAndUploadToS3.js +100 -0
- package/import/utils/extractZipAndUploadToS3.js.map +1 -0
- package/import/utils/getFileNameWithoutExt.d.ts +1 -0
- package/import/utils/getFileNameWithoutExt.js +13 -0
- package/import/utils/getFileNameWithoutExt.js.map +1 -0
- package/import/utils/index.d.ts +9 -0
- package/import/utils/index.js +106 -0
- package/import/utils/index.js.map +1 -0
- package/import/utils/initialStats.d.ts +7 -0
- package/import/utils/initialStats.js +18 -0
- package/import/utils/initialStats.js.map +1 -0
- package/import/utils/prepareDataDirMap.d.ts +6 -0
- package/import/utils/prepareDataDirMap.js +31 -0
- package/import/utils/prepareDataDirMap.js.map +1 -0
- package/import/utils/updateFilesInData.d.ts +8 -0
- package/import/utils/updateFilesInData.js +51 -0
- package/import/utils/updateFilesInData.js.map +1 -0
- package/import/utils/uploadAssets.d.ts +10 -0
- package/import/utils/uploadAssets.js +92 -0
- package/import/utils/uploadAssets.js.map +1 -0
- package/import/utils/uploadFilesFromS3.d.ts +3 -0
- package/import/utils/uploadFilesFromS3.js +21 -0
- package/import/utils/uploadFilesFromS3.js.map +1 -0
- package/mockSecurity.js +2 -3
- package/mockSecurity.js.map +1 -1
- package/package.json +36 -44
- package/types.d.ts +83 -65
- package/types.js +70 -21
- package/types.js.map +1 -1
- package/exportPages/combine/index.js +0 -114
- package/exportPages/combine/index.js.map +0 -1
- package/exportPages/process/index.js +0 -208
- package/exportPages/process/index.js.map +0 -1
- package/exportPages/s3Stream.d.ts +0 -31
- package/exportPages/s3Stream.js.map +0 -1
- package/exportPages/utils.d.ts +0 -13
- package/exportPages/utils.js +0 -113
- package/exportPages/utils.js.map +0 -1
- package/exportPages/zipper.js +0 -135
- package/exportPages/zipper.js.map +0 -1
- package/graphql/crud/pageImportExportTasks.crud.d.ts +0 -5
- package/graphql/crud/pageImportExportTasks.crud.js.map +0 -1
- package/graphql/graphql/pageImportExportTasks.gql.d.ts +0 -4
- package/graphql/graphql/pageImportExportTasks.gql.js.map +0 -1
- package/importPages/create/index.js +0 -118
- package/importPages/create/index.js.map +0 -1
- package/importPages/process/index.js +0 -185
- package/importPages/process/index.js.map +0 -1
- package/importPages/utils.d.ts +0 -50
- package/importPages/utils.js +0 -570
- package/importPages/utils.js.map +0 -1
@@ -1,53 +1,61 @@
|
|
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
|
-
exports.default = void 0;
|
9
|
-
|
7
|
+
exports.default = exports.EXPORT_PAGES_FOLDER_KEY = void 0;
|
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
12
|
var _types = require("../../types");
|
19
|
-
|
20
13
|
var _client = require("../../client");
|
21
|
-
|
22
|
-
var
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
const PERMISSION_NAME = "pb.page";
|
29
|
-
const EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PAGES_PROCESS_HANDLER;
|
30
|
-
const IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_PAGES_CREATE_HANDLER;
|
31
|
-
|
14
|
+
var _utils = require("../../import/utils");
|
15
|
+
var _utils2 = require("@webiny/utils");
|
16
|
+
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;
|
32
21
|
var _default = new _api.ContextPlugin(context => {
|
22
|
+
const pagesPermissions = new _PagesPermissions.PagesPermissions({
|
23
|
+
getPermissions: () => context.security.getPermissions("pb.page"),
|
24
|
+
getIdentity: context.security.getIdentity,
|
25
|
+
fullAccessPermissionName: "pb.*"
|
26
|
+
});
|
27
|
+
|
28
|
+
// Export
|
29
|
+
const onPagesBeforeExport = (0, _pubsub.createTopic)("PageBuilder.onPagesBeforeExport");
|
30
|
+
const onPagesAfterExport = (0, _pubsub.createTopic)("PageBuilder.onPagesAfterExport");
|
31
|
+
|
32
|
+
// Import
|
33
|
+
const onPagesBeforeImport = (0, _pubsub.createTopic)("PageBuilder.onPagesBeforeImport");
|
34
|
+
const onPagesAfterImport = (0, _pubsub.createTopic)("PageBuilder.onPagesAfterImport");
|
33
35
|
const importExportCrud = {
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
onPagesBeforeExport,
|
37
|
+
onPagesAfterExport,
|
38
|
+
onPagesBeforeImport,
|
39
|
+
onPagesAfterImport,
|
40
|
+
async importPages(params) {
|
41
|
+
const {
|
42
|
+
category: categorySlug,
|
43
|
+
zipFileUrl,
|
44
|
+
meta
|
45
|
+
} = params;
|
46
|
+
await pagesPermissions.ensure({
|
39
47
|
rwd: "w"
|
40
|
-
});
|
48
|
+
});
|
41
49
|
|
50
|
+
// Bail out early if category not found
|
42
51
|
const category = await context.pageBuilder.getCategory(categorySlug);
|
43
|
-
|
44
52
|
if (!category) {
|
45
53
|
throw new _handlerGraphql.NotFoundError(`Category with slug "${categorySlug}" not found.`);
|
46
|
-
}
|
47
|
-
|
54
|
+
}
|
48
55
|
|
49
|
-
|
50
|
-
|
56
|
+
// Create a task for import page
|
57
|
+
const task = await context.pageBuilder.importExportTask.createTask({
|
58
|
+
status: _types.ImportExportTaskStatus.PENDING,
|
51
59
|
input: {
|
52
60
|
category: categorySlug,
|
53
61
|
zipFileUrl
|
@@ -58,7 +66,9 @@ var _default = new _api.ContextPlugin(context => {
|
|
58
66
|
* ImportPages
|
59
67
|
* importPages
|
60
68
|
*/
|
61
|
-
|
69
|
+
await onPagesBeforeImport.publish({
|
70
|
+
params
|
71
|
+
});
|
62
72
|
await (0, _client.invokeHandlerClient)({
|
63
73
|
context,
|
64
74
|
name: IMPORT_PAGES_CREATE_HANDLER,
|
@@ -66,27 +76,32 @@ var _default = new _api.ContextPlugin(context => {
|
|
66
76
|
category: categorySlug,
|
67
77
|
zipFileUrl,
|
68
78
|
task,
|
69
|
-
|
79
|
+
type: "page",
|
80
|
+
identity: context.security.getIdentity(),
|
81
|
+
meta
|
70
82
|
},
|
71
83
|
description: "Import Pages - create"
|
72
84
|
});
|
85
|
+
await onPagesAfterImport.publish({
|
86
|
+
params
|
87
|
+
});
|
73
88
|
return {
|
74
89
|
task
|
75
90
|
};
|
76
91
|
},
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
await
|
92
|
+
async exportPages(params) {
|
93
|
+
const {
|
94
|
+
ids: initialPageIds,
|
95
|
+
revisionType,
|
96
|
+
where,
|
97
|
+
sort,
|
98
|
+
search
|
99
|
+
} = params;
|
100
|
+
await pagesPermissions.ensure({
|
86
101
|
rwd: "w"
|
87
102
|
});
|
88
|
-
let pageIds = initialPageIds || [];
|
89
|
-
|
103
|
+
let pageIds = initialPageIds || [];
|
104
|
+
// If no ids are provided then it means we want to export all pages
|
90
105
|
if (!initialPageIds || Array.isArray(initialPageIds) && initialPageIds.length === 0) {
|
91
106
|
pageIds = [];
|
92
107
|
let pages = [];
|
@@ -94,77 +109,82 @@ var _default = new _api.ContextPlugin(context => {
|
|
94
109
|
hasMoreItems: true,
|
95
110
|
cursor: null,
|
96
111
|
totalCount: 0
|
97
|
-
};
|
98
|
-
|
112
|
+
};
|
113
|
+
// Paginate pages
|
99
114
|
while (meta.hasMoreItems) {
|
100
115
|
[pages, meta] = await context.pageBuilder.listLatestPages({
|
101
116
|
after: meta.cursor,
|
102
117
|
where: where,
|
103
118
|
sort: sort,
|
104
119
|
search: search
|
105
|
-
});
|
106
|
-
|
120
|
+
});
|
121
|
+
// Save page ids
|
107
122
|
pages.forEach(page => pageIds.push(page.id));
|
108
123
|
}
|
109
124
|
}
|
110
|
-
|
111
125
|
if (pageIds.length === 0) {
|
112
126
|
throw new _error.default("Cannot export pages - no pages found for provided inputs.", "EMPTY_EXPORT_NO_PAGES_FOUND");
|
113
|
-
}
|
114
|
-
|
127
|
+
}
|
115
128
|
|
116
|
-
|
117
|
-
|
129
|
+
// Create the main task for page export.
|
130
|
+
const task = await context.pageBuilder.importExportTask.createTask({
|
131
|
+
status: _types.ImportExportTaskStatus.PENDING
|
118
132
|
});
|
119
|
-
const exportPagesDataKey = `${
|
120
|
-
|
133
|
+
const exportPagesDataKey = `${EXPORT_PAGES_FOLDER_KEY}/${task.id}`;
|
134
|
+
// For each page create a sub-task and invoke the process handler.
|
121
135
|
for (let i = 0; i < pageIds.length; i++) {
|
122
|
-
const pageId = pageIds[i];
|
123
|
-
|
124
|
-
await context.pageBuilder.
|
125
|
-
status: _types.
|
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,
|
126
140
|
input: {
|
127
141
|
pageId,
|
128
142
|
exportPagesDataKey,
|
129
143
|
revisionType
|
130
144
|
}
|
131
145
|
});
|
132
|
-
}
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
status: _types.PageImportExportTaskStatus.PROCESSING,
|
146
|
+
}
|
147
|
+
// Update main task status.
|
148
|
+
await context.pageBuilder.importExportTask.updateTask(task.id, {
|
149
|
+
status: _types.ImportExportTaskStatus.PROCESSING,
|
137
150
|
stats: (0, _utils.initialStats)(pageIds.length),
|
138
151
|
input: {
|
139
152
|
exportPagesDataKey,
|
140
153
|
revisionType
|
141
154
|
}
|
142
155
|
});
|
156
|
+
|
143
157
|
/**
|
144
158
|
* Export Pages
|
145
159
|
* ExportPages
|
146
160
|
* exportPages
|
147
161
|
*/
|
162
|
+
await onPagesBeforeExport.publish({
|
163
|
+
params
|
164
|
+
});
|
148
165
|
// Invoke handler.
|
149
|
-
|
150
166
|
await (0, _client.invokeHandlerClient)({
|
151
167
|
context,
|
152
168
|
name: EXPORT_PAGES_PROCESS_HANDLER,
|
153
169
|
payload: {
|
154
170
|
taskId: task.id,
|
155
171
|
subTaskIndex: 1,
|
172
|
+
type: "page",
|
156
173
|
identity: context.security.getIdentity()
|
157
174
|
},
|
158
175
|
description: "Export pages - process"
|
159
176
|
});
|
177
|
+
await onPagesAfterExport.publish({
|
178
|
+
params
|
179
|
+
});
|
160
180
|
return {
|
161
181
|
task
|
162
182
|
};
|
163
183
|
}
|
164
|
-
|
165
|
-
|
166
|
-
|
184
|
+
};
|
185
|
+
// Modify context
|
167
186
|
context.pageBuilder.pages = importExportCrud;
|
168
187
|
});
|
188
|
+
exports.default = _default;
|
169
189
|
|
170
|
-
|
190
|
+
//# sourceMappingURL=pages.crud.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["PERMISSION_NAME","EXPORT_PAGES_PROCESS_HANDLER","process","env","IMPORT_PAGES_CREATE_HANDLER","ContextPlugin","context","importExportCrud","importPages","category","categorySlug","zipFileUrl","checkBasePermissions","rwd","pageBuilder","getCategory","NotFoundError","task","pageImportExportTask","createTask","status","PageImportExportTaskStatus","PENDING","input","invokeHandlerClient","name","payload","identity","security","getIdentity","description","exportPages","ids","initialPageIds","revisionType","where","sort","search","pageIds","Array","isArray","length","pages","meta","hasMoreItems","cursor","totalCount","listLatestPages","after","forEach","page","push","id","WebinyError","exportPagesDataKey","EXPORT_PAGES_FOLDER_KEY","i","pageId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex"],"sources":["pages.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport checkBasePermissions from \"@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions\";\nimport {\n PageImportExportTaskStatus,\n PagesImportExportCrud,\n PbPageImportExportContext\n} from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as CreateHandlerPayload } from \"~/importPages/create\";\nimport { initialStats } from \"~/importPages/utils\";\nimport { Payload as ExportPagesProcessHandlerPayload } from \"~/exportPages/process\";\nimport { EXPORT_PAGES_FOLDER_KEY } from \"~/exportPages/utils\";\nimport { MetaResponse } from \"@webiny/api-page-builder/types\";\nimport { zeroPad } from \"@webiny/utils\";\n\nconst PERMISSION_NAME = \"pb.page\";\nconst EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PAGES_PROCESS_HANDLER as string;\nconst IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_PAGES_CREATE_HANDLER as string;\n\nexport default new ContextPlugin<PbPageImportExportContext>(context => {\n const importExportCrud: PagesImportExportCrud = {\n async importPages({ category: categorySlug, zipFileUrl }) {\n await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\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.pageImportExportTask.createTask({\n status: PageImportExportTaskStatus.PENDING,\n input: {\n category: categorySlug,\n zipFileUrl\n }\n });\n /**\n * Import Pages\n * ImportPages\n * importPages\n */\n await invokeHandlerClient<CreateHandlerPayload>({\n context,\n name: IMPORT_PAGES_CREATE_HANDLER,\n payload: {\n category: categorySlug,\n zipFileUrl,\n task,\n identity: context.security.getIdentity()\n },\n description: \"Import Pages - create\"\n });\n\n return {\n task\n };\n },\n\n async exportPages({ ids: initialPageIds, revisionType, where, sort, search }) {\n await checkBasePermissions(context, PERMISSION_NAME, {\n 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.pageImportExportTask.createTask({\n status: PageImportExportTaskStatus.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.pageImportExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: PageImportExportTaskStatus.PENDING,\n input: {\n pageId,\n exportPagesDataKey,\n revisionType\n }\n }\n );\n }\n // Update main task status.\n await context.pageBuilder.pageImportExportTask.updateTask(task.id, {\n status: PageImportExportTaskStatus.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 // Invoke handler.\n await invokeHandlerClient<ExportPagesProcessHandlerPayload>({\n context,\n name: EXPORT_PAGES_PROCESS_HANDLER,\n payload: {\n taskId: task.id,\n subTaskIndex: 1,\n identity: context.security.getIdentity()\n },\n description: \"Export pages - process\"\n });\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","_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":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AASA,IAAAK,OAAA,GAAAL,OAAA;AAEA,IAAAM,MAAA,GAAAN,OAAA;AAGA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAR,OAAA;AAEO,MAAMS,uBAAuB,GAAG,wBAAwB;AAACC,OAAA,CAAAD,uBAAA,GAAAA,uBAAA;AAChE,MAAME,4BAA4B,GAAGC,OAAO,CAACC,GAAG,CAACC,sBAAgC;AACjF,MAAMC,2BAA2B,GAAGH,OAAO,CAACC,GAAG,CAACG,qBAA+B;AAAC,IAAAC,QAAA,GAEjE,IAAIC,kBAAa,CAAwBC,OAAO,IAAI;EAC/D,MAAMC,gBAAgB,GAAG,IAAIC,kCAAgB,CAAC;IAC1CC,cAAc,EAAEA,CAAA,KAAMH,OAAO,CAACI,QAAQ,CAACD,cAAc,CAAC,SAAS,CAAC;IAChEE,WAAW,EAAEL,OAAO,CAACI,QAAQ,CAACC,WAAW;IACzCC,wBAAwB,EAAE;EAC9B,CAAC,CAAC;;EAEF;EACA,MAAMC,mBAAmB,GAAG,IAAAC,mBAAW,EACnC,iCACJ,CAAC;EACD,MAAMC,kBAAkB,GAAG,IAAAD,mBAAW,EAClC,gCACJ,CAAC;;EAED;EACA,MAAME,mBAAmB,GAAG,IAAAF,mBAAW,EACnC,iCACJ,CAAC;EACD,MAAMG,kBAAkB,GAAG,IAAAH,mBAAW,EAClC,gCACJ,CAAC;EAED,MAAMI,gBAAuC,GAAG;IAC5CL,mBAAmB;IACnBE,kBAAkB;IAClBC,mBAAmB;IACnBC,kBAAkB;IAClB,MAAME,WAAWA,CAACC,MAAM,EAAE;MACtB,MAAM;QAAEC,QAAQ,EAAEC,YAAY;QAAEC,UAAU;QAAEC;MAAK,CAAC,GAAGJ,MAAM;MAC3D,MAAMb,gBAAgB,CAACkB,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;;MAE3C;MACA,MAAML,QAAQ,GAAG,MAAMf,OAAO,CAACqB,WAAW,CAACC,WAAW,CAACN,YAAY,CAAC;MACpE,IAAI,CAACD,QAAQ,EAAE;QACX,MAAM,IAAIQ,6BAAa,CAAE,uBAAsBP,YAAa,cAAa,CAAC;MAC9E;;MAEA;MACA,MAAMQ,IAAI,GAAG,MAAMxB,OAAO,CAACqB,WAAW,CAACI,gBAAgB,CAACC,UAAU,CAAC;QAC/DC,MAAM,EAAEC,6BAAsB,CAACC,OAAO;QACtCC,KAAK,EAAE;UACHf,QAAQ,EAAEC,YAAY;UACtBC;QACJ;MACJ,CAAC,CAAC;MACF;AACZ;AACA;AACA;AACA;MACY,MAAMP,mBAAmB,CAACqB,OAAO,CAAC;QAAEjB;MAAO,CAAC,CAAC;MAC7C,MAAM,IAAAkB,2BAAmB,EAAuB;QAC5ChC,OAAO;QACPiC,IAAI,EAAErC,2BAA2B;QACjCsC,OAAO,EAAE;UACLnB,QAAQ,EAAEC,YAAY;UACtBC,UAAU;UACVO,IAAI;UACJW,IAAI,EAAE,MAAM;UACZC,QAAQ,EAAEpC,OAAO,CAACI,QAAQ,CAACC,WAAW,CAAC,CAAC;UACxCa;QACJ,CAAC;QACDmB,WAAW,EAAE;MACjB,CAAC,CAAC;MACF,MAAM1B,kBAAkB,CAACoB,OAAO,CAAC;QAAEjB;MAAO,CAAC,CAAC;MAE5C,OAAO;QACHU;MACJ,CAAC;IACL,CAAC;IAED,MAAMc,WAAWA,CAACxB,MAAM,EAAE;MACtB,MAAM;QAAEyB,GAAG,EAAEC,cAAc;QAAEC,YAAY;QAAEC,KAAK;QAAEC,IAAI;QAAEC;MAAO,CAAC,GAAG9B,MAAM;MACzE,MAAMb,gBAAgB,CAACkB,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,IAAIyB,OAAiB,GAAGL,cAAc,IAAI,EAAE;MAC5C;MACA,IAAI,CAACA,cAAc,IAAKM,KAAK,CAACC,OAAO,CAACP,cAAc,CAAC,IAAIA,cAAc,CAACQ,MAAM,KAAK,CAAE,EAAE;QACnFH,OAAO,GAAG,EAAE;QACZ,IAAII,KAAK,GAAG,EAAE;QACd,IAAI/B,IAAkB,GAAG;UACrBgC,YAAY,EAAE,IAAI;UAClBC,MAAM,EAAE,IAAI;UACZC,UAAU,EAAE;QAChB,CAAC;QACD;QACA,OAAOlC,IAAI,CAACgC,YAAY,EAAE;UACtB,CAACD,KAAK,EAAE/B,IAAI,CAAC,GAAG,MAAMlB,OAAO,CAACqB,WAAW,CAACgC,eAAe,CAAC;YACtDC,KAAK,EAAEpC,IAAI,CAACiC,MAAM;YAClBT,KAAK,EAAEA,KAAK;YACZC,IAAI,EAAEA,IAAI;YACVC,MAAM,EAAEA;UACZ,CAAC,CAAC;UACF;UACAK,KAAK,CAACM,OAAO,CAACC,IAAI,IAAIX,OAAO,CAACY,IAAI,CAACD,IAAI,CAACE,EAAE,CAAC,CAAC;QAChD;MACJ;MAEA,IAAIb,OAAO,CAACG,MAAM,KAAK,CAAC,EAAE;QACtB,MAAM,IAAIW,cAAW,CACjB,2DAA2D,EAC3D,6BACJ,CAAC;MACL;;MAEA;MACA,MAAMnC,IAAI,GAAG,MAAMxB,OAAO,CAACqB,WAAW,CAACI,gBAAgB,CAACC,UAAU,CAAC;QAC/DC,MAAM,EAAEC,6BAAsB,CAACC;MACnC,CAAC,CAAC;MACF,MAAM+B,kBAAkB,GAAI,GAAEtE,uBAAwB,IAAGkC,IAAI,CAACkC,EAAG,EAAC;MAClE;MACA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhB,OAAO,CAACG,MAAM,EAAEa,CAAC,EAAE,EAAE;QACrC,MAAMC,MAAM,GAAGjB,OAAO,CAACgB,CAAC,CAAC;QACzB;QACA,MAAM7D,OAAO,CAACqB,WAAW,CAACI,gBAAgB,CAACsC,aAAa,CACpDvC,IAAI,CAACkC,EAAE,EACP,IAAAM,eAAO,EAACH,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EACjB;UACIlC,MAAM,EAAEC,6BAAsB,CAACC,OAAO;UACtCC,KAAK,EAAE;YACHgC,MAAM;YACNF,kBAAkB;YAClBnB;UACJ;QACJ,CACJ,CAAC;MACL;MACA;MACA,MAAMzC,OAAO,CAACqB,WAAW,CAACI,gBAAgB,CAACwC,UAAU,CAACzC,IAAI,CAACkC,EAAE,EAAE;QAC3D/B,MAAM,EAAEC,6BAAsB,CAACsC,UAAU;QACzCC,KAAK,EAAE,IAAAC,mBAAY,EAACvB,OAAO,CAACG,MAAM,CAAC;QACnClB,KAAK,EAAE;UACH8B,kBAAkB;UAClBnB;QACJ;MACJ,CAAC,CAAC;;MAEF;AACZ;AACA;AACA;AACA;MACY,MAAMlC,mBAAmB,CAACwB,OAAO,CAAC;QAAEjB;MAAO,CAAC,CAAC;MAC7C;MACA,MAAM,IAAAkB,2BAAmB,EAAmC;QACxDhC,OAAO;QACPiC,IAAI,EAAEzC,4BAA4B;QAClC0C,OAAO,EAAE;UACLmC,MAAM,EAAE7C,IAAI,CAACkC,EAAE;UACfY,YAAY,EAAE,CAAC;UACfnC,IAAI,EAAE,MAAM;UACZC,QAAQ,EAAEpC,OAAO,CAACI,QAAQ,CAACC,WAAW,CAAC;QAC3C,CAAC;QACDgC,WAAW,EAAE;MACjB,CAAC,CAAC;MACF,MAAM5B,kBAAkB,CAACsB,OAAO,CAAC;QAAEjB;MAAO,CAAC,CAAC;MAE5C,OAAO;QAAEU;MAAK,CAAC;IACnB;EACJ,CAAC;EACD;EACAxB,OAAO,CAACqB,WAAW,CAAC4B,KAAK,GAAGrC,gBAAgB;AAChD,CAAC,CAAC;AAAArB,OAAA,CAAAgF,OAAA,GAAAzE,QAAA"}
|
@@ -0,0 +1,157 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.default = void 0;
|
8
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
9
|
+
var _pubsub = require("@webiny/pubsub");
|
10
|
+
var _api = require("@webiny/api");
|
11
|
+
var _types = require("../../types");
|
12
|
+
var _client = require("../../client");
|
13
|
+
var _utils = require("../../import/utils");
|
14
|
+
var _utils2 = require("@webiny/utils");
|
15
|
+
var _PageTemplatesPermissions = require("@webiny/api-page-builder/graphql/crud/permissions/PageTemplatesPermissions");
|
16
|
+
const EXPORT_TEMPLATES_FOLDER_KEY = "WEBINY_PB_EXPORT_TEMPLATE";
|
17
|
+
const EXPORT_TEMPLATES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
|
18
|
+
const IMPORT_TEMPLATES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
|
19
|
+
var _default = new _api.ContextPlugin(context => {
|
20
|
+
const pagesPermissions = new _PageTemplatesPermissions.PageTemplatesPermissions({
|
21
|
+
getPermissions: () => context.security.getPermissions("pb.template"),
|
22
|
+
getIdentity: context.security.getIdentity,
|
23
|
+
fullAccessPermissionName: "pb.*"
|
24
|
+
});
|
25
|
+
|
26
|
+
// Export
|
27
|
+
const onTemplatesBeforeExport = (0, _pubsub.createTopic)("PageBuilder.onTemplatesBeforeExport");
|
28
|
+
const onTemplatesAfterExport = (0, _pubsub.createTopic)("PageBuilder.onTemplatesAfterExport");
|
29
|
+
|
30
|
+
// Import
|
31
|
+
const onTemplatesBeforeImport = (0, _pubsub.createTopic)("PageBuilder.onTemplatesBeforeImport");
|
32
|
+
const onTemplatesAfterImport = (0, _pubsub.createTopic)("PageBuilder.onTemplatesAfterImport");
|
33
|
+
const importExportCrud = {
|
34
|
+
onTemplatesBeforeExport,
|
35
|
+
onTemplatesAfterExport,
|
36
|
+
onTemplatesBeforeImport,
|
37
|
+
onTemplatesAfterImport,
|
38
|
+
async importTemplates(params) {
|
39
|
+
const {
|
40
|
+
zipFileUrl
|
41
|
+
} = params;
|
42
|
+
await pagesPermissions.ensure({
|
43
|
+
rwd: "w"
|
44
|
+
});
|
45
|
+
|
46
|
+
// Create a task for import template
|
47
|
+
const task = await context.pageBuilder.importExportTask.createTask({
|
48
|
+
status: _types.ImportExportTaskStatus.PENDING,
|
49
|
+
input: {
|
50
|
+
zipFileUrl
|
51
|
+
}
|
52
|
+
});
|
53
|
+
/**
|
54
|
+
* Import Templates
|
55
|
+
* ImportTemplates
|
56
|
+
* importTemplates
|
57
|
+
*/
|
58
|
+
await onTemplatesBeforeImport.publish({
|
59
|
+
params
|
60
|
+
});
|
61
|
+
await (0, _client.invokeHandlerClient)({
|
62
|
+
context,
|
63
|
+
name: IMPORT_TEMPLATES_CREATE_HANDLER,
|
64
|
+
payload: {
|
65
|
+
zipFileUrl,
|
66
|
+
task,
|
67
|
+
type: "template",
|
68
|
+
identity: context.security.getIdentity()
|
69
|
+
},
|
70
|
+
description: "Import Templates - create"
|
71
|
+
});
|
72
|
+
await onTemplatesAfterImport.publish({
|
73
|
+
params
|
74
|
+
});
|
75
|
+
return {
|
76
|
+
task
|
77
|
+
};
|
78
|
+
},
|
79
|
+
async exportTemplates(params) {
|
80
|
+
const {
|
81
|
+
ids: initialTemplateIds
|
82
|
+
} = params;
|
83
|
+
await pagesPermissions.ensure({
|
84
|
+
rwd: "w"
|
85
|
+
});
|
86
|
+
let templateIds = initialTemplateIds || [];
|
87
|
+
// If no ids are provided then it means we want to export all templates
|
88
|
+
if (!initialTemplateIds || Array.isArray(initialTemplateIds) && initialTemplateIds.length === 0) {
|
89
|
+
templateIds = [];
|
90
|
+
const templates = await context.pageBuilder.listPageTemplates();
|
91
|
+
// Save template ids
|
92
|
+
templates.forEach(template => templateIds.push(template.id));
|
93
|
+
}
|
94
|
+
if (templateIds.length === 0) {
|
95
|
+
throw new _error.default("Cannot export templates - no templates found for provided inputs.", "EMPTY_EXPORT_NO_TEMPLATES_FOUND");
|
96
|
+
}
|
97
|
+
|
98
|
+
// Create the main task for templates export.
|
99
|
+
const task = await context.pageBuilder.importExportTask.createTask({
|
100
|
+
status: _types.ImportExportTaskStatus.PENDING
|
101
|
+
});
|
102
|
+
const exportTemplatesDataKey = `${EXPORT_TEMPLATES_FOLDER_KEY}/${task.id}`;
|
103
|
+
// For each template create a sub task and invoke the process handler.
|
104
|
+
for (let i = 0; i < templateIds.length; i++) {
|
105
|
+
const templateId = templateIds[i];
|
106
|
+
// Create sub task.
|
107
|
+
await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
|
108
|
+
status: _types.ImportExportTaskStatus.PENDING,
|
109
|
+
input: {
|
110
|
+
templateId,
|
111
|
+
exportTemplatesDataKey
|
112
|
+
}
|
113
|
+
});
|
114
|
+
}
|
115
|
+
// Update main task status.
|
116
|
+
await context.pageBuilder.importExportTask.updateTask(task.id, {
|
117
|
+
status: _types.ImportExportTaskStatus.PROCESSING,
|
118
|
+
stats: (0, _utils.initialStats)(templateIds.length),
|
119
|
+
input: {
|
120
|
+
exportTemplatesDataKey
|
121
|
+
}
|
122
|
+
});
|
123
|
+
|
124
|
+
/**
|
125
|
+
* Export Templates
|
126
|
+
* ExportTemplates
|
127
|
+
* exportTemplates
|
128
|
+
*/
|
129
|
+
await onTemplatesBeforeExport.publish({
|
130
|
+
params
|
131
|
+
});
|
132
|
+
// Invoke handler.
|
133
|
+
await (0, _client.invokeHandlerClient)({
|
134
|
+
context,
|
135
|
+
name: EXPORT_TEMPLATES_PROCESS_HANDLER,
|
136
|
+
payload: {
|
137
|
+
taskId: task.id,
|
138
|
+
subTaskIndex: 1,
|
139
|
+
type: "template",
|
140
|
+
identity: context.security.getIdentity()
|
141
|
+
},
|
142
|
+
description: "Export templates - process"
|
143
|
+
});
|
144
|
+
await onTemplatesAfterExport.publish({
|
145
|
+
params
|
146
|
+
});
|
147
|
+
return {
|
148
|
+
task
|
149
|
+
};
|
150
|
+
}
|
151
|
+
};
|
152
|
+
// Modify context
|
153
|
+
context.pageBuilder.templates = importExportCrud;
|
154
|
+
});
|
155
|
+
exports.default = _default;
|
156
|
+
|
157
|
+
//# sourceMappingURL=templates.crud.js.map
|
@@ -0,0 +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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"}
|
package/graphql/crud.d.ts
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
import {
|
2
|
-
declare const _default: (params:
|
1
|
+
import { ImportExportPluginsParams } from "./types";
|
2
|
+
declare const _default: (params: ImportExportPluginsParams) => import("@webiny/api").ContextPlugin<import("~/graphql/types").PbImportExportContext>[];
|
3
3
|
export default _default;
|
package/graphql/crud.js
CHANGED
@@ -1,16 +1,16 @@
|
|
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
|
-
|
8
|
+
var _blocks = _interopRequireDefault(require("./crud/blocks.crud"));
|
9
|
+
var _forms = _interopRequireDefault(require("./crud/forms.crud"));
|
10
10
|
var _pages = _interopRequireDefault(require("./crud/pages.crud"));
|
11
|
+
var _templates = _interopRequireDefault(require("./crud/templates.crud"));
|
12
|
+
var _importExportTasks = _interopRequireDefault(require("./crud/importExportTasks.crud"));
|
13
|
+
var _default = params => [_blocks.default, _forms.default, _pages.default, _templates.default, (0, _importExportTasks.default)(params)];
|
14
|
+
exports.default = _default;
|
11
15
|
|
12
|
-
|
13
|
-
|
14
|
-
var _default = params => [_pages.default, (0, _pageImportExportTasks.default)(params)];
|
15
|
-
|
16
|
-
exports.default = _default;
|
16
|
+
//# sourceMappingURL=crud.js.map
|
package/graphql/crud.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["params","pages","
|
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"}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.default = void 0;
|
8
|
+
var _resolve = _interopRequireDefault(require("./utils/resolve"));
|
9
|
+
const plugin = {
|
10
|
+
type: "graphql-schema",
|
11
|
+
schema: {
|
12
|
+
typeDefs: /* GraphQL */`
|
13
|
+
type PbExportBlockData {
|
14
|
+
task: PbImportExportTask
|
15
|
+
}
|
16
|
+
|
17
|
+
type PbExportBlockResponse {
|
18
|
+
data: PbExportBlockData
|
19
|
+
error: PbError
|
20
|
+
}
|
21
|
+
|
22
|
+
type PbImportBlockData {
|
23
|
+
task: PbImportExportTask
|
24
|
+
}
|
25
|
+
|
26
|
+
type PbImportBlockResponse {
|
27
|
+
data: PbImportBlockData
|
28
|
+
error: PbError
|
29
|
+
}
|
30
|
+
|
31
|
+
extend type PbMutation {
|
32
|
+
# Export blocks
|
33
|
+
exportBlocks(ids: [ID!], where: PbListPageBlocksWhereInput): PbExportBlockResponse
|
34
|
+
|
35
|
+
# Import blocks
|
36
|
+
importBlocks(zipFileUrl: String): PbImportBlockResponse
|
37
|
+
}
|
38
|
+
`,
|
39
|
+
resolvers: {
|
40
|
+
PbMutation: {
|
41
|
+
exportBlocks: async (_, args, context) => {
|
42
|
+
return (0, _resolve.default)(() => context.pageBuilder.blocks.exportBlocks(args));
|
43
|
+
},
|
44
|
+
importBlocks: async (_, args, context) => {
|
45
|
+
return (0, _resolve.default)(() => context.pageBuilder.blocks.importBlocks(args));
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
};
|
51
|
+
var _default = plugin;
|
52
|
+
exports.default = _default;
|
53
|
+
|
54
|
+
//# sourceMappingURL=blocks.gql.js.map
|
@@ -0,0 +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"}
|