@webiny/api-page-builder-import-export 0.0.0-unstable.97a151f74d → 0.0.0-unstable.98511f29f1

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 (198) hide show
  1. package/client.d.ts +2 -2
  2. package/client.js +2 -6
  3. package/client.js.map +1 -1
  4. package/export/combine/blocksHandler.d.ts +6 -0
  5. package/export/combine/blocksHandler.js +99 -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 +99 -0
  9. package/export/combine/formsHandler.js.map +1 -0
  10. package/{exportPages → export}/combine/index.d.ts +3 -2
  11. package/export/combine/index.js +42 -0
  12. package/export/combine/index.js.map +1 -0
  13. package/export/combine/pagesHandler.d.ts +6 -0
  14. package/export/combine/pagesHandler.js +99 -0
  15. package/export/combine/pagesHandler.js.map +1 -0
  16. package/export/combine/templatesHandler.d.ts +6 -0
  17. package/export/combine/templatesHandler.js +99 -0
  18. package/export/combine/templatesHandler.js.map +1 -0
  19. package/export/process/blocksHandler.d.ts +6 -0
  20. package/export/process/blocksHandler.js +167 -0
  21. package/export/process/blocksHandler.js.map +1 -0
  22. package/export/process/exporters/BlockExporter.d.ts +13 -0
  23. package/export/process/exporters/BlockExporter.js +81 -0
  24. package/export/process/exporters/BlockExporter.js.map +1 -0
  25. package/export/process/exporters/FormExporter.d.ts +9 -0
  26. package/export/process/exporters/FormExporter.js +34 -0
  27. package/export/process/exporters/FormExporter.js.map +1 -0
  28. package/export/process/exporters/PageExporter.d.ts +11 -0
  29. package/export/process/exporters/PageExporter.js +58 -0
  30. package/export/process/exporters/PageExporter.js.map +1 -0
  31. package/export/process/exporters/PageTemplateExporter.d.ts +11 -0
  32. package/export/process/exporters/PageTemplateExporter.js +56 -0
  33. package/export/process/exporters/PageTemplateExporter.js.map +1 -0
  34. package/export/process/formsHandler.d.ts +6 -0
  35. package/export/process/formsHandler.js +187 -0
  36. package/export/process/formsHandler.js.map +1 -0
  37. package/{exportPages → export}/process/index.d.ts +4 -6
  38. package/export/process/index.js +39 -0
  39. package/export/process/index.js.map +1 -0
  40. package/export/process/pagesHandler.d.ts +6 -0
  41. package/export/process/pagesHandler.js +189 -0
  42. package/export/process/pagesHandler.js.map +1 -0
  43. package/export/process/templatesHandler.d.ts +6 -0
  44. package/export/process/templatesHandler.js +166 -0
  45. package/export/process/templatesHandler.js.map +1 -0
  46. package/{exportPages → export}/s3Stream.d.ts +5 -2
  47. package/{exportPages → export}/s3Stream.js +1 -20
  48. package/export/s3Stream.js.map +1 -0
  49. package/export/utils.d.ts +2 -0
  50. package/export/utils.js +35 -0
  51. package/export/utils.js.map +1 -0
  52. package/{exportPages → export}/zipper.d.ts +6 -5
  53. package/{exportPages → export}/zipper.js +38 -49
  54. package/export/zipper.js.map +1 -0
  55. package/graphql/crud/blocks.crud.d.ts +4 -0
  56. package/graphql/crud/blocks.crud.js +130 -0
  57. package/graphql/crud/blocks.crud.js.map +1 -0
  58. package/graphql/crud/forms.crud.d.ts +4 -0
  59. package/graphql/crud/forms.crud.js +134 -0
  60. package/graphql/crud/forms.crud.js.map +1 -0
  61. package/graphql/crud/importExportTasks.crud.d.ts +5 -0
  62. package/graphql/crud/{pageImportExportTasks.crud.js → importExportTasks.crud.js} +92 -139
  63. package/graphql/crud/importExportTasks.crud.js.map +1 -0
  64. package/graphql/crud/pages.crud.d.ts +3 -2
  65. package/graphql/crud/pages.crud.js +50 -59
  66. package/graphql/crud/pages.crud.js.map +1 -1
  67. package/graphql/crud/templates.crud.d.ts +4 -0
  68. package/graphql/crud/templates.crud.js +128 -0
  69. package/graphql/crud/templates.crud.js.map +1 -0
  70. package/graphql/crud.d.ts +2 -2
  71. package/graphql/crud.js +5 -7
  72. package/graphql/crud.js.map +1 -1
  73. package/graphql/graphql/blocks.gql.d.ts +4 -0
  74. package/graphql/graphql/blocks.gql.js +52 -0
  75. package/graphql/graphql/blocks.gql.js.map +1 -0
  76. package/graphql/graphql/forms.gql.d.ts +4 -0
  77. package/graphql/graphql/forms.gql.js +60 -0
  78. package/graphql/graphql/forms.gql.js.map +1 -0
  79. package/graphql/graphql/importExportTasks.gql.d.ts +4 -0
  80. package/graphql/graphql/{pageImportExportTasks.gql.js → importExportTasks.gql.js} +18 -23
  81. package/graphql/graphql/importExportTasks.gql.js.map +1 -0
  82. package/graphql/graphql/pages.gql.d.ts +2 -2
  83. package/graphql/graphql/pages.gql.js +4 -15
  84. package/graphql/graphql/pages.gql.js.map +1 -1
  85. package/graphql/graphql/templates.gql.d.ts +4 -0
  86. package/graphql/graphql/templates.gql.js +52 -0
  87. package/graphql/graphql/templates.gql.js.map +1 -0
  88. package/graphql/graphql/utils/resolve.d.ts +1 -1
  89. package/graphql/graphql/utils/resolve.js +0 -3
  90. package/graphql/graphql/utils/resolve.js.map +1 -1
  91. package/graphql/graphql.js +5 -6
  92. package/graphql/graphql.js.map +1 -1
  93. package/graphql/index.d.ts +2 -2
  94. package/graphql/index.js +0 -5
  95. package/graphql/index.js.map +1 -1
  96. package/graphql/types.d.ts +82 -23
  97. package/graphql/types.js.map +1 -1
  98. package/import/constants.d.ts +3 -0
  99. package/import/constants.js +14 -0
  100. package/import/constants.js.map +1 -0
  101. package/import/create/blocksHandler.d.ts +3 -0
  102. package/import/create/blocksHandler.js +99 -0
  103. package/import/create/blocksHandler.js.map +1 -0
  104. package/import/create/formsHandler.d.ts +3 -0
  105. package/import/create/formsHandler.js +103 -0
  106. package/import/create/formsHandler.js.map +1 -0
  107. package/{importPages → import}/create/index.d.ts +7 -5
  108. package/import/create/index.js +42 -0
  109. package/import/create/index.js.map +1 -0
  110. package/import/create/pagesHandler.d.ts +3 -0
  111. package/import/create/pagesHandler.js +103 -0
  112. package/import/create/pagesHandler.js.map +1 -0
  113. package/import/create/templatesHandler.d.ts +3 -0
  114. package/import/create/templatesHandler.js +99 -0
  115. package/import/create/templatesHandler.js.map +1 -0
  116. package/import/process/blocks/blocksHandler.d.ts +3 -0
  117. package/import/process/blocks/blocksHandler.js +168 -0
  118. package/import/process/blocks/blocksHandler.js.map +1 -0
  119. package/import/process/blocks/importBlock.d.ts +11 -0
  120. package/import/process/blocks/importBlock.js +106 -0
  121. package/import/process/blocks/importBlock.js.map +1 -0
  122. package/import/process/forms/formsHandler.d.ts +3 -0
  123. package/import/process/forms/formsHandler.js +176 -0
  124. package/import/process/forms/formsHandler.js.map +1 -0
  125. package/import/process/forms/importForm.d.ts +9 -0
  126. package/import/process/forms/importForm.js +43 -0
  127. package/import/process/forms/importForm.js.map +1 -0
  128. package/{importPages → import}/process/index.d.ts +5 -3
  129. package/import/process/index.js +39 -0
  130. package/import/process/index.js.map +1 -0
  131. package/import/process/pages/importPage.d.ts +11 -0
  132. package/import/process/pages/importPage.js +92 -0
  133. package/import/process/pages/importPage.js.map +1 -0
  134. package/import/process/pages/pagesHandler.d.ts +3 -0
  135. package/import/process/pages/pagesHandler.js +183 -0
  136. package/import/process/pages/pagesHandler.js.map +1 -0
  137. package/import/process/templates/importTemplate.d.ts +11 -0
  138. package/import/process/templates/importTemplate.js +66 -0
  139. package/import/process/templates/importTemplate.js.map +1 -0
  140. package/import/process/templates/templatesHandler.d.ts +3 -0
  141. package/import/process/templates/templatesHandler.js +170 -0
  142. package/import/process/templates/templatesHandler.js.map +1 -0
  143. package/import/utils/deleteS3Folder.d.ts +1 -0
  144. package/import/utils/deleteS3Folder.js +19 -0
  145. package/import/utils/deleteS3Folder.js.map +1 -0
  146. package/import/utils/extractAndUploadZipFileContents.d.ts +7 -0
  147. package/import/utils/extractAndUploadZipFileContents.js +122 -0
  148. package/import/utils/extractAndUploadZipFileContents.js.map +1 -0
  149. package/import/utils/extractZipAndUploadToS3.d.ts +2 -0
  150. package/import/utils/extractZipAndUploadToS3.js +98 -0
  151. package/import/utils/extractZipAndUploadToS3.js.map +1 -0
  152. package/import/utils/getFileNameWithoutExt.d.ts +1 -0
  153. package/import/utils/getFileNameWithoutExt.js +11 -0
  154. package/import/utils/getFileNameWithoutExt.js.map +1 -0
  155. package/import/utils/index.d.ts +9 -0
  156. package/import/utils/index.js +104 -0
  157. package/import/utils/index.js.map +1 -0
  158. package/import/utils/initialStats.d.ts +7 -0
  159. package/import/utils/initialStats.js +16 -0
  160. package/import/utils/initialStats.js.map +1 -0
  161. package/import/utils/prepareDataDirMap.d.ts +6 -0
  162. package/import/utils/prepareDataDirMap.js +29 -0
  163. package/import/utils/prepareDataDirMap.js.map +1 -0
  164. package/import/utils/updateFilesInData.d.ts +8 -0
  165. package/import/utils/updateFilesInData.js +49 -0
  166. package/import/utils/updateFilesInData.js.map +1 -0
  167. package/import/utils/uploadAssets.d.ts +10 -0
  168. package/import/utils/uploadAssets.js +87 -0
  169. package/import/utils/uploadAssets.js.map +1 -0
  170. package/import/utils/uploadFilesFromS3.d.ts +3 -0
  171. package/import/utils/uploadFilesFromS3.js +19 -0
  172. package/import/utils/uploadFilesFromS3.js.map +1 -0
  173. package/mockSecurity.js +0 -3
  174. package/mockSecurity.js.map +1 -1
  175. package/package.json +34 -37
  176. package/types.d.ts +83 -65
  177. package/types.js +69 -22
  178. package/types.js.map +1 -1
  179. package/exportPages/combine/index.js +0 -114
  180. package/exportPages/combine/index.js.map +0 -1
  181. package/exportPages/process/index.js +0 -208
  182. package/exportPages/process/index.js.map +0 -1
  183. package/exportPages/s3Stream.js.map +0 -1
  184. package/exportPages/utils.d.ts +0 -13
  185. package/exportPages/utils.js +0 -113
  186. package/exportPages/utils.js.map +0 -1
  187. package/exportPages/zipper.js.map +0 -1
  188. package/graphql/crud/pageImportExportTasks.crud.d.ts +0 -5
  189. package/graphql/crud/pageImportExportTasks.crud.js.map +0 -1
  190. package/graphql/graphql/pageImportExportTasks.gql.d.ts +0 -4
  191. package/graphql/graphql/pageImportExportTasks.gql.js.map +0 -1
  192. package/importPages/create/index.js +0 -118
  193. package/importPages/create/index.js.map +0 -1
  194. package/importPages/process/index.js +0 -185
  195. package/importPages/process/index.js.map +0 -1
  196. package/importPages/utils.d.ts +0 -50
  197. package/importPages/utils.js +0 -570
  198. package/importPages/utils.js.map +0 -1
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _api = require("@webiny/api");
10
+ var _types = require("../../types");
11
+ var _client = require("../../client");
12
+ var _utils = require("../../import/utils");
13
+ var _utils2 = require("@webiny/utils");
14
+ var _PageBlocksPermissions = require("@webiny/api-page-builder/graphql/crud/permissions/PageBlocksPermissions");
15
+ const EXPORT_BLOCKS_FOLDER_KEY = "WEBINY_PB_EXPORT_BLOCK";
16
+ const EXPORT_BLOCKS_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
17
+ const IMPORT_BLOCKS_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
18
+ var _default = new _api.ContextPlugin(context => {
19
+ const pageBlocksPermissions = new _PageBlocksPermissions.PageBlocksPermissions({
20
+ getPermissions: () => context.security.getPermissions("pb.block"),
21
+ getIdentity: context.security.getIdentity,
22
+ fullAccessPermissionName: "pb.*"
23
+ });
24
+ const importExportCrud = {
25
+ async importBlocks({
26
+ zipFileUrl
27
+ }) {
28
+ await pageBlocksPermissions.ensure({
29
+ rwd: "w"
30
+ });
31
+
32
+ // Create a task for import block
33
+ const task = await context.pageBuilder.importExportTask.createTask({
34
+ status: _types.ImportExportTaskStatus.PENDING,
35
+ input: {
36
+ zipFileUrl
37
+ }
38
+ });
39
+ /**
40
+ * Import Blocks
41
+ * ImportBlocks
42
+ * importBlocks
43
+ */
44
+ await (0, _client.invokeHandlerClient)({
45
+ context,
46
+ name: IMPORT_BLOCKS_CREATE_HANDLER,
47
+ payload: {
48
+ zipFileUrl,
49
+ task,
50
+ type: "block",
51
+ identity: context.security.getIdentity()
52
+ },
53
+ description: "Import Blocks - create"
54
+ });
55
+ return {
56
+ task
57
+ };
58
+ },
59
+ async exportBlocks({
60
+ ids: initialBlockIds,
61
+ where
62
+ }) {
63
+ await pageBlocksPermissions.ensure({
64
+ rwd: "w"
65
+ });
66
+ let blockIds = initialBlockIds || [];
67
+ // If no ids are provided then it means we want to export all blocks
68
+ if (!initialBlockIds || Array.isArray(initialBlockIds) && initialBlockIds.length === 0) {
69
+ const blocks = await context.pageBuilder.listPageBlocks({
70
+ where
71
+ });
72
+ // Save block ids
73
+ blockIds = blocks.map(block => block.id);
74
+ }
75
+ if (blockIds.length === 0) {
76
+ throw new _error.default("Cannot export blocks - no blocks found for provided inputs.", "EMPTY_EXPORT_NO_BLOCKS_FOUND");
77
+ }
78
+
79
+ // Create the main task for blocks export.
80
+ const task = await context.pageBuilder.importExportTask.createTask({
81
+ status: _types.ImportExportTaskStatus.PENDING
82
+ });
83
+ const exportBlocksDataKey = `${EXPORT_BLOCKS_FOLDER_KEY}/${task.id}`;
84
+ // For each block create a sub task and invoke the process handler.
85
+ for (let i = 0; i < blockIds.length; i++) {
86
+ const blockId = blockIds[i];
87
+ // Create sub task.
88
+ await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
89
+ status: _types.ImportExportTaskStatus.PENDING,
90
+ input: {
91
+ blockId,
92
+ exportBlocksDataKey
93
+ }
94
+ });
95
+ }
96
+ // Update main task status.
97
+ await context.pageBuilder.importExportTask.updateTask(task.id, {
98
+ status: _types.ImportExportTaskStatus.PROCESSING,
99
+ stats: (0, _utils.initialStats)(blockIds.length),
100
+ input: {
101
+ exportBlocksDataKey
102
+ }
103
+ });
104
+
105
+ /**
106
+ * Export Blocks
107
+ * ExportBlocks
108
+ * exportBlocks
109
+ */
110
+ // Invoke handler.
111
+ await (0, _client.invokeHandlerClient)({
112
+ context,
113
+ name: EXPORT_BLOCKS_PROCESS_HANDLER,
114
+ payload: {
115
+ taskId: task.id,
116
+ subTaskIndex: 1,
117
+ type: "block",
118
+ identity: context.security.getIdentity()
119
+ },
120
+ description: "Export blocks - process"
121
+ });
122
+ return {
123
+ task
124
+ };
125
+ }
126
+ };
127
+ // Modify context
128
+ context.pageBuilder.blocks = importExportCrud;
129
+ });
130
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_api","_types","_client","_utils","_utils2","_PageBlocksPermissions","EXPORT_BLOCKS_FOLDER_KEY","EXPORT_BLOCKS_PROCESS_HANDLER","process","env","EXPORT_PROCESS_HANDLER","IMPORT_BLOCKS_CREATE_HANDLER","IMPORT_CREATE_HANDLER","_default","ContextPlugin","context","pageBlocksPermissions","PageBlocksPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","importExportCrud","importBlocks","zipFileUrl","ensure","rwd","task","pageBuilder","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","invokeHandlerClient","name","payload","type","identity","description","exportBlocks","ids","initialBlockIds","where","blockIds","Array","isArray","length","blocks","listPageBlocks","map","block","id","WebinyError","exportBlocksDataKey","i","blockId","createSubTask","zeroPad","updateTask","PROCESSING","stats","initialStats","taskId","subTaskIndex","exports","default"],"sources":["blocks.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { ImportExportTaskStatus, BlocksImportExportCrud, PbImportExportContext } from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as CreateHandlerPayload } from \"~/import/create\";\nimport { initialStats } from \"~/import/utils\";\nimport { Payload as ExportBlocksProcessHandlerPayload } from \"~/export/process\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { PageBlocksPermissions } from \"@webiny/api-page-builder/graphql/crud/permissions/PageBlocksPermissions\";\n\nconst EXPORT_BLOCKS_FOLDER_KEY = \"WEBINY_PB_EXPORT_BLOCK\";\nconst EXPORT_BLOCKS_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER as string;\nconst IMPORT_BLOCKS_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER as string;\n\nexport default new ContextPlugin<PbImportExportContext>(context => {\n const pageBlocksPermissions = new PageBlocksPermissions({\n getPermissions: () => context.security.getPermissions(\"pb.block\"),\n getIdentity: context.security.getIdentity,\n fullAccessPermissionName: \"pb.*\"\n });\n\n const importExportCrud: BlocksImportExportCrud = {\n async importBlocks({ zipFileUrl }) {\n await pageBlocksPermissions.ensure({ rwd: \"w\" });\n\n // Create a task for import block\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING,\n input: {\n zipFileUrl\n }\n });\n /**\n * Import Blocks\n * ImportBlocks\n * importBlocks\n */\n await invokeHandlerClient<CreateHandlerPayload>({\n context,\n name: IMPORT_BLOCKS_CREATE_HANDLER,\n payload: {\n zipFileUrl,\n task,\n type: \"block\",\n identity: context.security.getIdentity()\n },\n description: \"Import Blocks - create\"\n });\n\n return {\n task\n };\n },\n\n async exportBlocks({ ids: initialBlockIds, where }) {\n await pageBlocksPermissions.ensure({ rwd: \"w\" });\n\n let blockIds: string[] = initialBlockIds || [];\n // If no ids are provided then it means we want to export all blocks\n if (\n !initialBlockIds ||\n (Array.isArray(initialBlockIds) && initialBlockIds.length === 0)\n ) {\n const blocks = await context.pageBuilder.listPageBlocks({ where });\n // Save block ids\n blockIds = blocks.map(block => block.id);\n }\n\n if (blockIds.length === 0) {\n throw new WebinyError(\n \"Cannot export blocks - no blocks found for provided inputs.\",\n \"EMPTY_EXPORT_NO_BLOCKS_FOUND\"\n );\n }\n\n // Create the main task for blocks export.\n const task = await context.pageBuilder.importExportTask.createTask({\n status: ImportExportTaskStatus.PENDING\n });\n const exportBlocksDataKey = `${EXPORT_BLOCKS_FOLDER_KEY}/${task.id}`;\n // For each block create a sub task and invoke the process handler.\n for (let i = 0; i < blockIds.length; i++) {\n const blockId = blockIds[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 blockId,\n exportBlocksDataKey\n }\n }\n );\n }\n // Update main task status.\n await context.pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(blockIds.length),\n input: {\n exportBlocksDataKey\n }\n });\n\n /**\n * Export Blocks\n * ExportBlocks\n * exportBlocks\n */\n // Invoke handler.\n await invokeHandlerClient<ExportBlocksProcessHandlerPayload>({\n context,\n name: EXPORT_BLOCKS_PROCESS_HANDLER,\n payload: {\n taskId: task.id,\n subTaskIndex: 1,\n type: \"block\",\n identity: context.security.getIdentity()\n },\n description: \"Export blocks - process\"\n });\n\n return { task };\n }\n };\n // Modify context\n context.pageBuilder.blocks = importExportCrud;\n});\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ContextPlugin } from "@webiny/api";
2
+ import { PbImportExportContext } from "../../types";
3
+ declare const _default: ContextPlugin<PbImportExportContext>;
4
+ export default _default;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _api = require("@webiny/api");
10
+ var _types = require("../../types");
11
+ var _client = require("../../client");
12
+ var _utils = require("../../import/utils");
13
+ var _utils2 = require("@webiny/utils");
14
+ var _FormsPermissions = require("@webiny/api-form-builder/plugins/crud/permissions/FormsPermissions");
15
+ const EXPORT_FORMS_FOLDER_KEY = "WEBINY_FB_EXPORT_FORM";
16
+ const EXPORT_FORMS_PROCESS_HANDLER = process.env.EXPORT_PROCESS_HANDLER;
17
+ const IMPORT_FORMS_CREATE_HANDLER = process.env.IMPORT_CREATE_HANDLER;
18
+ var _default = new _api.ContextPlugin(context => {
19
+ const formsPermissions = new _FormsPermissions.FormsPermissions({
20
+ getPermissions: () => context.security.getPermissions("fb.form"),
21
+ getIdentity: context.security.getIdentity,
22
+ fullAccessPermissionName: "pb.*"
23
+ });
24
+ context.waitFor("formBuilder", () => {
25
+ const importExportCrud = {
26
+ async importForms({
27
+ zipFileUrl
28
+ }) {
29
+ await formsPermissions.ensure({
30
+ rwd: "w"
31
+ });
32
+
33
+ // Create a task for import form
34
+ const task = await context.pageBuilder.importExportTask.createTask({
35
+ status: _types.ImportExportTaskStatus.PENDING,
36
+ input: {
37
+ zipFileUrl
38
+ }
39
+ });
40
+ /**
41
+ * Import Forms
42
+ * ImportForms
43
+ * importForms
44
+ */
45
+ await (0, _client.invokeHandlerClient)({
46
+ context,
47
+ name: IMPORT_FORMS_CREATE_HANDLER,
48
+ payload: {
49
+ zipFileUrl,
50
+ task,
51
+ type: "form",
52
+ identity: context.security.getIdentity()
53
+ },
54
+ description: "Import Forms - create"
55
+ });
56
+ return {
57
+ task
58
+ };
59
+ },
60
+ async exportForms({
61
+ ids: initialFormIds,
62
+ revisionType
63
+ }) {
64
+ await formsPermissions.ensure({
65
+ rwd: "w"
66
+ });
67
+ let formIds = initialFormIds || [];
68
+ // If no ids are provided then it means we want to export all forms
69
+ if (!initialFormIds || Array.isArray(initialFormIds) && initialFormIds.length === 0) {
70
+ formIds = [];
71
+ const forms = await context.formBuilder.listForms();
72
+
73
+ // Save form ids
74
+ forms.forEach(form => formIds.push(form.id));
75
+ }
76
+ if (formIds.length === 0) {
77
+ throw new _error.default("Cannot export forms - no forms found for provided inputs.", "EMPTY_EXPORT_NO_FORMS_FOUND");
78
+ }
79
+
80
+ // Create the main task for form export.
81
+ const task = await context.pageBuilder.importExportTask.createTask({
82
+ status: _types.ImportExportTaskStatus.PENDING
83
+ });
84
+ const exportFormsDataKey = `${EXPORT_FORMS_FOLDER_KEY}/${task.id}`;
85
+ // For each form create a sub task and invoke the process handler.
86
+ for (let i = 0; i < formIds.length; i++) {
87
+ const formId = formIds[i];
88
+ // Create sub task.
89
+ await context.pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
90
+ status: _types.ImportExportTaskStatus.PENDING,
91
+ input: {
92
+ formId,
93
+ exportFormsDataKey,
94
+ revisionType
95
+ }
96
+ });
97
+ }
98
+ // Update main task status.
99
+ await context.pageBuilder.importExportTask.updateTask(task.id, {
100
+ status: _types.ImportExportTaskStatus.PROCESSING,
101
+ stats: (0, _utils.initialStats)(formIds.length),
102
+ input: {
103
+ exportFormsDataKey,
104
+ revisionType
105
+ }
106
+ });
107
+
108
+ /**
109
+ * Export Forms
110
+ * ExportForms
111
+ * exportForms
112
+ */
113
+ // Invoke handler.
114
+ await (0, _client.invokeHandlerClient)({
115
+ context,
116
+ name: EXPORT_FORMS_PROCESS_HANDLER,
117
+ payload: {
118
+ taskId: task.id,
119
+ subTaskIndex: 1,
120
+ type: "form",
121
+ identity: context.security.getIdentity()
122
+ },
123
+ description: "Export forms - process"
124
+ });
125
+ return {
126
+ task
127
+ };
128
+ }
129
+ };
130
+ // Modify context
131
+ context.formBuilder.forms = importExportCrud;
132
+ });
133
+ });
134
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_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","ContextPlugin","context","formsPermissions","FormsPermissions","getPermissions","security","getIdentity","fullAccessPermissionName","waitFor","importExportCrud","importForms","zipFileUrl","ensure","rwd","task","pageBuilder","importExportTask","createTask","status","ImportExportTaskStatus","PENDING","input","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","exports","default"],"sources":["forms.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { ImportExportTaskStatus, FormsImportExportCrud, PbImportExportContext } from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as CreateHandlerPayload } from \"~/import/create\";\nimport { initialStats } from \"~/import/utils\";\nimport { 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 context.waitFor(\"formBuilder\", () => {\n const importExportCrud: FormsImportExportCrud = {\n async importForms({ zipFileUrl }) {\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 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\n return {\n task\n };\n },\n\n async exportForms({ ids: initialFormIds, revisionType }) {\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 // 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\n return { task };\n }\n };\n // Modify context\n context.formBuilder.forms = importExportCrud;\n });\n});\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ContextPlugin } from "@webiny/api";
2
+ import { ImportExportPluginsParams } from "../../types";
3
+ import { PbImportExportContext } from "../types";
4
+ declare const _default: ({ storageOperations }: ImportExportPluginsParams) => ContextPlugin<PbImportExportContext>;
5
+ export default _default;