@webiny/api-headless-cms 0.0.0-unstable.9e825fd5fb → 0.0.0-unstable.a4637c5ce6

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 (985) hide show
  1. package/constants.d.ts +44 -0
  2. package/constants.js +70 -0
  3. package/constants.js.map +1 -0
  4. package/context.d.ts +1 -1
  5. package/context.js +112 -45
  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 +143 -91
  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 -7
  290. package/crud/contentEntry.crud.js +655 -678
  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 -20
  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 +9 -8
  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 +553 -179
  355. package/crud/contentModel/validation.js +78 -18
  356. package/crud/contentModel/validation.js.map +1 -1
  357. package/crud/contentModel.crud.d.ts +6 -4
  358. package/crud/contentModel.crud.js +192 -188
  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 +9 -6
  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 -4
  376. package/crud/contentModelGroup.crud.js +127 -122
  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 +2 -0
  436. package/graphql/checkEndpointAccess.js +20 -0
  437. package/graphql/checkEndpointAccess.js.map +1 -0
  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 +2 -0
  442. package/graphql/createRequestBody.js +16 -0
  443. package/graphql/createRequestBody.js.map +1 -0
  444. package/graphql/formatErrorPayload.d.ts +1 -0
  445. package/graphql/formatErrorPayload.js +27 -0
  446. package/graphql/formatErrorPayload.js.map +1 -0
  447. package/graphql/generateSchema.d.ts +2 -2
  448. package/graphql/generateSchema.js +9 -2
  449. package/graphql/generateSchema.js.map +1 -1
  450. package/graphql/getSchema/generateCacheId.d.ts +10 -0
  451. package/graphql/getSchema/generateCacheId.js +17 -0
  452. package/graphql/getSchema/generateCacheId.js.map +1 -0
  453. package/graphql/getSchema/generateCacheKey.d.ts +10 -0
  454. package/graphql/getSchema/generateCacheKey.js +34 -0
  455. package/graphql/getSchema/generateCacheKey.js.map +1 -0
  456. package/graphql/getSchema.d.ts +16 -0
  457. package/graphql/getSchema.js +81 -0
  458. package/graphql/getSchema.js.map +1 -0
  459. package/graphql/graphQLHandlerFactory.d.ts +2 -2
  460. package/graphql/graphQLHandlerFactory.js +8 -191
  461. package/graphql/graphQLHandlerFactory.js.map +1 -1
  462. package/graphql/handleRequest.d.ts +11 -0
  463. package/graphql/handleRequest.js +86 -0
  464. package/graphql/handleRequest.js.map +1 -0
  465. package/graphql/index.d.ts +4 -3
  466. package/graphql/index.js +4 -2
  467. package/graphql/index.js.map +1 -1
  468. package/graphql/scalars/RevisionId.d.ts +2 -0
  469. package/graphql/scalars/RevisionId.js +26 -0
  470. package/graphql/scalars/RevisionId.js.map +1 -0
  471. package/graphql/scalars/RevisionIdScalarPlugin.d.ts +2 -0
  472. package/graphql/scalars/RevisionIdScalarPlugin.js +18 -0
  473. package/graphql/scalars/RevisionIdScalarPlugin.js.map +1 -0
  474. package/graphql/schema/baseContentSchema.d.ts +3 -3
  475. package/graphql/schema/baseContentSchema.js +10 -15
  476. package/graphql/schema/baseContentSchema.js.map +1 -1
  477. package/graphql/schema/baseSchema.d.ts +2 -3
  478. package/graphql/schema/baseSchema.js +103 -3
  479. package/graphql/schema/baseSchema.js.map +1 -1
  480. package/graphql/schema/contentEntries.d.ts +3 -3
  481. package/graphql/schema/contentEntries.js +55 -18
  482. package/graphql/schema/contentEntries.js.map +1 -1
  483. package/graphql/schema/contentModelGroups.d.ts +3 -3
  484. package/graphql/schema/contentModelGroups.js +6 -3
  485. package/graphql/schema/contentModelGroups.js.map +1 -1
  486. package/graphql/schema/contentModels.d.ts +4 -5
  487. package/graphql/schema/contentModels.js +31 -15
  488. package/graphql/schema/contentModels.js.map +1 -1
  489. package/graphql/schema/createFieldResolvers.d.ts +2 -2
  490. package/graphql/schema/createFieldResolvers.js +18 -24
  491. package/graphql/schema/createFieldResolvers.js.map +1 -1
  492. package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
  493. package/graphql/schema/createFieldTypePluginRecords.js +15 -0
  494. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
  495. package/graphql/schema/createManageResolvers.d.ts +1 -2
  496. package/graphql/schema/createManageResolvers.js +41 -49
  497. package/graphql/schema/createManageResolvers.js.map +1 -1
  498. package/graphql/schema/createManageSDL.d.ts +2 -2
  499. package/graphql/schema/createManageSDL.js +92 -42
  500. package/graphql/schema/createManageSDL.js.map +1 -1
  501. package/graphql/schema/createPreviewResolvers.d.ts +1 -2
  502. package/graphql/schema/createPreviewResolvers.js +11 -13
  503. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  504. package/graphql/schema/createReadResolvers.d.ts +1 -2
  505. package/graphql/schema/createReadResolvers.js +11 -13
  506. package/graphql/schema/createReadResolvers.js.map +1 -1
  507. package/graphql/schema/createReadSDL.d.ts +2 -2
  508. package/graphql/schema/createReadSDL.js +34 -24
  509. package/graphql/schema/createReadSDL.js.map +1 -1
  510. package/graphql/schema/createSingularResolvers.d.ts +12 -0
  511. package/graphql/schema/createSingularResolvers.js +56 -0
  512. package/graphql/schema/createSingularResolvers.js.map +1 -0
  513. package/graphql/schema/createSingularSDL.d.ts +12 -0
  514. package/graphql/schema/createSingularSDL.js +95 -0
  515. package/graphql/schema/createSingularSDL.js.map +1 -0
  516. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.d.ts +7 -0
  517. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js +59 -0
  518. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js.map +1 -0
  519. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +3 -2
  520. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  521. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  522. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +3 -2
  523. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  524. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  525. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +3 -2
  526. package/graphql/schema/resolvers/manage/resolveDelete.js +17 -4
  527. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  528. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
  529. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +22 -0
  530. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
  531. package/graphql/schema/resolvers/manage/resolveGet.d.ts +2 -2
  532. package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
  533. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  534. package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +2 -2
  535. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  536. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  537. package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +2 -2
  538. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  539. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  540. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
  541. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +20 -0
  542. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
  543. package/graphql/schema/resolvers/manage/resolveList.d.ts +2 -2
  544. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  545. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  546. package/graphql/schema/resolvers/manage/resolveListDeleted.d.ts +4 -0
  547. package/graphql/schema/resolvers/manage/resolveListDeleted.js +20 -0
  548. package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -0
  549. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  550. package/graphql/schema/resolvers/manage/resolveMove.js +27 -0
  551. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  552. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +2 -2
  553. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  554. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  555. package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +2 -2
  556. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  557. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  558. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.d.ts +7 -0
  559. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js +20 -0
  560. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -0
  561. package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +2 -2
  562. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  563. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  564. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +3 -2
  565. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  566. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  567. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  568. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  569. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  570. package/graphql/schema/resolvers/preview/resolveGet.d.ts +2 -2
  571. package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
  572. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  573. package/graphql/schema/resolvers/preview/resolveList.d.ts +2 -2
  574. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  575. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  576. package/graphql/schema/resolvers/read/resolveGet.d.ts +2 -2
  577. package/graphql/schema/resolvers/read/resolveGet.js +6 -5
  578. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  579. package/graphql/schema/resolvers/read/resolveList.d.ts +2 -2
  580. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  581. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  582. package/graphql/schema/resolvers/singular/resolveGet.d.ts +7 -0
  583. package/graphql/schema/resolvers/singular/resolveGet.js +21 -0
  584. package/graphql/schema/resolvers/singular/resolveGet.js.map +1 -0
  585. package/graphql/schema/resolvers/singular/resolveUpdate.d.ts +8 -0
  586. package/graphql/schema/resolvers/singular/resolveUpdate.js +21 -0
  587. package/graphql/schema/resolvers/singular/resolveUpdate.js.map +1 -0
  588. package/graphql/schema/schemaPlugins.d.ts +3 -3
  589. package/graphql/schema/schemaPlugins.js +36 -22
  590. package/graphql/schema/schemaPlugins.js.map +1 -1
  591. package/graphql/system.d.ts +3 -6
  592. package/graphql/system.js +6 -13
  593. package/graphql/system.js.map +1 -1
  594. package/graphqlFields/boolean.d.ts +1 -1
  595. package/graphqlFields/boolean.js +3 -1
  596. package/graphqlFields/boolean.js.map +1 -1
  597. package/graphqlFields/datetime.d.ts +1 -1
  598. package/graphqlFields/datetime.js +5 -5
  599. package/graphqlFields/datetime.js.map +1 -1
  600. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
  601. package/graphqlFields/dynamicZone/dynamicZoneField.js +132 -28
  602. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  603. package/graphqlFields/dynamicZone/index.d.ts +0 -1
  604. package/graphqlFields/dynamicZone/index.js +2 -7
  605. package/graphqlFields/dynamicZone/index.js.map +1 -1
  606. package/graphqlFields/file.d.ts +1 -1
  607. package/graphqlFields/file.js +3 -1
  608. package/graphqlFields/file.js.map +1 -1
  609. package/graphqlFields/helpers.d.ts +1 -2
  610. package/graphqlFields/helpers.js +6 -18
  611. package/graphqlFields/helpers.js.map +1 -1
  612. package/graphqlFields/index.d.ts +1 -1
  613. package/graphqlFields/index.js +6 -2
  614. package/graphqlFields/index.js.map +1 -1
  615. package/graphqlFields/json.d.ts +2 -0
  616. package/graphqlFields/json.js +49 -0
  617. package/graphqlFields/json.js.map +1 -0
  618. package/graphqlFields/longText.d.ts +1 -1
  619. package/graphqlFields/longText.js +14 -3
  620. package/graphqlFields/longText.js.map +1 -1
  621. package/graphqlFields/number.d.ts +1 -1
  622. package/graphqlFields/number.js +4 -1
  623. package/graphqlFields/number.js.map +1 -1
  624. package/graphqlFields/object.d.ts +2 -2
  625. package/graphqlFields/object.js +40 -46
  626. package/graphqlFields/object.js.map +1 -1
  627. package/graphqlFields/ref.d.ts +1 -1
  628. package/graphqlFields/ref.js +36 -24
  629. package/graphqlFields/ref.js.map +1 -1
  630. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  631. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  632. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  633. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  634. package/graphqlFields/richText/richTextResolver.js +24 -0
  635. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  636. package/graphqlFields/richText.d.ts +1 -1
  637. package/graphqlFields/richText.js +11 -3
  638. package/graphqlFields/richText.js.map +1 -1
  639. package/graphqlFields/searchableJson.d.ts +2 -0
  640. package/graphqlFields/searchableJson.js +60 -0
  641. package/graphqlFields/searchableJson.js.map +1 -0
  642. package/graphqlFields/text.d.ts +1 -1
  643. package/graphqlFields/text.js +5 -1
  644. package/graphqlFields/text.js.map +1 -1
  645. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  646. package/htmlRenderer/LexicalRenderer.js +28 -0
  647. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  648. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  649. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  650. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  651. package/index.d.ts +14 -7
  652. package/index.js +95 -16
  653. package/index.js.map +1 -1
  654. package/modelManager/DefaultCmsModelManager.d.ts +11 -10
  655. package/modelManager/DefaultCmsModelManager.js +19 -18
  656. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  657. package/modelManager/SingletonModelManager.d.ts +12 -0
  658. package/modelManager/SingletonModelManager.js +48 -0
  659. package/modelManager/SingletonModelManager.js.map +1 -0
  660. package/modelManager/index.d.ts +2 -1
  661. package/modelManager/index.js +19 -2
  662. package/modelManager/index.js.map +1 -1
  663. package/package.json +40 -44
  664. package/parameters/context.js +4 -2
  665. package/parameters/context.js.map +1 -1
  666. package/parameters/header.js +7 -6
  667. package/parameters/header.js.map +1 -1
  668. package/parameters/index.js +3 -1
  669. package/parameters/index.js.map +1 -1
  670. package/parameters/manual.d.ts +2 -1
  671. package/parameters/manual.js +9 -4
  672. package/parameters/manual.js.map +1 -1
  673. package/parameters/path.js +4 -3
  674. package/parameters/path.js.map +1 -1
  675. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +9 -0
  676. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js +17 -0
  677. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -0
  678. package/plugins/CmsGraphQLSchemaPlugin/index.d.ts +1 -0
  679. package/plugins/CmsGraphQLSchemaPlugin/index.js +18 -0
  680. package/plugins/CmsGraphQLSchemaPlugin/index.js.map +1 -0
  681. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +1 -1
  682. package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
  683. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  684. package/plugins/CmsGroupPlugin.d.ts +15 -4
  685. package/plugins/CmsGroupPlugin.js +25 -7
  686. package/plugins/CmsGroupPlugin.js.map +1 -1
  687. package/plugins/CmsModelFieldConverterPlugin.d.ts +5 -2
  688. package/plugins/CmsModelFieldConverterPlugin.js +9 -4
  689. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  690. package/plugins/CmsModelPlugin.d.ts +37 -13
  691. package/plugins/CmsModelPlugin.js +155 -44
  692. package/plugins/CmsModelPlugin.js.map +1 -1
  693. package/plugins/CmsParametersPlugin.d.ts +3 -3
  694. package/plugins/CmsParametersPlugin.js +7 -4
  695. package/plugins/CmsParametersPlugin.js.map +1 -1
  696. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  697. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  698. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  699. package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
  700. package/plugins/StorageOperationsCmsModelPlugin.js +41 -0
  701. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
  702. package/plugins/StorageTransformPlugin.d.ts +7 -3
  703. package/plugins/StorageTransformPlugin.js +12 -5
  704. package/plugins/StorageTransformPlugin.js.map +1 -1
  705. package/plugins/index.d.ts +2 -0
  706. package/plugins/index.js +25 -1
  707. package/plugins/index.js.map +1 -1
  708. package/storage/date.d.ts +3 -0
  709. package/storage/date.js +119 -0
  710. package/storage/date.js.map +1 -0
  711. package/storage/default.js +3 -1
  712. package/storage/default.js.map +1 -1
  713. package/storage/dynamicZone.d.ts +2 -0
  714. package/storage/dynamicZone.js +157 -0
  715. package/storage/dynamicZone.js.map +1 -0
  716. package/storage/index.d.ts +1 -0
  717. package/storage/index.js +21 -0
  718. package/storage/index.js.map +1 -0
  719. package/storage/json.d.ts +2 -0
  720. package/storage/json.js +56 -0
  721. package/storage/json.js.map +1 -0
  722. package/storage/object.js +24 -20
  723. package/storage/object.js.map +1 -1
  724. package/types/context.d.ts +146 -0
  725. package/types/context.js +7 -0
  726. package/types/context.js.map +1 -0
  727. package/types/fields/dynamicZoneField.d.ts +23 -0
  728. package/types/fields/dynamicZoneField.js +7 -0
  729. package/types/fields/dynamicZoneField.js.map +1 -0
  730. package/types/fields/objectField.d.ts +13 -0
  731. package/types/fields/objectField.js +7 -0
  732. package/types/fields/objectField.js.map +1 -0
  733. package/types/identity.d.ts +19 -0
  734. package/types/identity.js +7 -0
  735. package/types/identity.js.map +1 -0
  736. package/types/index.d.ts +10 -0
  737. package/types/index.js +117 -0
  738. package/types/index.js.map +1 -0
  739. package/types/model.d.ts +199 -0
  740. package/types/model.js +7 -0
  741. package/types/model.js.map +1 -0
  742. package/types/modelAst.d.ts +39 -0
  743. package/types/modelAst.js +7 -0
  744. package/types/modelAst.js.map +1 -0
  745. package/types/modelField.d.ts +330 -0
  746. package/types/modelField.js +7 -0
  747. package/types/modelField.js.map +1 -0
  748. package/types/modelGroup.d.ts +77 -0
  749. package/types/modelGroup.js +7 -0
  750. package/types/modelGroup.js.map +1 -0
  751. package/types/plugins.d.ts +365 -0
  752. package/types/plugins.js +7 -0
  753. package/types/plugins.js.map +1 -0
  754. package/types/types.d.ts +1897 -0
  755. package/{types.js → types/types.js} +33 -134
  756. package/types/types.js.map +1 -0
  757. package/utils/RichTextRenderer.d.ts +10 -0
  758. package/utils/RichTextRenderer.js +33 -0
  759. package/utils/RichTextRenderer.js.map +1 -0
  760. package/utils/caching/Cache.d.ts +5 -0
  761. package/utils/caching/Cache.js +48 -0
  762. package/utils/caching/Cache.js.map +1 -0
  763. package/utils/caching/CacheKey.d.ts +3 -0
  764. package/utils/caching/CacheKey.js +28 -0
  765. package/utils/caching/CacheKey.js.map +1 -0
  766. package/utils/caching/index.d.ts +2 -0
  767. package/utils/caching/index.js +29 -0
  768. package/utils/caching/index.js.map +1 -0
  769. package/utils/caching/types.d.ts +13 -0
  770. package/utils/caching/types.js +14 -0
  771. package/utils/caching/types.js.map +1 -0
  772. package/utils/contentEntryTraverser/ContentEntryTraverser.d.ts +13 -0
  773. package/utils/contentEntryTraverser/ContentEntryTraverser.js +97 -0
  774. package/utils/contentEntryTraverser/ContentEntryTraverser.js.map +1 -0
  775. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.d.ts +6 -0
  776. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js +23 -0
  777. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js.map +1 -0
  778. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.d.ts +7 -0
  779. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js +22 -0
  780. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js.map +1 -0
  781. package/utils/contentModelAst/CmsModelToAstConverter.d.ts +11 -0
  782. package/utils/contentModelAst/CmsModelToAstConverter.js +28 -0
  783. package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -0
  784. package/utils/contentModelAst/index.d.ts +3 -0
  785. package/utils/contentModelAst/index.js +40 -0
  786. package/utils/contentModelAst/index.js.map +1 -0
  787. package/utils/converters/Converter.d.ts +3 -3
  788. package/utils/converters/Converter.js +4 -5
  789. package/utils/converters/Converter.js.map +1 -1
  790. package/utils/converters/ConverterCollection.d.ts +2 -2
  791. package/utils/converters/ConverterCollection.js +13 -7
  792. package/utils/converters/ConverterCollection.js.map +1 -1
  793. package/utils/converters/valueKeyStorageConverter.d.ts +4 -8
  794. package/utils/converters/valueKeyStorageConverter.js +32 -26
  795. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  796. package/utils/createModelField.d.ts +7 -0
  797. package/utils/createModelField.js +51 -0
  798. package/utils/createModelField.js.map +1 -0
  799. package/utils/createTypeFromFields.d.ts +1 -1
  800. package/utils/createTypeFromFields.js +8 -4
  801. package/utils/createTypeFromFields.js.map +1 -1
  802. package/utils/createTypeName.d.ts +0 -2
  803. package/utils/createTypeName.js +3 -9
  804. package/utils/createTypeName.js.map +1 -1
  805. package/utils/date.d.ts +10 -0
  806. package/utils/date.js +36 -0
  807. package/utils/date.js.map +1 -0
  808. package/utils/entryStorage.d.ts +16 -4
  809. package/utils/entryStorage.js +41 -5
  810. package/utils/entryStorage.js.map +1 -1
  811. package/utils/filterAsync.js +9 -8
  812. package/utils/filterAsync.js.map +1 -1
  813. package/utils/getBaseFieldType.d.ts +2 -4
  814. package/utils/getBaseFieldType.js +3 -1
  815. package/utils/getBaseFieldType.js.map +1 -1
  816. package/utils/getEntryDescription.d.ts +2 -2
  817. package/utils/getEntryDescription.js +3 -1
  818. package/utils/getEntryDescription.js.map +1 -1
  819. package/utils/getEntryImage.d.ts +2 -2
  820. package/utils/getEntryImage.js +3 -1
  821. package/utils/getEntryImage.js.map +1 -1
  822. package/utils/getEntryTitle.d.ts +2 -2
  823. package/utils/getEntryTitle.js +3 -1
  824. package/utils/getEntryTitle.js.map +1 -1
  825. package/utils/getSchemaFromFieldPlugins.d.ts +14 -3
  826. package/utils/getSchemaFromFieldPlugins.js +25 -6
  827. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  828. package/utils/identity.d.ts +2 -0
  829. package/utils/identity.js +20 -0
  830. package/utils/identity.js.map +1 -0
  831. package/utils/incrementEntryIdVersion.js +3 -1
  832. package/utils/incrementEntryIdVersion.js.map +1 -1
  833. package/utils/index.d.ts +2 -0
  834. package/utils/index.js +29 -0
  835. package/utils/index.js.map +1 -0
  836. package/utils/isHeadlessCmsReady.d.ts +2 -0
  837. package/utils/isHeadlessCmsReady.js +23 -0
  838. package/utils/isHeadlessCmsReady.js.map +1 -0
  839. package/utils/modelFieldTraverser/ModelFieldTraverser.d.ts +16 -0
  840. package/utils/modelFieldTraverser/ModelFieldTraverser.js +41 -0
  841. package/utils/modelFieldTraverser/ModelFieldTraverser.js.map +1 -0
  842. package/utils/modelFieldTraverser/index.d.ts +1 -0
  843. package/utils/modelFieldTraverser/index.js +18 -0
  844. package/utils/modelFieldTraverser/index.js.map +1 -0
  845. package/utils/renderFields.d.ts +3 -2
  846. package/utils/renderFields.js +7 -2
  847. package/utils/renderFields.js.map +1 -1
  848. package/utils/renderGetFilterFields.d.ts +2 -2
  849. package/utils/renderGetFilterFields.js +9 -21
  850. package/utils/renderGetFilterFields.js.map +1 -1
  851. package/utils/renderInputFields.d.ts +3 -2
  852. package/utils/renderInputFields.js +17 -7
  853. package/utils/renderInputFields.js.map +1 -1
  854. package/utils/renderListFilterFields.d.ts +3 -1
  855. package/utils/renderListFilterFields.js +25 -22
  856. package/utils/renderListFilterFields.js.map +1 -1
  857. package/utils/renderSortEnum.d.ts +4 -3
  858. package/utils/renderSortEnum.js +10 -3
  859. package/utils/renderSortEnum.js.map +1 -1
  860. package/utils/toSlug.js +3 -1
  861. package/utils/toSlug.js.map +1 -1
  862. package/validators/dateGte.d.ts +1 -1
  863. package/validators/dateGte.js +3 -1
  864. package/validators/dateGte.js.map +1 -1
  865. package/validators/dateLte.d.ts +1 -1
  866. package/validators/dateLte.js +3 -1
  867. package/validators/dateLte.js.map +1 -1
  868. package/validators/gte.d.ts +1 -1
  869. package/validators/gte.js +4 -3
  870. package/validators/gte.js.map +1 -1
  871. package/validators/in.d.ts +1 -1
  872. package/validators/in.js +4 -3
  873. package/validators/in.js.map +1 -1
  874. package/validators/index.js +4 -3
  875. package/validators/index.js.map +1 -1
  876. package/validators/lte.d.ts +1 -1
  877. package/validators/lte.js +4 -3
  878. package/validators/lte.js.map +1 -1
  879. package/validators/maxLength.d.ts +1 -1
  880. package/validators/maxLength.js +4 -3
  881. package/validators/maxLength.js.map +1 -1
  882. package/validators/minLength.d.ts +1 -1
  883. package/validators/minLength.js +4 -3
  884. package/validators/minLength.js.map +1 -1
  885. package/validators/pattern.d.ts +1 -1
  886. package/validators/pattern.js +5 -3
  887. package/validators/pattern.js.map +1 -1
  888. package/validators/patternPlugins/email.d.ts +1 -1
  889. package/validators/patternPlugins/email.js +4 -2
  890. package/validators/patternPlugins/email.js.map +1 -1
  891. package/validators/patternPlugins/index.d.ts +1 -1
  892. package/validators/patternPlugins/index.js +3 -1
  893. package/validators/patternPlugins/index.js.map +1 -1
  894. package/validators/patternPlugins/lowerCase.d.ts +1 -1
  895. package/validators/patternPlugins/lowerCase.js +3 -1
  896. package/validators/patternPlugins/lowerCase.js.map +1 -1
  897. package/validators/patternPlugins/lowerCaseSpace.d.ts +1 -1
  898. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  899. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  900. package/validators/patternPlugins/upperCase.d.ts +1 -1
  901. package/validators/patternPlugins/upperCase.js +3 -1
  902. package/validators/patternPlugins/upperCase.js.map +1 -1
  903. package/validators/patternPlugins/upperCaseSpace.d.ts +1 -1
  904. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  905. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  906. package/validators/patternPlugins/url.d.ts +1 -1
  907. package/validators/patternPlugins/url.js +3 -1
  908. package/validators/patternPlugins/url.js.map +1 -1
  909. package/validators/required.d.ts +1 -1
  910. package/validators/required.js +3 -1
  911. package/validators/required.js.map +1 -1
  912. package/validators/timeGte.d.ts +1 -1
  913. package/validators/timeGte.js +4 -3
  914. package/validators/timeGte.js.map +1 -1
  915. package/validators/timeLte.d.ts +1 -1
  916. package/validators/timeLte.js +4 -3
  917. package/validators/timeLte.js.map +1 -1
  918. package/validators/unique.d.ts +1 -1
  919. package/validators/unique.js +4 -2
  920. package/validators/unique.js.map +1 -1
  921. package/crud/contentModel/afterCreate.d.ts +0 -8
  922. package/crud/contentModel/afterCreate.js +0 -16
  923. package/crud/contentModel/afterCreate.js.map +0 -1
  924. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  925. package/crud/contentModel/afterCreateFrom.js +0 -16
  926. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  927. package/crud/contentModel/afterDelete.d.ts +0 -8
  928. package/crud/contentModel/afterDelete.js +0 -16
  929. package/crud/contentModel/afterDelete.js.map +0 -1
  930. package/crud/contentModel/afterUpdate.d.ts +0 -8
  931. package/crud/contentModel/afterUpdate.js +0 -16
  932. package/crud/contentModel/afterUpdate.js.map +0 -1
  933. package/crud/contentModel/createFieldModels.d.ts +0 -2
  934. package/crud/contentModel/createFieldModels.js +0 -26
  935. package/crud/contentModel/createFieldModels.js.map +0 -1
  936. package/crud/contentModel/fieldIdValidation.d.ts +0 -1
  937. package/crud/contentModel/fieldIdValidation.js +0 -25
  938. package/crud/contentModel/fieldIdValidation.js.map +0 -1
  939. package/crud/contentModel/idValidation.d.ts +0 -1
  940. package/crud/contentModel/idValidation.js +0 -22
  941. package/crud/contentModel/idValidation.js.map +0 -1
  942. package/crud/contentModel/models.d.ts +0 -4
  943. package/crud/contentModel/models.js +0 -192
  944. package/crud/contentModel/models.js.map +0 -1
  945. package/crud/contentModel/systemFields.d.ts +0 -1
  946. package/crud/contentModel/systemFields.js +0 -8
  947. package/crud/contentModel/systemFields.js.map +0 -1
  948. package/crud/contentModel/validateLayout.d.ts +0 -2
  949. package/crud/contentModel/validateLayout.js +0 -28
  950. package/crud/contentModel/validateLayout.js.map +0 -1
  951. package/crud/settings.crud.d.ts +0 -10
  952. package/crud/settings.crud.js +0 -66
  953. package/crud/settings.crud.js.map +0 -1
  954. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
  955. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -13
  956. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
  957. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +0 -3
  958. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +0 -63
  959. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +0 -1
  960. package/plugins/CmsGraphQLSchemaPlugin.d.ts +0 -5
  961. package/plugins/CmsGraphQLSchemaPlugin.js +0 -12
  962. package/plugins/CmsGraphQLSchemaPlugin.js.map +0 -1
  963. package/types.d.ts +0 -2693
  964. package/types.js.map +0 -1
  965. package/upgrades/5.33.0/index.d.ts +0 -3
  966. package/upgrades/5.33.0/index.js +0 -182
  967. package/upgrades/5.33.0/index.js.map +0 -1
  968. package/upgrades/index.d.ts +0 -1
  969. package/upgrades/index.js +0 -12
  970. package/upgrades/index.js.map +0 -1
  971. package/utils/access.d.ts +0 -8
  972. package/utils/access.js +0 -76
  973. package/utils/access.js.map +0 -1
  974. package/utils/ownership.d.ts +0 -8
  975. package/utils/ownership.js +0 -33
  976. package/utils/ownership.js.map +0 -1
  977. package/utils/permissions.d.ts +0 -7
  978. package/utils/permissions.js +0 -91
  979. package/utils/permissions.js.map +0 -1
  980. package/utils/pluralizedTypeName.d.ts +0 -1
  981. package/utils/pluralizedTypeName.js +0 -26
  982. package/utils/pluralizedTypeName.js.map +0 -1
  983. package/validators/dynamicZone.d.ts +0 -2
  984. package/validators/dynamicZone.js +0 -20
  985. package/validators/dynamicZone.js.map +0 -1
