@webiny/api-headless-cms 0.0.0-unstable.3386f66516 → 0.0.0-unstable.496cf268ac

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 (326) hide show
  1. package/context.js +0 -25
  2. package/context.js.map +1 -1
  3. package/crud/contentEntry/afterDelete.js +0 -5
  4. package/crud/contentEntry/afterDelete.js.map +1 -1
  5. package/crud/contentEntry/beforeCreate.js +0 -3
  6. package/crud/contentEntry/beforeCreate.js.map +1 -1
  7. package/crud/contentEntry/beforeUpdate.js +0 -3
  8. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  9. package/crud/contentEntry/entryDataValidation.js +1 -40
  10. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  11. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  12. package/crud/contentEntry/markLockedFields.js +15 -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.d.ts +2 -1
  19. package/crud/contentEntry.crud.js +59 -166
  20. package/crud/contentEntry.crud.js.map +1 -1
  21. package/crud/contentModel/afterCreate.js +0 -2
  22. package/crud/contentModel/afterCreate.js.map +1 -1
  23. package/crud/contentModel/afterCreateFrom.js +0 -2
  24. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  25. package/crud/contentModel/afterDelete.js +0 -2
  26. package/crud/contentModel/afterDelete.js.map +1 -1
  27. package/crud/contentModel/afterUpdate.js +0 -2
  28. package/crud/contentModel/afterUpdate.js.map +1 -1
  29. package/crud/contentModel/beforeCreate.js +7 -32
  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.js +4 -5
  34. package/crud/contentModel/beforeUpdate.js.map +1 -1
  35. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  36. package/crud/contentModel/compatibility/modelApiName.js +24 -0
  37. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  38. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  39. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  40. package/crud/contentModel/createFieldStorageId.js +0 -3
  41. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  42. package/crud/contentModel/defaultFields.d.ts +5 -0
  43. package/crud/contentModel/defaultFields.js +58 -0
  44. package/crud/contentModel/defaultFields.js.map +1 -0
  45. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  46. package/crud/contentModel/fields/descriptionField.js +42 -0
  47. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  48. package/crud/contentModel/fields/imageField.d.ts +2 -0
  49. package/crud/contentModel/fields/imageField.js +46 -0
  50. package/crud/contentModel/fields/imageField.js.map +1 -0
  51. package/crud/contentModel/fields/titleField.d.ts +2 -0
  52. package/crud/contentModel/fields/titleField.js +58 -0
  53. package/crud/contentModel/fields/titleField.js.map +1 -0
  54. package/crud/contentModel/validateLayout.js +0 -8
  55. package/crud/contentModel/validateLayout.js.map +1 -1
  56. package/crud/contentModel/validateModel.d.ts +1 -0
  57. package/crud/contentModel/validateModel.js +0 -8
  58. package/crud/contentModel/validateModel.js.map +1 -1
  59. package/crud/contentModel/validateModelFields.d.ts +2 -1
  60. package/crud/contentModel/validateModelFields.js +35 -128
  61. package/crud/contentModel/validateModelFields.js.map +1 -1
  62. package/crud/contentModel/validation.d.ts +85 -43
  63. package/crud/contentModel/validation.js +57 -21
  64. package/crud/contentModel/validation.js.map +1 -1
  65. package/crud/contentModel.crud.js +46 -110
  66. package/crud/contentModel.crud.js.map +1 -1
  67. package/crud/contentModelGroup/beforeCreate.js +0 -12
  68. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  69. package/crud/contentModelGroup/beforeDelete.js +0 -8
  70. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  71. package/crud/contentModelGroup/beforeUpdate.js +0 -5
  72. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  73. package/crud/contentModelGroup/validation.js +0 -9
  74. package/crud/contentModelGroup/validation.js.map +1 -1
  75. package/crud/contentModelGroup.crud.js +5 -47
  76. package/crud/contentModelGroup.crud.js.map +1 -1
  77. package/crud/settings.crud.js +0 -12
  78. package/crud/settings.crud.js.map +1 -1
  79. package/crud/system.crud.js +1 -96
  80. package/crud/system.crud.js.map +1 -1
  81. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
  82. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  83. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +0 -36
  84. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  85. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
  86. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  87. package/fieldConverters/index.js +0 -5
  88. package/fieldConverters/index.js.map +1 -1
  89. package/graphql/buildSchemaPlugins.js +4 -9
  90. package/graphql/buildSchemaPlugins.js.map +1 -1
  91. package/graphql/createExecutableSchema.js +2 -6
  92. package/graphql/createExecutableSchema.js.map +1 -1
  93. package/graphql/generateSchema.js +0 -7
  94. package/graphql/generateSchema.js.map +1 -1
  95. package/graphql/graphQLHandlerFactory.js +16 -39
  96. package/graphql/graphQLHandlerFactory.js.map +1 -1
  97. package/graphql/index.js +0 -5
  98. package/graphql/index.js.map +1 -1
  99. package/graphql/schema/baseContentSchema.js +5 -17
  100. package/graphql/schema/baseContentSchema.js.map +1 -1
  101. package/graphql/schema/baseSchema.js +1 -8
  102. package/graphql/schema/baseSchema.js.map +1 -1
  103. package/graphql/schema/contentEntries.js +107 -102
  104. package/graphql/schema/contentEntries.js.map +1 -1
  105. package/graphql/schema/contentModelGroups.js +3 -20
  106. package/graphql/schema/contentModelGroups.js.map +1 -1
  107. package/graphql/schema/contentModels.js +22 -25
  108. package/graphql/schema/contentModels.js.map +1 -1
  109. package/graphql/schema/createFieldResolvers.js +5 -28
  110. package/graphql/schema/createFieldResolvers.js.map +1 -1
  111. package/graphql/schema/createManageResolvers.d.ts +1 -1
  112. package/graphql/schema/createManageResolvers.js +33 -43
  113. package/graphql/schema/createManageResolvers.js.map +1 -1
  114. package/graphql/schema/createManageSDL.d.ts +1 -0
  115. package/graphql/schema/createManageSDL.js +57 -63
  116. package/graphql/schema/createManageSDL.js.map +1 -1
  117. package/graphql/schema/createPreviewResolvers.js +3 -17
  118. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  119. package/graphql/schema/createReadResolvers.js +4 -18
  120. package/graphql/schema/createReadResolvers.js.map +1 -1
  121. package/graphql/schema/createReadSDL.d.ts +1 -0
  122. package/graphql/schema/createReadSDL.js +24 -32
  123. package/graphql/schema/createReadSDL.js.map +1 -1
  124. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
  125. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
  126. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  127. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  128. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  129. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  130. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  131. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  132. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  133. package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
  134. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  135. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  136. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  137. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  138. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  139. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  140. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  141. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  142. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  143. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  144. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  145. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  146. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  147. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  148. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  149. package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
  150. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  151. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  152. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  153. package/graphql/schema/resolvers/read/resolveGet.js +0 -8
  154. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  155. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  156. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  157. package/graphql/schema/schemaPlugins.js +16 -26
  158. package/graphql/schema/schemaPlugins.js.map +1 -1
  159. package/graphql/system.js +1 -30
  160. package/graphql/system.js.map +1 -1
  161. package/graphqlFields/boolean.js +0 -12
  162. package/graphqlFields/boolean.js.map +1 -1
  163. package/graphqlFields/datetime.js +0 -17
  164. package/graphqlFields/datetime.js.map +1 -1
  165. package/graphqlFields/dynamicZone/dynamicZoneField.js +15 -33
  166. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  167. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
  168. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  169. package/graphqlFields/dynamicZone/index.js +0 -2
  170. package/graphqlFields/dynamicZone/index.js.map +1 -1
  171. package/graphqlFields/file.js +0 -8
  172. package/graphqlFields/file.js.map +1 -1
  173. package/graphqlFields/helpers.js +0 -10
  174. package/graphqlFields/helpers.js.map +1 -1
  175. package/graphqlFields/index.js +0 -12
  176. package/graphqlFields/index.js.map +1 -1
  177. package/graphqlFields/longText.js +0 -10
  178. package/graphqlFields/longText.js.map +1 -1
  179. package/graphqlFields/number.js +0 -12
  180. package/graphqlFields/number.js.map +1 -1
  181. package/graphqlFields/object.js +7 -37
  182. package/graphqlFields/object.js.map +1 -1
  183. package/graphqlFields/ref.js +59 -65
  184. package/graphqlFields/ref.js.map +1 -1
  185. package/graphqlFields/richText.js +0 -9
  186. package/graphqlFields/richText.js.map +1 -1
  187. package/graphqlFields/text.js +0 -11
  188. package/graphqlFields/text.js.map +1 -1
  189. package/index.d.ts +1 -1
  190. package/index.js +1 -21
  191. package/index.js.map +1 -1
  192. package/modelManager/DefaultCmsModelManager.js +0 -16
  193. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  194. package/modelManager/index.js +0 -4
  195. package/modelManager/index.js.map +1 -1
  196. package/package.json +24 -25
  197. package/parameters/context.js +0 -4
  198. package/parameters/context.js.map +1 -1
  199. package/parameters/header.js +0 -11
  200. package/parameters/header.js.map +1 -1
  201. package/parameters/index.js +0 -8
  202. package/parameters/index.js.map +1 -1
  203. package/parameters/manual.js +1 -8
  204. package/parameters/manual.js.map +1 -1
  205. package/parameters/path.js +0 -11
  206. package/parameters/path.js.map +1 -1
  207. package/plugins/CmsGraphQLSchemaPlugin.js +0 -5
  208. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  209. package/plugins/CmsGraphQLSchemaSorterPlugin.js +0 -10
  210. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  211. package/plugins/CmsGroupPlugin.js +0 -8
  212. package/plugins/CmsGroupPlugin.js.map +1 -1
  213. package/plugins/CmsModelFieldConverterPlugin.js +0 -5
  214. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  215. package/plugins/CmsModelPlugin.d.ts +11 -1
  216. package/plugins/CmsModelPlugin.js +15 -40
  217. package/plugins/CmsModelPlugin.js.map +1 -1
  218. package/plugins/CmsParametersPlugin.js +0 -7
  219. package/plugins/CmsParametersPlugin.js.map +1 -1
  220. package/plugins/StorageTransformPlugin.js +0 -9
  221. package/plugins/StorageTransformPlugin.js.map +1 -1
  222. package/plugins/index.js +0 -14
  223. package/plugins/index.js.map +1 -1
  224. package/storage/default.js +0 -3
  225. package/storage/default.js.map +1 -1
  226. package/storage/object.js +0 -19
  227. package/storage/object.js.map +1 -1
  228. package/types.d.ts +77 -22
  229. package/types.js +1 -80
  230. package/types.js.map +1 -1
  231. package/utils/access.js +11 -25
  232. package/utils/access.js.map +1 -1
  233. package/utils/converters/Converter.js +0 -13
  234. package/utils/converters/Converter.js.map +1 -1
  235. package/utils/converters/ConverterCollection.js +9 -33
  236. package/utils/converters/ConverterCollection.js.map +1 -1
  237. package/utils/converters/valueKeyStorageConverter.js +2 -27
  238. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  239. package/utils/createTypeFromFields.d.ts +1 -0
  240. package/utils/createTypeFromFields.js +11 -19
  241. package/utils/createTypeFromFields.js.map +1 -1
  242. package/utils/createTypeName.js +0 -9
  243. package/utils/createTypeName.js.map +1 -1
  244. package/utils/entryStorage.js +10 -26
  245. package/utils/entryStorage.js.map +1 -1
  246. package/utils/filterAsync.js +0 -5
  247. package/utils/filterAsync.js.map +1 -1
  248. package/utils/getBaseFieldType.js +0 -2
  249. package/utils/getBaseFieldType.js.map +1 -1
  250. package/utils/getEntryDescription.d.ts +2 -0
  251. package/utils/getEntryDescription.js +17 -0
  252. package/utils/getEntryDescription.js.map +1 -0
  253. package/utils/getEntryImage.d.ts +2 -0
  254. package/utils/getEntryImage.js +17 -0
  255. package/utils/getEntryImage.js.map +1 -0
  256. package/utils/getEntryTitle.js +0 -9
  257. package/utils/getEntryTitle.js.map +1 -1
  258. package/utils/getSchemaFromFieldPlugins.js +2 -11
  259. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  260. package/utils/ownership.d.ts +3 -3
  261. package/utils/ownership.js +0 -8
  262. package/utils/ownership.js.map +1 -1
  263. package/utils/permissions.js +8 -23
  264. package/utils/permissions.js.map +1 -1
  265. package/utils/removeNullValues.d.ts +1 -0
  266. package/utils/removeNullValues.js +17 -0
  267. package/utils/removeNullValues.js.map +1 -0
  268. package/utils/removeUndefinedValues.d.ts +1 -0
  269. package/utils/removeUndefinedValues.js +17 -0
  270. package/utils/removeUndefinedValues.js.map +1 -0
  271. package/utils/renderFields.d.ts +2 -1
  272. package/utils/renderFields.js +8 -10
  273. package/utils/renderFields.js.map +1 -1
  274. package/utils/renderGetFilterFields.js +0 -13
  275. package/utils/renderGetFilterFields.js.map +1 -1
  276. package/utils/renderInputFields.d.ts +2 -1
  277. package/utils/renderInputFields.js +4 -9
  278. package/utils/renderInputFields.js.map +1 -1
  279. package/utils/renderListFilterFields.js +1 -10
  280. package/utils/renderListFilterFields.js.map +1 -1
  281. package/utils/renderSortEnum.js +0 -9
  282. package/utils/renderSortEnum.js.map +1 -1
  283. package/utils/toSlug.js +0 -4
  284. package/utils/toSlug.js.map +1 -1
  285. package/validators/dateGte.js +0 -7
  286. package/validators/dateGte.js.map +1 -1
  287. package/validators/dateLte.js +0 -7
  288. package/validators/dateLte.js.map +1 -1
  289. package/validators/dynamicZone.js +0 -4
  290. package/validators/dynamicZone.js.map +1 -1
  291. package/validators/gte.js +0 -8
  292. package/validators/gte.js.map +1 -1
  293. package/validators/in.js +0 -8
  294. package/validators/in.js.map +1 -1
  295. package/validators/index.js +0 -16
  296. package/validators/index.js.map +1 -1
  297. package/validators/lte.js +0 -8
  298. package/validators/lte.js.map +1 -1
  299. package/validators/maxLength.js +0 -8
  300. package/validators/maxLength.js.map +1 -1
  301. package/validators/minLength.js +0 -8
  302. package/validators/minLength.js.map +1 -1
  303. package/validators/pattern.js +0 -9
  304. package/validators/pattern.js.map +1 -1
  305. package/validators/patternPlugins/email.js +0 -2
  306. package/validators/patternPlugins/email.js.map +1 -1
  307. package/validators/patternPlugins/index.js +0 -8
  308. package/validators/patternPlugins/index.js.map +1 -1
  309. package/validators/patternPlugins/lowerCase.js +0 -2
  310. package/validators/patternPlugins/lowerCase.js.map +1 -1
  311. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  312. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  313. package/validators/patternPlugins/upperCase.js +0 -2
  314. package/validators/patternPlugins/upperCase.js.map +1 -1
  315. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  316. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  317. package/validators/patternPlugins/url.js +0 -2
  318. package/validators/patternPlugins/url.js.map +1 -1
  319. package/validators/required.js +0 -5
  320. package/validators/required.js.map +1 -1
  321. package/validators/timeGte.js +0 -8
  322. package/validators/timeGte.js.map +1 -1
  323. package/validators/timeLte.js +0 -8
  324. package/validators/timeLte.js.map +1 -1
  325. package/validators/unique.js +0 -7
  326. package/validators/unique.js.map +1 -1
