@webiny/api-page-builder-import-export 0.0.0-unstable.40876133bb → 0.0.0-unstable.4485d22882

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 (275) hide show
  1. package/client.d.ts +2 -2
  2. package/client.js +12 -25
  3. package/client.js.map +1 -1
  4. package/export/combine/blocksHandler.d.ts +6 -0
  5. package/export/combine/blocksHandler.js +101 -0
  6. package/export/combine/blocksHandler.js.map +1 -0
  7. package/export/combine/formsHandler.d.ts +6 -0
  8. package/export/combine/formsHandler.js +101 -0
  9. package/export/combine/formsHandler.js.map +1 -0
  10. package/{exportPages → export}/combine/index.d.ts +4 -3
  11. package/export/combine/index.js +44 -0
  12. package/export/combine/index.js.map +1 -0
  13. package/export/combine/templatesHandler.d.ts +6 -0
  14. package/export/combine/templatesHandler.js +101 -0
  15. package/export/combine/templatesHandler.js.map +1 -0
  16. package/export/pages/ExportPagesCleanup.d.ts +5 -0
  17. package/export/pages/ExportPagesCleanup.js +82 -0
  18. package/export/pages/ExportPagesCleanup.js.map +1 -0
  19. package/export/pages/ExportPagesController.d.ts +5 -0
  20. package/export/pages/ExportPagesController.js +31 -0
  21. package/export/pages/ExportPagesController.js.map +1 -0
  22. package/export/pages/ExportPagesZipPages.d.ts +5 -0
  23. package/export/pages/ExportPagesZipPages.js +23 -0
  24. package/export/pages/ExportPagesZipPages.js.map +1 -0
  25. package/export/pages/controller/CombineZippedPages.d.ts +5 -0
  26. package/export/pages/controller/CombineZippedPages.js +75 -0
  27. package/export/pages/controller/CombineZippedPages.js.map +1 -0
  28. package/export/pages/controller/CreateZipPagesTasks.d.ts +8 -0
  29. package/export/pages/controller/CreateZipPagesTasks.js +103 -0
  30. package/export/pages/controller/CreateZipPagesTasks.js.map +1 -0
  31. package/export/pages/controller/ProcessZipPagesTasks.d.ts +6 -0
  32. package/export/pages/controller/ProcessZipPagesTasks.js +61 -0
  33. package/export/pages/controller/ProcessZipPagesTasks.js.map +1 -0
  34. package/export/pages/types.d.ts +53 -0
  35. package/export/pages/types.js +26 -0
  36. package/export/pages/types.js.map +1 -0
  37. package/export/pages/utils.d.ts +2 -0
  38. package/export/pages/utils.js +13 -0
  39. package/export/pages/utils.js.map +1 -0
  40. package/export/pages/zipPages/ZipPages.d.ts +5 -0
  41. package/export/pages/zipPages/ZipPages.js +100 -0
  42. package/export/pages/zipPages/ZipPages.js.map +1 -0
  43. package/export/pages/zipPages/ZipPagesDataManager.d.ts +14 -0
  44. package/export/pages/zipPages/ZipPagesDataManager.js +46 -0
  45. package/export/pages/zipPages/ZipPagesDataManager.js.map +1 -0
  46. package/export/pages/zipPages/getPageFactory.d.ts +4 -0
  47. package/export/pages/zipPages/getPageFactory.js +38 -0
  48. package/export/pages/zipPages/getPageFactory.js.map +1 -0
  49. package/export/process/blocksHandler.d.ts +6 -0
  50. package/export/process/blocksHandler.js +169 -0
  51. package/export/process/blocksHandler.js.map +1 -0
  52. package/export/process/exporters/BlockExporter.d.ts +12 -0
  53. package/export/process/exporters/BlockExporter.js +57 -0
  54. package/export/process/exporters/BlockExporter.js.map +1 -0
  55. package/export/process/exporters/FormExporter.d.ts +9 -0
  56. package/export/process/exporters/FormExporter.js +36 -0
  57. package/export/process/exporters/FormExporter.js.map +1 -0
  58. package/export/process/exporters/PageExporter.d.ts +18 -0
  59. package/export/process/exporters/PageExporter.js +59 -0
  60. package/export/process/exporters/PageExporter.js.map +1 -0
  61. package/export/process/exporters/PageTemplateExporter.d.ts +11 -0
  62. package/export/process/exporters/PageTemplateExporter.js +58 -0
  63. package/export/process/exporters/PageTemplateExporter.js.map +1 -0
  64. package/export/process/formsHandler.d.ts +6 -0
  65. package/export/process/formsHandler.js +189 -0
  66. package/export/process/formsHandler.js.map +1 -0
  67. package/{exportPages → export}/process/index.d.ts +5 -7
  68. package/export/process/index.js +41 -0
  69. package/export/process/index.js.map +1 -0
  70. package/export/process/templatesHandler.d.ts +6 -0
  71. package/export/process/templatesHandler.js +168 -0
  72. package/export/process/templatesHandler.js.map +1 -0
  73. package/export/s3Stream.d.ts +36 -0
  74. package/{exportPages → export}/s3Stream.js +27 -42
  75. package/export/s3Stream.js.map +1 -0
  76. package/export/utils.d.ts +24 -0
  77. package/export/utils.js +169 -0
  78. package/export/utils.js.map +1 -0
  79. package/{exportPages → export}/zipper.d.ts +12 -10
  80. package/export/zipper.js +120 -0
  81. package/export/zipper.js.map +1 -0
  82. package/graphql/crud/blocks.crud.d.ts +4 -0
  83. package/graphql/crud/blocks.crud.js +158 -0
  84. package/graphql/crud/blocks.crud.js.map +1 -0
  85. package/graphql/crud/forms.crud.d.ts +4 -0
  86. package/graphql/crud/forms.crud.js +162 -0
  87. package/graphql/crud/forms.crud.js.map +1 -0
  88. package/graphql/crud/importExportTasks.crud.d.ts +5 -0
  89. package/graphql/crud/importExportTasks.crud.js +396 -0
  90. package/graphql/crud/importExportTasks.crud.js.map +1 -0
  91. package/graphql/crud/pages.crud.d.ts +2 -2
  92. package/graphql/crud/pages.crud.js +241 -138
  93. package/graphql/crud/pages.crud.js.map +1 -1
  94. package/graphql/crud/templates.crud.d.ts +4 -0
  95. package/graphql/crud/templates.crud.js +156 -0
  96. package/graphql/crud/templates.crud.js.map +1 -0
  97. package/graphql/crud.d.ts +2 -2
  98. package/graphql/crud.js +7 -7
  99. package/graphql/crud.js.map +1 -1
  100. package/graphql/graphql/blocks.gql.d.ts +4 -0
  101. package/graphql/graphql/blocks.gql.js +52 -0
  102. package/graphql/graphql/blocks.gql.js.map +1 -0
  103. package/graphql/graphql/forms.gql.d.ts +4 -0
  104. package/graphql/graphql/forms.gql.js +60 -0
  105. package/graphql/graphql/forms.gql.js.map +1 -0
  106. package/graphql/graphql/importExportTasks.gql.d.ts +4 -0
  107. package/graphql/graphql/importExportTasks.gql.js +75 -0
  108. package/graphql/graphql/importExportTasks.gql.js.map +1 -0
  109. package/graphql/graphql/pages.gql.d.ts +3 -3
  110. package/graphql/graphql/pages.gql.js +104 -26
  111. package/graphql/graphql/pages.gql.js.map +1 -1
  112. package/graphql/graphql/templates.gql.d.ts +4 -0
  113. package/graphql/graphql/templates.gql.js +52 -0
  114. package/graphql/graphql/templates.gql.js.map +1 -0
  115. package/graphql/graphql/utils/resolve.d.ts +3 -3
  116. package/graphql/graphql/utils/resolve.js +15 -7
  117. package/graphql/graphql/utils/resolve.js.map +1 -1
  118. package/graphql/graphql.d.ts +1 -1
  119. package/graphql/graphql.js +6 -6
  120. package/graphql/graphql.js.map +1 -1
  121. package/graphql/index.d.ts +2 -2
  122. package/graphql/index.js +4 -6
  123. package/graphql/index.js.map +1 -1
  124. package/graphql/types.d.ts +237 -37
  125. package/graphql/types.js +3 -1
  126. package/graphql/types.js.map +1 -1
  127. package/import/constants.d.ts +3 -0
  128. package/import/constants.js +13 -0
  129. package/import/constants.js.map +1 -0
  130. package/import/create/blocksHandler.d.ts +3 -0
  131. package/import/create/blocksHandler.js +101 -0
  132. package/import/create/blocksHandler.js.map +1 -0
  133. package/import/create/formsHandler.d.ts +3 -0
  134. package/import/create/formsHandler.js +105 -0
  135. package/import/create/formsHandler.js.map +1 -0
  136. package/import/create/index.d.ts +24 -0
  137. package/import/create/index.js +44 -0
  138. package/import/create/index.js.map +1 -0
  139. package/import/create/pagesHandler.d.ts +3 -0
  140. package/import/create/pagesHandler.js +105 -0
  141. package/import/create/pagesHandler.js.map +1 -0
  142. package/import/create/templatesHandler.d.ts +3 -0
  143. package/import/create/templatesHandler.js +101 -0
  144. package/import/create/templatesHandler.js.map +1 -0
  145. package/import/pages/ImportPagesController.d.ts +5 -0
  146. package/import/pages/ImportPagesController.js +29 -0
  147. package/import/pages/ImportPagesController.js.map +1 -0
  148. package/import/pages/ImportPagesProcessPages.d.ts +6 -0
  149. package/import/pages/ImportPagesProcessPages.js +112 -0
  150. package/import/pages/ImportPagesProcessPages.js.map +1 -0
  151. package/import/pages/controller/ImportPagesProcessPagesChecker.d.ts +6 -0
  152. package/import/pages/controller/ImportPagesProcessPagesChecker.js +40 -0
  153. package/import/pages/controller/ImportPagesProcessPagesChecker.js.map +1 -0
  154. package/import/pages/controller/ImportPagesProcessZipFile.d.ts +5 -0
  155. package/import/pages/controller/ImportPagesProcessZipFile.js +71 -0
  156. package/import/pages/controller/ImportPagesProcessZipFile.js.map +1 -0
  157. package/import/pages/process/importPage.d.ts +10 -0
  158. package/import/pages/process/importPage.js +94 -0
  159. package/import/pages/process/importPage.js.map +1 -0
  160. package/import/pages/types.d.ts +48 -0
  161. package/import/pages/types.js +20 -0
  162. package/import/pages/types.js.map +1 -0
  163. package/import/process/blocks/ElementIdsProcessor.d.ts +5 -0
  164. package/import/process/blocks/ElementIdsProcessor.js +26 -0
  165. package/import/process/blocks/ElementIdsProcessor.js.map +1 -0
  166. package/import/process/blocks/blocksHandler.d.ts +3 -0
  167. package/import/process/blocks/blocksHandler.js +169 -0
  168. package/import/process/blocks/blocksHandler.js.map +1 -0
  169. package/import/process/blocks/importBlock.d.ts +11 -0
  170. package/import/process/blocks/importBlock.js +101 -0
  171. package/import/process/blocks/importBlock.js.map +1 -0
  172. package/import/process/forms/formsHandler.d.ts +3 -0
  173. package/import/process/forms/formsHandler.js +178 -0
  174. package/import/process/forms/formsHandler.js.map +1 -0
  175. package/import/process/forms/importForm.d.ts +9 -0
  176. package/import/process/forms/importForm.js +47 -0
  177. package/import/process/forms/importForm.js.map +1 -0
  178. package/{importPages → import}/process/index.d.ts +6 -4
  179. package/import/process/index.js +41 -0
  180. package/import/process/index.js.map +1 -0
  181. package/import/process/templates/importTemplate.d.ts +11 -0
  182. package/import/process/templates/importTemplate.js +70 -0
  183. package/import/process/templates/importTemplate.js.map +1 -0
  184. package/import/process/templates/templatesHandler.d.ts +3 -0
  185. package/import/process/templates/templatesHandler.js +174 -0
  186. package/import/process/templates/templatesHandler.js.map +1 -0
  187. package/import/utils/deleteS3Folder.d.ts +1 -0
  188. package/import/utils/deleteS3Folder.js +21 -0
  189. package/import/utils/deleteS3Folder.js.map +1 -0
  190. package/import/utils/extractAndUploadZipFileContents.d.ts +7 -0
  191. package/import/utils/extractAndUploadZipFileContents.js +126 -0
  192. package/import/utils/extractAndUploadZipFileContents.js.map +1 -0
  193. package/import/utils/extractZipAndUploadToS3.d.ts +2 -0
  194. package/import/utils/extractZipAndUploadToS3.js +100 -0
  195. package/import/utils/extractZipAndUploadToS3.js.map +1 -0
  196. package/import/utils/getFileNameWithoutExt.d.ts +1 -0
  197. package/import/utils/getFileNameWithoutExt.js +13 -0
  198. package/import/utils/getFileNameWithoutExt.js.map +1 -0
  199. package/import/utils/index.d.ts +9 -0
  200. package/import/utils/index.js +106 -0
  201. package/import/utils/index.js.map +1 -0
  202. package/import/utils/initialStats.d.ts +7 -0
  203. package/import/utils/initialStats.js +18 -0
  204. package/import/utils/initialStats.js.map +1 -0
  205. package/import/utils/prepareDataDirMap.d.ts +6 -0
  206. package/import/utils/prepareDataDirMap.js +31 -0
  207. package/import/utils/prepareDataDirMap.js.map +1 -0
  208. package/import/utils/updateFilesInData.d.ts +8 -0
  209. package/import/utils/updateFilesInData.js +51 -0
  210. package/import/utils/updateFilesInData.js.map +1 -0
  211. package/import/utils/uploadAssets.d.ts +10 -0
  212. package/import/utils/uploadAssets.js +92 -0
  213. package/import/utils/uploadAssets.js.map +1 -0
  214. package/import/utils/uploadFilesFromS3.d.ts +3 -0
  215. package/import/utils/uploadFilesFromS3.js +21 -0
  216. package/import/utils/uploadFilesFromS3.js.map +1 -0
  217. package/mockSecurity.d.ts +1 -1
  218. package/mockSecurity.js +2 -3
  219. package/mockSecurity.js.map +1 -1
  220. package/package.json +36 -52
  221. package/tasks/common/ChildTasksCleanup.d.ts +12 -0
  222. package/tasks/common/ChildTasksCleanup.js +64 -0
  223. package/tasks/common/ChildTasksCleanup.js.map +1 -0
  224. package/tasks/index.d.ts +1 -0
  225. package/tasks/index.js +13 -0
  226. package/tasks/index.js.map +1 -0
  227. package/tasks/pages/exportPagesCleanupTask.d.ts +3 -0
  228. package/tasks/pages/exportPagesCleanupTask.js +36 -0
  229. package/tasks/pages/exportPagesCleanupTask.js.map +1 -0
  230. package/tasks/pages/exportPagesControllerTask.d.ts +3 -0
  231. package/tasks/pages/exportPagesControllerTask.js +83 -0
  232. package/tasks/pages/exportPagesControllerTask.js.map +1 -0
  233. package/tasks/pages/exportPagesZipPagesTask.d.ts +3 -0
  234. package/tasks/pages/exportPagesZipPagesTask.js +39 -0
  235. package/tasks/pages/exportPagesZipPagesTask.js.map +1 -0
  236. package/tasks/pages/importPagesControllerTask.d.ts +3 -0
  237. package/tasks/pages/importPagesControllerTask.js +39 -0
  238. package/tasks/pages/importPagesControllerTask.js.map +1 -0
  239. package/tasks/pages/importPagesProcessPageTask.d.ts +3 -0
  240. package/tasks/pages/importPagesProcessPageTask.js +39 -0
  241. package/tasks/pages/importPagesProcessPageTask.js.map +1 -0
  242. package/tasks/pages/index.d.ts +1 -0
  243. package/tasks/pages/index.js +17 -0
  244. package/tasks/pages/index.js.map +1 -0
  245. package/types.d.ts +83 -65
  246. package/types.js +68 -21
  247. package/types.js.map +1 -1
  248. package/utils/ZipFiles.d.ts +11 -0
  249. package/utils/ZipFiles.js +124 -0
  250. package/utils/ZipFiles.js.map +1 -0
  251. package/exportPages/combine/index.js +0 -114
  252. package/exportPages/combine/index.js.map +0 -1
  253. package/exportPages/process/index.js +0 -208
  254. package/exportPages/process/index.js.map +0 -1
  255. package/exportPages/s3Stream.d.ts +0 -31
  256. package/exportPages/s3Stream.js.map +0 -1
  257. package/exportPages/utils.d.ts +0 -13
  258. package/exportPages/utils.js +0 -113
  259. package/exportPages/utils.js.map +0 -1
  260. package/exportPages/zipper.js +0 -135
  261. package/exportPages/zipper.js.map +0 -1
  262. package/graphql/crud/pageImportExportTasks.crud.d.ts +0 -5
  263. package/graphql/crud/pageImportExportTasks.crud.js +0 -411
  264. package/graphql/crud/pageImportExportTasks.crud.js.map +0 -1
  265. package/graphql/graphql/pageImportExportTasks.gql.d.ts +0 -4
  266. package/graphql/graphql/pageImportExportTasks.gql.js +0 -80
  267. package/graphql/graphql/pageImportExportTasks.gql.js.map +0 -1
  268. package/importPages/create/index.d.ts +0 -22
  269. package/importPages/create/index.js +0 -118
  270. package/importPages/create/index.js.map +0 -1
  271. package/importPages/process/index.js +0 -185
  272. package/importPages/process/index.js.map +0 -1
  273. package/importPages/utils.d.ts +0 -50
  274. package/importPages/utils.js +0 -570
  275. package/importPages/utils.js.map +0 -1
