@webiny/api-headless-cms 0.0.0-unstable.d16f688daf → 0.0.0-unstable.d65ec29d44

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 (322) hide show
  1. package/context.d.ts +5 -2
  2. package/context.js +53 -19
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/afterDelete.js +0 -5
  5. package/crud/contentEntry/afterDelete.js.map +1 -1
  6. package/crud/contentEntry/beforeCreate.js +0 -3
  7. package/crud/contentEntry/beforeCreate.js.map +1 -1
  8. package/crud/contentEntry/beforeUpdate.js +0 -3
  9. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  10. package/crud/contentEntry/entryDataValidation.js +1 -40
  11. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  12. package/crud/contentEntry/markLockedFields.js +12 -28
  13. package/crud/contentEntry/markLockedFields.js.map +1 -1
  14. package/crud/contentEntry/referenceFieldsMapping.js +5 -61
  15. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  16. package/crud/contentEntry/searchableFields.js +1 -12
  17. package/crud/contentEntry/searchableFields.js.map +1 -1
  18. package/crud/contentEntry.crud.js +72 -155
  19. package/crud/contentEntry.crud.js.map +1 -1
  20. package/crud/contentModel/afterCreate.js +0 -2
  21. package/crud/contentModel/afterCreate.js.map +1 -1
  22. package/crud/contentModel/afterCreateFrom.js +0 -2
  23. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  24. package/crud/contentModel/afterDelete.js +0 -2
  25. package/crud/contentModel/afterDelete.js.map +1 -1
  26. package/crud/contentModel/afterUpdate.js +0 -2
  27. package/crud/contentModel/afterUpdate.js.map +1 -1
  28. package/crud/contentModel/beforeCreate.d.ts +2 -3
  29. package/crud/contentModel/beforeCreate.js +7 -36
  30. package/crud/contentModel/beforeCreate.js.map +1 -1
  31. package/crud/contentModel/beforeDelete.js +0 -10
  32. package/crud/contentModel/beforeDelete.js.map +1 -1
  33. package/crud/contentModel/beforeUpdate.d.ts +2 -4
  34. package/crud/contentModel/beforeUpdate.js +2 -7
  35. package/crud/contentModel/beforeUpdate.js.map +1 -1
  36. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  37. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  38. package/crud/contentModel/createFieldStorageId.js +0 -3
  39. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  40. package/crud/contentModel/systemFields.js.map +1 -1
  41. package/crud/contentModel/validateLayout.js +0 -8
  42. package/crud/contentModel/validateLayout.js.map +1 -1
  43. package/crud/contentModel/validateModel.d.ts +3 -4
  44. package/crud/contentModel/validateModel.js +6 -11
  45. package/crud/contentModel/validateModel.js.map +1 -1
  46. package/crud/contentModel/validateModelFields.d.ts +3 -4
  47. package/crud/contentModel/validateModelFields.js +84 -75
  48. package/crud/contentModel/validateModelFields.js.map +1 -1
  49. package/crud/contentModel/validation.d.ts +477 -0
  50. package/crud/contentModel/validation.js +97 -0
  51. package/crud/contentModel/validation.js.map +1 -0
  52. package/crud/contentModel.crud.js +63 -158
  53. package/crud/contentModel.crud.js.map +1 -1
  54. package/crud/contentModelGroup/beforeCreate.js +0 -12
  55. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  56. package/crud/contentModelGroup/beforeDelete.js +0 -8
  57. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  58. package/crud/contentModelGroup/beforeUpdate.js +0 -5
  59. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  60. package/crud/contentModelGroup/validation.d.ts +30 -0
  61. package/crud/contentModelGroup/validation.js +34 -0
  62. package/crud/contentModelGroup/validation.js.map +1 -0
  63. package/crud/contentModelGroup.crud.js +21 -93
  64. package/crud/contentModelGroup.crud.js.map +1 -1
  65. package/crud/settings.crud.js +0 -12
  66. package/crud/settings.crud.js.map +1 -1
  67. package/crud/system.crud.js +2 -37
  68. package/crud/system.crud.js.map +1 -1
  69. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
  70. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  71. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +0 -36
  72. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  73. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
  74. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  75. package/fieldConverters/index.js +0 -5
  76. package/fieldConverters/index.js.map +1 -1
  77. package/graphql/buildSchemaPlugins.d.ts +8 -3
  78. package/graphql/buildSchemaPlugins.js +6 -14
  79. package/graphql/buildSchemaPlugins.js.map +1 -1
  80. package/graphql/createExecutableSchema.d.ts +7 -0
  81. package/graphql/createExecutableSchema.js +29 -0
  82. package/graphql/createExecutableSchema.js.map +1 -0
  83. package/graphql/generateSchema.d.ts +8 -0
  84. package/graphql/generateSchema.js +31 -0
  85. package/graphql/generateSchema.js.map +1 -0
  86. package/graphql/graphQLHandlerFactory.js +69 -97
  87. package/graphql/graphQLHandlerFactory.js.map +1 -1
  88. package/graphql/index.d.ts +1 -3
  89. package/graphql/index.js +2 -46
  90. package/graphql/index.js.map +1 -1
  91. package/graphql/schema/baseContentSchema.d.ts +6 -2
  92. package/graphql/schema/baseContentSchema.js +8 -12
  93. package/graphql/schema/baseContentSchema.js.map +1 -1
  94. package/graphql/schema/baseSchema.d.ts +3 -0
  95. package/graphql/schema/baseSchema.js +53 -0
  96. package/graphql/schema/baseSchema.js.map +1 -0
  97. package/graphql/schema/contentEntries.d.ts +6 -2
  98. package/graphql/schema/contentEntries.js +39 -65
  99. package/graphql/schema/contentEntries.js.map +1 -1
  100. package/graphql/schema/contentModelGroups.d.ts +6 -2
  101. package/graphql/schema/contentModelGroups.js +9 -22
  102. package/graphql/schema/contentModelGroups.js.map +1 -1
  103. package/graphql/schema/contentModels.d.ts +6 -2
  104. package/graphql/schema/contentModels.js +21 -23
  105. package/graphql/schema/contentModels.js.map +1 -1
  106. package/graphql/schema/createFieldResolvers.js +13 -24
  107. package/graphql/schema/createFieldResolvers.js.map +1 -1
  108. package/graphql/schema/createManageResolvers.js +0 -26
  109. package/graphql/schema/createManageResolvers.js.map +1 -1
  110. package/graphql/schema/createManageSDL.d.ts +2 -0
  111. package/graphql/schema/createManageSDL.js +6 -16
  112. package/graphql/schema/createManageSDL.js.map +1 -1
  113. package/graphql/schema/createPreviewResolvers.js +0 -10
  114. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  115. package/graphql/schema/createReadResolvers.js +5 -10
  116. package/graphql/schema/createReadResolvers.js.map +1 -1
  117. package/graphql/schema/createReadSDL.d.ts +2 -0
  118. package/graphql/schema/createReadSDL.js +6 -12
  119. package/graphql/schema/createReadSDL.js.map +1 -1
  120. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -2
  121. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  122. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  123. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  124. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  125. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  126. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  127. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  128. package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
  129. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  130. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  131. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  132. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  133. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  134. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  135. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  136. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  137. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  138. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  139. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  140. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  141. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  142. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  143. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  144. package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
  145. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  146. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  147. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  148. package/graphql/schema/resolvers/read/resolveGet.js +0 -8
  149. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  150. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  151. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  152. package/graphql/schema/schemaPlugins.d.ts +8 -3
  153. package/graphql/schema/schemaPlugins.js +63 -65
  154. package/graphql/schema/schemaPlugins.js.map +1 -1
  155. package/graphql/system.js +69 -85
  156. package/graphql/system.js.map +1 -1
  157. package/graphqlFields/boolean.js +0 -12
  158. package/graphqlFields/boolean.js.map +1 -1
  159. package/graphqlFields/datetime.js +0 -17
  160. package/graphqlFields/datetime.js.map +1 -1
  161. package/graphqlFields/dynamicZone/dynamicZoneField.js +3 -29
  162. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  163. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
  164. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  165. package/graphqlFields/dynamicZone/index.js +0 -2
  166. package/graphqlFields/dynamicZone/index.js.map +1 -1
  167. package/graphqlFields/file.js +0 -8
  168. package/graphqlFields/file.js.map +1 -1
  169. package/graphqlFields/helpers.js +0 -10
  170. package/graphqlFields/helpers.js.map +1 -1
  171. package/graphqlFields/index.js +0 -12
  172. package/graphqlFields/index.js.map +1 -1
  173. package/graphqlFields/longText.js +0 -10
  174. package/graphqlFields/longText.js.map +1 -1
  175. package/graphqlFields/number.js +0 -12
  176. package/graphqlFields/number.js.map +1 -1
  177. package/graphqlFields/object.js +1 -37
  178. package/graphqlFields/object.js.map +1 -1
  179. package/graphqlFields/ref.js +23 -53
  180. package/graphqlFields/ref.js.map +1 -1
  181. package/graphqlFields/richText.js +0 -9
  182. package/graphqlFields/richText.js.map +1 -1
  183. package/graphqlFields/text.js +0 -11
  184. package/graphqlFields/text.js.map +1 -1
  185. package/index.d.ts +3 -3
  186. package/index.js +2 -27
  187. package/index.js.map +1 -1
  188. package/modelManager/DefaultCmsModelManager.js +0 -16
  189. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  190. package/modelManager/index.js +0 -4
  191. package/modelManager/index.js.map +1 -1
  192. package/package.json +27 -28
  193. package/parameters/context.js +0 -4
  194. package/parameters/context.js.map +1 -1
  195. package/parameters/header.js +0 -11
  196. package/parameters/header.js.map +1 -1
  197. package/parameters/index.js +0 -8
  198. package/parameters/index.js.map +1 -1
  199. package/parameters/manual.js +1 -8
  200. package/parameters/manual.js.map +1 -1
  201. package/parameters/path.js +0 -11
  202. package/parameters/path.js.map +1 -1
  203. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  204. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  205. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  206. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  207. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  208. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  209. package/plugins/CmsGroupPlugin.js +0 -8
  210. package/plugins/CmsGroupPlugin.js.map +1 -1
  211. package/plugins/CmsModelFieldConverterPlugin.js +0 -5
  212. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  213. package/plugins/CmsModelPlugin.js +2 -38
  214. package/plugins/CmsModelPlugin.js.map +1 -1
  215. package/plugins/CmsParametersPlugin.js +0 -7
  216. package/plugins/CmsParametersPlugin.js.map +1 -1
  217. package/plugins/StorageTransformPlugin.js +0 -9
  218. package/plugins/StorageTransformPlugin.js.map +1 -1
  219. package/plugins/index.d.ts +2 -0
  220. package/plugins/index.js +22 -10
  221. package/plugins/index.js.map +1 -1
  222. package/storage/default.js +0 -3
  223. package/storage/default.js.map +1 -1
  224. package/storage/object.js +0 -19
  225. package/storage/object.js.map +1 -1
  226. package/types.d.ts +56 -15
  227. package/types.js +22 -72
  228. package/types.js.map +1 -1
  229. package/upgrades/5.33.0/index.js +3 -26
  230. package/upgrades/5.33.0/index.js.map +1 -1
  231. package/upgrades/index.js +0 -3
  232. package/upgrades/index.js.map +1 -1
  233. package/utils/access.js +11 -25
  234. package/utils/access.js.map +1 -1
  235. package/utils/converters/Converter.js +0 -13
  236. package/utils/converters/Converter.js.map +1 -1
  237. package/utils/converters/ConverterCollection.js +9 -33
  238. package/utils/converters/ConverterCollection.js.map +1 -1
  239. package/utils/converters/valueKeyStorageConverter.js +0 -26
  240. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  241. package/utils/createTypeFromFields.js +4 -15
  242. package/utils/createTypeFromFields.js.map +1 -1
  243. package/utils/createTypeName.js +0 -9
  244. package/utils/createTypeName.js.map +1 -1
  245. package/utils/entryStorage.js +10 -26
  246. package/utils/entryStorage.js.map +1 -1
  247. package/utils/filterAsync.js +0 -5
  248. package/utils/filterAsync.js.map +1 -1
  249. package/utils/getBaseFieldType.js +0 -2
  250. package/utils/getBaseFieldType.js.map +1 -1
  251. package/utils/getEntryTitle.js +0 -9
  252. package/utils/getEntryTitle.js.map +1 -1
  253. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  254. package/utils/getSchemaFromFieldPlugins.js +23 -19
  255. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  256. package/utils/ownership.js +0 -8
  257. package/utils/ownership.js.map +1 -1
  258. package/utils/permissions.js +8 -23
  259. package/utils/permissions.js.map +1 -1
  260. package/utils/pluralizedTypeName.js +0 -6
  261. package/utils/pluralizedTypeName.js.map +1 -1
  262. package/utils/renderFields.js +0 -9
  263. package/utils/renderFields.js.map +1 -1
  264. package/utils/renderGetFilterFields.js +0 -13
  265. package/utils/renderGetFilterFields.js.map +1 -1
  266. package/utils/renderInputFields.js +0 -9
  267. package/utils/renderInputFields.js.map +1 -1
  268. package/utils/renderListFilterFields.js +1 -10
  269. package/utils/renderListFilterFields.js.map +1 -1
  270. package/utils/renderSortEnum.d.ts +7 -4
  271. package/utils/renderSortEnum.js +19 -11
  272. package/utils/renderSortEnum.js.map +1 -1
  273. package/utils/toSlug.js +0 -4
  274. package/utils/toSlug.js.map +1 -1
  275. package/validators/dateGte.js +0 -7
  276. package/validators/dateGte.js.map +1 -1
  277. package/validators/dateLte.js +0 -7
  278. package/validators/dateLte.js.map +1 -1
  279. package/validators/dynamicZone.js +0 -4
  280. package/validators/dynamicZone.js.map +1 -1
  281. package/validators/gte.js +0 -8
  282. package/validators/gte.js.map +1 -1
  283. package/validators/in.js +0 -8
  284. package/validators/in.js.map +1 -1
  285. package/validators/index.js +0 -16
  286. package/validators/index.js.map +1 -1
  287. package/validators/lte.js +0 -8
  288. package/validators/lte.js.map +1 -1
  289. package/validators/maxLength.js +0 -8
  290. package/validators/maxLength.js.map +1 -1
  291. package/validators/minLength.js +0 -8
  292. package/validators/minLength.js.map +1 -1
  293. package/validators/pattern.js +0 -9
  294. package/validators/pattern.js.map +1 -1
  295. package/validators/patternPlugins/email.js +0 -2
  296. package/validators/patternPlugins/email.js.map +1 -1
  297. package/validators/patternPlugins/index.js +0 -8
  298. package/validators/patternPlugins/index.js.map +1 -1
  299. package/validators/patternPlugins/lowerCase.js +0 -2
  300. package/validators/patternPlugins/lowerCase.js.map +1 -1
  301. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  302. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  303. package/validators/patternPlugins/upperCase.js +0 -2
  304. package/validators/patternPlugins/upperCase.js.map +1 -1
  305. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  306. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  307. package/validators/patternPlugins/url.js +0 -2
  308. package/validators/patternPlugins/url.js.map +1 -1
  309. package/validators/required.js +0 -5
  310. package/validators/required.js.map +1 -1
  311. package/validators/timeGte.js +0 -8
  312. package/validators/timeGte.js.map +1 -1
  313. package/validators/timeLte.js +0 -8
  314. package/validators/timeLte.js.map +1 -1
  315. package/validators/unique.js +0 -7
  316. package/validators/unique.js.map +1 -1
  317. package/crud/index.d.ts +0 -6
  318. package/crud/index.js +0 -85
  319. package/crud/index.js.map +0 -1
  320. package/utils/filterModelFields.d.ts +0 -16
  321. package/utils/filterModelFields.js +0 -77
  322. package/utils/filterModelFields.js.map +0 -1