@@ -1,46 +1,30 @@
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
9
  var _mdbid = _interopRequireDefault(require("mdbid"));
13
-
14
10
  var _handlerGraphql = require("@webiny/handler-graphql");
15
-
16
11
  var _error = _interopRequireDefault(require("@webiny/error"));
17
-
18
12
  var _CmsGroupPlugin = require("../plugins/CmsGroupPlugin");
19
-
20
13
  var _pubsub = require("@webiny/pubsub");
21
-
22
14
  var _beforeUpdate = require("./contentModelGroup/beforeUpdate");
23
-
24
15
  var _beforeCreate = require("./contentModelGroup/beforeCreate");
25
-
26
16
  var _beforeDelete = require("./contentModelGroup/beforeDelete");
27
-
28
17
  var _dataloader = _interopRequireDefault(require("dataloader"));
29
-
30
18
  var _permissions = require("../utils/permissions");
31
-
32
19
  var _ownership = require("../utils/ownership");
33
-
34
20
  var _access = require("../utils/access");
35
-
36
21
  var _validation = require("./contentModelGroup/validation");
37
-
38
22
  var _utils = require("@webiny/utils");
39
-
40
23
  /**
41
24
  * Package mdbid does not have types.
42
25
  */
43
26
  // @ts-ignore
