@webiny/api-page-builder-import-export 5.37.8 → 5.38.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. package/client.js +3 -1
  2. package/export/combine/blocksHandler.js +3 -1
  3. package/export/combine/formsHandler.js +3 -1
  4. package/export/combine/index.js +3 -1
  5. package/export/combine/pagesHandler.js +3 -1
  6. package/export/combine/templatesHandler.js +3 -1
  7. package/export/process/blocksHandler.js +3 -1
  8. package/export/process/exporters/BlockExporter.d.ts +1 -2
  9. package/export/process/exporters/BlockExporter.js +4 -26
  10. package/export/process/exporters/BlockExporter.js.map +1 -1
  11. package/export/process/exporters/FormExporter.d.ts +1 -1
  12. package/export/process/exporters/FormExporter.js +4 -2
  13. package/export/process/exporters/FormExporter.js.map +1 -1
  14. package/export/process/exporters/PageExporter.js +3 -1
  15. package/export/process/exporters/PageTemplateExporter.js +3 -1
  16. package/export/process/formsHandler.js +3 -1
  17. package/export/process/index.js +3 -1
  18. package/export/process/pagesHandler.js +3 -1
  19. package/export/process/templatesHandler.js +3 -1
  20. package/export/s3Stream.js +3 -1
  21. package/export/utils.d.ts +23 -1
  22. package/export/utils.js +137 -1
  23. package/export/utils.js.map +1 -1
  24. package/export/zipper.js +3 -1
  25. package/graphql/crud/blocks.crud.js +37 -8
  26. package/graphql/crud/blocks.crud.js.map +1 -1
  27. package/graphql/crud/forms.crud.js +37 -8
  28. package/graphql/crud/forms.crud.js.map +1 -1
  29. package/graphql/crud/importExportTasks.crud.js +3 -1
  30. package/graphql/crud/pages.crud.js +42 -13
  31. package/graphql/crud/pages.crud.js.map +1 -1
  32. package/graphql/crud/templates.crud.js +36 -7
  33. package/graphql/crud/templates.crud.js.map +1 -1
  34. package/graphql/crud.js +3 -1
  35. package/graphql/graphql/blocks.gql.js +3 -1
  36. package/graphql/graphql/forms.gql.js +3 -1
  37. package/graphql/graphql/importExportTasks.gql.js +3 -1
  38. package/graphql/graphql/pages.gql.js +3 -1
  39. package/graphql/graphql/templates.gql.js +3 -1
  40. package/graphql/graphql/utils/resolve.d.ts +1 -1
  41. package/graphql/graphql/utils/resolve.js +3 -1
  42. package/graphql/graphql.js +3 -1
  43. package/graphql/index.js +3 -1
  44. package/graphql/types.d.ts +113 -0
  45. package/graphql/types.js +3 -1
  46. package/graphql/types.js.map +1 -1
  47. package/import/constants.js +3 -1
  48. package/import/create/blocksHandler.js +3 -1
  49. package/import/create/formsHandler.js +3 -1
  50. package/import/create/index.js +3 -1
  51. package/import/create/pagesHandler.js +3 -1
  52. package/import/create/templatesHandler.js +3 -1
  53. package/import/process/blocks/blocksHandler.js +4 -3
  54. package/import/process/blocks/blocksHandler.js.map +1 -1
  55. package/import/process/blocks/importBlock.d.ts +1 -1
  56. package/import/process/blocks/importBlock.js +2 -24
  57. package/import/process/blocks/importBlock.js.map +1 -1
  58. package/import/process/forms/formsHandler.js +4 -2
  59. package/import/process/forms/formsHandler.js.map +1 -1
  60. package/import/process/forms/importForm.js +3 -1
  61. package/import/process/index.js +3 -1
  62. package/import/process/pages/importPage.js +3 -1
  63. package/import/process/pages/pagesHandler.js +3 -1
  64. package/import/process/templates/importTemplate.js +3 -1
  65. package/import/process/templates/templatesHandler.js +3 -1
  66. package/import/utils/deleteS3Folder.js +3 -1
  67. package/import/utils/extractAndUploadZipFileContents.js +3 -1
  68. package/import/utils/extractZipAndUploadToS3.js +3 -1
  69. package/import/utils/getFileNameWithoutExt.js +3 -1
  70. package/import/utils/index.js +3 -1
  71. package/import/utils/initialStats.js +3 -1
  72. package/import/utils/prepareDataDirMap.js +3 -1
  73. package/import/utils/updateFilesInData.js +3 -1
  74. package/import/utils/uploadAssets.js +3 -1
  75. package/import/utils/uploadFilesFromS3.js +3 -1
  76. package/mockSecurity.js +3 -1
  77. package/package.json +21 -20
  78. package/types.js +3 -1
@@ -1,3 +1,4 @@
1
+ import { Topic } from "@webiny/pubsub/types";
1
2
  import { PbContext } from "@webiny/api-page-builder/types";
2
3
  import { FormBuilderContext } from "@webiny/api-form-builder/types";
3
4
  import { ExportRevisionType, ImportExportTask, ImportExportTaskStatus, ImportExportTaskStorageOperations, ImportExportTaskStorageOperationsListParams } from "../types";
@@ -23,6 +24,30 @@ export interface ImportPagesParams {
23
24
  zipFileUrl: string;
24
25
  meta?: Record<string, any>;
25
26
  }