@@ -1,78 +1,29 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createModelGroupsCrud = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _fields = require("@commodo/fields");
13
-
14
- var _validation = require("@webiny/validation");
15
-
16
9
  var _mdbid = _interopRequireDefault(require("mdbid"));
17
-
18
10
  var _handlerGraphql = require("@webiny/handler-graphql");
19
-
20
11
  var _error = _interopRequireDefault(require("@webiny/error"));
21
-
22
12
  var _CmsGroupPlugin = require("../plugins/CmsGroupPlugin");
23
-
24
13
  var _pubsub = require("@webiny/pubsub");
25
-
26
14
  var _beforeUpdate = require("./contentModelGroup/beforeUpdate");
27
-
28
15
  var _beforeCreate = require("./contentModelGroup/beforeCreate");
29
-
30
16
  var _beforeDelete = require("./contentModelGroup/beforeDelete");
31
-
32
17
  var _dataloader = _interopRequireDefault(require("dataloader"));
33
-
34
18
  var _permissions = require("../utils/permissions");
35
-
36
19
  var _ownership = require("../utils/ownership");
37
-
38
20
  var _access = require("../utils/access");
39
-
40
- var _toSlug = require("../utils/toSlug");
41
-
42
- /**
43
- * Package @commodo/fields does not have types.
44
- */
45
- // @ts-ignore
46
-
21
+ var _validation = require("./contentModelGroup/validation");
22
+ var _utils = require("@webiny/utils");
47
23
  /**
48
24
  * Package mdbid does not have types.
49
25
  */
