@webiny/api-headless-cms-import-export 5.41.4 → 5.42.0-beta.0

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 (57) hide show
  1. package/crud/index.js.map +1 -1
  2. package/crud/useCases/abortImportFromUrl/AbortImportFromUrlUseCase.js.map +1 -1
  3. package/crud/useCases/exportContentEntries/ExportContentEntriesUseCase.js.map +1 -1
  4. package/crud/useCases/importFromUrl/ImportFromUrlUseCase.js.map +1 -1
  5. package/crud/useCases/validateImportFromUrl/ValidateImportFromUrlUseCase.js.map +1 -1
  6. package/crud/useCases/validateImportFromUrlIntegrity/ValidateImportFromUrlIntegrityUseCase.js.map +1 -1
  7. package/crud/utils/makeSureModelsAreIdentical.js.map +1 -1
  8. package/graphql/resolvers.js.map +1 -1
  9. package/graphql/typeDefs.js +10 -2
  10. package/graphql/typeDefs.js.map +1 -1
  11. package/package.json +23 -28
  12. package/tasks/domain/ExportContentEntriesController.js.map +1 -1
  13. package/tasks/domain/ImportFromUrlController.js.map +1 -1
  14. package/tasks/domain/ImportFromUrlDownload.js.map +1 -1
  15. package/tasks/domain/downloadFileFromUrl/DownloadFileFromUrl.js.map +1 -1
  16. package/tasks/domain/exportContentAssets/ExportContentAssets.js.map +1 -1
  17. package/tasks/domain/exportContentEntries/ExportContentEntries.js.map +1 -1
  18. package/tasks/domain/importFromUrlControllerSteps/ImportFromUrlControllerDownloadStep.js.map +1 -1
  19. package/tasks/domain/importFromUrlControllerSteps/ImportFromUrlControllerProcessAssetsStep.js.map +1 -1
  20. package/tasks/domain/importFromUrlControllerSteps/ImportFromUrlControllerProcessEntriesStep.js.map +1 -1
  21. package/tasks/domain/importFromUrlControllerSteps/getChildTasks.js.map +1 -1
  22. package/tasks/domain/importFromUrlProcessAssets/ImportFromUrlProcessAssets.js.map +1 -1
  23. package/tasks/domain/importFromUrlProcessEntries/ImportFromUrlProcessEntries.js.map +1 -1
  24. package/tasks/domain/importFromUrlProcessEntries/ImportFromUrlProcessEntriesDecompress.js.map +1 -1
  25. package/tasks/domain/importFromUrlProcessEntries/ImportFromUrlProcessEntriesInsert.js.map +1 -1
  26. package/tasks/exportContentAssets.js +1 -1
  27. package/tasks/exportContentAssets.js.map +1 -1
  28. package/tasks/exportContentEntries.js +1 -1
  29. package/tasks/exportContentEntries.js.map +1 -1
  30. package/tasks/exportContentEntriesController.js +1 -1
  31. package/tasks/exportContentEntriesController.js.map +1 -1
  32. package/tasks/importFromUrlController.js +2 -2
  33. package/tasks/importFromUrlController.js.map +1 -1
  34. package/tasks/importFromUrlDownload.js +1 -1
  35. package/tasks/importFromUrlDownload.js.map +1 -1
  36. package/tasks/importFromUrlProcessAssets.js +1 -1
  37. package/tasks/importFromUrlProcessAssets.js.map +1 -1
  38. package/tasks/importFromUrlProcessEntries.js +1 -1
  39. package/tasks/importFromUrlProcessEntries.js.map +1 -1
  40. package/tasks/utils/cmsAssetsZipper/PointerStore.js.map +1 -1
  41. package/tasks/utils/cmsEntryZipper/CmsEntryZipper.js.map +1 -1
  42. package/tasks/utils/decompressor/Decompressor.js.map +1 -1
  43. package/tasks/utils/deleteFiles/DeleteFiles.js.map +1 -1
  44. package/tasks/utils/externalFileFetcher/ExternalFileFetcher.js.map +1 -1
  45. package/tasks/utils/fileFetcher/FileFetcher.js.map +1 -1
  46. package/tasks/utils/helpers/exportPath.js.map +1 -1
  47. package/tasks/utils/helpers/getBucket.js.map +1 -1
  48. package/tasks/utils/helpers/importPath.js.map +1 -1
  49. package/tasks/utils/helpers/matchKeyOrAlias.js.map +1 -1
  50. package/tasks/utils/helpers/sizeSegments.js +3 -0
  51. package/tasks/utils/helpers/sizeSegments.js.map +1 -1
  52. package/tasks/utils/upload/MultipartUploadFactory.js.map +1 -1
  53. package/tasks/utils/upload/getContentType.js.map +1 -1
  54. package/tasks/utils/upload/multipartUploadHandler/MultipartUploadHandler.js +1 -1
  55. package/tasks/utils/upload/multipartUploadHandler/MultipartUploadHandler.js.map +1 -1
  56. package/tasks/validateImportFromUrl.js +1 -1
  57. package/tasks/validateImportFromUrl.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","ImportFromUrlProcessEntriesInsert","constructor","params","entryManager","fileFetcher","run","response","input","isAborted","isCloseToTimeout","result","structuredClone","files","decompress","filter","file","endsWith","MANIFEST_JSON","length","error","message","code","data","maxInsertErrors","processed","insert","aborted","continue","takeFile","output","done","readAndParse","takeNextFile","failed","key","errors","success","item","items","create","ex","console","id","push","total","read","parsed","JSON","parse","last","find","index","indexOf","next","at","exports"],"sources":["ImportFromUrlProcessEntriesInsert.ts"],"sourcesContent":["import type {\n IImportFromUrlProcessEntriesInsert,\n IImportFromUrlProcessEntriesInsertRunParams,\n IImportFromUrlProcessEntriesInsertRunResult\n} from \"./abstractions/ImportFromUrlProcessEntriesInsert\";\nimport type {\n IImportFromUrlProcessEntriesInput,\n IImportFromUrlProcessEntriesInsertProcessedFileErrorsInput,\n IImportFromUrlProcessEntriesInsertProcessedFileInput,\n IImportFromUrlProcessEntriesOutput\n} from \"./abstractions/ImportFromUrlProcessEntries\";\nimport type { ICmsEntryManager } from \"@webiny/api-headless-cms/types\";\nimport type { Context } from \"~/types\";\nimport { MANIFEST_JSON } from \"~/tasks/constants\";\nimport type { IFileFetcher } from \"~/tasks/utils/fileFetcher\";\nimport type { ICmsEntryEntriesJson } from \"~/tasks/utils/types\";\n\nexport interface IImportFromUrlProcessEntriesInsertParams {\n entryManager: ICmsEntryManager;\n fileFetcher: IFileFetcher;\n}\n\nexport class ImportFromUrlProcessEntriesInsert<\n C extends Context = Context,\n I extends IImportFromUrlProcessEntriesInput = IImportFromUrlProcessEntriesInput,\n O extends IImportFromUrlProcessEntriesOutput = IImportFromUrlProcessEntriesOutput\n> implements IImportFromUrlProcessEntriesInsert<C, I, O>\n{\n private readonly entryManager: ICmsEntryManager;\n private readonly fileFetcher: IFileFetcher;\n\n public constructor(params: IImportFromUrlProcessEntriesInsertParams) {\n this.entryManager = params.entryManager;\n this.fileFetcher = params.fileFetcher;\n }\n\n public async run(\n params: IImportFromUrlProcessEntriesInsertRunParams<C, I, O>\n ): Promise<IImportFromUrlProcessEntriesInsertRunResult<I, O>> {\n const { response, input, isAborted, isCloseToTimeout } = params;\n\n const result = structuredClone(input);\n\n const files = (result.decompress?.files || []).filter(\n file => !file.endsWith(MANIFEST_JSON)\n );\n if (files.length === 0) {\n return response.error({\n message: `No entry files found in the compressed archive.`,\n code: \"NO_FILES_FOUND\",\n data: {\n files: result.decompress?.files || []\n }\n });\n }\n\n const maxInsertErrors = result.maxInsertErrors || 10;\n\n const processed: IImportFromUrlProcessEntriesInsertProcessedFileInput[] =\n result.insert?.processed || [];\n\n while (true) {\n if (isAborted()) {\n return response.aborted();\n } else if (isCloseToTimeout()) {\n return response.continue({\n ...result\n });\n }\n const file = this.takeFile(files, result.insert?.file);\n if (!file) {\n const output: IImportFromUrlProcessEntriesOutput = {\n files: processed\n };\n\n return response.done(output as O);\n }\n const data = await this.readAndParse(file, result);\n if (!data) {\n result.insert = {\n ...result.insert,\n file: this.takeNextFile(files, file),\n failed: [\n ...(result.insert?.failed || []),\n {\n key: file,\n message: `Failed to read and parse the file. Please check logs for more detailed information.`\n }\n ]\n };\n continue;\n }\n const errors: IImportFromUrlProcessEntriesInsertProcessedFileErrorsInput[] = [];\n\n let success = 0;\n for (const item of data.items) {\n if (errors.length >= maxInsertErrors) {\n return response.error({\n message: `Max insert errors reached.`,\n code: \"MAX_INSERT_ERRORS\",\n data: {\n errors\n }\n });\n }\n try {\n await this.entryManager.create(item);\n success++;\n } catch (ex) {\n console.error(`Failed to insert entry \"${item.id}\"`, ex);\n errors.push({\n id: item.id,\n message: ex.message\n });\n }\n }\n processed.push({\n key: file,\n success,\n total: data.items.length,\n errors\n });\n result.insert = {\n ...result.insert,\n file: this.takeNextFile(files, file),\n processed\n };\n }\n }\n /**\n * Method reads and parses the target file.\n * In case of any error, it will log it, attach to the result parameter and return null.\n */\n private async readAndParse(key: string, result: I): Promise<ICmsEntryEntriesJson | null> {\n const data = await this.fileFetcher.read(key);\n if (!data) {\n const message = `No contents found for file \"${key}\".`;\n console.error(message);\n result.insert = {\n ...result.insert,\n failed: [\n ...(result.insert?.failed || []),\n {\n key,\n message\n }\n ]\n };\n return null;\n }\n let parsed: Partial<ICmsEntryEntriesJson>;\n try {\n parsed = JSON.parse(data);\n } catch (ex) {\n const message = `Failed to parse JSON for file \"${key}\".`;\n console.error(message);\n result.insert = {\n ...result.insert,\n failed: [\n ...(result.insert?.failed || []),\n {\n key,\n message\n }\n ]\n };\n return null;\n }\n if (!parsed.items) {\n const message = `Missing \"items\" in the parsed JSON for file \"${key}\".`;\n console.error(message);\n result.insert = {\n ...result.insert,\n failed: [\n ...(result.insert?.failed || []),\n {\n key,\n message\n }\n ]\n };\n return null;\n }\n return parsed as ICmsEntryEntriesJson;\n }\n\n private takeFile(files: string[], last?: string): string | undefined {\n if (!last) {\n return files[0];\n }\n return files.find(file => file === last);\n }\n\n private takeNextFile(files: string[], last: string): string | undefined {\n const index = files.indexOf(last);\n if (index < 0) {\n return `notFound:${last}`;\n }\n const next = files.at(index + 1);\n if (next) {\n return next;\n }\n\n return `completedWith:${last}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","ImportFromUrlProcessEntriesInsert","constructor","params","entryManager","fileFetcher","run","response","input","isAborted","isCloseToTimeout","result","structuredClone","files","decompress","filter","file","endsWith","MANIFEST_JSON","length","error","message","code","data","maxInsertErrors","processed","insert","aborted","continue","takeFile","output","done","readAndParse","takeNextFile","failed","key","errors","success","item","items","create","ex","console","id","push","total","read","parsed","JSON","parse","last","find","index","indexOf","next","at","exports"],"sources":["ImportFromUrlProcessEntriesInsert.ts"],"sourcesContent":["import type {\n IImportFromUrlProcessEntriesInsert,\n IImportFromUrlProcessEntriesInsertRunParams,\n IImportFromUrlProcessEntriesInsertRunResult\n} from \"./abstractions/ImportFromUrlProcessEntriesInsert\";\nimport type {\n IImportFromUrlProcessEntriesInput,\n IImportFromUrlProcessEntriesInsertProcessedFileErrorsInput,\n IImportFromUrlProcessEntriesInsertProcessedFileInput,\n IImportFromUrlProcessEntriesOutput\n} from \"./abstractions/ImportFromUrlProcessEntries\";\nimport type { ICmsEntryManager } from \"@webiny/api-headless-cms/types\";\nimport type { Context } from \"~/types\";\nimport { MANIFEST_JSON } from \"~/tasks/constants\";\nimport type { IFileFetcher } from \"~/tasks/utils/fileFetcher\";\nimport type { ICmsEntryEntriesJson } from \"~/tasks/utils/types\";\n\nexport interface IImportFromUrlProcessEntriesInsertParams {\n entryManager: ICmsEntryManager;\n fileFetcher: IFileFetcher;\n}\n\nexport class ImportFromUrlProcessEntriesInsert<\n C extends Context = Context,\n I extends IImportFromUrlProcessEntriesInput = IImportFromUrlProcessEntriesInput,\n O extends IImportFromUrlProcessEntriesOutput = IImportFromUrlProcessEntriesOutput\n> implements IImportFromUrlProcessEntriesInsert<C, I, O>\n{\n private readonly entryManager: ICmsEntryManager;\n private readonly fileFetcher: IFileFetcher;\n\n public constructor(params: IImportFromUrlProcessEntriesInsertParams) {\n this.entryManager = params.entryManager;\n this.fileFetcher = params.fileFetcher;\n }\n\n public async run(\n params: IImportFromUrlProcessEntriesInsertRunParams<C, I, O>\n ): Promise<IImportFromUrlProcessEntriesInsertRunResult<I, O>> {\n const { response, input, isAborted, isCloseToTimeout } = params;\n\n const result = structuredClone(input);\n\n const files = (result.decompress?.files || []).filter(\n file => !file.endsWith(MANIFEST_JSON)\n );\n if (files.length === 0) {\n return response.error({\n message: `No entry files found in the compressed archive.`,\n code: \"NO_FILES_FOUND\",\n data: {\n files: result.decompress?.files || []\n }\n });\n }\n\n const maxInsertErrors = result.maxInsertErrors || 10;\n\n const processed: IImportFromUrlProcessEntriesInsertProcessedFileInput[] =\n result.insert?.processed || [];\n\n while (true) {\n if (isAborted()) {\n return response.aborted();\n } else if (isCloseToTimeout()) {\n return response.continue({\n ...result\n });\n }\n const file = this.takeFile(files, result.insert?.file);\n if (!file) {\n const output: IImportFromUrlProcessEntriesOutput = {\n files: processed\n };\n\n return response.done(output as O);\n }\n const data = await this.readAndParse(file, result);\n if (!data) {\n result.insert = {\n ...result.insert,\n file: this.takeNextFile(files, file),\n failed: [\n ...(result.insert?.failed || []),\n {\n key: file,\n message: `Failed to read and parse the file. Please check logs for more detailed information.`\n }\n ]\n };\n continue;\n }\n const errors: IImportFromUrlProcessEntriesInsertProcessedFileErrorsInput[] = [];\n\n let success = 0;\n for (const item of data.items) {\n if (errors.length >= maxInsertErrors) {\n return response.error({\n message: `Max insert errors reached.`,\n code: \"MAX_INSERT_ERRORS\",\n data: {\n errors\n }\n });\n }\n try {\n await this.entryManager.create(item);\n success++;\n } catch (ex) {\n console.error(`Failed to insert entry \"${item.id}\"`, ex);\n errors.push({\n id: item.id,\n message: ex.message\n });\n }\n }\n processed.push({\n key: file,\n success,\n total: data.items.length,\n errors\n });\n result.insert = {\n ...result.insert,\n file: this.takeNextFile(files, file),\n processed\n };\n }\n }\n /**\n * Method reads and parses the target file.\n * In case of any error, it will log it, attach to the result parameter and return null.\n */\n private async readAndParse(key: string, result: I): Promise<ICmsEntryEntriesJson | null> {\n const data = await this.fileFetcher.read(key);\n if (!data) {\n const message = `No contents found for file \"${key}\".`;\n console.error(message);\n result.insert = {\n ...result.insert,\n failed: [\n ...(result.insert?.failed || []),\n {\n key,\n message\n }\n ]\n };\n return null;\n }\n let parsed: Partial<ICmsEntryEntriesJson>;\n try {\n parsed = JSON.parse(data);\n } catch (ex) {\n const message = `Failed to parse JSON for file \"${key}\".`;\n console.error(message);\n result.insert = {\n ...result.insert,\n failed: [\n ...(result.insert?.failed || []),\n {\n key,\n message\n }\n ]\n };\n return null;\n }\n if (!parsed.items) {\n const message = `Missing \"items\" in the parsed JSON for file \"${key}\".`;\n console.error(message);\n result.insert = {\n ...result.insert,\n failed: [\n ...(result.insert?.failed || []),\n {\n key,\n message\n }\n ]\n };\n return null;\n }\n return parsed as ICmsEntryEntriesJson;\n }\n\n private takeFile(files: string[], last?: string): string | undefined {\n if (!last) {\n return files[0];\n }\n return files.find(file => file === last);\n }\n\n private takeNextFile(files: string[], last: string): string | undefined {\n const index = files.indexOf(last);\n if (index < 0) {\n return `notFound:${last}`;\n }\n const next = files.at(index + 1);\n if (next) {\n return next;\n }\n\n return `completedWith:${last}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ const createExportContentAssets = () => {
16
16
  async run(params) {
17
17
  const {
18
18
  createExportContentAssets
19
- } = await import( /* webpackChunkName: "createExportContentAssets" */"./domain/createExportContentAssets");
19
+ } = await import(/* webpackChunkName: "createExportContentAssets" */"./domain/createExportContentAssets");
20
20
  try {
21
21
  const runner = createExportContentAssets();
22
22
  return await runner.run(params);
@@ -1 +1 @@
1
- {"version":3,"names":["_tasks","require","_constants","createExportContentAssets","createTaskDefinition","id","EXPORT_CONTENT_ASSETS_TASK","title","maxIterations","isPrivate","description","run","params","runner","ex","response","error","exports"],"sources":["exportContentAssets.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context } from \"~/types\";\nimport type {\n IExportContentAssetsInput,\n IExportContentAssetsOutput\n} from \"~/tasks/domain/abstractions/ExportContentAssets\";\nimport { EXPORT_CONTENT_ASSETS_TASK } from \"~/tasks/constants\";\n\nexport const createExportContentAssets = () => {\n return createTaskDefinition<Context, IExportContentAssetsInput, IExportContentAssetsOutput>({\n id: EXPORT_CONTENT_ASSETS_TASK,\n title: \"Export Content Assets\",\n maxIterations: 50,\n isPrivate: true,\n description: \"Export content assets from a specific model.\",\n async run(params) {\n const { createExportContentAssets } = await import(\n /* webpackChunkName: \"createExportContentAssets\" */ \"./domain/createExportContentAssets\"\n );\n\n try {\n const runner = createExportContentAssets();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,UAAA,GAAAD,OAAA;AAEO,MAAME,yBAAyB,GAAGA,CAAA,KAAM;EAC3C,OAAO,IAAAC,2BAAoB,EAAiE;IACxFC,EAAE,EAAEC,qCAA0B;IAC9BC,KAAK,EAAE,uBAAuB;IAC9BC,aAAa,EAAE,EAAE;IACjBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,8CAA8C;IAC3D,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAET;MAA0B,CAAC,GAAG,MAAM,MAAM,EAC9C,uFACJ,CAAC;MAED,IAAI;QACA,MAAMU,MAAM,GAAGV,yBAAyB,CAAC,CAAC;QAC1C,OAAO,MAAMU,MAAM,CAACF,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOE,EAAE,EAAE;QACT,OAAOF,MAAM,CAACG,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAd,yBAAA,GAAAA,yBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_tasks","require","_constants","createExportContentAssets","createTaskDefinition","id","EXPORT_CONTENT_ASSETS_TASK","title","maxIterations","isPrivate","description","run","params","runner","ex","response","error","exports"],"sources":["exportContentAssets.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context } from \"~/types\";\nimport type {\n IExportContentAssetsInput,\n IExportContentAssetsOutput\n} from \"~/tasks/domain/abstractions/ExportContentAssets\";\nimport { EXPORT_CONTENT_ASSETS_TASK } from \"~/tasks/constants\";\n\nexport const createExportContentAssets = () => {\n return createTaskDefinition<Context, IExportContentAssetsInput, IExportContentAssetsOutput>({\n id: EXPORT_CONTENT_ASSETS_TASK,\n title: \"Export Content Assets\",\n maxIterations: 50,\n isPrivate: true,\n description: \"Export content assets from a specific model.\",\n async run(params) {\n const { createExportContentAssets } = await import(\n /* webpackChunkName: \"createExportContentAssets\" */ \"./domain/createExportContentAssets\"\n );\n\n try {\n const runner = createExportContentAssets();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,UAAA,GAAAD,OAAA;AAEO,MAAME,yBAAyB,GAAGA,CAAA,KAAM;EAC3C,OAAO,IAAAC,2BAAoB,EAAiE;IACxFC,EAAE,EAAEC,qCAA0B;IAC9BC,KAAK,EAAE,uBAAuB;IAC9BC,aAAa,EAAE,EAAE;IACjBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,8CAA8C;IAC3D,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAET;MAA0B,CAAC,GAAG,MAAM,MAAM,CAC9C,uFACJ,CAAC;MAED,IAAI;QACA,MAAMU,MAAM,GAAGV,yBAAyB,CAAC,CAAC;QAC1C,OAAO,MAAMU,MAAM,CAACF,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOE,EAAE,EAAE;QACT,OAAOF,MAAM,CAACG,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAd,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -16,7 +16,7 @@ const createExportContentEntriesTask = () => {
16
16
  async run(params) {
17
17
  const {
18
18
  createExportContentEntries
19
- } = await import( /* webpackChunkName: "createExportContentEntries" */"./domain/createExportContentEntries");
19
+ } = await import(/* webpackChunkName: "createExportContentEntries" */"./domain/createExportContentEntries");
20
20
  try {
21
21
  const runner = createExportContentEntries();
22
22
  return await runner.run(params);
@@ -1 +1 @@
1
- {"version":3,"names":["_tasks","require","_constants","createExportContentEntriesTask","createTaskDefinition","id","EXPORT_CONTENT_ENTRIES_TASK","title","maxIterations","isPrivate","description","run","params","createExportContentEntries","runner","ex","response","error","exports"],"sources":["exportContentEntries.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport { EXPORT_CONTENT_ENTRIES_TASK } from \"./constants\";\nimport type { Context } from \"~/types\";\nimport type {\n IExportContentEntriesInput,\n IExportContentEntriesOutput\n} from \"~/tasks/domain/abstractions/ExportContentEntries\";\n\nexport const createExportContentEntriesTask = () => {\n return createTaskDefinition<Context, IExportContentEntriesInput, IExportContentEntriesOutput>({\n id: EXPORT_CONTENT_ENTRIES_TASK,\n title: \"Export Content Entries\",\n maxIterations: 50,\n isPrivate: true,\n description: \"Export content entries from a specific model.\",\n async run(params) {\n const { createExportContentEntries } = await import(\n /* webpackChunkName: \"createExportContentEntries\" */ \"./domain/createExportContentEntries\"\n );\n\n try {\n const runner = createExportContentEntries();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAOO,MAAME,8BAA8B,GAAGA,CAAA,KAAM;EAChD,OAAO,IAAAC,2BAAoB,EAAmE;IAC1FC,EAAE,EAAEC,sCAA2B;IAC/BC,KAAK,EAAE,wBAAwB;IAC/BC,aAAa,EAAE,EAAE;IACjBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,+CAA+C;IAC5D,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAA2B,CAAC,GAAG,MAAM,MAAM,EAC/C,yFACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAGD,0BAA0B,CAAC,CAAC;QAC3C,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAf,8BAAA,GAAAA,8BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_tasks","require","_constants","createExportContentEntriesTask","createTaskDefinition","id","EXPORT_CONTENT_ENTRIES_TASK","title","maxIterations","isPrivate","description","run","params","createExportContentEntries","runner","ex","response","error","exports"],"sources":["exportContentEntries.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport { EXPORT_CONTENT_ENTRIES_TASK } from \"./constants\";\nimport type { Context } from \"~/types\";\nimport type {\n IExportContentEntriesInput,\n IExportContentEntriesOutput\n} from \"~/tasks/domain/abstractions/ExportContentEntries\";\n\nexport const createExportContentEntriesTask = () => {\n return createTaskDefinition<Context, IExportContentEntriesInput, IExportContentEntriesOutput>({\n id: EXPORT_CONTENT_ENTRIES_TASK,\n title: \"Export Content Entries\",\n maxIterations: 50,\n isPrivate: true,\n description: \"Export content entries from a specific model.\",\n async run(params) {\n const { createExportContentEntries } = await import(\n /* webpackChunkName: \"createExportContentEntries\" */ \"./domain/createExportContentEntries\"\n );\n\n try {\n const runner = createExportContentEntries();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAOO,MAAME,8BAA8B,GAAGA,CAAA,KAAM;EAChD,OAAO,IAAAC,2BAAoB,EAAmE;IAC1FC,EAAE,EAAEC,sCAA2B;IAC/BC,KAAK,EAAE,wBAAwB;IAC/BC,aAAa,EAAE,EAAE;IACjBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,+CAA+C;IAC5D,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAA2B,CAAC,GAAG,MAAM,MAAM,CAC/C,yFACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAGD,0BAA0B,CAAC,CAAC;QAC3C,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAf,8BAAA,GAAAA,8BAAA","ignoreList":[]}
@@ -16,7 +16,7 @@ const createExportContentEntriesControllerTask = () => {
16
16
  async run(params) {
17
17
  const {
18
18
  ExportContentEntriesController
19
- } = await import( /* webpackChunkName: "ExportContentEntriesController" */"./domain/ExportContentEntriesController");
19
+ } = await import(/* webpackChunkName: "ExportContentEntriesController" */"./domain/ExportContentEntriesController");
20
20
  try {
21
21
  const controller = new ExportContentEntriesController();
22
22
  return await controller.run(params);
@@ -1 +1 @@
1
- {"version":3,"names":["_tasks","require","_constants","createExportContentEntriesControllerTask","createTaskDefinition","id","EXPORT_CONTENT_ENTRIES_CONTROLLER_TASK","title","maxIterations","isPrivate","description","run","params","ExportContentEntriesController","controller","ex","response","error","exports"],"sources":["exportContentEntriesController.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport { EXPORT_CONTENT_ENTRIES_CONTROLLER_TASK } from \"./constants\";\nimport type { Context } from \"~/types\";\nimport type {\n IExportContentEntriesControllerInput,\n IExportContentEntriesControllerOutput\n} from \"~/tasks/domain/abstractions/ExportContentEntriesController\";\n\nexport const createExportContentEntriesControllerTask = () => {\n return createTaskDefinition<\n Context,\n IExportContentEntriesControllerInput,\n IExportContentEntriesControllerOutput\n >({\n id: EXPORT_CONTENT_ENTRIES_CONTROLLER_TASK,\n title: \"Export Content Entries and Assets Controller\",\n maxIterations: 100,\n isPrivate: true,\n description: \"Export content entries and assets from a specific model - controller.\",\n async run(params) {\n const { ExportContentEntriesController } = await import(\n /* webpackChunkName: \"ExportContentEntriesController\" */ \"./domain/ExportContentEntriesController\"\n );\n\n try {\n const controller = new ExportContentEntriesController();\n return await controller.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAOO,MAAME,wCAAwC,GAAGA,CAAA,KAAM;EAC1D,OAAO,IAAAC,2BAAoB,EAIzB;IACEC,EAAE,EAAEC,iDAAsC;IAC1CC,KAAK,EAAE,8CAA8C;IACrDC,aAAa,EAAE,GAAG;IAClBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,uEAAuE;IACpF,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAA+B,CAAC,GAAG,MAAM,MAAM,EACnD,iGACJ,CAAC;MAED,IAAI;QACA,MAAMC,UAAU,GAAG,IAAID,8BAA8B,CAAC,CAAC;QACvD,OAAO,MAAMC,UAAU,CAACH,GAAG,CAACC,MAAM,CAAC;MACvC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAf,wCAAA,GAAAA,wCAAA","ignoreList":[]}
1
+ {"version":3,"names":["_tasks","require","_constants","createExportContentEntriesControllerTask","createTaskDefinition","id","EXPORT_CONTENT_ENTRIES_CONTROLLER_TASK","title","maxIterations","isPrivate","description","run","params","ExportContentEntriesController","controller","ex","response","error","exports"],"sources":["exportContentEntriesController.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport { EXPORT_CONTENT_ENTRIES_CONTROLLER_TASK } from \"./constants\";\nimport type { Context } from \"~/types\";\nimport type {\n IExportContentEntriesControllerInput,\n IExportContentEntriesControllerOutput\n} from \"~/tasks/domain/abstractions/ExportContentEntriesController\";\n\nexport const createExportContentEntriesControllerTask = () => {\n return createTaskDefinition<\n Context,\n IExportContentEntriesControllerInput,\n IExportContentEntriesControllerOutput\n >({\n id: EXPORT_CONTENT_ENTRIES_CONTROLLER_TASK,\n title: \"Export Content Entries and Assets Controller\",\n maxIterations: 100,\n isPrivate: true,\n description: \"Export content entries and assets from a specific model - controller.\",\n async run(params) {\n const { ExportContentEntriesController } = await import(\n /* webpackChunkName: \"ExportContentEntriesController\" */ \"./domain/ExportContentEntriesController\"\n );\n\n try {\n const controller = new ExportContentEntriesController();\n return await controller.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAOO,MAAME,wCAAwC,GAAGA,CAAA,KAAM;EAC1D,OAAO,IAAAC,2BAAoB,EAIzB;IACEC,EAAE,EAAEC,iDAAsC;IAC1CC,KAAK,EAAE,8CAA8C;IACrDC,aAAa,EAAE,GAAG;IAClBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,uEAAuE;IACpF,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAA+B,CAAC,GAAG,MAAM,MAAM,CACnD,iGACJ,CAAC;MAED,IAAI;QACA,MAAMC,UAAU,GAAG,IAAID,8BAA8B,CAAC,CAAC;QACvD,OAAO,MAAMC,UAAU,CAACH,GAAG,CAACC,MAAM,CAAC;MACvC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAf,wCAAA,GAAAA,wCAAA","ignoreList":[]}
@@ -16,7 +16,7 @@ const createImportFromUrlControllerTask = () => {
16
16
  async run(params) {
17
17
  const {
18
18
  ImportFromUrlController
19
- } = await import( /* webpackChunkName: "ImportFromUrlController" */"./domain/ImportFromUrlController");
19
+ } = await import(/* webpackChunkName: "ImportFromUrlController" */"./domain/ImportFromUrlController");
20
20
  try {
21
21
  const runner = new ImportFromUrlController();
22
22
  return await runner.run(params);
@@ -29,7 +29,7 @@ const createImportFromUrlControllerTask = () => {
29
29
  }) {
30
30
  const {
31
31
  createDeleteFiles
32
- } = await import( /* webpackChunkName: "DeleteFiles" */"./utils/deleteFiles/DeleteFiles");
32
+ } = await import(/* webpackChunkName: "DeleteFiles" */"./utils/deleteFiles/DeleteFiles");
33
33
  const deleteFiles = createDeleteFiles();
34
34
  await deleteFiles.execute(task.output?.files);
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_tasks","require","_constants","createImportFromUrlControllerTask","createTaskDefinition","id","IMPORT_FROM_URL_CONTROLLER_TASK","title","maxIterations","isPrivate","description","run","params","ImportFromUrlController","runner","ex","response","error","onDone","task","createDeleteFiles","deleteFiles","execute","output","files","exports"],"sources":["importFromUrlController.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport { IMPORT_FROM_URL_CONTROLLER_TASK } from \"./constants\";\nimport type { Context } from \"~/types\";\nimport type {\n IImportFromUrlControllerInput,\n IImportFromUrlControllerOutput\n} from \"~/tasks/domain/abstractions/ImportFromUrlController\";\n\nexport const createImportFromUrlControllerTask = () => {\n return createTaskDefinition<\n Context,\n IImportFromUrlControllerInput,\n IImportFromUrlControllerOutput\n >({\n id: IMPORT_FROM_URL_CONTROLLER_TASK,\n title: \"Import from URL List - Controller\",\n maxIterations: 500,\n isPrivate: true,\n description: \"Imports the data from the given URL list - controller.\",\n async run(params) {\n const { ImportFromUrlController } = await import(\n /* webpackChunkName: \"ImportFromUrlController\" */ \"./domain/ImportFromUrlController\"\n );\n\n try {\n const runner = new ImportFromUrlController();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n },\n async onDone({ task }) {\n const { createDeleteFiles } = await import(\n /* webpackChunkName: \"DeleteFiles\" */ \"./utils/deleteFiles/DeleteFiles\"\n );\n\n const deleteFiles = createDeleteFiles();\n\n await deleteFiles.execute(task.output?.files);\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAOO,MAAME,iCAAiC,GAAGA,CAAA,KAAM;EACnD,OAAO,IAAAC,2BAAoB,EAIzB;IACEC,EAAE,EAAEC,0CAA+B;IACnCC,KAAK,EAAE,mCAAmC;IAC1CC,aAAa,EAAE,GAAG;IAClBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,wDAAwD;IACrE,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAAwB,CAAC,GAAG,MAAM,MAAM,EAC5C,mFACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAG,IAAID,uBAAuB,CAAC,CAAC;QAC5C,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ,CAAC;IACD,MAAMG,MAAMA,CAAC;MAAEC;IAAK,CAAC,EAAE;MACnB,MAAM;QAAEC;MAAkB,CAAC,GAAG,MAAM,MAAM,EACtC,sEACJ,CAAC;MAED,MAAMC,WAAW,GAAGD,iBAAiB,CAAC,CAAC;MAEvC,MAAMC,WAAW,CAACC,OAAO,CAACH,IAAI,CAACI,MAAM,EAAEC,KAAK,CAAC;IACjD;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAtB,iCAAA,GAAAA,iCAAA","ignoreList":[]}
1
+ {"version":3,"names":["_tasks","require","_constants","createImportFromUrlControllerTask","createTaskDefinition","id","IMPORT_FROM_URL_CONTROLLER_TASK","title","maxIterations","isPrivate","description","run","params","ImportFromUrlController","runner","ex","response","error","onDone","task","createDeleteFiles","deleteFiles","execute","output","files","exports"],"sources":["importFromUrlController.ts"],"sourcesContent":["import { createTaskDefinition } from \"@webiny/tasks\";\nimport { IMPORT_FROM_URL_CONTROLLER_TASK } from \"./constants\";\nimport type { Context } from \"~/types\";\nimport type {\n IImportFromUrlControllerInput,\n IImportFromUrlControllerOutput\n} from \"~/tasks/domain/abstractions/ImportFromUrlController\";\n\nexport const createImportFromUrlControllerTask = () => {\n return createTaskDefinition<\n Context,\n IImportFromUrlControllerInput,\n IImportFromUrlControllerOutput\n >({\n id: IMPORT_FROM_URL_CONTROLLER_TASK,\n title: \"Import from URL List - Controller\",\n maxIterations: 500,\n isPrivate: true,\n description: \"Imports the data from the given URL list - controller.\",\n async run(params) {\n const { ImportFromUrlController } = await import(\n /* webpackChunkName: \"ImportFromUrlController\" */ \"./domain/ImportFromUrlController\"\n );\n\n try {\n const runner = new ImportFromUrlController();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n },\n async onDone({ task }) {\n const { createDeleteFiles } = await import(\n /* webpackChunkName: \"DeleteFiles\" */ \"./utils/deleteFiles/DeleteFiles\"\n );\n\n const deleteFiles = createDeleteFiles();\n\n await deleteFiles.execute(task.output?.files);\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAOO,MAAME,iCAAiC,GAAGA,CAAA,KAAM;EACnD,OAAO,IAAAC,2BAAoB,EAIzB;IACEC,EAAE,EAAEC,0CAA+B;IACnCC,KAAK,EAAE,mCAAmC;IAC1CC,aAAa,EAAE,GAAG;IAClBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,wDAAwD;IACrE,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAAwB,CAAC,GAAG,MAAM,MAAM,CAC5C,mFACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAG,IAAID,uBAAuB,CAAC,CAAC;QAC5C,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ,CAAC;IACD,MAAMG,MAAMA,CAAC;MAAEC;IAAK,CAAC,EAAE;MACnB,MAAM;QAAEC;MAAkB,CAAC,GAAG,MAAM,MAAM,CACtC,sEACJ,CAAC;MAED,MAAMC,WAAW,GAAGD,iBAAiB,CAAC,CAAC;MAEvC,MAAMC,WAAW,CAACC,OAAO,CAACH,IAAI,CAACI,MAAM,EAAEC,KAAK,CAAC;IACjD;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAtB,iCAAA,GAAAA,iCAAA","ignoreList":[]}
@@ -16,7 +16,7 @@ const createImportFromUrlDownloadTask = () => {
16
16
  async run(params) {
17
17
  const {
18
18
  ImportFromUrlDownload
19
- } = await import( /* webpackChunkName: "ImportFromUrlDownload" */"./domain/ImportFromUrlDownload");
19
+ } = await import(/* webpackChunkName: "ImportFromUrlDownload" */"./domain/ImportFromUrlDownload");
20
20
  try {
21
21
  const runner = new ImportFromUrlDownload();
22
22
  return await runner.run(params);
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_tasks","createImportFromUrlDownloadTask","createTaskDefinition","id","IMPORT_FROM_URL_DOWNLOAD_TASK","title","maxIterations","isPrivate","description","run","params","ImportFromUrlDownload","runner","ex","response","error","exports"],"sources":["importFromUrlDownload.ts"],"sourcesContent":["import { IMPORT_FROM_URL_DOWNLOAD_TASK } from \"~/tasks/constants\";\nimport { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context } from \"~/types\";\nimport type {\n IImportFromUrlDownloadInput,\n IImportFromUrlDownloadOutput\n} from \"~/tasks/domain/abstractions/ImportFromUrlDownload\";\n\nexport const createImportFromUrlDownloadTask = () => {\n return createTaskDefinition<Context, IImportFromUrlDownloadInput, IImportFromUrlDownloadOutput>(\n {\n id: IMPORT_FROM_URL_DOWNLOAD_TASK,\n title: \"Import from URL List - Download\",\n maxIterations: 500,\n isPrivate: true,\n description: \"Downloads the files from external URL.\",\n async run(params) {\n const { ImportFromUrlDownload } = await import(\n /* webpackChunkName: \"ImportFromUrlDownload\" */ \"./domain/ImportFromUrlDownload\"\n );\n\n try {\n const runner = new ImportFromUrlDownload();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n }\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAOO,MAAME,+BAA+B,GAAGA,CAAA,KAAM;EACjD,OAAO,IAAAC,2BAAoB,EACvB;IACIC,EAAE,EAAEC,wCAA6B;IACjCC,KAAK,EAAE,iCAAiC;IACxCC,aAAa,EAAE,GAAG;IAClBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,wCAAwC;IACrD,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAAsB,CAAC,GAAG,MAAM,MAAM,EAC1C,+EACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAG,IAAID,qBAAqB,CAAC,CAAC;QAC1C,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CACJ,CAAC;AACL,CAAC;AAACG,OAAA,CAAAf,+BAAA,GAAAA,+BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","_tasks","createImportFromUrlDownloadTask","createTaskDefinition","id","IMPORT_FROM_URL_DOWNLOAD_TASK","title","maxIterations","isPrivate","description","run","params","ImportFromUrlDownload","runner","ex","response","error","exports"],"sources":["importFromUrlDownload.ts"],"sourcesContent":["import { IMPORT_FROM_URL_DOWNLOAD_TASK } from \"~/tasks/constants\";\nimport { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context } from \"~/types\";\nimport type {\n IImportFromUrlDownloadInput,\n IImportFromUrlDownloadOutput\n} from \"~/tasks/domain/abstractions/ImportFromUrlDownload\";\n\nexport const createImportFromUrlDownloadTask = () => {\n return createTaskDefinition<Context, IImportFromUrlDownloadInput, IImportFromUrlDownloadOutput>(\n {\n id: IMPORT_FROM_URL_DOWNLOAD_TASK,\n title: \"Import from URL List - Download\",\n maxIterations: 500,\n isPrivate: true,\n description: \"Downloads the files from external URL.\",\n async run(params) {\n const { ImportFromUrlDownload } = await import(\n /* webpackChunkName: \"ImportFromUrlDownload\" */ \"./domain/ImportFromUrlDownload\"\n );\n\n try {\n const runner = new ImportFromUrlDownload();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n }\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAOO,MAAME,+BAA+B,GAAGA,CAAA,KAAM;EACjD,OAAO,IAAAC,2BAAoB,EACvB;IACIC,EAAE,EAAEC,wCAA6B;IACjCC,KAAK,EAAE,iCAAiC;IACxCC,aAAa,EAAE,GAAG;IAClBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,wCAAwC;IACrD,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAAsB,CAAC,GAAG,MAAM,MAAM,CAC1C,+EACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAG,IAAID,qBAAqB,CAAC,CAAC;QAC1C,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CACJ,CAAC;AACL,CAAC;AAACG,OAAA,CAAAf,+BAAA,GAAAA,+BAAA","ignoreList":[]}
@@ -16,7 +16,7 @@ const createImportFromUrlProcessAssetsTask = () => {
16
16
  async run(params) {
17
17
  const {
18
18
  createImportFromUrlProcessAssets
19
- } = await import( /* webpackChunkName: "createImportFromUrlProcessAssets" */"./domain/createImportFromUrlProcessAssets");
19
+ } = await import(/* webpackChunkName: "createImportFromUrlProcessAssets" */"./domain/createImportFromUrlProcessAssets");
20
20
  try {
21
21
  const runner = createImportFromUrlProcessAssets();
22
22
  return await runner.run(params);
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_tasks","createImportFromUrlProcessAssetsTask","createTaskDefinition","id","IMPORT_FROM_URL_PROCESS_ASSETS_TASK","title","maxIterations","isPrivate","description","run","params","createImportFromUrlProcessAssets","runner","ex","response","error","exports"],"sources":["importFromUrlProcessAssets.ts"],"sourcesContent":["import { IMPORT_FROM_URL_PROCESS_ASSETS_TASK } from \"~/tasks/constants\";\nimport { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context } from \"~/types\";\nimport type {\n IImportFromUrlProcessAssetsInput,\n IImportFromUrlProcessAssetsOutput\n} from \"./domain/importFromUrlProcessAssets/abstractions/ImportFromUrlProcessAssets\";\n\nexport const createImportFromUrlProcessAssetsTask = () => {\n return createTaskDefinition<\n Context,\n IImportFromUrlProcessAssetsInput,\n IImportFromUrlProcessAssetsOutput\n >({\n id: IMPORT_FROM_URL_PROCESS_ASSETS_TASK,\n title: \"Import from URL List - Process entries\",\n maxIterations: 10,\n isPrivate: true,\n description: \"Process entries import.\",\n async run(params) {\n const { createImportFromUrlProcessAssets } = await import(\n /* webpackChunkName: \"createImportFromUrlProcessAssets\" */ \"./domain/createImportFromUrlProcessAssets\"\n );\n\n try {\n const runner = createImportFromUrlProcessAssets();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAOO,MAAME,oCAAoC,GAAGA,CAAA,KAAM;EACtD,OAAO,IAAAC,2BAAoB,EAIzB;IACEC,EAAE,EAAEC,8CAAmC;IACvCC,KAAK,EAAE,wCAAwC;IAC/CC,aAAa,EAAE,EAAE;IACjBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,yBAAyB;IACtC,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAAiC,CAAC,GAAG,MAAM,MAAM,EACrD,qGACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAGD,gCAAgC,CAAC,CAAC;QACjD,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAf,oCAAA,GAAAA,oCAAA","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","_tasks","createImportFromUrlProcessAssetsTask","createTaskDefinition","id","IMPORT_FROM_URL_PROCESS_ASSETS_TASK","title","maxIterations","isPrivate","description","run","params","createImportFromUrlProcessAssets","runner","ex","response","error","exports"],"sources":["importFromUrlProcessAssets.ts"],"sourcesContent":["import { IMPORT_FROM_URL_PROCESS_ASSETS_TASK } from \"~/tasks/constants\";\nimport { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context } from \"~/types\";\nimport type {\n IImportFromUrlProcessAssetsInput,\n IImportFromUrlProcessAssetsOutput\n} from \"./domain/importFromUrlProcessAssets/abstractions/ImportFromUrlProcessAssets\";\n\nexport const createImportFromUrlProcessAssetsTask = () => {\n return createTaskDefinition<\n Context,\n IImportFromUrlProcessAssetsInput,\n IImportFromUrlProcessAssetsOutput\n >({\n id: IMPORT_FROM_URL_PROCESS_ASSETS_TASK,\n title: \"Import from URL List - Process entries\",\n maxIterations: 10,\n isPrivate: true,\n description: \"Process entries import.\",\n async run(params) {\n const { createImportFromUrlProcessAssets } = await import(\n /* webpackChunkName: \"createImportFromUrlProcessAssets\" */ \"./domain/createImportFromUrlProcessAssets\"\n );\n\n try {\n const runner = createImportFromUrlProcessAssets();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAOO,MAAME,oCAAoC,GAAGA,CAAA,KAAM;EACtD,OAAO,IAAAC,2BAAoB,EAIzB;IACEC,EAAE,EAAEC,8CAAmC;IACvCC,KAAK,EAAE,wCAAwC;IAC/CC,aAAa,EAAE,EAAE;IACjBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,yBAAyB;IACtC,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAAiC,CAAC,GAAG,MAAM,MAAM,CACrD,qGACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAGD,gCAAgC,CAAC,CAAC;QACjD,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAf,oCAAA,GAAAA,oCAAA","ignoreList":[]}
@@ -16,7 +16,7 @@ const createImportFromUrlProcessEntriesTask = () => {
16
16
  async run(params) {
17
17
  const {
18
18
  createImportFromUrlProcessEntries
19
- } = await import( /* webpackChunkName: "createImportFromUrlProcessEntries" */"./domain/createImportFromUrlProcessEntries");
19
+ } = await import(/* webpackChunkName: "createImportFromUrlProcessEntries" */"./domain/createImportFromUrlProcessEntries");
20
20
  try {
21
21
  const runner = createImportFromUrlProcessEntries();
22
22
  return await runner.run(params);
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_tasks","createImportFromUrlProcessEntriesTask","createTaskDefinition","id","IMPORT_FROM_URL_PROCESS_ENTRIES_TASK","title","maxIterations","isPrivate","description","run","params","createImportFromUrlProcessEntries","runner","ex","response","error","exports"],"sources":["importFromUrlProcessEntries.ts"],"sourcesContent":["import { IMPORT_FROM_URL_PROCESS_ENTRIES_TASK } from \"~/tasks/constants\";\nimport { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context } from \"~/types\";\nimport type {\n IImportFromUrlProcessEntriesInput,\n IImportFromUrlProcessEntriesOutput\n} from \"./domain/importFromUrlProcessEntries/abstractions/ImportFromUrlProcessEntries\";\n\nexport const createImportFromUrlProcessEntriesTask = () => {\n return createTaskDefinition<\n Context,\n IImportFromUrlProcessEntriesInput,\n IImportFromUrlProcessEntriesOutput\n >({\n id: IMPORT_FROM_URL_PROCESS_ENTRIES_TASK,\n title: \"Import from URL List - Process entries\",\n maxIterations: 500,\n isPrivate: true,\n description: \"Process entries import.\",\n async run(params) {\n const { createImportFromUrlProcessEntries } = await import(\n /* webpackChunkName: \"createImportFromUrlProcessEntries\" */ \"./domain/createImportFromUrlProcessEntries\"\n );\n\n try {\n const runner = createImportFromUrlProcessEntries();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAOO,MAAME,qCAAqC,GAAGA,CAAA,KAAM;EACvD,OAAO,IAAAC,2BAAoB,EAIzB;IACEC,EAAE,EAAEC,+CAAoC;IACxCC,KAAK,EAAE,wCAAwC;IAC/CC,aAAa,EAAE,GAAG;IAClBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,yBAAyB;IACtC,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAAkC,CAAC,GAAG,MAAM,MAAM,EACtD,uGACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAGD,iCAAiC,CAAC,CAAC;QAClD,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAf,qCAAA,GAAAA,qCAAA","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","_tasks","createImportFromUrlProcessEntriesTask","createTaskDefinition","id","IMPORT_FROM_URL_PROCESS_ENTRIES_TASK","title","maxIterations","isPrivate","description","run","params","createImportFromUrlProcessEntries","runner","ex","response","error","exports"],"sources":["importFromUrlProcessEntries.ts"],"sourcesContent":["import { IMPORT_FROM_URL_PROCESS_ENTRIES_TASK } from \"~/tasks/constants\";\nimport { createTaskDefinition } from \"@webiny/tasks\";\nimport type { Context } from \"~/types\";\nimport type {\n IImportFromUrlProcessEntriesInput,\n IImportFromUrlProcessEntriesOutput\n} from \"./domain/importFromUrlProcessEntries/abstractions/ImportFromUrlProcessEntries\";\n\nexport const createImportFromUrlProcessEntriesTask = () => {\n return createTaskDefinition<\n Context,\n IImportFromUrlProcessEntriesInput,\n IImportFromUrlProcessEntriesOutput\n >({\n id: IMPORT_FROM_URL_PROCESS_ENTRIES_TASK,\n title: \"Import from URL List - Process entries\",\n maxIterations: 500,\n isPrivate: true,\n description: \"Process entries import.\",\n async run(params) {\n const { createImportFromUrlProcessEntries } = await import(\n /* webpackChunkName: \"createImportFromUrlProcessEntries\" */ \"./domain/createImportFromUrlProcessEntries\"\n );\n\n try {\n const runner = createImportFromUrlProcessEntries();\n return await runner.run(params);\n } catch (ex) {\n return params.response.error(ex);\n }\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAOO,MAAME,qCAAqC,GAAGA,CAAA,KAAM;EACvD,OAAO,IAAAC,2BAAoB,EAIzB;IACEC,EAAE,EAAEC,+CAAoC;IACxCC,KAAK,EAAE,wCAAwC;IAC/CC,aAAa,EAAE,GAAG;IAClBC,SAAS,EAAE,IAAI;IACfC,WAAW,EAAE,yBAAyB;IACtC,MAAMC,GAAGA,CAACC,MAAM,EAAE;MACd,MAAM;QAAEC;MAAkC,CAAC,GAAG,MAAM,MAAM,CACtD,uGACJ,CAAC;MAED,IAAI;QACA,MAAMC,MAAM,GAAGD,iCAAiC,CAAC,CAAC;QAClD,OAAO,MAAMC,MAAM,CAACH,GAAG,CAACC,MAAM,CAAC;MACnC,CAAC,CAAC,OAAOG,EAAE,EAAE;QACT,OAAOH,MAAM,CAACI,QAAQ,CAACC,KAAK,CAACF,EAAE,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAf,qCAAA,GAAAA,qCAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["PointerStore","isTaskAborted","isStoredFiles","constructor","params","entryMeta","cursor","hasMoreItems","totalCount","fileCursor","setEntryMeta","meta","getEntryTotalItems","getEntryHasMoreItems","getEntryCursor","undefined","setFileCursor","getFileCursor","getIsStoredFiles","setIsStoredFiles","Error","getTaskIsAborted","setTaskIsAborted","resetFileCursor","exports"],"sources":["PointerStore.ts"],"sourcesContent":["import type { CmsEntryMeta } from \"@webiny/api-headless-cms/types\";\n\nexport interface IPointerStoreParams {\n entryMeta: {\n cursor: string | null | undefined;\n };\n fileCursor?: string;\n}\n\nexport class PointerStore {\n private isTaskAborted = false;\n private isStoredFiles = false;\n private entryMeta?: CmsEntryMeta;\n private fileCursor?: string;\n\n public constructor(params: IPointerStoreParams) {\n this.entryMeta = {\n cursor: params.entryMeta.cursor || null,\n hasMoreItems: true,\n totalCount: 0\n };\n this.fileCursor = params.fileCursor;\n }\n\n public setEntryMeta(meta?: CmsEntryMeta): void {\n this.entryMeta = meta;\n }\n\n public getEntryTotalItems(): number {\n return this.entryMeta?.totalCount || 0;\n }\n\n public getEntryHasMoreItems(): boolean {\n return !!this.entryMeta?.hasMoreItems;\n }\n\n public getEntryCursor(): string | undefined {\n if (!this.entryMeta?.cursor || !this.entryMeta.hasMoreItems) {\n return undefined;\n }\n return this.entryMeta.cursor;\n }\n\n public setFileCursor(cursor?: string): void {\n this.fileCursor = cursor;\n }\n\n public getFileCursor(): string | undefined {\n return this.fileCursor;\n }\n\n public getIsStoredFiles(): boolean {\n return this.isStoredFiles;\n }\n\n public setIsStoredFiles(): void {\n if (this.isStoredFiles) {\n throw new Error(`The \"setIsStoredFiles\" method should be called only once.`);\n }\n this.isStoredFiles = true;\n }\n\n public getTaskIsAborted(): boolean {\n return this.isTaskAborted;\n }\n\n public setTaskIsAborted(): void {\n if (this.isTaskAborted) {\n throw new Error(`The \"setTaskIsAborted\" method should be called only once.`);\n }\n this.isTaskAborted = true;\n }\n\n public resetFileCursor(): void {\n this.fileCursor = undefined;\n }\n}\n"],"mappings":";;;;;;AASO,MAAMA,YAAY,CAAC;EACdC,aAAa,GAAG,KAAK;EACrBC,aAAa,GAAG,KAAK;EAItBC,WAAWA,CAACC,MAA2B,EAAE;IAC5C,IAAI,CAACC,SAAS,GAAG;MACbC,MAAM,EAAEF,MAAM,CAACC,SAAS,CAACC,MAAM,IAAI,IAAI;MACvCC,YAAY,EAAE,IAAI;MAClBC,UAAU,EAAE;IAChB,CAAC;IACD,IAAI,CAACC,UAAU,GAAGL,MAAM,CAACK,UAAU;EACvC;EAEOC,YAAYA,CAACC,IAAmB,EAAQ;IAC3C,IAAI,CAACN,SAAS,GAAGM,IAAI;EACzB;EAEOC,kBAAkBA,CAAA,EAAW;IAChC,OAAO,IAAI,CAACP,SAAS,EAAEG,UAAU,IAAI,CAAC;EAC1C;EAEOK,oBAAoBA,CAAA,EAAY;IACnC,OAAO,CAAC,CAAC,IAAI,CAACR,SAAS,EAAEE,YAAY;EACzC;EAEOO,cAAcA,CAAA,EAAuB;IACxC,IAAI,CAAC,IAAI,CAACT,SAAS,EAAEC,MAAM,IAAI,CAAC,IAAI,CAACD,SAAS,CAACE,YAAY,EAAE;MACzD,OAAOQ,SAAS;IACpB;IACA,OAAO,IAAI,CAACV,SAAS,CAACC,MAAM;EAChC;EAEOU,aAAaA,CAACV,MAAe,EAAQ;IACxC,IAAI,CAACG,UAAU,GAAGH,MAAM;EAC5B;EAEOW,aAAaA,CAAA,EAAuB;IACvC,OAAO,IAAI,CAACR,UAAU;EAC1B;EAEOS,gBAAgBA,CAAA,EAAY;IAC/B,OAAO,IAAI,CAAChB,aAAa;EAC7B;EAEOiB,gBAAgBA,CAAA,EAAS;IAC5B,IAAI,IAAI,CAACjB,aAAa,EAAE;MACpB,MAAM,IAAIkB,KAAK,CAAE,2DAA0D,CAAC;IAChF;IACA,IAAI,CAAClB,aAAa,GAAG,IAAI;EAC7B;EAEOmB,gBAAgBA,CAAA,EAAY;IAC/B,OAAO,IAAI,CAACpB,aAAa;EAC7B;EAEOqB,gBAAgBA,CAAA,EAAS;IAC5B,IAAI,IAAI,CAACrB,aAAa,EAAE;MACpB,MAAM,IAAImB,KAAK,CAAE,2DAA0D,CAAC;IAChF;IACA,IAAI,CAACnB,aAAa,GAAG,IAAI;EAC7B;EAEOsB,eAAeA,CAAA,EAAS;IAC3B,IAAI,CAACd,UAAU,GAAGM,SAAS;EAC/B;AACJ;AAACS,OAAA,CAAAxB,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["PointerStore","isTaskAborted","isStoredFiles","constructor","params","entryMeta","cursor","hasMoreItems","totalCount","fileCursor","setEntryMeta","meta","getEntryTotalItems","getEntryHasMoreItems","getEntryCursor","undefined","setFileCursor","getFileCursor","getIsStoredFiles","setIsStoredFiles","Error","getTaskIsAborted","setTaskIsAborted","resetFileCursor","exports"],"sources":["PointerStore.ts"],"sourcesContent":["import type { CmsEntryMeta } from \"@webiny/api-headless-cms/types\";\n\nexport interface IPointerStoreParams {\n entryMeta: {\n cursor: string | null | undefined;\n };\n fileCursor?: string;\n}\n\nexport class PointerStore {\n private isTaskAborted = false;\n private isStoredFiles = false;\n private entryMeta?: CmsEntryMeta;\n private fileCursor?: string;\n\n public constructor(params: IPointerStoreParams) {\n this.entryMeta = {\n cursor: params.entryMeta.cursor || null,\n hasMoreItems: true,\n totalCount: 0\n };\n this.fileCursor = params.fileCursor;\n }\n\n public setEntryMeta(meta?: CmsEntryMeta): void {\n this.entryMeta = meta;\n }\n\n public getEntryTotalItems(): number {\n return this.entryMeta?.totalCount || 0;\n }\n\n public getEntryHasMoreItems(): boolean {\n return !!this.entryMeta?.hasMoreItems;\n }\n\n public getEntryCursor(): string | undefined {\n if (!this.entryMeta?.cursor || !this.entryMeta.hasMoreItems) {\n return undefined;\n }\n return this.entryMeta.cursor;\n }\n\n public setFileCursor(cursor?: string): void {\n this.fileCursor = cursor;\n }\n\n public getFileCursor(): string | undefined {\n return this.fileCursor;\n }\n\n public getIsStoredFiles(): boolean {\n return this.isStoredFiles;\n }\n\n public setIsStoredFiles(): void {\n if (this.isStoredFiles) {\n throw new Error(`The \"setIsStoredFiles\" method should be called only once.`);\n }\n this.isStoredFiles = true;\n }\n\n public getTaskIsAborted(): boolean {\n return this.isTaskAborted;\n }\n\n public setTaskIsAborted(): void {\n if (this.isTaskAborted) {\n throw new Error(`The \"setTaskIsAborted\" method should be called only once.`);\n }\n this.isTaskAborted = true;\n }\n\n public resetFileCursor(): void {\n this.fileCursor = undefined;\n }\n}\n"],"mappings":";;;;;;AASO,MAAMA,YAAY,CAAC;EACdC,aAAa,GAAG,KAAK;EACrBC,aAAa,GAAG,KAAK;EAItBC,WAAWA,CAACC,MAA2B,EAAE;IAC5C,IAAI,CAACC,SAAS,GAAG;MACbC,MAAM,EAAEF,MAAM,CAACC,SAAS,CAACC,MAAM,IAAI,IAAI;MACvCC,YAAY,EAAE,IAAI;MAClBC,UAAU,EAAE;IAChB,CAAC;IACD,IAAI,CAACC,UAAU,GAAGL,MAAM,CAACK,UAAU;EACvC;EAEOC,YAAYA,CAACC,IAAmB,EAAQ;IAC3C,IAAI,CAACN,SAAS,GAAGM,IAAI;EACzB;EAEOC,kBAAkBA,CAAA,EAAW;IAChC,OAAO,IAAI,CAACP,SAAS,EAAEG,UAAU,IAAI,CAAC;EAC1C;EAEOK,oBAAoBA,CAAA,EAAY;IACnC,OAAO,CAAC,CAAC,IAAI,CAACR,SAAS,EAAEE,YAAY;EACzC;EAEOO,cAAcA,CAAA,EAAuB;IACxC,IAAI,CAAC,IAAI,CAACT,SAAS,EAAEC,MAAM,IAAI,CAAC,IAAI,CAACD,SAAS,CAACE,YAAY,EAAE;MACzD,OAAOQ,SAAS;IACpB;IACA,OAAO,IAAI,CAACV,SAAS,CAACC,MAAM;EAChC;EAEOU,aAAaA,CAACV,MAAe,EAAQ;IACxC,IAAI,CAACG,UAAU,GAAGH,MAAM;EAC5B;EAEOW,aAAaA,CAAA,EAAuB;IACvC,OAAO,IAAI,CAACR,UAAU;EAC1B;EAEOS,gBAAgBA,CAAA,EAAY;IAC/B,OAAO,IAAI,CAAChB,aAAa;EAC7B;EAEOiB,gBAAgBA,CAAA,EAAS;IAC5B,IAAI,IAAI,CAACjB,aAAa,EAAE;MACpB,MAAM,IAAIkB,KAAK,CAAC,2DAA2D,CAAC;IAChF;IACA,IAAI,CAAClB,aAAa,GAAG,IAAI;EAC7B;EAEOmB,gBAAgBA,CAAA,EAAY;IAC/B,OAAO,IAAI,CAACpB,aAAa;EAC7B;EAEOqB,gBAAgBA,CAAA,EAAS;IAC5B,IAAI,IAAI,CAACrB,aAAa,EAAE;MACpB,MAAM,IAAImB,KAAK,CAAC,2DAA2D,CAAC;IAChF;IACA,IAAI,CAACnB,aAAa,GAAG,IAAI;EAC7B;EAEOsB,eAAeA,CAAA,EAAS;IAC3B,IAAI,CAACd,UAAU,GAAGM,SAAS;EAC/B;AACJ;AAACS,OAAA,CAAAxB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_CmsEntryZipperExecuteContinueResult","require","_CmsEntryZipperExecuteDoneResult","_sanitize","_exportPath","_cleanChecksum","_constants","createBufferData","params","items","meta","after","Buffer","from","JSON","stringify","map","item","id","entryId","tenant","locale","locked","webinyVersion","version","modelId","values","CmsEntryZipper","constructor","zipper","fetcher","entryAssets","uniqueAssetsResolver","execute","isCloseToTimeout","isAborted","model","inputAfter","exportAssets","files","hasMoreItems","storedFiles","continueAfter","undefined","assets","addItems","abort","closeToTimeout","finalize","output","sanitizeModel","group","add","name","MANIFEST_JSON","totalCount","console","log","push","cursor","itemsAssets","assignAssets","length","uniqueItemAssets","resolve","on","error","result","done","Key","Error","checksum","cleanChecksum","ETag","key","stripExportPath","CmsEntryZipperExecuteContinueResult","CmsEntryZipperExecuteDoneResult","exports"],"sources":["CmsEntryZipper.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport type { ICmsEntryEntriesJson, ICmsEntryManifestJson, IFileMeta } from \"../types\";\nimport { CmsEntryZipperExecuteContinueResult } from \"./CmsEntryZipperExecuteContinueResult\";\nimport { CmsEntryZipperExecuteDoneResult } from \"./CmsEntryZipperExecuteDoneResult\";\nimport type {\n ICmsEntryZipper,\n ICmsEntryZipperExecuteParams,\n ICmsEntryZipperExecuteResult\n} from \"./abstractions/CmsEntryZipper\";\nimport type { ICmsEntryFetcher } from \"~/tasks/utils/cmsEntryFetcher/abstractions/CmsEntryFetcher\";\nimport type { IZipper } from \"~/tasks/utils/zipper\";\nimport type { IAsset, IEntryAssets } from \"~/tasks/utils/entryAssets\";\nimport type { IUniqueResolver } from \"~/tasks/utils/uniqueResolver/abstractions/UniqueResolver\";\nimport { sanitizeModel } from \"@webiny/api-headless-cms/export/crud/sanitize\";\nimport { stripExportPath } from \"~/tasks/utils/helpers/exportPath\";\nimport { cleanChecksum } from \"~/tasks/utils/helpers/cleanChecksum\";\nimport { MANIFEST_JSON } from \"~/tasks/constants\";\n\nexport interface ICmsEntryZipperConfig {\n zipper: IZipper;\n fetcher: ICmsEntryFetcher;\n entryAssets: IEntryAssets;\n uniqueAssetsResolver: IUniqueResolver<IAsset>;\n}\n\nconst createBufferData = (params: ICmsEntryEntriesJson) => {\n const { items, meta, after } = params;\n return Buffer.from(\n JSON.stringify({\n items: items.map((item: Partial<CmsEntry>) => {\n /**\n * We will use the entryId as the ID of the entry.\n */\n const id = item.entryId;\n /**\n * We need to remove some fields that are not needed in the export.\n */\n delete item.tenant;\n delete item.locale;\n delete item.locked;\n delete item.webinyVersion;\n delete item.version;\n delete item.entryId;\n delete item.modelId;\n\n const values = item.values;\n\n delete item.values;\n\n return {\n ...item,\n ...values,\n id\n };\n }),\n meta,\n after\n })\n );\n};\n\nexport class CmsEntryZipper implements ICmsEntryZipper {\n private readonly zipper: IZipper;\n private readonly fetcher: ICmsEntryFetcher;\n private readonly entryAssets: IEntryAssets;\n private readonly uniqueAssetsResolver: IUniqueResolver<IAsset>;\n\n public constructor(params: ICmsEntryZipperConfig) {\n this.zipper = params.zipper;\n this.fetcher = params.fetcher;\n this.entryAssets = params.entryAssets;\n this.uniqueAssetsResolver = params.uniqueAssetsResolver;\n }\n\n public async execute(\n params: ICmsEntryZipperExecuteParams\n ): Promise<ICmsEntryZipperExecuteResult> {\n const { isCloseToTimeout, isAborted, model, after: inputAfter, exportAssets } = params;\n\n const files: IFileMeta[] = [];\n\n let after = inputAfter;\n\n let hasMoreItems = true;\n let storedFiles = false;\n\n let id = 1;\n\n let continueAfter: string | undefined = undefined;\n\n let assets: IAsset[] | undefined = undefined;\n /**\n * This function works as self invoking function, it will add items to the zipper until there are no more items to add.\n *\n * If the lambda is close to timeout, we will store the current state and continue from the last cursor in the next task run.\n */\n const addItems = async () => {\n if (isAborted()) {\n this.zipper.abort();\n return;\n }\n const closeToTimeout = isCloseToTimeout();\n if (storedFiles) {\n await this.zipper.finalize();\n return;\n } else if (!hasMoreItems || closeToTimeout) {\n if (closeToTimeout && hasMoreItems) {\n continueAfter = after;\n }\n const output: ICmsEntryManifestJson = {\n files,\n assets,\n model: sanitizeModel(\n {\n id: model.group.id\n },\n model\n )\n };\n await this.zipper.add(Buffer.from(JSON.stringify(output)), {\n name: MANIFEST_JSON\n });\n storedFiles = true;\n return;\n }\n\n const { items, meta } = await this.fetcher(after);\n if (meta.totalCount === 0) {\n console.log(\"No items found, aborting...\");\n this.zipper.abort();\n return;\n }\n\n const name = `entries${inputAfter ? `-${inputAfter}` : \"\"}-${id}.json`;\n\n files.push({\n id,\n name,\n after\n });\n\n await this.zipper.add(createBufferData({ items, meta, after }), {\n name\n });\n\n hasMoreItems = meta.hasMoreItems;\n after = meta.cursor || undefined;\n id++;\n /**\n * We should not continue if assets are getting exported.\n * There will be a new task triggered for exporting assets.\n */\n if (exportAssets) {\n return;\n } else if (!assets) {\n assets = [];\n }\n\n const itemsAssets = await this.entryAssets.assignAssets(items);\n\n if (itemsAssets.length === 0) {\n return;\n }\n const uniqueItemAssets = this.uniqueAssetsResolver.resolve(itemsAssets, \"url\");\n if (uniqueItemAssets.length === 0) {\n return;\n }\n assets.push(...uniqueItemAssets);\n };\n\n this.zipper.on(\"error\", error => {\n console.error(error);\n });\n\n this.zipper.on(\"entry\", () => {\n addItems();\n });\n\n addItems();\n\n const result = await this.zipper.done();\n\n if (!result.Key) {\n throw new Error(\"Failed to upload the file.\");\n }\n\n const checksum = cleanChecksum(result.ETag || \"\");\n\n const key = stripExportPath(result.Key);\n if (continueAfter) {\n return new CmsEntryZipperExecuteContinueResult({\n key,\n checksum,\n cursor: continueAfter\n });\n }\n\n return new CmsEntryZipperExecuteDoneResult({\n key,\n checksum\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_CmsEntryZipperExecuteContinueResult","require","_CmsEntryZipperExecuteDoneResult","_sanitize","_exportPath","_cleanChecksum","_constants","createBufferData","params","items","meta","after","Buffer","from","JSON","stringify","map","item","id","entryId","tenant","locale","locked","webinyVersion","version","modelId","values","CmsEntryZipper","constructor","zipper","fetcher","entryAssets","uniqueAssetsResolver","execute","isCloseToTimeout","isAborted","model","inputAfter","exportAssets","files","hasMoreItems","storedFiles","continueAfter","undefined","assets","addItems","abort","closeToTimeout","finalize","output","sanitizeModel","group","add","name","MANIFEST_JSON","totalCount","console","log","push","cursor","itemsAssets","assignAssets","length","uniqueItemAssets","resolve","on","error","result","done","Key","Error","checksum","cleanChecksum","ETag","key","stripExportPath","CmsEntryZipperExecuteContinueResult","CmsEntryZipperExecuteDoneResult","exports"],"sources":["CmsEntryZipper.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport type { ICmsEntryEntriesJson, ICmsEntryManifestJson, IFileMeta } from \"../types\";\nimport { CmsEntryZipperExecuteContinueResult } from \"./CmsEntryZipperExecuteContinueResult\";\nimport { CmsEntryZipperExecuteDoneResult } from \"./CmsEntryZipperExecuteDoneResult\";\nimport type {\n ICmsEntryZipper,\n ICmsEntryZipperExecuteParams,\n ICmsEntryZipperExecuteResult\n} from \"./abstractions/CmsEntryZipper\";\nimport type { ICmsEntryFetcher } from \"~/tasks/utils/cmsEntryFetcher/abstractions/CmsEntryFetcher\";\nimport type { IZipper } from \"~/tasks/utils/zipper\";\nimport type { IAsset, IEntryAssets } from \"~/tasks/utils/entryAssets\";\nimport type { IUniqueResolver } from \"~/tasks/utils/uniqueResolver/abstractions/UniqueResolver\";\nimport { sanitizeModel } from \"@webiny/api-headless-cms/export/crud/sanitize\";\nimport { stripExportPath } from \"~/tasks/utils/helpers/exportPath\";\nimport { cleanChecksum } from \"~/tasks/utils/helpers/cleanChecksum\";\nimport { MANIFEST_JSON } from \"~/tasks/constants\";\n\nexport interface ICmsEntryZipperConfig {\n zipper: IZipper;\n fetcher: ICmsEntryFetcher;\n entryAssets: IEntryAssets;\n uniqueAssetsResolver: IUniqueResolver<IAsset>;\n}\n\nconst createBufferData = (params: ICmsEntryEntriesJson) => {\n const { items, meta, after } = params;\n return Buffer.from(\n JSON.stringify({\n items: items.map((item: Partial<CmsEntry>) => {\n /**\n * We will use the entryId as the ID of the entry.\n */\n const id = item.entryId;\n /**\n * We need to remove some fields that are not needed in the export.\n */\n delete item.tenant;\n delete item.locale;\n delete item.locked;\n delete item.webinyVersion;\n delete item.version;\n delete item.entryId;\n delete item.modelId;\n\n const values = item.values;\n\n delete item.values;\n\n return {\n ...item,\n ...values,\n id\n };\n }),\n meta,\n after\n })\n );\n};\n\nexport class CmsEntryZipper implements ICmsEntryZipper {\n private readonly zipper: IZipper;\n private readonly fetcher: ICmsEntryFetcher;\n private readonly entryAssets: IEntryAssets;\n private readonly uniqueAssetsResolver: IUniqueResolver<IAsset>;\n\n public constructor(params: ICmsEntryZipperConfig) {\n this.zipper = params.zipper;\n this.fetcher = params.fetcher;\n this.entryAssets = params.entryAssets;\n this.uniqueAssetsResolver = params.uniqueAssetsResolver;\n }\n\n public async execute(\n params: ICmsEntryZipperExecuteParams\n ): Promise<ICmsEntryZipperExecuteResult> {\n const { isCloseToTimeout, isAborted, model, after: inputAfter, exportAssets } = params;\n\n const files: IFileMeta[] = [];\n\n let after = inputAfter;\n\n let hasMoreItems = true;\n let storedFiles = false;\n\n let id = 1;\n\n let continueAfter: string | undefined = undefined;\n\n let assets: IAsset[] | undefined = undefined;\n /**\n * This function works as self invoking function, it will add items to the zipper until there are no more items to add.\n *\n * If the lambda is close to timeout, we will store the current state and continue from the last cursor in the next task run.\n */\n const addItems = async () => {\n if (isAborted()) {\n this.zipper.abort();\n return;\n }\n const closeToTimeout = isCloseToTimeout();\n if (storedFiles) {\n await this.zipper.finalize();\n return;\n } else if (!hasMoreItems || closeToTimeout) {\n if (closeToTimeout && hasMoreItems) {\n continueAfter = after;\n }\n const output: ICmsEntryManifestJson = {\n files,\n assets,\n model: sanitizeModel(\n {\n id: model.group.id\n },\n model\n )\n };\n await this.zipper.add(Buffer.from(JSON.stringify(output)), {\n name: MANIFEST_JSON\n });\n storedFiles = true;\n return;\n }\n\n const { items, meta } = await this.fetcher(after);\n if (meta.totalCount === 0) {\n console.log(\"No items found, aborting...\");\n this.zipper.abort();\n return;\n }\n\n const name = `entries${inputAfter ? `-${inputAfter}` : \"\"}-${id}.json`;\n\n files.push({\n id,\n name,\n after\n });\n\n await this.zipper.add(createBufferData({ items, meta, after }), {\n name\n });\n\n hasMoreItems = meta.hasMoreItems;\n after = meta.cursor || undefined;\n id++;\n /**\n * We should not continue if assets are getting exported.\n * There will be a new task triggered for exporting assets.\n */\n if (exportAssets) {\n return;\n } else if (!assets) {\n assets = [];\n }\n\n const itemsAssets = await this.entryAssets.assignAssets(items);\n\n if (itemsAssets.length === 0) {\n return;\n }\n const uniqueItemAssets = this.uniqueAssetsResolver.resolve(itemsAssets, \"url\");\n if (uniqueItemAssets.length === 0) {\n return;\n }\n assets.push(...uniqueItemAssets);\n };\n\n this.zipper.on(\"error\", error => {\n console.error(error);\n });\n\n this.zipper.on(\"entry\", () => {\n addItems();\n });\n\n addItems();\n\n const result = await this.zipper.done();\n\n if (!result.Key) {\n throw new Error(\"Failed to upload the file.\");\n }\n\n const checksum = cleanChecksum(result.ETag || \"\");\n\n const key = stripExportPath(result.Key);\n if (continueAfter) {\n return new CmsEntryZipperExecuteContinueResult({\n key,\n checksum,\n cursor: continueAfter\n });\n }\n\n return new CmsEntryZipperExecuteDoneResult({\n key,\n checksum\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_stream","require","Decompressor","constructor","params","createUploadFactory","read","files","target","file","find","f","path","Error","buffer","toString","extract","source","factory","multipartUpload","start","promises","localStream","PassThrough","autoDestroy","on","err","console","log","data","p","add","push","stream","ex","error","Promise","resolve","reject","alreadyDone","alreadyError","done","all","result","complete","abort","destroy","pipe","exports","createDecompressor"],"sources":["Decompressor.ts"],"sourcesContent":["import type {\n IDecompressor,\n IDecompressorDecompressParams,\n IUnzipperFile\n} from \"./abstractions/Decompressor\";\nimport type {\n IMultipartUploadFactory,\n IMultipartUploadHandlerAddResult,\n IUploadDoneResult\n} from \"~/tasks/utils/upload\";\nimport type { Entry } from \"unzipper\";\nimport { PassThrough } from \"stream\";\n\nexport interface IDecompressorParamsUploadCreateFactory {\n (filename: string): IMultipartUploadFactory;\n}\n\nexport interface IDecompressorParams {\n createUploadFactory: IDecompressorParamsUploadCreateFactory;\n}\n\nexport class Decompressor implements IDecompressor {\n private readonly createUploadFactory: IDecompressorParamsUploadCreateFactory;\n\n public constructor(params: IDecompressorParams) {\n this.createUploadFactory = params.createUploadFactory;\n }\n /**\n * Should not be used with large files (> 10/20MB)\n */\n public async read(files: IUnzipperFile[], target: string): Promise<string> {\n const file = files.find(f => f.path === target);\n if (!file) {\n throw new Error(`File \"${target}\" not found in the compressed file.`);\n }\n\n const buffer = await file.buffer();\n\n return buffer.toString();\n }\n\n public async extract(params: IDecompressorDecompressParams): Promise<IUploadDoneResult> {\n const { source, target } = params;\n\n const factory = this.createUploadFactory(target);\n\n const multipartUpload = await factory.start();\n\n const promises: Promise<IMultipartUploadHandlerAddResult>[] = [];\n\n const localStream = new PassThrough({\n autoDestroy: true\n })\n .on(\"error\", err => {\n console.log(\"Decompressor Local Stream Error\", err);\n throw err;\n })\n .on(\"data\", data => {\n const p = multipartUpload.add(data);\n promises.push(p);\n });\n\n let stream: Entry;\n try {\n stream = source.stream();\n } catch (ex) {\n console.error(`Failed to create stream for \"${source.path}\".`, ex);\n throw ex;\n }\n return new Promise<IUploadDoneResult>((resolve, reject) => {\n let alreadyDone = false;\n let alreadyError = false;\n\n const done = async (): Promise<void> => {\n if (alreadyDone) {\n return;\n }\n alreadyDone = true;\n try {\n await Promise.all(promises);\n const result = await multipartUpload.complete();\n resolve(result.result);\n } catch (ex) {\n console.error(\"Failed to upload file.\", ex);\n multipartUpload.abort();\n reject(ex);\n } finally {\n stream.destroy();\n }\n };\n\n const error = async (err: Error): Promise<void> => {\n if (alreadyError) {\n return;\n }\n alreadyError = true;\n try {\n await multipartUpload.abort();\n reject(err);\n } catch (ex) {\n reject(ex);\n } finally {\n stream.destroy();\n }\n };\n\n stream\n .pipe(localStream)\n .on(\"finish\", () => {\n done();\n })\n .on(\"error\", err => {\n error(err);\n });\n });\n }\n}\n\nexport const createDecompressor = (params: IDecompressorParams): IDecompressor => {\n return new Decompressor(params);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_stream","require","Decompressor","constructor","params","createUploadFactory","read","files","target","file","find","f","path","Error","buffer","toString","extract","source","factory","multipartUpload","start","promises","localStream","PassThrough","autoDestroy","on","err","console","log","data","p","add","push","stream","ex","error","Promise","resolve","reject","alreadyDone","alreadyError","done","all","result","complete","abort","destroy","pipe","exports","createDecompressor"],"sources":["Decompressor.ts"],"sourcesContent":["import type {\n IDecompressor,\n IDecompressorDecompressParams,\n IUnzipperFile\n} from \"./abstractions/Decompressor\";\nimport type {\n IMultipartUploadFactory,\n IMultipartUploadHandlerAddResult,\n IUploadDoneResult\n} from \"~/tasks/utils/upload\";\nimport type { Entry } from \"unzipper\";\nimport { PassThrough } from \"stream\";\n\nexport interface IDecompressorParamsUploadCreateFactory {\n (filename: string): IMultipartUploadFactory;\n}\n\nexport interface IDecompressorParams {\n createUploadFactory: IDecompressorParamsUploadCreateFactory;\n}\n\nexport class Decompressor implements IDecompressor {\n private readonly createUploadFactory: IDecompressorParamsUploadCreateFactory;\n\n public constructor(params: IDecompressorParams) {\n this.createUploadFactory = params.createUploadFactory;\n }\n /**\n * Should not be used with large files (> 10/20MB)\n */\n public async read(files: IUnzipperFile[], target: string): Promise<string> {\n const file = files.find(f => f.path === target);\n if (!file) {\n throw new Error(`File \"${target}\" not found in the compressed file.`);\n }\n\n const buffer = await file.buffer();\n\n return buffer.toString();\n }\n\n public async extract(params: IDecompressorDecompressParams): Promise<IUploadDoneResult> {\n const { source, target } = params;\n\n const factory = this.createUploadFactory(target);\n\n const multipartUpload = await factory.start();\n\n const promises: Promise<IMultipartUploadHandlerAddResult>[] = [];\n\n const localStream = new PassThrough({\n autoDestroy: true\n })\n .on(\"error\", err => {\n console.log(\"Decompressor Local Stream Error\", err);\n throw err;\n })\n .on(\"data\", data => {\n const p = multipartUpload.add(data);\n promises.push(p);\n });\n\n let stream: Entry;\n try {\n stream = source.stream();\n } catch (ex) {\n console.error(`Failed to create stream for \"${source.path}\".`, ex);\n throw ex;\n }\n return new Promise<IUploadDoneResult>((resolve, reject) => {\n let alreadyDone = false;\n let alreadyError = false;\n\n const done = async (): Promise<void> => {\n if (alreadyDone) {\n return;\n }\n alreadyDone = true;\n try {\n await Promise.all(promises);\n const result = await multipartUpload.complete();\n resolve(result.result);\n } catch (ex) {\n console.error(\"Failed to upload file.\", ex);\n multipartUpload.abort();\n reject(ex);\n } finally {\n stream.destroy();\n }\n };\n\n const error = async (err: Error): Promise<void> => {\n if (alreadyError) {\n return;\n }\n alreadyError = true;\n try {\n await multipartUpload.abort();\n reject(err);\n } catch (ex) {\n reject(ex);\n } finally {\n stream.destroy();\n }\n };\n\n stream\n .pipe(localStream)\n .on(\"finish\", () => {\n done();\n })\n .on(\"error\", err => {\n error(err);\n });\n });\n }\n}\n\nexport const createDecompressor = (params: IDecompressorParams): IDecompressor => {\n return new Decompressor(params);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_s3Client","require","_fileFetcher","_getBucket","DeleteFiles","constructor","params","fileFetcher","execute","input","files","Array","isArray","filter","file","exists","result","delete","$metadata","httpStatusCode","console","log","ex","exports","createDeleteFiles","client","createS3Client","bucket","getBucket","FileFetcher"],"sources":["DeleteFiles.ts"],"sourcesContent":["import type {\n IDeleteFiles,\n IDeleteFilesExecuteInput\n} from \"~/tasks/utils/deleteFiles/abstractions/DeleteFiles\";\nimport { createS3Client } from \"../helpers/s3Client\";\nimport { FileFetcher } from \"~/tasks/utils/fileFetcher\";\nimport type { IFileFetcher } from \"~/tasks/utils/fileFetcher\";\nimport { getBucket } from \"../helpers/getBucket\";\n\nexport interface IDeleteFilesParams {\n fileFetcher: IFileFetcher;\n}\n\nexport class DeleteFiles implements IDeleteFiles {\n private readonly fileFetcher: IFileFetcher;\n\n public constructor(params: IDeleteFilesParams) {\n this.fileFetcher = params.fileFetcher;\n }\n\n public async execute(input: IDeleteFilesExecuteInput): Promise<void> {\n if (!input) {\n return;\n }\n const files = (Array.isArray(input) ? input : [input]).filter((file): file is string => {\n return !!file;\n });\n for (const file of files) {\n const exists = await this.fileFetcher.exists(file);\n if (!exists) {\n continue;\n }\n try {\n const result = await this.fileFetcher.delete(file);\n if (!result.$metadata) {\n continue;\n }\n if (result.$metadata.httpStatusCode !== 200) {\n console.log(`Failed to delete file \"${file}\".`);\n }\n } catch (ex) {\n console.log(`Failed to delete file \"${file}\".`, ex);\n }\n }\n }\n}\n\nexport const createDeleteFiles = (): IDeleteFiles => {\n const client = createS3Client();\n const bucket = getBucket();\n return new DeleteFiles({\n fileFetcher: new FileFetcher({\n client,\n bucket\n })\n });\n};\n"],"mappings":";;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAMO,MAAMG,WAAW,CAAyB;EAGtCC,WAAWA,CAACC,MAA0B,EAAE;IAC3C,IAAI,CAACC,WAAW,GAAGD,MAAM,CAACC,WAAW;EACzC;EAEA,MAAaC,OAAOA,CAACC,KAA+B,EAAiB;IACjE,IAAI,CAACA,KAAK,EAAE;MACR;IACJ;IACA,MAAMC,KAAK,GAAG,CAACC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC,EAAEI,MAAM,CAAEC,IAAI,IAAqB;MACpF,OAAO,CAAC,CAACA,IAAI;IACjB,CAAC,CAAC;IACF,KAAK,MAAMA,IAAI,IAAIJ,KAAK,EAAE;MACtB,MAAMK,MAAM,GAAG,MAAM,IAAI,CAACR,WAAW,CAACQ,MAAM,CAACD,IAAI,CAAC;MAClD,IAAI,CAACC,MAAM,EAAE;QACT;MACJ;MACA,IAAI;QACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACT,WAAW,CAACU,MAAM,CAACH,IAAI,CAAC;QAClD,IAAI,CAACE,MAAM,CAACE,SAAS,EAAE;UACnB;QACJ;QACA,IAAIF,MAAM,CAACE,SAAS,CAACC,cAAc,KAAK,GAAG,EAAE;UACzCC,OAAO,CAACC,GAAG,CAAE,0BAAyBP,IAAK,IAAG,CAAC;QACnD;MACJ,CAAC,CAAC,OAAOQ,EAAE,EAAE;QACTF,OAAO,CAACC,GAAG,CAAE,0BAAyBP,IAAK,IAAG,EAAEQ,EAAE,CAAC;MACvD;IACJ;EACJ;AACJ;AAACC,OAAA,CAAAnB,WAAA,GAAAA,WAAA;AAEM,MAAMoB,iBAAiB,GAAGA,CAAA,KAAoB;EACjD,MAAMC,MAAM,GAAG,IAAAC,wBAAc,EAAC,CAAC;EAC/B,MAAMC,MAAM,GAAG,IAAAC,oBAAS,EAAC,CAAC;EAC1B,OAAO,IAAIxB,WAAW,CAAC;IACnBG,WAAW,EAAE,IAAIsB,wBAAW,CAAC;MACzBJ,MAAM;MACNE;IACJ,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAACJ,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_s3Client","require","_fileFetcher","_getBucket","DeleteFiles","constructor","params","fileFetcher","execute","input","files","Array","isArray","filter","file","exists","result","delete","$metadata","httpStatusCode","console","log","ex","exports","createDeleteFiles","client","createS3Client","bucket","getBucket","FileFetcher"],"sources":["DeleteFiles.ts"],"sourcesContent":["import type {\n IDeleteFiles,\n IDeleteFilesExecuteInput\n} from \"~/tasks/utils/deleteFiles/abstractions/DeleteFiles\";\nimport { createS3Client } from \"../helpers/s3Client\";\nimport { FileFetcher } from \"~/tasks/utils/fileFetcher\";\nimport type { IFileFetcher } from \"~/tasks/utils/fileFetcher\";\nimport { getBucket } from \"../helpers/getBucket\";\n\nexport interface IDeleteFilesParams {\n fileFetcher: IFileFetcher;\n}\n\nexport class DeleteFiles implements IDeleteFiles {\n private readonly fileFetcher: IFileFetcher;\n\n public constructor(params: IDeleteFilesParams) {\n this.fileFetcher = params.fileFetcher;\n }\n\n public async execute(input: IDeleteFilesExecuteInput): Promise<void> {\n if (!input) {\n return;\n }\n const files = (Array.isArray(input) ? input : [input]).filter((file): file is string => {\n return !!file;\n });\n for (const file of files) {\n const exists = await this.fileFetcher.exists(file);\n if (!exists) {\n continue;\n }\n try {\n const result = await this.fileFetcher.delete(file);\n if (!result.$metadata) {\n continue;\n }\n if (result.$metadata.httpStatusCode !== 200) {\n console.log(`Failed to delete file \"${file}\".`);\n }\n } catch (ex) {\n console.log(`Failed to delete file \"${file}\".`, ex);\n }\n }\n }\n}\n\nexport const createDeleteFiles = (): IDeleteFiles => {\n const client = createS3Client();\n const bucket = getBucket();\n return new DeleteFiles({\n fileFetcher: new FileFetcher({\n client,\n bucket\n })\n });\n};\n"],"mappings":";;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAMO,MAAMG,WAAW,CAAyB;EAGtCC,WAAWA,CAACC,MAA0B,EAAE;IAC3C,IAAI,CAACC,WAAW,GAAGD,MAAM,CAACC,WAAW;EACzC;EAEA,MAAaC,OAAOA,CAACC,KAA+B,EAAiB;IACjE,IAAI,CAACA,KAAK,EAAE;MACR;IACJ;IACA,MAAMC,KAAK,GAAG,CAACC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC,EAAEI,MAAM,CAAEC,IAAI,IAAqB;MACpF,OAAO,CAAC,CAACA,IAAI;IACjB,CAAC,CAAC;IACF,KAAK,MAAMA,IAAI,IAAIJ,KAAK,EAAE;MACtB,MAAMK,MAAM,GAAG,MAAM,IAAI,CAACR,WAAW,CAACQ,MAAM,CAACD,IAAI,CAAC;MAClD,IAAI,CAACC,MAAM,EAAE;QACT;MACJ;MACA,IAAI;QACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACT,WAAW,CAACU,MAAM,CAACH,IAAI,CAAC;QAClD,IAAI,CAACE,MAAM,CAACE,SAAS,EAAE;UACnB;QACJ;QACA,IAAIF,MAAM,CAACE,SAAS,CAACC,cAAc,KAAK,GAAG,EAAE;UACzCC,OAAO,CAACC,GAAG,CAAC,0BAA0BP,IAAI,IAAI,CAAC;QACnD;MACJ,CAAC,CAAC,OAAOQ,EAAE,EAAE;QACTF,OAAO,CAACC,GAAG,CAAC,0BAA0BP,IAAI,IAAI,EAAEQ,EAAE,CAAC;MACvD;IACJ;EACJ;AACJ;AAACC,OAAA,CAAAnB,WAAA,GAAAA,WAAA;AAEM,MAAMoB,iBAAiB,GAAGA,CAAA,KAAoB;EACjD,MAAMC,MAAM,GAAG,IAAAC,wBAAc,EAAC,CAAC;EAC/B,MAAMC,MAAM,GAAG,IAAAC,oBAAS,EAAC,CAAC;EAC1B,OAAO,IAAIxB,WAAW,CAAC;IACnBG,WAAW,EAAE,IAAIsB,wBAAW,CAAC;MACzBJ,MAAM;MACNE;IACJ,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAACJ,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","defaultTimeout","ExternalFileFetcher","timeout","constructor","params","fetcher","_getChecksumHeader","getChecksumHeader","fetch","url","result","method","contentType","headers","get","Error","contentLengthString","contentLength","parseInt","checksum","body","file","name","split","pop","size","ex","error","getObjectProperties","code","data","head","abort","AbortController","tId","setTimeout","signal","clearTimeout","status","console","exports"],"sources":["ExternalFileFetcher.ts"],"sourcesContent":["import type {\n IExternalFileFetcher,\n IExternalFileFetcherFetchResult,\n IExternalFileFetcherHeadResult\n} from \"./abstractions/ExternalFileFetcher\";\nimport { getObjectProperties } from \"@webiny/utils\";\nimport { WebinyError } from \"@webiny/error\";\n\nexport interface IGetChecksumHeaderCallable {\n (headers: Headers): string | undefined | null;\n}\n\nexport interface IExternalFileFetcherParams {\n fetcher: typeof fetch;\n timeout?: number;\n getChecksumHeader: IGetChecksumHeaderCallable;\n}\n\nconst defaultTimeout = 5;\n\nexport class ExternalFileFetcher implements IExternalFileFetcher {\n private readonly fetcher: typeof fetch;\n private readonly timeout: number = defaultTimeout;\n private readonly _getChecksumHeader: IGetChecksumHeaderCallable;\n\n public constructor(params: IExternalFileFetcherParams) {\n this.fetcher = params.fetcher;\n this.timeout = params.timeout || defaultTimeout;\n this._getChecksumHeader = params.getChecksumHeader;\n }\n\n public async fetch(url: string): Promise<IExternalFileFetcherFetchResult> {\n try {\n const result = await this.fetcher(url, {\n method: \"GET\"\n });\n const contentType = result.headers.get(\"content-type\");\n if (!contentType) {\n throw new Error(`Content type not found for URL: ${url}`);\n }\n const contentLengthString = result.headers.get(\"content-length\");\n const contentLength = contentLengthString ? parseInt(contentLengthString) : 0;\n if (contentLength === 0) {\n throw new Error(`Content length not found for URL: ${url}`);\n }\n const checksum = this.getChecksumHeader(result.headers);\n if (!checksum) {\n throw new Error(`ETag not found for URL: ${url}`);\n }\n if (!result.body) {\n throw new Error(`Body not found for URL: ${url}`);\n }\n return {\n file: {\n name: url.split(\"/\").pop() as string,\n size: contentLength,\n url,\n contentType,\n body: result.body,\n checksum\n }\n };\n } catch (ex) {\n const error = getObjectProperties<WebinyError>(ex);\n return {\n error: {\n ...error,\n code: error.code || \"GET_FETCH_ERROR\",\n data: {\n ...error.data,\n url\n }\n }\n };\n }\n }\n\n public async head(url: string): Promise<IExternalFileFetcherHeadResult> {\n const abort = new AbortController();\n try {\n /**\n * We will allow $timeout seconds for the HEAD request to complete.\n */\n const tId = setTimeout(() => {\n abort.abort(\"Timeout.\");\n }, this.timeout * 1000);\n const result = await this.fetcher(url, {\n method: \"HEAD\",\n signal: abort.signal\n });\n /**\n * And clear timeout as soon as the request is completed.\n */\n clearTimeout(tId);\n if (result.status !== 200) {\n throw new Error(`Failed to fetch URL: ${url}. Status: ${result.status}`);\n }\n const contentType = result.headers.get(\"content-type\");\n if (!contentType) {\n throw new Error(`Content type not found for URL: ${url}`);\n }\n const checksum = this.getChecksumHeader(result.headers);\n if (!checksum) {\n throw new Error(`ETag not found for URL: ${url}`);\n }\n const contentLength = result.headers.get(\"content-length\");\n\n return {\n file: {\n name: url.split(\"/\").pop() as string,\n size: parseInt(contentLength || \"0\"),\n url,\n contentType,\n checksum\n }\n };\n } catch (ex) {\n const error = getObjectProperties<WebinyError>(ex);\n console.error(error);\n return {\n error: {\n ...error,\n code: error.code || \"HEAD_FETCH_ERROR\",\n data: {\n ...error.data,\n url\n }\n }\n };\n }\n }\n\n private getChecksumHeader(headers: Headers): string | undefined | null {\n return this._getChecksumHeader(headers);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_utils","require","defaultTimeout","ExternalFileFetcher","timeout","constructor","params","fetcher","_getChecksumHeader","getChecksumHeader","fetch","url","result","method","contentType","headers","get","Error","contentLengthString","contentLength","parseInt","checksum","body","file","name","split","pop","size","ex","error","getObjectProperties","code","data","head","abort","AbortController","tId","setTimeout","signal","clearTimeout","status","console","exports"],"sources":["ExternalFileFetcher.ts"],"sourcesContent":["import type {\n IExternalFileFetcher,\n IExternalFileFetcherFetchResult,\n IExternalFileFetcherHeadResult\n} from \"./abstractions/ExternalFileFetcher\";\nimport { getObjectProperties } from \"@webiny/utils\";\nimport { WebinyError } from \"@webiny/error\";\n\nexport interface IGetChecksumHeaderCallable {\n (headers: Headers): string | undefined | null;\n}\n\nexport interface IExternalFileFetcherParams {\n fetcher: typeof fetch;\n timeout?: number;\n getChecksumHeader: IGetChecksumHeaderCallable;\n}\n\nconst defaultTimeout = 5;\n\nexport class ExternalFileFetcher implements IExternalFileFetcher {\n private readonly fetcher: typeof fetch;\n private readonly timeout: number = defaultTimeout;\n private readonly _getChecksumHeader: IGetChecksumHeaderCallable;\n\n public constructor(params: IExternalFileFetcherParams) {\n this.fetcher = params.fetcher;\n this.timeout = params.timeout || defaultTimeout;\n this._getChecksumHeader = params.getChecksumHeader;\n }\n\n public async fetch(url: string): Promise<IExternalFileFetcherFetchResult> {\n try {\n const result = await this.fetcher(url, {\n method: \"GET\"\n });\n const contentType = result.headers.get(\"content-type\");\n if (!contentType) {\n throw new Error(`Content type not found for URL: ${url}`);\n }\n const contentLengthString = result.headers.get(\"content-length\");\n const contentLength = contentLengthString ? parseInt(contentLengthString) : 0;\n if (contentLength === 0) {\n throw new Error(`Content length not found for URL: ${url}`);\n }\n const checksum = this.getChecksumHeader(result.headers);\n if (!checksum) {\n throw new Error(`ETag not found for URL: ${url}`);\n }\n if (!result.body) {\n throw new Error(`Body not found for URL: ${url}`);\n }\n return {\n file: {\n name: url.split(\"/\").pop() as string,\n size: contentLength,\n url,\n contentType,\n body: result.body,\n checksum\n }\n };\n } catch (ex) {\n const error = getObjectProperties<WebinyError>(ex);\n return {\n error: {\n ...error,\n code: error.code || \"GET_FETCH_ERROR\",\n data: {\n ...error.data,\n url\n }\n }\n };\n }\n }\n\n public async head(url: string): Promise<IExternalFileFetcherHeadResult> {\n const abort = new AbortController();\n try {\n /**\n * We will allow $timeout seconds for the HEAD request to complete.\n */\n const tId = setTimeout(() => {\n abort.abort(\"Timeout.\");\n }, this.timeout * 1000);\n const result = await this.fetcher(url, {\n method: \"HEAD\",\n signal: abort.signal\n });\n /**\n * And clear timeout as soon as the request is completed.\n */\n clearTimeout(tId);\n if (result.status !== 200) {\n throw new Error(`Failed to fetch URL: ${url}. Status: ${result.status}`);\n }\n const contentType = result.headers.get(\"content-type\");\n if (!contentType) {\n throw new Error(`Content type not found for URL: ${url}`);\n }\n const checksum = this.getChecksumHeader(result.headers);\n if (!checksum) {\n throw new Error(`ETag not found for URL: ${url}`);\n }\n const contentLength = result.headers.get(\"content-length\");\n\n return {\n file: {\n name: url.split(\"/\").pop() as string,\n size: parseInt(contentLength || \"0\"),\n url,\n contentType,\n checksum\n }\n };\n } catch (ex) {\n const error = getObjectProperties<WebinyError>(ex);\n console.error(error);\n return {\n error: {\n ...error,\n code: error.code || \"HEAD_FETCH_ERROR\",\n data: {\n ...error.data,\n url\n }\n }\n };\n }\n }\n\n private getChecksumHeader(headers: Headers): string | undefined | null {\n return this._getChecksumHeader(headers);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_clientS","require","_path","FileFetcher","constructor","params","client","bucket","head","key","cmd","HeadObjectCommand","Key","Bucket","send","ex","exists","result","$metadata","httpStatusCode","list","ListObjectsCommand","Prefix","Array","isArray","Contents","items","item","push","name","basename","size","Size","sort","a","b","localeCompare","console","error","fetch","GetObjectCommand","log","stream","response","Body","read","transformToString","delete","DeleteObjectCommand","exports"],"sources":["FileFetcher.ts"],"sourcesContent":["import type { DeleteObjectCommandOutput, S3Client } from \"@webiny/aws-sdk/client-s3\";\nimport {\n DeleteObjectCommand,\n GetObjectCommand,\n HeadObjectCommand,\n ListObjectsCommand\n} from \"@webiny/aws-sdk/client-s3\";\nimport { basename } from \"path\";\nimport type {\n IFileFetcher,\n IFileFetcherFetchResult,\n IFileFetcherFile,\n IFileFetcherHeadResult,\n IFileFetcherStream\n} from \"./abstractions/FileFetcher\";\n\nexport interface IFileFetcherParams {\n client: S3Client;\n bucket: string;\n}\n\nexport class FileFetcher implements IFileFetcher {\n public readonly client: S3Client;\n public readonly bucket: string;\n\n public constructor(params: IFileFetcherParams) {\n this.client = params.client;\n this.bucket = params.bucket;\n }\n\n public async head(key: string): Promise<IFileFetcherHeadResult> {\n try {\n const cmd = new HeadObjectCommand({\n Key: key,\n Bucket: this.bucket\n });\n\n return await this.client.send(cmd);\n } catch (ex) {\n return null;\n }\n }\n\n public async exists(key: string): Promise<boolean> {\n try {\n const result = await this.head(key);\n if (!result) {\n return false;\n }\n if (!result.$metadata) {\n return false;\n }\n return result.$metadata?.httpStatusCode === 200;\n } catch (ex) {\n return false;\n }\n }\n\n public async list(key: string): Promise<IFileFetcherFile[]> {\n try {\n const result = await this.client.send(\n new ListObjectsCommand({\n Bucket: this.bucket,\n Prefix: key\n })\n );\n if (!Array.isArray(result.Contents)) {\n return [];\n }\n\n const items: IFileFetcherFile[] = [];\n for (const item of result.Contents) {\n if (!item.Key) {\n continue;\n }\n items.push({\n name: basename(item.Key),\n key: item.Key,\n /**\n * TODO: Is it really possible that there is no size of the file???\n */\n size: item.Size || 0\n });\n }\n return items.sort((a, b) => a.key.localeCompare(b.key));\n } catch (ex) {\n console.error(ex);\n return [];\n }\n }\n\n public async fetch(key: string): Promise<IFileFetcherFetchResult> {\n try {\n return await this.client.send(\n new GetObjectCommand({\n Bucket: this.bucket,\n Key: key\n })\n );\n } catch (ex) {\n console.log(`Could not fetch file \"${key}\" from bucket \"${this.bucket}\".`);\n console.error(ex);\n return null;\n }\n }\n\n public async stream(key: string): Promise<IFileFetcherStream> {\n try {\n const response = await this.fetch(key);\n if (!response) {\n return null;\n }\n /**\n * We can safely cast because we are sure that the response will be readable.\n * The method which is using the fetch() should handle the case when the response is null.\n */\n return (response.Body || null) as IFileFetcherStream;\n } catch (ex) {\n console.log(`Could not fetch file \"${key}\" from bucket \"${this.bucket}\".`);\n console.error(ex);\n return null;\n }\n }\n\n public async read(key: string): Promise<string | null> {\n const response = await this.fetch(key);\n if (!response?.Body) {\n return null;\n }\n try {\n return await response.Body.transformToString();\n } catch (ex) {\n console.log(`Could not read file \"${key}\" from bucket \"${this.bucket}\".`);\n console.error(ex);\n return null;\n }\n }\n\n public async delete(key: string): Promise<DeleteObjectCommandOutput> {\n const cmd = new DeleteObjectCommand({\n Key: key,\n Bucket: this.bucket\n });\n return await this.client.send(cmd);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clientS","require","_path","FileFetcher","constructor","params","client","bucket","head","key","cmd","HeadObjectCommand","Key","Bucket","send","ex","exists","result","$metadata","httpStatusCode","list","ListObjectsCommand","Prefix","Array","isArray","Contents","items","item","push","name","basename","size","Size","sort","a","b","localeCompare","console","error","fetch","GetObjectCommand","log","stream","response","Body","read","transformToString","delete","DeleteObjectCommand","exports"],"sources":["FileFetcher.ts"],"sourcesContent":["import type { DeleteObjectCommandOutput, S3Client } from \"@webiny/aws-sdk/client-s3\";\nimport {\n DeleteObjectCommand,\n GetObjectCommand,\n HeadObjectCommand,\n ListObjectsCommand\n} from \"@webiny/aws-sdk/client-s3\";\nimport { basename } from \"path\";\nimport type {\n IFileFetcher,\n IFileFetcherFetchResult,\n IFileFetcherFile,\n IFileFetcherHeadResult,\n IFileFetcherStream\n} from \"./abstractions/FileFetcher\";\n\nexport interface IFileFetcherParams {\n client: S3Client;\n bucket: string;\n}\n\nexport class FileFetcher implements IFileFetcher {\n public readonly client: S3Client;\n public readonly bucket: string;\n\n public constructor(params: IFileFetcherParams) {\n this.client = params.client;\n this.bucket = params.bucket;\n }\n\n public async head(key: string): Promise<IFileFetcherHeadResult> {\n try {\n const cmd = new HeadObjectCommand({\n Key: key,\n Bucket: this.bucket\n });\n\n return await this.client.send(cmd);\n } catch (ex) {\n return null;\n }\n }\n\n public async exists(key: string): Promise<boolean> {\n try {\n const result = await this.head(key);\n if (!result) {\n return false;\n }\n if (!result.$metadata) {\n return false;\n }\n return result.$metadata?.httpStatusCode === 200;\n } catch (ex) {\n return false;\n }\n }\n\n public async list(key: string): Promise<IFileFetcherFile[]> {\n try {\n const result = await this.client.send(\n new ListObjectsCommand({\n Bucket: this.bucket,\n Prefix: key\n })\n );\n if (!Array.isArray(result.Contents)) {\n return [];\n }\n\n const items: IFileFetcherFile[] = [];\n for (const item of result.Contents) {\n if (!item.Key) {\n continue;\n }\n items.push({\n name: basename(item.Key),\n key: item.Key,\n /**\n * TODO: Is it really possible that there is no size of the file???\n */\n size: item.Size || 0\n });\n }\n return items.sort((a, b) => a.key.localeCompare(b.key));\n } catch (ex) {\n console.error(ex);\n return [];\n }\n }\n\n public async fetch(key: string): Promise<IFileFetcherFetchResult> {\n try {\n return await this.client.send(\n new GetObjectCommand({\n Bucket: this.bucket,\n Key: key\n })\n );\n } catch (ex) {\n console.log(`Could not fetch file \"${key}\" from bucket \"${this.bucket}\".`);\n console.error(ex);\n return null;\n }\n }\n\n public async stream(key: string): Promise<IFileFetcherStream> {\n try {\n const response = await this.fetch(key);\n if (!response) {\n return null;\n }\n /**\n * We can safely cast because we are sure that the response will be readable.\n * The method which is using the fetch() should handle the case when the response is null.\n */\n return (response.Body || null) as IFileFetcherStream;\n } catch (ex) {\n console.log(`Could not fetch file \"${key}\" from bucket \"${this.bucket}\".`);\n console.error(ex);\n return null;\n }\n }\n\n public async read(key: string): Promise<string | null> {\n const response = await this.fetch(key);\n if (!response?.Body) {\n return null;\n }\n try {\n return await response.Body.transformToString();\n } catch (ex) {\n console.log(`Could not read file \"${key}\" from bucket \"${this.bucket}\".`);\n console.error(ex);\n return null;\n }\n }\n\n public async delete(key: string): Promise<DeleteObjectCommandOutput> {\n const cmd = new DeleteObjectCommand({\n Key: key,\n Bucket: this.bucket\n });\n return await this.client.send(cmd);\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AAcO,MAAME,WAAW,CAAyB;EAItCC,WAAWA,CAACC,MAA0B,EAAE;IAC3C,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;IAC3B,IAAI,CAACC,MAAM,GAAGF,MAAM,CAACE,MAAM;EAC/B;EAEA,MAAaC,IAAIA,CAACC,GAAW,EAAmC;IAC5D,IAAI;MACA,MAAMC,GAAG,GAAG,IAAIC,0BAAiB,CAAC;QAC9BC,GAAG,EAAEH,GAAG;QACRI,MAAM,EAAE,IAAI,CAACN;MACjB,CAAC,CAAC;MAEF,OAAO,MAAM,IAAI,CAACD,MAAM,CAACQ,IAAI,CAACJ,GAAG,CAAC;IACtC,CAAC,CAAC,OAAOK,EAAE,EAAE;MACT,OAAO,IAAI;IACf;EACJ;EAEA,MAAaC,MAAMA,CAACP,GAAW,EAAoB;IAC/C,IAAI;MACA,MAAMQ,MAAM,GAAG,MAAM,IAAI,CAACT,IAAI,CAACC,GAAG,CAAC;MACnC,IAAI,CAACQ,MAAM,EAAE;QACT,OAAO,KAAK;MAChB;MACA,IAAI,CAACA,MAAM,CAACC,SAAS,EAAE;QACnB,OAAO,KAAK;MAChB;MACA,OAAOD,MAAM,CAACC,SAAS,EAAEC,cAAc,KAAK,GAAG;IACnD,CAAC,CAAC,OAAOJ,EAAE,EAAE;MACT,OAAO,KAAK;IAChB;EACJ;EAEA,MAAaK,IAAIA,CAACX,GAAW,EAA+B;IACxD,IAAI;MACA,MAAMQ,MAAM,GAAG,MAAM,IAAI,CAACX,MAAM,CAACQ,IAAI,CACjC,IAAIO,2BAAkB,CAAC;QACnBR,MAAM,EAAE,IAAI,CAACN,MAAM;QACnBe,MAAM,EAAEb;MACZ,CAAC,CACL,CAAC;MACD,IAAI,CAACc,KAAK,CAACC,OAAO,CAACP,MAAM,CAACQ,QAAQ,CAAC,EAAE;QACjC,OAAO,EAAE;MACb;MAEA,MAAMC,KAAyB,GAAG,EAAE;MACpC,KAAK,MAAMC,IAAI,IAAIV,MAAM,CAACQ,QAAQ,EAAE;QAChC,IAAI,CAACE,IAAI,CAACf,GAAG,EAAE;UACX;QACJ;QACAc,KAAK,CAACE,IAAI,CAAC;UACPC,IAAI,EAAE,IAAAC,cAAQ,EAACH,IAAI,CAACf,GAAG,CAAC;UACxBH,GAAG,EAAEkB,IAAI,CAACf,GAAG;UACb;AACpB;AACA;UACoBmB,IAAI,EAAEJ,IAAI,CAACK,IAAI,IAAI;QACvB,CAAC,CAAC;MACN;MACA,OAAON,KAAK,CAACO,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACzB,GAAG,CAAC2B,aAAa,CAACD,CAAC,CAAC1B,GAAG,CAAC,CAAC;IAC3D,CAAC,CAAC,OAAOM,EAAE,EAAE;MACTsB,OAAO,CAACC,KAAK,CAACvB,EAAE,CAAC;MACjB,OAAO,EAAE;IACb;EACJ;EAEA,MAAawB,KAAKA,CAAC9B,GAAW,EAAoC;IAC9D,IAAI;MACA,OAAO,MAAM,IAAI,CAACH,MAAM,CAACQ,IAAI,CACzB,IAAI0B,yBAAgB,CAAC;QACjB3B,MAAM,EAAE,IAAI,CAACN,MAAM;QACnBK,GAAG,EAAEH;MACT,CAAC,CACL,CAAC;IACL,CAAC,CAAC,OAAOM,EAAE,EAAE;MACTsB,OAAO,CAACI,GAAG,CAAC,yBAAyBhC,GAAG,kBAAkB,IAAI,CAACF,MAAM,IAAI,CAAC;MAC1E8B,OAAO,CAACC,KAAK,CAACvB,EAAE,CAAC;MACjB,OAAO,IAAI;IACf;EACJ;EAEA,MAAa2B,MAAMA,CAACjC,GAAW,EAA+B;IAC1D,IAAI;MACA,MAAMkC,QAAQ,GAAG,MAAM,IAAI,CAACJ,KAAK,CAAC9B,GAAG,CAAC;MACtC,IAAI,CAACkC,QAAQ,EAAE;QACX,OAAO,IAAI;MACf;MACA;AACZ;AACA;AACA;MACY,OAAQA,QAAQ,CAACC,IAAI,IAAI,IAAI;IACjC,CAAC,CAAC,OAAO7B,EAAE,EAAE;MACTsB,OAAO,CAACI,GAAG,CAAC,yBAAyBhC,GAAG,kBAAkB,IAAI,CAACF,MAAM,IAAI,CAAC;MAC1E8B,OAAO,CAACC,KAAK,CAACvB,EAAE,CAAC;MACjB,OAAO,IAAI;IACf;EACJ;EAEA,MAAa8B,IAAIA,CAACpC,GAAW,EAA0B;IACnD,MAAMkC,QAAQ,GAAG,MAAM,IAAI,CAACJ,KAAK,CAAC9B,GAAG,CAAC;IACtC,IAAI,CAACkC,QAAQ,EAAEC,IAAI,EAAE;MACjB,OAAO,IAAI;IACf;IACA,IAAI;MACA,OAAO,MAAMD,QAAQ,CAACC,IAAI,CAACE,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC,OAAO/B,EAAE,EAAE;MACTsB,OAAO,CAACI,GAAG,CAAC,wBAAwBhC,GAAG,kBAAkB,IAAI,CAACF,MAAM,IAAI,CAAC;MACzE8B,OAAO,CAACC,KAAK,CAACvB,EAAE,CAAC;MACjB,OAAO,IAAI;IACf;EACJ;EAEA,MAAagC,MAAMA,CAACtC,GAAW,EAAsC;IACjE,MAAMC,GAAG,GAAG,IAAIsC,4BAAmB,CAAC;MAChCpC,GAAG,EAAEH,GAAG;MACRI,MAAM,EAAE,IAAI,CAACN;IACjB,CAAC,CAAC;IACF,OAAO,MAAM,IAAI,CAACD,MAAM,CAACQ,IAAI,CAACJ,GAAG,CAAC;EACtC;AACJ;AAACuC,OAAA,CAAA9C,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","stripExportPath","key","replace","EXPORT_BASE_PATH","exports","prependExportPath"],"sources":["exportPath.ts"],"sourcesContent":["import { EXPORT_BASE_PATH } from \"~/tasks/constants\";\n\nexport const stripExportPath = (key: string): string => {\n return key.replace(EXPORT_BASE_PATH, \"\").replace(/^\\/+/, \"\");\n};\n\nexport const prependExportPath = (key: string): string => {\n return `${EXPORT_BASE_PATH}/${key.replace(/^\\/+/, \"\")}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,GAAIC,GAAW,IAAa;EACpD,OAAOA,GAAG,CAACC,OAAO,CAACC,2BAAgB,EAAE,EAAE,CAAC,CAACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAChE,CAAC;AAACE,OAAA,CAAAJ,eAAA,GAAAA,eAAA;AAEK,MAAMK,iBAAiB,GAAIJ,GAAW,IAAa;EACtD,OAAQ,GAAEE,2BAAiB,IAAGF,GAAG,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAE,EAAC;AAC3D,CAAC;AAACE,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","stripExportPath","key","replace","EXPORT_BASE_PATH","exports","prependExportPath"],"sources":["exportPath.ts"],"sourcesContent":["import { EXPORT_BASE_PATH } from \"~/tasks/constants\";\n\nexport const stripExportPath = (key: string): string => {\n return key.replace(EXPORT_BASE_PATH, \"\").replace(/^\\/+/, \"\");\n};\n\nexport const prependExportPath = (key: string): string => {\n return `${EXPORT_BASE_PATH}/${key.replace(/^\\/+/, \"\")}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,GAAIC,GAAW,IAAa;EACpD,OAAOA,GAAG,CAACC,OAAO,CAACC,2BAAgB,EAAE,EAAE,CAAC,CAACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAChE,CAAC;AAACE,OAAA,CAAAJ,eAAA,GAAAA,eAAA;AAEK,MAAMK,iBAAiB,GAAIJ,GAAW,IAAa;EACtD,OAAO,GAAGE,2BAAgB,IAAIF,GAAG,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3D,CAAC;AAACE,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_error","require","getBucket","bucket","process","env","S3_BUCKET","trim","WebinyError","exports"],"sources":["getBucket.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\n\nexport const getBucket = (): string => {\n const bucket = process.env.S3_BUCKET;\n if (\n !bucket ||\n bucket === \"undefined\" ||\n bucket === \"null\" ||\n typeof bucket !== \"string\" ||\n !bucket.trim()\n ) {\n throw new WebinyError(`Missing S3_BUCKET environment variable.`, \"S3_BUCKET_ERROR\");\n }\n return bucket;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,SAAS,GAAGA,CAAA,KAAc;EACnC,MAAMC,MAAM,GAAGC,OAAO,CAACC,GAAG,CAACC,SAAS;EACpC,IACI,CAACH,MAAM,IACPA,MAAM,KAAK,WAAW,IACtBA,MAAM,KAAK,MAAM,IACjB,OAAOA,MAAM,KAAK,QAAQ,IAC1B,CAACA,MAAM,CAACI,IAAI,CAAC,CAAC,EAChB;IACE,MAAM,IAAIC,kBAAW,CAAE,yCAAwC,EAAE,iBAAiB,CAAC;EACvF;EACA,OAAOL,MAAM;AACjB,CAAC;AAACM,OAAA,CAAAP,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"names":["_error","require","getBucket","bucket","process","env","S3_BUCKET","trim","WebinyError","exports"],"sources":["getBucket.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\n\nexport const getBucket = (): string => {\n const bucket = process.env.S3_BUCKET;\n if (\n !bucket ||\n bucket === \"undefined\" ||\n bucket === \"null\" ||\n typeof bucket !== \"string\" ||\n !bucket.trim()\n ) {\n throw new WebinyError(`Missing S3_BUCKET environment variable.`, \"S3_BUCKET_ERROR\");\n }\n return bucket;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,SAAS,GAAGA,CAAA,KAAc;EACnC,MAAMC,MAAM,GAAGC,OAAO,CAACC,GAAG,CAACC,SAAS;EACpC,IACI,CAACH,MAAM,IACPA,MAAM,KAAK,WAAW,IACtBA,MAAM,KAAK,MAAM,IACjB,OAAOA,MAAM,KAAK,QAAQ,IAC1B,CAACA,MAAM,CAACI,IAAI,CAAC,CAAC,EAChB;IACE,MAAM,IAAIC,kBAAW,CAAC,yCAAyC,EAAE,iBAAiB,CAAC;EACvF;EACA,OAAOL,MAAM;AACjB,CAAC;AAACM,OAAA,CAAAP,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","stripImportPath","key","replace","IMPORT_BASE_PATH","exports","prependImportPath"],"sources":["importPath.ts"],"sourcesContent":["import { IMPORT_BASE_PATH } from \"~/tasks/constants\";\n\nexport const stripImportPath = (key: string): string => {\n return key.replace(IMPORT_BASE_PATH, \"\").replace(/^\\/+/, \"\");\n};\n\nexport const prependImportPath = (key: string): string => {\n return `${IMPORT_BASE_PATH}/${key.replace(/^\\/+/, \"\")}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,GAAIC,GAAW,IAAa;EACpD,OAAOA,GAAG,CAACC,OAAO,CAACC,2BAAgB,EAAE,EAAE,CAAC,CAACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAChE,CAAC;AAACE,OAAA,CAAAJ,eAAA,GAAAA,eAAA;AAEK,MAAMK,iBAAiB,GAAIJ,GAAW,IAAa;EACtD,OAAQ,GAAEE,2BAAiB,IAAGF,GAAG,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAE,EAAC;AAC3D,CAAC;AAACE,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","stripImportPath","key","replace","IMPORT_BASE_PATH","exports","prependImportPath"],"sources":["importPath.ts"],"sourcesContent":["import { IMPORT_BASE_PATH } from \"~/tasks/constants\";\n\nexport const stripImportPath = (key: string): string => {\n return key.replace(IMPORT_BASE_PATH, \"\").replace(/^\\/+/, \"\");\n};\n\nexport const prependImportPath = (key: string): string => {\n return `${IMPORT_BASE_PATH}/${key.replace(/^\\/+/, \"\")}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,GAAIC,GAAW,IAAa;EACpD,OAAOA,GAAG,CAACC,OAAO,CAACC,2BAAgB,EAAE,EAAE,CAAC,CAACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAChE,CAAC;AAACE,OAAA,CAAAJ,eAAA,GAAAA,eAAA;AAEK,MAAMK,iBAAiB,GAAIJ,GAAW,IAAa;EACtD,OAAO,GAAGE,2BAAgB,IAAIF,GAAG,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3D,CAAC;AAACE,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["matchKeyOrAlias","input","url","URL","pathname","isFiles","startsWith","isPrivate","alias","key","replace","ex","process","env","DEBUG","console","error","exports"],"sources":["matchKeyOrAlias.ts"],"sourcesContent":["interface IMatchOutput {\n alias?: never;\n key: string;\n}\n\ninterface IMatchAliasOutput {\n key?: never;\n alias: string;\n}\n\nexport const matchKeyOrAlias = (input: string): IMatchAliasOutput | IMatchOutput | null => {\n try {\n const url = new URL(input);\n const { pathname } = url;\n const isFiles = pathname.startsWith(\"/files/\");\n const isPrivate = pathname.startsWith(\"/private/\");\n if (!isFiles && !isPrivate) {\n return {\n alias: pathname\n };\n } else if (!isPrivate) {\n return {\n key: pathname.replace(/^\\/files\\//, \"\")\n };\n }\n return {\n key: pathname.replace(/^\\/private\\//, \"\")\n };\n } catch (ex) {\n if (process.env.DEBUG === \"true\") {\n console.error(`Url \"${input}\" is not valid.`);\n console.error(ex);\n }\n return null;\n }\n};\n"],"mappings":";;;;;;AAUO,MAAMA,eAAe,GAAIC,KAAa,IAA8C;EACvF,IAAI;IACA,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACF,KAAK,CAAC;IAC1B,MAAM;MAAEG;IAAS,CAAC,GAAGF,GAAG;IACxB,MAAMG,OAAO,GAAGD,QAAQ,CAACE,UAAU,CAAC,SAAS,CAAC;IAC9C,MAAMC,SAAS,GAAGH,QAAQ,CAACE,UAAU,CAAC,WAAW,CAAC;IAClD,IAAI,CAACD,OAAO,IAAI,CAACE,SAAS,EAAE;MACxB,OAAO;QACHC,KAAK,EAAEJ;MACX,CAAC;IACL,CAAC,MAAM,IAAI,CAACG,SAAS,EAAE;MACnB,OAAO;QACHE,GAAG,EAAEL,QAAQ,CAACM,OAAO,CAAC,YAAY,EAAE,EAAE;MAC1C,CAAC;IACL;IACA,OAAO;MACHD,GAAG,EAAEL,QAAQ,CAACM,OAAO,CAAC,cAAc,EAAE,EAAE;IAC5C,CAAC;EACL,CAAC,CAAC,OAAOC,EAAE,EAAE;IACT,IAAIC,OAAO,CAACC,GAAG,CAACC,KAAK,KAAK,MAAM,EAAE;MAC9BC,OAAO,CAACC,KAAK,CAAE,QAAOf,KAAM,iBAAgB,CAAC;MAC7Cc,OAAO,CAACC,KAAK,CAACL,EAAE,CAAC;IACrB;IACA,OAAO,IAAI;EACf;AACJ,CAAC;AAACM,OAAA,CAAAjB,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"names":["matchKeyOrAlias","input","url","URL","pathname","isFiles","startsWith","isPrivate","alias","key","replace","ex","process","env","DEBUG","console","error","exports"],"sources":["matchKeyOrAlias.ts"],"sourcesContent":["interface IMatchOutput {\n alias?: never;\n key: string;\n}\n\ninterface IMatchAliasOutput {\n key?: never;\n alias: string;\n}\n\nexport const matchKeyOrAlias = (input: string): IMatchAliasOutput | IMatchOutput | null => {\n try {\n const url = new URL(input);\n const { pathname } = url;\n const isFiles = pathname.startsWith(\"/files/\");\n const isPrivate = pathname.startsWith(\"/private/\");\n if (!isFiles && !isPrivate) {\n return {\n alias: pathname\n };\n } else if (!isPrivate) {\n return {\n key: pathname.replace(/^\\/files\\//, \"\")\n };\n }\n return {\n key: pathname.replace(/^\\/private\\//, \"\")\n };\n } catch (ex) {\n if (process.env.DEBUG === \"true\") {\n console.error(`Url \"${input}\" is not valid.`);\n console.error(ex);\n }\n return null;\n }\n};\n"],"mappings":";;;;;;AAUO,MAAMA,eAAe,GAAIC,KAAa,IAA8C;EACvF,IAAI;IACA,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACF,KAAK,CAAC;IAC1B,MAAM;MAAEG;IAAS,CAAC,GAAGF,GAAG;IACxB,MAAMG,OAAO,GAAGD,QAAQ,CAACE,UAAU,CAAC,SAAS,CAAC;IAC9C,MAAMC,SAAS,GAAGH,QAAQ,CAACE,UAAU,CAAC,WAAW,CAAC;IAClD,IAAI,CAACD,OAAO,IAAI,CAACE,SAAS,EAAE;MACxB,OAAO;QACHC,KAAK,EAAEJ;MACX,CAAC;IACL,CAAC,MAAM,IAAI,CAACG,SAAS,EAAE;MACnB,OAAO;QACHE,GAAG,EAAEL,QAAQ,CAACM,OAAO,CAAC,YAAY,EAAE,EAAE;MAC1C,CAAC;IACL;IACA,OAAO;MACHD,GAAG,EAAEL,QAAQ,CAACM,OAAO,CAAC,cAAc,EAAE,EAAE;IAC5C,CAAC;EACL,CAAC,CAAC,OAAOC,EAAE,EAAE;IACT,IAAIC,OAAO,CAACC,GAAG,CAACC,KAAK,KAAK,MAAM,EAAE;MAC9BC,OAAO,CAACC,KAAK,CAAC,QAAQf,KAAK,iBAAiB,CAAC;MAC7Cc,OAAO,CAACC,KAAK,CAACL,EAAE,CAAC;IACrB;IACA,OAAO,IAAI;EACf;AACJ,CAAC;AAACM,OAAA,CAAAjB,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -8,6 +8,9 @@ exports.createSizeSegments = void 0;
8
8
  var _bytes = _interopRequireDefault(require("bytes"));
9
9
  const createSizeSegments = (fileSize, segmentSizeInput) => {
10
10
  const segmentSize = typeof segmentSizeInput === "number" ? segmentSizeInput : _bytes.default.parse(segmentSizeInput);
11
+ if (!segmentSize) {
12
+ return [];
13
+ }
11
14
  const segments = [];
12
15
  let segmentIndex = 0;
13
16
  for (let start = 0; start < fileSize; start += segmentSize + 1) {
@@ -1 +1 @@
1
- {"version":3,"names":["_bytes","_interopRequireDefault","require","createSizeSegments","fileSize","segmentSizeInput","segmentSize","bytes","parse","segments","segmentIndex","start","end","exports"],"sources":["sizeSegments.ts"],"sourcesContent":["import bytes from \"bytes\";\n\nexport interface ISegment {\n start: number;\n end: number;\n}\n\nexport const createSizeSegments = (\n fileSize: number,\n segmentSizeInput: `${number}${string}` | number\n): ISegment[] => {\n const segmentSize =\n typeof segmentSizeInput === \"number\" ? segmentSizeInput : bytes.parse(segmentSizeInput);\n\n const segments: ISegment[] = [];\n let segmentIndex = 0;\n for (let start = 0; start < fileSize; start += segmentSize + 1) {\n const end = start + segmentSize > fileSize ? fileSize : start + segmentSize;\n segments[segmentIndex] = {\n start,\n end\n };\n segmentIndex++;\n }\n\n return segments;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAOO,MAAMC,kBAAkB,GAAGA,CAC9BC,QAAgB,EAChBC,gBAA+C,KAClC;EACb,MAAMC,WAAW,GACb,OAAOD,gBAAgB,KAAK,QAAQ,GAAGA,gBAAgB,GAAGE,cAAK,CAACC,KAAK,CAACH,gBAAgB,CAAC;EAE3F,MAAMI,QAAoB,GAAG,EAAE;EAC/B,IAAIC,YAAY,GAAG,CAAC;EACpB,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGP,QAAQ,EAAEO,KAAK,IAAIL,WAAW,GAAG,CAAC,EAAE;IAC5D,MAAMM,GAAG,GAAGD,KAAK,GAAGL,WAAW,GAAGF,QAAQ,GAAGA,QAAQ,GAAGO,KAAK,GAAGL,WAAW;IAC3EG,QAAQ,CAACC,YAAY,CAAC,GAAG;MACrBC,KAAK;MACLC;IACJ,CAAC;IACDF,YAAY,EAAE;EAClB;EAEA,OAAOD,QAAQ;AACnB,CAAC;AAACI,OAAA,CAAAV,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_bytes","_interopRequireDefault","require","createSizeSegments","fileSize","segmentSizeInput","segmentSize","bytes","parse","segments","segmentIndex","start","end","exports"],"sources":["sizeSegments.ts"],"sourcesContent":["import bytes from \"bytes\";\n\nexport interface ISegment {\n start: number;\n end: number;\n}\n\nexport const createSizeSegments = (\n fileSize: number,\n segmentSizeInput: `${number}${string}` | number\n): ISegment[] => {\n const segmentSize =\n typeof segmentSizeInput === \"number\" ? segmentSizeInput : bytes.parse(segmentSizeInput);\n if (!segmentSize) {\n return [];\n }\n\n const segments: ISegment[] = [];\n let segmentIndex = 0;\n for (let start = 0; start < fileSize; start += segmentSize + 1) {\n const end = start + segmentSize > fileSize ? fileSize : start + segmentSize;\n segments[segmentIndex] = {\n start,\n end\n };\n segmentIndex++;\n }\n\n return segments;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAOO,MAAMC,kBAAkB,GAAGA,CAC9BC,QAAgB,EAChBC,gBAA+C,KAClC;EACb,MAAMC,WAAW,GACb,OAAOD,gBAAgB,KAAK,QAAQ,GAAGA,gBAAgB,GAAGE,cAAK,CAACC,KAAK,CAACH,gBAAgB,CAAC;EAC3F,IAAI,CAACC,WAAW,EAAE;IACd,OAAO,EAAE;EACb;EAEA,MAAMG,QAAoB,GAAG,EAAE;EAC/B,IAAIC,YAAY,GAAG,CAAC;EACpB,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGP,QAAQ,EAAEO,KAAK,IAAIL,WAAW,GAAG,CAAC,EAAE;IAC5D,MAAMM,GAAG,GAAGD,KAAK,GAAGL,WAAW,GAAGF,QAAQ,GAAGA,QAAQ,GAAGO,KAAK,GAAGL,WAAW;IAC3EG,QAAQ,CAACC,YAAY,CAAC,GAAG;MACrBC,KAAK;MACLC;IACJ,CAAC;IACDF,YAAY,EAAE;EAClB;EAEA,OAAOD,QAAQ;AACnB,CAAC;AAACI,OAAA,CAAAV,kBAAA,GAAAA,kBAAA","ignoreList":[]}