@webiny/api-headless-cms 6.4.11 → 6.6.0-alpha.1

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 (773) hide show
  1. package/HeadlessCmsContextualSchema.d.ts +16 -0
  2. package/HeadlessCmsContextualSchema.js +32 -0
  3. package/HeadlessCmsContextualSchema.js.map +1 -0
  4. package/HeadlessCmsEndpointConfig.d.ts +10 -0
  5. package/HeadlessCmsEndpointConfig.js +5 -0
  6. package/HeadlessCmsEndpointConfig.js.map +1 -0
  7. package/HeadlessCmsFeature.d.ts +10 -0
  8. package/HeadlessCmsFeature.js +195 -0
  9. package/HeadlessCmsFeature.js.map +1 -0
  10. package/createCmsRoute.d.ts +26 -0
  11. package/createCmsRoute.js +59 -0
  12. package/createCmsRoute.js.map +1 -0
  13. package/crud/contentEntry/entryDataValidation.d.ts +1 -1
  14. package/crud/contentEntry/entryDataValidation.js +29 -15
  15. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  16. package/crud/contentEntry/references/validateEntries.d.ts +1 -1
  17. package/crud/contentEntry/references/validateEntries.js +17 -7
  18. package/crud/contentEntry/references/validateEntries.js.map +1 -1
  19. package/crud/contentEntry.crud.js +22 -20
  20. package/crud/contentEntry.crud.js.map +1 -1
  21. package/crud/contentModel/defaultFields.js +3 -2
  22. package/crud/contentModel/defaultFields.js.map +1 -1
  23. package/crud/contentModel.crud.js +8 -6
  24. package/crud/contentModel.crud.js.map +1 -1
  25. package/crud/contentModelGroup.crud.js +7 -5
  26. package/crud/contentModelGroup.crud.js.map +1 -1
  27. package/domain/contentModel/schemas.d.ts +2 -0
  28. package/domain/contentModel/schemas.js +4 -2
  29. package/domain/contentModel/schemas.js.map +1 -1
  30. package/domain/contentModel/validation/modelFields.js +21 -15
  31. package/domain/contentModel/validation/modelFields.js.map +1 -1
  32. package/export/abstractions.d.ts +9 -0
  33. package/export/abstractions.js +6 -0
  34. package/export/abstractions.js.map +1 -0
  35. package/export/crud/exporting.js +8 -2
  36. package/export/crud/exporting.js.map +1 -1
  37. package/export/crud/importing.js +13 -4
  38. package/export/crud/importing.js.map +1 -1
  39. package/export/crud/imports/importGroups.js +23 -23
  40. package/export/crud/imports/importGroups.js.map +1 -1
  41. package/export/crud/imports/importModels.js +25 -22
  42. package/export/crud/imports/importModels.js.map +1 -1
  43. package/export/graphql/index.d.ts +2 -3
  44. package/export/graphql/index.js +6 -10
  45. package/export/graphql/index.js.map +1 -1
  46. package/exports/api/cms/model.d.ts +4 -1
  47. package/exports/api/cms/model.js +2 -0
  48. package/exports/api/cms/storage.d.ts +0 -1
  49. package/exports/api/cms/storage.js +0 -1
  50. package/features/ai/DescribeContentModelTool.d.ts +55 -0
  51. package/features/ai/DescribeContentModelTool.js +60 -0
  52. package/features/ai/DescribeContentModelTool.js.map +1 -0
  53. package/features/ai/ListContentModelsTool.d.ts +41 -0
  54. package/features/ai/ListContentModelsTool.js +44 -0
  55. package/features/ai/ListContentModelsTool.js.map +1 -0
  56. package/features/ai/QueryEntriesTool.d.ts +75 -0
  57. package/features/ai/QueryEntriesTool.js +90 -0
  58. package/features/ai/QueryEntriesTool.js.map +1 -0
  59. package/features/ai/feature.d.ts +8 -0
  60. package/features/ai/feature.js +15 -0
  61. package/features/ai/feature.js.map +1 -0
  62. package/features/ai/index.d.ts +4 -0
  63. package/features/ai/index.js +4 -0
  64. package/features/contentEntry/ContentEntriesFeature.js +0 -2
  65. package/features/contentEntry/ContentEntriesFeature.js.map +1 -1
  66. package/features/contentEntry/CreateEntry/CreateEntryRepository.d.ts +7 -7
  67. package/features/contentEntry/CreateEntry/CreateEntryRepository.js +8 -14
  68. package/features/contentEntry/CreateEntry/CreateEntryRepository.js.map +1 -1
  69. package/features/contentEntry/CreateEntry/CreateEntryUseCase.d.ts +3 -1
  70. package/features/contentEntry/CreateEntry/CreateEntryUseCase.js +2 -3
  71. package/features/contentEntry/CreateEntry/CreateEntryUseCase.js.map +1 -1
  72. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.d.ts +7 -7
  73. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js +8 -14
  74. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js.map +1 -1
  75. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.d.ts +3 -1
  76. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js +2 -3
  77. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js.map +1 -1
  78. package/features/contentEntry/DeleteEntry/DeleteEntryRepository.d.ts +7 -7
  79. package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js +8 -14
  80. package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js.map +1 -1
  81. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.d.ts +3 -1
  82. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js +2 -3
  83. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js.map +1 -1
  84. package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.d.ts +6 -6
  85. package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js +8 -14
  86. package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js.map +1 -1
  87. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.d.ts +3 -1
  88. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js +2 -3
  89. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js.map +1 -1
  90. package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.d.ts +3 -3
  91. package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js +5 -5
  92. package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js.map +1 -1
  93. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.d.ts +6 -6
  94. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js +8 -14
  95. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js.map +1 -1
  96. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.d.ts +3 -1
  97. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js +2 -3
  98. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js.map +1 -1
  99. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.d.ts +7 -7
  100. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js +8 -13
  101. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js.map +1 -1
  102. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.d.ts +3 -1
  103. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js +2 -3
  104. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js.map +1 -1
  105. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.d.ts +9 -7
  106. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js +15 -13
  107. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js.map +1 -1
  108. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.d.ts +3 -1
  109. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js +2 -3
  110. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js.map +1 -1
  111. package/features/contentEntry/GetEntry/GetEntryUseCase.d.ts +3 -1
  112. package/features/contentEntry/GetEntry/GetEntryUseCase.js +2 -3
  113. package/features/contentEntry/GetEntry/GetEntryUseCase.js.map +1 -1
  114. package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.d.ts +3 -1
  115. package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js +2 -3
  116. package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js.map +1 -1
  117. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.d.ts +7 -7
  118. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js +8 -13
  119. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js.map +1 -1
  120. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.d.ts +3 -1
  121. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js +2 -3
  122. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js.map +1 -1
  123. package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.d.ts +3 -1
  124. package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js +2 -3
  125. package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js.map +1 -1
  126. package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.d.ts +7 -7
  127. package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js +8 -13
  128. package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js.map +1 -1
  129. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.d.ts +3 -1
  130. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js +2 -3
  131. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js.map +1 -1
  132. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.d.ts +3 -1
  133. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js +1 -3
  134. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js.map +1 -1
  135. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.d.ts +3 -1
  136. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js +2 -3
  137. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js.map +1 -1
  138. package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.d.ts +3 -1
  139. package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js +2 -3
  140. package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js.map +1 -1
  141. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.d.ts +7 -7
  142. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js +8 -13
  143. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js.map +1 -1
  144. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.d.ts +3 -1
  145. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js +2 -3
  146. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js.map +1 -1
  147. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.d.ts +7 -7
  148. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js +8 -13
  149. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js.map +1 -1
  150. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.d.ts +3 -1
  151. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js +2 -3
  152. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js.map +1 -1
  153. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.d.ts +7 -7
  154. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js +8 -13
  155. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js.map +1 -1
  156. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.d.ts +3 -1
  157. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js +2 -3
  158. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js.map +1 -1
  159. package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.d.ts +7 -7
  160. package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js +8 -13
  161. package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js.map +1 -1
  162. package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.d.ts +3 -1
  163. package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js +1 -3
  164. package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js.map +1 -1
  165. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.d.ts +7 -7
  166. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js +8 -13
  167. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js.map +1 -1
  168. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.d.ts +3 -1
  169. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js +2 -3
  170. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js.map +1 -1
  171. package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js +1 -3
  172. package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js.map +1 -1
  173. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.d.ts +7 -7
  174. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js +8 -13
  175. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js.map +1 -1
  176. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.d.ts +6 -2
  177. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js +8 -6
  178. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js.map +1 -1
  179. package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.d.ts +3 -1
  180. package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js +1 -3
  181. package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js.map +1 -1
  182. package/features/contentEntry/ListEntries/ListEntriesRepository.d.ts +7 -7
  183. package/features/contentEntry/ListEntries/ListEntriesRepository.js +8 -13
  184. package/features/contentEntry/ListEntries/ListEntriesRepository.js.map +1 -1
  185. package/features/contentEntry/ListEntries/ListEntriesUseCase.d.ts +3 -1
  186. package/features/contentEntry/ListEntries/ListEntriesUseCase.js +2 -3
  187. package/features/contentEntry/ListEntries/ListEntriesUseCase.js.map +1 -1
  188. package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.d.ts +3 -1
  189. package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js +1 -3
  190. package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js.map +1 -1
  191. package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.d.ts +3 -1
  192. package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js +1 -3
  193. package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js.map +1 -1
  194. package/features/contentEntry/MoveEntry/MoveEntryRepository.d.ts +7 -7
  195. package/features/contentEntry/MoveEntry/MoveEntryRepository.js +8 -13
  196. package/features/contentEntry/MoveEntry/MoveEntryRepository.js.map +1 -1
  197. package/features/contentEntry/MoveEntry/MoveEntryUseCase.d.ts +3 -1
  198. package/features/contentEntry/MoveEntry/MoveEntryUseCase.js +2 -3
  199. package/features/contentEntry/MoveEntry/MoveEntryUseCase.js.map +1 -1
  200. package/features/contentEntry/PublishEntry/PublishEntryRepository.d.ts +7 -7
  201. package/features/contentEntry/PublishEntry/PublishEntryRepository.js +8 -14
  202. package/features/contentEntry/PublishEntry/PublishEntryRepository.js.map +1 -1
  203. package/features/contentEntry/PublishEntry/PublishEntryUseCase.d.ts +3 -1
  204. package/features/contentEntry/PublishEntry/PublishEntryUseCase.js +2 -3
  205. package/features/contentEntry/PublishEntry/PublishEntryUseCase.js.map +1 -1
  206. package/features/contentEntry/RepublishEntry/RepublishEntryRepository.d.ts +9 -7
  207. package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js +12 -15
  208. package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js.map +1 -1
  209. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.d.ts +3 -1
  210. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js +2 -3
  211. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js.map +1 -1
  212. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.d.ts +7 -7
  213. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js +8 -14
  214. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js.map +1 -1
  215. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.d.ts +3 -1
  216. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js +2 -3
  217. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js.map +1 -1
  218. package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.d.ts +7 -7
  219. package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js +8 -14
  220. package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js.map +1 -1
  221. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.d.ts +3 -1
  222. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js +2 -3
  223. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js.map +1 -1
  224. package/features/contentEntry/UpdateEntry/UpdateEntryRepository.d.ts +7 -7
  225. package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js +8 -14
  226. package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js.map +1 -1
  227. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.d.ts +3 -1
  228. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js +2 -3
  229. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js.map +1 -1
  230. package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.d.ts +3 -1
  231. package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js +2 -3
  232. package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js.map +1 -1
  233. package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.d.ts +3 -1
  234. package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js +2 -3
  235. package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js.map +1 -1
  236. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.d.ts +3 -1
  237. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js +2 -4
  238. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js.map +1 -1
  239. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.d.ts +4 -4
  240. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js +4 -8
  241. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js.map +1 -1
  242. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.d.ts +3 -1
  243. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js +1 -3
  244. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js.map +1 -1
  245. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.d.ts +3 -1
  246. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js +1 -3
  247. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js.map +1 -1
  248. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.d.ts +3 -1
  249. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js +1 -3
  250. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js.map +1 -1
  251. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.d.ts +3 -1
  252. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js +2 -4
  253. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js.map +1 -1
  254. package/features/contentModel/ComponentMapGenerator/ComponentMapGenerator.d.ts +14 -0
  255. package/features/contentModel/ComponentMapGenerator/ComponentMapGenerator.js +32 -0
  256. package/features/contentModel/ComponentMapGenerator/ComponentMapGenerator.js.map +1 -0
  257. package/features/contentModel/ComponentMapGenerator/abstractions.d.ts +8 -0
  258. package/features/contentModel/ComponentMapGenerator/abstractions.js +5 -0
  259. package/features/contentModel/ComponentMapGenerator/abstractions.js.map +1 -0
  260. package/features/contentModel/ComponentMapGenerator/feature.d.ts +4 -0
  261. package/features/contentModel/ComponentMapGenerator/feature.js +11 -0
  262. package/features/contentModel/ComponentMapGenerator/feature.js.map +1 -0
  263. package/features/contentModel/ComponentMapGenerator/index.d.ts +2 -0
  264. package/features/contentModel/ComponentMapGenerator/index.js +2 -0
  265. package/features/contentModel/ContentModelFeature.js +6 -0
  266. package/features/contentModel/ContentModelFeature.js.map +1 -1
  267. package/features/contentModel/CreateModel/CreateModelRepository.d.ts +5 -6
  268. package/features/contentModel/CreateModel/CreateModelRepository.js +9 -12
  269. package/features/contentModel/CreateModel/CreateModelRepository.js.map +1 -1
  270. package/features/contentModel/CreateModel/CreateModelUseCase.js +2 -2
  271. package/features/contentModel/CreateModel/CreateModelUseCase.js.map +1 -1
  272. package/features/contentModel/CreateModel/abstractions.d.ts +1 -1
  273. package/features/contentModel/CreateModel/abstractions.js.map +1 -1
  274. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.d.ts +5 -6
  275. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js +9 -12
  276. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js.map +1 -1
  277. package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js +2 -2
  278. package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js.map +1 -1
  279. package/features/contentModel/CreateModelFrom/abstractions.d.ts +1 -1
  280. package/features/contentModel/CreateModelFrom/abstractions.js.map +1 -1
  281. package/features/contentModel/DeleteModel/DeleteModelRepository.d.ts +4 -6
  282. package/features/contentModel/DeleteModel/DeleteModelRepository.js +6 -10
  283. package/features/contentModel/DeleteModel/DeleteModelRepository.js.map +1 -1
  284. package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.d.ts +1 -0
  285. package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js +11 -8
  286. package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js.map +1 -1
  287. package/features/contentModel/RefModelsGenerator/RefModelsGenerator.d.ts +19 -0
  288. package/features/contentModel/RefModelsGenerator/RefModelsGenerator.js +56 -0
  289. package/features/contentModel/RefModelsGenerator/RefModelsGenerator.js.map +1 -0
  290. package/features/contentModel/RefModelsGenerator/abstractions.d.ts +11 -0
  291. package/features/contentModel/RefModelsGenerator/abstractions.js +5 -0
  292. package/features/contentModel/RefModelsGenerator/abstractions.js.map +1 -0
  293. package/features/contentModel/RefModelsGenerator/feature.d.ts +4 -0
  294. package/features/contentModel/RefModelsGenerator/feature.js +11 -0
  295. package/features/contentModel/RefModelsGenerator/feature.js.map +1 -0
  296. package/features/contentModel/RefModelsGenerator/index.d.ts +2 -0
  297. package/features/contentModel/RefModelsGenerator/index.js +2 -0
  298. package/features/contentModel/UpdateModel/UpdateModelRepository.d.ts +7 -6
  299. package/features/contentModel/UpdateModel/UpdateModelRepository.js +12 -12
  300. package/features/contentModel/UpdateModel/UpdateModelRepository.js.map +1 -1
  301. package/features/contentModel/UpdateModel/UpdateModelUseCase.js +2 -2
  302. package/features/contentModel/UpdateModel/UpdateModelUseCase.js.map +1 -1
  303. package/features/contentModel/UpdateModel/abstractions.d.ts +1 -1
  304. package/features/contentModel/UpdateModel/abstractions.js.map +1 -1
  305. package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.d.ts +16 -0
  306. package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.js +53 -0
  307. package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.js.map +1 -0
  308. package/features/contentModel/ValuesSelectionGenerator/abstractions.d.ts +8 -0
  309. package/features/contentModel/ValuesSelectionGenerator/abstractions.js +5 -0
  310. package/features/contentModel/ValuesSelectionGenerator/abstractions.js.map +1 -0
  311. package/features/contentModel/ValuesSelectionGenerator/feature.d.ts +4 -0
  312. package/features/contentModel/ValuesSelectionGenerator/feature.js +11 -0
  313. package/features/contentModel/ValuesSelectionGenerator/feature.js.map +1 -0
  314. package/features/contentModel/ValuesSelectionGenerator/index.d.ts +1 -0
  315. package/features/contentModel/ValuesSelectionGenerator/index.js +1 -0
  316. package/features/contentModel/shared/ModelsFetcher.d.ts +3 -3
  317. package/features/contentModel/shared/ModelsFetcher.js +5 -5
  318. package/features/contentModel/shared/ModelsFetcher.js.map +1 -1
  319. package/features/contentModel/shared/PluginModelsProvider.d.ts +5 -4
  320. package/features/contentModel/shared/PluginModelsProvider.js +11 -8
  321. package/features/contentModel/shared/PluginModelsProvider.js.map +1 -1
  322. package/features/contentModel/shared/abstractions.d.ts +10 -0
  323. package/features/contentModel/shared/abstractions.js +2 -1
  324. package/features/contentModel/shared/abstractions.js.map +1 -1
  325. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.d.ts +11 -7
  326. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js +19 -19
  327. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js.map +1 -1
  328. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.d.ts +6 -2
  329. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js +9 -8
  330. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js.map +1 -1
  331. package/features/contentModelGroup/CreateGroup/abstractions.d.ts +1 -1
  332. package/features/contentModelGroup/CreateGroup/abstractions.js.map +1 -1
  333. package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.d.ts +9 -7
  334. package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js +12 -14
  335. package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js.map +1 -1
  336. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.d.ts +3 -1
  337. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js +2 -3
  338. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js.map +1 -1
  339. package/features/contentModelGroup/GetGroup/GetGroupRepository.d.ts +6 -4
  340. package/features/contentModelGroup/GetGroup/GetGroupRepository.js +9 -9
  341. package/features/contentModelGroup/GetGroup/GetGroupRepository.js.map +1 -1
  342. package/features/contentModelGroup/GetGroup/GetGroupUseCase.d.ts +3 -1
  343. package/features/contentModelGroup/GetGroup/GetGroupUseCase.js +2 -3
  344. package/features/contentModelGroup/GetGroup/GetGroupUseCase.js.map +1 -1
  345. package/features/contentModelGroup/ListGroups/ListGroupsRepository.d.ts +6 -4
  346. package/features/contentModelGroup/ListGroups/ListGroupsRepository.js +9 -9
  347. package/features/contentModelGroup/ListGroups/ListGroupsRepository.js.map +1 -1
  348. package/features/contentModelGroup/ListGroups/ListGroupsUseCase.d.ts +3 -1
  349. package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js +2 -3
  350. package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js.map +1 -1
  351. package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.d.ts +7 -7
  352. package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js +9 -14
  353. package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js.map +1 -1
  354. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.d.ts +3 -1
  355. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js +4 -5
  356. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js.map +1 -1
  357. package/features/contentModelGroup/UpdateGroup/abstractions.d.ts +1 -1
  358. package/features/contentModelGroup/UpdateGroup/abstractions.js.map +1 -1
  359. package/features/contentModelGroup/shared/PluginGroupsProvider.d.ts +6 -4
  360. package/features/contentModelGroup/shared/PluginGroupsProvider.js +13 -11
  361. package/features/contentModelGroup/shared/PluginGroupsProvider.js.map +1 -1
  362. package/features/contentModelGroup/shared/abstractions.d.ts +10 -0
  363. package/features/contentModelGroup/shared/abstractions.js +2 -1
  364. package/features/contentModelGroup/shared/abstractions.js.map +1 -1
  365. package/features/graphql/feature.js +2 -0
  366. package/features/graphql/feature.js.map +1 -1
  367. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.d.ts +2 -2
  368. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js.map +1 -1
  369. package/features/graphql/fields/base/AssetToGraphQL.d.ts +26 -0
  370. package/features/graphql/fields/base/AssetToGraphQL.js +148 -0
  371. package/features/graphql/fields/base/AssetToGraphQL.js.map +1 -0
  372. package/features/graphql/fields/base/DynamicZoneToGraphQL.js +5 -1
  373. package/features/graphql/fields/base/DynamicZoneToGraphQL.js.map +1 -1
  374. package/features/graphql/fields/base/ObjectToGraphQL.js +2 -2
  375. package/features/graphql/fields/base/ObjectToGraphQL.js.map +1 -1
  376. package/features/graphql/fields/base/RefToGraphQL.d.ts +1 -1
  377. package/features/graphql/fields/base/RefToGraphQL.js +10 -18
  378. package/features/graphql/fields/base/RefToGraphQL.js.map +1 -1
  379. package/features/graphql/fields/base/richText/richTextResolver.d.ts +1 -1
  380. package/features/graphql/fields/base/richText/richTextResolver.js.map +1 -1
  381. package/features/modelBuilder/abstractions.d.ts +10 -0
  382. package/features/modelBuilder/abstractions.js.map +1 -1
  383. package/features/modelBuilder/feature.js +2 -0
  384. package/features/modelBuilder/feature.js.map +1 -1
  385. package/features/modelBuilder/fields/AssetFieldType.d.ts +20 -0
  386. package/features/modelBuilder/fields/AssetFieldType.js +46 -0
  387. package/features/modelBuilder/fields/AssetFieldType.js.map +1 -0
  388. package/features/modelBuilder/fields/DataFieldBuilder.d.ts +54 -18
  389. package/features/modelBuilder/fields/DataFieldBuilder.js +3 -0
  390. package/features/modelBuilder/fields/DataFieldBuilder.js.map +1 -1
  391. package/features/modelBuilder/fields/DynamicZoneFieldType.d.ts +1 -0
  392. package/features/modelBuilder/fields/DynamicZoneFieldType.js +2 -6
  393. package/features/modelBuilder/fields/DynamicZoneFieldType.js.map +1 -1
  394. package/features/modelBuilder/fields/TextFieldType.d.ts +3 -1
  395. package/features/modelBuilder/fields/TextFieldType.js +1 -3
  396. package/features/modelBuilder/fields/TextFieldType.js.map +1 -1
  397. package/features/modelBuilder/fields/resolveAssetUrl.d.ts +35 -0
  398. package/features/modelBuilder/fields/resolveAssetUrl.js +26 -0
  399. package/features/modelBuilder/fields/resolveAssetUrl.js.map +1 -0
  400. package/features/modelBuilder/index.d.ts +1 -1
  401. package/features/modelBuilder/models/BaseModelBuilder.d.ts +3 -1
  402. package/features/modelBuilder/models/BaseModelBuilder.js +7 -0
  403. package/features/modelBuilder/models/BaseModelBuilder.js.map +1 -1
  404. package/features/modelBuilder/models/PrivateModelBuilder.js +2 -1
  405. package/features/modelBuilder/models/PrivateModelBuilder.js.map +1 -1
  406. package/features/modelBuilder/models/PublicModelBuilder.js +2 -1
  407. package/features/modelBuilder/models/PublicModelBuilder.js.map +1 -1
  408. package/features/shared/abstractions.d.ts +11 -15
  409. package/features/shared/abstractions.js +3 -3
  410. package/features/shared/abstractions.js.map +1 -1
  411. package/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.d.ts +8 -0
  412. package/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js +5 -0
  413. package/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js.map +1 -0
  414. package/features/shared/storageOperations/entry/CreateEntryStorageOperation.d.ts +8 -0
  415. package/features/shared/storageOperations/entry/CreateEntryStorageOperation.js +5 -0
  416. package/features/shared/storageOperations/entry/CreateEntryStorageOperation.js.map +1 -0
  417. package/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.d.ts +8 -0
  418. package/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js +5 -0
  419. package/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js.map +1 -0
  420. package/features/shared/storageOperations/entry/DeleteEntryStorageOperation.d.ts +8 -0
  421. package/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js +5 -0
  422. package/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js.map +1 -0
  423. package/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.d.ts +8 -0
  424. package/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js +5 -0
  425. package/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js.map +1 -0
  426. package/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.d.ts +8 -0
  427. package/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js +5 -0
  428. package/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js.map +1 -0
  429. package/features/shared/storageOperations/entry/GetEntryStorageOperation.d.ts +8 -0
  430. package/features/shared/storageOperations/entry/GetEntryStorageOperation.js +5 -0
  431. package/features/shared/storageOperations/entry/GetEntryStorageOperation.js.map +1 -0
  432. package/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.d.ts +8 -0
  433. package/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js +5 -0
  434. package/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js.map +1 -0
  435. package/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.d.ts +8 -0
  436. package/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js +5 -0
  437. package/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js.map +1 -0
  438. package/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.d.ts +8 -0
  439. package/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js +5 -0
  440. package/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js.map +1 -0
  441. package/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.d.ts +8 -0
  442. package/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js +5 -0
  443. package/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js.map +1 -0
  444. package/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.d.ts +8 -0
  445. package/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js +5 -0
  446. package/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js.map +1 -0
  447. package/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.d.ts +8 -0
  448. package/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js +5 -0
  449. package/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js.map +1 -0
  450. package/features/shared/storageOperations/entry/GetRevisionsStorageOperation.d.ts +8 -0
  451. package/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js +5 -0
  452. package/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js.map +1 -0
  453. package/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.d.ts +8 -0
  454. package/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js +5 -0
  455. package/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js.map +1 -0
  456. package/features/shared/storageOperations/entry/ListEntriesStorageOperation.d.ts +8 -0
  457. package/features/shared/storageOperations/entry/ListEntriesStorageOperation.js +5 -0
  458. package/features/shared/storageOperations/entry/ListEntriesStorageOperation.js.map +1 -0
  459. package/features/shared/storageOperations/entry/MoveEntryStorageOperation.d.ts +8 -0
  460. package/features/shared/storageOperations/entry/MoveEntryStorageOperation.js +5 -0
  461. package/features/shared/storageOperations/entry/MoveEntryStorageOperation.js.map +1 -0
  462. package/features/shared/storageOperations/entry/MoveToBinStorageOperation.d.ts +8 -0
  463. package/features/shared/storageOperations/entry/MoveToBinStorageOperation.js +5 -0
  464. package/features/shared/storageOperations/entry/MoveToBinStorageOperation.js.map +1 -0
  465. package/features/shared/storageOperations/entry/PublishEntryStorageOperation.d.ts +8 -0
  466. package/features/shared/storageOperations/entry/PublishEntryStorageOperation.js +5 -0
  467. package/features/shared/storageOperations/entry/PublishEntryStorageOperation.js.map +1 -0
  468. package/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.d.ts +8 -0
  469. package/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js +5 -0
  470. package/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js.map +1 -0
  471. package/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.d.ts +8 -0
  472. package/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js +5 -0
  473. package/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js.map +1 -0
  474. package/features/shared/storageOperations/entry/UpdateEntryStorageOperation.d.ts +8 -0
  475. package/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js +5 -0
  476. package/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js.map +1 -0
  477. package/features/shared/storageOperations/group/CreateGroupStorageOperation.d.ts +8 -0
  478. package/features/shared/storageOperations/group/CreateGroupStorageOperation.js +5 -0
  479. package/features/shared/storageOperations/group/CreateGroupStorageOperation.js.map +1 -0
  480. package/features/shared/storageOperations/group/DeleteGroupStorageOperation.d.ts +8 -0
  481. package/features/shared/storageOperations/group/DeleteGroupStorageOperation.js +5 -0
  482. package/features/shared/storageOperations/group/DeleteGroupStorageOperation.js.map +1 -0
  483. package/features/shared/storageOperations/group/GetGroupStorageOperation.d.ts +8 -0
  484. package/features/shared/storageOperations/group/GetGroupStorageOperation.js +5 -0
  485. package/features/shared/storageOperations/group/GetGroupStorageOperation.js.map +1 -0
  486. package/features/shared/storageOperations/group/ListGroupsStorageOperation.d.ts +8 -0
  487. package/features/shared/storageOperations/group/ListGroupsStorageOperation.js +5 -0
  488. package/features/shared/storageOperations/group/ListGroupsStorageOperation.js.map +1 -0
  489. package/features/shared/storageOperations/group/UpdateGroupStorageOperation.d.ts +8 -0
  490. package/features/shared/storageOperations/group/UpdateGroupStorageOperation.js +5 -0
  491. package/features/shared/storageOperations/group/UpdateGroupStorageOperation.js.map +1 -0
  492. package/features/shared/storageOperations/index.d.ts +32 -0
  493. package/features/shared/storageOperations/index.js +32 -0
  494. package/features/shared/storageOperations/model/CreateModelStorageOperation.d.ts +8 -0
  495. package/features/shared/storageOperations/model/CreateModelStorageOperation.js +5 -0
  496. package/features/shared/storageOperations/model/CreateModelStorageOperation.js.map +1 -0
  497. package/features/shared/storageOperations/model/DeleteModelStorageOperation.d.ts +8 -0
  498. package/features/shared/storageOperations/model/DeleteModelStorageOperation.js +5 -0
  499. package/features/shared/storageOperations/model/DeleteModelStorageOperation.js.map +1 -0
  500. package/features/shared/storageOperations/model/GetModelStorageOperation.d.ts +8 -0
  501. package/features/shared/storageOperations/model/GetModelStorageOperation.js +5 -0
  502. package/features/shared/storageOperations/model/GetModelStorageOperation.js.map +1 -0
  503. package/features/shared/storageOperations/model/ListModelsStorageOperation.d.ts +8 -0
  504. package/features/shared/storageOperations/model/ListModelsStorageOperation.js +5 -0
  505. package/features/shared/storageOperations/model/ListModelsStorageOperation.js.map +1 -0
  506. package/features/shared/storageOperations/model/UpdateModelStorageOperation.d.ts +8 -0
  507. package/features/shared/storageOperations/model/UpdateModelStorageOperation.js +5 -0
  508. package/features/shared/storageOperations/model/UpdateModelStorageOperation.js.map +1 -0
  509. package/features/sortMapper/SortMapper.js +2 -5
  510. package/features/sortMapper/SortMapper.js.map +1 -1
  511. package/features/whereMapper/WhereMapper.js +7 -5
  512. package/features/whereMapper/WhereMapper.js.map +1 -1
  513. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +3 -7
  514. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  515. package/fieldConverters/abstractions.d.ts +14 -0
  516. package/fieldConverters/abstractions.js +13 -0
  517. package/fieldConverters/abstractions.js.map +1 -0
  518. package/fieldConverters/index.d.ts +1 -1
  519. package/graphql/CmsGraphQLSchemaFactory.d.ts +8 -0
  520. package/graphql/CmsGraphQLSchemaFactory.js +5 -0
  521. package/graphql/CmsGraphQLSchemaFactory.js.map +1 -0
  522. package/graphql/CmsSchemaExecutor.d.ts +10 -0
  523. package/graphql/CmsSchemaExecutor.js +5 -0
  524. package/graphql/CmsSchemaExecutor.js.map +1 -0
  525. package/graphql/buildSchemaPlugins.d.ts +2 -1
  526. package/graphql/buildSchemaPlugins.js +1 -3
  527. package/graphql/buildSchemaPlugins.js.map +1 -1
  528. package/graphql/checkEndpointAccess.js +5 -2
  529. package/graphql/checkEndpointAccess.js.map +1 -1
  530. package/graphql/createExecutableSchema.d.ts +1 -1
  531. package/graphql/createExecutableSchema.js +1 -1
  532. package/graphql/createExecutableSchema.js.map +1 -1
  533. package/graphql/generateSchema.d.ts +2 -1
  534. package/graphql/generateSchema.js +14 -5
  535. package/graphql/generateSchema.js.map +1 -1
  536. package/graphql/getSchema.js +7 -2
  537. package/graphql/getSchema.js.map +1 -1
  538. package/graphql/scalars/RevisionIdScalarPlugin.d.ts +1 -1
  539. package/graphql/scalars/RevisionIdScalarPlugin.js.map +1 -1
  540. package/graphql/schema/baseContentSchema.d.ts +1 -6
  541. package/graphql/schema/baseContentSchema.js +5 -8
  542. package/graphql/schema/baseContentSchema.js.map +1 -1
  543. package/graphql/schema/baseSchema.d.ts +2 -2
  544. package/graphql/schema/baseSchema.js +6 -41
  545. package/graphql/schema/baseSchema.js.map +1 -1
  546. package/graphql/schema/cms/CmsBaseErrorTypeFactory.d.ts +14 -0
  547. package/graphql/schema/cms/CmsBaseErrorTypeFactory.js +21 -0
  548. package/graphql/schema/cms/CmsBaseErrorTypeFactory.js.map +1 -0
  549. package/graphql/schema/cms/createEntryResolver.js +2 -2
  550. package/graphql/schema/cms/createEntryResolver.js.map +1 -1
  551. package/graphql/schema/cms/deleteEntryResolver.js +2 -2
  552. package/graphql/schema/cms/deleteEntryResolver.js.map +1 -1
  553. package/graphql/schema/cms/getEntryResolver.js +5 -4
  554. package/graphql/schema/cms/getEntryResolver.js.map +1 -1
  555. package/graphql/schema/cms/getModelResolver.d.ts +35 -0
  556. package/graphql/schema/cms/getModelResolver.js +49 -0
  557. package/graphql/schema/cms/getModelResolver.js.map +1 -0
  558. package/graphql/schema/cms/helpers/buildFieldsSelection.js +9 -2
  559. package/graphql/schema/cms/helpers/buildFieldsSelection.js.map +1 -1
  560. package/graphql/schema/cms/helpers/expandFieldWildcards.d.ts +2 -0
  561. package/graphql/schema/cms/helpers/expandFieldWildcards.js +13 -0
  562. package/graphql/schema/cms/helpers/expandFieldWildcards.js.map +1 -0
  563. package/graphql/schema/cms/helpers/getModel.d.ts +0 -3
  564. package/graphql/schema/cms/helpers/getModel.js +5 -3
  565. package/graphql/schema/cms/helpers/getModel.js.map +1 -1
  566. package/graphql/schema/cms/helpers/index.d.ts +1 -0
  567. package/graphql/schema/cms/helpers/index.js +1 -0
  568. package/graphql/schema/cms/helpers.d.ts +1 -0
  569. package/graphql/schema/cms/helpers.js +1 -0
  570. package/graphql/schema/cms/listEntriesResolver.js +5 -4
  571. package/graphql/schema/cms/listEntriesResolver.js.map +1 -1
  572. package/graphql/schema/cms/publishEntryResolver.js +2 -2
  573. package/graphql/schema/cms/publishEntryResolver.js.map +1 -1
  574. package/graphql/schema/cms/resolvers/createEntry.d.ts +2 -2
  575. package/graphql/schema/cms/resolvers/createEntry.js +1 -1
  576. package/graphql/schema/cms/resolvers/createEntry.js.map +1 -1
  577. package/graphql/schema/cms/resolvers/deleteEntryRevision.d.ts +2 -2
  578. package/graphql/schema/cms/resolvers/deleteEntryRevision.js +1 -1
  579. package/graphql/schema/cms/resolvers/deleteEntryRevision.js.map +1 -1
  580. package/graphql/schema/cms/resolvers/getEntry.d.ts +2 -2
  581. package/graphql/schema/cms/resolvers/getEntry.js +1 -1
  582. package/graphql/schema/cms/resolvers/getEntry.js.map +1 -1
  583. package/graphql/schema/cms/resolvers/getModel.d.ts +8 -0
  584. package/graphql/schema/cms/resolvers/getModel.js +18 -0
  585. package/graphql/schema/cms/resolvers/getModel.js.map +1 -0
  586. package/graphql/schema/cms/resolvers/index.d.ts +1 -0
  587. package/graphql/schema/cms/resolvers/index.js +1 -0
  588. package/graphql/schema/cms/resolvers/listEntries.d.ts +2 -2
  589. package/graphql/schema/cms/resolvers/listEntries.js +1 -1
  590. package/graphql/schema/cms/resolvers/listEntries.js.map +1 -1
  591. package/graphql/schema/cms/resolvers/mutationCms.d.ts +2 -2
  592. package/graphql/schema/cms/resolvers/mutationCms.js +1 -1
  593. package/graphql/schema/cms/resolvers/mutationCms.js.map +1 -1
  594. package/graphql/schema/cms/resolvers/publishEntryRevision.d.ts +2 -2
  595. package/graphql/schema/cms/resolvers/publishEntryRevision.js +1 -1
  596. package/graphql/schema/cms/resolvers/publishEntryRevision.js.map +1 -1
  597. package/graphql/schema/cms/resolvers/queryCms.d.ts +2 -2
  598. package/graphql/schema/cms/resolvers/queryCms.js +1 -1
  599. package/graphql/schema/cms/resolvers/queryCms.js.map +1 -1
  600. package/graphql/schema/cms/resolvers/unpublishEntryRevision.d.ts +2 -2
  601. package/graphql/schema/cms/resolvers/unpublishEntryRevision.js +1 -1
  602. package/graphql/schema/cms/resolvers/unpublishEntryRevision.js.map +1 -1
  603. package/graphql/schema/cms/resolvers/updateEntryRevision.d.ts +2 -2
  604. package/graphql/schema/cms/resolvers/updateEntryRevision.js +1 -1
  605. package/graphql/schema/cms/resolvers/updateEntryRevision.js.map +1 -1
  606. package/graphql/schema/cms/typeDefs/mutation.d.ts +2 -2
  607. package/graphql/schema/cms/typeDefs/mutation.js +1 -1
  608. package/graphql/schema/cms/typeDefs/mutation.js.map +1 -1
  609. package/graphql/schema/cms/typeDefs/query.d.ts +2 -2
  610. package/graphql/schema/cms/typeDefs/query.js +2 -1
  611. package/graphql/schema/cms/typeDefs/query.js.map +1 -1
  612. package/graphql/schema/cms/typeDefs/responses.d.ts +2 -2
  613. package/graphql/schema/cms/typeDefs/responses.js +6 -1
  614. package/graphql/schema/cms/typeDefs/responses.js.map +1 -1
  615. package/graphql/schema/cms/unpublishEntryResolver.js +2 -2
  616. package/graphql/schema/cms/unpublishEntryResolver.js.map +1 -1
  617. package/graphql/schema/cms/updateEntryResolver.js +2 -2
  618. package/graphql/schema/cms/updateEntryResolver.js.map +1 -1
  619. package/graphql/schema/contentEntries.js +43 -32
  620. package/graphql/schema/contentEntries.js.map +1 -1
  621. package/graphql/schema/contentModelGroups.js +39 -18
  622. package/graphql/schema/contentModelGroups.js.map +1 -1
  623. package/graphql/schema/contentModels.js +68 -16
  624. package/graphql/schema/contentModels.js.map +1 -1
  625. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  626. package/graphql/schema/createFieldResolvers.js.map +1 -1
  627. package/graphql/schema/createManageResolvers.js +4 -2
  628. package/graphql/schema/createManageResolvers.js.map +1 -1
  629. package/graphql/schema/resolvers/manage/resolveCreate.js +5 -3
  630. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  631. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +5 -3
  632. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  633. package/graphql/schema/resolvers/manage/resolveDelete.js +9 -4
  634. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  635. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +5 -3
  636. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  637. package/graphql/schema/resolvers/manage/resolveGet.js +11 -6
  638. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  639. package/graphql/schema/resolvers/manage/resolveGetByIds.js +5 -3
  640. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  641. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +5 -3
  642. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  643. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +5 -3
  644. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  645. package/graphql/schema/resolvers/manage/resolveList.js +5 -3
  646. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  647. package/graphql/schema/resolvers/manage/resolveListDeleted.js +5 -3
  648. package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -1
  649. package/graphql/schema/resolvers/manage/resolveMove.js +4 -2
  650. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
  651. package/graphql/schema/resolvers/manage/resolvePublish.js +5 -3
  652. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  653. package/graphql/schema/resolvers/manage/resolveRepublish.js +5 -3
  654. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  655. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js +5 -3
  656. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -1
  657. package/graphql/schema/resolvers/manage/resolveUnpublish.js +5 -3
  658. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  659. package/graphql/schema/resolvers/manage/resolveUpdate.js +5 -3
  660. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  661. package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js +5 -3
  662. package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js.map +1 -1
  663. package/graphql/schema/resolvers/manage/resolveValidate.js +5 -3
  664. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -1
  665. package/graphql/schema/resolvers/preview/resolveGet.js +6 -3
  666. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  667. package/graphql/schema/resolvers/preview/resolveList.js +5 -3
  668. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  669. package/graphql/schema/resolvers/read/resolveGet.js +5 -2
  670. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  671. package/graphql/schema/resolvers/read/resolveList.js +5 -3
  672. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  673. package/graphql/schema/resolvers/singular/resolveGet.js +1 -1
  674. package/graphql/schema/resolvers/singular/resolveGet.js.map +1 -1
  675. package/graphql/schema/resolvers/singular/resolveUpdate.js +1 -1
  676. package/graphql/schema/resolvers/singular/resolveUpdate.js.map +1 -1
  677. package/graphql/schema/schemaPlugins.d.ts +2 -1
  678. package/graphql/schema/schemaPlugins.js +2 -4
  679. package/graphql/schema/schemaPlugins.js.map +1 -1
  680. package/index.d.ts +7 -6
  681. package/index.js +4 -22
  682. package/legacy/abstractions.js.map +1 -1
  683. package/package.json +23 -29
  684. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +2 -2
  685. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js +1 -1
  686. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -1
  687. package/plugins/CmsModelPlugin.js +2 -1
  688. package/plugins/CmsModelPlugin.js.map +1 -1
  689. package/plugins/index.d.ts +0 -1
  690. package/plugins/index.js +0 -1
  691. package/types/fields/dynamicZoneField.d.ts +1 -0
  692. package/types/model.d.ts +6 -0
  693. package/types/modelField.d.ts +2 -0
  694. package/types/types.d.ts +10 -183
  695. package/types/types.js.map +1 -1
  696. package/utils/contentModelToJsonSchema/CmsModelToJsonSchemaConverter.d.ts +28 -0
  697. package/utils/contentModelToJsonSchema/CmsModelToJsonSchemaConverter.js +324 -0
  698. package/utils/contentModelToJsonSchema/CmsModelToJsonSchemaConverter.js.map +1 -0
  699. package/utils/contentModelToJsonSchema/index.d.ts +2 -0
  700. package/utils/contentModelToJsonSchema/index.js +1 -0
  701. package/utils/contentModelToJsonSchema/types.d.ts +24 -0
  702. package/utils/contentModelToJsonSchema/types.js +0 -0
  703. package/utils/converters/ConverterCollection.d.ts +2 -2
  704. package/utils/converters/ConverterCollection.js +1 -3
  705. package/utils/converters/ConverterCollection.js.map +1 -1
  706. package/utils/converters/valueKeyFromStorageConverter.d.ts +2 -2
  707. package/utils/converters/valueKeyFromStorageConverter.js +2 -2
  708. package/utils/converters/valueKeyFromStorageConverter.js.map +1 -1
  709. package/utils/converters/valueKeyStorageConverter.js +4 -2
  710. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  711. package/utils/converters/valueKeyToStorageConverter.d.ts +2 -2
  712. package/utils/converters/valueKeyToStorageConverter.js +2 -2
  713. package/utils/converters/valueKeyToStorageConverter.js.map +1 -1
  714. package/utils/getSchemaFromFieldPlugins.d.ts +2 -2
  715. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  716. package/utils/index.d.ts +1 -0
  717. package/utils/index.js +1 -0
  718. package/utils/isHeadlessCmsReady.d.ts +1 -1
  719. package/utils/isHeadlessCmsReady.js +3 -2
  720. package/utils/isHeadlessCmsReady.js.map +1 -1
  721. package/abstractions/entryHooks/OnEntryBeforeCreate.d.ts +0 -8
  722. package/abstractions/entryHooks/OnEntryBeforeCreate.js +0 -5
  723. package/abstractions/entryHooks/OnEntryBeforeCreate.js.map +0 -1
  724. package/abstractions/entryHooks/index.d.ts +0 -1
  725. package/abstractions/entryHooks/index.js +0 -1
  726. package/abstractions/index.d.ts +0 -1
  727. package/abstractions/index.js +0 -1
  728. package/context.d.ts +0 -3
  729. package/context.js +0 -131
  730. package/context.js.map +0 -1
  731. package/extensions/entryHooks/OnEntryBeforeCreate.d.ts +0 -4
  732. package/extensions/entryHooks/OnEntryBeforeCreate.js +0 -21
  733. package/extensions/entryHooks/OnEntryBeforeCreate.js.map +0 -1
  734. package/extensions/entryHooks/index.d.ts +0 -1
  735. package/extensions/entryHooks/index.js +0 -1
  736. package/extensions/index.d.ts +0 -5
  737. package/extensions/index.js +0 -7
  738. package/extensions/index.js.map +0 -1
  739. package/features/runtimeTenant/RuntimeTenant.d.ts +0 -13
  740. package/features/runtimeTenant/RuntimeTenant.js +0 -22
  741. package/features/runtimeTenant/RuntimeTenant.js.map +0 -1
  742. package/features/runtimeTenant/abstractions.d.ts +0 -11
  743. package/features/runtimeTenant/abstractions.js +0 -5
  744. package/features/runtimeTenant/abstractions.js.map +0 -1
  745. package/features/runtimeTenant/index.d.ts +0 -2
  746. package/features/runtimeTenant/index.js +0 -2
  747. package/graphql/graphQLHandlerFactory.d.ts +0 -5
  748. package/graphql/graphQLHandlerFactory.js +0 -22
  749. package/graphql/graphQLHandlerFactory.js.map +0 -1
  750. package/graphql/handleRequest.d.ts +0 -11
  751. package/graphql/handleRequest.js +0 -62
  752. package/graphql/handleRequest.js.map +0 -1
  753. package/graphql/index.d.ts +0 -4
  754. package/graphql/index.js +0 -11
  755. package/graphql/index.js.map +0 -1
  756. package/graphql/schema/cms/index.d.ts +0 -2
  757. package/graphql/schema/cms/index.js +0 -24
  758. package/graphql/schema/cms/index.js.map +0 -1
  759. package/index.js.map +0 -1
  760. package/parameters/context.d.ts +0 -2
  761. package/parameters/context.js +0 -7
  762. package/parameters/context.js.map +0 -1
  763. package/parameters/header.d.ts +0 -2
  764. package/parameters/header.js +0 -13
  765. package/parameters/header.js.map +0 -1
  766. package/parameters/index.d.ts +0 -3
  767. package/parameters/index.js +0 -3
  768. package/parameters/path.d.ts +0 -2
  769. package/parameters/path.js +0 -12
  770. package/parameters/path.js.map +0 -1
  771. package/plugins/CmsParametersPlugin.d.ts +0 -18
  772. package/plugins/CmsParametersPlugin.js +0 -16
  773. package/plugins/CmsParametersPlugin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"crud/contentEntry/entryDataValidation.js","sources":["../../../src/crud/contentEntry/entryDataValidation.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsDynamicZoneTemplate,\n CmsEntry,\n CmsEntryValues,\n CmsModel,\n CmsModelField,\n CmsModelFieldValidation\n} from \"~/types/index.js\";\nimport camelCase from \"lodash/camelCase.js\";\nimport { EntryValidationError } from \"~/domain/contentEntry/errors.js\";\nimport {\n type CmsModelFieldValidator,\n CmsModelFieldValidatorRegistry\n} from \"~/features/validation/index.js\";\n\ntype PluginValidationCallable = (\n params: CmsModelFieldValidator.Params\n) => CmsModelFieldValidator.Response;\ntype PluginValidationList = Record<string, PluginValidationCallable[]>;\n\ninterface ExecuteValidationParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n field: CmsModelField;\n model: CmsModel;\n values: TValues;\n context: CmsContext;\n entry?: CmsEntry<TValues>;\n}\n\ntype PossibleValue = boolean | number | string | null | undefined;\n\nconst validateValue = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>,\n fieldValidators: CmsModelFieldValidation[],\n value: PossibleValue | PossibleValue[]\n): Promise<string | null> => {\n if (!fieldValidators) {\n return null;\n }\n const { validatorList, context, field, model, entry } = params;\n try {\n for (const fieldValidator of fieldValidators) {\n const name = fieldValidator.name;\n const validations = validatorList[name];\n if (!validations || validations.length === 0) {\n return `There are no \"${name}\" validators defined.`;\n }\n for (const validate of validations) {\n const result = await validate({\n value,\n context,\n validator: fieldValidator,\n field,\n model,\n entry\n });\n if (!result) {\n return fieldValidator.message;\n }\n }\n }\n } catch (ex) {\n return ex.message;\n }\n\n return null;\n};\n\nconst validatePredefinedValue = (field: CmsModelField, value: any | any[]): string | null => {\n const { enabled = false, values: predefinedValues = [] } = field.predefinedValues || {};\n if (!enabled) {\n return null;\n } else if (Array.isArray(predefinedValues) === false || predefinedValues.length === 0) {\n return \"Missing predefined values to validate against.\";\n } else if (value === \"\" || value === null || value === undefined) {\n return null;\n }\n for (const predefinedValue of predefinedValues) {\n /**\n * No strict compare because the value sent can be 12345 (number) and predefinedValue can be \"12345\" (string),\n * and we want it to match.\n */\n if (predefinedValue.value == value) {\n return null;\n }\n }\n return \"Value sent does not match any of the available predefined values.\";\n};\n\nconst getFieldValidation = (\n listValidation?: CmsModelFieldValidation[]\n): CmsModelFieldValidation[] => {\n if (!listValidation?.length) {\n return [];\n }\n return listValidation.filter(item => item.name !== \"dynamicZone\");\n};\n/**\n * When multiple values is selected we must run validations on the array containing the values\n * And then on each value in the array\n */\nconst runFieldMultipleValuesValidations = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>\n): Promise<string | null> => {\n const { field, values: initialValues } = params;\n const values = initialValues[field.fieldId as keyof TValues] as\n | PossibleValue[]\n | null\n | undefined;\n const valuesError = await validateValue(\n params,\n getFieldValidation(field.listValidation),\n values\n );\n if (valuesError) {\n return valuesError;\n }\n if (values === null || values === undefined) {\n return null;\n }\n for (const value of values) {\n const valueError = await validateValue(params, getFieldValidation(field.validation), value);\n if (valueError) {\n return valueError;\n }\n const predefinedValueError = validatePredefinedValue(field, value);\n if (predefinedValueError) {\n return predefinedValueError;\n }\n }\n return null;\n};\n/**\n * Runs validation on given value.\n */\nconst runFieldValueValidations = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>\n): Promise<string | null> => {\n const { values, field } = params;\n const value = values[field.fieldId as keyof TValues];\n const error = await validateValue(params, field.validation || [], value);\n if (error) {\n return error;\n }\n return validatePredefinedValue(field, value);\n};\n\nconst execValidation = async (params: ExecuteValidationParams): Promise<string | null> => {\n const { field } = params;\n if (field.list) {\n return await runFieldMultipleValuesValidations(params);\n }\n return await runFieldValueValidations(params);\n};\n\ninterface IValidateModelEntryDataParams<TValues extends CmsEntryValues = CmsEntryValues> {\n context: CmsContext;\n model: CmsModel;\n values: TValues;\n entry?: CmsEntry<TValues>;\n skipValidators?: string[];\n}\n\nexport const validateModelEntryData = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: IValidateModelEntryDataParams<TValues>\n) => {\n const { context, model, entry, values, skipValidators } = params;\n\n const isValidatorSkipped = (validator: CmsModelFieldValidator.Interface) => {\n if (!skipValidators) {\n return false;\n }\n return skipValidators.includes(camelCase(validator.name));\n };\n\n const skippedValidators = new Set<string>();\n\n const validatorList: PluginValidationList = {};\n const registry = context.container.resolve(CmsModelFieldValidatorRegistry);\n const validators = registry.getAll();\n for (const validator of validators) {\n const name = validator.name;\n if (!validatorList[name]) {\n validatorList[name] = [];\n }\n const isSkipped = isValidatorSkipped(validator);\n if (isSkipped) {\n skippedValidators.add(name);\n validatorList[name].push(async () => {\n return true;\n });\n continue;\n }\n validatorList[name].push(params => {\n return validator.validate(params);\n });\n }\n /**\n * No point in continuing if all validators are skipped.\n */\n const keys = Object.keys(validatorList);\n if (keys.length === skippedValidators.size) {\n return [];\n }\n\n return await validate<TValues>({\n validatorList,\n context,\n model,\n entry,\n parents: [],\n fields: model.fields,\n values: {\n ...entry?.values,\n ...values\n }\n });\n};\n\nexport const validateModelEntryDataOrThrow = async <\n TValues extends CmsEntryValues = CmsEntryValues\n>(\n params: IValidateModelEntryDataParams<TValues>\n) => {\n const invalidFields = await validateModelEntryData(params);\n if (invalidFields.length === 0) {\n return;\n }\n throw new EntryValidationError(\"Validation failed.\", invalidFields);\n};\n\n/**\n *\n */\ninterface FieldError {\n id: string;\n fieldId: string;\n storageId: string;\n error: any;\n parents: string[];\n}\n\ninterface ValidateFieldParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n values: TValues;\n context: CmsContext;\n field: CmsModelField;\n entry?: CmsEntry<TValues>;\n}\n\nconst executeFieldValidation = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ValidateFieldParams<TValues>\n): Promise<FieldError[]> => {\n // TODO put per-field validation into plugins.\n const { field } = params;\n /**\n * Object field.\n */\n if (field.type === \"object\") {\n const fields = field.settings?.fields;\n if (!Array.isArray(fields)) {\n return [];\n }\n const validations: FieldError[] = [];\n /**\n * We need to validate the object field as well.\n */\n const error = await execValidation({\n ...params,\n field\n });\n if (error) {\n validations.push({\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n });\n }\n const objectValue = params.values[field.fieldId as keyof TValues];\n if (!objectValue) {\n return validations;\n }\n const values = (Array.isArray(objectValue) ? objectValue : [objectValue]) as TValues[];\n for (const index in values) {\n const parents = field.list ? [field.fieldId, index] : [field.fieldId];\n const value = values[index] as TValues;\n for (const childField of fields) {\n const errors = await executeFieldValidation<typeof value>({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n values: value\n });\n if (errors.length === 0) {\n continue;\n }\n validations.push(...errors);\n }\n }\n return validations;\n }\n /**\n * Dynamic Zone Field\n */\n //\n else if (field.type === \"dynamicZone\") {\n const validations: FieldError[] = [];\n\n const error = await execValidation({\n ...params,\n field\n });\n if (error) {\n validations.push({\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n });\n }\n\n const templates = (field.settings?.templates || []) as CmsDynamicZoneTemplate[];\n for (const template of templates) {\n const fields = template.fields;\n const fieldData = params.values[field.fieldId as keyof TValues];\n if (!fieldData) {\n continue;\n }\n const values: TValues[keyof TValues][] = Array.isArray(fieldData)\n ? fieldData\n : [fieldData];\n for (const index in values) {\n const templateValue = values[index]?.[template.gqlTypeName];\n if (!templateValue) {\n continue;\n }\n /**\n * Order of the parents must be\n * - fieldId\n * - index (if multiple values)\n * - gqlTypeName\n */\n const parents = [field.fieldId];\n if (field.list) {\n parents.push(index);\n }\n parents.push(template.gqlTypeName);\n for (const childField of fields) {\n const errors = await executeFieldValidation({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n values: templateValue\n });\n if (errors.length === 0) {\n continue;\n }\n validations.push(...errors);\n }\n }\n }\n\n return validations;\n }\n const error = await execValidation({\n ...params\n });\n if (!error) {\n return [];\n }\n return [\n {\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n }\n ];\n};\n\ninterface ValidateFieldsParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n values: TValues;\n fields: CmsModelField[];\n context: CmsContext;\n entry?: CmsEntry<TValues>;\n}\n\nconst validate = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ValidateFieldsParams<TValues>\n): Promise<FieldError[]> => {\n const { fields } = params;\n const errors: FieldError[] = [];\n\n const results = await Promise.all(\n fields.map(async field => {\n return await executeFieldValidation<TValues>({\n ...params,\n field\n });\n })\n );\n\n for (const result of results) {\n if (result.length === 0) {\n continue;\n }\n errors.push(...result);\n }\n return errors;\n};\n"],"names":["validateValue","params","fieldValidators","value","validatorList","context","field","model","entry","fieldValidator","name","validations","validate","result","ex","validatePredefinedValue","enabled","predefinedValues","Array","predefinedValue","getFieldValidation","listValidation","item","runFieldMultipleValuesValidations","initialValues","values","valuesError","valueError","predefinedValueError","runFieldValueValidations","error","execValidation","validateModelEntryData","skipValidators","isValidatorSkipped","validator","camelCase","skippedValidators","Set","registry","CmsModelFieldValidatorRegistry","validators","isSkipped","keys","Object","validateModelEntryDataOrThrow","invalidFields","EntryValidationError","executeFieldValidation","fields","objectValue","index","parents","childField","errors","templates","template","fieldData","templateValue","results","Promise"],"mappings":"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"}