50
26
  // @ts-ignore
51
- const CreateContentModelGroupModel = (0, _fields.withFields)({
52
- name: (0, _fields.string)({
53
- validation: _validation.validation.create("required,maxLength:100")
54
- }),
55
- slug: (0, _fields.string)({
56
- validation: _validation.validation.create("maxLength:100")
57
- }),
58
- description: (0, _fields.string)({
59
- validation: _validation.validation.create("maxLength:255")
60
- }),
61
- icon: (0, _fields.string)({
62
- validation: _validation.validation.create("required,maxLength:255")
63
- })
64
- })();
65
- const UpdateContentModelGroupModel = (0, _fields.withFields)({
66
- name: (0, _fields.string)({
67
- validation: _validation.validation.create("maxLength:100")
68
- }),
69
- description: (0, _fields.string)({
70
- validation: _validation.validation.create("maxLength:255")
71
- }),
72
- icon: (0, _fields.string)({
73
- validation: _validation.validation.create("maxLength:255")
74
- })
75
- })();
76
27
 
77
28
  const createModelGroupsCrud = params => {
78
29
  const {
@@ -101,13 +52,11 @@ const createModelGroupsCrud = params => {
101
52
  return [groups.concat(pluginsGroups)];
102
53
  })
103
54
  };
104
-
105
55
  const clearGroupsCache = () => {
106
56
  for (const loader of Object.values(dataLoaders)) {
107
57
  loader.clearAll();
108
58
  }
109
59
  };
110
-
111
60
  const getGroupsAsPlugins = () => {
112
61
  const tenant = getTenant().id;
113
62
  const locale = getLocale().code;
@@ -115,19 +64,16 @@ const createModelGroupsCrud = params => {
115
64
  /**
116
65
  * We need to filter out groups that are not for this tenant or locale.
117
66
  * If it does not have tenant or locale define, it is for every locale and tenant
118
- */
119
- .filter(plugin => {
67
+ */.filter(plugin => {
120
68
  const {
121
69
  tenant: t,
122
70
  locale: l
123
71
  } = plugin.contentModelGroup;
124
-
125
72
  if (t && t !== tenant) {
126
73
  return false;
127
74
  } else if (l && l !== locale) {
128
75
  return false;
129
76
  }
130
-
131
77
  return true;
132
78
  }).map(plugin => {
133
79
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugin.contentModelGroup), {}, {
@@ -137,29 +83,23 @@ const createModelGroupsCrud = params => {
137
83
  });
138
84
  });
139
85
  };
140
-
141
86
  const checkPermissions = check => {
142
87
  return (0, _permissions.checkPermissions)(context, "cms.contentModelGroup", {
143
88
  rwd: check
144
89
  });
145
90
  };
146
-
147
91
  const groupsGet = async id => {
148
92
  const groups = await dataLoaders.listGroups.load("listGroups");
149
93
  const group = groups.find(g => g.id === id);
150
-
151
94
  if (!group) {
152
95
  throw new _handlerGraphql.NotFoundError(`Cms Group "${id}" was not found!`);
153
96
  }
154
-
155
97
  return group;
156
98
  };
157
-
158
99
  const groupsList = async params => {
159
100
  const {
160
101
  where
161
102
  } = params || {};
162
-
163
103
  try {
164
104
  return await dataLoaders.listGroups.load("listGroups");
165
105
  } catch (ex) {
@@ -168,32 +108,29 @@ const createModelGroupsCrud = params => {
168
108
  }));
169
109
  }
170
110
  };
111
+
171
112
  /**
172
113
  * Create
173
114
  */
174
-
175
-
176
115
  const onGroupBeforeCreate = (0, _pubsub.createTopic)("cms.onGroupBeforeCreate");
177
116
  const onGroupAfterCreate = (0, _pubsub.createTopic)("cms.onGroupAfterCreate");
178
117
  const onGroupCreateError = (0, _pubsub.createTopic)("cms.onGroupCreateError");
179
118
  /**
180
119
  * Update
181
120
  */
182
-
183
121
  const onGroupBeforeUpdate = (0, _pubsub.createTopic)("cms.onGroupBeforeUpdate");
184
122
  const onGroupAfterUpdate = (0, _pubsub.createTopic)("cms.onGroupAfterUpdate");
185
123
  const onGroupUpdateError = (0, _pubsub.createTopic)("cms.onGroupUpdateError");
186
124
  /**
187
125
  * Delete
188
126
  */
189
-
190
127
  const onGroupBeforeDelete = (0, _pubsub.createTopic)("cms.onGroupBeforeDelete");
191
128
  const onGroupAfterDelete = (0, _pubsub.createTopic)("cms.onGroupAfterDelete");
192
129
  const onGroupDeleteError = (0, _pubsub.createTopic)("cms.onGroupDeleteError");
130
+
193
131
  /**
194
132
  * We need to assign some default behaviors.
195
133
  */
196
-
197
134
  (0, _beforeCreate.assignBeforeGroupCreate)({
198
135
  onGroupBeforeCreate,
199
136
  plugins: context.plugins,
@@ -218,7 +155,6 @@ const createModelGroupsCrud = params => {
218
155
  onAfterGroupUpdate: onGroupAfterUpdate,
219
156
  onBeforeGroupDelete: onGroupBeforeDelete,
220
157
  onAfterGroupDelete: onGroupAfterDelete,
221
-
222
158
  /**
223
159
  * Released in 5.34.0
224
160
  */
@@ -258,21 +194,19 @@ const createModelGroupsCrud = params => {
258
194
  if (!(0, _ownership.validateOwnership)(context, permission, group)) {
259
195
  return false;
260
196
  }
261
-
262
197
  return (0, _access.validateGroupAccess)(context, permission, group);
263
198
  });
264
199
  },
265
- createGroup: async inputData => {
200
+ createGroup: async input => {
266
201
  await checkPermissions("w");
267
- const createdData = new CreateContentModelGroupModel().populate((0, _objectSpread2.default)((0, _objectSpread2.default)({}, inputData), {}, {
268
- slug: inputData.slug ? (0, _toSlug.toSlug)(inputData.slug) : "",
269
- description: inputData.description || ""
270
- }));
271
- await createdData.validate();
272
- const input = await createdData.toJSON();
202
+ const result = await (0, _validation.createGroupCreateValidation)().safeParseAsync(input);
203
+ if (!result.success) {
204
+ throw (0, _utils.createZodError)(result.error);
205
+ }
206
+ const data = result.data;
273
207
  const identity = getIdentity();
274
208
  const id = (0, _mdbid.default)();
275
- const group = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
209
+ const group = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
276
210
  id,
277
211
  tenant: getTenant().id,
278
212
  locale: getLocale().code,
@@ -285,7 +219,6 @@ const createModelGroupsCrud = params => {
285
219
  },
286
220
  webinyVersion: context.WEBINY_VERSION
287
221
  });
288
-
289
222
  try {
290
223
  await onGroupBeforeCreate.publish({
291
224
  group
@@ -310,29 +243,27 @@ const createModelGroupsCrud = params => {
310
243
  }));
311
244
  }
312
245
  },
