@webiny/api-headless-cms 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.9bd236cf5e

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 (961) hide show
  1. package/constants.d.ts +43 -0
  2. package/constants.js +65 -3
  3. package/constants.js.map +1 -1
  4. package/context.d.ts +1 -1
  5. package/context.js +102 -68
  6. package/context.js.map +1 -1
  7. package/crud/AccessControl/AccessControl.d.ts +98 -0
  8. package/crud/AccessControl/AccessControl.js +542 -0
  9. package/crud/AccessControl/AccessControl.js.map +1 -0
  10. package/crud/AccessControl/README.md +47 -0
  11. package/crud/AccessControl/groups-own.png +0 -0
  12. package/crud/AccessControl/models-own.png +0 -0
  13. package/crud/contentEntry/abstractions/IDeleteEntry.d.ts +4 -0
  14. package/crud/contentEntry/abstractions/IDeleteEntry.js +7 -0
  15. package/crud/contentEntry/abstractions/IDeleteEntry.js.map +1 -0
  16. package/crud/contentEntry/abstractions/IDeleteEntryOperation.d.ts +4 -0
  17. package/crud/contentEntry/abstractions/IDeleteEntryOperation.js +7 -0
  18. package/crud/contentEntry/abstractions/IDeleteEntryOperation.js.map +1 -0
  19. package/crud/contentEntry/abstractions/IGetEntriesByIds.d.ts +4 -0
  20. package/crud/contentEntry/abstractions/IGetEntriesByIds.js +7 -0
  21. package/crud/contentEntry/abstractions/IGetEntriesByIds.js.map +1 -0
  22. package/crud/contentEntry/abstractions/IGetEntry.d.ts +4 -0
  23. package/crud/contentEntry/abstractions/IGetEntry.js +7 -0
  24. package/crud/contentEntry/abstractions/IGetEntry.js.map +1 -0
  25. package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.d.ts +4 -0
  26. package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.js +7 -0
  27. package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.js.map +1 -0
  28. package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.d.ts +4 -0
  29. package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.js +7 -0
  30. package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.js.map +1 -0
  31. package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.d.ts +4 -0
  32. package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.js +7 -0
  33. package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.js.map +1 -0
  34. package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.d.ts +4 -0
  35. package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.js +7 -0
  36. package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.js.map +1 -0
  37. package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.d.ts +4 -0
  38. package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.js +7 -0
  39. package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.js.map +1 -0
  40. package/crud/contentEntry/abstractions/IGetRevisionById.d.ts +4 -0
  41. package/crud/contentEntry/abstractions/IGetRevisionById.js +7 -0
  42. package/crud/contentEntry/abstractions/IGetRevisionById.js.map +1 -0
  43. package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.d.ts +4 -0
  44. package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.js +7 -0
  45. package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.js.map +1 -0
  46. package/crud/contentEntry/abstractions/IListEntries.d.ts +4 -0
  47. package/crud/contentEntry/abstractions/IListEntries.js +7 -0
  48. package/crud/contentEntry/abstractions/IListEntries.js.map +1 -0
  49. package/crud/contentEntry/abstractions/IListEntriesOperation.d.ts +4 -0
  50. package/crud/contentEntry/abstractions/IListEntriesOperation.js +7 -0
  51. package/crud/contentEntry/abstractions/IListEntriesOperation.js.map +1 -0
  52. package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.d.ts +4 -0
  53. package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.js +7 -0
  54. package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.js.map +1 -0
  55. package/crud/contentEntry/abstractions/IRestoreEntryFromBin.d.ts +4 -0
  56. package/crud/contentEntry/abstractions/IRestoreEntryFromBin.js +7 -0
  57. package/crud/contentEntry/abstractions/IRestoreEntryFromBin.js.map +1 -0
  58. package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.d.ts +4 -0
  59. package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.js +7 -0
  60. package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.js.map +1 -0
  61. package/crud/contentEntry/abstractions/index.d.ts +16 -0
  62. package/crud/contentEntry/abstractions/index.js +183 -0
  63. package/crud/contentEntry/abstractions/index.js.map +1 -0
  64. package/crud/contentEntry/afterDelete.d.ts +6 -2
  65. package/crud/contentEntry/afterDelete.js +18 -2
  66. package/crud/contentEntry/afterDelete.js.map +1 -1
  67. package/crud/contentEntry/beforeCreate.d.ts +2 -2
  68. package/crud/contentEntry/beforeCreate.js +3 -1
  69. package/crud/contentEntry/beforeCreate.js.map +1 -1
  70. package/crud/contentEntry/beforeUpdate.d.ts +2 -2
  71. package/crud/contentEntry/beforeUpdate.js +3 -1
  72. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  73. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
  74. package/crud/contentEntry/entryDataFactories/createEntryData.js +254 -0
  75. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
  76. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +23 -0
  77. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +157 -0
  78. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
  79. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
  80. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +63 -0
  81. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
  82. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
  83. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +59 -0
  84. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
  85. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
  86. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +40 -0
  87. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
  88. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
  89. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +130 -0
  90. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
  91. package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
  92. package/crud/contentEntry/entryDataFactories/index.js +95 -0
  93. package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
  94. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
  95. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
  96. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
  97. package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
  98. package/crud/contentEntry/entryDataFactories/statuses.js +12 -0
  99. package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
  100. package/crud/contentEntry/entryDataValidation.d.ts +5 -3
  101. package/crud/contentEntry/entryDataValidation.js +223 -45
  102. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  103. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  104. package/crud/contentEntry/markLockedFields.js +17 -10
  105. package/crud/contentEntry/markLockedFields.js.map +1 -1
  106. package/crud/contentEntry/referenceFieldsMapping.d.ts +7 -1
  107. package/crud/contentEntry/referenceFieldsMapping.js +135 -112
  108. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  109. package/crud/contentEntry/searchableFields.d.ts +2 -2
  110. package/crud/contentEntry/searchableFields.js +5 -4
  111. package/crud/contentEntry/searchableFields.js.map +1 -1
  112. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.d.ts +10 -0
  113. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.js +58 -0
  114. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.js.map +1 -0
  115. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.d.ts +7 -0
  116. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.js +17 -0
  117. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.js.map +1 -0
  118. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.d.ts +9 -0
  119. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.js +45 -0
  120. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.js.map +1 -0
  121. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.d.ts +9 -0
  122. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.js +22 -0
  123. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.js.map +1 -0
  124. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.d.ts +10 -0
  125. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.js +33 -0
  126. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.js.map +1 -0
  127. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.d.ts +7 -0
  128. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.js +17 -0
  129. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.js.map +1 -0
  130. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.d.ts +9 -0
  131. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.js +45 -0
  132. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.js.map +1 -0
  133. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.d.ts +6 -0
  134. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.js +21 -0
  135. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.js.map +1 -0
  136. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.d.ts +9 -0
  137. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js +54 -0
  138. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js.map +1 -0
  139. package/crud/contentEntry/useCases/DeleteEntry/index.d.ts +28 -0
  140. package/crud/contentEntry/useCases/DeleteEntry/index.js +42 -0
  141. package/crud/contentEntry/useCases/DeleteEntry/index.js.map +1 -0
  142. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.d.ts +9 -0
  143. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.js +21 -0
  144. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.js.map +1 -0
  145. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.d.ts +7 -0
  146. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.js +18 -0
  147. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.js.map +1 -0
  148. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.d.ts +9 -0
  149. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.js +28 -0
  150. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.js.map +1 -0
  151. package/crud/contentEntry/useCases/GetEntriesByIds/index.d.ts +13 -0
  152. package/crud/contentEntry/useCases/GetEntriesByIds/index.js +20 -0
  153. package/crud/contentEntry/useCases/GetEntriesByIds/index.js.map +1 -0
  154. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.d.ts +9 -0
  155. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.js +21 -0
  156. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.js.map +1 -0
  157. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.d.ts +7 -0
  158. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.js +18 -0
  159. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.js.map +1 -0
  160. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.d.ts +9 -0
  161. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.js +28 -0
  162. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.js.map +1 -0
  163. package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.d.ts +13 -0
  164. package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.js +20 -0
  165. package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.js.map +1 -0
  166. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.d.ts +9 -0
  167. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.js +22 -0
  168. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.js.map +1 -0
  169. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.d.ts +7 -0
  170. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.js +21 -0
  171. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.js.map +1 -0
  172. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.d.ts +7 -0
  173. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.js +21 -0
  174. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.js.map +1 -0
  175. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.d.ts +15 -0
  176. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.js +22 -0
  177. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.js.map +1 -0
  178. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.d.ts +9 -0
  179. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.js +22 -0
  180. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.js.map +1 -0
  181. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.d.ts +7 -0
  182. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.js +21 -0
  183. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.js.map +1 -0
  184. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.d.ts +11 -0
  185. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.js +18 -0
  186. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.js.map +1 -0
  187. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.d.ts +9 -0
  188. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.js +21 -0
  189. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.js.map +1 -0
  190. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.d.ts +7 -0
  191. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.js +18 -0
  192. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.js.map +1 -0
  193. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.d.ts +9 -0
  194. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.js +28 -0
  195. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.js.map +1 -0
  196. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.d.ts +13 -0
  197. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.js +20 -0
  198. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.js.map +1 -0
  199. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.d.ts +9 -0
  200. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.js +22 -0
  201. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.js.map +1 -0
  202. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.d.ts +7 -0
  203. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.js +21 -0
  204. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.js.map +1 -0
  205. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.d.ts +11 -0
  206. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.js +18 -0
  207. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.js.map +1 -0
  208. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.d.ts +9 -0
  209. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.js +22 -0
  210. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.js.map +1 -0
  211. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.d.ts +7 -0
  212. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.js +21 -0
  213. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.js.map +1 -0
  214. package/crud/contentEntry/useCases/GetRevisionById/index.d.ts +11 -0
  215. package/crud/contentEntry/useCases/GetRevisionById/index.js +18 -0
  216. package/crud/contentEntry/useCases/GetRevisionById/index.js.map +1 -0
  217. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.d.ts +9 -0
  218. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.js +21 -0
  219. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.js.map +1 -0
  220. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.d.ts +7 -0
  221. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.js +18 -0
  222. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.js.map +1 -0
  223. package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.d.ts +13 -0
  224. package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.js +18 -0
  225. package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.js.map +1 -0
  226. package/crud/contentEntry/useCases/ListEntries/GetEntry.d.ts +7 -0
  227. package/crud/contentEntry/useCases/ListEntries/GetEntry.js +29 -0
  228. package/crud/contentEntry/useCases/ListEntries/GetEntry.js.map +1 -0
  229. package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.d.ts +11 -0
  230. package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.js +38 -0
  231. package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.js.map +1 -0
  232. package/crud/contentEntry/useCases/ListEntries/ListEntries.d.ts +7 -0
  233. package/crud/contentEntry/useCases/ListEntries/ListEntries.js +62 -0
  234. package/crud/contentEntry/useCases/ListEntries/ListEntries.js.map +1 -0
  235. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.d.ts +14 -0
  236. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.js +24 -0
  237. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.js.map +1 -0
  238. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.d.ts +7 -0
  239. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.js +24 -0
  240. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.js.map +1 -0
  241. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.d.ts +7 -0
  242. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.js +25 -0
  243. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.js.map +1 -0
  244. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.d.ts +7 -0
  245. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.js +24 -0
  246. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.js.map +1 -0
  247. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.d.ts +7 -0
  248. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.js +24 -0
  249. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.js.map +1 -0
  250. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.d.ts +9 -0
  251. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.js +22 -0
  252. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.js.map +1 -0
  253. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.d.ts +8 -0
  254. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.js +27 -0
  255. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.js.map +1 -0
  256. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.d.ts +8 -0
  257. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.js +26 -0
  258. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.js.map +1 -0
  259. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.d.ts +7 -0
  260. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.js +36 -0
  261. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.js.map +1 -0
  262. package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.d.ts +11 -0
  263. package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.js +41 -0
  264. package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.js.map +1 -0
  265. package/crud/contentEntry/useCases/ListEntries/index.d.ts +26 -0
  266. package/crud/contentEntry/useCases/ListEntries/index.js +61 -0
  267. package/crud/contentEntry/useCases/ListEntries/index.js.map +1 -0
  268. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.d.ts +10 -0
  269. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.js +37 -0
  270. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.js.map +1 -0
  271. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.d.ts +9 -0
  272. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.js +19 -0
  273. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.js.map +1 -0
  274. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.d.ts +9 -0
  275. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.js +42 -0
  276. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.js.map +1 -0
  277. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.d.ts +9 -0
  278. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.js +22 -0
  279. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.js.map +1 -0
  280. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.d.ts +9 -0
  281. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js +53 -0
  282. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js.map +1 -0
  283. package/crud/contentEntry/useCases/RestoreEntryFromBin/index.d.ts +25 -0
  284. package/crud/contentEntry/useCases/RestoreEntryFromBin/index.js +24 -0
  285. package/crud/contentEntry/useCases/RestoreEntryFromBin/index.js.map +1 -0
  286. package/crud/contentEntry/useCases/index.d.ts +11 -0
  287. package/crud/contentEntry/useCases/index.js +128 -0
  288. package/crud/contentEntry/useCases/index.js.map +1 -0
  289. package/crud/contentEntry.crud.d.ts +6 -11
  290. package/crud/contentEntry.crud.js +508 -732
  291. package/crud/contentEntry.crud.js.map +1 -1
  292. package/crud/contentModel/beforeCreate.d.ts +2 -2
  293. package/crud/contentModel/beforeCreate.js +11 -9
  294. package/crud/contentModel/beforeCreate.js.map +1 -1
  295. package/crud/contentModel/beforeDelete.d.ts +3 -5
  296. package/crud/contentModel/beforeDelete.js +52 -16
  297. package/crud/contentModel/beforeDelete.js.map +1 -1
  298. package/crud/contentModel/beforeUpdate.d.ts +2 -2
  299. package/crud/contentModel/beforeUpdate.js +3 -6
  300. package/crud/contentModel/beforeUpdate.js.map +1 -1
  301. package/crud/contentModel/compatibility/modelApiName.d.ts +1 -1
  302. package/crud/contentModel/compatibility/modelApiName.js +3 -1
  303. package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
  304. package/crud/contentModel/contentModelManagerFactory.d.ts +2 -2
  305. package/crud/contentModel/contentModelManagerFactory.js +3 -1
  306. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  307. package/crud/contentModel/createFieldStorageId.d.ts +1 -1
  308. package/crud/contentModel/createFieldStorageId.js +3 -1
  309. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  310. package/crud/contentModel/defaultFields.d.ts +1 -1
  311. package/crud/contentModel/defaultFields.js +3 -1
  312. package/crud/contentModel/defaultFields.js.map +1 -1
  313. package/crud/contentModel/ensureTypeTag.d.ts +5 -0
  314. package/crud/contentModel/ensureTypeTag.js +21 -0
  315. package/crud/contentModel/ensureTypeTag.js.map +1 -0
  316. package/crud/contentModel/fields/descriptionField.d.ts +6 -2
  317. package/crud/contentModel/fields/descriptionField.js +17 -29
  318. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  319. package/crud/contentModel/fields/getApplicableFieldById.d.ts +2 -0
  320. package/crud/contentModel/fields/getApplicableFieldById.js +15 -0
  321. package/crud/contentModel/fields/getApplicableFieldById.js.map +1 -0
  322. package/crud/contentModel/fields/imageField.d.ts +2 -2
  323. package/crud/contentModel/fields/imageField.js +12 -33
  324. package/crud/contentModel/fields/imageField.js.map +1 -1
  325. package/crud/contentModel/fields/titleField.d.ts +6 -2
  326. package/crud/contentModel/fields/titleField.js +17 -44
  327. package/crud/contentModel/fields/titleField.js.map +1 -1
  328. package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
  329. package/crud/contentModel/listModelsFromDatabase.js +38 -0
  330. package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
  331. package/crud/contentModel/validate/endingAllowed.d.ts +1 -1
  332. package/crud/contentModel/validate/endingAllowed.js +3 -1
  333. package/crud/contentModel/validate/endingAllowed.js.map +1 -1
  334. package/crud/contentModel/validate/isModelEndingAllowed.js +5 -4
  335. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  336. package/crud/contentModel/validate/modelId.d.ts +1 -1
  337. package/crud/contentModel/validate/modelId.js +3 -1
  338. package/crud/contentModel/validate/modelId.js.map +1 -1
  339. package/crud/contentModel/validate/pluralApiName.d.ts +1 -1
  340. package/crud/contentModel/validate/pluralApiName.js +3 -1
  341. package/crud/contentModel/validate/pluralApiName.js.map +1 -1
  342. package/crud/contentModel/validate/singularApiName.d.ts +1 -1
  343. package/crud/contentModel/validate/singularApiName.js +3 -1
  344. package/crud/contentModel/validate/singularApiName.js.map +1 -1
  345. package/crud/contentModel/validateModel.d.ts +1 -1
  346. package/crud/contentModel/validateModel.js +3 -1
  347. package/crud/contentModel/validateModel.js.map +1 -1
  348. package/crud/contentModel/validateModelFields.d.ts +1 -1
  349. package/crud/contentModel/validateModelFields.js +8 -7
  350. package/crud/contentModel/validateModelFields.js.map +1 -1
  351. package/crud/contentModel/validateStorageId.d.ts +1 -0
  352. package/crud/contentModel/validateStorageId.js +19 -0
  353. package/crud/contentModel/validateStorageId.js.map +1 -0
  354. package/crud/contentModel/validation.d.ts +546 -204
  355. package/crud/contentModel/validation.js +76 -16
  356. package/crud/contentModel/validation.js.map +1 -1
  357. package/crud/contentModel.crud.d.ts +6 -6
  358. package/crud/contentModel.crud.js +189 -195
  359. package/crud/contentModel.crud.js.map +1 -1
  360. package/crud/contentModelGroup/beforeCreate.d.ts +3 -3
  361. package/crud/contentModelGroup/beforeCreate.js +15 -1
  362. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  363. package/crud/contentModelGroup/beforeDelete.d.ts +3 -3
  364. package/crud/contentModelGroup/beforeDelete.js +3 -1
  365. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  366. package/crud/contentModelGroup/beforeUpdate.d.ts +3 -3
  367. package/crud/contentModelGroup/beforeUpdate.js +3 -1
  368. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  369. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
  370. package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
  371. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
  372. package/crud/contentModelGroup/validation.d.ts +10 -7
  373. package/crud/contentModelGroup/validation.js +5 -2
  374. package/crud/contentModelGroup/validation.js.map +1 -1
  375. package/crud/contentModelGroup.crud.d.ts +6 -6
  376. package/crud/contentModelGroup.crud.js +117 -127
  377. package/crud/contentModelGroup.crud.js.map +1 -1
  378. package/crud/system.crud.d.ts +4 -4
  379. package/crud/system.crud.js +18 -11
  380. package/crud/system.crud.js.map +1 -1
  381. package/export/crud/exporting.d.ts +3 -0
  382. package/export/crud/exporting.js +49 -0
  383. package/export/crud/exporting.js.map +1 -0
  384. package/export/crud/importing.d.ts +3 -0
  385. package/export/crud/importing.js +79 -0
  386. package/export/crud/importing.js.map +1 -0
  387. package/export/crud/imports/importData.d.ts +14 -0
  388. package/export/crud/imports/importData.js +52 -0
  389. package/export/crud/imports/importData.js.map +1 -0
  390. package/export/crud/imports/importGroups.d.ts +8 -0
  391. package/export/crud/imports/importGroups.js +104 -0
  392. package/export/crud/imports/importGroups.js.map +1 -0
  393. package/export/crud/imports/importModels.d.ts +8 -0
  394. package/export/crud/imports/importModels.js +136 -0
  395. package/export/crud/imports/importModels.js.map +1 -0
  396. package/export/crud/imports/validateGroups.d.ts +8 -0
  397. package/export/crud/imports/validateGroups.js +112 -0
  398. package/export/crud/imports/validateGroups.js.map +1 -0
  399. package/export/crud/imports/validateInput.d.ts +19 -0
  400. package/export/crud/imports/validateInput.js +55 -0
  401. package/export/crud/imports/validateInput.js.map +1 -0
  402. package/export/crud/imports/validateModels.d.ts +12 -0
  403. package/export/crud/imports/validateModels.js +203 -0
  404. package/export/crud/imports/validateModels.js.map +1 -0
  405. package/export/crud/index.d.ts +4 -0
  406. package/export/crud/index.js +15 -0
  407. package/export/crud/index.js.map +1 -0
  408. package/export/crud/sanitize.d.ts +4 -0
  409. package/export/crud/sanitize.js +36 -0
  410. package/export/crud/sanitize.js.map +1 -0
  411. package/export/graphql/index.d.ts +3 -0
  412. package/export/graphql/index.js +188 -0
  413. package/export/graphql/index.js.map +1 -0
  414. package/export/index.d.ts +2 -0
  415. package/export/index.js +29 -0
  416. package/export/index.js.map +1 -0
  417. package/export/types.d.ts +113 -0
  418. package/export/types.js +21 -0
  419. package/export/types.js.map +1 -0
  420. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +5 -3
  421. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +4 -7
  422. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  423. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +3 -2
  424. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +28 -73
  425. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  426. package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +3 -2
  427. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +49 -40
  428. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  429. package/fieldConverters/index.d.ts +3 -0
  430. package/fieldConverters/index.js +7 -1
  431. package/fieldConverters/index.js.map +1 -1
  432. package/graphql/buildSchemaPlugins.d.ts +3 -3
  433. package/graphql/buildSchemaPlugins.js +7 -1
  434. package/graphql/buildSchemaPlugins.js.map +1 -1
  435. package/graphql/checkEndpointAccess.d.ts +1 -1
  436. package/graphql/checkEndpointAccess.js +3 -1
  437. package/graphql/checkEndpointAccess.js.map +1 -1
  438. package/graphql/createExecutableSchema.d.ts +2 -2
  439. package/graphql/createExecutableSchema.js +17 -8
  440. package/graphql/createExecutableSchema.js.map +1 -1
  441. package/graphql/createRequestBody.d.ts +1 -1
  442. package/graphql/createRequestBody.js +3 -1
  443. package/graphql/createRequestBody.js.map +1 -1
  444. package/graphql/formatErrorPayload.js +3 -1
  445. package/graphql/formatErrorPayload.js.map +1 -1
  446. package/graphql/generateSchema.d.ts +2 -2
  447. package/graphql/generateSchema.js +9 -2
  448. package/graphql/generateSchema.js.map +1 -1
  449. package/graphql/getSchema/generateCacheId.d.ts +10 -0
  450. package/graphql/getSchema/generateCacheId.js +17 -0
  451. package/graphql/getSchema/generateCacheId.js.map +1 -0
  452. package/graphql/getSchema/generateCacheKey.d.ts +10 -0
  453. package/graphql/getSchema/generateCacheKey.js +34 -0
  454. package/graphql/getSchema/generateCacheKey.js.map +1 -0
  455. package/graphql/getSchema.d.ts +4 -5
  456. package/graphql/getSchema.js +29 -50
  457. package/graphql/getSchema.js.map +1 -1
  458. package/graphql/graphQLHandlerFactory.d.ts +2 -2
  459. package/graphql/graphQLHandlerFactory.js +3 -1
  460. package/graphql/graphQLHandlerFactory.js.map +1 -1
  461. package/graphql/handleRequest.d.ts +2 -2
  462. package/graphql/handleRequest.js +11 -6
  463. package/graphql/handleRequest.js.map +1 -1
  464. package/graphql/index.d.ts +4 -3
  465. package/graphql/index.js +4 -2
  466. package/graphql/index.js.map +1 -1
  467. package/graphql/scalars/RevisionId.d.ts +2 -0
  468. package/graphql/scalars/RevisionId.js +26 -0
  469. package/graphql/scalars/RevisionId.js.map +1 -0
  470. package/graphql/scalars/RevisionIdScalarPlugin.d.ts +2 -0
  471. package/graphql/scalars/RevisionIdScalarPlugin.js +18 -0
  472. package/graphql/scalars/RevisionIdScalarPlugin.js.map +1 -0
  473. package/graphql/schema/baseContentSchema.d.ts +3 -3
  474. package/graphql/schema/baseContentSchema.js +10 -15
  475. package/graphql/schema/baseContentSchema.js.map +1 -1
  476. package/graphql/schema/baseSchema.d.ts +2 -3
  477. package/graphql/schema/baseSchema.js +72 -3
  478. package/graphql/schema/baseSchema.js.map +1 -1
  479. package/graphql/schema/contentEntries.d.ts +3 -3
  480. package/graphql/schema/contentEntries.js +52 -20
  481. package/graphql/schema/contentEntries.js.map +1 -1
  482. package/graphql/schema/contentModelGroups.d.ts +3 -3
  483. package/graphql/schema/contentModelGroups.js +6 -3
  484. package/graphql/schema/contentModelGroups.js.map +1 -1
  485. package/graphql/schema/contentModels.d.ts +4 -5
  486. package/graphql/schema/contentModels.js +31 -15
  487. package/graphql/schema/contentModels.js.map +1 -1
  488. package/graphql/schema/createFieldResolvers.d.ts +2 -2
  489. package/graphql/schema/createFieldResolvers.js +14 -14
  490. package/graphql/schema/createFieldResolvers.js.map +1 -1
  491. package/graphql/schema/createFieldTypePluginRecords.d.ts +2 -2
  492. package/graphql/schema/createFieldTypePluginRecords.js +3 -1
  493. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -1
  494. package/graphql/schema/createManageResolvers.d.ts +1 -2
  495. package/graphql/schema/createManageResolvers.js +34 -56
  496. package/graphql/schema/createManageResolvers.js.map +1 -1
  497. package/graphql/schema/createManageSDL.d.ts +2 -2
  498. package/graphql/schema/createManageSDL.js +49 -22
  499. package/graphql/schema/createManageSDL.js.map +1 -1
  500. package/graphql/schema/createPreviewResolvers.d.ts +1 -2
  501. package/graphql/schema/createPreviewResolvers.js +11 -13
  502. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  503. package/graphql/schema/createReadResolvers.d.ts +1 -2
  504. package/graphql/schema/createReadResolvers.js +11 -13
  505. package/graphql/schema/createReadResolvers.js.map +1 -1
  506. package/graphql/schema/createReadSDL.d.ts +2 -2
  507. package/graphql/schema/createReadSDL.js +14 -8
  508. package/graphql/schema/createReadSDL.js.map +1 -1
  509. package/graphql/schema/createSingularResolvers.d.ts +12 -0
  510. package/graphql/schema/createSingularResolvers.js +56 -0
  511. package/graphql/schema/createSingularResolvers.js.map +1 -0
  512. package/graphql/schema/createSingularSDL.d.ts +12 -0
  513. package/graphql/schema/createSingularSDL.js +95 -0
  514. package/graphql/schema/createSingularSDL.js.map +1 -0
  515. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.d.ts +7 -0
  516. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js +59 -0
  517. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js.map +1 -0
  518. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +3 -2
  519. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  520. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  521. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +3 -2
  522. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  523. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  524. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -2
  525. package/graphql/schema/resolvers/manage/resolveDelete.js +5 -2
  526. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  527. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +2 -2
  528. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +4 -2
  529. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  530. package/graphql/schema/resolvers/manage/resolveGet.d.ts +2 -2
  531. package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
  532. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  533. package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +2 -2
  534. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  535. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  536. package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +2 -2
  537. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  538. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  539. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +2 -2
  540. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +3 -1
  541. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  542. package/graphql/schema/resolvers/manage/resolveList.d.ts +2 -2
  543. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  544. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  545. package/graphql/schema/resolvers/manage/resolveListDeleted.d.ts +4 -0
  546. package/graphql/schema/resolvers/manage/resolveListDeleted.js +20 -0
  547. package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -0
  548. package/graphql/schema/resolvers/manage/resolveMove.d.ts +2 -2
  549. package/graphql/schema/resolvers/manage/resolveMove.js +7 -10
  550. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
  551. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +2 -2
  552. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  553. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  554. package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +2 -2
  555. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  556. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  557. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.d.ts +7 -0
  558. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js +20 -0
  559. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -0
  560. package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +2 -2
  561. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  562. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  563. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +3 -2
  564. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  565. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  566. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  567. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  568. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  569. package/graphql/schema/resolvers/preview/resolveGet.d.ts +2 -2
  570. package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
  571. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  572. package/graphql/schema/resolvers/preview/resolveList.d.ts +2 -2
  573. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  574. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  575. package/graphql/schema/resolvers/read/resolveGet.d.ts +2 -2
  576. package/graphql/schema/resolvers/read/resolveGet.js +6 -5
  577. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  578. package/graphql/schema/resolvers/read/resolveList.d.ts +2 -2
  579. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  580. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  581. package/graphql/schema/resolvers/singular/resolveGet.d.ts +7 -0
  582. package/graphql/schema/resolvers/singular/resolveGet.js +21 -0
  583. package/graphql/schema/resolvers/singular/resolveGet.js.map +1 -0
  584. package/graphql/schema/resolvers/singular/resolveUpdate.d.ts +8 -0
  585. package/graphql/schema/resolvers/singular/resolveUpdate.js +21 -0
  586. package/graphql/schema/resolvers/singular/resolveUpdate.js.map +1 -0
  587. package/graphql/schema/schemaPlugins.d.ts +3 -3
  588. package/graphql/schema/schemaPlugins.js +35 -12
  589. package/graphql/schema/schemaPlugins.js.map +1 -1
  590. package/graphql/system.d.ts +1 -1
  591. package/graphql/system.js +5 -2
  592. package/graphql/system.js.map +1 -1
  593. package/graphqlFields/boolean.d.ts +1 -1
  594. package/graphqlFields/boolean.js +3 -1
  595. package/graphqlFields/boolean.js.map +1 -1
  596. package/graphqlFields/datetime.d.ts +1 -1
  597. package/graphqlFields/datetime.js +5 -5
  598. package/graphqlFields/datetime.js.map +1 -1
  599. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
  600. package/graphqlFields/dynamicZone/dynamicZoneField.js +100 -23
  601. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  602. package/graphqlFields/dynamicZone/index.d.ts +0 -1
  603. package/graphqlFields/dynamicZone/index.js +2 -7
  604. package/graphqlFields/dynamicZone/index.js.map +1 -1
  605. package/graphqlFields/file.d.ts +1 -1
  606. package/graphqlFields/file.js +3 -1
  607. package/graphqlFields/file.js.map +1 -1
  608. package/graphqlFields/helpers.d.ts +1 -2
  609. package/graphqlFields/helpers.js +6 -18
  610. package/graphqlFields/helpers.js.map +1 -1
  611. package/graphqlFields/index.d.ts +1 -1
  612. package/graphqlFields/index.js +6 -2
  613. package/graphqlFields/index.js.map +1 -1
  614. package/graphqlFields/json.d.ts +2 -0
  615. package/graphqlFields/json.js +49 -0
  616. package/graphqlFields/json.js.map +1 -0
  617. package/graphqlFields/longText.d.ts +1 -1
  618. package/graphqlFields/longText.js +14 -3
  619. package/graphqlFields/longText.js.map +1 -1
  620. package/graphqlFields/number.d.ts +1 -1
  621. package/graphqlFields/number.js +3 -1
  622. package/graphqlFields/number.js.map +1 -1
  623. package/graphqlFields/object.d.ts +2 -2
  624. package/graphqlFields/object.js +38 -44
  625. package/graphqlFields/object.js.map +1 -1
  626. package/graphqlFields/ref.d.ts +1 -1
  627. package/graphqlFields/ref.js +29 -17
  628. package/graphqlFields/ref.js.map +1 -1
  629. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  630. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  631. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  632. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  633. package/graphqlFields/richText/richTextResolver.js +24 -0
  634. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  635. package/graphqlFields/richText.d.ts +1 -1
  636. package/graphqlFields/richText.js +11 -3
  637. package/graphqlFields/richText.js.map +1 -1
  638. package/graphqlFields/searchableJson.d.ts +2 -0
  639. package/graphqlFields/searchableJson.js +60 -0
  640. package/graphqlFields/searchableJson.js.map +1 -0
  641. package/graphqlFields/text.d.ts +1 -1
  642. package/graphqlFields/text.js +3 -1
  643. package/graphqlFields/text.js.map +1 -1
  644. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  645. package/htmlRenderer/LexicalRenderer.js +28 -0
  646. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  647. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  648. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  649. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  650. package/index.d.ts +13 -6
  651. package/index.js +82 -7
  652. package/index.js.map +1 -1
  653. package/modelManager/DefaultCmsModelManager.d.ts +11 -10
  654. package/modelManager/DefaultCmsModelManager.js +19 -18
  655. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  656. package/modelManager/SingletonModelManager.d.ts +12 -0
  657. package/modelManager/SingletonModelManager.js +48 -0
  658. package/modelManager/SingletonModelManager.js.map +1 -0
  659. package/modelManager/index.d.ts +2 -1
  660. package/modelManager/index.js +19 -2
  661. package/modelManager/index.js.map +1 -1
  662. package/package.json +38 -38
  663. package/parameters/context.js +4 -2
  664. package/parameters/context.js.map +1 -1
  665. package/parameters/header.js +7 -6
  666. package/parameters/header.js.map +1 -1
  667. package/parameters/index.js +3 -1
  668. package/parameters/index.js.map +1 -1
  669. package/parameters/manual.d.ts +2 -1
  670. package/parameters/manual.js +9 -4
  671. package/parameters/manual.js.map +1 -1
  672. package/parameters/path.js +4 -3
  673. package/parameters/path.js.map +1 -1
  674. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +9 -0
  675. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js +17 -0
  676. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -0
  677. package/plugins/CmsGraphQLSchemaPlugin/index.d.ts +1 -0
  678. package/plugins/CmsGraphQLSchemaPlugin/index.js +18 -0
  679. package/plugins/CmsGraphQLSchemaPlugin/index.js.map +1 -0
  680. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +1 -1
  681. package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
  682. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  683. package/plugins/CmsGroupPlugin.d.ts +15 -4
  684. package/plugins/CmsGroupPlugin.js +25 -7
  685. package/plugins/CmsGroupPlugin.js.map +1 -1
  686. package/plugins/CmsModelFieldConverterPlugin.d.ts +5 -2
  687. package/plugins/CmsModelFieldConverterPlugin.js +9 -4
  688. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  689. package/plugins/CmsModelPlugin.d.ts +35 -13
  690. package/plugins/CmsModelPlugin.js +150 -39
  691. package/plugins/CmsModelPlugin.js.map +1 -1
  692. package/plugins/CmsParametersPlugin.d.ts +3 -3
  693. package/plugins/CmsParametersPlugin.js +7 -4
  694. package/plugins/CmsParametersPlugin.js.map +1 -1
  695. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  696. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  697. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  698. package/plugins/StorageOperationsCmsModelPlugin.d.ts +1 -1
  699. package/plugins/StorageOperationsCmsModelPlugin.js +5 -6
  700. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  701. package/plugins/StorageTransformPlugin.d.ts +7 -3
  702. package/plugins/StorageTransformPlugin.js +12 -5
  703. package/plugins/StorageTransformPlugin.js.map +1 -1
  704. package/plugins/index.d.ts +1 -0
  705. package/plugins/index.js +14 -1
  706. package/plugins/index.js.map +1 -1
  707. package/storage/date.d.ts +3 -0
  708. package/storage/date.js +119 -0
  709. package/storage/date.js.map +1 -0
  710. package/storage/default.js +3 -1
  711. package/storage/default.js.map +1 -1
  712. package/storage/dynamicZone.d.ts +2 -0
  713. package/storage/dynamicZone.js +157 -0
  714. package/storage/dynamicZone.js.map +1 -0
  715. package/storage/index.d.ts +1 -0
  716. package/storage/index.js +21 -0
  717. package/storage/index.js.map +1 -0
  718. package/storage/json.d.ts +2 -0
  719. package/storage/json.js +56 -0
  720. package/storage/json.js.map +1 -0
  721. package/storage/object.js +24 -20
  722. package/storage/object.js.map +1 -1
  723. package/types/context.d.ts +146 -0
  724. package/types/context.js +7 -0
  725. package/types/context.js.map +1 -0
  726. package/types/fields/dynamicZoneField.d.ts +23 -0
  727. package/types/fields/dynamicZoneField.js +7 -0
  728. package/types/fields/dynamicZoneField.js.map +1 -0
  729. package/types/fields/objectField.d.ts +13 -0
  730. package/types/fields/objectField.js +7 -0
  731. package/types/fields/objectField.js.map +1 -0
  732. package/types/identity.d.ts +19 -0
  733. package/types/identity.js +7 -0
  734. package/types/identity.js.map +1 -0
  735. package/types/index.d.ts +10 -0
  736. package/types/index.js +117 -0
  737. package/types/index.js.map +1 -0
  738. package/types/model.d.ts +199 -0
  739. package/types/model.js +7 -0
  740. package/types/model.js.map +1 -0
  741. package/types/modelAst.d.ts +39 -0
  742. package/types/modelAst.js +7 -0
  743. package/types/modelAst.js.map +1 -0
  744. package/types/modelField.d.ts +330 -0
  745. package/types/modelField.js +7 -0
  746. package/types/modelField.js.map +1 -0
  747. package/types/modelGroup.d.ts +77 -0
  748. package/types/modelGroup.js +7 -0
  749. package/types/modelGroup.js.map +1 -0
  750. package/types/plugins.d.ts +365 -0
  751. package/types/plugins.js +7 -0
  752. package/types/plugins.js.map +1 -0
  753. package/{types.d.ts → types/types.d.ts} +484 -1364
  754. package/{types.js → types/types.js} +25 -137
  755. package/types/types.js.map +1 -0
  756. package/utils/RichTextRenderer.d.ts +10 -0
  757. package/utils/RichTextRenderer.js +33 -0
  758. package/utils/RichTextRenderer.js.map +1 -0
  759. package/utils/caching/Cache.d.ts +5 -0
  760. package/utils/caching/Cache.js +48 -0
  761. package/utils/caching/Cache.js.map +1 -0
  762. package/utils/caching/CacheKey.d.ts +3 -0
  763. package/utils/caching/CacheKey.js +28 -0
  764. package/utils/caching/CacheKey.js.map +1 -0
  765. package/utils/caching/index.d.ts +2 -0
  766. package/utils/caching/index.js +29 -0
  767. package/utils/caching/index.js.map +1 -0
  768. package/utils/caching/types.d.ts +13 -0
  769. package/utils/caching/types.js +14 -0
  770. package/utils/caching/types.js.map +1 -0
  771. package/utils/contentEntryTraverser/ContentEntryTraverser.d.ts +13 -0
  772. package/utils/contentEntryTraverser/ContentEntryTraverser.js +97 -0
  773. package/utils/contentEntryTraverser/ContentEntryTraverser.js.map +1 -0
  774. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.d.ts +6 -0
  775. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js +23 -0
  776. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js.map +1 -0
  777. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.d.ts +7 -0
  778. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js +22 -0
  779. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js.map +1 -0
  780. package/utils/contentModelAst/CmsModelToAstConverter.d.ts +11 -0
  781. package/utils/contentModelAst/CmsModelToAstConverter.js +28 -0
  782. package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -0
  783. package/utils/contentModelAst/index.d.ts +3 -0
  784. package/utils/contentModelAst/index.js +40 -0
  785. package/utils/contentModelAst/index.js.map +1 -0
  786. package/utils/converters/Converter.d.ts +3 -3
  787. package/utils/converters/Converter.js +4 -5
  788. package/utils/converters/Converter.js.map +1 -1
  789. package/utils/converters/ConverterCollection.d.ts +2 -2
  790. package/utils/converters/ConverterCollection.js +13 -7
  791. package/utils/converters/ConverterCollection.js.map +1 -1
  792. package/utils/converters/valueKeyStorageConverter.d.ts +3 -3
  793. package/utils/converters/valueKeyStorageConverter.js +11 -4
  794. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  795. package/utils/createModelField.d.ts +7 -0
  796. package/utils/createModelField.js +51 -0
  797. package/utils/createModelField.js.map +1 -0
  798. package/utils/createTypeFromFields.d.ts +1 -1
  799. package/utils/createTypeFromFields.js +6 -1
  800. package/utils/createTypeFromFields.js.map +1 -1
  801. package/utils/createTypeName.js +3 -1
  802. package/utils/createTypeName.js.map +1 -1
  803. package/utils/date.d.ts +10 -0
  804. package/utils/date.js +36 -0
  805. package/utils/date.js.map +1 -0
  806. package/utils/entryStorage.d.ts +16 -4
  807. package/utils/entryStorage.js +41 -5
  808. package/utils/entryStorage.js.map +1 -1
  809. package/utils/filterAsync.js +9 -8
  810. package/utils/filterAsync.js.map +1 -1
  811. package/utils/getBaseFieldType.d.ts +1 -1
  812. package/utils/getBaseFieldType.js +3 -1
  813. package/utils/getBaseFieldType.js.map +1 -1
  814. package/utils/getEntryDescription.d.ts +1 -1
  815. package/utils/getEntryDescription.js +3 -1
  816. package/utils/getEntryDescription.js.map +1 -1
  817. package/utils/getEntryImage.d.ts +1 -1
  818. package/utils/getEntryImage.js +3 -1
  819. package/utils/getEntryImage.js.map +1 -1
  820. package/utils/getEntryTitle.d.ts +1 -1
  821. package/utils/getEntryTitle.js +3 -1
  822. package/utils/getEntryTitle.js.map +1 -1
  823. package/utils/getSchemaFromFieldPlugins.d.ts +14 -3
  824. package/utils/getSchemaFromFieldPlugins.js +25 -6
  825. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  826. package/utils/identity.d.ts +2 -0
  827. package/utils/identity.js +20 -0
  828. package/utils/identity.js.map +1 -0
  829. package/utils/incrementEntryIdVersion.js +3 -1
  830. package/utils/incrementEntryIdVersion.js.map +1 -1
  831. package/utils/index.d.ts +2 -0
  832. package/utils/index.js +29 -0
  833. package/utils/index.js.map +1 -0
  834. package/utils/isHeadlessCmsReady.d.ts +2 -0
  835. package/utils/isHeadlessCmsReady.js +23 -0
  836. package/utils/isHeadlessCmsReady.js.map +1 -0
  837. package/utils/modelFieldTraverser/ModelFieldTraverser.d.ts +16 -0
  838. package/utils/modelFieldTraverser/ModelFieldTraverser.js +41 -0
  839. package/utils/modelFieldTraverser/ModelFieldTraverser.js.map +1 -0
  840. package/utils/modelFieldTraverser/index.d.ts +1 -0
  841. package/utils/modelFieldTraverser/index.js +18 -0
  842. package/utils/modelFieldTraverser/index.js.map +1 -0
  843. package/utils/renderFields.d.ts +1 -1
  844. package/utils/renderFields.js +5 -1
  845. package/utils/renderFields.js.map +1 -1
  846. package/utils/renderGetFilterFields.d.ts +1 -1
  847. package/utils/renderGetFilterFields.js +5 -4
  848. package/utils/renderGetFilterFields.js.map +1 -1
  849. package/utils/renderInputFields.d.ts +1 -1
  850. package/utils/renderInputFields.js +3 -1
  851. package/utils/renderInputFields.js.map +1 -1
  852. package/utils/renderListFilterFields.d.ts +1 -1
  853. package/utils/renderListFilterFields.js +12 -4
  854. package/utils/renderListFilterFields.js.map +1 -1
  855. package/utils/renderSortEnum.d.ts +2 -2
  856. package/utils/renderSortEnum.js +5 -2
  857. package/utils/renderSortEnum.js.map +1 -1
  858. package/utils/toSlug.js +3 -1
  859. package/utils/toSlug.js.map +1 -1
  860. package/validators/dateGte.d.ts +1 -1
  861. package/validators/dateGte.js +3 -1
  862. package/validators/dateGte.js.map +1 -1
  863. package/validators/dateLte.d.ts +1 -1
  864. package/validators/dateLte.js +3 -1
  865. package/validators/dateLte.js.map +1 -1
  866. package/validators/gte.d.ts +1 -1
  867. package/validators/gte.js +4 -3
  868. package/validators/gte.js.map +1 -1
  869. package/validators/in.d.ts +1 -1
  870. package/validators/in.js +4 -3
  871. package/validators/in.js.map +1 -1
  872. package/validators/index.js +4 -3
  873. package/validators/index.js.map +1 -1
  874. package/validators/lte.d.ts +1 -1
  875. package/validators/lte.js +4 -3
  876. package/validators/lte.js.map +1 -1
  877. package/validators/maxLength.d.ts +1 -1
  878. package/validators/maxLength.js +4 -3
  879. package/validators/maxLength.js.map +1 -1
  880. package/validators/minLength.d.ts +1 -1
  881. package/validators/minLength.js +4 -3
  882. package/validators/minLength.js.map +1 -1
  883. package/validators/pattern.d.ts +1 -1
  884. package/validators/pattern.js +5 -3
  885. package/validators/pattern.js.map +1 -1
  886. package/validators/patternPlugins/email.d.ts +1 -1
  887. package/validators/patternPlugins/email.js +4 -2
  888. package/validators/patternPlugins/email.js.map +1 -1
  889. package/validators/patternPlugins/index.d.ts +1 -1
  890. package/validators/patternPlugins/index.js +3 -1
  891. package/validators/patternPlugins/index.js.map +1 -1
  892. package/validators/patternPlugins/lowerCase.d.ts +1 -1
  893. package/validators/patternPlugins/lowerCase.js +3 -1
  894. package/validators/patternPlugins/lowerCase.js.map +1 -1
  895. package/validators/patternPlugins/lowerCaseSpace.d.ts +1 -1
  896. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  897. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  898. package/validators/patternPlugins/upperCase.d.ts +1 -1
  899. package/validators/patternPlugins/upperCase.js +3 -1
  900. package/validators/patternPlugins/upperCase.js.map +1 -1
  901. package/validators/patternPlugins/upperCaseSpace.d.ts +1 -1
  902. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  903. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  904. package/validators/patternPlugins/url.d.ts +1 -1
  905. package/validators/patternPlugins/url.js +3 -1
  906. package/validators/patternPlugins/url.js.map +1 -1
  907. package/validators/required.d.ts +1 -1
  908. package/validators/required.js +3 -1
  909. package/validators/required.js.map +1 -1
  910. package/validators/timeGte.d.ts +1 -1
  911. package/validators/timeGte.js +4 -3
  912. package/validators/timeGte.js.map +1 -1
  913. package/validators/timeLte.d.ts +1 -1
  914. package/validators/timeLte.js +4 -3
  915. package/validators/timeLte.js.map +1 -1
  916. package/validators/unique.d.ts +1 -1
  917. package/validators/unique.js +4 -2
  918. package/validators/unique.js.map +1 -1
  919. package/crud/contentModel/afterCreate.d.ts +0 -8
  920. package/crud/contentModel/afterCreate.js +0 -16
  921. package/crud/contentModel/afterCreate.js.map +0 -1
  922. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  923. package/crud/contentModel/afterCreateFrom.js +0 -16
  924. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  925. package/crud/contentModel/afterDelete.d.ts +0 -8
  926. package/crud/contentModel/afterDelete.js +0 -16
  927. package/crud/contentModel/afterDelete.js.map +0 -1
  928. package/crud/contentModel/afterUpdate.d.ts +0 -8
  929. package/crud/contentModel/afterUpdate.js +0 -16
  930. package/crud/contentModel/afterUpdate.js.map +0 -1
  931. package/crud/contentModel/validateLayout.d.ts +0 -2
  932. package/crud/contentModel/validateLayout.js +0 -28
  933. package/crud/contentModel/validateLayout.js.map +0 -1
  934. package/crud/settings.crud.d.ts +0 -12
  935. package/crud/settings.crud.js +0 -62
  936. package/crud/settings.crud.js.map +0 -1
  937. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
  938. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -13
  939. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
  940. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +0 -3
  941. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +0 -63
  942. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +0 -1
  943. package/plugins/CmsGraphQLSchemaPlugin.d.ts +0 -5
  944. package/plugins/CmsGraphQLSchemaPlugin.js +0 -12
  945. package/plugins/CmsGraphQLSchemaPlugin.js.map +0 -1
  946. package/types.js.map +0 -1
  947. package/utils/permissions/EntriesPermissions.d.ts +0 -4
  948. package/utils/permissions/EntriesPermissions.js +0 -9
  949. package/utils/permissions/EntriesPermissions.js.map +0 -1
  950. package/utils/permissions/ModelGroupsPermissions.d.ts +0 -11
  951. package/utils/permissions/ModelGroupsPermissions.js +0 -48
  952. package/utils/permissions/ModelGroupsPermissions.js.map +0 -1
  953. package/utils/permissions/ModelsPermissions.d.ts +0 -20
  954. package/utils/permissions/ModelsPermissions.js +0 -91
  955. package/utils/permissions/ModelsPermissions.js.map +0 -1
  956. package/utils/permissions/SettingsPermissions.d.ts +0 -4
  957. package/utils/permissions/SettingsPermissions.js +0 -9
  958. package/utils/permissions/SettingsPermissions.js.map +0 -1
  959. package/validators/dynamicZone.d.ts +0 -2
  960. package/validators/dynamicZone.js +0 -20
  961. package/validators/dynamicZone.js.map +0 -1