@@ -4,197 +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"));
10
- var _mdbid = _interopRequireDefault(require("mdbid"));
7
+ exports.createContentEntryCrud = void 0;
8
+ var _utils = require("@webiny/utils");
11
9
  var _error = _interopRequireDefault(require("@webiny/error"));
12
10
  var _handlerGraphql = require("@webiny/handler-graphql");
13
11
  var _entryDataValidation = require("./contentEntry/entryDataValidation");
14
12
  var _pubsub = require("@webiny/pubsub");
15
13
  var _beforeCreate = require("./contentEntry/beforeCreate");
16
14
  var _beforeUpdate = require("./contentEntry/beforeUpdate");
17
- var _utils = require("@webiny/utils");
18
15
  var _afterDelete = require("./contentEntry/afterDelete");
19
- var _referenceFieldsMapping = require("./contentEntry/referenceFieldsMapping");
20
- var _permissions = require("../utils/permissions");
21
- var _access = require("../utils/access");
22
- var _ownership = require("../utils/ownership");
23
16
  var _entryStorage = require("../utils/entryStorage");
24
- var _valueKeyStorageConverter = require("../utils/converters/valueKeyStorageConverter");
25
17
  var _searchableFields = require("./contentEntry/searchableFields");
26
- /**
27
- * Package mdbid does not have types.
28
- */
29
- // @ts-ignore
30
-
31
- const STATUS_DRAFT = "draft";
32
- exports.STATUS_DRAFT = STATUS_DRAFT;
33
- const STATUS_PUBLISHED = "published";
34
- exports.STATUS_PUBLISHED = STATUS_PUBLISHED;
35
- const STATUS_UNPUBLISHED = "unpublished";
36
- exports.STATUS_UNPUBLISHED = STATUS_UNPUBLISHED;
37
- /**
38
- * Used for some fields to convert their values.
39
- */
40
- const convertDefaultValue = (field, value) => {
41
- switch (field.type) {
42
- case "boolean":
43
- return Boolean(value);
44
- case "number":
45
- return Number(value);
46
- default:
47
- return value;
48
- }
49
- };
50
- const getDefaultValue = field => {
51
- const {
52
- settings,
53
- multipleValues
54
- } = field;
55
- if (settings && settings.defaultValue !== undefined) {
56
- return convertDefaultValue(field, settings.defaultValue);
57
- }
58
- const {
59
- predefinedValues
60
- } = field;
61
- if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
62
- return undefined;
63
- }
64
- if (!multipleValues) {
65
- const selectedValue = predefinedValues.values.find(value => {
66
- return !!value.selected;
67
- });
68
- if (selectedValue) {
69
- return convertDefaultValue(field, selectedValue.value);
70
- }
71
- return undefined;
72
- }
73
- return predefinedValues.values.filter(({
74
- selected
75
- }) => !!selected).map(({
76
- value
77
- }) => {
78
- return convertDefaultValue(field, value);
79
- });
80
- };
81
- /**
82
- * Cleans and adds default values to create input data.
83
- */
84
- const mapAndCleanCreateInputData = (model, input) => {
85
- return model.fields.reduce((acc, field) => {
86
- /**
87
- * This should never happen, but let's make it sure.
88
- * The fix would be for the user to add the fieldId on the field definition.
89
- */
90
- if (!field.fieldId) {
91
- throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
92
- field
93
- });
94
- }
95
- const value = input[field.fieldId];
96
- /**
97
- * We set the default value on create input if value is not defined.
98
- */
99
- acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
100
- return acc;
101
- }, {});
102
- };
103
- /**
104
- * Cleans the update input entry data.
105
- */
106
- const mapAndCleanUpdatedInputData = (model, input) => {
107
- return model.fields.reduce((acc, field) => {
108
- /**
109
- * This should never happen, but let's make it sure.
110
- * The fix would be for the user to add the fieldId on the field definition.
111
- */
112
- if (!field.fieldId) {
113
- throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
114
- field
115
- });
116
- }
117
- /**
118
- * We cannot set default value here because user might want to update only certain field values.
119
- */
120
- const value = input[field.fieldId];
121
- if (value === undefined) {
122
- return acc;
123
- }
124
- acc[field.fieldId] = value;
125
- return acc;
126
- }, {});
127
- };
128
- /**
129
- * This method takes original entry meta and new input.
130
- * When new meta is merged onto the existing one, everything that has undefined or null value is removed.
131
- */
132
- const createEntryMeta = (input, original) => {
133
- const meta = (0, _merge.default)(original || {}, input || {});
134
- return (0, _utils.removeUndefinedValues)((0, _utils.removeNullValues)(meta));
135
- };
136
- const createEntryId = input => {
137
- let entryId = (0, _mdbid.default)();
138
- if (input.id) {
139
- if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\-]+)([a-zA-Z0-9])$/) === null) {
140
- 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", {
141
- id: input.id
142
- });
143
- }
144
- entryId = input.id;
145
- }
146
- const version = 1;
147
- return {
148
- entryId,
149
- version,
150
- id: (0, _utils.createIdentifier)({
151
- id: entryId,
152
- version
153
- })
154
- };
155
- };
156
- const increaseEntryIdVersion = id => {
157
- const {
158
- id: entryId,
159
- version
160
- } = (0, _utils.parseIdentifier)(id);
161
- if (!version) {
162
- throw new _error.default("Cannot increase version on the ID without the version part.", "WRONG_ID", {
163
- id
164
- });
165
- }
166
- return {
167
- entryId,
168
- version: version + 1,
169
- id: (0, _utils.createIdentifier)({
170
- id: entryId,
171
- version: version + 1
172
- })
173
- };
174
- };
175
- const allowedEntryStatus = ["draft", "published", "unpublished"];
176
- const transformEntryStatus = status => {
177
- return allowedEntryStatus.includes(status) ? status : "draft";
178
- };
18
+ var _filterAsync = require("../utils/filterAsync");
19
+ var _constants = require("../constants");
20
+ var _entryDataFactories = require("./contentEntry/entryDataFactories");
21
+ var _useCases = require("./contentEntry/useCases");
22
+ var _ContentEntryTraverser = require("../utils/contentEntryTraverser/ContentEntryTraverser");
179
23
  const createContentEntryCrud = params => {
180
24
  const {
181
25
  storageOperations,
26
+ accessControl,
182
27
  context,
183
- getIdentity,
28
+ getIdentity: getSecurityIdentity,
184
29
  getTenant,
185
30
  getLocale
186
31
  } = params;
187
- const {
188
- plugins
189
- } = context;
190
- const getCreatedBy = () => {
191
- const identity = getIdentity();
192
- return {
193
- id: identity.id,
194
- displayName: identity.displayName,
195
- type: identity.type
196
- };
197
- };
198
32
 
199
33
  /**
200
34
  * Create
@@ -217,6 +51,13 @@ const createContentEntryCrud = params => {
217
51
  const onEntryAfterUpdate = (0, _pubsub.createTopic)("cms.onEntryAfterUpdate");
218
52
  const onEntryUpdateError = (0, _pubsub.createTopic)("cms.onEntryUpdateError");
219
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
+
220
61
  /**
221
62
  * Publish
222
63
  */
@@ -245,12 +86,25 @@ const createContentEntryCrud = params => {
245
86
  const onEntryAfterDelete = (0, _pubsub.createTopic)("cms.onEntryAfterDelete");
246
87
  const onEntryDeleteError = (0, _pubsub.createTopic)("cms.onEntryDeleteError");
247
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
+
248
96
  /**
249
97
  * Delete revision
250
98
  */
251
99
  const onEntryRevisionBeforeDelete = (0, _pubsub.createTopic)("cms.onEntryRevisionBeforeDelete");
252
100
  const onEntryRevisionAfterDelete = (0, _pubsub.createTopic)("cms.onEntryRevisionAfterDelete");
253
101
  const onEntryRevisionDeleteError = (0, _pubsub.createTopic)("cms.onEntryRevisionDeleteError");
102
+ /**
103
+ * Delete multiple entries
104
+ */
105
+ const onEntryBeforeDeleteMultiple = (0, _pubsub.createTopic)("cms.onEntryBeforeDeleteMultiple");
106
+ const onEntryAfterDeleteMultiple = (0, _pubsub.createTopic)("cms.onEntryAfterDeleteMultiple");
107
+ const onEntryDeleteMultipleError = (0, _pubsub.createTopic)("cms.onEntryDeleteMultipleError");
254
108
 
255
109
  /**
256
110
  * Get entry
@@ -277,279 +131,195 @@ const createContentEntryCrud = params => {
277
131
  context,
278
132
  onEntryAfterDelete
279
133
  });
280
- const checkEntryPermissions = check => {
281
- return (0, _permissions.checkPermissions)(context, "cms.contentEntry", check);
282
- };
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
+ });
283
156
 
284
157
  /**
285
- * A helper to delete the entire entry.
158
+ * Get entries by ids
286
159
  */
287
- const deleteEntryHelper = async params => {
288
- return context.benchmark.measure("headlessCms.crud.entries.deleteEntry", async () => {
289
- const {
290
- model,
291
- entry
292
- } = params;
293
- try {
294
- await onEntryBeforeDelete.publish({
295
- entry,
296
- model
297
- });
298
- await storageOperations.entries.delete(model, {
299
- entry
300
- });
301
- await onEntryAfterDelete.publish({
302
- entry,
303
- model
304
- });
305
- } catch (ex) {
306
- await onEntryDeleteError.publish({
307
- entry,
308
- model,
309
- error: ex
310
- });
311
- throw new _error.default(ex.message || "Could not delete entry.", ex.code || "DELETE_ERROR", {
312
- entry
313
- });
314
- }
315
- });
316
- };
160
+ const {
161
+ getEntriesByIdsUseCase
162
+ } = (0, _useCases.getEntriesByIdsUseCases)({
163
+ transform: transformEntryFromStorageCallable,
164
+ operation: storageOperations.entries.getByIds,
165
+ accessControl
166
+ });
167
+
317
168
  /**
318
- * A helper to get entries by revision IDs
169
+ * Get latest entries by ids
319
170
  */
320
- const getEntriesByIds = async (initialModel, ids) => {
321
- return context.benchmark.measure("headlessCms.crud.entries.getEntriesByIds", async () => {
322
- const permission = await checkEntryPermissions({
323
- rwd: "r"
324
- });
325
- await (0, _access.checkModelAccess)(context, initialModel);
326
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
327
- model: initialModel,
328
- plugins
329
- });
330
- const entries = await storageOperations.entries.getByIds(model, {
331
- ids
332
- });
333
- return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
334
- });
335
- };
336
- const getEntryById = async (initialModel, id) => {
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
+ });
283
+ const getEntryById = async (model, id) => {
337
284
  const where = {
338
285
  id
339
286
  };
340
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
341
- model: initialModel,
342
- plugins
343
- });
344
287
  await onEntryBeforeGet.publish({
345
288
  where,
346
289
  model
347
290
  });
