@webiny/api-page-builder-import-export 5.38.0-beta.2 → 5.38.0-beta.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  import { Response, ErrorResponse } from "@webiny/handler-graphql";
2
- declare const _default: (fn: () => Promise<any>) => Promise<ErrorResponse | Response<any>>;
2
+ declare const _default: (fn: () => Promise<any>) => Promise<Response<any> | ErrorResponse>;
3
3
  export default _default;
@@ -105,7 +105,7 @@ const blocksHandler = async (configuration, payload, context) => {
105
105
  });
106
106
  prevStatusOfSubTask = subTask.status;
107
107
  } catch (e) {
108
- log("[IMPORT_BLOCKS_PROCESS] Error => ", e.message);
108
+ console.error("[IMPORT_BLOCKS_PROCESS] Error => ", e.message, JSON.stringify(e.data, null, 2));
109
109
  if (subTask && subTask.id) {
110
110
  /**
111
111
  * In case of error, we'll update the task status to "failed",
@@ -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","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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,YAAA,GAAAJ,OAAA;AAEO,MAAMK,aAAa,GAAG,MAAAA,CACzBC,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,oCAAoC,CAAC;EACzC,MAAM;IAAEO;EAAY,CAAC,GAAGR,OAAO;EAC/B,MAAM;IAAES,MAAM;IAAEC,YAAY;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGb,OAAO;EACxD;EACA;EACA,IAAAc,0BAAY,EAACD,QAAQ,EAAEZ,OAAO,CAAC;EAE/B,IAAI;IACA;AACR;AACA;AACA;;IAEQG,OAAO,GAAG,MAAMK,WAAW,CAACM,gBAAgB,CAACC,UAAU,CAACN,MAAM,EAAE,IAAAO,cAAO,EAACN,YAAY,EAAE,CAAC,CAAC,CAAC;;IAEzF;AACR;AACA;AACA;IACQ,IAAI,CAACP,OAAO,IAAIA,OAAO,CAACc,MAAM,KAAKX,6BAAsB,CAACC,OAAO,EAAE;MAC/DH,aAAa,GAAG,IAAI;MACpB,OAAO;QACHc,IAAI,EAAE,EAAE;QACRC,KAAK,EAAE;MACX,CAAC;IACL,CAAC,MAAM;MACHf,aAAa,GAAG,KAAK;IACzB;IACAC,mBAAmB,GAAGF,OAAO,CAACc,MAAM;IAEpChB,GAAG,CAAE,uBAAsBE,OAAO,CAACiB,EAAG,EAAC,CAAC;IACxClB,OAAO,CAACD,GAAG,CAAC,SAAS,EAAEE,OAAO,CAAC;IAE/B,MAAM;MAAEkB,QAAQ;MAAEC,UAAU;MAAEC;IAAM,CAAC,GAAGpB,OAAO,CAACe,IAAI;IACpD,MAAM;MAAEM;IAAgB,CAAC,GAAGD,KAAK;IAEjCtB,GAAG,CAAE,yBAAwBoB,QAAS,GAAE,CAAC;;IAEzC;IACAlB,OAAO,GAAG,MAAMK,WAAW,CAACM,gBAAgB,CAACW,aAAa,CAAChB,MAAM,EAAEN,OAAO,CAACiB,EAAE,EAAE;MAC3EH,MAAM,EAAEX,6BAAsB,CAACoB;IACnC,CAAC,CAAC;IACF;IACA,MAAMlB,WAAW,CAACM,gBAAgB,CAACa,WAAW,CAAClB,MAAM,EAAE;MACnDmB,UAAU,EAAEvB,mBAAmB;MAC/BwB,UAAU,EAAEvB,6BAAsB,CAACoB;IACvC,CAAC,CAAC;IACFrB,mBAAmB,GAAGF,OAAO,CAACc,MAAM;;IAEpC;IACA,MAAMa,KAAK,GAAG,MAAM,IAAAC,wBAAW,EAAC;MAC5B/B,OAAO;MACPqB,QAAQ;MACRW,GAAG,EAAEV,UAAU;MACfE;IACJ,CAAC,CAAC;;IAEF;IACA,MAAMS,OAAO,GAAG,MAAMjC,OAAO,CAACQ,WAAW,CAAC0B,eAAe,CAAC;MACtDC,IAAI,EAAEL,KAAK,CAACK,IAAI;MAChBC,aAAa,EAAEN,KAAK,CAACM,aAAa;MAClCC,OAAO,EAAEP,KAAK,CAACO;IACnB,CAAC,CAAC;;IAEF;IACAlC,OAAO,GAAG,MAAMK,WAAW,CAACM,gBAAgB,CAACW,aAAa,CAAChB,MAAM,EAAEN,OAAO,CAACiB,EAAE,EAAE;MAC3EH,MAAM,EAAEX,6BAAsB,CAACgC,SAAS;MACxCpB,IAAI,EAAE;QACFqB,OAAO,EAAE,MAAM;QACfT,KAAK,EAAE;UACHV,EAAE,EAAEa,OAAO,CAACb,EAAE;UACde,IAAI,EAAEF,OAAO,CAACE;QAClB;MACJ;IACJ,CAAC,CAAC;IACF;IACA,MAAM3B,WAAW,CAACM,gBAAgB,CAACa,WAAW,CAAClB,MAAM,EAAE;MACnDmB,UAAU,EAAEvB,mBAAmB;MAC/BwB,UAAU,EAAEvB,6BAAsB,CAACgC;IACvC,CAAC,CAAC;IACFjC,mBAAmB,GAAGF,OAAO,CAACc,MAAM;EACxC,CAAC,CAAC,OAAOuB,CAAC,EAAE;IACRvC,GAAG,CAAC,mCAAmC,EAAEuC,CAAC,CAACD,OAAO,CAAC;IAEnD,IAAIpC,OAAO,IAAIA,OAAO,CAACiB,EAAE,EAAE;MACvB;AACZ;AACA;AACA;MACYjB,OAAO,GAAG,MAAMK,WAAW,CAACM,gBAAgB,CAACW,aAAa,CAAChB,MAAM,EAAEN,OAAO,CAACiB,EAAE,EAAE;QAC3EH,MAAM,EAAEX,6BAAsB,CAACmC,MAAM;QACrCtB,KAAK,EAAE;UACHgB,IAAI,EAAEK,CAAC,CAACL,IAAI;UACZI,OAAO,EAAEC,CAAC,CAACD,OAAO;UAClBG,IAAI,EAAE;QACV;MACJ,CAAC,CAAC;;MAEF;MACA,MAAMlC,WAAW,CAACM,gBAAgB,CAACa,WAAW,CAAClB,MAAM,EAAE;QACnDmB,UAAU,EAAEvB,mBAAmB;QAC/BwB,UAAU,EAAEvB,6BAAsB,CAACmC;MACvC,CAAC,CAAC;MACFpC,mBAAmB,GAAGF,OAAO,CAACc,MAAM;IACxC;IAEA,OAAO;MACHC,IAAI,EAAE,IAAI;MACVC,KAAK,EAAE;QACHoB,OAAO,EAAEC,CAAC,CAACD;MACf;IACJ,CAAC;EACL,CAAC,SAAS;IACN;IACA,IAAInC,aAAa,EAAE;MACfH,GAAG,CAAE,gCAA+BQ,MAAO,EAAC,CAAC;MAE7C,MAAMD,WAAW,CAACM,gBAAgB,CAAC6B,UAAU,CAAClC,MAAM,EAAE;QAClDQ,MAAM,EAAEX,6BAAsB,CAACgC,SAAS;QACxCpB,IAAI,EAAE;UACFqB,OAAO,EAAG;QACd;MACJ,CAAC,CAAC;IACN,CAAC,MAAM;MACHtC,GAAG,CAAE,8BAA6BS,YAAY,GAAG,CAAE,GAAE,CAAC;MACtD;MACA,MAAM,IAAAkC,2BAAmB,EAAU;QAC/B5C,OAAO;QACPmC,IAAI,EAAErC,aAAa,CAAC+C,QAAQ,CAACC,OAAO;QACpC/C,OAAO,EAAE;UACLU,MAAM;UACNC,YAAY,EAAEA,YAAY,GAAG,CAAC;UAC9BC,IAAI;UACJC,QAAQ,EAAEZ,OAAO,CAAC+C,QAAQ,CAACC,WAAW,CAAC;QAC3C,CAAC;QACDC,WAAW,EAAE;MACjB,CAAC,CAAC;IACN;EACJ;EACA,OAAO;IACH/B,IAAI,EAAE,EAAE;IACRC,KAAK,EAAE;EACX,CAAC;AACL,CAAC;AAAC+B,OAAA,CAAArD,aAAA,GAAAA,aAAA"}
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","JSON","stringify","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 console.error(\n \"[IMPORT_BLOCKS_PROCESS] Error => \",\n e.message,\n JSON.stringify(e.data, null, 2)\n );\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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"}
@@ -71,6 +71,9 @@ const uploadAssets = async params => {
71
71
  const newKey = `${id}/${toImport.key.replace(`${toImport.id}/`, "")}`;
72
72
  const newFile = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, toImport), {}, {
73
73
  id,
74
+ location: {
75
+ folderId: "root"
76
+ },
74
77
  key: newKey,
75
78
  meta: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, toImport.meta), {}, {
76
79
  originalKey: toImport.key
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","_uploadFilesFromS","notAPreviouslyImportedFile","importedImages","file","some","existingImportedImage","meta","originalKey","key","notAnExistingFile","existingFiles","existingFile","uploadAssets","params","context","files","fileUploadsData","oldIdToNewFileMap","Map","process","env","NODE_ENV","fileManager","listFiles","where","originalKey_in","map","importedImage","fileBeingImported","find","set","id","id_in","newFilesToImport","filter","uploadFileMap","createFilesInput","toImport","mdbid","newKey","replace","newFile","_objectSpread2","default","push","assets","uploadFilesFromS3","createFilesInBatch","exports"],"sources":["uploadAssets.ts"],"sourcesContent":["import { mdbid } from \"@webiny/utils\";\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\ninterface UploadAssetsParams {\n context: PbImportExportContext;\n files: File[];\n fileUploadsData: FileUploadsData;\n}\n\nfunction notAPreviouslyImportedFile(importedImages: File[]) {\n return (file: File) => {\n return !importedImages.some(\n existingImportedImage => existingImportedImage.meta.originalKey === file.key\n );\n };\n}\n\nfunction notAnExistingFile(existingFiles: File[]) {\n return (file: File) => {\n return !existingFiles.some(existingFile => existingFile.key === file.key);\n };\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 // Check if the requested files were already imported in the past.\n const [importedImages] = await context.fileManager.listFiles({\n where: { meta: { originalKey_in: files.map(file => file.key) } }\n });\n\n // Link files that were already imported.\n for (const importedImage of importedImages) {\n const fileBeingImported = files.find(file => file.key === importedImage.meta.originalKey);\n\n if (fileBeingImported) {\n oldIdToNewFileMap.set(fileBeingImported.id, importedImage);\n }\n }\n\n // Check if files with such IDs already exist.\n const [existingFiles] = await context.fileManager.listFiles({\n where: { id_in: files.map(file => file.id) }\n });\n\n const newFilesToImport = files\n .filter(notAnExistingFile(existingFiles))\n .filter(notAPreviouslyImportedFile(importedImages));\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 toImport of newFilesToImport) {\n // We generate a new file id, key, and add `meta.originalKey` property to prevent duplicates on future imports.\n const id = mdbid();\n const newKey = `${id}/${toImport.key.replace(`${toImport.id}/`, \"\")}`;\n const newFile: FileInput = {\n ...toImport,\n id,\n key: newKey,\n meta: { ...toImport.meta, originalKey: toImport.key }\n };\n\n createFilesInput.push(newFile);\n oldIdToNewFileMap.set(toImport.id, newFile);\n uploadFileMap.set(fileUploadsData.assets[toImport.key], newFile);\n }\n\n await uploadFilesFromS3(uploadFileMap);\n\n await context.fileManager.createFilesInBatch(createFilesInput);\n\n return oldIdToNewFileMap;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_utils","require","_uploadFilesFromS","notAPreviouslyImportedFile","importedImages","file","some","existingImportedImage","meta","originalKey","key","notAnExistingFile","existingFiles","existingFile","uploadAssets","params","context","files","fileUploadsData","oldIdToNewFileMap","Map","process","env","NODE_ENV","fileManager","listFiles","where","originalKey_in","map","importedImage","fileBeingImported","find","set","id","id_in","newFilesToImport","filter","uploadFileMap","createFilesInput","toImport","mdbid","newKey","replace","newFile","_objectSpread2","default","location","folderId","push","assets","uploadFilesFromS3","createFilesInBatch","exports"],"sources":["uploadAssets.ts"],"sourcesContent":["import { mdbid } from \"@webiny/utils\";\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\ninterface UploadAssetsParams {\n context: PbImportExportContext;\n files: File[];\n fileUploadsData: FileUploadsData;\n}\n\nfunction notAPreviouslyImportedFile(importedImages: File[]) {\n return (file: File) => {\n return !importedImages.some(\n existingImportedImage => existingImportedImage.meta.originalKey === file.key\n );\n };\n}\n\nfunction notAnExistingFile(existingFiles: File[]) {\n return (file: File) => {\n return !existingFiles.some(existingFile => existingFile.key === file.key);\n };\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 // Check if the requested files were already imported in the past.\n const [importedImages] = await context.fileManager.listFiles({\n where: { meta: { originalKey_in: files.map(file => file.key) } }\n });\n\n // Link files that were already imported.\n for (const importedImage of importedImages) {\n const fileBeingImported = files.find(file => file.key === importedImage.meta.originalKey);\n\n if (fileBeingImported) {\n oldIdToNewFileMap.set(fileBeingImported.id, importedImage);\n }\n }\n\n // Check if files with such IDs already exist.\n const [existingFiles] = await context.fileManager.listFiles({\n where: { id_in: files.map(file => file.id) }\n });\n\n const newFilesToImport = files\n .filter(notAnExistingFile(existingFiles))\n .filter(notAPreviouslyImportedFile(importedImages));\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 toImport of newFilesToImport) {\n // We generate a new file id, key, and add `meta.originalKey` property to prevent duplicates on future imports.\n const id = mdbid();\n const newKey = `${id}/${toImport.key.replace(`${toImport.id}/`, \"\")}`;\n const newFile: FileInput = {\n ...toImport,\n id,\n location: {\n folderId: \"root\"\n },\n key: newKey,\n meta: { ...toImport.meta, originalKey: toImport.key }\n };\n\n createFilesInput.push(newFile);\n oldIdToNewFileMap.set(toImport.id, newFile);\n uploadFileMap.set(fileUploadsData.assets[toImport.key], newFile);\n }\n\n await uploadFilesFromS3(uploadFileMap);\n\n await context.fileManager.createFilesInBatch(createFilesInput);\n\n return oldIdToNewFileMap;\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-page-builder-import-export",
3
- "version": "5.38.0-beta.2",
3
+ "version": "5.38.0-beta.4",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "pbie:base"
@@ -16,18 +16,18 @@
16
16
  "dependencies": {
17
17
  "@babel/runtime": "7.22.6",
18
18
  "@commodo/fields": "1.1.2-beta.20",
19
- "@webiny/api": "5.38.0-beta.2",
20
- "@webiny/api-file-manager": "5.38.0-beta.2",
21
- "@webiny/api-form-builder": "5.38.0-beta.2",
22
- "@webiny/api-page-builder": "5.38.0-beta.2",
23
- "@webiny/api-security": "5.38.0-beta.2",
24
- "@webiny/error": "5.38.0-beta.2",
25
- "@webiny/handler": "5.38.0-beta.2",
26
- "@webiny/handler-aws": "5.38.0-beta.2",
27
- "@webiny/handler-graphql": "5.38.0-beta.2",
28
- "@webiny/pubsub": "5.38.0-beta.2",
29
- "@webiny/utils": "5.38.0-beta.2",
30
- "@webiny/validation": "5.38.0-beta.2",
19
+ "@webiny/api": "5.38.0-beta.4",
20
+ "@webiny/api-file-manager": "5.38.0-beta.4",
21
+ "@webiny/api-form-builder": "5.38.0-beta.4",
22
+ "@webiny/api-page-builder": "5.38.0-beta.4",
23
+ "@webiny/api-security": "5.38.0-beta.4",
24
+ "@webiny/error": "5.38.0-beta.4",
25
+ "@webiny/handler": "5.38.0-beta.4",
26
+ "@webiny/handler-aws": "5.38.0-beta.4",
27
+ "@webiny/handler-graphql": "5.38.0-beta.4",
28
+ "@webiny/pubsub": "5.38.0-beta.4",
29
+ "@webiny/utils": "5.38.0-beta.4",
30
+ "@webiny/validation": "5.38.0-beta.4",
31
31
  "archiver": "5.3.1",
32
32
  "commodo-fields-object": "1.0.6",
33
33
  "dot-prop-immutable": "2.1.1",
@@ -48,13 +48,13 @@
48
48
  "@types/archiver": "5.3.1",
49
49
  "@types/node-fetch": "2.6.2",
50
50
  "@types/yauzl": "2.10.0",
51
- "@webiny/api-authentication": "5.38.0-beta.2",
52
- "@webiny/api-dynamodb-to-elasticsearch": "5.38.0-beta.2",
53
- "@webiny/api-tenancy": "5.38.0-beta.2",
54
- "@webiny/api-wcp": "5.38.0-beta.2",
55
- "@webiny/cli": "5.38.0-beta.2",
56
- "@webiny/db": "5.38.0-beta.2",
57
- "@webiny/project-utils": "5.38.0-beta.2",
51
+ "@webiny/api-authentication": "5.38.0-beta.4",
52
+ "@webiny/api-dynamodb-to-elasticsearch": "5.38.0-beta.4",
53
+ "@webiny/api-tenancy": "5.38.0-beta.4",
54
+ "@webiny/api-wcp": "5.38.0-beta.4",
55
+ "@webiny/cli": "5.38.0-beta.4",
56
+ "@webiny/db": "5.38.0-beta.4",
57
+ "@webiny/project-utils": "5.38.0-beta.4",
58
58
  "jest": "29.5.0",
59
59
  "jest-dynalite": "3.6.1",
60
60
  "rimraf": "3.0.2",
@@ -76,5 +76,5 @@
76
76
  ]
77
77
  }
78
78
  },
79
- "gitHead": "63fa1cb573e06614cf4683d4648b9a9443d57158"
79
+ "gitHead": "0c2b5da146d534d7856ebe185671bc306a4e82e8"
80
80
  }