27
+
44
28
  const createModelGroupsCrud = params => {
45
29
  const {
46
30
  getTenant,
@@ -68,13 +52,11 @@ const createModelGroupsCrud = params => {
68
52
  return [groups.concat(pluginsGroups)];
69
53
  })
70
54
  };
71
-
72
55
  const clearGroupsCache = () => {
73
56
  for (const loader of Object.values(dataLoaders)) {
74
57
  loader.clearAll();
75
58
  }
76
59
  };
77
-
78
60
  const getGroupsAsPlugins = () => {
79
61
  const tenant = getTenant().id;
80
62
  const locale = getLocale().code;
@@ -82,19 +64,16 @@ const createModelGroupsCrud = params => {
82
64
  /**
83
65
  * We need to filter out groups that are not for this tenant or locale.
84
66
  * If it does not have tenant or locale define, it is for every locale and tenant
85
- */
86
- .filter(plugin => {
67
+ */.filter(plugin => {
87
68
  const {
88
69
  tenant: t,
89
70
  locale: l
90
71
  } = plugin.contentModelGroup;
91
-
92
72
  if (t && t !== tenant) {
93
73
  return false;
94
74
  } else if (l && l !== locale) {
95
75
  return false;
96
76
  }
97
-
98
77
  return true;
99
78
  }).map(plugin => {
100
79
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugin.contentModelGroup), {}, {
@@ -104,29 +83,23 @@ const createModelGroupsCrud = params => {
104
83
  });
105
84
  });
106
85
  };
107
-
108
86
  const checkPermissions = check => {
109
87
  return (0, _permissions.checkPermissions)(context, "cms.contentModelGroup", {
110
88
  rwd: check
111
89
  });
112
90
  };
113
-
114
91
  const groupsGet = async id => {
115
92
  const groups = await dataLoaders.listGroups.load("listGroups");
116
93
  const group = groups.find(g => g.id === id);
117
-
118
94
  if (!group) {
119
95
  throw new _handlerGraphql.NotFoundError(`Cms Group "${id}" was not found!`);
120
96
  }
121
-
122
97
  return group;
123
98
  };
124
-
125
99
  const groupsList = async params => {
126
100
  const {
127
101
  where
128
102
  } = params || {};
129
-
130
103
  try {
131
104
  return await dataLoaders.listGroups.load("listGroups");
132
105
  } catch (ex) {
@@ -135,32 +108,29 @@ const createModelGroupsCrud = params => {
135
108
  }));
136
109
  }
137
110
  };