348
- const [entry] = await getEntriesByIds(model, [id]);
291
+ const [entry] = await getEntriesByIdsUseCase.execute(model, {
292
+ ids: [id]
293
+ });
349
294
  if (!entry) {
350
295
  throw new _handlerGraphql.NotFoundError(`Entry by ID "${id}" not found.`);
351
296
  }
297
+ // TODO figure out without casting
352
298
  return entry;
353
299
  };
354
- const getPublishedEntriesByIds = async (initialModel, ids) => {
355
- const permission = await checkEntryPermissions({
356
- rwd: "r"
357
- });
358
- await (0, _access.checkModelAccess)(context, initialModel);
359
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
360
- model: initialModel,
361
- plugins
362
- });
363
- const entries = await storageOperations.entries.getPublishedByIds(model, {
364
- ids
365
- });
366
- return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
367
- };
368
- const getLatestEntriesByIds = async (initialModel, ids) => {
369
- const permission = await checkEntryPermissions({
370
- rwd: "r"
371
- });
372
- await (0, _access.checkModelAccess)(context, initialModel);
373
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
374
- model: initialModel,
375
- plugins
376
- });
377
- const entries = await storageOperations.entries.getLatestByIds(model, {
378
- ids
379
- });
380
- return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
381
- };
382
- const getEntry = async (initialModel, params) => {
383
- await checkEntryPermissions({
384
- rwd: "r"
385
- });
386
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
387
- model: initialModel,
388
- plugins
389
- });
390
- const {
391
- where,
392
- sort
393
- } = params;
394
- await onEntryBeforeGet.publish({
395
- where,
396
- model
397
- });
398
- const [items] = await listEntries(model, {
399
- where,
400
- sort,
401
- limit: 1
402
- });
403
- const item = items.shift();
404
- if (!item) {
405
- throw new _handlerGraphql.NotFoundError(`Entry not found!`);
406
- }
407
- return item;
408
- };
409
- const getEntryRevisions = async (initialModel, entryId) => {
410
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
411
- model: initialModel,
412
- plugins
413
- });
414
- return storageOperations.entries.getRevisions(model, {
415
- id: entryId
416
- });
417
- };
418
- const listEntries = async (initialModel, params) => {
419
- const permission = await checkEntryPermissions({
420
- rwd: "r"
421
- });
422
- await (0, _access.checkModelAccess)(context, initialModel);
423
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
424
- model: initialModel,
425
- plugins
426
- });
427
- const {
428
- where: initialWhere,
429
- limit: initialLimit
430
- } = params;
431
- const limit = initialLimit && initialLimit > 0 ? initialLimit : 50;
432
- /**
433
- * We always assign tenant and locale because we do not allow one model to have content through multiple tenants.
434
- */
435
- const where = (0, _objectSpread2.default)({}, initialWhere);
436
- /**
437
- * Possibly only get records which are owned by current user.
438
- * Or if searching for the owner set that value - in the case that user can see other entries than their own.
439
- */
440
- const ownedBy = permission.own ? getIdentity().id : where.ownedBy;
441
- if (ownedBy !== undefined) {
442
- where.ownedBy = ownedBy;
443
- }
444
- /**
445
- * Where must contain either latest or published keys.
446
- * We cannot list entries without one of those
447
- */
448
- if (where.latest && where.published) {
449
- throw new _error.default("Cannot list entries that are both published and latest.", "LIST_ENTRIES_ERROR", {
450
- where
451
- });
452
- } else if (!where.latest && !where.published) {
453
- throw new _error.default("Cannot list entries if we do not have latest or published defined.", "LIST_ENTRIES_ERROR", {
454
- where
455
- });
456
- }
457
- const fields = (0, _searchableFields.getSearchableFields)({
458
- fields: model.fields,
459
- plugins: context.plugins,
460
- input: params.fields || []
461
- });
462
- try {
463
- await onEntryBeforeList.publish({
464
- where,
465
- model
466
- });
467
- const {
468
- hasMoreItems,
469
- totalCount,
470
- cursor,
471
- items
472
- } = await storageOperations.entries.list(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
473
- limit,
474
- where,
475
- fields
476
- }));
477
- const meta = {
478
- hasMoreItems,
479
- totalCount,
480
- /**
481
- * Cursor should be null if there are no more items to load.
482
- * Just make sure of that, disregarding what is returned from the storageOperations.entries.list method.
483
- */
484
- cursor: hasMoreItems ? cursor : null
485
- };
486
- return [items, meta];
487
- } catch (ex) {
488
- throw new _error.default("Error while fetching entries from storage.", "LIST_ENTRIES_ERROR", {
489
- params,
490
- error: {
491
- message: ex.message,
492
- code: ex.code,
493
- data: ex.data
494
- },
495
- model,
496
- fields
497
- });
498
- }
499
- };
500
- const createEntry = async (initialModel, inputData) => {
501
- await checkEntryPermissions({
300
+ const createEntry = async (model, rawInput, options) => {
301
+ await accessControl.ensureCanAccessEntry({
302
+ model,
502
303
  rwd: "w"
503
304
  });
504
- await (0, _access.checkModelAccess)(context, initialModel);
505
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
506
- model: initialModel,
507
- plugins
508
- });
509
-
510
- /**
511
- * Make sure we only work with fields that are defined in the model.
512
- */
513
- const initialInput = mapAndCleanCreateInputData(model, inputData);
514
- await (0, _entryDataValidation.validateModelEntryData)({
305
+ const {
306
+ entry,
307
+ input
308
+ } = await (0, _entryDataFactories.createEntryData)({
515
309
  context,
516
310
  model,
517
- data: initialInput
311
+ options,
312
+ rawInput,
313
+ getLocale,
314
+ getTenant,
315
+ getIdentity: getSecurityIdentity,
316
+ accessControl
518
317
  });
519
- const input = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
520
- context,
318
+ await accessControl.ensureCanAccessEntry({
521
319
  model,
522
- input: initialInput,
523
- validateEntries: true
320
+ entry,
321
+ rwd: "w"
524
322
  });
525
- const locale = getLocale();
526
- const owner = getCreatedBy();
527
- const {
528
- id,
529
- entryId,
530
- version
531
- } = createEntryId(inputData);
532
- /**
533
- * There is a possibility that user sends an ID in the input, so we will use that one.
534
- * There is no check if the ID is unique or not, that is up to the user.
535
- */
536
- const entry = {
537
- webinyVersion: context.WEBINY_VERSION,
538
- tenant: getTenant().id,
539
- entryId,
540
- id,
541
- modelId: model.modelId,
542
- locale: locale.code,
543
- createdOn: new Date().toISOString(),
544
- savedOn: new Date().toISOString(),
545
- createdBy: owner,
546
- ownedBy: owner,
547
- modifiedBy: null,
548
- version,
549
- locked: false,
550
- status: STATUS_DRAFT,
551
- values: input
552
- };
553
323
  let storageEntry = null;
554
324
  try {
555
325
  await onEntryBeforeCreate.publish({
@@ -568,7 +338,7 @@ const createContentEntryCrud = params => {
568
338
  model,
569
339
  input
570
340
  });
571
- return result;
341
+ return entry;
572
342
  } catch (ex) {
573
343
  await onEntryCreateError.publish({
574
344
  error: ex,
@@ -584,20 +354,11 @@ const createContentEntryCrud = params => {
584
354
  });
585
355
  }
586
356
  };
587
- const createEntryRevisionFrom = async (initialModel, sourceId, inputData) => {
588
- const permission = await checkEntryPermissions({
357
+ const createEntryRevisionFrom = async (model, sourceId, rawInput, options) => {
358
+ await accessControl.ensureCanAccessEntry({
359
+ model,
589
360
  rwd: "w"
590
361
  });
591
- await (0, _access.checkModelAccess)(context, initialModel);
592
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
593
- model: initialModel,
594
- plugins
595
- });
596
-
597
- /**
598
- * Make sure we only work with fields that are defined in the model.
599
- */
600
- const input = mapAndCleanUpdatedInputData(model, inputData);
601
362
 
602
363
  /**
603
364
  * Entries are identified by a common parent ID + Revision number.
@@ -605,55 +366,43 @@ const createContentEntryCrud = params => {
605
366
  const {
606
367
  id: uniqueId
607
368
  } = (0, _utils.parseIdentifier)(sourceId);
608
- const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
369
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
609
370
  id: sourceId
610
371
  });
611
- const latestStorageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
372
+ const latestStorageEntry = await getLatestRevisionByEntryIdUseCase.execute(model, {
612
373
  id: uniqueId
613
374
  });
614
375
  if (!originalStorageEntry) {
615
376
  throw new _handlerGraphql.NotFoundError(`Entry "${sourceId}" of model "${model.modelId}" was not found.`);
616
377
  }
378
+ if (!latestStorageEntry) {
379
+ throw new _handlerGraphql.NotFoundError(`Latest entry "${uniqueId}" of model "${model.modelId}" was not found.`);
380
+ }
617
381
 
618
382
  /**
619
383
  * We need to convert data from DB to its original form before using it further.
620
384
  */
621
385
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
622
- const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
623
- await (0, _entryDataValidation.validateModelEntryData)({
624
- context,
386
+ const {
387
+ entry,
388
+ input
389
+ } = await (0, _entryDataFactories.createEntryRevisionFromData)({
390
+ sourceId,
625
391
  model,
626
- data: initialValues,
627
- entry: originalEntry
628
- });
629
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
392
+ rawInput,
393
+ options,
630
394
  context,
631
- model,
632
- input: initialValues,
633
- validateEntries: false
395
+ getIdentity: getSecurityIdentity,
396
+ getTenant,
397
+ getLocale,
398
+ originalEntry,
399
+ latestStorageEntry,
400
+ accessControl
634
401
  });
635
- (0, _ownership.checkOwnership)(context, permission, originalEntry);
636
- const identity = getIdentity();
637
- const latestId = latestStorageEntry ? latestStorageEntry.id : sourceId;
638
- const {
639
- id,
640
- version: nextVersion
641
- } = increaseEntryIdVersion(latestId);
642
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
643
- id,
644
- version: nextVersion,
645
- savedOn: new Date().toISOString(),
646
- createdOn: new Date().toISOString(),
647
- createdBy: {
648
- id: identity.id,
649
- displayName: identity.displayName,
650
- type: identity.type
651
- },
652
- modifiedBy: null,
653
- locked: false,
654
- publishedOn: undefined,
655
- status: STATUS_DRAFT,
656
- values
402
+ await accessControl.ensureCanAccessEntry({
403
+ model,
404
+ entry,
405
+ rwd: "w"
657
406
  });
658
407
  let storageEntry = null;
659
408
  try {
@@ -675,7 +424,7 @@ const createContentEntryCrud = params => {
675
424
  original: originalEntry,
676
425
  storageEntry: result
677
426
  });
678
- return result;
427
+ return entry;
679
428
  } catch (ex) {
680
429
  await onEntryCreateRevisionError.publish({
681
430
  entry,
@@ -693,25 +442,16 @@ const createContentEntryCrud = params => {
693
442
  });
694
443
  }
695
444
  };
696
- const updateEntry = async (initialModel, id, inputData, metaInput) => {
697
- const permission = await checkEntryPermissions({
445
+ const updateEntry = async (model, id, rawInput, metaInput, options) => {
446
+ await accessControl.ensureCanAccessEntry({
447
+ model,
698
448
  rwd: "w"
699
449
  });
700
- await (0, _access.checkModelAccess)(context, initialModel);
701
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
702
- model: initialModel,
703
- plugins
704
- });
705
-
706
- /**
707
- * Make sure we only work with fields that are defined in the model.
708
- */
709
- const input = mapAndCleanUpdatedInputData(model, inputData);
710
450
 
711
451
  /**
712
452
  * The entry we are going to update.
713
453
  */
714
- const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
454
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
715
455
  id
716
456
  });
717
457
  if (!originalStorageEntry) {
@@ -721,33 +461,24 @@ const createContentEntryCrud = params => {
721
461
  throw new _error.default(`Cannot update entry because it's locked.`, "CONTENT_ENTRY_UPDATE_ERROR");
722
462
  }
723
463
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
724
- await (0, _entryDataValidation.validateModelEntryData)({
725
- context,
464
+ const {
465
+ entry,
466
+ input
467
+ } = await (0, _entryDataFactories.createUpdateEntryData)({
726
468
  model,
727
- data: input,
728
- entry: originalEntry
729
- });
730
- (0, _ownership.checkOwnership)(context, permission, originalEntry);
731
- const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
732
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
469
+ rawInput,
470
+ options,
733
471
  context,
734
- model,
735
- input: initialValues,
736
- validateEntries: false
472
+ getIdentity: getSecurityIdentity,
473
+ getTenant,
474
+ getLocale,
475
+ originalEntry,
476
+ metaInput
737
477
  });
738
- /**
739
- * If users wants to remove a key from meta values, they need to send meta key with the null value.
740
- */
741
- const meta = createEntryMeta(metaInput, originalEntry.meta);
742
- /**
743
- * We always send the full entry to the hooks and storage operations update.
744
- */
745
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
746
- savedOn: new Date().toISOString(),
747
- modifiedBy: getCreatedBy(),
748
- values,
749
- meta,
750
- status: transformEntryStatus(originalEntry.status)
478
+ await accessControl.ensureCanAccessEntry({
479
+ model,
480
+ entry,
481
+ rwd: "w"
751
482
  });
752
483
  let storageEntry = null;
753
484
  try {
@@ -769,7 +500,7 @@ const createContentEntryCrud = params => {
769
500
  input,
770
501
  original: originalEntry
771
502
  });
772
- return result;
503
+ return entry;
773
504
  } catch (ex) {
774
505
  await onEntryUpdateError.publish({
775
506
  entry,
@@ -786,44 +517,122 @@ const createContentEntryCrud = params => {
786
517
  });
787
518
  }
788
519
  };
789
- const republishEntry = async (initialModel, id) => {
790
- await checkEntryPermissions({
520
+ const validateEntry = async (model, id, inputData) => {
521
+ await accessControl.ensureCanAccessEntry({
522
+ model,
791
523
  rwd: "w"
792
524
  });
793
- await (0, _access.checkModelAccess)(context, initialModel);
794
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
795
- model: initialModel,
796
- plugins
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
797
549
  });
550
+ return result.length > 0 ? result : [];
551
+ };
552
+ const moveEntry = async (model, id, folderId) => {
553
+ await accessControl.ensureCanAccessEntry({
554
+ model,
555
+ rwd: "w"
556
+ });
557
+
798
558
  /**
799
- * Fetch the entry from the storage.
559
+ * The entry we are going to move to another folder.
800
560
  */
801
- const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
561
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
802
562
  id
803
563
  });
804
564
  if (!originalStorageEntry) {
805
- throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
565
+ throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
806
566
  }
807
- 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
+
808
574
  /**
809
- * We can only process published entries.
575
+ * No need to continue if the entry is already in the requested folder.
810
576
  */
811
- if (originalEntry.status !== "published") {
812
- throw new _error.default("Entry with given ID is not published!", "NOT_PUBLISHED_ERROR", {
813
- id,
814
- 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"
815
603
  });
816
604
  }
817
- const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
818
- context,
605
+ };
606
+ const republishEntry = async (model, id) => {
607
+ await accessControl.ensureCanAccessEntry({
819
608
  model,
820
- input: originalEntry.values,
821
- validateEntries: false
609
+ rwd: "w",
610
+ pw: "p"
822
611
  });
823
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
824
- savedOn: new Date().toISOString(),
825
- webinyVersion: context.WEBINY_VERSION,
826
- values
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({
624
+ model,
625
+ entry: originalEntry,
626
+ rwd: "w",
627
+ pw: "p"
628
+ });
629
+ const {
630
+ entry
631
+ } = await (0, _entryDataFactories.createRepublishEntryData)({
632
+ context,
633
+ model,
634
+ originalEntry,
635
+ getIdentity: getSecurityIdentity
827
636
  });
828
637
  const storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
829
638
  /**
@@ -854,9 +663,9 @@ const createContentEntryCrud = params => {
854
663
  await onEntryAfterRepublish.publish({
855
664
  entry,
856
665
  model,
857
- storageEntry
666
+ storageEntry: result
858
667
  });
859
- return result;
668
+ return entry;
860
669
  } catch (ex) {
861
670
  await onEntryRepublishError.publish({
862
671
  entry,
@@ -868,53 +677,70 @@ const createContentEntryCrud = params => {
868
677
  });
869
678
  }
870
679
  };
871
- const deleteEntryRevision = async (initialModel, revisionId) => {
872
- const permission = await checkEntryPermissions({
680
+ const deleteEntryRevision = async (model, revisionId) => {
681
+ await accessControl.ensureCanAccessEntry({
682
+ model,
873
683
  rwd: "d"
874
684
  });
875
- await (0, _access.checkModelAccess)(context, initialModel);
876
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
877
- model: initialModel,
878
- plugins
879
- });
880
685
  const {
881
686
  id: entryId,
882
687
  version
883
688
  } = (0, _utils.parseIdentifier)(revisionId);
884
- const storageEntryToDelete = await storageOperations.entries.getRevisionById(model, {
689
+ const storageEntryToDelete = await getRevisionByIdUseCase.execute(model, {
885
690
  id: revisionId
886
691
  });
887
- const latestStorageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
692
+ const latestStorageEntry = await getLatestRevisionByEntryIdUseCase.execute(model, {
888
693
  id: entryId
889
694
  });
890
- const previousStorageEntry = await storageOperations.entries.getPreviousRevision(model, {
695
+ const storagePreviousEntry = await getPreviousRevisionByEntryIdUseCase.execute(model, {
891
696
  entryId,
892
697
  version: version
893
698
  });
894
699
  if (!storageEntryToDelete) {
895
700
  throw new _handlerGraphql.NotFoundError(`Entry "${revisionId}" was not found!`);
896
701
  }
897
- (0, _ownership.checkOwnership)(context, permission, storageEntryToDelete);
898
702
  const latestEntryRevisionId = latestStorageEntry ? latestStorageEntry.id : null;
899
703
  const entryToDelete = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntryToDelete);
704
+ await accessControl.ensureCanAccessEntry({
705
+ model,
706
+ entry: entryToDelete,
707
+ rwd: "d"
708
+ });
709
+
900
710
  /**
901
- * If targeted record is the latest entry record and there is no previous one, we need to run full delete with hooks.
902
- * 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.
903
713
  */
904
- if (entryToDelete.id === latestEntryRevisionId && !previousStorageEntry) {
905
- return await deleteEntryHelper({
906
- model,
714
+ if (entryToDelete.id === latestEntryRevisionId && !storagePreviousEntry) {
715
+ return await deleteEntryOperation.execute(model, {
907
716
  entry: entryToDelete
908
717
  });
909
718
  }
910
719
  /**
911
- * 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.
912
721
  */
913
722
  let entryToSetAsLatest = null;
914
723
  let storageEntryToSetAsLatest = null;
915
- if (entryToDelete.id === latestEntryRevisionId && previousStorageEntry) {
916
- entryToSetAsLatest = await (0, _entryStorage.entryFromStorageTransform)(context, model, previousStorageEntry);
917
- 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
+ };
918
744
  }
919
745
  try {
920
746
  await onEntryRevisionBeforeDelete.publish({
@@ -924,8 +750,8 @@ const createContentEntryCrud = params => {
924
750
  await storageOperations.entries.deleteRevision(model, {
925
751
  entry: entryToDelete,
926
752
  storageEntry: storageEntryToDelete,
927
- latestEntry: entryToSetAsLatest,
928
- latestStorageEntry: storageEntryToSetAsLatest
753
+ latestEntry: updatedEntryToSetAsLatest,
754
+ latestStorageEntry: storageUpdatedEntryToSetAsLatest
929
755
  });
930
756
  await onEntryRevisionAfterDelete.publish({
931
757
  entry: entryToDelete,
@@ -941,60 +767,135 @@ const createContentEntryCrud = params => {
941
767
  error: ex,
942
768
  entry: entryToDelete,
943
769
  storageEntry: storageEntryToDelete,
944
- latestEntry: entryToSetAsLatest,
945
- latestStorageEntry: storageEntryToSetAsLatest
770
+ latestEntry: updatedEntryToSetAsLatest,
771
+ latestStorageEntry: storageUpdatedEntryToSetAsLatest
946
772
  });
947
773
  }
948
774
  };
949
- const deleteEntry = async (initialModel, entryId) => {
950
- const permission = await checkEntryPermissions({
775
+ const deleteMultipleEntries = async (model, params) => {
776
+ const {
777
+ entries: input
778
+ } = params;
779
+ const maxDeletableEntries = 50;
780
+ const entryIdList = new Set();
781
+ for (const id of input) {
782
+ const {
783
+ id: entryId
784
+ } = (0, _utils.parseIdentifier)(id);
785
+ entryIdList.add(entryId);
786
+ }
787
+ const ids = Array.from(entryIdList);
788
+ if (ids.length > maxDeletableEntries) {
789
+ throw new _error.default("Cannot delete more than 50 entries at once.", "DELETE_ENTRIES_MAX", {
790
+ entries: ids
791
+ });
792
+ }
793
+ await accessControl.ensureCanAccessEntry({
794
+ model,
951
795
  rwd: "d"
952
796
  });
953
- await (0, _access.checkModelAccess)(context, initialModel);
954
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
955
- model: initialModel,
956
- plugins
957
- });
958
- const storageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
959
- id: entryId
797
+ const {
798
+ items: entries
799
+ } = await storageOperations.entries.list(model, {
800
+ where: {
801
+ latest: true,
802
+ entryId_in: ids
803
+ },
804
+ limit: maxDeletableEntries + 1
960
805
  });
961
- if (!storageEntry) {
962
- throw new _handlerGraphql.NotFoundError(`Entry "${entryId}" was not found!`);
806
+ /**
807
+ * We do not want to allow deleting entries that user does not own or cannot access.
808
+ */
809
+ const items = (await (0, _filterAsync.filterAsync)(entries, async entry => {
810
+ return accessControl.canAccessEntry({
811
+ model,
812
+ entry: entry
813
+ });
814
+ })).map(entry => entry.id);
815
+ try {
816
+ await onEntryBeforeDeleteMultiple.publish({
817
+ entries,
818
+ ids,
819
+ model
820
+ });
821
+ await storageOperations.entries.deleteMultipleEntries(model, {
822
+ entries: items
823
+ });
824
+ await onEntryAfterDeleteMultiple.publish({
825
+ entries,
826
+ ids,
827
+ model
828
+ });
829
+ return items.map(id => {
830
+ return {
831
+ id
832
+ };
833
+ });
834
+ } catch (ex) {
835
+ await onEntryDeleteMultipleError.publish({
836
+ entries,
837
+ ids,
838
+ model,
839
+ error: ex
840
+ });
841
+ throw new _error.default(ex.message, ex.code || "DELETE_ENTRIES_MULTIPLE_ERROR", {
842
+ error: ex,
843
+ entries
844
+ });
963
845
  }
964
- (0, _ownership.checkOwnership)(context, permission, storageEntry);
965
- const entry = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntry);
966
- return await deleteEntryHelper({
967
- model,
968
- entry
969
- });
970
846
  };
971
- const publishEntry = async (initialModel, id) => {
972
- const permission = await checkEntryPermissions({
847
+ const deleteEntry = async (model, id, options = {}) => {
848
+ const {
849
+ permanently = true
850
+ } = options;
851
+
852
+ /**
853
+ * If the 'permanently' flag is set to false, the entry must be moved to the bin; otherwise, deleted.
854
+ */
855
+ if (!permanently) {
856
+ return await moveEntryToBinUseCase.execute(model, id, options);
857
+ }
858
+ return await deleteEntryUseCase.execute(model, id, options);
859
+ };
860
+ const publishEntry = async (model, id) => {
861
+ await accessControl.ensureCanAccessEntry({
862
+ model,
973
863
  pw: "p"
974
864
  });
975
- await (0, _access.checkModelAccess)(context, initialModel);
976
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
977
- model: initialModel,
978
- plugins
979
- });
980
- const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
865
+ const originalStorageEntry = await getRevisionByIdUseCase.execute(model, {
981
866
  id
982
867
  });
983
868
  if (!originalStorageEntry) {
984
869
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
985
870
  }
986
- (0, _ownership.checkOwnership)(context, permission, originalStorageEntry);
987
871
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
988
- const currentDate = new Date().toISOString();
989
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
990
- status: STATUS_PUBLISHED,
991
- locked: true,
992
- savedOn: currentDate,
993
- 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
994
894
  });
995
895
  let storageEntry = null;
996
896
  try {
997
897
  await onEntryBeforePublish.publish({
898
+ original: originalEntry,
998
899
  entry,
999
900
  model
1000
901
  });
@@ -1004,13 +905,15 @@ const createContentEntryCrud = params => {
1004
905
  storageEntry
1005
906
  });
1006
907
  await onEntryAfterPublish.publish({
908
+ original: originalEntry,
1007
909
  entry,
1008
910
  storageEntry: result,
1009
911
  model
1010
912
  });
1011
- return result;
913
+ return entry;
1012
914
  } catch (ex) {
1013
915
  await onEntryPublishError.publish({
916
+ original: originalEntry,
1014
917
  entry,
1015
918
  model,
1016
919
  error: ex
@@ -1024,18 +927,15 @@ const createContentEntryCrud = params => {
1024
927
  });
1025
928
  }
1026
929
  };
1027
- const unpublishEntry = async (initialModel, id) => {
1028
- const permission = await checkEntryPermissions({
930
+ const unpublishEntry = async (model, id) => {
931
+ await accessControl.ensureCanAccessEntry({
932
+ model,
1029
933
  pw: "u"
1030
934
  });
1031
- const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
1032
- model: initialModel,
1033
- plugins
1034
- });
1035
935
  const {
1036
936
  id: entryId
1037
937
  } = (0, _utils.parseIdentifier)(id);
1038
- const originalStorageEntry = await storageOperations.entries.getPublishedRevisionByEntryId(model, {
938
+ const originalStorageEntry = await getPublishedRevisionByEntryIdUseCase.execute(model, {
1039
939
  id: entryId
1040
940
  });
1041
941
  if (!originalStorageEntry) {
@@ -1046,10 +946,19 @@ const createContentEntryCrud = params => {
1046
946
  entry: originalStorageEntry
1047
947
  });
1048
948
  }
1049
- (0, _ownership.checkOwnership)(context, permission, originalStorageEntry);
1050
949
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1051
- const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
1052
- 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
1053
962
  });
1054
963
  let storageEntry = null;
1055
964
  try {
@@ -1067,7 +976,7 @@ const createContentEntryCrud = params => {
1067
976
  storageEntry: result,
1068
977
  model
1069
978
  });
1070
- return result;
979
+ return entry;
1071
980
  } catch (ex) {
1072
981
  await onEntryUnpublishError.publish({
1073
982
  entry,
@@ -1082,73 +991,109 @@ const createContentEntryCrud = params => {
1082
991
  });
1083
992
  }
1084
993
  };
1085
- return {
994
+ const getUniqueFieldValues = async (model, params) => {
995
+ await accessControl.ensureCanAccessEntry({
996
+ model
997
+ });
998
+ const {
999
+ where: initialWhere,
1000
+ fieldId
1001
+ } = params;
1002
+ const where = {
1003
+ ...initialWhere
1004
+ };
1086
1005
  /**
1087
- * Deprecated - will be removed in 5.35.0
1006
+ * Possibly only get records which are owned by current user.
1007
+ * Or if searching for the owner set that value - in the case that user can see other entries than their own.
1088
1008
  */
1089
- onBeforeEntryCreate: onEntryBeforeCreate,
1090
- onAfterEntryCreate: onEntryAfterCreate,
1091
- onBeforeEntryCreateRevision: onEntryBeforeCreateRevision,
1092
- onAfterEntryCreateRevision: onEntryRevisionAfterCreate,
1093
- onBeforeEntryUpdate: onEntryBeforeUpdate,
1094
- onAfterEntryUpdate: onEntryAfterUpdate,
1095
- onBeforeEntryDelete: onEntryBeforeDelete,
1096
- onAfterEntryDelete: onEntryAfterDelete,
1097
- onBeforeEntryDeleteRevision: onEntryRevisionBeforeDelete,
1098
- onAfterEntryDeleteRevision: onEntryRevisionAfterDelete,
1099
- onBeforeEntryPublish: onEntryBeforePublish,
1100
- onAfterEntryPublish: onEntryAfterPublish,
1101
- onBeforeEntryUnpublish: onEntryBeforeUnpublish,
1102
- onAfterEntryUnpublish: onEntryAfterUnpublish,
1103
- onBeforeEntryGet: onEntryBeforeGet,
1104
- onBeforeEntryList: onEntryBeforeList,
1009
+ if (await accessControl.canAccessOnlyOwnedEntries({
1010
+ model
1011
+ })) {
1012
+ where.createdBy = getSecurityIdentity().id;
1013
+ }
1014
+
1105
1015
  /**
1106
- * Released in 5.34.0
1107
- *
1108
- * Create
1016
+ * Where must contain either latest or published keys.
1017
+ * We cannot list entries without one of those
1018
+ */
1019
+ if (where.latest && where.published) {
1020
+ throw new _error.default("Cannot list entries that are both published and latest.", "LIST_ENTRIES_ERROR", {
1021
+ where
1022
+ });
1023
+ } else if (!where.latest && !where.published) {
1024
+ throw new _error.default("Cannot list entries if we do not have latest or published defined.", "LIST_ENTRIES_ERROR", {
1025
+ where
1026
+ });
1027
+ }
1028
+ /**
1029
+ * We need to verify that the field in question is searchable.
1109
1030
  */
1031
+ const fields = (0, _searchableFields.getSearchableFields)({
1032
+ fields: model.fields,
1033
+ plugins: context.plugins,
1034
+ input: []
1035
+ });
1036
+ if (!fields.includes(fieldId)) {
1037
+ throw new _error.default("Cannot list unique entry field values if the field is not searchable.", "LIST_UNIQUE_ENTRY_VALUES_ERROR", {
1038
+ fieldId
1039
+ });
1040
+ }
1041
+ try {
1042
+ return await storageOperations.entries.getUniqueFieldValues(model, {
1043
+ where,
1044
+ fieldId
1045
+ });
1046
+ } catch (ex) {
1047
+ throw new _error.default("Error while fetching unique entry values from storage.", "LIST_UNIQUE_ENTRY_VALUES_ERROR", {
1048
+ error: {
1049
+ message: ex.message,
1050
+ code: ex.code,
1051
+ data: ex.data
1052
+ },
1053
+ model,
1054
+ where,
1055
+ fieldId
1056
+ });
1057
+ }
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
+ };
1068
+ return {
1069
+ getEntryTraverser,
1110
1070
  onEntryBeforeCreate,
1111
1071
  onEntryAfterCreate,
1112
1072
  onEntryCreateError,
1113
- /**
1114
- * Create revision
1115
- */
1116
1073
  onEntryRevisionBeforeCreate: onEntryBeforeCreateRevision,
1117
1074
  onEntryRevisionAfterCreate,
1118
1075
  onEntryRevisionCreateError: onEntryCreateRevisionError,
1119
- /**
1120
- * Update
1121
- */
1122
1076
  onEntryBeforeUpdate,
1123
1077
  onEntryAfterUpdate,
1124
1078
  onEntryUpdateError,
1125
- /**
1126
- * Delete whole entry
1127
- */
1079
+ onEntryBeforeMove,
1080
+ onEntryAfterMove,
1081
+ onEntryMoveError,
1128
1082
  onEntryBeforeDelete,
1129
1083
  onEntryAfterDelete,
1130
1084
  onEntryDeleteError,
1131
- /**
1132
- * Delete entry revision
1133
- */
1085
+ onEntryBeforeRestoreFromBin,
1086
+ onEntryAfterRestoreFromBin,
1087
+ onEntryRestoreFromBinError,
1134
1088
  onEntryRevisionBeforeDelete,
1135
1089
  onEntryRevisionAfterDelete,
1136
1090
  onEntryRevisionDeleteError,
1137
- /**
1138
- * Publish
1139
- */
1140
1091
  onEntryBeforePublish,
1141
1092
  onEntryAfterPublish,
1142
1093
  onEntryPublishError,
1143
- /**
1144
- * Republish
1145
- */
1146
1094
  onEntryBeforeRepublish,
1147
1095
  onEntryAfterRepublish,
1148
1096
  onEntryRepublishError,
1149
- /**
1150
- * Unpublish
1151
- */
1152
1097
  onEntryBeforeUnpublish,
1153
1098
  onEntryAfterUnpublish,
1154
1099
  onEntryUnpublishError,
@@ -1157,7 +1102,13 @@ const createContentEntryCrud = params => {
1157
1102
  /**
1158
1103
  * Get entries by exact revision IDs from the database.
1159
1104
  */
1160
- 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
+ },
1161
1112
  /**
1162
1113
  * Get a single entry by revision ID from the database.
1163
1114
  */
@@ -1171,7 +1122,9 @@ const createContentEntryCrud = params => {
1171
1122
  */
1172
1123
  async getPublishedEntriesByIds(model, ids) {
1173
1124
  return context.benchmark.measure("headlessCms.crud.entries.getPublishedEntriesByIds", async () => {
1174
- return getPublishedEntriesByIds(model, ids);
1125
+ return getPublishedEntriesByIdsUseCase.execute(model, {
1126
+ ids
1127
+ });
1175
1128
  });
1176
1129
  },
1177
1130
  /**
@@ -1179,22 +1132,24 @@ const createContentEntryCrud = params => {
1179
1132
  */
1180
1133
  async getLatestEntriesByIds(model, ids) {
1181
1134
  return context.benchmark.measure("headlessCms.crud.entries.getLatestEntriesByIds", async () => {
1182
- return getLatestEntriesByIds(model, ids);
1135
+ return await getLatestEntriesByIdsUseCase.execute(model, {
1136
+ ids
1137
+ });
1183
1138
  });
1184
1139
  },
1185
1140
  async getEntryRevisions(model, entryId) {
1186
1141
  return context.benchmark.measure("headlessCms.crud.entries.getEntryRevisions", async () => {
1187
- return getEntryRevisions(model, entryId);
1142
+ return getRevisionsByEntryIdUseCase.execute(model, {
1143
+ id: entryId
1144
+ });
1188
1145
  });
1189
1146
  },
1190
1147
  /**
1191
- * TODO determine if this method is required at all.
1192
- *
1193
1148
  * @internal
1194
1149
  */
1195
1150
  async getEntry(model, params) {
1196
1151
  return context.benchmark.measure("headlessCms.crud.entries.getEntry", async () => {
1197
- return getEntry(model, params);
1152
+ return await getEntryUseCase.execute(model, params);
1198
1153
  });
1199
1154
  },
1200
1155
  /**
@@ -1204,42 +1159,47 @@ const createContentEntryCrud = params => {
1204
1159
  */
1205
1160
  async listEntries(model, params) {
1206
1161
  return context.benchmark.measure("headlessCms.crud.entries.listEntries", async () => {
1207
- return listEntries(model, params);
1162
+ return await listEntriesUseCase.execute(model, params);
1208
1163
  });
1209
1164
  },
1210
1165
  async listLatestEntries(model, params) {
1211
- const where = (params === null || params === void 0 ? void 0 : params.where) || {};
1212
- return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
1213
- sort: ["createdOn_DESC"]
1214
- }, params || {}), {}, {
1215
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where), {}, {
1216
- latest: true
1217
- })
1218
- }));
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
+ });
1219
1174
  },
1220
1175
  async listPublishedEntries(model, params) {
1221
- const where = (params === null || params === void 0 ? void 0 : params.where) || {};
1222
- return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
1223
- sort: ["createdOn_DESC"]
1224
- }, params || {}), {}, {
1225
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where), {}, {
1226
- published: true
1227
- })
1228
- }));
1176
+ return context.benchmark.measure("headlessCms.crud.entries.listPublishedEntries", async () => {
1177
+ return await listPublishedUseCase.execute(model, params);
1178
+ });
1229
1179
  },
