@webiny/api-headless-cms 6.3.0 → 6.4.0-beta.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 (1249) hide show
  1. package/abstractions/entryHooks/OnEntryBeforeCreate.js +2 -1
  2. package/abstractions/entryHooks/OnEntryBeforeCreate.js.map +1 -1
  3. package/abstractions/entryHooks/index.js +0 -2
  4. package/abstractions/index.js +0 -2
  5. package/constants.js +56 -56
  6. package/constants.js.map +1 -1
  7. package/context.js +97 -127
  8. package/context.js.map +1 -1
  9. package/crud/AccessControl/AccessControl.js +315 -470
  10. package/crud/AccessControl/AccessControl.js.map +1 -1
  11. package/crud/contentEntry/entryDataValidation.js +191 -309
  12. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  13. package/crud/contentEntry/referenceFieldsMapping.js +29 -59
  14. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  15. package/crud/contentEntry/references/buildPaths.js +105 -130
  16. package/crud/contentEntry/references/buildPaths.js.map +1 -1
  17. package/crud/contentEntry/references/validateEntries.js +36 -74
  18. package/crud/contentEntry/references/validateEntries.js.map +1 -1
  19. package/crud/contentEntry/searchableFields.js +42 -57
  20. package/crud/contentEntry/searchableFields.js.map +1 -1
  21. package/crud/contentEntry.crud.js +287 -348
  22. package/crud/contentEntry.crud.js.map +1 -1
  23. package/crud/contentModel/compatibility/modelApiName.js +7 -10
  24. package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
  25. package/crud/contentModel/createFieldStorageId.js +6 -8
  26. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  27. package/crud/contentModel/defaultFields.js +56 -49
  28. package/crud/contentModel/defaultFields.js.map +1 -1
  29. package/crud/contentModel/fields/descriptionField.js +8 -18
  30. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  31. package/crud/contentModel/fields/getApplicableFieldById.js +4 -5
  32. package/crud/contentModel/fields/getApplicableFieldById.js.map +1 -1
  33. package/crud/contentModel/fields/imageField.js +8 -13
  34. package/crud/contentModel/fields/imageField.js.map +1 -1
  35. package/crud/contentModel/fields/titleField.js +8 -18
  36. package/crud/contentModel/fields/titleField.js.map +1 -1
  37. package/crud/contentModel/validate/endingAllowed.js +10 -14
  38. package/crud/contentModel/validate/endingAllowed.js.map +1 -1
  39. package/crud/contentModel/validate/isModelEndingAllowed.js +15 -14
  40. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  41. package/crud/contentModel/validate/modelId.js +19 -24
  42. package/crud/contentModel/validate/modelId.js.map +1 -1
  43. package/crud/contentModel/validate/pluralApiName.js +8 -13
  44. package/crud/contentModel/validate/pluralApiName.js.map +1 -1
  45. package/crud/contentModel/validate/singularApiName.js +8 -13
  46. package/crud/contentModel/validate/singularApiName.js.map +1 -1
  47. package/crud/contentModel/validateStorageId.js +10 -8
  48. package/crud/contentModel/validateStorageId.js.map +1 -1
  49. package/crud/contentModel/validation.js +190 -209
  50. package/crud/contentModel/validation.js.map +1 -1
  51. package/crud/contentModel.crud.js +65 -109
  52. package/crud/contentModel.crud.js.map +1 -1
  53. package/crud/contentModelGroup.crud.js +65 -90
  54. package/crud/contentModelGroup.crud.js.map +1 -1
  55. package/domain/contentEntry/EntryId.js +37 -45
  56. package/domain/contentEntry/EntryId.js.map +1 -1
  57. package/domain/contentEntry/errors.js +38 -42
  58. package/domain/contentEntry/errors.js.map +1 -1
  59. package/domain/contentModel/createFieldStorageId.js +6 -8
  60. package/domain/contentModel/createFieldStorageId.js.map +1 -1
  61. package/domain/contentModel/ensureTypeTag.js +5 -11
  62. package/domain/contentModel/ensureTypeTag.js.map +1 -1
  63. package/domain/contentModel/errors.js +82 -91
  64. package/domain/contentModel/errors.js.map +1 -1
  65. package/domain/contentModel/schemas.js +130 -161
  66. package/domain/contentModel/schemas.js.map +1 -1
  67. package/domain/contentModel/validation/endingAllowed.js +10 -14
  68. package/domain/contentModel/validation/endingAllowed.js.map +1 -1
  69. package/domain/contentModel/validation/fields/descriptionField.js +8 -18
  70. package/domain/contentModel/validation/fields/descriptionField.js.map +1 -1
  71. package/domain/contentModel/validation/fields/getApplicableFieldById.js +4 -5
  72. package/domain/contentModel/validation/fields/getApplicableFieldById.js.map +1 -1
  73. package/domain/contentModel/validation/fields/imageField.js +8 -13
  74. package/domain/contentModel/validation/fields/imageField.js.map +1 -1
  75. package/domain/contentModel/validation/fields/titleField.js +8 -18
  76. package/domain/contentModel/validation/fields/titleField.js.map +1 -1
  77. package/domain/contentModel/validation/isModelEndingAllowed.js +15 -14
  78. package/domain/contentModel/validation/isModelEndingAllowed.js.map +1 -1
  79. package/domain/contentModel/validation/modelFields.js +140 -242
  80. package/domain/contentModel/validation/modelFields.js.map +1 -1
  81. package/domain/contentModel/validation/modelId.js +19 -24
  82. package/domain/contentModel/validation/modelId.js.map +1 -1
  83. package/domain/contentModel/validation/pluralApiName.js +8 -13
  84. package/domain/contentModel/validation/pluralApiName.js.map +1 -1
  85. package/domain/contentModel/validation/singularApiName.js +8 -13
  86. package/domain/contentModel/validation/singularApiName.js.map +1 -1
  87. package/domain/contentModelGroup/errors.js +60 -67
  88. package/domain/contentModelGroup/errors.js.map +1 -1
  89. package/domain/contentModelGroup/validation.js +22 -31
  90. package/domain/contentModelGroup/validation.js.map +1 -1
  91. package/export/crud/exporting.js +18 -38
  92. package/export/crud/exporting.js.map +1 -1
  93. package/export/crud/importing.js +48 -67
  94. package/export/crud/importing.js.map +1 -1
  95. package/export/crud/imports/importData.js +28 -39
  96. package/export/crud/imports/importData.js.map +1 -1
  97. package/export/crud/imports/importGroups.js +75 -90
  98. package/export/crud/imports/importGroups.js.map +1 -1
  99. package/export/crud/imports/importModels.js +99 -120
  100. package/export/crud/imports/importModels.js.map +1 -1
  101. package/export/crud/imports/remapIcon.js +7 -10
  102. package/export/crud/imports/remapIcon.js.map +1 -1
  103. package/export/crud/imports/validateGroups.js +75 -99
  104. package/export/crud/imports/validateGroups.js.map +1 -1
  105. package/export/crud/imports/validateInput.js +42 -60
  106. package/export/crud/imports/validateInput.js.map +1 -1
  107. package/export/crud/imports/validateModels.js +117 -175
  108. package/export/crud/imports/validateModels.js.map +1 -1
  109. package/export/crud/index.js +4 -5
  110. package/export/crud/index.js.map +1 -1
  111. package/export/crud/sanitize.js +23 -26
  112. package/export/crud/sanitize.js.map +1 -1
  113. package/export/graphql/index.js +43 -46
  114. package/export/graphql/index.js.map +1 -1
  115. package/export/index.js +0 -2
  116. package/export/types.js +7 -13
  117. package/export/types.js.map +1 -1
  118. package/exports/api/cms/entry.d.ts +8 -0
  119. package/exports/api/cms/entry.js +21 -69
  120. package/exports/api/cms/graphql.js +1 -3
  121. package/exports/api/cms/group.js +3 -14
  122. package/exports/api/cms/model.js +5 -21
  123. package/exports/api/cms/storage.js +0 -2
  124. package/exports/api/cms/validation.js +0 -2
  125. package/extensions/entryHooks/OnEntryBeforeCreate.js +16 -19
  126. package/extensions/entryHooks/OnEntryBeforeCreate.js.map +1 -1
  127. package/extensions/entryHooks/index.js +0 -2
  128. package/extensions/index.js +4 -2
  129. package/extensions/index.js.map +1 -1
  130. package/features/contentEntry/ContentEntriesFeature.js +36 -36
  131. package/features/contentEntry/ContentEntriesFeature.js.map +1 -1
  132. package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverser.js +61 -81
  133. package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverser.js.map +1 -1
  134. package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverserProvider.js +18 -16
  135. package/features/contentEntry/ContentEntryTraverser/ContentEntryTraverserProvider.js.map +1 -1
  136. package/features/contentEntry/ContentEntryTraverser/abstractions.js +2 -4
  137. package/features/contentEntry/ContentEntryTraverser/abstractions.js.map +1 -1
  138. package/features/contentEntry/ContentEntryTraverser/feature.js +6 -5
  139. package/features/contentEntry/ContentEntryTraverser/feature.js.map +1 -1
  140. package/features/contentEntry/ContentEntryTraverser/index.js +0 -2
  141. package/features/contentEntry/CreateEntry/CreateEntryRepository.js +25 -30
  142. package/features/contentEntry/CreateEntry/CreateEntryRepository.js.map +1 -1
  143. package/features/contentEntry/CreateEntry/CreateEntryUseCase.d.ts +4 -16
  144. package/features/contentEntry/CreateEntry/CreateEntryUseCase.js +50 -88
  145. package/features/contentEntry/CreateEntry/CreateEntryUseCase.js.map +1 -1
  146. package/features/contentEntry/CreateEntry/abstractions.js +3 -14
  147. package/features/contentEntry/CreateEntry/abstractions.js.map +1 -1
  148. package/features/contentEntry/CreateEntry/events.js +17 -27
  149. package/features/contentEntry/CreateEntry/events.js.map +1 -1
  150. package/features/contentEntry/CreateEntry/feature.js +7 -18
  151. package/features/contentEntry/CreateEntry/feature.js.map +1 -1
  152. package/features/contentEntry/CreateEntry/index.js +1 -3
  153. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js +29 -41
  154. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js.map +1 -1
  155. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.d.ts +4 -20
  156. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js +81 -129
  157. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js.map +1 -1
  158. package/features/contentEntry/CreateEntryRevisionFrom/abstractions.js +3 -25
  159. package/features/contentEntry/CreateEntryRevisionFrom/abstractions.js.map +1 -1
  160. package/features/contentEntry/CreateEntryRevisionFrom/events.js +25 -31
  161. package/features/contentEntry/CreateEntryRevisionFrom/events.js.map +1 -1
  162. package/features/contentEntry/CreateEntryRevisionFrom/feature.js +7 -9
  163. package/features/contentEntry/CreateEntryRevisionFrom/feature.js.map +1 -1
  164. package/features/contentEntry/CreateEntryRevisionFrom/index.js +0 -2
  165. package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js +21 -23
  166. package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js.map +1 -1
  167. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js +70 -96
  168. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js.map +1 -1
  169. package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js +26 -30
  170. package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js.map +1 -1
  171. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js +86 -115
  172. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js.map +1 -1
  173. package/features/contentEntry/DeleteEntry/abstractions.js +5 -40
  174. package/features/contentEntry/DeleteEntry/abstractions.js.map +1 -1
  175. package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js +30 -41
  176. package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js.map +1 -1
  177. package/features/contentEntry/DeleteEntry/events.js +25 -31
  178. package/features/contentEntry/DeleteEntry/events.js.map +1 -1
  179. package/features/contentEntry/DeleteEntry/feature.js +10 -14
  180. package/features/contentEntry/DeleteEntry/feature.js.map +1 -1
  181. package/features/contentEntry/DeleteEntry/index.js +2 -4
  182. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js +37 -43
  183. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js.map +1 -1
  184. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js +85 -126
  185. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js.map +1 -1
  186. package/features/contentEntry/DeleteEntryRevision/abstractions.js +3 -26
  187. package/features/contentEntry/DeleteEntryRevision/abstractions.js.map +1 -1
  188. package/features/contentEntry/DeleteEntryRevision/events.js +25 -31
  189. package/features/contentEntry/DeleteEntryRevision/events.js.map +1 -1
  190. package/features/contentEntry/DeleteEntryRevision/feature.js +7 -9
  191. package/features/contentEntry/DeleteEntryRevision/feature.js.map +1 -1
  192. package/features/contentEntry/DeleteEntryRevision/index.js +2 -4
  193. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js +21 -27
  194. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js.map +1 -1
  195. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js +82 -122
  196. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js.map +1 -1
  197. package/features/contentEntry/DeleteMultipleEntries/abstractions.js +3 -25
  198. package/features/contentEntry/DeleteMultipleEntries/abstractions.js.map +1 -1
  199. package/features/contentEntry/DeleteMultipleEntries/events.js +25 -31
  200. package/features/contentEntry/DeleteMultipleEntries/events.js.map +1 -1
  201. package/features/contentEntry/DeleteMultipleEntries/feature.js +7 -9
  202. package/features/contentEntry/DeleteMultipleEntries/feature.js.map +1 -1
  203. package/features/contentEntry/DeleteMultipleEntries/index.js +0 -2
  204. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js +30 -35
  205. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js.map +1 -1
  206. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js +21 -34
  207. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js.map +1 -1
  208. package/features/contentEntry/GetEntriesByIds/abstractions.js +3 -14
  209. package/features/contentEntry/GetEntriesByIds/abstractions.js.map +1 -1
  210. package/features/contentEntry/GetEntriesByIds/decorators/GetEntriesByIdsNotDeletedDecorator.js +15 -25
  211. package/features/contentEntry/GetEntriesByIds/decorators/GetEntriesByIdsNotDeletedDecorator.js.map +1 -1
  212. package/features/contentEntry/GetEntriesByIds/feature.js +8 -7
  213. package/features/contentEntry/GetEntriesByIds/feature.js.map +1 -1
  214. package/features/contentEntry/GetEntriesByIds/index.js +1 -3
  215. package/features/contentEntry/GetEntry/GetEntryUseCase.js +22 -31
  216. package/features/contentEntry/GetEntry/GetEntryUseCase.js.map +1 -1
  217. package/features/contentEntry/GetEntry/abstractions.js +2 -8
  218. package/features/contentEntry/GetEntry/abstractions.js.map +1 -1
  219. package/features/contentEntry/GetEntry/feature.js +6 -5
  220. package/features/contentEntry/GetEntry/feature.js.map +1 -1
  221. package/features/contentEntry/GetEntry/index.js +0 -2
  222. package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js +20 -25
  223. package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js.map +1 -1
  224. package/features/contentEntry/GetEntryById/abstractions.js +2 -8
  225. package/features/contentEntry/GetEntryById/abstractions.js.map +1 -1
  226. package/features/contentEntry/GetEntryById/feature.js +6 -5
  227. package/features/contentEntry/GetEntryById/feature.js.map +1 -1
  228. package/features/contentEntry/GetEntryById/index.js +0 -2
  229. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js +24 -30
  230. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js.map +1 -1
  231. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js +21 -34
  232. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js.map +1 -1
  233. package/features/contentEntry/GetLatestEntriesByIds/abstractions.js +3 -14
  234. package/features/contentEntry/GetLatestEntriesByIds/abstractions.js.map +1 -1
  235. package/features/contentEntry/GetLatestEntriesByIds/decorators/GetLatestEntriesByIdsNotDeletedDecorator.js +15 -25
  236. package/features/contentEntry/GetLatestEntriesByIds/decorators/GetLatestEntriesByIdsNotDeletedDecorator.js.map +1 -1
  237. package/features/contentEntry/GetLatestEntriesByIds/feature.js +8 -7
  238. package/features/contentEntry/GetLatestEntriesByIds/feature.js.map +1 -1
  239. package/features/contentEntry/GetLatestEntriesByIds/index.js +1 -3
  240. package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js +21 -35
  241. package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js.map +1 -1
  242. package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js +23 -29
  243. package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js.map +1 -1
  244. package/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js +6 -21
  245. package/features/contentEntry/GetLatestRevisionByEntryId/abstractions.js.map +1 -1
  246. package/features/contentEntry/GetLatestRevisionByEntryId/feature.js +10 -19
  247. package/features/contentEntry/GetLatestRevisionByEntryId/feature.js.map +1 -1
  248. package/features/contentEntry/GetLatestRevisionByEntryId/index.js +1 -3
  249. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js +17 -29
  250. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js.map +1 -1
  251. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js +14 -16
  252. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js.map +1 -1
  253. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js +17 -27
  254. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js.map +1 -1
  255. package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js +21 -35
  256. package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js.map +1 -1
  257. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js +23 -29
  258. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js.map +1 -1
  259. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js +17 -28
  260. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js.map +1 -1
  261. package/features/contentEntry/GetPreviousRevisionByEntryId/abstractions.js +4 -16
  262. package/features/contentEntry/GetPreviousRevisionByEntryId/abstractions.js.map +1 -1
  263. package/features/contentEntry/GetPreviousRevisionByEntryId/feature.js +8 -12
  264. package/features/contentEntry/GetPreviousRevisionByEntryId/feature.js.map +1 -1
  265. package/features/contentEntry/GetPreviousRevisionByEntryId/index.js +1 -3
  266. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js +24 -29
  267. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js.map +1 -1
  268. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js +21 -34
  269. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js.map +1 -1
  270. package/features/contentEntry/GetPublishedEntriesByIds/abstractions.js +3 -14
  271. package/features/contentEntry/GetPublishedEntriesByIds/abstractions.js.map +1 -1
  272. package/features/contentEntry/GetPublishedEntriesByIds/decorators/GetPublishedEntriesByIdsNotDeletedDecorator.js +15 -25
  273. package/features/contentEntry/GetPublishedEntriesByIds/decorators/GetPublishedEntriesByIdsNotDeletedDecorator.js.map +1 -1
  274. package/features/contentEntry/GetPublishedEntriesByIds/feature.js +8 -7
  275. package/features/contentEntry/GetPublishedEntriesByIds/feature.js.map +1 -1
  276. package/features/contentEntry/GetPublishedEntriesByIds/index.js +1 -3
  277. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js +25 -31
  278. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js.map +1 -1
  279. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js +16 -23
  280. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js.map +1 -1
  281. package/features/contentEntry/GetPublishedRevisionByEntryId/abstractions.js +3 -13
  282. package/features/contentEntry/GetPublishedRevisionByEntryId/abstractions.js.map +1 -1
  283. package/features/contentEntry/GetPublishedRevisionByEntryId/feature.js +7 -17
  284. package/features/contentEntry/GetPublishedRevisionByEntryId/feature.js.map +1 -1
  285. package/features/contentEntry/GetPublishedRevisionByEntryId/index.js +1 -3
  286. package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js +26 -33
  287. package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js.map +1 -1
  288. package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js +14 -17
  289. package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js.map +1 -1
  290. package/features/contentEntry/GetRevisionById/abstractions.js +3 -15
  291. package/features/contentEntry/GetRevisionById/abstractions.js.map +1 -1
  292. package/features/contentEntry/GetRevisionById/decorators/GetRevisionByIdNotDeletedDecorator.js +14 -26
  293. package/features/contentEntry/GetRevisionById/decorators/GetRevisionByIdNotDeletedDecorator.js.map +1 -1
  294. package/features/contentEntry/GetRevisionById/feature.js +8 -21
  295. package/features/contentEntry/GetRevisionById/feature.js.map +1 -1
  296. package/features/contentEntry/GetRevisionById/index.js +1 -3
  297. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js +24 -30
  298. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js.map +1 -1
  299. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js +21 -34
  300. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js.map +1 -1
  301. package/features/contentEntry/GetRevisionsByEntryId/abstractions.js +3 -14
  302. package/features/contentEntry/GetRevisionsByEntryId/abstractions.js.map +1 -1
  303. package/features/contentEntry/GetRevisionsByEntryId/feature.js +7 -6
  304. package/features/contentEntry/GetRevisionsByEntryId/feature.js.map +1 -1
  305. package/features/contentEntry/GetRevisionsByEntryId/index.js +1 -3
  306. package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js +25 -43
  307. package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js.map +1 -1
  308. package/features/contentEntry/GetSingletonEntry/abstractions.js +2 -9
  309. package/features/contentEntry/GetSingletonEntry/abstractions.js.map +1 -1
  310. package/features/contentEntry/GetSingletonEntry/feature.js +6 -13
  311. package/features/contentEntry/GetSingletonEntry/feature.js.map +1 -1
  312. package/features/contentEntry/GetSingletonEntry/index.js +0 -2
  313. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js +23 -24
  314. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js.map +1 -1
  315. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js +45 -61
  316. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js.map +1 -1
  317. package/features/contentEntry/GetUniqueFieldValues/abstractions.js +3 -13
  318. package/features/contentEntry/GetUniqueFieldValues/abstractions.js.map +1 -1
  319. package/features/contentEntry/GetUniqueFieldValues/errors.js +19 -20
  320. package/features/contentEntry/GetUniqueFieldValues/errors.js.map +1 -1
  321. package/features/contentEntry/GetUniqueFieldValues/feature.js +7 -6
  322. package/features/contentEntry/GetUniqueFieldValues/feature.js.map +1 -1
  323. package/features/contentEntry/GetUniqueFieldValues/index.js +1 -3
  324. package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js +22 -29
  325. package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js.map +1 -1
  326. package/features/contentEntry/ListEntries/ListEntriesRepository.js +55 -57
  327. package/features/contentEntry/ListEntries/ListEntriesRepository.js.map +1 -1
  328. package/features/contentEntry/ListEntries/ListEntriesUseCase.js +33 -53
  329. package/features/contentEntry/ListEntries/ListEntriesUseCase.js.map +1 -1
  330. package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js +25 -27
  331. package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js.map +1 -1
  332. package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js +22 -29
  333. package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js.map +1 -1
  334. package/features/contentEntry/ListEntries/abstractions.js +6 -35
  335. package/features/contentEntry/ListEntries/abstractions.js.map +1 -1
  336. package/features/contentEntry/ListEntries/feature.js +10 -12
  337. package/features/contentEntry/ListEntries/feature.js.map +1 -1
  338. package/features/contentEntry/ListEntries/index.js +1 -3
  339. package/features/contentEntry/MoveEntry/MoveEntryRepository.js +19 -25
  340. package/features/contentEntry/MoveEntry/MoveEntryRepository.js.map +1 -1
  341. package/features/contentEntry/MoveEntry/MoveEntryUseCase.js +66 -94
  342. package/features/contentEntry/MoveEntry/MoveEntryUseCase.js.map +1 -1
  343. package/features/contentEntry/MoveEntry/abstractions.js +3 -25
  344. package/features/contentEntry/MoveEntry/abstractions.js.map +1 -1
  345. package/features/contentEntry/MoveEntry/events.js +25 -31
  346. package/features/contentEntry/MoveEntry/events.js.map +1 -1
  347. package/features/contentEntry/MoveEntry/feature.js +7 -9
  348. package/features/contentEntry/MoveEntry/feature.js.map +1 -1
  349. package/features/contentEntry/MoveEntry/index.js +1 -3
  350. package/features/contentEntry/PublishEntry/PublishEntryRepository.js +28 -38
  351. package/features/contentEntry/PublishEntry/PublishEntryRepository.js.map +1 -1
  352. package/features/contentEntry/PublishEntry/PublishEntryUseCase.d.ts +3 -17
  353. package/features/contentEntry/PublishEntry/PublishEntryUseCase.js +77 -118
  354. package/features/contentEntry/PublishEntry/PublishEntryUseCase.js.map +1 -1
  355. package/features/contentEntry/PublishEntry/abstractions.js +3 -25
  356. package/features/contentEntry/PublishEntry/abstractions.js.map +1 -1
  357. package/features/contentEntry/PublishEntry/events.js +25 -31
  358. package/features/contentEntry/PublishEntry/events.js.map +1 -1
  359. package/features/contentEntry/PublishEntry/feature.js +7 -9
  360. package/features/contentEntry/PublishEntry/feature.js.map +1 -1
  361. package/features/contentEntry/PublishEntry/index.js +1 -3
  362. package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js +33 -48
  363. package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js.map +1 -1
  364. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.d.ts +3 -15
  365. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js +68 -103
  366. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js.map +1 -1
  367. package/features/contentEntry/RepublishEntry/abstractions.js +3 -26
  368. package/features/contentEntry/RepublishEntry/abstractions.js.map +1 -1
  369. package/features/contentEntry/RepublishEntry/events.js +25 -31
  370. package/features/contentEntry/RepublishEntry/events.js.map +1 -1
  371. package/features/contentEntry/RepublishEntry/feature.js +7 -9
  372. package/features/contentEntry/RepublishEntry/feature.js.map +1 -1
  373. package/features/contentEntry/RepublishEntry/index.js +0 -2
  374. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js +28 -38
  375. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js.map +1 -1
  376. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js +80 -110
  377. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js.map +1 -1
  378. package/features/contentEntry/RestoreEntryFromBin/abstractions.js +3 -26
  379. package/features/contentEntry/RestoreEntryFromBin/abstractions.js.map +1 -1
  380. package/features/contentEntry/RestoreEntryFromBin/events.js +25 -31
  381. package/features/contentEntry/RestoreEntryFromBin/events.js.map +1 -1
  382. package/features/contentEntry/RestoreEntryFromBin/feature.js +7 -9
  383. package/features/contentEntry/RestoreEntryFromBin/feature.js.map +1 -1
  384. package/features/contentEntry/RestoreEntryFromBin/index.js +0 -2
  385. package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js +25 -30
  386. package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js.map +1 -1
  387. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.d.ts +3 -14
  388. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js +70 -115
  389. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js.map +1 -1
  390. package/features/contentEntry/UnpublishEntry/abstractions.js +3 -14
  391. package/features/contentEntry/UnpublishEntry/abstractions.js.map +1 -1
  392. package/features/contentEntry/UnpublishEntry/events.js +25 -36
  393. package/features/contentEntry/UnpublishEntry/events.js.map +1 -1
  394. package/features/contentEntry/UnpublishEntry/feature.js +7 -18
  395. package/features/contentEntry/UnpublishEntry/feature.js.map +1 -1
  396. package/features/contentEntry/UnpublishEntry/index.js +1 -3
  397. package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js +25 -30
  398. package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js.map +1 -1
  399. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.d.ts +5 -22
  400. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js +58 -107
  401. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js.map +1 -1
  402. package/features/contentEntry/UpdateEntry/abstractions.d.ts +1 -3
  403. package/features/contentEntry/UpdateEntry/abstractions.js +3 -14
  404. package/features/contentEntry/UpdateEntry/abstractions.js.map +1 -1
  405. package/features/contentEntry/UpdateEntry/events.js +17 -27
  406. package/features/contentEntry/UpdateEntry/events.js.map +1 -1
  407. package/features/contentEntry/UpdateEntry/feature.js +7 -18
  408. package/features/contentEntry/UpdateEntry/feature.js.map +1 -1
  409. package/features/contentEntry/UpdateEntry/index.js +1 -3
  410. package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.d.ts +22 -0
  411. package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js +77 -0
  412. package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js.map +1 -0
  413. package/features/contentEntry/UpdateRevisionDescription/abstractions.d.ts +25 -0
  414. package/features/contentEntry/UpdateRevisionDescription/abstractions.js +5 -0
  415. package/features/contentEntry/UpdateRevisionDescription/abstractions.js.map +1 -0
  416. package/features/contentEntry/UpdateRevisionDescription/events.d.ts +44 -0
  417. package/features/contentEntry/UpdateRevisionDescription/events.js +23 -0
  418. package/features/contentEntry/UpdateRevisionDescription/events.js.map +1 -0
  419. package/features/contentEntry/UpdateRevisionDescription/feature.d.ts +12 -0
  420. package/features/contentEntry/UpdateRevisionDescription/feature.js +11 -0
  421. package/features/contentEntry/UpdateRevisionDescription/feature.js.map +1 -0
  422. package/features/contentEntry/UpdateRevisionDescription/index.d.ts +2 -0
  423. package/features/contentEntry/UpdateRevisionDescription/index.js +2 -0
  424. package/features/contentEntry/UpdateSingletonEntry/UpdateSingletonEntryUseCase.js +17 -26
  425. package/features/contentEntry/UpdateSingletonEntry/UpdateSingletonEntryUseCase.js.map +1 -1
  426. package/features/contentEntry/UpdateSingletonEntry/abstractions.js +2 -9
  427. package/features/contentEntry/UpdateSingletonEntry/abstractions.js.map +1 -1
  428. package/features/contentEntry/UpdateSingletonEntry/feature.js +6 -13
  429. package/features/contentEntry/UpdateSingletonEntry/feature.js.map +1 -1
  430. package/features/contentEntry/UpdateSingletonEntry/index.js +0 -2
  431. package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js +42 -63
  432. package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js.map +1 -1
  433. package/features/contentEntry/ValidateEntry/abstractions.js +2 -8
  434. package/features/contentEntry/ValidateEntry/abstractions.js.map +1 -1
  435. package/features/contentEntry/ValidateEntry/feature.js +6 -6
  436. package/features/contentEntry/ValidateEntry/feature.js.map +1 -1
  437. package/features/contentEntry/ValidateEntry/index.js +0 -2
  438. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.d.ts +15 -0
  439. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js +212 -0
  440. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js.map +1 -0
  441. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/abstractions.d.ts +13 -0
  442. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/abstractions.js +5 -0
  443. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/abstractions.js.map +1 -0
  444. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/feature.d.ts +4 -0
  445. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/feature.js +11 -0
  446. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/feature.js.map +1 -0
  447. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/index.d.ts +2 -0
  448. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/index.js +2 -0
  449. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.d.ts +15 -0
  450. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js +150 -0
  451. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js.map +1 -0
  452. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/abstractions.d.ts +13 -0
  453. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/abstractions.js +5 -0
  454. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/abstractions.js.map +1 -0
  455. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/feature.d.ts +4 -0
  456. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/feature.js +11 -0
  457. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/feature.js.map +1 -0
  458. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/index.d.ts +2 -0
  459. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/index.js +2 -0
  460. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.d.ts +12 -0
  461. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js +66 -0
  462. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js.map +1 -0
  463. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/abstractions.d.ts +12 -0
  464. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/abstractions.js +5 -0
  465. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/abstractions.js.map +1 -0
  466. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/feature.d.ts +4 -0
  467. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/feature.js +11 -0
  468. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/feature.js.map +1 -0
  469. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/index.d.ts +2 -0
  470. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/index.js +2 -0
  471. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.d.ts +12 -0
  472. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js +62 -0
  473. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js.map +1 -0
  474. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/abstractions.d.ts +12 -0
  475. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/abstractions.js +5 -0
  476. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/abstractions.js.map +1 -0
  477. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/feature.d.ts +4 -0
  478. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/feature.js +11 -0
  479. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/feature.js.map +1 -0
  480. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/index.d.ts +2 -0
  481. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/index.js +2 -0
  482. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.d.ts +10 -0
  483. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js +41 -0
  484. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js.map +1 -0
  485. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/abstractions.d.ts +12 -0
  486. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/abstractions.js +5 -0
  487. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/abstractions.js.map +1 -0
  488. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/feature.d.ts +4 -0
  489. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/feature.js +11 -0
  490. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/feature.js.map +1 -0
  491. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/index.d.ts +2 -0
  492. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/index.js +2 -0
  493. package/features/contentEntry/entryDataFactories/EntryDataFactoriesFeature.d.ts +4 -0
  494. package/features/contentEntry/entryDataFactories/EntryDataFactoriesFeature.js +21 -0
  495. package/features/contentEntry/entryDataFactories/EntryDataFactoriesFeature.js.map +1 -0
  496. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.d.ts +12 -0
  497. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js +104 -0
  498. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js.map +1 -0
  499. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/abstractions.d.ts +13 -0
  500. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/abstractions.js +5 -0
  501. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/abstractions.js.map +1 -0
  502. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/feature.d.ts +4 -0
  503. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/feature.js +11 -0
  504. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/feature.js.map +1 -0
  505. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/index.d.ts +2 -0
  506. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/index.js +2 -0
  507. package/{crud → features}/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +0 -3
  508. package/features/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +17 -0
  509. package/features/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
  510. package/features/contentEntry/entryDataFactories/statuses.js +7 -0
  511. package/features/contentEntry/entryDataFactories/statuses.js.map +1 -0
  512. package/features/contentEntry/entryDataFactories/system.js +10 -0
  513. package/features/contentEntry/entryDataFactories/system.js.map +1 -0
  514. package/features/contentModel/ContentModelFeature.js +16 -19
  515. package/features/contentModel/ContentModelFeature.js.map +1 -1
  516. package/features/contentModel/CreateModel/CreateModelRepository.js +104 -148
  517. package/features/contentModel/CreateModel/CreateModelRepository.js.map +1 -1
  518. package/features/contentModel/CreateModel/CreateModelUseCase.js +74 -119
  519. package/features/contentModel/CreateModel/CreateModelUseCase.js.map +1 -1
  520. package/features/contentModel/CreateModel/abstractions.js +3 -13
  521. package/features/contentModel/CreateModel/abstractions.js.map +1 -1
  522. package/features/contentModel/CreateModel/events.js +25 -36
  523. package/features/contentModel/CreateModel/events.js.map +1 -1
  524. package/features/contentModel/CreateModel/feature.js +7 -16
  525. package/features/contentModel/CreateModel/feature.js.map +1 -1
  526. package/features/contentModel/CreateModel/index.js +1 -3
  527. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js +107 -150
  528. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js.map +1 -1
  529. package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js +84 -119
  530. package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js.map +1 -1
  531. package/features/contentModel/CreateModelFrom/abstractions.js +3 -13
  532. package/features/contentModel/CreateModelFrom/abstractions.js.map +1 -1
  533. package/features/contentModel/CreateModelFrom/events.js +25 -36
  534. package/features/contentModel/CreateModelFrom/events.js.map +1 -1
  535. package/features/contentModel/CreateModelFrom/feature.js +7 -16
  536. package/features/contentModel/CreateModelFrom/feature.js.map +1 -1
  537. package/features/contentModel/CreateModelFrom/index.js +1 -3
  538. package/features/contentModel/DeleteModel/DeleteModelRepository.js +27 -41
  539. package/features/contentModel/DeleteModel/DeleteModelRepository.js.map +1 -1
  540. package/features/contentModel/DeleteModel/DeleteModelUseCase.js +44 -72
  541. package/features/contentModel/DeleteModel/DeleteModelUseCase.js.map +1 -1
  542. package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js +50 -83
  543. package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js.map +1 -1
  544. package/features/contentModel/DeleteModel/abstractions.js +3 -13
  545. package/features/contentModel/DeleteModel/abstractions.js.map +1 -1
  546. package/features/contentModel/DeleteModel/events.js +25 -36
  547. package/features/contentModel/DeleteModel/events.js.map +1 -1
  548. package/features/contentModel/DeleteModel/feature.js +8 -19
  549. package/features/contentModel/DeleteModel/feature.js.map +1 -1
  550. package/features/contentModel/DeleteModel/index.js +1 -3
  551. package/features/contentModel/GetModel/GetModelRepository.js +15 -23
  552. package/features/contentModel/GetModel/GetModelRepository.js.map +1 -1
  553. package/features/contentModel/GetModel/GetModelUseCase.js +21 -34
  554. package/features/contentModel/GetModel/GetModelUseCase.js.map +1 -1
  555. package/features/contentModel/GetModel/abstractions.js +3 -13
  556. package/features/contentModel/GetModel/abstractions.js.map +1 -1
  557. package/features/contentModel/GetModel/feature.js +7 -16
  558. package/features/contentModel/GetModel/feature.js.map +1 -1
  559. package/features/contentModel/GetModel/index.d.ts +1 -1
  560. package/features/contentModel/GetModel/index.js +1 -3
  561. package/features/contentModel/ListModels/ListModelsRepository.js +18 -36
  562. package/features/contentModel/ListModels/ListModelsRepository.js.map +1 -1
  563. package/features/contentModel/ListModels/ListModelsUseCase.js +23 -41
  564. package/features/contentModel/ListModels/ListModelsUseCase.js.map +1 -1
  565. package/features/contentModel/ListModels/abstractions.js +3 -13
  566. package/features/contentModel/ListModels/abstractions.js.map +1 -1
  567. package/features/contentModel/ListModels/feature.js +7 -17
  568. package/features/contentModel/ListModels/feature.js.map +1 -1
  569. package/features/contentModel/ListModels/index.js +0 -2
  570. package/features/contentModel/ModelFieldCompression/ModelFieldCompression.js +18 -18
  571. package/features/contentModel/ModelFieldCompression/ModelFieldCompression.js.map +1 -1
  572. package/features/contentModel/ModelFieldCompression/abstractions.js +2 -1
  573. package/features/contentModel/ModelFieldCompression/abstractions.js.map +1 -1
  574. package/features/contentModel/ModelFieldCompression/feature.js +6 -5
  575. package/features/contentModel/ModelFieldCompression/feature.js.map +1 -1
  576. package/features/contentModel/ModelFieldCompression/index.js +0 -2
  577. package/features/contentModel/ModelToAstConverter/ModelToAstConverter.js +15 -19
  578. package/features/contentModel/ModelToAstConverter/ModelToAstConverter.js.map +1 -1
  579. package/features/contentModel/ModelToAstConverter/abstractions.js +2 -6
  580. package/features/contentModel/ModelToAstConverter/abstractions.js.map +1 -1
  581. package/features/contentModel/ModelToAstConverter/feature.js +6 -5
  582. package/features/contentModel/ModelToAstConverter/feature.js.map +1 -1
  583. package/features/contentModel/ModelToAstConverter/index.js +0 -2
  584. package/features/contentModel/UpdateModel/UpdateModelRepository.js +71 -97
  585. package/features/contentModel/UpdateModel/UpdateModelRepository.js.map +1 -1
  586. package/features/contentModel/UpdateModel/UpdateModelUseCase.js +75 -118
  587. package/features/contentModel/UpdateModel/UpdateModelUseCase.js.map +1 -1
  588. package/features/contentModel/UpdateModel/abstractions.js +3 -13
  589. package/features/contentModel/UpdateModel/abstractions.js.map +1 -1
  590. package/features/contentModel/UpdateModel/events.js +25 -36
  591. package/features/contentModel/UpdateModel/events.js.map +1 -1
  592. package/features/contentModel/UpdateModel/feature.js +7 -16
  593. package/features/contentModel/UpdateModel/feature.js.map +1 -1
  594. package/features/contentModel/UpdateModel/index.js +1 -3
  595. package/features/contentModel/shared/ModelsFetcher.js +66 -81
  596. package/features/contentModel/shared/ModelsFetcher.js.map +1 -1
  597. package/features/contentModel/shared/PluginModelsProvider.js +38 -54
  598. package/features/contentModel/shared/PluginModelsProvider.js.map +1 -1
  599. package/features/contentModel/shared/abstractions.js +4 -16
  600. package/features/contentModel/shared/abstractions.js.map +1 -1
  601. package/features/contentModelGroup/ContentModelGroupFeature.js +12 -16
  602. package/features/contentModelGroup/ContentModelGroupFeature.js.map +1 -1
  603. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js +63 -94
  604. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js.map +1 -1
  605. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js +80 -107
  606. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js.map +1 -1
  607. package/features/contentModelGroup/CreateGroup/abstractions.js +3 -13
  608. package/features/contentModelGroup/CreateGroup/abstractions.js.map +1 -1
  609. package/features/contentModelGroup/CreateGroup/events.js +25 -36
  610. package/features/contentModelGroup/CreateGroup/events.js.map +1 -1
  611. package/features/contentModelGroup/CreateGroup/feature.js +7 -16
  612. package/features/contentModelGroup/CreateGroup/feature.js.map +1 -1
  613. package/features/contentModelGroup/CreateGroup/index.js +0 -2
  614. package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js +37 -56
  615. package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js.map +1 -1
  616. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js +53 -80
  617. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js.map +1 -1
  618. package/features/contentModelGroup/DeleteGroup/abstractions.js +3 -13
  619. package/features/contentModelGroup/DeleteGroup/abstractions.js.map +1 -1
  620. package/features/contentModelGroup/DeleteGroup/events.js +25 -36
  621. package/features/contentModelGroup/DeleteGroup/events.js.map +1 -1
  622. package/features/contentModelGroup/DeleteGroup/feature.js +7 -16
  623. package/features/contentModelGroup/DeleteGroup/feature.js.map +1 -1
  624. package/features/contentModelGroup/DeleteGroup/index.js +0 -2
  625. package/features/contentModelGroup/GetGroup/GetGroupRepository.js +60 -80
  626. package/features/contentModelGroup/GetGroup/GetGroupRepository.js.map +1 -1
  627. package/features/contentModelGroup/GetGroup/GetGroupUseCase.js +19 -34
  628. package/features/contentModelGroup/GetGroup/GetGroupUseCase.js.map +1 -1
  629. package/features/contentModelGroup/GetGroup/abstractions.js +3 -13
  630. package/features/contentModelGroup/GetGroup/abstractions.js.map +1 -1
  631. package/features/contentModelGroup/GetGroup/feature.js +7 -16
  632. package/features/contentModelGroup/GetGroup/feature.js.map +1 -1
  633. package/features/contentModelGroup/GetGroup/index.js +0 -2
  634. package/features/contentModelGroup/ListGroups/ListGroupsRepository.js +57 -74
  635. package/features/contentModelGroup/ListGroups/ListGroupsRepository.js.map +1 -1
  636. package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js +19 -34
  637. package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js.map +1 -1
  638. package/features/contentModelGroup/ListGroups/abstractions.js +3 -13
  639. package/features/contentModelGroup/ListGroups/abstractions.js.map +1 -1
  640. package/features/contentModelGroup/ListGroups/feature.js +7 -16
  641. package/features/contentModelGroup/ListGroups/feature.js.map +1 -1
  642. package/features/contentModelGroup/ListGroups/index.js +0 -2
  643. package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js +31 -44
  644. package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js.map +1 -1
  645. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js +75 -111
  646. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js.map +1 -1
  647. package/features/contentModelGroup/UpdateGroup/abstractions.js +3 -13
  648. package/features/contentModelGroup/UpdateGroup/abstractions.js.map +1 -1
  649. package/features/contentModelGroup/UpdateGroup/events.js +25 -36
  650. package/features/contentModelGroup/UpdateGroup/events.js.map +1 -1
  651. package/features/contentModelGroup/UpdateGroup/feature.js +7 -16
  652. package/features/contentModelGroup/UpdateGroup/feature.js.map +1 -1
  653. package/features/contentModelGroup/UpdateGroup/index.js +0 -2
  654. package/features/contentModelGroup/shared/PluginGroupsProvider.js +61 -78
  655. package/features/contentModelGroup/shared/PluginGroupsProvider.js.map +1 -1
  656. package/features/contentModelGroup/shared/abstractions.js +4 -9
  657. package/features/contentModelGroup/shared/abstractions.js.map +1 -1
  658. package/features/contentModelGroup/shared/index.js +1 -3
  659. package/features/graphql/feature.js +18 -17
  660. package/features/graphql/feature.js.map +1 -1
  661. package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.js +24 -20
  662. package/features/graphql/fields/CmsModelFieldToGraphQLRegistry.js.map +1 -1
  663. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js +2 -1
  664. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js.map +1 -1
  665. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.js +2 -1
  666. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQLRegistry.js.map +1 -1
  667. package/features/graphql/fields/base/BooleanToGraphQL.js +37 -52
  668. package/features/graphql/fields/base/BooleanToGraphQL.js.map +1 -1
  669. package/features/graphql/fields/base/DateTimeToGraphQL.js +48 -63
  670. package/features/graphql/fields/base/DateTimeToGraphQL.js.map +1 -1
  671. package/features/graphql/fields/base/DynamicZoneToGraphQL.js +168 -252
  672. package/features/graphql/fields/base/DynamicZoneToGraphQL.js.map +1 -1
  673. package/features/graphql/fields/base/FileToGraphQL.js +24 -27
  674. package/features/graphql/fields/base/FileToGraphQL.js.map +1 -1
  675. package/features/graphql/fields/base/JsonToGraphQL.js +30 -39
  676. package/features/graphql/fields/base/JsonToGraphQL.js.map +1 -1
  677. package/features/graphql/fields/base/LongTextToGraphQL.js +31 -42
  678. package/features/graphql/fields/base/LongTextToGraphQL.js.map +1 -1
  679. package/features/graphql/fields/base/NumberToGraphQL.js +37 -52
  680. package/features/graphql/fields/base/NumberToGraphQL.js.map +1 -1
  681. package/features/graphql/fields/base/ObjectToGraphQL.js +180 -239
  682. package/features/graphql/fields/base/ObjectToGraphQL.js.map +1 -1
  683. package/features/graphql/fields/base/RefToGraphQL.js +150 -210
  684. package/features/graphql/fields/base/RefToGraphQL.js.map +1 -1
  685. package/features/graphql/fields/base/RichTextToGraphQL.js +35 -46
  686. package/features/graphql/fields/base/RichTextToGraphQL.js.map +1 -1
  687. package/features/graphql/fields/base/SearchableJsonToGraphQL.js +38 -51
  688. package/features/graphql/fields/base/SearchableJsonToGraphQL.js.map +1 -1
  689. package/features/graphql/fields/base/TextToGraphQL.js +37 -52
  690. package/features/graphql/fields/base/TextToGraphQL.js.map +1 -1
  691. package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.js +26 -31
  692. package/features/graphql/fields/base/dynamicZone/createTypeDefsForTemplates.js.map +1 -1
  693. package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.js +7 -10
  694. package/features/graphql/fields/base/dynamicZone/normalizeDynamicZoneInput.js.map +1 -1
  695. package/features/graphql/fields/base/richText/richTextResolver.js +11 -20
  696. package/features/graphql/fields/base/richText/richTextResolver.js.map +1 -1
  697. package/features/graphql/fields/base/utils/createGraphQLInputField.js +6 -13
  698. package/features/graphql/fields/base/utils/createGraphQLInputField.js.map +1 -1
  699. package/features/graphql/index.js +0 -2
  700. package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.js +2 -1
  701. package/features/graphql/sort/abstractions/CmsGraphQLSchemaSorter.js.map +1 -1
  702. package/features/installer/CmsInstaller.js +31 -32
  703. package/features/installer/CmsInstaller.js.map +1 -1
  704. package/features/installer/feature.js +6 -5
  705. package/features/installer/feature.js.map +1 -1
  706. package/features/modelBuilder/LayoutBuilder.js +66 -122
  707. package/features/modelBuilder/LayoutBuilder.js.map +1 -1
  708. package/features/modelBuilder/abstractions.js +3 -17
  709. package/features/modelBuilder/abstractions.js.map +1 -1
  710. package/features/modelBuilder/feature.js +31 -42
  711. package/features/modelBuilder/feature.js.map +1 -1
  712. package/features/modelBuilder/fields/BaseFieldBuilder.d.ts +3 -0
  713. package/features/modelBuilder/fields/BaseFieldBuilder.js +38 -38
  714. package/features/modelBuilder/fields/BaseFieldBuilder.js.map +1 -1
  715. package/features/modelBuilder/fields/BooleanFieldType.js +18 -17
  716. package/features/modelBuilder/fields/BooleanFieldType.js.map +1 -1
  717. package/features/modelBuilder/fields/DataFieldBuilder.d.ts +1 -0
  718. package/features/modelBuilder/fields/DataFieldBuilder.js +161 -201
  719. package/features/modelBuilder/fields/DataFieldBuilder.js.map +1 -1
  720. package/features/modelBuilder/fields/DateTimeFieldType.js +59 -78
  721. package/features/modelBuilder/fields/DateTimeFieldType.js.map +1 -1
  722. package/features/modelBuilder/fields/DynamicZoneFieldType.js +51 -54
  723. package/features/modelBuilder/fields/DynamicZoneFieldType.js.map +1 -1
  724. package/features/modelBuilder/fields/FieldBuilder.js +0 -2
  725. package/features/modelBuilder/fields/FieldBuilderRegistry.js +38 -62
  726. package/features/modelBuilder/fields/FieldBuilderRegistry.js.map +1 -1
  727. package/features/modelBuilder/fields/FileFieldType.js +25 -24
  728. package/features/modelBuilder/fields/FileFieldType.js.map +1 -1
  729. package/features/modelBuilder/fields/JsonFieldType.js +13 -12
  730. package/features/modelBuilder/fields/JsonFieldType.js.map +1 -1
  731. package/features/modelBuilder/fields/LayoutFieldBuilder.js +3 -6
  732. package/features/modelBuilder/fields/LayoutFieldBuilder.js.map +1 -1
  733. package/features/modelBuilder/fields/LocationFieldType.js +15 -14
  734. package/features/modelBuilder/fields/LocationFieldType.js.map +1 -1
  735. package/features/modelBuilder/fields/LongTextFieldType.js +115 -114
  736. package/features/modelBuilder/fields/LongTextFieldType.js.map +1 -1
  737. package/features/modelBuilder/fields/NumberFieldType.js +38 -37
  738. package/features/modelBuilder/fields/NumberFieldType.js.map +1 -1
  739. package/features/modelBuilder/fields/ObjectFieldType.js +50 -67
  740. package/features/modelBuilder/fields/ObjectFieldType.js.map +1 -1
  741. package/features/modelBuilder/fields/RefFieldType.js +25 -24
  742. package/features/modelBuilder/fields/RefFieldType.js.map +1 -1
  743. package/features/modelBuilder/fields/RichTextFieldType.js +20 -19
  744. package/features/modelBuilder/fields/RichTextFieldType.js.map +1 -1
  745. package/features/modelBuilder/fields/SearchableJsonFieldType.js +13 -12
  746. package/features/modelBuilder/fields/SearchableJsonFieldType.js.map +1 -1
  747. package/features/modelBuilder/fields/TextFieldType.d.ts +1 -0
  748. package/features/modelBuilder/fields/TextFieldType.js +130 -123
  749. package/features/modelBuilder/fields/TextFieldType.js.map +1 -1
  750. package/features/modelBuilder/fields/UiAlertFieldType.js +27 -27
  751. package/features/modelBuilder/fields/UiAlertFieldType.js.map +1 -1
  752. package/features/modelBuilder/fields/UiSeparatorFieldType.js +23 -22
  753. package/features/modelBuilder/fields/UiSeparatorFieldType.js.map +1 -1
  754. package/features/modelBuilder/fields/UiTabsFieldType.js +58 -63
  755. package/features/modelBuilder/fields/UiTabsFieldType.js.map +1 -1
  756. package/features/modelBuilder/fields/abstractions.js +2 -9
  757. package/features/modelBuilder/fields/abstractions.js.map +1 -1
  758. package/features/modelBuilder/fields/fieldTypeValidator.js +0 -31
  759. package/features/modelBuilder/index.js +10 -16
  760. package/features/modelBuilder/models/BaseModelBuilder.js +70 -130
  761. package/features/modelBuilder/models/BaseModelBuilder.js.map +1 -1
  762. package/features/modelBuilder/models/ModelBuilder.js +18 -33
  763. package/features/modelBuilder/models/ModelBuilder.js.map +1 -1
  764. package/features/modelBuilder/models/ModelsProvider.js +24 -33
  765. package/features/modelBuilder/models/ModelsProvider.js.map +1 -1
  766. package/features/modelBuilder/models/PrivateModelBuilder.js +15 -24
  767. package/features/modelBuilder/models/PrivateModelBuilder.js.map +1 -1
  768. package/features/modelBuilder/models/PublicModelBuilder.js +89 -114
  769. package/features/modelBuilder/models/PublicModelBuilder.js.map +1 -1
  770. package/features/modelBuilder/models/abstractions.js +2 -6
  771. package/features/modelBuilder/models/abstractions.js.map +1 -1
  772. package/features/shared/abstractions.js +5 -16
  773. package/features/shared/abstractions.js.map +1 -1
  774. package/features/sortMapper/SortMapper.js +27 -46
  775. package/features/sortMapper/SortMapper.js.map +1 -1
  776. package/features/sortMapper/abstractions.js +2 -2
  777. package/features/sortMapper/abstractions.js.map +1 -1
  778. package/features/sortMapper/feature.js +7 -6
  779. package/features/sortMapper/feature.js.map +1 -1
  780. package/features/storage/StorageTransformRegistry.d.ts +1 -0
  781. package/features/storage/StorageTransformRegistry.js +29 -20
  782. package/features/storage/StorageTransformRegistry.js.map +1 -1
  783. package/features/storage/abstractions/StorageTransform.js +2 -1
  784. package/features/storage/abstractions/StorageTransform.js.map +1 -1
  785. package/features/storage/abstractions/StorageTransformRegistry.js +2 -1
  786. package/features/storage/abstractions/StorageTransformRegistry.js.map +1 -1
  787. package/features/storage/feature.js +15 -12
  788. package/features/storage/feature.js.map +1 -1
  789. package/features/storage/fields/CompressedTextStorageTransform.d.ts +13 -0
  790. package/features/storage/fields/CompressedTextStorageTransform.js +37 -0
  791. package/features/storage/fields/CompressedTextStorageTransform.js.map +1 -0
  792. package/features/storage/fields/DateStorageTransform.js +67 -96
  793. package/features/storage/fields/DateStorageTransform.js.map +1 -1
  794. package/features/storage/fields/DefaultStorageTransform.js +13 -14
  795. package/features/storage/fields/DefaultStorageTransform.js.map +1 -1
  796. package/features/storage/fields/DynamicZoneStorageTransform.js +91 -128
  797. package/features/storage/fields/DynamicZoneStorageTransform.js.map +1 -1
  798. package/features/storage/fields/JsonStorageTransform.js +17 -22
  799. package/features/storage/fields/JsonStorageTransform.js.map +1 -1
  800. package/features/storage/fields/LongTextStorageTransform.js +33 -44
  801. package/features/storage/fields/LongTextStorageTransform.js.map +1 -1
  802. package/features/storage/fields/ObjectStorageTransform.js +64 -87
  803. package/features/storage/fields/ObjectStorageTransform.js.map +1 -1
  804. package/features/storage/fields/RichTextStorageTransform.js +23 -28
  805. package/features/storage/fields/RichTextStorageTransform.js.map +1 -1
  806. package/features/storage/index.js +0 -2
  807. package/features/validation/CmsModelFieldPatternValidatorRegistry.js +21 -15
  808. package/features/validation/CmsModelFieldPatternValidatorRegistry.js.map +1 -1
  809. package/features/validation/CmsModelFieldValidatorRegistry.js +21 -17
  810. package/features/validation/CmsModelFieldValidatorRegistry.js.map +1 -1
  811. package/features/validation/abstractions/CmsModelFieldPatternValidator.js +2 -1
  812. package/features/validation/abstractions/CmsModelFieldPatternValidator.js.map +1 -1
  813. package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.js +2 -1
  814. package/features/validation/abstractions/CmsModelFieldPatternValidatorRegistry.js.map +1 -1
  815. package/features/validation/abstractions/CmsModelFieldValidator.js +2 -1
  816. package/features/validation/abstractions/CmsModelFieldValidator.js.map +1 -1
  817. package/features/validation/abstractions/CmsModelFieldValidatorRegistry.js +2 -1
  818. package/features/validation/abstractions/CmsModelFieldValidatorRegistry.js.map +1 -1
  819. package/features/validation/feature.js +25 -24
  820. package/features/validation/feature.js.map +1 -1
  821. package/features/validation/index.js +0 -2
  822. package/features/validation/validators/DateGteValidator.js +12 -18
  823. package/features/validation/validators/DateGteValidator.js.map +1 -1
  824. package/features/validation/validators/DateLteValidator.js +12 -18
  825. package/features/validation/validators/DateLteValidator.js.map +1 -1
  826. package/features/validation/validators/GteValidator.js +11 -13
  827. package/features/validation/validators/GteValidator.js.map +1 -1
  828. package/features/validation/validators/InValidator.js +11 -13
  829. package/features/validation/validators/InValidator.js.map +1 -1
  830. package/features/validation/validators/LteValidator.js +11 -13
  831. package/features/validation/validators/LteValidator.js.map +1 -1
  832. package/features/validation/validators/MaxLengthValidator.js +11 -13
  833. package/features/validation/validators/MaxLengthValidator.js.map +1 -1
  834. package/features/validation/validators/MinLengthValidator.js +11 -13
  835. package/features/validation/validators/MinLengthValidator.js.map +1 -1
  836. package/features/validation/validators/PatternValidator.js +20 -29
  837. package/features/validation/validators/PatternValidator.js.map +1 -1
  838. package/features/validation/validators/RequiredValidator.js +10 -9
  839. package/features/validation/validators/RequiredValidator.js.map +1 -1
  840. package/features/validation/validators/TimeGteValidator.js +11 -13
  841. package/features/validation/validators/TimeGteValidator.js.map +1 -1
  842. package/features/validation/validators/TimeLteValidator.js +11 -13
  843. package/features/validation/validators/TimeLteValidator.js.map +1 -1
  844. package/features/validation/validators/UniqueValidator.js +31 -38
  845. package/features/validation/validators/UniqueValidator.js.map +1 -1
  846. package/features/validation/validators/patterns/EmailPattern.js +11 -8
  847. package/features/validation/validators/patterns/EmailPattern.js.map +1 -1
  848. package/features/validation/validators/patterns/LowerCasePattern.js +11 -8
  849. package/features/validation/validators/patterns/LowerCasePattern.js.map +1 -1
  850. package/features/validation/validators/patterns/LowerCaseSpacePattern.js +11 -8
  851. package/features/validation/validators/patterns/LowerCaseSpacePattern.js.map +1 -1
  852. package/features/validation/validators/patterns/UpperCasePattern.js +11 -8
  853. package/features/validation/validators/patterns/UpperCasePattern.js.map +1 -1
  854. package/features/validation/validators/patterns/UpperCaseSpacePattern.js +11 -8
  855. package/features/validation/validators/patterns/UpperCaseSpacePattern.js.map +1 -1
  856. package/features/validation/validators/patterns/UrlPattern.js +11 -8
  857. package/features/validation/validators/patterns/UrlPattern.js.map +1 -1
  858. package/features/whereMapper/WhereMapper.js +42 -69
  859. package/features/whereMapper/WhereMapper.js.map +1 -1
  860. package/features/whereMapper/abstractions.js +2 -2
  861. package/features/whereMapper/abstractions.js.map +1 -1
  862. package/features/whereMapper/feature.js +7 -6
  863. package/features/whereMapper/feature.js.map +1 -1
  864. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +18 -37
  865. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  866. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +92 -136
  867. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  868. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +103 -152
  869. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  870. package/fieldConverters/index.js +6 -6
  871. package/fieldConverters/index.js.map +1 -1
  872. package/graphql/buildSchemaPlugins.js +16 -20
  873. package/graphql/buildSchemaPlugins.js.map +1 -1
  874. package/graphql/checkEndpointAccess.js +4 -5
  875. package/graphql/checkEndpointAccess.js.map +1 -1
  876. package/graphql/createExecutableSchema.js +30 -41
  877. package/graphql/createExecutableSchema.js.map +1 -1
  878. package/graphql/formatErrorPayload.js +13 -14
  879. package/graphql/formatErrorPayload.js.map +1 -1
  880. package/graphql/generateSchema.js +20 -24
  881. package/graphql/generateSchema.js.map +1 -1
  882. package/graphql/getSchema/generateCacheId.js +7 -6
  883. package/graphql/getSchema/generateCacheId.js.map +1 -1
  884. package/graphql/getSchema/generateCacheKey.js +23 -23
  885. package/graphql/getSchema/generateCacheKey.js.map +1 -1
  886. package/graphql/getSchema.js +46 -63
  887. package/graphql/getSchema.js.map +1 -1
  888. package/graphql/graphQLHandlerFactory.js +15 -23
  889. package/graphql/graphQLHandlerFactory.js.map +1 -1
  890. package/graphql/handleRequest.js +50 -63
  891. package/graphql/handleRequest.js.map +1 -1
  892. package/graphql/index.js +6 -3
  893. package/graphql/index.js.map +1 -1
  894. package/graphql/scalars/RevisionId.js +10 -14
  895. package/graphql/scalars/RevisionId.js.map +1 -1
  896. package/graphql/scalars/RevisionIdScalarPlugin.js +10 -7
  897. package/graphql/scalars/RevisionIdScalarPlugin.js.map +1 -1
  898. package/graphql/schema/baseContentSchema.js +29 -30
  899. package/graphql/schema/baseContentSchema.js.map +1 -1
  900. package/graphql/schema/baseSchema.js +33 -36
  901. package/graphql/schema/baseSchema.js.map +1 -1
  902. package/graphql/schema/cms/createEntryResolver.js +37 -49
  903. package/graphql/schema/cms/createEntryResolver.js.map +1 -1
  904. package/graphql/schema/cms/deleteEntryResolver.js +39 -51
  905. package/graphql/schema/cms/deleteEntryResolver.js.map +1 -1
  906. package/graphql/schema/cms/getEntryResolver.js +37 -51
  907. package/graphql/schema/cms/getEntryResolver.js.map +1 -1
  908. package/graphql/schema/cms/helpers/buildFieldsSelection.js +26 -71
  909. package/graphql/schema/cms/helpers/buildFieldsSelection.js.map +1 -1
  910. package/graphql/schema/cms/helpers/getErrorMessage.js +5 -11
  911. package/graphql/schema/cms/helpers/getErrorMessage.js.map +1 -1
  912. package/graphql/schema/cms/helpers/getModel.js +5 -9
  913. package/graphql/schema/cms/helpers/getModel.js.map +1 -1
  914. package/graphql/schema/cms/helpers/index.js +0 -2
  915. package/graphql/schema/cms/helpers/transformSortToArray.js +7 -34
  916. package/graphql/schema/cms/helpers/transformSortToArray.js.map +1 -1
  917. package/graphql/schema/cms/helpers/transformWhereToNested.js +23 -50
  918. package/graphql/schema/cms/helpers/transformWhereToNested.js.map +1 -1
  919. package/graphql/schema/cms/helpers.js +0 -2
  920. package/graphql/schema/cms/index.js +20 -22
  921. package/graphql/schema/cms/index.js.map +1 -1
  922. package/graphql/schema/cms/listEntriesResolver.js +58 -82
  923. package/graphql/schema/cms/listEntriesResolver.js.map +1 -1
  924. package/graphql/schema/cms/publishEntryResolver.js +37 -49
  925. package/graphql/schema/cms/publishEntryResolver.js.map +1 -1
  926. package/graphql/schema/cms/resolvers/createEntry.js +11 -10
  927. package/graphql/schema/cms/resolvers/createEntry.js.map +1 -1
  928. package/graphql/schema/cms/resolvers/deleteEntryRevision.js +11 -10
  929. package/graphql/schema/cms/resolvers/deleteEntryRevision.js.map +1 -1
  930. package/graphql/schema/cms/resolvers/getEntry.js +11 -10
  931. package/graphql/schema/cms/resolvers/getEntry.js.map +1 -1
  932. package/graphql/schema/cms/resolvers/index.js +0 -2
  933. package/graphql/schema/cms/resolvers/listEntries.js +11 -10
  934. package/graphql/schema/cms/resolvers/listEntries.js.map +1 -1
  935. package/graphql/schema/cms/resolvers/mutationCms.js +13 -18
  936. package/graphql/schema/cms/resolvers/mutationCms.js.map +1 -1
  937. package/graphql/schema/cms/resolvers/publishEntryRevision.js +11 -10
  938. package/graphql/schema/cms/resolvers/publishEntryRevision.js.map +1 -1
  939. package/graphql/schema/cms/resolvers/queryCms.js +13 -17
  940. package/graphql/schema/cms/resolvers/queryCms.js.map +1 -1
  941. package/graphql/schema/cms/resolvers/unpublishEntryRevision.js +11 -10
  942. package/graphql/schema/cms/resolvers/unpublishEntryRevision.js.map +1 -1
  943. package/graphql/schema/cms/resolvers/updateEntryRevision.js +11 -10
  944. package/graphql/schema/cms/resolvers/updateEntryRevision.js.map +1 -1
  945. package/graphql/schema/cms/typeDefs/index.js +0 -2
  946. package/graphql/schema/cms/typeDefs/mutation.js +8 -7
  947. package/graphql/schema/cms/typeDefs/mutation.js.map +1 -1
  948. package/graphql/schema/cms/typeDefs/query.js +8 -7
  949. package/graphql/schema/cms/typeDefs/query.js.map +1 -1
  950. package/graphql/schema/cms/typeDefs/responses.js +8 -7
  951. package/graphql/schema/cms/typeDefs/responses.js.map +1 -1
  952. package/graphql/schema/cms/unpublishEntryResolver.js +37 -49
  953. package/graphql/schema/cms/unpublishEntryResolver.js.map +1 -1
  954. package/graphql/schema/cms/updateEntryResolver.js +38 -51
  955. package/graphql/schema/cms/updateEntryResolver.js.map +1 -1
  956. package/graphql/schema/contentEntries.js +218 -305
  957. package/graphql/schema/contentEntries.js.map +1 -1
  958. package/graphql/schema/contentModelGroups.js +70 -89
  959. package/graphql/schema/contentModelGroups.js.map +1 -1
  960. package/graphql/schema/contentModels.js +92 -105
  961. package/graphql/schema/contentModels.js.map +1 -1
  962. package/graphql/schema/createFieldResolvers.js +67 -121
  963. package/graphql/schema/createFieldResolvers.js.map +1 -1
  964. package/graphql/schema/createManageResolvers.js +70 -86
  965. package/graphql/schema/createManageResolvers.js.map +1 -1
  966. package/graphql/schema/createManageSDL.js +48 -58
  967. package/graphql/schema/createManageSDL.js.map +1 -1
  968. package/graphql/schema/createPreviewResolvers.js +24 -27
  969. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  970. package/graphql/schema/createReadResolvers.js +26 -35
  971. package/graphql/schema/createReadResolvers.js.map +1 -1
  972. package/graphql/schema/createReadSDL.js +35 -42
  973. package/graphql/schema/createReadSDL.js.map +1 -1
  974. package/graphql/schema/createSingularResolvers.js +32 -40
  975. package/graphql/schema/createSingularResolvers.js.map +1 -1
  976. package/graphql/schema/createSingularSDL.js +32 -44
  977. package/graphql/schema/createSingularSDL.js.map +1 -1
  978. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js +36 -48
  979. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js.map +1 -1
  980. package/graphql/schema/resolvers/manage/resolveCreate.js +9 -10
  981. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  982. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +9 -10
  983. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  984. package/graphql/schema/resolvers/manage/resolveDelete.js +18 -28
  985. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  986. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +11 -12
  987. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  988. package/graphql/schema/resolvers/manage/resolveGet.js +41 -53
  989. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  990. package/graphql/schema/resolvers/manage/resolveGetByIds.js +9 -10
  991. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  992. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +9 -10
  993. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  994. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +9 -10
  995. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  996. package/graphql/schema/resolvers/manage/resolveList.js +10 -11
  997. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  998. package/graphql/schema/resolvers/manage/resolveListDeleted.js +10 -11
  999. package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -1
  1000. package/graphql/schema/resolvers/manage/resolveMove.js +11 -17
  1001. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
  1002. package/graphql/schema/resolvers/manage/resolvePublish.js +9 -10
  1003. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  1004. package/graphql/schema/resolvers/manage/resolveRepublish.js +10 -11
  1005. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  1006. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js +9 -10
  1007. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -1
  1008. package/graphql/schema/resolvers/manage/resolveUnpublish.js +10 -11
  1009. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  1010. package/graphql/schema/resolvers/manage/resolveUpdate.js +9 -10
  1011. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  1012. package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.d.ts +8 -0
  1013. package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js +12 -0
  1014. package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js.map +1 -0
  1015. package/graphql/schema/resolvers/manage/resolveValidate.js +10 -11
  1016. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -1
  1017. package/graphql/schema/resolvers/preview/resolveGet.js +13 -16
  1018. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  1019. package/graphql/schema/resolvers/preview/resolveList.js +10 -11
  1020. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  1021. package/graphql/schema/resolvers/read/resolveGet.js +13 -16
  1022. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  1023. package/graphql/schema/resolvers/read/resolveList.js +10 -11
  1024. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  1025. package/graphql/schema/resolvers/singular/resolveGet.js +7 -10
  1026. package/graphql/schema/resolvers/singular/resolveGet.js.map +1 -1
  1027. package/graphql/schema/resolvers/singular/resolveUpdate.js +7 -10
  1028. package/graphql/schema/resolvers/singular/resolveUpdate.js.map +1 -1
  1029. package/graphql/schema/schemaPlugins.js +81 -97
  1030. package/graphql/schema/schemaPlugins.js.map +1 -1
  1031. package/index.js +17 -23
  1032. package/index.js.map +1 -1
  1033. package/legacy/abstractions.js +5 -22
  1034. package/legacy/abstractions.js.map +1 -1
  1035. package/package.json +26 -26
  1036. package/parameters/context.js +4 -7
  1037. package/parameters/context.js.map +1 -1
  1038. package/parameters/header.js +10 -22
  1039. package/parameters/header.js.map +1 -1
  1040. package/parameters/index.js +0 -2
  1041. package/parameters/path.js +9 -19
  1042. package/parameters/path.js.map +1 -1
  1043. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js +6 -5
  1044. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -1
  1045. package/plugins/CmsGraphQLSchemaPlugin/index.js +0 -2
  1046. package/plugins/CmsGroupPlugin.js +15 -26
  1047. package/plugins/CmsGroupPlugin.js.map +1 -1
  1048. package/plugins/CmsModelFieldConverterPlugin.js +5 -5
  1049. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  1050. package/plugins/CmsModelPlugin.js +135 -213
  1051. package/plugins/CmsModelPlugin.js.map +1 -1
  1052. package/plugins/CmsParametersPlugin.js +12 -14
  1053. package/plugins/CmsParametersPlugin.js.map +1 -1
  1054. package/plugins/StorageOperationsCmsModelPlugin.js +22 -29
  1055. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  1056. package/plugins/index.js +0 -2
  1057. package/types/context.d.ts +6 -2
  1058. package/types/context.js +0 -3
  1059. package/types/fields/dynamicZoneField.js +0 -3
  1060. package/types/fields/objectField.js +0 -3
  1061. package/types/identity.js +0 -3
  1062. package/types/index.js +0 -2
  1063. package/types/model.js +0 -3
  1064. package/types/modelAst.js +0 -3
  1065. package/types/modelField.js +0 -3
  1066. package/types/modelGroup.js +0 -3
  1067. package/types/plugins.js +0 -3
  1068. package/types/types.d.ts +4 -9
  1069. package/types/types.js +6 -218
  1070. package/types/types.js.map +1 -1
  1071. package/utils/caching/Cache.js +28 -35
  1072. package/utils/caching/Cache.js.map +1 -1
  1073. package/utils/caching/CacheKey.js +13 -14
  1074. package/utils/caching/CacheKey.js.map +1 -1
  1075. package/utils/caching/index.js +0 -2
  1076. package/utils/caching/types.js +0 -3
  1077. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js +12 -15
  1078. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js.map +1 -1
  1079. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js +13 -12
  1080. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js.map +1 -1
  1081. package/utils/contentModelAst/CmsModelToAstConverter.js +14 -18
  1082. package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -1
  1083. package/utils/contentModelAst/index.js +0 -2
  1084. package/utils/converters/Converter.js +35 -44
  1085. package/utils/converters/Converter.js.map +1 -1
  1086. package/utils/converters/ConverterCollection.js +70 -107
  1087. package/utils/converters/ConverterCollection.js.map +1 -1
  1088. package/utils/converters/types.js +0 -3
  1089. package/utils/converters/valueKeyFromStorageConverter.js +13 -19
  1090. package/utils/converters/valueKeyFromStorageConverter.js.map +1 -1
  1091. package/utils/converters/valueKeyStorageConverter.js +18 -21
  1092. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  1093. package/utils/converters/valueKeyToStorageConverter.js +13 -19
  1094. package/utils/converters/valueKeyToStorageConverter.js.map +1 -1
  1095. package/utils/createModelField.js +24 -44
  1096. package/utils/createModelField.js.map +1 -1
  1097. package/utils/createTypeFromFields.js +30 -52
  1098. package/utils/createTypeFromFields.js.map +1 -1
  1099. package/utils/createTypeName.js +2 -3
  1100. package/utils/createTypeName.js.map +1 -1
  1101. package/utils/date.js +9 -24
  1102. package/utils/date.js.map +1 -1
  1103. package/utils/entryStorage.js +57 -90
  1104. package/utils/entryStorage.js.map +1 -1
  1105. package/utils/errors.js +7 -7
  1106. package/utils/errors.js.map +1 -1
  1107. package/utils/filterAsync.js +8 -9
  1108. package/utils/filterAsync.js.map +1 -1
  1109. package/utils/getBaseFieldType.js +4 -5
  1110. package/utils/getBaseFieldType.js.map +1 -1
  1111. package/utils/getEntryDescription.js +9 -14
  1112. package/utils/getEntryDescription.js.map +1 -1
  1113. package/utils/getEntryImage.js +9 -14
  1114. package/utils/getEntryImage.js.map +1 -1
  1115. package/utils/getEntryTitle.js +11 -26
  1116. package/utils/getEntryTitle.js.map +1 -1
  1117. package/utils/getSchemaFromFieldPlugins.js +27 -39
  1118. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  1119. package/utils/identity.js +9 -16
  1120. package/utils/identity.js.map +1 -1
  1121. package/utils/incrementEntryIdVersion.js +14 -18
  1122. package/utils/incrementEntryIdVersion.js.map +1 -1
  1123. package/utils/index.js +0 -2
  1124. package/utils/isHeadlessCmsReady.js +5 -14
  1125. package/utils/isHeadlessCmsReady.js.map +1 -1
  1126. package/utils/modelFieldTraverser/ModelFieldTraverser.js +27 -29
  1127. package/utils/modelFieldTraverser/ModelFieldTraverser.js.map +1 -1
  1128. package/utils/modelFieldTraverser/index.js +0 -2
  1129. package/utils/renderFields.js +26 -49
  1130. package/utils/renderFields.js.map +1 -1
  1131. package/utils/renderGetFilterFields.js +31 -37
  1132. package/utils/renderGetFilterFields.js.map +1 -1
  1133. package/utils/renderInputFields.js +23 -40
  1134. package/utils/renderInputFields.js.map +1 -1
  1135. package/utils/renderListFilterFields.js +60 -56
  1136. package/utils/renderListFilterFields.js.map +1 -1
  1137. package/utils/renderSortEnum.js +21 -23
  1138. package/utils/renderSortEnum.js.map +1 -1
  1139. package/utils/toSlug.js +6 -7
  1140. package/utils/toSlug.js.map +1 -1
  1141. package/abstractions/entryHooks/index.js.map +0 -1
  1142. package/abstractions/index.js.map +0 -1
  1143. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +0 -19
  1144. package/crud/contentEntry/entryDataFactories/createEntryData.js +0 -263
  1145. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +0 -1
  1146. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +0 -22
  1147. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +0 -165
  1148. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +0 -1
  1149. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +0 -14
  1150. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +0 -59
  1151. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +0 -1
  1152. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +0 -13
  1153. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +0 -54
  1154. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +0 -1
  1155. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +0 -11
  1156. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +0 -34
  1157. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +0 -1
  1158. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +0 -19
  1159. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +0 -131
  1160. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +0 -1
  1161. package/crud/contentEntry/entryDataFactories/index.d.ts +0 -8
  1162. package/crud/contentEntry/entryDataFactories/index.js +0 -10
  1163. package/crud/contentEntry/entryDataFactories/index.js.map +0 -1
  1164. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +0 -32
  1165. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +0 -1
  1166. package/crud/contentEntry/entryDataFactories/statuses.js +0 -6
  1167. package/crud/contentEntry/entryDataFactories/statuses.js.map +0 -1
  1168. package/crud/contentEntry/entryDataFactories/system.js +0 -14
  1169. package/crud/contentEntry/entryDataFactories/system.js.map +0 -1
  1170. package/export/index.js.map +0 -1
  1171. package/exports/api/cms/entry.js.map +0 -1
  1172. package/exports/api/cms/graphql.js.map +0 -1
  1173. package/exports/api/cms/group.js.map +0 -1
  1174. package/exports/api/cms/model.js.map +0 -1
  1175. package/exports/api/cms/storage.js.map +0 -1
  1176. package/exports/api/cms/validation.js.map +0 -1
  1177. package/extensions/entryHooks/index.js.map +0 -1
  1178. package/features/contentEntry/ContentEntryTraverser/index.js.map +0 -1
  1179. package/features/contentEntry/CreateEntry/index.js.map +0 -1
  1180. package/features/contentEntry/CreateEntryRevisionFrom/index.js.map +0 -1
  1181. package/features/contentEntry/DeleteEntry/index.js.map +0 -1
  1182. package/features/contentEntry/DeleteEntryRevision/index.js.map +0 -1
  1183. package/features/contentEntry/DeleteMultipleEntries/index.js.map +0 -1
  1184. package/features/contentEntry/GetEntriesByIds/index.js.map +0 -1
  1185. package/features/contentEntry/GetEntry/index.js.map +0 -1
  1186. package/features/contentEntry/GetEntryById/index.js.map +0 -1
  1187. package/features/contentEntry/GetLatestEntriesByIds/index.js.map +0 -1
  1188. package/features/contentEntry/GetLatestRevisionByEntryId/index.js.map +0 -1
  1189. package/features/contentEntry/GetPreviousRevisionByEntryId/index.js.map +0 -1
  1190. package/features/contentEntry/GetPublishedEntriesByIds/index.js.map +0 -1
  1191. package/features/contentEntry/GetPublishedRevisionByEntryId/index.js.map +0 -1
  1192. package/features/contentEntry/GetRevisionById/index.js.map +0 -1
  1193. package/features/contentEntry/GetRevisionsByEntryId/index.js.map +0 -1
  1194. package/features/contentEntry/GetSingletonEntry/index.js.map +0 -1
  1195. package/features/contentEntry/GetUniqueFieldValues/index.js.map +0 -1
  1196. package/features/contentEntry/ListEntries/index.js.map +0 -1
  1197. package/features/contentEntry/MoveEntry/index.js.map +0 -1
  1198. package/features/contentEntry/PublishEntry/index.js.map +0 -1
  1199. package/features/contentEntry/RepublishEntry/index.js.map +0 -1
  1200. package/features/contentEntry/RestoreEntryFromBin/index.js.map +0 -1
  1201. package/features/contentEntry/UnpublishEntry/index.js.map +0 -1
  1202. package/features/contentEntry/UpdateEntry/index.js.map +0 -1
  1203. package/features/contentEntry/UpdateSingletonEntry/index.js.map +0 -1
  1204. package/features/contentEntry/ValidateEntry/index.js.map +0 -1
  1205. package/features/contentModel/CreateModel/index.js.map +0 -1
  1206. package/features/contentModel/CreateModelFrom/index.js.map +0 -1
  1207. package/features/contentModel/DeleteModel/index.js.map +0 -1
  1208. package/features/contentModel/GetModel/index.js.map +0 -1
  1209. package/features/contentModel/ListModels/index.js.map +0 -1
  1210. package/features/contentModel/ModelFieldCompression/index.js.map +0 -1
  1211. package/features/contentModel/ModelToAstConverter/index.js.map +0 -1
  1212. package/features/contentModel/UpdateModel/index.js.map +0 -1
  1213. package/features/contentModelGroup/CreateGroup/index.js.map +0 -1
  1214. package/features/contentModelGroup/DeleteGroup/index.js.map +0 -1
  1215. package/features/contentModelGroup/GetGroup/index.js.map +0 -1
  1216. package/features/contentModelGroup/ListGroups/index.js.map +0 -1
  1217. package/features/contentModelGroup/UpdateGroup/index.js.map +0 -1
  1218. package/features/contentModelGroup/shared/index.js.map +0 -1
  1219. package/features/graphql/index.js.map +0 -1
  1220. package/features/modelBuilder/fields/FieldBuilder.js.map +0 -1
  1221. package/features/modelBuilder/fields/fieldTypeValidator.js.map +0 -1
  1222. package/features/modelBuilder/index.js.map +0 -1
  1223. package/features/storage/index.js.map +0 -1
  1224. package/features/validation/index.js.map +0 -1
  1225. package/graphql/schema/cms/helpers/index.js.map +0 -1
  1226. package/graphql/schema/cms/helpers.js.map +0 -1
  1227. package/graphql/schema/cms/resolvers/index.js.map +0 -1
  1228. package/graphql/schema/cms/typeDefs/index.js.map +0 -1
  1229. package/parameters/index.js.map +0 -1
  1230. package/plugins/CmsGraphQLSchemaPlugin/index.js.map +0 -1
  1231. package/plugins/index.js.map +0 -1
  1232. package/types/context.js.map +0 -1
  1233. package/types/fields/dynamicZoneField.js.map +0 -1
  1234. package/types/fields/objectField.js.map +0 -1
  1235. package/types/identity.js.map +0 -1
  1236. package/types/index.js.map +0 -1
  1237. package/types/model.js.map +0 -1
  1238. package/types/modelAst.js.map +0 -1
  1239. package/types/modelField.js.map +0 -1
  1240. package/types/modelGroup.js.map +0 -1
  1241. package/types/plugins.js.map +0 -1
  1242. package/utils/caching/index.js.map +0 -1
  1243. package/utils/caching/types.js.map +0 -1
  1244. package/utils/contentModelAst/index.js.map +0 -1
  1245. package/utils/converters/types.js.map +0 -1
  1246. package/utils/index.js.map +0 -1
  1247. package/utils/modelFieldTraverser/index.js.map +0 -1
  1248. /package/{crud → features}/contentEntry/entryDataFactories/statuses.d.ts +0 -0
  1249. /package/{crud → features}/contentEntry/entryDataFactories/system.d.ts +0 -0
