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

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 (568) hide show
  1. package/constants.d.ts +32 -0
  2. package/constants.js +57 -0
  3. package/constants.js.map +1 -0
  4. package/context.js +88 -47
  5. package/context.js.map +1 -1
  6. package/crud/contentEntry/afterDelete.js +3 -1
  7. package/crud/contentEntry/afterDelete.js.map +1 -1
  8. package/crud/contentEntry/beforeCreate.js +3 -1
  9. package/crud/contentEntry/beforeCreate.js.map +1 -1
  10. package/crud/contentEntry/beforeUpdate.js +3 -1
  11. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  12. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
  13. package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
  14. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
  15. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
  16. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
  17. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
  18. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
  19. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
  20. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
  21. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
  22. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
  23. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
  24. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
  25. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
  26. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
  27. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
  28. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
  29. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
  30. package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
  31. package/crud/contentEntry/entryDataFactories/index.js +95 -0
  32. package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
  33. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
  34. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
  35. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
  36. package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
  37. package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
  38. package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
  39. package/crud/contentEntry/entryDataValidation.d.ts +4 -2
  40. package/crud/contentEntry/entryDataValidation.js +223 -45
  41. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  42. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  43. package/crud/contentEntry/markLockedFields.js +20 -10
  44. package/crud/contentEntry/markLockedFields.js.map +1 -1
  45. package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
  46. package/crud/contentEntry/referenceFieldsMapping.js +142 -90
  47. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  48. package/crud/contentEntry/searchableFields.js +5 -4
  49. package/crud/contentEntry/searchableFields.js.map +1 -1
  50. package/crud/contentEntry.crud.d.ts +9 -5
  51. package/crud/contentEntry.crud.js +1093 -981
  52. package/crud/contentEntry.crud.js.map +1 -1
  53. package/crud/contentModel/beforeCreate.d.ts +1 -1
  54. package/crud/contentModel/beforeCreate.js +50 -85
  55. package/crud/contentModel/beforeCreate.js.map +1 -1
  56. package/crud/contentModel/beforeDelete.d.ts +1 -1
  57. package/crud/contentModel/beforeDelete.js +4 -6
  58. package/crud/contentModel/beforeDelete.js.map +1 -1
  59. package/crud/contentModel/beforeUpdate.d.ts +1 -1
  60. package/crud/contentModel/beforeUpdate.js +31 -6
  61. package/crud/contentModel/beforeUpdate.js.map +1 -1
  62. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  63. package/crud/contentModel/compatibility/modelApiName.js +26 -0
  64. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  65. package/crud/contentModel/contentModelManagerFactory.js +3 -1
  66. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  67. package/crud/contentModel/createFieldStorageId.js +3 -1
  68. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  69. package/crud/contentModel/defaultFields.d.ts +5 -0
  70. package/crud/contentModel/defaultFields.js +60 -0
  71. package/crud/contentModel/defaultFields.js.map +1 -0
  72. package/crud/contentModel/ensureTypeTag.d.ts +5 -0
  73. package/crud/contentModel/ensureTypeTag.js +21 -0
  74. package/crud/contentModel/ensureTypeTag.js.map +1 -0
  75. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  76. package/crud/contentModel/fields/descriptionField.js +44 -0
  77. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  78. package/crud/contentModel/fields/imageField.d.ts +2 -0
  79. package/crud/contentModel/fields/imageField.js +44 -0
  80. package/crud/contentModel/fields/imageField.js.map +1 -0
  81. package/crud/contentModel/fields/titleField.d.ts +2 -0
  82. package/crud/contentModel/fields/titleField.js +60 -0
  83. package/crud/contentModel/fields/titleField.js.map +1 -0
  84. package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
  85. package/crud/contentModel/listModelsFromDatabase.js +38 -0
  86. package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
  87. package/crud/contentModel/validate/endingAllowed.d.ts +6 -0
  88. package/crud/contentModel/validate/endingAllowed.js +28 -0
  89. package/crud/contentModel/validate/endingAllowed.js.map +1 -0
  90. package/crud/contentModel/validate/isModelEndingAllowed.d.ts +6 -0
  91. package/crud/contentModel/validate/isModelEndingAllowed.js +26 -0
  92. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -0
  93. package/crud/contentModel/validate/modelId.d.ts +11 -0
  94. package/crud/contentModel/validate/modelId.js +38 -0
  95. package/crud/contentModel/validate/modelId.js.map +1 -0
  96. package/crud/contentModel/validate/pluralApiName.d.ts +7 -0
  97. package/crud/contentModel/validate/pluralApiName.js +26 -0
  98. package/crud/contentModel/validate/pluralApiName.js.map +1 -0
  99. package/crud/contentModel/validate/singularApiName.d.ts +7 -0
  100. package/crud/contentModel/validate/singularApiName.js +26 -0
  101. package/crud/contentModel/validate/singularApiName.js.map +1 -0
  102. package/crud/contentModel/validateModel.d.ts +1 -0
  103. package/crud/contentModel/validateModel.js +3 -1
  104. package/crud/contentModel/validateModel.js.map +1 -1
  105. package/crud/contentModel/validateModelFields.d.ts +2 -1
  106. package/crud/contentModel/validateModelFields.js +27 -64
  107. package/crud/contentModel/validateModelFields.js.map +1 -1
  108. package/crud/contentModel/validation.d.ts +595 -200
  109. package/crud/contentModel/validation.js +125 -17
  110. package/crud/contentModel/validation.js.map +1 -1
  111. package/crud/contentModel.crud.d.ts +2 -0
  112. package/crud/contentModel.crud.js +437 -411
  113. package/crud/contentModel.crud.js.map +1 -1
  114. package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
  115. package/crud/contentModelGroup/beforeCreate.js +15 -1
  116. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  117. package/crud/contentModelGroup/beforeDelete.js +3 -1
  118. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  119. package/crud/contentModelGroup/beforeUpdate.js +3 -1
  120. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  121. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
  122. package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
  123. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
  124. package/crud/contentModelGroup/validation.d.ts +10 -7
  125. package/crud/contentModelGroup/validation.js +5 -2
  126. package/crud/contentModelGroup/validation.js.map +1 -1
  127. package/crud/contentModelGroup.crud.d.ts +3 -1
  128. package/crud/contentModelGroup.crud.js +272 -228
  129. package/crud/contentModelGroup.crud.js.map +1 -1
  130. package/crud/system.crud.js +8 -71
  131. package/crud/system.crud.js.map +1 -1
  132. package/export/crud/exporting.d.ts +3 -0
  133. package/export/crud/exporting.js +49 -0
  134. package/export/crud/exporting.js.map +1 -0
  135. package/export/crud/importing.d.ts +3 -0
  136. package/export/crud/importing.js +79 -0
  137. package/export/crud/importing.js.map +1 -0
  138. package/export/crud/imports/importData.d.ts +14 -0
  139. package/export/crud/imports/importData.js +52 -0
  140. package/export/crud/imports/importData.js.map +1 -0
  141. package/export/crud/imports/importGroups.d.ts +8 -0
  142. package/export/crud/imports/importGroups.js +104 -0
  143. package/export/crud/imports/importGroups.js.map +1 -0
  144. package/export/crud/imports/importModels.d.ts +8 -0
  145. package/export/crud/imports/importModels.js +136 -0
  146. package/export/crud/imports/importModels.js.map +1 -0
  147. package/export/crud/imports/validateGroups.d.ts +8 -0
  148. package/export/crud/imports/validateGroups.js +112 -0
  149. package/export/crud/imports/validateGroups.js.map +1 -0
  150. package/export/crud/imports/validateInput.d.ts +19 -0
  151. package/export/crud/imports/validateInput.js +55 -0
  152. package/export/crud/imports/validateInput.js.map +1 -0
  153. package/export/crud/imports/validateModels.d.ts +12 -0
  154. package/export/crud/imports/validateModels.js +203 -0
  155. package/export/crud/imports/validateModels.js.map +1 -0
  156. package/export/crud/index.d.ts +4 -0
  157. package/export/crud/index.js +15 -0
  158. package/export/crud/index.js.map +1 -0
  159. package/export/crud/sanitize.d.ts +4 -0
  160. package/export/crud/sanitize.js +35 -0
  161. package/export/crud/sanitize.js.map +1 -0
  162. package/export/graphql/index.d.ts +3 -0
  163. package/export/graphql/index.js +188 -0
  164. package/export/graphql/index.js.map +1 -0
  165. package/export/index.d.ts +2 -0
  166. package/export/index.js +29 -0
  167. package/export/index.js.map +1 -0
  168. package/export/types.d.ts +113 -0
  169. package/export/types.js +22 -0
  170. package/export/types.js.map +1 -0
  171. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +4 -7
  172. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  173. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +5 -8
  174. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  175. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +47 -38
  176. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  177. package/fieldConverters/index.js +3 -1
  178. package/fieldConverters/index.js.map +1 -1
  179. package/graphql/buildSchemaPlugins.js +7 -1
  180. package/graphql/buildSchemaPlugins.js.map +1 -1
  181. package/graphql/checkEndpointAccess.d.ts +2 -0
  182. package/graphql/checkEndpointAccess.js +20 -0
  183. package/graphql/checkEndpointAccess.js.map +1 -0
  184. package/graphql/createExecutableSchema.d.ts +2 -3
  185. package/graphql/createExecutableSchema.js +3 -1
  186. package/graphql/createExecutableSchema.js.map +1 -1
  187. package/graphql/createRequestBody.d.ts +2 -0
  188. package/graphql/createRequestBody.js +16 -0
  189. package/graphql/createRequestBody.js.map +1 -0
  190. package/graphql/formatErrorPayload.d.ts +1 -0
  191. package/graphql/formatErrorPayload.js +27 -0
  192. package/graphql/formatErrorPayload.js.map +1 -0
  193. package/graphql/generateSchema.js +3 -1
  194. package/graphql/generateSchema.js.map +1 -1
  195. package/graphql/getSchema.d.ts +16 -0
  196. package/graphql/getSchema.js +118 -0
  197. package/graphql/getSchema.js.map +1 -0
  198. package/graphql/graphQLHandlerFactory.js +9 -146
  199. package/graphql/graphQLHandlerFactory.js.map +1 -1
  200. package/graphql/handleRequest.d.ts +11 -0
  201. package/graphql/handleRequest.js +79 -0
  202. package/graphql/handleRequest.js.map +1 -0
  203. package/graphql/index.d.ts +1 -1
  204. package/graphql/index.js +4 -2
  205. package/graphql/index.js.map +1 -1
  206. package/graphql/schema/baseContentSchema.js +10 -15
  207. package/graphql/schema/baseContentSchema.js.map +1 -1
  208. package/graphql/schema/baseSchema.d.ts +2 -3
  209. package/graphql/schema/baseSchema.js +95 -2
  210. package/graphql/schema/baseSchema.js.map +1 -1
  211. package/graphql/schema/contentEntries.js +134 -59
  212. package/graphql/schema/contentEntries.js.map +1 -1
  213. package/graphql/schema/contentModelGroups.js +12 -9
  214. package/graphql/schema/contentModelGroups.js.map +1 -1
  215. package/graphql/schema/contentModels.js +33 -14
  216. package/graphql/schema/contentModels.js.map +1 -1
  217. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  218. package/graphql/schema/createFieldResolvers.js +18 -22
  219. package/graphql/schema/createFieldResolvers.js.map +1 -1
  220. package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
  221. package/graphql/schema/createFieldTypePluginRecords.js +15 -0
  222. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
  223. package/graphql/schema/createManageResolvers.d.ts +1 -1
  224. package/graphql/schema/createManageResolvers.js +60 -27
  225. package/graphql/schema/createManageResolvers.js.map +1 -1
  226. package/graphql/schema/createManageSDL.d.ts +1 -0
  227. package/graphql/schema/createManageSDL.js +116 -69
  228. package/graphql/schema/createManageSDL.js.map +1 -1
  229. package/graphql/schema/createPreviewResolvers.js +10 -13
  230. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  231. package/graphql/schema/createReadResolvers.js +11 -14
  232. package/graphql/schema/createReadResolvers.js.map +1 -1
  233. package/graphql/schema/createReadSDL.d.ts +1 -0
  234. package/graphql/schema/createReadSDL.js +51 -38
  235. package/graphql/schema/createReadSDL.js.map +1 -1
  236. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
  237. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  238. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  239. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
  240. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  241. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  242. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
  243. package/graphql/schema/resolvers/manage/resolveDelete.js +16 -4
  244. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  245. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
  246. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +22 -0
  247. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
  248. package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
  249. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  250. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  251. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  252. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  253. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  254. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
  255. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +20 -0
  256. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
  257. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  258. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  259. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  260. package/graphql/schema/resolvers/manage/resolveMove.js +27 -0
  261. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  262. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  263. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  264. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  265. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  266. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  267. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  268. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
  269. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  270. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  271. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  272. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  273. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  274. package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
  275. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  276. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  277. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  278. package/graphql/schema/resolvers/read/resolveGet.js +6 -5
  279. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  280. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  281. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  282. package/graphql/schema/schemaPlugins.js +10 -17
  283. package/graphql/schema/schemaPlugins.js.map +1 -1
  284. package/graphql/system.d.ts +2 -5
  285. package/graphql/system.js +4 -28
  286. package/graphql/system.js.map +1 -1
  287. package/graphqlFields/boolean.js +3 -1
  288. package/graphqlFields/boolean.js.map +1 -1
  289. package/graphqlFields/datetime.js +5 -5
  290. package/graphqlFields/datetime.js.map +1 -1
  291. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
  292. package/graphqlFields/dynamicZone/dynamicZoneField.js +86 -28
  293. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  294. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +60 -12
  295. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  296. package/graphqlFields/dynamicZone/index.js +3 -1
  297. package/graphqlFields/dynamicZone/index.js.map +1 -1
  298. package/graphqlFields/file.js +3 -1
  299. package/graphqlFields/file.js.map +1 -1
  300. package/graphqlFields/helpers.d.ts +0 -1
  301. package/graphqlFields/helpers.js +6 -18
  302. package/graphqlFields/helpers.js.map +1 -1
  303. package/graphqlFields/index.js +5 -2
  304. package/graphqlFields/index.js.map +1 -1
  305. package/graphqlFields/json.d.ts +2 -0
  306. package/graphqlFields/json.js +49 -0
  307. package/graphqlFields/json.js.map +1 -0
  308. package/graphqlFields/longText.js +14 -3
  309. package/graphqlFields/longText.js.map +1 -1
  310. package/graphqlFields/number.js +4 -1
  311. package/graphqlFields/number.js.map +1 -1
  312. package/graphqlFields/object.js +33 -34
  313. package/graphqlFields/object.js.map +1 -1
  314. package/graphqlFields/ref.js +68 -28
  315. package/graphqlFields/ref.js.map +1 -1
  316. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  317. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  318. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  319. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  320. package/graphqlFields/richText/richTextResolver.js +39 -0
  321. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  322. package/graphqlFields/richText.js +11 -3
  323. package/graphqlFields/richText.js.map +1 -1
  324. package/graphqlFields/text.js +5 -1
  325. package/graphqlFields/text.js.map +1 -1
  326. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  327. package/htmlRenderer/LexicalRenderer.js +28 -0
  328. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  329. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  330. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  331. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  332. package/index.d.ts +5 -2
  333. package/index.js +44 -6
  334. package/index.js.map +1 -1
  335. package/modelManager/DefaultCmsModelManager.js +3 -5
  336. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  337. package/modelManager/index.js +3 -1
  338. package/modelManager/index.js.map +1 -1
  339. package/package.json +36 -40
  340. package/parameters/context.js +4 -2
  341. package/parameters/context.js.map +1 -1
  342. package/parameters/header.js +7 -6
  343. package/parameters/header.js.map +1 -1
  344. package/parameters/index.js +3 -1
  345. package/parameters/index.js.map +1 -1
  346. package/parameters/manual.js +9 -4
  347. package/parameters/manual.js.map +1 -1
  348. package/parameters/path.js +4 -3
  349. package/parameters/path.js.map +1 -1
  350. package/plugins/CmsGraphQLSchemaPlugin.js +5 -4
  351. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  352. package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
  353. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  354. package/plugins/CmsGroupPlugin.d.ts +6 -3
  355. package/plugins/CmsGroupPlugin.js +8 -6
  356. package/plugins/CmsGroupPlugin.js.map +1 -1
  357. package/plugins/CmsModelFieldConverterPlugin.js +5 -4
  358. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  359. package/plugins/CmsModelPlugin.d.ts +25 -5
  360. package/plugins/CmsModelPlugin.js +75 -20
  361. package/plugins/CmsModelPlugin.js.map +1 -1
  362. package/plugins/CmsParametersPlugin.js +7 -4
  363. package/plugins/CmsParametersPlugin.js.map +1 -1
  364. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  365. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  366. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  367. package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
  368. package/plugins/StorageOperationsCmsModelPlugin.js +41 -0
  369. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
  370. package/plugins/StorageTransformPlugin.d.ts +2 -2
  371. package/plugins/StorageTransformPlugin.js +3 -4
  372. package/plugins/StorageTransformPlugin.js.map +1 -1
  373. package/plugins/index.d.ts +2 -0
  374. package/plugins/index.js +25 -1
  375. package/plugins/index.js.map +1 -1
  376. package/storage/default.js +3 -1
  377. package/storage/default.js.map +1 -1
  378. package/storage/index.d.ts +1 -0
  379. package/storage/index.js +15 -0
  380. package/storage/index.js.map +1 -0
  381. package/storage/json.d.ts +2 -0
  382. package/storage/json.js +27 -0
  383. package/storage/json.js.map +1 -0
  384. package/storage/object.js +8 -8
  385. package/storage/object.js.map +1 -1
  386. package/types.d.ts +510 -334
  387. package/types.js +21 -21
  388. package/types.js.map +1 -1
  389. package/utils/access.d.ts +9 -8
  390. package/utils/access.js +12 -62
  391. package/utils/access.js.map +1 -1
  392. package/utils/caching/Cache.d.ts +2 -0
  393. package/utils/caching/Cache.js +51 -0
  394. package/utils/caching/Cache.js.map +1 -0
  395. package/utils/caching/CacheKey.d.ts +2 -0
  396. package/utils/caching/CacheKey.js +40 -0
  397. package/utils/caching/CacheKey.js.map +1 -0
  398. package/utils/caching/index.d.ts +2 -0
  399. package/utils/caching/index.js +29 -0
  400. package/utils/caching/index.js.map +1 -0
  401. package/utils/caching/types.d.ts +11 -0
  402. package/utils/caching/types.js +7 -0
  403. package/utils/caching/types.js.map +1 -0
  404. package/utils/converters/Converter.js +4 -5
  405. package/utils/converters/Converter.js.map +1 -1
  406. package/utils/converters/ConverterCollection.js +13 -7
  407. package/utils/converters/ConverterCollection.js.map +1 -1
  408. package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
  409. package/utils/converters/valueKeyStorageConverter.js +34 -21
  410. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  411. package/utils/createTypeFromFields.d.ts +1 -0
  412. package/utils/createTypeFromFields.js +14 -7
  413. package/utils/createTypeFromFields.js.map +1 -1
  414. package/utils/createTypeName.d.ts +0 -2
  415. package/utils/createTypeName.js +3 -9
  416. package/utils/createTypeName.js.map +1 -1
  417. package/utils/date.d.ts +10 -0
  418. package/utils/date.js +36 -0
  419. package/utils/date.js.map +1 -0
  420. package/utils/entryStorage.d.ts +4 -4
  421. package/utils/entryStorage.js +6 -4
  422. package/utils/entryStorage.js.map +1 -1
  423. package/utils/filterAsync.js +9 -8
  424. package/utils/filterAsync.js.map +1 -1
  425. package/utils/getBaseFieldType.d.ts +1 -3
  426. package/utils/getBaseFieldType.js +3 -1
  427. package/utils/getBaseFieldType.js.map +1 -1
  428. package/utils/getEntryDescription.d.ts +2 -0
  429. package/utils/getEntryDescription.js +19 -0
  430. package/utils/getEntryDescription.js.map +1 -0
  431. package/utils/getEntryImage.d.ts +2 -0
  432. package/utils/getEntryImage.js +19 -0
  433. package/utils/getEntryImage.js.map +1 -0
  434. package/utils/getEntryTitle.d.ts +1 -1
  435. package/utils/getEntryTitle.js +3 -1
  436. package/utils/getEntryTitle.js.map +1 -1
  437. package/utils/getSchemaFromFieldPlugins.d.ts +13 -2
  438. package/utils/getSchemaFromFieldPlugins.js +22 -4
  439. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  440. package/utils/identity.d.ts +2 -0
  441. package/utils/identity.js +20 -0
  442. package/utils/identity.js.map +1 -0
  443. package/utils/incrementEntryIdVersion.d.ts +5 -0
  444. package/utils/incrementEntryIdVersion.js +31 -0
  445. package/utils/incrementEntryIdVersion.js.map +1 -0
  446. package/utils/index.d.ts +1 -0
  447. package/utils/index.js +18 -0
  448. package/utils/index.js.map +1 -0
  449. package/utils/permissions/EntriesPermissions.d.ts +4 -0
  450. package/utils/permissions/EntriesPermissions.js +11 -0
  451. package/utils/permissions/EntriesPermissions.js.map +1 -0
  452. package/utils/permissions/ModelGroupsPermissions.d.ts +9 -0
  453. package/utils/permissions/ModelGroupsPermissions.js +50 -0
  454. package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
  455. package/utils/permissions/ModelsPermissions.d.ts +22 -0
  456. package/utils/permissions/ModelsPermissions.js +90 -0
  457. package/utils/permissions/ModelsPermissions.js.map +1 -0
  458. package/utils/renderFields.d.ts +4 -2
  459. package/utils/renderFields.js +13 -3
  460. package/utils/renderFields.js.map +1 -1
  461. package/utils/renderGetFilterFields.d.ts +2 -2
  462. package/utils/renderGetFilterFields.js +9 -21
  463. package/utils/renderGetFilterFields.js.map +1 -1
  464. package/utils/renderInputFields.d.ts +4 -2
  465. package/utils/renderInputFields.js +20 -6
  466. package/utils/renderInputFields.js.map +1 -1
  467. package/utils/renderListFilterFields.d.ts +3 -1
  468. package/utils/renderListFilterFields.js +25 -22
  469. package/utils/renderListFilterFields.js.map +1 -1
  470. package/utils/renderSortEnum.d.ts +3 -2
  471. package/utils/renderSortEnum.js +10 -3
  472. package/utils/renderSortEnum.js.map +1 -1
  473. package/utils/toSlug.js +3 -1
  474. package/utils/toSlug.js.map +1 -1
  475. package/validators/dateGte.js +3 -1
  476. package/validators/dateGte.js.map +1 -1
  477. package/validators/dateLte.js +3 -1
  478. package/validators/dateLte.js.map +1 -1
  479. package/validators/gte.js +4 -3
  480. package/validators/gte.js.map +1 -1
  481. package/validators/in.js +4 -3
  482. package/validators/in.js.map +1 -1
  483. package/validators/index.js +4 -3
  484. package/validators/index.js.map +1 -1
  485. package/validators/lte.js +4 -3
  486. package/validators/lte.js.map +1 -1
  487. package/validators/maxLength.js +4 -3
  488. package/validators/maxLength.js.map +1 -1
  489. package/validators/minLength.js +4 -3
  490. package/validators/minLength.js.map +1 -1
  491. package/validators/pattern.js +5 -3
  492. package/validators/pattern.js.map +1 -1
  493. package/validators/patternPlugins/email.js +3 -1
  494. package/validators/patternPlugins/email.js.map +1 -1
  495. package/validators/patternPlugins/index.js +3 -1
  496. package/validators/patternPlugins/index.js.map +1 -1
  497. package/validators/patternPlugins/lowerCase.js +3 -1
  498. package/validators/patternPlugins/lowerCase.js.map +1 -1
  499. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  500. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  501. package/validators/patternPlugins/upperCase.js +3 -1
  502. package/validators/patternPlugins/upperCase.js.map +1 -1
  503. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  504. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  505. package/validators/patternPlugins/url.js +3 -1
  506. package/validators/patternPlugins/url.js.map +1 -1
  507. package/validators/required.js +3 -1
  508. package/validators/required.js.map +1 -1
  509. package/validators/timeGte.js +4 -3
  510. package/validators/timeGte.js.map +1 -1
  511. package/validators/timeLte.js +4 -3
  512. package/validators/timeLte.js.map +1 -1
  513. package/validators/unique.js +4 -2
  514. package/validators/unique.js.map +1 -1
  515. package/crud/contentModel/afterCreate.d.ts +0 -8
  516. package/crud/contentModel/afterCreate.js +0 -16
  517. package/crud/contentModel/afterCreate.js.map +0 -1
  518. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  519. package/crud/contentModel/afterCreateFrom.js +0 -16
  520. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  521. package/crud/contentModel/afterDelete.d.ts +0 -8
  522. package/crud/contentModel/afterDelete.js +0 -16
  523. package/crud/contentModel/afterDelete.js.map +0 -1
  524. package/crud/contentModel/afterUpdate.d.ts +0 -8
  525. package/crud/contentModel/afterUpdate.js +0 -16
  526. package/crud/contentModel/afterUpdate.js.map +0 -1
  527. package/crud/contentModel/createFieldModels.d.ts +0 -2
  528. package/crud/contentModel/createFieldModels.js +0 -26
  529. package/crud/contentModel/createFieldModels.js.map +0 -1
  530. package/crud/contentModel/fieldIdValidation.d.ts +0 -1
  531. package/crud/contentModel/fieldIdValidation.js +0 -25
  532. package/crud/contentModel/fieldIdValidation.js.map +0 -1
  533. package/crud/contentModel/idValidation.d.ts +0 -1
  534. package/crud/contentModel/idValidation.js +0 -22
  535. package/crud/contentModel/idValidation.js.map +0 -1
  536. package/crud/contentModel/models.d.ts +0 -4
  537. package/crud/contentModel/models.js +0 -192
  538. package/crud/contentModel/models.js.map +0 -1
  539. package/crud/contentModel/systemFields.d.ts +0 -1
  540. package/crud/contentModel/systemFields.js +0 -8
  541. package/crud/contentModel/systemFields.js.map +0 -1
  542. package/crud/contentModel/validateLayout.d.ts +0 -2
  543. package/crud/contentModel/validateLayout.js +0 -28
  544. package/crud/contentModel/validateLayout.js.map +0 -1
  545. package/crud/settings.crud.d.ts +0 -10
  546. package/crud/settings.crud.js +0 -71
  547. package/crud/settings.crud.js.map +0 -1
  548. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -6
  549. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -12
  550. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
  551. package/upgrades/5.33.0/index.d.ts +0 -3
  552. package/upgrades/5.33.0/index.js +0 -159
  553. package/upgrades/5.33.0/index.js.map +0 -1
  554. package/upgrades/index.d.ts +0 -1
  555. package/upgrades/index.js +0 -9
  556. package/upgrades/index.js.map +0 -1
  557. package/utils/ownership.d.ts +0 -8
  558. package/utils/ownership.js +0 -33
  559. package/utils/ownership.js.map +0 -1
  560. package/utils/permissions.d.ts +0 -7
  561. package/utils/permissions.js +0 -91
  562. package/utils/permissions.js.map +0 -1
  563. package/utils/pluralizedTypeName.d.ts +0 -1
  564. package/utils/pluralizedTypeName.js +0 -20
  565. package/utils/pluralizedTypeName.js.map +0 -1
  566. package/validators/dynamicZone.d.ts +0 -2
  567. package/validators/dynamicZone.js +0 -20
  568. package/validators/dynamicZone.js.map +0 -1