1230
- async createEntry(model, input) {
1180
+ async createEntry(model, input, options) {
1231
1181
  return context.benchmark.measure("headlessCms.crud.entries.createEntry", async () => {
1232
- return createEntry(model, input);
1182
+ return createEntry(model, input, options);
1233
1183
  });
1234
1184
  },
1235
- async createEntryRevisionFrom(model, sourceId, input) {
1185
+ async createEntryRevisionFrom(model, sourceId, input, options) {
1236
1186
  return context.benchmark.measure("headlessCms.crud.entries.createEntryRevisionFrom", async () => {
1237
- return createEntryRevisionFrom(model, sourceId, input);
1187
+ return createEntryRevisionFrom(model, sourceId, input, options);
1238
1188
  });
1239
1189
  },
1240
- async updateEntry(model, id, input, meta) {
1190
+ async updateEntry(model, id, input, meta, options) {
1241
1191
  return context.benchmark.measure("headlessCms.crud.entries.updateEntry", async () => {
1242
- 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);
1243
1203
  });
1244
1204
  },
1245
1205
  /**
@@ -1256,9 +1216,19 @@ const createContentEntryCrud = params => {
1256
1216
  return deleteEntryRevision(model, id);
1257
1217
  });
1258
1218
  },
1259
- async deleteEntry(model, entryId) {
1219
+ async deleteEntry(model, entryId, options) {
1260
1220
  return context.benchmark.measure("headlessCms.crud.entries.deleteEntry", async () => {
1261
- return deleteEntry(model, entryId);
1221
+ return deleteEntry(model, entryId, options);
1222
+ });
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
+ },
1229
+ async deleteMultipleEntries(model, ids) {
1230
+ return context.benchmark.measure("headlessCms.crud.entries.deleteMultipleEntries", async () => {
1231
+ return deleteMultipleEntries(model, ids);
1262
1232
  });
1263
1233
  },
1264
1234
  async publishEntry(model, id) {
@@ -1270,7 +1240,14 @@ const createContentEntryCrud = params => {
1270
1240
  return context.benchmark.measure("headlessCms.crud.entries.unpublishEntry", async () => {
1271
1241
  return unpublishEntry(model, id);
1272
1242
  });
1243
+ },
1244
+ async getUniqueFieldValues(model, params) {
1245
+ return context.benchmark.measure("headlessCms.crud.entries.getUniqueFieldValues", async () => {
1246
+ return getUniqueFieldValues(model, params);
1247
+ });
1273
1248
  }
1274
1249
  };
1275
1250
  };
1276
- exports.createContentEntryCrud = createContentEntryCrud;
1251
+ exports.createContentEntryCrud = createContentEntryCrud;
1252
+
1253
+ //# sourceMappingURL=contentEntry.crud.js.map