@webiny/api-headless-cms 5.37.8 → 5.38.0-beta.1

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 (308) hide show
  1. package/constants.js +3 -1
  2. package/context.js +10 -17
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/afterDelete.js +3 -1
  5. package/crud/contentEntry/beforeCreate.js +3 -1
  6. package/crud/contentEntry/beforeUpdate.js +3 -1
  7. package/crud/contentEntry/entryDataValidation.d.ts +4 -2
  8. package/crud/contentEntry/entryDataValidation.js +220 -47
  9. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  10. package/crud/contentEntry/markLockedFields.js +3 -1
  11. package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
  12. package/crud/contentEntry/referenceFieldsMapping.js +118 -97
  13. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  14. package/crud/contentEntry/searchableFields.js +5 -3
  15. package/crud/contentEntry/searchableFields.js.map +1 -1
  16. package/crud/contentEntry.crud.js +68 -64
  17. package/crud/contentEntry.crud.js.map +1 -1
  18. package/crud/contentModel/beforeCreate.d.ts +1 -1
  19. package/crud/contentModel/beforeCreate.js +11 -9
  20. package/crud/contentModel/beforeCreate.js.map +1 -1
  21. package/crud/contentModel/beforeDelete.js +3 -1
  22. package/crud/contentModel/beforeUpdate.d.ts +1 -1
  23. package/crud/contentModel/beforeUpdate.js +3 -6
  24. package/crud/contentModel/beforeUpdate.js.map +1 -1
  25. package/crud/contentModel/compatibility/modelApiName.js +3 -1
  26. package/crud/contentModel/contentModelManagerFactory.js +3 -1
  27. package/crud/contentModel/createFieldStorageId.js +3 -1
  28. package/crud/contentModel/defaultFields.js +3 -1
  29. package/crud/contentModel/ensureTypeTag.d.ts +5 -0
  30. package/crud/contentModel/ensureTypeTag.js +21 -0
  31. package/crud/contentModel/ensureTypeTag.js.map +1 -0
  32. package/crud/contentModel/fields/descriptionField.js +3 -1
  33. package/crud/contentModel/fields/imageField.js +3 -1
  34. package/crud/contentModel/fields/titleField.js +3 -1
  35. package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
  36. package/crud/contentModel/listModelsFromDatabase.js +39 -0
  37. package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
  38. package/crud/contentModel/validate/endingAllowed.js +3 -1
  39. package/crud/contentModel/validate/isModelEndingAllowed.js +4 -2
  40. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  41. package/crud/contentModel/validate/modelId.js +3 -1
  42. package/crud/contentModel/validate/pluralApiName.js +3 -1
  43. package/crud/contentModel/validate/singularApiName.js +3 -1
  44. package/crud/contentModel/validateModel.js +3 -1
  45. package/crud/contentModel/validateModel.js.map +1 -1
  46. package/crud/contentModel/validateModelFields.js +3 -1
  47. package/crud/contentModel/validation.d.ts +339 -58
  48. package/crud/contentModel/validation.js +71 -11
  49. package/crud/contentModel/validation.js.map +1 -1
  50. package/crud/contentModel.crud.js +80 -156
  51. package/crud/contentModel.crud.js.map +1 -1
  52. package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
  53. package/crud/contentModelGroup/beforeCreate.js +15 -1
  54. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  55. package/crud/contentModelGroup/beforeDelete.js +3 -1
  56. package/crud/contentModelGroup/beforeUpdate.js +3 -1
  57. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
  58. package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
  59. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
  60. package/crud/contentModelGroup/validation.d.ts +9 -6
  61. package/crud/contentModelGroup/validation.js +5 -2
  62. package/crud/contentModelGroup/validation.js.map +1 -1
  63. package/crud/contentModelGroup.crud.js +89 -110
  64. package/crud/contentModelGroup.crud.js.map +1 -1
  65. package/crud/system.crud.js +4 -7
  66. package/crud/system.crud.js.map +1 -1
  67. package/export/crud/exporting.d.ts +3 -0
  68. package/export/crud/exporting.js +50 -0
  69. package/export/crud/exporting.js.map +1 -0
  70. package/export/crud/importing.d.ts +3 -0
  71. package/export/crud/importing.js +79 -0
  72. package/export/crud/importing.js.map +1 -0
  73. package/export/crud/imports/importData.d.ts +14 -0
  74. package/export/crud/imports/importData.js +25 -0
  75. package/export/crud/imports/importData.js.map +1 -0
  76. package/export/crud/imports/importGroups.d.ts +8 -0
  77. package/export/crud/imports/importGroups.js +99 -0
  78. package/export/crud/imports/importGroups.js.map +1 -0
  79. package/export/crud/imports/importModels.d.ts +8 -0
  80. package/export/crud/imports/importModels.js +134 -0
  81. package/export/crud/imports/importModels.js.map +1 -0
  82. package/export/crud/imports/validateGroups.d.ts +8 -0
  83. package/export/crud/imports/validateGroups.js +106 -0
  84. package/export/crud/imports/validateGroups.js.map +1 -0
  85. package/export/crud/imports/validateInput.d.ts +19 -0
  86. package/export/crud/imports/validateInput.js +49 -0
  87. package/export/crud/imports/validateInput.js.map +1 -0
  88. package/export/crud/imports/validateModels.d.ts +9 -0
  89. package/export/crud/imports/validateModels.js +204 -0
  90. package/export/crud/imports/validateModels.js.map +1 -0
  91. package/export/crud/index.d.ts +4 -0
  92. package/export/crud/index.js +15 -0
  93. package/export/crud/index.js.map +1 -0
  94. package/export/crud/sanitize.d.ts +4 -0
  95. package/export/crud/sanitize.js +35 -0
  96. package/export/crud/sanitize.js.map +1 -0
  97. package/export/graphql/index.d.ts +3 -0
  98. package/export/graphql/index.js +188 -0
  99. package/export/graphql/index.js.map +1 -0
  100. package/export/index.d.ts +2 -0
  101. package/export/index.js +29 -0
  102. package/export/index.js.map +1 -0
  103. package/export/types.d.ts +111 -0
  104. package/export/types.js +22 -0
  105. package/export/types.js.map +1 -0
  106. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +3 -1
  107. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +3 -1
  108. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +3 -1
  109. package/fieldConverters/index.js +3 -1
  110. package/graphql/buildSchemaPlugins.js +3 -1
  111. package/graphql/checkEndpointAccess.js +3 -1
  112. package/graphql/createExecutableSchema.js +3 -1
  113. package/graphql/createRequestBody.js +3 -1
  114. package/graphql/formatErrorPayload.js +3 -1
  115. package/graphql/generateSchema.js +3 -1
  116. package/graphql/getSchema.d.ts +0 -1
  117. package/graphql/getSchema.js +23 -13
  118. package/graphql/getSchema.js.map +1 -1
  119. package/graphql/graphQLHandlerFactory.js +3 -1
  120. package/graphql/handleRequest.js +3 -5
  121. package/graphql/handleRequest.js.map +1 -1
  122. package/graphql/index.d.ts +1 -1
  123. package/graphql/index.js +4 -2
  124. package/graphql/index.js.map +1 -1
  125. package/graphql/schema/baseContentSchema.js +3 -1
  126. package/graphql/schema/baseSchema.d.ts +2 -3
  127. package/graphql/schema/baseSchema.js +58 -2
  128. package/graphql/schema/baseSchema.js.map +1 -1
  129. package/graphql/schema/contentEntries.js +4 -2
  130. package/graphql/schema/contentEntries.js.map +1 -1
  131. package/graphql/schema/contentModelGroups.js +4 -1
  132. package/graphql/schema/contentModelGroups.js.map +1 -1
  133. package/graphql/schema/contentModels.js +5 -5
  134. package/graphql/schema/contentModels.js.map +1 -1
  135. package/graphql/schema/createFieldResolvers.js +3 -1
  136. package/graphql/schema/createFieldTypePluginRecords.js +3 -1
  137. package/graphql/schema/createManageResolvers.js +7 -1
  138. package/graphql/schema/createManageResolvers.js.map +1 -1
  139. package/graphql/schema/createManageSDL.js +8 -4
  140. package/graphql/schema/createManageSDL.js.map +1 -1
  141. package/graphql/schema/createPreviewResolvers.js +3 -1
  142. package/graphql/schema/createReadResolvers.js +3 -1
  143. package/graphql/schema/createReadSDL.js +3 -1
  144. package/graphql/schema/resolvers/commonFieldResolvers.js +3 -1
  145. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
  146. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  147. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  148. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
  149. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  150. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  151. package/graphql/schema/resolvers/manage/resolveDelete.js +3 -1
  152. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +3 -1
  153. package/graphql/schema/resolvers/manage/resolveGet.js +3 -1
  154. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  155. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  156. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +3 -1
  157. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  158. package/graphql/schema/resolvers/manage/resolveMove.js +3 -1
  159. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  160. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  161. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  162. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
  163. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  164. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  165. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  166. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  167. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  168. package/graphql/schema/resolvers/preview/resolveGet.js +3 -1
  169. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  170. package/graphql/schema/resolvers/read/resolveGet.js +3 -1
  171. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  172. package/graphql/schema/schemaPlugins.js +3 -1
  173. package/graphql/system.js +3 -1
  174. package/graphqlFields/boolean.js +3 -1
  175. package/graphqlFields/datetime.js +4 -3
  176. package/graphqlFields/datetime.js.map +1 -1
  177. package/graphqlFields/dynamicZone/dynamicZoneField.js +29 -6
  178. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  179. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +3 -1
  180. package/graphqlFields/dynamicZone/index.js +3 -1
  181. package/graphqlFields/file.js +3 -1
  182. package/graphqlFields/helpers.d.ts +0 -1
  183. package/graphqlFields/helpers.js +6 -18
  184. package/graphqlFields/helpers.js.map +1 -1
  185. package/graphqlFields/index.js +3 -1
  186. package/graphqlFields/longText.js +14 -3
  187. package/graphqlFields/longText.js.map +1 -1
  188. package/graphqlFields/number.js +3 -1
  189. package/graphqlFields/object.js +5 -17
  190. package/graphqlFields/object.js.map +1 -1
  191. package/graphqlFields/ref.js +4 -2
  192. package/graphqlFields/ref.js.map +1 -1
  193. package/graphqlFields/richText.js +3 -1
  194. package/graphqlFields/text.js +3 -1
  195. package/index.d.ts +1 -1
  196. package/index.js +5 -2
  197. package/index.js.map +1 -1
  198. package/modelManager/DefaultCmsModelManager.js +3 -1
  199. package/modelManager/index.js +3 -1
  200. package/package.json +18 -19
  201. package/parameters/context.js +3 -1
  202. package/parameters/header.js +3 -1
  203. package/parameters/index.js +3 -1
  204. package/parameters/manual.js +3 -1
  205. package/parameters/path.js +3 -1
  206. package/plugins/CmsGraphQLSchemaPlugin.js +3 -1
  207. package/plugins/CmsGraphQLSchemaSorterPlugin.js +3 -1
  208. package/plugins/CmsGroupPlugin.d.ts +6 -3
  209. package/plugins/CmsGroupPlugin.js +7 -2
  210. package/plugins/CmsGroupPlugin.js.map +1 -1
  211. package/plugins/CmsModelFieldConverterPlugin.js +3 -1
  212. package/plugins/CmsModelPlugin.d.ts +2 -2
  213. package/plugins/CmsModelPlugin.js +6 -2
  214. package/plugins/CmsModelPlugin.js.map +1 -1
  215. package/plugins/CmsParametersPlugin.js +3 -1
  216. package/plugins/StorageOperationsCmsModelPlugin.js +3 -1
  217. package/plugins/StorageTransformPlugin.js +3 -1
  218. package/plugins/index.js +3 -1
  219. package/storage/default.js +3 -1
  220. package/storage/object.js +3 -1
  221. package/types.d.ts +62 -230
  222. package/types.js +3 -17
  223. package/types.js.map +1 -1
  224. package/utils/access.js +3 -1
  225. package/utils/caching/Cache.d.ts +2 -0
  226. package/utils/caching/Cache.js +53 -0
  227. package/utils/caching/Cache.js.map +1 -0
  228. package/utils/caching/CacheKey.d.ts +3 -0
  229. package/utils/caching/CacheKey.js +41 -0
  230. package/utils/caching/CacheKey.js.map +1 -0
  231. package/utils/caching/index.d.ts +2 -0
  232. package/utils/caching/index.js +29 -0
  233. package/utils/caching/index.js.map +1 -0
  234. package/utils/caching/types.d.ts +9 -0
  235. package/utils/caching/types.js +7 -0
  236. package/utils/caching/types.js.map +1 -0
  237. package/utils/converters/Converter.js +3 -1
  238. package/utils/converters/ConverterCollection.js +3 -1
  239. package/utils/converters/valueKeyStorageConverter.js +3 -1
  240. package/utils/createTypeFromFields.js +6 -1
  241. package/utils/createTypeFromFields.js.map +1 -1
  242. package/utils/createTypeName.js +3 -1
  243. package/utils/entryStorage.js +3 -1
  244. package/utils/filterAsync.js +3 -1
  245. package/utils/getBaseFieldType.js +3 -1
  246. package/utils/getEntryDescription.js +3 -1
  247. package/utils/getEntryImage.js +3 -1
  248. package/utils/getEntryTitle.js +3 -1
  249. package/utils/getSchemaFromFieldPlugins.js +3 -1
  250. package/utils/incrementEntryIdVersion.js +3 -1
  251. package/utils/index.d.ts +1 -0
  252. package/utils/index.js +18 -0
  253. package/utils/index.js.map +1 -0
  254. package/utils/permissions/EntriesPermissions.js +3 -1
  255. package/utils/permissions/ModelGroupsPermissions.js +3 -1
  256. package/utils/permissions/ModelsPermissions.js +3 -1
  257. package/utils/renderFields.js +3 -1
  258. package/utils/renderGetFilterFields.js +3 -1
  259. package/utils/renderInputFields.js +3 -1
  260. package/utils/renderListFilterFields.js +3 -1
  261. package/utils/renderSortEnum.js +3 -1
  262. package/utils/toSlug.js +3 -1
  263. package/validators/dateGte.js +3 -1
  264. package/validators/dateLte.js +3 -1
  265. package/validators/gte.js +3 -1
  266. package/validators/in.js +3 -1
  267. package/validators/index.js +4 -3
  268. package/validators/index.js.map +1 -1
  269. package/validators/lte.js +3 -1
  270. package/validators/maxLength.js +3 -1
  271. package/validators/minLength.js +3 -1
  272. package/validators/pattern.js +3 -1
  273. package/validators/patternPlugins/email.js +3 -1
  274. package/validators/patternPlugins/index.js +3 -1
  275. package/validators/patternPlugins/lowerCase.js +3 -1
  276. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  277. package/validators/patternPlugins/upperCase.js +3 -1
  278. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  279. package/validators/patternPlugins/url.js +3 -1
  280. package/validators/required.js +3 -1
  281. package/validators/timeGte.js +3 -1
  282. package/validators/timeLte.js +3 -1
  283. package/validators/unique.js +4 -2
  284. package/validators/unique.js.map +1 -1
  285. package/crud/contentModel/afterCreate.d.ts +0 -8
  286. package/crud/contentModel/afterCreate.js +0 -16
  287. package/crud/contentModel/afterCreate.js.map +0 -1
  288. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  289. package/crud/contentModel/afterCreateFrom.js +0 -16
  290. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  291. package/crud/contentModel/afterDelete.d.ts +0 -8
  292. package/crud/contentModel/afterDelete.js +0 -16
  293. package/crud/contentModel/afterDelete.js.map +0 -1
  294. package/crud/contentModel/afterUpdate.d.ts +0 -8
  295. package/crud/contentModel/afterUpdate.js +0 -16
  296. package/crud/contentModel/afterUpdate.js.map +0 -1
  297. package/crud/contentModel/validateLayout.d.ts +0 -2
  298. package/crud/contentModel/validateLayout.js +0 -28
  299. package/crud/contentModel/validateLayout.js.map +0 -1
  300. package/crud/settings.crud.d.ts +0 -12
  301. package/crud/settings.crud.js +0 -62
  302. package/crud/settings.crud.js.map +0 -1
  303. package/utils/permissions/SettingsPermissions.d.ts +0 -4
  304. package/utils/permissions/SettingsPermissions.js +0 -9
  305. package/utils/permissions/SettingsPermissions.js.map +0 -1
  306. package/validators/dynamicZone.d.ts +0 -2
  307. package/validators/dynamicZone.js +0 -20
  308. package/validators/dynamicZone.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ import { CmsGroupImportResult, CmsModelImportResult, ValidCmsGroupResult, ValidCmsModelResult } from "../../types";