@@ -1,336 +1,218 @@
1
1
  import camelCase from "lodash/camelCase.js";
2
2
  import { EntryValidationError } from "../../domain/contentEntry/errors.js";
3
3
  import { CmsModelFieldValidatorRegistry } from "../../features/validation/index.js";
4
- const validateValue = async (params, fieldValidators, value) => {
5
- if (!fieldValidators) {
6
- return null;
7
- }
8
- const {
9
- validatorList,
10
- context,
11
- field,
12
- model,
13
- entry
14
- } = params;
15
- try {
16
- for (const fieldValidator of fieldValidators) {
17
- const name = fieldValidator.name;
18
- const validations = validatorList[name];
19
- if (!validations || validations.length === 0) {
20
- return `There are no "${name}" validators defined.`;
21
- }
22
- for (const validate of validations) {
23
- const result = await validate({
24
- value,
25
- context,
26
- validator: fieldValidator,
27
- field,
28
- model,
29
- entry
30
- });
31
- if (!result) {
32
- return fieldValidator.message;
4
+ const validateValue = async (params, fieldValidators, value)=>{
5
+ if (!fieldValidators) return null;
6
+ const { validatorList, context, field, model, entry } = params;
7
+ try {
8
+ for (const fieldValidator of fieldValidators){
9
+ const name = fieldValidator.name;
10
+ const validations = validatorList[name];
11
+ if (!validations || 0 === validations.length) return `There are no "${name}" validators defined.`;
12
+ for (const validate of validations){
13
+ const result = await validate({
14
+ value,
15
+ context,
16
+ validator: fieldValidator,
17
+ field,
18
+ model,
19
+ entry
20
+ });
21
+ if (!result) return fieldValidator.message;
22
+ }
33
23
  }
34
- }
24
+ } catch (ex) {
25
+ return ex.message;
35
26
  }
36
- } catch (ex) {
37
- return ex.message;
38
- }
39
- return null;
40
- };
41
- const validatePredefinedValue = (field, value) => {
42
- const {
43
- enabled = false,
44
- values: predefinedValues = []
45
- } = field.predefinedValues || {};
46
- if (!enabled) {
47
27
  return null;
48
- } else if (Array.isArray(predefinedValues) === false || predefinedValues.length === 0) {
49
- return "Missing predefined values to validate against.";
50
- } else if (value === "" || value === null || value === undefined) {
51
- return null;
52
- }
53
- for (const predefinedValue of predefinedValues) {
54
- /**
55
- * No strict compare because the value sent can be 12345 (number) and predefinedValue can be "12345" (string),
56
- * and we want it to match.
57
- */
58
- if (predefinedValue.value == value) {
59
- return null;
60
- }
61
- }
62
- return "Value sent does not match any of the available predefined values.";
63
28
  };
64
- const getFieldValidation = listValidation => {
65
- if (!listValidation?.length) {
66
- return [];
67
- }
68
- return listValidation.filter(item => item.name !== "dynamicZone");
29
+ const validatePredefinedValue = (field, value)=>{
30
+ const { enabled = false, values: predefinedValues = [] } = field.predefinedValues || {};
31
+ if (!enabled) return null;
32
+ if (false === Array.isArray(predefinedValues) || 0 === predefinedValues.length) return "Missing predefined values to validate against.";
33
+ if ("" === value || null == value) return null;
34
+ for (const predefinedValue of predefinedValues)if (predefinedValue.value == value) return null;
35
+ return "Value sent does not match any of the available predefined values.";
69
36
  };
70
- /**
71
- * When multiple values is selected we must run validations on the array containing the values
72
- * And then on each value in the array
73
- */
74
- const runFieldMultipleValuesValidations = async params => {
75
- const {
76
- field,
77
- values: initialValues
78
- } = params;
79
- const values = initialValues[field.fieldId];
80
- const valuesError = await validateValue(params, getFieldValidation(field.listValidation), values);
81
- if (valuesError) {
82
- return valuesError;
83
- }
84
- if (values === null || values === undefined) {
85
- return null;
86
- }
87
- for (const value of values) {
88
- const valueError = await validateValue(params, getFieldValidation(field.validation), value);
89
- if (valueError) {
90
- return valueError;
91
- }
92
- const predefinedValueError = validatePredefinedValue(field, value);
93
- if (predefinedValueError) {
94
- return predefinedValueError;
37
+ const getFieldValidation = (listValidation)=>{
38
+ if (!listValidation?.length) return [];
39
+ return listValidation.filter((item)=>"dynamicZone" !== item.name);
40
+ };
41
+ const runFieldMultipleValuesValidations = async (params)=>{
42
+ const { field, values: initialValues } = params;
43
+ const values = initialValues[field.fieldId];
44
+ const valuesError = await validateValue(params, getFieldValidation(field.listValidation), values);
45
+ if (valuesError) return valuesError;
46
+ if (null == values) return null;
47
+ for (const value of values){
48
+ const valueError = await validateValue(params, getFieldValidation(field.validation), value);
49
+ if (valueError) return valueError;
50
+ const predefinedValueError = validatePredefinedValue(field, value);
51
+ if (predefinedValueError) return predefinedValueError;
95
52
  }
96
- }
97
- return null;
53
+ return null;
98
54
  };
99
- /**
100
- * Runs validation on given value.
101
- */
102
- const runFieldValueValidations = async params => {
103
- const {
104
- values,
105
- field
106
- } = params;
107
- const value = values[field.fieldId];
108
- const error = await validateValue(params, field.validation || [], value);
109
- if (error) {
110
- return error;
111
- }
112
- return validatePredefinedValue(field, value);
55
+ const runFieldValueValidations = async (params)=>{
56
+ const { values, field } = params;
57
+ const value = values[field.fieldId];
58
+ const error = await validateValue(params, field.validation || [], value);
59
+ if (error) return error;
60
+ return validatePredefinedValue(field, value);
113
61
  };
114
- const execValidation = async params => {
115
- const {
116
- field
117
- } = params;
118
- if (field.list) {
119
- return await runFieldMultipleValuesValidations(params);
120
- }
121
- return await runFieldValueValidations(params);
62
+ const execValidation = async (params)=>{
63
+ const { field } = params;
64
+ if (field.list) return await runFieldMultipleValuesValidations(params);
65
+ return await runFieldValueValidations(params);
122
66
  };
123
- export const validateModelEntryData = async params => {
124
- const {
125
- context,
126
- model,
127
- entry,
128
- values,
129
- skipValidators
130
- } = params;
131
- const isValidatorSkipped = validator => {
132
- if (!skipValidators) {
133
- return false;
134
- }
135
- return skipValidators.includes(camelCase(validator.name));
136
- };
137
- const skippedValidators = new Set();
138
- const validatorList = {};
139
- const registry = context.container.resolve(CmsModelFieldValidatorRegistry);
140
- const validators = registry.getAll();
141
- for (const validator of validators) {
142
- const name = validator.name;
143
- if (!validatorList[name]) {
144
- validatorList[name] = [];
145
- }
146
- const isSkipped = isValidatorSkipped(validator);
147
- if (isSkipped) {
148
- skippedValidators.add(name);
149
- validatorList[name].push(async () => {
150
- return true;
151
- });
152
- continue;
67
+ const validateModelEntryData = async (params)=>{
68
+ const { context, model, entry, values, skipValidators } = params;
69
+ const isValidatorSkipped = (validator)=>{
70
+ if (!skipValidators) return false;
71
+ return skipValidators.includes(camelCase(validator.name));
72
+ };
73
+ const skippedValidators = new Set();
74
+ const validatorList = {};
75
+ const registry = context.container.resolve(CmsModelFieldValidatorRegistry);
76
+ const validators = registry.getAll();
77
+ for (const validator of validators){
78
+ const name = validator.name;
79
+ if (!validatorList[name]) validatorList[name] = [];
80
+ const isSkipped = isValidatorSkipped(validator);
81
+ if (isSkipped) {
82
+ skippedValidators.add(name);
83
+ validatorList[name].push(async ()=>true);
84
+ continue;
85
+ }
86
+ validatorList[name].push((params)=>validator.validate(params));
153
87
  }
154
- validatorList[name].push(params => {
155
- return validator.validate(params);
88
+ const keys = Object.keys(validatorList);
89
+ if (keys.length === skippedValidators.size) return [];
90
+ return await entryDataValidation_validate({
91
+ validatorList,
92
+ context,
93
+ model,
94
+ entry,
95
+ parents: [],
96
+ fields: model.fields,
97
+ values: {
98
+ ...entry?.values,
99
+ ...values
100
+ }
156
101
  });
157
- }
158
- /**
159
- * No point in continuing if all validators are skipped.
160
- */
161
- const keys = Object.keys(validatorList);
162
- if (keys.length === skippedValidators.size) {
163
- return [];
164
- }
165
- return await validate({
166
- validatorList,
167
- context,
168
- model,
169
- entry,
170
- parents: [],
171
- fields: model.fields,
172
- values: {
173
- ...entry?.values,
174
- ...values
175
- }
176
- });
177
102
  };
178
- export const validateModelEntryDataOrThrow = async params => {
179
- const invalidFields = await validateModelEntryData(params);
180
- if (invalidFields.length === 0) {
181
- return;
182
- }
183
- throw new EntryValidationError("Validation failed.", invalidFields);
103
+ const validateModelEntryDataOrThrow = async (params)=>{
104
+ const invalidFields = await validateModelEntryData(params);
105
+ if (0 === invalidFields.length) return;
106
+ throw new EntryValidationError("Validation failed.", invalidFields);
184
107
  };
185
-
186
- /**
187
- *
188
- */
189
-
190
- const executeFieldValidation = async params => {
191
- // TODO put per-field validation into plugins.
192
- const {
193
- field
194
- } = params;
195
- /**
196
- * Object field.
197
- */
198
- if (field.type === "object") {
199
- const fields = field.settings?.fields;
200
- if (!Array.isArray(fields)) {
201
- return [];
202
- }
203
- const validations = [];
204
- /**
205
- * We need to validate the object field as well.
206
- */
207
- const error = await execValidation({
208
- ...params,
209
- field
210
- });
211
- if (error) {
212
- validations.push({
213
- id: field.id,
214
- fieldId: field.fieldId,
215
- storageId: field.storageId,
216
- error,
217
- parents: params.parents
218
- });
219
- }
220
- const objectValue = params.values[field.fieldId];
221
- if (!objectValue) {
222
- return validations;
108
+ const executeFieldValidation = async (params)=>{
109
+ const { field } = params;
110
+ if ("object" === field.type) {
111
+ const fields = field.settings?.fields;
112
+ if (!Array.isArray(fields)) return [];
113
+ const validations = [];
114
+ const error = await execValidation({
115
+ ...params,
116
+ field
117
+ });
118
+ if (error) validations.push({
119
+ id: field.id,
120
+ fieldId: field.fieldId,
121
+ storageId: field.storageId,
122
+ error,
123
+ parents: params.parents
124
+ });
125
+ const objectValue = params.values[field.fieldId];
126
+ if (!objectValue) return validations;
127
+ const values = Array.isArray(objectValue) ? objectValue : [
128
+ objectValue
129
+ ];
130
+ for(const index in values){
131
+ const parents = field.list ? [
132
+ field.fieldId,
133
+ index
134
+ ] : [
135
+ field.fieldId
136
+ ];
137
+ const value = values[index];
138
+ for (const childField of fields){
139
+ const errors = await executeFieldValidation({
140
+ ...params,
141
+ parents: params.parents.concat(parents),
142
+ field: childField,
143
+ values: value
144
+ });
145
+ if (0 !== errors.length) validations.push(...errors);
146
+ }
147
+ }
148
+ return validations;
223
149
  }
224
- const values = Array.isArray(objectValue) ? objectValue : [objectValue];
225
- for (const index in values) {
226
- const parents = field.list ? [field.fieldId, index] : [field.fieldId];
227
- const value = values[index];
228
- for (const childField of fields) {
229
- const errors = await executeFieldValidation({
230
- ...params,
231
- parents: params.parents.concat(parents),
232
- field: childField,
233
- values: value
150
+ if ("dynamicZone" === field.type) {
151
+ const validations = [];
152
+ const error = await execValidation({
153
+ ...params,
154
+ field
155
+ });
156
+ if (error) validations.push({
157
+ id: field.id,
158
+ fieldId: field.fieldId,
159
+ storageId: field.storageId,
160
+ error,
161
+ parents: params.parents
234
162
  });
235
- if (errors.length === 0) {
236
- continue;
163
+ const templates = field.settings?.templates || [];
164
+ for (const template of templates){
165
+ const fields = template.fields;
166
+ const fieldData = params.values[field.fieldId];
167
+ if (!fieldData) continue;
168
+ const values = Array.isArray(fieldData) ? fieldData : [
169
+ fieldData
170
+ ];
171
+ for(const index in values){
172
+ const templateValue = values[index]?.[template.gqlTypeName];
173
+ if (!templateValue) continue;
174
+ const parents = [
175
+ field.fieldId
176
+ ];
177
+ if (field.list) parents.push(index);
178
+ parents.push(template.gqlTypeName);
179
+ for (const childField of fields){
180
+ const errors = await executeFieldValidation({
181
+ ...params,
182
+ parents: params.parents.concat(parents),
183
+ field: childField,
184
+ values: templateValue
185
+ });
186
+ if (0 !== errors.length) validations.push(...errors);
187
+ }
188
+ }
237
189
  }
238
- validations.push(...errors);
239
- }
190
+ return validations;
240
191
  }
241
- return validations;
242
- }
243
- /**
244
- * Dynamic Zone Field
245
- */
246
- //
247
- else if (field.type === "dynamicZone") {
248
- const validations = [];
249
192
  const error = await execValidation({
250
- ...params,
251
- field
193
+ ...params
252
194
  });
253
- if (error) {
254
- validations.push({
255
- id: field.id,
256
- fieldId: field.fieldId,
257
- storageId: field.storageId,
258
- error,
259
- parents: params.parents
260
- });
261
- }
262
- const templates = field.settings?.templates || [];
263
- for (const template of templates) {
264
- const fields = template.fields;
265
- const fieldData = params.values[field.fieldId];
266
- if (!fieldData) {
267
- continue;
268
- }
269
- const values = Array.isArray(fieldData) ? fieldData : [fieldData];
270
- for (const index in values) {
271
- const templateValue = values[index]?.[template.gqlTypeName];
272
- if (!templateValue) {
273
- continue;
274
- }
275
- /**
276
- * Order of the parents must be
277
- * - fieldId
278
- * - index (if multiple values)
279
- * - gqlTypeName
280
- */
281
- const parents = [field.fieldId];
282
- if (field.list) {
283
- parents.push(index);
284
- }
285
- parents.push(template.gqlTypeName);
286
- for (const childField of fields) {
287
- const errors = await executeFieldValidation({
288
- ...params,
289
- parents: params.parents.concat(parents),
290
- field: childField,
291
- values: templateValue
292
- });
293
- if (errors.length === 0) {
294
- continue;
295
- }
296
- validations.push(...errors);
195
+ if (!error) return [];
196
+ return [
197
+ {
198
+ id: field.id,
199
+ fieldId: field.fieldId,
200
+ storageId: field.storageId,
201
+ error,
202
+ parents: params.parents
297
203
  }
298
- }
299
- }
300
- return validations;
301
- }
302
- const error = await execValidation({
303
- ...params
304
- });
305
- if (!error) {
306
- return [];
307
- }
308
- return [{
309
- id: field.id,
310
- fieldId: field.fieldId,
311
- storageId: field.storageId,
312
- error,
313
- parents: params.parents
314
- }];
204
+ ];
315
205
  };
316
- const validate = async params => {
317
- const {
318
- fields
319
- } = params;
320
- const errors = [];
321
- const results = await Promise.all(fields.map(async field => {
322
- return await executeFieldValidation({
323
- ...params,
324
- field
325
- });
326
- }));
327
- for (const result of results) {
328
- if (result.length === 0) {
329
- continue;
330
- }
331
- errors.push(...result);
332
- }
333
- return errors;
206
+ const entryDataValidation_validate = async (params)=>{
207
+ const { fields } = params;
208
+ const errors = [];
209
+ const results = await Promise.all(fields.map(async (field)=>await executeFieldValidation({
210
+ ...params,
211
+ field
212
+ })));
213
+ for (const result of results)if (0 !== result.length) errors.push(...result);
214
+ return errors;
334
215
  };
216
+ export { validateModelEntryData, validateModelEntryDataOrThrow };
335
217
 
336
218
  //# sourceMappingURL=entryDataValidation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["camelCase","EntryValidationError","CmsModelFieldValidatorRegistry","validateValue","params","fieldValidators","value","validatorList","context","field","model","entry","fieldValidator","name","validations","length","validate","result","validator","message","ex","validatePredefinedValue","enabled","values","predefinedValues","Array","isArray","undefined","predefinedValue","getFieldValidation","listValidation","filter","item","runFieldMultipleValuesValidations","initialValues","fieldId","valuesError","valueError","validation","predefinedValueError","runFieldValueValidations","error","execValidation","list","validateModelEntryData","skipValidators","isValidatorSkipped","includes","skippedValidators","Set","registry","container","resolve","validators","getAll","isSkipped","add","push","keys","Object","size","parents","fields","validateModelEntryDataOrThrow","invalidFields","executeFieldValidation","type","settings","id","storageId","objectValue","index","childField","errors","concat","templates","template","fieldData","templateValue","gqlTypeName","results","Promise","all","map"],"sources":["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"],"mappings":"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","ignoreList":[]}
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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"}