@webiny/api-headless-cms 0.0.0-unstable.d4f203fa97 → 0.0.0-unstable.d7f521b032

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 (343) 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 +16 -29
  13. package/crud/contentEntry/markLockedFields.js.map +1 -1
  14. package/crud/contentEntry/referenceFieldsMapping.js +12 -64
  15. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  16. package/crud/contentEntry/searchableFields.d.ts +9 -0
  17. package/crud/contentEntry/searchableFields.js +72 -0
  18. package/crud/contentEntry/searchableFields.js.map +1 -0
  19. package/crud/contentEntry.crud.js +120 -181
  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.d.ts +2 -3
  30. package/crud/contentModel/beforeCreate.js +7 -36
  31. package/crud/contentModel/beforeCreate.js.map +1 -1
  32. package/crud/contentModel/beforeDelete.js +0 -10
  33. package/crud/contentModel/beforeDelete.js.map +1 -1
  34. package/crud/contentModel/beforeUpdate.d.ts +2 -4
  35. package/crud/contentModel/beforeUpdate.js +2 -7
  36. package/crud/contentModel/beforeUpdate.js.map +1 -1
  37. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  38. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  39. package/crud/contentModel/createFieldStorageId.js +4 -3
  40. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  41. package/crud/contentModel/models.js +12 -0
  42. package/crud/contentModel/models.js.map +1 -1
  43. package/crud/contentModel/systemFields.js.map +1 -1
  44. package/crud/contentModel/validateLayout.js +0 -8
  45. package/crud/contentModel/validateLayout.js.map +1 -1
  46. package/crud/contentModel/validateModel.d.ts +3 -4
  47. package/crud/contentModel/validateModel.js +6 -11
  48. package/crud/contentModel/validateModel.js.map +1 -1
  49. package/crud/contentModel/validateModelFields.d.ts +3 -4
  50. package/crud/contentModel/validateModelFields.js +118 -97
  51. package/crud/contentModel/validateModelFields.js.map +1 -1
  52. package/crud/contentModel/validation.d.ts +477 -0
  53. package/crud/contentModel/validation.js +97 -0
  54. package/crud/contentModel/validation.js.map +1 -0
  55. package/crud/contentModel.crud.js +219 -269
  56. package/crud/contentModel.crud.js.map +1 -1
  57. package/crud/contentModelGroup/beforeCreate.js +0 -12
  58. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  59. package/crud/contentModelGroup/beforeDelete.js +0 -8
  60. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  61. package/crud/contentModelGroup/beforeUpdate.js +0 -5
  62. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  63. package/crud/contentModelGroup/validation.d.ts +30 -0
  64. package/crud/contentModelGroup/validation.js +34 -0
  65. package/crud/contentModelGroup/validation.js.map +1 -0
  66. package/crud/contentModelGroup.crud.js +53 -95
  67. package/crud/contentModelGroup.crud.js.map +1 -1
  68. package/crud/settings.crud.js +0 -12
  69. package/crud/settings.crud.js.map +1 -1
  70. package/crud/system.crud.js +2 -37
  71. package/crud/system.crud.js.map +1 -1
  72. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
  73. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  74. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  75. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
  76. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  77. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
  78. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  79. package/fieldConverters/index.d.ts +2 -1
  80. package/fieldConverters/index.js +2 -5
  81. package/fieldConverters/index.js.map +1 -1
  82. package/graphql/buildSchemaPlugins.d.ts +8 -3
  83. package/graphql/buildSchemaPlugins.js +6 -14
  84. package/graphql/buildSchemaPlugins.js.map +1 -1
  85. package/graphql/createExecutableSchema.d.ts +7 -0
  86. package/graphql/createExecutableSchema.js +29 -0
  87. package/graphql/createExecutableSchema.js.map +1 -0
  88. package/graphql/generateSchema.d.ts +8 -0
  89. package/graphql/generateSchema.js +31 -0
  90. package/graphql/generateSchema.js.map +1 -0
  91. package/graphql/graphQLHandlerFactory.js +90 -74
  92. package/graphql/graphQLHandlerFactory.js.map +1 -1
  93. package/graphql/index.d.ts +1 -3
  94. package/graphql/index.js +2 -46
  95. package/graphql/index.js.map +1 -1
  96. package/graphql/schema/baseContentSchema.d.ts +6 -2
  97. package/graphql/schema/baseContentSchema.js +9 -13
  98. package/graphql/schema/baseContentSchema.js.map +1 -1
  99. package/graphql/schema/baseSchema.d.ts +3 -0
  100. package/graphql/schema/baseSchema.js +53 -0
  101. package/graphql/schema/baseSchema.js.map +1 -0
  102. package/graphql/schema/contentEntries.d.ts +6 -2
  103. package/graphql/schema/contentEntries.js +39 -65
  104. package/graphql/schema/contentEntries.js.map +1 -1
  105. package/graphql/schema/contentModelGroups.d.ts +6 -2
  106. package/graphql/schema/contentModelGroups.js +9 -22
  107. package/graphql/schema/contentModelGroups.js.map +1 -1
  108. package/graphql/schema/contentModels.d.ts +6 -2
  109. package/graphql/schema/contentModels.js +42 -25
  110. package/graphql/schema/contentModels.js.map +1 -1
  111. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  112. package/graphql/schema/createFieldResolvers.js +20 -27
  113. package/graphql/schema/createFieldResolvers.js.map +1 -1
  114. package/graphql/schema/createManageResolvers.js +0 -26
  115. package/graphql/schema/createManageResolvers.js.map +1 -1
  116. package/graphql/schema/createManageSDL.d.ts +2 -0
  117. package/graphql/schema/createManageSDL.js +8 -19
  118. package/graphql/schema/createManageSDL.js.map +1 -1
  119. package/graphql/schema/createPreviewResolvers.js +0 -10
  120. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  121. package/graphql/schema/createReadResolvers.js +5 -10
  122. package/graphql/schema/createReadResolvers.js.map +1 -1
  123. package/graphql/schema/createReadSDL.d.ts +2 -0
  124. package/graphql/schema/createReadSDL.js +11 -15
  125. package/graphql/schema/createReadSDL.js.map +1 -1
  126. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -2
  127. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  128. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  129. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  130. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  131. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  132. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  133. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  134. package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
  135. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  136. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  137. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  138. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  139. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  140. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  141. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  142. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  143. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  144. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  145. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  146. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  147. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  148. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  149. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  150. package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
  151. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  152. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  153. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  154. package/graphql/schema/resolvers/read/resolveGet.js +0 -8
  155. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  156. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  157. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  158. package/graphql/schema/schemaPlugins.d.ts +8 -3
  159. package/graphql/schema/schemaPlugins.js +63 -65
  160. package/graphql/schema/schemaPlugins.js.map +1 -1
  161. package/graphql/system.js +69 -85
  162. package/graphql/system.js.map +1 -1
  163. package/graphqlFields/boolean.js +0 -12
  164. package/graphqlFields/boolean.js.map +1 -1
  165. package/graphqlFields/datetime.js +0 -17
  166. package/graphqlFields/datetime.js.map +1 -1
  167. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  168. package/graphqlFields/dynamicZone/dynamicZoneField.js +208 -0
  169. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  170. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  171. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +63 -0
  172. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  173. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  174. package/graphqlFields/dynamicZone/index.js +19 -0
  175. package/graphqlFields/dynamicZone/index.js.map +1 -0
  176. package/graphqlFields/file.js +0 -8
  177. package/graphqlFields/file.js.map +1 -1
  178. package/graphqlFields/helpers.js +0 -10
  179. package/graphqlFields/helpers.js.map +1 -1
  180. package/graphqlFields/index.d.ts +1 -1
  181. package/graphqlFields/index.js +2 -12
  182. package/graphqlFields/index.js.map +1 -1
  183. package/graphqlFields/longText.js +0 -10
  184. package/graphqlFields/longText.js.map +1 -1
  185. package/graphqlFields/number.js +0 -12
  186. package/graphqlFields/number.js.map +1 -1
  187. package/graphqlFields/object.js +112 -98
  188. package/graphqlFields/object.js.map +1 -1
  189. package/graphqlFields/ref.js +48 -96
  190. package/graphqlFields/ref.js.map +1 -1
  191. package/graphqlFields/richText.js +0 -9
  192. package/graphqlFields/richText.js.map +1 -1
  193. package/graphqlFields/text.js +0 -11
  194. package/graphqlFields/text.js.map +1 -1
  195. package/index.d.ts +3 -3
  196. package/index.js +3 -26
  197. package/index.js.map +1 -1
  198. package/modelManager/DefaultCmsModelManager.js +0 -16
  199. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  200. package/modelManager/index.js +0 -4
  201. package/modelManager/index.js.map +1 -1
  202. package/package.json +28 -28
  203. package/parameters/context.js +0 -4
  204. package/parameters/context.js.map +1 -1
  205. package/parameters/header.js +0 -11
  206. package/parameters/header.js.map +1 -1
  207. package/parameters/index.js +0 -8
  208. package/parameters/index.js.map +1 -1
  209. package/parameters/manual.js +1 -8
  210. package/parameters/manual.js.map +1 -1
  211. package/parameters/path.js +0 -11
  212. package/parameters/path.js.map +1 -1
  213. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  214. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  215. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  216. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  217. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  218. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  219. package/plugins/CmsGroupPlugin.js +0 -8
  220. package/plugins/CmsGroupPlugin.js.map +1 -1
  221. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  222. package/plugins/CmsModelFieldConverterPlugin.js +0 -5
  223. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  224. package/plugins/CmsModelPlugin.js +2 -38
  225. package/plugins/CmsModelPlugin.js.map +1 -1
  226. package/plugins/CmsParametersPlugin.js +0 -7
  227. package/plugins/CmsParametersPlugin.js.map +1 -1
  228. package/plugins/StorageTransformPlugin.d.ts +11 -11
  229. package/plugins/StorageTransformPlugin.js +0 -9
  230. package/plugins/StorageTransformPlugin.js.map +1 -1
  231. package/plugins/index.d.ts +2 -0
  232. package/plugins/index.js +22 -10
  233. package/plugins/index.js.map +1 -1
  234. package/storage/default.js +0 -3
  235. package/storage/default.js.map +1 -1
  236. package/storage/object.js +4 -20
  237. package/storage/object.js.map +1 -1
  238. package/types.d.ts +235 -57
  239. package/types.js +62 -69
  240. package/types.js.map +1 -1
  241. package/upgrades/5.33.0/index.js +3 -26
  242. package/upgrades/5.33.0/index.js.map +1 -1
  243. package/upgrades/index.js +0 -3
  244. package/upgrades/index.js.map +1 -1
  245. package/utils/access.js +11 -25
  246. package/utils/access.js.map +1 -1
  247. package/utils/converters/Converter.js +0 -13
  248. package/utils/converters/Converter.js.map +1 -1
  249. package/utils/converters/ConverterCollection.js +14 -34
  250. package/utils/converters/ConverterCollection.js.map +1 -1
  251. package/utils/converters/valueKeyStorageConverter.js +0 -26
  252. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  253. package/utils/createTypeFromFields.d.ts +15 -0
  254. package/utils/createTypeFromFields.js +64 -0
  255. package/utils/createTypeFromFields.js.map +1 -0
  256. package/utils/createTypeName.js +2 -9
  257. package/utils/createTypeName.js.map +1 -1
  258. package/utils/entryStorage.js +22 -35
  259. package/utils/entryStorage.js.map +1 -1
  260. package/utils/filterAsync.js +0 -5
  261. package/utils/filterAsync.js.map +1 -1
  262. package/utils/getBaseFieldType.d.ts +4 -0
  263. package/utils/getBaseFieldType.js +10 -0
  264. package/utils/getBaseFieldType.js.map +1 -0
  265. package/utils/getEntryTitle.js +0 -9
  266. package/utils/getEntryTitle.js.map +1 -1
  267. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  268. package/utils/getSchemaFromFieldPlugins.js +23 -19
  269. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  270. package/utils/ownership.js +0 -8
  271. package/utils/ownership.js.map +1 -1
  272. package/utils/permissions.js +8 -23
  273. package/utils/permissions.js.map +1 -1
  274. package/utils/pluralizedTypeName.js +0 -6
  275. package/utils/pluralizedTypeName.js.map +1 -1
  276. package/utils/renderFields.js +2 -9
  277. package/utils/renderFields.js.map +1 -1
  278. package/utils/renderGetFilterFields.js +6 -14
  279. package/utils/renderGetFilterFields.js.map +1 -1
  280. package/utils/renderInputFields.js +2 -9
  281. package/utils/renderInputFields.js.map +1 -1
  282. package/utils/renderListFilterFields.js +4 -10
  283. package/utils/renderListFilterFields.js.map +1 -1
  284. package/utils/renderSortEnum.d.ts +7 -4
  285. package/utils/renderSortEnum.js +21 -11
  286. package/utils/renderSortEnum.js.map +1 -1
  287. package/utils/toSlug.js +0 -4
  288. package/utils/toSlug.js.map +1 -1
  289. package/validators/dateGte.js +0 -7
  290. package/validators/dateGte.js.map +1 -1
  291. package/validators/dateLte.js +0 -7
  292. package/validators/dateLte.js.map +1 -1
  293. package/validators/dynamicZone.d.ts +2 -0
  294. package/validators/dynamicZone.js +20 -0
  295. package/validators/dynamicZone.js.map +1 -0
  296. package/validators/gte.js +0 -8
  297. package/validators/gte.js.map +1 -1
  298. package/validators/in.js +0 -8
  299. package/validators/in.js.map +1 -1
  300. package/validators/index.js +2 -16
  301. package/validators/index.js.map +1 -1
  302. package/validators/lte.js +0 -8
  303. package/validators/lte.js.map +1 -1
  304. package/validators/maxLength.js +0 -8
  305. package/validators/maxLength.js.map +1 -1
  306. package/validators/minLength.js +0 -8
  307. package/validators/minLength.js.map +1 -1
  308. package/validators/pattern.js +0 -9
  309. package/validators/pattern.js.map +1 -1
  310. package/validators/patternPlugins/email.js +0 -2
  311. package/validators/patternPlugins/email.js.map +1 -1
  312. package/validators/patternPlugins/index.js +0 -8
  313. package/validators/patternPlugins/index.js.map +1 -1
  314. package/validators/patternPlugins/lowerCase.js +0 -2
  315. package/validators/patternPlugins/lowerCase.js.map +1 -1
  316. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  317. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  318. package/validators/patternPlugins/upperCase.js +0 -2
  319. package/validators/patternPlugins/upperCase.js.map +1 -1
  320. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  321. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  322. package/validators/patternPlugins/url.js +0 -2
  323. package/validators/patternPlugins/url.js.map +1 -1
  324. package/validators/required.js +0 -5
  325. package/validators/required.js.map +1 -1
  326. package/validators/timeGte.js +0 -8
  327. package/validators/timeGte.js.map +1 -1
  328. package/validators/timeLte.js +0 -8
  329. package/validators/timeLte.js.map +1 -1
  330. package/validators/unique.js +0 -7
  331. package/validators/unique.js.map +1 -1
  332. package/crud/index.d.ts +0 -6
  333. package/crud/index.js +0 -85
  334. package/crud/index.js.map +0 -1
  335. package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
  336. package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
  337. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
  338. package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
  339. package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
  340. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
  341. package/utils/filterModelFields.d.ts +0 -16
  342. package/utils/filterModelFields.js +0 -77
  343. package/utils/filterModelFields.js.map +0 -1
