@webiny/api-page-builder-import-export 0.0.0-unstable.990c3ab1b6 → 0.0.0-unstable.cc58a6566b

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 (118) hide show
  1. package/client.d.ts +2 -2
  2. package/client.js.map +1 -1
  3. package/export/combine/blocksHandler.d.ts +6 -0
  4. package/export/combine/blocksHandler.js +99 -0
  5. package/export/combine/blocksHandler.js.map +1 -0
  6. package/{exportPages → export}/combine/index.d.ts +3 -2
  7. package/export/combine/index.js +35 -0
  8. package/export/combine/index.js.map +1 -0
  9. package/export/combine/pagesHandler.d.ts +6 -0
  10. package/export/combine/pagesHandler.js +99 -0
  11. package/export/combine/pagesHandler.js.map +1 -0
  12. package/export/combine/templatesHandler.d.ts +6 -0
  13. package/export/combine/templatesHandler.js +99 -0
  14. package/export/combine/templatesHandler.js.map +1 -0
  15. package/export/process/blocksHandler.d.ts +6 -0
  16. package/export/process/blocksHandler.js +162 -0
  17. package/export/process/blocksHandler.js.map +1 -0
  18. package/{exportPages → export}/process/index.d.ts +4 -6
  19. package/export/process/index.js +32 -0
  20. package/export/process/index.js.map +1 -0
  21. package/export/process/pagesHandler.d.ts +6 -0
  22. package/export/process/pagesHandler.js +189 -0
  23. package/export/process/pagesHandler.js.map +1 -0
  24. package/export/process/templatesHandler.d.ts +6 -0
  25. package/export/process/templatesHandler.js +166 -0
  26. package/export/process/templatesHandler.js.map +1 -0
  27. package/{exportPages → export}/s3Stream.d.ts +0 -0
  28. package/{exportPages → export}/s3Stream.js +0 -0
  29. package/{exportPages → export}/s3Stream.js.map +0 -0
  30. package/export/utils.d.ts +22 -0
  31. package/export/utils.js +160 -0
  32. package/export/utils.js.map +1 -0
  33. package/{exportPages → export}/zipper.d.ts +6 -5
  34. package/{exportPages → export}/zipper.js +8 -7
  35. package/export/zipper.js.map +1 -0
  36. package/graphql/crud/blocks.crud.d.ts +4 -0
  37. package/graphql/crud/blocks.crud.js +137 -0
  38. package/graphql/crud/blocks.crud.js.map +1 -0
  39. package/graphql/crud/importExportTasks.crud.d.ts +5 -0
  40. package/graphql/crud/{pageImportExportTasks.crud.js → importExportTasks.crud.js} +48 -48
  41. package/graphql/crud/importExportTasks.crud.js.map +1 -0
  42. package/graphql/crud/pages.crud.d.ts +2 -2
  43. package/graphql/crud/pages.crud.js +18 -14
  44. package/graphql/crud/pages.crud.js.map +1 -1
  45. package/graphql/crud/templates.crud.d.ts +4 -0
  46. package/graphql/crud/templates.crud.js +124 -0
  47. package/graphql/crud/templates.crud.js.map +1 -0
  48. package/graphql/crud.d.ts +2 -2
  49. package/graphql/crud.js +4 -2
  50. package/graphql/crud.js.map +1 -1
  51. package/graphql/graphql/blocks.gql.d.ts +4 -0
  52. package/graphql/graphql/blocks.gql.js +52 -0
  53. package/graphql/graphql/blocks.gql.js.map +1 -0
  54. package/graphql/graphql/importExportTasks.gql.d.ts +4 -0
  55. package/graphql/graphql/{pageImportExportTasks.gql.js → importExportTasks.gql.js} +17 -17
  56. package/graphql/graphql/importExportTasks.gql.js.map +1 -0
  57. package/graphql/graphql/pages.gql.d.ts +2 -2
  58. package/graphql/graphql/pages.gql.js +3 -9
  59. package/graphql/graphql/pages.gql.js.map +1 -1
  60. package/graphql/graphql/templates.gql.d.ts +4 -0
  61. package/graphql/graphql/templates.gql.js +52 -0
  62. package/graphql/graphql/templates.gql.js.map +1 -0
  63. package/graphql/graphql/utils/resolve.d.ts +1 -1
  64. package/graphql/graphql.js +4 -2
  65. package/graphql/graphql.js.map +1 -1
  66. package/graphql/index.d.ts +2 -2
  67. package/graphql/index.js.map +1 -1
  68. package/graphql/types.d.ts +60 -23
  69. package/graphql/types.js.map +1 -1
  70. package/import/create/blocksHandler.d.ts +3 -0
  71. package/import/create/blocksHandler.js +100 -0
  72. package/import/create/blocksHandler.js.map +1 -0
  73. package/{importPages → import}/create/index.d.ts +7 -5
  74. package/import/create/index.js +35 -0
  75. package/import/create/index.js.map +1 -0
  76. package/import/create/pagesHandler.d.ts +3 -0
  77. package/import/create/pagesHandler.js +102 -0
  78. package/import/create/pagesHandler.js.map +1 -0
  79. package/import/create/templatesHandler.d.ts +3 -0
  80. package/import/create/templatesHandler.js +98 -0
  81. package/import/create/templatesHandler.js.map +1 -0
  82. package/import/process/blocksHandler.d.ts +3 -0
  83. package/import/process/blocksHandler.js +169 -0
  84. package/import/process/blocksHandler.js.map +1 -0
  85. package/{importPages → import}/process/index.d.ts +5 -3
  86. package/import/process/index.js +32 -0
  87. package/import/process/index.js.map +1 -0
  88. package/import/process/pagesHandler.d.ts +3 -0
  89. package/import/process/pagesHandler.js +177 -0
  90. package/import/process/pagesHandler.js.map +1 -0
  91. package/import/process/templatesHandler.d.ts +3 -0
  92. package/import/process/templatesHandler.js +169 -0
  93. package/import/process/templatesHandler.js.map +1 -0
  94. package/import/utils.d.ts +56 -0
  95. package/{importPages → import}/utils.js +154 -35
  96. package/import/utils.js.map +1 -0
  97. package/package.json +24 -24
  98. package/types.d.ts +62 -65
  99. package/types.js +17 -17
  100. package/types.js.map +1 -1
  101. package/exportPages/combine/index.js +0 -106
  102. package/exportPages/combine/index.js.map +0 -1
  103. package/exportPages/process/index.js +0 -192
  104. package/exportPages/process/index.js.map +0 -1
  105. package/exportPages/utils.d.ts +0 -13
  106. package/exportPages/utils.js +0 -100
  107. package/exportPages/utils.js.map +0 -1
  108. package/exportPages/zipper.js.map +0 -1
  109. package/graphql/crud/pageImportExportTasks.crud.d.ts +0 -5
  110. package/graphql/crud/pageImportExportTasks.crud.js.map +0 -1
  111. package/graphql/graphql/pageImportExportTasks.gql.d.ts +0 -4
  112. package/graphql/graphql/pageImportExportTasks.gql.js.map +0 -1
  113. package/importPages/create/index.js +0 -107
  114. package/importPages/create/index.js.map +0 -1
  115. package/importPages/process/index.js +0 -180
  116. package/importPages/process/index.js.map +0 -1
  117. package/importPages/utils.d.ts +0 -50
  118. package/importPages/utils.js.map +0 -1
@@ -31,7 +31,7 @@ var _error = _interopRequireDefault(require("@webiny/error"));
31
31
  */
32
32
  // @ts-ignore
33
33
 
