@webiny/api-page-builder-import-export 0.0.0-mt-2 → 0.0.0-unstable.06b2ede40f

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 (271) hide show
  1. package/client.d.ts +8 -0
  2. package/client.js +34 -0
  3. package/client.js.map +1 -0
  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/export/combine/index.d.ts +16 -0
  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/export/process/index.d.ts +20 -0
  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/export/s3Stream.js +98 -0
  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 +13 -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 +3 -3
  92. package/graphql/crud/pages.crud.js +244 -133
  93. package/graphql/crud/pages.crud.js.map +1 -0
  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 +8 -8
  99. package/graphql/crud.js.map +1 -0
  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 +102 -22
  111. package/graphql/graphql/pages.gql.js.map +1 -0
  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 -0
  118. package/graphql/graphql.d.ts +2 -2
  119. package/graphql/graphql.js +7 -7
  120. package/graphql/graphql.js.map +1 -0
  121. package/graphql/index.d.ts +2 -2
  122. package/graphql/index.js +5 -7
  123. package/graphql/index.js.map +1 -0
  124. package/graphql/types.d.ts +239 -40
  125. package/graphql/types.js +3 -1
  126. package/graphql/types.js.map +1 -0
  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/import/process/index.d.ts +20 -0
  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 -0
  220. package/package.json +37 -51
  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 +91 -72
  246. package/types.js +68 -21
  247. package/types.js.map +1 -0
  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.d.ts +0 -19
  252. package/exportPages/combine/index.js +0 -88
  253. package/exportPages/process/index.d.ts +0 -26
  254. package/exportPages/process/index.js +0 -204
  255. package/exportPages/s3Stream.d.ts +0 -29
  256. package/exportPages/s3Stream.js +0 -106
  257. package/exportPages/utils.d.ts +0 -13
  258. package/exportPages/utils.js +0 -113
  259. package/exportPages/zipper.js +0 -137
  260. package/graphql/crud/pageImportExportTasks.crud.d.ts +0 -5
  261. package/graphql/crud/pageImportExportTasks.crud.js +0 -394
  262. package/graphql/graphql/pageImportExportTasks.gql.d.ts +0 -4
  263. package/graphql/graphql/pageImportExportTasks.gql.js +0 -80
  264. package/importPages/client.d.ts +0 -7
  265. package/importPages/client.js +0 -40
  266. package/importPages/create/index.d.ts +0 -27
  267. package/importPages/create/index.js +0 -109
  268. package/importPages/process/index.d.ts +0 -25
  269. package/importPages/process/index.js +0 -183
  270. package/importPages/utils.d.ts +0 -43
  271. package/importPages/utils.js +0 -539
