@webiny/api-headless-cms 0.0.0-unstable.3386f66516 → 0.0.0-unstable.3bc8100a7f

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