313
- updateGroup: async (id, inputData) => {
246
+ updateGroup: async (id, input) => {
314
247
  const permission = await checkPermissions("w");
315
248
  const original = await groupsGet(id);
316
249
  (0, _ownership.checkOwnership)(context, permission, original);
317
- const input = new UpdateContentModelGroupModel().populate(inputData);
318
- await input.validate();
319
- const updatedDataJson = await input.toJSON({
320
- onlyDirty: true
321
- });
250
+ const result = await (0, _validation.createGroupUpdateValidation)().safeParseAsync(input);
251
+ if (!result.success) {
252
+ throw (0, _utils.createZodError)(result.error);
253
+ }
254
+ const data = result.data;
255
+
322
256
  /**
323
257
  * No need to continue if no values were changed
324
258
  */
325
-
326
- if (Object.keys(updatedDataJson).length === 0) {
259
+ if (Object.keys(data).length === 0) {
327
260
  return original;
328
261
  }
329
-
330
- const group = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), updatedDataJson), {}, {
262
+ const group = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data), {}, {
331
263
  locale: getLocale().code,
332
264
  tenant: getTenant().id,
333
265
  savedOn: new Date().toISOString()
334
266
  });
335
-
336
267
  try {
337
268
  await onGroupBeforeUpdate.publish({
338
269
  original,
@@ -366,7 +297,6 @@ const createModelGroupsCrud = params => {
366
297
  const permission = await checkPermissions("d");
367
298
  const group = await groupsGet(id);
368
299
  (0, _ownership.checkOwnership)(context, permission, group);
369
-
370
300
  try {
371
301
  await onGroupBeforeDelete.publish({
372
302
  group
@@ -387,10 +317,8 @@ const createModelGroupsCrud = params => {
387
317
  id
388
318
  }));
389
319
  }
390
-
391
320
  return true;
392
321
  }
393
322
  };
394
323
  };
395
-
396
324
  exports.createModelGroupsCrud = createModelGroupsCrud;
@@ -1 +1 @@
1
- {"version":3,"names":["CreateContentModelGroupModel","withFields","name","string","validation","create","slug","description","icon","UpdateContentModelGroupModel","createModelGroupsCrud","params","getTenant","getIdentity","getLocale","storageOperations","context","dataLoaders","listGroups","DataLoader","tenant","id","locale","code","pluginsGroups","getGroupsAsPlugins","map","group","groups","list","where","concat","clearGroupsCache","loader","Object","values","clearAll","plugins","byType","CmsGroupPlugin","type","filter","plugin","t","l","contentModelGroup","webinyVersion","WEBINY_VERSION","checkPermissions","check","baseCheckPermissions","rwd","groupsGet","load","find","g","NotFoundError","groupsList","ex","WebinyError","message","data","onGroupBeforeCreate","createTopic","onGroupAfterCreate","onGroupCreateError","onGroupBeforeUpdate","onGroupAfterUpdate","onGroupUpdateError","onGroupBeforeDelete","onGroupAfterDelete","onGroupDeleteError","assignBeforeGroupCreate","assignBeforeGroupUpdate","assignBeforeGroupDelete","onBeforeGroupCreate","onAfterGroupCreate","onBeforeGroupUpdate","onAfterGroupUpdate","onBeforeGroupDelete","onAfterGroupDelete","getGroup","permission","checkOwnership","validateGroupAccess","response","validateOwnership","createGroup","inputData","createdData","populate","toSlug","validate","input","toJSON","identity","mdbid","createdOn","Date","toISOString","savedOn","createdBy","displayName","publish","result","error","updateGroup","original","updatedDataJson","onlyDirty","keys","length","updatedGroup","update","deleteGroup","delete"],"sources":["contentModelGroup.crud.ts"],"sourcesContent":["/**\n * Package @commodo/fields does not have types.\n */\n// @ts-ignore\nimport { withFields, string } from \"@commodo/fields\";\nimport { validation } from \"@webiny/validation\";\n/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\nimport {\n CmsGroupContext,\n CmsGroupListParams,\n CmsGroupPermission,\n CmsGroup,\n CmsContext,\n HeadlessCmsStorageOperations,\n CmsGroupCreateInput,\n OnGroupBeforeCreateTopicParams,\n OnGroupAfterCreateTopicParams,\n OnGroupBeforeUpdateTopicParams,\n OnGroupAfterUpdateTopicParams,\n OnGroupBeforeDeleteTopicParams,\n OnGroupAfterDeleteTopicParams,\n OnGroupCreateErrorTopicParams,\n OnGroupUpdateErrorTopicParams,\n OnGroupDeleteErrorTopicParams\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport WebinyError from \"@webiny/error\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignBeforeGroupUpdate } from \"./contentModelGroup/beforeUpdate\";\nimport { assignBeforeGroupCreate } from \"./contentModelGroup/beforeCreate\";\nimport { assignBeforeGroupDelete } from \"./contentModelGroup/beforeDelete\";\nimport DataLoader from \"dataloader\";\nimport { checkPermissions as baseCheckPermissions } from \"~/utils/permissions\";\nimport { checkOwnership, validateOwnership } from \"~/utils/ownership\";\nimport { validateGroupAccess } from \"~/utils/access\";\nimport { toSlug } from \"~/utils/toSlug\";\n\nconst CreateContentModelGroupModel = withFields({\n name: string({ validation: validation.create(\"required,maxLength:100\") }),\n slug: string({ validation: validation.create(\"maxLength:100\") }),\n description: string({ validation: validation.create(\"maxLength:255\") }),\n icon: string({ validation: validation.create(\"required,maxLength:255\") })\n})();\n\nconst UpdateContentModelGroupModel = withFields({\n name: string({ validation: validation.create(\"maxLength:100\") }),\n description: string({ validation: validation.create(\"maxLength:255\") }),\n icon: string({ validation: validation.create(\"maxLength:255\") })\n})();\n\nexport interface CreateModelGroupsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\nexport const createModelGroupsCrud = (params: CreateModelGroupsCrudParams): CmsGroupContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, context } = params;\n\n const dataLoaders = {\n listGroups: new DataLoader(async () => {\n const tenant = getTenant().id;\n const locale = getLocale().code;\n\n const pluginsGroups = getGroupsAsPlugins().map(group => {\n return {\n ...group,\n tenant: group.tenant || tenant,\n locale: group.locale || locale\n };\n });\n\n const groups = await storageOperations.groups.list({\n where: {\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n\n return [groups.concat(pluginsGroups)];\n })\n };\n\n const clearGroupsCache = (): void => {\n for (const loader of Object.values(dataLoaders)) {\n loader.clearAll();\n }\n };\n\n const getGroupsAsPlugins = (): CmsGroup[] => {\n const tenant = getTenant().id;\n const locale = getLocale().code;\n\n return (\n context.plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n /**\n * We need to filter out groups that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: t, locale: l } = plugin.contentModelGroup;\n if (t && t !== tenant) {\n return false;\n } else if (l && l !== locale) {\n return false;\n }\n return true;\n })\n .map(plugin => {\n return {\n ...plugin.contentModelGroup,\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n })\n );\n };\n\n const checkPermissions = (check: string): Promise<CmsGroupPermission> => {\n return baseCheckPermissions(context, \"cms.contentModelGroup\", { rwd: check });\n };\n\n const groupsGet = async (id: string) => {\n const groups = await dataLoaders.listGroups.load(\"listGroups\");\n\n const group = groups.find(g => g.id === id);\n\n if (!group) {\n throw new NotFoundError(`Cms Group \"${id}\" was not found!`);\n }\n return group;\n };\n\n const groupsList = async (params: CmsGroupListParams) => {\n const { where } = params || {};\n\n try {\n return await dataLoaders.listGroups.load(\"listGroups\");\n } catch (ex) {\n throw new WebinyError(ex.message, ex.code || \"LIST_ERROR\", {\n ...(ex.data || {}),\n where\n });\n }\n };\n\n /**\n * Create\n */\n const onGroupBeforeCreate =\n createTopic<OnGroupBeforeCreateTopicParams>(\"cms.onGroupBeforeCreate\");\n const onGroupAfterCreate = createTopic<OnGroupAfterCreateTopicParams>(\"cms.onGroupAfterCreate\");\n const onGroupCreateError = createTopic<OnGroupCreateErrorTopicParams>(\"cms.onGroupCreateError\");\n /**\n * Update\n */\n const onGroupBeforeUpdate =\n createTopic<OnGroupBeforeUpdateTopicParams>(\"cms.onGroupBeforeUpdate\");\n const onGroupAfterUpdate = createTopic<OnGroupAfterUpdateTopicParams>(\"cms.onGroupAfterUpdate\");\n const onGroupUpdateError = createTopic<OnGroupUpdateErrorTopicParams>(\"cms.onGroupUpdateError\");\n /**\n * Delete\n */\n const onGroupBeforeDelete =\n createTopic<OnGroupBeforeDeleteTopicParams>(\"cms.onGroupBeforeDelete\");\n const onGroupAfterDelete = createTopic<OnGroupAfterDeleteTopicParams>(\"cms.onGroupAfterDelete\");\n const onGroupDeleteError = createTopic<OnGroupDeleteErrorTopicParams>(\"cms.onGroupDeleteError\");\n\n /**\n * We need to assign some default behaviors.\n */\n assignBeforeGroupCreate({\n onGroupBeforeCreate,\n plugins: context.plugins,\n storageOperations\n });\n assignBeforeGroupUpdate({\n onGroupBeforeUpdate,\n plugins: context.plugins\n });\n assignBeforeGroupDelete({\n onGroupBeforeDelete,\n plugins: context.plugins,\n storageOperations\n });\n\n return {\n /**\n * Deprecated - will be removed in 5.36.0\n */\n onBeforeGroupCreate: onGroupBeforeCreate,\n onAfterGroupCreate: onGroupAfterCreate,\n onBeforeGroupUpdate: onGroupBeforeUpdate,\n onAfterGroupUpdate: onGroupAfterUpdate,\n onBeforeGroupDelete: onGroupBeforeDelete,\n onAfterGroupDelete: onGroupAfterDelete,\n /**\n * Released in 5.34.0\n */\n onGroupBeforeCreate,\n onGroupAfterCreate,\n onGroupCreateError,\n onGroupBeforeUpdate,\n onGroupAfterUpdate,\n onGroupUpdateError,\n onGroupBeforeDelete,\n onGroupAfterDelete,\n onGroupDeleteError,\n clearGroupsCache,\n getGroup: async id => {\n const permission = await checkPermissions(\"r\");\n\n const group = await groupsGet(id);\n checkOwnership(context, permission, group);\n validateGroupAccess(context, permission, group);\n\n return group;\n },\n listGroups: async params => {\n const { where } = params || {};\n\n const { tenant, locale } = where || {};\n const permission = await checkPermissions(\"r\");\n\n const response = await groupsList({\n ...(params || {}),\n where: {\n ...(where || {}),\n tenant: tenant || getTenant().id,\n locale: locale || getLocale().code\n }\n });\n\n return response.filter(group => {\n if (!validateOwnership(context, permission, group)) {\n return false;\n }\n return validateGroupAccess(context, permission, group);\n });\n },\n createGroup: async inputData => {\n await checkPermissions(\"w\");\n\n const createdData = new CreateContentModelGroupModel().populate({\n ...inputData,\n slug: inputData.slug ? toSlug(inputData.slug) : \"\",\n description: inputData.description || \"\"\n });\n await createdData.validate();\n const input: CmsGroupCreateInput & { slug: string; description: string } =\n await createdData.toJSON();\n\n const identity = getIdentity();\n\n const id = mdbid();\n const group: CmsGroup = {\n ...input,\n id,\n tenant: getTenant().id,\n locale: getLocale().code,\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n webinyVersion: context.WEBINY_VERSION\n };\n try {\n await onGroupBeforeCreate.publish({\n group\n });\n\n const result = await storageOperations.groups.create({\n group\n });\n\n clearGroupsCache();\n\n await onGroupAfterCreate.publish({\n group: result\n });\n\n return group;\n } catch (ex) {\n await onGroupCreateError.publish({\n input,\n group,\n error: ex\n });\n throw new WebinyError(\n ex.message || \"Could not save data model group.\",\n ex.code || \"ERROR_ON_CREATE\",\n {\n ...(ex.data || {}),\n group,\n input\n }\n );\n }\n },\n updateGroup: async (id, inputData) => {\n const permission = await checkPermissions(\"w\");\n\n const original = await groupsGet(id);\n\n checkOwnership(context, permission, original);\n\n const input = new UpdateContentModelGroupModel().populate(inputData);\n await input.validate();\n\n const updatedDataJson: Partial<CmsGroup> = await input.toJSON({\n onlyDirty: true\n });\n\n /**\n * No need to continue if no values were changed\n */\n if (Object.keys(updatedDataJson).length === 0) {\n return original;\n }\n\n const group: CmsGroup = {\n ...original,\n ...updatedDataJson,\n locale: getLocale().code,\n tenant: getTenant().id,\n savedOn: new Date().toISOString()\n };\n\n try {\n await onGroupBeforeUpdate.publish({\n original,\n group\n });\n\n const updatedGroup = await storageOperations.groups.update({\n group\n });\n clearGroupsCache();\n\n await onGroupAfterUpdate.publish({\n original,\n group: updatedGroup\n });\n\n return updatedGroup;\n } catch (ex) {\n await onGroupUpdateError.publish({\n input,\n original,\n group,\n error: ex\n });\n throw new WebinyError(ex.message, ex.code || \"UPDATE_ERROR\", {\n error: ex,\n original,\n group,\n input\n });\n }\n },\n deleteGroup: async id => {\n const permission = await checkPermissions(\"d\");\n\n const group = await groupsGet(id);\n\n checkOwnership(context, permission, group);\n\n try {\n await onGroupBeforeDelete.publish({\n group\n });\n\n await storageOperations.groups.delete({ group });\n clearGroupsCache();\n\n await onGroupAfterDelete.publish({\n group\n });\n } catch (ex) {\n await onGroupDeleteError.publish({\n group,\n error: ex\n });\n throw new WebinyError(ex.message, ex.code || \"DELETE_ERROR\", {\n ...(ex.data || {}),\n id\n });\n }\n\n return true;\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createModelGroupsCrud","params","getTenant","getIdentity","getLocale","storageOperations","context","dataLoaders","listGroups","DataLoader","tenant","id","locale","code","pluginsGroups","getGroupsAsPlugins","map","group","groups","list","where","concat","clearGroupsCache","loader","Object","values","clearAll","plugins","byType","CmsGroupPlugin","type","filter","plugin","t","l","contentModelGroup","webinyVersion","WEBINY_VERSION","checkPermissions","check","baseCheckPermissions","rwd","groupsGet","load","find","g","NotFoundError","groupsList","ex","WebinyError","message","data","onGroupBeforeCreate","createTopic","onGroupAfterCreate","onGroupCreateError","onGroupBeforeUpdate","onGroupAfterUpdate","onGroupUpdateError","onGroupBeforeDelete","onGroupAfterDelete","onGroupDeleteError","assignBeforeGroupCreate","assignBeforeGroupUpdate","assignBeforeGroupDelete","onBeforeGroupCreate","onAfterGroupCreate","onBeforeGroupUpdate","onAfterGroupUpdate","onBeforeGroupDelete","onAfterGroupDelete","getGroup","permission","checkOwnership","validateGroupAccess","response","validateOwnership","createGroup","input","result","createGroupCreateValidation","safeParseAsync","success","createZodError","error","identity","mdbid","createdOn","Date","toISOString","savedOn","createdBy","displayName","publish","create","updateGroup","original","createGroupUpdateValidation","keys","length","updatedGroup","update","deleteGroup","delete"],"sources":["contentModelGroup.crud.ts"],"sourcesContent":["/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\nimport {\n CmsGroupContext,\n CmsGroupListParams,\n CmsGroupPermission,\n CmsGroup,\n CmsContext,\n HeadlessCmsStorageOperations,\n OnGroupBeforeCreateTopicParams,\n OnGroupAfterCreateTopicParams,\n OnGroupBeforeUpdateTopicParams,\n OnGroupAfterUpdateTopicParams,\n OnGroupBeforeDeleteTopicParams,\n OnGroupAfterDeleteTopicParams,\n OnGroupCreateErrorTopicParams,\n OnGroupUpdateErrorTopicParams,\n OnGroupDeleteErrorTopicParams\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport WebinyError from \"@webiny/error\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignBeforeGroupUpdate } from \"./contentModelGroup/beforeUpdate\";\nimport { assignBeforeGroupCreate } from \"./contentModelGroup/beforeCreate\";\nimport { assignBeforeGroupDelete } from \"./contentModelGroup/beforeDelete\";\nimport DataLoader from \"dataloader\";\nimport { checkPermissions as baseCheckPermissions } from \"~/utils/permissions\";\nimport { checkOwnership, validateOwnership } from \"~/utils/ownership\";\nimport { validateGroupAccess } from \"~/utils/access\";\nimport {\n createGroupCreateValidation,\n createGroupUpdateValidation\n} from \"~/crud/contentModelGroup/validation\";\nimport { createZodError } from \"@webiny/utils\";\n\nexport interface CreateModelGroupsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\nexport const createModelGroupsCrud = (params: CreateModelGroupsCrudParams): CmsGroupContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, context } = params;\n\n const dataLoaders = {\n listGroups: new DataLoader(async () => {\n const tenant = getTenant().id;\n const locale = getLocale().code;\n\n const pluginsGroups = getGroupsAsPlugins().map(group => {\n return {\n ...group,\n tenant: group.tenant || tenant,\n locale: group.locale || locale\n };\n });\n\n const groups = await storageOperations.groups.list({\n where: {\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n\n return [groups.concat(pluginsGroups)];\n })\n };\n\n const clearGroupsCache = (): void => {\n for (const loader of Object.values(dataLoaders)) {\n loader.clearAll();\n }\n };\n\n const getGroupsAsPlugins = (): CmsGroup[] => {\n const tenant = getTenant().id;\n const locale = getLocale().code;\n\n return (\n context.plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n /**\n * We need to filter out groups that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: t, locale: l } = plugin.contentModelGroup;\n if (t && t !== tenant) {\n return false;\n } else if (l && l !== locale) {\n return false;\n }\n return true;\n })\n .map(plugin => {\n return {\n ...plugin.contentModelGroup,\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n })\n );\n };\n\n const checkPermissions = (check: string): Promise<CmsGroupPermission> => {\n return baseCheckPermissions(context, \"cms.contentModelGroup\", { rwd: check });\n };\n\n const groupsGet = async (id: string) => {\n const groups = await dataLoaders.listGroups.load(\"listGroups\");\n\n const group = groups.find(g => g.id === id);\n\n if (!group) {\n throw new NotFoundError(`Cms Group \"${id}\" was not found!`);\n }\n return group;\n };\n\n const groupsList = async (params: CmsGroupListParams) => {\n const { where } = params || {};\n\n try {\n return await dataLoaders.listGroups.load(\"listGroups\");\n } catch (ex) {\n throw new WebinyError(ex.message, ex.code || \"LIST_ERROR\", {\n ...(ex.data || {}),\n where\n });\n }\n };\n\n /**\n * Create\n */\n const onGroupBeforeCreate =\n createTopic<OnGroupBeforeCreateTopicParams>(\"cms.onGroupBeforeCreate\");\n const onGroupAfterCreate = createTopic<OnGroupAfterCreateTopicParams>(\"cms.onGroupAfterCreate\");\n const onGroupCreateError = createTopic<OnGroupCreateErrorTopicParams>(\"cms.onGroupCreateError\");\n /**\n * Update\n */\n const onGroupBeforeUpdate =\n createTopic<OnGroupBeforeUpdateTopicParams>(\"cms.onGroupBeforeUpdate\");\n const onGroupAfterUpdate = createTopic<OnGroupAfterUpdateTopicParams>(\"cms.onGroupAfterUpdate\");\n const onGroupUpdateError = createTopic<OnGroupUpdateErrorTopicParams>(\"cms.onGroupUpdateError\");\n /**\n * Delete\n */\n const onGroupBeforeDelete =\n createTopic<OnGroupBeforeDeleteTopicParams>(\"cms.onGroupBeforeDelete\");\n const onGroupAfterDelete = createTopic<OnGroupAfterDeleteTopicParams>(\"cms.onGroupAfterDelete\");\n const onGroupDeleteError = createTopic<OnGroupDeleteErrorTopicParams>(\"cms.onGroupDeleteError\");\n\n /**\n * We need to assign some default behaviors.\n */\n assignBeforeGroupCreate({\n onGroupBeforeCreate,\n plugins: context.plugins,\n storageOperations\n });\n assignBeforeGroupUpdate({\n onGroupBeforeUpdate,\n plugins: context.plugins\n });\n assignBeforeGroupDelete({\n onGroupBeforeDelete,\n plugins: context.plugins,\n storageOperations\n });\n\n return {\n /**\n * Deprecated - will be removed in 5.36.0\n */\n onBeforeGroupCreate: onGroupBeforeCreate,\n onAfterGroupCreate: onGroupAfterCreate,\n onBeforeGroupUpdate: onGroupBeforeUpdate,\n onAfterGroupUpdate: onGroupAfterUpdate,\n onBeforeGroupDelete: onGroupBeforeDelete,\n onAfterGroupDelete: onGroupAfterDelete,\n /**\n * Released in 5.34.0\n */\n onGroupBeforeCreate,\n onGroupAfterCreate,\n onGroupCreateError,\n onGroupBeforeUpdate,\n onGroupAfterUpdate,\n onGroupUpdateError,\n onGroupBeforeDelete,\n onGroupAfterDelete,\n onGroupDeleteError,\n clearGroupsCache,\n getGroup: async id => {\n const permission = await checkPermissions(\"r\");\n\n const group = await groupsGet(id);\n checkOwnership(context, permission, group);\n validateGroupAccess(context, permission, group);\n\n return group;\n },\n listGroups: async params => {\n const { where } = params || {};\n\n const { tenant, locale } = where || {};\n const permission = await checkPermissions(\"r\");\n\n const response = await groupsList({\n ...(params || {}),\n where: {\n ...(where || {}),\n tenant: tenant || getTenant().id,\n locale: locale || getLocale().code\n }\n });\n\n return response.filter(group => {\n if (!validateOwnership(context, permission, group)) {\n return false;\n }\n return validateGroupAccess(context, permission, group);\n });\n },\n createGroup: async input => {\n await checkPermissions(\"w\");\n\n const result = await createGroupCreateValidation().safeParseAsync(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n const data = result.data;\n\n const identity = getIdentity();\n\n const id = mdbid();\n const group: CmsGroup = {\n ...data,\n id,\n tenant: getTenant().id,\n locale: getLocale().code,\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n webinyVersion: context.WEBINY_VERSION\n };\n try {\n await onGroupBeforeCreate.publish({\n group\n });\n\n const result = await storageOperations.groups.create({\n group\n });\n\n clearGroupsCache();\n\n await onGroupAfterCreate.publish({\n group: result\n });\n\n return group;\n } catch (ex) {\n await onGroupCreateError.publish({\n input,\n group,\n error: ex\n });\n throw new WebinyError(\n ex.message || \"Could not save data model group.\",\n ex.code || \"ERROR_ON_CREATE\",\n {\n ...(ex.data || {}),\n group,\n input\n }\n );\n }\n },\n updateGroup: async (id, input) => {\n const permission = await checkPermissions(\"w\");\n\n const original = await groupsGet(id);\n\n checkOwnership(context, permission, original);\n\n const result = await createGroupUpdateValidation().safeParseAsync(input);\n\n if (!result.success) {\n throw createZodError(result.error);\n }\n const data = result.data;\n\n /**\n * No need to continue if no values were changed\n */\n if (Object.keys(data).length === 0) {\n return original;\n }\n\n const group: CmsGroup = {\n ...original,\n ...data,\n locale: getLocale().code,\n tenant: getTenant().id,\n savedOn: new Date().toISOString()\n };\n\n try {\n await onGroupBeforeUpdate.publish({\n original,\n group\n });\n\n const updatedGroup = await storageOperations.groups.update({\n group\n });\n clearGroupsCache();\n\n await onGroupAfterUpdate.publish({\n original,\n group: updatedGroup\n });\n\n return updatedGroup;\n } catch (ex) {\n await onGroupUpdateError.publish({\n input,\n original,\n group,\n error: ex\n });\n throw new WebinyError(ex.message, ex.code || \"UPDATE_ERROR\", {\n error: ex,\n original,\n group,\n input\n });\n }\n },\n deleteGroup: async id => {\n const permission = await checkPermissions(\"d\");\n\n const group = await groupsGet(id);\n\n checkOwnership(context, permission, group);\n\n try {\n await onGroupBeforeDelete.publish({\n group\n });\n\n await storageOperations.groups.delete({ group });\n clearGroupsCache();\n\n await onGroupAfterDelete.publish({\n group\n });\n } catch (ex) {\n await onGroupDeleteError.publish({\n group,\n error: ex\n });\n throw new WebinyError(ex.message, ex.code || \"DELETE_ERROR\", {\n ...(ex.data || {}),\n id\n });\n }\n\n return true;\n }\n };\n};\n"],"mappings":"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"}
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createSettingsCrud = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _permissions = require("../utils/permissions");
13
-
14
10
  const createSettingsCrud = params => {
15
11
  const {
16
12
  storageOperations,
@@ -18,11 +14,9 @@ const createSettingsCrud = params => {
18
14
  getTenant,
19
15
  getLocale
20
16
  } = params;
21
-
22
17
  const checkPermissions = () => {
23
18
  return (0, _permissions.checkPermissions)(context, "cms.settings");
24
19
  };
25
-
26
20
  return {
27
21
  getSettings: async () => {
28
22
  await checkPermissions();
@@ -41,14 +35,12 @@ const createSettingsCrud = params => {
41
35
  tenant: getTenant().id,
42
36
  locale: getLocale().code
43
37
  });
44
-
45
38
  if (!original) {
46
39
  await storageOperations.settings.create({
47
40
  settings
48
41
  });
49
42
  return;
50
43
  }
51
-
52
44
  await storageOperations.settings.update({
53
45
  settings
54
46
  });
@@ -59,11 +51,9 @@ const createSettingsCrud = params => {
59
51
  tenant: getTenant().id,
60
52
  locale: getLocale().code
61
53
  });
62
-
63
54
  if (!(settings !== null && settings !== void 0 && settings.contentModelLastChange)) {
64
55
  return new Date();
65
56
  }
66
-
67
57
  return settings.contentModelLastChange;
68
58
  } catch (ex) {
69
59
  console.log({
@@ -74,10 +64,8 @@ const createSettingsCrud = params => {
74
64
  }
75
65
  });
76
66
  }
77
-
78
67
  return new Date();
79
68
  }
80
69
  };