111
+
138
112
  /**
139
113
  * Create
140
114
  */
141
-
142
-
143
115
  const onGroupBeforeCreate = (0, _pubsub.createTopic)("cms.onGroupBeforeCreate");
144
116
  const onGroupAfterCreate = (0, _pubsub.createTopic)("cms.onGroupAfterCreate");
145
117
  const onGroupCreateError = (0, _pubsub.createTopic)("cms.onGroupCreateError");
146
118
  /**
147
119
  * Update
148
120
  */
149
-
150
121
  const onGroupBeforeUpdate = (0, _pubsub.createTopic)("cms.onGroupBeforeUpdate");
151
122
  const onGroupAfterUpdate = (0, _pubsub.createTopic)("cms.onGroupAfterUpdate");
152
123
  const onGroupUpdateError = (0, _pubsub.createTopic)("cms.onGroupUpdateError");
153
124
  /**
154
125
  * Delete
155
126
  */
156
-
157
127
  const onGroupBeforeDelete = (0, _pubsub.createTopic)("cms.onGroupBeforeDelete");
158
128
  const onGroupAfterDelete = (0, _pubsub.createTopic)("cms.onGroupAfterDelete");
159
129
  const onGroupDeleteError = (0, _pubsub.createTopic)("cms.onGroupDeleteError");
