@webiny/api-headless-cms 5.43.3 → 6.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/constants.d.ts +1 -1
  2. package/constants.js.map +1 -1
  3. package/context.d.ts +1 -1
  4. package/context.js.map +1 -1
  5. package/crud/AccessControl/AccessControl.d.ts +2 -2
  6. package/crud/AccessControl/AccessControl.js.map +1 -1
  7. package/crud/contentEntry/abstractions/IDeleteEntry.d.ts +1 -1
  8. package/crud/contentEntry/abstractions/IDeleteEntry.js.map +1 -1
  9. package/crud/contentEntry/abstractions/IDeleteEntryOperation.d.ts +1 -1
  10. package/crud/contentEntry/abstractions/IDeleteEntryOperation.js.map +1 -1
  11. package/crud/contentEntry/abstractions/IGetEntriesByIds.d.ts +1 -1
  12. package/crud/contentEntry/abstractions/IGetEntriesByIds.js.map +1 -1
  13. package/crud/contentEntry/abstractions/IGetEntry.d.ts +1 -1
  14. package/crud/contentEntry/abstractions/IGetEntry.js.map +1 -1
  15. package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.d.ts +1 -1
  16. package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.js.map +1 -1
  17. package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.d.ts +1 -1
  18. package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.js.map +1 -1
  19. package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.d.ts +1 -1
  20. package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.js.map +1 -1
  21. package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.d.ts +1 -1
  22. package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.js.map +1 -1
  23. package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.d.ts +1 -1
  24. package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.js.map +1 -1
  25. package/crud/contentEntry/abstractions/IGetRevisionById.d.ts +1 -1
  26. package/crud/contentEntry/abstractions/IGetRevisionById.js.map +1 -1
  27. package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.d.ts +1 -1
  28. package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.js.map +1 -1
  29. package/crud/contentEntry/abstractions/IListEntries.d.ts +2 -2
  30. package/crud/contentEntry/abstractions/IListEntries.js.map +1 -1
  31. package/crud/contentEntry/abstractions/IListEntriesOperation.d.ts +1 -1
  32. package/crud/contentEntry/abstractions/IListEntriesOperation.js.map +1 -1
  33. package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.d.ts +1 -1
  34. package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.js.map +1 -1
  35. package/crud/contentEntry/abstractions/IRestoreEntryFromBin.d.ts +1 -1
  36. package/crud/contentEntry/abstractions/IRestoreEntryFromBin.js.map +1 -1
  37. package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.d.ts +1 -1
  38. package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.js.map +1 -1
  39. package/crud/contentEntry/afterDelete.d.ts +2 -2
  40. package/crud/contentEntry/afterDelete.js.map +1 -1
  41. package/crud/contentEntry/beforeCreate.d.ts +2 -2
  42. package/crud/contentEntry/beforeCreate.js.map +1 -1
  43. package/crud/contentEntry/beforeUpdate.d.ts +2 -2
  44. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  45. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +5 -5
  46. package/crud/contentEntry/entryDataFactories/createEntryData.js +1 -1
  47. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -1
  48. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +5 -5
  49. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -1
  50. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +4 -4
  51. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -1
  52. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +2 -2
  53. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -1
  54. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +4 -4
  55. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -1
  56. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +4 -4
  57. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -1
  58. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +1 -1
  59. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -1
  60. package/crud/contentEntry/entryDataValidation.d.ts +1 -1
  61. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  62. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  63. package/crud/contentEntry/markLockedFields.js.map +1 -1
  64. package/crud/contentEntry/referenceFieldsMapping.d.ts +1 -1
  65. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  66. package/crud/contentEntry/searchableFields.d.ts +3 -3
  67. package/crud/contentEntry/searchableFields.js +51 -4
  68. package/crud/contentEntry/searchableFields.js.map +1 -1
  69. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.d.ts +3 -3
  70. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.js.map +1 -1
  71. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.d.ts +2 -2
  72. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.js.map +1 -1
  73. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.d.ts +3 -3
  74. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.js.map +1 -1
  75. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.d.ts +3 -3
  76. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.js.map +1 -1
  77. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.d.ts +3 -3
  78. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.js.map +1 -1
  79. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.d.ts +2 -2
  80. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.js.map +1 -1
  81. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.d.ts +3 -3
  82. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.js.map +1 -1
  83. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.d.ts +1 -1
  84. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.js.map +1 -1
  85. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.d.ts +2 -2
  86. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js.map +1 -1
  87. package/crud/contentEntry/useCases/DeleteEntry/index.d.ts +5 -5
  88. package/crud/contentEntry/useCases/DeleteEntry/index.js.map +1 -1
  89. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.d.ts +7 -5
  90. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.js +6 -2
  91. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.js.map +1 -1
  92. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.d.ts +2 -2
  93. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.js.map +1 -1
  94. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.d.ts +3 -3
  95. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.js.map +1 -1
  96. package/crud/contentEntry/useCases/GetEntriesByIds/index.d.ts +4 -2
  97. package/crud/contentEntry/useCases/GetEntriesByIds/index.js +1 -1
  98. package/crud/contentEntry/useCases/GetEntriesByIds/index.js.map +1 -1
  99. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.d.ts +7 -5
  100. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.js +6 -2
  101. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.js.map +1 -1
  102. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.d.ts +2 -2
  103. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.js.map +1 -1
  104. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.d.ts +3 -3
  105. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.js.map +1 -1
  106. package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.d.ts +4 -2
  107. package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.js +1 -1
  108. package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.js.map +1 -1
  109. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.d.ts +7 -5
  110. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.js +7 -2
  111. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.js.map +1 -1
  112. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.d.ts +2 -2
  113. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.js.map +1 -1
  114. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.d.ts +2 -2
  115. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.js.map +1 -1
  116. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.d.ts +3 -1
  117. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.js +1 -1
  118. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.js.map +1 -1
  119. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.d.ts +7 -5
  120. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.js +7 -2
  121. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.js.map +1 -1
  122. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.d.ts +2 -2
  123. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.js.map +1 -1
  124. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.d.ts +3 -1
  125. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.js +1 -1
  126. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.js.map +1 -1
  127. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.d.ts +7 -5
  128. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.js +6 -2
  129. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.js.map +1 -1
  130. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.d.ts +2 -2
  131. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.js.map +1 -1
  132. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.d.ts +3 -3
  133. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.js.map +1 -1
  134. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.d.ts +4 -2
  135. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.js +1 -1
  136. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.js.map +1 -1
  137. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.d.ts +7 -5
  138. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.js +7 -2
  139. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.js.map +1 -1
  140. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.d.ts +2 -2
  141. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.js.map +1 -1
  142. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.d.ts +3 -1
  143. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.js +1 -1
  144. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.js.map +1 -1
  145. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.d.ts +7 -5
  146. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.js +7 -2
  147. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.js.map +1 -1
  148. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.d.ts +2 -2
  149. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.js.map +1 -1
  150. package/crud/contentEntry/useCases/GetRevisionById/index.d.ts +3 -1
  151. package/crud/contentEntry/useCases/GetRevisionById/index.js +1 -1
  152. package/crud/contentEntry/useCases/GetRevisionById/index.js.map +1 -1
  153. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.d.ts +7 -5
  154. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.js +6 -2
  155. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.js.map +1 -1
  156. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.d.ts +2 -2
  157. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.js.map +1 -1
  158. package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.d.ts +4 -2
  159. package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.js +1 -1
  160. package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.js.map +1 -1
  161. package/crud/contentEntry/useCases/ListEntries/GetEntry.d.ts +2 -2
  162. package/crud/contentEntry/useCases/ListEntries/GetEntry.js.map +1 -1
  163. package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.d.ts +4 -4
  164. package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.js.map +1 -1
  165. package/crud/contentEntry/useCases/ListEntries/ListEntries.d.ts +3 -3
  166. package/crud/contentEntry/useCases/ListEntries/ListEntries.js.map +1 -1
  167. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.d.ts +12 -5
  168. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.js +9 -2
  169. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.js.map +1 -1
  170. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.d.ts +2 -2
  171. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.js.map +1 -1
  172. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.d.ts +2 -2
  173. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.js.map +1 -1
  174. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.d.ts +2 -2
  175. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.js.map +1 -1
  176. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.d.ts +2 -2
  177. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.js.map +1 -1
  178. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.d.ts +3 -3
  179. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.js.map +1 -1
  180. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.d.ts +5 -4
  181. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.js +10 -2
  182. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.js.map +1 -1
  183. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.d.ts +2 -2
  184. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.js.map +1 -1
  185. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.d.ts +2 -2
  186. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.js.map +1 -1
  187. package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.d.ts +5 -5
  188. package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.js.map +1 -1
  189. package/crud/contentEntry/useCases/ListEntries/index.d.ts +6 -4
  190. package/crud/contentEntry/useCases/ListEntries/index.js +2 -2
  191. package/crud/contentEntry/useCases/ListEntries/index.js.map +1 -1
  192. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.d.ts +3 -3
  193. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.js.map +1 -1
  194. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.d.ts +7 -5
  195. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.js +4 -2
  196. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.js.map +1 -1
  197. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.d.ts +3 -3
  198. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.js.map +1 -1
  199. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.d.ts +3 -3
  200. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.js.map +1 -1
  201. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.d.ts +2 -2
  202. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js.map +1 -1
  203. package/crud/contentEntry/useCases/RestoreEntryFromBin/index.d.ts +7 -5
  204. package/crud/contentEntry/useCases/RestoreEntryFromBin/index.js +1 -1
  205. package/crud/contentEntry/useCases/RestoreEntryFromBin/index.js.map +1 -1
  206. package/crud/contentEntry.crud.d.ts +5 -5
  207. package/crud/contentEntry.crud.js +21 -44
  208. package/crud/contentEntry.crud.js.map +1 -1
  209. package/crud/contentModel/beforeCreate.d.ts +2 -2
  210. package/crud/contentModel/beforeCreate.js.map +1 -1
  211. package/crud/contentModel/beforeDelete.d.ts +2 -2
  212. package/crud/contentModel/beforeDelete.js.map +1 -1
  213. package/crud/contentModel/beforeUpdate.d.ts +2 -2
  214. package/crud/contentModel/beforeUpdate.js.map +1 -1
  215. package/crud/contentModel/compatibility/modelApiName.d.ts +1 -1
  216. package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
  217. package/crud/contentModel/contentModelManagerFactory.d.ts +1 -1
  218. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  219. package/crud/contentModel/createFieldStorageId.d.ts +1 -1
  220. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  221. package/crud/contentModel/defaultFields.d.ts +1 -1
  222. package/crud/contentModel/defaultFields.js.map +1 -1
  223. package/crud/contentModel/ensureTypeTag.d.ts +1 -1
  224. package/crud/contentModel/ensureTypeTag.js.map +1 -1
  225. package/crud/contentModel/fields/descriptionField.d.ts +1 -1
  226. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  227. package/crud/contentModel/fields/getApplicableFieldById.d.ts +1 -1
  228. package/crud/contentModel/fields/getApplicableFieldById.js.map +1 -1
  229. package/crud/contentModel/fields/imageField.d.ts +1 -1
  230. package/crud/contentModel/fields/imageField.js.map +1 -1
  231. package/crud/contentModel/fields/titleField.d.ts +1 -1
  232. package/crud/contentModel/fields/titleField.js.map +1 -1
  233. package/crud/contentModel/listModelsFromDatabase.d.ts +3 -3
  234. package/crud/contentModel/listModelsFromDatabase.js.map +1 -1
  235. package/crud/contentModel/validate/endingAllowed.d.ts +1 -1
  236. package/crud/contentModel/validate/endingAllowed.js.map +1 -1
  237. package/crud/contentModel/validate/modelId.d.ts +1 -1
  238. package/crud/contentModel/validate/modelId.js.map +1 -1
  239. package/crud/contentModel/validate/pluralApiName.d.ts +1 -1
  240. package/crud/contentModel/validate/pluralApiName.js.map +1 -1
  241. package/crud/contentModel/validate/singularApiName.d.ts +1 -1
  242. package/crud/contentModel/validate/singularApiName.js.map +1 -1
  243. package/crud/contentModel/validateModel.d.ts +1 -1
  244. package/crud/contentModel/validateModel.js.map +1 -1
  245. package/crud/contentModel/validateModelFields.d.ts +1 -1
  246. package/crud/contentModel/validateModelFields.js.map +1 -1
  247. package/crud/contentModel/validation.d.ts +132 -132
  248. package/crud/contentModel.crud.d.ts +5 -5
  249. package/crud/contentModel.crud.js.map +1 -1
  250. package/crud/contentModelGroup/beforeCreate.d.ts +3 -3
  251. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  252. package/crud/contentModelGroup/beforeDelete.d.ts +3 -3
  253. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  254. package/crud/contentModelGroup/beforeUpdate.d.ts +3 -3
  255. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  256. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +1 -1
  257. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -1
  258. package/crud/contentModelGroup/validation.d.ts +2 -2
  259. package/crud/contentModelGroup.crud.d.ts +5 -5
  260. package/crud/contentModelGroup.crud.js.map +1 -1
  261. package/crud/system.crud.d.ts +4 -4
  262. package/crud/system.crud.js +10 -0
  263. package/crud/system.crud.js.map +1 -1
  264. package/export/crud/exporting.d.ts +2 -2
  265. package/export/crud/exporting.js.map +1 -1
  266. package/export/crud/importing.d.ts +2 -2
  267. package/export/crud/importing.js.map +1 -1
  268. package/export/crud/imports/importData.d.ts +2 -2
  269. package/export/crud/imports/importData.js.map +1 -1
  270. package/export/crud/imports/importGroups.d.ts +2 -2
  271. package/export/crud/imports/importGroups.js.map +1 -1
  272. package/export/crud/imports/importModels.d.ts +2 -2
  273. package/export/crud/imports/importModels.js.map +1 -1
  274. package/export/crud/imports/validateGroups.d.ts +2 -2
  275. package/export/crud/imports/validateGroups.js.map +1 -1
  276. package/export/crud/imports/validateInput.d.ts +2 -2
  277. package/export/crud/imports/validateInput.js.map +1 -1
  278. package/export/crud/imports/validateModels.d.ts +2 -2
  279. package/export/crud/imports/validateModels.js.map +1 -1
  280. package/export/crud/index.d.ts +1 -1
  281. package/export/crud/index.js.map +1 -1
  282. package/export/crud/sanitize.d.ts +2 -2
  283. package/export/crud/sanitize.js.map +1 -1
  284. package/export/graphql/index.d.ts +1 -1
  285. package/export/graphql/index.js.map +1 -1
  286. package/export/types.d.ts +1 -1
  287. package/export/types.js.map +1 -1
  288. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +3 -2
  289. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  290. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +3 -2
  291. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  292. package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +3 -2
  293. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  294. package/graphql/buildSchemaPlugins.d.ts +2 -2
  295. package/graphql/buildSchemaPlugins.js.map +1 -1
  296. package/graphql/checkEndpointAccess.d.ts +1 -1
  297. package/graphql/checkEndpointAccess.js.map +1 -1
  298. package/graphql/createExecutableSchema.d.ts +1 -1
  299. package/graphql/createExecutableSchema.js.map +1 -1
  300. package/graphql/createRequestBody.d.ts +1 -1
  301. package/graphql/createRequestBody.js.map +1 -1
  302. package/graphql/generateSchema.d.ts +2 -2
  303. package/graphql/generateSchema.js.map +1 -1
  304. package/graphql/getSchema/generateCacheId.d.ts +3 -3
  305. package/graphql/getSchema/generateCacheId.js.map +1 -1
  306. package/graphql/getSchema/generateCacheKey.d.ts +1 -1
  307. package/graphql/getSchema/generateCacheKey.js.map +1 -1
  308. package/graphql/getSchema.d.ts +4 -4
  309. package/graphql/getSchema.js.map +1 -1
  310. package/graphql/graphQLHandlerFactory.d.ts +1 -1
  311. package/graphql/graphQLHandlerFactory.js.map +1 -1
  312. package/graphql/handleRequest.d.ts +2 -2
  313. package/graphql/handleRequest.js.map +1 -1
  314. package/graphql/index.d.ts +2 -2
  315. package/graphql/index.js.map +1 -1
  316. package/graphql/scalars/RevisionIdScalarPlugin.d.ts +1 -1
  317. package/graphql/scalars/RevisionIdScalarPlugin.js.map +1 -1
  318. package/graphql/schema/baseContentSchema.d.ts +2 -2
  319. package/graphql/schema/baseContentSchema.js.map +1 -1
  320. package/graphql/schema/baseSchema.js +0 -1
  321. package/graphql/schema/baseSchema.js.map +1 -1
  322. package/graphql/schema/contentEntries.d.ts +2 -2
  323. package/graphql/schema/contentEntries.js.map +1 -1
  324. package/graphql/schema/contentModelGroups.d.ts +2 -2
  325. package/graphql/schema/contentModelGroups.js.map +1 -1
  326. package/graphql/schema/contentModels.d.ts +2 -2
  327. package/graphql/schema/contentModels.js.map +1 -1
  328. package/graphql/schema/createFieldResolvers.d.ts +2 -2
  329. package/graphql/schema/createFieldResolvers.js.map +1 -1
  330. package/graphql/schema/createFieldTypePluginRecords.d.ts +2 -2
  331. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -1
  332. package/graphql/schema/createManageSDL.d.ts +2 -2
  333. package/graphql/schema/createManageSDL.js.map +1 -1
  334. package/graphql/schema/createPreviewResolvers.js +0 -5
  335. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  336. package/graphql/schema/createReadResolvers.js +0 -5
  337. package/graphql/schema/createReadResolvers.js.map +1 -1
  338. package/graphql/schema/createReadSDL.d.ts +2 -2
  339. package/graphql/schema/createReadSDL.js +0 -1
  340. package/graphql/schema/createReadSDL.js.map +1 -1
  341. package/graphql/schema/createSingularSDL.d.ts +1 -1
  342. package/graphql/schema/createSingularSDL.js.map +1 -1
  343. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.d.ts +1 -1
  344. package/graphql/schema/resolvers/manage/normalizeGraphQlInput.js.map +1 -1
  345. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +1 -1
  346. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  347. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +1 -1
  348. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  349. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +1 -1
  350. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  351. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +1 -1
  352. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  353. package/graphql/schema/resolvers/manage/resolveGet.d.ts +1 -1
  354. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  355. package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +1 -1
  356. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  357. package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +1 -1
  358. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  359. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +1 -1
  360. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  361. package/graphql/schema/resolvers/manage/resolveList.d.ts +1 -1
  362. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  363. package/graphql/schema/resolvers/manage/resolveListDeleted.d.ts +1 -1
  364. package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -1
  365. package/graphql/schema/resolvers/manage/resolveMove.d.ts +1 -1
  366. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
  367. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +1 -1
  368. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  369. package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +1 -1
  370. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  371. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.d.ts +1 -1
  372. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -1
  373. package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +1 -1
  374. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  375. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +1 -1
  376. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  377. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +1 -1
  378. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -1
  379. package/graphql/schema/resolvers/preview/resolveGet.d.ts +1 -1
  380. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  381. package/graphql/schema/resolvers/preview/resolveList.d.ts +1 -1
  382. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  383. package/graphql/schema/resolvers/read/resolveGet.d.ts +1 -1
  384. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  385. package/graphql/schema/resolvers/read/resolveList.d.ts +1 -1
  386. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  387. package/graphql/schema/resolvers/singular/resolveGet.d.ts +1 -1
  388. package/graphql/schema/resolvers/singular/resolveGet.js.map +1 -1
  389. package/graphql/schema/resolvers/singular/resolveUpdate.d.ts +1 -1
  390. package/graphql/schema/resolvers/singular/resolveUpdate.js.map +1 -1
  391. package/graphql/schema/schemaPlugins.d.ts +1 -1
  392. package/graphql/schema/schemaPlugins.js.map +1 -1
  393. package/graphql/system.d.ts +1 -1
  394. package/graphql/system.js.map +1 -1
  395. package/graphqlFields/boolean.d.ts +1 -1
  396. package/graphqlFields/boolean.js.map +1 -1
  397. package/graphqlFields/datetime.d.ts +1 -1
  398. package/graphqlFields/datetime.js.map +1 -1
  399. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
  400. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  401. package/graphqlFields/file.d.ts +1 -1
  402. package/graphqlFields/file.js.map +1 -1
  403. package/graphqlFields/helpers.d.ts +1 -1
  404. package/graphqlFields/helpers.js.map +1 -1
  405. package/graphqlFields/index.d.ts +1 -1
  406. package/graphqlFields/index.js +2 -1
  407. package/graphqlFields/index.js.map +1 -1
  408. package/graphqlFields/json.d.ts +1 -1
  409. package/graphqlFields/json.js.map +1 -1
  410. package/graphqlFields/longText.d.ts +1 -1
  411. package/graphqlFields/longText.js.map +1 -1
  412. package/graphqlFields/number.d.ts +1 -1
  413. package/graphqlFields/number.js.map +1 -1
  414. package/graphqlFields/object.d.ts +1 -1
  415. package/graphqlFields/object.js.map +1 -1
  416. package/graphqlFields/ref.d.ts +1 -1
  417. package/graphqlFields/ref.js.map +1 -1
  418. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +1 -1
  419. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -1
  420. package/graphqlFields/richText/richTextResolver.d.ts +2 -2
  421. package/graphqlFields/richText/richTextResolver.js.map +1 -1
  422. package/graphqlFields/richText.d.ts +1 -1
  423. package/graphqlFields/richText.js.map +1 -1
  424. package/graphqlFields/searchableJson.d.ts +2 -0
  425. package/graphqlFields/searchableJson.js +60 -0
  426. package/graphqlFields/searchableJson.js.map +1 -0
  427. package/graphqlFields/text.d.ts +1 -1
  428. package/graphqlFields/text.js.map +1 -1
  429. package/htmlRenderer/LexicalRenderer.d.ts +1 -1
  430. package/htmlRenderer/LexicalRenderer.js.map +1 -1
  431. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -1
  432. package/index.d.ts +3 -3
  433. package/index.js.map +1 -1
  434. package/modelManager/SingletonModelManager.d.ts +1 -1
  435. package/modelManager/SingletonModelManager.js.map +1 -1
  436. package/modelManager/index.d.ts +1 -1
  437. package/modelManager/index.js.map +1 -1
  438. package/package.json +21 -21
  439. package/parameters/header.js.map +1 -1
  440. package/parameters/manual.d.ts +2 -1
  441. package/parameters/manual.js.map +1 -1
  442. package/parameters/path.js.map +1 -1
  443. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +3 -2
  444. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -1
  445. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +1 -1
  446. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  447. package/plugins/CmsGroupPlugin.d.ts +1 -1
  448. package/plugins/CmsGroupPlugin.js.map +1 -1
  449. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  450. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  451. package/plugins/CmsModelPlugin.d.ts +1 -1
  452. package/plugins/CmsModelPlugin.js.map +1 -1
  453. package/plugins/CmsParametersPlugin.d.ts +1 -1
  454. package/plugins/CmsParametersPlugin.js.map +1 -1
  455. package/plugins/StorageOperationsCmsModelPlugin.d.ts +1 -1
  456. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  457. package/plugins/StorageTransformPlugin.d.ts +2 -2
  458. package/plugins/StorageTransformPlugin.js.map +1 -1
  459. package/storage/date.d.ts +1 -1
  460. package/storage/date.js.map +1 -1
  461. package/storage/dynamicZone.js.map +1 -1
  462. package/storage/json.js +34 -5
  463. package/storage/json.js.map +1 -1
  464. package/storage/object.js.map +1 -1
  465. package/types/context.d.ts +7 -7
  466. package/types/context.js.map +1 -1
  467. package/types/fields/dynamicZoneField.d.ts +1 -1
  468. package/types/fields/dynamicZoneField.js.map +1 -1
  469. package/types/fields/objectField.d.ts +1 -1
  470. package/types/fields/objectField.js.map +1 -1
  471. package/types/model.d.ts +3 -3
  472. package/types/model.js.map +1 -1
  473. package/types/modelAst.d.ts +1 -1
  474. package/types/modelAst.js.map +1 -1
  475. package/types/modelField.d.ts +2 -2
  476. package/types/modelField.js.map +1 -1
  477. package/types/modelGroup.d.ts +1 -1
  478. package/types/modelGroup.js.map +1 -1
  479. package/types/plugins.d.ts +6 -6
  480. package/types/plugins.js.map +1 -1
  481. package/types/types.d.ts +20 -43
  482. package/types/types.js.map +1 -1
  483. package/utils/RichTextRenderer.d.ts +2 -2
  484. package/utils/RichTextRenderer.js.map +1 -1
  485. package/utils/caching/Cache.d.ts +1 -1
  486. package/utils/caching/Cache.js.map +1 -1
  487. package/utils/caching/CacheKey.d.ts +2 -2
  488. package/utils/caching/CacheKey.js.map +1 -1
  489. package/utils/contentEntryTraverser/ContentEntryTraverser.d.ts +1 -1
  490. package/utils/contentEntryTraverser/ContentEntryTraverser.js.map +1 -1
  491. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.d.ts +1 -1
  492. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js.map +1 -1
  493. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.d.ts +1 -1
  494. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js.map +1 -1
  495. package/utils/contentModelAst/CmsModelToAstConverter.d.ts +1 -1
  496. package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -1
  497. package/utils/converters/Converter.d.ts +3 -3
  498. package/utils/converters/Converter.js.map +1 -1
  499. package/utils/converters/ConverterCollection.d.ts +2 -2
  500. package/utils/converters/ConverterCollection.js.map +1 -1
  501. package/utils/converters/valueKeyStorageConverter.d.ts +3 -3
  502. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  503. package/utils/createModelField.d.ts +1 -1
  504. package/utils/createModelField.js.map +1 -1
  505. package/utils/createTypeFromFields.d.ts +1 -1
  506. package/utils/createTypeFromFields.js.map +1 -1
  507. package/utils/entryStorage.d.ts +8 -1
  508. package/utils/entryStorage.js +37 -4
  509. package/utils/entryStorage.js.map +1 -1
  510. package/utils/getBaseFieldType.d.ts +1 -1
  511. package/utils/getBaseFieldType.js.map +1 -1
  512. package/utils/getEntryDescription.d.ts +1 -1
  513. package/utils/getEntryDescription.js.map +1 -1
  514. package/utils/getEntryImage.d.ts +1 -1
  515. package/utils/getEntryImage.js.map +1 -1
  516. package/utils/getEntryTitle.d.ts +1 -1
  517. package/utils/getEntryTitle.js.map +1 -1
  518. package/utils/getSchemaFromFieldPlugins.d.ts +4 -4
  519. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  520. package/utils/identity.d.ts +1 -1
  521. package/utils/identity.js.map +1 -1
  522. package/utils/isHeadlessCmsReady.d.ts +1 -1
  523. package/utils/isHeadlessCmsReady.js.map +1 -1
  524. package/utils/modelFieldTraverser/ModelFieldTraverser.d.ts +1 -1
  525. package/utils/modelFieldTraverser/ModelFieldTraverser.js.map +1 -1
  526. package/utils/renderFields.d.ts +1 -1
  527. package/utils/renderFields.js.map +1 -1
  528. package/utils/renderGetFilterFields.d.ts +1 -1
  529. package/utils/renderGetFilterFields.js.map +1 -1
  530. package/utils/renderInputFields.d.ts +1 -1
  531. package/utils/renderInputFields.js.map +1 -1
  532. package/utils/renderListFilterFields.d.ts +1 -1
  533. package/utils/renderListFilterFields.js.map +1 -1
  534. package/utils/renderSortEnum.d.ts +2 -2
  535. package/utils/renderSortEnum.js.map +1 -1
  536. package/validators/dateGte.d.ts +1 -1
  537. package/validators/dateGte.js.map +1 -1
  538. package/validators/dateLte.d.ts +1 -1
  539. package/validators/dateLte.js.map +1 -1
  540. package/validators/gte.d.ts +1 -1
  541. package/validators/gte.js.map +1 -1
  542. package/validators/in.d.ts +1 -1
  543. package/validators/in.js.map +1 -1
  544. package/validators/lte.d.ts +1 -1
  545. package/validators/lte.js.map +1 -1
  546. package/validators/maxLength.d.ts +1 -1
  547. package/validators/maxLength.js.map +1 -1
  548. package/validators/minLength.d.ts +1 -1
  549. package/validators/minLength.js.map +1 -1
  550. package/validators/pattern.d.ts +1 -1
  551. package/validators/pattern.js.map +1 -1
  552. package/validators/patternPlugins/email.d.ts +1 -1
  553. package/validators/patternPlugins/email.js.map +1 -1
  554. package/validators/patternPlugins/index.d.ts +1 -1
  555. package/validators/patternPlugins/index.js.map +1 -1
  556. package/validators/patternPlugins/lowerCase.d.ts +1 -1
  557. package/validators/patternPlugins/lowerCase.js.map +1 -1
  558. package/validators/patternPlugins/lowerCaseSpace.d.ts +1 -1
  559. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  560. package/validators/patternPlugins/upperCase.d.ts +1 -1
  561. package/validators/patternPlugins/upperCase.js.map +1 -1
  562. package/validators/patternPlugins/upperCaseSpace.d.ts +1 -1
  563. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  564. package/validators/patternPlugins/url.d.ts +1 -1
  565. package/validators/patternPlugins/url.js.map +1 -1
  566. package/validators/required.d.ts +1 -1
  567. package/validators/required.js.map +1 -1
  568. package/validators/timeGte.d.ts +1 -1
  569. package/validators/timeGte.js.map +1 -1
  570. package/validators/timeLte.d.ts +1 -1
  571. package/validators/timeLte.js.map +1 -1
  572. package/validators/unique.d.ts +1 -1
  573. package/validators/unique.js.map +1 -1
  574. package/crud/contentEntry/FullTextSearchFields.d.ts +0 -22
  575. package/crud/contentEntry/FullTextSearchFields.js +0 -109
  576. package/crud/contentEntry/FullTextSearchFields.js.map +0 -1
  577. package/graphql/schema/resolvers/preview/resolveGetById.d.ts +0 -7
  578. package/graphql/schema/resolvers/preview/resolveGetById.js +0 -24
  579. package/graphql/schema/resolvers/preview/resolveGetById.js.map +0 -1
  580. package/graphql/schema/resolvers/read/resolveGetById.d.ts +0 -7
  581. package/graphql/schema/resolvers/read/resolveGetById.js +0 -24
  582. package/graphql/schema/resolvers/read/resolveGetById.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { Topic } from "@webiny/pubsub/types";