@@ -5,108 +5,116 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createModelGroupsCrud = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _mdbid = _interopRequireDefault(require("mdbid"));
10
- var _handlerGraphql = require("@webiny/handler-graphql");
11
8
  var _error = _interopRequireDefault(require("@webiny/error"));
12
9
  var _CmsGroupPlugin = require("../plugins/CmsGroupPlugin");
13
10
  var _pubsub = require("@webiny/pubsub");
14
11
  var _beforeUpdate = require("./contentModelGroup/beforeUpdate");
15
12
  var _beforeCreate = require("./contentModelGroup/beforeCreate");
16
13
  var _beforeDelete = require("./contentModelGroup/beforeDelete");
17
- var _dataloader = _interopRequireDefault(require("dataloader"));
18
- var _permissions = require("../utils/permissions");
19
- var _ownership = require("../utils/ownership");
20
- var _access = require("../utils/access");
21
14
  var _validation = require("./contentModelGroup/validation");
22
15
  var _utils = require("@webiny/utils");
23
- /**
24
- * Package mdbid does not have types.
25
- */
26
- // @ts-ignore
27
-
16
+ var _filterAsync = require("../utils/filterAsync");
17
+ var _utils2 = require("../utils");
18
+ var _listGroupsFromDatabase = require("./contentModelGroup/listGroupsFromDatabase");
19
+ var _handlerGraphql = require("@webiny/handler-graphql");
28
20
  const createModelGroupsCrud = params => {
29
21
  const {
30
22
  getTenant,
31
23
  getIdentity,
32
24
  getLocale,
33
25
  storageOperations,
26
+ modelGroupsPermissions,
34
27
  context
35
28
  } = params;
36
- const dataLoaders = {
37
- listGroups: new _dataloader.default(async () => {
38
- const tenant = getTenant().id;
39
- const locale = getLocale().code;
40
- const pluginsGroups = getGroupsAsPlugins().map(group => {
41
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, group), {}, {
42
- tenant: group.tenant || tenant,
43
- locale: group.locale || locale
44
- });
45
- });
46
- const groups = await storageOperations.groups.list({
47
- where: {
48
- tenant: getTenant().id,
49
- locale: getLocale().code
50
- }
51
- });
52
- return [groups.concat(pluginsGroups)];
53
- })
29
+ const filterGroup = async group => {
30
+ if (!group) {
31
+ return false;
32
+ }
33
+ const ownsGroup = await modelGroupsPermissions.ensure({
34
+ owns: group.createdBy
35
+ }, {
36
+ throw: false
37
+ });
38
+ if (!ownsGroup) {
39
+ return false;
40
+ }
41
+ return await modelGroupsPermissions.canAccessGroup({
42
+ group
43
+ });
54
44
  };