@@ -4,198 +4,31 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.createContentEntryCrud = exports.STATUS_UNPUBLISHED = exports.STATUS_PUBLISHED = exports.STATUS_DRAFT = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _merge = _interopRequireDefault(require("lodash/merge"));
7
+ exports.createContentEntryCrud = void 0;
10
8
  var _utils = require("@webiny/utils");
11
9
  var _error = _interopRequireDefault(require("@webiny/error"));
12
10
  var _handlerGraphql = require("@webiny/handler-graphql");
13
- var _types = require("../types");
14
11
  var _entryDataValidation = require("./contentEntry/entryDataValidation");
15
12
  var _pubsub = require("@webiny/pubsub");
16
13
  var _beforeCreate = require("./contentEntry/beforeCreate");
17
14
  var _beforeUpdate = require("./contentEntry/beforeUpdate");
18
15
  var _afterDelete = require("./contentEntry/afterDelete");
19
- var _referenceFieldsMapping = require("./contentEntry/referenceFieldsMapping");
20
16
  var _entryStorage = require("../utils/entryStorage");
21
17
  var _searchableFields = require("./contentEntry/searchableFields");
22
18
  var _filterAsync = require("../utils/filterAsync");
23
- var _apiSecurity = require("@webiny/api-security/");
24
19
  var _constants = require("../constants");