@@ -0,0 +1,162 @@
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 _FormsPermissions = require("@webiny/api-form-builder/plugins/crud/permissions/FormsPermissions");
16
+ const EXPORT_FORMS_FOLDER_KEY = "WEBINY_FB_EXPORT_FORM";
17
+ const EXPORT_FORMS_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
18
+ const IMPORT_FORMS_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
19
+ var _default = exports.default = new _api.ContextPlugin(context => {
20
+ const formsPermissions = new _FormsPermissions.FormsPermissions({
21
+ getPermissions: () => context.security.getPermissions("fb.form"),
22
+ getIdentity: context.security.getIdentity,
23
+ fullAccessPermissionName: "pb.*"
24
+ });
25
+
26
+ // Export
27
+ const onFormsBeforeExport = (0, _pubsub.createTopic)("PageBuilder.onFormsBeforeExport");
28
+ const onFormsAfterExport = (0, _pubsub.createTopic)("PageBuilder.onFormsAfterExport");
29
+
30
+ // Import
31
+ const onFormsBeforeImport = (0, _pubsub.createTopic)("PageBuilder.onFormsBeforeImport");
32
+ const onFormsAfterImport = (0, _pubsub.createTopic)("PageBuilder.onFormsAfterImport");
33
+ context.waitFor("formBuilder", () => {
34
+ const importExportCrud = {
35
+ onFormsBeforeExport,
36
+ onFormsAfterExport,
37
+ onFormsBeforeImport,
38
+ onFormsAfterImport,
39
+ async importForms(params) {
40
+ const {
41
+ zipFileUrl
42
+ } = params;
43
+ await formsPermissions.ensure({
44
+ rwd: "w"
45
+ });
46
+
47
+ // Create a task for import form
48
+ const task = await context.pageBuilder.importExportTask.createTask({
49
+ status: _types.ImportExportTaskStatus.PENDING,
50
+ input: {
51
+ zipFileUrl
52
+ }
53
+ });
54
+ /**
55
+ * Import Forms
56
+ * ImportForms
57
+ * importForms
58
+ */
59
+ await onFormsBeforeImport.publish({
60
+ params
61
+ });
62
+ await (0, _client.invokeHandlerClient)({
63
+ context,
64
+ name: IMPORT_FORMS_CREATE_HANDLER,
65
+ payload: {
66
+ zipFileUrl,
67
+ task,
68
+ type: "form",
69
+ identity: context.security.getIdentity()
70
+ },
71
+ description: "Import Forms - create"
72
+ });
73
+ await onFormsAfterImport.publish({
74
+ params
75
+ });
76
+ return {
77
+ task
78
+ };
79
+ },
80
+ async exportForms(params) {
81
+ const {
82
+ ids: initialFormIds,
83
+ revisionType
84
+ } = params;
85
+ await formsPermissions.ensure({
86
+ rwd: "w"
87
+ });
88
+ let formIds = initialFormIds || [];
89
+ // If no ids are provided then it means we want to export all forms
90
+ if (!initialFormIds || Array.isArray(initialFormIds) && initialFormIds.length === 0) {
91
+ formIds = [];
92
+ const forms = await context.formBuilder.listForms();
93
+
94
+ // Save form ids
95
+ forms.forEach(form => formIds.push(form.id));
96
+ }
97
+ if (formIds.length === 0) {
98
+ throw new _error.default("Cannot export forms - no forms found for provided inputs.", "EMPTY_EXPORT_NO_FORMS_FOUND");
99
+ }
100
+
101
+ // Create the main task for form export.
102
+ const task = await context.pageBuilder.importExportTask.createTask({
103
+ status: _types.ImportExportTaskStatus.PENDING
104
+ });
105
+ const exportFormsDataKey = `${EXPORT_FORMS_FOLDER_KEY}/${task.id}`;
106
+ // For each form create a sub task and invoke the process handler.
107
+ for (let i = 0; i < formIds.length; i++) {
108
+ const formId = formIds[i];
109
+ // Create sub task.
110
+ await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
111
+ status: _types.ImportExportTaskStatus.PENDING,
112
+ input: {
113
+ formId,
114
+ exportFormsDataKey,
115
+ revisionType
116
+ }
117
+ });
118
+ }
119
+ // Update main task status.
120
+ await context.pageBuilder.importExportTask.updateTask(task.id, {
121
+ status: _types.ImportExportTaskStatus.PROCESSING,
122
+ stats: (0, _utils.initialStats)(formIds.length),
123
+ input: {
124
+ exportFormsDataKey,
125
+ revisionType
126
+ }
127
+ });
128
+
129
+ /**
130
+ * Export Forms
131
+ * ExportForms
132
+ * exportForms
133
+ */
134
+ await onFormsBeforeExport.publish({
135
+ params
136
+ });
137
+ // Invoke handler.
138
+ await (0, _client.invokeHandlerClient)({
139
+ context,
140
+ name: EXPORT_FORMS_PROCESS_HANDLER,
141
+ payload: {
142
+ taskId: task.id,
143
+ subTaskIndex: 1,
144
+ type: "form",
145
+ identity: context.security.getIdentity()
146
+ },
147
+ description: "Export forms - process"
148
+ });
149
+ await onFormsAfterExport.publish({
150
+ params
151
+ });
152
+ return {
153
+ task
154
+ };
155
+ }
156
+ };
157
+ // Modify context
158
+ context.formBuilder.forms = importExportCrud;
159
+ });
160
+ });
161
+
162
+ //# sourceMappingURL=forms.crud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_pubsub","_api","_types","_client","_utils","_utils2","_FormsPermissions","EXPORT_FORMS_FOLDER_KEY","EXPORT_FORMS_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_FORMS_CREATE_HANDLER","IMPORT_CREATE_HANDLER","_default","exports","default","ContextPlugin","context","formsPermissions","FormsPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","onFormsBeforeExport","createTopic","onFormsAfterExport","onFormsBeforeImport","onFormsAfterImport","waitFor","importExportCrud","importForms","params","zipFileUrl","ensure","rwd","task","pageBuilder","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","publish","invokeHandlerClient","name","payload","type","identity","description","exportForms","ids","initialFormIds","revisionType","formIds","Array","isArray","length","forms","formBuilder","listForms","forEach","form","push","id","WebinyError","exportFormsDataKey","i","formId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex"],"sources":["forms.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport type {\n FormsImportExportCrud,\n PbImportExportContext,\n OnFormsBeforeExportTopicParams,\n OnFormsAfterExportTopicParams,\n OnFormsBeforeImportTopicParams,\n OnFormsAfterImportTopicParams\n} from \"~/types\";\nimport { ImportExportTaskStatus } from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport type { Payload as CreateHandlerPayload } from \"~/import/create\";\nimport { initialStats } from \"~/import/utils\";\nimport type { Payload as ExportFormsProcessHandlerPayload } from \"~/export/process\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { FormsPermissions } from \"@webiny/api-form-builder/plugins/crud/permissions/FormsPermissions\";\n\nconst EXPORT_FORMS_FOLDER_KEY = \"WEBINY_FB_EXPORT_FORM\";\nconst EXPORT_FORMS_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER as string;\nconst IMPORT_FORMS_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER as string;\n\nexport default new ContextPlugin<PbImportExportContext>(context => {\n const formsPermissions = new FormsPermissions({\n getPermissions: () => context.security.getPermissions(\"fb.form\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n // Export\n const onFormsBeforeExport = createTopic<OnFormsBeforeExportTopicParams>(\n \"PageBuilder.onFormsBeforeExport\"\n );\n const onFormsAfterExport = createTopic<OnFormsAfterExportTopicParams>(\n \"PageBuilder.onFormsAfterExport\"\n );\n\n // Import\n const onFormsBeforeImport = createTopic<OnFormsBeforeImportTopicParams>(\n \"PageBuilder.onFormsBeforeImport\"\n );\n const onFormsAfterImport = createTopic<OnFormsAfterImportTopicParams>(\n \"PageBuilder.onFormsAfterImport\"\n );\n\n context.waitFor(\"formBuilder\", () => {\n const importExportCrud: FormsImportExportCrud = {\n onFormsBeforeExport,\n onFormsAfterExport,\n onFormsBeforeImport,\n onFormsAfterImport,\n async importForms(params) {\n const { zipFileUrl } = params;\n await formsPermissions.ensure({ rwd: \"w\" });\n\n // Create a task for import form\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING,\n input: {\n zipFileUrl\n }\n });\n /**\n * Import Forms\n * ImportForms\n * importForms\n */\n await onFormsBeforeImport.publish({ params });\n await invokeHandlerClient<CreateHandlerPayload>({\n context,\n name: IMPORT_FORMS_CREATE_HANDLER,\n payload: {\n zipFileUrl,\n task,\n type: \"form\",\n identity: context.security.getIdentity()\n },\n description: \"Import Forms - create\"\n });\n await onFormsAfterImport.publish({ params });\n\n return {\n task\n };\n },\n\n async exportForms(params) {\n const { ids: initialFormIds, revisionType } = params;\n await formsPermissions.ensure({ rwd: \"w\" });\n let formIds: string[] = initialFormIds || [];\n // If no ids are provided then it means we want to export all forms\n if (\n !initialFormIds ||\n (Array.isArray(initialFormIds) && initialFormIds.length === 0)\n ) {\n formIds = [];\n\n const forms = await context.formBuilder.listForms();\n\n // Save form ids\n forms.forEach(form => formIds.push(form.id));\n }\n\n if (formIds.length === 0) {\n throw new WebinyError(\n \"Cannot export forms - no forms found for provided inputs.\",\n \"EMPTY_EXPORT_NO_FORMS_FOUND\"\n );\n }\n\n // Create the main task for form export.\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING\n });\n const exportFormsDataKey = `${EXPORT_FORMS_FOLDER_KEY}/${task.id}`;\n // For each form create a sub task and invoke the process handler.\n for (let i = 0; i < formIds.length; i++) {\n const formId = formIds[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 formId,\n exportFormsDataKey,\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(formIds.length),\n input: {\n exportFormsDataKey,\n revisionType\n }\n });\n\n /**\n * Export Forms\n * ExportForms\n * exportForms\n */\n await onFormsBeforeExport.publish({ params });\n // Invoke handler.\n await invokeHandlerClient<ExportFormsProcessHandlerPayload>({\n context,\n name: EXPORT_FORMS_PROCESS_HANDLER,\n payload: {\n taskId: task.id,\n subTaskIndex: 1,\n type: \"form\",\n identity: context.security.getIdentity()\n },\n description: \"Export forms - process\"\n });\n await onFormsAfterExport.publish({ params });\n\n return { task };\n }\n };\n // Modify context\n context.formBuilder.forms = importExportCrud;\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { ContextPlugin } from "@webiny/api";
2
+ import type { ImportExportPluginsParams } from "../../types";
3
+ import type { PbImportExportContext } from "../types";
4
+ declare const _default: ({ storageOperations }: ImportExportPluginsParams) => ContextPlugin<PbImportExportContext>;
5
+ export default _default;
@@ -0,0 +1,396 @@
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 _zod = _interopRequireDefault(require("zod"));
9
+ var _utils = require("@webiny/utils");
10
+ var _api = require("@webiny/api");
11
+ var _handlerGraphql = require("@webiny/handler-graphql");
12
+ var _types = require("../../types");
13
+ var _error = _interopRequireDefault(require("@webiny/error"));
14
+ var _PagesPermissions = require("@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions");
15
+ const dataModelStats = _zod.default.object({
16
+ [_types.ImportExportTaskStatus.PENDING]: _zod.default.number().optional().default(0),
17
+ [_types.ImportExportTaskStatus.PROCESSING]: _zod.default.number().optional().default(0),
18
+ [_types.ImportExportTaskStatus.COMPLETED]: _zod.default.number().optional().default(0),
19
+ [_types.ImportExportTaskStatus.FAILED]: _zod.default.number().optional().default(0),
20
+ total: _zod.default.number().optional().default(0)
21
+ }).optional().default({
22
+ [_types.ImportExportTaskStatus.PENDING]: 0,
23
+ [_types.ImportExportTaskStatus.PROCESSING]: 0,
24
+ [_types.ImportExportTaskStatus.COMPLETED]: 0,
25
+ [_types.ImportExportTaskStatus.FAILED]: 0,
26
+ total: 0
27
+ });
28
+ const CreateDataModel = _zod.default.object({
29
+ status: _zod.default.enum([_types.ImportExportTaskStatus.PENDING, _types.ImportExportTaskStatus.PROCESSING, _types.ImportExportTaskStatus.COMPLETED, _types.ImportExportTaskStatus.FAILED]),
30
+ data: _zod.default.object({}).passthrough().default({}),
31
+ input: _zod.default.object({}).passthrough().default({}),
32
+ error: _zod.default.object({}).passthrough().default({}),
33
+ stats: dataModelStats
34
+ });
35
+ const UpdateDataModel = _zod.default.object({
36
+ status: _zod.default.enum([_types.ImportExportTaskStatus.PENDING, _types.ImportExportTaskStatus.PROCESSING, _types.ImportExportTaskStatus.COMPLETED, _types.ImportExportTaskStatus.FAILED]).optional(),
37
+ data: _zod.default.object({}).passthrough().default({}),
38
+ input: _zod.default.object({}).passthrough().default({}),
39
+ error: _zod.default.object({}).passthrough().default({}),
40
+ stats: dataModelStats
41
+ });
42
+ var _default = ({
43
+ storageOperations
44
+ }) => new _api.ContextPlugin(async context => {
45
+ /**
46
+ * If pageBuilder is not defined on the context, do not continue, but log it.
47
+ */
48
+ if (!context.pageBuilder) {
49
+ console.log("Missing pageBuilder on context. Skipping ImportExportTasks crud.");
50
+ return;
51
+ }
52
+ const pagesPermissions = new _PagesPermissions.PagesPermissions({
53
+ getPermissions: () => context.security.getPermissions("pb.page"),
54
+ getIdentity: context.security.getIdentity,
55
+ fullAccessPermissionName: "pb.*"
56
+ });
57
+ const getLocale = () => {
58
+ const locale = context.i18n.getContentLocale();
59
+ if (!locale) {
60
+ throw new _error.default("Missing content locale in importExportTasks.crud.ts", "LOCALE_ERROR");
61
+ }
62
+ return locale;
63
+ };
64
+
65
+ // Modify context
66
+ context.pageBuilder.importExportTask = {
67
+ storageOperations,
68
+ async getTask(id) {
69
+ await pagesPermissions.ensure({
70
+ rwd: "r"
71
+ });
72
+ const tenant = context.tenancy.getCurrentTenant();
73
+ const locale = getLocale();
74
+ const params = {
75
+ where: {
76
+ tenant: tenant.id,
77
+ locale: locale.code,
78
+ id
79
+ }
80
+ };
81
+ let importExportTask = null;
82
+ try {
83
+ importExportTask = await storageOperations.getTask(params);
84
+ if (!importExportTask) {
85
+ return null;
86
+ }
87
+ } catch (ex) {
88
+ throw new _error.default(ex.message || "Could not get importExportTask by id.", ex.code || "GET_IMPORT_EXPORT_TASK_ERROR", {
89
+ ...(ex.data || {}),
90
+ params
91
+ });
92
+ }
93
+ await pagesPermissions.ensure({
94
+ owns: importExportTask.createdBy
95
+ });
96
+ return importExportTask;
97
+ },
98
+ async listTasks(params) {
99
+ await pagesPermissions.ensure({
100
+ rwd: "r"
101
+ });
102
+ const tenant = context.tenancy.getCurrentTenant();
103
+ const locale = getLocale();
104
+ const {
105
+ sort,
106
+ limit
107
+ } = params || {};
108
+ const listParams = {
109
+ where: {
110
+ tenant: tenant.id,
111
+ locale: locale.code
112
+ },
113
+ sort: Array.isArray(sort) && sort.length > 0 ? sort : ["createdOn_ASC"],
114
+ limit: limit
115
+ };
116
+
117
+ // If user can only manage own records, let's add that to the listing.
118
+ if (await pagesPermissions.canAccessOnlyOwnRecords) {
119
+ const identity = context.security.getIdentity();
120
+ listParams.where.createdBy = identity.id;
121
+ }
122
+ try {
123
+ const [items] = await storageOperations.listTasks(listParams);
124
+ return items;
125
+ } catch (ex) {
126
+ throw new _error.default(ex.message || "Could not list all importExportTask.", ex.code || "LIST_ELEMENTS_ERROR", {
127
+ params
128
+ });
129
+ }
130
+ },
131
+ async createTask(input) {
132
+ await pagesPermissions.ensure({
133
+ rwd: "w"
134
+ });
135
+ const validation = CreateDataModel.safeParse(input);
136
+ if (!validation.success) {
137
+ throw (0, _utils.createZodError)(validation.error);
138
+ }
139
+ const id = (0, _utils.mdbid)();
140
+ const identity = context.security.getIdentity();
141
+ const importExportTask = {
142
+ ...validation.data,
143
+ parent: "",
144
+ tenant: context.tenancy.getCurrentTenant().id,
145
+ locale: getLocale().code,
146
+ id,
147
+ createdOn: new Date().toISOString(),
148
+ createdBy: {
149
+ id: identity.id,
150
+ type: identity.type,
151
+ displayName: identity.displayName
152
+ }
153
+ };
154
+ try {
155
+ return await storageOperations.createTask({
156
+ input: validation.data,
157
+ task: importExportTask
158
+ });
159
+ } catch (ex) {
160
+ throw new _error.default(ex.message || "Could not create importExportTask.", ex.code || "CREATE_IMPORT_EXPORT_TASK_ERROR", {
161
+ ...(ex.data || {}),
162
+ importExportTask
163
+ });
164
+ }
165
+ },
166
+ async updateTask(id, input) {
167
+ await pagesPermissions.ensure({
168
+ rwd: "w"
169
+ });
170
+ const original = await context.pageBuilder.importExportTask.getTask(id);
171
+ if (!original) {
172
+ throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
173
+ }
174
+ await pagesPermissions.ensure({
175
+ owns: original.createdBy
176
+ });
177
+ const validation = UpdateDataModel.safeParse(input);
178
+ if (!validation.success) {
179
+ throw (0, _utils.createZodError)(validation.error);
180
+ }
181
+ const importExportTask = {
182
+ ...original
183
+ };
184
+ for (const key in validation.data) {
185
+ // @ts-expect-error
186
+ const value = validation.data[key];
187
+ if (value === undefined) {
188
+ continue;
189
+ }
190
+ // @ts-expect-error
191
+ importExportTask[key] = value;
192
+ }
193
+ try {
194
+ return await storageOperations.updateTask({
195
+ input: validation.data,
196
+ original,
197
+ task: importExportTask
198
+ });
199
+ } catch (ex) {
200
+ throw new _error.default(ex.message || "Could not update importExportTask.", ex.code || "UPDATE_IMPORT_EXPORT_TASK_ERROR", {
201
+ ...(ex.data || {}),
202
+ original,
203
+ importExportTask
204
+ });
205
+ }
206
+ },
207
+ async deleteTask(id) {
208
+ await pagesPermissions.ensure({
209
+ rwd: "d"
210
+ });
211
+ const importExportTask = await context.pageBuilder.importExportTask.getTask(id);
212
+ if (!importExportTask) {
213
+ throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
214
+ }
215
+ await pagesPermissions.ensure({
216
+ owns: importExportTask.createdBy
217
+ });
218
+ try {
219
+ return await storageOperations.deleteTask({
220
+ task: importExportTask
221
+ });
222
+ } catch (ex) {
223
+ throw new _error.default(ex.message || "Could not delete importExportTask.", ex.code || "DELETE_IMPORT_EXPORT_TASK_ERROR", {
224
+ ...(ex.data || {}),
225
+ importExportTask
226
+ });
227
+ }
228
+ },
229
+ async updateStats(id, input) {
230
+ await pagesPermissions.ensure({
231
+ rwd: "w"
232
+ });
233
+ const original = await context.pageBuilder.importExportTask.getTask(id);
234
+ if (!original) {
235
+ throw new _handlerGraphql.NotFoundError(`ImportExportTask "${id}" not found.`);
236
+ }
237
+ await pagesPermissions.ensure({
238
+ owns: original.createdBy
239
+ });
240
+ try {
241
+ return await storageOperations.updateTaskStats({
242
+ input,
243
+ original
244
+ });
245
+ } catch (ex) {
246
+ throw new _error.default(ex.message || "Could not update importExportTask.", ex.code || "UPDATE_IMPORT_EXPORT_TASK_ERROR", {
247
+ ...(ex.data || {}),
248
+ original
249
+ });
250
+ }
251
+ },
252
+ async createSubTask(parent, id, input) {
253
+ await pagesPermissions.ensure({
254
+ rwd: "w"
255
+ });
256
+ const validation = CreateDataModel.safeParse(input);
257
+ if (!validation.success) {
258
+ throw (0, _utils.createZodError)(validation.error);
259
+ }
260
+ const identity = context.security.getIdentity();
261
+ const importExportSubTask = {
262
+ ...validation.data,
263
+ tenant: context.tenancy.getCurrentTenant().id,
264
+ locale: getLocale().code,
265
+ id,
266
+ parent,
267
+ createdOn: new Date().toISOString(),
268
+ createdBy: {
269
+ id: identity.id,
270
+ type: identity.type,
271
+ displayName: identity.displayName
272
+ }
273
+ };
274
+ try {
275
+ return await storageOperations.createSubTask({
276
+ input: validation.data,
277
+ subTask: importExportSubTask
278
+ });
279
+ } catch (ex) {
280
+ throw new _error.default(ex.message || "Could not create importExportSubTask.", ex.code || "CREATE_IMPORT_EXPORT_TASK_ERROR", {
281
+ ...(ex.data || {}),
282
+ importExportSubTask
283
+ });
284
+ }
285
+ },
286
+ async updateSubTask(parent, subTaskId, input) {
287
+ await pagesPermissions.ensure({
288
+ rwd: "w"
289
+ });
290
+ const original = await context.pageBuilder.importExportTask.getSubTask(parent, subTaskId);
291
+ if (!original) {
292
+ throw new _handlerGraphql.NotFoundError(`ImportExportTask parent: "${parent}" and id: "${subTaskId}" not found.`);
293
+ }
294
+ await pagesPermissions.ensure({
295
+ owns: original.createdBy
296
+ });
297
+ const validation = UpdateDataModel.safeParse(input);
298
+ if (!validation.success) {
299
+ throw (0, _utils.createZodError)(validation.error);
300
+ }
301
+ const importExportSubTask = {
302
+ ...original
303
+ };
304
+ for (const key in validation.data) {
305
+ // @ts-expect-error
306
+ const value = validation.data[key];
307
+ if (value === undefined) {
308
+ continue;
309
+ }
310
+ // @ts-expect-error
311
+ importExportSubTask[key] = value;
312
+ }
313
+ try {
314
+ return await storageOperations.updateSubTask({
315
+ input: validation.data,
316
+ original,
317
+ subTask: importExportSubTask
318
+ });
319
+ } catch (ex) {
320
+ throw new _error.default(ex.message || "Could not update importExportSubTask.", ex.code || "UPDATE_IMPORT_EXPORT_TASK_ERROR", {
321
+ ...(ex.data || {}),
322
+ importExportSubTask,
323
+ original
324
+ });
325
+ }
326
+ },
327
+ async getSubTask(parent, subTaskId) {
328
+ await pagesPermissions.ensure({
329
+ rwd: "r"
330
+ });
331
+ const tenant = context.tenancy.getCurrentTenant();
332
+ const locale = getLocale();
333
+ const params = {
334
+ where: {
335
+ tenant: tenant.id,
336
+ locale: locale.code,
337
+ id: subTaskId,
338
+ parent: parent
339
+ }
340
+ };
341
+ let importExportSubTask = null;
342
+ try {
343
+ importExportSubTask = await storageOperations.getSubTask(params);
344
+ if (!importExportSubTask) {
345
+ return null;
346
+ }
347
+ } catch (ex) {
348
+ throw new _error.default(ex.message || "Could not get importExportSubTask by id.", ex.code || "GET_IMPORT_EXPORT_TASK_ERROR", {
349
+ ...(ex.data || {}),
350
+ params
351
+ });
352
+ }
353
+ await pagesPermissions.ensure({
354
+ owns: importExportSubTask.createdBy
355
+ });
356
+ return importExportSubTask;
357
+ },
358
+ async listSubTasks(parent, status, limit) {
359
+ await pagesPermissions.ensure({
360
+ rwd: "r"
361
+ });
362
+ const tenant = context.tenancy.getCurrentTenant();
363
+ const locale = getLocale();
364
+ const listParams = {
365
+ where: {
366
+ tenant: tenant.id,
367
+ locale: locale.code,
368
+ parent: parent,
369
+ status
370
+ },
371
+ limit
372
+ };
373
+
374
+ // If user can only manage own records, let's add that to the listing.
375
+ if (await pagesPermissions.canAccessOnlyOwnRecords()) {
376
+ const identity = context.security.getIdentity();
377
+ listParams.where.createdBy = identity.id;
378
+ }
379
+ try {
380
+ const [items] = await storageOperations.listSubTasks(listParams);
381
+ return items;
382
+ } catch (ex) {
383
+ throw new _error.default(ex.message || "Could not list all importExportSubTask.", ex.code || "LIST_IMPORT_EXPORT_TASK_ERROR", {
384
+ params: {
385
+ parent,
386
+ status,
387
+ limit
388
+ }
389
+ });
390
+ }
391
+ }
392
+ };
393
+ });
394
+ exports.default = _default;
395
+
396
+ //# sourceMappingURL=importExportTasks.crud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_zod","_interopRequireDefault","require","_utils","_api","_handlerGraphql","_types","_error","_PagesPermissions","dataModelStats","zod","object","ImportExportTaskStatus","PENDING","number","optional","default","PROCESSING","COMPLETED","FAILED","total","CreateDataModel","status","enum","data","passthrough","input","error","stats","UpdateDataModel","_default","storageOperations","ContextPlugin","context","pageBuilder","console","log","pagesPermissions","PagesPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","getLocale","locale","i18n","getContentLocale","WebinyError","importExportTask","getTask","id","ensure","rwd","tenant","tenancy","getCurrentTenant","params","where","code","ex","message","owns","createdBy","listTasks","sort","limit","listParams","Array","isArray","length","canAccessOnlyOwnRecords","identity","items","createTask","validation","safeParse","success","createZodError","mdbid","parent","createdOn","Date","toISOString","type","displayName","task","updateTask","original","NotFoundError","key","value","undefined","deleteTask","updateStats","updateTaskStats","createSubTask","importExportSubTask","subTask","updateSubTask","subTaskId","getSubTask","listSubTasks","exports"],"sources":["importExportTasks.crud.ts"],"sourcesContent":["import zod from \"zod\";\nimport { createZodError, mdbid } from \"@webiny/utils\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport type {\n ImportExportPluginsParams,\n ImportExportTask,\n ImportExportTaskStorageOperationsListSubTaskParams\n} from \"~/types\";\nimport { ImportExportTaskStatus } from \"~/types\";\nimport type { PbImportExportContext } from \"~/graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport type { PageElementStorageOperationsListParams } from \"@webiny/api-page-builder/types\";\nimport { PagesPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PagesPermissions\";\n\nconst dataModelStats = zod\n .object({\n [ImportExportTaskStatus.PENDING]: zod.number().optional().default(0),\n [ImportExportTaskStatus.PROCESSING]: zod.number().optional().default(0),\n [ImportExportTaskStatus.COMPLETED]: zod.number().optional().default(0),\n [ImportExportTaskStatus.FAILED]: zod.number().optional().default(0),\n total: zod.number().optional().default(0)\n })\n .optional()\n .default({\n [ImportExportTaskStatus.PENDING]: 0,\n [ImportExportTaskStatus.PROCESSING]: 0,\n [ImportExportTaskStatus.COMPLETED]: 0,\n [ImportExportTaskStatus.FAILED]: 0,\n total: 0\n });\n\nconst CreateDataModel = zod.object({\n status: zod.enum([\n ImportExportTaskStatus.PENDING,\n ImportExportTaskStatus.PROCESSING,\n ImportExportTaskStatus.COMPLETED,\n ImportExportTaskStatus.FAILED\n ]),\n data: zod.object({}).passthrough().default({}),\n input: zod.object({}).passthrough().default({}),\n error: zod.object({}).passthrough().default({}),\n stats: dataModelStats\n});\n\nconst UpdateDataModel = zod.object({\n status: zod\n .enum([\n ImportExportTaskStatus.PENDING,\n ImportExportTaskStatus.PROCESSING,\n ImportExportTaskStatus.COMPLETED,\n ImportExportTaskStatus.FAILED\n ])\n .optional(),\n data: zod.object({}).passthrough().default({}),\n input: zod.object({}).passthrough().default({}),\n error: zod.object({}).passthrough().default({}),\n stats: dataModelStats\n});\n\nexport default ({ storageOperations }: ImportExportPluginsParams) =>\n new ContextPlugin<PbImportExportContext>(async context => {\n /**\n * If pageBuilder is not defined on the context, do not continue, but log it.\n */\n if (!context.pageBuilder) {\n console.log(\"Missing pageBuilder on context. Skipping ImportExportTasks crud.\");\n return;\n }\n\n const pagesPermissions = new PagesPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.page\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n const getLocale = () => {\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in importExportTasks.crud.ts\",\n \"LOCALE_ERROR\"\n );\n }\n return locale;\n };\n\n // Modify context\n context.pageBuilder.importExportTask = {\n storageOperations,\n async getTask(id) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id\n }\n };\n\n let importExportTask: ImportExportTask | null = null;\n\n try {\n importExportTask = await storageOperations.getTask(params);\n\n if (!importExportTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n\n await pagesPermissions.ensure({ owns: importExportTask.createdBy });\n\n return importExportTask;\n },\n\n async listTasks(params) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const { sort, limit } = params || {};\n\n const listParams: PageElementStorageOperationsListParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code\n },\n sort: Array.isArray(sort) && sort.length > 0 ? sort : [\"createdOn_ASC\"],\n limit: limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (await pagesPermissions.canAccessOnlyOwnRecords) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportTask.\",\n ex.code || \"LIST_ELEMENTS_ERROR\",\n {\n params\n }\n );\n }\n },\n\n async createTask(input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const validation = CreateDataModel.safeParse(input);\n if (!validation.success) {\n throw createZodError(validation.error);\n }\n\n const id: string = mdbid();\n const identity = context.security.getIdentity();\n\n const importExportTask: ImportExportTask = {\n ...validation.data,\n parent: \"\",\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createTask({\n input: validation.data,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateTask(id, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n await pagesPermissions.ensure({ owns: original.createdBy });\n\n const validation = UpdateDataModel.safeParse(input);\n if (!validation.success) {\n throw createZodError(validation.error);\n }\n\n const importExportTask = {\n ...original\n };\n\n for (const key in validation.data) {\n // @ts-expect-error\n const value = validation.data[key];\n if (value === undefined) {\n continue;\n }\n // @ts-expect-error\n importExportTask[key] = value;\n }\n\n try {\n return await storageOperations.updateTask({\n input: validation.data,\n original,\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original,\n importExportTask\n }\n );\n }\n },\n\n async deleteTask(id) {\n await pagesPermissions.ensure({ rwd: \"d\" });\n\n const importExportTask = await context.pageBuilder.importExportTask.getTask(id);\n if (!importExportTask) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n await pagesPermissions.ensure({ owns: importExportTask.createdBy });\n\n try {\n return await storageOperations.deleteTask({\n task: importExportTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete importExportTask.\",\n ex.code || \"DELETE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportTask\n }\n );\n }\n },\n\n async updateStats(id, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const original = await context.pageBuilder.importExportTask.getTask(id);\n if (!original) {\n throw new NotFoundError(`ImportExportTask \"${id}\" not found.`);\n }\n\n await pagesPermissions.ensure({ owns: original.createdBy });\n\n try {\n return await storageOperations.updateTaskStats({\n input,\n original\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n original\n }\n );\n }\n },\n\n async createSubTask(parent, id, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const validation = CreateDataModel.safeParse(input);\n if (!validation.success) {\n throw createZodError(validation.error);\n }\n\n const identity = context.security.getIdentity();\n\n const importExportSubTask: ImportExportTask = {\n ...validation.data,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: getLocale().code,\n id,\n parent,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName\n }\n };\n\n try {\n return await storageOperations.createSubTask({\n input: validation.data,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create importExportSubTask.\",\n ex.code || \"CREATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask\n }\n );\n }\n },\n\n async updateSubTask(parent, subTaskId, input) {\n await pagesPermissions.ensure({ rwd: \"w\" });\n\n const original = await context.pageBuilder.importExportTask.getSubTask(\n parent,\n subTaskId\n );\n if (!original) {\n throw new NotFoundError(\n `ImportExportTask parent: \"${parent}\" and id: \"${subTaskId}\" not found.`\n );\n }\n\n await pagesPermissions.ensure({ owns: original.createdBy });\n\n const validation = UpdateDataModel.safeParse(input);\n if (!validation.success) {\n throw createZodError(validation.error);\n }\n\n const importExportSubTask = {\n ...original\n };\n for (const key in validation.data) {\n // @ts-expect-error\n const value = validation.data[key];\n if (value === undefined) {\n continue;\n }\n // @ts-expect-error\n importExportSubTask[key] = value;\n }\n\n try {\n return await storageOperations.updateSubTask({\n input: validation.data,\n original,\n subTask: importExportSubTask\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update importExportSubTask.\",\n ex.code || \"UPDATE_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n importExportSubTask,\n original\n }\n );\n }\n },\n\n async getSubTask(parent, subTaskId) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const params = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n id: subTaskId,\n parent: parent\n }\n };\n\n let importExportSubTask: ImportExportTask | null = null;\n\n try {\n importExportSubTask = await storageOperations.getSubTask(params);\n if (!importExportSubTask) {\n return null;\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get importExportSubTask by id.\",\n ex.code || \"GET_IMPORT_EXPORT_TASK_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n\n await pagesPermissions.ensure({ owns: importExportSubTask.createdBy });\n\n return importExportSubTask;\n },\n\n async listSubTasks(parent, status, limit) {\n await pagesPermissions.ensure({ rwd: \"r\" });\n\n const tenant = context.tenancy.getCurrentTenant();\n const locale = getLocale();\n\n const listParams: ImportExportTaskStorageOperationsListSubTaskParams = {\n where: {\n tenant: tenant.id,\n locale: locale.code,\n parent: parent,\n status\n },\n limit\n };\n\n // If user can only manage own records, let's add that to the listing.\n if (await pagesPermissions.canAccessOnlyOwnRecords()) {\n const identity = context.security.getIdentity();\n listParams.where.createdBy = identity.id;\n }\n\n try {\n const [items] = await storageOperations.listSubTasks(listParams);\n return items;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list all importExportSubTask.\",\n ex.code || \"LIST_IMPORT_EXPORT_TASK_ERROR\",\n {\n params: {\n parent,\n status,\n limit\n }\n }\n );\n }\n }\n };\n });\n"],"mappings":";;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAMA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,MAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEA,IAAAM,iBAAA,GAAAN,OAAA;AAEA,MAAMO,cAAc,GAAGC,YAAG,CACrBC,MAAM,CAAC;EACJ,CAACC,6BAAsB,CAACC,OAAO,GAAGH,YAAG,CAACI,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC;EACpE,CAACJ,6BAAsB,CAACK,UAAU,GAAGP,YAAG,CAACI,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC;EACvE,CAACJ,6BAAsB,CAACM,SAAS,GAAGR,YAAG,CAACI,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC;EACtE,CAACJ,6BAAsB,CAACO,MAAM,GAAGT,YAAG,CAACI,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC;EACnEI,KAAK,EAAEV,YAAG,CAACI,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC,CACDD,QAAQ,CAAC,CAAC,CACVC,OAAO,CAAC;EACL,CAACJ,6BAAsB,CAACC,OAAO,GAAG,CAAC;EACnC,CAACD,6BAAsB,CAACK,UAAU,GAAG,CAAC;EACtC,CAACL,6BAAsB,CAACM,SAAS,GAAG,CAAC;EACrC,CAACN,6BAAsB,CAACO,MAAM,GAAG,CAAC;EAClCC,KAAK,EAAE;AACX,CAAC,CAAC;AAEN,MAAMC,eAAe,GAAGX,YAAG,CAACC,MAAM,CAAC;EAC/BW,MAAM,EAAEZ,YAAG,CAACa,IAAI,CAAC,CACbX,6BAAsB,CAACC,OAAO,EAC9BD,6BAAsB,CAACK,UAAU,EACjCL,6BAAsB,CAACM,SAAS,EAChCN,6BAAsB,CAACO,MAAM,CAChC,CAAC;EACFK,IAAI,EAAEd,YAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAACc,WAAW,CAAC,CAAC,CAACT,OAAO,CAAC,CAAC,CAAC,CAAC;EAC9CU,KAAK,EAAEhB,YAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAACc,WAAW,CAAC,CAAC,CAACT,OAAO,CAAC,CAAC,CAAC,CAAC;EAC/CW,KAAK,EAAEjB,YAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAACc,WAAW,CAAC,CAAC,CAACT,OAAO,CAAC,CAAC,CAAC,CAAC;EAC/CY,KAAK,EAAEnB;AACX,CAAC,CAAC;AAEF,MAAMoB,eAAe,GAAGnB,YAAG,CAACC,MAAM,CAAC;EAC/BW,MAAM,EAAEZ,YAAG,CACNa,IAAI,CAAC,CACFX,6BAAsB,CAACC,OAAO,EAC9BD,6BAAsB,CAACK,UAAU,EACjCL,6BAAsB,CAACM,SAAS,EAChCN,6BAAsB,CAACO,MAAM,CAChC,CAAC,CACDJ,QAAQ,CAAC,CAAC;EACfS,IAAI,EAAEd,YAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAACc,WAAW,CAAC,CAAC,CAACT,OAAO,CAAC,CAAC,CAAC,CAAC;EAC9CU,KAAK,EAAEhB,YAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAACc,WAAW,CAAC,CAAC,CAACT,OAAO,CAAC,CAAC,CAAC,CAAC;EAC/CW,KAAK,EAAEjB,YAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAACc,WAAW,CAAC,CAAC,CAACT,OAAO,CAAC,CAAC,CAAC,CAAC;EAC/CY,KAAK,EAAEnB;AACX,CAAC,CAAC;AAAC,IAAAqB,QAAA,GAEYA,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,gBAAgB,GAAG,IAAIC,kCAAgB,CAAC;IAC1CC,cAAc,EAAEA,CAAA,KAAMN,OAAO,CAACO,QAAQ,CAACD,cAAc,CAAC,SAAS,CAAC;IAChEE,WAAW,EAAER,OAAO,CAACO,QAAQ,CAACC,WAAW;IACzCC,wBAAwB,EAAE;EAC9B,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGA,CAAA,KAAM;IACpB,MAAMC,MAAM,GAAGX,OAAO,CAACY,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC9C,IAAI,CAACF,MAAM,EAAE;MACT,MAAM,IAAIG,cAAW,CACjB,qDAAqD,EACrD,cACJ,CAAC;IACL;IACA,OAAOH,MAAM;EACjB,CAAC;;EAED;EACAX,OAAO,CAACC,WAAW,CAACc,gBAAgB,GAAG;IACnCjB,iBAAiB;IACjB,MAAMkB,OAAOA,CAACC,EAAE,EAAE;MACd,MAAMb,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMC,MAAM,GAAGpB,OAAO,CAACqB,OAAO,CAACC,gBAAgB,CAAC,CAAC;MACjD,MAAMX,MAAM,GAAGD,SAAS,CAAC,CAAC;MAE1B,MAAMa,MAAM,GAAG;QACXC,KAAK,EAAE;UACHJ,MAAM,EAAEA,MAAM,CAACH,EAAE;UACjBN,MAAM,EAAEA,MAAM,CAACc,IAAI;UACnBR;QACJ;MACJ,CAAC;MAED,IAAIF,gBAAyC,GAAG,IAAI;MAEpD,IAAI;QACAA,gBAAgB,GAAG,MAAMjB,iBAAiB,CAACkB,OAAO,CAACO,MAAM,CAAC;QAE1D,IAAI,CAACR,gBAAgB,EAAE;UACnB,OAAO,IAAI;QACf;MACJ,CAAC,CAAC,OAAOW,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,uCAAuC,EACrDD,EAAE,CAACD,IAAI,IAAI,8BAA8B,EACzC;UACI,IAAIC,EAAE,CAACnC,IAAI,IAAI,CAAC,CAAC,CAAC;UAClBgC;QACJ,CACJ,CAAC;MACL;MAEA,MAAMnB,gBAAgB,CAACc,MAAM,CAAC;QAAEU,IAAI,EAAEb,gBAAgB,CAACc;MAAU,CAAC,CAAC;MAEnE,OAAOd,gBAAgB;IAC3B,CAAC;IAED,MAAMe,SAASA,CAACP,MAAM,EAAE;MACpB,MAAMnB,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMC,MAAM,GAAGpB,OAAO,CAACqB,OAAO,CAACC,gBAAgB,CAAC,CAAC;MACjD,MAAMX,MAAM,GAAGD,SAAS,CAAC,CAAC;MAE1B,MAAM;QAAEqB,IAAI;QAAEC;MAAM,CAAC,GAAGT,MAAM,IAAI,CAAC,CAAC;MAEpC,MAAMU,UAAkD,GAAG;QACvDT,KAAK,EAAE;UACHJ,MAAM,EAAEA,MAAM,CAACH,EAAE;UACjBN,MAAM,EAAEA,MAAM,CAACc;QACnB,CAAC;QACDM,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,IAAI,MAAM5B,gBAAgB,CAACiC,uBAAuB,EAAE;QAChD,MAAMC,QAAQ,GAAGtC,OAAO,CAACO,QAAQ,CAACC,WAAW,CAAC,CAAC;QAC/CyB,UAAU,CAACT,KAAK,CAACK,SAAS,GAAGS,QAAQ,CAACrB,EAAE;MAC5C;MAEA,IAAI;QACA,MAAM,CAACsB,KAAK,CAAC,GAAG,MAAMzC,iBAAiB,CAACgC,SAAS,CAACG,UAAU,CAAC;QAC7D,OAAOM,KAAK;MAChB,CAAC,CAAC,OAAOb,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,sCAAsC,EACpDD,EAAE,CAACD,IAAI,IAAI,qBAAqB,EAChC;UACIF;QACJ,CACJ,CAAC;MACL;IACJ,CAAC;IAED,MAAMiB,UAAUA,CAAC/C,KAAK,EAAE;MACpB,MAAMW,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMsB,UAAU,GAAGrD,eAAe,CAACsD,SAAS,CAACjD,KAAK,CAAC;MACnD,IAAI,CAACgD,UAAU,CAACE,OAAO,EAAE;QACrB,MAAM,IAAAC,qBAAc,EAACH,UAAU,CAAC/C,KAAK,CAAC;MAC1C;MAEA,MAAMuB,EAAU,GAAG,IAAA4B,YAAK,EAAC,CAAC;MAC1B,MAAMP,QAAQ,GAAGtC,OAAO,CAACO,QAAQ,CAACC,WAAW,CAAC,CAAC;MAE/C,MAAMO,gBAAkC,GAAG;QACvC,GAAG0B,UAAU,CAAClD,IAAI;QAClBuD,MAAM,EAAE,EAAE;QACV1B,MAAM,EAAEpB,OAAO,CAACqB,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAACL,EAAE;QAC7CN,MAAM,EAAED,SAAS,CAAC,CAAC,CAACe,IAAI;QACxBR,EAAE;QACF8B,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;QACnCpB,SAAS,EAAE;UACPZ,EAAE,EAAEqB,QAAQ,CAACrB,EAAE;UACfiC,IAAI,EAAEZ,QAAQ,CAACY,IAAI;UACnBC,WAAW,EAAEb,QAAQ,CAACa;QAC1B;MACJ,CAAC;MAED,IAAI;QACA,OAAO,MAAMrD,iBAAiB,CAAC0C,UAAU,CAAC;UACtC/C,KAAK,EAAEgD,UAAU,CAAClD,IAAI;UACtB6D,IAAI,EAAErC;QACV,CAAC,CAAC;MACN,CAAC,CAAC,OAAOW,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,oCAAoC,EAClDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,EAC5C;UACI,IAAIC,EAAE,CAACnC,IAAI,IAAI,CAAC,CAAC,CAAC;UAClBwB;QACJ,CACJ,CAAC;MACL;IACJ,CAAC;IAED,MAAMsC,UAAUA,CAACpC,EAAE,EAAExB,KAAK,EAAE;MACxB,MAAMW,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMmC,QAAQ,GAAG,MAAMtD,OAAO,CAACC,WAAW,CAACc,gBAAgB,CAACC,OAAO,CAACC,EAAE,CAAC;MACvE,IAAI,CAACqC,QAAQ,EAAE;QACX,MAAM,IAAIC,6BAAa,CAAC,qBAAqBtC,EAAE,cAAc,CAAC;MAClE;MAEA,MAAMb,gBAAgB,CAACc,MAAM,CAAC;QAAEU,IAAI,EAAE0B,QAAQ,CAACzB;MAAU,CAAC,CAAC;MAE3D,MAAMY,UAAU,GAAG7C,eAAe,CAAC8C,SAAS,CAACjD,KAAK,CAAC;MACnD,IAAI,CAACgD,UAAU,CAACE,OAAO,EAAE;QACrB,MAAM,IAAAC,qBAAc,EAACH,UAAU,CAAC/C,KAAK,CAAC;MAC1C;MAEA,MAAMqB,gBAAgB,GAAG;QACrB,GAAGuC;MACP,CAAC;MAED,KAAK,MAAME,GAAG,IAAIf,UAAU,CAAClD,IAAI,EAAE;QAC/B;QACA,MAAMkE,KAAK,GAAGhB,UAAU,CAAClD,IAAI,CAACiE,GAAG,CAAC;QAClC,IAAIC,KAAK,KAAKC,SAAS,EAAE;UACrB;QACJ;QACA;QACA3C,gBAAgB,CAACyC,GAAG,CAAC,GAAGC,KAAK;MACjC;MAEA,IAAI;QACA,OAAO,MAAM3D,iBAAiB,CAACuD,UAAU,CAAC;UACtC5D,KAAK,EAAEgD,UAAU,CAAClD,IAAI;UACtB+D,QAAQ;UACRF,IAAI,EAAErC;QACV,CAAC,CAAC;MACN,CAAC,CAAC,OAAOW,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,oCAAoC,EAClDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,EAC5C;UACI,IAAIC,EAAE,CAACnC,IAAI,IAAI,CAAC,CAAC,CAAC;UAClB+D,QAAQ;UACRvC;QACJ,CACJ,CAAC;MACL;IACJ,CAAC;IAED,MAAM4C,UAAUA,CAAC1C,EAAE,EAAE;MACjB,MAAMb,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMJ,gBAAgB,GAAG,MAAMf,OAAO,CAACC,WAAW,CAACc,gBAAgB,CAACC,OAAO,CAACC,EAAE,CAAC;MAC/E,IAAI,CAACF,gBAAgB,EAAE;QACnB,MAAM,IAAIwC,6BAAa,CAAC,qBAAqBtC,EAAE,cAAc,CAAC;MAClE;MAEA,MAAMb,gBAAgB,CAACc,MAAM,CAAC;QAAEU,IAAI,EAAEb,gBAAgB,CAACc;MAAU,CAAC,CAAC;MAEnE,IAAI;QACA,OAAO,MAAM/B,iBAAiB,CAAC6D,UAAU,CAAC;UACtCP,IAAI,EAAErC;QACV,CAAC,CAAC;MACN,CAAC,CAAC,OAAOW,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,oCAAoC,EAClDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,EAC5C;UACI,IAAIC,EAAE,CAACnC,IAAI,IAAI,CAAC,CAAC,CAAC;UAClBwB;QACJ,CACJ,CAAC;MACL;IACJ,CAAC;IAED,MAAM6C,WAAWA,CAAC3C,EAAE,EAAExB,KAAK,EAAE;MACzB,MAAMW,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMmC,QAAQ,GAAG,MAAMtD,OAAO,CAACC,WAAW,CAACc,gBAAgB,CAACC,OAAO,CAACC,EAAE,CAAC;MACvE,IAAI,CAACqC,QAAQ,EAAE;QACX,MAAM,IAAIC,6BAAa,CAAC,qBAAqBtC,EAAE,cAAc,CAAC;MAClE;MAEA,MAAMb,gBAAgB,CAACc,MAAM,CAAC;QAAEU,IAAI,EAAE0B,QAAQ,CAACzB;MAAU,CAAC,CAAC;MAE3D,IAAI;QACA,OAAO,MAAM/B,iBAAiB,CAAC+D,eAAe,CAAC;UAC3CpE,KAAK;UACL6D;QACJ,CAAC,CAAC;MACN,CAAC,CAAC,OAAO5B,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,oCAAoC,EAClDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,EAC5C;UACI,IAAIC,EAAE,CAACnC,IAAI,IAAI,CAAC,CAAC,CAAC;UAClB+D;QACJ,CACJ,CAAC;MACL;IACJ,CAAC;IAED,MAAMQ,aAAaA,CAAChB,MAAM,EAAE7B,EAAE,EAAExB,KAAK,EAAE;MACnC,MAAMW,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMsB,UAAU,GAAGrD,eAAe,CAACsD,SAAS,CAACjD,KAAK,CAAC;MACnD,IAAI,CAACgD,UAAU,CAACE,OAAO,EAAE;QACrB,MAAM,IAAAC,qBAAc,EAACH,UAAU,CAAC/C,KAAK,CAAC;MAC1C;MAEA,MAAM4C,QAAQ,GAAGtC,OAAO,CAACO,QAAQ,CAACC,WAAW,CAAC,CAAC;MAE/C,MAAMuD,mBAAqC,GAAG;QAC1C,GAAGtB,UAAU,CAAClD,IAAI;QAClB6B,MAAM,EAAEpB,OAAO,CAACqB,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAACL,EAAE;QAC7CN,MAAM,EAAED,SAAS,CAAC,CAAC,CAACe,IAAI;QACxBR,EAAE;QACF6B,MAAM;QACNC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;QACnCpB,SAAS,EAAE;UACPZ,EAAE,EAAEqB,QAAQ,CAACrB,EAAE;UACfiC,IAAI,EAAEZ,QAAQ,CAACY,IAAI;UACnBC,WAAW,EAAEb,QAAQ,CAACa;QAC1B;MACJ,CAAC;MAED,IAAI;QACA,OAAO,MAAMrD,iBAAiB,CAACgE,aAAa,CAAC;UACzCrE,KAAK,EAAEgD,UAAU,CAAClD,IAAI;UACtByE,OAAO,EAAED;QACb,CAAC,CAAC;MACN,CAAC,CAAC,OAAOrC,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,uCAAuC,EACrDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,EAC5C;UACI,IAAIC,EAAE,CAACnC,IAAI,IAAI,CAAC,CAAC,CAAC;UAClBwE;QACJ,CACJ,CAAC;MACL;IACJ,CAAC;IAED,MAAME,aAAaA,CAACnB,MAAM,EAAEoB,SAAS,EAAEzE,KAAK,EAAE;MAC1C,MAAMW,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMmC,QAAQ,GAAG,MAAMtD,OAAO,CAACC,WAAW,CAACc,gBAAgB,CAACoD,UAAU,CAClErB,MAAM,EACNoB,SACJ,CAAC;MACD,IAAI,CAACZ,QAAQ,EAAE;QACX,MAAM,IAAIC,6BAAa,CACnB,6BAA6BT,MAAM,cAAcoB,SAAS,cAC9D,CAAC;MACL;MAEA,MAAM9D,gBAAgB,CAACc,MAAM,CAAC;QAAEU,IAAI,EAAE0B,QAAQ,CAACzB;MAAU,CAAC,CAAC;MAE3D,MAAMY,UAAU,GAAG7C,eAAe,CAAC8C,SAAS,CAACjD,KAAK,CAAC;MACnD,IAAI,CAACgD,UAAU,CAACE,OAAO,EAAE;QACrB,MAAM,IAAAC,qBAAc,EAACH,UAAU,CAAC/C,KAAK,CAAC;MAC1C;MAEA,MAAMqE,mBAAmB,GAAG;QACxB,GAAGT;MACP,CAAC;MACD,KAAK,MAAME,GAAG,IAAIf,UAAU,CAAClD,IAAI,EAAE;QAC/B;QACA,MAAMkE,KAAK,GAAGhB,UAAU,CAAClD,IAAI,CAACiE,GAAG,CAAC;QAClC,IAAIC,KAAK,KAAKC,SAAS,EAAE;UACrB;QACJ;QACA;QACAK,mBAAmB,CAACP,GAAG,CAAC,GAAGC,KAAK;MACpC;MAEA,IAAI;QACA,OAAO,MAAM3D,iBAAiB,CAACmE,aAAa,CAAC;UACzCxE,KAAK,EAAEgD,UAAU,CAAClD,IAAI;UACtB+D,QAAQ;UACRU,OAAO,EAAED;QACb,CAAC,CAAC;MACN,CAAC,CAAC,OAAOrC,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,uCAAuC,EACrDD,EAAE,CAACD,IAAI,IAAI,iCAAiC,EAC5C;UACI,IAAIC,EAAE,CAACnC,IAAI,IAAI,CAAC,CAAC,CAAC;UAClBwE,mBAAmB;UACnBT;QACJ,CACJ,CAAC;MACL;IACJ,CAAC;IAED,MAAMa,UAAUA,CAACrB,MAAM,EAAEoB,SAAS,EAAE;MAChC,MAAM9D,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMC,MAAM,GAAGpB,OAAO,CAACqB,OAAO,CAACC,gBAAgB,CAAC,CAAC;MACjD,MAAMX,MAAM,GAAGD,SAAS,CAAC,CAAC;MAE1B,MAAMa,MAAM,GAAG;QACXC,KAAK,EAAE;UACHJ,MAAM,EAAEA,MAAM,CAACH,EAAE;UACjBN,MAAM,EAAEA,MAAM,CAACc,IAAI;UACnBR,EAAE,EAAEiD,SAAS;UACbpB,MAAM,EAAEA;QACZ;MACJ,CAAC;MAED,IAAIiB,mBAA4C,GAAG,IAAI;MAEvD,IAAI;QACAA,mBAAmB,GAAG,MAAMjE,iBAAiB,CAACqE,UAAU,CAAC5C,MAAM,CAAC;QAChE,IAAI,CAACwC,mBAAmB,EAAE;UACtB,OAAO,IAAI;QACf;MACJ,CAAC,CAAC,OAAOrC,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,0CAA0C,EACxDD,EAAE,CAACD,IAAI,IAAI,8BAA8B,EACzC;UACI,IAAIC,EAAE,CAACnC,IAAI,IAAI,CAAC,CAAC,CAAC;UAClBgC;QACJ,CACJ,CAAC;MACL;MAEA,MAAMnB,gBAAgB,CAACc,MAAM,CAAC;QAAEU,IAAI,EAAEmC,mBAAmB,CAAClC;MAAU,CAAC,CAAC;MAEtE,OAAOkC,mBAAmB;IAC9B,CAAC;IAED,MAAMK,YAAYA,CAACtB,MAAM,EAAEzD,MAAM,EAAE2C,KAAK,EAAE;MACtC,MAAM5B,gBAAgB,CAACc,MAAM,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC,CAAC;MAE3C,MAAMC,MAAM,GAAGpB,OAAO,CAACqB,OAAO,CAACC,gBAAgB,CAAC,CAAC;MACjD,MAAMX,MAAM,GAAGD,SAAS,CAAC,CAAC;MAE1B,MAAMuB,UAA8D,GAAG;QACnET,KAAK,EAAE;UACHJ,MAAM,EAAEA,MAAM,CAACH,EAAE;UACjBN,MAAM,EAAEA,MAAM,CAACc,IAAI;UACnBqB,MAAM,EAAEA,MAAM;UACdzD;QACJ,CAAC;QACD2C;MACJ,CAAC;;MAED;MACA,IAAI,MAAM5B,gBAAgB,CAACiC,uBAAuB,CAAC,CAAC,EAAE;QAClD,MAAMC,QAAQ,GAAGtC,OAAO,CAACO,QAAQ,CAACC,WAAW,CAAC,CAAC;QAC/CyB,UAAU,CAACT,KAAK,CAACK,SAAS,GAAGS,QAAQ,CAACrB,EAAE;MAC5C;MAEA,IAAI;QACA,MAAM,CAACsB,KAAK,CAAC,GAAG,MAAMzC,iBAAiB,CAACsE,YAAY,CAACnC,UAAU,CAAC;QAChE,OAAOM,KAAK;MAChB,CAAC,CAAC,OAAOb,EAAE,EAAE;QACT,MAAM,IAAIZ,cAAW,CACjBY,EAAE,CAACC,OAAO,IAAI,yCAAyC,EACvDD,EAAE,CAACD,IAAI,IAAI,+BAA+B,EAC1C;UACIF,MAAM,EAAE;YACJuB,MAAM;YACNzD,MAAM;YACN2C;UACJ;QACJ,CACJ,CAAC;MACL;IACJ;EACJ,CAAC;AACL,CAAC,CAAC;AAAAqC,OAAA,CAAAtF,OAAA,GAAAc,QAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import { ContextPlugin } from "@webiny/api";
2
- import { PbPageImportExportContext } from "../../types";
3
- declare const _default: ContextPlugin<PbPageImportExportContext>;
2
+ import type { PbImportExportContext } from "../../types";
3
+ declare const _default: ContextPlugin<PbImportExportContext>;
4
4
  export default _default;