@@ -1,106 +1,42 @@
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.createModelsCrud = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _dataloader = _interopRequireDefault(require("dataloader"));
13
-
10
+ var _error = _interopRequireDefault(require("@webiny/error"));
14
11
  var _handlerGraphql = require("@webiny/handler-graphql");
15
-
16
12
  var _contentModelManagerFactory = require("./contentModel/contentModelManagerFactory");
17
-
18
- var _models = require("./contentModel/models");
19
-
20
- var _createFieldModels = require("./contentModel/createFieldModels");
21
-
22
- var _error = _interopRequireDefault(require("@webiny/error"));
23
-
24
13
  var _pubsub = require("@webiny/pubsub");
25
-
26
14
  var _beforeCreate = require("./contentModel/beforeCreate");
27
-
28
15
  var _beforeUpdate = require("./contentModel/beforeUpdate");
29
-
30
16
  var _beforeDelete = require("./contentModel/beforeDelete");
31
-
32
17
  var _afterCreate = require("./contentModel/afterCreate");
33
-
34
18
  var _afterUpdate = require("./contentModel/afterUpdate");
35
-
36
19
  var _afterDelete = require("./contentModel/afterDelete");
37
-
38
20
  var _afterCreateFrom = require("./contentModel/afterCreateFrom");