34
- const validStatus = `${_types.PageImportExportTaskStatus.PENDING}:${_types.PageImportExportTaskStatus.PROCESSING}:${_types.PageImportExportTaskStatus.COMPLETED}:${_types.PageImportExportTaskStatus.FAILED}`;
34
+ const validStatus = `${_types.ImportExportTaskStatus.PENDING}:${_types.ImportExportTaskStatus.PROCESSING}:${_types.ImportExportTaskStatus.COMPLETED}:${_types.ImportExportTaskStatus.FAILED}`;
35
35
  const CreateDataModel = (0, _fields.withFields)({
36
36
  status: (0, _fields.string)({
37
37
  validation: _validation.validation.create(`required,in:${validStatus}`)
@@ -58,19 +58,19 @@ var _default = ({
58
58
  * If pageBuilder is not defined on the context, do not continue, but log it.
59
59
  */
60
60
  if (!context.pageBuilder) {
61
- console.log("Missing pageBuilder on context. Skipping Page ImportExportTasks crud.");
61
+ console.log("Missing pageBuilder on context. Skipping ImportExportTasks crud.");
62
62
  return;
63
63
  }
64
64
  const getLocale = () => {
65
65
  const locale = context.i18n.getContentLocale();
66
66
  if (!locale) {
67
- throw new _error.default("Missing content locale in pageImportExportTasks.crud.ts", "LOCALE_ERROR");
67
+ throw new _error.default("Missing content locale in importExportTasks.crud.ts", "LOCALE_ERROR");
68
68
  }
69
69
  return locale;
70
70
  };
71
71
 
72
72
  // Modify context
73
- context.pageBuilder.pageImportExportTask = {
73
+ context.pageBuilder.importExportTask = {
74
74
  storageOperations,
75
75
  async getTask(id) {
76
76
  const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
@@ -85,20 +85,20 @@ var _default = ({
85
85
  id
86
86
  }
87
87
  };
88
- let pageImportExportTask = null;
88
+ let importExportTask = null;
89
89
  try {
90
- pageImportExportTask = await storageOperations.getTask(params);
91
- if (!pageImportExportTask) {
90
+ importExportTask = await storageOperations.getTask(params);
91
+ if (!importExportTask) {
92
92
  return null;
93
93
  }
94
94
  } catch (ex) {
95
- throw new _error.default(ex.message || "Could not get pageImportExportTask by id.", ex.code || "GET_PAGE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
95
+ throw new _error.default(ex.message || "Could not get importExportTask by id.", ex.code || "GET_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
96
96
  params
97
97
  }));
98
98
  }
99
99
  const identity = context.security.getIdentity();
100
- (0, _checkOwnPermissions.default)(identity, permission, pageImportExportTask);
101
- return pageImportExportTask;
100
+ (0, _checkOwnPermissions.default)(identity, permission, importExportTask);
101
+ return importExportTask;
102
102
  },
103
103
  async listTasks(params) {
104
104
  const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
@@ -128,7 +128,7 @@ var _default = ({
128
128
  const [items] = await storageOperations.listTasks(listParams);
129
129
  return items;
130
130
  } catch (ex) {
131
- throw new _error.default(ex.message || "Could not list all page elements.", ex.code || "LIST_PAGE_ELEMENTS_ERROR", {
131
+ throw new _error.default(ex.message || "Could not list all importExportTask.", ex.code || "LIST_ELEMENTS_ERROR", {
132
132
  params
133
133
  });
134
134
  }
@@ -142,7 +142,7 @@ var _default = ({
142
142
  const id = (0, _mdbid.default)();
143
143
  const identity = context.security.getIdentity();
144
144
  const data = await createDataModel.toJSON();
145
- const pageImportExportTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
145
+ const importExportTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
146
146
  tenant: context.tenancy.getCurrentTenant().id,
147
147
  locale: getLocale().code,
148
148
  id,
@@ -156,11 +156,11 @@ var _default = ({
156
156
  try {
157
157
  return await storageOperations.createTask({
158
158
  input: data,
159
- task: pageImportExportTask
159
+ task: importExportTask
160
160
  });
161
161
  } catch (ex) {
162
- throw new _error.default(ex.message || "Could not create pageImportExportTask.", ex.code || "CREATE_PAGE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
163
- pageImportExportTask
162
+ throw new _error.default(ex.message || "Could not create importExportTask.", ex.code || "CREATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
163
+ importExportTask
164
164
  }));
165
165
  }
166
166
  },
@@ -168,9 +168,9 @@ var _default = ({
168
168
  const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
169
169
  rwd: "w"
170
170
  });
171
- const original = await context.pageBuilder.pageImportExportTask.getTask(id);
171
+ const original = await context.pageBuilder.importExportTask.getTask(id);
172
172
  if (!original) {
173
- throw new _handlerGraphql.NotFoundError(`PageImportExportTask "${id}" not found.`);
173
+ throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
174
174
  }
175
175
  const identity = context.security.getIdentity();
176
176
  (0, _checkOwnPermissions.default)(identity, permission, original);
@@ -179,17 +179,17 @@ var _default = ({
179
179
  const data = await updateDataModel.toJSON({
180
180
  onlyDirty: true
181
181
  });
182
- const pageImportExportTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
182
+ const importExportTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
183
183
  try {
184
184
  return await storageOperations.updateTask({
185
185
  input: data,
186
186
  original,
187
- task: pageImportExportTask
187
+ task: importExportTask
188
188
  });
189
189
  } catch (ex) {
190
- throw new _error.default(ex.message || "Could not update pageImportExportTask.", ex.code || "UPDATE_PAGE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
190
+ throw new _error.default(ex.message || "Could not update importExportTask.", ex.code || "UPDATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
191
191
  original,
192
- pageImportExportTask
192
+ importExportTask
193
193
  }));
194
194
  }
195
195
  },
@@ -197,19 +197,19 @@ var _default = ({
197
197
  const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
198
198
  rwd: "d"
199
199
  });
200
- const pageImportExportTask = await context.pageBuilder.pageImportExportTask.getTask(id);
201
- if (!pageImportExportTask) {
202
- throw new _handlerGraphql.NotFoundError(`PageImportExportTask "${id}" not found.`);
200
+ const importExportTask = await context.pageBuilder.importExportTask.getTask(id);
201
+ if (!importExportTask) {
202
+ throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
203
203
  }
204
204
  const identity = context.security.getIdentity();
205
- (0, _checkOwnPermissions.default)(identity, permission, pageImportExportTask);
205
+ (0, _checkOwnPermissions.default)(identity, permission, importExportTask);
206
206
  try {
207
207
  return await storageOperations.deleteTask({
208
- task: pageImportExportTask
208
+ task: importExportTask
209
209
  });
210
210
  } catch (ex) {
211
- throw new _error.default(ex.message || "Could not delete pageImportExportTask.", ex.code || "DELETE_PAGE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
212
- pageImportExportTask
211
+ throw new _error.default(ex.message || "Could not delete importExportTask.", ex.code || "DELETE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
212
+ importExportTask
213
213
  }));
214
214
  }
215
215
  },
@@ -217,9 +217,9 @@ var _default = ({
217
217
  const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
218
218
  rwd: "w"
219
219
  });
220
- const original = await context.pageBuilder.pageImportExportTask.getTask(id);
220
+ const original = await context.pageBuilder.importExportTask.getTask(id);
221
221
  if (!original) {
222
- throw new _handlerGraphql.NotFoundError(`PageImportExportTask "${id}" not found.`);
222
+ throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
223
223
  }
224
224
  const identity = context.security.getIdentity();
225
225
  (0, _checkOwnPermissions.default)(identity, permission, original);
@@ -229,7 +229,7 @@ var _default = ({
229
229
  original
230
230
  });
231
231
  } catch (ex) {
232
- throw new _error.default(ex.message || "Could not update pageImportExportTask.", ex.code || "UPDATE_PAGE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
232
+ throw new _error.default(ex.message || "Could not update importExportTask.", ex.code || "UPDATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
233
233
  original
234
234
  }));
235
235
  }
@@ -242,7 +242,7 @@ var _default = ({
242
242
  await createDataModel.validate();
243
243
  const identity = context.security.getIdentity();
244
244
  const data = await createDataModel.toJSON();
245
- const pageImportExportSubTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
245
+ const importExportSubTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
246
246
  tenant: context.tenancy.getCurrentTenant().id,
247
247
  locale: getLocale().code,
248
248
  id: id,
@@ -257,11 +257,11 @@ var _default = ({
257
257
  try {
258
258
  return await storageOperations.createSubTask({
259
259
  input: data,
260
- subTask: pageImportExportSubTask
260
+ subTask: importExportSubTask
261
261
  });
262
262
  } catch (ex) {
263
- throw new _error.default(ex.message || "Could not create pageImportExportSubTask.", ex.code || "CREATE_PAGE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
264
- pageImportExportSubTask
263
+ throw new _error.default(ex.message || "Could not create importExportSubTask.", ex.code || "CREATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
264
+ importExportSubTask
265
265
  }));
266
266
  }
267
267
  },
@@ -269,9 +269,9 @@ var _default = ({
269
269
  const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
270
270
  rwd: "w"
271
271
  });
272
- const original = await context.pageBuilder.pageImportExportTask.getSubTask(parent, subTaskId);
272
+ const original = await context.pageBuilder.importExportTask.getSubTask(parent, subTaskId);
273
273
  if (!original) {
274
- throw new _handlerGraphql.NotFoundError(`PageImportExportTask parent: "${parent}" and id: "${subTaskId}" not found.`);
274
+ throw new _handlerGraphql.NotFoundError(`ImportExportTask parent: "${parent}" and id: "${subTaskId}" not found.`);
275
275
  }
276
276
  const identity = context.security.getIdentity();
277
277
  (0, _checkOwnPermissions.default)(identity, permission, original);
@@ -281,16 +281,16 @@ var _default = ({
281
281
  onlyDirty: true
282
282
  });
283
283
  // TODO: Merge recursively
284
- const pageImportExportSubTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
284
+ const importExportSubTask = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
285
285
  try {
286
286
  return await storageOperations.updateSubTask({
287
287
  input: data,
288
288
  original,
289
- subTask: pageImportExportSubTask
289
+ subTask: importExportSubTask
290
290
  });
291
291
  } catch (ex) {
292
- throw new _error.default(ex.message || "Could not update pageImportExportSubTask.", ex.code || "UPDATE_PAGE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
293
- pageImportExportSubTask,
292
+ throw new _error.default(ex.message || "Could not update importExportSubTask.", ex.code || "UPDATE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
293
+ importExportSubTask,
294
294
  original
295
295
  }));
296
296
  }
@@ -309,20 +309,20 @@ var _default = ({
309
309
  parent: parent
310
310
  }
311
311
  };
312
- let pageImportExportSubTask = null;
312
+ let importExportSubTask = null;
313
313
  try {
314
- pageImportExportSubTask = await storageOperations.getSubTask(params);
315
- if (!pageImportExportSubTask) {
314
+ importExportSubTask = await storageOperations.getSubTask(params);
315
+ if (!importExportSubTask) {
316
316
  return null;
317
317
  }
318
318
  } catch (ex) {
319
- throw new _error.default(ex.message || "Could not get pageImportExportSubTask by id.", ex.code || "GET_PAGE_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
319
+ throw new _error.default(ex.message || "Could not get importExportSubTask by id.", ex.code || "GET_IMPORT_EXPORT_TASK_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
320
320
  params
321
321
  }));
322
322
  }
323
323
  const identity = context.security.getIdentity();
324
- (0, _checkOwnPermissions.default)(identity, permission, pageImportExportSubTask);
325
- return pageImportExportSubTask;
324
+ (0, _checkOwnPermissions.default)(identity, permission, importExportSubTask);
325
+ return importExportSubTask;
326
326
  },
327
327
  async listSubTasks(parent, status, limit) {
328
328
  const permission = await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
@@ -349,7 +349,7 @@ var _default = ({
349
349
  const [items] = await storageOperations.listSubTasks(listParams);
350
350
  return items;
351
351
  } catch (ex) {
352
- throw new _error.default(ex.message || "Could not list all pageImportExportSubTask.", ex.code || "LIST_PAGE_IMPORT_EXPORT_TASK_ERROR", {
352
+ throw new _error.default(ex.message || "Could not list all importExportSubTask.", ex.code || "LIST_IMPORT_EXPORT_TASK_ERROR", {
353
353
  params: {
354
354
  parent,
355
355
  status,
@@ -0,0 +1 @@
1
+ {"version":3,"names":["validStatus","ImportExportTaskStatus","PENDING","PROCESSING","COMPLETED","FAILED","CreateDataModel","withFields","status","string","validation","create","data","object","input","stats","error","UpdateDataModel","PERMISSION_NAME","storageOperations","ContextPlugin","context","pageBuilder","console","log","getLocale","locale","i18n","getContentLocale","WebinyError","importExportTask","getTask","id","permission","checkBasePermissions","rwd","tenant","tenancy","getCurrentTenant","params","where","code","ex","message","identity","security","getIdentity","checkOwnPermissions","listTasks","sort","limit","listParams","Array","isArray","length","own","createdBy","items","createTask","createDataModel","populate","validate","mdbid","toJSON","createdOn","Date","toISOString","type","displayName","task","updateTask","original","NotFoundError","updateDataModel","onlyDirty","deleteTask","updateStats","updateTaskStats","createSubTask","parent","importExportSubTask","subTask","updateSubTask","subTaskId","getSubTask","listSubTasks"],"sources":["importExportTasks.crud.ts"],"sourcesContent":["/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\n/**\n * Package @commodo/fields does not have types.\n */\n// @ts-ignore\nimport { string, withFields } from \"@commodo/fields\";\n/**\n * Package commodo-fields-object does not have types.\n */\n// @ts-ignore\nimport { object } from \"commodo-fields-object\";\nimport { validation } from \"@webiny/validation\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport checkBasePermissions from \"@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions\";\nimport checkOwnPermissions from \"@webiny/api-page-builder/graphql/crud/utils/checkOwnPermissions\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport {\n ImportExportPluginsParams,\n ImportExportTask,\n ImportExportTaskStatus,\n ImportExportTaskStorageOperationsListSubTaskParams\n} from \"~/types\";\nimport { PbImportExportContext } from \"~/graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { PageElementStorageOperationsListParams } from \"@webiny/api-page-builder/types\";\n\nconst validStatus = `${ImportExportTaskStatus.PENDING}:${ImportExportTaskStatus.PROCESSING}:${ImportExportTaskStatus.COMPLETED}:${ImportExportTaskStatus.FAILED}`;\n\nconst CreateDataModel = withFields({\n status: string({\n validation: validation.create(`required,in:${validStatus}`)\n }),\n data: object(),\n input: object(),\n stats: object(),\n error: object()\n})();\n\nconst UpdateDataModel = withFields({\n status: string({\n validation: validation.create(`in:${validStatus}`)\n }),\n data: object(),\n input: object(),\n stats: object(),\n error: object()\n})();\n\nconst PERMISSION_NAME = \"pb.page\";\n\nexport default ({ storageOperations }: ImportExportPluginsParams) =>\n new ContextPlugin<PbImportExportContext>(async context => {\n /**\n * If pageBuilder is not defined on the context, do not continue, but log it.\n */\n if (!context.pageBuilder) {\n console.log(\"Missing pageBuilder on context. Skipping ImportExportTasks crud.\");\n return;\n }\n\n const getLocale = () => {\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in importExportTasks.crud.ts\",\n \"LOCALE_ERROR\"\n );\n }\n return locale;\n };\n\n // Modify context\n context.pageBuilder.importExportTask = {\n storageOperations,\n async getTask(id) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id\n }\n };\n\n let importExportTask: ImportExportTask | null = null;\n\n try {\n importExportTask = await storageOperations.getTask(params);\n\n if (!importExportTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, importExportTask);\n\n return importExportTask;\n },\n\n async listTasks(params) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const { sort, limit } = params || {};\n\n const listParams: PageElementStorageOperationsListParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code\n },\n sort: Array.isArray(sort) && sort.length > 0 ? sort : [\"createdOn_ASC\"],\n limit: limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (permission.own) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportTask.\",\n ex.code || \"LIST_ELEMENTS_ERROR\",\n {\n params\n }\n );\n }\n },\n\n async createTask(input) {\n await checkBasePermissions(context, PERMISSION_NAME, { rwd: \"w\" });\n\n const createDataModel = new CreateDataModel().populate(input);\n await createDataModel.validate();\n\n const id: string = mdbid();\n const identity = context.security.getIdentity();\n\n const data: ImportExportTask = await createDataModel.toJSON();\n\n const importExportTask: ImportExportTask = {\n ...data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createTask({\n input: data,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateTask(id, input) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, original);\n\n const updateDataModel = new UpdateDataModel().populate(input);\n await updateDataModel.validate();\n\n const data = await updateDataModel.toJSON({ onlyDirty: true });\n\n const importExportTask: ImportExportTask = {\n ...original,\n ...data\n };\n\n try {\n return await storageOperations.updateTask({\n input: data,\n original,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original,\n importExportTask\n }\n );\n }\n },\n\n async deleteTask(id) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"d\"\n });\n\n const importExportTask = await context.pageBuilder.importExportTask.getTask(id);\n if (!importExportTask) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, importExportTask);\n\n try {\n return await storageOperations.deleteTask({\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete importExportTask.\",\n ex.code || \"DELETE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateStats(id, input) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, original);\n\n try {\n return await storageOperations.updateTaskStats({\n input,\n original\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original\n }\n );\n }\n },\n\n async createSubTask(parent, id, input) {\n await checkBasePermissions(context, PERMISSION_NAME, { rwd: \"w\" });\n\n const createDataModel = new CreateDataModel().populate(input);\n await createDataModel.validate();\n\n const identity = context.security.getIdentity();\n\n const data = await createDataModel.toJSON();\n\n const importExportSubTask: ImportExportTask = {\n ...data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id: id,\n parent: parent,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createSubTask({\n input: data,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportSubTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask\n }\n );\n }\n },\n\n async updateSubTask(parent, subTaskId, input) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\n const original = await context.pageBuilder.importExportTask.getSubTask(\n parent,\n subTaskId\n );\n if (!original) {\n throw new NotFoundError(\n `ImportExportTask parent: \"${parent}\" and id: \"${subTaskId}\" not found.`\n );\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, original);\n\n const updateDataModel = new UpdateDataModel().populate(input);\n await updateDataModel.validate();\n\n const data = await updateDataModel.toJSON({ onlyDirty: true });\n // TODO: Merge recursively\n const importExportSubTask: ImportExportTask = {\n ...original,\n ...data\n };\n\n try {\n return await storageOperations.updateSubTask({\n input: data,\n original,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportSubTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask,\n original\n }\n );\n }\n },\n\n async getSubTask(parent, subTaskId) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id: subTaskId,\n parent: parent\n }\n };\n\n let importExportSubTask: ImportExportTask | null = null;\n\n try {\n importExportSubTask = await storageOperations.getSubTask(params);\n if (!importExportSubTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportSubTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n\n const identity = context.security.getIdentity();\n checkOwnPermissions(identity, permission, importExportSubTask);\n\n return importExportSubTask;\n },\n\n async listSubTasks(parent, status, limit) {\n const permission = await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"r\"\n });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const listParams: ImportExportTaskStorageOperationsListSubTaskParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n parent: parent,\n status\n },\n limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (permission.own) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listSubTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportSubTask.\",\n ex.code || \"LIST_IMPORT_EXPORT_TASK_ERROR\",\n {\n params: {\n parent,\n status,\n limit\n }\n }\n );\n }\n }\n };\n });\n"],"mappings":";;;;;;;;AAIA;AAKA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AA3BA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAiBA,MAAMA,WAAW,GAAI,GAAEC,6BAAsB,CAACC,OAAQ,IAAGD,6BAAsB,CAACE,UAAW,IAAGF,6BAAsB,CAACG,SAAU,IAAGH,6BAAsB,CAACI,MAAO,EAAC;AAEjK,MAAMC,eAAe,GAAG,IAAAC,kBAAU,EAAC;EAC/BC,MAAM,EAAE,IAAAC,cAAM,EAAC;IACXC,UAAU,EAAEA,sBAAU,CAACC,MAAM,CAAE,eAAcX,WAAY,EAAC;EAC9D,CAAC,CAAC;EACFY,IAAI,EAAE,IAAAC,2BAAM,GAAE;EACdC,KAAK,EAAE,IAAAD,2BAAM,GAAE;EACfE,KAAK,EAAE,IAAAF,2BAAM,GAAE;EACfG,KAAK,EAAE,IAAAH,2BAAM;AACjB,CAAC,CAAC,EAAE;AAEJ,MAAMI,eAAe,GAAG,IAAAV,kBAAU,EAAC;EAC/BC,MAAM,EAAE,IAAAC,cAAM,EAAC;IACXC,UAAU,EAAEA,sBAAU,CAACC,MAAM,CAAE,MAAKX,WAAY,EAAC;EACrD,CAAC,CAAC;EACFY,IAAI,EAAE,IAAAC,2BAAM,GAAE;EACdC,KAAK,EAAE,IAAAD,2BAAM,GAAE;EACfE,KAAK,EAAE,IAAAF,2BAAM,GAAE;EACfG,KAAK,EAAE,IAAAH,2BAAM;AACjB,CAAC,CAAC,EAAE;AAEJ,MAAMK,eAAe,GAAG,SAAS;AAAC,eAEnB,CAAC;EAAEC;AAA6C,CAAC,KAC5D,IAAIC,kBAAa,CAAwB,MAAMC,OAAO,IAAI;EACtD;AACR;AACA;EACQ,IAAI,CAACA,OAAO,CAACC,WAAW,EAAE;IACtBC,OAAO,CAACC,GAAG,CAAC,mEAAmE,CAAC;IAChF;EACJ;EAEA,MAAMC,SAAS,GAAG,MAAM;IACpB,MAAMC,MAAM,GAAGL,OAAO,CAACM,IAAI,CAACC,gBAAgB,EAAE;IAC9C,IAAI,CAACF,MAAM,EAAE;MACT,MAAM,IAAIG,cAAW,CACjB,qDAAqD,EACrD,cAAc,CACjB;IACL;IACA,OAAOH,MAAM;EACjB,CAAC;;EAED;EACAL,OAAO,CAACC,WAAW,CAACQ,gBAAgB,GAAG;IACnCX,iBAAiB;IACjB,MAAMY,OAAO,CAACC,EAAE,EAAE;MACd,MAAMC,UAAU,GAAG,MAAM,IAAAC,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QACpEiB,GAAG,EAAE;MACT,CAAC,CAAC;MAEF,MAAMC,MAAM,GAAGf,OAAO,CAACgB,OAAO,CAACC,gBAAgB,EAAE;MACjD,MAAMZ,MAAM,GAAGD,SAAS,EAAE;MAE1B,MAAMc,MAAM,GAAG;QACXC,KAAK,EAAE;UACHJ,MAAM,EAAEA,MAAM,CAACJ,EAAE;UACjBN,MAAM,EAAEA,MAAM,CAACe,IAAI;UACnBT;QACJ;MACJ,CAAC;MAED,IAAIF,gBAAyC,GAAG,IAAI;MAEpD,IAAI;QACAA,gBAAgB,GAAG,MAAMX,iBAAiB,CAACY,OAAO,CAACQ,MAAM,CAAC;QAE1D,IAAI,CAACT,gBAAgB,EAAE;UACnB,OAAO,IAAI;QACf;MACJ,CAAC,CAAC,OAAOY,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,uCAAuC,EACrDD,EAAE,CAACD,IAAI,IAAI,8BAA8B,8DAEjCC,EAAE,CAAC9B,IAAI,IAAI,CAAC,CAAC;UACjB2B;QAAM,GAEb;MACL;MACA,MAAMK,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;MAC/C,IAAAC,4BAAmB,EAACH,QAAQ,EAAEX,UAAU,EAAEH,gBAAgB,CAAC;MAE3D,OAAOA,gBAAgB;IAC3B,CAAC;IAED,MAAMkB,SAAS,CAACT,MAAM,EAAE;MACpB,MAAMN,UAAU,GAAG,MAAM,IAAAC,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QACpEiB,GAAG,EAAE;MACT,CAAC,CAAC;MAEF,MAAMC,MAAM,GAAGf,OAAO,CAACgB,OAAO,CAACC,gBAAgB,EAAE;MACjD,MAAMZ,MAAM,GAAGD,SAAS,EAAE;MAE1B,MAAM;QAAEwB,IAAI;QAAEC;MAAM,CAAC,GAAGX,MAAM,IAAI,CAAC,CAAC;MAEpC,MAAMY,UAAkD,GAAG;QACvDX,KAAK,EAAE;UACHJ,MAAM,EAAEA,MAAM,CAACJ,EAAE;UACjBN,MAAM,EAAEA,MAAM,CAACe;QACnB,CAAC;QACDQ,IAAI,EAAEG,KAAK,CAACC,OAAO,CAACJ,IAAI,CAAC,IAAIA,IAAI,CAACK,MAAM,GAAG,CAAC,GAAGL,IAAI,GAAG,CAAC,eAAe,CAAC;QACvEC,KAAK,EAAEA;MACX,CAAC;;MAED;MACA,IAAIjB,UAAU,CAACsB,GAAG,EAAE;QAChB,MAAMX,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;QAC/CK,UAAU,CAACX,KAAK,CAACgB,SAAS,GAAGZ,QAAQ,CAACZ,EAAE;MAC5C;MAEA,IAAI;QACA,MAAM,CAACyB,KAAK,CAAC,GAAG,MAAMtC,iBAAiB,CAAC6B,SAAS,CAACG,UAAU,CAAC;QAC7D,OAAOM,KAAK;MAChB,CAAC,CAAC,OAAOf,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,sCAAsC,EACpDD,EAAE,CAACD,IAAI,IAAI,qBAAqB,EAChC;UACIF;QACJ,CAAC,CACJ;MACL;IACJ,CAAC;IAED,MAAMmB,UAAU,CAAC5C,KAAK,EAAE;MACpB,MAAM,IAAAoB,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QAAEiB,GAAG,EAAE;MAAI,CAAC,CAAC;MAElE,MAAMwB,eAAe,GAAG,IAAIrD,eAAe,EAAE,CAACsD,QAAQ,CAAC9C,KAAK,CAAC;MAC7D,MAAM6C,eAAe,CAACE,QAAQ,EAAE;MAEhC,MAAM7B,EAAU,GAAG,IAAA8B,cAAK,GAAE;MAC1B,MAAMlB,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;MAE/C,MAAMlC,IAAsB,GAAG,MAAM+C,eAAe,CAACI,MAAM,EAAE;MAE7D,MAAMjC,gBAAkC,+DACjClB,IAAI;QACPwB,MAAM,EAAEf,OAAO,CAACgB,OAAO,CAACC,gBAAgB,EAAE,CAACN,EAAE;QAC7CN,MAAM,EAAED,SAAS,EAAE,CAACgB,IAAI;QACxBT,EAAE;QACFgC,SAAS,EAAE,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAE;QACnCV,SAAS,EAAE;UACPxB,EAAE,EAAEY,QAAQ,CAACZ,EAAE;UACfmC,IAAI,EAAEvB,QAAQ,CAACuB,IAAI;UACnBC,WAAW,EAAExB,QAAQ,CAACwB;QAC1B;MAAC,EACJ;MAED,IAAI;QACA,OAAO,MAAMjD,iBAAiB,CAACuC,UAAU,CAAC;UACtC5C,KAAK,EAAEF,IAAI;UACXyD,IAAI,EAAEvC;QACV,CAAC,CAAC;MACN,CAAC,CAAC,OAAOY,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,oCAAoC,EAClDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,8DAEpCC,EAAE,CAAC9B,IAAI,IAAI,CAAC,CAAC;UACjBkB;QAAgB,GAEvB;MACL;IACJ,CAAC;IAED,MAAMwC,UAAU,CAACtC,EAAE,EAAElB,KAAK,EAAE;MACxB,MAAMmB,UAAU,GAAG,MAAM,IAAAC,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QACpEiB,GAAG,EAAE;MACT,CAAC,CAAC;MACF,MAAMoC,QAAQ,GAAG,MAAMlD,OAAO,CAACC,WAAW,CAACQ,gBAAgB,CAACC,OAAO,CAACC,EAAE,CAAC;MACvE,IAAI,CAACuC,QAAQ,EAAE;QACX,MAAM,IAAIC,6BAAa,CAAE,qBAAoBxC,EAAG,cAAa,CAAC;MAClE;MAEA,MAAMY,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;MAC/C,IAAAC,4BAAmB,EAACH,QAAQ,EAAEX,UAAU,EAAEsC,QAAQ,CAAC;MAEnD,MAAME,eAAe,GAAG,IAAIxD,eAAe,EAAE,CAAC2C,QAAQ,CAAC9C,KAAK,CAAC;MAC7D,MAAM2D,eAAe,CAACZ,QAAQ,EAAE;MAEhC,MAAMjD,IAAI,GAAG,MAAM6D,eAAe,CAACV,MAAM,CAAC;QAAEW,SAAS,EAAE;MAAK,CAAC,CAAC;MAE9D,MAAM5C,gBAAkC,+DACjCyC,QAAQ,GACR3D,IAAI,CACV;MAED,IAAI;QACA,OAAO,MAAMO,iBAAiB,CAACmD,UAAU,CAAC;UACtCxD,KAAK,EAAEF,IAAI;UACX2D,QAAQ;UACRF,IAAI,EAAEvC;QACV,CAAC,CAAC;MACN,CAAC,CAAC,OAAOY,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,oCAAoC,EAClDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,8DAEpCC,EAAE,CAAC9B,IAAI,IAAI,CAAC,CAAC;UACjB2D,QAAQ;UACRzC;QAAgB,GAEvB;MACL;IACJ,CAAC;IAED,MAAM6C,UAAU,CAAC3C,EAAE,EAAE;MACjB,MAAMC,UAAU,GAAG,MAAM,IAAAC,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QACpEiB,GAAG,EAAE;MACT,CAAC,CAAC;MAEF,MAAML,gBAAgB,GAAG,MAAMT,OAAO,CAACC,WAAW,CAACQ,gBAAgB,CAACC,OAAO,CAACC,EAAE,CAAC;MAC/E,IAAI,CAACF,gBAAgB,EAAE;QACnB,MAAM,IAAI0C,6BAAa,CAAE,qBAAoBxC,EAAG,cAAa,CAAC;MAClE;MAEA,MAAMY,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;MAC/C,IAAAC,4BAAmB,EAACH,QAAQ,EAAEX,UAAU,EAAEH,gBAAgB,CAAC;MAE3D,IAAI;QACA,OAAO,MAAMX,iBAAiB,CAACwD,UAAU,CAAC;UACtCN,IAAI,EAAEvC;QACV,CAAC,CAAC;MACN,CAAC,CAAC,OAAOY,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,oCAAoC,EAClDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,8DAEpCC,EAAE,CAAC9B,IAAI,IAAI,CAAC,CAAC;UACjBkB;QAAgB,GAEvB;MACL;IACJ,CAAC;IAED,MAAM8C,WAAW,CAAC5C,EAAE,EAAElB,KAAK,EAAE;MACzB,MAAMmB,UAAU,GAAG,MAAM,IAAAC,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QACpEiB,GAAG,EAAE;MACT,CAAC,CAAC;MACF,MAAMoC,QAAQ,GAAG,MAAMlD,OAAO,CAACC,WAAW,CAACQ,gBAAgB,CAACC,OAAO,CAACC,EAAE,CAAC;MACvE,IAAI,CAACuC,QAAQ,EAAE;QACX,MAAM,IAAIC,6BAAa,CAAE,qBAAoBxC,EAAG,cAAa,CAAC;MAClE;MAEA,MAAMY,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;MAC/C,IAAAC,4BAAmB,EAACH,QAAQ,EAAEX,UAAU,EAAEsC,QAAQ,CAAC;MAEnD,IAAI;QACA,OAAO,MAAMpD,iBAAiB,CAAC0D,eAAe,CAAC;UAC3C/D,KAAK;UACLyD;QACJ,CAAC,CAAC;MACN,CAAC,CAAC,OAAO7B,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,oCAAoC,EAClDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,8DAEpCC,EAAE,CAAC9B,IAAI,IAAI,CAAC,CAAC;UACjB2D;QAAQ,GAEf;MACL;IACJ,CAAC;IAED,MAAMO,aAAa,CAACC,MAAM,EAAE/C,EAAE,EAAElB,KAAK,EAAE;MACnC,MAAM,IAAAoB,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QAAEiB,GAAG,EAAE;MAAI,CAAC,CAAC;MAElE,MAAMwB,eAAe,GAAG,IAAIrD,eAAe,EAAE,CAACsD,QAAQ,CAAC9C,KAAK,CAAC;MAC7D,MAAM6C,eAAe,CAACE,QAAQ,EAAE;MAEhC,MAAMjB,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;MAE/C,MAAMlC,IAAI,GAAG,MAAM+C,eAAe,CAACI,MAAM,EAAE;MAE3C,MAAMiB,mBAAqC,+DACpCpE,IAAI;QACPwB,MAAM,EAAEf,OAAO,CAACgB,OAAO,CAACC,gBAAgB,EAAE,CAACN,EAAE;QAC7CN,MAAM,EAAED,SAAS,EAAE,CAACgB,IAAI;QACxBT,EAAE,EAAEA,EAAE;QACN+C,MAAM,EAAEA,MAAM;QACdf,SAAS,EAAE,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAE;QACnCV,SAAS,EAAE;UACPxB,EAAE,EAAEY,QAAQ,CAACZ,EAAE;UACfmC,IAAI,EAAEvB,QAAQ,CAACuB,IAAI;UACnBC,WAAW,EAAExB,QAAQ,CAACwB;QAC1B;MAAC,EACJ;MAED,IAAI;QACA,OAAO,MAAMjD,iBAAiB,CAAC2D,aAAa,CAAC;UACzChE,KAAK,EAAEF,IAAI;UACXqE,OAAO,EAAED;QACb,CAAC,CAAC;MACN,CAAC,CAAC,OAAOtC,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,uCAAuC,EACrDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,8DAEpCC,EAAE,CAAC9B,IAAI,IAAI,CAAC,CAAC;UACjBoE;QAAmB,GAE1B;MACL;IACJ,CAAC;IAED,MAAME,aAAa,CAACH,MAAM,EAAEI,SAAS,EAAErE,KAAK,EAAE;MAC1C,MAAMmB,UAAU,GAAG,MAAM,IAAAC,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QACpEiB,GAAG,EAAE;MACT,CAAC,CAAC;MACF,MAAMoC,QAAQ,GAAG,MAAMlD,OAAO,CAACC,WAAW,CAACQ,gBAAgB,CAACsD,UAAU,CAClEL,MAAM,EACNI,SAAS,CACZ;MACD,IAAI,CAACZ,QAAQ,EAAE;QACX,MAAM,IAAIC,6BAAa,CAClB,6BAA4BO,MAAO,cAAaI,SAAU,cAAa,CAC3E;MACL;MAEA,MAAMvC,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;MAC/C,IAAAC,4BAAmB,EAACH,QAAQ,EAAEX,UAAU,EAAEsC,QAAQ,CAAC;MAEnD,MAAME,eAAe,GAAG,IAAIxD,eAAe,EAAE,CAAC2C,QAAQ,CAAC9C,KAAK,CAAC;MAC7D,MAAM2D,eAAe,CAACZ,QAAQ,EAAE;MAEhC,MAAMjD,IAAI,GAAG,MAAM6D,eAAe,CAACV,MAAM,CAAC;QAAEW,SAAS,EAAE;MAAK,CAAC,CAAC;MAC9D;MACA,MAAMM,mBAAqC,+DACpCT,QAAQ,GACR3D,IAAI,CACV;MAED,IAAI;QACA,OAAO,MAAMO,iBAAiB,CAAC+D,aAAa,CAAC;UACzCpE,KAAK,EAAEF,IAAI;UACX2D,QAAQ;UACRU,OAAO,EAAED;QACb,CAAC,CAAC;MACN,CAAC,CAAC,OAAOtC,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,uCAAuC,EACrDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,8DAEpCC,EAAE,CAAC9B,IAAI,IAAI,CAAC,CAAC;UACjBoE,mBAAmB;UACnBT;QAAQ,GAEf;MACL;IACJ,CAAC;IAED,MAAMa,UAAU,CAACL,MAAM,EAAEI,SAAS,EAAE;MAChC,MAAMlD,UAAU,GAAG,MAAM,IAAAC,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QACpEiB,GAAG,EAAE;MACT,CAAC,CAAC;MACF,MAAMC,MAAM,GAAGf,OAAO,CAACgB,OAAO,CAACC,gBAAgB,EAAE;MACjD,MAAMZ,MAAM,GAAGD,SAAS,EAAE;MAE1B,MAAMc,MAAM,GAAG;QACXC,KAAK,EAAE;UACHJ,MAAM,EAAEA,MAAM,CAACJ,EAAE;UACjBN,MAAM,EAAEA,MAAM,CAACe,IAAI;UACnBT,EAAE,EAAEmD,SAAS;UACbJ,MAAM,EAAEA;QACZ;MACJ,CAAC;MAED,IAAIC,mBAA4C,GAAG,IAAI;MAEvD,IAAI;QACAA,mBAAmB,GAAG,MAAM7D,iBAAiB,CAACiE,UAAU,CAAC7C,MAAM,CAAC;QAChE,IAAI,CAACyC,mBAAmB,EAAE;UACtB,OAAO,IAAI;QACf;MACJ,CAAC,CAAC,OAAOtC,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,0CAA0C,EACxDD,EAAE,CAACD,IAAI,IAAI,8BAA8B,8DAEjCC,EAAE,CAAC9B,IAAI,IAAI,CAAC,CAAC;UACjB2B;QAAM,GAEb;MACL;MAEA,MAAMK,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;MAC/C,IAAAC,4BAAmB,EAACH,QAAQ,EAAEX,UAAU,EAAE+C,mBAAmB,CAAC;MAE9D,OAAOA,mBAAmB;IAC9B,CAAC;IAED,MAAMK,YAAY,CAACN,MAAM,EAAEvE,MAAM,EAAE0C,KAAK,EAAE;MACtC,MAAMjB,UAAU,GAAG,MAAM,IAAAC,6BAAoB,EAACb,OAAO,EAAEH,eAAe,EAAE;QACpEiB,GAAG,EAAE;MACT,CAAC,CAAC;MAEF,MAAMC,MAAM,GAAGf,OAAO,CAACgB,OAAO,CAACC,gBAAgB,EAAE;MACjD,MAAMZ,MAAM,GAAGD,SAAS,EAAE;MAE1B,MAAM0B,UAA8D,GAAG;QACnEX,KAAK,EAAE;UACHJ,MAAM,EAAEA,MAAM,CAACJ,EAAE;UACjBN,MAAM,EAAEA,MAAM,CAACe,IAAI;UACnBsC,MAAM,EAAEA,MAAM;UACdvE;QACJ,CAAC;QACD0C;MACJ,CAAC;;MAED;MACA,IAAIjB,UAAU,CAACsB,GAAG,EAAE;QAChB,MAAMX,QAAQ,GAAGvB,OAAO,CAACwB,QAAQ,CAACC,WAAW,EAAE;QAC/CK,UAAU,CAACX,KAAK,CAACgB,SAAS,GAAGZ,QAAQ,CAACZ,EAAE;MAC5C;MAEA,IAAI;QACA,MAAM,CAACyB,KAAK,CAAC,GAAG,MAAMtC,iBAAiB,CAACkE,YAAY,CAAClC,UAAU,CAAC;QAChE,OAAOM,KAAK;MAChB,CAAC,CAAC,OAAOf,EAAE,EAAE;QACT,MAAM,IAAIb,cAAW,CACjBa,EAAE,CAACC,OAAO,IAAI,yCAAyC,EACvDD,EAAE,CAACD,IAAI,IAAI,+BAA+B,EAC1C;UACIF,MAAM,EAAE;YACJwC,MAAM;YACNvE,MAAM;YACN0C;UACJ;QACJ,CAAC,CACJ;MACL;IACJ;EACJ,CAAC;AACL,CAAC,CAAC;AAAA"}
@@ -1,4 +1,4 @@
1
1
  import { ContextPlugin } from "@webiny/api";
2
- import { PbPageImportExportContext } from "../../types";
3
- declare const _default: ContextPlugin<PbPageImportExportContext>;
2
+ import { PbImportExportContext } from "../../types";
3
+ declare const _default: ContextPlugin<PbImportExportContext>;
4
4
  export default _default;
@@ -11,17 +11,18 @@ var _api = require("@webiny/api");
11
11
  var _checkBasePermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions"));
12
12
  var _types = require("../../types");
13
13
  var _client = require("../../client");
14
- var _utils = require("../../importPages/utils");
15
- var _utils2 = require("../../exportPages/utils");
14
+ var _utils = require("../../import/utils");
15
+ var _utils2 = require("../../export/utils");
16
16
  var _utils3 = require("@webiny/utils");
17
17
  const PERMISSION_NAME = "pb.page";
18
- const EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PAGES_PROCESS_HANDLER;
19
- const IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_PAGES_CREATE_HANDLER;
18
+ const EXPORT_PAGES_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
19
+ const IMPORT_PAGES_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
20
20
  var _default = new _api.ContextPlugin(context => {
21
21
  const importExportCrud = {
22
22
  async importPages({
23
23
  category: categorySlug,
24
- zipFileUrl
24
+ zipFileUrl,
25
+ meta
25
26
  }) {
26
27
  await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
27
28
  rwd: "w"
@@ -34,8 +35,8 @@ var _default = new _api.ContextPlugin(context => {
34
35
  }
35
36
 
36
37
  // Create a task for import page
37
- const task = await context.pageBuilder.pageImportExportTask.createTask({
38
- status: _types.PageImportExportTaskStatus.PENDING,
38
+ const task = await context.pageBuilder.importExportTask.createTask({
39
+ status: _types.ImportExportTaskStatus.PENDING,
39
40
  input: {
40
41
  category: categorySlug,
41
42
  zipFileUrl
@@ -53,7 +54,9 @@ var _default = new _api.ContextPlugin(context => {
53
54
  category: categorySlug,
54
55
  zipFileUrl,
55
56
  task,
56
- identity: context.security.getIdentity()
57
+ type: "page",
58
+ identity: context.security.getIdentity(),
59
+ meta
57
60
  },
58
61
  description: "Import Pages - create"
59
62
  });
@@ -98,16 +101,16 @@ var _default = new _api.ContextPlugin(context => {
98
101
  }
99
102
 
100
103
  // Create the main task for page export.
101
- const task = await context.pageBuilder.pageImportExportTask.createTask({
102
- status: _types.PageImportExportTaskStatus.PENDING
104
+ const task = await context.pageBuilder.importExportTask.createTask({
105
+ status: _types.ImportExportTaskStatus.PENDING
103
106
  });
104
107
  const exportPagesDataKey = `${_utils2.EXPORT_PAGES_FOLDER_KEY}/${task.id}`;
105
108
  // For each page create a sub task and invoke the process handler.
106
109
  for (let i = 0; i < pageIds.length; i++) {
107
110
  const pageId = pageIds[i];
108
111
  // Create sub task.
109
- await context.pageBuilder.pageImportExportTask.createSubTask(task.id, (0, _utils3.zeroPad)(i + 1, 5), {
110
- status: _types.PageImportExportTaskStatus.PENDING,
112
+ await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils3.zeroPad)(i + 1, 5), {
113
+ status: _types.ImportExportTaskStatus.PENDING,
111
114
  input: {
112
115
  pageId,
113
116
  exportPagesDataKey,
@@ -116,8 +119,8 @@ var _default = new _api.ContextPlugin(context => {
116
119
  });
117
120
  }
118
121
  // Update main task status.
119
- await context.pageBuilder.pageImportExportTask.updateTask(task.id, {
120
- status: _types.PageImportExportTaskStatus.PROCESSING,
122
+ await context.pageBuilder.importExportTask.updateTask(task.id, {
123
+ status: _types.ImportExportTaskStatus.PROCESSING,
121
124
  stats: (0, _utils.initialStats)(pageIds.length),
122
125
  input: {
123
126
  exportPagesDataKey,
@@ -137,6 +140,7 @@ var _default = new _api.ContextPlugin(context => {
137
140
  payload: {
138
141
  taskId: task.id,
139
142
  subTaskIndex: 1,
143
+ type: "page",
140
144
  identity: context.security.getIdentity()
141
145
  },
142
146
  description: "Export pages - process"
@@ -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":["PERMISSION_NAME","EXPORT_PAGES_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_PAGES_CREATE_HANDLER","IMPORT_CREATE_HANDLER","ContextPlugin","context","importExportCrud","importPages","category","categorySlug","zipFileUrl","meta","checkBasePermissions","rwd","pageBuilder","getCategory","NotFoundError","task","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","invokeHandlerClient","name","payload","type","identity","security","getIdentity","description","exportPages","ids","initialPageIds","revisionType","where","sort","search","pageIds","Array","isArray","length","pages","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 { ImportExportTaskStatus, PagesImportExportCrud, PbImportExportContext } 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 { EXPORT_PAGES_FOLDER_KEY } from \"~/export/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_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 importExportCrud: PagesImportExportCrud = {\n async importPages({ category: categorySlug, zipFileUrl, meta }) {\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.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 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\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.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 // 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\n return { task };\n }\n };\n // Modify context\n context.pageBuilder.pages = importExportCrud;\n});\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ContextPlugin } from "@webiny/api";
2
+ import { PbImportExportContext } from "../../types";
3
+ declare const _default: ContextPlugin<PbImportExportContext>;
4
+ export default _default;
@@ -0,0 +1,124 @@
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 _api = require("@webiny/api");
10
+ var _checkBasePermissions = _interopRequireDefault(require("@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions"));
11
+ var _types = require("../../types");
12
+ var _client = require("../../client");
13
+ var _utils = require("../../import/utils");
14
+ var _utils2 = require("../../export/utils");
15
+ var _utils3 = require("@webiny/utils");
16
+ const PERMISSION_NAME = "pb.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 importExportCrud = {
21
+ async importTemplates({
22
+ zipFileUrl
23
+ }) {
24
+ await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
25
+ rwd: "w"
26
+ });
27
+
28
+ // Create a task for import template
29
+ const task = await context.pageBuilder.importExportTask.createTask({
30
+ status: _types.ImportExportTaskStatus.PENDING,
31
+ input: {
32
+ zipFileUrl
33
+ }
34
+ });
35
+ /**
36
+ * Import Templates
37
+ * ImportTemplates
38
+ * importTemplates
39
+ */
40
+ await (0, _client.invokeHandlerClient)({
41
+ context,
42
+ name: IMPORT_TEMPLATES_CREATE_HANDLER,
43
+ payload: {
44
+ zipFileUrl,
45
+ task,
46
+ type: "template",
47
+ identity: context.security.getIdentity()
48
+ },
49
+ description: "Import Templates - create"
50
+ });
51
+ return {
52
+ task
53
+ };
54
+ },
55
+ async exportTemplates({
56
+ ids: initialTemplateIds
57
+ }) {
58
+ await (0, _checkBasePermissions.default)(context, PERMISSION_NAME, {
59
+ rwd: "w"
60
+ });
61
+ let templateIds = initialTemplateIds || [];
62
+ // If no ids are provided then it means we want to export all templates
63
+ if (!initialTemplateIds || Array.isArray(initialTemplateIds) && initialTemplateIds.length === 0) {
64
+ templateIds = [];
65
+ const templates = await context.pageBuilder.listPageTemplates();
66
+ // Save template ids
67
+ templates.forEach(template => templateIds.push(template.id));
68
+ }
69
+ if (templateIds.length === 0) {
70
+ throw new _error.default("Cannot export templates - no templates found for provided inputs.", "EMPTY_EXPORT_NO_TEMPLATES_FOUND");
71
+ }
72
+
73
+ // Create the main task for templates export.
74
+ const task = await context.pageBuilder.importExportTask.createTask({
75
+ status: _types.ImportExportTaskStatus.PENDING
76
+ });
77
+ const exportTemplatesDataKey = `${_utils2.EXPORT_TEMPLATES_FOLDER_KEY}/${task.id}`;
78
+ // For each template create a sub task and invoke the process handler.
79
+ for (let i = 0; i < templateIds.length; i++) {
80
+ const templateId = templateIds[i];
81
+ // Create sub task.
82
+ await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils3.zeroPad)(i + 1, 5), {
83
+ status: _types.ImportExportTaskStatus.PENDING,
84
+ input: {
85
+ templateId,
86
+ exportTemplatesDataKey
87
+ }
88
+ });
89
+ }
90
+ // Update main task status.
91
+ await context.pageBuilder.importExportTask.updateTask(task.id, {
92
+ status: _types.ImportExportTaskStatus.PROCESSING,
93
+ stats: (0, _utils.initialStats)(templateIds.length),
94
+ input: {
95
+ exportTemplatesDataKey
96
+ }
97
+ });
98
+
99
+ /**
100
+ * Export Templates
101
+ * ExportTemplates
102
+ * exportTemplates
103
+ */
104
+ // Invoke handler.
105
+ await (0, _client.invokeHandlerClient)({
106
+ context,
107
+ name: EXPORT_TEMPLATES_PROCESS_HANDLER,
108
+ payload: {
109
+ taskId: task.id,
110
+ subTaskIndex: 1,
111
+ type: "template",
112
+ identity: context.security.getIdentity()
113
+ },
114
+ description: "Export templates - process"
115
+ });
116
+ return {
117
+ task
118
+ };
119
+ }
120
+ };
121
+ // Modify context
122
+ context.pageBuilder.templates = importExportCrud;
123
+ });
124
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PERMISSION_NAME","EXPORT_TEMPLATES_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_TEMPLATES_CREATE_HANDLER","IMPORT_CREATE_HANDLER","ContextPlugin","context","importExportCrud","importTemplates","zipFileUrl","checkBasePermissions","rwd","task","pageBuilder","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","invokeHandlerClient","name","payload","type","identity","security","getIdentity","description","exportTemplates","ids","initialTemplateIds","templateIds","Array","isArray","length","templates","listPageTemplates","forEach","template","push","id","WebinyError","exportTemplatesDataKey","EXPORT_TEMPLATES_FOLDER_KEY","i","templateId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex"],"sources":["templates.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport checkBasePermissions from \"@webiny/api-page-builder/graphql/crud/utils/checkBasePermissions\";\nimport { ImportExportTaskStatus, TemplatesImportExportCrud, PbImportExportContext } 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 { EXPORT_TEMPLATES_FOLDER_KEY } from \"~/export/utils\";\nimport { zeroPad } from \"@webiny/utils\";\n\nconst PERMISSION_NAME = \"pb.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 importExportCrud: TemplatesImportExportCrud = {\n async importTemplates({ zipFileUrl }) {\n await checkBasePermissions(context, PERMISSION_NAME, {\n rwd: \"w\"\n });\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 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\n return {\n task\n };\n },\n\n async exportTemplates({ ids: initialTemplateIds }) {\n await checkBasePermissions(context, PERMISSION_NAME, {\n 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 // 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\n return { task };\n }\n };\n // Modify context\n context.pageBuilder.templates = importExportCrud;\n});\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA,MAAMA,eAAe,GAAG,aAAa;AACrC,MAAMC,gCAAgC,GAAGC,OAAO,CAACC,GAAG,CAACC,sBAAgC;AACrF,MAAMC,+BAA+B,GAAGH,OAAO,CAACC,GAAG,CAACG,qBAA+B;AAAC,eAErE,IAAIC,kBAAa,CAAwBC,OAAO,IAAI;EAC/D,MAAMC,gBAA2C,GAAG;IAChD,MAAMC,eAAe,CAAC;MAAEC;IAAW,CAAC,EAAE;MAClC,MAAM,IAAAC,6BAAoB,EAACJ,OAAO,EAAER,eAAe,EAAE;QACjDa,GAAG,EAAE;MACT,CAAC,CAAC;;MAEF;MACA,MAAMC,IAAI,GAAG,MAAMN,OAAO,CAACO,WAAW,CAACC,gBAAgB,CAACC,UAAU,CAAC;QAC/DC,MAAM,EAAEC,6BAAsB,CAACC,OAAO;QACtCC,KAAK,EAAE;UACHV;QACJ;MACJ,CAAC,CAAC;MACF;AACZ;AACA;AACA;AACA;MACY,MAAM,IAAAW,2BAAmB,EAAuB;QAC5Cd,OAAO;QACPe,IAAI,EAAElB,+BAA+B;QACrCmB,OAAO,EAAE;UACLb,UAAU;UACVG,IAAI;UACJW,IAAI,EAAE,UAAU;UAChBC,QAAQ,EAAElB,OAAO,CAACmB,QAAQ,CAACC,WAAW;QAC1C,CAAC;QACDC,WAAW,EAAE;MACjB,CAAC,CAAC;MAEF,OAAO;QACHf;MACJ,CAAC;IACL,CAAC;IAED,MAAMgB,eAAe,CAAC;MAAEC,GAAG,EAAEC;IAAmB,CAAC,EAAE;MAC/C,MAAM,IAAApB,6BAAoB,EAACJ,OAAO,EAAER,eAAe,EAAE;QACjDa,GAAG,EAAE;MACT,CAAC,CAAC;MACF,IAAIoB,WAAqB,GAAGD,kBAAkB,IAAI,EAAE;MACpD;MACA,IACI,CAACA,kBAAkB,IAClBE,KAAK,CAACC,OAAO,CAACH,kBAAkB,CAAC,IAAIA,kBAAkB,CAACI,MAAM,KAAK,CAAE,EACxE;QACEH,WAAW,GAAG,EAAE;QAChB,MAAMI,SAAS,GAAG,MAAM7B,OAAO,CAACO,WAAW,CAACuB,iBAAiB,EAAE;QAC/D;QACAD,SAAS,CAACE,OAAO,CAACC,QAAQ,IAAIP,WAAW,CAACQ,IAAI,CAACD,QAAQ,CAACE,EAAE,CAAC,CAAC;MAChE;MAEA,IAAIT,WAAW,CAACG,MAAM,KAAK,CAAC,EAAE;QAC1B,MAAM,IAAIO,cAAW,CACjB,mEAAmE,EACnE,iCAAiC,CACpC;MACL;;MAEA;MACA,MAAM7B,IAAI,GAAG,MAAMN,OAAO,CAACO,WAAW,CAACC,gBAAgB,CAACC,UAAU,CAAC;QAC/DC,MAAM,EAAEC,6BAAsB,CAACC;MACnC,CAAC,CAAC;MACF,MAAMwB,sBAAsB,GAAI,GAAEC,mCAA4B,IAAG/B,IAAI,CAAC4B,EAAG,EAAC;MAC1E;MACA,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,WAAW,CAACG,MAAM,EAAEU,CAAC,EAAE,EAAE;QACzC,MAAMC,UAAU,GAAGd,WAAW,CAACa,CAAC,CAAC;QACjC;QACA,MAAMtC,OAAO,CAACO,WAAW,CAACC,gBAAgB,CAACgC,aAAa,CACpDlC,IAAI,CAAC4B,EAAE,EACP,IAAAO,eAAO,EAACH,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EACjB;UACI5B,MAAM,EAAEC,6BAAsB,CAACC,OAAO;UACtCC,KAAK,EAAE;YACH0B,UAAU;YACVH;UACJ;QACJ,CAAC,CACJ;MACL;MACA;MACA,MAAMpC,OAAO,CAACO,WAAW,CAACC,gBAAgB,CAACkC,UAAU,CAACpC,IAAI,CAAC4B,EAAE,EAAE;QAC3DxB,MAAM,EAAEC,6BAAsB,CAACgC,UAAU;QACzCC,KAAK,EAAE,IAAAC,mBAAY,EAACpB,WAAW,CAACG,MAAM,CAAC;QACvCf,KAAK,EAAE;UACHuB;QACJ;MACJ,CAAC,CAAC;;MAEF;AACZ;AACA;AACA;AACA;MACY;MACA,MAAM,IAAAtB,2BAAmB,EAAuC;QAC5Dd,OAAO;QACPe,IAAI,EAAEtB,gCAAgC;QACtCuB,OAAO,EAAE;UACL8B,MAAM,EAAExC,IAAI,CAAC4B,EAAE;UACfa,YAAY,EAAE,CAAC;UACf9B,IAAI,EAAE,UAAU;UAChBC,QAAQ,EAAElB,OAAO,CAACmB,QAAQ,CAACC,WAAW;QAC1C,CAAC;QACDC,WAAW,EAAE;MACjB,CAAC,CAAC;MAEF,OAAO;QAAEf;MAAK,CAAC;IACnB;EACJ,CAAC;EACD;EACAN,OAAO,CAACO,WAAW,CAACsB,SAAS,GAAG5B,gBAAgB;AACpD,CAAC,CAAC;AAAA"}