@webiny/api-headless-cms-import-export 6.0.0-rc.7 → 6.1.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.
@@ -14,10 +14,10 @@ const validateData = zod.object({
14
14
  fieldId: zod.string(),
15
15
  type: zod.string(),
16
16
  list: zod.boolean().optional(),
17
- settings: zod.object({
18
- fields: zod.array(zod.object({}).passthrough()).optional(),
19
- templates: zod.array(zod.object({}).passthrough()).optional()
20
- }).passthrough().optional()
17
+ settings: zod.looseObject({
18
+ fields: zod.array(zod.looseObject({})).optional(),
19
+ templates: zod.array(zod.looseObject({})).optional()
20
+ }).optional()
21
21
  })).min(1)
22
22
  }),
23
23
  files: zod.array(zod.object({
@@ -1 +1 @@
1
- {"version":3,"names":["CmsImportExportFileType","zod","WebinyError","createZodError","validateData","object","model","modelId","string","fields","array","id","fieldId","type","list","boolean","optional","settings","passthrough","templates","min","files","get","url","head","key","checksum","enum","ENTRIES","ASSETS","parseImportUrlData","input","json","JSON","parse","result","safeParse","success","error","data"],"sources":["parseImportUrlData.ts"],"sourcesContent":["import { CmsImportExportFileType } from \"~/types.js\";\nimport type { ICmsImportExportFile } from \"~/types.js\";\nimport zod from \"zod\";\nimport { WebinyError } from \"@webiny/error\";\nimport { createZodError } from \"@webiny/utils\";\nimport type { IExportedCmsModel } from \"~/tasks/domain/abstractions/ExportContentEntriesController.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nconst validateData = zod.object({\n /**\n * Basic model validation.\n * We will check it more thoroughly in the next step.\n */\n model: zod.object({\n modelId: zod.string(),\n fields: zod\n .array(\n zod.object({\n id: zod.string(),\n fieldId: zod.string(),\n type: zod.string(),\n list: zod.boolean().optional(),\n settings: zod\n .object({\n fields: zod.array(zod.object({}).passthrough()).optional(),\n templates: zod.array(zod.object({}).passthrough()).optional()\n })\n .passthrough()\n .optional()\n })\n )\n .min(1)\n }),\n files: zod.array(\n zod.object({\n get: zod.string().url(),\n head: zod.string().url(),\n key: zod.string(),\n checksum: zod.string(),\n type: zod.enum([CmsImportExportFileType.ENTRIES, CmsImportExportFileType.ASSETS])\n })\n )\n});\n\nexport interface IParseImportUrlDataResult {\n model: IExportedCmsModel;\n files: ICmsImportExportFile[];\n}\n\nexport const parseImportUrlData = (input: string | GenericRecord): IParseImportUrlDataResult => {\n let json: unknown;\n try {\n json = typeof input === \"string\" ? JSON.parse(input) : input;\n } catch {\n throw new WebinyError(\"Invalid input data provided.\", \"INVALID_INPUT_DATA\");\n }\n\n const result = validateData.safeParse(json);\n if (!result.success) {\n throw createZodError(result.error);\n }\n return {\n model: result.data.model as unknown as IExportedCmsModel,\n files: result.data.files\n };\n};\n"],"mappings":"AAAA,SAASA,uBAAuB;AAEhC,OAAOC,GAAG,MAAM,KAAK;AACrB,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,cAAc,QAAQ,eAAe;AAI9C,MAAMC,YAAY,GAAGH,GAAG,CAACI,MAAM,CAAC;EAC5B;AACJ;AACA;AACA;EACIC,KAAK,EAAEL,GAAG,CAACI,MAAM,CAAC;IACdE,OAAO,EAAEN,GAAG,CAACO,MAAM,CAAC,CAAC;IACrBC,MAAM,EAAER,GAAG,CACNS,KAAK,CACFT,GAAG,CAACI,MAAM,CAAC;MACPM,EAAE,EAAEV,GAAG,CAACO,MAAM,CAAC,CAAC;MAChBI,OAAO,EAAEX,GAAG,CAACO,MAAM,CAAC,CAAC;MACrBK,IAAI,EAAEZ,GAAG,CAACO,MAAM,CAAC,CAAC;MAClBM,IAAI,EAAEb,GAAG,CAACc,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;MAC9BC,QAAQ,EAAEhB,GAAG,CACRI,MAAM,CAAC;QACJI,MAAM,EAAER,GAAG,CAACS,KAAK,CAACT,GAAG,CAACI,MAAM,CAAC,CAAC,CAAC,CAAC,CAACa,WAAW,CAAC,CAAC,CAAC,CAACF,QAAQ,CAAC,CAAC;QAC1DG,SAAS,EAAElB,GAAG,CAACS,KAAK,CAACT,GAAG,CAACI,MAAM,CAAC,CAAC,CAAC,CAAC,CAACa,WAAW,CAAC,CAAC,CAAC,CAACF,QAAQ,CAAC;MAChE,CAAC,CAAC,CACDE,WAAW,CAAC,CAAC,CACbF,QAAQ,CAAC;IAClB,CAAC,CACL,CAAC,CACAI,GAAG,CAAC,CAAC;EACd,CAAC,CAAC;EACFC,KAAK,EAAEpB,GAAG,CAACS,KAAK,CACZT,GAAG,CAACI,MAAM,CAAC;IACPiB,GAAG,EAAErB,GAAG,CAACO,MAAM,CAAC,CAAC,CAACe,GAAG,CAAC,CAAC;IACvBC,IAAI,EAAEvB,GAAG,CAACO,MAAM,CAAC,CAAC,CAACe,GAAG,CAAC,CAAC;IACxBE,GAAG,EAAExB,GAAG,CAACO,MAAM,CAAC,CAAC;IACjBkB,QAAQ,EAAEzB,GAAG,CAACO,MAAM,CAAC,CAAC;IACtBK,IAAI,EAAEZ,GAAG,CAAC0B,IAAI,CAAC,CAAC3B,uBAAuB,CAAC4B,OAAO,EAAE5B,uBAAuB,CAAC6B,MAAM,CAAC;EACpF,CAAC,CACL;AACJ,CAAC,CAAC;AAOF,OAAO,MAAMC,kBAAkB,GAAIC,KAA6B,IAAgC;EAC5F,IAAIC,IAAa;EACjB,IAAI;IACAA,IAAI,GAAG,OAAOD,KAAK,KAAK,QAAQ,GAAGE,IAAI,CAACC,KAAK,CAACH,KAAK,CAAC,GAAGA,KAAK;EAChE,CAAC,CAAC,MAAM;IACJ,MAAM,IAAI7B,WAAW,CAAC,8BAA8B,EAAE,oBAAoB,CAAC;EAC/E;EAEA,MAAMiC,MAAM,GAAG/B,YAAY,CAACgC,SAAS,CAACJ,IAAI,CAAC;EAC3C,IAAI,CAACG,MAAM,CAACE,OAAO,EAAE;IACjB,MAAMlC,cAAc,CAACgC,MAAM,CAACG,KAAK,CAAC;EACtC;EACA,OAAO;IACHhC,KAAK,EAAE6B,MAAM,CAACI,IAAI,CAACjC,KAAqC;IACxDe,KAAK,EAAEc,MAAM,CAACI,IAAI,CAAClB;EACvB,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["CmsImportExportFileType","zod","WebinyError","createZodError","validateData","object","model","modelId","string","fields","array","id","fieldId","type","list","boolean","optional","settings","looseObject","templates","min","files","get","url","head","key","checksum","enum","ENTRIES","ASSETS","parseImportUrlData","input","json","JSON","parse","result","safeParse","success","error","data"],"sources":["parseImportUrlData.ts"],"sourcesContent":["import { CmsImportExportFileType } from \"~/types.js\";\nimport type { ICmsImportExportFile } from \"~/types.js\";\nimport zod from \"zod\";\nimport { WebinyError } from \"@webiny/error\";\nimport { createZodError } from \"@webiny/utils\";\nimport type { IExportedCmsModel } from \"~/tasks/domain/abstractions/ExportContentEntriesController.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nconst validateData = zod.object({\n /**\n * Basic model validation.\n * We will check it more thoroughly in the next step.\n */\n model: zod.object({\n modelId: zod.string(),\n fields: zod\n .array(\n zod.object({\n id: zod.string(),\n fieldId: zod.string(),\n type: zod.string(),\n list: zod.boolean().optional(),\n settings: zod\n .looseObject({\n fields: zod.array(zod.looseObject({})).optional(),\n templates: zod.array(zod.looseObject({})).optional()\n })\n .optional()\n })\n )\n .min(1)\n }),\n files: zod.array(\n zod.object({\n get: zod.string().url(),\n head: zod.string().url(),\n key: zod.string(),\n checksum: zod.string(),\n type: zod.enum([CmsImportExportFileType.ENTRIES, CmsImportExportFileType.ASSETS])\n })\n )\n});\n\nexport interface IParseImportUrlDataResult {\n model: IExportedCmsModel;\n files: ICmsImportExportFile[];\n}\n\nexport const parseImportUrlData = (input: string | GenericRecord): IParseImportUrlDataResult => {\n let json: unknown;\n try {\n json = typeof input === \"string\" ? JSON.parse(input) : input;\n } catch {\n throw new WebinyError(\"Invalid input data provided.\", \"INVALID_INPUT_DATA\");\n }\n\n const result = validateData.safeParse(json);\n if (!result.success) {\n throw createZodError(result.error);\n }\n return {\n model: result.data.model as unknown as IExportedCmsModel,\n files: result.data.files\n };\n};\n"],"mappings":"AAAA,SAASA,uBAAuB;AAEhC,OAAOC,GAAG,MAAM,KAAK;AACrB,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,cAAc,QAAQ,eAAe;AAI9C,MAAMC,YAAY,GAAGH,GAAG,CAACI,MAAM,CAAC;EAC5B;AACJ;AACA;AACA;EACIC,KAAK,EAAEL,GAAG,CAACI,MAAM,CAAC;IACdE,OAAO,EAAEN,GAAG,CAACO,MAAM,CAAC,CAAC;IACrBC,MAAM,EAAER,GAAG,CACNS,KAAK,CACFT,GAAG,CAACI,MAAM,CAAC;MACPM,EAAE,EAAEV,GAAG,CAACO,MAAM,CAAC,CAAC;MAChBI,OAAO,EAAEX,GAAG,CAACO,MAAM,CAAC,CAAC;MACrBK,IAAI,EAAEZ,GAAG,CAACO,MAAM,CAAC,CAAC;MAClBM,IAAI,EAAEb,GAAG,CAACc,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;MAC9BC,QAAQ,EAAEhB,GAAG,CACRiB,WAAW,CAAC;QACTT,MAAM,EAAER,GAAG,CAACS,KAAK,CAACT,GAAG,CAACiB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAACF,QAAQ,CAAC,CAAC;QACjDG,SAAS,EAAElB,GAAG,CAACS,KAAK,CAACT,GAAG,CAACiB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAACF,QAAQ,CAAC;MACvD,CAAC,CAAC,CACDA,QAAQ,CAAC;IAClB,CAAC,CACL,CAAC,CACAI,GAAG,CAAC,CAAC;EACd,CAAC,CAAC;EACFC,KAAK,EAAEpB,GAAG,CAACS,KAAK,CACZT,GAAG,CAACI,MAAM,CAAC;IACPiB,GAAG,EAAErB,GAAG,CAACO,MAAM,CAAC,CAAC,CAACe,GAAG,CAAC,CAAC;IACvBC,IAAI,EAAEvB,GAAG,CAACO,MAAM,CAAC,CAAC,CAACe,GAAG,CAAC,CAAC;IACxBE,GAAG,EAAExB,GAAG,CAACO,MAAM,CAAC,CAAC;IACjBkB,QAAQ,EAAEzB,GAAG,CAACO,MAAM,CAAC,CAAC;IACtBK,IAAI,EAAEZ,GAAG,CAAC0B,IAAI,CAAC,CAAC3B,uBAAuB,CAAC4B,OAAO,EAAE5B,uBAAuB,CAAC6B,MAAM,CAAC;EACpF,CAAC,CACL;AACJ,CAAC,CAAC;AAOF,OAAO,MAAMC,kBAAkB,GAAIC,KAA6B,IAAgC;EAC5F,IAAIC,IAAa;EACjB,IAAI;IACAA,IAAI,GAAG,OAAOD,KAAK,KAAK,QAAQ,GAAGE,IAAI,CAACC,KAAK,CAACH,KAAK,CAAC,GAAGA,KAAK;EAChE,CAAC,CAAC,MAAM;IACJ,MAAM,IAAI7B,WAAW,CAAC,8BAA8B,EAAE,oBAAoB,CAAC;EAC/E;EAEA,MAAMiC,MAAM,GAAG/B,YAAY,CAACgC,SAAS,CAACJ,IAAI,CAAC;EAC3C,IAAI,CAACG,MAAM,CAACE,OAAO,EAAE;IACjB,MAAMlC,cAAc,CAACgC,MAAM,CAACG,KAAK,CAAC;EACtC;EACA,OAAO;IACHhC,KAAK,EAAE6B,MAAM,CAACI,IAAI,CAACjC,KAAqC;IACxDe,KAAK,EAAEc,MAAM,CAACI,IAAI,CAAClB;EACvB,CAAC;AACL,CAAC","ignoreList":[]}
@@ -8,6 +8,7 @@ import { createS3Client } from "../../tasks/utils/helpers/s3Client.js";
8
8
  import { UniqueResolver } from "../../tasks/utils/uniqueResolver/UniqueResolver.js";
9
9
  import { WEBINY_EXPORT_ASSETS_EXTENSION } from "../../tasks/constants.js";
10
10
  import { ListFilesUseCase } from "@webiny/api-file-manager/features/file/ListFiles/index.js";
11
+ import { ContentEntryTraverserProvider } from "@webiny/api-headless-cms";
11
12
  const getFilename = input => {
12
13
  const current = [input.entryAfter, input.fileAfter].filter(item => item !== undefined).join("-");
13
14
  return `${input.prefix}/assets${current ? `-${current}` : ""}.${WEBINY_EXPORT_ASSETS_EXTENSION}`;
@@ -34,7 +35,8 @@ export class ExportContentAssets {
34
35
  }
35
36
  });
36
37
  }