2
- import { OnEntryBeforeUpdateTopicParams, CmsContext } from "../../types";
1
+ import type { Topic } from "@webiny/pubsub/types";
2
+ import type { OnEntryBeforeUpdateTopicParams, CmsContext } from "../../types";
3
3
  interface AssignBeforeEntryUpdateParams {
4
4
  context: CmsContext;
5
5
  onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;
@@ -1 +1 @@
1
- {"version":3,"names":["_markLockedFields","require","assignBeforeEntryUpdate","params","context","onEntryBeforeUpdate","subscribe","entry","model","markLockedFields","exports"],"sources":["beforeUpdate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeUpdateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryUpdateParams {\n context: CmsContext;\n onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;\n}\nexport const assignBeforeEntryUpdate = (params: AssignBeforeEntryUpdateParams) => {\n const { context, onEntryBeforeUpdate } = params;\n\n onEntryBeforeUpdate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAR,uBAAA,GAAAA,uBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_markLockedFields","require","assignBeforeEntryUpdate","params","context","onEntryBeforeUpdate","subscribe","entry","model","markLockedFields","exports"],"sources":["beforeUpdate.ts"],"sourcesContent":["import type { Topic } from \"@webiny/pubsub/types\";\nimport type { OnEntryBeforeUpdateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryUpdateParams {\n context: CmsContext;\n onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;\n}\nexport const assignBeforeEntryUpdate = (params: AssignBeforeEntryUpdateParams) => {\n const { context, onEntryBeforeUpdate } = params;\n\n onEntryBeforeUpdate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAR,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- import { CmsContext, CmsEntry, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "../../../types";
2
- import { I18NLocale } from "@webiny/api-i18n/types";
3
- import { SecurityIdentity } from "@webiny/api-security/types";
4
- import { Tenant } from "@webiny/api-tenancy/types";
5
- import { AccessControl } from "../../AccessControl/AccessControl";
1
+ import type { CmsContext, CmsEntry, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "../../../types";
2
+ import type { I18NLocale } from "@webiny/api-i18n/types";
3
+ import type { SecurityIdentity } from "@webiny/api-security/types";
4
+ import type { Tenant } from "@webiny/api-tenancy/types";
5
+ import type { AccessControl } from "../../AccessControl/AccessControl";
6
6
  type CreateEntryDataParams = {
7
7
  model: CmsModel;
8
8
  rawInput: CreateCmsEntryInput;
@@ -34,7 +34,7 @@ const createEntryData = async ({
34
34
  context,
35
35
  model,
36
36
  input: initialInput,
37
- validateEntries: options?.validateReferencedEntries !== false
37
+ validateEntries: true
38
38
  });
39
39
  const locale = getLocale();
40
40
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["_date","require","_constants","_error","_interopRequireDefault","_entryDataValidation","_referenceFieldsMapping","_utils","_statuses","_identity","createEntryData","model","rawInput","options","context","getIdentity","getSecurityIdentity","getLocale","getTenant","accessControl","initialInput","mapAndCleanCreateInputData","validateModelEntryDataOrThrow","data","skipValidators","input","referenceFieldsMapping","validateEntries","validateReferencedEntries","locale","id","entryId","version","createEntryId","currentIdentity","currentDateTime","Date","status","STATUS_DRAFT","STATUS_PUBLISHED","ensureCanAccessEntry","pw","STATUS_UNPUBLISHED","locked","revisionLevelPublishingMetaFields","revisionFirstPublishedOn","revisionLastPublishedOn","revisionFirstPublishedBy","revisionLastPublishedBy","entryLevelPublishingMetaFields","firstPublishedOn","lastPublishedOn","firstPublishedBy","lastPublishedBy","getDate","entry","webinyVersion","WEBINY_VERSION","tenant","modelId","code","createdOn","modifiedOn","savedOn","deletedOn","restoredOn","createdBy","modifiedBy","savedBy","deletedBy","restoredBy","revisionCreatedOn","revisionModifiedOn","revisionSavedOn","revisionDeletedOn","revisionRestoredOn","revisionCreatedBy","revisionModifiedBy","revisionSavedBy","revisionDeletedBy","revisionRestoredBy","values","location","folderId","wbyAco_location","ROOT_FOLDER","structuredClone","exports","convertDefaultValue","field","value","type","Boolean","Number","getDefaultValue","settings","multipleValues","defaultValue","undefined","predefinedValues","enabled","Array","isArray","selectedValue","find","selected","filter","map","fields","reduce","acc","fieldId","WebinyError","mdbid","match","createIdentifier"],"sources":["createEntryData.ts"],"sourcesContent":["import {\n CmsContext,\n CmsEntry,\n CmsModel,\n CmsModelField,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput\n} from \"~/types\";\nimport { getDate } from \"~/utils/date\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport WebinyError from \"@webiny/error\";\nimport { validateModelEntryDataOrThrow } from \"~/crud/contentEntry/entryDataValidation\";\nimport { referenceFieldsMapping } from \"~/crud/contentEntry/referenceFieldsMapping\";\nimport { createIdentifier, mdbid } from \"@webiny/utils\";\nimport { STATUS_DRAFT, STATUS_PUBLISHED, STATUS_UNPUBLISHED } from \"./statuses\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { AccessControl } from \"~/crud/AccessControl/AccessControl\";\n\ntype DefaultValue = boolean | number | string | null;\n\ntype CreateEntryDataParams = {\n model: CmsModel;\n rawInput: CreateCmsEntryInput;\n options?: CreateCmsEntryOptionsInput;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n accessControl: AccessControl;\n};\n\nexport const createEntryData = async ({\n model,\n rawInput,\n options,\n context,\n getIdentity: getSecurityIdentity,\n getLocale,\n getTenant,\n accessControl\n}: CreateEntryDataParams): Promise<{\n entry: CmsEntry;\n input: Record<string, any>;\n}> => {\n const initialInput = mapAndCleanCreateInputData(model, rawInput);\n\n await validateModelEntryDataOrThrow({\n context,\n model,\n data: initialInput,\n skipValidators: options?.skipValidators\n });\n\n const input = await referenceFieldsMapping({\n context,\n model,\n input: initialInput,\n validateEntries: options?.validateReferencedEntries !== false\n });\n\n const locale = getLocale();\n\n const { id, entryId, version } = createEntryId(rawInput);\n\n /**\n * There is a possibility that user sends an ID in the input, so we will use that one.\n * There is no check if the ID is unique or not, that is up to the user.\n */\n const currentIdentity = getSecurityIdentity();\n const currentDateTime = new Date();\n\n /**\n * Users can set the initial status of the entry. If so, we need to make\n * sure they have the required permissions and also that all the fields\n * are filled in correctly.\n */\n const status = rawInput.status || STATUS_DRAFT;\n if (status !== STATUS_DRAFT) {\n if (status === STATUS_PUBLISHED) {\n await accessControl.ensureCanAccessEntry({ model, pw: \"p\" });\n } else if (status === STATUS_UNPUBLISHED) {\n // If setting the status other than draft, we have to check if the user has permissions to publish.\n await accessControl.ensureCanAccessEntry({ model, pw: \"u\" });\n }\n }\n\n const locked = status !== STATUS_DRAFT;\n\n let revisionLevelPublishingMetaFields: Pick<\n CmsEntry,\n | \"revisionFirstPublishedOn\"\n | \"revisionLastPublishedOn\"\n | \"revisionFirstPublishedBy\"\n | \"revisionLastPublishedBy\"\n > = {\n revisionFirstPublishedOn: null,\n revisionLastPublishedOn: null,\n revisionFirstPublishedBy: null,\n revisionLastPublishedBy: null\n };\n\n let entryLevelPublishingMetaFields: Pick<\n CmsEntry,\n \"firstPublishedOn\" | \"lastPublishedOn\" | \"firstPublishedBy\" | \"lastPublishedBy\"\n > = {\n firstPublishedOn: null,\n lastPublishedOn: null,\n firstPublishedBy: null,\n lastPublishedBy: null\n };\n\n if (status === STATUS_PUBLISHED) {\n revisionLevelPublishingMetaFields = {\n revisionFirstPublishedOn: getDate(rawInput.revisionFirstPublishedOn, currentDateTime),\n revisionLastPublishedOn: getDate(rawInput.revisionLastPublishedOn, currentDateTime),\n revisionFirstPublishedBy: getIdentity(\n rawInput.revisionFirstPublishedBy,\n currentIdentity\n ),\n revisionLastPublishedBy: getIdentity(rawInput.revisionLastPublishedBy, currentIdentity)\n };\n\n entryLevelPublishingMetaFields = {\n firstPublishedOn: getDate(rawInput.firstPublishedOn, currentDateTime),\n lastPublishedOn: getDate(rawInput.lastPublishedOn, currentDateTime),\n firstPublishedBy: getIdentity(rawInput.firstPublishedBy, currentIdentity),\n lastPublishedBy: getIdentity(rawInput.lastPublishedBy, currentIdentity)\n };\n }\n\n const entry: CmsEntry = {\n webinyVersion: context.WEBINY_VERSION,\n tenant: getTenant().id,\n entryId,\n id,\n modelId: model.modelId,\n locale: locale.code,\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: getDate(rawInput.createdOn, currentDateTime),\n modifiedOn: getDate(rawInput.modifiedOn, null),\n savedOn: getDate(rawInput.savedOn, currentDateTime),\n deletedOn: getDate(rawInput.deletedOn, null),\n restoredOn: getDate(rawInput.restoredOn, null),\n createdBy: getIdentity(rawInput.createdBy, currentIdentity),\n modifiedBy: getIdentity(rawInput.modifiedBy, null),\n savedBy: getIdentity(rawInput.savedBy, currentIdentity),\n deletedBy: getIdentity(rawInput.deletedBy, null),\n restoredBy: getIdentity(rawInput.restoredBy, null),\n ...entryLevelPublishingMetaFields,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: getDate(rawInput.revisionCreatedOn, currentDateTime),\n revisionModifiedOn: getDate(rawInput.revisionModifiedOn, null),\n revisionSavedOn: getDate(rawInput.revisionSavedOn, currentDateTime),\n revisionDeletedOn: getDate(rawInput.revisionDeletedOn, null),\n revisionRestoredOn: getDate(rawInput.revisionRestoredOn, null),\n revisionCreatedBy: getIdentity(rawInput.revisionCreatedBy, currentIdentity),\n revisionModifiedBy: getIdentity(rawInput.revisionModifiedBy, null),\n revisionSavedBy: getIdentity(rawInput.revisionSavedBy, currentIdentity),\n revisionDeletedBy: getIdentity(rawInput.revisionDeletedBy, null),\n revisionRestoredBy: getIdentity(rawInput.revisionRestoredBy, null),\n ...revisionLevelPublishingMetaFields,\n\n version,\n status,\n locked,\n values: input,\n location: {\n folderId: rawInput.wbyAco_location?.folderId || ROOT_FOLDER\n }\n };\n\n if (status !== STATUS_DRAFT) {\n if (status === STATUS_PUBLISHED) {\n await accessControl.ensureCanAccessEntry({ model, entry, pw: \"p\" });\n } else if (status === STATUS_UNPUBLISHED) {\n // If setting the status other than draft, we have to check if the user has permissions to publish.\n await accessControl.ensureCanAccessEntry({ model, entry, pw: \"u\" });\n }\n }\n\n return { entry, input: structuredClone(input) };\n};\n\n/**\n * Used for some fields to convert their values.\n */\nconst convertDefaultValue = (field: CmsModelField, value: DefaultValue): DefaultValue => {\n switch (field.type) {\n case \"boolean\":\n return Boolean(value);\n case \"number\":\n return Number(value);\n default:\n return value;\n }\n};\n\nconst getDefaultValue = (field: CmsModelField): (DefaultValue | DefaultValue[]) | undefined => {\n const { settings, multipleValues } = field;\n if (settings && settings.defaultValue !== undefined) {\n return convertDefaultValue(field, settings.defaultValue);\n }\n const { predefinedValues } = field;\n if (\n !predefinedValues ||\n !predefinedValues.enabled ||\n Array.isArray(predefinedValues.values) === false\n ) {\n return undefined;\n }\n if (!multipleValues) {\n const selectedValue = predefinedValues.values.find(value => {\n return !!value.selected;\n });\n if (selectedValue) {\n return convertDefaultValue(field, selectedValue.value);\n }\n return undefined;\n }\n return predefinedValues.values\n .filter(({ selected }) => !!selected)\n .map(({ value }) => {\n return convertDefaultValue(field, value);\n });\n};\n\n/**\n * Cleans and adds default values to create input data.\n */\nconst mapAndCleanCreateInputData = (model: CmsModel, input: CreateCmsEntryInput) => {\n return model.fields.reduce<CreateCmsEntryInput>((acc, field) => {\n /**\n * This should never happen, but let's make it sure.\n * The fix would be for the user to add the fieldId on the field definition.\n */\n if (!field.fieldId) {\n throw new WebinyError(\"Field does not have an fieldId.\", \"MISSING_FIELD_ID\", {\n field\n });\n }\n const value = input[field.fieldId];\n /**\n * We set the default value on create input if value is not defined.\n */\n acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;\n return acc;\n }, {});\n};\n\nconst createEntryId = (input: CreateCmsEntryInput) => {\n let entryId = mdbid();\n if (input.id) {\n if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\\-]+)([a-zA-Z0-9])$/) === null) {\n throw new WebinyError(\n \"The provided ID is not valid. It must be a string which can be A-Z, a-z, 0-9, - and it cannot start or end with a -.\",\n \"INVALID_ID\",\n {\n id: input.id\n }\n );\n }\n entryId = input.id;\n }\n const version = 1;\n return {\n entryId,\n version,\n id: createIdentifier({\n id: entryId,\n version\n })\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_date","require","_constants","_error","_interopRequireDefault","_entryDataValidation","_referenceFieldsMapping","_utils","_statuses","_identity","createEntryData","model","rawInput","options","context","getIdentity","getSecurityIdentity","getLocale","getTenant","accessControl","initialInput","mapAndCleanCreateInputData","validateModelEntryDataOrThrow","data","skipValidators","input","referenceFieldsMapping","validateEntries","locale","id","entryId","version","createEntryId","currentIdentity","currentDateTime","Date","status","STATUS_DRAFT","STATUS_PUBLISHED","ensureCanAccessEntry","pw","STATUS_UNPUBLISHED","locked","revisionLevelPublishingMetaFields","revisionFirstPublishedOn","revisionLastPublishedOn","revisionFirstPublishedBy","revisionLastPublishedBy","entryLevelPublishingMetaFields","firstPublishedOn","lastPublishedOn","firstPublishedBy","lastPublishedBy","getDate","entry","webinyVersion","WEBINY_VERSION","tenant","modelId","code","createdOn","modifiedOn","savedOn","deletedOn","restoredOn","createdBy","modifiedBy","savedBy","deletedBy","restoredBy","revisionCreatedOn","revisionModifiedOn","revisionSavedOn","revisionDeletedOn","revisionRestoredOn","revisionCreatedBy","revisionModifiedBy","revisionSavedBy","revisionDeletedBy","revisionRestoredBy","values","location","folderId","wbyAco_location","ROOT_FOLDER","structuredClone","exports","convertDefaultValue","field","value","type","Boolean","Number","getDefaultValue","settings","multipleValues","defaultValue","undefined","predefinedValues","enabled","Array","isArray","selectedValue","find","selected","filter","map","fields","reduce","acc","fieldId","WebinyError","mdbid","match","createIdentifier"],"sources":["createEntryData.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsEntry,\n CmsModel,\n CmsModelField,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput\n} from \"~/types\";\nimport { getDate } from \"~/utils/date\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport WebinyError from \"@webiny/error\";\nimport { validateModelEntryDataOrThrow } from \"~/crud/contentEntry/entryDataValidation\";\nimport { referenceFieldsMapping } from \"~/crud/contentEntry/referenceFieldsMapping\";\nimport { createIdentifier, mdbid } from \"@webiny/utils\";\nimport { STATUS_DRAFT, STATUS_PUBLISHED, STATUS_UNPUBLISHED } from \"./statuses\";\nimport type { I18NLocale } from \"@webiny/api-i18n/types\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport type { Tenant } from \"@webiny/api-tenancy/types\";\nimport { getIdentity } from \"~/utils/identity\";\nimport type { AccessControl } from \"~/crud/AccessControl/AccessControl\";\n\ntype DefaultValue = boolean | number | string | null;\n\ntype CreateEntryDataParams = {\n model: CmsModel;\n rawInput: CreateCmsEntryInput;\n options?: CreateCmsEntryOptionsInput;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n accessControl: AccessControl;\n};\n\nexport const createEntryData = async ({\n model,\n rawInput,\n options,\n context,\n getIdentity: getSecurityIdentity,\n getLocale,\n getTenant,\n accessControl\n}: CreateEntryDataParams): Promise<{\n entry: CmsEntry;\n input: Record<string, any>;\n}> => {\n const initialInput = mapAndCleanCreateInputData(model, rawInput);\n\n await validateModelEntryDataOrThrow({\n context,\n model,\n data: initialInput,\n skipValidators: options?.skipValidators\n });\n\n const input = await referenceFieldsMapping({\n context,\n model,\n input: initialInput,\n validateEntries: true\n });\n\n const locale = getLocale();\n\n const { id, entryId, version } = createEntryId(rawInput);\n\n /**\n * There is a possibility that user sends an ID in the input, so we will use that one.\n * There is no check if the ID is unique or not, that is up to the user.\n */\n const currentIdentity = getSecurityIdentity();\n const currentDateTime = new Date();\n\n /**\n * Users can set the initial status of the entry. If so, we need to make\n * sure they have the required permissions and also that all the fields\n * are filled in correctly.\n */\n const status = rawInput.status || STATUS_DRAFT;\n if (status !== STATUS_DRAFT) {\n if (status === STATUS_PUBLISHED) {\n await accessControl.ensureCanAccessEntry({ model, pw: \"p\" });\n } else if (status === STATUS_UNPUBLISHED) {\n // If setting the status other than draft, we have to check if the user has permissions to publish.\n await accessControl.ensureCanAccessEntry({ model, pw: \"u\" });\n }\n }\n\n const locked = status !== STATUS_DRAFT;\n\n let revisionLevelPublishingMetaFields: Pick<\n CmsEntry,\n | \"revisionFirstPublishedOn\"\n | \"revisionLastPublishedOn\"\n | \"revisionFirstPublishedBy\"\n | \"revisionLastPublishedBy\"\n > = {\n revisionFirstPublishedOn: null,\n revisionLastPublishedOn: null,\n revisionFirstPublishedBy: null,\n revisionLastPublishedBy: null\n };\n\n let entryLevelPublishingMetaFields: Pick<\n CmsEntry,\n \"firstPublishedOn\" | \"lastPublishedOn\" | \"firstPublishedBy\" | \"lastPublishedBy\"\n > = {\n firstPublishedOn: null,\n lastPublishedOn: null,\n firstPublishedBy: null,\n lastPublishedBy: null\n };\n\n if (status === STATUS_PUBLISHED) {\n revisionLevelPublishingMetaFields = {\n revisionFirstPublishedOn: getDate(rawInput.revisionFirstPublishedOn, currentDateTime),\n revisionLastPublishedOn: getDate(rawInput.revisionLastPublishedOn, currentDateTime),\n revisionFirstPublishedBy: getIdentity(\n rawInput.revisionFirstPublishedBy,\n currentIdentity\n ),\n revisionLastPublishedBy: getIdentity(rawInput.revisionLastPublishedBy, currentIdentity)\n };\n\n entryLevelPublishingMetaFields = {\n firstPublishedOn: getDate(rawInput.firstPublishedOn, currentDateTime),\n lastPublishedOn: getDate(rawInput.lastPublishedOn, currentDateTime),\n firstPublishedBy: getIdentity(rawInput.firstPublishedBy, currentIdentity),\n lastPublishedBy: getIdentity(rawInput.lastPublishedBy, currentIdentity)\n };\n }\n\n const entry: CmsEntry = {\n webinyVersion: context.WEBINY_VERSION,\n tenant: getTenant().id,\n entryId,\n id,\n modelId: model.modelId,\n locale: locale.code,\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: getDate(rawInput.createdOn, currentDateTime),\n modifiedOn: getDate(rawInput.modifiedOn, null),\n savedOn: getDate(rawInput.savedOn, currentDateTime),\n deletedOn: getDate(rawInput.deletedOn, null),\n restoredOn: getDate(rawInput.restoredOn, null),\n createdBy: getIdentity(rawInput.createdBy, currentIdentity),\n modifiedBy: getIdentity(rawInput.modifiedBy, null),\n savedBy: getIdentity(rawInput.savedBy, currentIdentity),\n deletedBy: getIdentity(rawInput.deletedBy, null),\n restoredBy: getIdentity(rawInput.restoredBy, null),\n ...entryLevelPublishingMetaFields,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: getDate(rawInput.revisionCreatedOn, currentDateTime),\n revisionModifiedOn: getDate(rawInput.revisionModifiedOn, null),\n revisionSavedOn: getDate(rawInput.revisionSavedOn, currentDateTime),\n revisionDeletedOn: getDate(rawInput.revisionDeletedOn, null),\n revisionRestoredOn: getDate(rawInput.revisionRestoredOn, null),\n revisionCreatedBy: getIdentity(rawInput.revisionCreatedBy, currentIdentity),\n revisionModifiedBy: getIdentity(rawInput.revisionModifiedBy, null),\n revisionSavedBy: getIdentity(rawInput.revisionSavedBy, currentIdentity),\n revisionDeletedBy: getIdentity(rawInput.revisionDeletedBy, null),\n revisionRestoredBy: getIdentity(rawInput.revisionRestoredBy, null),\n ...revisionLevelPublishingMetaFields,\n\n version,\n status,\n locked,\n values: input,\n location: {\n folderId: rawInput.wbyAco_location?.folderId || ROOT_FOLDER\n }\n };\n\n if (status !== STATUS_DRAFT) {\n if (status === STATUS_PUBLISHED) {\n await accessControl.ensureCanAccessEntry({ model, entry, pw: \"p\" });\n } else if (status === STATUS_UNPUBLISHED) {\n // If setting the status other than draft, we have to check if the user has permissions to publish.\n await accessControl.ensureCanAccessEntry({ model, entry, pw: \"u\" });\n }\n }\n\n return { entry, input: structuredClone(input) };\n};\n\n/**\n * Used for some fields to convert their values.\n */\nconst convertDefaultValue = (field: CmsModelField, value: DefaultValue): DefaultValue => {\n switch (field.type) {\n case \"boolean\":\n return Boolean(value);\n case \"number\":\n return Number(value);\n default:\n return value;\n }\n};\n\nconst getDefaultValue = (field: CmsModelField): (DefaultValue | DefaultValue[]) | undefined => {\n const { settings, multipleValues } = field;\n if (settings && settings.defaultValue !== undefined) {\n return convertDefaultValue(field, settings.defaultValue);\n }\n const { predefinedValues } = field;\n if (\n !predefinedValues ||\n !predefinedValues.enabled ||\n Array.isArray(predefinedValues.values) === false\n ) {\n return undefined;\n }\n if (!multipleValues) {\n const selectedValue = predefinedValues.values.find(value => {\n return !!value.selected;\n });\n if (selectedValue) {\n return convertDefaultValue(field, selectedValue.value);\n }\n return undefined;\n }\n return predefinedValues.values\n .filter(({ selected }) => !!selected)\n .map(({ value }) => {\n return convertDefaultValue(field, value);\n });\n};\n\n/**\n * Cleans and adds default values to create input data.\n */\nconst mapAndCleanCreateInputData = (model: CmsModel, input: CreateCmsEntryInput) => {\n return model.fields.reduce<CreateCmsEntryInput>((acc, field) => {\n /**\n * This should never happen, but let's make it sure.\n * The fix would be for the user to add the fieldId on the field definition.\n */\n if (!field.fieldId) {\n throw new WebinyError(\"Field does not have an fieldId.\", \"MISSING_FIELD_ID\", {\n field\n });\n }\n const value = input[field.fieldId];\n /**\n * We set the default value on create input if value is not defined.\n */\n acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;\n return acc;\n }, {});\n};\n\nconst createEntryId = (input: CreateCmsEntryInput) => {\n let entryId = mdbid();\n if (input.id) {\n if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\\-]+)([a-zA-Z0-9])$/) === null) {\n throw new WebinyError(\n \"The provided ID is not valid. It must be a string which can be A-Z, a-z, 0-9, - and it cannot start or end with a -.\",\n \"INVALID_ID\",\n {\n id: input.id\n }\n );\n }\n entryId = input.id;\n }\n const version = 1;\n return {\n entryId,\n version,\n id: createIdentifier({\n id: entryId,\n version\n })\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- import { CmsContext, CmsEntry, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "../../../types";
2
- import { SecurityIdentity } from "@webiny/api-security/types";
3
- import { Tenant } from "@webiny/api-tenancy/types";
4
- import { I18NLocale } from "@webiny/api-i18n/types";
5
- import { AccessControl } from "../../AccessControl/AccessControl";
1
+ import type { CmsContext, CmsEntry, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "../../../types";
2
+ import type { SecurityIdentity } from "@webiny/api-security/types";
3
+ import type { Tenant } from "@webiny/api-tenancy/types";
4
+ import type { I18NLocale } from "@webiny/api-i18n/types";
5
+ import type { AccessControl } from "../../AccessControl/AccessControl";
6
6
  type CreateEntryRevisionFromDataParams = {
7
7
  sourceId: string;
8
8
  model: CmsModel;
@@ -1 +1 @@
1
- {"version":3,"names":["_date","require","_identity","_mapAndCleanUpdatedInputData","_entryDataValidation","_referenceFieldsMapping","_utils","_error","_interopRequireDefault","_statuses","createEntryRevisionFromData","sourceId","model","rawInput","options","context","getIdentity","getSecurityIdentity","originalEntry","latestStorageEntry","accessControl","input","mapAndCleanUpdatedInputData","initialValues","values","validateModelEntryDataOrThrow","data","entry","skipValidators","referenceFieldsMapping","validateEntries","latestId","id","version","nextVersion","increaseEntryIdVersion","currentIdentity","currentDateTime","Date","status","STATUS_DRAFT","STATUS_PUBLISHED","ensureCanAccessEntry","pw","STATUS_UNPUBLISHED","locked","revisionLevelPublishingMetaFields","revisionFirstPublishedOn","getDate","revisionLastPublishedOn","revisionFirstPublishedBy","revisionLastPublishedBy","entryLevelPublishingMetaFields","firstPublishedOn","lastPublishedOn","firstPublishedBy","lastPublishedBy","createdOn","savedOn","modifiedOn","createdBy","savedBy","modifiedBy","revisionCreatedOn","revisionSavedOn","revisionModifiedOn","revisionCreatedBy","revisionSavedBy","revisionModifiedBy","exports","entryId","parseIdentifier","WebinyError","createIdentifier"],"sources":["createEntryRevisionFromData.ts"],"sourcesContent":["import {\n CmsContext,\n CmsEntry,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput\n} from \"~/types\";\nimport { getDate } from \"~/utils/date\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { mapAndCleanUpdatedInputData } from \".//mapAndCleanUpdatedInputData\";\nimport { validateModelEntryDataOrThrow } from \"../entryDataValidation\";\nimport { referenceFieldsMapping } from \"../referenceFieldsMapping\";\nimport { createIdentifier, parseIdentifier } from \"@webiny/utils\";\nimport WebinyError from \"@webiny/error\";\nimport { STATUS_DRAFT, STATUS_PUBLISHED, STATUS_UNPUBLISHED } from \"./statuses\";\nimport { AccessControl } from \"~/crud/AccessControl/AccessControl\";\n\ntype CreateEntryRevisionFromDataParams = {\n sourceId: string;\n model: CmsModel;\n rawInput: CreateCmsEntryInput;\n options?: CreateCmsEntryOptionsInput;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n originalEntry: CmsEntry;\n latestStorageEntry: CmsEntry;\n accessControl: AccessControl;\n};\n\nexport const createEntryRevisionFromData = async ({\n sourceId,\n model,\n rawInput,\n options,\n context,\n getIdentity: getSecurityIdentity,\n originalEntry,\n latestStorageEntry,\n accessControl\n}: CreateEntryRevisionFromDataParams): Promise<{\n entry: CmsEntry;\n input: Record<string, any>;\n}> => {\n /**\n * Make sure we only work with fields that are defined in the model.\n */\n const input = mapAndCleanUpdatedInputData(model, rawInput);\n\n const initialValues = {\n ...originalEntry.values,\n ...input\n };\n\n await validateModelEntryDataOrThrow({\n context,\n model,\n data: initialValues,\n entry: originalEntry,\n skipValidators: options?.skipValidators\n });\n\n const values = await referenceFieldsMapping({\n context,\n model,\n input: initialValues,\n validateEntries: false\n });\n\n const latestId = latestStorageEntry ? latestStorageEntry.id : sourceId;\n const { id, version: nextVersion } = increaseEntryIdVersion(latestId);\n\n const currentIdentity = getSecurityIdentity();\n const currentDateTime = new Date();\n\n /**\n * Users can set the initial status of the entry. If so, we need to make\n * sure they have the required permissions and also that all the fields\n * are filled in correctly.\n */\n const status = rawInput.status || STATUS_DRAFT;\n if (status !== STATUS_DRAFT) {\n if (status === STATUS_PUBLISHED) {\n await accessControl.ensureCanAccessEntry({ model, pw: \"p\" });\n } else if (status === STATUS_UNPUBLISHED) {\n // If setting the status other than draft, we have to check if the user has permissions to publish.\n await accessControl.ensureCanAccessEntry({ model, pw: \"u\" });\n }\n }\n\n const locked = status !== STATUS_DRAFT;\n\n let revisionLevelPublishingMetaFields: Pick<\n CmsEntry,\n | \"revisionFirstPublishedOn\"\n | \"revisionLastPublishedOn\"\n | \"revisionFirstPublishedBy\"\n | \"revisionLastPublishedBy\"\n > = {\n revisionFirstPublishedOn: getDate(rawInput.revisionFirstPublishedOn, null),\n revisionLastPublishedOn: getDate(rawInput.revisionLastPublishedOn, null),\n revisionFirstPublishedBy: getIdentity(rawInput.revisionFirstPublishedBy, null),\n revisionLastPublishedBy: getIdentity(rawInput.revisionLastPublishedBy, null)\n };\n\n let entryLevelPublishingMetaFields: Pick<\n CmsEntry,\n \"firstPublishedOn\" | \"lastPublishedOn\" | \"firstPublishedBy\" | \"lastPublishedBy\"\n > = {\n firstPublishedOn: getDate(rawInput.firstPublishedOn, latestStorageEntry.firstPublishedOn),\n lastPublishedOn: getDate(rawInput.lastPublishedOn, latestStorageEntry.lastPublishedOn),\n firstPublishedBy: getIdentity(\n rawInput.firstPublishedBy,\n latestStorageEntry.firstPublishedBy\n ),\n lastPublishedBy: getIdentity(rawInput.lastPublishedBy, latestStorageEntry.lastPublishedBy)\n };\n\n if (status === STATUS_PUBLISHED) {\n revisionLevelPublishingMetaFields = {\n revisionFirstPublishedOn: getDate(rawInput.revisionFirstPublishedOn, currentDateTime),\n revisionLastPublishedOn: getDate(rawInput.revisionLastPublishedOn, currentDateTime),\n revisionFirstPublishedBy: getIdentity(\n rawInput.revisionFirstPublishedBy,\n currentIdentity\n ),\n revisionLastPublishedBy: getIdentity(rawInput.revisionLastPublishedBy, currentIdentity)\n };\n\n entryLevelPublishingMetaFields = {\n firstPublishedOn: getDate(\n rawInput.firstPublishedOn,\n latestStorageEntry.firstPublishedOn\n ),\n lastPublishedOn: getDate(rawInput.lastPublishedOn, currentDateTime),\n firstPublishedBy: getIdentity(\n rawInput.firstPublishedBy,\n latestStorageEntry.firstPublishedBy\n ),\n lastPublishedBy: getIdentity(rawInput.lastPublishedBy, currentIdentity)\n };\n }\n\n const entry: CmsEntry = {\n ...originalEntry,\n id,\n version: nextVersion,\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: getDate(rawInput.createdOn, latestStorageEntry.createdOn),\n savedOn: getDate(rawInput.savedOn, currentDateTime),\n modifiedOn: getDate(rawInput.modifiedOn, currentDateTime),\n createdBy: getIdentity(rawInput.createdBy, latestStorageEntry.createdBy),\n savedBy: getIdentity(rawInput.savedBy, currentIdentity),\n modifiedBy: getIdentity(rawInput.modifiedBy, currentIdentity),\n ...entryLevelPublishingMetaFields,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: getDate(rawInput.revisionCreatedOn, currentDateTime),\n revisionSavedOn: getDate(rawInput.revisionSavedOn, currentDateTime),\n revisionModifiedOn: getDate(rawInput.revisionModifiedOn, null),\n revisionCreatedBy: getIdentity(rawInput.revisionCreatedBy, currentIdentity),\n revisionSavedBy: getIdentity(rawInput.revisionSavedBy, currentIdentity),\n revisionModifiedBy: getIdentity(rawInput.revisionModifiedBy, null),\n ...revisionLevelPublishingMetaFields,\n\n locked,\n status,\n values\n };\n\n return { entry, input };\n};\n\nconst increaseEntryIdVersion = (id: string) => {\n const { id: entryId, version } = parseIdentifier(id);\n if (!version) {\n throw new WebinyError(\n \"Cannot increase version on the ID without the version part.\",\n \"WRONG_ID\",\n {\n id\n }\n );\n }\n return {\n entryId,\n version: version + 1,\n id: createIdentifier({\n id: entryId,\n version: version + 1\n })\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_date","require","_identity","_mapAndCleanUpdatedInputData","_entryDataValidation","_referenceFieldsMapping","_utils","_error","_interopRequireDefault","_statuses","createEntryRevisionFromData","sourceId","model","rawInput","options","context","getIdentity","getSecurityIdentity","originalEntry","latestStorageEntry","accessControl","input","mapAndCleanUpdatedInputData","initialValues","values","validateModelEntryDataOrThrow","data","entry","skipValidators","referenceFieldsMapping","validateEntries","latestId","id","version","nextVersion","increaseEntryIdVersion","currentIdentity","currentDateTime","Date","status","STATUS_DRAFT","STATUS_PUBLISHED","ensureCanAccessEntry","pw","STATUS_UNPUBLISHED","locked","revisionLevelPublishingMetaFields","revisionFirstPublishedOn","getDate","revisionLastPublishedOn","revisionFirstPublishedBy","revisionLastPublishedBy","entryLevelPublishingMetaFields","firstPublishedOn","lastPublishedOn","firstPublishedBy","lastPublishedBy","createdOn","savedOn","modifiedOn","createdBy","savedBy","modifiedBy","revisionCreatedOn","revisionSavedOn","revisionModifiedOn","revisionCreatedBy","revisionSavedBy","revisionModifiedBy","exports","entryId","parseIdentifier","WebinyError","createIdentifier"],"sources":["createEntryRevisionFromData.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsEntry,\n CmsModel,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput\n} from \"~/types\";\nimport { getDate } from \"~/utils/date\";\nimport { getIdentity } from \"~/utils/identity\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport type { Tenant } from \"@webiny/api-tenancy/types\";\nimport type { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { mapAndCleanUpdatedInputData } from \".//mapAndCleanUpdatedInputData\";\nimport { validateModelEntryDataOrThrow } from \"../entryDataValidation\";\nimport { referenceFieldsMapping } from \"../referenceFieldsMapping\";\nimport { createIdentifier, parseIdentifier } from \"@webiny/utils\";\nimport WebinyError from \"@webiny/error\";\nimport { STATUS_DRAFT, STATUS_PUBLISHED, STATUS_UNPUBLISHED } from \"./statuses\";\nimport type { AccessControl } from \"~/crud/AccessControl/AccessControl\";\n\ntype CreateEntryRevisionFromDataParams = {\n sourceId: string;\n model: CmsModel;\n rawInput: CreateCmsEntryInput;\n options?: CreateCmsEntryOptionsInput;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n originalEntry: CmsEntry;\n latestStorageEntry: CmsEntry;\n accessControl: AccessControl;\n};\n\nexport const createEntryRevisionFromData = async ({\n sourceId,\n model,\n rawInput,\n options,\n context,\n getIdentity: getSecurityIdentity,\n originalEntry,\n latestStorageEntry,\n accessControl\n}: CreateEntryRevisionFromDataParams): Promise<{\n entry: CmsEntry;\n input: Record<string, any>;\n}> => {\n /**\n * Make sure we only work with fields that are defined in the model.\n */\n const input = mapAndCleanUpdatedInputData(model, rawInput);\n\n const initialValues = {\n ...originalEntry.values,\n ...input\n };\n\n await validateModelEntryDataOrThrow({\n context,\n model,\n data: initialValues,\n entry: originalEntry,\n skipValidators: options?.skipValidators\n });\n\n const values = await referenceFieldsMapping({\n context,\n model,\n input: initialValues,\n validateEntries: false\n });\n\n const latestId = latestStorageEntry ? latestStorageEntry.id : sourceId;\n const { id, version: nextVersion } = increaseEntryIdVersion(latestId);\n\n const currentIdentity = getSecurityIdentity();\n const currentDateTime = new Date();\n\n /**\n * Users can set the initial status of the entry. If so, we need to make\n * sure they have the required permissions and also that all the fields\n * are filled in correctly.\n */\n const status = rawInput.status || STATUS_DRAFT;\n if (status !== STATUS_DRAFT) {\n if (status === STATUS_PUBLISHED) {\n await accessControl.ensureCanAccessEntry({ model, pw: \"p\" });\n } else if (status === STATUS_UNPUBLISHED) {\n // If setting the status other than draft, we have to check if the user has permissions to publish.\n await accessControl.ensureCanAccessEntry({ model, pw: \"u\" });\n }\n }\n\n const locked = status !== STATUS_DRAFT;\n\n let revisionLevelPublishingMetaFields: Pick<\n CmsEntry,\n | \"revisionFirstPublishedOn\"\n | \"revisionLastPublishedOn\"\n | \"revisionFirstPublishedBy\"\n | \"revisionLastPublishedBy\"\n > = {\n revisionFirstPublishedOn: getDate(rawInput.revisionFirstPublishedOn, null),\n revisionLastPublishedOn: getDate(rawInput.revisionLastPublishedOn, null),\n revisionFirstPublishedBy: getIdentity(rawInput.revisionFirstPublishedBy, null),\n revisionLastPublishedBy: getIdentity(rawInput.revisionLastPublishedBy, null)\n };\n\n let entryLevelPublishingMetaFields: Pick<\n CmsEntry,\n \"firstPublishedOn\" | \"lastPublishedOn\" | \"firstPublishedBy\" | \"lastPublishedBy\"\n > = {\n firstPublishedOn: getDate(rawInput.firstPublishedOn, latestStorageEntry.firstPublishedOn),\n lastPublishedOn: getDate(rawInput.lastPublishedOn, latestStorageEntry.lastPublishedOn),\n firstPublishedBy: getIdentity(\n rawInput.firstPublishedBy,\n latestStorageEntry.firstPublishedBy\n ),\n lastPublishedBy: getIdentity(rawInput.lastPublishedBy, latestStorageEntry.lastPublishedBy)\n };\n\n if (status === STATUS_PUBLISHED) {\n revisionLevelPublishingMetaFields = {\n revisionFirstPublishedOn: getDate(rawInput.revisionFirstPublishedOn, currentDateTime),\n revisionLastPublishedOn: getDate(rawInput.revisionLastPublishedOn, currentDateTime),\n revisionFirstPublishedBy: getIdentity(\n rawInput.revisionFirstPublishedBy,\n currentIdentity\n ),\n revisionLastPublishedBy: getIdentity(rawInput.revisionLastPublishedBy, currentIdentity)\n };\n\n entryLevelPublishingMetaFields = {\n firstPublishedOn: getDate(\n rawInput.firstPublishedOn,\n latestStorageEntry.firstPublishedOn\n ),\n lastPublishedOn: getDate(rawInput.lastPublishedOn, currentDateTime),\n firstPublishedBy: getIdentity(\n rawInput.firstPublishedBy,\n latestStorageEntry.firstPublishedBy\n ),\n lastPublishedBy: getIdentity(rawInput.lastPublishedBy, currentIdentity)\n };\n }\n\n const entry: CmsEntry = {\n ...originalEntry,\n id,\n version: nextVersion,\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: getDate(rawInput.createdOn, latestStorageEntry.createdOn),\n savedOn: getDate(rawInput.savedOn, currentDateTime),\n modifiedOn: getDate(rawInput.modifiedOn, currentDateTime),\n createdBy: getIdentity(rawInput.createdBy, latestStorageEntry.createdBy),\n savedBy: getIdentity(rawInput.savedBy, currentIdentity),\n modifiedBy: getIdentity(rawInput.modifiedBy, currentIdentity),\n ...entryLevelPublishingMetaFields,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: getDate(rawInput.revisionCreatedOn, currentDateTime),\n revisionSavedOn: getDate(rawInput.revisionSavedOn, currentDateTime),\n revisionModifiedOn: getDate(rawInput.revisionModifiedOn, null),\n revisionCreatedBy: getIdentity(rawInput.revisionCreatedBy, currentIdentity),\n revisionSavedBy: getIdentity(rawInput.revisionSavedBy, currentIdentity),\n revisionModifiedBy: getIdentity(rawInput.revisionModifiedBy, null),\n ...revisionLevelPublishingMetaFields,\n\n locked,\n status,\n values\n };\n\n return { entry, input };\n};\n\nconst increaseEntryIdVersion = (id: string) => {\n const { id: entryId, version } = parseIdentifier(id);\n if (!version) {\n throw new WebinyError(\n \"Cannot increase version on the ID without the version part.\",\n \"WRONG_ID\",\n {\n id\n }\n );\n }\n return {\n entryId,\n version: version + 1,\n id: createIdentifier({\n id: entryId,\n version: version + 1\n })\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { CmsContext, CmsEntry, CmsModel } from "../../../types";
2
- import { SecurityIdentity } from "@webiny/api-security/types";
1
+ import type { CmsContext, CmsEntry, CmsEntryValues, CmsModel } from "../../../types";
2
+ import type { SecurityIdentity } from "@webiny/api-security/types";
3
3
  type CreatePublishEntryDataParams = {
4
4
  model: CmsModel;
5
5
  context: CmsContext;
@@ -7,7 +7,7 @@ type CreatePublishEntryDataParams = {
7
7
  originalEntry: CmsEntry;
8
8
  latestEntry: CmsEntry;
9
9
  };
10
- export declare const createPublishEntryData: ({ model, context, getIdentity: getSecurityIdentity, originalEntry, latestEntry }: CreatePublishEntryDataParams) => Promise<{
11
- entry: CmsEntry;
10
+ export declare const createPublishEntryData: <T extends CmsEntryValues = CmsEntryValues>({ model, context, getIdentity: getSecurityIdentity, originalEntry, latestEntry }: CreatePublishEntryDataParams) => Promise<{
11
+ entry: CmsEntry<T>;
12
12
  }>;
13
13
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":["_statuses","require","_entryDataValidation","_identity","_date","createPublishEntryData","model","context","getIdentity","getSecurityIdentity","originalEntry","latestEntry","validateModelEntryDataOrThrow","data","values","entry","currentDateTime","Date","toISOString","currentIdentity","status","STATUS_PUBLISHED","locked","createdOn","getDate","modifiedOn","savedOn","firstPublishedOn","lastPublishedOn","createdBy","modifiedBy","savedBy","firstPublishedBy","lastPublishedBy","revisionCreatedOn","revisionSavedOn","revisionModifiedOn","revisionFirstPublishedOn","revisionLastPublishedOn","revisionCreatedBy","revisionSavedBy","revisionModifiedBy","revisionFirstPublishedBy","revisionLastPublishedBy","exports"],"sources":["createPublishEntryData.ts"],"sourcesContent":["import { CmsContext, CmsEntry, CmsModel } from \"~/types\";\nimport { STATUS_PUBLISHED } from \"./statuses\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { validateModelEntryDataOrThrow } from \"~/crud/contentEntry/entryDataValidation\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { getDate } from \"~/utils/date\";\n\ntype CreatePublishEntryDataParams = {\n model: CmsModel;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n originalEntry: CmsEntry;\n latestEntry: CmsEntry;\n};\n\nexport const createPublishEntryData = async ({\n model,\n context,\n getIdentity: getSecurityIdentity,\n originalEntry,\n latestEntry\n}: CreatePublishEntryDataParams): Promise<{\n entry: CmsEntry;\n}> => {\n await validateModelEntryDataOrThrow({\n context,\n model,\n data: originalEntry.values,\n entry: originalEntry\n });\n\n const currentDateTime = new Date().toISOString();\n const currentIdentity = getSecurityIdentity();\n\n const entry: CmsEntry = {\n ...originalEntry,\n status: STATUS_PUBLISHED,\n locked: true,\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: getDate(latestEntry.createdOn),\n modifiedOn: getDate(currentDateTime),\n savedOn: getDate(currentDateTime),\n firstPublishedOn: getDate(latestEntry.firstPublishedOn, currentDateTime),\n lastPublishedOn: getDate(currentDateTime),\n createdBy: getIdentity(latestEntry.createdBy),\n modifiedBy: getIdentity(currentIdentity),\n savedBy: getIdentity(currentIdentity),\n firstPublishedBy: getIdentity(latestEntry.firstPublishedBy, currentIdentity),\n lastPublishedBy: getIdentity(currentIdentity),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: getDate(originalEntry.revisionCreatedOn),\n revisionSavedOn: getDate(currentDateTime),\n revisionModifiedOn: getDate(currentDateTime),\n revisionFirstPublishedOn: getDate(originalEntry.revisionFirstPublishedOn, currentDateTime),\n revisionLastPublishedOn: getDate(currentDateTime),\n revisionCreatedBy: getIdentity(originalEntry.revisionCreatedBy),\n revisionSavedBy: getIdentity(currentIdentity),\n revisionModifiedBy: getIdentity(currentIdentity),\n revisionFirstPublishedBy: getIdentity(\n originalEntry.revisionFirstPublishedBy,\n currentIdentity\n ),\n revisionLastPublishedBy: getIdentity(currentIdentity)\n };\n\n return { entry };\n};\n"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAUO,MAAMI,sBAAsB,GAAG,MAAAA,CAAO;EACzCC,KAAK;EACLC,OAAO;EACPC,WAAW,EAAEC,mBAAmB;EAChCC,aAAa;EACbC;AAC0B,CAAC,KAEzB;EACF,MAAM,IAAAC,kDAA6B,EAAC;IAChCL,OAAO;IACPD,KAAK;IACLO,IAAI,EAAEH,aAAa,CAACI,MAAM;IAC1BC,KAAK,EAAEL;EACX,CAAC,CAAC;EAEF,MAAMM,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAChD,MAAMC,eAAe,GAAGV,mBAAmB,CAAC,CAAC;EAE7C,MAAMM,KAAe,GAAG;IACpB,GAAGL,aAAa;IAChBU,MAAM,EAAEC,0BAAgB;IACxBC,MAAM,EAAE,IAAI;IAEZ;AACR;AACA;IACQC,SAAS,EAAE,IAAAC,aAAO,EAACb,WAAW,CAACY,SAAS,CAAC;IACzCE,UAAU,EAAE,IAAAD,aAAO,EAACR,eAAe,CAAC;IACpCU,OAAO,EAAE,IAAAF,aAAO,EAACR,eAAe,CAAC;IACjCW,gBAAgB,EAAE,IAAAH,aAAO,EAACb,WAAW,CAACgB,gBAAgB,EAAEX,eAAe,CAAC;IACxEY,eAAe,EAAE,IAAAJ,aAAO,EAACR,eAAe,CAAC;IACzCa,SAAS,EAAE,IAAArB,qBAAW,EAACG,WAAW,CAACkB,SAAS,CAAC;IAC7CC,UAAU,EAAE,IAAAtB,qBAAW,EAACW,eAAe,CAAC;IACxCY,OAAO,EAAE,IAAAvB,qBAAW,EAACW,eAAe,CAAC;IACrCa,gBAAgB,EAAE,IAAAxB,qBAAW,EAACG,WAAW,CAACqB,gBAAgB,EAAEb,eAAe,CAAC;IAC5Ec,eAAe,EAAE,IAAAzB,qBAAW,EAACW,eAAe,CAAC;IAE7C;AACR;AACA;IACQe,iBAAiB,EAAE,IAAAV,aAAO,EAACd,aAAa,CAACwB,iBAAiB,CAAC;IAC3DC,eAAe,EAAE,IAAAX,aAAO,EAACR,eAAe,CAAC;IACzCoB,kBAAkB,EAAE,IAAAZ,aAAO,EAACR,eAAe,CAAC;IAC5CqB,wBAAwB,EAAE,IAAAb,aAAO,EAACd,aAAa,CAAC2B,wBAAwB,EAAErB,eAAe,CAAC;IAC1FsB,uBAAuB,EAAE,IAAAd,aAAO,EAACR,eAAe,CAAC;IACjDuB,iBAAiB,EAAE,IAAA/B,qBAAW,EAACE,aAAa,CAAC6B,iBAAiB,CAAC;IAC/DC,eAAe,EAAE,IAAAhC,qBAAW,EAACW,eAAe,CAAC;IAC7CsB,kBAAkB,EAAE,IAAAjC,qBAAW,EAACW,eAAe,CAAC;IAChDuB,wBAAwB,EAAE,IAAAlC,qBAAW,EACjCE,aAAa,CAACgC,wBAAwB,EACtCvB,eACJ,CAAC;IACDwB,uBAAuB,EAAE,IAAAnC,qBAAW,EAACW,eAAe;EACxD,CAAC;EAED,OAAO;IAAEJ;EAAM,CAAC;AACpB,CAAC;AAAC6B,OAAA,CAAAvC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_statuses","require","_entryDataValidation","_identity","_date","createPublishEntryData","model","context","getIdentity","getSecurityIdentity","originalEntry","latestEntry","validateModelEntryDataOrThrow","data","values","entry","currentDateTime","Date","toISOString","currentIdentity","status","STATUS_PUBLISHED","locked","createdOn","getDate","modifiedOn","savedOn","firstPublishedOn","lastPublishedOn","createdBy","modifiedBy","savedBy","firstPublishedBy","lastPublishedBy","revisionCreatedOn","revisionSavedOn","revisionModifiedOn","revisionFirstPublishedOn","revisionLastPublishedOn","revisionCreatedBy","revisionSavedBy","revisionModifiedBy","revisionFirstPublishedBy","revisionLastPublishedBy","exports"],"sources":["createPublishEntryData.ts"],"sourcesContent":["import type { CmsContext, CmsEntry, CmsEntryValues, CmsModel } from \"~/types\";\nimport { STATUS_PUBLISHED } from \"./statuses\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { validateModelEntryDataOrThrow } from \"~/crud/contentEntry/entryDataValidation\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { getDate } from \"~/utils/date\";\n\ntype CreatePublishEntryDataParams = {\n model: CmsModel;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n originalEntry: CmsEntry;\n latestEntry: CmsEntry;\n};\n\nexport const createPublishEntryData = async <T extends CmsEntryValues = CmsEntryValues>({\n model,\n context,\n getIdentity: getSecurityIdentity,\n originalEntry,\n latestEntry\n}: CreatePublishEntryDataParams): Promise<{\n entry: CmsEntry<T>;\n}> => {\n await validateModelEntryDataOrThrow({\n context,\n model,\n data: originalEntry.values,\n entry: originalEntry\n });\n\n const currentDateTime = new Date().toISOString();\n const currentIdentity = getSecurityIdentity();\n\n const entry: CmsEntry<T> = {\n ...originalEntry,\n status: STATUS_PUBLISHED,\n locked: true,\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: getDate(latestEntry.createdOn),\n modifiedOn: getDate(currentDateTime),\n savedOn: getDate(currentDateTime),\n firstPublishedOn: getDate(latestEntry.firstPublishedOn, currentDateTime),\n lastPublishedOn: getDate(currentDateTime),\n createdBy: getIdentity(latestEntry.createdBy),\n modifiedBy: getIdentity(currentIdentity),\n savedBy: getIdentity(currentIdentity),\n firstPublishedBy: getIdentity(latestEntry.firstPublishedBy, currentIdentity),\n lastPublishedBy: getIdentity(currentIdentity),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: getDate(originalEntry.revisionCreatedOn),\n revisionSavedOn: getDate(currentDateTime),\n revisionModifiedOn: getDate(currentDateTime),\n revisionFirstPublishedOn: getDate(originalEntry.revisionFirstPublishedOn, currentDateTime),\n revisionLastPublishedOn: getDate(currentDateTime),\n revisionCreatedBy: getIdentity(originalEntry.revisionCreatedBy),\n revisionSavedBy: getIdentity(currentIdentity),\n revisionModifiedBy: getIdentity(currentIdentity),\n revisionFirstPublishedBy: getIdentity(\n originalEntry.revisionFirstPublishedBy,\n currentIdentity\n ),\n revisionLastPublishedBy: getIdentity(currentIdentity)\n } as CmsEntry<T>;\n\n return { entry };\n};\n"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAUO,MAAMI,sBAAsB,GAAG,MAAAA,CAAkD;EACpFC,KAAK;EACLC,OAAO;EACPC,WAAW,EAAEC,mBAAmB;EAChCC,aAAa;EACbC;AAC0B,CAAC,KAEzB;EACF,MAAM,IAAAC,kDAA6B,EAAC;IAChCL,OAAO;IACPD,KAAK;IACLO,IAAI,EAAEH,aAAa,CAACI,MAAM;IAC1BC,KAAK,EAAEL;EACX,CAAC,CAAC;EAEF,MAAMM,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAChD,MAAMC,eAAe,GAAGV,mBAAmB,CAAC,CAAC;EAE7C,MAAMM,KAAkB,GAAG;IACvB,GAAGL,aAAa;IAChBU,MAAM,EAAEC,0BAAgB;IACxBC,MAAM,EAAE,IAAI;IAEZ;AACR;AACA;IACQC,SAAS,EAAE,IAAAC,aAAO,EAACb,WAAW,CAACY,SAAS,CAAC;IACzCE,UAAU,EAAE,IAAAD,aAAO,EAACR,eAAe,CAAC;IACpCU,OAAO,EAAE,IAAAF,aAAO,EAACR,eAAe,CAAC;IACjCW,gBAAgB,EAAE,IAAAH,aAAO,EAACb,WAAW,CAACgB,gBAAgB,EAAEX,eAAe,CAAC;IACxEY,eAAe,EAAE,IAAAJ,aAAO,EAACR,eAAe,CAAC;IACzCa,SAAS,EAAE,IAAArB,qBAAW,EAACG,WAAW,CAACkB,SAAS,CAAC;IAC7CC,UAAU,EAAE,IAAAtB,qBAAW,EAACW,eAAe,CAAC;IACxCY,OAAO,EAAE,IAAAvB,qBAAW,EAACW,eAAe,CAAC;IACrCa,gBAAgB,EAAE,IAAAxB,qBAAW,EAACG,WAAW,CAACqB,gBAAgB,EAAEb,eAAe,CAAC;IAC5Ec,eAAe,EAAE,IAAAzB,qBAAW,EAACW,eAAe,CAAC;IAE7C;AACR;AACA;IACQe,iBAAiB,EAAE,IAAAV,aAAO,EAACd,aAAa,CAACwB,iBAAiB,CAAC;IAC3DC,eAAe,EAAE,IAAAX,aAAO,EAACR,eAAe,CAAC;IACzCoB,kBAAkB,EAAE,IAAAZ,aAAO,EAACR,eAAe,CAAC;IAC5CqB,wBAAwB,EAAE,IAAAb,aAAO,EAACd,aAAa,CAAC2B,wBAAwB,EAAErB,eAAe,CAAC;IAC1FsB,uBAAuB,EAAE,IAAAd,aAAO,EAACR,eAAe,CAAC;IACjDuB,iBAAiB,EAAE,IAAA/B,qBAAW,EAACE,aAAa,CAAC6B,iBAAiB,CAAC;IAC/DC,eAAe,EAAE,IAAAhC,qBAAW,EAACW,eAAe,CAAC;IAC7CsB,kBAAkB,EAAE,IAAAjC,qBAAW,EAACW,eAAe,CAAC;IAChDuB,wBAAwB,EAAE,IAAAlC,qBAAW,EACjCE,aAAa,CAACgC,wBAAwB,EACtCvB,eACJ,CAAC;IACDwB,uBAAuB,EAAE,IAAAnC,qBAAW,EAACW,eAAe;EACxD,CAAgB;EAEhB,OAAO;IAAEJ;EAAM,CAAC;AACpB,CAAC;AAAC6B,OAAA,CAAAvC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { CmsContext, CmsEntry, CmsModel } from "../../../types";
2
- import { SecurityIdentity } from "@webiny/api-security/types";
1
+ import type { CmsContext, CmsEntry, CmsModel } from "../../../types";
2
+ import type { SecurityIdentity } from "@webiny/api-security/types";
3
3
  type CreateRepublishEntryDataParams = {
4
4
  model: CmsModel;
5
5
  context: CmsContext;
@@ -1 +1 @@
1
- {"version":3,"names":["_referenceFieldsMapping","require","_statuses","_identity","_date","createRepublishEntryData","model","context","getIdentity","getSecurityIdentity","originalEntry","values","referenceFieldsMapping","input","validateEntries","currentDateTime","Date","toISOString","currentIdentity","entry","status","STATUS_PUBLISHED","savedOn","getDate","modifiedOn","savedBy","modifiedBy","firstPublishedOn","firstPublishedBy","lastPublishedOn","lastPublishedBy","revisionSavedOn","revisionModifiedOn","revisionSavedBy","revisionModifiedBy","revisionFirstPublishedOn","revisionFirstPublishedBy","revisionLastPublishedOn","revisionLastPublishedBy","webinyVersion","WEBINY_VERSION","exports"],"sources":["createRepublishEntryData.ts"],"sourcesContent":["import { CmsContext, CmsEntry, CmsModel } from \"~/types\";\nimport { referenceFieldsMapping } from \"~/crud/contentEntry/referenceFieldsMapping\";\nimport { STATUS_PUBLISHED } from \"./statuses\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { getDate } from \"~/utils/date\";\n\ntype CreateRepublishEntryDataParams = {\n model: CmsModel;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n originalEntry: CmsEntry;\n};\n\nexport const createRepublishEntryData = async ({\n model,\n context,\n getIdentity: getSecurityIdentity,\n originalEntry\n}: CreateRepublishEntryDataParams): Promise<{\n entry: CmsEntry;\n}> => {\n const values = await referenceFieldsMapping({\n context,\n model,\n input: originalEntry.values,\n validateEntries: false\n });\n\n const currentDateTime = new Date().toISOString();\n const currentIdentity = getSecurityIdentity();\n\n const entry: CmsEntry = {\n ...originalEntry,\n status: STATUS_PUBLISHED,\n\n /**\n * Entry-level meta fields. 👇\n */\n savedOn: getDate(currentDateTime),\n modifiedOn: getDate(currentDateTime),\n savedBy: getIdentity(currentIdentity),\n modifiedBy: getIdentity(currentIdentity),\n firstPublishedOn: getDate(originalEntry.firstPublishedOn, currentDateTime),\n firstPublishedBy: getIdentity(originalEntry.firstPublishedBy, currentIdentity),\n lastPublishedOn: getDate(currentDateTime),\n lastPublishedBy: getIdentity(currentIdentity),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionSavedOn: getDate(currentDateTime),\n revisionModifiedOn: getDate(currentDateTime),\n revisionSavedBy: getIdentity(currentIdentity),\n revisionModifiedBy: getIdentity(currentIdentity),\n revisionFirstPublishedOn: getDate(originalEntry.revisionFirstPublishedOn, currentDateTime),\n revisionFirstPublishedBy: getIdentity(\n originalEntry.revisionFirstPublishedBy,\n currentIdentity\n ),\n revisionLastPublishedOn: getDate(currentDateTime),\n revisionLastPublishedBy: getIdentity(currentIdentity),\n\n webinyVersion: context.WEBINY_VERSION,\n values\n };\n\n return { entry };\n};\n"],"mappings":";;;;;;AACA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,wBAAwB,GAAG,MAAAA,CAAO;EAC3CC,KAAK;EACLC,OAAO;EACPC,WAAW,EAAEC,mBAAmB;EAChCC;AAC4B,CAAC,KAE3B;EACF,MAAMC,MAAM,GAAG,MAAM,IAAAC,8CAAsB,EAAC;IACxCL,OAAO;IACPD,KAAK;IACLO,KAAK,EAAEH,aAAa,CAACC,MAAM;IAC3BG,eAAe,EAAE;EACrB,CAAC,CAAC;EAEF,MAAMC,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAChD,MAAMC,eAAe,GAAGT,mBAAmB,CAAC,CAAC;EAE7C,MAAMU,KAAe,GAAG;IACpB,GAAGT,aAAa;IAChBU,MAAM,EAAEC,0BAAgB;IAExB;AACR;AACA;IACQC,OAAO,EAAE,IAAAC,aAAO,EAACR,eAAe,CAAC;IACjCS,UAAU,EAAE,IAAAD,aAAO,EAACR,eAAe,CAAC;IACpCU,OAAO,EAAE,IAAAjB,qBAAW,EAACU,eAAe,CAAC;IACrCQ,UAAU,EAAE,IAAAlB,qBAAW,EAACU,eAAe,CAAC;IACxCS,gBAAgB,EAAE,IAAAJ,aAAO,EAACb,aAAa,CAACiB,gBAAgB,EAAEZ,eAAe,CAAC;IAC1Ea,gBAAgB,EAAE,IAAApB,qBAAW,EAACE,aAAa,CAACkB,gBAAgB,EAAEV,eAAe,CAAC;IAC9EW,eAAe,EAAE,IAAAN,aAAO,EAACR,eAAe,CAAC;IACzCe,eAAe,EAAE,IAAAtB,qBAAW,EAACU,eAAe,CAAC;IAE7C;AACR;AACA;IACQa,eAAe,EAAE,IAAAR,aAAO,EAACR,eAAe,CAAC;IACzCiB,kBAAkB,EAAE,IAAAT,aAAO,EAACR,eAAe,CAAC;IAC5CkB,eAAe,EAAE,IAAAzB,qBAAW,EAACU,eAAe,CAAC;IAC7CgB,kBAAkB,EAAE,IAAA1B,qBAAW,EAACU,eAAe,CAAC;IAChDiB,wBAAwB,EAAE,IAAAZ,aAAO,EAACb,aAAa,CAACyB,wBAAwB,EAAEpB,eAAe,CAAC;IAC1FqB,wBAAwB,EAAE,IAAA5B,qBAAW,EACjCE,aAAa,CAAC0B,wBAAwB,EACtClB,eACJ,CAAC;IACDmB,uBAAuB,EAAE,IAAAd,aAAO,EAACR,eAAe,CAAC;IACjDuB,uBAAuB,EAAE,IAAA9B,qBAAW,EAACU,eAAe,CAAC;IAErDqB,aAAa,EAAEhC,OAAO,CAACiC,cAAc;IACrC7B;EACJ,CAAC;EAED,OAAO;IAAEQ;EAAM,CAAC;AACpB,CAAC;AAACsB,OAAA,CAAApC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_referenceFieldsMapping","require","_statuses","_identity","_date","createRepublishEntryData","model","context","getIdentity","getSecurityIdentity","originalEntry","values","referenceFieldsMapping","input","validateEntries","currentDateTime","Date","toISOString","currentIdentity","entry","status","STATUS_PUBLISHED","savedOn","getDate","modifiedOn","savedBy","modifiedBy","firstPublishedOn","firstPublishedBy","lastPublishedOn","lastPublishedBy","revisionSavedOn","revisionModifiedOn","revisionSavedBy","revisionModifiedBy","revisionFirstPublishedOn","revisionFirstPublishedBy","revisionLastPublishedOn","revisionLastPublishedBy","webinyVersion","WEBINY_VERSION","exports"],"sources":["createRepublishEntryData.ts"],"sourcesContent":["import type { CmsContext, CmsEntry, CmsModel } from \"~/types\";\nimport { referenceFieldsMapping } from \"~/crud/contentEntry/referenceFieldsMapping\";\nimport { STATUS_PUBLISHED } from \"./statuses\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { getDate } from \"~/utils/date\";\n\ntype CreateRepublishEntryDataParams = {\n model: CmsModel;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n originalEntry: CmsEntry;\n};\n\nexport const createRepublishEntryData = async ({\n model,\n context,\n getIdentity: getSecurityIdentity,\n originalEntry\n}: CreateRepublishEntryDataParams): Promise<{\n entry: CmsEntry;\n}> => {\n const values = await referenceFieldsMapping({\n context,\n model,\n input: originalEntry.values,\n validateEntries: false\n });\n\n const currentDateTime = new Date().toISOString();\n const currentIdentity = getSecurityIdentity();\n\n const entry: CmsEntry = {\n ...originalEntry,\n status: STATUS_PUBLISHED,\n\n /**\n * Entry-level meta fields. 👇\n */\n savedOn: getDate(currentDateTime),\n modifiedOn: getDate(currentDateTime),\n savedBy: getIdentity(currentIdentity),\n modifiedBy: getIdentity(currentIdentity),\n firstPublishedOn: getDate(originalEntry.firstPublishedOn, currentDateTime),\n firstPublishedBy: getIdentity(originalEntry.firstPublishedBy, currentIdentity),\n lastPublishedOn: getDate(currentDateTime),\n lastPublishedBy: getIdentity(currentIdentity),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionSavedOn: getDate(currentDateTime),\n revisionModifiedOn: getDate(currentDateTime),\n revisionSavedBy: getIdentity(currentIdentity),\n revisionModifiedBy: getIdentity(currentIdentity),\n revisionFirstPublishedOn: getDate(originalEntry.revisionFirstPublishedOn, currentDateTime),\n revisionFirstPublishedBy: getIdentity(\n originalEntry.revisionFirstPublishedBy,\n currentIdentity\n ),\n revisionLastPublishedOn: getDate(currentDateTime),\n revisionLastPublishedBy: getIdentity(currentIdentity),\n\n webinyVersion: context.WEBINY_VERSION,\n values\n };\n\n return { entry };\n};\n"],"mappings":";;;;;;AACA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,wBAAwB,GAAG,MAAAA,CAAO;EAC3CC,KAAK;EACLC,OAAO;EACPC,WAAW,EAAEC,mBAAmB;EAChCC;AAC4B,CAAC,KAE3B;EACF,MAAMC,MAAM,GAAG,MAAM,IAAAC,8CAAsB,EAAC;IACxCL,OAAO;IACPD,KAAK;IACLO,KAAK,EAAEH,aAAa,CAACC,MAAM;IAC3BG,eAAe,EAAE;EACrB,CAAC,CAAC;EAEF,MAAMC,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAChD,MAAMC,eAAe,GAAGT,mBAAmB,CAAC,CAAC;EAE7C,MAAMU,KAAe,GAAG;IACpB,GAAGT,aAAa;IAChBU,MAAM,EAAEC,0BAAgB;IAExB;AACR;AACA;IACQC,OAAO,EAAE,IAAAC,aAAO,EAACR,eAAe,CAAC;IACjCS,UAAU,EAAE,IAAAD,aAAO,EAACR,eAAe,CAAC;IACpCU,OAAO,EAAE,IAAAjB,qBAAW,EAACU,eAAe,CAAC;IACrCQ,UAAU,EAAE,IAAAlB,qBAAW,EAACU,eAAe,CAAC;IACxCS,gBAAgB,EAAE,IAAAJ,aAAO,EAACb,aAAa,CAACiB,gBAAgB,EAAEZ,eAAe,CAAC;IAC1Ea,gBAAgB,EAAE,IAAApB,qBAAW,EAACE,aAAa,CAACkB,gBAAgB,EAAEV,eAAe,CAAC;IAC9EW,eAAe,EAAE,IAAAN,aAAO,EAACR,eAAe,CAAC;IACzCe,eAAe,EAAE,IAAAtB,qBAAW,EAACU,eAAe,CAAC;IAE7C;AACR;AACA;IACQa,eAAe,EAAE,IAAAR,aAAO,EAACR,eAAe,CAAC;IACzCiB,kBAAkB,EAAE,IAAAT,aAAO,EAACR,eAAe,CAAC;IAC5CkB,eAAe,EAAE,IAAAzB,qBAAW,EAACU,eAAe,CAAC;IAC7CgB,kBAAkB,EAAE,IAAA1B,qBAAW,EAACU,eAAe,CAAC;IAChDiB,wBAAwB,EAAE,IAAAZ,aAAO,EAACb,aAAa,CAACyB,wBAAwB,EAAEpB,eAAe,CAAC;IAC1FqB,wBAAwB,EAAE,IAAA5B,qBAAW,EACjCE,aAAa,CAAC0B,wBAAwB,EACtClB,eACJ,CAAC;IACDmB,uBAAuB,EAAE,IAAAd,aAAO,EAACR,eAAe,CAAC;IACjDuB,uBAAuB,EAAE,IAAA9B,qBAAW,EAACU,eAAe,CAAC;IAErDqB,aAAa,EAAEhC,OAAO,CAACiC,cAAc;IACrC7B;EACJ,CAAC;EAED,OAAO;IAAEQ;EAAM,CAAC;AACpB,CAAC;AAACsB,OAAA,CAAApC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -1,12 +1,12 @@
1
- import { CmsContext, CmsEntry, CmsModel } from "../../../types";
2
- import { SecurityIdentity } from "@webiny/api-security/types";
1
+ import type { CmsContext, CmsEntry, CmsEntryValues, CmsModel } from "../../../types";
2
+ import type { SecurityIdentity } from "@webiny/api-security/types";
3
3
  type CreateRepublishEntryDataParams = {
4
4
  model: CmsModel;
5
5
  context: CmsContext;
6
6
  getIdentity: () => SecurityIdentity;
7
7
  originalEntry: CmsEntry;
8
8
  };
9
- export declare const createUnpublishEntryData: ({ getIdentity: getSecurityIdentity, originalEntry }: CreateRepublishEntryDataParams) => Promise<{
10
- entry: CmsEntry;
9
+ export declare const createUnpublishEntryData: <T extends CmsEntryValues = CmsEntryValues>({ getIdentity: getSecurityIdentity, originalEntry }: CreateRepublishEntryDataParams) => Promise<{
10
+ entry: CmsEntry<T>;
11
11
  }>;
12
12
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":["_statuses","require","_identity","_date","createUnpublishEntryData","getIdentity","getSecurityIdentity","originalEntry","currentDateTime","Date","toISOString","currentIdentity","entry","status","STATUS_UNPUBLISHED","savedOn","getDate","modifiedOn","savedBy","modifiedBy","revisionSavedOn","revisionModifiedOn","revisionSavedBy","revisionModifiedBy","exports"],"sources":["createUnpublishEntryData.ts"],"sourcesContent":["import { CmsContext, CmsEntry, CmsModel } from \"~/types\";\nimport { STATUS_UNPUBLISHED } from \"./statuses\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { getDate } from \"~/utils/date\";\n\ntype CreateRepublishEntryDataParams = {\n model: CmsModel;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n originalEntry: CmsEntry;\n};\n\nexport const createUnpublishEntryData = async ({\n getIdentity: getSecurityIdentity,\n originalEntry\n}: CreateRepublishEntryDataParams): Promise<{\n entry: CmsEntry;\n}> => {\n const currentDateTime = new Date().toISOString();\n const currentIdentity = getSecurityIdentity();\n\n const entry: CmsEntry = {\n ...originalEntry,\n status: STATUS_UNPUBLISHED,\n\n /**\n * Entry-level meta fields. 👇\n */\n savedOn: getDate(currentDateTime),\n modifiedOn: getDate(currentDateTime),\n savedBy: getIdentity(currentIdentity),\n modifiedBy: getIdentity(currentIdentity),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionSavedOn: getDate(currentDateTime),\n revisionModifiedOn: getDate(currentDateTime),\n revisionSavedBy: getIdentity(currentIdentity),\n revisionModifiedBy: getIdentity(currentIdentity)\n };\n\n return { entry };\n};\n"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AASO,MAAMG,wBAAwB,GAAG,MAAAA,CAAO;EAC3CC,WAAW,EAAEC,mBAAmB;EAChCC;AAC4B,CAAC,KAE3B;EACF,MAAMC,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAChD,MAAMC,eAAe,GAAGL,mBAAmB,CAAC,CAAC;EAE7C,MAAMM,KAAe,GAAG;IACpB,GAAGL,aAAa;IAChBM,MAAM,EAAEC,4BAAkB;IAE1B;AACR;AACA;IACQC,OAAO,EAAE,IAAAC,aAAO,EAACR,eAAe,CAAC;IACjCS,UAAU,EAAE,IAAAD,aAAO,EAACR,eAAe,CAAC;IACpCU,OAAO,EAAE,IAAAb,qBAAW,EAACM,eAAe,CAAC;IACrCQ,UAAU,EAAE,IAAAd,qBAAW,EAACM,eAAe,CAAC;IAExC;AACR;AACA;IACQS,eAAe,EAAE,IAAAJ,aAAO,EAACR,eAAe,CAAC;IACzCa,kBAAkB,EAAE,IAAAL,aAAO,EAACR,eAAe,CAAC;IAC5Cc,eAAe,EAAE,IAAAjB,qBAAW,EAACM,eAAe,CAAC;IAC7CY,kBAAkB,EAAE,IAAAlB,qBAAW,EAACM,eAAe;EACnD,CAAC;EAED,OAAO;IAAEC;EAAM,CAAC;AACpB,CAAC;AAACY,OAAA,CAAApB,wBAAA,GAAAA,wBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_statuses","require","_identity","_date","createUnpublishEntryData","getIdentity","getSecurityIdentity","originalEntry","currentDateTime","Date","toISOString","currentIdentity","entry","status","STATUS_UNPUBLISHED","savedOn","getDate","modifiedOn","savedBy","modifiedBy","revisionSavedOn","revisionModifiedOn","revisionSavedBy","revisionModifiedBy","exports"],"sources":["createUnpublishEntryData.ts"],"sourcesContent":["import type { CmsContext, CmsEntry, CmsEntryValues, CmsModel } from \"~/types\";\nimport { STATUS_UNPUBLISHED } from \"./statuses\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { getDate } from \"~/utils/date\";\n\ntype CreateRepublishEntryDataParams = {\n model: CmsModel;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n originalEntry: CmsEntry;\n};\n\nexport const createUnpublishEntryData = async <T extends CmsEntryValues = CmsEntryValues>({\n getIdentity: getSecurityIdentity,\n originalEntry\n}: CreateRepublishEntryDataParams): Promise<{\n entry: CmsEntry<T>;\n}> => {\n const currentDateTime = new Date().toISOString();\n const currentIdentity = getSecurityIdentity();\n\n const entry: CmsEntry<T> = {\n ...originalEntry,\n status: STATUS_UNPUBLISHED,\n\n /**\n * Entry-level meta fields. 👇\n */\n savedOn: getDate(currentDateTime),\n modifiedOn: getDate(currentDateTime),\n savedBy: getIdentity(currentIdentity),\n modifiedBy: getIdentity(currentIdentity),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionSavedOn: getDate(currentDateTime),\n revisionModifiedOn: getDate(currentDateTime),\n revisionSavedBy: getIdentity(currentIdentity),\n revisionModifiedBy: getIdentity(currentIdentity)\n } as CmsEntry<T>;\n\n return { entry };\n};\n"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AASO,MAAMG,wBAAwB,GAAG,MAAAA,CAAkD;EACtFC,WAAW,EAAEC,mBAAmB;EAChCC;AAC4B,CAAC,KAE3B;EACF,MAAMC,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAChD,MAAMC,eAAe,GAAGL,mBAAmB,CAAC,CAAC;EAE7C,MAAMM,KAAkB,GAAG;IACvB,GAAGL,aAAa;IAChBM,MAAM,EAAEC,4BAAkB;IAE1B;AACR;AACA;IACQC,OAAO,EAAE,IAAAC,aAAO,EAACR,eAAe,CAAC;IACjCS,UAAU,EAAE,IAAAD,aAAO,EAACR,eAAe,CAAC;IACpCU,OAAO,EAAE,IAAAb,qBAAW,EAACM,eAAe,CAAC;IACrCQ,UAAU,EAAE,IAAAd,qBAAW,EAACM,eAAe,CAAC;IAExC;AACR;AACA;IACQS,eAAe,EAAE,IAAAJ,aAAO,EAACR,eAAe,CAAC;IACzCa,kBAAkB,EAAE,IAAAL,aAAO,EAACR,eAAe,CAAC;IAC5Cc,eAAe,EAAE,IAAAjB,qBAAW,EAACM,eAAe,CAAC;IAC7CY,kBAAkB,EAAE,IAAAlB,qBAAW,EAACM,eAAe;EACnD,CAAgB;EAEhB,OAAO;IAAEC;EAAM,CAAC;AACpB,CAAC;AAACY,OAAA,CAAApB,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { CmsContext, CmsEntry, CmsModel, UpdateCmsEntryInput, UpdateCmsEntryOptionsInput } from "../../../types";
2
- import { SecurityIdentity } from "@webiny/api-security/types";
3
- import { Tenant } from "@webiny/api-tenancy/types";
4
- import { I18NLocale } from "@webiny/api-i18n/types";
1
+ import type { CmsContext, CmsEntry, CmsModel, UpdateCmsEntryInput, UpdateCmsEntryOptionsInput } from "../../../types";
2
+ import type { SecurityIdentity } from "@webiny/api-security/types";
3
+ import type { Tenant } from "@webiny/api-tenancy/types";
4
+ import type { I18NLocale } from "@webiny/api-i18n/types";
5
5
  type CreateEntryRevisionFromDataParams = {
6
6
  metaInput?: Record<string, any>;
7
7
  model: CmsModel;
@@ -1 +1 @@
1
- {"version":3,"names":["_date","require","_identity","_entryDataValidation","_referenceFieldsMapping","_mapAndCleanUpdatedInputData","_merge","_interopRequireDefault","_utils","createUpdateEntryData","model","rawInput","options","context","metaInput","getIdentity","getSecurityIdentity","originalEntry","input","mapAndCleanUpdatedInputData","validateModelEntryDataOrThrow","data","entry","skipValidators","initialValues","values","referenceFieldsMapping","validateEntries","meta","createEntryMeta","currentIdentity","currentDateTime","Date","revisionCreatedOn","getDate","revisionModifiedOn","revisionSavedOn","revisionDeletedOn","revisionRestoredOn","revisionFirstPublishedOn","revisionLastPublishedOn","revisionCreatedBy","revisionModifiedBy","revisionSavedBy","revisionDeletedBy","revisionRestoredBy","revisionFirstPublishedBy","revisionLastPublishedBy","createdOn","savedOn","modifiedOn","deletedOn","restoredOn","firstPublishedOn","lastPublishedOn","createdBy","savedBy","modifiedBy","deletedBy","restoredBy","firstPublishedBy","lastPublishedBy","status","transformEntryStatus","folderId","wbyAco_location","location","exports","original","lodashMerge","removeUndefinedValues","removeNullValues","allowedEntryStatus","includes"],"sources":["createUpdateEntryData.ts"],"sourcesContent":["import {\n CmsContext,\n CmsEntry,\n CmsEntryStatus,\n CmsModel,\n UpdateCmsEntryInput,\n UpdateCmsEntryOptionsInput\n} from \"~/types\";\nimport { getDate } from \"~/utils/date\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { validateModelEntryDataOrThrow } from \"../entryDataValidation\";\nimport { referenceFieldsMapping } from \"../referenceFieldsMapping\";\nimport { mapAndCleanUpdatedInputData } from \"./mapAndCleanUpdatedInputData\";\nimport lodashMerge from \"lodash/merge\";\nimport { removeNullValues, removeUndefinedValues } from \"@webiny/utils\";\n\ntype CreateEntryRevisionFromDataParams = {\n metaInput?: Record<string, any>;\n model: CmsModel;\n rawInput: UpdateCmsEntryInput;\n options?: UpdateCmsEntryOptionsInput;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n originalEntry: CmsEntry;\n};\n\nexport const createUpdateEntryData = async ({\n model,\n rawInput,\n options,\n context,\n metaInput,\n getIdentity: getSecurityIdentity,\n originalEntry\n}: CreateEntryRevisionFromDataParams): Promise<{\n entry: CmsEntry;\n input: Record<string, any>;\n}> => {\n /**\n * Make sure we only work with fields that are defined in the model.\n */\n const input = mapAndCleanUpdatedInputData(model, rawInput);\n\n await validateModelEntryDataOrThrow({\n context,\n model,\n data: input,\n entry: originalEntry,\n skipValidators: options?.skipValidators\n });\n\n const initialValues = {\n /**\n * Existing values from the database, transformed back to original, of course.\n */\n ...originalEntry.values,\n /**\n * Add new values.\n */\n ...input\n };\n\n const values = await referenceFieldsMapping({\n context,\n model,\n input: initialValues,\n validateEntries: false\n });\n\n /**\n * If users wants to remove a key from meta values, they need to send meta key with the null value.\n */\n const meta = createEntryMeta(metaInput, originalEntry.meta);\n\n const currentIdentity = getSecurityIdentity();\n const currentDateTime = new Date();\n\n /**\n * We always send the full entry to the hooks and storage operations update.\n */\n const entry: CmsEntry = {\n ...originalEntry,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: getDate(rawInput.revisionCreatedOn, originalEntry.revisionCreatedOn),\n revisionModifiedOn: getDate(rawInput.revisionModifiedOn, currentDateTime),\n revisionSavedOn: getDate(rawInput.revisionSavedOn, currentDateTime),\n revisionDeletedOn: getDate(rawInput.revisionDeletedOn, null),\n revisionRestoredOn: getDate(rawInput.revisionRestoredOn, null),\n revisionFirstPublishedOn: getDate(\n rawInput.revisionFirstPublishedOn,\n originalEntry.revisionFirstPublishedOn\n ),\n revisionLastPublishedOn: getDate(\n rawInput.revisionLastPublishedOn,\n originalEntry.revisionLastPublishedOn\n ),\n revisionCreatedBy: getIdentity(rawInput.revisionCreatedBy, originalEntry.revisionCreatedBy),\n revisionModifiedBy: getIdentity(rawInput.revisionModifiedBy, currentIdentity),\n revisionSavedBy: getIdentity(rawInput.revisionSavedBy, currentIdentity),\n revisionDeletedBy: getIdentity(rawInput.revisionSavedBy, null),\n revisionRestoredBy: getIdentity(rawInput.revisionRestoredBy, null),\n revisionFirstPublishedBy: getIdentity(\n rawInput.revisionFirstPublishedBy,\n originalEntry.revisionFirstPublishedBy\n ),\n revisionLastPublishedBy: getIdentity(\n rawInput.revisionLastPublishedBy,\n originalEntry.revisionLastPublishedBy\n ),\n\n /**\n * Entry-level meta fields. 👇\n * If required, within storage operations, these entry-level updates\n * will be propagated to the latest revision too.\n */\n createdOn: getDate(rawInput.createdOn, originalEntry.createdOn),\n savedOn: getDate(rawInput.savedOn, currentDateTime),\n modifiedOn: getDate(rawInput.modifiedOn, currentDateTime),\n deletedOn: getDate(rawInput.deletedOn, null),\n restoredOn: getDate(rawInput.restoredOn, null),\n firstPublishedOn: getDate(rawInput.firstPublishedOn, originalEntry.firstPublishedOn),\n lastPublishedOn: getDate(rawInput.lastPublishedOn, originalEntry.lastPublishedOn),\n createdBy: getIdentity(rawInput.createdBy, originalEntry.createdBy),\n savedBy: getIdentity(rawInput.savedBy, currentIdentity),\n modifiedBy: getIdentity(rawInput.modifiedBy, currentIdentity),\n deletedBy: getIdentity(rawInput.deletedBy, null),\n restoredBy: getIdentity(rawInput.restoredBy, null),\n firstPublishedBy: getIdentity(rawInput.firstPublishedBy, originalEntry.firstPublishedBy),\n lastPublishedBy: getIdentity(rawInput.lastPublishedBy, originalEntry.lastPublishedBy),\n\n values,\n meta,\n status: transformEntryStatus(originalEntry.status)\n };\n\n const folderId = rawInput.wbyAco_location?.folderId;\n if (folderId) {\n entry.location = {\n folderId\n };\n }\n\n return { entry, input };\n};\n\n/**\n * This method takes original entry meta and new input.\n * When new meta is merged onto the existing one, everything that has undefined or null value is removed.\n */\nconst createEntryMeta = (input?: Record<string, any>, original?: Record<string, any>) => {\n const meta = lodashMerge(original || {}, input || {});\n return removeUndefinedValues(removeNullValues(meta));\n};\n\nconst allowedEntryStatus: string[] = [\"draft\", \"published\", \"unpublished\"];\n\nconst transformEntryStatus = (status: CmsEntryStatus | string): CmsEntryStatus => {\n return allowedEntryStatus.includes(status) ? (status as CmsEntryStatus) : \"draft\";\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_date","require","_identity","_entryDataValidation","_referenceFieldsMapping","_mapAndCleanUpdatedInputData","_merge","_interopRequireDefault","_utils","createUpdateEntryData","model","rawInput","options","context","metaInput","getIdentity","getSecurityIdentity","originalEntry","input","mapAndCleanUpdatedInputData","validateModelEntryDataOrThrow","data","entry","skipValidators","initialValues","values","referenceFieldsMapping","validateEntries","meta","createEntryMeta","currentIdentity","currentDateTime","Date","revisionCreatedOn","getDate","revisionModifiedOn","revisionSavedOn","revisionDeletedOn","revisionRestoredOn","revisionFirstPublishedOn","revisionLastPublishedOn","revisionCreatedBy","revisionModifiedBy","revisionSavedBy","revisionDeletedBy","revisionRestoredBy","revisionFirstPublishedBy","revisionLastPublishedBy","createdOn","savedOn","modifiedOn","deletedOn","restoredOn","firstPublishedOn","lastPublishedOn","createdBy","savedBy","modifiedBy","deletedBy","restoredBy","firstPublishedBy","lastPublishedBy","status","transformEntryStatus","folderId","wbyAco_location","location","exports","original","lodashMerge","removeUndefinedValues","removeNullValues","allowedEntryStatus","includes"],"sources":["createUpdateEntryData.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsEntry,\n CmsEntryStatus,\n CmsModel,\n UpdateCmsEntryInput,\n UpdateCmsEntryOptionsInput\n} from \"~/types\";\nimport { getDate } from \"~/utils/date\";\nimport { getIdentity } from \"~/utils/identity\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport type { Tenant } from \"@webiny/api-tenancy/types\";\nimport type { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { validateModelEntryDataOrThrow } from \"../entryDataValidation\";\nimport { referenceFieldsMapping } from \"../referenceFieldsMapping\";\nimport { mapAndCleanUpdatedInputData } from \"./mapAndCleanUpdatedInputData\";\nimport lodashMerge from \"lodash/merge\";\nimport { removeNullValues, removeUndefinedValues } from \"@webiny/utils\";\n\ntype CreateEntryRevisionFromDataParams = {\n metaInput?: Record<string, any>;\n model: CmsModel;\n rawInput: UpdateCmsEntryInput;\n options?: UpdateCmsEntryOptionsInput;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n originalEntry: CmsEntry;\n};\n\nexport const createUpdateEntryData = async ({\n model,\n rawInput,\n options,\n context,\n metaInput,\n getIdentity: getSecurityIdentity,\n originalEntry\n}: CreateEntryRevisionFromDataParams): Promise<{\n entry: CmsEntry;\n input: Record<string, any>;\n}> => {\n /**\n * Make sure we only work with fields that are defined in the model.\n */\n const input = mapAndCleanUpdatedInputData(model, rawInput);\n\n await validateModelEntryDataOrThrow({\n context,\n model,\n data: input,\n entry: originalEntry,\n skipValidators: options?.skipValidators\n });\n\n const initialValues = {\n /**\n * Existing values from the database, transformed back to original, of course.\n */\n ...originalEntry.values,\n /**\n * Add new values.\n */\n ...input\n };\n\n const values = await referenceFieldsMapping({\n context,\n model,\n input: initialValues,\n validateEntries: false\n });\n\n /**\n * If users wants to remove a key from meta values, they need to send meta key with the null value.\n */\n const meta = createEntryMeta(metaInput, originalEntry.meta);\n\n const currentIdentity = getSecurityIdentity();\n const currentDateTime = new Date();\n\n /**\n * We always send the full entry to the hooks and storage operations update.\n */\n const entry: CmsEntry = {\n ...originalEntry,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: getDate(rawInput.revisionCreatedOn, originalEntry.revisionCreatedOn),\n revisionModifiedOn: getDate(rawInput.revisionModifiedOn, currentDateTime),\n revisionSavedOn: getDate(rawInput.revisionSavedOn, currentDateTime),\n revisionDeletedOn: getDate(rawInput.revisionDeletedOn, null),\n revisionRestoredOn: getDate(rawInput.revisionRestoredOn, null),\n revisionFirstPublishedOn: getDate(\n rawInput.revisionFirstPublishedOn,\n originalEntry.revisionFirstPublishedOn\n ),\n revisionLastPublishedOn: getDate(\n rawInput.revisionLastPublishedOn,\n originalEntry.revisionLastPublishedOn\n ),\n revisionCreatedBy: getIdentity(rawInput.revisionCreatedBy, originalEntry.revisionCreatedBy),\n revisionModifiedBy: getIdentity(rawInput.revisionModifiedBy, currentIdentity),\n revisionSavedBy: getIdentity(rawInput.revisionSavedBy, currentIdentity),\n revisionDeletedBy: getIdentity(rawInput.revisionSavedBy, null),\n revisionRestoredBy: getIdentity(rawInput.revisionRestoredBy, null),\n revisionFirstPublishedBy: getIdentity(\n rawInput.revisionFirstPublishedBy,\n originalEntry.revisionFirstPublishedBy\n ),\n revisionLastPublishedBy: getIdentity(\n rawInput.revisionLastPublishedBy,\n originalEntry.revisionLastPublishedBy\n ),\n\n /**\n * Entry-level meta fields. 👇\n * If required, within storage operations, these entry-level updates\n * will be propagated to the latest revision too.\n */\n createdOn: getDate(rawInput.createdOn, originalEntry.createdOn),\n savedOn: getDate(rawInput.savedOn, currentDateTime),\n modifiedOn: getDate(rawInput.modifiedOn, currentDateTime),\n deletedOn: getDate(rawInput.deletedOn, null),\n restoredOn: getDate(rawInput.restoredOn, null),\n firstPublishedOn: getDate(rawInput.firstPublishedOn, originalEntry.firstPublishedOn),\n lastPublishedOn: getDate(rawInput.lastPublishedOn, originalEntry.lastPublishedOn),\n createdBy: getIdentity(rawInput.createdBy, originalEntry.createdBy),\n savedBy: getIdentity(rawInput.savedBy, currentIdentity),\n modifiedBy: getIdentity(rawInput.modifiedBy, currentIdentity),\n deletedBy: getIdentity(rawInput.deletedBy, null),\n restoredBy: getIdentity(rawInput.restoredBy, null),\n firstPublishedBy: getIdentity(rawInput.firstPublishedBy, originalEntry.firstPublishedBy),\n lastPublishedBy: getIdentity(rawInput.lastPublishedBy, originalEntry.lastPublishedBy),\n\n values,\n meta,\n status: transformEntryStatus(originalEntry.status)\n };\n\n const folderId = rawInput.wbyAco_location?.folderId;\n if (folderId) {\n entry.location = {\n folderId\n };\n }\n\n return { entry, input };\n};\n\n/**\n * This method takes original entry meta and new input.\n * When new meta is merged onto the existing one, everything that has undefined or null value is removed.\n */\nconst createEntryMeta = (input?: Record<string, any>, original?: Record<string, any>) => {\n const meta = lodashMerge(original || {}, input || {});\n return removeUndefinedValues(removeNullValues(meta));\n};\n\nconst allowedEntryStatus: string[] = [\"draft\", \"published\", \"unpublished\"];\n\nconst transformEntryStatus = (status: CmsEntryStatus | string): CmsEntryStatus => {\n return allowedEntryStatus.includes(status) ? (status as CmsEntryStatus) : \"draft\";\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { CmsModel } from "../../../types";
1
+ import type { CmsModel } from "../../../types";
2
2
  /**
3
3
  * Cleans the update input entry data.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","mapAndCleanUpdatedInputData","model","input","fields","reduce","acc","field","fieldId","WebinyError","value","undefined","exports"],"sources":["mapAndCleanUpdatedInputData.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModel } from \"~/types\";\n\n/**\n * Cleans the update input entry data.\n */\nexport const mapAndCleanUpdatedInputData = (model: CmsModel, input: Record<string, any>) => {\n return model.fields.reduce<Record<string, any>>((acc, field) => {\n /**\n * This should never happen, but let's make it sure.\n * The fix would be for the user to add the fieldId on the field definition.\n */\n if (!field.fieldId) {\n throw new WebinyError(\"Field does not have an fieldId.\", \"MISSING_FIELD_ID\", {\n field\n });\n }\n /**\n * We cannot set default value here because user might want to update only certain field values.\n */\n const value = input[field.fieldId];\n if (value === undefined) {\n return acc;\n }\n acc[field.fieldId] = value;\n return acc;\n }, {});\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA;AACA;AACA;AACO,MAAMC,2BAA2B,GAAGA,CAACC,KAAe,EAAEC,KAA0B,KAAK;EACxF,OAAOD,KAAK,CAACE,MAAM,CAACC,MAAM,CAAsB,CAACC,GAAG,EAAEC,KAAK,KAAK;IAC5D;AACR;AACA;AACA;IACQ,IAAI,CAACA,KAAK,CAACC,OAAO,EAAE;MAChB,MAAM,IAAIC,cAAW,CAAC,iCAAiC,EAAE,kBAAkB,EAAE;QACzEF;MACJ,CAAC,CAAC;IACN;IACA;AACR;AACA;IACQ,MAAMG,KAAK,GAAGP,KAAK,CAACI,KAAK,CAACC,OAAO,CAAC;IAClC,IAAIE,KAAK,KAAKC,SAAS,EAAE;MACrB,OAAOL,GAAG;IACd;IACAA,GAAG,CAACC,KAAK,CAACC,OAAO,CAAC,GAAGE,KAAK;IAC1B,OAAOJ,GAAG;EACd,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,CAAC;AAACM,OAAA,CAAAX,2BAAA,GAAAA,2BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","mapAndCleanUpdatedInputData","model","input","fields","reduce","acc","field","fieldId","WebinyError","value","undefined","exports"],"sources":["mapAndCleanUpdatedInputData.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { CmsModel } from \"~/types\";\n\n/**\n * Cleans the update input entry data.\n */\nexport const mapAndCleanUpdatedInputData = (model: CmsModel, input: Record<string, any>) => {\n return model.fields.reduce<Record<string, any>>((acc, field) => {\n /**\n * This should never happen, but let's make it sure.\n * The fix would be for the user to add the fieldId on the field definition.\n */\n if (!field.fieldId) {\n throw new WebinyError(\"Field does not have an fieldId.\", \"MISSING_FIELD_ID\", {\n field\n });\n }\n /**\n * We cannot set default value here because user might want to update only certain field values.\n */\n const value = input[field.fieldId];\n if (value === undefined) {\n return acc;\n }\n acc[field.fieldId] = value;\n return acc;\n }, {});\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA;AACA;AACA;AACO,MAAMC,2BAA2B,GAAGA,CAACC,KAAe,EAAEC,KAA0B,KAAK;EACxF,OAAOD,KAAK,CAACE,MAAM,CAACC,MAAM,CAAsB,CAACC,GAAG,EAAEC,KAAK,KAAK;IAC5D;AACR;AACA;AACA;IACQ,IAAI,CAACA,KAAK,CAACC,OAAO,EAAE;MAChB,MAAM,IAAIC,cAAW,CAAC,iCAAiC,EAAE,kBAAkB,EAAE;QACzEF;MACJ,CAAC,CAAC;IACN;IACA;AACR;AACA;IACQ,MAAMG,KAAK,GAAGP,KAAK,CAACI,KAAK,CAACC,OAAO,CAAC;IAClC,IAAIE,KAAK,KAAKC,SAAS,EAAE;MACrB,OAAOL,GAAG;IACd;IACAA,GAAG,CAACC,KAAK,CAACC,OAAO,CAAC,GAAGE,KAAK;IAC1B,OAAOJ,GAAG;EACd,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,CAAC;AAACM,OAAA,CAAAX,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { CmsContext, CmsEntry, CmsModel } from "../../types";
1
+ import type { CmsContext, CmsEntry, CmsModel } from "../../types";
2
2
  type InputData = Record<string, any>;
3
3
  export interface ValidateModelEntryDataParams {
4
4
  context: CmsContext;
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_camelCase","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","data","fieldId","valuesError","valueError","validation","predefinedValueError","runFieldValueValidations","error","execValidation","multipleValues","validateModelEntryData","skipValidators","isValidatorSkipped","plugin","includes","camelCase","skippedValidators","Set","validators","plugins","byType","isSkipped","add","push","keys","Object","size","parents","fields","exports","validateModelEntryDataOrThrow","invalidFields","WebinyError","executeFieldValidation","type","settings","id","storageId","objectValue","index","childField","errors","concat","templates","template","fieldData","templateValue","gqlTypeName","results"],"sources":["entryDataValidation.ts"],"sourcesContent":["import {\n CmsContext,\n CmsDynamicZoneTemplate,\n CmsEntry,\n CmsModel,\n CmsModelField,\n CmsModelFieldValidation,\n CmsModelFieldValidatorPlugin,\n CmsModelFieldValidatorValidateParams\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport camelCase from \"lodash/camelCase\";\n\ntype PluginValidationCallable = (params: CmsModelFieldValidatorValidateParams) => Promise<boolean>;\ntype PluginValidationList = Record<string, PluginValidationCallable[]>;\ntype InputData = Record<string, any>;\n\ninterface ExecuteValidationParams {\n validatorList: PluginValidationList;\n field: CmsModelField;\n model: CmsModel;\n data: InputData;\n context: CmsContext;\n entry?: CmsEntry;\n}\n\ntype PossibleValue = boolean | number | string | null | undefined;\n\nconst validateValue = async (\n params: ExecuteValidationParams,\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 (\n params: ExecuteValidationParams\n): Promise<string | null> => {\n const { field, data } = params;\n const values = data?.[field.fieldId];\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 (\n params: ExecuteValidationParams\n): Promise<string | null> => {\n const { data, field } = params;\n const value = data[field.fieldId];\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.multipleValues) {\n return await runFieldMultipleValuesValidations(params);\n }\n return await runFieldValueValidations(params);\n};\n\nexport interface ValidateModelEntryDataParams {\n context: CmsContext;\n model: CmsModel;\n data: InputData;\n entry?: CmsEntry;\n skipValidators?: string[];\n}\n\nexport const validateModelEntryData = async (params: ValidateModelEntryDataParams) => {\n const { context, model, entry, data, skipValidators } = params;\n\n const isValidatorSkipped = (plugin: CmsModelFieldValidatorPlugin) => {\n if (!skipValidators) {\n return false;\n }\n return skipValidators.includes(camelCase(plugin.validator.name));\n };\n\n const skippedValidators = new Set<string>();\n\n /**\n * To later simplify searching for the validations we map them to a name.\n * @see CmsModelFieldValidatorPlugin.validator.validate\n */\n const validatorList: PluginValidationList = {};\n const validators = context.plugins.byType<CmsModelFieldValidatorPlugin>(\n \"cms-model-field-validator\"\n );\n for (const plugin of validators) {\n const name = plugin.validator.name;\n if (!validatorList[name]) {\n validatorList[name] = [];\n }\n const isSkipped = isValidatorSkipped(plugin);\n if (isSkipped) {\n skippedValidators.add(name);\n }\n validatorList[name].push(isSkipped ? async () => true : plugin.validator.validate);\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({\n validatorList,\n context,\n model,\n entry,\n parents: [],\n fields: model.fields,\n data: {\n ...entry?.values,\n ...data\n }\n });\n};\n\nexport const validateModelEntryDataOrThrow = async (params: ValidateModelEntryDataParams) => {\n const invalidFields = await validateModelEntryData(params);\n if (invalidFields.length === 0) {\n return;\n }\n throw new WebinyError(\"Validation failed.\", \"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 ValidateParams {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n data: InputData;\n context: CmsContext;\n fields: CmsModelField[];\n entry?: CmsEntry;\n}\n\nconst executeFieldValidation = async (\n params: Omit<ValidateParams, \"fields\"> & {\n field: CmsModelField;\n }\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.data?.[field.fieldId];\n if (!objectValue) {\n return validations;\n }\n const values = Array.isArray(objectValue) ? objectValue : [objectValue];\n for (const index in values) {\n const parents = field.multipleValues ? [field.fieldId, index] : [field.fieldId];\n const value = values[index];\n for (const childField of fields) {\n const errors = await executeFieldValidation({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n data: 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.data?.[field.fieldId];\n if (!fieldData) {\n continue;\n }\n const values = Array.isArray(fieldData) ? fieldData : [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.multipleValues) {\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 data: 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\nconst validate = async (params: ValidateParams): Promise<any[]> => {\n const { fields } = params;\n const errors: FieldError[] = [];\n for (const field of fields) {\n const results = await executeFieldValidation({\n ...params,\n field\n });\n if (results.length === 0) {\n continue;\n }\n errors.push(...results);\n }\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_camelCase","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","data","fieldId","valuesError","valueError","validation","predefinedValueError","runFieldValueValidations","error","execValidation","multipleValues","validateModelEntryData","skipValidators","isValidatorSkipped","plugin","includes","camelCase","skippedValidators","Set","validators","plugins","byType","isSkipped","add","push","keys","Object","size","parents","fields","exports","validateModelEntryDataOrThrow","invalidFields","WebinyError","executeFieldValidation","type","settings","id","storageId","objectValue","index","childField","errors","concat","templates","template","fieldData","templateValue","gqlTypeName","results"],"sources":["entryDataValidation.ts"],"sourcesContent":["import type {\n CmsContext,\n CmsDynamicZoneTemplate,\n CmsEntry,\n CmsModel,\n CmsModelField,\n CmsModelFieldValidation,\n CmsModelFieldValidatorPlugin,\n CmsModelFieldValidatorValidateParams\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport camelCase from \"lodash/camelCase\";\n\ntype PluginValidationCallable = (params: CmsModelFieldValidatorValidateParams) => Promise<boolean>;\ntype PluginValidationList = Record<string, PluginValidationCallable[]>;\ntype InputData = Record<string, any>;\n\ninterface ExecuteValidationParams {\n validatorList: PluginValidationList;\n field: CmsModelField;\n model: CmsModel;\n data: InputData;\n context: CmsContext;\n entry?: CmsEntry;\n}\n\ntype PossibleValue = boolean | number | string | null | undefined;\n\nconst validateValue = async (\n params: ExecuteValidationParams,\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 (\n params: ExecuteValidationParams\n): Promise<string | null> => {\n const { field, data } = params;\n const values = data?.[field.fieldId];\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 (\n params: ExecuteValidationParams\n): Promise<string | null> => {\n const { data, field } = params;\n const value = data[field.fieldId];\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.multipleValues) {\n return await runFieldMultipleValuesValidations(params);\n }\n return await runFieldValueValidations(params);\n};\n\nexport interface ValidateModelEntryDataParams {\n context: CmsContext;\n model: CmsModel;\n data: InputData;\n entry?: CmsEntry;\n skipValidators?: string[];\n}\n\nexport const validateModelEntryData = async (params: ValidateModelEntryDataParams) => {\n const { context, model, entry, data, skipValidators } = params;\n\n const isValidatorSkipped = (plugin: CmsModelFieldValidatorPlugin) => {\n if (!skipValidators) {\n return false;\n }\n return skipValidators.includes(camelCase(plugin.validator.name));\n };\n\n const skippedValidators = new Set<string>();\n\n /**\n * To later simplify searching for the validations we map them to a name.\n * @see CmsModelFieldValidatorPlugin.validator.validate\n */\n const validatorList: PluginValidationList = {};\n const validators = context.plugins.byType<CmsModelFieldValidatorPlugin>(\n \"cms-model-field-validator\"\n );\n for (const plugin of validators) {\n const name = plugin.validator.name;\n if (!validatorList[name]) {\n validatorList[name] = [];\n }\n const isSkipped = isValidatorSkipped(plugin);\n if (isSkipped) {\n skippedValidators.add(name);\n }\n validatorList[name].push(isSkipped ? async () => true : plugin.validator.validate);\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({\n validatorList,\n context,\n model,\n entry,\n parents: [],\n fields: model.fields,\n data: {\n ...entry?.values,\n ...data\n }\n });\n};\n\nexport const validateModelEntryDataOrThrow = async (params: ValidateModelEntryDataParams) => {\n const invalidFields = await validateModelEntryData(params);\n if (invalidFields.length === 0) {\n return;\n }\n throw new WebinyError(\"Validation failed.\", \"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 ValidateParams {\n validatorList: PluginValidationList;\n parents: string[];\n model: CmsModel;\n data: InputData;\n context: CmsContext;\n fields: CmsModelField[];\n entry?: CmsEntry;\n}\n\nconst executeFieldValidation = async (\n params: Omit<ValidateParams, \"fields\"> & {\n field: CmsModelField;\n }\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.data?.[field.fieldId];\n if (!objectValue) {\n return validations;\n }\n const values = Array.isArray(objectValue) ? objectValue : [objectValue];\n for (const index in values) {\n const parents = field.multipleValues ? [field.fieldId, index] : [field.fieldId];\n const value = values[index];\n for (const childField of fields) {\n const errors = await executeFieldValidation({\n ...params,\n parents: params.parents.concat(parents),\n field: childField,\n data: 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.data?.[field.fieldId];\n if (!fieldData) {\n continue;\n }\n const values = Array.isArray(fieldData) ? fieldData : [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.multipleValues) {\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 data: 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\nconst validate = async (params: ValidateParams): Promise<any[]> => {\n const { fields } = params;\n const errors: FieldError[] = [];\n for (const field of fields) {\n const results = await executeFieldValidation({\n ...params,\n field\n });\n if (results.length === 0) {\n continue;\n }\n errors.push(...results);\n }\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { CmsContext, CmsEntry, CmsModel } from "../../types";
1
+ import type { CmsContext, CmsEntry, CmsModel } from "../../types";
2
2
  interface MarkLockedFieldsParams {
3
3
  model: CmsModel;
4
4
  entry: CmsEntry;