39
-
40
21
  var _CmsModelPlugin = require("../plugins/CmsModelPlugin");
41
-
42
22
  var _permissions = require("../utils/permissions");
43
-
44
23
  var _filterAsync = require("../utils/filterAsync");
45
-
46
24
  var _ownership = require("../utils/ownership");
47
-
48
25
  var _access = require("../utils/access");
49
-
50
- var _validateModelFields = require("./contentModel/validateModelFields");
51
-
52
- var _semver = _interopRequireDefault(require("semver"));
53
-
26
+ var _validation = require("./contentModel/validation");
27
+ var _utils = require("@webiny/utils");
54
28
  /**
55
- * TODO: remove for 5.34.0
56
- * Required because of the 5.33.0 upgrade.
57
- * Until the upgrade is done, API will break because there is no storageId assigned.
29
+ * Given a model, return an array of tags ensuring the `type` tag is set.
58
30
  */
59
- const featureVersion = _semver.default.coerce("5.33.0");
60
-
61
- const attachStorageIdToFields = fields => {
62
- return fields.map(field => {
63
- var _field$settings;
64
-
65
- if ((_field$settings = field.settings) !== null && _field$settings !== void 0 && _field$settings.fields) {
66
- field.settings.fields = attachStorageIdToFields(field.settings.fields);
67
- }
68
-
69
- if (!field.storageId) {
70
- field.storageId = field.fieldId;
71
- }
72
-
73
- return field;
74
- });
75
- };
76
-
77
- const attachStorageIdToModelFields = model => {
78
- if (!model.webinyVersion) {
79
- return model.fields;
31
+ const ensureTypeTag = model => {
32
+ // Let's make sure we have a `type` tag assigned.
33
+ // If `type` tag is not set, set it to a default one (`model`).
34
+ const tags = model.tags || [];
35
+ if (!tags.some(tag => tag.startsWith("type:"))) {
36
+ tags.push("type:model");
80
37
  }
81
-
82
- const version = _semver.default.coerce(model.webinyVersion);
83
-
84
- if (!version) {
85
- return model.fields;
86
- }
87
- /**
88
- * Unfortunately we need to check for beta and next.
89
- * TODO remove after 5.33.0
90
- */
91
-
92
-
93
- if (model.webinyVersion.match(/beta|next/)) {
94
- return attachStorageIdToFields(model.fields);
95
- }
96
-
97
- if (_semver.default.compare(version, featureVersion) >= 0) {
98
- return model.fields;
99
- }
100
-
101
- return attachStorageIdToFields(model.fields);
38
+ return tags;
102
39
  };
103
-
104
40
  const createModelsCrud = params => {
105
41
  const {
106
42
  getTenant,
@@ -119,105 +55,80 @@ const createModelsCrud = params => {
119
55
  });
120
56
  return [models.map(model => {
121
57
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
122
- fields: attachStorageIdToModelFields(model),
58
+ tags: ensureTypeTag(model),
123
59
  tenant: model.tenant || getTenant().id,
124
60
  locale: model.locale || getLocale().code
125
61
  });
126
62
  })];
127
63
  })