37
- const traverser = await this.context.cms.getEntryTraverser(model.modelId);
38
+ const traverserProvider = this.context.container.resolve(ContentEntryTraverserProvider);
39
+ const traverser = await traverserProvider.getTraverser(model.modelId);
38
40
  const entryFetcher = createCmsEntryFetcher(async after => {
39
41
  const input = {
40
42
  where: params.input.where,
@@ -1 +1 @@
1
- {"version":3,"names":["createCmsEntryFetcher","EntryAssets","EntryAssetsResolver","CmsAssetsZipperExecuteContinueResult","CmsAssetsZipperExecuteContinueWithoutResult","CmsAssetsZipperExecuteDoneResult","CmsAssetsZipperExecuteDoneWithoutResult","FileFetcher","getErrorProperties","getBucket","createS3Client","UniqueResolver","WEBINY_EXPORT_ASSETS_EXTENSION","ListFilesUseCase","getFilename","input","current","entryAfter","fileAfter","filter","item","undefined","join","prefix","ExportContentAssets","constructor","params","context","createCmsAssetsZipper","run","controller","model","cms","getModel","modelId","ex","response","error","message","code","data","traverser","getEntryTraverser","entryFetcher","after","where","limit","sort","items","meta","listLatestEntries","fileFetcher","client","bucket","filename","zipper","createEntryAssets","uniqueResolver","createEntryAssetsResolver","fetchFiles","listFiles","container","resolve","listResult","execute","value","result","isAborted","runtime","isCloseToTimeout","seconds","files","Array","isArray","done","concat","key","checksum","continue","fileCursor","entryCursor","type","name"],"sources":["ExportContentAssets.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport type {\n IExportContentAssets,\n IExportContentAssetsInput,\n IExportContentAssetsOutput\n} from \"~/tasks/domain/abstractions/ExportContentAssets.js\";\nimport type { ICmsEntryFetcher } from \"~/tasks/utils/cmsEntryFetcher/index.js\";\nimport { createCmsEntryFetcher } from \"~/tasks/utils/cmsEntryFetcher/index.js\";\nimport type { IEntryAssets, IEntryAssetsResolver } from \"~/tasks/utils/entryAssets/index.js\";\nimport { EntryAssets, EntryAssetsResolver } from \"~/tasks/utils/entryAssets/index.js\";\nimport type {\n ICmsAssetsZipper,\n ICmsAssetsZipperExecuteResult\n} from \"~/tasks/utils/cmsAssetsZipper/index.js\";\nimport {\n CmsAssetsZipperExecuteContinueResult,\n CmsAssetsZipperExecuteContinueWithoutResult,\n CmsAssetsZipperExecuteDoneResult,\n CmsAssetsZipperExecuteDoneWithoutResult\n} from \"~/tasks/utils/cmsAssetsZipper/index.js\";\nimport type { IFileFetcher } from \"~/tasks/utils/fileFetcher/index.js\";\nimport { FileFetcher } from \"~/tasks/utils/fileFetcher/index.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { getErrorProperties } from \"@webiny/tasks/utils/index.js\";\nimport { getBucket } from \"~/tasks/utils/helpers/getBucket.js\";\nimport { createS3Client } from \"~/tasks/utils/helpers/s3Client.js\";\nimport { UniqueResolver } from \"~/tasks/utils/uniqueResolver/UniqueResolver.js\";\nimport { WEBINY_EXPORT_ASSETS_EXTENSION } from \"~/tasks/constants.js\";\nimport { ListFilesUseCase } from \"@webiny/api-file-manager/features/file/ListFiles/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface ICreateCmsAssetsZipperCallableConfig {\n filename: string;\n entryFetcher: ICmsEntryFetcher;\n createEntryAssets: () => IEntryAssets;\n createEntryAssetsResolver: () => IEntryAssetsResolver;\n fileFetcher: IFileFetcher;\n}\n\nexport interface ICreateCmsAssetsZipperCallable {\n (config: ICreateCmsAssetsZipperCallableConfig): ICmsAssetsZipper;\n}\n\nconst getFilename = (input: IExportContentAssetsInput): string => {\n const current = [input.entryAfter, input.fileAfter]\n .filter(item => item !== undefined)\n .join(\"-\");\n\n return `${input.prefix}/assets${\n current ? `-${current}` : \"\"\n }.${WEBINY_EXPORT_ASSETS_EXTENSION}`;\n};\n\nexport interface IExportContentAssetsParams {\n context: Context;\n createCmsAssetsZipper: ICreateCmsAssetsZipperCallable;\n}\n\nexport class ExportContentAssets<\n I extends IExportContentAssetsInput = IExportContentAssetsInput,\n O extends IExportContentAssetsOutput = IExportContentAssetsOutput\n> implements IExportContentAssets<I, O>\n{\n private readonly createCmsAssetsZipper: ICreateCmsAssetsZipperCallable;\n private context: Context;\n\n public constructor(params: IExportContentAssetsParams) {\n this.context = params.context;\n this.createCmsAssetsZipper = params.createCmsAssetsZipper;\n }\n\n public async run(params: TaskDefinition.RunParams<I, O>) {\n const { input, controller } = params;\n\n let model: CmsModel;\n try {\n model = await this.context.cms.getModel(input.modelId);\n } catch (ex) {\n return controller.response.error({\n message: `Could not fetch entry manager for model \"${input.modelId}\".`,\n code: \"MODEL_NOT_FOUND\",\n data: {\n error: getErrorProperties(ex)\n }\n });\n }\n\n const traverser = await this.context.cms.getEntryTraverser(model.modelId);\n\n const entryFetcher = createCmsEntryFetcher(async after => {\n const input = {\n where: params.input.where,\n limit: params.input.limit || 10000,\n sort: params.input.sort,\n after\n };\n const [items, meta] = await this.context.cms.listLatestEntries(model, input);\n\n return {\n items,\n meta\n };\n });\n\n const fileFetcher = new FileFetcher({\n client: createS3Client(),\n bucket: getBucket()\n });\n\n const filename = getFilename(input);\n\n const zipper = this.createCmsAssetsZipper({\n filename,\n fileFetcher,\n entryFetcher,\n createEntryAssets: () => {\n return new EntryAssets({\n traverser,\n uniqueResolver: new UniqueResolver()\n });\n },\n createEntryAssetsResolver: () => {\n return new EntryAssetsResolver({\n fetchFiles: async params => {\n const listFiles = this.context.container.resolve(ListFilesUseCase);\n const listResult = await listFiles.execute(params ?? {});\n\n return listResult.value;\n }\n });\n }\n });\n\n let result: ICmsAssetsZipperExecuteResult;\n\n try {\n result = await zipper.execute({\n fileAfter: input.fileAfter,\n entryAfter: input.entryAfter,\n isAborted() {\n return controller.runtime.isAborted();\n },\n isCloseToTimeout(seconds?: number) {\n return controller.runtime.isCloseToTimeout(seconds);\n }\n });\n } catch (ex) {\n return controller.response.error(ex);\n }\n\n const files = Array.isArray(input.files) ? input.files : [];\n /**\n * Zipper is done, but there is no result?\n * We will output existing input files.\n */\n if (result instanceof CmsAssetsZipperExecuteDoneWithoutResult) {\n return controller.response.done({\n files\n } as O);\n }\n /**\n * Zipper is done and there is a result?\n * We will output existing input files and the new file.\n */\n //\n else if (result instanceof CmsAssetsZipperExecuteDoneResult) {\n return controller.response.done({\n files: files.concat([\n {\n key: result.key,\n checksum: result.checksum\n }\n ])\n } as O);\n }\n /**\n * Zipper is not done and there is no result?\n * Let's continue with the next iteration.\n */\n //\n else if (result instanceof CmsAssetsZipperExecuteContinueWithoutResult) {\n return controller.response.continue({\n ...input,\n fileAfter: result.fileCursor,\n entryAfter: result.entryCursor\n });\n }\n /**\n * Zipper is not done and there is a result?\n * Let's merge the existing files with the new file and continue with the next iteration.\n */\n //\n else if (result instanceof CmsAssetsZipperExecuteContinueResult) {\n return controller.response.continue({\n ...input,\n fileAfter: result.fileCursor,\n entryAfter: result.entryCursor,\n files: files.concat([\n {\n key: result.key,\n checksum: result.checksum\n }\n ])\n });\n }\n\n return controller.response.error({\n message: \"Unknown zipper result.\",\n code: \"UNKNOWN_ZIPPER_RESULT\",\n data: {\n type: typeof result,\n constructor: result?.constructor?.name || \"unknown constructor\",\n result\n }\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createCmsEntryFetcher","EntryAssets","EntryAssetsResolver","CmsAssetsZipperExecuteContinueResult","CmsAssetsZipperExecuteContinueWithoutResult","CmsAssetsZipperExecuteDoneResult","CmsAssetsZipperExecuteDoneWithoutResult","FileFetcher","getErrorProperties","getBucket","createS3Client","UniqueResolver","WEBINY_EXPORT_ASSETS_EXTENSION","ListFilesUseCase","ContentEntryTraverserProvider","getFilename","input","current","entryAfter","fileAfter","filter","item","undefined","join","prefix","ExportContentAssets","constructor","params","context","createCmsAssetsZipper","run","controller","model","cms","getModel","modelId","ex","response","error","message","code","data","traverserProvider","container","resolve","traverser","getTraverser","entryFetcher","after","where","limit","sort","items","meta","listLatestEntries","fileFetcher","client","bucket","filename","zipper","createEntryAssets","uniqueResolver","createEntryAssetsResolver","fetchFiles","listFiles","listResult","execute","value","result","isAborted","runtime","isCloseToTimeout","seconds","files","Array","isArray","done","concat","key","checksum","continue","fileCursor","entryCursor","type","name"],"sources":["ExportContentAssets.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport type {\n IExportContentAssets,\n IExportContentAssetsInput,\n IExportContentAssetsOutput\n} from \"~/tasks/domain/abstractions/ExportContentAssets.js\";\nimport type { ICmsEntryFetcher } from \"~/tasks/utils/cmsEntryFetcher/index.js\";\nimport { createCmsEntryFetcher } from \"~/tasks/utils/cmsEntryFetcher/index.js\";\nimport type { IEntryAssets, IEntryAssetsResolver } from \"~/tasks/utils/entryAssets/index.js\";\nimport { EntryAssets, EntryAssetsResolver } from \"~/tasks/utils/entryAssets/index.js\";\nimport type {\n ICmsAssetsZipper,\n ICmsAssetsZipperExecuteResult\n} from \"~/tasks/utils/cmsAssetsZipper/index.js\";\nimport {\n CmsAssetsZipperExecuteContinueResult,\n CmsAssetsZipperExecuteContinueWithoutResult,\n CmsAssetsZipperExecuteDoneResult,\n CmsAssetsZipperExecuteDoneWithoutResult\n} from \"~/tasks/utils/cmsAssetsZipper/index.js\";\nimport type { IFileFetcher } from \"~/tasks/utils/fileFetcher/index.js\";\nimport { FileFetcher } from \"~/tasks/utils/fileFetcher/index.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { getErrorProperties } from \"@webiny/tasks/utils/index.js\";\nimport { getBucket } from \"~/tasks/utils/helpers/getBucket.js\";\nimport { createS3Client } from \"~/tasks/utils/helpers/s3Client.js\";\nimport { UniqueResolver } from \"~/tasks/utils/uniqueResolver/UniqueResolver.js\";\nimport { WEBINY_EXPORT_ASSETS_EXTENSION } from \"~/tasks/constants.js\";\nimport { ListFilesUseCase } from \"@webiny/api-file-manager/features/file/ListFiles/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { ContentEntryTraverserProvider } from \"@webiny/api-headless-cms\";\n\nexport interface ICreateCmsAssetsZipperCallableConfig {\n filename: string;\n entryFetcher: ICmsEntryFetcher;\n createEntryAssets: () => IEntryAssets;\n createEntryAssetsResolver: () => IEntryAssetsResolver;\n fileFetcher: IFileFetcher;\n}\n\nexport interface ICreateCmsAssetsZipperCallable {\n (config: ICreateCmsAssetsZipperCallableConfig): ICmsAssetsZipper;\n}\n\nconst getFilename = (input: IExportContentAssetsInput): string => {\n const current = [input.entryAfter, input.fileAfter]\n .filter(item => item !== undefined)\n .join(\"-\");\n\n return `${input.prefix}/assets${\n current ? `-${current}` : \"\"\n }.${WEBINY_EXPORT_ASSETS_EXTENSION}`;\n};\n\nexport interface IExportContentAssetsParams {\n context: Context;\n createCmsAssetsZipper: ICreateCmsAssetsZipperCallable;\n}\n\nexport class ExportContentAssets<\n I extends IExportContentAssetsInput = IExportContentAssetsInput,\n O extends IExportContentAssetsOutput = IExportContentAssetsOutput\n> implements IExportContentAssets<I, O>\n{\n private readonly createCmsAssetsZipper: ICreateCmsAssetsZipperCallable;\n private context: Context;\n\n public constructor(params: IExportContentAssetsParams) {\n this.context = params.context;\n this.createCmsAssetsZipper = params.createCmsAssetsZipper;\n }\n\n public async run(params: TaskDefinition.RunParams<I, O>) {\n const { input, controller } = params;\n\n let model: CmsModel;\n try {\n model = await this.context.cms.getModel(input.modelId);\n } catch (ex) {\n return controller.response.error({\n message: `Could not fetch entry manager for model \"${input.modelId}\".`,\n code: \"MODEL_NOT_FOUND\",\n data: {\n error: getErrorProperties(ex)\n }\n });\n }\n\n const traverserProvider = this.context.container.resolve(ContentEntryTraverserProvider);\n const traverser = await traverserProvider.getTraverser(model.modelId);\n\n const entryFetcher = createCmsEntryFetcher(async after => {\n const input = {\n where: params.input.where,\n limit: params.input.limit || 10000,\n sort: params.input.sort,\n after\n };\n const [items, meta] = await this.context.cms.listLatestEntries(model, input);\n\n return {\n items,\n meta\n };\n });\n\n const fileFetcher = new FileFetcher({\n client: createS3Client(),\n bucket: getBucket()\n });\n\n const filename = getFilename(input);\n\n const zipper = this.createCmsAssetsZipper({\n filename,\n fileFetcher,\n entryFetcher,\n createEntryAssets: () => {\n return new EntryAssets({\n traverser,\n uniqueResolver: new UniqueResolver()\n });\n },\n createEntryAssetsResolver: () => {\n return new EntryAssetsResolver({\n fetchFiles: async params => {\n const listFiles = this.context.container.resolve(ListFilesUseCase);\n const listResult = await listFiles.execute(params ?? {});\n\n return listResult.value;\n }\n });\n }\n });\n\n let result: ICmsAssetsZipperExecuteResult;\n\n try {\n result = await zipper.execute({\n fileAfter: input.fileAfter,\n entryAfter: input.entryAfter,\n isAborted() {\n return controller.runtime.isAborted();\n },\n isCloseToTimeout(seconds?: number) {\n return controller.runtime.isCloseToTimeout(seconds);\n }\n });\n } catch (ex) {\n return controller.response.error(ex);\n }\n\n const files = Array.isArray(input.files) ? input.files : [];\n /**\n * Zipper is done, but there is no result?\n * We will output existing input files.\n */\n if (result instanceof CmsAssetsZipperExecuteDoneWithoutResult) {\n return controller.response.done({\n files\n } as O);\n }\n /**\n * Zipper is done and there is a result?\n * We will output existing input files and the new file.\n */\n //\n else if (result instanceof CmsAssetsZipperExecuteDoneResult) {\n return controller.response.done({\n files: files.concat([\n {\n key: result.key,\n checksum: result.checksum\n }\n ])\n } as O);\n }\n /**\n * Zipper is not done and there is no result?\n * Let's continue with the next iteration.\n */\n //\n else if (result instanceof CmsAssetsZipperExecuteContinueWithoutResult) {\n return controller.response.continue({\n ...input,\n fileAfter: result.fileCursor,\n entryAfter: result.entryCursor\n });\n }\n /**\n * Zipper is not done and there is a result?\n * Let's merge the existing files with the new file and continue with the next iteration.\n */\n //\n else if (result instanceof CmsAssetsZipperExecuteContinueResult) {\n return controller.response.continue({\n ...input,\n fileAfter: result.fileCursor,\n entryAfter: result.entryCursor,\n files: files.concat([\n {\n key: result.key,\n checksum: result.checksum\n }\n ])\n });\n }\n\n return controller.response.error({\n message: \"Unknown zipper result.\",\n code: \"UNKNOWN_ZIPPER_RESULT\",\n data: {\n type: typeof result,\n constructor: result?.constructor?.name || \"unknown constructor\",\n result\n }\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import type { Context } from "../../types.js";
2
2
  import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
3
3
  import type { ICmsEntryZipper, ICmsEntryZipperConfig } from "../../tasks/utils/cmsEntryZipper/index.js";
4
4
  import type { IExportContentEntries, IExportContentEntriesInput, IExportContentEntriesOutput } from "../../tasks/domain/abstractions/ExportContentEntries.js";
5
- import type { IContentEntryTraverser } from "@webiny/api-headless-cms";
5
+ import { type IContentEntryTraverser } from "@webiny/api-headless-cms";
6
6
  import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
7
7
  export interface IExportContentEntriesConfig {
8
8
  context: Context;
@@ -1,6 +1,7 @@
1
1
  import { getErrorProperties } from "@webiny/tasks/utils/index.js";
2
2
  import { CmsEntryZipperExecuteContinueResult } from "../../tasks/utils/cmsEntryZipper/index.js";
3
3
  import { createCmsEntryFetcher } from "../../tasks/utils/cmsEntryFetcher/createCmsEntryFetcher.js";
4
+ import { ContentEntryTraverserProvider } from "@webiny/api-headless-cms";
4
5
  import { WEBINY_EXPORT_ENTRIES_EXTENSION } from "../../tasks/constants.js";
5
6
  export class ExportContentEntries {
6
7
  constructor(config) {
@@ -43,7 +44,8 @@ export class ExportContentEntries {
43
44
  });
44
45
  const filenamePrefix = [prefix, input.after].filter(Boolean).join("-");
45
46
  const filename = `${filenamePrefix}.${WEBINY_EXPORT_ENTRIES_EXTENSION}`;
46
- const traverser = await this.context.cms.getEntryTraverser(model.modelId);
47
+ const traverserProvider = this.context.container.resolve(ContentEntryTraverserProvider);
48
+ const traverser = await traverserProvider.getTraverser(model.modelId);
47
49
  const entryZipper = this.createCmsEntryZipper({
48
50
  filename,
49
51
  model,
@@ -1 +1 @@
1
- {"version":3,"names":["getErrorProperties","CmsEntryZipperExecuteContinueResult","createCmsEntryFetcher","WEBINY_EXPORT_ENTRIES_EXTENSION","ExportContentEntries","constructor","config","context","createCmsEntryZipper","run","params","input","controller","prefix","basePrefix","model","cms","getModel","modelId","ex","response","error","message","code","data","fetcher","after","where","limit","sort","items","meta","listLatestEntries","filenamePrefix","filter","Boolean","join","filename","traverser","getEntryTraverser","entryZipper","result","execute","isCloseToTimeout","runtime","isAborted","exportAssets","files","concat","key","checksum","continue","cursor","output","done"],"sources":["ExportContentEntries.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { getErrorProperties } from \"@webiny/tasks/utils/index.js\";\nimport type { ICmsEntryZipper, ICmsEntryZipperConfig } from \"~/tasks/utils/cmsEntryZipper/index.js\";\nimport { CmsEntryZipperExecuteContinueResult } from \"~/tasks/utils/cmsEntryZipper/index.js\";\nimport type {\n IExportContentEntries,\n IExportContentEntriesInput,\n IExportContentEntriesOutput\n} from \"~/tasks/domain/abstractions/ExportContentEntries.js\";\nimport { createCmsEntryFetcher } from \"~/tasks/utils/cmsEntryFetcher/createCmsEntryFetcher.js\";\nimport type { IContentEntryTraverser } from \"@webiny/api-headless-cms\";\nimport { WEBINY_EXPORT_ENTRIES_EXTENSION } from \"~/tasks/constants.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface IExportContentEntriesConfig {\n context: Context;\n createCmsEntryZipper(config: Pick<ICmsEntryZipperConfig, \"fetcher\">): ICmsEntryZipper;\n}\n\nexport interface ICreateCmsEntryZipperConfig extends Pick<ICmsEntryZipperConfig, \"fetcher\"> {\n filename: string;\n model: Pick<CmsModel, \"modelId\">;\n traverser: IContentEntryTraverser;\n}\n\nexport class ExportContentEntries<\n I extends IExportContentEntriesInput = IExportContentEntriesInput,\n O extends IExportContentEntriesOutput = IExportContentEntriesOutput\n> implements IExportContentEntries<I, O>\n{\n private readonly createCmsEntryZipper: (config: ICreateCmsEntryZipperConfig) => ICmsEntryZipper;\n private readonly context: Context;\n\n public constructor(config: IExportContentEntriesConfig) {\n this.context = config.context;\n this.createCmsEntryZipper = config.createCmsEntryZipper;\n }\n\n public async run(params: TaskDefinition.RunParams<I, O>) {\n const { input, controller } = params;\n\n const { prefix: basePrefix } = input;\n\n let model: CmsModel;\n try {\n model = await this.context.cms.getModel(input.modelId);\n } catch (ex) {\n return controller.response.error({\n message: `Could not fetch entry manager for model \"${input.modelId}\".`,\n code: \"MODEL_NOT_FOUND\",\n data: {\n error: getErrorProperties(ex)\n }\n });\n }\n\n const prefix = `${basePrefix}/entries`;\n const fetcher = createCmsEntryFetcher(async after => {\n const input = {\n where: params.input.where,\n limit: params.input.limit || 100000,\n sort: params.input.sort,\n after\n };\n const [items, meta] = await this.context.cms.listLatestEntries(model, input);\n\n return {\n items,\n meta\n };\n });\n\n const filenamePrefix = [prefix, input.after].filter(Boolean).join(\"-\");\n\n const filename = `${filenamePrefix}.${WEBINY_EXPORT_ENTRIES_EXTENSION}`;\n\n const traverser = await this.context.cms.getEntryTraverser(model.modelId);\n\n const entryZipper = this.createCmsEntryZipper({\n filename,\n model,\n fetcher,\n traverser\n });\n\n const result = await entryZipper.execute({\n isCloseToTimeout: () => controller.runtime.isCloseToTimeout(),\n isAborted: () => controller.runtime.isAborted(),\n model,\n after: input.after,\n exportAssets: input.exportAssets\n });\n\n const files = (input.files || []).concat([\n {\n key: result.key,\n checksum: result.checksum\n }\n ]);\n\n if (result instanceof CmsEntryZipperExecuteContinueResult) {\n return controller.response.continue({\n ...input,\n files,\n after: result.cursor\n });\n }\n const output: IExportContentEntriesOutput = {\n files\n };\n return controller.response.done(output as O);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getErrorProperties","CmsEntryZipperExecuteContinueResult","createCmsEntryFetcher","ContentEntryTraverserProvider","WEBINY_EXPORT_ENTRIES_EXTENSION","ExportContentEntries","constructor","config","context","createCmsEntryZipper","run","params","input","controller","prefix","basePrefix","model","cms","getModel","modelId","ex","response","error","message","code","data","fetcher","after","where","limit","sort","items","meta","listLatestEntries","filenamePrefix","filter","Boolean","join","filename","traverserProvider","container","resolve","traverser","getTraverser","entryZipper","result","execute","isCloseToTimeout","runtime","isAborted","exportAssets","files","concat","key","checksum","continue","cursor","output","done"],"sources":["ExportContentEntries.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { getErrorProperties } from \"@webiny/tasks/utils/index.js\";\nimport type { ICmsEntryZipper, ICmsEntryZipperConfig } from \"~/tasks/utils/cmsEntryZipper/index.js\";\nimport { CmsEntryZipperExecuteContinueResult } from \"~/tasks/utils/cmsEntryZipper/index.js\";\nimport type {\n IExportContentEntries,\n IExportContentEntriesInput,\n IExportContentEntriesOutput\n} from \"~/tasks/domain/abstractions/ExportContentEntries.js\";\nimport { createCmsEntryFetcher } from \"~/tasks/utils/cmsEntryFetcher/createCmsEntryFetcher.js\";\nimport {\n ContentEntryTraverserProvider,\n type IContentEntryTraverser\n} from \"@webiny/api-headless-cms\";\nimport { WEBINY_EXPORT_ENTRIES_EXTENSION } from \"~/tasks/constants.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface IExportContentEntriesConfig {\n context: Context;\n createCmsEntryZipper(config: Pick<ICmsEntryZipperConfig, \"fetcher\">): ICmsEntryZipper;\n}\n\nexport interface ICreateCmsEntryZipperConfig extends Pick<ICmsEntryZipperConfig, \"fetcher\"> {\n filename: string;\n model: Pick<CmsModel, \"modelId\">;\n traverser: IContentEntryTraverser;\n}\n\nexport class ExportContentEntries<\n I extends IExportContentEntriesInput = IExportContentEntriesInput,\n O extends IExportContentEntriesOutput = IExportContentEntriesOutput\n> implements IExportContentEntries<I, O>\n{\n private readonly createCmsEntryZipper: (config: ICreateCmsEntryZipperConfig) => ICmsEntryZipper;\n private readonly context: Context;\n\n public constructor(config: IExportContentEntriesConfig) {\n this.context = config.context;\n this.createCmsEntryZipper = config.createCmsEntryZipper;\n }\n\n public async run(params: TaskDefinition.RunParams<I, O>) {\n const { input, controller } = params;\n\n const { prefix: basePrefix } = input;\n\n let model: CmsModel;\n try {\n model = await this.context.cms.getModel(input.modelId);\n } catch (ex) {\n return controller.response.error({\n message: `Could not fetch entry manager for model \"${input.modelId}\".`,\n code: \"MODEL_NOT_FOUND\",\n data: {\n error: getErrorProperties(ex)\n }\n });\n }\n\n const prefix = `${basePrefix}/entries`;\n const fetcher = createCmsEntryFetcher(async after => {\n const input = {\n where: params.input.where,\n limit: params.input.limit || 100000,\n sort: params.input.sort,\n after\n };\n const [items, meta] = await this.context.cms.listLatestEntries(model, input);\n\n return {\n items,\n meta\n };\n });\n\n const filenamePrefix = [prefix, input.after].filter(Boolean).join(\"-\");\n\n const filename = `${filenamePrefix}.${WEBINY_EXPORT_ENTRIES_EXTENSION}`;\n\n const traverserProvider = this.context.container.resolve(ContentEntryTraverserProvider);\n const traverser = await traverserProvider.getTraverser(model.modelId);\n\n const entryZipper = this.createCmsEntryZipper({\n filename,\n model,\n fetcher,\n traverser\n });\n\n const result = await entryZipper.execute({\n isCloseToTimeout: () => controller.runtime.isCloseToTimeout(),\n isAborted: () => controller.runtime.isAborted(),\n model,\n after: input.after,\n exportAssets: input.exportAssets\n });\n\n const files = (input.files || []).concat([\n {\n key: result.key,\n checksum: result.checksum\n }\n ]);\n\n if (result instanceof CmsEntryZipperExecuteContinueResult) {\n return controller.response.continue({\n ...input,\n files,\n after: result.cursor\n });\n }\n const output: IExportContentEntriesOutput = {\n files\n };\n return controller.response.done(output as O);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,7 @@ const validateListExportContentEntries = zod.object({
13
13
  after: zod.string().optional()
14
14
  });
15
15
  const validateImportFromUrl = zod.object({
16
- data: zod.string().or(zod.object({}).passthrough())
16
+ data: zod.string().or(zod.looseObject({}))
17
17
  });
18
18
  const getValidateImportFromUrl = zod.object({
19
19
  id: zod.string()
@@ -32,7 +32,7 @@ const abortImportFromUrl = zod.object({
32
32
  const validateExportContentEntriesInput = zod.object({
33
33
  exportAssets: zod.boolean().optional().default(false),
34
34
  limit: zod.number().optional(),
35
- where: zod.object({}).passthrough().optional().default({}),
35
+ where: zod.looseObject({}).optional().default({}),
36
36
  sort: zod.array(zod.string()).optional()
37
37
  });
38
38
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["createZodError","resolve","resolveList","zod","checkPermissions","validateAbortExportContentEntries","object","id","string","validateGetExportContentEntries","validateListExportContentEntries","limit","number","optional","default","after","validateImportFromUrl","data","or","passthrough","getValidateImportFromUrl","getImportFromUrl","importFromUrlValidation","maxInsertErrors","overwrite","boolean","abortImportFromUrl","validateExportContentEntriesInput","exportAssets","where","sort","array","createExportContentEntries","models","reduce","resolvers","model","pluralApiName","_","input","context","result","safeParse","success","error","cmsImportExport","exportContentEntries","modelId","undefined","createResolvers","Query","getExportContentEntries","listExportContentEntries","Mutation","abortExportContentEntries","importFromUrl"],"sources":["resolvers.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport { createZodError } from \"@webiny/utils\";\nimport { resolve, resolveList } from \"@webiny/handler-graphql\";\nimport zod from \"zod\";\nimport type { GenericRecord, NonEmptyArray } from \"@webiny/api/types.js\";\nimport type {\n CmsEntryListSort,\n CmsEntryListWhere,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { checkPermissions } from \"./security.js\";\n\nconst validateAbortExportContentEntries = zod.object({\n id: zod.string()\n});\n\nconst validateGetExportContentEntries = zod.object({\n id: zod.string()\n});\n\nconst validateListExportContentEntries = zod.object({\n limit: zod.number().optional().default(50),\n after: zod.string().optional()\n});\n\nconst validateImportFromUrl = zod.object({\n data: zod.string().or(zod.object({}).passthrough())\n});\n\nconst getValidateImportFromUrl = zod.object({\n id: zod.string()\n});\n\nconst getImportFromUrl = zod.object({\n id: zod.string()\n});\n\nconst importFromUrlValidation = zod.object({\n id: zod.string(),\n maxInsertErrors: zod.number().optional().default(100),\n overwrite: zod.boolean().optional().default(false)\n});\n\nconst abortImportFromUrl = zod.object({\n id: zod.string()\n});\n\nconst validateExportContentEntriesInput = zod.object({\n exportAssets: zod.boolean().optional().default(false),\n limit: zod.number().optional(),\n where: zod.object({}).passthrough().optional().default({}),\n sort: zod.array(zod.string()).optional()\n});\n/**\n * Create export resolver for each of the models given.\n */\nconst createExportContentEntries = (models: NonEmptyArray<CmsModel>) => {\n return models.reduce<GenericRecord<string>>((resolvers, model) => {\n resolvers[`export${model.pluralApiName}ContentEntries`] = async (\n _: unknown,\n input: unknown,\n context: Context\n ) => {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = validateExportContentEntriesInput.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.exportContentEntries({\n ...result.data,\n modelId: model.modelId,\n sort: result.data.sort ? (result.data.sort as CmsEntryListSort) : undefined,\n where: result.data.where ? (result.data.where as CmsEntryListWhere) : undefined\n });\n });\n };\n return resolvers;\n }, {});\n};\n\nexport const createResolvers = (models: NonEmptyArray<CmsModel>) => {\n return {\n Query: {\n async getExportContentEntries(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = validateGetExportContentEntries.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.getExportContentEntries(result.data);\n });\n },\n async listExportContentEntries(_: unknown, input: unknown, context: Context) {\n return resolveList(async () => {\n await checkPermissions(context);\n\n const result = validateListExportContentEntries.safeParse(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n return await context.cmsImportExport.listExportContentEntries(result.data);\n });\n },\n async getValidateImportFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = getValidateImportFromUrl.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.getValidateImportFromUrl(result.data);\n });\n },\n async getImportFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = getImportFromUrl.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.getImportFromUrl(result.data);\n });\n }\n },\n Mutation: {\n ...createExportContentEntries(models),\n async abortExportContentEntries(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = validateAbortExportContentEntries.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.abortExportContentEntries(result.data);\n });\n },\n async validateImportFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = validateImportFromUrl.safeParse(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.validateImportFromUrl(result.data);\n });\n },\n async importFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = importFromUrlValidation.safeParse(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.importFromUrl(result.data);\n });\n },\n async abortImportFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = abortImportFromUrl.safeParse(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.abortImportFromUrl(result.data);\n });\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createZodError","resolve","resolveList","zod","checkPermissions","validateAbortExportContentEntries","object","id","string","validateGetExportContentEntries","validateListExportContentEntries","limit","number","optional","default","after","validateImportFromUrl","data","or","looseObject","getValidateImportFromUrl","getImportFromUrl","importFromUrlValidation","maxInsertErrors","overwrite","boolean","abortImportFromUrl","validateExportContentEntriesInput","exportAssets","where","sort","array","createExportContentEntries","models","reduce","resolvers","model","pluralApiName","_","input","context","result","safeParse","success","error","cmsImportExport","exportContentEntries","modelId","undefined","createResolvers","Query","getExportContentEntries","listExportContentEntries","Mutation","abortExportContentEntries","importFromUrl"],"sources":["resolvers.ts"],"sourcesContent":["import type { Context } from \"~/types.js\";\nimport { createZodError } from \"@webiny/utils\";\nimport { resolve, resolveList } from \"@webiny/handler-graphql\";\nimport zod from \"zod\";\nimport type { GenericRecord, NonEmptyArray } from \"@webiny/api/types.js\";\nimport type {\n CmsEntryListSort,\n CmsEntryListWhere,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { checkPermissions } from \"./security.js\";\n\nconst validateAbortExportContentEntries = zod.object({\n id: zod.string()\n});\n\nconst validateGetExportContentEntries = zod.object({\n id: zod.string()\n});\n\nconst validateListExportContentEntries = zod.object({\n limit: zod.number().optional().default(50),\n after: zod.string().optional()\n});\n\nconst validateImportFromUrl = zod.object({\n data: zod.string().or(zod.looseObject({}))\n});\n\nconst getValidateImportFromUrl = zod.object({\n id: zod.string()\n});\n\nconst getImportFromUrl = zod.object({\n id: zod.string()\n});\n\nconst importFromUrlValidation = zod.object({\n id: zod.string(),\n maxInsertErrors: zod.number().optional().default(100),\n overwrite: zod.boolean().optional().default(false)\n});\n\nconst abortImportFromUrl = zod.object({\n id: zod.string()\n});\n\nconst validateExportContentEntriesInput = zod.object({\n exportAssets: zod.boolean().optional().default(false),\n limit: zod.number().optional(),\n where: zod.looseObject({}).optional().default({}),\n sort: zod.array(zod.string()).optional()\n});\n/**\n * Create export resolver for each of the models given.\n */\nconst createExportContentEntries = (models: NonEmptyArray<CmsModel>) => {\n return models.reduce<GenericRecord<string>>((resolvers, model) => {\n resolvers[`export${model.pluralApiName}ContentEntries`] = async (\n _: unknown,\n input: unknown,\n context: Context\n ) => {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = validateExportContentEntriesInput.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.exportContentEntries({\n ...result.data,\n modelId: model.modelId,\n sort: result.data.sort ? (result.data.sort as CmsEntryListSort) : undefined,\n where: result.data.where ? (result.data.where as CmsEntryListWhere) : undefined\n });\n });\n };\n return resolvers;\n }, {});\n};\n\nexport const createResolvers = (models: NonEmptyArray<CmsModel>) => {\n return {\n Query: {\n async getExportContentEntries(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = validateGetExportContentEntries.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.getExportContentEntries(result.data);\n });\n },\n async listExportContentEntries(_: unknown, input: unknown, context: Context) {\n return resolveList(async () => {\n await checkPermissions(context);\n\n const result = validateListExportContentEntries.safeParse(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n return await context.cmsImportExport.listExportContentEntries(result.data);\n });\n },\n async getValidateImportFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = getValidateImportFromUrl.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.getValidateImportFromUrl(result.data);\n });\n },\n async getImportFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = getImportFromUrl.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.getImportFromUrl(result.data);\n });\n }\n },\n Mutation: {\n ...createExportContentEntries(models),\n async abortExportContentEntries(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = validateAbortExportContentEntries.safeParse(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.abortExportContentEntries(result.data);\n });\n },\n async validateImportFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = validateImportFromUrl.safeParse(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.validateImportFromUrl(result.data);\n });\n },\n async importFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = importFromUrlValidation.safeParse(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.importFromUrl(result.data);\n });\n },\n async abortImportFromUrl(_: unknown, input: unknown, context: Context) {\n return resolve(async () => {\n await checkPermissions(context);\n\n const result = abortImportFromUrl.safeParse(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n return await context.cmsImportExport.abortImportFromUrl(result.data);\n });\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-import-export",
3
- "version": "6.0.0-rc.7",
3
+ "version": "6.1.0-beta.0",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "description": "Import / Export for Webiny Headless CMS",
@@ -14,43 +14,43 @@
14
14
  },
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "@smithy/node-http-handler": "4.4.14",
18
- "@webiny/api-file-manager": "6.0.0-rc.7",
19
- "@webiny/api-headless-cms": "6.0.0-rc.7",
20
- "@webiny/aws-sdk": "6.0.0-rc.7",
21
- "@webiny/error": "6.0.0-rc.7",
22
- "@webiny/feature": "6.0.0-rc.7",
23
- "@webiny/handler-graphql": "6.0.0-rc.7",
24
- "@webiny/plugins": "6.0.0-rc.7",
25
- "@webiny/project-utils": "6.0.0-rc.7",
26
- "@webiny/tasks": "6.0.0-rc.7",
27
- "@webiny/utils": "6.0.0-rc.7",
17
+ "@smithy/node-http-handler": "4.5.0",
18
+ "@webiny/api-file-manager": "6.1.0-beta.0",
19
+ "@webiny/api-headless-cms": "6.1.0-beta.0",
20
+ "@webiny/aws-sdk": "6.1.0-beta.0",
21
+ "@webiny/error": "6.1.0-beta.0",
22
+ "@webiny/feature": "6.1.0-beta.0",
23
+ "@webiny/handler-graphql": "6.1.0-beta.0",
24
+ "@webiny/plugins": "6.1.0-beta.0",
25
+ "@webiny/project-utils": "6.1.0-beta.0",
26
+ "@webiny/tasks": "6.1.0-beta.0",
27
+ "@webiny/utils": "6.1.0-beta.0",
28
28
  "archiver": "7.0.1",
29
29
  "bytes": "3.1.2",
30
30
  "uniqid": "5.4.0",
31
31
  "unzipper": "0.12.3",
32
- "zod": "3.25.76"
32
+ "zod": "4.3.6"
33
33
  },
34
34
  "devDependencies": {
35
- "@types/adm-zip": "0.5.7",
36
- "@types/archiver": "6.0.4",
35
+ "@types/adm-zip": "0.5.8",
36
+ "@types/archiver": "7.0.0",
37
37
  "@types/unzipper": "0.10.11",
38
- "@webiny/api": "6.0.0-rc.7",
39
- "@webiny/api-core": "6.0.0-rc.7",
40
- "@webiny/build-tools": "6.0.0-rc.7",
41
- "@webiny/handler": "6.0.0-rc.7",
42
- "@webiny/handler-aws": "6.0.0-rc.7",
38
+ "@webiny/api": "6.1.0-beta.0",
39
+ "@webiny/api-core": "6.1.0-beta.0",
40
+ "@webiny/build-tools": "6.1.0-beta.0",
41
+ "@webiny/handler": "6.1.0-beta.0",
42
+ "@webiny/handler-aws": "6.1.0-beta.0",
43
43
  "@webiny/plugins": "0.0.0",
44
- "@webiny/wcp": "6.0.0-rc.7",
44
+ "@webiny/wcp": "6.1.0-beta.0",
45
45
  "adm-zip": "0.5.16",
46
46
  "aws-sdk-client-mock": "4.1.0",
47
- "graphql": "16.13.1",
47
+ "graphql": "16.13.2",
48
48
  "typescript": "5.9.3",
49
- "vitest": "4.0.18"
49
+ "vitest": "4.1.2"
50
50
  },
51
51
  "publishConfig": {
52
52
  "access": "public",
53
53
  "directory": "dist"
54
54
  },
55
- "gitHead": "9c6892640a45679ff521e25cd6587dff57393a2e"
55
+ "gitHead": "a3bd3695c66c79238e380d7360d9731b5fcf9c87"
56
56
  }