27
+ /**
28
+ * @category Lifecycle events
29
+ */
30
+ export interface OnPagesBeforeExportTopicParams {
31
+ params: ExportPagesParams;
32
+ }
33
+ /**
34
+ * @category Lifecycle events
35
+ */
36
+ export interface OnPagesAfterExportTopicParams {
37
+ params: ExportPagesParams;
38
+ }
39
+ /**
40
+ * @category Lifecycle events
41
+ */
42
+ export interface OnPagesBeforeImportTopicParams {
43
+ params: ImportPagesParams;
44
+ }
45
+ /**
46
+ * @category Lifecycle events
47
+ */
48
+ export interface OnPagesAfterImportTopicParams {
49
+ params: ImportPagesParams;
50
+ }
26
51
  export declare type PagesImportExportCrud = {
27
52
  exportPages(params: ExportPagesParams): Promise<{
28
53
  task: ImportExportTask;
@@ -30,6 +55,10 @@ export declare type PagesImportExportCrud = {
30
55
  importPages(params: ImportPagesParams): Promise<{
31
56
  task: ImportExportTask;
32
57
  }>;
58
+ onPagesBeforeExport: Topic<OnPagesBeforeExportTopicParams>;
59
+ onPagesAfterExport: Topic<OnPagesAfterExportTopicParams>;
60
+ onPagesBeforeImport: Topic<OnPagesBeforeImportTopicParams>;
61
+ onPagesAfterImport: Topic<OnPagesAfterImportTopicParams>;
33
62
  };
34
63
  export interface ExportBlocksParams {
35
64
  ids?: string[];
@@ -41,6 +70,30 @@ export interface ExportBlocksParams {
41
70
  export interface ImportBlocksParams {
42
71
  zipFileUrl: string;
43
72
  }
73
+ /**
74
+ * @category Lifecycle events
75
+ */
76
+ export interface OnBlocksBeforeExportTopicParams {
77
+ params: ExportBlocksParams;
78
+ }
79
+ /**
80
+ * @category Lifecycle events
81
+ */
82
+ export interface OnBlocksAfterExportTopicParams {
83
+ params: ExportBlocksParams;
84
+ }
85
+ /**
86
+ * @category Lifecycle events
87
+ */
88
+ export interface OnBlocksBeforeImportTopicParams {
89
+ params: ImportBlocksParams;
90
+ }
91
+ /**
92
+ * @category Lifecycle events
93
+ */
94
+ export interface OnBlocksAfterImportTopicParams {
95
+ params: ImportBlocksParams;
96
+ }
44
97
  export declare type BlocksImportExportCrud = {
45
98
  exportBlocks(params: ExportBlocksParams): Promise<{
46
99
  task: ImportExportTask;
@@ -48,6 +101,10 @@ export declare type BlocksImportExportCrud = {
48
101
  importBlocks(params: ImportBlocksParams): Promise<{
49
102
  task: ImportExportTask;
50
103
  }>;
104
+ onBlocksBeforeExport: Topic<OnBlocksBeforeExportTopicParams>;
105
+ onBlocksAfterExport: Topic<OnBlocksAfterExportTopicParams>;
106
+ onBlocksBeforeImport: Topic<OnBlocksBeforeImportTopicParams>;
107
+ onBlocksAfterImport: Topic<OnBlocksAfterImportTopicParams>;
51
108
  };
52
109
  export interface ExportTemplatesParams {
53
110
  ids?: string[];
@@ -56,6 +113,30 @@ export interface ExportTemplatesParams {
56
113
  export interface ImportTemplatesParams {
57
114
  zipFileUrl: string;
58
115
  }
116
+ /**
117
+ * @category Lifecycle events
118
+ */
119
+ export interface OnTemplatesBeforeExportTopicParams {
120
+ params: ExportTemplatesParams;
121
+ }
122
+ /**
123
+ * @category Lifecycle events
124
+ */
125
+ export interface OnTemplatesAfterExportTopicParams {
126
+ params: ExportTemplatesParams;
127
+ }
128
+ /**
129
+ * @category Lifecycle events
130
+ */
131
+ export interface OnTemplatesBeforeImportTopicParams {
132
+ params: ImportTemplatesParams;
133
+ }
134
+ /**
135
+ * @category Lifecycle events
136
+ */
137
+ export interface OnTemplatesAfterImportTopicParams {
138
+ params: ImportTemplatesParams;
139
+ }
59
140
  export declare type TemplatesImportExportCrud = {
60
141
  exportTemplates(params: ExportTemplatesParams): Promise<{
61
142
  task: ImportExportTask;
@@ -63,6 +144,10 @@ export declare type TemplatesImportExportCrud = {
63
144
  importTemplates(params: ImportTemplatesParams): Promise<{
64
145
  task: ImportExportTask;
65
146
  }>;
147
+ onTemplatesBeforeExport: Topic<OnTemplatesBeforeExportTopicParams>;
148
+ onTemplatesAfterExport: Topic<OnTemplatesAfterExportTopicParams>;
149
+ onTemplatesBeforeImport: Topic<OnTemplatesBeforeImportTopicParams>;
150
+ onTemplatesAfterImport: Topic<OnTemplatesAfterImportTopicParams>;
66
151
  };
67
152
  export interface ExportFormsParams {
68
153
  ids?: string[];
@@ -75,6 +160,30 @@ export interface ExportFormsParams {
75
160
  export interface ImportFormsParams {
76
161
  zipFileUrl: string;
77
162
  }
163
+ /**
164
+ * @category Lifecycle events
165
+ */
166
+ export interface OnFormsBeforeExportTopicParams {
167
+ params: ExportFormsParams;
168
+ }
169
+ /**
170
+ * @category Lifecycle events
171
+ */
172
+ export interface OnFormsAfterExportTopicParams {
173
+ params: ExportFormsParams;
174
+ }
175
+ /**
176
+ * @category Lifecycle events
177
+ */
178
+ export interface OnFormsBeforeImportTopicParams {
179
+ params: ImportFormsParams;
180
+ }
181
+ /**
182
+ * @category Lifecycle events
183
+ */
184
+ export interface OnFormsAfterImportTopicParams {
185
+ params: ImportFormsParams;
186
+ }
78
187
  export declare type FormsImportExportCrud = {
79
188
  exportForms(params: ExportFormsParams): Promise<{
80
189
  task: ImportExportTask;
@@ -82,6 +191,10 @@ export declare type FormsImportExportCrud = {
82
191
  importForms(params: ImportFormsParams): Promise<{
83
192
  task: ImportExportTask;
84
193
  }>;
194
+ onFormsBeforeExport: Topic<OnFormsBeforeExportTopicParams>;
195
+ onFormsAfterExport: Topic<OnFormsAfterExportTopicParams>;
196
+ onFormsBeforeImport: Topic<OnFormsBeforeImportTopicParams>;
197
+ onFormsAfterImport: Topic<OnFormsAfterImportTopicParams>;
85
198
  };
86
199
  declare type ImportExportTaskCreateData = Omit<ImportExportTask, "id" | "createdOn" | "createdBy">;
87
200
  export declare type ImportExportTaskCrud = {
package/graphql/types.js CHANGED
@@ -2,4 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
- });
5
+ });
6
+
7
+ //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { PbContext } from \"@webiny/api-page-builder/types\";\nimport { FormBuilderContext } from \"@webiny/api-form-builder/types\";\nimport {\n ExportRevisionType,\n ImportExportTask,\n ImportExportTaskStatus,\n ImportExportTaskStorageOperations,\n ImportExportTaskStorageOperationsListParams\n} from \"~/types\";\n\nexport interface ExportPagesParams {\n ids?: string[];\n revisionType: ExportRevisionType;\n where?: {\n category?: string;\n status?: string;\n tags?: { query: string[]; rule?: \"any\" | \"all\" };\n [key: string]: any;\n };\n search?: { query?: string };\n sort?: string[];\n}\n\nexport interface ImportPagesParams {\n category: string;\n zipFileUrl: string;\n meta?: Record<string, any>;\n}\n\nexport type PagesImportExportCrud = {\n exportPages(params: ExportPagesParams): Promise<{ task: ImportExportTask }>;\n importPages(params: ImportPagesParams): Promise<{ task: ImportExportTask }>;\n};\n\nexport interface ExportBlocksParams {\n ids?: string[];\n sort?: string[];\n where?: {\n blockCategory?: string;\n };\n}\n\nexport interface ImportBlocksParams {\n zipFileUrl: string;\n}\n\nexport type BlocksImportExportCrud = {\n exportBlocks(params: ExportBlocksParams): Promise<{ task: ImportExportTask }>;\n importBlocks(params: ImportBlocksParams): Promise<{ task: ImportExportTask }>;\n};\n\nexport interface ExportTemplatesParams {\n ids?: string[];\n sort?: string[];\n}\n\nexport interface ImportTemplatesParams {\n zipFileUrl: string;\n}\n\nexport type TemplatesImportExportCrud = {\n exportTemplates(params: ExportTemplatesParams): Promise<{ task: ImportExportTask }>;\n importTemplates(params: ImportTemplatesParams): Promise<{ task: ImportExportTask }>;\n};\n\nexport interface ExportFormsParams {\n ids?: string[];\n revisionType: ExportRevisionType;\n search?: { query?: string };\n sort?: string[];\n}\n\nexport interface ImportFormsParams {\n zipFileUrl: string;\n}\n\nexport type FormsImportExportCrud = {\n exportForms(params: ExportFormsParams): Promise<{ task: ImportExportTask }>;\n importForms(params: ImportFormsParams): Promise<{ task: ImportExportTask }>;\n};\n\ntype ImportExportTaskCreateData = Omit<ImportExportTask, \"id\" | \"createdOn\" | \"createdBy\">;\n\nexport type ImportExportTaskCrud = {\n /**\n * To be used internally in our code.\n * @internal\n */\n storageOperations: ImportExportTaskStorageOperations;\n\n getTask(id: string): Promise<ImportExportTask | null>;\n listTasks(params?: ImportExportTaskStorageOperationsListParams): Promise<ImportExportTask[]>;\n createTask(data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;\n updateTask(id: string, data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;\n updateStats(\n id: string,\n data: {\n prevStatus: ImportExportTaskStatus;\n nextStatus: ImportExportTaskStatus;\n }\n ): Promise<ImportExportTask>;\n deleteTask(id: string): Promise<ImportExportTask>;\n getSubTask(id: string, subtaskId: string): Promise<ImportExportTask | null>;\n listSubTasks(\n id: string,\n status: ImportExportTaskStatus,\n limit: number\n ): Promise<ImportExportTask[]>;\n createSubTask(\n id: string,\n subTaskId: string,\n data: Partial<ImportExportTaskCreateData>\n ): Promise<ImportExportTask>;\n updateSubTask(\n id: string,\n subTaskId: string,\n data: Partial<ImportExportTaskCreateData>\n ): Promise<ImportExportTask>;\n};\n\nexport interface PbImportExportContext extends PbContext {\n pageBuilder: PbContext[\"pageBuilder\"] & {\n pages: PagesImportExportCrud;\n blocks: BlocksImportExportCrud;\n templates: TemplatesImportExportCrud;\n importExportTask: ImportExportTaskCrud;\n };\n formBuilder: FormBuilderContext[\"formBuilder\"] & {\n forms: FormsImportExportCrud;\n };\n}\n\nexport interface ImportExportPluginsParams {\n storageOperations: ImportExportTaskStorageOperations;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { PbContext } from \"@webiny/api-page-builder/types\";\nimport { FormBuilderContext } from \"@webiny/api-form-builder/types\";\nimport {\n ExportRevisionType,\n ImportExportTask,\n ImportExportTaskStatus,\n ImportExportTaskStorageOperations,\n ImportExportTaskStorageOperationsListParams\n} from \"~/types\";\n\nexport interface ExportPagesParams {\n ids?: string[];\n revisionType: ExportRevisionType;\n where?: {\n category?: string;\n status?: string;\n tags?: { query: string[]; rule?: \"any\" | \"all\" };\n [key: string]: any;\n };\n search?: { query?: string };\n sort?: string[];\n}\n\nexport interface ImportPagesParams {\n category: string;\n zipFileUrl: string;\n meta?: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnPagesBeforeExportTopicParams {\n params: ExportPagesParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnPagesAfterExportTopicParams {\n params: ExportPagesParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnPagesBeforeImportTopicParams {\n params: ImportPagesParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnPagesAfterImportTopicParams {\n params: ImportPagesParams;\n}\n\nexport type PagesImportExportCrud = {\n exportPages(params: ExportPagesParams): Promise<{ task: ImportExportTask }>;\n importPages(params: ImportPagesParams): Promise<{ task: ImportExportTask }>;\n\n onPagesBeforeExport: Topic<OnPagesBeforeExportTopicParams>;\n onPagesAfterExport: Topic<OnPagesAfterExportTopicParams>;\n onPagesBeforeImport: Topic<OnPagesBeforeImportTopicParams>;\n onPagesAfterImport: Topic<OnPagesAfterImportTopicParams>;\n};\n\nexport interface ExportBlocksParams {\n ids?: string[];\n sort?: string[];\n where?: {\n blockCategory?: string;\n };\n}\n\nexport interface ImportBlocksParams {\n zipFileUrl: string;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBlocksBeforeExportTopicParams {\n params: ExportBlocksParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBlocksAfterExportTopicParams {\n params: ExportBlocksParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBlocksBeforeImportTopicParams {\n params: ImportBlocksParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBlocksAfterImportTopicParams {\n params: ImportBlocksParams;\n}\n\nexport type BlocksImportExportCrud = {\n exportBlocks(params: ExportBlocksParams): Promise<{ task: ImportExportTask }>;\n importBlocks(params: ImportBlocksParams): Promise<{ task: ImportExportTask }>;\n\n onBlocksBeforeExport: Topic<OnBlocksBeforeExportTopicParams>;\n onBlocksAfterExport: Topic<OnBlocksAfterExportTopicParams>;\n onBlocksBeforeImport: Topic<OnBlocksBeforeImportTopicParams>;\n onBlocksAfterImport: Topic<OnBlocksAfterImportTopicParams>;\n};\n\nexport interface ExportTemplatesParams {\n ids?: string[];\n sort?: string[];\n}\n\nexport interface ImportTemplatesParams {\n zipFileUrl: string;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnTemplatesBeforeExportTopicParams {\n params: ExportTemplatesParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnTemplatesAfterExportTopicParams {\n params: ExportTemplatesParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnTemplatesBeforeImportTopicParams {\n params: ImportTemplatesParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnTemplatesAfterImportTopicParams {\n params: ImportTemplatesParams;\n}\n\nexport type TemplatesImportExportCrud = {\n exportTemplates(params: ExportTemplatesParams): Promise<{ task: ImportExportTask }>;\n importTemplates(params: ImportTemplatesParams): Promise<{ task: ImportExportTask }>;\n\n onTemplatesBeforeExport: Topic<OnTemplatesBeforeExportTopicParams>;\n onTemplatesAfterExport: Topic<OnTemplatesAfterExportTopicParams>;\n onTemplatesBeforeImport: Topic<OnTemplatesBeforeImportTopicParams>;\n onTemplatesAfterImport: Topic<OnTemplatesAfterImportTopicParams>;\n};\n\nexport interface ExportFormsParams {\n ids?: string[];\n revisionType: ExportRevisionType;\n search?: { query?: string };\n sort?: string[];\n}\n\nexport interface ImportFormsParams {\n zipFileUrl: string;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnFormsBeforeExportTopicParams {\n params: ExportFormsParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnFormsAfterExportTopicParams {\n params: ExportFormsParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnFormsBeforeImportTopicParams {\n params: ImportFormsParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnFormsAfterImportTopicParams {\n params: ImportFormsParams;\n}\n\nexport type FormsImportExportCrud = {\n exportForms(params: ExportFormsParams): Promise<{ task: ImportExportTask }>;\n importForms(params: ImportFormsParams): Promise<{ task: ImportExportTask }>;\n\n onFormsBeforeExport: Topic<OnFormsBeforeExportTopicParams>;\n onFormsAfterExport: Topic<OnFormsAfterExportTopicParams>;\n onFormsBeforeImport: Topic<OnFormsBeforeImportTopicParams>;\n onFormsAfterImport: Topic<OnFormsAfterImportTopicParams>;\n};\n\ntype ImportExportTaskCreateData = Omit<ImportExportTask, \"id\" | \"createdOn\" | \"createdBy\">;\n\nexport type ImportExportTaskCrud = {\n /**\n * To be used internally in our code.\n * @internal\n */\n storageOperations: ImportExportTaskStorageOperations;\n\n getTask(id: string): Promise<ImportExportTask | null>;\n listTasks(params?: ImportExportTaskStorageOperationsListParams): Promise<ImportExportTask[]>;\n createTask(data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;\n updateTask(id: string, data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;\n updateStats(\n id: string,\n data: {\n prevStatus: ImportExportTaskStatus;\n nextStatus: ImportExportTaskStatus;\n }\n ): Promise<ImportExportTask>;\n deleteTask(id: string): Promise<ImportExportTask>;\n getSubTask(id: string, subtaskId: string): Promise<ImportExportTask | null>;\n listSubTasks(\n id: string,\n status: ImportExportTaskStatus,\n limit: number\n ): Promise<ImportExportTask[]>;\n createSubTask(\n id: string,\n subTaskId: string,\n data: Partial<ImportExportTaskCreateData>\n ): Promise<ImportExportTask>;\n updateSubTask(\n id: string,\n subTaskId: string,\n data: Partial<ImportExportTaskCreateData>\n ): Promise<ImportExportTask>;\n};\n\nexport interface PbImportExportContext extends PbContext {\n pageBuilder: PbContext[\"pageBuilder\"] & {\n pages: PagesImportExportCrud;\n blocks: BlocksImportExportCrud;\n templates: TemplatesImportExportCrud;\n importExportTask: ImportExportTaskCrud;\n };\n formBuilder: FormBuilderContext[\"formBuilder\"] & {\n forms: FormsImportExportCrud;\n };\n}\n\nexport interface ImportExportPluginsParams {\n storageOperations: ImportExportTaskStorageOperations;\n}\n"],"mappings":""}
@@ -11,4 +11,6 @@ exports.INSTALL_DIR = INSTALL_DIR;
11
11
  const INSTALL_EXTRACT_DIR = _path.default.join(INSTALL_DIR, "apiPageBuilderImport");
12
12
  exports.INSTALL_EXTRACT_DIR = INSTALL_EXTRACT_DIR;
13
13
  const ASSETS_DIR_NAME = "/assets";
14
- exports.ASSETS_DIR_NAME = ASSETS_DIR_NAME;
14
+ exports.ASSETS_DIR_NAME = ASSETS_DIR_NAME;
15
+
16
+ //# sourceMappingURL=constants.js.map
@@ -96,4 +96,6 @@ const blocksHandler = async (configuration, payload, context) => {
96
96
  error: null
97
97
  };
98
98
  };
99
- exports.blocksHandler = blocksHandler;
99
+ exports.blocksHandler = blocksHandler;
100
+
101
+ //# sourceMappingURL=blocksHandler.js.map
@@ -100,4 +100,6 @@ const formsHandler = async (configuration, payload, context) => {
100
100
  error: null
101
101
  };
102
102
  };
103
- exports.formsHandler = formsHandler;
103
+ exports.formsHandler = formsHandler;
104
+
105
+ //# sourceMappingURL=formsHandler.js.map
@@ -39,4 +39,6 @@ var _default = configuration => {
39
39
  });
40
40
  });
41
41
  };
42
- exports.default = _default;
42
+ exports.default = _default;
43
+
44
+ //# sourceMappingURL=index.js.map
@@ -100,4 +100,6 @@ const pagesHandler = async (configuration, payload, context) => {
100
100
  error: null
101
101
  };
102
102
  };
103
- exports.pagesHandler = pagesHandler;
103
+ exports.pagesHandler = pagesHandler;
104
+
105
+ //# sourceMappingURL=pagesHandler.js.map
@@ -96,4 +96,6 @@ const templatesHandler = async (configuration, payload, context) => {
96
96
  error: null
97
97
  };
98
98
  };
99
- exports.templatesHandler = templatesHandler;
99
+ exports.templatesHandler = templatesHandler;
100
+
101
+ //# sourceMappingURL=templatesHandler.js.map
@@ -84,8 +84,7 @@ const blocksHandler = async (configuration, payload, context) => {
84
84
  const pbBlock = await context.pageBuilder.createPageBlock({
85
85
  name: block.name,
86
86
  blockCategory: block.blockCategory,
87
- content: block.content,
88
- preview: block.preview
87
+ content: block.content
89
88
  });
90
89
 
91
90
  // Update task record in DB
@@ -165,4 +164,6 @@ const blocksHandler = async (configuration, payload, context) => {
165
164
  error: null
166
165
  };
167
166
  };
168
- exports.blocksHandler = blocksHandler;
167
+ exports.blocksHandler = blocksHandler;
168
+
169
+ //# sourceMappingURL=blocksHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_client","_mockSecurity","_utils","_importBlock","blocksHandler","configuration","payload","context","log","console","subTask","noPendingTask","prevStatusOfSubTask","ImportExportTaskStatus","PENDING","pageBuilder","taskId","subTaskIndex","type","identity","mockSecurity","importExportTask","getSubTask","zeroPad","status","data","error","id","blockKey","zipFileKey","input","fileUploadsData","updateSubTask","PROCESSING","updateStats","prevStatus","nextStatus","block","importBlock","key","pbBlock","createPageBlock","name","blockCategory","content","preview","COMPLETED","message","e","FAILED","code","updateTask","invokeHandlerClient","handlers","process","security","getIdentity","description","exports"],"sources":["blocksHandler.ts"],"sourcesContent":["import { ImportExportTaskStatus, PbImportExportContext } from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { Configuration, Payload, Response } from \"~/import/process\";\nimport { importBlock } from \"./importBlock\";\n\nexport const blocksHandler = async (\n configuration: Configuration,\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n let subTask;\n let noPendingTask = true;\n let prevStatusOfSubTask = ImportExportTaskStatus.PENDING;\n\n log(\"RUNNING Import Block Queue Process\");\n const { pageBuilder } = context;\n const { taskId, subTaskIndex, type, identity } = payload;\n // Disable authorization; this is necessary because we call Page Builder CRUD methods which include authorization checks\n // and this Lambda is invoked internally, without credentials.\n mockSecurity(identity, context);\n\n try {\n /*\n * Note: We're not going to DB for getting next sub-task to process,\n * because the data might be out of sync due to GSI eventual consistency.\n */\n\n subTask = await pageBuilder.importExportTask.getSubTask(taskId, zeroPad(subTaskIndex, 5));\n\n /**\n * Base condition!!\n * Bail out early, if task not found or task's status is not \"pending\".\n */\n if (!subTask || subTask.status !== ImportExportTaskStatus.PENDING) {\n noPendingTask = true;\n return {\n data: \"\",\n error: null\n };\n } else {\n noPendingTask = false;\n }\n prevStatusOfSubTask = subTask.status;\n\n log(`Fetched sub task => ${subTask.id}`);\n console.log(\"subTask\", subTask);\n\n const { blockKey, zipFileKey, input } = subTask.data;\n const { fileUploadsData } = input;\n\n log(`Processing block key \"${blockKey}\"`);\n\n // Mark task status as PROCESSING\n subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.PROCESSING\n });\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.PROCESSING\n });\n prevStatusOfSubTask = subTask.status;\n\n // Real job\n const block = await importBlock({\n context,\n blockKey,\n key: zipFileKey,\n fileUploadsData\n });\n\n // Create a block\n const pbBlock = await context.pageBuilder.createPageBlock({\n name: block.name,\n blockCategory: block.blockCategory,\n content: block.content,\n preview: block.preview\n });\n\n // Update task record in DB\n subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: \"Done\",\n block: {\n id: pbBlock.id,\n name: pbBlock.name\n }\n }\n });\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.COMPLETED\n });\n prevStatusOfSubTask = subTask.status;\n } catch (e) {\n log(\"[IMPORT_BLOCKS_PROCESS] Error => \", e.message);\n\n if (subTask && subTask.id) {\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 subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: \"IMPORT_FAILED\"\n }\n });\n\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.FAILED\n });\n prevStatusOfSubTask = subTask.status;\n }\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n } finally {\n // Base condition!\n if (noPendingTask) {\n log(`No pending sub-task for task ${taskId}`);\n\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: `Finish importing blocks.`\n }\n });\n } else {\n log(`Invoking PROCESS for task \"${subTaskIndex + 1}\"`);\n // We want to continue with Self invocation no matter if current block error out.\n await invokeHandlerClient<Payload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId,\n subTaskIndex: subTaskIndex + 1,\n type,\n identity: context.security.getIdentity()\n },\n description: \"Import blocks - process - subtask\"\n });\n }\n }\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","_client","_mockSecurity","_utils","_importBlock","blocksHandler","configuration","payload","context","log","console","subTask","noPendingTask","prevStatusOfSubTask","ImportExportTaskStatus","PENDING","pageBuilder","taskId","subTaskIndex","type","identity","mockSecurity","importExportTask","getSubTask","zeroPad","status","data","error","id","blockKey","zipFileKey","input","fileUploadsData","updateSubTask","PROCESSING","updateStats","prevStatus","nextStatus","block","importBlock","key","pbBlock","createPageBlock","name","blockCategory","content","COMPLETED","message","e","FAILED","code","updateTask","invokeHandlerClient","handlers","process","security","getIdentity","description","exports"],"sources":["blocksHandler.ts"],"sourcesContent":["import { ImportExportTaskStatus, PbImportExportContext } from \"~/types\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { Configuration, Payload, Response } from \"~/import/process\";\nimport { importBlock } from \"./importBlock\";\n\nexport const blocksHandler = async (\n configuration: Configuration,\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n let subTask;\n let noPendingTask = true;\n let prevStatusOfSubTask = ImportExportTaskStatus.PENDING;\n\n log(\"RUNNING Import Block Queue Process\");\n const { pageBuilder } = context;\n const { taskId, subTaskIndex, type, identity } = payload;\n // Disable authorization; this is necessary because we call Page Builder CRUD methods which include authorization checks\n // and this Lambda is invoked internally, without credentials.\n mockSecurity(identity, context);\n\n try {\n /*\n * Note: We're not going to DB for getting next sub-task to process,\n * because the data might be out of sync due to GSI eventual consistency.\n */\n\n subTask = await pageBuilder.importExportTask.getSubTask(taskId, zeroPad(subTaskIndex, 5));\n\n /**\n * Base condition!!\n * Bail out early, if task not found or task's status is not \"pending\".\n */\n if (!subTask || subTask.status !== ImportExportTaskStatus.PENDING) {\n noPendingTask = true;\n return {\n data: \"\",\n error: null\n };\n } else {\n noPendingTask = false;\n }\n prevStatusOfSubTask = subTask.status;\n\n log(`Fetched sub task => ${subTask.id}`);\n console.log(\"subTask\", subTask);\n\n const { blockKey, zipFileKey, input } = subTask.data;\n const { fileUploadsData } = input;\n\n log(`Processing block key \"${blockKey}\"`);\n\n // Mark task status as PROCESSING\n subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.PROCESSING\n });\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.PROCESSING\n });\n prevStatusOfSubTask = subTask.status;\n\n // Real job\n const block = await importBlock({\n context,\n blockKey,\n key: zipFileKey,\n fileUploadsData\n });\n\n // Create a block\n const pbBlock = await context.pageBuilder.createPageBlock({\n name: block.name,\n blockCategory: block.blockCategory,\n content: block.content\n });\n\n // Update task record in DB\n subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: \"Done\",\n block: {\n id: pbBlock.id,\n name: pbBlock.name\n }\n }\n });\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.COMPLETED\n });\n prevStatusOfSubTask = subTask.status;\n } catch (e) {\n log(\"[IMPORT_BLOCKS_PROCESS] Error => \", e.message);\n\n if (subTask && subTask.id) {\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 subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: \"IMPORT_FAILED\"\n }\n });\n\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.FAILED\n });\n prevStatusOfSubTask = subTask.status;\n }\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n } finally {\n // Base condition!\n if (noPendingTask) {\n log(`No pending sub-task for task ${taskId}`);\n\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: `Finish importing blocks.`\n }\n });\n } else {\n log(`Invoking PROCESS for task \"${subTaskIndex + 1}\"`);\n // We want to continue with Self invocation no matter if current block error out.\n await invokeHandlerClient<Payload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId,\n subTaskIndex: subTaskIndex + 1,\n type,\n identity: context.security.getIdentity()\n },\n description: \"Import blocks - process - subtask\"\n });\n }\n }\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":"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"}
@@ -7,5 +7,5 @@ interface ImportBlockParams {
7
7
  context: PbImportExportContext;
8
8
  fileUploadsData: FileUploadsData;
9
9
  }
10
- export declare function importBlock({ blockKey, context, fileUploadsData }: ImportBlockParams): Promise<Pick<PageBlock, "name" | "content" | "preview" | "blockCategory">>;
10
+ export declare function importBlock({ blockKey, context, fileUploadsData }: ImportBlockParams): Promise<Pick<PageBlock, "name" | "content" | "blockCategory">>;
11
11
  export {};
@@ -60,14 +60,6 @@ async function importBlock({
60
60
  fileIdToNewFileMap,
61
61
  srcPrefix
62
62
  });
63
- block.preview = updateBlockPreviewImage({
64
- /**
65
- * Casting as this is only a type error.
66
- */
67
- file: block.preview || {},
68
- fileIdToNewFileMap,
69
- srcPrefix
70
- });
71
63
  }
72
64
  let loadedCategory;
73
65
  if (category) {
@@ -100,19 +92,5 @@ async function importBlock({
100
92
  blockCategory: loadedCategory.slug
101
93
  });
102
94
  }
103
- function updateBlockPreviewImage(params) {
104
- const {
105
- file: blockPreview,
106
- fileIdToNewFileMap,
107
- srcPrefix
108
- } = params;
109
- const newFile = fileIdToNewFileMap.get(blockPreview.id || "");
110
- if (!newFile) {
111
- console.log("Block preview file not found!");
112
- return blockPreview;
113
- }
114
- const srcPrefixWithoutTrailingSlash = srcPrefix.endsWith("/") ? srcPrefix.slice(0, -1) : srcPrefix;
115
- blockPreview.id = newFile.id;
116
- blockPreview.src = `${srcPrefixWithoutTrailingSlash}/${newFile.key}`;
117
- return blockPreview;
118
- }
95
+
96
+ //# sourceMappingURL=importBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_path","_interopRequireDefault","require","_dotPropImmutable","_loadJsonFile","_fsExtra","_s3Stream","_uploadAssets","_downloadInstallFiles","_deleteS3Folder","_updateFilesInData","_constants","importBlock","blockKey","context","fileUploadsData","log","console","BLOCK_EXTRACT_DIR","path","join","INSTALL_EXTRACT_DIR","ensureDirSync","blockDataFileKey","dotProp","get","BLOCK_DATA_FILE_PATH","basename","Promise","resolve","reject","s3Stream","readStream","on","pipe","createWriteStream","block","category","files","loadJson","Array","isArray","length","fileIdToNewFileMap","uploadAssets","JSON","stringify","Object","fromEntries","settings","fileManager","getSettings","srcPrefix","updateFilesInData","data","content","preview","updateBlockPreviewImage","file","loadedCategory","pageBuilder","getBlockCategory","slug","createBlockCategory","name","icon","description","importedBlocksCategory","deleteFile","deleteS3Folder","dirname","_objectSpread2","default","blockCategory","params","blockPreview","newFile","id","srcPrefixWithoutTrailingSlash","endsWith","slice","src","key"],"sources":["importBlock.ts"],"sourcesContent":["import path from \"path\";\nimport dotProp from \"dot-prop-immutable\";\nimport loadJson from \"load-json-file\";\nimport { ensureDirSync, createWriteStream } from \"fs-extra\";\nimport { FileInput } from \"@webiny/api-file-manager/types\";\nimport { PbImportExportContext } from \"~/graphql/types\";\nimport { File as ImageFile, FileUploadsData } from \"~/types\";\nimport { PageBlock } from \"@webiny/api-page-builder/types\";\nimport { s3Stream } from \"~/export/s3Stream\";\nimport { uploadAssets } from \"~/import/utils/uploadAssets\";\nimport { deleteFile } from \"@webiny/api-page-builder/graphql/crud/install/utils/downloadInstallFiles\";\nimport { deleteS3Folder } from \"~/import/utils/deleteS3Folder\";\nimport { updateFilesInData } from \"~/import/utils/updateFilesInData\";\nimport { INSTALL_EXTRACT_DIR } from \"~/import/constants\";\nimport { ExportedBlockData } from \"~/export/process/exporters/BlockExporter\";\n\ninterface ImportBlockParams {\n key: string;\n blockKey: string;\n context: PbImportExportContext;\n fileUploadsData: FileUploadsData;\n}\n\ninterface UpdateBlockPreviewImage {\n fileIdToNewFileMap: Map<string, FileInput>;\n srcPrefix: string;\n file: ImageFile;\n}\n\nexport async function importBlock({\n blockKey,\n context,\n fileUploadsData\n}: ImportBlockParams): Promise<Pick<PageBlock, \"name\" | \"content\" | \"preview\" | \"blockCategory\">> {\n const log = console.log;\n\n // Making Directory for block in which we're going to extract the block data file.\n const BLOCK_EXTRACT_DIR = path.join(INSTALL_EXTRACT_DIR, blockKey);\n ensureDirSync(BLOCK_EXTRACT_DIR);\n\n const blockDataFileKey = dotProp.get(fileUploadsData, `data`);\n const BLOCK_DATA_FILE_PATH = path.join(BLOCK_EXTRACT_DIR, path.basename(blockDataFileKey));\n\n log(`Downloading Block data file: ${blockDataFileKey} at \"${BLOCK_DATA_FILE_PATH}\"`);\n // Download and save block data file in disk.\n await new Promise((resolve, reject) => {\n s3Stream\n .readStream(blockDataFileKey)\n .on(\"error\", reject)\n .pipe(createWriteStream(BLOCK_DATA_FILE_PATH))\n .on(\"error\", reject)\n .on(\"finish\", resolve);\n });\n\n // Load the block data file from disk.\n log(`Load file ${blockDataFileKey}`);\n const { block, category, files } = await loadJson<ExportedBlockData>(BLOCK_DATA_FILE_PATH);\n\n // Only update block data if there are files.\n if (files && Array.isArray(files) && files.length > 0) {\n // Upload block assets.\n const fileIdToNewFileMap = await uploadAssets({\n context,\n files,\n fileUploadsData\n });\n\n console.log(\n \"After uploadAssets:fileIdToNewFileMap\",\n JSON.stringify(Object.fromEntries(fileIdToNewFileMap))\n );\n\n const settings = await context.fileManager.getSettings();\n\n const { srcPrefix = \"\" } = settings || {};\n updateFilesInData({\n data: block.content || {},\n fileIdToNewFileMap,\n srcPrefix\n });\n\n block.preview = updateBlockPreviewImage({\n /**\n * Casting as this is only a type error.\n */\n file: (block.preview as ImageFile) || {},\n fileIdToNewFileMap,\n srcPrefix\n });\n }\n\n let loadedCategory;\n if (category) {\n loadedCategory = await context.pageBuilder.getBlockCategory(category?.slug);\n if (!loadedCategory) {\n loadedCategory = await context.pageBuilder.createBlockCategory({\n name: category.name,\n slug: category.slug,\n icon: category.icon,\n description: category.description\n });\n }\n } else {\n let importedBlocksCategory = await context.pageBuilder.getBlockCategory(\"imported-blocks\");\n\n if (!importedBlocksCategory) {\n importedBlocksCategory = await context.pageBuilder.createBlockCategory({\n name: \"Imported Blocks\",\n slug: \"imported-blocks\",\n description: \"Imported blocks\",\n icon: \"fas/star\"\n });\n }\n\n loadedCategory = importedBlocksCategory;\n }\n\n log(\"Removing Directory for block...\");\n await deleteFile(blockKey);\n\n log(`Remove block contents from S3...`);\n await deleteS3Folder(path.dirname(fileUploadsData.data));\n\n return { ...block, blockCategory: loadedCategory!.slug };\n}\n\nfunction updateBlockPreviewImage(params: UpdateBlockPreviewImage): ImageFile {\n const { file: blockPreview, fileIdToNewFileMap, srcPrefix } = params;\n const newFile = fileIdToNewFileMap.get(blockPreview.id || \"\");\n\n if (!newFile) {\n console.log(\"Block preview file not found!\");\n return blockPreview;\n }\n\n const srcPrefixWithoutTrailingSlash = srcPrefix.endsWith(\"/\")\n ? srcPrefix.slice(0, -1)\n : srcPrefix;\n\n blockPreview.id = newFile.id;\n blockPreview.src = `${srcPrefixWithoutTrailingSlash}/${newFile.key}`;\n\n return blockPreview;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_path","_interopRequireDefault","require","_dotPropImmutable","_loadJsonFile","_fsExtra","_s3Stream","_uploadAssets","_downloadInstallFiles","_deleteS3Folder","_updateFilesInData","_constants","importBlock","blockKey","context","fileUploadsData","log","console","BLOCK_EXTRACT_DIR","path","join","INSTALL_EXTRACT_DIR","ensureDirSync","blockDataFileKey","dotProp","get","BLOCK_DATA_FILE_PATH","basename","Promise","resolve","reject","s3Stream","readStream","on","pipe","createWriteStream","block","category","files","loadJson","Array","isArray","length","fileIdToNewFileMap","uploadAssets","JSON","stringify","Object","fromEntries","settings","fileManager","getSettings","srcPrefix","updateFilesInData","data","content","loadedCategory","pageBuilder","getBlockCategory","slug","createBlockCategory","name","icon","description","importedBlocksCategory","deleteFile","deleteS3Folder","dirname","_objectSpread2","default","blockCategory"],"sources":["importBlock.ts"],"sourcesContent":["import path from \"path\";\nimport dotProp from \"dot-prop-immutable\";\nimport loadJson from \"load-json-file\";\nimport { ensureDirSync, createWriteStream } from \"fs-extra\";\nimport { PbImportExportContext } from \"~/graphql/types\";\nimport { FileUploadsData } from \"~/types\";\nimport { PageBlock } from \"@webiny/api-page-builder/types\";\nimport { s3Stream } from \"~/export/s3Stream\";\nimport { uploadAssets } from \"~/import/utils/uploadAssets\";\nimport { deleteFile } from \"@webiny/api-page-builder/graphql/crud/install/utils/downloadInstallFiles\";\nimport { deleteS3Folder } from \"~/import/utils/deleteS3Folder\";\nimport { updateFilesInData } from \"~/import/utils/updateFilesInData\";\nimport { INSTALL_EXTRACT_DIR } from \"~/import/constants\";\nimport { ExportedBlockData } from \"~/export/process/exporters/BlockExporter\";\n\ninterface ImportBlockParams {\n key: string;\n blockKey: string;\n context: PbImportExportContext;\n fileUploadsData: FileUploadsData;\n}\n\nexport async function importBlock({\n blockKey,\n context,\n fileUploadsData\n}: ImportBlockParams): Promise<Pick<PageBlock, \"name\" | \"content\" | \"blockCategory\">> {\n const log = console.log;\n\n // Making Directory for block in which we're going to extract the block data file.\n const BLOCK_EXTRACT_DIR = path.join(INSTALL_EXTRACT_DIR, blockKey);\n ensureDirSync(BLOCK_EXTRACT_DIR);\n\n const blockDataFileKey = dotProp.get(fileUploadsData, `data`);\n const BLOCK_DATA_FILE_PATH = path.join(BLOCK_EXTRACT_DIR, path.basename(blockDataFileKey));\n\n log(`Downloading Block data file: ${blockDataFileKey} at \"${BLOCK_DATA_FILE_PATH}\"`);\n // Download and save block data file in disk.\n await new Promise((resolve, reject) => {\n s3Stream\n .readStream(blockDataFileKey)\n .on(\"error\", reject)\n .pipe(createWriteStream(BLOCK_DATA_FILE_PATH))\n .on(\"error\", reject)\n .on(\"finish\", resolve);\n });\n\n // Load the block data file from disk.\n log(`Load file ${blockDataFileKey}`);\n const { block, category, files } = await loadJson<ExportedBlockData>(BLOCK_DATA_FILE_PATH);\n\n // Only update block data if there are files.\n if (files && Array.isArray(files) && files.length > 0) {\n // Upload block assets.\n const fileIdToNewFileMap = await uploadAssets({\n context,\n files,\n fileUploadsData\n });\n\n console.log(\n \"After uploadAssets:fileIdToNewFileMap\",\n JSON.stringify(Object.fromEntries(fileIdToNewFileMap))\n );\n\n const settings = await context.fileManager.getSettings();\n\n const { srcPrefix = \"\" } = settings || {};\n updateFilesInData({\n data: block.content || {},\n fileIdToNewFileMap,\n srcPrefix\n });\n }\n\n let loadedCategory;\n if (category) {\n loadedCategory = await context.pageBuilder.getBlockCategory(category?.slug);\n if (!loadedCategory) {\n loadedCategory = await context.pageBuilder.createBlockCategory({\n name: category.name,\n slug: category.slug,\n icon: category.icon,\n description: category.description\n });\n }\n } else {\n let importedBlocksCategory = await context.pageBuilder.getBlockCategory(\"imported-blocks\");\n\n if (!importedBlocksCategory) {\n importedBlocksCategory = await context.pageBuilder.createBlockCategory({\n name: \"Imported Blocks\",\n slug: \"imported-blocks\",\n description: \"Imported blocks\",\n icon: \"fas/star\"\n });\n }\n\n loadedCategory = importedBlocksCategory;\n }\n\n log(\"Removing Directory for block...\");\n await deleteFile(blockKey);\n\n log(`Remove block contents from S3...`);\n await deleteS3Folder(path.dirname(fileUploadsData.data));\n\n return { ...block, blockCategory: loadedCategory!.slug };\n}\n"],"mappings":"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"}
@@ -88,7 +88,7 @@ const formsHandler = async (configuration, payload, context) => {
88
88
  fbForm = await formBuilder.updateForm(fbForm.id, {
89
89
  name: form.name,
90
90
  fields: form.fields,
91
- layout: form.layout,
91
+ steps: form.steps,
92
92
  settings: form.settings,
93
93
  triggers: form.triggers
94
94
  });
@@ -173,4 +173,6 @@ const formsHandler = async (configuration, payload, context) => {
173
173
  error: null
174
174
  };
175
175
  };
176
- exports.formsHandler = formsHandler;
176
+ exports.formsHandler = formsHandler;
177
+
178
+ //# sourceMappingURL=formsHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_importForm","_client","_mockSecurity","_utils","formsHandler","configuration","payload","context","log","console","subTask","noPendingTask","prevStatusOfSubTask","ImportExportTaskStatus","PENDING","formBuilder","pageBuilder","taskId","subTaskIndex","type","identity","mockSecurity","importExportTask","getSubTask","zeroPad","status","data","error","id","formKey","zipFileKey","input","fileUploadsData","updateSubTask","PROCESSING","updateStats","prevStatus","nextStatus","form","importForm","key","fbForm","createForm","name","updateForm","fields","layout","settings","triggers","COMPLETED","message","version","e","FAILED","stack","code","updateTask","invokeHandlerClient","handlers","process","security","getIdentity","description","exports"],"sources":["formsHandler.ts"],"sourcesContent":["import { ImportExportTaskStatus, PbImportExportContext } from \"~/types\";\nimport { importForm } from \"./importForm\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { Configuration, Payload, Response } from \"~/import/process\";\n\nexport const formsHandler = async (\n configuration: Configuration,\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n let subTask;\n let noPendingTask = true;\n let prevStatusOfSubTask = ImportExportTaskStatus.PENDING;\n\n log(\"RUNNING Import Form Queue Process\");\n const { formBuilder, pageBuilder } = context;\n const { taskId, subTaskIndex, type, identity } = payload;\n // Disable authorization; this is necessary because we call Form Builder CRUD methods which include authorization checks\n // and this Lambda is invoked internally, without credentials.\n mockSecurity(identity, context);\n\n try {\n /*\n * Note: We're not going to DB for getting next sub-task to process,\n * because the data might be out of sync due to GSI eventual consistency.\n */\n\n subTask = await pageBuilder.importExportTask.getSubTask(taskId, zeroPad(subTaskIndex, 5));\n\n /**\n * Base condition!!\n * Bail out early, if task not found or task's status is not \"pending\".\n */\n if (!subTask || subTask.status !== ImportExportTaskStatus.PENDING) {\n noPendingTask = true;\n return {\n data: \"\",\n error: null\n };\n } else {\n noPendingTask = false;\n }\n prevStatusOfSubTask = subTask.status;\n\n log(`Fetched sub task => ${subTask.id}`);\n\n const { formKey, zipFileKey, input } = subTask.data;\n const { fileUploadsData } = input;\n\n log(`Processing form key \"${formKey}\"`);\n\n // Mark task status as PROCESSING\n subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.PROCESSING\n });\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.PROCESSING\n });\n prevStatusOfSubTask = subTask.status;\n\n // Real job\n const form = await importForm({\n formKey,\n key: zipFileKey,\n fileUploadsData\n });\n\n // Create a form\n let fbForm = await formBuilder.createForm({ name: form.name });\n\n // Update form with data\n fbForm = await formBuilder.updateForm(fbForm.id, {\n name: form.name,\n fields: form.fields,\n layout: form.layout,\n settings: form.settings,\n triggers: form.triggers\n });\n\n // Update task record in DB\n subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: \"Done\",\n form: {\n id: fbForm.id,\n name: fbForm.name,\n status: fbForm.status,\n version: fbForm.version\n }\n }\n });\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.COMPLETED\n });\n prevStatusOfSubTask = subTask.status;\n } catch (e) {\n log(\"[IMPORT_FORMS_PROCESS] Error => \", e);\n\n if (subTask && subTask.id) {\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 subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n stack: e.stack,\n code: \"IMPORT_FAILED\"\n }\n });\n\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.FAILED\n });\n prevStatusOfSubTask = subTask.status;\n }\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n } finally {\n // Base condition!\n if (noPendingTask) {\n log(`No pending sub-task for task ${taskId}`);\n\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: `Finish importing forms.`\n }\n });\n } else {\n log(`Invoking PROCESS for task \"${subTaskIndex + 1}\"`);\n // We want to continue with Self invocation no matter if current form error out.\n await invokeHandlerClient<Payload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId,\n subTaskIndex: subTaskIndex + 1,\n type,\n identity: context.security.getIdentity()\n },\n description: \"Import forms - process - subtask\"\n });\n }\n }\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAGO,MAAMK,YAAY,GAAG,MAAAA,CACxBC,aAA4B,EAC5BC,OAAgB,EAChBC,OAA8B,KACV;EACpB,MAAMC,GAAG,GAAGC,OAAO,CAACD,GAAG;EACvB,IAAIE,OAAO;EACX,IAAIC,aAAa,GAAG,IAAI;EACxB,IAAIC,mBAAmB,GAAGC,6BAAsB,CAACC,OAAO;EAExDN,GAAG,CAAC,mCAAmC,CAAC;EACxC,MAAM;IAAEO,WAAW;IAAEC;EAAY,CAAC,GAAGT,OAAO;EAC5C,MAAM;IAAEU,MAAM;IAAEC,YAAY;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGd,OAAO;EACxD;EACA;EACA,IAAAe,0BAAY,EAACD,QAAQ,EAAEb,OAAO,CAAC;EAE/B,IAAI;IACA;AACR;AACA;AACA;;IAEQG,OAAO,GAAG,MAAMM,WAAW,CAACM,gBAAgB,CAACC,UAAU,CAACN,MAAM,EAAE,IAAAO,cAAO,EAACN,YAAY,EAAE,CAAC,CAAC,CAAC;;IAEzF;AACR;AACA;AACA;IACQ,IAAI,CAACR,OAAO,IAAIA,OAAO,CAACe,MAAM,KAAKZ,6BAAsB,CAACC,OAAO,EAAE;MAC/DH,aAAa,GAAG,IAAI;MACpB,OAAO;QACHe,IAAI,EAAE,EAAE;QACRC,KAAK,EAAE;MACX,CAAC;IACL,CAAC,MAAM;MACHhB,aAAa,GAAG,KAAK;IACzB;IACAC,mBAAmB,GAAGF,OAAO,CAACe,MAAM;IAEpCjB,GAAG,CAAE,uBAAsBE,OAAO,CAACkB,EAAG,EAAC,CAAC;IAExC,MAAM;MAAEC,OAAO;MAAEC,UAAU;MAAEC;IAAM,CAAC,GAAGrB,OAAO,CAACgB,IAAI;IACnD,MAAM;MAAEM;IAAgB,CAAC,GAAGD,KAAK;IAEjCvB,GAAG,CAAE,wBAAuBqB,OAAQ,GAAE,CAAC;;IAEvC;IACAnB,OAAO,GAAG,MAAMM,WAAW,CAACM,gBAAgB,CAACW,aAAa,CAAChB,MAAM,EAAEP,OAAO,CAACkB,EAAE,EAAE;MAC3EH,MAAM,EAAEZ,6BAAsB,CAACqB;IACnC,CAAC,CAAC;IACF;IACA,MAAMlB,WAAW,CAACM,gBAAgB,CAACa,WAAW,CAAClB,MAAM,EAAE;MACnDmB,UAAU,EAAExB,mBAAmB;MAC/ByB,UAAU,EAAExB,6BAAsB,CAACqB;IACvC,CAAC,CAAC;IACFtB,mBAAmB,GAAGF,OAAO,CAACe,MAAM;;IAEpC;IACA,MAAMa,IAAI,GAAG,MAAM,IAAAC,sBAAU,EAAC;MAC1BV,OAAO;MACPW,GAAG,EAAEV,UAAU;MACfE;IACJ,CAAC,CAAC;;IAEF;IACA,IAAIS,MAAM,GAAG,MAAM1B,WAAW,CAAC2B,UAAU,CAAC;MAAEC,IAAI,EAAEL,IAAI,CAACK;IAAK,CAAC,CAAC;;IAE9D;IACAF,MAAM,GAAG,MAAM1B,WAAW,CAAC6B,UAAU,CAACH,MAAM,CAACb,EAAE,EAAE;MAC7Ce,IAAI,EAAEL,IAAI,CAACK,IAAI;MACfE,MAAM,EAAEP,IAAI,CAACO,MAAM;MACnBC,MAAM,EAAER,IAAI,CAACQ,MAAM;MACnBC,QAAQ,EAAET,IAAI,CAACS,QAAQ;MACvBC,QAAQ,EAAEV,IAAI,CAACU;IACnB,CAAC,CAAC;;IAEF;IACAtC,OAAO,GAAG,MAAMM,WAAW,CAACM,gBAAgB,CAACW,aAAa,CAAChB,MAAM,EAAEP,OAAO,CAACkB,EAAE,EAAE;MAC3EH,MAAM,EAAEZ,6BAAsB,CAACoC,SAAS;MACxCvB,IAAI,EAAE;QACFwB,OAAO,EAAE,MAAM;QACfZ,IAAI,EAAE;UACFV,EAAE,EAAEa,MAAM,CAACb,EAAE;UACbe,IAAI,EAAEF,MAAM,CAACE,IAAI;UACjBlB,MAAM,EAAEgB,MAAM,CAAChB,MAAM;UACrB0B,OAAO,EAAEV,MAAM,CAACU;QACpB;MACJ;IACJ,CAAC,CAAC;IACF;IACA,MAAMnC,WAAW,CAACM,gBAAgB,CAACa,WAAW,CAAClB,MAAM,EAAE;MACnDmB,UAAU,EAAExB,mBAAmB;MAC/ByB,UAAU,EAAExB,6BAAsB,CAACoC;IACvC,CAAC,CAAC;IACFrC,mBAAmB,GAAGF,OAAO,CAACe,MAAM;EACxC,CAAC,CAAC,OAAO2B,CAAC,EAAE;IACR5C,GAAG,CAAC,kCAAkC,EAAE4C,CAAC,CAAC;IAE1C,IAAI1C,OAAO,IAAIA,OAAO,CAACkB,EAAE,EAAE;MACvB;AACZ;AACA;AACA;MACYlB,OAAO,GAAG,MAAMM,WAAW,CAACM,gBAAgB,CAACW,aAAa,CAAChB,MAAM,EAAEP,OAAO,CAACkB,EAAE,EAAE;QAC3EH,MAAM,EAAEZ,6BAAsB,CAACwC,MAAM;QACrC1B,KAAK,EAAE;UACHgB,IAAI,EAAES,CAAC,CAACT,IAAI;UACZO,OAAO,EAAEE,CAAC,CAACF,OAAO;UAClBI,KAAK,EAAEF,CAAC,CAACE,KAAK;UACdC,IAAI,EAAE;QACV;MACJ,CAAC,CAAC;;MAEF;MACA,MAAMvC,WAAW,CAACM,gBAAgB,CAACa,WAAW,CAAClB,MAAM,EAAE;QACnDmB,UAAU,EAAExB,mBAAmB;QAC/ByB,UAAU,EAAExB,6BAAsB,CAACwC;MACvC,CAAC,CAAC;MACFzC,mBAAmB,GAAGF,OAAO,CAACe,MAAM;IACxC;IAEA,OAAO;MACHC,IAAI,EAAE,IAAI;MACVC,KAAK,EAAE;QACHuB,OAAO,EAAEE,CAAC,CAACF;MACf;IACJ,CAAC;EACL,CAAC,SAAS;IACN;IACA,IAAIvC,aAAa,EAAE;MACfH,GAAG,CAAE,gCAA+BS,MAAO,EAAC,CAAC;MAE7C,MAAMD,WAAW,CAACM,gBAAgB,CAACkC,UAAU,CAACvC,MAAM,EAAE;QAClDQ,MAAM,EAAEZ,6BAAsB,CAACoC,SAAS;QACxCvB,IAAI,EAAE;UACFwB,OAAO,EAAG;QACd;MACJ,CAAC,CAAC;IACN,CAAC,MAAM;MACH1C,GAAG,CAAE,8BAA6BU,YAAY,GAAG,CAAE,GAAE,CAAC;MACtD;MACA,MAAM,IAAAuC,2BAAmB,EAAU;QAC/BlD,OAAO;QACPoC,IAAI,EAAEtC,aAAa,CAACqD,QAAQ,CAACC,OAAO;QACpCrD,OAAO,EAAE;UACLW,MAAM;UACNC,YAAY,EAAEA,YAAY,GAAG,CAAC;UAC9BC,IAAI;UACJC,QAAQ,EAAEb,OAAO,CAACqD,QAAQ,CAACC,WAAW,CAAC;QAC3C,CAAC;QACDC,WAAW,EAAE;MACjB,CAAC,CAAC;IACN;EACJ;EACA,OAAO;IACHpC,IAAI,EAAE,EAAE;IACRC,KAAK,EAAE;EACX,CAAC;AACL,CAAC;AAACoC,OAAA,CAAA3D,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"names":["_types","require","_importForm","_client","_mockSecurity","_utils","formsHandler","configuration","payload","context","log","console","subTask","noPendingTask","prevStatusOfSubTask","ImportExportTaskStatus","PENDING","formBuilder","pageBuilder","taskId","subTaskIndex","type","identity","mockSecurity","importExportTask","getSubTask","zeroPad","status","data","error","id","formKey","zipFileKey","input","fileUploadsData","updateSubTask","PROCESSING","updateStats","prevStatus","nextStatus","form","importForm","key","fbForm","createForm","name","updateForm","fields","steps","settings","triggers","COMPLETED","message","version","e","FAILED","stack","code","updateTask","invokeHandlerClient","handlers","process","security","getIdentity","description","exports"],"sources":["formsHandler.ts"],"sourcesContent":["import { ImportExportTaskStatus, PbImportExportContext } from \"~/types\";\nimport { importForm } from \"./importForm\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { Configuration, Payload, Response } from \"~/import/process\";\n\nexport const formsHandler = async (\n configuration: Configuration,\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n let subTask;\n let noPendingTask = true;\n let prevStatusOfSubTask = ImportExportTaskStatus.PENDING;\n\n log(\"RUNNING Import Form Queue Process\");\n const { formBuilder, pageBuilder } = context;\n const { taskId, subTaskIndex, type, identity } = payload;\n // Disable authorization; this is necessary because we call Form Builder CRUD methods which include authorization checks\n // and this Lambda is invoked internally, without credentials.\n mockSecurity(identity, context);\n\n try {\n /*\n * Note: We're not going to DB for getting next sub-task to process,\n * because the data might be out of sync due to GSI eventual consistency.\n */\n\n subTask = await pageBuilder.importExportTask.getSubTask(taskId, zeroPad(subTaskIndex, 5));\n\n /**\n * Base condition!!\n * Bail out early, if task not found or task's status is not \"pending\".\n */\n if (!subTask || subTask.status !== ImportExportTaskStatus.PENDING) {\n noPendingTask = true;\n return {\n data: \"\",\n error: null\n };\n } else {\n noPendingTask = false;\n }\n prevStatusOfSubTask = subTask.status;\n\n log(`Fetched sub task => ${subTask.id}`);\n\n const { formKey, zipFileKey, input } = subTask.data;\n const { fileUploadsData } = input;\n\n log(`Processing form key \"${formKey}\"`);\n\n // Mark task status as PROCESSING\n subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.PROCESSING\n });\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.PROCESSING\n });\n prevStatusOfSubTask = subTask.status;\n\n // Real job\n const form = await importForm({\n formKey,\n key: zipFileKey,\n fileUploadsData\n });\n\n // Create a form\n let fbForm = await formBuilder.createForm({ name: form.name });\n\n // Update form with data\n fbForm = await formBuilder.updateForm(fbForm.id, {\n name: form.name,\n fields: form.fields,\n steps: form.steps,\n settings: form.settings,\n triggers: form.triggers\n });\n\n // Update task record in DB\n subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: \"Done\",\n form: {\n id: fbForm.id,\n name: fbForm.name,\n status: fbForm.status,\n version: fbForm.version\n }\n }\n });\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.COMPLETED\n });\n prevStatusOfSubTask = subTask.status;\n } catch (e) {\n log(\"[IMPORT_FORMS_PROCESS] Error => \", e);\n\n if (subTask && subTask.id) {\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 subTask = await pageBuilder.importExportTask.updateSubTask(taskId, subTask.id, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n stack: e.stack,\n code: \"IMPORT_FAILED\"\n }\n });\n\n // Update stats in main task\n await pageBuilder.importExportTask.updateStats(taskId, {\n prevStatus: prevStatusOfSubTask,\n nextStatus: ImportExportTaskStatus.FAILED\n });\n prevStatusOfSubTask = subTask.status;\n }\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n } finally {\n // Base condition!\n if (noPendingTask) {\n log(`No pending sub-task for task ${taskId}`);\n\n await pageBuilder.importExportTask.updateTask(taskId, {\n status: ImportExportTaskStatus.COMPLETED,\n data: {\n message: `Finish importing forms.`\n }\n });\n } else {\n log(`Invoking PROCESS for task \"${subTaskIndex + 1}\"`);\n // We want to continue with Self invocation no matter if current form error out.\n await invokeHandlerClient<Payload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId,\n subTaskIndex: subTaskIndex + 1,\n type,\n identity: context.security.getIdentity()\n },\n description: \"Import forms - process - subtask\"\n });\n }\n }\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":"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"}
@@ -40,4 +40,6 @@ async function importForm({
40
40
  log(`Remove form contents from S3...`);
41
41
  await (0, _deleteS3Folder.deleteS3Folder)(_path.default.dirname(fileUploadsData.data));
42
42
  return form;
43
- }
43
+ }
44
+
45
+ //# sourceMappingURL=importForm.js.map
@@ -36,4 +36,6 @@ var _default = configuration => {
36
36
  });
37
37
  });
