@webiny/api-page-builder-import-export 0.0.0-mt-3 → 0.0.0-unstable.13771d80a8

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 (191) hide show
  1. package/client.d.ts +8 -0
  2. package/client.js +43 -0
  3. package/client.js.map +1 -0
  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/export/combine/index.d.ts +16 -0
  11. package/export/combine/index.js +40 -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 +162 -0
  21. package/export/process/blocksHandler.js.map +1 -0
  22. package/export/process/formsHandler.d.ts +6 -0
  23. package/export/process/formsHandler.js +187 -0
  24. package/export/process/formsHandler.js.map +1 -0
  25. package/export/process/index.d.ts +20 -0
  26. package/export/process/index.js +37 -0
  27. package/export/process/index.js.map +1 -0
  28. package/export/process/pagesHandler.d.ts +6 -0
  29. package/export/process/pagesHandler.js +189 -0
  30. package/export/process/pagesHandler.js.map +1 -0
  31. package/export/process/templatesHandler.d.ts +6 -0
  32. package/export/process/templatesHandler.js +166 -0
  33. package/export/process/templatesHandler.js.map +1 -0
  34. package/{exportPages → export}/s3Stream.d.ts +7 -2
  35. package/{exportPages → export}/s3Stream.js +12 -24
  36. package/export/s3Stream.js.map +1 -0
  37. package/export/utils.d.ts +29 -0
  38. package/export/utils.js +188 -0
  39. package/export/utils.js.map +1 -0
  40. package/{exportPages → export}/zipper.d.ts +7 -5
  41. package/{exportPages → export}/zipper.js +40 -53
  42. package/export/zipper.js.map +1 -0
  43. package/graphql/crud/blocks.crud.d.ts +4 -0
  44. package/graphql/crud/blocks.crud.js +136 -0
  45. package/graphql/crud/blocks.crud.js.map +1 -0
  46. package/graphql/crud/forms.crud.d.ts +4 -0
  47. package/graphql/crud/forms.crud.js +129 -0
  48. package/graphql/crud/forms.crud.js.map +1 -0
  49. package/graphql/crud/importExportTasks.crud.d.ts +5 -0
  50. package/graphql/crud/{pageImportExportTasks.crud.js → importExportTasks.crud.js} +87 -118
  51. package/graphql/crud/importExportTasks.crud.js.map +1 -0
  52. package/graphql/crud/pages.crud.d.ts +3 -3
  53. package/graphql/crud/pages.crud.js +64 -70
  54. package/graphql/crud/pages.crud.js.map +1 -0
  55. package/graphql/crud/templates.crud.d.ts +4 -0
  56. package/graphql/crud/templates.crud.js +124 -0
  57. package/graphql/crud/templates.crud.js.map +1 -0
  58. package/graphql/crud.d.ts +2 -2
  59. package/graphql/crud.js +6 -8
  60. package/graphql/crud.js.map +1 -0
  61. package/graphql/graphql/blocks.gql.d.ts +4 -0
  62. package/graphql/graphql/blocks.gql.js +52 -0
  63. package/graphql/graphql/blocks.gql.js.map +1 -0
  64. package/graphql/graphql/forms.gql.d.ts +4 -0
  65. package/graphql/graphql/forms.gql.js +60 -0
  66. package/graphql/graphql/forms.gql.js.map +1 -0
  67. package/graphql/graphql/importExportTasks.gql.d.ts +4 -0
  68. package/graphql/graphql/{pageImportExportTasks.gql.js → importExportTasks.gql.js} +19 -24
  69. package/graphql/graphql/importExportTasks.gql.js.map +1 -0
  70. package/graphql/graphql/pages.gql.d.ts +2 -2
  71. package/graphql/graphql/pages.gql.js +5 -14
  72. package/graphql/graphql/pages.gql.js.map +1 -0
  73. package/graphql/graphql/templates.gql.d.ts +4 -0
  74. package/graphql/graphql/templates.gql.js +52 -0
  75. package/graphql/graphql/templates.gql.js.map +1 -0
  76. package/graphql/graphql/utils/resolve.d.ts +1 -1
  77. package/graphql/graphql/utils/resolve.js +0 -3
  78. package/graphql/graphql/utils/resolve.js.map +1 -0
  79. package/graphql/graphql.d.ts +1 -1
  80. package/graphql/graphql.js +6 -7
  81. package/graphql/graphql.js.map +1 -0
  82. package/graphql/index.d.ts +2 -2
  83. package/graphql/index.js +1 -6
  84. package/graphql/index.js.map +1 -0
  85. package/graphql/types.d.ts +86 -27
  86. package/graphql/types.js.map +1 -0
  87. package/import/constants.d.ts +3 -0
  88. package/import/constants.js +14 -0
  89. package/import/constants.js.map +1 -0
  90. package/import/create/blocksHandler.d.ts +3 -0
  91. package/import/create/blocksHandler.js +101 -0
  92. package/import/create/blocksHandler.js.map +1 -0
  93. package/import/create/formsHandler.d.ts +3 -0
  94. package/import/create/formsHandler.js +103 -0
  95. package/import/create/formsHandler.js.map +1 -0
  96. package/import/create/index.d.ts +24 -0
  97. package/import/create/index.js +40 -0
  98. package/import/create/index.js.map +1 -0
  99. package/import/create/pagesHandler.d.ts +3 -0
  100. package/import/create/pagesHandler.js +103 -0
  101. package/import/create/pagesHandler.js.map +1 -0
  102. package/import/create/templatesHandler.d.ts +3 -0
  103. package/import/create/templatesHandler.js +99 -0
  104. package/import/create/templatesHandler.js.map +1 -0
  105. package/import/process/blocks/blocksHandler.d.ts +3 -0
  106. package/import/process/blocks/blocksHandler.js +169 -0
  107. package/import/process/blocks/blocksHandler.js.map +1 -0
  108. package/import/process/blocks/importBlock.d.ts +11 -0
  109. package/import/process/blocks/importBlock.js +89 -0
  110. package/import/process/blocks/importBlock.js.map +1 -0
  111. package/import/process/blocksHandler.d.ts +3 -0
  112. package/import/process/blocksHandler.js +175 -0
  113. package/import/process/blocksHandler.js.map +1 -0
  114. package/import/process/forms/formsHandler.d.ts +3 -0
  115. package/import/process/forms/formsHandler.js +176 -0
  116. package/import/process/forms/formsHandler.js.map +1 -0
  117. package/import/process/forms/importForm.d.ts +9 -0
  118. package/import/process/forms/importForm.js +43 -0
  119. package/import/process/forms/importForm.js.map +1 -0
  120. package/import/process/index.d.ts +20 -0
  121. package/import/process/index.js +37 -0
  122. package/import/process/index.js.map +1 -0
  123. package/import/process/pages/importPage.d.ts +11 -0
  124. package/import/process/pages/importPage.js +92 -0
  125. package/import/process/pages/importPage.js.map +1 -0
  126. package/import/process/pages/pagesHandler.d.ts +3 -0
  127. package/import/process/pages/pagesHandler.js +183 -0
  128. package/import/process/pages/pagesHandler.js.map +1 -0
  129. package/import/process/pagesHandler.d.ts +3 -0
  130. package/import/process/pagesHandler.js +180 -0
  131. package/import/process/pagesHandler.js.map +1 -0
  132. package/import/process/templates/importTemplate.d.ts +11 -0
  133. package/import/process/templates/importTemplate.js +66 -0
  134. package/import/process/templates/importTemplate.js.map +1 -0
  135. package/import/process/templates/templatesHandler.d.ts +3 -0
  136. package/import/process/templates/templatesHandler.js +170 -0
  137. package/import/process/templates/templatesHandler.js.map +1 -0
  138. package/import/utils/deleteS3Folder.d.ts +1 -0
  139. package/import/utils/deleteS3Folder.js +19 -0
  140. package/import/utils/deleteS3Folder.js.map +1 -0
  141. package/import/utils/extractAndUploadZipFileContents.d.ts +7 -0
  142. package/import/utils/extractAndUploadZipFileContents.js +122 -0
  143. package/import/utils/extractAndUploadZipFileContents.js.map +1 -0
  144. package/import/utils/extractZipAndUploadToS3.d.ts +2 -0
  145. package/import/utils/extractZipAndUploadToS3.js +98 -0
  146. package/import/utils/extractZipAndUploadToS3.js.map +1 -0
  147. package/import/utils/getFileNameWithoutExt.d.ts +1 -0
  148. package/import/utils/getFileNameWithoutExt.js +11 -0
  149. package/import/utils/getFileNameWithoutExt.js.map +1 -0
  150. package/import/utils/index.d.ts +9 -0
  151. package/import/utils/index.js +104 -0
  152. package/import/utils/index.js.map +1 -0
  153. package/import/utils/initialStats.d.ts +7 -0
  154. package/import/utils/initialStats.js +16 -0
  155. package/import/utils/initialStats.js.map +1 -0
  156. package/import/utils/prepareDataDirMap.d.ts +6 -0
  157. package/import/utils/prepareDataDirMap.js +29 -0
  158. package/import/utils/prepareDataDirMap.js.map +1 -0
  159. package/import/utils/updateFilesInData.d.ts +8 -0
  160. package/import/utils/updateFilesInData.js +48 -0
  161. package/import/utils/updateFilesInData.js.map +1 -0
  162. package/import/utils/uploadAssets.d.ts +10 -0
  163. package/import/utils/uploadAssets.js +58 -0
  164. package/import/utils/uploadAssets.js.map +1 -0
  165. package/import/utils/uploadFilesFromS3.d.ts +3 -0
  166. package/import/utils/uploadFilesFromS3.js +19 -0
  167. package/import/utils/uploadFilesFromS3.js.map +1 -0
  168. package/import/utils.d.ts +49 -0
  169. package/{importPages → import}/utils.js +191 -89
  170. package/import/utils.js.map +1 -0
  171. package/mockSecurity.js +0 -2
  172. package/mockSecurity.js.map +1 -0
  173. package/package.json +37 -34
  174. package/types.d.ts +91 -72
  175. package/types.js +17 -22
  176. package/types.js.map +1 -0
  177. package/exportPages/combine/index.d.ts +0 -19
  178. package/exportPages/combine/index.js +0 -88
  179. package/exportPages/process/index.d.ts +0 -26
  180. package/exportPages/process/index.js +0 -204
  181. package/exportPages/utils.d.ts +0 -13
  182. package/exportPages/utils.js +0 -113
  183. package/graphql/crud/pageImportExportTasks.crud.d.ts +0 -5
  184. package/graphql/graphql/pageImportExportTasks.gql.d.ts +0 -4
  185. package/importPages/client.d.ts +0 -7
  186. package/importPages/client.js +0 -40
  187. package/importPages/create/index.d.ts +0 -27
  188. package/importPages/create/index.js +0 -109
  189. package/importPages/process/index.d.ts +0 -25
  190. package/importPages/process/index.js +0 -183
  191. package/importPages/utils.d.ts +0 -43
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.initialStats = initialStats;
7
+ var _types = require("../../types");
8
+ function initialStats(total) {
9
+ return {
10
+ [_types.ImportExportTaskStatus.PENDING]: total,
11
+ [_types.ImportExportTaskStatus.PROCESSING]: 0,
12
+ [_types.ImportExportTaskStatus.COMPLETED]: 0,
13
+ [_types.ImportExportTaskStatus.FAILED]: 0,
14
+ total
15
+ };
16
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["initialStats","total","ImportExportTaskStatus","PENDING","PROCESSING","COMPLETED","FAILED"],"sources":["initialStats.ts"],"sourcesContent":["import { ImportExportTaskStatus } from \"~/types\";\n\nexport function initialStats(total: number) {\n return {\n [ImportExportTaskStatus.PENDING]: total,\n [ImportExportTaskStatus.PROCESSING]: 0,\n [ImportExportTaskStatus.COMPLETED]: 0,\n [ImportExportTaskStatus.FAILED]: 0,\n total\n };\n}\n"],"mappings":";;;;;;AAAA;AAEO,SAASA,YAAY,CAACC,KAAa,EAAE;EACxC,OAAO;IACH,CAACC,6BAAsB,CAACC,OAAO,GAAGF,KAAK;IACvC,CAACC,6BAAsB,CAACE,UAAU,GAAG,CAAC;IACtC,CAACF,6BAAsB,CAACG,SAAS,GAAG,CAAC;IACrC,CAACH,6BAAsB,CAACI,MAAM,GAAG,CAAC;IAClCL;EACJ,CAAC;AACL"}
@@ -0,0 +1,6 @@
1
+ import { ImportData } from "../../types";
2
+ export declare function prepareDataDirMap({ map, filePath, newKey }: {
3
+ map: ImportData;
4
+ filePath: string;
5
+ newKey: string;
6
+ }): ImportData;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.prepareDataDirMap = prepareDataDirMap;
8
+ var _dotPropImmutable = _interopRequireDefault(require("dot-prop-immutable"));
9
+ var _constants = require("../constants");
10
+ function prepareDataDirMap({
11
+ map,
12
+ filePath,
13
+ newKey
14
+ }) {
15
+ const isAsset = filePath.includes(_constants.ASSETS_DIR_NAME);
16
+ if (isAsset) {
17
+ /*
18
+ * We want to use dot (.) as part of object key rather than creating nested object(s).
19
+ * Also, the file name might contain dots in it beside the extension, so, we are escaping them all.
20
+ */
21
+ const assetKey = filePath.split(`${_constants.ASSETS_DIR_NAME}/`).pop();
22
+ const oldKey = assetKey.replace(/\./g, "\\.");
23
+ map = _dotPropImmutable.default.set(map, `assets.${oldKey}`, newKey);
24
+ } else {
25
+ // We only need to know the newKey for data file.
26
+ map = _dotPropImmutable.default.set(map, `data`, newKey);
27
+ }
28
+ return map;
29
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["prepareDataDirMap","map","filePath","newKey","isAsset","includes","ASSETS_DIR_NAME","assetKey","split","pop","oldKey","replace","dotProp","set"],"sources":["prepareDataDirMap.ts"],"sourcesContent":["import dotProp from \"dot-prop-immutable\";\nimport { ImportData } from \"~/types\";\nimport { ASSETS_DIR_NAME } from \"~/import/constants\";\n\nexport function prepareDataDirMap({\n map,\n filePath,\n newKey\n}: {\n map: ImportData;\n filePath: string;\n newKey: string;\n}): ImportData {\n const isAsset = filePath.includes(ASSETS_DIR_NAME);\n\n if (isAsset) {\n /*\n * We want to use dot (.) as part of object key rather than creating nested object(s).\n * Also, the file name might contain dots in it beside the extension, so, we are escaping them all.\n */\n const assetKey = filePath.split(`${ASSETS_DIR_NAME}/`).pop() as string;\n const oldKey = assetKey.replace(/\\./g, \"\\\\.\");\n\n map = dotProp.set(map, `assets.${oldKey}`, newKey);\n } else {\n // We only need to know the newKey for data file.\n map = dotProp.set(map, `data`, newKey);\n }\n\n return map;\n}\n"],"mappings":";;;;;;;AAAA;AAEA;AAEO,SAASA,iBAAiB,CAAC;EAC9BC,GAAG;EACHC,QAAQ;EACRC;AAKJ,CAAC,EAAc;EACX,MAAMC,OAAO,GAAGF,QAAQ,CAACG,QAAQ,CAACC,0BAAe,CAAC;EAElD,IAAIF,OAAO,EAAE;IACT;AACR;AACA;AACA;IACQ,MAAMG,QAAQ,GAAGL,QAAQ,CAACM,KAAK,CAAE,GAAEF,0BAAgB,GAAE,CAAC,CAACG,GAAG,EAAY;IACtE,MAAMC,MAAM,GAAGH,QAAQ,CAACI,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;IAE7CV,GAAG,GAAGW,yBAAO,CAACC,GAAG,CAACZ,GAAG,EAAG,UAASS,MAAO,EAAC,EAAEP,MAAM,CAAC;EACtD,CAAC,MAAM;IACH;IACAF,GAAG,GAAGW,yBAAO,CAACC,GAAG,CAACZ,GAAG,EAAG,MAAK,EAAEE,MAAM,CAAC;EAC1C;EAEA,OAAOF,GAAG;AACd"}
@@ -0,0 +1,8 @@
1
+ import { FileInput } from "@webiny/api-file-manager/types";
2
+ interface UpdateFilesInDataParams {
3
+ data: Record<string, any>;
4
+ fileIdToNewFileMap: Map<string, FileInput>;
5
+ srcPrefix: string;
6
+ }
7
+ export declare function updateFilesInData({ data, fileIdToNewFileMap, srcPrefix }: UpdateFilesInDataParams): void;
8
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updateFilesInData = updateFilesInData;
7
+ function updateFilesInData({
8
+ data,
9
+ fileIdToNewFileMap,
10
+ srcPrefix
11
+ }) {
12
+ if (!data || typeof data !== "object") {
13
+ return;
14
+ }
15
+ // Recursively call function if data is array
16
+ if (Array.isArray(data)) {
17
+ for (let i = 0; i < data.length; i++) {
18
+ const element = data[i];
19
+ updateFilesInData({
20
+ data: element,
21
+ fileIdToNewFileMap,
22
+ srcPrefix
23
+ });
24
+ }
25
+ return;
26
+ }
27
+ // Main logic
28
+ const tuple = Object.entries(data);
29
+ for (let i = 0; i < tuple.length; i++) {
30
+ const [key, value] = tuple[i];
31
+ if (key === "file" && value && fileIdToNewFileMap.has(value.id)) {
32
+ const newFile = fileIdToNewFileMap.get(value.id);
33
+ if (!newFile) {
34
+ continue;
35
+ }
36
+ const cleanSrcPrefix = srcPrefix.endsWith("/") ? srcPrefix.slice(0, -1) : srcPrefix;
37
+ value.key = newFile.key;
38
+ value.name = newFile.name;
39
+ value.src = `${cleanSrcPrefix}/${newFile.key}`;
40
+ } else {
41
+ updateFilesInData({
42
+ data: value,
43
+ srcPrefix,
44
+ fileIdToNewFileMap
45
+ });
46
+ }
47
+ }
48
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["updateFilesInData","data","fileIdToNewFileMap","srcPrefix","Array","isArray","i","length","element","tuple","Object","entries","key","value","has","id","newFile","get","cleanSrcPrefix","endsWith","slice","name","src"],"sources":["updateFilesInData.ts"],"sourcesContent":["import { FileInput } from \"@webiny/api-file-manager/types\";\n\ninterface UpdateFilesInDataParams {\n data: Record<string, any>;\n fileIdToNewFileMap: Map<string, FileInput>;\n srcPrefix: string;\n}\n\nexport function updateFilesInData({\n data,\n fileIdToNewFileMap,\n srcPrefix\n}: UpdateFilesInDataParams) {\n if (!data || typeof data !== \"object\") {\n return;\n }\n // Recursively call function if data is array\n if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n const element = data[i];\n updateFilesInData({ data: element, fileIdToNewFileMap, srcPrefix });\n }\n return;\n }\n // Main logic\n const tuple = Object.entries(data);\n for (let i = 0; i < tuple.length; i++) {\n const [key, value] = tuple[i];\n\n if (key === \"file\" && value && fileIdToNewFileMap.has(value.id)) {\n const newFile = fileIdToNewFileMap.get(value.id);\n if (!newFile) {\n continue;\n }\n\n const cleanSrcPrefix = srcPrefix.endsWith(\"/\") ? srcPrefix.slice(0, -1) : srcPrefix;\n\n value.key = newFile.key;\n value.name = newFile.name;\n value.src = `${cleanSrcPrefix}/${newFile.key}`;\n } else {\n updateFilesInData({ data: value, srcPrefix, fileIdToNewFileMap });\n }\n }\n}\n"],"mappings":";;;;;;AAQO,SAASA,iBAAiB,CAAC;EAC9BC,IAAI;EACJC,kBAAkB;EAClBC;AACqB,CAAC,EAAE;EACxB,IAAI,CAACF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACnC;EACJ;EACA;EACA,IAAIG,KAAK,CAACC,OAAO,CAACJ,IAAI,CAAC,EAAE;IACrB,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,IAAI,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;MAClC,MAAME,OAAO,GAAGP,IAAI,CAACK,CAAC,CAAC;MACvBN,iBAAiB,CAAC;QAAEC,IAAI,EAAEO,OAAO;QAAEN,kBAAkB;QAAEC;MAAU,CAAC,CAAC;IACvE;IACA;EACJ;EACA;EACA,MAAMM,KAAK,GAAGC,MAAM,CAACC,OAAO,CAACV,IAAI,CAAC;EAClC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGG,KAAK,CAACF,MAAM,EAAED,CAAC,EAAE,EAAE;IACnC,MAAM,CAACM,GAAG,EAAEC,KAAK,CAAC,GAAGJ,KAAK,CAACH,CAAC,CAAC;IAE7B,IAAIM,GAAG,KAAK,MAAM,IAAIC,KAAK,IAAIX,kBAAkB,CAACY,GAAG,CAACD,KAAK,CAACE,EAAE,CAAC,EAAE;MAC7D,MAAMC,OAAO,GAAGd,kBAAkB,CAACe,GAAG,CAACJ,KAAK,CAACE,EAAE,CAAC;MAChD,IAAI,CAACC,OAAO,EAAE;QACV;MACJ;MAEA,MAAME,cAAc,GAAGf,SAAS,CAACgB,QAAQ,CAAC,GAAG,CAAC,GAAGhB,SAAS,CAACiB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGjB,SAAS;MAEnFU,KAAK,CAACD,GAAG,GAAGI,OAAO,CAACJ,GAAG;MACvBC,KAAK,CAACQ,IAAI,GAAGL,OAAO,CAACK,IAAI;MACzBR,KAAK,CAACS,GAAG,GAAI,GAAEJ,cAAe,IAAGF,OAAO,CAACJ,GAAI,EAAC;IAClD,CAAC,MAAM;MACHZ,iBAAiB,CAAC;QAAEC,IAAI,EAAEY,KAAK;QAAEV,SAAS;QAAED;MAAmB,CAAC,CAAC;IACrE;EACJ;AACJ"}
@@ -0,0 +1,10 @@
1
+ import { PbImportExportContext } from "../../graphql/types";
2
+ import { File, FileInput } from "@webiny/api-file-manager/types";
3
+ import { FileUploadsData } from "../../types";
4
+ interface UploadAssetsParams {
5
+ context: PbImportExportContext;
6
+ files: File[];
7
+ fileUploadsData: FileUploadsData;
8
+ }
9
+ export declare const uploadAssets: (params: UploadAssetsParams) => Promise<Map<string, FileInput>>;
10
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.uploadAssets = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _mdbid = _interopRequireDefault(require("mdbid"));
10
+ var _chunk = _interopRequireDefault(require("lodash/chunk"));
11
+ var _uploadFilesFromS = require("./uploadFilesFromS3");
12
+ // @ts-ignore
13
+
14
+ const FILES_COUNT_IN_EACH_BATCH = 15;
15
+ const uploadAssets = async params => {
16
+ const {
17
+ context,
18
+ files,
19
+ fileUploadsData
20
+ } = params;
21
+ const oldIdToNewFileMap = new Map();
22
+
23
+ /**
24
+ * This function contains logic of file download from S3.
25
+ * Current we're not mocking zip file download from S3 in tests at the moment.
26
+ * So, we're manually mocking it in case of test just by returning an empty object.
27
+ */
28
+ if (process.env.NODE_ENV === "test") {
29
+ return oldIdToNewFileMap;
30
+ }
31
+
32
+ // A map of temporary file keys (created during ZIP upload) to permanent file keys.
33
+ const uploadFileMap = new Map();
34
+
35
+ // Array of file inputs, to insert into the DB.
36
+ const createFilesInput = [];
37
+ for (const oldFile of files) {
38
+ const id = (0, _mdbid.default)();
39
+ // We replace the old file ID with a new one.
40
+ const newKey = `${id}/${oldFile.key.replace(`${oldFile.id}/`, "")}`;
41
+ const newFile = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, oldFile), {}, {
42
+ id,
43
+ key: newKey
44
+ });
45
+ createFilesInput.push(newFile);
46
+ oldIdToNewFileMap.set(oldFile.id, newFile);
47
+ uploadFileMap.set(fileUploadsData.assets[oldFile.key], newFile);
48
+ }
49
+ await (0, _uploadFilesFromS.uploadFilesFromS3)(uploadFileMap);
50
+
51
+ // Gives an array of chunks (each consists of FILES_COUNT_IN_EACH_BATCH items).
52
+ const createFilesInputChunks = (0, _chunk.default)(createFilesInput, FILES_COUNT_IN_EACH_BATCH);
53
+ for (const inputChunk of createFilesInputChunks) {
54
+ await context.fileManager.createFilesInBatch(inputChunk);
55
+ }
56
+ return oldIdToNewFileMap;
57
+ };
58
+ exports.uploadAssets = uploadAssets;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FILES_COUNT_IN_EACH_BATCH","uploadAssets","params","context","files","fileUploadsData","oldIdToNewFileMap","Map","process","env","NODE_ENV","uploadFileMap","createFilesInput","oldFile","id","mdbid","newKey","key","replace","newFile","push","set","assets","uploadFilesFromS3","createFilesInputChunks","chunk","inputChunk","fileManager","createFilesInBatch"],"sources":["uploadAssets.ts"],"sourcesContent":["// @ts-ignore\nimport mdbid from \"mdbid\";\nimport chunk from \"lodash/chunk\";\nimport { PbImportExportContext } from \"~/graphql/types\";\nimport { File, FileInput } from \"@webiny/api-file-manager/types\";\nimport { UploadFileMap, uploadFilesFromS3 } from \"~/import/utils/uploadFilesFromS3\";\nimport { FileUploadsData } from \"~/types\";\n\nconst FILES_COUNT_IN_EACH_BATCH = 15;\n\ninterface UploadAssetsParams {\n context: PbImportExportContext;\n files: File[];\n fileUploadsData: FileUploadsData;\n}\n\nexport const uploadAssets = async (params: UploadAssetsParams) => {\n const { context, files, fileUploadsData } = params;\n\n const oldIdToNewFileMap = new Map<string, FileInput>();\n\n /**\n * This function contains logic of file download from S3.\n * Current we're not mocking zip file download from S3 in tests at the moment.\n * So, we're manually mocking it in case of test just by returning an empty object.\n */\n if (process.env.NODE_ENV === \"test\") {\n return oldIdToNewFileMap;\n }\n\n // A map of temporary file keys (created during ZIP upload) to permanent file keys.\n const uploadFileMap: UploadFileMap = new Map();\n\n // Array of file inputs, to insert into the DB.\n const createFilesInput: FileInput[] = [];\n\n for (const oldFile of files) {\n const id = mdbid();\n // We replace the old file ID with a new one.\n const newKey = `${id}/${oldFile.key.replace(`${oldFile.id}/`, \"\")}`;\n const newFile: FileInput = { ...oldFile, id, key: newKey };\n\n createFilesInput.push(newFile);\n oldIdToNewFileMap.set(oldFile.id, newFile);\n uploadFileMap.set(fileUploadsData.assets[oldFile.key], newFile);\n }\n\n await uploadFilesFromS3(uploadFileMap);\n\n // Gives an array of chunks (each consists of FILES_COUNT_IN_EACH_BATCH items).\n const createFilesInputChunks = chunk(createFilesInput, FILES_COUNT_IN_EACH_BATCH);\n for (const inputChunk of createFilesInputChunks) {\n await context.fileManager.createFilesInBatch(inputChunk);\n }\n\n return oldIdToNewFileMap;\n};\n"],"mappings":";;;;;;;;AACA;AACA;AAGA;AALA;;AAQA,MAAMA,yBAAyB,GAAG,EAAE;AAQ7B,MAAMC,YAAY,GAAG,MAAOC,MAA0B,IAAK;EAC9D,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC;EAAgB,CAAC,GAAGH,MAAM;EAElD,MAAMI,iBAAiB,GAAG,IAAIC,GAAG,EAAqB;;EAEtD;AACJ;AACA;AACA;AACA;EACI,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;IACjC,OAAOJ,iBAAiB;EAC5B;;EAEA;EACA,MAAMK,aAA4B,GAAG,IAAIJ,GAAG,EAAE;;EAE9C;EACA,MAAMK,gBAA6B,GAAG,EAAE;EAExC,KAAK,MAAMC,OAAO,IAAIT,KAAK,EAAE;IACzB,MAAMU,EAAE,GAAG,IAAAC,cAAK,GAAE;IAClB;IACA,MAAMC,MAAM,GAAI,GAAEF,EAAG,IAAGD,OAAO,CAACI,GAAG,CAACC,OAAO,CAAE,GAAEL,OAAO,CAACC,EAAG,GAAE,EAAE,EAAE,CAAE,EAAC;IACnE,MAAMK,OAAkB,+DAAQN,OAAO;MAAEC,EAAE;MAAEG,GAAG,EAAED;IAAM,EAAE;IAE1DJ,gBAAgB,CAACQ,IAAI,CAACD,OAAO,CAAC;IAC9Bb,iBAAiB,CAACe,GAAG,CAACR,OAAO,CAACC,EAAE,EAAEK,OAAO,CAAC;IAC1CR,aAAa,CAACU,GAAG,CAAChB,eAAe,CAACiB,MAAM,CAACT,OAAO,CAACI,GAAG,CAAC,EAAEE,OAAO,CAAC;EACnE;EAEA,MAAM,IAAAI,mCAAiB,EAACZ,aAAa,CAAC;;EAEtC;EACA,MAAMa,sBAAsB,GAAG,IAAAC,cAAK,EAACb,gBAAgB,EAAEZ,yBAAyB,CAAC;EACjF,KAAK,MAAM0B,UAAU,IAAIF,sBAAsB,EAAE;IAC7C,MAAMrB,OAAO,CAACwB,WAAW,CAACC,kBAAkB,CAACF,UAAU,CAAC;EAC5D;EAEA,OAAOpB,iBAAiB;AAC5B,CAAC;AAAC"}
@@ -0,0 +1,3 @@
1
+ import { FileInput } from "@webiny/api-file-manager/types";
2
+ export declare type UploadFileMap = Map<string, FileInput>;
3
+ export declare function uploadFilesFromS3(fileMap: UploadFileMap): Promise<import("aws-sdk/clients/s3").ManagedUpload.SendData[]>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.uploadFilesFromS3 = uploadFilesFromS3;
7
+ var _s3Stream = require("../../export/s3Stream");
8
+ async function uploadFilesFromS3(fileMap) {
9
+ const promises = [];
10
+ for (const [source, target] of Array.from(fileMap.entries())) {
11
+ // Read file.
12
+ const readStream = _s3Stream.s3Stream.readStream(source);
13
+ const ws = _s3Stream.s3Stream.writeStream(target.key, target.type);
14
+ readStream.pipe(ws.streamPassThrough);
15
+ promises.push(ws.streamPassThroughUploadPromise);
16
+ console.log(`Successfully queued file "${target.key}"`);
17
+ }
18
+ return Promise.all(promises);
19
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["uploadFilesFromS3","fileMap","promises","source","target","Array","from","entries","readStream","s3Stream","ws","writeStream","key","type","pipe","streamPassThrough","push","streamPassThroughUploadPromise","console","log","Promise","all"],"sources":["uploadFilesFromS3.ts"],"sourcesContent":["import { s3Stream } from \"~/export/s3Stream\";\nimport { FileInput } from \"@webiny/api-file-manager/types\";\n\nexport type UploadFileMap = Map<string, FileInput>;\n\nexport async function uploadFilesFromS3(fileMap: UploadFileMap) {\n const promises = [];\n for (const [source, target] of Array.from(fileMap.entries())) {\n // Read file.\n const readStream = s3Stream.readStream(source);\n\n const ws = s3Stream.writeStream(target.key, target.type);\n readStream.pipe(ws.streamPassThrough);\n promises.push(ws.streamPassThroughUploadPromise);\n\n console.log(`Successfully queued file \"${target.key}\"`);\n }\n\n return Promise.all(promises);\n}\n"],"mappings":";;;;;;AAAA;AAKO,eAAeA,iBAAiB,CAACC,OAAsB,EAAE;EAC5D,MAAMC,QAAQ,GAAG,EAAE;EACnB,KAAK,MAAM,CAACC,MAAM,EAAEC,MAAM,CAAC,IAAIC,KAAK,CAACC,IAAI,CAACL,OAAO,CAACM,OAAO,EAAE,CAAC,EAAE;IAC1D;IACA,MAAMC,UAAU,GAAGC,kBAAQ,CAACD,UAAU,CAACL,MAAM,CAAC;IAE9C,MAAMO,EAAE,GAAGD,kBAAQ,CAACE,WAAW,CAACP,MAAM,CAACQ,GAAG,EAAER,MAAM,CAACS,IAAI,CAAC;IACxDL,UAAU,CAACM,IAAI,CAACJ,EAAE,CAACK,iBAAiB,CAAC;IACrCb,QAAQ,CAACc,IAAI,CAACN,EAAE,CAACO,8BAA8B,CAAC;IAEhDC,OAAO,CAACC,GAAG,CAAE,6BAA4Bf,MAAM,CAACQ,GAAI,GAAE,CAAC;EAC3D;EAEA,OAAOQ,OAAO,CAACC,GAAG,CAACnB,QAAQ,CAAC;AAChC"}
@@ -0,0 +1,49 @@
1
+ import { File } from "@webiny/api-file-manager/types";
2
+ import { PbImportExportContext } from "../graphql/types";
3
+ import { ExportedPageData, ExportedBlockData } from "../export/utils";
4
+ interface UploadAssetsParams {
5
+ context: PbImportExportContext;
6
+ filesData: File[];
7
+ fileUploadsData: FileUploadsData;
8
+ }
9
+ interface UploadAssetsReturnType {
10
+ fileIdToKeyMap: Map<string, string>;
11
+ }
12
+ export declare const uploadAssets: (params: UploadAssetsParams) => Promise<UploadAssetsReturnType>;
13
+ interface FileUploadsData {
14
+ data: string;
15
+ assets: Record<string, string>;
16
+ }
17
+ interface ImportPageParams {
18
+ key: string;
19
+ pageKey: string;
20
+ context: PbImportExportContext;
21
+ fileUploadsData: FileUploadsData;
22
+ }
23
+ export declare function importPage({ pageKey, context, fileUploadsData }: ImportPageParams): Promise<ExportedPageData["page"]>;
24
+ interface ImportBlockParams {
25
+ key: string;
26
+ blockKey: string;
27
+ context: PbImportExportContext;
28
+ fileUploadsData: FileUploadsData;
29
+ }
30
+ export declare function importBlock({ blockKey, context, fileUploadsData }: ImportBlockParams): Promise<ExportedBlockData["block"]>;
31
+ interface ImportData {
32
+ assets: Record<string, string>;
33
+ data: string;
34
+ key: string;
35
+ }
36
+ /**
37
+ * Function will read the given zip file from S3 via stream, extract its content and upload it to S3 bucket.
38
+ * @param zipFileUrl
39
+ * @return ImportData S3 file keys for all uploaded assets group by page/block.
40
+ */
41
+ export declare function readExtractAndUploadZipFileContents(zipFileUrl: string): Promise<ImportData[]>;
42
+ export declare function initialStats(total: number): {
43
+ pending: number;
44
+ processing: number;
45
+ completed: number;
46
+ failed: number;
47
+ total: number;
48
+ };
49
+ export {};