128
64
  };
129
-
130
65
  const clearModelsCache = () => {
131
66
  for (const loader of Object.values(loaders)) {
132
67
  loader.clearAll();
133
68
  }
134
69
  };
135
-
136
70
  const managers = new Map();
137
-
138
71
  const updateManager = async (context, model) => {
139
72
  const manager = await (0, _contentModelManagerFactory.contentModelManagerFactory)(context, model);
140
73
  managers.set(model.modelId, manager);
141
74
  return manager;
142
75
  };
143
-
144
76
  const checkModelPermissions = check => {
145
77
  return (0, _permissions.checkPermissions)(context, "cms.contentModel", {
146
78
  rwd: check
147
79
  });
148
80
  };
149
-
150
81
  const getModelsAsPlugins = () => {
151
82
  const tenant = getTenant().id;
152
83
  const locale = getLocale().code;
153
- const models = context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type)
84
+ return context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type)
154
85
  /**
155
86
  * We need to filter out models that are not for this tenant or locale.
156
87
  * If it does not have tenant or locale define, it is for every locale and tenant
157
- */
158
- .filter(plugin => {
88
+ */.filter(plugin => {
159
89
  const {
160
- tenant: t,
161
- locale: l
90
+ tenant: modelTenant,
91
+ locale: modelLocale
162
92
  } = plugin.contentModel;
163
-
164
- if (t && t !== tenant) {
93
+ if (modelTenant && modelTenant !== tenant) {
165
94
  return false;
166
- } else if (l && l !== locale) {
95
+ } else if (modelLocale && modelLocale !== locale) {
167
96
  return false;
168
97
  }
169
-
170
98
  return true;
171
99
  }).map(plugin => {
172
100
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugin.contentModel), {}, {
101
+ tags: ensureTypeTag(plugin.contentModel),
173
102
  tenant,
174
103
  locale,
175
104
  webinyVersion: context.WEBINY_VERSION
176
105
  });
177
106
  });
178
- /**
179
- * Only point where we can truly validate the user model is in the runtime.
180
- */
181
-
182
- for (const model of models) {
183
- (0, _validateModelFields.validateModelFields)({
184
- model,
185
- plugins: context.plugins
186
- });
187
- }
188
-
189
- return models;
190
107
  };