38
38
  };
39
- exports.default = _default;
39
+ exports.default = _default;
40
+
41
+ //# sourceMappingURL=index.js.map
@@ -89,4 +89,6 @@ function updateImageInPageSettings(params) {
89
89
  }
90
90
  }
91
91
  return newSettings;
92
- }
92
+ }
93
+
94
+ //# sourceMappingURL=importPage.js.map
@@ -180,4 +180,6 @@ const pagesHandler = async (configuration, payload, context) => {
180
180
  error: null
181
181
  };
182
182
  };
183
- exports.pagesHandler = pagesHandler;
183
+ exports.pagesHandler = pagesHandler;
184
+
185
+ //# sourceMappingURL=pagesHandler.js.map
@@ -63,4 +63,6 @@ async function importTemplate({
63
63
  log(`Remove template contents from S3...`);
64
64
  await (0, _deleteS3Folder.deleteS3Folder)(_path.default.dirname(fileUploadsData.data));
65
65
  return template;
66
- }
66
+ }
67
+
68
+ //# sourceMappingURL=importTemplate.js.map
@@ -167,4 +167,6 @@ const templatesHandler = async (configuration, payload, context) => {
167
167
  error: null
168
168
  };
169
169
  };
170
- exports.templatesHandler = templatesHandler;
170
+ exports.templatesHandler = templatesHandler;
171
+
172
+ //# sourceMappingURL=templatesHandler.js.map
@@ -16,4 +16,6 @@ async function deleteS3Folder(key) {
16
16
  const deleteFilePromises = keys.map(key => _s3Stream.s3Stream.deleteObject(key));
17
17
  await Promise.all(deleteFilePromises);
18
18
  console.log(`Successfully deleted ${deleteFilePromises.length} files.`);
19
- }
19
+ }
20
+
21
+ //# sourceMappingURL=deleteS3Folder.js.map
@@ -119,4 +119,6 @@ function extractZipToDisk(exportFileZipPath) {
119
119
  });