45
+ const listDatabaseGroupsCache = (0, _utils2.createMemoryCache)();
46
+ const listFilteredDatabaseGroupsCache = (0, _utils2.createMemoryCache)();
47
+ const listPluginGroupsCache = (0, _utils2.createMemoryCache)();
55
48
  const clearGroupsCache = () => {
56
- for (const loader of Object.values(dataLoaders)) {
57
- loader.clearAll();
58
- }
49
+ listPluginGroupsCache.clear();
50
+ listDatabaseGroupsCache.clear();
51
+ listFilteredDatabaseGroupsCache.clear();
59
52
  };
60
- const getGroupsAsPlugins = () => {
61
- const tenant = getTenant().id;
62
- const locale = getLocale().code;
63
- return context.plugins.byType(_CmsGroupPlugin.CmsGroupPlugin.type)
53
+ const fetchPluginGroups = (tenant, locale) => {
54
+ const pluginGroups = context.plugins.byType(_CmsGroupPlugin.CmsGroupPlugin.type);
55
+ const cacheKey = (0, _utils2.createCacheKey)({
56
+ tenant,
57
+ locale,
58
+ identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined,
59
+ groups: pluginGroups.map(({
60
+ contentModelGroup: group
61
+ }) => {
62
+ return `${group.id}#${group.slug}#${group.savedOn || "unknown"}`;
63
+ }).join("/")
64
+ });
65
+ return listPluginGroupsCache.getOrSet(cacheKey, async () => {
66
+ const groups = pluginGroups
67
+ /**
68
+ * We need to filter out groups that are not for this tenant or locale.
69
+ * If it does not have tenant or locale define, it is for every locale and tenant
70
+ */.filter(plugin => {
71
+ const {
72
+ tenant: t,
73
+ locale: l
74
+ } = plugin.contentModelGroup;
75
+ if (t && t !== tenant) {
76
+ return false;
77
+ } else if (l && l !== locale) {
78
+ return false;
79
+ }
80
+ return true;
81
+ }).map(plugin => {
82
+ return {
83
+ ...plugin.contentModelGroup,
84
+ tenant,
85
+ locale,
86
+ webinyVersion: context.WEBINY_VERSION
87
+ };
88
+ });
89
+ return (0, _filterAsync.filterAsync)(groups, filterGroup);
90
+ });
91
+ };
92
+ const fetchGroups = async (tenant, locale) => {
93
+ const pluginGroups = await fetchPluginGroups(tenant, locale);
64
94
  /**
65
- * We need to filter out groups that are not for this tenant or locale.
66
- * If it does not have tenant or locale define, it is for every locale and tenant
67
- */.filter(plugin => {
68
- const {
69
- tenant: t,
70
- locale: l
71
- } = plugin.contentModelGroup;
72
- if (t && t !== tenant) {
73
- return false;
74
- } else if (l && l !== locale) {
75
- return false;
76
- }
77
- return true;
78
- }).map(plugin => {
79
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugin.contentModelGroup), {}, {
95
+ * Maybe we can cache based on permissions, not the identity id?
96
+ *
97
+ * TODO: @adrian please check if possible.
98
+ */
99
+ const cacheKey = (0, _utils2.createCacheKey)({
100
+ tenant,
101
+ locale
102
+ });
103
+ const databaseGroups = await listDatabaseGroupsCache.getOrSet(cacheKey, async () => {
104
+ return await (0, _listGroupsFromDatabase.listGroupsFromDatabase)({
105
+ storageOperations,
80
106
  tenant,
81
- locale,
82
- webinyVersion: context.WEBINY_VERSION
107
+ locale
83
108
  });
84
109
  });
85
- };
86
- const checkPermissions = check => {
87
- return (0, _permissions.checkPermissions)(context, "cms.contentModelGroup", {
88
- rwd: check
110
+ const filteredCacheKey = (0, _utils2.createCacheKey)({
111
+ dbCacheKey: cacheKey.get(),
112
+ identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined
89
113
  });
90
- };
91
- const groupsGet = async id => {
92
- const groups = await dataLoaders.listGroups.load("listGroups");
93
- const group = groups.find(g => g.id === id);
94
- if (!group) {
95
- throw new _handlerGraphql.NotFoundError(`Cms Group "${id}" was not found!`);
96
- }
97
- return group;
98
- };
99
- const groupsList = async params => {
100
- const {
101
- where
102
- } = params || {};
103
- try {
104
- return await dataLoaders.listGroups.load("listGroups");
105
- } catch (ex) {
106
- throw new _error.default(ex.message, ex.code || "LIST_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
107
- where
108
- }));
109
- }
114
+ const groups = await listFilteredDatabaseGroupsCache.getOrSet(filteredCacheKey, async () => {
115
+ return (0, _filterAsync.filterAsync)(databaseGroups, filterGroup);
116
+ });
117
+ return groups.concat(pluginGroups);
110
118
  };
111
119
 
112
120
  /**
@@ -145,19 +153,179 @@ const createModelGroupsCrud = params => {
145
153
  plugins: context.plugins,
146
154
  storageOperations
147
155
  });
148
- return {
149
- /**
150
- * Deprecated - will be removed in 5.36.0
151
- */
152
- onBeforeGroupCreate: onGroupBeforeCreate,
153
- onAfterGroupCreate: onGroupAfterCreate,
154
- onBeforeGroupUpdate: onGroupBeforeUpdate,
155
- onAfterGroupUpdate: onGroupAfterUpdate,
156
- onBeforeGroupDelete: onGroupBeforeDelete,
157
- onAfterGroupDelete: onGroupAfterDelete,
156
+ /**
157
+ * CRUD Methods
158
+ */
159
+ const getGroup = async id => {
160
+ await modelGroupsPermissions.ensure({
161
+ rwd: "r"
162
+ });
163
+ const groups = await context.security.withoutAuthorization(async () => {
164
+ return fetchGroups(getTenant().id, getLocale().code);
165
+ });
166
+ const group = groups.find(group => group.id === id);
167
+ if (!group) {
168
+ throw new _handlerGraphql.NotFoundError(`Cms Group "${id}" was not found!`);
169
+ }
170
+ await modelGroupsPermissions.ensure({
171
+ owns: group.createdBy
172
+ });
173
+ await modelGroupsPermissions.ensureCanAccessGroup({
174
+ group
175
+ });
176
+ return group;
177
+ };
178
+ const listGroups = async params => {
179
+ const {
180
+ where
181
+ } = params || {};
182
+ const {
183
+ tenant,
184
+ locale
185
+ } = where || {};
186
+ await modelGroupsPermissions.ensure({
187
+ rwd: "r"
188
+ });
189
+ return fetchGroups(tenant || getTenant().id, locale || getLocale().code);
190
+ };
191
+ const createGroup = async input => {
192
+ await modelGroupsPermissions.ensure({
193
+ rwd: "w"
194
+ });
195
+ const result = await (0, _validation.createGroupCreateValidation)().safeParseAsync(input);
196
+ if (!result.success) {
197
+ throw (0, _utils.createZodError)(result.error);
198
+ }
199
+ const data = result.data;
200
+ const identity = getIdentity();
201
+ const id = data.id || (0, _utils.mdbid)();
202
+ const group = {
203
+ ...data,
204
+ id,
205
+ tenant: getTenant().id,
206
+ locale: getLocale().code,
207
+ createdOn: new Date().toISOString(),
208
+ savedOn: new Date().toISOString(),
209
+ createdBy: {
210
+ id: identity.id,
211
+ displayName: identity.displayName,
212
+ type: identity.type
213
+ },
214
+ webinyVersion: context.WEBINY_VERSION
215
+ };
216
+ try {
217
+ await onGroupBeforeCreate.publish({
218
+ group
219
+ });
220
+ const result = await storageOperations.groups.create({
221
+ group
222
+ });
223
+ clearGroupsCache();
224
+ await onGroupAfterCreate.publish({
225
+ group: result
226
+ });
227
+ return group;
228
+ } catch (ex) {
229
+ await onGroupCreateError.publish({
230
+ input,
231
+ group,
232
+ error: ex
233
+ });
234
+ throw new _error.default(ex.message || "Could not save data model group.", ex.code || "ERROR_ON_CREATE", {
235
+ ...(ex.data || {}),
236
+ group,
237
+ input
238
+ });
239
+ }
240
+ };
241
+ const updateGroup = async (id, input) => {
242
+ await modelGroupsPermissions.ensure({
243
+ rwd: "w"
244
+ });
245
+ const original = await getGroup(id);
246
+ await modelGroupsPermissions.ensure({
247
+ owns: original.createdBy
248
+ });
249
+ const result = await (0, _validation.createGroupUpdateValidation)().safeParseAsync(input);
250
+ if (!result.success) {
251
+ throw (0, _utils.createZodError)(result.error);
252
+ }
253
+ const data = result.data;
254
+
158
255
  /**
159
- * Released in 5.34.0
256
+ * No need to continue if no values were changed
160
257
  */
258
+ if (Object.keys(data).length === 0) {
259
+ return original;
260
+ }
261
+ const group = {
262
+ ...original,
263
+ ...data,
264
+ locale: getLocale().code,
265
+ tenant: getTenant().id,
266
+ savedOn: new Date().toISOString()
267
+ };
268
+ try {
269
+ await onGroupBeforeUpdate.publish({
270
+ original,
271
+ group
272
+ });
273
+ const updatedGroup = await storageOperations.groups.update({
274
+ group
275
+ });
276
+ clearGroupsCache();
277
+ await onGroupAfterUpdate.publish({
278
+ original,
279
+ group: updatedGroup
280
+ });
281
+ return updatedGroup;
282
+ } catch (ex) {
283
+ await onGroupUpdateError.publish({
284
+ input,
285
+ original,
286
+ group,
287
+ error: ex
288
+ });
289
+ throw new _error.default(ex.message, ex.code || "UPDATE_ERROR", {
290
+ error: ex,
291
+ original,
292
+ group,
293
+ input
294
+ });
295
+ }
296
+ };
297
+ const deleteGroup = async id => {
298
+ await modelGroupsPermissions.ensure({
299
+ rwd: "d"
300
+ });
301
+ const group = await getGroup(id);
302
+ await modelGroupsPermissions.ensure({
303
+ owns: group.createdBy
304
+ });
305
+ try {
306
+ await onGroupBeforeDelete.publish({
307
+ group
308
+ });
309
+ await storageOperations.groups.delete({
310
+ group
311
+ });
312
+ clearGroupsCache();
313
+ await onGroupAfterDelete.publish({
314
+ group
315
+ });
316
+ } catch (ex) {
317
+ await onGroupDeleteError.publish({
318
+ group,
319
+ error: ex
320
+ });
321
+ throw new _error.default(ex.message, ex.code || "DELETE_ERROR", {
322
+ ...(ex.data || {}),
323
+ id
324
+ });
325
+ }
326
+ return true;
327
+ };
328
+ return {
161
329
  onGroupBeforeCreate,
162
330
  onGroupAfterCreate,
163
331
  onGroupCreateError,
@@ -169,156 +337,32 @@ const createModelGroupsCrud = params => {
169
337
  onGroupDeleteError,
170
338
  clearGroupsCache,
171
339
  getGroup: async id => {
172
- const permission = await checkPermissions("r");
173
- const group = await groupsGet(id);
174
- (0, _ownership.checkOwnership)(context, permission, group);
175
- (0, _access.validateGroupAccess)(context, permission, group);
176
- return group;
340
+ return context.benchmark.measure("headlessCms.crud.groups.getGroup", async () => {
341
+ return getGroup(id);
342
+ });
177
343
  },
178
344
  listGroups: async params => {
179
- const {
180
- where
181
- } = params || {};
182
- const {
183
- tenant,
184
- locale
185
- } = where || {};
186
- const permission = await checkPermissions("r");
187
- const response = await groupsList((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params || {}), {}, {
188
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where || {}), {}, {
189
- tenant: tenant || getTenant().id,
190
- locale: locale || getLocale().code
191
- })
192
- }));
193
- return response.filter(group => {
194
- if (!(0, _ownership.validateOwnership)(context, permission, group)) {
195
- return false;
196
- }
197
- return (0, _access.validateGroupAccess)(context, permission, group);
345
+ return context.benchmark.measure("headlessCms.crud.groups.listGroups", async () => {
346
+ return listGroups(params);
198
347
  });
199
348
  },
200
349
  createGroup: async input => {
201
- await checkPermissions("w");
202
- const result = await (0, _validation.createGroupCreateValidation)().safeParseAsync(input);
203
- if (!result.success) {
204
- throw (0, _utils.createZodError)(result.error);
205
- }
206
- const data = result.data;
207
- const identity = getIdentity();
208
- const id = (0, _mdbid.default)();
209
- const group = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
210
- id,
211
- tenant: getTenant().id,
212
- locale: getLocale().code,
213
- createdOn: new Date().toISOString(),
214
- savedOn: new Date().toISOString(),
215
- createdBy: {
216
- id: identity.id,
217
- displayName: identity.displayName,
218
- type: identity.type
219
- },
220
- webinyVersion: context.WEBINY_VERSION
350
+ return context.benchmark.measure("headlessCms.crud.groups.createGroup", async () => {
351
+ return createGroup(input);
221
352
  });
222
- try {
223
- await onGroupBeforeCreate.publish({
224
- group
225
- });
226
- const result = await storageOperations.groups.create({
227
- group
228
- });
229
- clearGroupsCache();
230
- await onGroupAfterCreate.publish({
231
- group: result
232
- });
233
- return group;
234
- } catch (ex) {
235
- await onGroupCreateError.publish({
236
- input,
237
- group,
238
- error: ex
239
- });
240
- throw new _error.default(ex.message || "Could not save data model group.", ex.code || "ERROR_ON_CREATE", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
241
- group,
242
- input
243
- }));
244
- }
245
353
  },
246
354
  updateGroup: async (id, input) => {
247
- const permission = await checkPermissions("w");
248
- const original = await groupsGet(id);
249
- (0, _ownership.checkOwnership)(context, permission, original);
250
- const result = await (0, _validation.createGroupUpdateValidation)().safeParseAsync(input);
251
- if (!result.success) {
252
- throw (0, _utils.createZodError)(result.error);
253
- }
254
- const data = result.data;
255
-
256
- /**
257
- * No need to continue if no values were changed
258
- */
259
- if (Object.keys(data).length === 0) {
260
- return original;
261
- }
262
- const group = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data), {}, {
263
- locale: getLocale().code,
264
- tenant: getTenant().id,
265
- savedOn: new Date().toISOString()
355
+ return context.benchmark.measure("headlessCms.crud.groups.updateGroup", async () => {
356
+ return updateGroup(id, input);
266
357
  });
267
- try {
268
- await onGroupBeforeUpdate.publish({
269
- original,
270
- group
271
- });
272
- const updatedGroup = await storageOperations.groups.update({
273
- group
274
- });
275
- clearGroupsCache();
276
- await onGroupAfterUpdate.publish({
277
- original,
278
- group: updatedGroup
279
- });
280
- return updatedGroup;
281
- } catch (ex) {
282
- await onGroupUpdateError.publish({
283
- input,
284
- original,
285
- group,
286
- error: ex
287
- });
288
- throw new _error.default(ex.message, ex.code || "UPDATE_ERROR", {
289
- error: ex,
290
- original,
291
- group,
292
- input
293
- });
294
- }
295
358
  },
296
359
  deleteGroup: async id => {
297
- const permission = await checkPermissions("d");
298
- const group = await groupsGet(id);
299
- (0, _ownership.checkOwnership)(context, permission, group);
300
- try {
301
- await onGroupBeforeDelete.publish({
302
- group
303
- });
304
- await storageOperations.groups.delete({
305
- group
306
- });
307
- clearGroupsCache();
308
- await onGroupAfterDelete.publish({
309
- group
310
- });
311
- } catch (ex) {
312
- await onGroupDeleteError.publish({
313
- group,
314
- error: ex
315
- });
316
- throw new _error.default(ex.message, ex.code || "DELETE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
317
- id
318
- }));
319
- }
320
- return true;
360
+ return context.benchmark.measure("headlessCms.crud.groups.deleteGroup", async () => {
361
+ return deleteGroup(id);
362
+ });
321
363
  }
322
364
  };
323
365
  };
324
- exports.createModelGroupsCrud = createModelGroupsCrud;
366
+ exports.createModelGroupsCrud = createModelGroupsCrud;
367
+
368
+ //# sourceMappingURL=contentModelGroup.crud.js.map