191
-
192
108
  const modelsGet = async modelId => {
193
109
  const pluginModel = getModelsAsPlugins().find(model => model.modelId === modelId);
194
-
195
110
  if (pluginModel) {
196
111
  return pluginModel;
197
112
  }
198
-
199
113
  const model = await storageOperations.models.get({
200
114
  tenant: getTenant().id,
201
115
  locale: getLocale().code,
202
116
  modelId
203
117
  });
204
-
205
118
  if (!model) {
206
119
  throw new _handlerGraphql.NotFoundError(`Content model "${modelId}" was not found!`);
207
120
  }
208
-
209
121
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
122
+ tags: ensureTypeTag(model),
210
123
  tenant: model.tenant || getTenant().id,
211
124
  locale: model.locale || getLocale().code
212
125
  });
213
126
  };
214
-
215
127
  const modelsList = async () => {
216
128
  const databaseModels = await loaders.listModels.load("listModels");
217
129
  const pluginsModels = getModelsAsPlugins();
218
130
  return databaseModels.concat(pluginsModels);
219
131
  };
220
-
221
132
  const listModels = async () => {
222
133
  const permission = await checkModelPermissions("r");
223
134
  const models = await modelsList();
@@ -225,11 +136,9 @@ const createModelsCrud = params => {
225
136
  if (!(0, _ownership.validateOwnership)(context, permission, model)) {
226
137
  return false;
227
138
  }
228
-
229
139
  return (0, _access.validateModelAccess)(context, model);
230
140
  });
231
141
  };
232
-
233
142
  const getModel = async modelId => {
234
143
  const permission = await checkModelPermissions("r");
235
144
  const model = await modelsGet(modelId);
@@ -237,45 +146,54 @@ const createModelsCrud = params => {
237
146
  await (0, _access.checkModelAccess)(context, model);
238
147
  return model;
239
148
  };
240
-
241
149
  const getModelManager = async target => {
242
150
  const modelId = typeof target === "string" ? target : target.modelId;
243
-
244
151
  if (managers.has(modelId)) {
245
152
  return managers.get(modelId);
246
153
  }
247
-
248
154
  const models = await modelsList();
249
155
  const model = models.find(m => m.modelId === modelId);
250
-
251
156
  if (!model) {
252
157
  throw new _handlerGraphql.NotFoundError(`There is no content model "${modelId}".`);
253
158
  }
254
-
255
159
  return await updateManager(context, model);
256
- }; // create
257
-
160
+ };
258
161
 
162
+ /**
163
+ * Create
164
+ */
259
165
  const onModelBeforeCreate = (0, _pubsub.createTopic)("cms.onModelBeforeCreate");
260
- const onModelAfterCreate = (0, _pubsub.createTopic)("cms.onModelAfterCreate"); // create from
261
-
166
+ const onModelAfterCreate = (0, _pubsub.createTopic)("cms.onModelAfterCreate");
167
+ const onModelCreateError = (0, _pubsub.createTopic)("cms.onModelCreateError");
168
+ /**
169
+ * Create from / clone
170
+ */
262
171
  const onModelBeforeCreateFrom = (0, _pubsub.createTopic)("cms.onModelBeforeCreateFrom");
263
- const onModelAfterCreateFrom = (0, _pubsub.createTopic)("cms.onModelAfterCreateFrom"); // update
264
-
172
+ const onModelAfterCreateFrom = (0, _pubsub.createTopic)("cms.onModelAfterCreateFrom");
173
+ const onModelCreateFromError = (0, _pubsub.createTopic)("cms.onModelCreateFromError");
174
+ /**
175
+ * Update
176
+ */
265
177
  const onModelBeforeUpdate = (0, _pubsub.createTopic)("cms.onModelBeforeUpdate");
266
- const onModelAfterUpdate = (0, _pubsub.createTopic)("cms.onModelAfterUpdate"); // delete
267
-
178
+ const onModelAfterUpdate = (0, _pubsub.createTopic)("cms.onModelAfterUpdate");
179
+ const onModelUpdateError = (0, _pubsub.createTopic)("cms.onModelUpdateError");
180
+ /**
181
+ * Delete
182
+ */
268
183
  const onModelBeforeDelete = (0, _pubsub.createTopic)("cms.onModelBeforeDelete");
269
184
  const onModelAfterDelete = (0, _pubsub.createTopic)("cms.onModelAfterDelete");