130
+
160
131
  /**
161
132
  * We need to assign some default behaviors.
162
133
  */
163
-
164
134
  (0, _beforeCreate.assignBeforeGroupCreate)({
165
135
  onGroupBeforeCreate,
166
136
  plugins: context.plugins,
@@ -185,7 +155,6 @@ const createModelGroupsCrud = params => {
185
155
  onAfterGroupUpdate: onGroupAfterUpdate,
186
156
  onBeforeGroupDelete: onGroupBeforeDelete,
187
157
  onAfterGroupDelete: onGroupAfterDelete,
188
-
189
158
  /**
190
159
  * Released in 5.34.0
191
160
  */
@@ -225,18 +194,15 @@ const createModelGroupsCrud = params => {
225
194
  if (!(0, _ownership.validateOwnership)(context, permission, group)) {
226
195
  return false;
227
196
  }
228
-
229
197
  return (0, _access.validateGroupAccess)(context, permission, group);
230
198
  });
231
199
  },
232
200
  createGroup: async input => {
233
201
  await checkPermissions("w");
234
202
  const result = await (0, _validation.createGroupCreateValidation)().safeParseAsync(input);
235
-
236
203
  if (!result.success) {
237
204
  throw (0, _utils.createZodError)(result.error);
238
205
  }
239
-
240
206
  const data = result.data;
241
207
  const identity = getIdentity();
242
208
  const id = (0, _mdbid.default)();
@@ -253,7 +219,6 @@ const createModelGroupsCrud = params => {
253
219
  },
254
220
  webinyVersion: context.WEBINY_VERSION
255
221
  });