package/client.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import type { PbImportExportContext } from "./graphql/types";
2
+ export interface InvokeHandlerClientParams<TParams> {
3
+ context: PbImportExportContext;
4
+ name: string;
5
+ payload: TParams;
6
+ description: string;
7
+ }
8
+ export declare function invokeHandlerClient<TParams>({ context, name, payload, description }: InvokeHandlerClientParams<TParams>): Promise<void>;
package/client.js ADDED
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.invokeHandlerClient = invokeHandlerClient;
7
+ async function invokeHandlerClient({
8
+ context,
9
+ name,
10
+ payload,
11
+ description
12
+ }) {
13
+ const {
14
+ request
15
+ } = context;
16
+ const tenantId = context.tenancy.getCurrentTenant().id;
17
+
18
+ // Invoke handler
19
+ await context.handlerClient.invoke({
20
+ name: name,
21
+ payload: {
22
+ ...payload,
23
+ httpMethod: request.method,
24
+ headers: {
25
+ ["x-i18n-locale"]: request.headers["x-i18n-locale"],
26
+ ["x-tenant"]: request.headers["x-tenant"] || tenantId
27
+ }
28
+ },
29
+ await: false,
30
+ description
31
+ });
32
+ }
33
+
34
+ //# sourceMappingURL=client.js.map
package/client.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":["invokeHandlerClient","context","name","payload","description","request","tenantId","tenancy","getCurrentTenant","id","handlerClient","invoke","httpMethod","method","headers","await"],"sources":["client.ts"],"sourcesContent":["import type { PbImportExportContext } from \"~/graphql/types\";\n\nexport interface InvokeHandlerClientParams<TParams> {\n context: PbImportExportContext;\n name: string;\n payload: TParams;\n description: string;\n}\n\nexport async function invokeHandlerClient<TParams>({\n context,\n name,\n payload,\n description\n}: InvokeHandlerClientParams<TParams>) {\n const { request } = context;\n const tenantId = context.tenancy.getCurrentTenant().id;\n\n // Invoke handler\n await context.handlerClient.invoke<TParams & any>({\n name: name,\n payload: {\n ...payload,\n httpMethod: request.method,\n headers: {\n [\"x-i18n-locale\"]: request.headers[\"x-i18n-locale\"],\n [\"x-tenant\"]: request.headers[\"x-tenant\"] || tenantId\n }\n },\n await: false,\n description\n });\n}\n"],"mappings":";;;;;;AASO,eAAeA,mBAAmBA,CAAU;EAC/CC,OAAO;EACPC,IAAI;EACJC,OAAO;EACPC;AACgC,CAAC,EAAE;EACnC,MAAM;IAAEC;EAAQ,CAAC,GAAGJ,OAAO;EAC3B,MAAMK,QAAQ,GAAGL,OAAO,CAACM,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAACC,EAAE;;EAEtD;EACA,MAAMR,OAAO,CAACS,aAAa,CAACC,MAAM,CAAgB;IAC9CT,IAAI,EAAEA,IAAI;IACVC,OAAO,EAAE;MACL,GAAGA,OAAO;MACVS,UAAU,EAAEP,OAAO,CAACQ,MAAM;MAC1BC,OAAO,EAAE;QACL,CAAC,eAAe,GAAGT,OAAO,CAACS,OAAO,CAAC,eAAe,CAAC;QACnD,CAAC,UAAU,GAAGT,OAAO,CAACS,OAAO,CAAC,UAAU,CAAC,IAAIR;MACjD;IACJ,CAAC;IACDS,KAAK,EAAE,KAAK;IACZX;EACJ,CAAC,CAAC;AACN","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { PbImportExportContext } from "../../types";
2
+ import type { Payload, Response } from "./";
3
+ /**
4
+ * Handles the export blocks combine workflow.
5
+ */
6
+ export declare const blocksHandler: (payload: Payload, context: PbImportExportContext) => Promise<Response>;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.blocksHandler = void 0;
7
+ var _types = require("../../types");
8
+ var _s3Stream = require("../s3Stream");
9
+ var _zipper = require("../zipper");
10
+ var _mockSecurity = require("../../mockSecurity");
11
+ /**
12
+ * Handles the export blocks combine workflow.
13
+ */
14
+ const blocksHandler = async (payload, context) => {
15
+ const log = console.log;
16
+ log("RUNNING Export Blocks Combine Handler");
17
+ const {
18
+ pageBuilder
19
+ } = context;
20
+ const {
21
+ taskId,
22
+ identity
23
+ } = payload;
24
+ (0, _mockSecurity.mockSecurity)(identity, context);
25
+ try {
26
+ const task = await pageBuilder.importExportTask.getTask(taskId);
27
+ if (!task) {
28
+ return {
29
+ data: null,
30
+ error: {
31
+ message: `There is no task with ID "${taskId}".`
32
+ }
33
+ };
34
+ }
35
+ const {
36
+ exportBlocksDataKey
37
+ } = task.input;
38
+
39
+ // Get all files (zip) from given key
40
+ const listObjectResponse = await _s3Stream.s3Stream.listObject(exportBlocksDataKey);
41
+ if (!listObjectResponse.Contents) {
42
+ return {
43
+ data: null,
44
+ error: {
45
+ message: "There is no Contents defined on S3 Stream while combining blocks."
46
+ }
47
+ };
48
+ }
49
+ const zipFileKeys = listObjectResponse.Contents.filter(file => file.Key !== exportBlocksDataKey).map(file => file.Key).filter(Boolean);
50
+
51
+ // Prepare zip of all zips
52
+ const zipOfZip = new _zipper.ZipOfZip(zipFileKeys, "WEBINY_BLOCK_EXPORT.zip");
53
+
54
+ // Upload
55
+ const blockExportUpload = await zipOfZip.process();
56
+ log(`Done uploading... File is located at ${blockExportUpload.Location} `);
57
+
58
+ // Update task status and save export blocks data key
59
+ await pageBuilder.importExportTask.updateTask(taskId, {
60
+ status: _types.ImportExportTaskStatus.COMPLETED,
61
+ data: {
62
+ message: `Finish uploading block export.`,
63
+ key: blockExportUpload.Key,
64
+ url: await _s3Stream.s3Stream.getPresignedUrl(blockExportUpload.Key)
65
+ }
66
+ });
67
+
68
+ // Remove individual zip files from storage
69
+ const deleteFilePromises = zipFileKeys.map(key => _s3Stream.s3Stream.deleteObject(key));
70
+ await Promise.all(deleteFilePromises);
71
+ log(`Successfully deleted ${deleteFilePromises.length} zip files.`);
72
+ } catch (e) {
73
+ log("[EXPORT_BLOCKS_COMBINE] Error => ", e.message);
74
+
75
+ /**
76
+ * In case of error, we'll update the task status to "failed",
77
+ * so that, client can show notify the user appropriately.
78
+ */
79
+ await pageBuilder.importExportTask.updateTask(taskId, {
80
+ status: _types.ImportExportTaskStatus.FAILED,
81
+ error: {
82
+ name: e.name,
83
+ message: e.message,
84
+ code: "EXPORT_FAILED"
85
+ }
86
+ });
87
+ return {
88
+ data: null,
89
+ error: {
90
+ message: e.message
91
+ }
92
+ };
93
+ }
94
+ return {
95
+ data: "",
96
+ error: null
97
+ };
98
+ };
99
+ exports.blocksHandler = blocksHandler;
100
+
101
+ //# sourceMappingURL=blocksHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_types","require","_s3Stream","_zipper","_mockSecurity","blocksHandler","payload","context","log","console","pageBuilder","taskId","identity","mockSecurity","task","importExportTask","getTask","data","error","message","exportBlocksDataKey","input","listObjectResponse","s3Stream","listObject","Contents","zipFileKeys","filter","file","Key","map","Boolean","zipOfZip","ZipOfZip","blockExportUpload","process","Location","updateTask","status","ImportExportTaskStatus","COMPLETED","key","url","getPresignedUrl","deleteFilePromises","deleteObject","Promise","all","length","e","FAILED","name","code","exports"],"sources":["blocksHandler.ts"],"sourcesContent":["import type { PbImportExportContext } from \"~/types\";\nimport { ImportExportTaskStatus } from \"~/types\";\nimport { s3Stream } from \"../s3Stream\";\nimport { ZipOfZip } from \"../zipper\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport type { Payload, Response } from \"~/export/combine\";\n\n/**\n * Handles the export blocks combine workflow.\n */\nexport const blocksHandler = async (\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n\n log(\"RUNNING Export Blocks Combine Handler\");\n const { pageBuilder } = context;\n const { taskId, identity } = payload;\n\n mockSecurity(identity, context);\n\n try {\n const task = await pageBuilder.importExportTask.getTask(taskId);\n if (!task) {\n return {\n data: null,\n error: {\n message: `There is no task with ID \"${taskId}\".`\n }\n };\n }\n\n const { exportBlocksDataKey } = task.input;\n\n // Get all files (zip) from given key\n const listObjectResponse = await s3Stream.listObject(exportBlocksDataKey);\n if (!listObjectResponse.Contents) {\n return {\n data: null,\n error: {\n message: \"There is no Contents defined on S3 Stream while combining blocks.\"\n }\n };\n }\n\n const zipFileKeys = listObjectResponse.Contents.filter(\n file => file.Key !== exportBlocksDataKey\n )\n .map(file => file.Key)\n .filter(Boolean) as string[];\n\n // Prepare zip of all zips\n const zipOfZip = new ZipOfZip(zipFileKeys, \"WEBINY_BLOCK_EXPORT.zip\");\n\n // Upload\n const blockExportUpload = await zipOfZip.process();\n log(`Done uploading... File is located at ${blockExportUpload.Location} `);\n\n // Update task status and save export blocks data key\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: `Finish uploading block export.`,\n key: blockExportUpload.Key,\n url: await s3Stream.getPresignedUrl(blockExportUpload.Key)\n }\n });\n\n // Remove individual zip files from storage\n const deleteFilePromises = zipFileKeys.map(key => s3Stream.deleteObject(key));\n await Promise.all(deleteFilePromises);\n log(`Successfully deleted ${deleteFilePromises.length} zip files.`);\n } catch (e) {\n log(\"[EXPORT_BLOCKS_COMBINE] Error => \", e.message);\n\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: \"EXPORT_FAILED\"\n }\n });\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n }\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { PbImportExportContext } from "../../types";
2
+ import type { Payload, Response } from "./";
3
+ /**
4
+ * Handles the export forms combine workflow.
5
+ */
6
+ export declare const formsHandler: (payload: Payload, context: PbImportExportContext) => Promise<Response>;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formsHandler = void 0;
7
+ var _types = require("../../types");
8
+ var _s3Stream = require("../s3Stream");
9
+ var _zipper = require("../zipper");
10
+ var _mockSecurity = require("../../mockSecurity");
11
+ /**
12
+ * Handles the export forms combine workflow.
13
+ */
14
+ const formsHandler = async (payload, context) => {
15
+ const log = console.log;
16
+ log("RUNNING Export Forms Combine Handler");
17
+ const {
18
+ pageBuilder
19
+ } = context;
20
+ const {
21
+ taskId,
22
+ identity
23
+ } = payload;
24
+ (0, _mockSecurity.mockSecurity)(identity, context);
25
+ try {
26
+ const task = await pageBuilder.importExportTask.getTask(taskId);
27
+ if (!task) {
28
+ return {
29
+ data: null,
30
+ error: {
31
+ message: `There is no task with ID "${taskId}".`
32
+ }
33
+ };
34
+ }
35
+ const {
36
+ exportFormsDataKey
37
+ } = task.input;
38
+
39
+ // Get all files (zip) from given key
40
+ const listObjectResponse = await _s3Stream.s3Stream.listObject(exportFormsDataKey);
41
+ if (!listObjectResponse.Contents) {
42
+ return {
43
+ data: null,
44
+ error: {
45
+ message: "There is no Contents defined on S3 Stream while combining forms."
46
+ }
47
+ };
48
+ }
49
+ const zipFileKeys = listObjectResponse.Contents.filter(file => file.Key !== exportFormsDataKey).map(file => file.Key).filter(Boolean);
50
+
51
+ // Prepare zip of all zips
52
+ const zipOfZip = new _zipper.ZipOfZip(zipFileKeys, "WEBINY_FORM_EXPORT.zip");
53
+
54
+ // Upload
55
+ const formExportUpload = await zipOfZip.process();
56
+ log(`Done uploading... File is located at ${formExportUpload.Location} `);
57
+
58
+ // Update task status and save export form data key
59
+ await pageBuilder.importExportTask.updateTask(taskId, {
60
+ status: _types.ImportExportTaskStatus.COMPLETED,
61
+ data: {
62
+ message: `Finish uploading form export.`,
63
+ key: formExportUpload.Key,
64
+ url: await _s3Stream.s3Stream.getPresignedUrl(formExportUpload.Key)
65
+ }
66
+ });
67
+
68
+ // Remove individual zip files from storage
69
+ const deleteFilePromises = zipFileKeys.map(key => _s3Stream.s3Stream.deleteObject(key));
70
+ await Promise.all(deleteFilePromises);
71
+ log(`Successfully deleted ${deleteFilePromises.length} zip files.`);
72
+ } catch (e) {
73
+ log("[EXPORT_FORMS_COMBINE] Error => ", e.message);
74
+
75
+ /**
76
+ * In case of error, we'll update the task status to "failed",
77
+ * so that, client can show notify the user appropriately.
78
+ */
79
+ await pageBuilder.importExportTask.updateTask(taskId, {
80
+ status: _types.ImportExportTaskStatus.FAILED,
81
+ error: {
82
+ name: e.name,
83
+ message: e.message,
84
+ code: "EXPORT_FAILED"
85
+ }
86
+ });
87
+ return {
88
+ data: null,
89
+ error: {
90
+ message: e.message
91
+ }
92
+ };
93
+ }
94
+ return {
95
+ data: "",
96
+ error: null
97
+ };
98
+ };
99
+ exports.formsHandler = formsHandler;
100
+
101
+ //# sourceMappingURL=formsHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_types","require","_s3Stream","_zipper","_mockSecurity","formsHandler","payload","context","log","console","pageBuilder","taskId","identity","mockSecurity","task","importExportTask","getTask","data","error","message","exportFormsDataKey","input","listObjectResponse","s3Stream","listObject","Contents","zipFileKeys","filter","file","Key","map","Boolean","zipOfZip","ZipOfZip","formExportUpload","process","Location","updateTask","status","ImportExportTaskStatus","COMPLETED","key","url","getPresignedUrl","deleteFilePromises","deleteObject","Promise","all","length","e","FAILED","name","code","exports"],"sources":["formsHandler.ts"],"sourcesContent":["import type { PbImportExportContext } from \"~/types\";\nimport { ImportExportTaskStatus } from \"~/types\";\nimport { s3Stream } from \"../s3Stream\";\nimport { ZipOfZip } from \"../zipper\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport type { Payload, Response } from \"~/export/combine\";\n\n/**\n * Handles the export forms combine workflow.\n */\nexport const formsHandler = async (\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n\n log(\"RUNNING Export Forms Combine Handler\");\n const { pageBuilder } = context;\n const { taskId, identity } = payload;\n\n mockSecurity(identity, context);\n\n try {\n const task = await pageBuilder.importExportTask.getTask(taskId);\n if (!task) {\n return {\n data: null,\n error: {\n message: `There is no task with ID \"${taskId}\".`\n }\n };\n }\n\n const { exportFormsDataKey } = task.input;\n\n // Get all files (zip) from given key\n const listObjectResponse = await s3Stream.listObject(exportFormsDataKey);\n if (!listObjectResponse.Contents) {\n return {\n data: null,\n error: {\n message: \"There is no Contents defined on S3 Stream while combining forms.\"\n }\n };\n }\n\n const zipFileKeys = listObjectResponse.Contents.filter(\n file => file.Key !== exportFormsDataKey\n )\n .map(file => file.Key)\n .filter(Boolean) as string[];\n\n // Prepare zip of all zips\n const zipOfZip = new ZipOfZip(zipFileKeys, \"WEBINY_FORM_EXPORT.zip\");\n\n // Upload\n const formExportUpload = await zipOfZip.process();\n log(`Done uploading... File is located at ${formExportUpload.Location} `);\n\n // Update task status and save export form data key\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: `Finish uploading form export.`,\n key: formExportUpload.Key,\n url: await s3Stream.getPresignedUrl(formExportUpload.Key)\n }\n });\n\n // Remove individual zip files from storage\n const deleteFilePromises = zipFileKeys.map(key => s3Stream.deleteObject(key));\n await Promise.all(deleteFilePromises);\n log(`Successfully deleted ${deleteFilePromises.length} zip files.`);\n } catch (e) {\n log(\"[EXPORT_FORMS_COMBINE] Error => \", e.message);\n\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: \"EXPORT_FAILED\"\n }\n });\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n }\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAGA;AACA;AACA;AACO,MAAMI,YAAY,GAAG,MAAAA,CACxBC,OAAgB,EAChBC,OAA8B,KACV;EACpB,MAAMC,GAAG,GAAGC,OAAO,CAACD,GAAG;EAEvBA,GAAG,CAAC,sCAAsC,CAAC;EAC3C,MAAM;IAAEE;EAAY,CAAC,GAAGH,OAAO;EAC/B,MAAM;IAAEI,MAAM;IAAEC;EAAS,CAAC,GAAGN,OAAO;EAEpC,IAAAO,0BAAY,EAACD,QAAQ,EAAEL,OAAO,CAAC;EAE/B,IAAI;IACA,MAAMO,IAAI,GAAG,MAAMJ,WAAW,CAACK,gBAAgB,CAACC,OAAO,CAACL,MAAM,CAAC;IAC/D,IAAI,CAACG,IAAI,EAAE;MACP,OAAO;QACHG,IAAI,EAAE,IAAI;QACVC,KAAK,EAAE;UACHC,OAAO,EAAE,6BAA6BR,MAAM;QAChD;MACJ,CAAC;IACL;IAEA,MAAM;MAAES;IAAmB,CAAC,GAAGN,IAAI,CAACO,KAAK;;IAEzC;IACA,MAAMC,kBAAkB,GAAG,MAAMC,kBAAQ,CAACC,UAAU,CAACJ,kBAAkB,CAAC;IACxE,IAAI,CAACE,kBAAkB,CAACG,QAAQ,EAAE;MAC9B,OAAO;QACHR,IAAI,EAAE,IAAI;QACVC,KAAK,EAAE;UACHC,OAAO,EAAE;QACb;MACJ,CAAC;IACL;IAEA,MAAMO,WAAW,GAAGJ,kBAAkB,CAACG,QAAQ,CAACE,MAAM,CAClDC,IAAI,IAAIA,IAAI,CAACC,GAAG,KAAKT,kBACzB,CAAC,CACIU,GAAG,CAACF,IAAI,IAAIA,IAAI,CAACC,GAAG,CAAC,CACrBF,MAAM,CAACI,OAAO,CAAa;;IAEhC;IACA,MAAMC,QAAQ,GAAG,IAAIC,gBAAQ,CAACP,WAAW,EAAE,wBAAwB,CAAC;;IAEpE;IACA,MAAMQ,gBAAgB,GAAG,MAAMF,QAAQ,CAACG,OAAO,CAAC,CAAC;IACjD3B,GAAG,CAAC,wCAAwC0B,gBAAgB,CAACE,QAAQ,GAAG,CAAC;;IAEzE;IACA,MAAM1B,WAAW,CAACK,gBAAgB,CAACsB,UAAU,CAAC1B,MAAM,EAAE;MAClD2B,MAAM,EAAEC,6BAAsB,CAACC,SAAS;MACxCvB,IAAI,EAAE;QACFE,OAAO,EAAE,+BAA+B;QACxCsB,GAAG,EAAEP,gBAAgB,CAACL,GAAG;QACzBa,GAAG,EAAE,MAAMnB,kBAAQ,CAACoB,eAAe,CAACT,gBAAgB,CAACL,GAAG;MAC5D;IACJ,CAAC,CAAC;;IAEF;IACA,MAAMe,kBAAkB,GAAGlB,WAAW,CAACI,GAAG,CAACW,GAAG,IAAIlB,kBAAQ,CAACsB,YAAY,CAACJ,GAAG,CAAC,CAAC;IAC7E,MAAMK,OAAO,CAACC,GAAG,CAACH,kBAAkB,CAAC;IACrCpC,GAAG,CAAC,wBAAwBoC,kBAAkB,CAACI,MAAM,aAAa,CAAC;EACvE,CAAC,CAAC,OAAOC,CAAC,EAAE;IACRzC,GAAG,CAAC,kCAAkC,EAAEyC,CAAC,CAAC9B,OAAO,CAAC;;IAElD;AACR;AACA;AACA;IACQ,MAAMT,WAAW,CAACK,gBAAgB,CAACsB,UAAU,CAAC1B,MAAM,EAAE;MAClD2B,MAAM,EAAEC,6BAAsB,CAACW,MAAM;MACrChC,KAAK,EAAE;QACHiC,IAAI,EAAEF,CAAC,CAACE,IAAI;QACZhC,OAAO,EAAE8B,CAAC,CAAC9B,OAAO;QAClBiC,IAAI,EAAE;MACV;IACJ,CAAC,CAAC;IAEF,OAAO;MACHnC,IAAI,EAAE,IAAI;MACVC,KAAK,EAAE;QACHC,OAAO,EAAE8B,CAAC,CAAC9B;MACf;IACJ,CAAC;EACL;EACA,OAAO;IACHF,IAAI,EAAE,EAAE;IACRC,KAAK,EAAE;EACX,CAAC;AACL,CAAC;AAACmC,OAAA,CAAAhD,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import type { PbImportExportContext } from "../../types";
2
+ import type { SecurityIdentity } from "@webiny/api-security/types";
3
+ export interface Payload {
4
+ taskId: string;
5
+ type: string;
6
+ identity: SecurityIdentity;
7
+ }
8
+ export interface Response {
9
+ data: string | null;
10
+ error: Partial<Error> | null;
11
+ }
12
+ /**
13
+ * Handles the export pages combine workflow.
14
+ */
15
+ declare const _default: () => import("@webiny/handler-aws").RawEventHandler<Payload, PbImportExportContext, Response>;
16
+ export default _default;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _handlerAws = require("@webiny/handler-aws");
8
+ var _blocksHandler = require("./blocksHandler");
9
+ var _formsHandler = require("./formsHandler");
10
+ var _templatesHandler = require("./templatesHandler");
11
+ /**
12
+ * Handles the export pages combine workflow.
13
+ */
14
+ var _default = () => {
15
+ return (0, _handlerAws.createRawEventHandler)(async ({
16
+ payload,
17
+ context
18
+ }) => {
19
+ return context.security.withoutAuthorization(() => {
20
+ switch (payload.type) {
21
+ case "block":
22
+ {
23
+ return (0, _blocksHandler.blocksHandler)(payload, context);
24
+ }
25
+ case "form":
26
+ {
27
+ return (0, _formsHandler.formsHandler)(payload, context);
28
+ }
29
+ case "template":
30
+ {
31
+ return (0, _templatesHandler.templatesHandler)(payload, context);
32
+ }
33
+ default:
34
+ {
35
+ console.log("Export PB combine", JSON.stringify(payload));
36
+ throw new Error("Invalid type provided: pb combine.");
37
+ }
38
+ }
39
+ });
40
+ });
41
+ };
42
+ exports.default = _default;
43
+
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_handlerAws","require","_blocksHandler","_formsHandler","_templatesHandler","_default","createRawEventHandler","payload","context","security","withoutAuthorization","type","blocksHandler","formsHandler","templatesHandler","console","log","JSON","stringify","Error","exports","default"],"sources":["index.ts"],"sourcesContent":["import type { PbImportExportContext } from \"~/types\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createRawEventHandler } from \"@webiny/handler-aws\";\nimport { blocksHandler } from \"~/export/combine/blocksHandler\";\nimport { formsHandler } from \"~/export/combine/formsHandler\";\nimport { templatesHandler } from \"~/export/combine/templatesHandler\";\n\nexport interface Payload {\n taskId: string;\n type: string;\n identity: SecurityIdentity;\n}\n\nexport interface Response {\n data: string | null;\n error: Partial<Error> | null;\n}\n\n/**\n * Handles the export pages combine workflow.\n */\nexport default () => {\n return createRawEventHandler<Payload, PbImportExportContext, Response>(\n async ({ payload, context }) => {\n return context.security.withoutAuthorization(() => {\n switch (payload.type) {\n case \"block\": {\n return blocksHandler(payload, context);\n }\n case \"form\": {\n return formsHandler(payload, context);\n }\n case \"template\": {\n return templatesHandler(payload, context);\n }\n default: {\n console.log(\"Export PB combine\", JSON.stringify(payload));\n throw new Error(\"Invalid type provided: pb combine.\");\n }\n }\n });\n }\n );\n};\n"],"mappings":";;;;;;AAEA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAaA;AACA;AACA;AAFA,IAAAI,QAAA,GAGeA,CAAA,KAAM;EACjB,OAAO,IAAAC,iCAAqB,EACxB,OAAO;IAAEC,OAAO;IAAEC;EAAQ,CAAC,KAAK;IAC5B,OAAOA,OAAO,CAACC,QAAQ,CAACC,oBAAoB,CAAC,MAAM;MAC/C,QAAQH,OAAO,CAACI,IAAI;QAChB,KAAK,OAAO;UAAE;YACV,OAAO,IAAAC,4BAAa,EAACL,OAAO,EAAEC,OAAO,CAAC;UAC1C;QACA,KAAK,MAAM;UAAE;YACT,OAAO,IAAAK,0BAAY,EAACN,OAAO,EAAEC,OAAO,CAAC;UACzC;QACA,KAAK,UAAU;UAAE;YACb,OAAO,IAAAM,kCAAgB,EAACP,OAAO,EAAEC,OAAO,CAAC;UAC7C;QACA;UAAS;YACLO,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEC,IAAI,CAACC,SAAS,CAACX,OAAO,CAAC,CAAC;YACzD,MAAM,IAAIY,KAAK,CAAC,oCAAoC,CAAC;UACzD;MACJ;IACJ,CAAC,CAAC;EACN,CACJ,CAAC;AACL,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAhB,QAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { PbImportExportContext } from "../../types";
2
+ import type { Payload, Response } from "./";
3
+ /**
4
+ * Handles the export templates combine workflow.
5
+ */
6
+ export declare const templatesHandler: (payload: Payload, context: PbImportExportContext) => Promise<Response>;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.templatesHandler = void 0;
7
+ var _types = require("../../types");
8
+ var _s3Stream = require("../s3Stream");
9
+ var _zipper = require("../zipper");
10
+ var _mockSecurity = require("../../mockSecurity");
11
+ /**
12
+ * Handles the export templates combine workflow.
13
+ */
14
+ const templatesHandler = async (payload, context) => {
15
+ const log = console.log;
16
+ log("RUNNING Export Templates Combine Handler");
17
+ const {
18
+ pageBuilder
19
+ } = context;
20
+ const {
21
+ taskId,
22
+ identity
23
+ } = payload;
24
+ (0, _mockSecurity.mockSecurity)(identity, context);
25
+ try {
26
+ const task = await pageBuilder.importExportTask.getTask(taskId);
27
+ if (!task) {
28
+ return {
29
+ data: null,
30
+ error: {
31
+ message: `There is no task with ID "${taskId}".`
32
+ }
33
+ };
34
+ }
35
+ const {
36
+ exportTemplatesDataKey
37
+ } = task.input;
38
+
39
+ // Get all files (zip) from given key
40
+ const listObjectResponse = await _s3Stream.s3Stream.listObject(exportTemplatesDataKey);
41
+ if (!listObjectResponse.Contents) {
42
+ return {
43
+ data: null,
44
+ error: {
45
+ message: "There is no Contents defined on S3 Stream while combining templates."
46
+ }
47
+ };
48
+ }
49
+ const zipFileKeys = listObjectResponse.Contents.filter(file => file.Key !== exportTemplatesDataKey).map(file => file.Key).filter(Boolean);
50
+
51
+ // Prepare zip of all zips
52
+ const zipOfZip = new _zipper.ZipOfZip(zipFileKeys, "WEBINY_TEMPLATE_EXPORT.zip");
53
+
54
+ // Upload
55
+ const templateExportUpload = await zipOfZip.process();
56
+ log(`Done uploading... File is located at ${templateExportUpload.Location} `);
57
+
58
+ // Update task status and save export templates data key
59
+ await pageBuilder.importExportTask.updateTask(taskId, {
60
+ status: _types.ImportExportTaskStatus.COMPLETED,
61
+ data: {
62
+ message: `Finish uploading template export.`,
63
+ key: templateExportUpload.Key,
64
+ url: await _s3Stream.s3Stream.getPresignedUrl(templateExportUpload.Key)
65
+ }
66
+ });
67
+
68
+ // Remove individual zip files from storage
69
+ const deleteFilePromises = zipFileKeys.map(key => _s3Stream.s3Stream.deleteObject(key));
70
+ await Promise.all(deleteFilePromises);
71
+ log(`Successfully deleted ${deleteFilePromises.length} zip files.`);
72
+ } catch (e) {
73
+ log("[EXPORT_TEMPLATES_COMBINE] Error => ", e.message);
74
+
75
+ /**
76
+ * In case of error, we'll update the task status to "failed",
77
+ * so that, client can show notify the user appropriately.
78
+ */
79
+ await pageBuilder.importExportTask.updateTask(taskId, {
80
+ status: _types.ImportExportTaskStatus.FAILED,
81
+ error: {
82
+ name: e.name,
83
+ message: e.message,
84
+ code: "EXPORT_FAILED"
85
+ }
86
+ });
87
+ return {
88
+ data: null,
89
+ error: {
90
+ message: e.message
91
+ }
92
+ };
93
+ }
94
+ return {
95
+ data: "",
96
+ error: null
97
+ };
98
+ };
99
+ exports.templatesHandler = templatesHandler;
100
+
101
+ //# sourceMappingURL=templatesHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_types","require","_s3Stream","_zipper","_mockSecurity","templatesHandler","payload","context","log","console","pageBuilder","taskId","identity","mockSecurity","task","importExportTask","getTask","data","error","message","exportTemplatesDataKey","input","listObjectResponse","s3Stream","listObject","Contents","zipFileKeys","filter","file","Key","map","Boolean","zipOfZip","ZipOfZip","templateExportUpload","process","Location","updateTask","status","ImportExportTaskStatus","COMPLETED","key","url","getPresignedUrl","deleteFilePromises","deleteObject","Promise","all","length","e","FAILED","name","code","exports"],"sources":["templatesHandler.ts"],"sourcesContent":["import type { PbImportExportContext } from \"~/types\";\nimport { ImportExportTaskStatus } from \"~/types\";\nimport { s3Stream } from \"../s3Stream\";\nimport { ZipOfZip } from \"../zipper\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport type { Payload, Response } from \"~/export/combine\";\n\n/**\n * Handles the export templates combine workflow.\n */\nexport const templatesHandler = async (\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n\n log(\"RUNNING Export Templates Combine Handler\");\n const { pageBuilder } = context;\n const { taskId, identity } = payload;\n\n mockSecurity(identity, context);\n\n try {\n const task = await pageBuilder.importExportTask.getTask(taskId);\n if (!task) {\n return {\n data: null,\n error: {\n message: `There is no task with ID \"${taskId}\".`\n }\n };\n }\n\n const { exportTemplatesDataKey } = task.input;\n\n // Get all files (zip) from given key\n const listObjectResponse = await s3Stream.listObject(exportTemplatesDataKey);\n if (!listObjectResponse.Contents) {\n return {\n data: null,\n error: {\n message: \"There is no Contents defined on S3 Stream while combining templates.\"\n }\n };\n }\n\n const zipFileKeys = listObjectResponse.Contents.filter(\n file => file.Key !== exportTemplatesDataKey\n )\n .map(file => file.Key)\n .filter(Boolean) as string[];\n\n // Prepare zip of all zips\n const zipOfZip = new ZipOfZip(zipFileKeys, \"WEBINY_TEMPLATE_EXPORT.zip\");\n\n // Upload\n const templateExportUpload = await zipOfZip.process();\n log(`Done uploading... File is located at ${templateExportUpload.Location} `);\n\n // Update task status and save export templates data key\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: `Finish uploading template export.`,\n key: templateExportUpload.Key,\n url: await s3Stream.getPresignedUrl(templateExportUpload.Key)\n }\n });\n\n // Remove individual zip files from storage\n const deleteFilePromises = zipFileKeys.map(key => s3Stream.deleteObject(key));\n await Promise.all(deleteFilePromises);\n log(`Successfully deleted ${deleteFilePromises.length} zip files.`);\n } catch (e) {\n log(\"[EXPORT_TEMPLATES_COMBINE] Error => \", e.message);\n\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: \"EXPORT_FAILED\"\n }\n });\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n }\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { IExportPagesCleanupTaskParams } from "./types";
2
+ import type { ITaskResponseResult } from "@webiny/tasks";
3
+ export declare class ExportPagesCleanup {
4
+ execute(params: IExportPagesCleanupTaskParams): Promise<ITaskResponseResult>;
5
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ExportPagesCleanup = void 0;
8
+ var _types = require("./types");
9
+ var _clientS = require("@webiny/aws-sdk/client-s3");
10
+ var _chunk = _interopRequireDefault(require("lodash/chunk"));
11
+ class ExportPagesCleanup {
12
+ async execute(params) {
13
+ const {
14
+ context,
15
+ response,
16
+ store
17
+ } = params;
18
+ /**
19
+ * This task must have a parent one. If it does not, just end with error.
20
+ * This should not happen as we trigger this task from a parent one, not directly.
21
+ *
22
+ * But let's just make sure.
23
+ */
24
+ const task = store.getTask();
25
+ if (!task.parentId) {
26
+ return response.error(`Missing task "${task.id}" parent id.`);
27
+ }
28
+ const parent = await context.tasks.getTask(task.parentId);
29
+ if (!parent) {
30
+ return response.error(`Missing parent task "${task.parentId}" in the database.`);
31
+ }
32
+ /**
33
+ * We need to find all the tasks that created zip files, so we can have a list of files to delete.
34
+ */
35
+ const {
36
+ items: subTasks
37
+ } = await context.tasks.listTasks({
38
+ where: {
39
+ parentId: parent.id,
40
+ definitionId: _types.PageExportTask.ZipPages
41
+ },
42
+ limit: 10000
43
+ });
44
+ if (subTasks.length === 0) {
45
+ return response.done("No subtasks found - nothing to cleanup.");
46
+ }
47
+ const files = subTasks.reduce((collection, subTask) => {
48
+ const done = subTask.output?.done;
49
+ if (!done) {
50
+ return collection;
51
+ }
52
+ const results = Object.values(done).filter(Boolean);
53
+ collection.push(...results);
54
+ return collection;
55
+ }, []);
56
+ const s3 = (0, _clientS.createS3)({
57
+ region: process.env.AWS_REGION
58
+ });
59
+ const parentKey = parent.output?.key;
60
+ if (typeof parentKey === "string") {
61
+ await s3.deleteObject({
62
+ Bucket: process.env.S3_BUCKET,
63
+ Key: parentKey
64
+ });
65
+ }
66
+ const chunks = (0, _chunk.default)(files, 500);
67
+ for (const chunk of chunks) {
68
+ await s3.deleteObjects({
69
+ Bucket: process.env.S3_BUCKET,
70
+ Delete: {
71
+ Objects: chunk.map(Key => ({
72
+ Key
73
+ }))
74
+ }
75
+ });
76
+ }
77
+ return response.done("Done with cleanup!");
78
+ }
79
+ }
80
+ exports.ExportPagesCleanup = ExportPagesCleanup;
81
+
82
+ //# sourceMappingURL=ExportPagesCleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_types","require","_clientS","_chunk","_interopRequireDefault","ExportPagesCleanup","execute","params","context","response","store","task","getTask","parentId","error","id","parent","tasks","items","subTasks","listTasks","where","definitionId","PageExportTask","ZipPages","limit","length","done","files","reduce","collection","subTask","output","results","Object","values","filter","Boolean","push","s3","createS3","region","process","env","AWS_REGION","parentKey","key","deleteObject","Bucket","S3_BUCKET","Key","chunks","lodashChunk","chunk","deleteObjects","Delete","Objects","map","exports"],"sources":["ExportPagesCleanup.ts"],"sourcesContent":["import type {\n IExportPagesCleanupTaskParams,\n IExportPagesControllerOutput,\n IExportPagesZipPagesOutput\n} from \"~/export/pages/types\";\nimport { PageExportTask } from \"~/export/pages/types\";\nimport type { ITaskResponseResult } from \"@webiny/tasks\";\nimport { createS3 } from \"@webiny/aws-sdk/client-s3\";\nimport lodashChunk from \"lodash/chunk\";\n\nexport class ExportPagesCleanup {\n public async execute(params: IExportPagesCleanupTaskParams): Promise<ITaskResponseResult> {\n const { context, response, store } = params;\n /**\n * This task must have a parent one. If it does not, just end with error.\n * This should not happen as we trigger this task from a parent one, not directly.\n *\n * But let's just make sure.\n */\n const task = store.getTask();\n if (!task.parentId) {\n return response.error(`Missing task \"${task.id}\" parent id.`);\n }\n\n const parent = await context.tasks.getTask<IExportPagesControllerOutput>(task.parentId);\n if (!parent) {\n return response.error(`Missing parent task \"${task.parentId}\" in the database.`);\n }\n /**\n * We need to find all the tasks that created zip files, so we can have a list of files to delete.\n */\n const { items: subTasks } = await context.tasks.listTasks<any, IExportPagesZipPagesOutput>({\n where: {\n parentId: parent.id,\n definitionId: PageExportTask.ZipPages\n },\n limit: 10000\n });\n if (subTasks.length === 0) {\n return response.done(\"No subtasks found - nothing to cleanup.\");\n }\n\n const files = subTasks.reduce<string[]>((collection, subTask) => {\n const done = subTask.output?.done;\n if (!done) {\n return collection;\n }\n const results = Object.values(done).filter(Boolean);\n collection.push(...results);\n return collection;\n }, []);\n\n const s3 = createS3({\n region: process.env.AWS_REGION\n });\n\n const parentKey = parent.output?.key;\n if (typeof parentKey === \"string\") {\n await s3.deleteObject({\n Bucket: process.env.S3_BUCKET,\n Key: parentKey\n });\n }\n\n const chunks = lodashChunk(files, 500);\n\n for (const chunk of chunks) {\n await s3.deleteObjects({\n Bucket: process.env.S3_BUCKET,\n Delete: {\n Objects: chunk.map(Key => ({ Key }))\n }\n });\n }\n\n return response.done(\"Done with cleanup!\");\n }\n}\n"],"mappings":";;;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEO,MAAMI,kBAAkB,CAAC;EAC5B,MAAaC,OAAOA,CAACC,MAAqC,EAAgC;IACtF,MAAM;MAAEC,OAAO;MAAEC,QAAQ;MAAEC;IAAM,CAAC,GAAGH,MAAM;IAC3C;AACR;AACA;AACA;AACA;AACA;IACQ,MAAMI,IAAI,GAAGD,KAAK,CAACE,OAAO,CAAC,CAAC;IAC5B,IAAI,CAACD,IAAI,CAACE,QAAQ,EAAE;MAChB,OAAOJ,QAAQ,CAACK,KAAK,CAAC,iBAAiBH,IAAI,CAACI,EAAE,cAAc,CAAC;IACjE;IAEA,MAAMC,MAAM,GAAG,MAAMR,OAAO,CAACS,KAAK,CAACL,OAAO,CAA+BD,IAAI,CAACE,QAAQ,CAAC;IACvF,IAAI,CAACG,MAAM,EAAE;MACT,OAAOP,QAAQ,CAACK,KAAK,CAAC,wBAAwBH,IAAI,CAACE,QAAQ,oBAAoB,CAAC;IACpF;IACA;AACR;AACA;IACQ,MAAM;MAAEK,KAAK,EAAEC;IAAS,CAAC,GAAG,MAAMX,OAAO,CAACS,KAAK,CAACG,SAAS,CAAkC;MACvFC,KAAK,EAAE;QACHR,QAAQ,EAAEG,MAAM,CAACD,EAAE;QACnBO,YAAY,EAAEC,qBAAc,CAACC;MACjC,CAAC;MACDC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,IAAIN,QAAQ,CAACO,MAAM,KAAK,CAAC,EAAE;MACvB,OAAOjB,QAAQ,CAACkB,IAAI,CAAC,yCAAyC,CAAC;IACnE;IAEA,MAAMC,KAAK,GAAGT,QAAQ,CAACU,MAAM,CAAW,CAACC,UAAU,EAAEC,OAAO,KAAK;MAC7D,MAAMJ,IAAI,GAAGI,OAAO,CAACC,MAAM,EAAEL,IAAI;MACjC,IAAI,CAACA,IAAI,EAAE;QACP,OAAOG,UAAU;MACrB;MACA,MAAMG,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACR,IAAI,CAAC,CAACS,MAAM,CAACC,OAAO,CAAC;MACnDP,UAAU,CAACQ,IAAI,CAAC,GAAGL,OAAO,CAAC;MAC3B,OAAOH,UAAU;IACrB,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMS,EAAE,GAAG,IAAAC,iBAAQ,EAAC;MAChBC,MAAM,EAAEC,OAAO,CAACC,GAAG,CAACC;IACxB,CAAC,CAAC;IAEF,MAAMC,SAAS,GAAG7B,MAAM,CAACgB,MAAM,EAAEc,GAAG;IACpC,IAAI,OAAOD,SAAS,KAAK,QAAQ,EAAE;MAC/B,MAAMN,EAAE,CAACQ,YAAY,CAAC;QAClBC,MAAM,EAAEN,OAAO,CAACC,GAAG,CAACM,SAAS;QAC7BC,GAAG,EAAEL;MACT,CAAC,CAAC;IACN;IAEA,MAAMM,MAAM,GAAG,IAAAC,cAAW,EAACxB,KAAK,EAAE,GAAG,CAAC;IAEtC,KAAK,MAAMyB,KAAK,IAAIF,MAAM,EAAE;MACxB,MAAMZ,EAAE,CAACe,aAAa,CAAC;QACnBN,MAAM,EAAEN,OAAO,CAACC,GAAG,CAACM,SAAS;QAC7BM,MAAM,EAAE;UACJC,OAAO,EAAEH,KAAK,CAACI,GAAG,CAACP,GAAG,KAAK;YAAEA;UAAI,CAAC,CAAC;QACvC;MACJ,CAAC,CAAC;IACN;IAEA,OAAOzC,QAAQ,CAACkB,IAAI,CAAC,oBAAoB,CAAC;EAC9C;AACJ;AAAC+B,OAAA,CAAArD,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { IExportPagesControllerTaskParams } from "./types";
2
+ import type { ITaskResponseResult } from "@webiny/tasks";
3
+ export declare class ExportPagesController {
4
+ execute(params: IExportPagesControllerTaskParams): Promise<ITaskResponseResult>;
5
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ExportPagesController = void 0;
7
+ var _ProcessZipPagesTasks = require("./controller/ProcessZipPagesTasks");
8
+ var _CreateZipPagesTasks = require("./controller/CreateZipPagesTasks");
9
+ class ExportPagesController {
10
+ async execute(params) {
11
+ const {
12
+ input
13
+ } = params;
14
+ /**
15
+ * In case subtasks for zipping pages are already created, we need to wait for them to finish.
16
+ * After they are done, we can combine all zip files into a single one.
17
+ */
18
+ if (input.zippingPages) {
19
+ const processZipPagesTasks = new _ProcessZipPagesTasks.ProcessZipPagesTasks();
20
+ return await processZipPagesTasks.execute(params);
21
+ }
22
+ /**
23
+ * On the first run of the task, we need to create subtasks for zipping pages in batches.
24
+ */
25
+ const createZipPagesTasks = new _CreateZipPagesTasks.CreateZipPagesTasks();
26
+ return await createZipPagesTasks.execute(params);
27
+ }
28
+ }
29
+ exports.ExportPagesController = ExportPagesController;
30
+
31
+ //# sourceMappingURL=ExportPagesController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ProcessZipPagesTasks","require","_CreateZipPagesTasks","ExportPagesController","execute","params","input","zippingPages","processZipPagesTasks","ProcessZipPagesTasks","createZipPagesTasks","CreateZipPagesTasks","exports"],"sources":["ExportPagesController.ts"],"sourcesContent":["import type { IExportPagesControllerTaskParams } from \"./types\";\nimport type { ITaskResponseResult } from \"@webiny/tasks\";\nimport { ProcessZipPagesTasks } from \"./controller/ProcessZipPagesTasks\";\nimport { CreateZipPagesTasks } from \"./controller/CreateZipPagesTasks\";\n\nexport class ExportPagesController {\n public async execute(params: IExportPagesControllerTaskParams): Promise<ITaskResponseResult> {\n const { input } = params;\n /**\n * In case subtasks for zipping pages are already created, we need to wait for them to finish.\n * After they are done, we can combine all zip files into a single one.\n */\n if (input.zippingPages) {\n const processZipPagesTasks = new ProcessZipPagesTasks();\n return await processZipPagesTasks.execute(params);\n }\n /**\n * On the first run of the task, we need to create subtasks for zipping pages in batches.\n */\n const createZipPagesTasks = new CreateZipPagesTasks();\n return await createZipPagesTasks.execute(params);\n }\n}\n"],"mappings":";;;;;;AAEA,IAAAA,qBAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEO,MAAME,qBAAqB,CAAC;EAC/B,MAAaC,OAAOA,CAACC,MAAwC,EAAgC;IACzF,MAAM;MAAEC;IAAM,CAAC,GAAGD,MAAM;IACxB;AACR;AACA;AACA;IACQ,IAAIC,KAAK,CAACC,YAAY,EAAE;MACpB,MAAMC,oBAAoB,GAAG,IAAIC,0CAAoB,CAAC,CAAC;MACvD,OAAO,MAAMD,oBAAoB,CAACJ,OAAO,CAACC,MAAM,CAAC;IACrD;IACA;AACR;AACA;IACQ,MAAMK,mBAAmB,GAAG,IAAIC,wCAAmB,CAAC,CAAC;IACrD,OAAO,MAAMD,mBAAmB,CAACN,OAAO,CAACC,MAAM,CAAC;EACpD;AACJ;AAACO,OAAA,CAAAT,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { IExportPagesZipPagesTaskParams } from "./types";
2
+ import type { ITaskResponseResult } from "@webiny/tasks";
3
+ export declare class ExportPagesZipPages {
4
+ execute(params: IExportPagesZipPagesTaskParams): Promise<ITaskResponseResult>;
5
+ }