25
- const STATUS_DRAFT = _types.CONTENT_ENTRY_STATUS.DRAFT;
26
- exports.STATUS_DRAFT = STATUS_DRAFT;
27
- const STATUS_PUBLISHED = _types.CONTENT_ENTRY_STATUS.PUBLISHED;
28
- exports.STATUS_PUBLISHED = STATUS_PUBLISHED;
29
- const STATUS_UNPUBLISHED = _types.CONTENT_ENTRY_STATUS.UNPUBLISHED;
30
- exports.STATUS_UNPUBLISHED = STATUS_UNPUBLISHED;
31
- /**
32
- * Used for some fields to convert their values.
33
- */
34
- const convertDefaultValue = (field, value) => {
35
- switch (field.type) {
36
- case "boolean":
37
- return Boolean(value);
38
- case "number":
39
- return Number(value);
40
- default:
41
- return value;
42
- }
43
- };
44
- const getDefaultValue = field => {
45
- const {
46
- settings,
47
- multipleValues
48
- } = field;
49
- if (settings && settings.defaultValue !== undefined) {
50
- return convertDefaultValue(field, settings.defaultValue);
51
- }
52
- const {
53
- predefinedValues
54
- } = field;
55
- if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
56
- return undefined;
57
- }
58
- if (!multipleValues) {
59
- const selectedValue = predefinedValues.values.find(value => {
60
- return !!value.selected;
61
- });
62
- if (selectedValue) {
63
- return convertDefaultValue(field, selectedValue.value);
64
- }
65
- return undefined;
66
- }
67
- return predefinedValues.values.filter(({
68
- selected
69
- }) => !!selected).map(({
70
- value
71
- }) => {
72
- return convertDefaultValue(field, value);
73
- });
74
- };
75
- /**
76
- * Cleans and adds default values to create input data.
77
- */
78
- const mapAndCleanCreateInputData = (model, input) => {
79
- return model.fields.reduce((acc, field) => {
80
- /**
81
- * This should never happen, but let's make it sure.
82
- * The fix would be for the user to add the fieldId on the field definition.
83
- */
84
- if (!field.fieldId) {
85
- throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
86
- field
87
- });
88
- }
89
- const value = input[field.fieldId];
90
- /**
91
- * We set the default value on create input if value is not defined.
92
- */
93
- acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
94
- return acc;
95
- }, {});
96
- };
97
- /**
98
- * Cleans the update input entry data.
99
- */
100
- const mapAndCleanUpdatedInputData = (model, input) => {
101
- return model.fields.reduce((acc, field) => {
102
- /**
103
- * This should never happen, but let's make it sure.
104
- * The fix would be for the user to add the fieldId on the field definition.
105
- */
106
- if (!field.fieldId) {
107
- throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
108
- field
109
- });
110
- }
111
- /**
112
- * We cannot set default value here because user might want to update only certain field values.
113
- */
114
- const value = input[field.fieldId];
115
- if (value === undefined) {
116
- return acc;
117
- }
118
- acc[field.fieldId] = value;
119
- return acc;
120
- }, {});
121
- };
122
- /**
123
- * This method takes original entry meta and new input.
124
- * When new meta is merged onto the existing one, everything that has undefined or null value is removed.
125
- */
126
- const createEntryMeta = (input, original) => {
127
- const meta = (0, _merge.default)(original || {}, input || {});
128
- return (0, _utils.removeUndefinedValues)((0, _utils.removeNullValues)(meta));
129
- };
130
- const createEntryId = input => {
131
- let entryId = (0, _utils.mdbid)();
132
- if (input.id) {
133
- if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\-]+)([a-zA-Z0-9])$/) === null) {
134
- throw new _error.default("The provided ID is not valid. It must be a string which can be A-Z, a-z, 0-9, - and it cannot start or end with a -.", "INVALID_ID", {
135
- id: input.id
136
- });
137
- }
138
- entryId = input.id;
139
- }
140
- const version = 1;
141
- return {
142
- entryId,
143
- version,
144
- id: (0, _utils.createIdentifier)({
145
- id: entryId,
146
- version
147
- })
148
- };
149
- };
150
- const increaseEntryIdVersion = id => {
151
- const {
152
- id: entryId,
153
- version
154
- } = (0, _utils.parseIdentifier)(id);
155
- if (!version) {
156
- throw new _error.default("Cannot increase version on the ID without the version part.", "WRONG_ID", {
157
- id
158
- });
159
- }
160
- return {
161
- entryId,
162
- version: version + 1,
163
- id: (0, _utils.createIdentifier)({
164
- id: entryId,
165
- version: version + 1
166
- })
167
- };
168
- };
169
- const allowedEntryStatus = ["draft", "published", "unpublished"];
170
- const transformEntryStatus = status => {
171
- return allowedEntryStatus.includes(status) ? status : "draft";
172
- };
173
- const createSort = sort => {
174
- if (!Array.isArray(sort)) {
175
- return ["createdOn_DESC"];
176
- } else if (sort.filter(s => !!s).length === 0) {
177
- return ["createdOn_DESC"];
178
- }
179
- return sort;
180
- };
20
+ var _entryDataFactories = require("./contentEntry/entryDataFactories");
21
+ var _useCases = require("./contentEntry/useCases");
22
+ var _ContentEntryTraverser = require("../utils/contentEntryTraverser/ContentEntryTraverser");
181
23
  const createContentEntryCrud = params => {
182
24
  const {
183
25
  storageOperations,
184
- entriesPermissions,
185
- modelsPermissions,
26
+ accessControl,
186
27
  context,
187
- getIdentity,
28
+ getIdentity: getSecurityIdentity,
188
29
  getTenant,
189
30
  getLocale
190
31
  } = params;
191
- const getCreatedBy = () => {
192
- const identity = getIdentity();
193
- return {
194
- id: identity.id,
195
- displayName: identity.displayName,
196
- type: identity.type
197
- };
198
- };
199
32
 
200
33
  /**
201
34
  * Create
@@ -218,6 +51,13 @@ const createContentEntryCrud = params => {
218
51
  const onEntryAfterUpdate = (0, _pubsub.createTopic)("cms.onEntryAfterUpdate");
219
52
  const onEntryUpdateError = (0, _pubsub.createTopic)("cms.onEntryUpdateError");
220
53
 
54
+ /**
55
+ * Move
56
+ */
57
+ const onEntryBeforeMove = (0, _pubsub.createTopic)("cms.onEntryBeforeMove");
58
+ const onEntryAfterMove = (0, _pubsub.createTopic)("cms.onEntryAfterMove");
59
+ const onEntryMoveError = (0, _pubsub.createTopic)("cms.onEntryMoveError");
60
+
221
61
  /**
222
62
  * Publish
223
63
  */
@@ -246,6 +86,13 @@ const createContentEntryCrud = params => {
246
86
  const onEntryAfterDelete = (0, _pubsub.createTopic)("cms.onEntryAfterDelete");
247
87
  const onEntryDeleteError = (0, _pubsub.createTopic)("cms.onEntryDeleteError");
248
88
 
89
+ /**
90
+ * Restore from bin
91
+ */
92
+ const onEntryBeforeRestoreFromBin = (0, _pubsub.createTopic)("cms.onEntryBeforeRestoreFromBin");
93
+ const onEntryAfterRestoreFromBin = (0, _pubsub.createTopic)("cms.onEntryAfterRestoreFromBin");
94
+ const onEntryRestoreFromBinError = (0, _pubsub.createTopic)("cms.onEntryRestoreFromBinError");
95
+
249
96
  /**
250
97
  * Delete revision
251
98
  */
@@ -284,64 +131,155 @@ const createContentEntryCrud = params => {
284
131
  context,
285
132
  onEntryAfterDelete
286
133
  });
134
+ const transformEntryFromStorageCallable = (0, _entryStorage.createTransformEntryCallable)({
135
+ context
136
+ });
137
+ /**
138
+ * List entries
139
+ */
140
+ const {
141
+ listEntriesUseCase,
142
+ listLatestUseCase,
143
+ listDeletedUseCase,
144
+ listPublishedUseCase,
145
+ getEntryUseCase
146
+ } = (0, _useCases.listEntriesUseCases)({
147
+ transform: transformEntryFromStorageCallable,
148
+ operation: storageOperations.entries.list,
149
+ accessControl,
150
+ topics: {
151
+ onEntryBeforeList
152
+ },
153
+ context,
154
+ getIdentity: getSecurityIdentity
155
+ });
287
156
 
288
157
  /**
289
- * A helper to delete the entire entry.
158
+ * Get entries by ids
290
159
  */
291
- const deleteEntryHelper = async params => {
292
- return context.benchmark.measure("headlessCms.crud.entries.deleteEntry", async () => {
293
- const {
294
- model,
295
- entry
296
- } = params;
297
- try {
298
- await onEntryBeforeDelete.publish({
299
- entry,
300
- model
301
- });
302
- await storageOperations.entries.delete(model, {
303
- entry
304
- });
305
- await onEntryAfterDelete.publish({
306
- entry,
307
- model
308
- });
309
- } catch (ex) {
310
- await onEntryDeleteError.publish({
311
- entry,
312
- model,
313
- error: ex
314
- });
315
- throw new _error.default(ex.message || "Could not delete entry.", ex.code || "DELETE_ERROR", {
316
- entry
317
- });
318
- }
319
- });
320
- };
160
+ const {
161
+ getEntriesByIdsUseCase
162
+ } = (0, _useCases.getEntriesByIdsUseCases)({
163
+ transform: transformEntryFromStorageCallable,
164
+ operation: storageOperations.entries.getByIds,
165
+ accessControl
166
+ });
167
+
321
168
  /**
322
- * A helper to get entries by revision IDs
169
+ * Get latest entries by ids
323
170
  */
324
- const getEntriesByIds = async (model, ids) => {
325
- return context.benchmark.measure("headlessCms.crud.entries.getEntriesByIds", async () => {
326
- await entriesPermissions.ensure({
327
- rwd: "r"
328
- });
329
- await modelsPermissions.ensureCanAccessModel({
330
- model,
331
- locale: getLocale().code
332
- });
333
- const entries = await storageOperations.entries.getByIds(model, {
334
- ids
335
- });
336
- return (0, _filterAsync.filterAsync)(entries, async entry => {
337
- return entriesPermissions.ensure({
338
- owns: entry.createdBy
339
- }, {
340
- throw: false
341
- });
342
- });
343
- });
344
- };
171
+ const {
172
+ getLatestEntriesByIdsUseCase
173
+ } = (0, _useCases.getLatestEntriesByIdsUseCases)({
174
+ transform: transformEntryFromStorageCallable,
175
+ operation: storageOperations.entries.getLatestByIds,
176
+ accessControl
177
+ });
178
+
179
+ /**
180
+ * Get published entries by ids
181
+ */
182
+ const {
183
+ getPublishedEntriesByIdsUseCase
184
+ } = (0, _useCases.getPublishedEntriesByIdsUseCases)({
185
+ transform: transformEntryFromStorageCallable,
186
+ operation: storageOperations.entries.getPublishedByIds,
187
+ accessControl
188
+ });
189
+
190
+ /**
191
+ * Get revisions by entryId
192
+ */
193
+ const {
194
+ getRevisionsByEntryIdUseCase
195
+ } = (0, _useCases.getRevisionsByEntryIdUseCases)({
196
+ transform: transformEntryFromStorageCallable,
197
+ operation: storageOperations.entries.getRevisions,
198
+ accessControl
199
+ });
200
+
201
+ /**
202
+ * Get revision by id
203
+ */
204
+ const {
205
+ getRevisionByIdUseCase
206
+ } = (0, _useCases.getRevisionByIdUseCases)({
207
+ transform: transformEntryFromStorageCallable,
208
+ operation: storageOperations.entries.getRevisionById
209
+ });
210
+
211
+ /**
212
+ * Get latest revision by entryId
213
+ */
214
+ const {
215
+ getLatestRevisionByEntryIdUseCase,
216
+ getLatestRevisionByEntryIdWithDeletedUseCase,
217
+ getLatestRevisionByEntryIdDeletedUseCase
218
+ } = (0, _useCases.getLatestRevisionByEntryIdUseCases)({
219
+ transform: transformEntryFromStorageCallable,
220
+ operation: storageOperations.entries.getLatestRevisionByEntryId
221
+ });
222
+
223
+ /**
224
+ * Get previous revision by entryId
225
+ */
226
+ const {
227
+ getPreviousRevisionByEntryIdUseCase
228
+ } = (0, _useCases.getPreviousRevisionByEntryIdUseCases)({
229
+ transform: transformEntryFromStorageCallable,
230
+ operation: storageOperations.entries.getPreviousRevision
231
+ });
232
+
233
+ /**
234
+ * Get published revision by entryId
235
+ */
236
+ const {
237
+ getPublishedRevisionByEntryIdUseCase
238
+ } = (0, _useCases.getPublishedRevisionByEntryIdUseCases)({
239
+ transform: transformEntryFromStorageCallable,
240
+ operation: storageOperations.entries.getPublishedRevisionByEntryId
241
+ });
242
+
243
+ /**
244
+ * Delete entry
245
+ */
246
+ const {
247
+ deleteEntryUseCase,
248
+ moveEntryToBinUseCase,
249
+ deleteEntryOperation
250
+ } = (0, _useCases.deleteEntryUseCases)({
251
+ deleteOperation: storageOperations.entries.delete,
252
+ moveToBinOperation: storageOperations.entries.moveToBin,
253
+ getEntry: getLatestRevisionByEntryIdUseCase,
254
+ getEntryWithDeleted: getLatestRevisionByEntryIdWithDeletedUseCase,
255
+ getIdentity: getSecurityIdentity,
256
+ topics: {
257
+ onEntryBeforeDelete,
258
+ onEntryAfterDelete,
259
+ onEntryDeleteError
260
+ },
261
+ accessControl,
262
+ context
263
+ });
264
+
265
+ /**
266
+ * Restore entry from bin
267
+ */
268
+ const {
269
+ restoreEntryFromBinUseCase
270
+ } = (0, _useCases.restoreEntryFromBinUseCases)({
271
+ transform: transformEntryFromStorageCallable,
272
+ getEntry: getLatestRevisionByEntryIdDeletedUseCase,
273
+ getIdentity: getSecurityIdentity,
274
+ restoreOperation: storageOperations.entries.restoreFromBin,
275
+ topics: {
276
+ onEntryBeforeRestoreFromBin,
277
+ onEntryAfterRestoreFromBin,
278
+ onEntryRestoreFromBinError
279
+ },
280
+ accessControl,
281
+ context
282
+ });
345
283
  const getEntryById = async (model, id) => {
346
284
  const where = {
347
285
  id
@@ -350,221 +288,38 @@ const createContentEntryCrud = params => {
350
288
  where,
351
289
  model
352
290
  });
353
- const [entry] = await getEntriesByIds(model, [id]);
291
+ const [entry] = await getEntriesByIdsUseCase.execute(model, {
292
+ ids: [id]
293
+ });
354
294
  if (!entry) {
355
295
  throw new _handlerGraphql.NotFoundError(`Entry by ID "${id}" not found.`);
356
296
  }
297
+ // TODO figure out without casting
357
298
  return entry;
358
299
  };
359
- const getPublishedEntriesByIds = async (model, ids) => {
360
- await entriesPermissions.ensure({
361
- rwd: "r"
362
- });
363
- await modelsPermissions.ensureCanAccessModel({
300
+ const createEntry = async (model, rawInput, options) => {
301
+ await accessControl.ensureCanAccessEntry({
364
302
  model,
365
- locale: getLocale().code
366
- });
367
- const entries = await storageOperations.entries.getPublishedByIds(model, {
368
- ids
369
- });
370
- return (0, _filterAsync.filterAsync)(entries, async entry => {
371
- return entriesPermissions.ensure({
372
- owns: entry.createdBy
373
- }, {
374
- throw: false
375
- });
376
- });
377
- };
378
- const getLatestEntriesByIds = async (model, ids) => {
379
- await entriesPermissions.ensure({
380
- rwd: "r"
381
- });
382
- await modelsPermissions.ensureCanAccessModel({
383
- model,
384
- locale: getLocale().code
385
- });
386
- const entries = await storageOperations.entries.getLatestByIds(model, {
387
- ids
388
- });
389
- return (0, _filterAsync.filterAsync)(entries, async entry => {
390
- return entriesPermissions.ensure({
391
- owns: entry.createdBy
392
- }, {
393
- throw: false
394
- });
395
- });
396
- };
397
- const getEntry = async (model, params) => {
398
- await entriesPermissions.ensure({
399
- rwd: "r"
400
- });
401
- const {
402
- where,
403
- sort
404
- } = params;
405
- await onEntryBeforeGet.publish({
406
- where,
407
- model
408
- });
409
- const [items] = await listEntries(model, {
410
- where,
411
- sort,
412
- limit: 1
413
- });
414
- const item = items.shift();
415
- if (!item) {
416
- throw new _handlerGraphql.NotFoundError(`Entry not found!`);
417
- }
418
- return item;
419
- };
420
- const getEntryRevisions = async (model, entryId) => {
421
- return storageOperations.entries.getRevisions(model, {
422
- id: entryId
423
- });
424
- };
425
- const listEntries = async (model, params) => {
426
- try {
427
- await entriesPermissions.ensure({
428
- rwd: "r"
429
- });
430
- } catch {
431
- throw new _apiSecurity.NotAuthorizedError({
432
- data: {
433
- reason: 'Not allowed to perform "read" on "cms.contentEntry".'
434
- }
435
- });
436
- }
437
- await modelsPermissions.ensureCanAccessModel({
438
- model,
439
- locale: getLocale().code
440
- });
441
- const {
442
- where: initialWhere,
443
- limit: initialLimit
444
- } = params;
445
- const limit = initialLimit && initialLimit > 0 ? initialLimit : 50;
446
- const where = (0, _objectSpread2.default)({}, initialWhere);
447
- /**
448
- * Possibly only get records which are owned by current user.
449
- * Or if searching for the owner set that value - in the case that user can see other entries than their own.
450
- */
451
- if (await entriesPermissions.canAccessOnlyOwnRecords()) {
452
- where.ownedBy = getIdentity().id;
453
- }
454
-
455
- /**
456
- * Where must contain either latest or published keys.
457
- * We cannot list entries without one of those
458
- */
459
- if (where.latest && where.published) {
460
- throw new _error.default("Cannot list entries that are both published and latest.", "LIST_ENTRIES_ERROR", {
461
- where
462
- });
463
- } else if (!where.latest && !where.published) {
464
- throw new _error.default("Cannot list entries if we do not have latest or published defined.", "LIST_ENTRIES_ERROR", {
465
- where
466
- });
467
- }
468
- const fields = (0, _searchableFields.getSearchableFields)({
469
- fields: model.fields,
470
- plugins: context.plugins,
471
- input: params.fields || []
472
- });
473
- try {
474
- await onEntryBeforeList.publish({
475
- where,
476
- model
477
- });
478
- const {
479
- hasMoreItems,
480
- totalCount,
481
- cursor,
482
- items
483
- } = await storageOperations.entries.list(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
484
- sort: createSort(params.sort),
485
- limit,
486
- where,
487
- fields
488
- }));
489
- const meta = {
490
- hasMoreItems,
491
- totalCount,
492
- /**
493
- * Cursor should be null if there are no more items to load.
494
- * Just make sure of that, disregarding what is returned from the storageOperations.entries.list method.
495
- */
496
- cursor: hasMoreItems ? cursor : null
497
- };
498
- return [items, meta];
499
- } catch (ex) {
500
- throw new _error.default("Error while fetching entries from storage.", "LIST_ENTRIES_ERROR", {
501
- params,
502
- error: {
503
- message: ex.message,
504
- code: ex.code,
505
- data: ex.data
506
- },
507
- model,
508
- fields
509
- });
510
- }
511
- };
512
- const createEntry = async (model, inputData) => {
513
- var _inputData$wbyAco_loc;
514
- await entriesPermissions.ensure({
515
303
  rwd: "w"
516
304
  });
517
- await modelsPermissions.ensureCanAccessModel({
518
- model,
519
- locale: getLocale().code
520
- });
521
-
522
- /**
523
- * Make sure we only work with fields that are defined in the model.
524
- */
525
- const initialInput = mapAndCleanCreateInputData(model, inputData);
526
- await (0, _entryDataValidation.validateModelEntryData)({
305
+ const {
306
+ entry,
307
+ input
308
+ } = await (0, _entryDataFactories.createEntryData)({
527
309
  context,
528
310
  model,
529
- data: initialInput
530
- });
531
- const input = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
532
- context,
311
+ options,
312
+ rawInput,
313
+ getLocale,
314
+ getTenant,
315
+ getIdentity: getSecurityIdentity,
316
+ accessControl
317
+ });
318
+ await accessControl.ensureCanAccessEntry({
533
319
  model,
534
- input: initialInput,
535
- validateEntries: true
320
+ entry,
321
+ rwd: "w"
536
322
  });
537
- const locale = getLocale();
538
- const owner = getCreatedBy();
539
- const {
540
- id,
541
- entryId,
542
- version
543
- } = createEntryId(inputData);
544
- /**
545
- * There is a possibility that user sends an ID in the input, so we will use that one.
546
- * There is no check if the ID is unique or not, that is up to the user.
547
- */
548
- const entry = {
549
- webinyVersion: context.WEBINY_VERSION,
550
- tenant: getTenant().id,
551
- entryId,
552
- id,
553
- modelId: model.modelId,
554
- locale: locale.code,
555
- createdOn: new Date().toISOString(),
556
- savedOn: new Date().toISOString(),
557
- createdBy: owner,
558
- ownedBy: owner,
559
- modifiedBy: null,
560
- version,
561
- locked: false,
562
- status: STATUS_DRAFT,
563
- values: input,
564
- location: {
565
- folderId: ((_inputData$wbyAco_loc = inputData.wbyAco_location) === null || _inputData$wbyAco_loc === void 0 ? void 0 : _inputData$wbyAco_loc.folderId) || _constants.ROOT_FOLDER
566
- }
567
- };
568
323
  let storageEntry = null;
569
324
  try {
570
325
  await onEntryBeforeCreate.publish({
@@ -583,7 +338,7 @@ const createContentEntryCrud = params => {
583
338
  model,
584
339
  input
585
340
  });
586
- return result;
341
+ return entry;
587
342
  } catch (ex) {
588
343
  await onEntryCreateError.publish({
589
344
  error: ex,
@@ -599,77 +354,55 @@ const createContentEntryCrud = params => {
599
354
  });
600
355
  }
601
356
  };
602
- const createEntryRevisionFrom = async (model, sourceId, inputData) => {
603
- await entriesPermissions.ensure({
604
- rwd: "w"
605
- });
606
- await modelsPermissions.ensureCanAccessModel({
357
+ const createEntryRevisionFrom = async (model, sourceId, rawInput, options) => {
358
+ await accessControl.ensureCanAccessEntry({
607
359
  model,
608
- locale: getLocale().code
360
+ rwd: "w"
609
361
  });
610
362
 
611
- /**
612
- * Make sure we only work with fields that are defined in the model.
613
- */
614
- const input = mapAndCleanUpdatedInputData(model, inputData);
615
-
616
363
  /**
617
364
  * Entries are identified by a common parent ID + Revision number.
618
365
  */
619
366
  const {
620
367
  id: uniqueId
621
368
  } = (0, _utils.parseIdentifier)(sourceId);
622
- const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
369
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
623
370
  id: sourceId
624
371
  });
625
- const latestStorageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
372
+ const latestStorageEntry = await getLatestRevisionByEntryIdUseCase.execute(model, {
626
373
  id: uniqueId
627
374
  });
628
375
  if (!originalStorageEntry) {
629
376
  throw new _handlerGraphql.NotFoundError(`Entry "${sourceId}" of model "${model.modelId}" was not found.`);
630
377
  }
378
+ if (!latestStorageEntry) {
379
+ throw new _handlerGraphql.NotFoundError(`Latest entry "${uniqueId}" of model "${model.modelId}" was not found.`);
380
+ }
631
381
 
632
382
  /**
633
383
  * We need to convert data from DB to its original form before using it further.
634
384
  */
635
385
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
636
- const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
637
- await (0, _entryDataValidation.validateModelEntryData)({
638
- context,
386
+ const {
387
+ entry,
388
+ input
389
+ } = await (0, _entryDataFactories.createEntryRevisionFromData)({
390
+ sourceId,
639
391
  model,
640
- data: initialValues,
641
- entry: originalEntry
642
- });
643
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
392
+ rawInput,
393
+ options,
644
394
  context,
395
+ getIdentity: getSecurityIdentity,
396
+ getTenant,
397
+ getLocale,
398
+ originalEntry,
399
+ latestStorageEntry,
400
+ accessControl
401
+ });
402
+ await accessControl.ensureCanAccessEntry({
645
403
  model,
646
- input: initialValues,
647
- validateEntries: false
648
- });
649
- await entriesPermissions.ensure({
650
- owns: originalEntry.createdBy
651
- });
652
- const identity = getIdentity();
653
- const latestId = latestStorageEntry ? latestStorageEntry.id : sourceId;
654
- const {
655
- id,
656
- version: nextVersion
657
- } = increaseEntryIdVersion(latestId);
658
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
659
- id,
660
- version: nextVersion,
661
- savedOn: new Date().toISOString(),
662
- createdOn: new Date().toISOString(),
663
- createdBy: {
664
- id: identity.id,
665
- displayName: identity.displayName,
666
- type: identity.type
667
- },
668
- modifiedBy: null,
669
- locked: false,
670
- publishedOn: undefined,
671
- status: STATUS_DRAFT,
672
- values
404
+ entry,
405
+ rwd: "w"
673
406
  });
674
407
  let storageEntry = null;
675
408
  try {
@@ -691,7 +424,7 @@ const createContentEntryCrud = params => {
691
424
  original: originalEntry,
692
425
  storageEntry: result
693
426
  });
694
- return result;
427
+ return entry;
695
428
  } catch (ex) {
696
429
  await onEntryCreateRevisionError.publish({
697
430
  entry,
@@ -709,25 +442,16 @@ const createContentEntryCrud = params => {
709
442
  });
710
443
  }
711
444
  };
712
- const updateEntry = async (model, id, inputData, metaInput) => {
713
- var _inputData$wbyAco_loc2;
714
- await entriesPermissions.ensure({
715
- rwd: "w"
716
- });
717
- await modelsPermissions.ensureCanAccessModel({
445
+ const updateEntry = async (model, id, rawInput, metaInput, options) => {
446
+ await accessControl.ensureCanAccessEntry({
718
447
  model,
719
- locale: getLocale().code
448
+ rwd: "w"
720
449
  });
721
450
 
722
- /**
723
- * Make sure we only work with fields that are defined in the model.
724
- */
725
- const input = mapAndCleanUpdatedInputData(model, inputData);
726
-
727
451
  /**
728
452
  * The entry we are going to update.
729
453
  */
730
- const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
454
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
731
455
  id
732
456
  });
733
457
  if (!originalStorageEntry) {
@@ -737,42 +461,25 @@ const createContentEntryCrud = params => {
737
461
  throw new _error.default(`Cannot update entry because it's locked.`, "CONTENT_ENTRY_UPDATE_ERROR");
738
462
  }
739
463
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
740
- await (0, _entryDataValidation.validateModelEntryData)({
741
- context,
464
+ const {
465
+ entry,
466
+ input
467
+ } = await (0, _entryDataFactories.createUpdateEntryData)({
742
468
  model,
743
- data: input,
744
- entry: originalEntry
745
- });
746
- await entriesPermissions.ensure({
747
- owns: originalEntry.createdBy
748
- });
749
- const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
750
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
469
+ rawInput,
470
+ options,
751
471
  context,
752
- model,
753
- input: initialValues,
754
- validateEntries: false
472
+ getIdentity: getSecurityIdentity,
473
+ getTenant,
474
+ getLocale,
475
+ originalEntry,
476
+ metaInput
755
477
  });
756
- /**
757
- * If users wants to remove a key from meta values, they need to send meta key with the null value.
758
- */
759
- const meta = createEntryMeta(metaInput, originalEntry.meta);
760
- /**
761
- * We always send the full entry to the hooks and storage operations update.
762
- */
763
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
764
- savedOn: new Date().toISOString(),
765
- modifiedBy: getCreatedBy(),
766
- values,
767
- meta,
768
- status: transformEntryStatus(originalEntry.status)
478
+ await accessControl.ensureCanAccessEntry({
479
+ model,
480
+ entry,
481
+ rwd: "w"
769
482
  });
770
- const folderId = (_inputData$wbyAco_loc2 = inputData.wbyAco_location) === null || _inputData$wbyAco_loc2 === void 0 ? void 0 : _inputData$wbyAco_loc2.folderId;
771
- if (folderId) {
772
- entry.location = {
773
- folderId
774
- };
775
- }
776
483
  let storageEntry = null;
777
484
  try {
778
485
  await onEntryBeforeUpdate.publish({
@@ -793,7 +500,7 @@ const createContentEntryCrud = params => {
793
500
  input,
794
501
  original: originalEntry
795
502
  });
796
- return result;
503
+ return entry;
797
504
  } catch (ex) {
798
505
  await onEntryUpdateError.publish({
799
506
  entry,
@@ -810,44 +517,122 @@ const createContentEntryCrud = params => {
810
517
  });
811
518
  }
812
519
  };
813
- const republishEntry = async (model, id) => {
814
- await entriesPermissions.ensure({
520
+ const validateEntry = async (model, id, inputData) => {
521
+ await accessControl.ensureCanAccessEntry({
522
+ model,
815
523
  rwd: "w"
816
524
  });
817
- await modelsPermissions.ensureCanAccessModel({
525
+ const input = (0, _entryDataFactories.mapAndCleanUpdatedInputData)(model, inputData || {});
526
+ let originalEntry;
527
+ if (id) {
528
+ /**
529
+ * The entry we are going to update.
530
+ */
531
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
532
+ id
533
+ });
534
+ if (!originalStorageEntry) {
535
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
536
+ }
537
+ originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
538
+ }
539
+ await accessControl.ensureCanAccessEntry({
540
+ model,
541
+ entry: originalEntry,
542
+ rwd: "w"
543
+ });
544
+ const result = await (0, _entryDataValidation.validateModelEntryData)({
545
+ context,
546
+ model,
547
+ data: input,
548
+ entry: originalEntry
549
+ });
550
+ return result.length > 0 ? result : [];
551
+ };
552
+ const moveEntry = async (model, id, folderId) => {
553
+ await accessControl.ensureCanAccessEntry({
818
554
  model,
819
- locale: getLocale().code
555
+ rwd: "w"
820
556
  });
821
557
 
822
558
  /**
823
- * Fetch the entry from the storage.
559
+ * The entry we are going to move to another folder.
824
560
  */
825
- const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
561
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
826
562
  id
827
563
  });
828
564
  if (!originalStorageEntry) {
829
- throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
565
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
830
566
  }
831
- const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
567
+ const entry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
568
+ await accessControl.ensureCanAccessEntry({
569
+ model,
570
+ entry,
571
+ rwd: "w"
572
+ });
573
+
832
574
  /**
833
- * We can only process published entries.
575
+ * No need to continue if the entry is already in the requested folder.
834
576
  */
835
- if (originalEntry.status !== "published") {
836
- throw new _error.default("Entry with given ID is not published!", "NOT_PUBLISHED_ERROR", {
837
- id,
838
- original: originalEntry
577
+ if (entry.location?.folderId === folderId) {
578
+ return entry;
579
+ }
580
+ try {
581
+ await onEntryBeforeMove.publish({
582
+ entry,
583
+ model,
584
+ folderId
585
+ });
586
+ await storageOperations.entries.move(model, id, folderId);
587
+ await onEntryAfterMove.publish({
588
+ entry,
589
+ model,
590
+ folderId
591
+ });
592
+ return entry;
593
+ } catch (ex) {
594
+ await onEntryMoveError.publish({
595
+ entry,
596
+ model,
597
+ folderId,
598
+ error: ex
599
+ });
600
+ throw _error.default.from(ex, {
601
+ message: `Could not move entry "${id}" of model "${model.modelId}".`,
602
+ code: "MOVE_ENTRY_ERROR"
839
603
  });
840
604
  }
841
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
842
- context,
605
+ };
606
+ const republishEntry = async (model, id) => {
607
+ await accessControl.ensureCanAccessEntry({
608
+ model,
609
+ rwd: "w",
610
+ pw: "p"
611
+ });
612
+
613
+ /**
614
+ * Fetch the entry from the storage.
615
+ */
616
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
617
+ id
618
+ });
619
+ if (!originalStorageEntry) {
620
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
621
+ }
622
+ const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
623
+ await accessControl.ensureCanAccessEntry({
843
624
  model,
844
- input: originalEntry.values,
845
- validateEntries: false
625
+ entry: originalEntry,
626
+ rwd: "w",
627
+ pw: "p"
846
628
  });
847
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
848
- savedOn: new Date().toISOString(),
849
- webinyVersion: context.WEBINY_VERSION,
850
- values
629
+ const {
630
+ entry
631
+ } = await (0, _entryDataFactories.createRepublishEntryData)({
632
+ context,
633
+ model,
634
+ originalEntry,
635
+ getIdentity: getSecurityIdentity
851
636
  });
852
637
  const storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
853
638
  /**
@@ -878,9 +663,9 @@ const createContentEntryCrud = params => {
878
663
  await onEntryAfterRepublish.publish({
879
664
  entry,
880
665
  model,
881
- storageEntry
666
+ storageEntry: result
882
667
  });
883
- return result;
668
+ return entry;
884
669
  } catch (ex) {
885
670
  await onEntryRepublishError.publish({
886
671
  entry,
@@ -893,53 +678,69 @@ const createContentEntryCrud = params => {
893
678
  }
894
679
  };
895
680
  const deleteEntryRevision = async (model, revisionId) => {
896
- await entriesPermissions.ensure({
897
- rwd: "d"
898
- });
899
- await modelsPermissions.ensureCanAccessModel({
681
+ await accessControl.ensureCanAccessEntry({
900
682
  model,
901
- locale: getLocale().code
683
+ rwd: "d"
902
684
  });
903
685
  const {
904
686
  id: entryId,
905
687
  version
906
688
  } = (0, _utils.parseIdentifier)(revisionId);
907
- const storageEntryToDelete = await storageOperations.entries.getRevisionById(model, {
689
+ const storageEntryToDelete = await getRevisionByIdUseCase.execute(model, {
908
690
  id: revisionId
909
691
  });
910
- const latestStorageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
692
+ const latestStorageEntry = await getLatestRevisionByEntryIdUseCase.execute(model, {
911
693
  id: entryId
912
694
  });
913
- const previousStorageEntry = await storageOperations.entries.getPreviousRevision(model, {
695
+ const storagePreviousEntry = await getPreviousRevisionByEntryIdUseCase.execute(model, {
914
696
  entryId,
915
697
  version: version
916
698
  });
917
699
  if (!storageEntryToDelete) {
918
700
  throw new _handlerGraphql.NotFoundError(`Entry "${revisionId}" was not found!`);
919
701
  }
920
- await entriesPermissions.ensure({
921
- owns: storageEntryToDelete.createdBy
922
- });
923
702
  const latestEntryRevisionId = latestStorageEntry ? latestStorageEntry.id : null;
924
703
  const entryToDelete = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntryToDelete);
704
+ await accessControl.ensureCanAccessEntry({
705
+ model,
706
+ entry: entryToDelete,
707
+ rwd: "d"
708
+ });
709
+
925
710
  /**
926
- * If targeted record is the latest entry record and there is no previous one, we need to run full delete with hooks.
927
- * At this point deleteRevision hooks are not fired.
711
+ * If targeted record is the latest entry record and there is no previous one, we need
712
+ * to run full delete with hooks. In this case, `deleteRevision` hooks are not fired.
928
713
  */
929
- if (entryToDelete.id === latestEntryRevisionId && !previousStorageEntry) {
930
- return await deleteEntryHelper({
931
- model,
714
+ if (entryToDelete.id === latestEntryRevisionId && !storagePreviousEntry) {
715
+ return await deleteEntryOperation.execute(model, {
932
716
  entry: entryToDelete
933
717
  });
934
718
  }
935
719
  /**
936
- * If targeted record is latest entry revision, set the previous one as the new latest
720
+ * If targeted record is the latest entry revision, set the previous one as the new latest.
937
721
  */
938
722
  let entryToSetAsLatest = null;
939
723
  let storageEntryToSetAsLatest = null;
940
- if (entryToDelete.id === latestEntryRevisionId && previousStorageEntry) {
941
- entryToSetAsLatest = await (0, _entryStorage.entryFromStorageTransform)(context, model, previousStorageEntry);
942
- storageEntryToSetAsLatest = previousStorageEntry;
724
+ let updatedEntryToSetAsLatest = null;
725
+ let storageUpdatedEntryToSetAsLatest = null;
726
+ if (entryToDelete.id === latestEntryRevisionId && storagePreviousEntry) {
727
+ entryToSetAsLatest = await (0, _entryStorage.entryFromStorageTransform)(context, model, storagePreviousEntry);
728
+ storageEntryToSetAsLatest = storagePreviousEntry;
729
+
730
+ /**
731
+ * Since we're setting a different revision as the latest, we need to update entry-level meta
732
+ * fields. The values are taken from the latest revision we're about to delete. The update of the
733
+ * new latest revision is performed within storage operations.
734
+ */
735
+ const pickedEntryLevelMetaFields = (0, _constants.pickEntryMetaFields)(entryToDelete, _constants.isEntryLevelEntryMetaField);
736
+ updatedEntryToSetAsLatest = {
737
+ ...entryToSetAsLatest,
738
+ ...pickedEntryLevelMetaFields
739
+ };
740
+ storageUpdatedEntryToSetAsLatest = {
741
+ ...storageEntryToSetAsLatest,
742
+ ...pickedEntryLevelMetaFields
743
+ };
943
744
  }
944
745
  try {
945
746
  await onEntryRevisionBeforeDelete.publish({
@@ -949,8 +750,8 @@ const createContentEntryCrud = params => {
949
750
  await storageOperations.entries.deleteRevision(model, {
950
751
  entry: entryToDelete,
951
752
  storageEntry: storageEntryToDelete,
952
- latestEntry: entryToSetAsLatest,
953
- latestStorageEntry: storageEntryToSetAsLatest
753
+ latestEntry: updatedEntryToSetAsLatest,
754
+ latestStorageEntry: storageUpdatedEntryToSetAsLatest
954
755
  });
955
756
  await onEntryRevisionAfterDelete.publish({
956
757
  entry: entryToDelete,
@@ -966,8 +767,8 @@ const createContentEntryCrud = params => {
966
767
  error: ex,
967
768
  entry: entryToDelete,
968
769
  storageEntry: storageEntryToDelete,
969
- latestEntry: entryToSetAsLatest,
970
- latestStorageEntry: storageEntryToSetAsLatest
770
+ latestEntry: updatedEntryToSetAsLatest,
771
+ latestStorageEntry: storageUpdatedEntryToSetAsLatest
971
772
  });
972
773
  }
973
774
  };
@@ -989,12 +790,9 @@ const createContentEntryCrud = params => {
989
790
  entries: ids
990
791
  });
991
792
  }
992
- await entriesPermissions.ensure({
993
- rwd: "d"
994
- });
995
- await modelsPermissions.ensureCanAccessModel({
793
+ await accessControl.ensureCanAccessEntry({
996
794
  model,
997
- locale: getLocale().code
795
+ rwd: "d"
998
796
  });
999
797
  const {
1000
798
  items: entries
@@ -1009,10 +807,9 @@ const createContentEntryCrud = params => {
1009
807
  * We do not want to allow deleting entries that user does not own or cannot access.
1010
808
  */
1011
809
  const items = (await (0, _filterAsync.filterAsync)(entries, async entry => {
1012
- return entriesPermissions.ensure({
1013
- owns: entry.createdBy
1014
- }, {
1015
- throw: false
810
+ return accessControl.canAccessEntry({
811
+ model,
812
+ entry: entry
1016
813
  });
1017
814
  })).map(entry => entry.id);
1018
815
  try {
@@ -1047,82 +844,58 @@ const createContentEntryCrud = params => {
1047
844
  });
1048
845
  }
1049
846
  };
1050
- const deleteEntry = async (model, id, options) => {
1051
- await entriesPermissions.ensure({
1052
- rwd: "d"
1053
- });
1054
- await modelsPermissions.ensureCanAccessModel({
1055
- model,
1056
- locale: getLocale().code
1057
- });
847
+ const deleteEntry = async (model, id, options = {}) => {
1058
848
  const {
1059
- force
1060
- } = options || {};
1061
- const storageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
1062
- id
1063
- });
849
+ permanently = true
850
+ } = options;
851
+
1064
852
  /**
1065
- * If there is no entry, and we do not force the deletion, just throw an error.
853
+ * If the 'permanently' flag is set to false, the entry must be moved to the bin; otherwise, deleted.
1066
854
  */
1067
- if (!storageEntry && !force) {
1068
- throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
855
+ if (!permanently) {
856
+ return await moveEntryToBinUseCase.execute(model, id, options);
1069
857
  }
1070
- /**
1071
- * In the case we are forcing the deletion, we do not need the storageEntry to exist as it might be an error when loading single database record.
1072
- *
1073
- * This happens, sometimes, in the Elasticsearch system as the entry might get deleted from the DynamoDB but not from the Elasticsearch.
1074
- * This is due to high load on the Elasticsearch at the time of the deletion.
1075
- */
1076
- //
1077
- else if (!storageEntry && force) {
1078
- const {
1079
- id: entryId
1080
- } = (0, _utils.parseIdentifier)(id);
1081
- return await deleteEntryHelper({
1082
- model,
1083
- entry: {
1084
- id,
1085
- entryId
1086
- }
1087
- });
1088
- }
1089
- await entriesPermissions.ensure({
1090
- owns: storageEntry.createdBy
1091
- });
1092
- const entry = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntry);
1093
- return await deleteEntryHelper({
1094
- model,
1095
- entry
1096
- });
858
+ return await deleteEntryUseCase.execute(model, id, options);
1097
859
  };
1098
860
  const publishEntry = async (model, id) => {
1099
- await entriesPermissions.ensure({
1100
- pw: "p"
1101
- });
1102
- await modelsPermissions.ensureCanAccessModel({
861
+ await accessControl.ensureCanAccessEntry({
1103
862
  model,
1104
- locale: getLocale().code
863
+ pw: "p"
1105
864
  });
1106
- const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
865
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
1107
866
  id
1108
867
  });
1109
868
  if (!originalStorageEntry) {
1110
869
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
1111
870
  }
1112
- await entriesPermissions.ensure({
1113
- owns: originalStorageEntry.createdBy
1114
- });
1115
871
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1116
- const currentDate = new Date().toISOString();
1117
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
1118
- status: STATUS_PUBLISHED,
1119
- locked: true,
1120
- savedOn: currentDate,
1121
- publishedOn: currentDate
872
+ await accessControl.ensureCanAccessEntry({
873
+ model,
874
+ entry: originalEntry,
875
+ pw: "p"
876
+ });
877
+
878
+ // We need the latest entry to get the latest entry-level meta fields.
879
+ const latestStorageEntry = await getLatestRevisionByEntryIdUseCase.execute(model, {
880
+ id: originalEntry.entryId
881
+ });
882
+ if (!latestStorageEntry) {
883
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
884
+ }
885
+ const latestEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, latestStorageEntry);
886
+ const {
887
+ entry
888
+ } = await (0, _entryDataFactories.createPublishEntryData)({
889
+ context,
890
+ model,
891
+ originalEntry,
892
+ latestEntry,
893
+ getIdentity: getSecurityIdentity
1122
894
  });
1123
895
  let storageEntry = null;
1124
896
  try {
1125
897
  await onEntryBeforePublish.publish({
898
+ original: originalEntry,
1126
899
  entry,
1127
900
  model
1128
901
  });
@@ -1132,13 +905,15 @@ const createContentEntryCrud = params => {
1132
905
  storageEntry
1133
906
  });
1134
907
  await onEntryAfterPublish.publish({
908
+ original: originalEntry,
1135
909
  entry,
1136
910
  storageEntry: result,
1137
911
  model
1138
912
  });
1139
- return result;
913
+ return entry;
1140
914
  } catch (ex) {
1141
915
  await onEntryPublishError.publish({
916
+ original: originalEntry,
1142
917
  entry,
1143
918
  model,
1144
919
  error: ex
@@ -1153,13 +928,14 @@ const createContentEntryCrud = params => {
1153
928
  }
1154
929
  };
1155
930
  const unpublishEntry = async (model, id) => {
1156
- await entriesPermissions.ensure({
931
+ await accessControl.ensureCanAccessEntry({
932
+ model,
1157
933
  pw: "u"
1158
934
  });
1159
935
  const {
1160
936
  id: entryId
1161
937
  } = (0, _utils.parseIdentifier)(id);
1162
- const originalStorageEntry = await storageOperations.entries.getPublishedRevisionByEntryId(model, {
938
+ const originalStorageEntry = await getPublishedRevisionByEntryIdUseCase.execute(model, {
1163
939
  id: entryId
1164
940
  });
1165
941
  if (!originalStorageEntry) {
@@ -1170,12 +946,19 @@ const createContentEntryCrud = params => {
1170
946
  entry: originalStorageEntry
1171
947
  });
1172
948
  }
1173
- await entriesPermissions.ensure({
1174
- owns: originalStorageEntry.createdBy
1175
- });
1176
949
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1177
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
1178
- status: STATUS_UNPUBLISHED
950
+ await accessControl.ensureCanAccessEntry({
951
+ model,
952
+ entry: originalEntry,
953
+ pw: "u"
954
+ });
955
+ const {
956
+ entry
957
+ } = await (0, _entryDataFactories.createUnpublishEntryData)({
958
+ context,
959
+ model,
960
+ originalEntry,
961
+ getIdentity: getSecurityIdentity
1179
962
  });
1180
963
  let storageEntry = null;
1181
964
  try {
@@ -1193,7 +976,7 @@ const createContentEntryCrud = params => {
1193
976
  storageEntry: result,
1194
977
  model
1195
978
  });
1196
- return result;
979
+ return entry;
1197
980
  } catch (ex) {
1198
981
  await onEntryUnpublishError.publish({
1199
982
  entry,
@@ -1209,24 +992,24 @@ const createContentEntryCrud = params => {
1209
992
  }
1210
993
  };
1211
994
  const getUniqueFieldValues = async (model, params) => {
1212
- await entriesPermissions.ensure({
1213
- rwd: "r"
1214
- });
1215
- await modelsPermissions.ensureCanAccessModel({
1216
- model,
1217
- locale: getLocale().code
995
+ await accessControl.ensureCanAccessEntry({
996
+ model
1218
997
  });
1219
998
  const {
1220
999
  where: initialWhere,
1221
1000
  fieldId
1222
1001
  } = params;
1223
- const where = (0, _objectSpread2.default)({}, initialWhere);
1002
+ const where = {
1003
+ ...initialWhere
1004
+ };
1224
1005
  /**
1225
1006
  * Possibly only get records which are owned by current user.
1226
1007
  * Or if searching for the owner set that value - in the case that user can see other entries than their own.
1227
1008
  */
1228
- if (await entriesPermissions.canAccessOnlyOwnRecords()) {
1229
- where.ownedBy = getIdentity().id;
1009
+ if (await accessControl.canAccessOnlyOwnedEntries({
1010
+ model
1011
+ })) {
1012
+ where.createdBy = getSecurityIdentity().id;
1230
1013
  }
1231
1014
 
1232
1015
  /**
@@ -1273,73 +1056,44 @@ const createContentEntryCrud = params => {
1273
1056
  });
1274
1057
  }
1275
1058
  };
1059
+ const getEntryTraverser = async modelId => {
1060
+ const modelAstConverter = context.cms.getModelToAstConverter();
1061
+ const model = await context.cms.getModel(modelId);
1062
+ if (!model) {
1063
+ throw new Error(`Missing "${modelId}" model!`);
1064
+ }
1065
+ const modelAst = modelAstConverter.toAst(model);
1066
+ return new _ContentEntryTraverser.ContentEntryTraverser(modelAst);
1067
+ };
1276
1068
  return {
1277
- /**
1278
- * Deprecated - will be removed in 5.35.0
1279
- */
1280
- onBeforeEntryCreate: onEntryBeforeCreate,
1281
- onAfterEntryCreate: onEntryAfterCreate,
1282
- onBeforeEntryCreateRevision: onEntryBeforeCreateRevision,
1283
- onAfterEntryCreateRevision: onEntryRevisionAfterCreate,
1284
- onBeforeEntryUpdate: onEntryBeforeUpdate,
1285
- onAfterEntryUpdate: onEntryAfterUpdate,
1286
- onBeforeEntryDelete: onEntryBeforeDelete,
1287
- onAfterEntryDelete: onEntryAfterDelete,
1288
- onBeforeEntryDeleteRevision: onEntryRevisionBeforeDelete,
1289
- onAfterEntryDeleteRevision: onEntryRevisionAfterDelete,
1290
- onBeforeEntryPublish: onEntryBeforePublish,
1291
- onAfterEntryPublish: onEntryAfterPublish,
1292
- onBeforeEntryUnpublish: onEntryBeforeUnpublish,
1293
- onAfterEntryUnpublish: onEntryAfterUnpublish,
1294
- onBeforeEntryGet: onEntryBeforeGet,
1295
- onBeforeEntryList: onEntryBeforeList,
1296
- /**
1297
- * Released in 5.34.0
1298
- *
1299
- * Create
1300
- */
1069
+ getEntryTraverser,
1301
1070
  onEntryBeforeCreate,
1302
1071
  onEntryAfterCreate,
1303
1072
  onEntryCreateError,
1304
- /**
1305
- * Create revision
1306
- */
1307
1073
  onEntryRevisionBeforeCreate: onEntryBeforeCreateRevision,
1308
1074
  onEntryRevisionAfterCreate,
1309
1075
  onEntryRevisionCreateError: onEntryCreateRevisionError,
1310
- /**
1311
- * Update
1312
- */
1313
1076
  onEntryBeforeUpdate,
1314
1077
  onEntryAfterUpdate,
1315
1078
  onEntryUpdateError,
1316
- /**
1317
- * Delete whole entry
1318
- */
1079
+ onEntryBeforeMove,
1080
+ onEntryAfterMove,
1081
+ onEntryMoveError,
1319
1082
  onEntryBeforeDelete,
1320
1083
  onEntryAfterDelete,
1321
1084
  onEntryDeleteError,
1322
- /**
1323
- * Delete entry revision
1324
- */
1085
+ onEntryBeforeRestoreFromBin,
1086
+ onEntryAfterRestoreFromBin,
1087
+ onEntryRestoreFromBinError,
1325
1088
  onEntryRevisionBeforeDelete,
1326
1089
  onEntryRevisionAfterDelete,
1327
1090
  onEntryRevisionDeleteError,
1328
- /**
1329
- * Publish
1330
- */
1331
1091
  onEntryBeforePublish,
1332
1092
  onEntryAfterPublish,
1333
1093
  onEntryPublishError,
1334
- /**
1335
- * Republish
1336
- */
1337
1094
  onEntryBeforeRepublish,
1338
1095
  onEntryAfterRepublish,
1339
1096
  onEntryRepublishError,
1340
- /**
1341
- * Unpublish
1342
- */
1343
1097
  onEntryBeforeUnpublish,
1344
1098
  onEntryAfterUnpublish,
1345
1099
  onEntryUnpublishError,
@@ -1348,7 +1102,13 @@ const createContentEntryCrud = params => {
1348
1102
  /**
1349
1103
  * Get entries by exact revision IDs from the database.
1350
1104
  */
1351
- getEntriesByIds,
1105
+ async getEntriesByIds(model, ids) {
1106
+ return context.benchmark.measure("headlessCms.crud.entries.getEntriesByIds", async () => {
1107
+ return getEntriesByIdsUseCase.execute(model, {
1108
+ ids
1109
+ });
1110
+ });
1111
+ },
1352
1112
  /**
1353
1113
  * Get a single entry by revision ID from the database.
1354
1114
  */
@@ -1362,7 +1122,9 @@ const createContentEntryCrud = params => {
1362
1122
  */
1363
1123
  async getPublishedEntriesByIds(model, ids) {
1364
1124
  return context.benchmark.measure("headlessCms.crud.entries.getPublishedEntriesByIds", async () => {
1365
- return getPublishedEntriesByIds(model, ids);
1125
+ return getPublishedEntriesByIdsUseCase.execute(model, {
1126
+ ids
1127
+ });
1366
1128
  });
1367
1129
  },
1368
1130
  /**
@@ -1370,22 +1132,24 @@ const createContentEntryCrud = params => {
1370
1132
  */
1371
1133
  async getLatestEntriesByIds(model, ids) {
1372
1134
  return context.benchmark.measure("headlessCms.crud.entries.getLatestEntriesByIds", async () => {
1373
- return getLatestEntriesByIds(model, ids);
1135
+ return await getLatestEntriesByIdsUseCase.execute(model, {
1136
+ ids
1137
+ });
1374
1138
  });
1375
1139
  },
1376
1140
  async getEntryRevisions(model, entryId) {
1377
1141
  return context.benchmark.measure("headlessCms.crud.entries.getEntryRevisions", async () => {
1378
- return getEntryRevisions(model, entryId);
1142
+ return getRevisionsByEntryIdUseCase.execute(model, {
1143
+ id: entryId
1144
+ });
1379
1145
  });
1380
1146
  },
1381
1147
  /**
1382
- * TODO determine if this method is required at all.
1383
- *
1384
1148
  * @internal
1385
1149
  */
1386
1150
  async getEntry(model, params) {
1387
1151
  return context.benchmark.measure("headlessCms.crud.entries.getEntry", async () => {
1388
- return getEntry(model, params);
1152
+ return await getEntryUseCase.execute(model, params);
1389
1153
  });
1390
1154
  },
1391
1155
  /**
@@ -1395,42 +1159,47 @@ const createContentEntryCrud = params => {
1395
1159
  */
1396
1160
  async listEntries(model, params) {
1397
1161
  return context.benchmark.measure("headlessCms.crud.entries.listEntries", async () => {
1398
- return listEntries(model, params);
1162
+ return await listEntriesUseCase.execute(model, params);
1399
1163
  });
1400
1164
  },
1401
1165
  async listLatestEntries(model, params) {
1402
- const where = (params === null || params === void 0 ? void 0 : params.where) || {};
1403
- return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
1404
- sort: ["createdOn_DESC"]
1405
- }, params || {}), {}, {
1406
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where), {}, {
1407
- latest: true
1408
- })
1409
- }));
1166
+ return context.benchmark.measure("headlessCms.crud.entries.listLatestEntries", async () => {
1167
+ return await listLatestUseCase.execute(model, params);
1168
+ });
1169
+ },
1170
+ async listDeletedEntries(model, params) {
1171
+ return context.benchmark.measure("headlessCms.crud.entries.listDeletedEntries", async () => {
1172
+ return await listDeletedUseCase.execute(model, params);
1173
+ });
1410
1174
  },
1411
1175
  async listPublishedEntries(model, params) {
1412
- const where = (params === null || params === void 0 ? void 0 : params.where) || {};
1413
- return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
1414
- sort: ["createdOn_DESC"]
1415
- }, params || {}), {}, {
1416
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where), {}, {
1417
- published: true
1418
- })
1419
- }));
1176
+ return context.benchmark.measure("headlessCms.crud.entries.listPublishedEntries", async () => {
1177
+ return await listPublishedUseCase.execute(model, params);
1178
+ });
1420
1179
  },
1421
- async createEntry(model, input) {
1180
+ async createEntry(model, input, options) {
1422
1181
  return context.benchmark.measure("headlessCms.crud.entries.createEntry", async () => {
1423
- return createEntry(model, input);
1182
+ return createEntry(model, input, options);
1424
1183
  });
1425
1184
  },
1426
- async createEntryRevisionFrom(model, sourceId, input) {
1185
+ async createEntryRevisionFrom(model, sourceId, input, options) {
1427
1186
  return context.benchmark.measure("headlessCms.crud.entries.createEntryRevisionFrom", async () => {
1428
- return createEntryRevisionFrom(model, sourceId, input);
1187
+ return createEntryRevisionFrom(model, sourceId, input, options);
1429
1188
  });
1430
1189
  },
1431
- async updateEntry(model, id, input, meta) {
1190
+ async updateEntry(model, id, input, meta, options) {
1432
1191
  return context.benchmark.measure("headlessCms.crud.entries.updateEntry", async () => {
1433
- return updateEntry(model, id, input, meta);
1192
+ return updateEntry(model, id, input, meta, options);
1193
+ });
1194
+ },
1195
+ async validateEntry(model, id, input) {
1196
+ return context.benchmark.measure("headlessCms.crud.entries.validateEntry", async () => {
1197
+ return validateEntry(model, id, input);
1198
+ });
1199
+ },
1200
+ async moveEntry(model, id, folderId) {
1201
+ return context.benchmark.measure("headlessCms.crud.entries.moveEntry", async () => {
1202
+ return moveEntry(model, id, folderId);
1434
1203
  });
1435
1204
  },
1436
1205
  /**
@@ -1452,6 +1221,11 @@ const createContentEntryCrud = params => {
1452
1221
  return deleteEntry(model, entryId, options);
1453
1222
  });
1454
1223
  },
1224
+ async restoreEntryFromBin(model, entryId) {
1225
+ return context.benchmark.measure("headlessCms.crud.entries.restoreEntryFromBin", async () => {
1226
+ return await restoreEntryFromBinUseCase.execute(model, entryId);
1227
+ });
1228
+ },
1455
1229
  async deleteMultipleEntries(model, ids) {
1456
1230
  return context.benchmark.measure("headlessCms.crud.entries.deleteMultipleEntries", async () => {
1457
1231
  return deleteMultipleEntries(model, ids);
@@ -1474,4 +1248,6 @@ const createContentEntryCrud = params => {
1474
1248
  }
1475
1249
  };
1476
1250
  };
1477
- exports.createContentEntryCrud = createContentEntryCrud;
1251
+ exports.createContentEntryCrud = createContentEntryCrud;
1252
+
1253
+ //# sourceMappingURL=contentEntry.crud.js.map