2
+ import { CmsContext } from "../../../types";
3
+ interface Params {
4
+ context: CmsContext;
5
+ groups: ValidCmsGroupResult[];
6
+ models: ValidCmsModelResult[];
7
+ }
8
+ interface Response {
9
+ groups: CmsGroupImportResult[];
10
+ models: CmsModelImportResult[];
11
+ error?: string;
12
+ }
13
+ export declare const importData: (params: Params) => Promise<Response>;
14
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.importData = void 0;
7
+ var _importGroups = require("./importGroups");
8
+ var _importModels = require("./importModels");
9
+ const importData = async params => {
10
+ const {
11
+ context
12
+ } = params;
13
+ const groups = await (0, _importGroups.importGroups)(params);
14
+ const importModelResults = await (0, _importModels.importModels)({
15
+ context,
16
+ models: params.models
17
+ });
18
+ return {
19
+ groups,
20
+ models: importModelResults
21
+ };
22
+ };
23
+ exports.importData = importData;
24
+
25
+ //# sourceMappingURL=importData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_importGroups","require","_importModels","importData","params","context","groups","importGroups","importModelResults","importModels","models","exports"],"sources":["importData.ts"],"sourcesContent":["import {\n CmsGroupImportResult,\n CmsModelImportResult,\n ValidCmsGroupResult,\n ValidCmsModelResult\n} from \"~/export/types\";\nimport { CmsContext } from \"~/types\";\nimport { importGroups } from \"./importGroups\";\nimport { importModels } from \"./importModels\";\n\ninterface Params {\n context: CmsContext;\n groups: ValidCmsGroupResult[];\n models: ValidCmsModelResult[];\n}\n\ninterface Response {\n groups: CmsGroupImportResult[];\n models: CmsModelImportResult[];\n error?: string;\n}\n\nexport const importData = async (params: Params): Promise<Response> => {\n const { context } = params;\n\n const groups = await importGroups(params);\n\n const importModelResults = await importModels({\n context,\n models: params.models\n });\n\n return {\n groups,\n models: importModelResults\n };\n};\n"],"mappings":";;;;;;AAOA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAcO,MAAME,UAAU,GAAG,MAAOC,MAAc,IAAwB;EACnE,MAAM;IAAEC;EAAQ,CAAC,GAAGD,MAAM;EAE1B,MAAME,MAAM,GAAG,MAAM,IAAAC,0BAAY,EAACH,MAAM,CAAC;EAEzC,MAAMI,kBAAkB,GAAG,MAAM,IAAAC,0BAAY,EAAC;IAC1CJ,OAAO;IACPK,MAAM,EAAEN,MAAM,CAACM;EACnB,CAAC,CAAC;EAEF,OAAO;IACHJ,MAAM;IACNI,MAAM,EAAEF;EACZ,CAAC;AACL,CAAC;AAACG,OAAA,CAAAR,UAAA,GAAAA,UAAA"}
@@ -0,0 +1,8 @@
1
+ import { CmsContext } from "../../../types";
2
+ import { CmsGroupImportResult, ValidCmsGroupResult } from "../../types";
3
+ interface Params {
4
+ context: CmsContext;
5
+ groups: ValidCmsGroupResult[];
6
+ }
7
+ export declare const importGroups: (params: Params) => Promise<CmsGroupImportResult[]>;
8
+ export {};
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.importGroups = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _types = require("../../types");
10
+ const importGroups = async params => {
11
+ const {
12
+ context,
13
+ groups
14
+ } = params;
15
+ const results = [];
16
+ for (const group of groups) {
17
+ if (group.action === _types.CmsImportAction.NONE || group.error) {
18
+ results.push({
19
+ action: group.action,
20
+ group: group.group,
21
+ imported: false,
22
+ error: group.error || {
23
+ message: "No action to be ran on the group.",
24
+ code: "NO_ACTION"
25
+ }
26
+ });
27
+ }
28
+ /**
29
+ * Cannot update if the group is created via plugin.
30
+ */
31
+ if (group.action === _types.CmsImportAction.CODE) {
32
+ results.push({
33
+ action: group.action,
34
+ group: group.group,
35
+ imported: true
36
+ });
37
+ continue;
38
+ }
39
+ /**
40
+ * Update the group.
41
+ */
42
+ //
43
+ else if (group.action === _types.CmsImportAction.UPDATE) {
44
+ try {
45
+ const result = await context.cms.updateGroup(group.group.id, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, group.group), {}, {
46
+ description: group.group.description || undefined
47
+ }));
48
+ results.push({
49
+ action: group.action,
50
+ group: (0, _objectSpread2.default)({}, result),
51
+ imported: true
52
+ });
53
+ } catch (ex) {
54
+ results.push({
55
+ action: group.action,
56
+ group: group.group,
57
+ imported: false,
58
+ error: {
59
+ message: ex.message,
60
+ code: ex.code || "UPDATE_GROUP_ERROR",
61
+ data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data), {}, {
62
+ group
63
+ })
64
+ }
65
+ });
66
+ }
67
+ continue;
68
+ }
69
+ /**
70
+ * Create the group
71
+ */
72
+ //
73
+ try {
74
+ const result = await context.cms.createGroup(group.group);
75
+ results.push({
76
+ action: group.action,
77
+ group: (0, _objectSpread2.default)({}, result),
78
+ imported: true
79
+ });
80
+ } catch (ex) {
81
+ results.push({
82
+ action: group.action,
83
+ group: group.group,
84
+ imported: false,
85
+ error: {
86
+ message: ex.message,
87
+ code: ex.code || "CREATE_GROUP_ERROR",
88
+ data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data), {}, {
89
+ group
90
+ })
91
+ }
92
+ });
93
+ }
94
+ }
95
+ return results;
96
+ };
97
+ exports.importGroups = importGroups;
98
+
99
+ //# sourceMappingURL=importGroups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_types","require","importGroups","params","context","groups","results","group","action","CmsImportAction","NONE","error","push","imported","message","code","CODE","UPDATE","result","cms","updateGroup","id","_objectSpread2","default","description","undefined","ex","data","createGroup","exports"],"sources":["importGroups.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { CmsGroupImportResult, CmsImportAction, ValidCmsGroupResult } from \"~/export/types\";\n\ninterface Params {\n context: CmsContext;\n groups: ValidCmsGroupResult[];\n}\n\nexport const importGroups = async (params: Params) => {\n const { context, groups } = params;\n\n const results: CmsGroupImportResult[] = [];\n for (const group of groups) {\n if (group.action === CmsImportAction.NONE || group.error) {\n results.push({\n action: group.action,\n group: group.group,\n imported: false,\n error: group.error || {\n message: \"No action to be ran on the group.\",\n code: \"NO_ACTION\"\n }\n });\n }\n /**\n * Cannot update if the group is created via plugin.\n */\n if (group.action === CmsImportAction.CODE) {\n results.push({\n action: group.action,\n group: group.group,\n imported: true\n });\n continue;\n }\n /**\n * Update the group.\n */\n //\n else if (group.action === CmsImportAction.UPDATE) {\n try {\n const result = await context.cms.updateGroup(group.group.id, {\n ...group.group,\n description: group.group.description || undefined\n });\n results.push({\n action: group.action,\n group: {\n ...result\n },\n imported: true\n });\n } catch (ex) {\n results.push({\n action: group.action,\n group: group.group,\n imported: false,\n error: {\n message: ex.message,\n code: ex.code || \"UPDATE_GROUP_ERROR\",\n data: {\n ...ex.data,\n group\n }\n }\n });\n }\n continue;\n }\n /**\n * Create the group\n */\n //\n try {\n const result = await context.cms.createGroup(group.group);\n results.push({\n action: group.action,\n group: {\n ...result\n },\n imported: true\n });\n } catch (ex) {\n results.push({\n action: group.action,\n group: group.group,\n imported: false,\n error: {\n message: ex.message,\n code: ex.code || \"CREATE_GROUP_ERROR\",\n data: {\n ...ex.data,\n group\n }\n }\n });\n }\n }\n\n return results;\n};\n"],"mappings":";;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAOO,MAAMC,YAAY,GAAG,MAAOC,MAAc,IAAK;EAClD,MAAM;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAElC,MAAMG,OAA+B,GAAG,EAAE;EAC1C,KAAK,MAAMC,KAAK,IAAIF,MAAM,EAAE;IACxB,IAAIE,KAAK,CAACC,MAAM,KAAKC,sBAAe,CAACC,IAAI,IAAIH,KAAK,CAACI,KAAK,EAAE;MACtDL,OAAO,CAACM,IAAI,CAAC;QACTJ,MAAM,EAAED,KAAK,CAACC,MAAM;QACpBD,KAAK,EAAEA,KAAK,CAACA,KAAK;QAClBM,QAAQ,EAAE,KAAK;QACfF,KAAK,EAAEJ,KAAK,CAACI,KAAK,IAAI;UAClBG,OAAO,EAAE,mCAAmC;UAC5CC,IAAI,EAAE;QACV;MACJ,CAAC,CAAC;IACN;IACA;AACR;AACA;IACQ,IAAIR,KAAK,CAACC,MAAM,KAAKC,sBAAe,CAACO,IAAI,EAAE;MACvCV,OAAO,CAACM,IAAI,CAAC;QACTJ,MAAM,EAAED,KAAK,CAACC,MAAM;QACpBD,KAAK,EAAEA,KAAK,CAACA,KAAK;QAClBM,QAAQ,EAAE;MACd,CAAC,CAAC;MACF;IACJ;IACA;AACR;AACA;IACQ;IAAA,KACK,IAAIN,KAAK,CAACC,MAAM,KAAKC,sBAAe,CAACQ,MAAM,EAAE;MAC9C,IAAI;QACA,MAAMC,MAAM,GAAG,MAAMd,OAAO,CAACe,GAAG,CAACC,WAAW,CAACb,KAAK,CAACA,KAAK,CAACc,EAAE,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACpDhB,KAAK,CAACA,KAAK;UACdiB,WAAW,EAAEjB,KAAK,CAACA,KAAK,CAACiB,WAAW,IAAIC;QAAS,EACpD,CAAC;QACFnB,OAAO,CAACM,IAAI,CAAC;UACTJ,MAAM,EAAED,KAAK,CAACC,MAAM;UACpBD,KAAK,MAAAe,cAAA,CAAAC,OAAA,MACEL,MAAM,CACZ;UACDL,QAAQ,EAAE;QACd,CAAC,CAAC;MACN,CAAC,CAAC,OAAOa,EAAE,EAAE;QACTpB,OAAO,CAACM,IAAI,CAAC;UACTJ,MAAM,EAAED,KAAK,CAACC,MAAM;UACpBD,KAAK,EAAEA,KAAK,CAACA,KAAK;UAClBM,QAAQ,EAAE,KAAK;UACfF,KAAK,EAAE;YACHG,OAAO,EAAEY,EAAE,CAACZ,OAAO;YACnBC,IAAI,EAAEW,EAAE,CAACX,IAAI,IAAI,oBAAoB;YACrCY,IAAI,MAAAL,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACGG,EAAE,CAACC,IAAI;cACVpB;YAAK;UAEb;QACJ,CAAC,CAAC;MACN;MACA;IACJ;IACA;AACR;AACA;IACQ;IACA,IAAI;MACA,MAAMW,MAAM,GAAG,MAAMd,OAAO,CAACe,GAAG,CAACS,WAAW,CAACrB,KAAK,CAACA,KAAK,CAAC;MACzDD,OAAO,CAACM,IAAI,CAAC;QACTJ,MAAM,EAAED,KAAK,CAACC,MAAM;QACpBD,KAAK,MAAAe,cAAA,CAAAC,OAAA,MACEL,MAAM,CACZ;QACDL,QAAQ,EAAE;MACd,CAAC,CAAC;IACN,CAAC,CAAC,OAAOa,EAAE,EAAE;MACTpB,OAAO,CAACM,IAAI,CAAC;QACTJ,MAAM,EAAED,KAAK,CAACC,MAAM;QACpBD,KAAK,EAAEA,KAAK,CAACA,KAAK;QAClBM,QAAQ,EAAE,KAAK;QACfF,KAAK,EAAE;UACHG,OAAO,EAAEY,EAAE,CAACZ,OAAO;UACnBC,IAAI,EAAEW,EAAE,CAACX,IAAI,IAAI,oBAAoB;UACrCY,IAAI,MAAAL,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACGG,EAAE,CAACC,IAAI;YACVpB;UAAK;QAEb;MACJ,CAAC,CAAC;IACN;EACJ;EAEA,OAAOD,OAAO;AAClB,CAAC;AAACuB,OAAA,CAAA3B,YAAA,GAAAA,YAAA"}
@@ -0,0 +1,8 @@
1
+ import { CmsContext } from "../../../types";
2
+ import { CmsModelImportResult, ValidCmsModelResult } from "../../types";
3
+ interface Params {
4
+ context: CmsContext;
5
+ models: ValidCmsModelResult[];
6
+ }
7
+ export declare const importModels: (params: Params) => Promise<CmsModelImportResult[]>;
8
+ export {};
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.importModels = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _types = require("../../types");
10
+ const importModels = async params => {
11
+ const {
12
+ context,
13
+ models
14
+ } = params;
15
+ const groups = await context.cms.listGroups();
16
+ const results = [];
17
+ for (const model of models) {
18
+ /**
19
+ * There is a possibility that group does not exist.
20
+ */
21
+ const group = groups.find(group => {
22
+ return group.id === model.model.group;
23
+ });
24
+ if (!group) {
25
+ results.push({
26
+ action: model.action,
27
+ model: model.model,
28
+ related: model.related,
29
+ imported: false,
30
+ error: {
31
+ message: `Group "${model.model.group}" does not exist.`,
32
+ code: "GROUP_NOT_FOUND",
33
+ data: {
34
+ model
35
+ }
36
+ }
37
+ });
38
+ continue;
39
+ }
40
+ /**
41
+ * No update action or there is a validation error.
42
+ */
43
+ if (model.action === _types.CmsImportAction.NONE || model.error) {
44
+ results.push({
45
+ action: model.action,
46
+ model: model.model,
47
+ related: model.related,
48
+ imported: false,
49
+ error: model.error || {
50
+ message: "No action to be ran on the model.",
51
+ code: "NO_ACTION"
52
+ }
53
+ });
54
+ continue;
55
+ }
56
+ /**
57
+ * Cannot update a model if it is created via plugin.
58
+ */
59
+ if (model.action === _types.CmsImportAction.CODE) {
60
+ results.push({
61
+ action: model.action,
62
+ model: model.model,
63
+ related: model.related,
64
+ imported: true
65
+ });
66
+ continue;
67
+ }
68
+
69
+ /**
70
+ * Update the model
71
+ */
72
+ //
73
+ if (model.action === _types.CmsImportAction.UPDATE) {
74
+ try {
75
+ const result = await context.cms.updateModel(model.model.modelId, model.model);
76
+ results.push({
77
+ action: model.action,
78
+ model: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, result), {}, {
79
+ group: group.id
80
+ }),
81
+ related: model.related,
82
+ imported: true
83
+ });
84
+ } catch (ex) {
85
+ results.push({
86
+ action: model.action,
87
+ model: model.model,
88
+ imported: false,
89
+ related: model.related,
90
+ error: {
91
+ message: ex.message,
92
+ code: ex.code || "UPDATE_MODEL_ERROR",
93
+ data: (0, _objectSpread2.default)({
94
+ model: model.model
95
+ }, ex.data)
96
+ }
97
+ });
98
+ }
99
+ continue;
100
+ }
101
+ /**
102
+ * Create a new model.
103
+ */
104
+ try {
105
+ const result = await context.cms.createModel(model.model);
106
+ results.push({
107
+ action: model.action,
108
+ model: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, result), {}, {
109
+ group: group.id
110
+ }),
111
+ related: model.related,
112
+ imported: true
113
+ });
114
+ } catch (ex) {
115
+ results.push({
116
+ action: model.action,
117
+ model: model.model,
118
+ imported: false,
119
+ related: model.related,
120
+ error: {
121
+ message: ex.message,
122
+ code: ex.code || "CREATE_MODEL_ERROR",
123
+ data: (0, _objectSpread2.default)({
124
+ model: model.model
125
+ }, ex.data)
126
+ }
127
+ });
128
+ }
129
+ }
130
+ return results;
131
+ };
132
+ exports.importModels = importModels;
133
+
134
+ //# sourceMappingURL=importModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_types","require","importModels","params","context","models","groups","cms","listGroups","results","model","group","find","id","push","action","related","imported","error","message","code","data","CmsImportAction","NONE","CODE","UPDATE","result","updateModel","modelId","_objectSpread2","default","ex","createModel","exports"],"sources":["importModels.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { CmsImportAction, CmsModelImportResult, ValidCmsModelResult } from \"~/export/types\";\n\ninterface Params {\n context: CmsContext;\n models: ValidCmsModelResult[];\n}\n\nexport const importModels = async (params: Params) => {\n const { context, models } = params;\n\n const groups = await context.cms.listGroups();\n\n const results: CmsModelImportResult[] = [];\n\n for (const model of models) {\n /**\n * There is a possibility that group does not exist.\n */\n const group = groups.find(group => {\n return group.id === model.model.group;\n });\n if (!group) {\n results.push({\n action: model.action,\n model: model.model,\n related: model.related,\n imported: false,\n error: {\n message: `Group \"${model.model.group}\" does not exist.`,\n code: \"GROUP_NOT_FOUND\",\n data: {\n model\n }\n }\n });\n continue;\n }\n /**\n * No update action or there is a validation error.\n */\n if (model.action === CmsImportAction.NONE || model.error) {\n results.push({\n action: model.action,\n model: model.model,\n related: model.related,\n imported: false,\n error: model.error || {\n message: \"No action to be ran on the model.\",\n code: \"NO_ACTION\"\n }\n });\n continue;\n }\n /**\n * Cannot update a model if it is created via plugin.\n */\n if (model.action === CmsImportAction.CODE) {\n results.push({\n action: model.action,\n model: model.model,\n related: model.related,\n imported: true\n });\n continue;\n }\n\n /**\n * Update the model\n */\n //\n if (model.action === CmsImportAction.UPDATE) {\n try {\n const result = await context.cms.updateModel(model.model.modelId, model.model);\n results.push({\n action: model.action,\n model: {\n ...result,\n group: group.id\n },\n related: model.related,\n imported: true\n });\n } catch (ex) {\n results.push({\n action: model.action,\n model: model.model,\n imported: false,\n related: model.related,\n error: {\n message: ex.message,\n code: ex.code || \"UPDATE_MODEL_ERROR\",\n data: {\n model: model.model,\n ...ex.data\n }\n }\n });\n }\n continue;\n }\n /**\n * Create a new model.\n */\n try {\n const result = await context.cms.createModel(model.model);\n results.push({\n action: model.action,\n model: {\n ...result,\n group: group.id\n },\n related: model.related,\n imported: true\n });\n } catch (ex) {\n results.push({\n action: model.action,\n model: model.model,\n imported: false,\n related: model.related,\n error: {\n message: ex.message,\n code: ex.code || \"CREATE_MODEL_ERROR\",\n data: {\n model: model.model,\n ...ex.data\n }\n }\n });\n }\n }\n\n return results;\n};\n"],"mappings":";;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAOO,MAAMC,YAAY,GAAG,MAAOC,MAAc,IAAK;EAClD,MAAM;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAElC,MAAMG,MAAM,GAAG,MAAMF,OAAO,CAACG,GAAG,CAACC,UAAU,CAAC,CAAC;EAE7C,MAAMC,OAA+B,GAAG,EAAE;EAE1C,KAAK,MAAMC,KAAK,IAAIL,MAAM,EAAE;IACxB;AACR;AACA;IACQ,MAAMM,KAAK,GAAGL,MAAM,CAACM,IAAI,CAACD,KAAK,IAAI;MAC/B,OAAOA,KAAK,CAACE,EAAE,KAAKH,KAAK,CAACA,KAAK,CAACC,KAAK;IACzC,CAAC,CAAC;IACF,IAAI,CAACA,KAAK,EAAE;MACRF,OAAO,CAACK,IAAI,CAAC;QACTC,MAAM,EAAEL,KAAK,CAACK,MAAM;QACpBL,KAAK,EAAEA,KAAK,CAACA,KAAK;QAClBM,OAAO,EAAEN,KAAK,CAACM,OAAO;QACtBC,QAAQ,EAAE,KAAK;QACfC,KAAK,EAAE;UACHC,OAAO,EAAG,UAAST,KAAK,CAACA,KAAK,CAACC,KAAM,mBAAkB;UACvDS,IAAI,EAAE,iBAAiB;UACvBC,IAAI,EAAE;YACFX;UACJ;QACJ;MACJ,CAAC,CAAC;MACF;IACJ;IACA;AACR;AACA;IACQ,IAAIA,KAAK,CAACK,MAAM,KAAKO,sBAAe,CAACC,IAAI,IAAIb,KAAK,CAACQ,KAAK,EAAE;MACtDT,OAAO,CAACK,IAAI,CAAC;QACTC,MAAM,EAAEL,KAAK,CAACK,MAAM;QACpBL,KAAK,EAAEA,KAAK,CAACA,KAAK;QAClBM,OAAO,EAAEN,KAAK,CAACM,OAAO;QACtBC,QAAQ,EAAE,KAAK;QACfC,KAAK,EAAER,KAAK,CAACQ,KAAK,IAAI;UAClBC,OAAO,EAAE,mCAAmC;UAC5CC,IAAI,EAAE;QACV;MACJ,CAAC,CAAC;MACF;IACJ;IACA;AACR;AACA;IACQ,IAAIV,KAAK,CAACK,MAAM,KAAKO,sBAAe,CAACE,IAAI,EAAE;MACvCf,OAAO,CAACK,IAAI,CAAC;QACTC,MAAM,EAAEL,KAAK,CAACK,MAAM;QACpBL,KAAK,EAAEA,KAAK,CAACA,KAAK;QAClBM,OAAO,EAAEN,KAAK,CAACM,OAAO;QACtBC,QAAQ,EAAE;MACd,CAAC,CAAC;MACF;IACJ;;IAEA;AACR;AACA;IACQ;IACA,IAAIP,KAAK,CAACK,MAAM,KAAKO,sBAAe,CAACG,MAAM,EAAE;MACzC,IAAI;QACA,MAAMC,MAAM,GAAG,MAAMtB,OAAO,CAACG,GAAG,CAACoB,WAAW,CAACjB,KAAK,CAACA,KAAK,CAACkB,OAAO,EAAElB,KAAK,CAACA,KAAK,CAAC;QAC9ED,OAAO,CAACK,IAAI,CAAC;UACTC,MAAM,EAAEL,KAAK,CAACK,MAAM;UACpBL,KAAK,MAAAmB,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACEJ,MAAM;YACTf,KAAK,EAAEA,KAAK,CAACE;UAAE,EAClB;UACDG,OAAO,EAAEN,KAAK,CAACM,OAAO;UACtBC,QAAQ,EAAE;QACd,CAAC,CAAC;MACN,CAAC,CAAC,OAAOc,EAAE,EAAE;QACTtB,OAAO,CAACK,IAAI,CAAC;UACTC,MAAM,EAAEL,KAAK,CAACK,MAAM;UACpBL,KAAK,EAAEA,KAAK,CAACA,KAAK;UAClBO,QAAQ,EAAE,KAAK;UACfD,OAAO,EAAEN,KAAK,CAACM,OAAO;UACtBE,KAAK,EAAE;YACHC,OAAO,EAAEY,EAAE,CAACZ,OAAO;YACnBC,IAAI,EAAEW,EAAE,CAACX,IAAI,IAAI,oBAAoB;YACrCC,IAAI,MAAAQ,cAAA,CAAAC,OAAA;cACApB,KAAK,EAAEA,KAAK,CAACA;YAAK,GACfqB,EAAE,CAACV,IAAI;UAElB;QACJ,CAAC,CAAC;MACN;MACA;IACJ;IACA;AACR;AACA;IACQ,IAAI;MACA,MAAMK,MAAM,GAAG,MAAMtB,OAAO,CAACG,GAAG,CAACyB,WAAW,CAACtB,KAAK,CAACA,KAAK,CAAC;MACzDD,OAAO,CAACK,IAAI,CAAC;QACTC,MAAM,EAAEL,KAAK,CAACK,MAAM;QACpBL,KAAK,MAAAmB,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACEJ,MAAM;UACTf,KAAK,EAAEA,KAAK,CAACE;QAAE,EAClB;QACDG,OAAO,EAAEN,KAAK,CAACM,OAAO;QACtBC,QAAQ,EAAE;MACd,CAAC,CAAC;IACN,CAAC,CAAC,OAAOc,EAAE,EAAE;MACTtB,OAAO,CAACK,IAAI,CAAC;QACTC,MAAM,EAAEL,KAAK,CAACK,MAAM;QACpBL,KAAK,EAAEA,KAAK,CAACA,KAAK;QAClBO,QAAQ,EAAE,KAAK;QACfD,OAAO,EAAEN,KAAK,CAACM,OAAO;QACtBE,KAAK,EAAE;UACHC,OAAO,EAAEY,EAAE,CAACZ,OAAO;UACnBC,IAAI,EAAEW,EAAE,CAACX,IAAI,IAAI,oBAAoB;UACrCC,IAAI,MAAAQ,cAAA,CAAAC,OAAA;YACApB,KAAK,EAAEA,KAAK,CAACA;UAAK,GACfqB,EAAE,CAACV,IAAI;QAElB;MACJ,CAAC,CAAC;IACN;EACJ;EAEA,OAAOZ,OAAO;AAClB,CAAC;AAACwB,OAAA,CAAA/B,YAAA,GAAAA,YAAA"}
@@ -0,0 +1,8 @@
1
+ import { CmsGroup } from "../../../types";
2
+ import { ValidatedCmsGroupResult } from "../../types";
3
+ interface Params {
4
+ groups: Pick<CmsGroup, "id" | "slug" | "isPlugin">[];
5
+ input: Partial<CmsGroup>[];
6
+ }
7
+ export declare const validateGroups: (params: Params) => Promise<ValidatedCmsGroupResult[]>;
8
+ export {};
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateGroups = void 0;
7
+ var _validation = require("../../../crud/contentModelGroup/validation");
8
+ var _utils = require("@webiny/utils");
9
+ var _types = require("../../types");
10
+ const validateGroups = async params => {
11
+ const {
12
+ groups,
13
+ input
14
+ } = params;
15
+ const validation = (0, _validation.createGroupCreateValidation)();
16
+ return await Promise.all(input.map(async group => {
17
+ const result = await validation.safeParseAsync(group);
18
+ if (!result.success) {
19
+ const error = (0, _utils.createZodError)(result.error);
20
+ return {
21
+ group: group,
22
+ action: _types.CmsImportAction.NONE,
23
+ error: {
24
+ message: error.message,
25
+ code: error.code,
26
+ data: error.data
27
+ }
28
+ };
29
+ }
30
+ const data = result.data;
31
+ if (!data.id) {
32
+ return {
33
+ group: data,
34
+ action: _types.CmsImportAction.NONE,
35
+ error: {
36
+ message: `Group is missing ID.`,
37
+ code: "GROUP_ID_MISSING"
38
+ }
39
+ };
40
+ }
41
+ if (!data.slug) {
42
+ return {
43
+ group: data,
44
+ action: _types.CmsImportAction.NONE,
45
+ error: {
46
+ message: `Group is missing slug.`,
47
+ code: "GROUP_SLUG_MISSING"
48
+ }
49
+ };
50
+ }
51
+ const isPluginGroup = groups.some(g => {
52
+ if (!g.isPlugin) {
53
+ return false;
54
+ }
55
+ return g.id === data.id || g.slug === data.slug;
56
+ });
57
+ if (isPluginGroup) {
58
+ return {
59
+ group: data,
60
+ action: _types.CmsImportAction.CODE,
61
+ error: {
62
+ message: `Group already exists, but it is a plugin group - cannot be updated.`,
63
+ code: "GROUP_IS_PLUGIN"
64
+ }
65
+ };
66
+ }
67
+ const canBeUpdated = groups.some(g => {
68
+ return g.id === data.id && g.slug === data.slug;
69
+ });
70
+ if (canBeUpdated) {
71
+ return {
72
+ group: data,
73
+ action: _types.CmsImportAction.UPDATE
74
+ };
75
+ }
76
+ const groupWithIdExists = groups.some(g => g.id === data.id);
77
+ if (groupWithIdExists) {
78
+ return {
79
+ group: data,
80
+ action: _types.CmsImportAction.NONE,
81
+ error: {
82
+ message: `Group with ID "${data.id}" already exists. Cannot update it because the slug is different.`,
83
+ code: "GROUP_ID_EXISTS"
84
+ }
85
+ };
86
+ }
87
+ const groupWithSlugExists = groups.some(g => g.slug === data.slug);
88
+ if (groupWithSlugExists) {
89
+ return {
90
+ group: data,
91
+ action: _types.CmsImportAction.NONE,
92
+ error: {
93
+ message: `Group with slug "${data.slug}" already exists. Cannot update because the ID is different.`,
94
+ code: "GROUP_SLUG_EXISTS"
95
+ }
96
+ };
97
+ }
98
+ return {
99
+ group: data,
100
+ action: _types.CmsImportAction.CREATE
101
+ };
102
+ }));
103
+ };
104
+ exports.validateGroups = validateGroups;
105
+
106
+ //# sourceMappingURL=validateGroups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_validation","require","_utils","_types","validateGroups","params","groups","input","validation","createGroupCreateValidation","Promise","all","map","group","result","safeParseAsync","success","error","createZodError","action","CmsImportAction","NONE","message","code","data","id","slug","isPluginGroup","some","g","isPlugin","CODE","canBeUpdated","UPDATE","groupWithIdExists","groupWithSlugExists","CREATE","exports"],"sources":["validateGroups.ts"],"sourcesContent":["import { CmsGroup } from \"~/types\";\nimport { createGroupCreateValidation } from \"~/crud/contentModelGroup/validation\";\nimport { createZodError } from \"@webiny/utils\";\nimport { CmsImportAction, ValidatedCmsGroupResult } from \"~/export/types\";\n\ninterface Params {\n groups: Pick<CmsGroup, \"id\" | \"slug\" | \"isPlugin\">[];\n input: Partial<CmsGroup>[];\n}\n\nexport const validateGroups = async (params: Params): Promise<ValidatedCmsGroupResult[]> => {\n const { groups, input } = params;\n\n const validation = createGroupCreateValidation();\n\n return await Promise.all(\n input.map(async (group): Promise<ValidatedCmsGroupResult> => {\n const result = await validation.safeParseAsync(group);\n if (!result.success) {\n const error = createZodError(result.error);\n return {\n group: group as CmsGroup,\n action: CmsImportAction.NONE,\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n }\n };\n }\n const data = result.data as CmsGroup;\n if (!data.id) {\n return {\n group: data,\n action: CmsImportAction.NONE,\n error: {\n message: `Group is missing ID.`,\n code: \"GROUP_ID_MISSING\"\n }\n };\n }\n if (!data.slug) {\n return {\n group: data,\n action: CmsImportAction.NONE,\n error: {\n message: `Group is missing slug.`,\n code: \"GROUP_SLUG_MISSING\"\n }\n };\n }\n\n const isPluginGroup = groups.some(g => {\n if (!g.isPlugin) {\n return false;\n }\n return g.id === data.id || g.slug === data.slug;\n });\n if (isPluginGroup) {\n return {\n group: data,\n action: CmsImportAction.CODE,\n error: {\n message: `Group already exists, but it is a plugin group - cannot be updated.`,\n code: \"GROUP_IS_PLUGIN\"\n }\n };\n }\n\n const canBeUpdated = groups.some(g => {\n return g.id === data.id && g.slug === data.slug;\n });\n if (canBeUpdated) {\n return {\n group: data,\n action: CmsImportAction.UPDATE\n };\n }\n\n const groupWithIdExists = groups.some(g => g.id === data.id);\n if (groupWithIdExists) {\n return {\n group: data,\n action: CmsImportAction.NONE,\n error: {\n message: `Group with ID \"${data.id}\" already exists. Cannot update it because the slug is different.`,\n code: \"GROUP_ID_EXISTS\"\n }\n };\n }\n\n const groupWithSlugExists = groups.some(g => g.slug === data.slug);\n if (groupWithSlugExists) {\n return {\n group: data,\n action: CmsImportAction.NONE,\n error: {\n message: `Group with slug \"${data.slug}\" already exists. Cannot update because the ID is different.`,\n code: \"GROUP_SLUG_EXISTS\"\n }\n };\n }\n\n return {\n group: data,\n action: CmsImportAction.CREATE\n };\n })\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { CmsGroup, CmsModel } from "../../../types";
2
+ import { CmsImportStructureParamsData, ValidatedCmsGroupResult, ValidatedCmsModelResult } from "../../types";
3
+ interface Params {
4
+ groups: CmsGroup[];
5
+ models: CmsModel[];
6
+ data: CmsImportStructureParamsData;
7
+ }
8
+ interface ValidResponse {
9
+ groups: ValidatedCmsGroupResult[];
10
+ models: ValidatedCmsModelResult[];
11
+ error?: never;
12
+ }
13
+ interface InvalidResponse {
14
+ groups: ValidatedCmsGroupResult[];
15
+ models: ValidatedCmsModelResult[];
16
+ error?: string;
17
+ }
18
+ export declare const validateInput: (params: Params) => Promise<ValidResponse | InvalidResponse>;
19
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateInput = void 0;
7
+ var _validateGroups = require("./validateGroups");
8
+ var _validateModels = require("./validateModels");
9
+ const validateInput = async params => {
10
+ const {
11
+ groups,
12
+ models,
13
+ data
14
+ } = params;
15
+ const validatedGroups = await (0, _validateGroups.validateGroups)({
16
+ groups,
17
+ input: data.groups
18
+ });
19
+ const ids = validatedGroups.map(data => {
20
+ var _data$group, _data$group2;
21
+ if (!((_data$group = data.group) !== null && _data$group !== void 0 && _data$group.id)) {
22
+ return null;
23
+ }
24
+ return {
25
+ id: (_data$group2 = data.group) === null || _data$group2 === void 0 ? void 0 : _data$group2.id
26
+ };
27
+ }).filter(Boolean);
28
+ const validatedModels = await (0, _validateModels.validateModels)({
29
+ groups: groups.map(g => ({
30
+ id: g.id
31
+ })).concat(ids),
32
+ models,
33
+ input: data.models
34
+ });
35
+ if (validatedModels.length === 0) {
36
+ return {
37
+ groups: validatedGroups,
38
+ models: validatedModels,
39
+ error: "No models to import."
40
+ };
41
+ }
42
+ return {
43
+ groups: validatedGroups,
44
+ models: validatedModels
45
+ };
46
+ };
47
+ exports.validateInput = validateInput;
48
+
49
+ //# sourceMappingURL=validateInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_validateGroups","require","_validateModels","validateInput","params","groups","models","data","validatedGroups","validateGroups","input","ids","map","_data$group","_data$group2","group","id","filter","Boolean","validatedModels","validateModels","g","concat","length","error","exports"],"sources":["validateInput.ts"],"sourcesContent":["import { CmsGroup, CmsModel } from \"~/types\";\nimport {\n CmsImportStructureParamsData,\n ValidatedCmsGroupResult,\n ValidatedCmsModelResult\n} from \"~/export/types\";\nimport { validateGroups } from \"~/export/crud/imports/validateGroups\";\nimport { validateModels } from \"~/export/crud/imports/validateModels\";\n\ninterface Params {\n groups: CmsGroup[];\n models: CmsModel[];\n data: CmsImportStructureParamsData;\n}\n\ninterface ValidResponse {\n groups: ValidatedCmsGroupResult[];\n models: ValidatedCmsModelResult[];\n error?: never;\n}\n\ninterface InvalidResponse {\n groups: ValidatedCmsGroupResult[];\n models: ValidatedCmsModelResult[];\n error?: string;\n}\n\nexport const validateInput = async (params: Params): Promise<ValidResponse | InvalidResponse> => {\n const { groups, models, data } = params;\n\n const validatedGroups = await validateGroups({\n groups,\n input: data.groups\n });\n\n const ids = validatedGroups\n .map(data => {\n if (!data.group?.id) {\n return null;\n }\n return {\n id: data.group?.id\n };\n })\n .filter(Boolean) as Pick<CmsGroup, \"id\">[];\n\n const validatedModels = await validateModels({\n groups: groups.map(g => ({ id: g.id })).concat(ids),\n models,\n input: data.models\n });\n if (validatedModels.length === 0) {\n return {\n groups: validatedGroups,\n models: validatedModels,\n error: \"No models to import.\"\n };\n }\n return {\n groups: validatedGroups,\n models: validatedModels\n };\n};\n"],"mappings":";;;;;;AAMA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAoBO,MAAME,aAAa,GAAG,MAAOC,MAAc,IAA+C;EAC7F,MAAM;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAGH,MAAM;EAEvC,MAAMI,eAAe,GAAG,MAAM,IAAAC,8BAAc,EAAC;IACzCJ,MAAM;IACNK,KAAK,EAAEH,IAAI,CAACF;EAChB,CAAC,CAAC;EAEF,MAAMM,GAAG,GAAGH,eAAe,CACtBI,GAAG,CAACL,IAAI,IAAI;IAAA,IAAAM,WAAA,EAAAC,YAAA;IACT,IAAI,GAAAD,WAAA,GAACN,IAAI,CAACQ,KAAK,cAAAF,WAAA,eAAVA,WAAA,CAAYG,EAAE,GAAE;MACjB,OAAO,IAAI;IACf;IACA,OAAO;MACHA,EAAE,GAAAF,YAAA,GAAEP,IAAI,CAACQ,KAAK,cAAAD,YAAA,uBAAVA,YAAA,CAAYE;IACpB,CAAC;EACL,CAAC,CAAC,CACDC,MAAM,CAACC,OAAO,CAA2B;EAE9C,MAAMC,eAAe,GAAG,MAAM,IAAAC,8BAAc,EAAC;IACzCf,MAAM,EAAEA,MAAM,CAACO,GAAG,CAACS,CAAC,KAAK;MAAEL,EAAE,EAAEK,CAAC,CAACL;IAAG,CAAC,CAAC,CAAC,CAACM,MAAM,CAACX,GAAG,CAAC;IACnDL,MAAM;IACNI,KAAK,EAAEH,IAAI,CAACD;EAChB,CAAC,CAAC;EACF,IAAIa,eAAe,CAACI,MAAM,KAAK,CAAC,EAAE;IAC9B,OAAO;MACHlB,MAAM,EAAEG,eAAe;MACvBF,MAAM,EAAEa,eAAe;MACvBK,KAAK,EAAE;IACX,CAAC;EACL;EACA,OAAO;IACHnB,MAAM,EAAEG,eAAe;IACvBF,MAAM,EAAEa;EACZ,CAAC;AACL,CAAC;AAACM,OAAA,CAAAtB,aAAA,GAAAA,aAAA"}
@@ -0,0 +1,9 @@
1
+ import { HeadlessCmsImportStructureParamsDataModel, ValidatedCmsModelResult } from "../../types";
2
+ import { CmsGroup, CmsModel } from "../../../types";
3
+ interface Params {
4
+ groups: Pick<CmsGroup, "id">[];
5
+ models: CmsModel[];
6
+ input: HeadlessCmsImportStructureParamsDataModel[];
7
+ }
8
+ export declare const validateModels: (params: Params) => Promise<ValidatedCmsModelResult[]>;
9
+ export {};