256
-
257
222
  try {
258
223
  await onGroupBeforeCreate.publish({
259
224
  group
@@ -283,26 +248,22 @@ const createModelGroupsCrud = params => {
283
248
  const original = await groupsGet(id);
284
249
  (0, _ownership.checkOwnership)(context, permission, original);
285
250
  const result = await (0, _validation.createGroupUpdateValidation)().safeParseAsync(input);
286
-
287
251
  if (!result.success) {
288
252
  throw (0, _utils.createZodError)(result.error);
289
253
  }
290
-
291
254
  const data = result.data;
255
+
292
256
  /**
293
257
  * No need to continue if no values were changed
294
258
  */
295
-
296
259
  if (Object.keys(data).length === 0) {
297
260
  return original;
298
261
  }
299
-
300
262
  const group = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data), {}, {
301
263
  locale: getLocale().code,
302
264
  tenant: getTenant().id,
303
265
  savedOn: new Date().toISOString()
304
266
  });
305
-
306
267
  try {
307
268
  await onGroupBeforeUpdate.publish({
308
269
  original,
@@ -336,7 +297,6 @@ const createModelGroupsCrud = params => {
336
297
  const permission = await checkPermissions("d");
337
298
  const group = await groupsGet(id);
338
299
  (0, _ownership.checkOwnership)(context, permission, group);
339
-
340
300
  try {
341
301
  await onGroupBeforeDelete.publish({
342
302
  group
@@ -357,10 +317,8 @@ const createModelGroupsCrud = params => {
357
317
  id
358
318
  }));
359
319
  }
360
-
361
320
  return true;
362
321
  }
363
322
  };
364
323
  };
365
-
366
324
  exports.createModelGroupsCrud = createModelGroupsCrud;
@@ -1 +1 @@
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
+ {"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"}
@@ -1,31 +1,20 @@
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.createSystemCrud = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _crypto = _interopRequireDefault(require("crypto"));
13
-
14
9
  var _apiSecurity = require("@webiny/api-security");
15
-
16
- var _apiUpgrade = require("@webiny/api-upgrade");
17
-
18
10
  var _error = _interopRequireDefault(require("@webiny/error"));
19
-
20
11
  var _pubsub = require("@webiny/pubsub");
21
-
22
12
  const initialContentModelGroup = {
23
13
  name: "Ungrouped",
24
14
  slug: "ungrouped",
25
15
  description: "A generic content model group",
26
16
  icon: "fas/star"
27
17
  };
28
-
29
18
  const createSystemCrud = params => {
30
19
  const {
31
20
  getTenant,
@@ -37,22 +26,15 @@ const createSystemCrud = params => {
37
26
  const onSystemBeforeInstall = (0, _pubsub.createTopic)("cms.onSystemBeforeInstall");
38
27
  const onSystemAfterInstall = (0, _pubsub.createTopic)("cms.onSystemAfterInstall");
39
28
  const onSystemInstallError = (0, _pubsub.createTopic)("cms.onSystemInstallError");
40
-
41
- const createReadAPIKey = () => {
42
- return _crypto.default.randomBytes(Math.ceil(48 / 2)).toString("hex");
43
- };
44
-
45
29
  const getVersion = async () => {
46
30
  if (!getTenant()) {
47
31
  return null;
48
32
  }
49
-
50
33
  const system = await storageOperations.system.get({
51
34
  tenant: getTenant().id
52
35
  });
53
36
  return (system === null || system === void 0 ? void 0 : system.version) || null;
54
37
  };
55
-
56
38
  const setVersion = async version => {
57
39
  const original = await storageOperations.system.get({
58
40
  tenant: getTenant().id
@@ -61,26 +43,22 @@ const createSystemCrud = params => {
61
43
  version,
62
44
  tenant: getTenant().id
63
45
  });
64
-
65
46
  if (!original) {
66
47
  await storageOperations.system.create({
67
48
  system
68
49
  });
69
50
  return;
70
51
  }
71
-
72
52
  await storageOperations.system.update({
73
53
  system
74
54
  });
75
55
  };
76
-
77
56
  return {
78
57
  /**
79
58
  * Deprecated - will be removed in 5.36.0
80
59
  */
81
60
  onBeforeSystemInstall: onSystemBeforeInstall,
82
61
  onAfterSystemInstall: onSystemAfterInstall,
83
-
84
62
  /**
85
63
  * Released in 5.34.0
86
64
  */
@@ -89,41 +67,15 @@ const createSystemCrud = params => {
89
67
  onSystemInstallError,
90
68
  getSystemVersion: getVersion,
91
69
  setSystemVersion: setVersion,
92
- getReadAPIKey: async () => {
93
- const original = await storageOperations.system.get({
94
- tenant: getTenant().id
95
- });
96
-
97
- if (!original) {
98
- return null;
99
- }
100
-
101
- if (!original.readAPIKey) {
102
- const readAPIKey = createReadAPIKey();
103
- const system = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), {}, {
104
- readAPIKey
105
- });
106
- await storageOperations.system.update({
107
- system
108
- });
109
- return readAPIKey;
110
- }
111
-
112
- return original.readAPIKey;
113
- },
114
70
  installSystem: async () => {
115
71
  const identity = getIdentity();
116
-
117
72
  if (!identity) {
118
73
  throw new _apiSecurity.NotAuthorizedError();
119
74
  }
120
-
121
75
  const version = await getVersion();
122
-
123
76
  if (version) {
124
77
  return;
125
78
  }
126
-
127
79
  try {
128
80
  /**
129
81
  * First trigger before install event.
@@ -132,10 +84,10 @@ const createSystemCrud = params => {
132
84
  tenant: getTenant().id,
133
85
  locale: getLocale().code
134
86
  });
87
+
135
88
  /**
136
89
  * Add default content model group.
137
90
  */
138
-
139
91
  try {
140
92
  await context.cms.createGroup(initialContentModelGroup);
141
93
  } catch (ex) {
@@ -143,23 +95,19 @@ const createSystemCrud = params => {
143
95
  group: initialContentModelGroup
144
96
  });
145
97
  }
146
-
147
98
  const system = {
148
99
  version: context.WEBINY_VERSION,
149
- readAPIKey: createReadAPIKey(),
150
100
  tenant: getTenant().id
151
101
  };
152
102
  /**
153
103
  * We need to create the system data.
154
104
  */
155
-
156
105
  await storageOperations.system.create({
157
106
  system
158
107
  });
159
108
  /**
160
109
  * And trigger after install event.
161
110
  */
162
-
163
111
  await onSystemAfterInstall.publish({
164
112
  tenant: getTenant().id,
165
113
  locale: getLocale().code
@@ -172,50 +120,7 @@ const createSystemCrud = params => {
172
120
  });
173
121
  throw new _error.default(ex.message, ex.code, ex.data);
174
122
  }
175
- },
176
-
177
- async upgradeSystem(version) {
178
- const identity = getIdentity();
179
-
180
- if (!identity) {
181
- throw new _apiSecurity.NotAuthorizedError();
182
- }
183
-
184
- const upgradePlugins = context.plugins.byType("api-upgrade").filter(pl => pl.app === "headless-cms");
185
- const installedAppVersion = await this.getSystemVersion();
186
- let plugin = undefined;
187
-
188
- try {
189
- plugin = (0, _apiUpgrade.getApplicablePlugin)({
190
- deployedVersion: context.WEBINY_VERSION,
191
- installedAppVersion,
192
- upgradePlugins,
193
- upgradeToVersion: version
194
- });
195
- } catch (ex) {
196
- /**
197
- * We just let the error disappear if is UPGRADE_NOT_AVAILABLE code
198
- * and rethrow if is not.
199
- * This is because we want upgrade to pass if there is no plugin available.
200
- */
201
- if (ex.code !== _apiUpgrade.ErrorCode.UPGRADE_NOT_AVAILABLE) {
202
- throw ex;
203
- }
204
- }
205
-
206
- if (plugin) {
207
- await plugin.apply(context);
208
- }
209
- /**
210
- * Store new app version.
211
- */
212
-
213
-
214
- await setVersion(version);
215
- return true;
216
123
  }
217
-
218
124
  };
219
125
  };
220
-
221
126
  exports.createSystemCrud = createSystemCrud;