81
70
  };
82
-
83
71
  exports.createSettingsCrud = createSettingsCrud;
@@ -1 +1 @@
1
- {"version":3,"names":["createSettingsCrud","params","storageOperations","context","getTenant","getLocale","checkPermissions","baseCheckPermissions","getSettings","settings","get","tenant","id","locale","code","updateModelLastChange","original","contentModelLastChange","Date","create","update","getModelLastChange","ex","console","log","error","message","data"],"sources":["settings.crud.ts"],"sourcesContent":["import {\n CmsContext,\n CmsSettingsPermission,\n CmsSettings,\n HeadlessCmsStorageOperations,\n CmsSettingsContext\n} from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { checkPermissions as baseCheckPermissions } from \"~/utils/permissions\";\n\nexport interface CreateSettingsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n context: CmsContext;\n}\nexport const createSettingsCrud = (params: CreateSettingsCrudParams): CmsSettingsContext => {\n const { storageOperations, context, getTenant, getLocale } = params;\n\n const checkPermissions = (): Promise<CmsSettingsPermission> => {\n return baseCheckPermissions(context, \"cms.settings\");\n };\n\n return {\n getSettings: async (): Promise<CmsSettings | null> => {\n await checkPermissions();\n return await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n },\n updateModelLastChange: async (): Promise<void> => {\n const original = await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n\n const settings: CmsSettings = {\n ...(original || {}),\n contentModelLastChange: new Date(),\n tenant: getTenant().id,\n locale: getLocale().code\n };\n\n if (!original) {\n await storageOperations.settings.create({ settings });\n return;\n }\n\n await storageOperations.settings.update({\n settings\n });\n },\n getModelLastChange: async (): Promise<Date> => {\n try {\n const settings = await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n if (!settings?.contentModelLastChange) {\n return new Date();\n }\n return settings.contentModelLastChange;\n } catch (ex) {\n console.log({\n error: {\n message: ex.message,\n code: ex.code || \"COULD_NOT_FETCH_CONTENT_MODEL_LAST_CHANGE\",\n data: ex\n }\n });\n }\n return new Date();\n }\n };\n};\n"],"mappings":";;;;;;;;;;;AASA;;AAQO,MAAMA,kBAAkB,GAAIC,MAAD,IAA0D;EACxF,MAAM;IAAEC,iBAAF;IAAqBC,OAArB;IAA8BC,SAA9B;IAAyCC;EAAzC,IAAuDJ,MAA7D;;EAEA,MAAMK,gBAAgB,GAAG,MAAsC;IAC3D,OAAO,IAAAC,6BAAA,EAAqBJ,OAArB,EAA8B,cAA9B,CAAP;EACH,CAFD;;EAIA,OAAO;IACHK,WAAW,EAAE,YAAyC;MAClD,MAAMF,gBAAgB,EAAtB;MACA,OAAO,MAAMJ,iBAAiB,CAACO,QAAlB,CAA2BC,GAA3B,CAA+B;QACxCC,MAAM,EAAEP,SAAS,GAAGQ,EADoB;QAExCC,MAAM,EAAER,SAAS,GAAGS;MAFoB,CAA/B,CAAb;IAIH,CAPE;IAQHC,qBAAqB,EAAE,YAA2B;MAC9C,MAAMC,QAAQ,GAAG,MAAMd,iBAAiB,CAACO,QAAlB,CAA2BC,GAA3B,CAA+B;QAClDC,MAAM,EAAEP,SAAS,GAAGQ,EAD8B;QAElDC,MAAM,EAAER,SAAS,GAAGS;MAF8B,CAA/B,CAAvB;MAKA,MAAML,QAAqB,+DACnBO,QAAQ,IAAI,EADO;QAEvBC,sBAAsB,EAAE,IAAIC,IAAJ,EAFD;QAGvBP,MAAM,EAAEP,SAAS,GAAGQ,EAHG;QAIvBC,MAAM,EAAER,SAAS,GAAGS;MAJG,EAA3B;;MAOA,IAAI,CAACE,QAAL,EAAe;QACX,MAAMd,iBAAiB,CAACO,QAAlB,CAA2BU,MAA3B,CAAkC;UAAEV;QAAF,CAAlC,CAAN;QACA;MACH;;MAED,MAAMP,iBAAiB,CAACO,QAAlB,CAA2BW,MAA3B,CAAkC;QACpCX;MADoC,CAAlC,CAAN;IAGH,CA7BE;IA8BHY,kBAAkB,EAAE,YAA2B;MAC3C,IAAI;QACA,MAAMZ,QAAQ,GAAG,MAAMP,iBAAiB,CAACO,QAAlB,CAA2BC,GAA3B,CAA+B;UAClDC,MAAM,EAAEP,SAAS,GAAGQ,EAD8B;UAElDC,MAAM,EAAER,SAAS,GAAGS;QAF8B,CAA/B,CAAvB;;QAIA,IAAI,EAACL,QAAD,aAACA,QAAD,eAACA,QAAQ,CAAEQ,sBAAX,CAAJ,EAAuC;UACnC,OAAO,IAAIC,IAAJ,EAAP;QACH;;QACD,OAAOT,QAAQ,CAACQ,sBAAhB;MACH,CATD,CASE,OAAOK,EAAP,EAAW;QACTC,OAAO,CAACC,GAAR,CAAY;UACRC,KAAK,EAAE;YACHC,OAAO,EAAEJ,EAAE,CAACI,OADT;YAEHZ,IAAI,EAAEQ,EAAE,CAACR,IAAH,IAAW,2CAFd;YAGHa,IAAI,EAAEL;UAHH;QADC,CAAZ;MAOH;;MACD,OAAO,IAAIJ,IAAJ,EAAP;IACH;EAlDE,CAAP;AAoDH,CA3DM"}
1
+ {"version":3,"names":["createSettingsCrud","params","storageOperations","context","getTenant","getLocale","checkPermissions","baseCheckPermissions","getSettings","settings","get","tenant","id","locale","code","updateModelLastChange","original","contentModelLastChange","Date","create","update","getModelLastChange","ex","console","log","error","message","data"],"sources":["settings.crud.ts"],"sourcesContent":["import {\n CmsContext,\n CmsSettingsPermission,\n CmsSettings,\n HeadlessCmsStorageOperations,\n CmsSettingsContext\n} from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { checkPermissions as baseCheckPermissions } from \"~/utils/permissions\";\n\nexport interface CreateSettingsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n context: CmsContext;\n}\nexport const createSettingsCrud = (params: CreateSettingsCrudParams): CmsSettingsContext => {\n const { storageOperations, context, getTenant, getLocale } = params;\n\n const checkPermissions = (): Promise<CmsSettingsPermission> => {\n return baseCheckPermissions(context, \"cms.settings\");\n };\n\n return {\n getSettings: async (): Promise<CmsSettings | null> => {\n await checkPermissions();\n return await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n },\n updateModelLastChange: async (): Promise<void> => {\n const original = await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n\n const settings: CmsSettings = {\n ...(original || {}),\n contentModelLastChange: new Date(),\n tenant: getTenant().id,\n locale: getLocale().code\n };\n\n if (!original) {\n await storageOperations.settings.create({ settings });\n return;\n }\n\n await storageOperations.settings.update({\n settings\n });\n },\n getModelLastChange: async (): Promise<Date> => {\n try {\n const settings = await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n if (!settings?.contentModelLastChange) {\n return new Date();\n }\n return settings.contentModelLastChange;\n } catch (ex) {\n console.log({\n error: {\n message: ex.message,\n code: ex.code || \"COULD_NOT_FETCH_CONTENT_MODEL_LAST_CHANGE\",\n data: ex\n }\n });\n }\n return new Date();\n }\n };\n};\n"],"mappings":";;;;;;;;AASA;AAQO,MAAMA,kBAAkB,GAAIC,MAAgC,IAAyB;EACxF,MAAM;IAAEC,iBAAiB;IAAEC,OAAO;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGJ,MAAM;EAEnE,MAAMK,gBAAgB,GAAG,MAAsC;IAC3D,OAAO,IAAAC,6BAAoB,EAACJ,OAAO,EAAE,cAAc,CAAC;EACxD,CAAC;EAED,OAAO;IACHK,WAAW,EAAE,YAAyC;MAClD,MAAMF,gBAAgB,EAAE;MACxB,OAAO,MAAMJ,iBAAiB,CAACO,QAAQ,CAACC,GAAG,CAAC;QACxCC,MAAM,EAAEP,SAAS,EAAE,CAACQ,EAAE;QACtBC,MAAM,EAAER,SAAS,EAAE,CAACS;MACxB,CAAC,CAAC;IACN,CAAC;IACDC,qBAAqB,EAAE,YAA2B;MAC9C,MAAMC,QAAQ,GAAG,MAAMd,iBAAiB,CAACO,QAAQ,CAACC,GAAG,CAAC;QAClDC,MAAM,EAAEP,SAAS,EAAE,CAACQ,EAAE;QACtBC,MAAM,EAAER,SAAS,EAAE,CAACS;MACxB,CAAC,CAAC;MAEF,MAAML,QAAqB,+DACnBO,QAAQ,IAAI,CAAC,CAAC;QAClBC,sBAAsB,EAAE,IAAIC,IAAI,EAAE;QAClCP,MAAM,EAAEP,SAAS,EAAE,CAACQ,EAAE;QACtBC,MAAM,EAAER,SAAS,EAAE,CAACS;MAAI,EAC3B;MAED,IAAI,CAACE,QAAQ,EAAE;QACX,MAAMd,iBAAiB,CAACO,QAAQ,CAACU,MAAM,CAAC;UAAEV;QAAS,CAAC,CAAC;QACrD;MACJ;MAEA,MAAMP,iBAAiB,CAACO,QAAQ,CAACW,MAAM,CAAC;QACpCX;MACJ,CAAC,CAAC;IACN,CAAC;IACDY,kBAAkB,EAAE,YAA2B;MAC3C,IAAI;QACA,MAAMZ,QAAQ,GAAG,MAAMP,iBAAiB,CAACO,QAAQ,CAACC,GAAG,CAAC;UAClDC,MAAM,EAAEP,SAAS,EAAE,CAACQ,EAAE;UACtBC,MAAM,EAAER,SAAS,EAAE,CAACS;QACxB,CAAC,CAAC;QACF,IAAI,EAACL,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEQ,sBAAsB,GAAE;UACnC,OAAO,IAAIC,IAAI,EAAE;QACrB;QACA,OAAOT,QAAQ,CAACQ,sBAAsB;MAC1C,CAAC,CAAC,OAAOK,EAAE,EAAE;QACTC,OAAO,CAACC,GAAG,CAAC;UACRC,KAAK,EAAE;YACHC,OAAO,EAAEJ,EAAE,CAACI,OAAO;YACnBZ,IAAI,EAAEQ,EAAE,CAACR,IAAI,IAAI,2CAA2C;YAC5Da,IAAI,EAAEL;UACV;QACJ,CAAC,CAAC;MACN;MACA,OAAO,IAAIJ,IAAI,EAAE;IACrB;EACJ,CAAC;AACL,CAAC;AAAC"}