1
+ {"version":3,"file":"crud/contentEntry/entryDataValidation.js","sources":["../../../src/crud/contentEntry/entryDataValidation.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsDynamicZoneTemplate,\n CmsEntry,\n CmsEntryValues,\n CmsModel,\n CmsModelField,\n CmsModelFieldValidation\n} from \"~/types/index.js\";\nimport { EntryValidationError } from \"~/domain/contentEntry/errors.js\";\nimport {\n type CmsModelFieldValidator,\n CmsModelFieldValidatorRegistry\n} from \"~/features/validation/index.js\";\n\ntype PluginValidationCallable = (\n params: CmsModelFieldValidator.Params\n) => CmsModelFieldValidator.Response;\ntype PluginValidationList = Record<string, PluginValidationCallable[]>;\n\ninterface ExecuteValidationParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n field: CmsModelField;\n model: CmsModel;\n values: TValues;\n context: CmsContext;\n entry?: CmsEntry<TValues>;\n}\n\ntype PossibleValue = boolean | number | string | null | undefined;\n\nconst validateValue = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>,\n fieldValidators: CmsModelFieldValidation[],\n value: PossibleValue | PossibleValue[]\n): Promise<string | null> => {\n if (!fieldValidators) {\n return null;\n }\n const { validatorList, context, field, model, entry } = params;\n try {\n for (const fieldValidator of fieldValidators) {\n const name = fieldValidator.name;\n const validations = validatorList[name];\n if (!validations || validations.length === 0) {\n return `There are no \"${name}\" validators defined.`;\n }\n for (const validate of validations) {\n const result = await validate({\n value,\n context,\n validator: fieldValidator,\n field,\n model,\n entry\n });\n if (!result) {\n return fieldValidator.message;\n }\n }\n }\n } catch (ex) {\n return ex.message;\n }\n\n return null;\n};\n\nconst validatePredefinedValue = (field: CmsModelField, value: any | any[]): string | null => {\n const { enabled = false, values: predefinedValues = [] } = field.predefinedValues || {};\n if (!enabled) {\n return null;\n } else if (Array.isArray(predefinedValues) === false || predefinedValues.length === 0) {\n return \"Missing predefined values to validate against.\";\n } else if (value === \"\" || value === null || value === undefined) {\n return null;\n }\n for (const predefinedValue of predefinedValues) {\n /**\n * No strict compare because the value sent can be 12345 (number) and predefinedValue can be \"12345\" (string),\n * and we want it to match.\n */\n if (predefinedValue.value == value) {\n return null;\n }\n }\n return \"Value sent does not match any of the available predefined values.\";\n};\n\nconst DATE_RE = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst TIME_RE = /^\\d{2}:\\d{2}(:\\d{2})?$/;\nconst DATETIME_RE = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}/;\n\nconst validateDatetimeFormat = (field: CmsModelField, value: any): string | null => {\n if (field.type !== \"datetime\") {\n return null;\n }\n if (value === null || value === undefined || value === \"\") {\n return null;\n }\n if (typeof value !== \"string\") {\n return null;\n }\n\n const dateType = field.settings?.type;\n\n switch (dateType) {\n case \"date\":\n if (!DATE_RE.test(value)) {\n return `Invalid date format for field \"${field.fieldId}\". Expected YYYY-MM-DD.`;\n }\n return null;\n case \"time\":\n if (!TIME_RE.test(value)) {\n return `Invalid time format for field \"${field.fieldId}\". Expected HH:mm or HH:mm:ss.`;\n }\n return null;\n case \"dateTimeWithTimezone\":\n case \"dateTimeWithoutTimezone\":\n if (!DATETIME_RE.test(value)) {\n return `Invalid dateTime format for field \"${field.fieldId}\". Expected ISO 8601 dateTime.`;\n }\n return null;\n default:\n return null;\n }\n};\n\nconst getFieldValidation = (\n listValidation?: CmsModelFieldValidation[]\n): CmsModelFieldValidation[] => {\n if (!listValidation?.length) {\n return [];\n }\n // Filter out the legacy \"dynamicZone\" validator that was never implemented.\n // Existing models may still have it in their persisted listValidation data.\n return listValidation.filter(item => item.name !== \"dynamicZone\");\n};\n/**\n * When multiple values is selected we must run validations on the array containing the values\n * And then on each value in the array\n */\nconst runFieldMultipleValuesValidations = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>\n): Promise<string | null> => {\n const { field, values: initialValues } = params;\n const values = initialValues[field.fieldId as keyof TValues] as\n | PossibleValue[]\n | null\n | undefined;\n const valuesError = await validateValue(\n params,\n getFieldValidation(field.listValidation),\n values\n );\n if (valuesError) {\n return valuesError;\n }\n if (values === null || values === undefined) {\n return null;\n }\n for (const value of values) {\n const datetimeError = validateDatetimeFormat(field, value);\n if (datetimeError) {\n return datetimeError;\n }\n const valueError = await validateValue(params, getFieldValidation(field.validation), value);\n if (valueError) {\n return valueError;\n }\n const predefinedValueError = validatePredefinedValue(field, value);\n if (predefinedValueError) {\n return predefinedValueError;\n }\n }\n return null;\n};\n/**\n * Runs validation on given value.\n */\nconst runFieldValueValidations = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ExecuteValidationParams<TValues>\n): Promise<string | null> => {\n const { values, field } = params;\n const value = values[field.fieldId as keyof TValues];\n const datetimeError = validateDatetimeFormat(field, value);\n if (datetimeError) {\n return datetimeError;\n }\n const error = await validateValue(params, field.validation || [], value);\n if (error) {\n return error;\n }\n return validatePredefinedValue(field, value);\n};\n\nconst execValidation = async (params: ExecuteValidationParams): Promise<string | null> => {\n const { field } = params;\n if (field.list) {\n return await runFieldMultipleValuesValidations(params);\n }\n return await runFieldValueValidations(params);\n};\n\ninterface IValidateModelEntryDataParams<TValues extends CmsEntryValues = CmsEntryValues> {\n context: CmsContext;\n model: CmsModel;\n values: TValues;\n entry?: CmsEntry<TValues>;\n skipValidation?: boolean;\n}\n\nexport const validateModelEntryData = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: IValidateModelEntryDataParams<TValues>\n) => {\n const { context, model, entry, values, skipValidation } = params;\n\n if (skipValidation) {\n return [];\n }\n\n const validatorList: PluginValidationList = {};\n const registry = context.container.resolve(CmsModelFieldValidatorRegistry);\n const validators = registry.getAll();\n for (const validator of validators) {\n const name = validator.name;\n if (!validatorList[name]) {\n validatorList[name] = [];\n }\n validatorList[name].push(params => {\n return validator.validate(params);\n });\n }\n\n return await validate<TValues>({\n validatorList,\n context,\n model,\n entry,\n parents: [],\n fields: model.fields,\n values: {\n ...entry?.values,\n ...values\n }\n });\n};\n\nexport const validateModelEntryDataOrThrow = async <\n TValues extends CmsEntryValues = CmsEntryValues\n>(\n params: IValidateModelEntryDataParams<TValues>\n) => {\n const invalidFields = await validateModelEntryData(params);\n if (invalidFields.length === 0) {\n return;\n }\n throw new EntryValidationError(\"Validation failed.\", invalidFields);\n};\n\n/**\n *\n */\ninterface FieldError {\n id: string;\n fieldId: string;\n storageId: string;\n error: any;\n parents: string[];\n}\n\ninterface ValidateFieldParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n values: TValues;\n context: CmsContext;\n field: CmsModelField;\n entry?: CmsEntry<TValues>;\n}\n\nconst executeFieldValidation = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ValidateFieldParams<TValues>\n): Promise<FieldError[]> => {\n // TODO put per-field validation into plugins.\n const { field } = params;\n /**\n * Object field.\n */\n if (field.type === \"object\") {\n const fields = field.settings?.fields;\n if (!Array.isArray(fields)) {\n return [];\n }\n const validations: FieldError[] = [];\n /**\n * We need to validate the object field as well.\n */\n const error = await execValidation({\n ...params,\n field\n });\n if (error) {\n validations.push({\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n });\n }\n const objectValue = params.values[field.fieldId as keyof TValues];\n if (!objectValue) {\n return validations;\n }\n const values = (Array.isArray(objectValue) ? objectValue : [objectValue]) as TValues[];\n for (const index in values) {\n const parents = field.list ? [field.fieldId, index] : [field.fieldId];\n const value = values[index] as TValues;\n for (const childField of fields) {\n const errors = await executeFieldValidation<typeof value>({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n values: value\n });\n if (errors.length === 0) {\n continue;\n }\n validations.push(...errors);\n }\n }\n return validations;\n }\n /**\n * Dynamic Zone Field\n */\n //\n else if (field.type === \"dynamicZone\") {\n const validations: FieldError[] = [];\n\n const error = await execValidation({\n ...params,\n field\n });\n if (error) {\n validations.push({\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n });\n }\n\n const templates = (field.settings?.templates || []) as CmsDynamicZoneTemplate[];\n for (const template of templates) {\n const fields = template.fields;\n const fieldData = params.values[field.fieldId as keyof TValues];\n if (!fieldData) {\n continue;\n }\n const values: TValues[keyof TValues][] = Array.isArray(fieldData)\n ? fieldData\n : [fieldData];\n for (const index in values) {\n const templateValue = values[index]?.[template.gqlTypeName];\n if (!templateValue) {\n continue;\n }\n /**\n * Order of the parents must be\n * - fieldId\n * - index (if multiple values)\n * - gqlTypeName\n */\n const parents = [field.fieldId];\n if (field.list) {\n parents.push(index);\n }\n parents.push(template.gqlTypeName);\n for (const childField of fields) {\n const errors = await executeFieldValidation({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n values: templateValue\n });\n if (errors.length === 0) {\n continue;\n }\n validations.push(...errors);\n }\n }\n }\n\n return validations;\n }\n const error = await execValidation({\n ...params\n });\n if (!error) {\n return [];\n }\n return [\n {\n id: field.id,\n fieldId: field.fieldId,\n storageId: field.storageId,\n error,\n parents: params.parents\n }\n ];\n};\n\ninterface ValidateFieldsParams<TValues extends CmsEntryValues = CmsEntryValues> {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n values: TValues;\n fields: CmsModelField[];\n context: CmsContext;\n entry?: CmsEntry<TValues>;\n}\n\nconst validate = async <TValues extends CmsEntryValues = CmsEntryValues>(\n params: ValidateFieldsParams<TValues>\n): Promise<FieldError[]> => {\n const { fields } = params;\n const errors: FieldError[] = [];\n\n const results = await Promise.all(\n fields.map(async field => {\n return await executeFieldValidation<TValues>({\n ...params,\n field\n });\n })\n );\n\n for (const result of results) {\n if (result.length === 0) {\n continue;\n }\n errors.push(...result);\n }\n return errors;\n};\n"],"names":["validateValue","params","fieldValidators","value","validatorList","context","field","model","entry","fieldValidator","name","validations","validate","result","ex","validatePredefinedValue","enabled","predefinedValues","Array","predefinedValue","DATE_RE","TIME_RE","DATETIME_RE","validateDatetimeFormat","dateType","getFieldValidation","listValidation","item","runFieldMultipleValuesValidations","initialValues","values","valuesError","datetimeError","valueError","predefinedValueError","runFieldValueValidations","error","execValidation","validateModelEntryData","skipValidation","registry","CmsModelFieldValidatorRegistry","validators","validator","validateModelEntryDataOrThrow","invalidFields","EntryValidationError","executeFieldValidation","fields","objectValue","index","parents","childField","errors","templates","template","fieldData","templateValue","results","Promise"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { CmsContext } from "../../../types/index.js";
2
2
  interface ValidateReferencedEntriesParams {
3
3
  output: Record<string, any>;
4
- context: Pick<CmsContext, "cms" | "security">;
4
+ context: Pick<CmsContext, "container">;
5
5
  referenceFieldPaths: string[];
6
6
  }
7
7
  export declare const validateReferencedEntries: ({ output, context, referenceFieldPaths }: ValidateReferencedEntriesParams) => Promise<void>;
@@ -1,5 +1,8 @@
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/abstractions.js";
1
2
  import dot_prop_immutable from "dot-prop-immutable";
2
3
  import { WebinyError } from "@webiny/error";
4
+ import { ListModelsUseCase } from "../../../features/contentModel/ListModels/index.js";
5
+ import { GetEntriesByIdsUseCase } from "../../../features/contentEntry/GetEntriesByIds/index.js";
3
6
  const getReferenceFieldValue = (ref)=>{
4
7
  if (!ref?.id || !ref.modelId) return null;
5
8
  return ref;
@@ -15,14 +18,21 @@ const validateReferencedEntries = async ({ output, context, referenceFieldPaths
15
18
  referencesByModel.set(result.modelId, refs);
16
19
  }
17
20
  if (0 === referencesByModel.size) return;
18
- const models = await context.security.withoutAuthorization(async ()=>(await context.cms.listModels()).filter((model)=>{
19
- const entries = referencesByModel.get(model.modelId) || [];
20
- if (0 === entries.length) return false;
21
- return true;
22
- }));
21
+ const modelsResult = await context.container.resolve(IdentityContext).withoutAuthorization(async ()=>context.container.resolve(ListModelsUseCase).execute());
22
+ if (modelsResult.isFail()) throw modelsResult.error;
23
+ const models = modelsResult.value.filter((model)=>{
24
+ const entries = referencesByModel.get(model.modelId) || [];
25
+ return entries.length > 0;
26
+ });
23
27
  if (!models.length) return;
24
- const promises = await context.security.withoutAuthorization(async ()=>models.map((model)=>context.cms.getEntriesByIds(model, referencesByModel.get(model.modelId) || [])));
25
- const allEntries = await Promise.all(promises).then((res)=>res.flat());
28
+ const allEntries = await context.container.resolve(IdentityContext).withoutAuthorization(async ()=>{
29
+ const fetches = models.map(async (model)=>{
30
+ const result = await context.container.resolve(GetEntriesByIdsUseCase).execute(model, referencesByModel.get(model.modelId) || []);
31
+ if (result.isFail()) throw result.error;
32
+ return result.value;
33
+ });
34
+ return (await Promise.all(fetches)).flat();
35
+ });
26
36
  const entriesByModel = allEntries.reduce((acc, entry)=>({
27
37
  ...acc,
28
38
  [entry.modelId]: [
@@ -1 +1 @@
1
- {"version":3,"file":"crud/contentEntry/references/validateEntries.js","sources":["../../../../src/crud/contentEntry/references/validateEntries.ts"],"sourcesContent":["import type { CmsContext } from \"~/types/index.js\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport { WebinyError } from \"@webiny/error\";\n\ninterface ReferenceObject {\n id: string;\n modelId: string;\n}\n\ninterface ValidateReferencedEntriesParams {\n output: Record<string, any>;\n context: Pick<CmsContext, \"cms\" | \"security\">;\n referenceFieldPaths: string[];\n}\n\nconst getReferenceFieldValue = (\n ref: Partial<ReferenceObject> | null | undefined\n): ReferenceObject | null => {\n if (!ref?.id || !ref.modelId) {\n return null;\n }\n return ref as ReferenceObject;\n};\n\nexport const validateReferencedEntries = async ({\n output,\n context,\n referenceFieldPaths\n}: ValidateReferencedEntriesParams) => {\n const referencesByModel = new Map<string, string[]>();\n\n /**\n * Group references by modelId.\n */\n for (const path of referenceFieldPaths) {\n const ref = dotPropImmutable.get(output, path) as ReferenceObject | any;\n\n const result = getReferenceFieldValue(ref);\n\n if (!result) {\n continue;\n }\n\n const refs = referencesByModel.get(result.modelId) || [];\n refs.push(result.id);\n referencesByModel.set(result.modelId, refs);\n }\n\n if (referencesByModel.size === 0) {\n return;\n }\n\n /**\n * Load all models and use only those that are used in reference.\n */\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n const entries = referencesByModel.get(model.modelId) || [];\n if (entries.length === 0) {\n return false;\n }\n return true;\n });\n });\n\n if (!models.length) {\n return;\n }\n\n /**\n * Load all the entries by their IDs.\n */\n const promises = await context.security.withoutAuthorization(async () => {\n return models.map(model => {\n return context.cms.getEntriesByIds(model, referencesByModel.get(model.modelId) || []);\n });\n });\n\n const allEntries = await Promise.all(promises).then(res => res.flat());\n const entriesByModel = allEntries.reduce<Record<string, string[]>>((acc, entry) => {\n return { ...acc, [entry.modelId]: [...(acc[entry.modelId] || []), entry.id] };\n }, {});\n\n /**\n * Verify that all entries exist.\n */\n referencesByModel.forEach((ids, modelId) => {\n const modelEntriesInDb = entriesByModel[modelId];\n for (const id of ids) {\n if (!modelEntriesInDb || !modelEntriesInDb.includes(id)) {\n throw new WebinyError(\n `Missing referenced entry with id \"${id}\" in model \"${modelId}\".`,\n \"ENTRY_NOT_FOUND\",\n {\n id,\n model: modelId\n }\n );\n }\n }\n });\n};\n"],"names":["getReferenceFieldValue","ref","validateReferencedEntries","output","context","referenceFieldPaths","referencesByModel","Map","path","dotPropImmutable","result","refs","models","model","entries","promises","allEntries","Promise","res","entriesByModel","acc","entry","ids","modelId","modelEntriesInDb","id","WebinyError"],"mappings":";;AAeA,MAAMA,yBAAyB,CAC3BC;IAEA,IAAI,CAACA,KAAK,MAAM,CAACA,IAAI,OAAO,EACxB,OAAO;IAEX,OAAOA;AACX;AAEO,MAAMC,4BAA4B,OAAO,EAC5CC,MAAM,EACNC,OAAO,EACPC,mBAAmB,EACW;IAC9B,MAAMC,oBAAoB,IAAIC;IAK9B,KAAK,MAAMC,QAAQH,oBAAqB;QACpC,MAAMJ,MAAMQ,mBAAAA,GAAoB,CAACN,QAAQK;QAEzC,MAAME,SAASV,uBAAuBC;QAEtC,IAAI,CAACS,QACD;QAGJ,MAAMC,OAAOL,kBAAkB,GAAG,CAACI,OAAO,OAAO,KAAK,EAAE;QACxDC,KAAK,IAAI,CAACD,OAAO,EAAE;QACnBJ,kBAAkB,GAAG,CAACI,OAAO,OAAO,EAAEC;IAC1C;IAEA,IAAIL,AAA2B,MAA3BA,kBAAkB,IAAI,EACtB;IAMJ,MAAMM,SAAS,MAAMR,QAAQ,QAAQ,CAAC,oBAAoB,CAAC,UAC/C,OAAMA,QAAQ,GAAG,CAAC,UAAU,EAAC,EAAG,MAAM,CAACS,CAAAA;YAC3C,MAAMC,UAAUR,kBAAkB,GAAG,CAACO,MAAM,OAAO,KAAK,EAAE;YAC1D,IAAIC,AAAmB,MAAnBA,QAAQ,MAAM,EACd,OAAO;YAEX,OAAO;QACX;IAGJ,IAAI,CAACF,OAAO,MAAM,EACd;IAMJ,MAAMG,WAAW,MAAMX,QAAQ,QAAQ,CAAC,oBAAoB,CAAC,UAClDQ,OAAO,GAAG,CAACC,CAAAA,QACPT,QAAQ,GAAG,CAAC,eAAe,CAACS,OAAOP,kBAAkB,GAAG,CAACO,MAAM,OAAO,KAAK,EAAE;IAI5F,MAAMG,aAAa,MAAMC,QAAQ,GAAG,CAACF,UAAU,IAAI,CAACG,CAAAA,MAAOA,IAAI,IAAI;IACnE,MAAMC,iBAAiBH,WAAW,MAAM,CAA2B,CAACI,KAAKC,QAC9D;YAAE,GAAGD,GAAG;YAAE,CAACC,MAAM,OAAO,CAAC,EAAE;mBAAKD,GAAG,CAACC,MAAM,OAAO,CAAC,IAAI,EAAE;gBAAGA,MAAM,EAAE;aAAC;QAAC,IAC7E,CAAC;IAKJf,kBAAkB,OAAO,CAAC,CAACgB,KAAKC;QAC5B,MAAMC,mBAAmBL,cAAc,CAACI,QAAQ;QAChD,KAAK,MAAME,MAAMH,IACb,IAAI,CAACE,oBAAoB,CAACA,iBAAiB,QAAQ,CAACC,KAChD,MAAM,IAAIC,YACN,CAAC,kCAAkC,EAAED,GAAG,YAAY,EAAEF,QAAQ,EAAE,CAAC,EACjE,mBACA;YACIE;YACA,OAAOF;QACX;IAIhB;AACJ"}
1
+ {"version":3,"file":"crud/contentEntry/references/validateEntries.js","sources":["../../../../src/crud/contentEntry/references/validateEntries.ts"],"sourcesContent":["import { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\nimport type { CmsContext } from \"~/types/index.js\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport { WebinyError } from \"@webiny/error\";\nimport { ListModelsUseCase } from \"~/features/contentModel/ListModels/index.js\";\nimport { GetEntriesByIdsUseCase } from \"~/features/contentEntry/GetEntriesByIds/index.js\";\n\ninterface ReferenceObject {\n id: string;\n modelId: string;\n}\n\ninterface ValidateReferencedEntriesParams {\n output: Record<string, any>;\n context: Pick<CmsContext, \"container\">;\n referenceFieldPaths: string[];\n}\n\nconst getReferenceFieldValue = (\n ref: Partial<ReferenceObject> | null | undefined\n): ReferenceObject | null => {\n if (!ref?.id || !ref.modelId) {\n return null;\n }\n return ref as ReferenceObject;\n};\n\nexport const validateReferencedEntries = async ({\n output,\n context,\n referenceFieldPaths\n}: ValidateReferencedEntriesParams) => {\n const referencesByModel = new Map<string, string[]>();\n\n /**\n * Group references by modelId.\n */\n for (const path of referenceFieldPaths) {\n const ref = dotPropImmutable.get(output, path) as ReferenceObject | any;\n\n const result = getReferenceFieldValue(ref);\n\n if (!result) {\n continue;\n }\n\n const refs = referencesByModel.get(result.modelId) || [];\n refs.push(result.id);\n referencesByModel.set(result.modelId, refs);\n }\n\n if (referencesByModel.size === 0) {\n return;\n }\n\n /**\n * Load all models and use only those that are used in reference.\n */\n const modelsResult = await context.container\n .resolve(IdentityContext)\n .withoutAuthorization(async () => {\n return context.container.resolve(ListModelsUseCase).execute();\n });\n if (modelsResult.isFail()) {\n throw modelsResult.error;\n }\n const models = modelsResult.value.filter(model => {\n const entries = referencesByModel.get(model.modelId) || [];\n return entries.length > 0;\n });\n\n if (!models.length) {\n return;\n }\n\n /**\n * Load all the entries by their IDs.\n */\n const allEntries = await context.container\n .resolve(IdentityContext)\n .withoutAuthorization(async () => {\n const fetches = models.map(async model => {\n const result = await context.container\n .resolve(GetEntriesByIdsUseCase)\n .execute(model, referencesByModel.get(model.modelId) || []);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n return (await Promise.all(fetches)).flat();\n });\n const entriesByModel = allEntries.reduce<Record<string, string[]>>((acc, entry) => {\n return { ...acc, [entry.modelId]: [...(acc[entry.modelId] || []), entry.id] };\n }, {});\n\n /**\n * Verify that all entries exist.\n */\n referencesByModel.forEach((ids, modelId) => {\n const modelEntriesInDb = entriesByModel[modelId];\n for (const id of ids) {\n if (!modelEntriesInDb || !modelEntriesInDb.includes(id)) {\n throw new WebinyError(\n `Missing referenced entry with id \"${id}\" in model \"${modelId}\".`,\n \"ENTRY_NOT_FOUND\",\n {\n id,\n model: modelId\n }\n );\n }\n }\n });\n};\n"],"names":["getReferenceFieldValue","ref","validateReferencedEntries","output","context","referenceFieldPaths","referencesByModel","Map","path","dotPropImmutable","result","refs","modelsResult","IdentityContext","ListModelsUseCase","models","model","entries","allEntries","fetches","GetEntriesByIdsUseCase","Promise","entriesByModel","acc","entry","ids","modelId","modelEntriesInDb","id","WebinyError"],"mappings":";;;;;AAkBA,MAAMA,yBAAyB,CAC3BC;IAEA,IAAI,CAACA,KAAK,MAAM,CAACA,IAAI,OAAO,EACxB,OAAO;IAEX,OAAOA;AACX;AAEO,MAAMC,4BAA4B,OAAO,EAC5CC,MAAM,EACNC,OAAO,EACPC,mBAAmB,EACW;IAC9B,MAAMC,oBAAoB,IAAIC;IAK9B,KAAK,MAAMC,QAAQH,oBAAqB;QACpC,MAAMJ,MAAMQ,mBAAAA,GAAoB,CAACN,QAAQK;QAEzC,MAAME,SAASV,uBAAuBC;QAEtC,IAAI,CAACS,QACD;QAGJ,MAAMC,OAAOL,kBAAkB,GAAG,CAACI,OAAO,OAAO,KAAK,EAAE;QACxDC,KAAK,IAAI,CAACD,OAAO,EAAE;QACnBJ,kBAAkB,GAAG,CAACI,OAAO,OAAO,EAAEC;IAC1C;IAEA,IAAIL,AAA2B,MAA3BA,kBAAkB,IAAI,EACtB;IAMJ,MAAMM,eAAe,MAAMR,QAAQ,SAAS,CACvC,OAAO,CAACS,iBACR,oBAAoB,CAAC,UACXT,QAAQ,SAAS,CAAC,OAAO,CAACU,mBAAmB,OAAO;IAEnE,IAAIF,aAAa,MAAM,IACnB,MAAMA,aAAa,KAAK;IAE5B,MAAMG,SAASH,aAAa,KAAK,CAAC,MAAM,CAACI,CAAAA;QACrC,MAAMC,UAAUX,kBAAkB,GAAG,CAACU,MAAM,OAAO,KAAK,EAAE;QAC1D,OAAOC,QAAQ,MAAM,GAAG;IAC5B;IAEA,IAAI,CAACF,OAAO,MAAM,EACd;IAMJ,MAAMG,aAAa,MAAMd,QAAQ,SAAS,CACrC,OAAO,CAACS,iBACR,oBAAoB,CAAC;QAClB,MAAMM,UAAUJ,OAAO,GAAG,CAAC,OAAMC;YAC7B,MAAMN,SAAS,MAAMN,QAAQ,SAAS,CACjC,OAAO,CAACgB,wBACR,OAAO,CAACJ,OAAOV,kBAAkB,GAAG,CAACU,MAAM,OAAO,KAAK,EAAE;YAC9D,IAAIN,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;YAEtB,OAAOA,OAAO,KAAK;QACvB;QACA,OAAQ,OAAMW,QAAQ,GAAG,CAACF,QAAO,EAAG,IAAI;IAC5C;IACJ,MAAMG,iBAAiBJ,WAAW,MAAM,CAA2B,CAACK,KAAKC,QAC9D;YAAE,GAAGD,GAAG;YAAE,CAACC,MAAM,OAAO,CAAC,EAAE;mBAAKD,GAAG,CAACC,MAAM,OAAO,CAAC,IAAI,EAAE;gBAAGA,MAAM,EAAE;aAAC;QAAC,IAC7E,CAAC;IAKJlB,kBAAkB,OAAO,CAAC,CAACmB,KAAKC;QAC5B,MAAMC,mBAAmBL,cAAc,CAACI,QAAQ;QAChD,KAAK,MAAME,MAAMH,IACb,IAAI,CAACE,oBAAoB,CAACA,iBAAiB,QAAQ,CAACC,KAChD,MAAM,IAAIC,YACN,CAAC,kCAAkC,EAAED,GAAG,YAAY,EAAEF,QAAQ,EAAE,CAAC,EACjE,mBACA;YACIE;YACA,OAAOF;QACX;IAIhB;AACJ"}
@@ -1,4 +1,5 @@
1
1
  import _webiny_error from "@webiny/error";
2
+ import { BenchmarkAbstraction } from "@webiny/api";
2
3
  import { CreateEntryUseCase } from "../features/contentEntry/CreateEntry/index.js";
3
4
  import { CreateEntryRevisionFromUseCase } from "../features/contentEntry/CreateEntryRevisionFrom/abstractions.js";
4
5
  import { UpdateEntryUseCase } from "../features/contentEntry/UpdateEntry/index.js";
@@ -23,6 +24,7 @@ import { GetUniqueFieldValuesUseCase } from "../features/contentEntry/GetUniqueF
23
24
  import { UpdateRevisionDescriptionUseCase } from "../features/contentEntry/UpdateRevisionDescription/index.js";
24
25
  const createContentEntryCrud = (params)=>{
25
26
  const { context } = params;
27
+ const benchmark = context.container.resolve(BenchmarkAbstraction);
26
28
  const createEntry = async (model, rawInput, options)=>{
27
29
  const useCase = context.container.resolve(CreateEntryUseCase);
28
30
  const result = await useCase.execute(model, rawInput, options);
@@ -123,7 +125,7 @@ const createContentEntryCrud = (params)=>{
123
125
  };
124
126
  return {
125
127
  async getEntriesByIds (model, ids) {
126
- return context.benchmark.measure("headlessCms.crud.entries.getEntriesByIds", async ()=>{
128
+ return benchmark.measure("headlessCms.crud.entries.getEntriesByIds", async ()=>{
127
129
  const useCase = context.container.resolve(GetEntriesByIdsUseCase);
128
130
  const result = await useCase.execute(model, ids);
129
131
  if (result.isFail()) {
@@ -138,7 +140,7 @@ const createContentEntryCrud = (params)=>{
138
140
  });
139
141
  },
140
142
  async getEntryById (model, id) {
141
- return context.benchmark.measure("headlessCms.crud.entries.getEntryById", async ()=>{
143
+ return benchmark.measure("headlessCms.crud.entries.getEntryById", async ()=>{
142
144
  const useCase = context.container.resolve(GetEntryByIdUseCase);
143
145
  const result = await useCase.execute(model, id);
144
146
  if (result.isFail()) {
@@ -149,7 +151,7 @@ const createContentEntryCrud = (params)=>{
149
151
  });
150
152
  },
151
153
  async getPublishedEntriesByIds (model, ids) {
152
- return context.benchmark.measure("headlessCms.crud.entries.getPublishedEntriesByIds", async ()=>{
154
+ return benchmark.measure("headlessCms.crud.entries.getPublishedEntriesByIds", async ()=>{
153
155
  const useCase = context.container.resolve(GetPublishedEntriesByIdsUseCase);
154
156
  const result = await useCase.execute(model, ids);
155
157
  if (result.isFail()) {
@@ -164,7 +166,7 @@ const createContentEntryCrud = (params)=>{
164
166
  });
165
167
  },
166
168
  async getLatestEntriesByIds (model, ids) {
167
- return context.benchmark.measure("headlessCms.crud.entries.getLatestEntriesByIds", async ()=>{
169
+ return benchmark.measure("headlessCms.crud.entries.getLatestEntriesByIds", async ()=>{
168
170
  const useCase = context.container.resolve(GetLatestEntriesByIdsUseCase);
169
171
  const result = await useCase.execute(model, ids);
170
172
  if (result.isFail()) {
@@ -179,7 +181,7 @@ const createContentEntryCrud = (params)=>{
179
181
  });
180
182
  },
181
183
  async getEntryRevisions (model, entryId) {
182
- return context.benchmark.measure("headlessCms.crud.entries.getEntryRevisions", async ()=>{
184
+ return benchmark.measure("headlessCms.crud.entries.getEntryRevisions", async ()=>{
183
185
  const useCase = context.container.resolve(GetRevisionsByEntryIdUseCase);
184
186
  const result = await useCase.execute(model, entryId);
185
187
  if (result.isFail()) {
@@ -194,7 +196,7 @@ const createContentEntryCrud = (params)=>{
194
196
  });
195
197
  },
196
198
  async getEntry (model, params) {
197
- return context.benchmark.measure("headlessCms.crud.entries.getEntry", async ()=>{
199
+ return benchmark.measure("headlessCms.crud.entries.getEntry", async ()=>{
198
200
  const useCase = context.container.resolve(GetEntryUseCase);
199
201
  const result = await useCase.execute(model, params);
200
202
  if (result.isFail()) {
@@ -277,38 +279,38 @@ const createContentEntryCrud = (params)=>{
277
279
  ];
278
280
  },
279
281
  async createEntry (model, input, options) {
280
- return context.benchmark.measure("headlessCms.crud.entries.createEntry", async ()=>createEntry(model, input, options));
282
+ return benchmark.measure("headlessCms.crud.entries.createEntry", async ()=>createEntry(model, input, options));
281
283
  },
282
284
  async createEntryRevisionFrom (model, sourceId, input, options) {
283
- return context.benchmark.measure("headlessCms.crud.entries.createEntryRevisionFrom", async ()=>createEntryRevisionFrom(model, sourceId, input, options));
285
+ return benchmark.measure("headlessCms.crud.entries.createEntryRevisionFrom", async ()=>createEntryRevisionFrom(model, sourceId, input, options));
284
286
  },
285
287
  async updateEntry (model, id, input, options) {
286
- return context.benchmark.measure("headlessCms.crud.entries.updateEntry", async ()=>updateEntry(model, id, input, options));
288
+ return benchmark.measure("headlessCms.crud.entries.updateEntry", async ()=>updateEntry(model, id, input, options));
287
289
  },
288
290
  async updateRevisionDescription (model, id, revisionDescription) {
289
- return context.benchmark.measure("headlessCms.crud.entries.updateRevisionDescription", async ()=>updateRevisionDescription(model, id, revisionDescription));
291
+ return benchmark.measure("headlessCms.crud.entries.updateRevisionDescription", async ()=>updateRevisionDescription(model, id, revisionDescription));
290
292
  },
291
293
  async validateEntry (model, id, input) {
292
- return context.benchmark.measure("headlessCms.crud.entries.validateEntry", async ()=>validateEntry(model, id, input));
294
+ return benchmark.measure("headlessCms.crud.entries.validateEntry", async ()=>validateEntry(model, id, input));
293
295
  },
294
296
  async moveEntry (model, id, folderId) {
295
- return context.benchmark.measure("headlessCms.crud.entries.moveEntry", async ()=>moveEntry(model, id, folderId));
297
+ return benchmark.measure("headlessCms.crud.entries.moveEntry", async ()=>moveEntry(model, id, folderId));
296
298
  },
297
299
  async republishEntry (model, id) {
298
- return context.benchmark.measure("headlessCms.crud.entries.republishEntry", async ()=>republishEntry(model, id));
300
+ return benchmark.measure("headlessCms.crud.entries.republishEntry", async ()=>republishEntry(model, id));
299
301
  },
300
302
  async deleteEntryRevision (model, id) {
301
- return context.benchmark.measure("headlessCms.crud.entries.deleteEntryRevision", async ()=>deleteEntryRevision(model, id));
303
+ return benchmark.measure("headlessCms.crud.entries.deleteEntryRevision", async ()=>deleteEntryRevision(model, id));
302
304
  },
303
305
  async deleteEntry (model, entryId, options) {
304
306
  const deleteEntryUseCase = context.container.resolve(DeleteEntryUseCase);
305
- return context.benchmark.measure("headlessCms.crud.entries.deleteEntry", async ()=>{
307
+ return benchmark.measure("headlessCms.crud.entries.deleteEntry", async ()=>{
306
308
  const result = await deleteEntryUseCase.execute(model, entryId, options ?? {});
307
309
  if (result.isFail()) throw new _webiny_error(result.error.message, result.error.code, result.error.data);
308
310
  });
309
311
  },
310
312
  async restoreEntryFromBin (model, entryId) {
311
- return context.benchmark.measure("headlessCms.crud.entries.restoreEntryFromBin", async ()=>{
313
+ return benchmark.measure("headlessCms.crud.entries.restoreEntryFromBin", async ()=>{
312
314
  const useCase = context.container.resolve(RestoreEntryFromBinUseCase);
313
315
  const result = await useCase.execute(model, entryId);
314
316
  if (result.isFail()) throw new _webiny_error(result.error.message, result.error.code, result.error.data);
@@ -316,16 +318,16 @@ const createContentEntryCrud = (params)=>{
316
318
  });
317
319
  },
318
320
  async deleteMultipleEntries (model, ids) {
319
- return context.benchmark.measure("headlessCms.crud.entries.deleteMultipleEntries", async ()=>deleteMultipleEntries(model, ids));
321
+ return benchmark.measure("headlessCms.crud.entries.deleteMultipleEntries", async ()=>deleteMultipleEntries(model, ids));
320
322
  },
321
323
  async publishEntry (model, id) {
322
- return context.benchmark.measure("headlessCms.crud.entries.publishEntry", async ()=>publishEntry(model, id));
324
+ return benchmark.measure("headlessCms.crud.entries.publishEntry", async ()=>publishEntry(model, id));
323
325
  },
324
326
  async unpublishEntry (model, id) {
325
- return context.benchmark.measure("headlessCms.crud.entries.unpublishEntry", async ()=>unpublishEntry(model, id));
327
+ return benchmark.measure("headlessCms.crud.entries.unpublishEntry", async ()=>unpublishEntry(model, id));
326
328
  },
327
329
  async getUniqueFieldValues (model, params) {
328
- return context.benchmark.measure("headlessCms.crud.entries.getUniqueFieldValues", async ()=>getUniqueFieldValues(model, params));
330
+ return benchmark.measure("headlessCms.crud.entries.getUniqueFieldValues", async ()=>getUniqueFieldValues(model, params));
329
331
  }
330
332
  };
331
333
  };
@@ -1 +1 @@
1
- {"version":3,"file":"crud/contentEntry.crud.js","sources":["../../src/crud/contentEntry.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n CmsContext,\n CmsEntry,\n CmsEntryContext,\n CmsEntryGetParams,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsEntryValues,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput,\n CreateFromCmsEntryInput,\n CreateRevisionCmsEntryOptionsInput,\n UpdateCmsEntryInput,\n UpdateCmsEntryOptionsInput\n} from \"~/types/index.js\";\nimport { CreateEntryUseCase } from \"~/features/contentEntry/CreateEntry/index.js\";\nimport { CreateEntryRevisionFromUseCase } from \"~/features/contentEntry/CreateEntryRevisionFrom/abstractions.js\";\nimport { UpdateEntryUseCase } from \"~/features/contentEntry/UpdateEntry/index.js\";\nimport { ValidateEntryUseCase } from \"~/features/contentEntry/ValidateEntry/abstractions.js\";\nimport { MoveEntryUseCase } from \"~/features/contentEntry/MoveEntry/abstractions.js\";\nimport { RepublishEntryUseCase } from \"~/features/contentEntry/RepublishEntry/abstractions.js\";\nimport { PublishEntryUseCase } from \"~/features/contentEntry/PublishEntry/abstractions.js\";\nimport {\n ListDeletedEntriesUseCase,\n ListLatestEntriesUseCase,\n ListPublishedEntriesUseCase\n} from \"~/features/contentEntry/ListEntries/index.js\";\nimport { ListEntriesUseCase } from \"~/features/contentEntry/ListEntries/abstractions.js\";\nimport { GetEntriesByIdsUseCase } from \"~/features/contentEntry/GetEntriesByIds/index.js\";\nimport { GetEntryByIdUseCase } from \"~/features/contentEntry/GetEntryById/index.js\";\nimport { GetPublishedEntriesByIdsUseCase } from \"~/features/contentEntry/GetPublishedEntriesByIds/index.js\";\nimport { GetLatestEntriesByIdsUseCase } from \"~/features/contentEntry/GetLatestEntriesByIds/index.js\";\nimport { GetRevisionsByEntryIdUseCase } from \"~/features/contentEntry/GetRevisionsByEntryId/index.js\";\nimport { GetEntryUseCase } from \"~/features/contentEntry/GetEntry/index.js\";\nimport { DeleteEntryRevisionUseCase } from \"~/features/contentEntry/DeleteEntryRevision/index.js\";\nimport { DeleteEntryUseCase } from \"~/features/contentEntry/DeleteEntry/index.js\";\nimport { DeleteMultipleEntriesUseCase } from \"~/features/contentEntry/DeleteMultipleEntries/abstractions.js\";\nimport { RestoreEntryFromBinUseCase } from \"~/features/contentEntry/RestoreEntryFromBin/abstractions.js\";\nimport { UnpublishEntryUseCase } from \"~/features/contentEntry/UnpublishEntry/index.js\";\nimport { GetUniqueFieldValuesUseCase } from \"~/features/contentEntry/GetUniqueFieldValues/index.js\";\nimport { UpdateRevisionDescriptionUseCase } from \"~/features/contentEntry/UpdateRevisionDescription/index.js\";\n\ninterface CreateContentEntryCrudParams {\n context: CmsContext;\n}\n\nexport const createContentEntryCrud = (params: CreateContentEntryCrudParams): CmsEntryContext => {\n const { context } = params;\n\n const createEntry: CmsEntryContext[\"createEntry\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n rawInput: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> => {\n // Delegate to new CreateEntry use case\n const useCase = context.container.resolve(CreateEntryUseCase);\n const result = await useCase.execute<T>(model, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not create content entry.\",\n error.code || \"CREATE_ENTRY_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const createEntryRevisionFrom: CmsEntryContext[\"createEntryRevisionFrom\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n sourceId: string,\n rawInput: CreateFromCmsEntryInput<T>,\n options?: CreateRevisionCmsEntryOptionsInput\n ) => {\n // Delegate to new CreateEntryRevisionFrom use case\n const useCase = context.container.resolve(CreateEntryRevisionFromUseCase);\n const result = await useCase.execute<T>(model, sourceId, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not create entry from existing one.\",\n error.code || \"CREATE_FROM_REVISION_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const updateEntry: CmsEntryContext[\"updateEntry\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n id: string,\n rawInput: UpdateCmsEntryInput<T>,\n options?: UpdateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> => {\n // Delegate to new UpdateEntry use case\n const useCase = context.container.resolve(UpdateEntryUseCase);\n const result = await useCase.execute<T>(model, id, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not update existing entry.\",\n error.code || \"UPDATE_ERROR\"\n );\n }\n\n return result.value;\n };\n\n const updateRevisionDescription: CmsEntryContext[\"updateRevisionDescription\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n id: string,\n revisionDescription: string | undefined\n ) => {\n const useCase = context.container.resolve(UpdateRevisionDescriptionUseCase);\n const result = await useCase.execute<T>(model, id, revisionDescription);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not update revision description of the revision.\",\n error.code || \"UPDATE_REVISION_DESCRIPTION_ERROR\"\n );\n }\n\n return result.value;\n };\n\n const validateEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>\n ) => {\n // Delegate to new ValidateEntry use case\n const useCase = context.container.resolve(ValidateEntryUseCase);\n const result = await useCase.execute<T>(model, id || null, input);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not validate entry.\",\n error.code || \"VALIDATION_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const moveEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n folderId: string\n ) => {\n // Delegate to new MoveEntry use case\n const useCase = context.container.resolve(MoveEntryUseCase);\n const result = await useCase.execute<T>(model, id, folderId);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || `Could not move entry \"${id}\" of model \"${model.modelId}\".`,\n error.code || \"MOVE_ENTRY_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const republishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new RepublishEntry use case\n const useCase = context.container.resolve(RepublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not republish entry.\",\n error.code || \"REPUBLISH_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const deleteEntryRevision: CmsEntryContext[\"deleteEntryRevision\"] = async (\n model,\n revisionId\n ) => {\n const useCase = context.container.resolve(DeleteEntryRevisionUseCase);\n const result = await useCase.execute(model, revisionId);\n\n if (result.isFail()) {\n throw new WebinyError(result.error.message, result.error.code, result.error.data);\n }\n };\n const deleteMultipleEntries: CmsEntryContext[\"deleteMultipleEntries\"] = async (\n model,\n params\n ) => {\n // Delegate to new DeleteMultipleEntries use case\n const useCase = context.container.resolve(DeleteMultipleEntriesUseCase);\n const result = await useCase.execute(model, params);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not delete multiple entries.\",\n error.code || \"DELETE_ENTRIES_MULTIPLE_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const publishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new PublishEntry use case\n const useCase = context.container.resolve(PublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n throw new WebinyError(\n result.error.message || \"Could not publish entry.\",\n result.error.code || \"PUBLISH_ERROR\",\n result.error.data\n );\n }\n\n return result.value;\n };\n const unpublishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new UnpublishEntry use case\n const useCase = context.container.resolve(UnpublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not unpublish entry.\",\n error.code || \"UNPUBLISH_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const getUniqueFieldValues: CmsEntryContext[\"getUniqueFieldValues\"] = async (model, params) => {\n const useCase = context.container.resolve(GetUniqueFieldValuesUseCase);\n const result = await useCase.execute(model, params);\n\n if (result.isFail()) {\n throw new WebinyError(result.error.message, result.error.code, result.error.data);\n }\n\n return result.value;\n };\n\n return {\n /**\n * Get entries by exact revision IDs from the database.\n */\n async getEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getEntriesByIds\",\n async () => {\n const useCase = context.container.resolve(GetEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get entries by IDs.\",\n error.code || \"GET_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n /**\n * Get a single entry by revision ID from the database.\n */\n async getEntryById<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string) {\n return context.benchmark.measure(\"headlessCms.crud.entries.getEntryById\", async () => {\n const useCase = context.container.resolve(GetEntryByIdUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || `Entry by ID \"${id}\" not found.`,\n error.code || \"GET_ENTRY_BY_ID_ERROR\",\n error.data\n );\n }\n\n return result.value;\n });\n },\n /**\n * Get published revisions by entry IDs.\n */\n async getPublishedEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getPublishedEntriesByIds\",\n async () => {\n const useCase = context.container.resolve(GetPublishedEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get published entries by IDs.\",\n error.code || \"GET_PUBLISHED_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n /**\n * Get the latest revisions by entry IDs.\n */\n async getLatestEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getLatestEntriesByIds\",\n async () => {\n const useCase = context.container.resolve(GetLatestEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get latest entries by IDs.\",\n error.code || \"GET_LATEST_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n async getEntryRevisions<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n entryId: string\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getEntryRevisions\",\n async () => {\n const useCase = context.container.resolve(GetRevisionsByEntryIdUseCase);\n const result = await useCase.execute<T>(model, entryId);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get entry revisions.\",\n error.code || \"GET_ENTRY_REVISIONS_ERROR\",\n {\n error,\n entryId,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n /**\n * @internal\n */\n async getEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryGetParams\n ): Promise<CmsEntry<T>> {\n return context.benchmark.measure(\"headlessCms.crud.entries.getEntry\", async () => {\n const useCase = context.container.resolve(GetEntryUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Entry not found!\",\n error.code || \"GET_ENTRY_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n /**\n * @description Should not be used directly. Internal use only!\n *\n * @internal\n */\n async listEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list entries.\",\n error.code || \"LIST_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listLatestEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListLatestEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list latest entries.\",\n error.code || \"LIST_LATEST_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listDeletedEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListDeletedEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list deleted entries.\",\n error.code || \"LIST_DELETED_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listPublishedEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListPublishedEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list published entries.\",\n error.code || \"LIST_PUBLISHED_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n return [entries, meta];\n },\n async createEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n input: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> {\n return context.benchmark.measure(\"headlessCms.crud.entries.createEntry\", async () => {\n return createEntry(model, input, options);\n });\n },\n async createEntryRevisionFrom<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n sourceId: string,\n input: CreateFromCmsEntryInput<T>,\n options?: CreateRevisionCmsEntryOptionsInput\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.createEntryRevisionFrom\",\n async () => {\n return createEntryRevisionFrom<T>(model, sourceId, input, options);\n }\n );\n },\n async updateEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>,\n options?: UpdateCmsEntryOptionsInput\n ) {\n return context.benchmark.measure(\"headlessCms.crud.entries.updateEntry\", async () => {\n return updateEntry<T>(model, id, input, options);\n });\n },\n\n async updateRevisionDescription(model, id, revisionDescription) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.updateRevisionDescription\",\n async () => {\n return updateRevisionDescription(model, id, revisionDescription);\n }\n );\n },\n async validateEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>\n ) {\n return context.benchmark.measure(\"headlessCms.crud.entries.validateEntry\", async () => {\n return validateEntry<T>(model, id, input);\n });\n },\n async moveEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n folderId: string\n ) {\n return context.benchmark.measure(\"headlessCms.crud.entries.moveEntry\", async () => {\n return moveEntry<T>(model, id, folderId);\n });\n },\n /**\n * Method used internally. Not documented and should not be used in users systems.\n * @internal\n */\n async republishEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.republishEntry\",\n async () => {\n return republishEntry<T>(model, id);\n }\n );\n },\n async deleteEntryRevision(model, id) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.deleteEntryRevision\",\n async () => {\n return deleteEntryRevision(model, id);\n }\n );\n },\n async deleteEntry(model, entryId, options) {\n const deleteEntryUseCase = context.container.resolve(DeleteEntryUseCase);\n return context.benchmark.measure(\"headlessCms.crud.entries.deleteEntry\", async () => {\n const result = await deleteEntryUseCase.execute(model, entryId, options ?? {});\n\n if (result.isFail()) {\n throw new WebinyError(\n result.error.message,\n result.error.code,\n result.error.data\n );\n }\n });\n },\n async restoreEntryFromBin<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n entryId: string\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.restoreEntryFromBin\",\n async () => {\n const useCase = context.container.resolve(RestoreEntryFromBinUseCase);\n const result = await useCase.execute<T>(model, entryId);\n if (result.isFail()) {\n throw new WebinyError(\n result.error.message,\n result.error.code,\n result.error.data\n );\n }\n return result.value;\n }\n );\n },\n async deleteMultipleEntries(model, ids) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.deleteMultipleEntries\",\n async () => {\n return deleteMultipleEntries(model, ids);\n }\n );\n },\n async publishEntry<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string) {\n return context.benchmark.measure(\"headlessCms.crud.entries.publishEntry\", async () => {\n return publishEntry<T>(model, id);\n });\n },\n async unpublishEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.unpublishEntry\",\n async () => {\n return unpublishEntry<T>(model, id);\n }\n );\n },\n async getUniqueFieldValues(model, params) {\n return context.benchmark.measure(\n \"headlessCms.crud.entries.getUniqueFieldValues\",\n async () => {\n return getUniqueFieldValues(model, params);\n }\n );\n }\n };\n};\n"],"names":["createContentEntryCrud","params","context","createEntry","model","rawInput","options","useCase","CreateEntryUseCase","result","error","WebinyError","createEntryRevisionFrom","sourceId","CreateEntryRevisionFromUseCase","updateEntry","id","UpdateEntryUseCase","updateRevisionDescription","revisionDescription","UpdateRevisionDescriptionUseCase","validateEntry","input","ValidateEntryUseCase","moveEntry","folderId","MoveEntryUseCase","republishEntry","RepublishEntryUseCase","deleteEntryRevision","revisionId","DeleteEntryRevisionUseCase","deleteMultipleEntries","DeleteMultipleEntriesUseCase","publishEntry","PublishEntryUseCase","unpublishEntry","UnpublishEntryUseCase","getUniqueFieldValues","GetUniqueFieldValuesUseCase","ids","GetEntriesByIdsUseCase","GetEntryByIdUseCase","GetPublishedEntriesByIdsUseCase","GetLatestEntriesByIdsUseCase","entryId","GetRevisionsByEntryIdUseCase","GetEntryUseCase","ListEntriesUseCase","entries","meta","ListLatestEntriesUseCase","ListDeletedEntriesUseCase","ListPublishedEntriesUseCase","deleteEntryUseCase","DeleteEntryUseCase","RestoreEntryFromBinUseCase"],"mappings":"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"}
1
+ {"version":3,"file":"crud/contentEntry.crud.js","sources":["../../src/crud/contentEntry.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { BenchmarkAbstraction } from \"@webiny/api\";\nimport type {\n CmsContext,\n CmsEntry,\n CmsEntryContext,\n CmsEntryGetParams,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsEntryValues,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput,\n CreateFromCmsEntryInput,\n CreateRevisionCmsEntryOptionsInput,\n UpdateCmsEntryInput,\n UpdateCmsEntryOptionsInput\n} from \"~/types/index.js\";\nimport { CreateEntryUseCase } from \"~/features/contentEntry/CreateEntry/index.js\";\nimport { CreateEntryRevisionFromUseCase } from \"~/features/contentEntry/CreateEntryRevisionFrom/abstractions.js\";\nimport { UpdateEntryUseCase } from \"~/features/contentEntry/UpdateEntry/index.js\";\nimport { ValidateEntryUseCase } from \"~/features/contentEntry/ValidateEntry/abstractions.js\";\nimport { MoveEntryUseCase } from \"~/features/contentEntry/MoveEntry/abstractions.js\";\nimport { RepublishEntryUseCase } from \"~/features/contentEntry/RepublishEntry/abstractions.js\";\nimport { PublishEntryUseCase } from \"~/features/contentEntry/PublishEntry/abstractions.js\";\nimport {\n ListDeletedEntriesUseCase,\n ListLatestEntriesUseCase,\n ListPublishedEntriesUseCase\n} from \"~/features/contentEntry/ListEntries/index.js\";\nimport { ListEntriesUseCase } from \"~/features/contentEntry/ListEntries/abstractions.js\";\nimport { GetEntriesByIdsUseCase } from \"~/features/contentEntry/GetEntriesByIds/index.js\";\nimport { GetEntryByIdUseCase } from \"~/features/contentEntry/GetEntryById/index.js\";\nimport { GetPublishedEntriesByIdsUseCase } from \"~/features/contentEntry/GetPublishedEntriesByIds/index.js\";\nimport { GetLatestEntriesByIdsUseCase } from \"~/features/contentEntry/GetLatestEntriesByIds/index.js\";\nimport { GetRevisionsByEntryIdUseCase } from \"~/features/contentEntry/GetRevisionsByEntryId/index.js\";\nimport { GetEntryUseCase } from \"~/features/contentEntry/GetEntry/index.js\";\nimport { DeleteEntryRevisionUseCase } from \"~/features/contentEntry/DeleteEntryRevision/index.js\";\nimport { DeleteEntryUseCase } from \"~/features/contentEntry/DeleteEntry/index.js\";\nimport { DeleteMultipleEntriesUseCase } from \"~/features/contentEntry/DeleteMultipleEntries/abstractions.js\";\nimport { RestoreEntryFromBinUseCase } from \"~/features/contentEntry/RestoreEntryFromBin/abstractions.js\";\nimport { UnpublishEntryUseCase } from \"~/features/contentEntry/UnpublishEntry/index.js\";\nimport { GetUniqueFieldValuesUseCase } from \"~/features/contentEntry/GetUniqueFieldValues/index.js\";\nimport { UpdateRevisionDescriptionUseCase } from \"~/features/contentEntry/UpdateRevisionDescription/index.js\";\n\ninterface CreateContentEntryCrudParams {\n context: CmsContext;\n}\n\nexport const createContentEntryCrud = (params: CreateContentEntryCrudParams): CmsEntryContext => {\n const { context } = params;\n const benchmark = context.container.resolve(BenchmarkAbstraction);\n\n const createEntry: CmsEntryContext[\"createEntry\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n rawInput: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> => {\n // Delegate to new CreateEntry use case\n const useCase = context.container.resolve(CreateEntryUseCase);\n const result = await useCase.execute<T>(model, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not create content entry.\",\n error.code || \"CREATE_ENTRY_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const createEntryRevisionFrom: CmsEntryContext[\"createEntryRevisionFrom\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n sourceId: string,\n rawInput: CreateFromCmsEntryInput<T>,\n options?: CreateRevisionCmsEntryOptionsInput\n ) => {\n // Delegate to new CreateEntryRevisionFrom use case\n const useCase = context.container.resolve(CreateEntryRevisionFromUseCase);\n const result = await useCase.execute<T>(model, sourceId, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not create entry from existing one.\",\n error.code || \"CREATE_FROM_REVISION_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const updateEntry: CmsEntryContext[\"updateEntry\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n id: string,\n rawInput: UpdateCmsEntryInput<T>,\n options?: UpdateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> => {\n // Delegate to new UpdateEntry use case\n const useCase = context.container.resolve(UpdateEntryUseCase);\n const result = await useCase.execute<T>(model, id, rawInput, options);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not update existing entry.\",\n error.code || \"UPDATE_ERROR\"\n );\n }\n\n return result.value;\n };\n\n const updateRevisionDescription: CmsEntryContext[\"updateRevisionDescription\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n model: CmsModel,\n id: string,\n revisionDescription: string | undefined\n ) => {\n const useCase = context.container.resolve(UpdateRevisionDescriptionUseCase);\n const result = await useCase.execute<T>(model, id, revisionDescription);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not update revision description of the revision.\",\n error.code || \"UPDATE_REVISION_DESCRIPTION_ERROR\"\n );\n }\n\n return result.value;\n };\n\n const validateEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>\n ) => {\n // Delegate to new ValidateEntry use case\n const useCase = context.container.resolve(ValidateEntryUseCase);\n const result = await useCase.execute<T>(model, id || null, input);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not validate entry.\",\n error.code || \"VALIDATION_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const moveEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n folderId: string\n ) => {\n // Delegate to new MoveEntry use case\n const useCase = context.container.resolve(MoveEntryUseCase);\n const result = await useCase.execute<T>(model, id, folderId);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || `Could not move entry \"${id}\" of model \"${model.modelId}\".`,\n error.code || \"MOVE_ENTRY_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const republishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new RepublishEntry use case\n const useCase = context.container.resolve(RepublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not republish entry.\",\n error.code || \"REPUBLISH_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const deleteEntryRevision: CmsEntryContext[\"deleteEntryRevision\"] = async (\n model,\n revisionId\n ) => {\n const useCase = context.container.resolve(DeleteEntryRevisionUseCase);\n const result = await useCase.execute(model, revisionId);\n\n if (result.isFail()) {\n throw new WebinyError(result.error.message, result.error.code, result.error.data);\n }\n };\n const deleteMultipleEntries: CmsEntryContext[\"deleteMultipleEntries\"] = async (\n model,\n params\n ) => {\n // Delegate to new DeleteMultipleEntries use case\n const useCase = context.container.resolve(DeleteMultipleEntriesUseCase);\n const result = await useCase.execute(model, params);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not delete multiple entries.\",\n error.code || \"DELETE_ENTRIES_MULTIPLE_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const publishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new PublishEntry use case\n const useCase = context.container.resolve(PublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n // Convert Result error to WebinyError for backward compatibility\n throw new WebinyError(\n result.error.message || \"Could not publish entry.\",\n result.error.code || \"PUBLISH_ERROR\",\n result.error.data\n );\n }\n\n return result.value;\n };\n const unpublishEntry = async <T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) => {\n // Delegate to new UnpublishEntry use case\n const useCase = context.container.resolve(UnpublishEntryUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not unpublish entry.\",\n error.code || \"UNPUBLISH_ERROR\",\n error.data\n );\n }\n\n return result.value;\n };\n\n const getUniqueFieldValues: CmsEntryContext[\"getUniqueFieldValues\"] = async (model, params) => {\n const useCase = context.container.resolve(GetUniqueFieldValuesUseCase);\n const result = await useCase.execute(model, params);\n\n if (result.isFail()) {\n throw new WebinyError(result.error.message, result.error.code, result.error.data);\n }\n\n return result.value;\n };\n\n return {\n /**\n * Get entries by exact revision IDs from the database.\n */\n async getEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.getEntriesByIds\", async () => {\n const useCase = context.container.resolve(GetEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get entries by IDs.\",\n error.code || \"GET_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n /**\n * Get a single entry by revision ID from the database.\n */\n async getEntryById<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string) {\n return benchmark.measure(\"headlessCms.crud.entries.getEntryById\", async () => {\n const useCase = context.container.resolve(GetEntryByIdUseCase);\n const result = await useCase.execute<T>(model, id);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || `Entry by ID \"${id}\" not found.`,\n error.code || \"GET_ENTRY_BY_ID_ERROR\",\n error.data\n );\n }\n\n return result.value;\n });\n },\n /**\n * Get published revisions by entry IDs.\n */\n async getPublishedEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return benchmark.measure(\n \"headlessCms.crud.entries.getPublishedEntriesByIds\",\n async () => {\n const useCase = context.container.resolve(GetPublishedEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get published entries by IDs.\",\n error.code || \"GET_PUBLISHED_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n }\n );\n },\n /**\n * Get the latest revisions by entry IDs.\n */\n async getLatestEntriesByIds<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n ids: string[]\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.getLatestEntriesByIds\", async () => {\n const useCase = context.container.resolve(GetLatestEntriesByIdsUseCase);\n const result = await useCase.execute<T>(model, ids);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get latest entries by IDs.\",\n error.code || \"GET_LATEST_ENTRIES_BY_IDS_ERROR\",\n {\n error,\n ids,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n async getEntryRevisions<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n entryId: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.getEntryRevisions\", async () => {\n const useCase = context.container.resolve(GetRevisionsByEntryIdUseCase);\n const result = await useCase.execute<T>(model, entryId);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not get entry revisions.\",\n error.code || \"GET_ENTRY_REVISIONS_ERROR\",\n {\n error,\n entryId,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n /**\n * @internal\n */\n async getEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryGetParams\n ): Promise<CmsEntry<T>> {\n return benchmark.measure(\"headlessCms.crud.entries.getEntry\", async () => {\n const useCase = context.container.resolve(GetEntryUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Entry not found!\",\n error.code || \"GET_ENTRY_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n return result.value;\n });\n },\n /**\n * @description Should not be used directly. Internal use only!\n *\n * @internal\n */\n async listEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list entries.\",\n error.code || \"LIST_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listLatestEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListLatestEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list latest entries.\",\n error.code || \"LIST_LATEST_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listDeletedEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListDeletedEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list deleted entries.\",\n error.code || \"LIST_DELETED_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n\n return [entries, meta];\n },\n async listPublishedEntries<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ): Promise<[CmsEntry<T>[], CmsEntryMeta]> {\n const useCase = context.container.resolve(ListPublishedEntriesUseCase);\n const result = await useCase.execute<T>(model, params);\n\n if (result.isFail()) {\n const error = result.error;\n throw new WebinyError(\n error.message || \"Could not list published entries.\",\n error.code || \"LIST_PUBLISHED_ENTRIES_ERROR\",\n {\n error,\n params,\n model\n }\n );\n }\n\n const { entries, meta } = result.value;\n return [entries, meta];\n },\n async createEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n input: CreateCmsEntryInput<T>,\n options?: CreateCmsEntryOptionsInput\n ): Promise<CmsEntry<T>> {\n return benchmark.measure(\"headlessCms.crud.entries.createEntry\", async () => {\n return createEntry(model, input, options);\n });\n },\n async createEntryRevisionFrom<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n sourceId: string,\n input: CreateFromCmsEntryInput<T>,\n options?: CreateRevisionCmsEntryOptionsInput\n ) {\n return benchmark.measure(\n \"headlessCms.crud.entries.createEntryRevisionFrom\",\n async () => {\n return createEntryRevisionFrom<T>(model, sourceId, input, options);\n }\n );\n },\n async updateEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>,\n options?: UpdateCmsEntryOptionsInput\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.updateEntry\", async () => {\n return updateEntry<T>(model, id, input, options);\n });\n },\n\n async updateRevisionDescription(model, id, revisionDescription) {\n return benchmark.measure(\n \"headlessCms.crud.entries.updateRevisionDescription\",\n async () => {\n return updateRevisionDescription(model, id, revisionDescription);\n }\n );\n },\n async validateEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n input: UpdateCmsEntryInput<T>\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.validateEntry\", async () => {\n return validateEntry<T>(model, id, input);\n });\n },\n async moveEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n folderId: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.moveEntry\", async () => {\n return moveEntry<T>(model, id, folderId);\n });\n },\n /**\n * Method used internally. Not documented and should not be used in users systems.\n * @internal\n */\n async republishEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.republishEntry\", async () => {\n return republishEntry<T>(model, id);\n });\n },\n async deleteEntryRevision(model, id) {\n return benchmark.measure(\"headlessCms.crud.entries.deleteEntryRevision\", async () => {\n return deleteEntryRevision(model, id);\n });\n },\n async deleteEntry(model, entryId, options) {\n const deleteEntryUseCase = context.container.resolve(DeleteEntryUseCase);\n return benchmark.measure(\"headlessCms.crud.entries.deleteEntry\", async () => {\n const result = await deleteEntryUseCase.execute(model, entryId, options ?? {});\n\n if (result.isFail()) {\n throw new WebinyError(\n result.error.message,\n result.error.code,\n result.error.data\n );\n }\n });\n },\n async restoreEntryFromBin<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n entryId: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.restoreEntryFromBin\", async () => {\n const useCase = context.container.resolve(RestoreEntryFromBinUseCase);\n const result = await useCase.execute<T>(model, entryId);\n if (result.isFail()) {\n throw new WebinyError(\n result.error.message,\n result.error.code,\n result.error.data\n );\n }\n return result.value;\n });\n },\n async deleteMultipleEntries(model, ids) {\n return benchmark.measure(\"headlessCms.crud.entries.deleteMultipleEntries\", async () => {\n return deleteMultipleEntries(model, ids);\n });\n },\n async publishEntry<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string) {\n return benchmark.measure(\"headlessCms.crud.entries.publishEntry\", async () => {\n return publishEntry<T>(model, id);\n });\n },\n async unpublishEntry<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ) {\n return benchmark.measure(\"headlessCms.crud.entries.unpublishEntry\", async () => {\n return unpublishEntry<T>(model, id);\n });\n },\n async getUniqueFieldValues(model, params) {\n return benchmark.measure(\"headlessCms.crud.entries.getUniqueFieldValues\", async () => {\n return getUniqueFieldValues(model, params);\n });\n }\n };\n};\n"],"names":["createContentEntryCrud","params","context","benchmark","BenchmarkAbstraction","createEntry","model","rawInput","options","useCase","CreateEntryUseCase","result","error","WebinyError","createEntryRevisionFrom","sourceId","CreateEntryRevisionFromUseCase","updateEntry","id","UpdateEntryUseCase","updateRevisionDescription","revisionDescription","UpdateRevisionDescriptionUseCase","validateEntry","input","ValidateEntryUseCase","moveEntry","folderId","MoveEntryUseCase","republishEntry","RepublishEntryUseCase","deleteEntryRevision","revisionId","DeleteEntryRevisionUseCase","deleteMultipleEntries","DeleteMultipleEntriesUseCase","publishEntry","PublishEntryUseCase","unpublishEntry","UnpublishEntryUseCase","getUniqueFieldValues","GetUniqueFieldValuesUseCase","ids","GetEntriesByIdsUseCase","GetEntryByIdUseCase","GetPublishedEntriesByIdsUseCase","GetLatestEntriesByIdsUseCase","entryId","GetRevisionsByEntryIdUseCase","GetEntryUseCase","ListEntriesUseCase","entries","meta","ListLatestEntriesUseCase","ListDeletedEntriesUseCase","ListPublishedEntriesUseCase","deleteEntryUseCase","DeleteEntryUseCase","RestoreEntryFromBinUseCase"],"mappings":"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"}
@@ -30,13 +30,14 @@ const createDefaultFields = ()=>[
30
30
  {
31
31
  id: generateAlphaNumericLowerCaseId(8),
32
32
  fieldId: "image",
33
- type: "file",
33
+ type: "asset",
34
34
  label: "Image",
35
35
  validation: [],
36
36
  listValidation: [],
37
37
  renderer: {
38
- name: "file-input"
38
+ name: "asset-input"
39
39
  },
40
+ tags: [],
40
41
  settings: {
41
42
  imagesOnly: true
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"crud/contentModel/defaultFields.js","sources":["../../../src/crud/contentModel/defaultFields.ts"],"sourcesContent":["import type { CmsModelCreateInput, CmsModelFieldInput } from \"~/types/index.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\n\nconst createDefaultFields = (): CmsModelFieldInput[] => {\n return [\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"title\",\n type: \"text\",\n label: \"Title\",\n validation: [\n {\n name: \"required\",\n message: \"Title is a required field.\"\n }\n ],\n listValidation: [],\n renderer: {\n name: \"text-input\"\n }\n },\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"description\",\n type: \"long-text\",\n label: \"Description\",\n validation: [],\n listValidation: [],\n renderer: {\n name: \"long-text-text-area\"\n }\n },\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"image\",\n type: \"file\",\n label: \"Image\",\n validation: [],\n listValidation: [],\n renderer: {\n name: \"file-input\"\n },\n settings: {\n imagesOnly: true\n }\n }\n ];\n};\n\n/**\n * We only assign default fields if there are no fields in the model already.\n */\nexport const assignModelDefaultFields = (model: CmsModelCreateInput): void => {\n if (model.fields && model.fields.length !== 0) {\n return;\n }\n\n model.fields = createDefaultFields();\n model.layout = [[model.fields[0].id], [model.fields[1].id, model.fields[2].id]];\n};\n"],"names":["createDefaultFields","generateAlphaNumericLowerCaseId","assignModelDefaultFields","model"],"mappings":";AAGA,MAAMA,sBAAsB,IACjB;QACH;YACI,IAAIC,gCAAgC;YACpC,SAAS;YACT,MAAM;YACN,OAAO;YACP,YAAY;gBACR;oBACI,MAAM;oBACN,SAAS;gBACb;aACH;YACD,gBAAgB,EAAE;YAClB,UAAU;gBACN,MAAM;YACV;QACJ;QACA;YACI,IAAIA,gCAAgC;YACpC,SAAS;YACT,MAAM;YACN,OAAO;YACP,YAAY,EAAE;YACd,gBAAgB,EAAE;YAClB,UAAU;gBACN,MAAM;YACV;QACJ;QACA;YACI,IAAIA,gCAAgC;YACpC,SAAS;YACT,MAAM;YACN,OAAO;YACP,YAAY,EAAE;YACd,gBAAgB,EAAE;YAClB,UAAU;gBACN,MAAM;YACV;YACA,UAAU;gBACN,YAAY;YAChB;QACJ;KACH;AAME,MAAMC,2BAA2B,CAACC;IACrC,IAAIA,MAAM,MAAM,IAAIA,AAAwB,MAAxBA,MAAM,MAAM,CAAC,MAAM,EACnC;IAGJA,MAAM,MAAM,GAAGH;IACfG,MAAM,MAAM,GAAG;QAAC;YAACA,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE;SAAC;QAAE;YAACA,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE;YAAEA,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE;SAAC;KAAC;AACnF"}
1
+ {"version":3,"file":"crud/contentModel/defaultFields.js","sources":["../../../src/crud/contentModel/defaultFields.ts"],"sourcesContent":["import type { CmsModelCreateInput, CmsModelFieldInput } from \"~/types/index.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\n\nconst createDefaultFields = (): CmsModelFieldInput[] => {\n return [\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"title\",\n type: \"text\",\n label: \"Title\",\n validation: [\n {\n name: \"required\",\n message: \"Title is a required field.\"\n }\n ],\n listValidation: [],\n renderer: {\n name: \"text-input\"\n }\n },\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"description\",\n type: \"long-text\",\n label: \"Description\",\n validation: [],\n listValidation: [],\n renderer: {\n name: \"long-text-text-area\"\n }\n },\n {\n id: generateAlphaNumericLowerCaseId(8),\n fieldId: \"image\",\n type: \"asset\",\n label: \"Image\",\n validation: [],\n listValidation: [],\n renderer: {\n name: \"asset-input\"\n },\n tags: [],\n settings: {\n imagesOnly: true\n }\n }\n ];\n};\n\n/**\n * We only assign default fields if there are no fields in the model already.\n */\nexport const assignModelDefaultFields = (model: CmsModelCreateInput): void => {\n if (model.fields && model.fields.length !== 0) {\n return;\n }\n\n model.fields = createDefaultFields();\n model.layout = [[model.fields[0].id], [model.fields[1].id, model.fields[2].id]];\n};\n"],"names":["createDefaultFields","generateAlphaNumericLowerCaseId","assignModelDefaultFields","model"],"mappings":";AAGA,MAAMA,sBAAsB,IACjB;QACH;YACI,IAAIC,gCAAgC;YACpC,SAAS;YACT,MAAM;YACN,OAAO;YACP,YAAY;gBACR;oBACI,MAAM;oBACN,SAAS;gBACb;aACH;YACD,gBAAgB,EAAE;YAClB,UAAU;gBACN,MAAM;YACV;QACJ;QACA;YACI,IAAIA,gCAAgC;YACpC,SAAS;YACT,MAAM;YACN,OAAO;YACP,YAAY,EAAE;YACd,gBAAgB,EAAE;YAClB,UAAU;gBACN,MAAM;YACV;QACJ;QACA;YACI,IAAIA,gCAAgC;YACpC,SAAS;YACT,MAAM;YACN,OAAO;YACP,YAAY,EAAE;YACd,gBAAgB,EAAE;YAClB,UAAU;gBACN,MAAM;YACV;YACA,MAAM,EAAE;YACR,UAAU;gBACN,YAAY;YAChB;QACJ;KACH;AAME,MAAMC,2BAA2B,CAACC;IACrC,IAAIA,MAAM,MAAM,IAAIA,AAAwB,MAAxBA,MAAM,MAAM,CAAC,MAAM,EACnC;IAGJA,MAAM,MAAM,GAAGH;IACfG,MAAM,MAAM,GAAG;QAAC;YAACA,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE;SAAC;QAAE;YAACA,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE;YAAEA,MAAM,MAAM,CAAC,EAAE,CAAC,EAAE;SAAC;KAAC;AACnF"}
@@ -1,4 +1,5 @@
1
1
  import error from "@webiny/error";
2
+ import { BenchmarkAbstraction } from "@webiny/api";
2
3
  import { CreateModelUseCase } from "../features/contentModel/CreateModel/index.js";
3
4
  import { CreateModelFromUseCase } from "../features/contentModel/CreateModelFrom/index.js";
4
5
  import { UpdateModelUseCase } from "../features/contentModel/UpdateModel/index.js";
@@ -10,6 +11,7 @@ import { CmsModelFieldToAstConverterFromPlugins, CmsModelToAstConverter } from "
10
11
  import { CmsModelFieldToGraphQLRegistry } from "../features/graphql/index.js";
11
12
  const createModelsCrud = (params)=>{
12
13
  const { context } = params;
14
+ const benchmark = context.container.resolve(BenchmarkAbstraction);
13
15
  const listFilteredModelsCache = createMemoryCache();
14
16
  const listDatabaseModelsCache = createMemoryCache();
15
17
  const clearModelsCache = ()=>{
@@ -18,13 +20,13 @@ const createModelsCrud = (params)=>{
18
20
  };
19
21
  const fieldTypePlugins = context.container.resolve(CmsModelFieldToGraphQLRegistry).getAll();
20
22
  const getModelToAstConverter = ()=>new CmsModelToAstConverter(new CmsModelFieldToAstConverterFromPlugins(fieldTypePlugins));
21
- const listModels = async (input)=>context.benchmark.measure("headlessCms.crud.models.listModels", async ()=>{
23
+ const listModels = async (input)=>benchmark.measure("headlessCms.crud.models.listModels", async ()=>{
22
24
  const useCase = context.container.resolve(ListModelsUseCase);
23
25
  const result = await useCase.execute(input);
24
26
  if (result.isFail()) throw new error(result.error.message, result.error.code, result.error.data);
25
27
  return result.value;
26
28
  });
27
- const getModel = async (modelId)=>context.benchmark.measure("headlessCms.crud.models.getModel", async ()=>{
29
+ const getModel = async (modelId)=>benchmark.measure("headlessCms.crud.models.getModel", async ()=>{
28
30
  const useCase = context.container.resolve(GetModelUseCase);
29
31
  const result = await useCase.execute(modelId);
30
32
  if (result.isFail()) throw new error(result.error.message, result.error.code, result.error.data);
@@ -59,16 +61,16 @@ const createModelsCrud = (params)=>{
59
61
  getModelToAstConverter,
60
62
  listModels,
61
63
  async createModel (input) {
62
- return context.benchmark.measure("headlessCms.crud.models.createModel", async ()=>createModel(input));
64
+ return benchmark.measure("headlessCms.crud.models.createModel", async ()=>createModel(input));
63
65
  },
64
66
  async createModelFrom (modelId, userInput) {
65
- return context.benchmark.measure("headlessCms.crud.models.createModelFrom", async ()=>createModelFrom(modelId, userInput));
67
+ return benchmark.measure("headlessCms.crud.models.createModelFrom", async ()=>createModelFrom(modelId, userInput));
66
68
  },
67
69
  async updateModel (modelId, input) {
68
- return context.benchmark.measure("headlessCms.crud.models.updateModel", async ()=>updateModel(modelId, input));
70
+ return benchmark.measure("headlessCms.crud.models.updateModel", async ()=>updateModel(modelId, input));
69
71
  },
70
72
  async deleteModel (modelId) {
71
- return context.benchmark.measure("headlessCms.crud.models.deleteModel", async ()=>deleteModel(modelId));
73
+ return benchmark.measure("headlessCms.crud.models.deleteModel", async ()=>deleteModel(modelId));
72
74
  }
73
75
  };
74
76
  };