@webiny/api-headless-cms 0.0.0-mt-3 → 0.0.0-unstable.8c4d9f045a

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