120
120
  });
121
121
  });
122
- }
122
+ }
123
+
124
+ //# sourceMappingURL=extractAndUploadZipFileContents.js.map
@@ -95,4 +95,6 @@ function extractZipAndUploadToS3(dataZipFilePath, uniquePath) {
95
95
  });
96
96
  });
97
97
  });
98
- }
98
+ }
99
+
100
+ //# sourceMappingURL=extractZipAndUploadToS3.js.map
@@ -8,4 +8,6 @@ exports.getFileNameWithoutExt = getFileNameWithoutExt;
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
  function getFileNameWithoutExt(fileName) {
10
10
  return _path.default.basename(fileName).replace(_path.default.extname(fileName), "");
11
- }
11
+ }
12
+
13
+ //# sourceMappingURL=getFileNameWithoutExt.js.map
@@ -101,4 +101,6 @@ Object.keys(_deleteS3Folder).forEach(function (key) {
101
101
  return _deleteS3Folder[key];
102
102
  }
103
103
  });
104
- });
104
+ });
105
+
106
+ //# sourceMappingURL=index.js.map
@@ -13,4 +13,6 @@ function initialStats(total) {
13
13
  [_types.ImportExportTaskStatus.FAILED]: 0,
14
14
  total
15
15
  };
16
- }
16
+ }
17
+
18
+ //# sourceMappingURL=initialStats.js.map
@@ -26,4 +26,6 @@ function prepareDataDirMap({
26
26
  map = _dotPropImmutable.default.set(map, `data`, newKey);
27
27
  }
28
28
  return map;
29
- }
29
+ }
30
+
31
+ //# sourceMappingURL=prepareDataDirMap.js.map
@@ -46,4 +46,6 @@ function updateFilesInData({
46
46
  });
47
47
  }
48
48
  }
49
- }
49
+ }
50
+
51
+ //# sourceMappingURL=updateFilesInData.js.map