185
+ const onModelDeleteError = (0, _pubsub.createTopic)("cms.onModelDeleteError");
186
+ /**
187
+ * Initialize
188
+ */
270
189
  const onModelInitialize = (0, _pubsub.createTopic)("cms.onModelInitialize");
271
190
  /**
272
191
  * We need to assign some default behaviors.
273
192
  */
274
-
275
193
  (0, _beforeCreate.assignModelBeforeCreate)({
276
194
  onModelBeforeCreate,
277
195
  onModelBeforeCreateFrom,
278
- plugins: context.plugins,
196
+ context,
279
197
  storageOperations
280
198
  });
281
199
  (0, _afterCreate.assignModelAfterCreate)({
@@ -284,8 +202,7 @@ const createModelsCrud = params => {
284
202
  });
285
203
  (0, _beforeUpdate.assignModelBeforeUpdate)({
286
204
  onModelBeforeUpdate,
287
- plugins: context.plugins,
288
- storageOperations
205
+ context
289
206
  });
290
207
  (0, _afterUpdate.assignModelAfterUpdate)({
291
208
  context,
@@ -316,42 +233,43 @@ const createModelsCrud = params => {
316
233
  onAfterModelUpdate: onModelAfterUpdate,
317
234
  onBeforeModelDelete: onModelBeforeDelete,
318
235
  onAfterModelDelete: onModelAfterDelete,
319
-
320
236
  /**
321
237
  * Released in 5.34.0
322
238
  */
323
239
  onModelBeforeCreate,
324
240
  onModelAfterCreate,
241
+ onModelCreateError,
325
242
  onModelBeforeCreateFrom,
326
243
  onModelAfterCreateFrom,
244
+ onModelCreateFromError,
327
245
  onModelBeforeUpdate,
328
246
  onModelAfterUpdate,
247
+ onModelUpdateError,
329
248
  onModelBeforeDelete,
330
249
  onModelAfterDelete,
250
+ onModelDeleteError,
331
251
  onModelInitialize,
332
252
  clearModelsCache,
333
253
  getModel,
334
254
  listModels,
335
-
336
- async createModel(inputData) {
255
+ async createModel(input) {
337
256
  await checkModelPermissions("w");
338
- const createdData = new _models.CreateContentModelModel().populate(inputData);
339
- await createdData.validate();
340
- const input = await createdData.toJSON();
257
+ const result = await (0, _validation.createModelCreateValidation)().safeParseAsync(input);
258
+ if (!result.success) {
259
+ throw (0, _utils.createZodError)(result.error);
260
+ }
261
+ const data = result.data;
341
262
  context.security.disableAuthorization();
342
- const group = await context.cms.getGroup(input.group);
263
+ const group = await context.cms.getGroup(data.group);
343
264
  context.security.enableAuthorization();
344
-
345
265
  if (!group) {
346
- throw new _handlerGraphql.NotFoundError(`There is no group "${input.group}".`);
266
+ throw new _handlerGraphql.NotFoundError(`There is no group "${data.group}".`);
347
267
  }
348
-
349
- const fields = await (0, _createFieldModels.createFieldModels)(input.fields);
350
268
  const identity = getIdentity();
351
269
  const model = {
352
- name: input.name,
353
- description: input.description || "",
354
- modelId: input.modelId || "",
270
+ name: data.name,
271
+ description: data.description || "",
272
+ modelId: data.modelId || "",
355
273
  titleFieldId: "id",
356
274
  locale: getLocale().code,
357
275
  tenant: getTenant().id,
@@ -366,27 +284,37 @@ const createModelsCrud = params => {
366
284
  },
367
285
  createdOn: new Date().toISOString(),
368
286
  savedOn: new Date().toISOString(),
369
- fields,
287
+ fields: data.fields,
370
288
  lockedFields: [],
371
- layout: input.layout || [],
289
+ layout: data.layout || [],
290
+ tags: [...(data.tags || [])],
372
291
  webinyVersion: context.WEBINY_VERSION
373
292
  };
374
- await onModelBeforeCreate.publish({
375
- input,
376
- model
377
- });
378
- const createdModel = await storageOperations.models.create({
379
- model
380
- });
381
- loaders.listModels.clearAll();
382
- await updateManager(context, model);
383
- await onModelAfterCreate.publish({
384
- input,
385
- model: createdModel
386
- });
387
- return createdModel;
293
+ model.tags = ensureTypeTag(model);
294
+ try {
295
+ await onModelBeforeCreate.publish({
296
+ input: data,
297
+ model
298
+ });
299
+ const createdModel = await storageOperations.models.create({
300
+ model
301
+ });
302
+ loaders.listModels.clearAll();
303
+ await updateManager(context, model);
304
+ await onModelAfterCreate.publish({
305
+ input: data,
306
+ model: createdModel
307
+ });
308
+ return createdModel;
309
+ } catch (ex) {
310
+ await onModelCreateError.publish({
311
+ input: data,
312
+ model,
313
+ error: ex
314
+ });
315
+ throw ex;
316
+ }
388
317
  },
389
-
390
318
  /**
391
319
  * Method does not check for permissions or ownership.
392
320
  * @internal
@@ -401,60 +329,65 @@ const createModelsCrud = params => {
401
329
  locale: initialModel.locale || getLocale().code,
402
330
  webinyVersion: context.WEBINY_VERSION
403
331
  });
404
- await onModelBeforeUpdate.publish({
405
- input: {},
406
- original,
407
- model
408
- });
409
- const resultModel = await storageOperations.models.update({
410
- model
411
- });
412
- await updateManager(context, resultModel);
413
- loaders.listModels.clearAll();
414
- await onModelAfterUpdate.publish({
415
- input: {},
416
- original,
417
- model: resultModel
418
- });
419
- return resultModel;
332
+ try {
333
+ await onModelBeforeUpdate.publish({
334
+ input: {},
335
+ original,
336
+ model
337
+ });
338
+ const resultModel = await storageOperations.models.update({
339
+ model
340
+ });
341
+ await updateManager(context, resultModel);
342
+ loaders.listModels.clearAll();
343
+ await onModelAfterUpdate.publish({
344
+ input: {},
345
+ original,
346
+ model: resultModel
347
+ });
348
+ return resultModel;
349
+ } catch (ex) {
350
+ await onModelUpdateError.publish({
351
+ input: {},
352
+ original,
353
+ model,
354
+ error: ex
355
+ });
356
+ throw ex;
357
+ }
420
358
  },
421
-
422
- async createModelFrom(modelId, data) {
359
+ async createModelFrom(modelId, userInput) {
423
360
  await checkModelPermissions("w");
424
361
  /**
425
362
  * Get a model record; this will also perform ownership validation.
426
363
  */
427
-
428
364
  const original = await getModel(modelId);
429
- const createdData = new _models.CreateContentModelModelFrom().populate({
430
- name: data.name,
431
- modelId: data.modelId,
432
- description: data.description || original.description,
433
- group: data.group,
434
- locale: data.locale
365
+ const result = await (0, _validation.createModelCreateFromValidation)().safeParseAsync({
366
+ name: userInput.name,
367
+ modelId: userInput.modelId,
368
+ description: userInput.description || original.description,
369
+ group: userInput.group,
370
+ locale: userInput.locale
435
371
  });
436
- await createdData.validate();
437
- const input = await createdData.toJSON();
438
- const locale = await context.i18n.getLocale(input.locale || original.locale);
439
-
372
+ if (!result.success) {
373
+ throw (0, _utils.createZodError)(result.error);
374
+ }
375
+ const data = result.data;
376
+ const locale = await context.i18n.getLocale(data.locale || original.locale);
440
377
  if (!locale) {
441
- throw new _handlerGraphql.NotFoundError(`There is no locale "${input.locale}".`);
378
+ throw new _handlerGraphql.NotFoundError(`There is no locale "${data.locale}".`);
442
379
  }
443
380
  /**
444
381
  * Use storage operations directly because we cannot get group from different locale via context methods.
445
382
  */
446
-
447
-
448
383
  const group = await context.cms.storageOperations.groups.get({
449
- id: input.group,
384
+ id: data.group,
450
385
  tenant: original.tenant,
451
386
  locale: locale.code
452
387
  });
453
-
454
388
  if (!group) {
455
- throw new _handlerGraphql.NotFoundError(`There is no group "${input.group}".`);
389
+ throw new _handlerGraphql.NotFoundError(`There is no group "${data.group}".`);
456
390
  }
457
-
458
391
  const identity = getIdentity();
459
392
  const model = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), {}, {
460
393
  locale: locale.code,
@@ -462,9 +395,9 @@ const createModelsCrud = params => {
462
395
  id: group.id,
463
396
  name: group.name
464
397
  },
465
- name: input.name,
466
- modelId: input.modelId || "",
467
- description: input.description || "",
398
+ name: data.name,
399
+ modelId: data.modelId || "",
400
+ description: data.description || "",
468
401
  createdBy: {
469
402
  id: identity.id,
470
403
  displayName: identity.displayName,
@@ -475,112 +408,130 @@ const createModelsCrud = params => {
475
408
  lockedFields: [],
476
409
  webinyVersion: context.WEBINY_VERSION
477
410
  });
478
- await onModelBeforeCreateFrom.publish({
479
- input,
480
- model,
481
- original
482
- });
483
- const createdModel = await storageOperations.models.create({
484
- model
485
- });
486
- loaders.listModels.clearAll();
487
- await updateManager(context, model);
488
- await onModelAfterCreateFrom.publish({
489
- input,
490
- original,
491
- model: createdModel
492
- });
493
- return createdModel;
411
+ try {
412
+ await onModelBeforeCreateFrom.publish({
413
+ input: data,
414
+ model,
415
+ original
416
+ });
417
+ const createdModel = await storageOperations.models.create({
418
+ model
419
+ });
420
+ loaders.listModels.clearAll();
421
+ await updateManager(context, model);
422
+ await onModelAfterCreateFrom.publish({
423
+ input: data,
424
+ original,
425
+ model: createdModel
426
+ });
427
+ return createdModel;
428
+ } catch (ex) {
429
+ await onModelCreateFromError.publish({
430
+ input: data,
431
+ original,
432
+ model,
433
+ error: ex
434
+ });
435
+ throw ex;
436
+ }
494
437
  },
438
+ async updateModel(modelId, input) {
439
+ await checkModelPermissions("w");
495
440
 
496
- async updateModel(modelId, inputData) {
497
- await checkModelPermissions("w"); // Get a model record; this will also perform ownership validation.
498
-
441
+ // Get a model record; this will also perform ownership validation.
499
442
  const original = await getModel(modelId);
500
- const updatedData = new _models.UpdateContentModelModel().populate(inputData);
501
- await updatedData.validate();
502
- const input = await updatedData.toJSON({
503
- onlyDirty: true
504
- });
505
-
506
- if (Object.keys(input).length === 0) {
443
+ const result = await (0, _validation.createModelUpdateValidation)().safeParseAsync(input);
444
+ if (!result.success) {
445
+ throw (0, _utils.createZodError)(result.error);
446
+ }
447
+ const data = result.data;
448
+ if (Object.keys(data).length === 0) {
507
449
  /**
508
450
  * We need to return the original if nothing is to be updated.
509
451
  */
510
452
  return original;
511
453
  }
512
-
513
454
  let group = {
514
455
  id: original.group.id,
515
456
  name: original.group.name
516
457
  };
517
-
518
- if (input.group) {
458
+ if (data.group) {
519
459
  context.security.disableAuthorization();
520
- const groupData = await context.cms.getGroup(input.group);
460
+ const groupData = await context.cms.getGroup(data.group);
521
461
  context.security.enableAuthorization();
522
-
523
462
  if (!groupData) {
524
- throw new _handlerGraphql.NotFoundError(`There is no group "${input.group}".`);
463
+ throw new _handlerGraphql.NotFoundError(`There is no group "${data.group}".`);
525
464
  }
526
-
527
465
  group = {
528
466
  id: groupData.id,
529
467
  name: groupData.name
530
468
  };
531
469
  }
532
-
533
- const fields = await (0, _createFieldModels.createFieldModels)(inputData.fields);
534
- const model = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), input), {}, {
470
+ const model = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data), {}, {
535
471
  group,
472
+ description: data.description || original.description,
536
473
  tenant: original.tenant || getTenant().id,
537
474
  locale: original.locale || getLocale().code,
538
475
  webinyVersion: context.WEBINY_VERSION,
539
- fields,
540
476
  savedOn: new Date().toISOString()
541
477
  });
542
- await onModelBeforeUpdate.publish({
543
- input,
544
- original,
545
- model
546
- });
547
- const resultModel = await storageOperations.models.update({
548
- model
549
- });
550
- await updateManager(context, resultModel);
551
- await onModelAfterUpdate.publish({
552
- input,
553
- original,
554
- model: resultModel
555
- });
556
- return resultModel;
478
+ model.tags = ensureTypeTag(model);
479
+ try {
480
+ await onModelBeforeUpdate.publish({
481
+ input: data,
482
+ original,
483
+ model
484
+ });
485
+ const resultModel = await storageOperations.models.update({
486
+ model
487
+ });
488
+ await updateManager(context, resultModel);
489
+ await onModelAfterUpdate.publish({
490
+ input: data,
491
+ original,
492
+ model: resultModel
493
+ });
494
+ return resultModel;
495
+ } catch (ex) {
496
+ await onModelUpdateError.publish({
497
+ input: data,
498
+ model,
499
+ original,
500
+ error: ex
501
+ });
502
+ throw ex;
503
+ }
557
504
  },
558
-
559
505
  async deleteModel(modelId) {
560
506
  await checkModelPermissions("d");
561
507
  const model = await getModel(modelId);
562
- await onModelBeforeDelete.publish({
563
- model
564
- });
565
-
566
508
  try {
567
- await storageOperations.models.delete({
509
+ await onModelBeforeDelete.publish({
510
+ model
511
+ });
512
+ try {
513
+ await storageOperations.models.delete({
514
+ model
515
+ });
516
+ } catch (ex) {
517
+ throw new _error.default(ex.message || "Could not delete the content model", ex.code || "CONTENT_MODEL_DELETE_ERROR", {
518
+ error: ex,
519
+ modelId: model.modelId
520
+ });
521
+ }
522
+ await onModelAfterDelete.publish({
568
523
  model
569
524
  });
525
+ managers.delete(model.modelId);
570
526
  } catch (ex) {
571
- throw new _error.default(ex.message || "Could not delete the content model", ex.code || "CONTENT_MODEL_DELETE_ERROR", {
572
- error: ex,
573
- modelId: model.modelId
527
+ await onModelDeleteError.publish({
528
+ model,
529
+ error: ex
574
530
  });
531
+ throw ex;
575
532
  }
576
-
577
- await onModelAfterDelete.publish({
578
- model
579
- });
580
- managers.delete(model.modelId);
581
533
  },
582
-
583
- async initializeModel(modelId) {
534
+ async initializeModel(modelId, data) {
584
535
  /**
585
536
  * We require that users have write permissions to initialize models.
586
537
  * Maybe introduce another permission for it?
@@ -588,11 +539,11 @@ const createModelsCrud = params => {
588
539
  await checkModelPermissions("w");
589
540
  const model = await getModel(modelId);
590
541
  await onModelInitialize.publish({
591
- model
542
+ model,
543
+ data
592
544
  });
593
545
  return true;
594
546
  },
595
-
596
547
  getModelManager,
597
548
  getEntryManager: async model => {
598
549
  return getModelManager(model);
@@ -601,5 +552,4 @@ const createModelsCrud = params => {
601
552
  getEntryManagers: () => managers
602
553
  };
603
554
  };
604
-
605
555
  exports.createModelsCrud = createModelsCrud;