@strapi/content-manager 0.0.0-next.929f36e7cd2888f97e66b5159baa15234a283fca → 0.0.0-next.92e60e369ae0e382a5d486de347f6d286ab22987

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 (540) hide show
  1. package/dist/admin/components/ComponentIcon.js +3 -0
  2. package/dist/admin/components/ComponentIcon.js.map +1 -1
  3. package/dist/admin/components/ComponentIcon.mjs +3 -0
  4. package/dist/admin/components/ComponentIcon.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/EditFieldForm.js +3 -2
  6. package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs +3 -2
  8. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs.map +1 -1
  9. package/dist/admin/components/ConfigurationForm/Fields.js +304 -205
  10. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  11. package/dist/admin/components/ConfigurationForm/Fields.mjs +309 -211
  12. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  13. package/dist/admin/components/ConfigurationForm/Form.js +1 -1
  14. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  15. package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
  16. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  22. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  23. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  24. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  25. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  26. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  27. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  28. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  29. package/dist/admin/components/LeftMenu.js +94 -50
  30. package/dist/admin/components/LeftMenu.js.map +1 -1
  31. package/dist/admin/components/LeftMenu.mjs +97 -53
  32. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  33. package/dist/admin/components/RelativeTime.js.map +1 -1
  34. package/dist/admin/components/RelativeTime.mjs.map +1 -1
  35. package/dist/admin/components/Widgets.js +437 -0
  36. package/dist/admin/components/Widgets.js.map +1 -0
  37. package/dist/admin/components/Widgets.mjs +414 -0
  38. package/dist/admin/components/Widgets.mjs.map +1 -0
  39. package/dist/admin/content-manager.js.map +1 -1
  40. package/dist/admin/content-manager.mjs.map +1 -1
  41. package/dist/admin/history/components/HistoryAction.js.map +1 -1
  42. package/dist/admin/history/components/HistoryAction.mjs.map +1 -1
  43. package/dist/admin/history/components/VersionContent.js +24 -3
  44. package/dist/admin/history/components/VersionContent.js.map +1 -1
  45. package/dist/admin/history/components/VersionContent.mjs +25 -4
  46. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  47. package/dist/admin/history/components/VersionHeader.js +7 -0
  48. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  49. package/dist/admin/history/components/VersionHeader.mjs +8 -1
  50. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  51. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  52. package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
  53. package/dist/admin/history/components/VersionsList.js +1 -1
  54. package/dist/admin/history/components/VersionsList.js.map +1 -1
  55. package/dist/admin/history/components/VersionsList.mjs +1 -1
  56. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  57. package/dist/admin/history/pages/History.js +8 -16
  58. package/dist/admin/history/pages/History.js.map +1 -1
  59. package/dist/admin/history/pages/History.mjs +8 -16
  60. package/dist/admin/history/pages/History.mjs.map +1 -1
  61. package/dist/admin/history/services/historyVersion.js.map +1 -1
  62. package/dist/admin/history/services/historyVersion.mjs.map +1 -1
  63. package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
  64. package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
  65. package/dist/admin/hooks/useDocumentActions.js +43 -12
  66. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  67. package/dist/admin/hooks/useDocumentActions.mjs +44 -13
  68. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  69. package/dist/admin/hooks/useDocumentContext.js +57 -0
  70. package/dist/admin/hooks/useDocumentContext.js.map +1 -0
  71. package/dist/admin/hooks/useDocumentContext.mjs +36 -0
  72. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
  73. package/dist/admin/index.js +81 -5
  74. package/dist/admin/index.js.map +1 -1
  75. package/dist/admin/index.mjs +80 -3
  76. package/dist/admin/index.mjs.map +1 -1
  77. package/dist/admin/layout.js +28 -33
  78. package/dist/admin/layout.js.map +1 -1
  79. package/dist/admin/layout.mjs +29 -15
  80. package/dist/admin/layout.mjs.map +1 -1
  81. package/dist/admin/pages/EditView/EditViewPage.js +101 -88
  82. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  83. package/dist/admin/pages/EditView/EditViewPage.mjs +103 -90
  84. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  85. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  86. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  87. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  88. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  89. package/dist/admin/pages/EditView/components/DocumentActions.js +335 -123
  90. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  91. package/dist/admin/pages/EditView/components/DocumentActions.mjs +342 -130
  92. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  93. package/dist/admin/pages/EditView/components/DocumentStatus.js.map +1 -1
  94. package/dist/admin/pages/EditView/components/DocumentStatus.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  96. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +66 -2
  98. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +66 -2
  100. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.js.map +1 -1
  102. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  104. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  106. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +61 -26
  108. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
  110. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  112. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  114. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
  116. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
  118. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -1
  120. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +7 -3
  122. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +7 -3
  124. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
  126. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
  128. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +14 -3
  130. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  131. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +15 -4
  132. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  133. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +19 -5
  134. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  135. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +20 -6
  136. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  137. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  138. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  139. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  140. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  141. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +27 -24
  142. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  143. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +29 -26
  144. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  145. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
  146. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  147. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
  148. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  149. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +508 -345
  150. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  151. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +508 -347
  152. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  153. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +180 -70
  154. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  155. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +184 -74
  156. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  157. package/dist/admin/pages/EditView/components/FormInputs/UID.js +13 -10
  158. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  159. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +13 -10
  160. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  161. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  162. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  163. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  164. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  165. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
  166. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  167. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
  168. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  169. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  170. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
  171. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  172. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  173. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  174. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  175. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.js.map +1 -1
  176. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs.map +1 -1
  177. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.js.map +1 -1
  178. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.mjs.map +1 -1
  179. package/dist/admin/pages/EditView/components/FormLayout.js +59 -34
  180. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  181. package/dist/admin/pages/EditView/components/FormLayout.mjs +60 -34
  182. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  183. package/dist/admin/pages/EditView/components/Header.js +92 -27
  184. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  185. package/dist/admin/pages/EditView/components/Header.mjs +94 -29
  186. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  187. package/dist/admin/pages/EditView/components/InputRenderer.js +42 -34
  188. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  189. package/dist/admin/pages/EditView/components/InputRenderer.mjs +42 -34
  190. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  191. package/dist/admin/pages/EditView/utils/data.js +128 -0
  192. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  193. package/dist/admin/pages/EditView/utils/data.mjs +128 -1
  194. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  195. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  196. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  197. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  198. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  199. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
  200. package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
  201. package/dist/admin/pages/ListConfiguration/components/Header.js.map +1 -1
  202. package/dist/admin/pages/ListConfiguration/components/Header.mjs.map +1 -1
  203. package/dist/admin/pages/ListView/ListViewPage.js +225 -132
  204. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  205. package/dist/admin/pages/ListView/ListViewPage.mjs +227 -134
  206. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  207. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js.map +1 -1
  208. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs.map +1 -1
  209. package/dist/admin/pages/ListView/components/BulkActions/Actions.js +6 -16
  210. package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
  211. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs +6 -16
  212. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs.map +1 -1
  213. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +20 -32
  214. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  215. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +21 -33
  216. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  217. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +13 -3
  218. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  219. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +13 -3
  220. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  221. package/dist/admin/pages/ListView/components/Filters.js +8 -2
  222. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  223. package/dist/admin/pages/ListView/components/Filters.mjs +8 -2
  224. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  225. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  226. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  227. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  228. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  229. package/dist/admin/pages/ListView/components/TableCells/CellContent.js +1 -1
  230. package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
  231. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +1 -1
  232. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
  233. package/dist/admin/pages/ListView/components/TableCells/Media.js +1 -1
  234. package/dist/admin/pages/ListView/components/TableCells/Media.js.map +1 -1
  235. package/dist/admin/pages/ListView/components/TableCells/Media.mjs +1 -1
  236. package/dist/admin/pages/ListView/components/TableCells/Media.mjs.map +1 -1
  237. package/dist/admin/pages/ListView/components/TableCells/Relations.js +8 -4
  238. package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
  239. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs +8 -4
  240. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -1
  241. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +5 -2
  242. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
  243. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +5 -2
  244. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
  245. package/dist/admin/preview/components/InputPopover.js +189 -0
  246. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  247. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  248. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  249. package/dist/admin/preview/components/PreviewHeader.js +2 -6
  250. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  251. package/dist/admin/preview/components/PreviewHeader.mjs +2 -6
  252. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  253. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  254. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  255. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  256. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  257. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  258. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  259. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  260. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  261. package/dist/admin/preview/pages/Preview.js +180 -84
  262. package/dist/admin/preview/pages/Preview.js.map +1 -1
  263. package/dist/admin/preview/pages/Preview.mjs +182 -86
  264. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  265. package/dist/admin/preview/services/preview.js.map +1 -1
  266. package/dist/admin/preview/services/preview.mjs.map +1 -1
  267. package/dist/admin/preview/utils/constants.js +56 -0
  268. package/dist/admin/preview/utils/constants.js.map +1 -0
  269. package/dist/admin/preview/utils/constants.mjs +52 -0
  270. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  271. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  272. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  273. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  274. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  275. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  276. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  277. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  278. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  279. package/dist/admin/preview/utils/previewScript.js +534 -0
  280. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  281. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  282. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  283. package/dist/admin/router.js.map +1 -1
  284. package/dist/admin/router.mjs.map +1 -1
  285. package/dist/admin/services/api.js +5 -1
  286. package/dist/admin/services/api.js.map +1 -1
  287. package/dist/admin/services/api.mjs +5 -1
  288. package/dist/admin/services/api.mjs.map +1 -1
  289. package/dist/admin/services/documents.js +59 -17
  290. package/dist/admin/services/documents.js.map +1 -1
  291. package/dist/admin/services/documents.mjs +59 -17
  292. package/dist/admin/services/documents.mjs.map +1 -1
  293. package/dist/admin/services/homepage.js +30 -0
  294. package/dist/admin/services/homepage.js.map +1 -0
  295. package/dist/admin/services/homepage.mjs +28 -0
  296. package/dist/admin/services/homepage.mjs.map +1 -0
  297. package/dist/admin/services/relations.js.map +1 -1
  298. package/dist/admin/services/relations.mjs.map +1 -1
  299. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  300. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  301. package/dist/admin/src/components/Widgets.d.ts +8 -0
  302. package/dist/admin/src/content-manager.d.ts +0 -3
  303. package/dist/admin/src/exports.d.ts +1 -0
  304. package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
  305. package/dist/admin/src/history/pages/History.d.ts +1 -1
  306. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  307. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  308. package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
  309. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  310. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
  311. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +2 -0
  312. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
  313. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  314. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +73 -7
  315. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
  316. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  317. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -11
  318. package/dist/admin/src/pages/EditView/components/Header.d.ts +15 -0
  319. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -2
  320. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  321. package/dist/admin/src/pages/ListView/components/TableCells/Relations.d.ts +0 -3
  322. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  323. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  324. package/dist/admin/src/preview/pages/Preview.d.ts +14 -1
  325. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  326. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  327. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  328. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  329. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  330. package/dist/admin/src/services/api.d.ts +1 -1
  331. package/dist/admin/src/services/components.d.ts +2 -2
  332. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  333. package/dist/admin/src/services/documents.d.ts +23 -17
  334. package/dist/admin/src/services/homepage.d.ts +5 -0
  335. package/dist/admin/src/services/init.d.ts +1 -1
  336. package/dist/admin/src/services/relations.d.ts +2 -2
  337. package/dist/admin/src/services/uid.d.ts +3 -3
  338. package/dist/admin/src/utils/api.d.ts +1 -1
  339. package/dist/admin/src/utils/validation.d.ts +1 -0
  340. package/dist/admin/translations/en.json.js +15 -1
  341. package/dist/admin/translations/en.json.js.map +1 -1
  342. package/dist/admin/translations/en.json.mjs +15 -1
  343. package/dist/admin/translations/en.json.mjs.map +1 -1
  344. package/dist/admin/translations/es.json.js +6 -2
  345. package/dist/admin/translations/es.json.js.map +1 -1
  346. package/dist/admin/translations/es.json.mjs +6 -2
  347. package/dist/admin/translations/es.json.mjs.map +1 -1
  348. package/dist/admin/translations/fr.json.js +12 -3
  349. package/dist/admin/translations/fr.json.js.map +1 -1
  350. package/dist/admin/translations/fr.json.mjs +12 -3
  351. package/dist/admin/translations/fr.json.mjs.map +1 -1
  352. package/dist/admin/translations/ru.json.js +235 -226
  353. package/dist/admin/translations/ru.json.js.map +1 -1
  354. package/dist/admin/translations/ru.json.mjs +230 -226
  355. package/dist/admin/translations/ru.json.mjs.map +1 -1
  356. package/dist/admin/utils/api.js +1 -1
  357. package/dist/admin/utils/api.js.map +1 -1
  358. package/dist/admin/utils/api.mjs +1 -1
  359. package/dist/admin/utils/api.mjs.map +1 -1
  360. package/dist/admin/utils/translations.js.map +1 -1
  361. package/dist/admin/utils/translations.mjs.map +1 -1
  362. package/dist/admin/utils/urls.js.map +1 -1
  363. package/dist/admin/utils/urls.mjs.map +1 -1
  364. package/dist/admin/utils/users.js.map +1 -1
  365. package/dist/admin/utils/users.mjs.map +1 -1
  366. package/dist/admin/utils/validation.js +19 -7
  367. package/dist/admin/utils/validation.js.map +1 -1
  368. package/dist/admin/utils/validation.mjs +19 -7
  369. package/dist/admin/utils/validation.mjs.map +1 -1
  370. package/dist/server/controllers/collection-types.js +2 -1
  371. package/dist/server/controllers/collection-types.js.map +1 -1
  372. package/dist/server/controllers/collection-types.mjs +2 -1
  373. package/dist/server/controllers/collection-types.mjs.map +1 -1
  374. package/dist/server/controllers/content-types.js +11 -1
  375. package/dist/server/controllers/content-types.js.map +1 -1
  376. package/dist/server/controllers/content-types.mjs +11 -1
  377. package/dist/server/controllers/content-types.mjs.map +1 -1
  378. package/dist/server/controllers/index.js +3 -1
  379. package/dist/server/controllers/index.js.map +1 -1
  380. package/dist/server/controllers/index.mjs +3 -1
  381. package/dist/server/controllers/index.mjs.map +1 -1
  382. package/dist/server/controllers/relations.js +8 -6
  383. package/dist/server/controllers/relations.js.map +1 -1
  384. package/dist/server/controllers/relations.mjs +8 -6
  385. package/dist/server/controllers/relations.mjs.map +1 -1
  386. package/dist/server/controllers/single-types.js +3 -1
  387. package/dist/server/controllers/single-types.js.map +1 -1
  388. package/dist/server/controllers/single-types.mjs +3 -1
  389. package/dist/server/controllers/single-types.mjs.map +1 -1
  390. package/dist/server/controllers/validation/dimensions.js.map +1 -1
  391. package/dist/server/controllers/validation/dimensions.mjs.map +1 -1
  392. package/dist/server/controllers/validation/index.js +14 -2
  393. package/dist/server/controllers/validation/index.js.map +1 -1
  394. package/dist/server/controllers/validation/index.mjs +14 -2
  395. package/dist/server/controllers/validation/index.mjs.map +1 -1
  396. package/dist/server/controllers/validation/model-configuration.js +2 -2
  397. package/dist/server/controllers/validation/model-configuration.js.map +1 -1
  398. package/dist/server/controllers/validation/model-configuration.mjs +2 -2
  399. package/dist/server/controllers/validation/model-configuration.mjs.map +1 -1
  400. package/dist/server/history/services/lifecycles.js +23 -19
  401. package/dist/server/history/services/lifecycles.js.map +1 -1
  402. package/dist/server/history/services/lifecycles.mjs +23 -19
  403. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  404. package/dist/server/history/utils.js.map +1 -1
  405. package/dist/server/history/utils.mjs.map +1 -1
  406. package/dist/server/homepage/controllers/homepage.js +62 -0
  407. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  408. package/dist/server/homepage/controllers/homepage.mjs +41 -0
  409. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  410. package/dist/server/homepage/controllers/index.js +10 -0
  411. package/dist/server/homepage/controllers/index.js.map +1 -0
  412. package/dist/server/homepage/controllers/index.mjs +8 -0
  413. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  414. package/dist/server/homepage/index.js +14 -0
  415. package/dist/server/homepage/index.js.map +1 -0
  416. package/dist/server/homepage/index.mjs +12 -0
  417. package/dist/server/homepage/index.mjs.map +1 -0
  418. package/dist/server/homepage/routes/homepage.js +36 -0
  419. package/dist/server/homepage/routes/homepage.js.map +1 -0
  420. package/dist/server/homepage/routes/homepage.mjs +34 -0
  421. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  422. package/dist/server/homepage/routes/index.js +13 -0
  423. package/dist/server/homepage/routes/index.js.map +1 -0
  424. package/dist/server/homepage/routes/index.mjs +11 -0
  425. package/dist/server/homepage/routes/index.mjs.map +1 -0
  426. package/dist/server/homepage/services/homepage.js +198 -0
  427. package/dist/server/homepage/services/homepage.js.map +1 -0
  428. package/dist/server/homepage/services/homepage.mjs +196 -0
  429. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  430. package/dist/server/homepage/services/index.js +10 -0
  431. package/dist/server/homepage/services/index.js.map +1 -0
  432. package/dist/server/homepage/services/index.mjs +8 -0
  433. package/dist/server/homepage/services/index.mjs.map +1 -0
  434. package/dist/server/middlewares/routing.js.map +1 -1
  435. package/dist/server/middlewares/routing.mjs.map +1 -1
  436. package/dist/server/preview/services/preview-config.js +11 -32
  437. package/dist/server/preview/services/preview-config.js.map +1 -1
  438. package/dist/server/preview/services/preview-config.mjs +12 -33
  439. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  440. package/dist/server/preview/services/preview.js +4 -1
  441. package/dist/server/preview/services/preview.js.map +1 -1
  442. package/dist/server/preview/services/preview.mjs +4 -1
  443. package/dist/server/preview/services/preview.mjs.map +1 -1
  444. package/dist/server/preview/utils.js.map +1 -1
  445. package/dist/server/preview/utils.mjs.map +1 -1
  446. package/dist/server/routes/index.js +3 -1
  447. package/dist/server/routes/index.js.map +1 -1
  448. package/dist/server/routes/index.mjs +3 -1
  449. package/dist/server/routes/index.mjs.map +1 -1
  450. package/dist/server/services/configuration.js.map +1 -1
  451. package/dist/server/services/configuration.mjs.map +1 -1
  452. package/dist/server/services/data-mapper.js +4 -1
  453. package/dist/server/services/data-mapper.js.map +1 -1
  454. package/dist/server/services/data-mapper.mjs +4 -1
  455. package/dist/server/services/data-mapper.mjs.map +1 -1
  456. package/dist/server/services/document-manager.js +8 -1
  457. package/dist/server/services/document-manager.js.map +1 -1
  458. package/dist/server/services/document-manager.mjs +8 -1
  459. package/dist/server/services/document-manager.mjs.map +1 -1
  460. package/dist/server/services/document-metadata.js +26 -2
  461. package/dist/server/services/document-metadata.js.map +1 -1
  462. package/dist/server/services/document-metadata.mjs +26 -2
  463. package/dist/server/services/document-metadata.mjs.map +1 -1
  464. package/dist/server/services/field-sizes.js.map +1 -1
  465. package/dist/server/services/field-sizes.mjs.map +1 -1
  466. package/dist/server/services/index.js +3 -1
  467. package/dist/server/services/index.js.map +1 -1
  468. package/dist/server/services/index.mjs +3 -1
  469. package/dist/server/services/index.mjs.map +1 -1
  470. package/dist/server/services/uid.js.map +1 -1
  471. package/dist/server/services/uid.mjs.map +1 -1
  472. package/dist/server/services/utils/configuration/attributes.js +1 -1
  473. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  474. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  475. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  476. package/dist/server/services/utils/configuration/layouts.js +1 -1
  477. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  478. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  479. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  480. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  481. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  482. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  483. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  484. package/dist/server/services/utils/populate.js +11 -0
  485. package/dist/server/services/utils/populate.js.map +1 -1
  486. package/dist/server/services/utils/populate.mjs +11 -0
  487. package/dist/server/services/utils/populate.mjs.map +1 -1
  488. package/dist/server/services/utils/store.js.map +1 -1
  489. package/dist/server/services/utils/store.mjs.map +1 -1
  490. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  491. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  492. package/dist/server/src/controllers/index.d.ts.map +1 -1
  493. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  494. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  495. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  496. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  497. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  498. package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
  499. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  500. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  501. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  502. package/dist/server/src/homepage/index.d.ts +23 -0
  503. package/dist/server/src/homepage/index.d.ts.map +1 -0
  504. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  505. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  506. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  507. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  508. package/dist/server/src/homepage/services/homepage.d.ts +14 -0
  509. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  510. package/dist/server/src/homepage/services/index.d.ts +16 -0
  511. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  512. package/dist/server/src/index.d.ts +15 -0
  513. package/dist/server/src/index.d.ts.map +1 -1
  514. package/dist/server/src/preview/services/index.d.ts +1 -0
  515. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  516. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  517. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  518. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  519. package/dist/server/src/preview/utils.d.ts +1 -0
  520. package/dist/server/src/preview/utils.d.ts.map +1 -1
  521. package/dist/server/src/routes/index.d.ts +1 -0
  522. package/dist/server/src/routes/index.d.ts.map +1 -1
  523. package/dist/server/src/services/data-mapper.d.ts +1 -0
  524. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  525. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  526. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  527. package/dist/server/src/services/index.d.ts +14 -0
  528. package/dist/server/src/services/index.d.ts.map +1 -1
  529. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  530. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  531. package/dist/shared/contracts/collection-types.d.ts +0 -1
  532. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  533. package/dist/shared/contracts/homepage.d.ts +38 -0
  534. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  535. package/package.json +13 -11
  536. package/dist/admin/features/DocumentContext.js +0 -71
  537. package/dist/admin/features/DocumentContext.js.map +0 -1
  538. package/dist/admin/features/DocumentContext.mjs +0 -49
  539. package/dist/admin/features/DocumentContext.mjs.map +0 -1
  540. package/dist/admin/src/features/DocumentContext.d.ts +0 -53
@@ -1,47 +1,21 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
4
3
  var strapiUtils = require('@strapi/utils');
5
4
 
6
- /**
7
- * Utility to extend Strapi configuration middlewares. Mainly used to extend the CSP directives from the security middleware.
8
- */ const extendMiddlewareConfiguration = (middleware = {
9
- name: '',
10
- config: {}
11
- })=>{
12
- const middlewares = strapi.config.get('middlewares');
13
- const configuredMiddlewares = middlewares.map((currentMiddleware)=>{
14
- if (currentMiddleware === middleware.name) {
15
- // Use the new config object if the middleware has no config property yet
16
- return middleware;
17
- }
18
- // @ts-expect-error - currentMiddleware is not a string
19
- if (currentMiddleware.name === middleware.name) {
20
- // Deep merge (+ concat arrays) the new config with the current middleware config
21
- return fp.mergeWith((objValue, srcValue)=>{
22
- if (Array.isArray(objValue)) {
23
- return objValue.concat(srcValue);
24
- }
25
- return undefined;
26
- }, currentMiddleware, middleware);
27
- }
28
- return currentMiddleware;
29
- });
30
- strapi.config.set('middlewares', configuredMiddlewares);
31
- };
32
5
  /**
33
6
  * Read configuration for static preview
34
- */ const createPreviewConfigService = ({ strapi: strapi1 })=>{
7
+ */ const createPreviewConfigService = ({ strapi })=>{
35
8
  return {
36
9
  register () {
37
10
  if (!this.isEnabled()) {
38
11
  return;
39
12
  }
40
- const config = strapi1.config.get('admin.preview');
13
+ const config = strapi.config.get('admin.preview');
41
14
  /**
42
15
  * Register the allowed origins for CSP, so the preview URL can be displayed
43
16
  */ if (config.config?.allowedOrigins) {
44
- extendMiddlewareConfiguration({
17
+ const middlewares = strapi.config.get('middlewares');
18
+ const configuredMiddlewares = strapiUtils.extendMiddlewareConfiguration(middlewares, {
45
19
  name: 'strapi::security',
46
20
  config: {
47
21
  contentSecurityPolicy: {
@@ -51,10 +25,15 @@ var strapiUtils = require('@strapi/utils');
51
25
  }
52
26
  }
53
27
  });
28
+ strapi.config.set('middlewares', configuredMiddlewares);
54
29
  }
55
30
  },
31
+ isConfigured () {
32
+ const config = strapi.config.get('admin.preview');
33
+ return config?.enabled === false || config?.config?.handler != null;
34
+ },
56
35
  isEnabled () {
57
- const config = strapi1.config.get('admin.preview');
36
+ const config = strapi.config.get('admin.preview');
58
37
  if (!config) {
59
38
  return false;
60
39
  }
@@ -75,13 +54,13 @@ var strapiUtils = require('@strapi/utils');
75
54
  /**
76
55
  * Utility to get the preview handler from the configuration
77
56
  */ getPreviewHandler () {
78
- const config = strapi1.config.get('admin.preview');
79
57
  const emptyHandler = ()=>{
80
58
  return undefined;
81
59
  };
82
60
  if (!this.isEnabled()) {
83
61
  return emptyHandler;
84
62
  }
63
+ const config = strapi.config.get('admin.preview');
85
64
  return config?.config?.handler || emptyHandler;
86
65
  }
87
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"preview-config.js","sources":["../../../../server/src/preview/services/preview-config.ts"],"sourcesContent":["import { mergeWith } from 'lodash/fp';\n\nimport type { Core, UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nexport type HandlerParams = {\n documentId: string;\n locale: string;\n status: 'published' | 'draft';\n};\n\nexport interface PreviewConfig {\n enabled: boolean;\n config: {\n // List of CSP allowed origins. This is a shortcut to setting it up inside `config/middlewares.js`\n allowedOrigins: string[];\n handler: (uid: UID.Schema, params: HandlerParams) => string | undefined;\n };\n}\n\n/**\n * Utility to extend Strapi configuration middlewares. Mainly used to extend the CSP directives from the security middleware.\n */\nconst extendMiddlewareConfiguration = (middleware = { name: '', config: {} }) => {\n const middlewares = strapi.config.get('middlewares') as (string | object)[];\n\n const configuredMiddlewares = middlewares.map((currentMiddleware) => {\n if (currentMiddleware === middleware.name) {\n // Use the new config object if the middleware has no config property yet\n return middleware;\n }\n\n // @ts-expect-error - currentMiddleware is not a string\n if (currentMiddleware.name === middleware.name) {\n // Deep merge (+ concat arrays) the new config with the current middleware config\n return mergeWith(\n (objValue, srcValue) => {\n if (Array.isArray(objValue)) {\n return objValue.concat(srcValue);\n }\n\n return undefined;\n },\n currentMiddleware,\n middleware\n );\n }\n\n return currentMiddleware;\n });\n\n strapi.config.set('middlewares', configuredMiddlewares);\n};\n\n/**\n * Read configuration for static preview\n */\nconst createPreviewConfigService = ({ strapi }: { strapi: Core.Strapi }) => {\n return {\n register() {\n if (!this.isEnabled()) {\n return;\n }\n\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n /**\n * Register the allowed origins for CSP, so the preview URL can be displayed\n */\n if (config.config?.allowedOrigins) {\n extendMiddlewareConfiguration({\n name: 'strapi::security',\n config: {\n contentSecurityPolicy: {\n directives: {\n 'frame-src': config.config.allowedOrigins,\n },\n },\n },\n });\n }\n },\n\n isEnabled() {\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n if (!config) {\n return false;\n }\n\n return config?.enabled ?? true;\n },\n\n /**\n * Validate if the configuration is valid\n */\n validate() {\n if (!this.isEnabled()) {\n return;\n }\n\n const handler = this.getPreviewHandler();\n\n // Handler must be a function\n if (typeof handler !== 'function') {\n throw new errors.ValidationError(\n 'Preview configuration is invalid. Handler must be a function'\n );\n }\n },\n\n /**\n * Utility to get the preview handler from the configuration\n */\n getPreviewHandler(): PreviewConfig['config']['handler'] {\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n const emptyHandler = () => {\n return undefined;\n };\n\n if (!this.isEnabled()) {\n return emptyHandler;\n }\n\n return config?.config?.handler || emptyHandler;\n },\n };\n};\n\nexport { createPreviewConfigService };\n"],"names":["extendMiddlewareConfiguration","middleware","name","config","middlewares","strapi","get","configuredMiddlewares","map","currentMiddleware","mergeWith","objValue","srcValue","Array","isArray","concat","undefined","set","createPreviewConfigService","register","isEnabled","allowedOrigins","contentSecurityPolicy","directives","enabled","validate","handler","getPreviewHandler","errors","ValidationError","emptyHandler"],"mappings":";;;;;AAoBA;;IAGA,MAAMA,6BAAgC,GAAA,CAACC,UAAa,GAAA;IAAEC,IAAM,EAAA,EAAA;AAAIC,IAAAA,MAAAA,EAAQ;AAAG,CAAC,GAAA;AAC1E,IAAA,MAAMC,WAAcC,GAAAA,MAAAA,CAAOF,MAAM,CAACG,GAAG,CAAC,aAAA,CAAA;AAEtC,IAAA,MAAMC,qBAAwBH,GAAAA,WAAAA,CAAYI,GAAG,CAAC,CAACC,iBAAAA,GAAAA;QAC7C,IAAIA,iBAAAA,KAAsBR,UAAWC,CAAAA,IAAI,EAAE;;YAEzC,OAAOD,UAAAA;AACT;;AAGA,QAAA,IAAIQ,iBAAkBP,CAAAA,IAAI,KAAKD,UAAAA,CAAWC,IAAI,EAAE;;YAE9C,OAAOQ,YAAAA,CACL,CAACC,QAAUC,EAAAA,QAAAA,GAAAA;gBACT,IAAIC,KAAAA,CAAMC,OAAO,CAACH,QAAW,CAAA,EAAA;oBAC3B,OAAOA,QAAAA,CAASI,MAAM,CAACH,QAAAA,CAAAA;AACzB;gBAEA,OAAOI,SAAAA;AACT,aAAA,EACAP,iBACAR,EAAAA,UAAAA,CAAAA;AAEJ;QAEA,OAAOQ,iBAAAA;AACT,KAAA,CAAA;AAEAJ,IAAAA,MAAAA,CAAOF,MAAM,CAACc,GAAG,CAAC,aAAeV,EAAAA,qBAAAA,CAAAA;AACnC,CAAA;AAEA;;AAEC,UACKW,0BAA6B,GAAA,CAAC,EAAEb,MAAAA,EAAAA,OAAM,EAA2B,GAAA;IACrE,OAAO;AACLc,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAACC,SAAS,EAAI,EAAA;AACrB,gBAAA;AACF;AAEA,YAAA,MAAMjB,MAASE,GAAAA,OAAAA,CAAOF,MAAM,CAACG,GAAG,CAAC,eAAA,CAAA;AAEjC;;AAEC,UACD,IAAIH,MAAAA,CAAOA,MAAM,EAAEkB,cAAgB,EAAA;gBACjCrB,6BAA8B,CAAA;oBAC5BE,IAAM,EAAA,kBAAA;oBACNC,MAAQ,EAAA;wBACNmB,qBAAuB,EAAA;4BACrBC,UAAY,EAAA;gCACV,WAAapB,EAAAA,MAAAA,CAAOA,MAAM,CAACkB;AAC7B;AACF;AACF;AACF,iBAAA,CAAA;AACF;AACF,SAAA;AAEAD,QAAAA,SAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMjB,MAASE,GAAAA,OAAAA,CAAOF,MAAM,CAACG,GAAG,CAAC,eAAA,CAAA;AAEjC,YAAA,IAAI,CAACH,MAAQ,EAAA;gBACX,OAAO,KAAA;AACT;AAEA,YAAA,OAAOA,QAAQqB,OAAW,IAAA,IAAA;AAC5B,SAAA;AAEA;;QAGAC,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAACL,SAAS,EAAI,EAAA;AACrB,gBAAA;AACF;YAEA,MAAMM,OAAAA,GAAU,IAAI,CAACC,iBAAiB,EAAA;;YAGtC,IAAI,OAAOD,YAAY,UAAY,EAAA;gBACjC,MAAM,IAAIE,kBAAOC,CAAAA,eAAe,CAC9B,8DAAA,CAAA;AAEJ;AACF,SAAA;AAEA;;QAGAF,iBAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMxB,MAASE,GAAAA,OAAAA,CAAOF,MAAM,CAACG,GAAG,CAAC,eAAA,CAAA;AAEjC,YAAA,MAAMwB,YAAe,GAAA,IAAA;gBACnB,OAAOd,SAAAA;AACT,aAAA;AAEA,YAAA,IAAI,CAAC,IAAI,CAACI,SAAS,EAAI,EAAA;gBACrB,OAAOU,YAAAA;AACT;YAEA,OAAO3B,MAAAA,EAAQA,QAAQuB,OAAWI,IAAAA,YAAAA;AACpC;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"preview-config.js","sources":["../../../../server/src/preview/services/preview-config.ts"],"sourcesContent":["import type { Core, UID } from '@strapi/types';\nimport { errors, extendMiddlewareConfiguration } from '@strapi/utils';\n\nexport type HandlerParams = {\n documentId: string;\n locale: string;\n status: 'published' | 'draft';\n};\n\nexport interface PreviewConfig {\n enabled: boolean;\n config: {\n // List of CSP allowed origins. This is a shortcut to setting it up inside `config/middlewares.js`\n allowedOrigins: string[];\n handler: (uid: UID.Schema, params: HandlerParams) => string | undefined;\n };\n}\n\n/**\n * Read configuration for static preview\n */\nconst createPreviewConfigService = ({ strapi }: { strapi: Core.Strapi }) => {\n return {\n register() {\n if (!this.isEnabled()) {\n return;\n }\n\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n /**\n * Register the allowed origins for CSP, so the preview URL can be displayed\n */\n if (config.config?.allowedOrigins) {\n const middlewares = strapi.config.get('middlewares') as (\n | string\n | { name?: string; config?: any }\n )[];\n\n const configuredMiddlewares = extendMiddlewareConfiguration(middlewares, {\n name: 'strapi::security',\n config: {\n contentSecurityPolicy: {\n directives: {\n 'frame-src': config.config.allowedOrigins,\n },\n },\n },\n });\n\n strapi.config.set('middlewares', configuredMiddlewares);\n }\n },\n\n isConfigured() {\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n return config?.enabled === false || config?.config?.handler != null;\n },\n\n isEnabled() {\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n if (!config) {\n return false;\n }\n\n return config?.enabled ?? true;\n },\n\n /**\n * Validate if the configuration is valid\n */\n validate() {\n if (!this.isEnabled()) {\n return;\n }\n\n const handler = this.getPreviewHandler();\n\n // Handler must be a function\n if (typeof handler !== 'function') {\n throw new errors.ValidationError(\n 'Preview configuration is invalid. Handler must be a function'\n );\n }\n },\n\n /**\n * Utility to get the preview handler from the configuration\n */\n getPreviewHandler(): PreviewConfig['config']['handler'] {\n const emptyHandler = () => {\n return undefined;\n };\n\n if (!this.isEnabled()) {\n return emptyHandler;\n }\n\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n return config?.config?.handler || emptyHandler;\n },\n };\n};\n\nexport { createPreviewConfigService };\n"],"names":["createPreviewConfigService","strapi","register","isEnabled","config","get","allowedOrigins","middlewares","configuredMiddlewares","extendMiddlewareConfiguration","name","contentSecurityPolicy","directives","set","isConfigured","enabled","handler","validate","getPreviewHandler","errors","ValidationError","emptyHandler","undefined"],"mappings":";;;;AAkBA;;AAEC,IACKA,MAAAA,0BAAAA,GAA6B,CAAC,EAAEC,MAAM,EAA2B,GAAA;IACrE,OAAO;AACLC,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAACC,SAAS,EAAI,EAAA;AACrB,gBAAA;AACF;AAEA,YAAA,MAAMC,MAASH,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AAEjC;;AAEC,UACD,IAAID,MAAAA,CAAOA,MAAM,EAAEE,cAAgB,EAAA;AACjC,gBAAA,MAAMC,WAAcN,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,aAAA,CAAA;gBAKtC,MAAMG,qBAAAA,GAAwBC,0CAA8BF,WAAa,EAAA;oBACvEG,IAAM,EAAA,kBAAA;oBACNN,MAAQ,EAAA;wBACNO,qBAAuB,EAAA;4BACrBC,UAAY,EAAA;gCACV,WAAaR,EAAAA,MAAAA,CAAOA,MAAM,CAACE;AAC7B;AACF;AACF;AACF,iBAAA,CAAA;AAEAL,gBAAAA,MAAAA,CAAOG,MAAM,CAACS,GAAG,CAAC,aAAeL,EAAAA,qBAAAA,CAAAA;AACnC;AACF,SAAA;AAEAM,QAAAA,YAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMV,MAASH,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AACjC,YAAA,OAAOD,MAAQW,EAAAA,OAAAA,KAAY,KAASX,IAAAA,MAAAA,EAAQA,QAAQY,OAAW,IAAA,IAAA;AACjE,SAAA;AAEAb,QAAAA,SAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMC,MAASH,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AAEjC,YAAA,IAAI,CAACD,MAAQ,EAAA;gBACX,OAAO,KAAA;AACT;AAEA,YAAA,OAAOA,QAAQW,OAAW,IAAA,IAAA;AAC5B,SAAA;AAEA;;QAGAE,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAACd,SAAS,EAAI,EAAA;AACrB,gBAAA;AACF;YAEA,MAAMa,OAAAA,GAAU,IAAI,CAACE,iBAAiB,EAAA;;YAGtC,IAAI,OAAOF,YAAY,UAAY,EAAA;gBACjC,MAAM,IAAIG,kBAAOC,CAAAA,eAAe,CAC9B,8DAAA,CAAA;AAEJ;AACF,SAAA;AAEA;;QAGAF,iBAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMG,YAAe,GAAA,IAAA;gBACnB,OAAOC,SAAAA;AACT,aAAA;AAEA,YAAA,IAAI,CAAC,IAAI,CAACnB,SAAS,EAAI,EAAA;gBACrB,OAAOkB,YAAAA;AACT;AAEA,YAAA,MAAMjB,MAASH,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;YAEjC,OAAOD,MAAAA,EAAQA,QAAQY,OAAWK,IAAAA,YAAAA;AACpC;AACF,KAAA;AACF;;;;"}
@@ -1,45 +1,19 @@
1
- import { mergeWith } from 'lodash/fp';
2
- import { errors } from '@strapi/utils';
1
+ import { extendMiddlewareConfiguration, errors } from '@strapi/utils';
3
2
 
4
- /**
5
- * Utility to extend Strapi configuration middlewares. Mainly used to extend the CSP directives from the security middleware.
6
- */ const extendMiddlewareConfiguration = (middleware = {
7
- name: '',
8
- config: {}
9
- })=>{
10
- const middlewares = strapi.config.get('middlewares');
11
- const configuredMiddlewares = middlewares.map((currentMiddleware)=>{
12
- if (currentMiddleware === middleware.name) {
13
- // Use the new config object if the middleware has no config property yet
14
- return middleware;
15
- }
16
- // @ts-expect-error - currentMiddleware is not a string
17
- if (currentMiddleware.name === middleware.name) {
18
- // Deep merge (+ concat arrays) the new config with the current middleware config
19
- return mergeWith((objValue, srcValue)=>{
20
- if (Array.isArray(objValue)) {
21
- return objValue.concat(srcValue);
22
- }
23
- return undefined;
24
- }, currentMiddleware, middleware);
25
- }
26
- return currentMiddleware;
27
- });
28
- strapi.config.set('middlewares', configuredMiddlewares);
29
- };
30
3
  /**
31
4
  * Read configuration for static preview
32
- */ const createPreviewConfigService = ({ strapi: strapi1 })=>{
5
+ */ const createPreviewConfigService = ({ strapi })=>{
33
6
  return {
34
7
  register () {
35
8
  if (!this.isEnabled()) {
36
9
  return;
37
10
  }
38
- const config = strapi1.config.get('admin.preview');
11
+ const config = strapi.config.get('admin.preview');
39
12
  /**
40
13
  * Register the allowed origins for CSP, so the preview URL can be displayed
41
14
  */ if (config.config?.allowedOrigins) {
42
- extendMiddlewareConfiguration({
15
+ const middlewares = strapi.config.get('middlewares');
16
+ const configuredMiddlewares = extendMiddlewareConfiguration(middlewares, {
43
17
  name: 'strapi::security',
44
18
  config: {
45
19
  contentSecurityPolicy: {
@@ -49,10 +23,15 @@ import { errors } from '@strapi/utils';
49
23
  }
50
24
  }
51
25
  });
26
+ strapi.config.set('middlewares', configuredMiddlewares);
52
27
  }
53
28
  },
29
+ isConfigured () {
30
+ const config = strapi.config.get('admin.preview');
31
+ return config?.enabled === false || config?.config?.handler != null;
32
+ },
54
33
  isEnabled () {
55
- const config = strapi1.config.get('admin.preview');
34
+ const config = strapi.config.get('admin.preview');
56
35
  if (!config) {
57
36
  return false;
58
37
  }
@@ -73,13 +52,13 @@ import { errors } from '@strapi/utils';
73
52
  /**
74
53
  * Utility to get the preview handler from the configuration
75
54
  */ getPreviewHandler () {
76
- const config = strapi1.config.get('admin.preview');
77
55
  const emptyHandler = ()=>{
78
56
  return undefined;
79
57
  };
80
58
  if (!this.isEnabled()) {
81
59
  return emptyHandler;
82
60
  }
61
+ const config = strapi.config.get('admin.preview');
83
62
  return config?.config?.handler || emptyHandler;
84
63
  }
85
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"preview-config.mjs","sources":["../../../../server/src/preview/services/preview-config.ts"],"sourcesContent":["import { mergeWith } from 'lodash/fp';\n\nimport type { Core, UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nexport type HandlerParams = {\n documentId: string;\n locale: string;\n status: 'published' | 'draft';\n};\n\nexport interface PreviewConfig {\n enabled: boolean;\n config: {\n // List of CSP allowed origins. This is a shortcut to setting it up inside `config/middlewares.js`\n allowedOrigins: string[];\n handler: (uid: UID.Schema, params: HandlerParams) => string | undefined;\n };\n}\n\n/**\n * Utility to extend Strapi configuration middlewares. Mainly used to extend the CSP directives from the security middleware.\n */\nconst extendMiddlewareConfiguration = (middleware = { name: '', config: {} }) => {\n const middlewares = strapi.config.get('middlewares') as (string | object)[];\n\n const configuredMiddlewares = middlewares.map((currentMiddleware) => {\n if (currentMiddleware === middleware.name) {\n // Use the new config object if the middleware has no config property yet\n return middleware;\n }\n\n // @ts-expect-error - currentMiddleware is not a string\n if (currentMiddleware.name === middleware.name) {\n // Deep merge (+ concat arrays) the new config with the current middleware config\n return mergeWith(\n (objValue, srcValue) => {\n if (Array.isArray(objValue)) {\n return objValue.concat(srcValue);\n }\n\n return undefined;\n },\n currentMiddleware,\n middleware\n );\n }\n\n return currentMiddleware;\n });\n\n strapi.config.set('middlewares', configuredMiddlewares);\n};\n\n/**\n * Read configuration for static preview\n */\nconst createPreviewConfigService = ({ strapi }: { strapi: Core.Strapi }) => {\n return {\n register() {\n if (!this.isEnabled()) {\n return;\n }\n\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n /**\n * Register the allowed origins for CSP, so the preview URL can be displayed\n */\n if (config.config?.allowedOrigins) {\n extendMiddlewareConfiguration({\n name: 'strapi::security',\n config: {\n contentSecurityPolicy: {\n directives: {\n 'frame-src': config.config.allowedOrigins,\n },\n },\n },\n });\n }\n },\n\n isEnabled() {\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n if (!config) {\n return false;\n }\n\n return config?.enabled ?? true;\n },\n\n /**\n * Validate if the configuration is valid\n */\n validate() {\n if (!this.isEnabled()) {\n return;\n }\n\n const handler = this.getPreviewHandler();\n\n // Handler must be a function\n if (typeof handler !== 'function') {\n throw new errors.ValidationError(\n 'Preview configuration is invalid. Handler must be a function'\n );\n }\n },\n\n /**\n * Utility to get the preview handler from the configuration\n */\n getPreviewHandler(): PreviewConfig['config']['handler'] {\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n const emptyHandler = () => {\n return undefined;\n };\n\n if (!this.isEnabled()) {\n return emptyHandler;\n }\n\n return config?.config?.handler || emptyHandler;\n },\n };\n};\n\nexport { createPreviewConfigService };\n"],"names":["extendMiddlewareConfiguration","middleware","name","config","middlewares","strapi","get","configuredMiddlewares","map","currentMiddleware","mergeWith","objValue","srcValue","Array","isArray","concat","undefined","set","createPreviewConfigService","register","isEnabled","allowedOrigins","contentSecurityPolicy","directives","enabled","validate","handler","getPreviewHandler","errors","ValidationError","emptyHandler"],"mappings":";;;AAoBA;;IAGA,MAAMA,6BAAgC,GAAA,CAACC,UAAa,GAAA;IAAEC,IAAM,EAAA,EAAA;AAAIC,IAAAA,MAAAA,EAAQ;AAAG,CAAC,GAAA;AAC1E,IAAA,MAAMC,WAAcC,GAAAA,MAAAA,CAAOF,MAAM,CAACG,GAAG,CAAC,aAAA,CAAA;AAEtC,IAAA,MAAMC,qBAAwBH,GAAAA,WAAAA,CAAYI,GAAG,CAAC,CAACC,iBAAAA,GAAAA;QAC7C,IAAIA,iBAAAA,KAAsBR,UAAWC,CAAAA,IAAI,EAAE;;YAEzC,OAAOD,UAAAA;AACT;;AAGA,QAAA,IAAIQ,iBAAkBP,CAAAA,IAAI,KAAKD,UAAAA,CAAWC,IAAI,EAAE;;YAE9C,OAAOQ,SAAAA,CACL,CAACC,QAAUC,EAAAA,QAAAA,GAAAA;gBACT,IAAIC,KAAAA,CAAMC,OAAO,CAACH,QAAW,CAAA,EAAA;oBAC3B,OAAOA,QAAAA,CAASI,MAAM,CAACH,QAAAA,CAAAA;AACzB;gBAEA,OAAOI,SAAAA;AACT,aAAA,EACAP,iBACAR,EAAAA,UAAAA,CAAAA;AAEJ;QAEA,OAAOQ,iBAAAA;AACT,KAAA,CAAA;AAEAJ,IAAAA,MAAAA,CAAOF,MAAM,CAACc,GAAG,CAAC,aAAeV,EAAAA,qBAAAA,CAAAA;AACnC,CAAA;AAEA;;AAEC,UACKW,0BAA6B,GAAA,CAAC,EAAEb,MAAAA,EAAAA,OAAM,EAA2B,GAAA;IACrE,OAAO;AACLc,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAACC,SAAS,EAAI,EAAA;AACrB,gBAAA;AACF;AAEA,YAAA,MAAMjB,MAASE,GAAAA,OAAAA,CAAOF,MAAM,CAACG,GAAG,CAAC,eAAA,CAAA;AAEjC;;AAEC,UACD,IAAIH,MAAAA,CAAOA,MAAM,EAAEkB,cAAgB,EAAA;gBACjCrB,6BAA8B,CAAA;oBAC5BE,IAAM,EAAA,kBAAA;oBACNC,MAAQ,EAAA;wBACNmB,qBAAuB,EAAA;4BACrBC,UAAY,EAAA;gCACV,WAAapB,EAAAA,MAAAA,CAAOA,MAAM,CAACkB;AAC7B;AACF;AACF;AACF,iBAAA,CAAA;AACF;AACF,SAAA;AAEAD,QAAAA,SAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMjB,MAASE,GAAAA,OAAAA,CAAOF,MAAM,CAACG,GAAG,CAAC,eAAA,CAAA;AAEjC,YAAA,IAAI,CAACH,MAAQ,EAAA;gBACX,OAAO,KAAA;AACT;AAEA,YAAA,OAAOA,QAAQqB,OAAW,IAAA,IAAA;AAC5B,SAAA;AAEA;;QAGAC,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAACL,SAAS,EAAI,EAAA;AACrB,gBAAA;AACF;YAEA,MAAMM,OAAAA,GAAU,IAAI,CAACC,iBAAiB,EAAA;;YAGtC,IAAI,OAAOD,YAAY,UAAY,EAAA;gBACjC,MAAM,IAAIE,MAAOC,CAAAA,eAAe,CAC9B,8DAAA,CAAA;AAEJ;AACF,SAAA;AAEA;;QAGAF,iBAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMxB,MAASE,GAAAA,OAAAA,CAAOF,MAAM,CAACG,GAAG,CAAC,eAAA,CAAA;AAEjC,YAAA,MAAMwB,YAAe,GAAA,IAAA;gBACnB,OAAOd,SAAAA;AACT,aAAA;AAEA,YAAA,IAAI,CAAC,IAAI,CAACI,SAAS,EAAI,EAAA;gBACrB,OAAOU,YAAAA;AACT;YAEA,OAAO3B,MAAAA,EAAQA,QAAQuB,OAAWI,IAAAA,YAAAA;AACpC;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"preview-config.mjs","sources":["../../../../server/src/preview/services/preview-config.ts"],"sourcesContent":["import type { Core, UID } from '@strapi/types';\nimport { errors, extendMiddlewareConfiguration } from '@strapi/utils';\n\nexport type HandlerParams = {\n documentId: string;\n locale: string;\n status: 'published' | 'draft';\n};\n\nexport interface PreviewConfig {\n enabled: boolean;\n config: {\n // List of CSP allowed origins. This is a shortcut to setting it up inside `config/middlewares.js`\n allowedOrigins: string[];\n handler: (uid: UID.Schema, params: HandlerParams) => string | undefined;\n };\n}\n\n/**\n * Read configuration for static preview\n */\nconst createPreviewConfigService = ({ strapi }: { strapi: Core.Strapi }) => {\n return {\n register() {\n if (!this.isEnabled()) {\n return;\n }\n\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n /**\n * Register the allowed origins for CSP, so the preview URL can be displayed\n */\n if (config.config?.allowedOrigins) {\n const middlewares = strapi.config.get('middlewares') as (\n | string\n | { name?: string; config?: any }\n )[];\n\n const configuredMiddlewares = extendMiddlewareConfiguration(middlewares, {\n name: 'strapi::security',\n config: {\n contentSecurityPolicy: {\n directives: {\n 'frame-src': config.config.allowedOrigins,\n },\n },\n },\n });\n\n strapi.config.set('middlewares', configuredMiddlewares);\n }\n },\n\n isConfigured() {\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n return config?.enabled === false || config?.config?.handler != null;\n },\n\n isEnabled() {\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n if (!config) {\n return false;\n }\n\n return config?.enabled ?? true;\n },\n\n /**\n * Validate if the configuration is valid\n */\n validate() {\n if (!this.isEnabled()) {\n return;\n }\n\n const handler = this.getPreviewHandler();\n\n // Handler must be a function\n if (typeof handler !== 'function') {\n throw new errors.ValidationError(\n 'Preview configuration is invalid. Handler must be a function'\n );\n }\n },\n\n /**\n * Utility to get the preview handler from the configuration\n */\n getPreviewHandler(): PreviewConfig['config']['handler'] {\n const emptyHandler = () => {\n return undefined;\n };\n\n if (!this.isEnabled()) {\n return emptyHandler;\n }\n\n const config = strapi.config.get('admin.preview') as PreviewConfig;\n\n return config?.config?.handler || emptyHandler;\n },\n };\n};\n\nexport { createPreviewConfigService };\n"],"names":["createPreviewConfigService","strapi","register","isEnabled","config","get","allowedOrigins","middlewares","configuredMiddlewares","extendMiddlewareConfiguration","name","contentSecurityPolicy","directives","set","isConfigured","enabled","handler","validate","getPreviewHandler","errors","ValidationError","emptyHandler","undefined"],"mappings":";;AAkBA;;AAEC,IACKA,MAAAA,0BAAAA,GAA6B,CAAC,EAAEC,MAAM,EAA2B,GAAA;IACrE,OAAO;AACLC,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAACC,SAAS,EAAI,EAAA;AACrB,gBAAA;AACF;AAEA,YAAA,MAAMC,MAASH,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AAEjC;;AAEC,UACD,IAAID,MAAAA,CAAOA,MAAM,EAAEE,cAAgB,EAAA;AACjC,gBAAA,MAAMC,WAAcN,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,aAAA,CAAA;gBAKtC,MAAMG,qBAAAA,GAAwBC,8BAA8BF,WAAa,EAAA;oBACvEG,IAAM,EAAA,kBAAA;oBACNN,MAAQ,EAAA;wBACNO,qBAAuB,EAAA;4BACrBC,UAAY,EAAA;gCACV,WAAaR,EAAAA,MAAAA,CAAOA,MAAM,CAACE;AAC7B;AACF;AACF;AACF,iBAAA,CAAA;AAEAL,gBAAAA,MAAAA,CAAOG,MAAM,CAACS,GAAG,CAAC,aAAeL,EAAAA,qBAAAA,CAAAA;AACnC;AACF,SAAA;AAEAM,QAAAA,YAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMV,MAASH,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AACjC,YAAA,OAAOD,MAAQW,EAAAA,OAAAA,KAAY,KAASX,IAAAA,MAAAA,EAAQA,QAAQY,OAAW,IAAA,IAAA;AACjE,SAAA;AAEAb,QAAAA,SAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMC,MAASH,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AAEjC,YAAA,IAAI,CAACD,MAAQ,EAAA;gBACX,OAAO,KAAA;AACT;AAEA,YAAA,OAAOA,QAAQW,OAAW,IAAA,IAAA;AAC5B,SAAA;AAEA;;QAGAE,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAACd,SAAS,EAAI,EAAA;AACrB,gBAAA;AACF;YAEA,MAAMa,OAAAA,GAAU,IAAI,CAACE,iBAAiB,EAAA;;YAGtC,IAAI,OAAOF,YAAY,UAAY,EAAA;gBACjC,MAAM,IAAIG,MAAOC,CAAAA,eAAe,CAC9B,8DAAA,CAAA;AAEJ;AACF,SAAA;AAEA;;QAGAF,iBAAAA,CAAAA,GAAAA;AACE,YAAA,MAAMG,YAAe,GAAA,IAAA;gBACnB,OAAOC,SAAAA;AACT,aAAA;AAEA,YAAA,IAAI,CAAC,IAAI,CAACnB,SAAS,EAAI,EAAA;gBACrB,OAAOkB,YAAAA;AACT;AAEA,YAAA,MAAMjB,MAASH,GAAAA,MAAAA,CAAOG,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;YAEjC,OAAOD,MAAAA,EAAQA,QAAQY,OAAWK,IAAAA,YAAAA;AACpC;AACF,KAAA;AACF;;;;"}
@@ -9,6 +9,10 @@ var utils = require('../utils.js');
9
9
  const config = utils.getService(strapi, 'preview-config');
10
10
  return {
11
11
  async getPreviewUrl (uid, params) {
12
+ const isConfigured = config.isConfigured();
13
+ if (!isConfigured) {
14
+ throw new strapiUtils.errors.NotFoundError('Preview config not found');
15
+ }
12
16
  const handler = config.getPreviewHandler();
13
17
  try {
14
18
  // Try to get the preview URL from the user-defined handler
@@ -18,7 +22,6 @@ var utils = require('../utils.js');
18
22
  strapi.log.error(`Failed to get preview URL: ${error}`);
19
23
  throw new strapiUtils.errors.ApplicationError('Failed to get preview URL');
20
24
  }
21
- return;
22
25
  }
23
26
  };
24
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"preview.js","sources":["../../../../server/src/preview/services/preview.ts"],"sourcesContent":["import type { Core, UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nimport { getService } from '../utils';\nimport type { HandlerParams } from './preview-config';\n\n/**\n * Responsible of routing an entry to a preview URL.\n */\nconst createPreviewService = ({ strapi }: { strapi: Core.Strapi }) => {\n const config = getService(strapi, 'preview-config');\n\n return {\n async getPreviewUrl(uid: UID.ContentType, params: HandlerParams) {\n const handler = config.getPreviewHandler();\n\n try {\n // Try to get the preview URL from the user-defined handler\n return handler(uid, params);\n } catch (error) {\n // Log the error and throw a generic error\n strapi.log.error(`Failed to get preview URL: ${error}`);\n throw new errors.ApplicationError('Failed to get preview URL');\n }\n\n return;\n },\n };\n};\n\nexport { createPreviewService };\n"],"names":["createPreviewService","strapi","config","getService","getPreviewUrl","uid","params","handler","getPreviewHandler","error","log","errors","ApplicationError"],"mappings":";;;;;AAMA;;AAEC,IACKA,MAAAA,oBAAAA,GAAuB,CAAC,EAAEC,MAAM,EAA2B,GAAA;IAC/D,MAAMC,MAAAA,GAASC,iBAAWF,MAAQ,EAAA,gBAAA,CAAA;IAElC,OAAO;QACL,MAAMG,aAAAA,CAAAA,CAAcC,GAAoB,EAAEC,MAAqB,EAAA;YAC7D,MAAMC,OAAAA,GAAUL,OAAOM,iBAAiB,EAAA;YAExC,IAAI;;AAEF,gBAAA,OAAOD,QAAQF,GAAKC,EAAAA,MAAAA,CAAAA;AACtB,aAAA,CAAE,OAAOG,KAAO,EAAA;;gBAEdR,MAAOS,CAAAA,GAAG,CAACD,KAAK,CAAC,CAAC,2BAA2B,EAAEA,MAAM,CAAC,CAAA;gBACtD,MAAM,IAAIE,kBAAOC,CAAAA,gBAAgB,CAAC,2BAAA,CAAA;AACpC;AAEA,YAAA;AACF;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"preview.js","sources":["../../../../server/src/preview/services/preview.ts"],"sourcesContent":["import type { Core, UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nimport { getService } from '../utils';\nimport type { HandlerParams } from './preview-config';\n\n/**\n * Responsible of routing an entry to a preview URL.\n */\nconst createPreviewService = ({ strapi }: { strapi: Core.Strapi }) => {\n const config = getService(strapi, 'preview-config');\n\n return {\n async getPreviewUrl(uid: UID.ContentType, params: HandlerParams) {\n const isConfigured = config.isConfigured();\n\n if (!isConfigured) {\n throw new errors.NotFoundError('Preview config not found');\n }\n\n const handler = config.getPreviewHandler();\n\n try {\n // Try to get the preview URL from the user-defined handler\n return handler(uid, params);\n } catch (error) {\n // Log the error and throw a generic error\n strapi.log.error(`Failed to get preview URL: ${error}`);\n throw new errors.ApplicationError('Failed to get preview URL');\n }\n },\n };\n};\n\nexport { createPreviewService };\n"],"names":["createPreviewService","strapi","config","getService","getPreviewUrl","uid","params","isConfigured","errors","NotFoundError","handler","getPreviewHandler","error","log","ApplicationError"],"mappings":";;;;;AAMA;;AAEC,IACKA,MAAAA,oBAAAA,GAAuB,CAAC,EAAEC,MAAM,EAA2B,GAAA;IAC/D,MAAMC,MAAAA,GAASC,iBAAWF,MAAQ,EAAA,gBAAA,CAAA;IAElC,OAAO;QACL,MAAMG,aAAAA,CAAAA,CAAcC,GAAoB,EAAEC,MAAqB,EAAA;YAC7D,MAAMC,YAAAA,GAAeL,OAAOK,YAAY,EAAA;AAExC,YAAA,IAAI,CAACA,YAAc,EAAA;gBACjB,MAAM,IAAIC,kBAAOC,CAAAA,aAAa,CAAC,0BAAA,CAAA;AACjC;YAEA,MAAMC,OAAAA,GAAUR,OAAOS,iBAAiB,EAAA;YAExC,IAAI;;AAEF,gBAAA,OAAOD,QAAQL,GAAKC,EAAAA,MAAAA,CAAAA;AACtB,aAAA,CAAE,OAAOM,KAAO,EAAA;;AAEdX,gBAAAA,MAAAA,CAAOY,GAAG,CAACD,KAAK,CAAC,CAAC,2BAA2B,EAAEA,KAAO,CAAA,CAAA,CAAA;gBACtD,MAAM,IAAIJ,kBAAOM,CAAAA,gBAAgB,CAAC,2BAAA,CAAA;AACpC;AACF;AACF,KAAA;AACF;;;;"}
@@ -7,6 +7,10 @@ import { getService } from '../utils.mjs';
7
7
  const config = getService(strapi, 'preview-config');
8
8
  return {
9
9
  async getPreviewUrl (uid, params) {
10
+ const isConfigured = config.isConfigured();
11
+ if (!isConfigured) {
12
+ throw new errors.NotFoundError('Preview config not found');
13
+ }
10
14
  const handler = config.getPreviewHandler();
11
15
  try {
12
16
  // Try to get the preview URL from the user-defined handler
@@ -16,7 +20,6 @@ import { getService } from '../utils.mjs';
16
20
  strapi.log.error(`Failed to get preview URL: ${error}`);
17
21
  throw new errors.ApplicationError('Failed to get preview URL');
18
22
  }
19
- return;
20
23
  }
21
24
  };
22
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"preview.mjs","sources":["../../../../server/src/preview/services/preview.ts"],"sourcesContent":["import type { Core, UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nimport { getService } from '../utils';\nimport type { HandlerParams } from './preview-config';\n\n/**\n * Responsible of routing an entry to a preview URL.\n */\nconst createPreviewService = ({ strapi }: { strapi: Core.Strapi }) => {\n const config = getService(strapi, 'preview-config');\n\n return {\n async getPreviewUrl(uid: UID.ContentType, params: HandlerParams) {\n const handler = config.getPreviewHandler();\n\n try {\n // Try to get the preview URL from the user-defined handler\n return handler(uid, params);\n } catch (error) {\n // Log the error and throw a generic error\n strapi.log.error(`Failed to get preview URL: ${error}`);\n throw new errors.ApplicationError('Failed to get preview URL');\n }\n\n return;\n },\n };\n};\n\nexport { createPreviewService };\n"],"names":["createPreviewService","strapi","config","getService","getPreviewUrl","uid","params","handler","getPreviewHandler","error","log","errors","ApplicationError"],"mappings":";;;AAMA;;AAEC,IACKA,MAAAA,oBAAAA,GAAuB,CAAC,EAAEC,MAAM,EAA2B,GAAA;IAC/D,MAAMC,MAAAA,GAASC,WAAWF,MAAQ,EAAA,gBAAA,CAAA;IAElC,OAAO;QACL,MAAMG,aAAAA,CAAAA,CAAcC,GAAoB,EAAEC,MAAqB,EAAA;YAC7D,MAAMC,OAAAA,GAAUL,OAAOM,iBAAiB,EAAA;YAExC,IAAI;;AAEF,gBAAA,OAAOD,QAAQF,GAAKC,EAAAA,MAAAA,CAAAA;AACtB,aAAA,CAAE,OAAOG,KAAO,EAAA;;gBAEdR,MAAOS,CAAAA,GAAG,CAACD,KAAK,CAAC,CAAC,2BAA2B,EAAEA,MAAM,CAAC,CAAA;gBACtD,MAAM,IAAIE,MAAOC,CAAAA,gBAAgB,CAAC,2BAAA,CAAA;AACpC;AAEA,YAAA;AACF;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"preview.mjs","sources":["../../../../server/src/preview/services/preview.ts"],"sourcesContent":["import type { Core, UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nimport { getService } from '../utils';\nimport type { HandlerParams } from './preview-config';\n\n/**\n * Responsible of routing an entry to a preview URL.\n */\nconst createPreviewService = ({ strapi }: { strapi: Core.Strapi }) => {\n const config = getService(strapi, 'preview-config');\n\n return {\n async getPreviewUrl(uid: UID.ContentType, params: HandlerParams) {\n const isConfigured = config.isConfigured();\n\n if (!isConfigured) {\n throw new errors.NotFoundError('Preview config not found');\n }\n\n const handler = config.getPreviewHandler();\n\n try {\n // Try to get the preview URL from the user-defined handler\n return handler(uid, params);\n } catch (error) {\n // Log the error and throw a generic error\n strapi.log.error(`Failed to get preview URL: ${error}`);\n throw new errors.ApplicationError('Failed to get preview URL');\n }\n },\n };\n};\n\nexport { createPreviewService };\n"],"names":["createPreviewService","strapi","config","getService","getPreviewUrl","uid","params","isConfigured","errors","NotFoundError","handler","getPreviewHandler","error","log","ApplicationError"],"mappings":";;;AAMA;;AAEC,IACKA,MAAAA,oBAAAA,GAAuB,CAAC,EAAEC,MAAM,EAA2B,GAAA;IAC/D,MAAMC,MAAAA,GAASC,WAAWF,MAAQ,EAAA,gBAAA,CAAA;IAElC,OAAO;QACL,MAAMG,aAAAA,CAAAA,CAAcC,GAAoB,EAAEC,MAAqB,EAAA;YAC7D,MAAMC,YAAAA,GAAeL,OAAOK,YAAY,EAAA;AAExC,YAAA,IAAI,CAACA,YAAc,EAAA;gBACjB,MAAM,IAAIC,MAAOC,CAAAA,aAAa,CAAC,0BAAA,CAAA;AACjC;YAEA,MAAMC,OAAAA,GAAUR,OAAOS,iBAAiB,EAAA;YAExC,IAAI;;AAEF,gBAAA,OAAOD,QAAQL,GAAKC,EAAAA,MAAAA,CAAAA;AACtB,aAAA,CAAE,OAAOM,KAAO,EAAA;;AAEdX,gBAAAA,MAAAA,CAAOY,GAAG,CAACD,KAAK,CAAC,CAAC,2BAA2B,EAAEA,KAAO,CAAA,CAAA,CAAA;gBACtD,MAAM,IAAIJ,MAAOM,CAAAA,gBAAgB,CAAC,2BAAA,CAAA;AACpC;AACF;AACF,KAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../server/src/preview/utils.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\ntype PreviewServices = typeof import('./services').services;\n\nfunction getService<T extends keyof PreviewServices>(strapi: Core.Strapi, name: T) {\n // Cast is needed because the return type of strapi.service is too vague\n return strapi.service(`plugin::content-manager.${name}`) as ReturnType<PreviewServices[T]>;\n}\n\nexport { getService };\n"],"names":["getService","strapi","name","service"],"mappings":";;AAIA,SAASA,UAAAA,CAA4CC,MAAmB,EAAEC,IAAO,EAAA;;AAE/E,IAAA,OAAOD,OAAOE,OAAO,CAAC,CAAC,wBAAwB,EAAED,KAAK,CAAC,CAAA;AACzD;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../server/src/preview/utils.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\ntype PreviewServices = typeof import('./services').services;\n\nfunction getService<T extends keyof PreviewServices>(strapi: Core.Strapi, name: T) {\n // Cast is needed because the return type of strapi.service is too vague\n return strapi.service(`plugin::content-manager.${name}`) as ReturnType<PreviewServices[T]>;\n}\n\nexport { getService };\n"],"names":["getService","strapi","name","service"],"mappings":";;AAIA,SAASA,UAAAA,CAA4CC,MAAmB,EAAEC,IAAO,EAAA;;AAE/E,IAAA,OAAOD,OAAOE,OAAO,CAAC,CAAC,wBAAwB,EAAED,IAAM,CAAA,CAAA,CAAA;AACzD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../server/src/preview/utils.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\ntype PreviewServices = typeof import('./services').services;\n\nfunction getService<T extends keyof PreviewServices>(strapi: Core.Strapi, name: T) {\n // Cast is needed because the return type of strapi.service is too vague\n return strapi.service(`plugin::content-manager.${name}`) as ReturnType<PreviewServices[T]>;\n}\n\nexport { getService };\n"],"names":["getService","strapi","name","service"],"mappings":"AAIA,SAASA,UAAAA,CAA4CC,MAAmB,EAAEC,IAAO,EAAA;;AAE/E,IAAA,OAAOD,OAAOE,OAAO,CAAC,CAAC,wBAAwB,EAAED,KAAK,CAAC,CAAA;AACzD;;;;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../../server/src/preview/utils.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\ntype PreviewServices = typeof import('./services').services;\n\nfunction getService<T extends keyof PreviewServices>(strapi: Core.Strapi, name: T) {\n // Cast is needed because the return type of strapi.service is too vague\n return strapi.service(`plugin::content-manager.${name}`) as ReturnType<PreviewServices[T]>;\n}\n\nexport { getService };\n"],"names":["getService","strapi","name","service"],"mappings":"AAIA,SAASA,UAAAA,CAA4CC,MAAmB,EAAEC,IAAO,EAAA;;AAE/E,IAAA,OAAOD,OAAOE,OAAO,CAAC,CAAC,wBAAwB,EAAED,IAAM,CAAA,CAAA,CAAA;AACzD;;;;"}
@@ -3,11 +3,13 @@
3
3
  var admin = require('./admin.js');
4
4
  var index = require('../history/index.js');
5
5
  var index$1 = require('../preview/index.js');
6
+ var index$2 = require('../homepage/index.js');
6
7
 
7
8
  var routes = {
8
9
  admin,
9
10
  ...index.routes ? index.routes : {},
10
- ...index$1.routes ? index$1.routes : {}
11
+ ...index$1.routes ? index$1.routes : {},
12
+ ...index$2.routes
11
13
  };
12
14
 
13
15
  module.exports = routes;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport history from '../history';\nimport preview from '../preview';\n\nexport default {\n admin,\n ...(history.routes ? history.routes : {}),\n ...(preview.routes ? preview.routes : {}),\n};\n"],"names":["admin","history","routes","preview"],"mappings":";;;;;;AAIA,aAAe;AACbA,IAAAA,KAAAA;AACA,IAAA,GAAIC,MAAQC,MAAM,GAAGD,MAAQC,MAAM,GAAG,EAAE;AACxC,IAAA,GAAIC,QAAQD,MAAM,GAAGC,QAAQD,MAAM,GAAG;AACxC,CAAE;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\n\nexport default {\n admin,\n ...(history.routes ? history.routes : {}),\n ...(preview.routes ? preview.routes : {}),\n ...homepage.routes,\n};\n"],"names":["admin","history","routes","preview","homepage"],"mappings":";;;;;;;AAKA,aAAe;AACbA,IAAAA,KAAAA;AACA,IAAA,GAAIC,MAAQC,MAAM,GAAGD,MAAQC,MAAM,GAAG,EAAE;AACxC,IAAA,GAAIC,QAAQD,MAAM,GAAGC,QAAQD,MAAM,GAAG,EAAE;AACxC,IAAA,GAAGE,QAASF;AACd,CAAE;;;;"}
@@ -1,11 +1,13 @@
1
1
  import admin from './admin.mjs';
2
2
  import history from '../history/index.mjs';
3
3
  import preview from '../preview/index.mjs';
4
+ import homepage from '../homepage/index.mjs';
4
5
 
5
6
  var routes = {
6
7
  admin,
7
8
  ...history.routes ? history.routes : {},
8
- ...preview.routes ? preview.routes : {}
9
+ ...preview.routes ? preview.routes : {},
10
+ ...homepage.routes
9
11
  };
10
12
 
11
13
  export { routes as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport history from '../history';\nimport preview from '../preview';\n\nexport default {\n admin,\n ...(history.routes ? history.routes : {}),\n ...(preview.routes ? preview.routes : {}),\n};\n"],"names":["admin","history","routes","preview"],"mappings":";;;;AAIA,aAAe;AACbA,IAAAA,KAAAA;AACA,IAAA,GAAIC,QAAQC,MAAM,GAAGD,QAAQC,MAAM,GAAG,EAAE;AACxC,IAAA,GAAIC,QAAQD,MAAM,GAAGC,QAAQD,MAAM,GAAG;AACxC,CAAE;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\n\nexport default {\n admin,\n ...(history.routes ? history.routes : {}),\n ...(preview.routes ? preview.routes : {}),\n ...homepage.routes,\n};\n"],"names":["admin","history","routes","preview","homepage"],"mappings":";;;;;AAKA,aAAe;AACbA,IAAAA,KAAAA;AACA,IAAA,GAAIC,QAAQC,MAAM,GAAGD,QAAQC,MAAM,GAAG,EAAE;AACxC,IAAA,GAAIC,QAAQD,MAAM,GAAGC,QAAQD,MAAM,GAAG,EAAE;AACxC,IAAA,GAAGE,SAASF;AACd,CAAE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sources":["../../../server/src/services/configuration.ts"],"sourcesContent":["import { intersection, difference } from 'lodash';\n\nimport type { Settings, Metadatas, Layouts } from '../../../shared/contracts/content-types';\n\nimport { createDefaultConfiguration, syncConfiguration } from './utils/configuration';\n\nexport type ConfigurationUpdate = {\n settings: Settings;\n metadatas: Metadatas;\n layouts: Layouts;\n options?: Record<string, unknown>;\n};\n\nexport default ({\n isComponent,\n prefix,\n storeUtils,\n getModels,\n}: {\n isComponent?: boolean;\n prefix: string;\n storeUtils: any;\n getModels: any;\n}) => {\n const uidToStoreKey = (uid: string) => {\n return `${prefix}::${uid}`;\n };\n\n const getConfiguration = (uid: string) => {\n const storeKey = uidToStoreKey(uid);\n\n return storeUtils.getModelConfiguration(storeKey);\n };\n\n const setConfiguration = (uid: string, input: ConfigurationUpdate) => {\n const configuration = {\n ...input,\n uid,\n isComponent: isComponent ?? undefined,\n };\n\n const storeKey = uidToStoreKey(uid);\n return storeUtils.setModelConfiguration(storeKey, configuration);\n };\n\n const deleteConfiguration = (uid: string) => {\n const storeKey = uidToStoreKey(uid);\n\n return storeUtils.deleteKey(storeKey);\n };\n\n const syncConfigurations = async () => {\n const models = getModels();\n\n const configurations = await storeUtils.findByKey(\n `plugin_content_manager_configuration_${prefix}`\n );\n\n const updateConfiguration = async (uid: string) => {\n const conf = configurations.find((conf: any) => conf.uid === uid);\n\n return setConfiguration(uid, await syncConfiguration(conf, models[uid]));\n };\n\n const generateNewConfiguration = async (uid: string) => {\n return setConfiguration(uid, await createDefaultConfiguration(models[uid]));\n };\n\n const currentUIDS = Object.keys(models);\n const DBUIDs = configurations.map(({ uid }: any) => uid);\n\n const contentTypesToUpdate = intersection(currentUIDS, DBUIDs);\n const contentTypesToAdd = difference(currentUIDS, DBUIDs);\n const contentTypesToDelete = difference(DBUIDs, currentUIDS);\n\n // delete old schemas\n await Promise.all(contentTypesToDelete.map((uid) => deleteConfiguration(uid)));\n\n // create new schemas\n await Promise.all(contentTypesToAdd.map((uid) => generateNewConfiguration(uid)));\n\n // update current schemas\n await Promise.all(contentTypesToUpdate.map((uid) => updateConfiguration(uid)));\n };\n\n return {\n getConfiguration,\n setConfiguration,\n deleteConfiguration,\n syncConfigurations,\n };\n};\n"],"names":["isComponent","prefix","storeUtils","getModels","uidToStoreKey","uid","getConfiguration","storeKey","getModelConfiguration","setConfiguration","input","configuration","undefined","setModelConfiguration","deleteConfiguration","deleteKey","syncConfigurations","models","configurations","findByKey","updateConfiguration","conf","find","syncConfiguration","generateNewConfiguration","createDefaultConfiguration","currentUIDS","Object","keys","DBUIDs","map","contentTypesToUpdate","intersection","contentTypesToAdd","difference","contentTypesToDelete","Promise","all"],"mappings":"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"}
1
+ {"version":3,"file":"configuration.js","sources":["../../../server/src/services/configuration.ts"],"sourcesContent":["import { intersection, difference } from 'lodash';\n\nimport type { Settings, Metadatas, Layouts } from '../../../shared/contracts/content-types';\n\nimport { createDefaultConfiguration, syncConfiguration } from './utils/configuration';\n\nexport type ConfigurationUpdate = {\n settings: Settings;\n metadatas: Metadatas;\n layouts: Layouts;\n options?: Record<string, unknown>;\n};\n\nexport default ({\n isComponent,\n prefix,\n storeUtils,\n getModels,\n}: {\n isComponent?: boolean;\n prefix: string;\n storeUtils: any;\n getModels: any;\n}) => {\n const uidToStoreKey = (uid: string) => {\n return `${prefix}::${uid}`;\n };\n\n const getConfiguration = (uid: string) => {\n const storeKey = uidToStoreKey(uid);\n\n return storeUtils.getModelConfiguration(storeKey);\n };\n\n const setConfiguration = (uid: string, input: ConfigurationUpdate) => {\n const configuration = {\n ...input,\n uid,\n isComponent: isComponent ?? undefined,\n };\n\n const storeKey = uidToStoreKey(uid);\n return storeUtils.setModelConfiguration(storeKey, configuration);\n };\n\n const deleteConfiguration = (uid: string) => {\n const storeKey = uidToStoreKey(uid);\n\n return storeUtils.deleteKey(storeKey);\n };\n\n const syncConfigurations = async () => {\n const models = getModels();\n\n const configurations = await storeUtils.findByKey(\n `plugin_content_manager_configuration_${prefix}`\n );\n\n const updateConfiguration = async (uid: string) => {\n const conf = configurations.find((conf: any) => conf.uid === uid);\n\n return setConfiguration(uid, await syncConfiguration(conf, models[uid]));\n };\n\n const generateNewConfiguration = async (uid: string) => {\n return setConfiguration(uid, await createDefaultConfiguration(models[uid]));\n };\n\n const currentUIDS = Object.keys(models);\n const DBUIDs = configurations.map(({ uid }: any) => uid);\n\n const contentTypesToUpdate = intersection(currentUIDS, DBUIDs);\n const contentTypesToAdd = difference(currentUIDS, DBUIDs);\n const contentTypesToDelete = difference(DBUIDs, currentUIDS);\n\n // delete old schemas\n await Promise.all(contentTypesToDelete.map((uid) => deleteConfiguration(uid)));\n\n // create new schemas\n await Promise.all(contentTypesToAdd.map((uid) => generateNewConfiguration(uid)));\n\n // update current schemas\n await Promise.all(contentTypesToUpdate.map((uid) => updateConfiguration(uid)));\n };\n\n return {\n getConfiguration,\n setConfiguration,\n deleteConfiguration,\n syncConfigurations,\n };\n};\n"],"names":["isComponent","prefix","storeUtils","getModels","uidToStoreKey","uid","getConfiguration","storeKey","getModelConfiguration","setConfiguration","input","configuration","undefined","setModelConfiguration","deleteConfiguration","deleteKey","syncConfigurations","models","configurations","findByKey","updateConfiguration","conf","find","syncConfiguration","generateNewConfiguration","createDefaultConfiguration","currentUIDS","Object","keys","DBUIDs","map","contentTypesToUpdate","intersection","contentTypesToAdd","difference","contentTypesToDelete","Promise","all"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.mjs","sources":["../../../server/src/services/configuration.ts"],"sourcesContent":["import { intersection, difference } from 'lodash';\n\nimport type { Settings, Metadatas, Layouts } from '../../../shared/contracts/content-types';\n\nimport { createDefaultConfiguration, syncConfiguration } from './utils/configuration';\n\nexport type ConfigurationUpdate = {\n settings: Settings;\n metadatas: Metadatas;\n layouts: Layouts;\n options?: Record<string, unknown>;\n};\n\nexport default ({\n isComponent,\n prefix,\n storeUtils,\n getModels,\n}: {\n isComponent?: boolean;\n prefix: string;\n storeUtils: any;\n getModels: any;\n}) => {\n const uidToStoreKey = (uid: string) => {\n return `${prefix}::${uid}`;\n };\n\n const getConfiguration = (uid: string) => {\n const storeKey = uidToStoreKey(uid);\n\n return storeUtils.getModelConfiguration(storeKey);\n };\n\n const setConfiguration = (uid: string, input: ConfigurationUpdate) => {\n const configuration = {\n ...input,\n uid,\n isComponent: isComponent ?? undefined,\n };\n\n const storeKey = uidToStoreKey(uid);\n return storeUtils.setModelConfiguration(storeKey, configuration);\n };\n\n const deleteConfiguration = (uid: string) => {\n const storeKey = uidToStoreKey(uid);\n\n return storeUtils.deleteKey(storeKey);\n };\n\n const syncConfigurations = async () => {\n const models = getModels();\n\n const configurations = await storeUtils.findByKey(\n `plugin_content_manager_configuration_${prefix}`\n );\n\n const updateConfiguration = async (uid: string) => {\n const conf = configurations.find((conf: any) => conf.uid === uid);\n\n return setConfiguration(uid, await syncConfiguration(conf, models[uid]));\n };\n\n const generateNewConfiguration = async (uid: string) => {\n return setConfiguration(uid, await createDefaultConfiguration(models[uid]));\n };\n\n const currentUIDS = Object.keys(models);\n const DBUIDs = configurations.map(({ uid }: any) => uid);\n\n const contentTypesToUpdate = intersection(currentUIDS, DBUIDs);\n const contentTypesToAdd = difference(currentUIDS, DBUIDs);\n const contentTypesToDelete = difference(DBUIDs, currentUIDS);\n\n // delete old schemas\n await Promise.all(contentTypesToDelete.map((uid) => deleteConfiguration(uid)));\n\n // create new schemas\n await Promise.all(contentTypesToAdd.map((uid) => generateNewConfiguration(uid)));\n\n // update current schemas\n await Promise.all(contentTypesToUpdate.map((uid) => updateConfiguration(uid)));\n };\n\n return {\n getConfiguration,\n setConfiguration,\n deleteConfiguration,\n syncConfigurations,\n };\n};\n"],"names":["isComponent","prefix","storeUtils","getModels","uidToStoreKey","uid","getConfiguration","storeKey","getModelConfiguration","setConfiguration","input","configuration","undefined","setModelConfiguration","deleteConfiguration","deleteKey","syncConfigurations","models","configurations","findByKey","updateConfiguration","conf","find","syncConfiguration","generateNewConfiguration","createDefaultConfiguration","currentUIDS","Object","keys","DBUIDs","map","contentTypesToUpdate","intersection","contentTypesToAdd","difference","contentTypesToDelete","Promise","all"],"mappings":"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"}
1
+ {"version":3,"file":"configuration.mjs","sources":["../../../server/src/services/configuration.ts"],"sourcesContent":["import { intersection, difference } from 'lodash';\n\nimport type { Settings, Metadatas, Layouts } from '../../../shared/contracts/content-types';\n\nimport { createDefaultConfiguration, syncConfiguration } from './utils/configuration';\n\nexport type ConfigurationUpdate = {\n settings: Settings;\n metadatas: Metadatas;\n layouts: Layouts;\n options?: Record<string, unknown>;\n};\n\nexport default ({\n isComponent,\n prefix,\n storeUtils,\n getModels,\n}: {\n isComponent?: boolean;\n prefix: string;\n storeUtils: any;\n getModels: any;\n}) => {\n const uidToStoreKey = (uid: string) => {\n return `${prefix}::${uid}`;\n };\n\n const getConfiguration = (uid: string) => {\n const storeKey = uidToStoreKey(uid);\n\n return storeUtils.getModelConfiguration(storeKey);\n };\n\n const setConfiguration = (uid: string, input: ConfigurationUpdate) => {\n const configuration = {\n ...input,\n uid,\n isComponent: isComponent ?? undefined,\n };\n\n const storeKey = uidToStoreKey(uid);\n return storeUtils.setModelConfiguration(storeKey, configuration);\n };\n\n const deleteConfiguration = (uid: string) => {\n const storeKey = uidToStoreKey(uid);\n\n return storeUtils.deleteKey(storeKey);\n };\n\n const syncConfigurations = async () => {\n const models = getModels();\n\n const configurations = await storeUtils.findByKey(\n `plugin_content_manager_configuration_${prefix}`\n );\n\n const updateConfiguration = async (uid: string) => {\n const conf = configurations.find((conf: any) => conf.uid === uid);\n\n return setConfiguration(uid, await syncConfiguration(conf, models[uid]));\n };\n\n const generateNewConfiguration = async (uid: string) => {\n return setConfiguration(uid, await createDefaultConfiguration(models[uid]));\n };\n\n const currentUIDS = Object.keys(models);\n const DBUIDs = configurations.map(({ uid }: any) => uid);\n\n const contentTypesToUpdate = intersection(currentUIDS, DBUIDs);\n const contentTypesToAdd = difference(currentUIDS, DBUIDs);\n const contentTypesToDelete = difference(DBUIDs, currentUIDS);\n\n // delete old schemas\n await Promise.all(contentTypesToDelete.map((uid) => deleteConfiguration(uid)));\n\n // create new schemas\n await Promise.all(contentTypesToAdd.map((uid) => generateNewConfiguration(uid)));\n\n // update current schemas\n await Promise.all(contentTypesToUpdate.map((uid) => updateConfiguration(uid)));\n };\n\n return {\n getConfiguration,\n setConfiguration,\n deleteConfiguration,\n syncConfigurations,\n };\n};\n"],"names":["isComponent","prefix","storeUtils","getModels","uidToStoreKey","uid","getConfiguration","storeKey","getModelConfiguration","setConfiguration","input","configuration","undefined","setModelConfiguration","deleteConfiguration","deleteKey","syncConfigurations","models","configurations","findByKey","updateConfiguration","conf","find","syncConfiguration","generateNewConfiguration","createDefaultConfiguration","currentUIDS","Object","keys","DBUIDs","map","contentTypesToUpdate","intersection","contentTypesToAdd","difference","contentTypesToDelete","Promise","all"],"mappings":"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"}
@@ -25,7 +25,10 @@ var dataMapper = (()=>({
25
25
  id: {
26
26
  type: 'integer'
27
27
  },
28
- ...formatAttributes(contentType)
28
+ ...formatAttributes(contentType),
29
+ documentId: {
30
+ type: 'string'
31
+ }
29
32
  }
30
33
  };
31
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"data-mapper.js","sources":["../../../server/src/services/data-mapper.ts"],"sourcesContent":["import { pick, getOr } from 'lodash/fp';\nimport { contentTypes as contentTypesUtils } from '@strapi/utils';\n\nimport type { Schema, Struct } from '@strapi/types';\n\nconst dtoFields = [\n 'uid',\n 'isDisplayed',\n 'apiID',\n 'kind',\n 'category',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'pluginOptions',\n];\n\nexport default () => ({\n toContentManagerModel(contentType: Struct.ComponentSchema) {\n return {\n ...contentType,\n apiID: contentType.modelName,\n isDisplayed: isVisible(contentType),\n attributes: {\n id: {\n type: 'integer',\n },\n ...formatAttributes(contentType),\n },\n };\n },\n\n toDto: pick(dtoFields),\n});\n\nconst formatAttributes = (contentType: Struct.ComponentSchema) => {\n const { getVisibleAttributes, getTimestamps, getCreatorFields } = contentTypesUtils;\n\n // only get attributes that can be seen in the auto generated Edit view or List view\n return getVisibleAttributes(contentType)\n .concat(getTimestamps(contentType))\n .concat(getCreatorFields(contentType))\n .reduce((acc: any, key: string) => {\n const attribute = contentType.attributes[key];\n\n // ignore morph until they are handled in the front\n if (attribute.type === 'relation' && attribute.relation.toLowerCase().includes('morph')) {\n return acc;\n }\n\n acc[key] = formatAttribute(key, attribute);\n return acc;\n }, {});\n};\n\n// FIXME: not needed\nconst formatAttribute = (key: any, attribute: Schema.Attribute.AnyAttribute) => {\n if (attribute.type === 'relation') {\n return toRelation(attribute);\n }\n\n return attribute;\n};\n\n// FIXME: not needed\nconst toRelation = (attribute: Schema.Attribute.Relation) => {\n return {\n ...attribute,\n type: 'relation',\n targetModel: 'target' in attribute ? attribute.target : undefined,\n relationType: attribute.relation,\n };\n};\n\nconst isVisible = (model: Struct.ComponentSchema): boolean =>\n getOr(true, 'pluginOptions.content-manager.visible', model) === true;\n"],"names":["dtoFields","toContentManagerModel","contentType","apiID","modelName","isDisplayed","isVisible","attributes","id","type","formatAttributes","toDto","pick","getVisibleAttributes","getTimestamps","getCreatorFields","contentTypesUtils","concat","reduce","acc","key","attribute","relation","toLowerCase","includes","formatAttribute","toRelation","targetModel","target","undefined","relationType","model","getOr"],"mappings":";;;;;AAKA,MAAMA,SAAY,GAAA;AAChB,IAAA,KAAA;AACA,IAAA,aAAA;AACA,IAAA,OAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,eAAA;AACA,IAAA,YAAA;AACA,IAAA;AACD,CAAA;AAED,iBAAe,CAAA,KAAO;AACpBC,QAAAA,qBAAAA,CAAAA,CAAsBC,WAAmC,EAAA;YACvD,OAAO;AACL,gBAAA,GAAGA,WAAW;AACdC,gBAAAA,KAAAA,EAAOD,YAAYE,SAAS;AAC5BC,gBAAAA,WAAAA,EAAaC,SAAUJ,CAAAA,WAAAA,CAAAA;gBACvBK,UAAY,EAAA;oBACVC,EAAI,EAAA;wBACFC,IAAM,EAAA;AACR,qBAAA;AACA,oBAAA,GAAGC,iBAAiBR,WAAY;AAClC;AACF,aAAA;AACF,SAAA;AAEAS,QAAAA,KAAAA,EAAOC,OAAKZ,CAAAA,SAAAA;AACd,KAAA,CAAC;AAED,MAAMU,mBAAmB,CAACR,WAAAA,GAAAA;AACxB,IAAA,MAAM,EAAEW,oBAAoB,EAAEC,aAAa,EAAEC,gBAAgB,EAAE,GAAGC,wBAAAA;;AAGlE,IAAA,OAAOH,oBAAqBX,CAAAA,WAAAA,CAAAA,CACzBe,MAAM,CAACH,aAAcZ,CAAAA,WAAAA,CAAAA,CAAAA,CACrBe,MAAM,CAACF,gBAAiBb,CAAAA,WAAAA,CAAAA,CAAAA,CACxBgB,MAAM,CAAC,CAACC,GAAUC,EAAAA,GAAAA,GAAAA;AACjB,QAAA,MAAMC,SAAYnB,GAAAA,WAAAA,CAAYK,UAAU,CAACa,GAAI,CAAA;;QAG7C,IAAIC,SAAAA,CAAUZ,IAAI,KAAK,UAAcY,IAAAA,SAAAA,CAAUC,QAAQ,CAACC,WAAW,EAAA,CAAGC,QAAQ,CAAC,OAAU,CAAA,EAAA;YACvF,OAAOL,GAAAA;AACT;AAEAA,QAAAA,GAAG,CAACC,GAAAA,CAAI,GAAGK,eAAAA,CAAgBL,GAAKC,EAAAA,SAAAA,CAAAA;QAChC,OAAOF,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACR,CAAA;AAEA;AACA,MAAMM,eAAAA,GAAkB,CAACL,GAAUC,EAAAA,SAAAA,GAAAA;IACjC,IAAIA,SAAAA,CAAUZ,IAAI,KAAK,UAAY,EAAA;AACjC,QAAA,OAAOiB,UAAWL,CAAAA,SAAAA,CAAAA;AACpB;IAEA,OAAOA,SAAAA;AACT,CAAA;AAEA;AACA,MAAMK,aAAa,CAACL,SAAAA,GAAAA;IAClB,OAAO;AACL,QAAA,GAAGA,SAAS;QACZZ,IAAM,EAAA,UAAA;AACNkB,QAAAA,WAAAA,EAAa,QAAYN,IAAAA,SAAAA,GAAYA,SAAUO,CAAAA,MAAM,GAAGC,SAAAA;AACxDC,QAAAA,YAAAA,EAAcT,UAAUC;AAC1B,KAAA;AACF,CAAA;AAEA,MAAMhB,YAAY,CAACyB,KAAAA,GACjBC,QAAM,CAAA,IAAA,EAAM,yCAAyCD,KAAW,CAAA,KAAA,IAAA;;;;"}
1
+ {"version":3,"file":"data-mapper.js","sources":["../../../server/src/services/data-mapper.ts"],"sourcesContent":["import { pick, getOr } from 'lodash/fp';\nimport { contentTypes as contentTypesUtils } from '@strapi/utils';\n\nimport type { Schema, Struct } from '@strapi/types';\n\nconst dtoFields = [\n 'uid',\n 'isDisplayed',\n 'apiID',\n 'kind',\n 'category',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'pluginOptions',\n];\n\nexport default () => ({\n toContentManagerModel(contentType: Struct.ComponentSchema) {\n return {\n ...contentType,\n apiID: contentType.modelName,\n isDisplayed: isVisible(contentType),\n attributes: {\n id: {\n type: 'integer',\n },\n ...formatAttributes(contentType),\n documentId: {\n type: 'string',\n },\n },\n };\n },\n\n toDto: pick(dtoFields),\n});\n\nconst formatAttributes = (contentType: Struct.ComponentSchema) => {\n const { getVisibleAttributes, getTimestamps, getCreatorFields } = contentTypesUtils;\n\n // only get attributes that can be seen in the auto generated Edit view or List view\n return getVisibleAttributes(contentType)\n .concat(getTimestamps(contentType))\n .concat(getCreatorFields(contentType))\n .reduce((acc: any, key: string) => {\n const attribute = contentType.attributes[key];\n\n // ignore morph until they are handled in the front\n if (attribute.type === 'relation' && attribute.relation.toLowerCase().includes('morph')) {\n return acc;\n }\n\n acc[key] = formatAttribute(key, attribute);\n return acc;\n }, {});\n};\n\n// FIXME: not needed\nconst formatAttribute = (key: any, attribute: Schema.Attribute.AnyAttribute) => {\n if (attribute.type === 'relation') {\n return toRelation(attribute);\n }\n\n return attribute;\n};\n\n// FIXME: not needed\nconst toRelation = (attribute: Schema.Attribute.Relation) => {\n return {\n ...attribute,\n type: 'relation',\n targetModel: 'target' in attribute ? attribute.target : undefined,\n relationType: attribute.relation,\n };\n};\n\nconst isVisible = (model: Struct.ComponentSchema): boolean =>\n getOr(true, 'pluginOptions.content-manager.visible', model) === true;\n"],"names":["dtoFields","toContentManagerModel","contentType","apiID","modelName","isDisplayed","isVisible","attributes","id","type","formatAttributes","documentId","toDto","pick","getVisibleAttributes","getTimestamps","getCreatorFields","contentTypesUtils","concat","reduce","acc","key","attribute","relation","toLowerCase","includes","formatAttribute","toRelation","targetModel","target","undefined","relationType","model","getOr"],"mappings":";;;;;AAKA,MAAMA,SAAY,GAAA;AAChB,IAAA,KAAA;AACA,IAAA,aAAA;AACA,IAAA,OAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,eAAA;AACA,IAAA,YAAA;AACA,IAAA;AACD,CAAA;AAED,iBAAe,CAAA,KAAO;AACpBC,QAAAA,qBAAAA,CAAAA,CAAsBC,WAAmC,EAAA;YACvD,OAAO;AACL,gBAAA,GAAGA,WAAW;AACdC,gBAAAA,KAAAA,EAAOD,YAAYE,SAAS;AAC5BC,gBAAAA,WAAAA,EAAaC,SAAUJ,CAAAA,WAAAA,CAAAA;gBACvBK,UAAY,EAAA;oBACVC,EAAI,EAAA;wBACFC,IAAM,EAAA;AACR,qBAAA;AACA,oBAAA,GAAGC,iBAAiBR,WAAY,CAAA;oBAChCS,UAAY,EAAA;wBACVF,IAAM,EAAA;AACR;AACF;AACF,aAAA;AACF,SAAA;AAEAG,QAAAA,KAAAA,EAAOC,OAAKb,CAAAA,SAAAA;AACd,KAAA,CAAC;AAED,MAAMU,mBAAmB,CAACR,WAAAA,GAAAA;AACxB,IAAA,MAAM,EAAEY,oBAAoB,EAAEC,aAAa,EAAEC,gBAAgB,EAAE,GAAGC,wBAAAA;;AAGlE,IAAA,OAAOH,oBAAqBZ,CAAAA,WAAAA,CAAAA,CACzBgB,MAAM,CAACH,aAAcb,CAAAA,WAAAA,CAAAA,CAAAA,CACrBgB,MAAM,CAACF,gBAAiBd,CAAAA,WAAAA,CAAAA,CAAAA,CACxBiB,MAAM,CAAC,CAACC,GAAUC,EAAAA,GAAAA,GAAAA;AACjB,QAAA,MAAMC,SAAYpB,GAAAA,WAAAA,CAAYK,UAAU,CAACc,GAAI,CAAA;;QAG7C,IAAIC,SAAAA,CAAUb,IAAI,KAAK,UAAca,IAAAA,SAAAA,CAAUC,QAAQ,CAACC,WAAW,EAAA,CAAGC,QAAQ,CAAC,OAAU,CAAA,EAAA;YACvF,OAAOL,GAAAA;AACT;AAEAA,QAAAA,GAAG,CAACC,GAAAA,CAAI,GAAGK,eAAAA,CAAgBL,GAAKC,EAAAA,SAAAA,CAAAA;QAChC,OAAOF,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACR,CAAA;AAEA;AACA,MAAMM,eAAAA,GAAkB,CAACL,GAAUC,EAAAA,SAAAA,GAAAA;IACjC,IAAIA,SAAAA,CAAUb,IAAI,KAAK,UAAY,EAAA;AACjC,QAAA,OAAOkB,UAAWL,CAAAA,SAAAA,CAAAA;AACpB;IAEA,OAAOA,SAAAA;AACT,CAAA;AAEA;AACA,MAAMK,aAAa,CAACL,SAAAA,GAAAA;IAClB,OAAO;AACL,QAAA,GAAGA,SAAS;QACZb,IAAM,EAAA,UAAA;AACNmB,QAAAA,WAAAA,EAAa,QAAYN,IAAAA,SAAAA,GAAYA,SAAUO,CAAAA,MAAM,GAAGC,SAAAA;AACxDC,QAAAA,YAAAA,EAAcT,UAAUC;AAC1B,KAAA;AACF,CAAA;AAEA,MAAMjB,YAAY,CAAC0B,KAAAA,GACjBC,QAAM,CAAA,IAAA,EAAM,yCAAyCD,KAAW,CAAA,KAAA,IAAA;;;;"}
@@ -23,7 +23,10 @@ var dataMapper = (()=>({
23
23
  id: {
24
24
  type: 'integer'
25
25
  },
26
- ...formatAttributes(contentType)
26
+ ...formatAttributes(contentType),
27
+ documentId: {
28
+ type: 'string'
29
+ }
27
30
  }
28
31
  };
29
32
  },
@@ -1 +1 @@
1
- {"version":3,"file":"data-mapper.mjs","sources":["../../../server/src/services/data-mapper.ts"],"sourcesContent":["import { pick, getOr } from 'lodash/fp';\nimport { contentTypes as contentTypesUtils } from '@strapi/utils';\n\nimport type { Schema, Struct } from '@strapi/types';\n\nconst dtoFields = [\n 'uid',\n 'isDisplayed',\n 'apiID',\n 'kind',\n 'category',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'pluginOptions',\n];\n\nexport default () => ({\n toContentManagerModel(contentType: Struct.ComponentSchema) {\n return {\n ...contentType,\n apiID: contentType.modelName,\n isDisplayed: isVisible(contentType),\n attributes: {\n id: {\n type: 'integer',\n },\n ...formatAttributes(contentType),\n },\n };\n },\n\n toDto: pick(dtoFields),\n});\n\nconst formatAttributes = (contentType: Struct.ComponentSchema) => {\n const { getVisibleAttributes, getTimestamps, getCreatorFields } = contentTypesUtils;\n\n // only get attributes that can be seen in the auto generated Edit view or List view\n return getVisibleAttributes(contentType)\n .concat(getTimestamps(contentType))\n .concat(getCreatorFields(contentType))\n .reduce((acc: any, key: string) => {\n const attribute = contentType.attributes[key];\n\n // ignore morph until they are handled in the front\n if (attribute.type === 'relation' && attribute.relation.toLowerCase().includes('morph')) {\n return acc;\n }\n\n acc[key] = formatAttribute(key, attribute);\n return acc;\n }, {});\n};\n\n// FIXME: not needed\nconst formatAttribute = (key: any, attribute: Schema.Attribute.AnyAttribute) => {\n if (attribute.type === 'relation') {\n return toRelation(attribute);\n }\n\n return attribute;\n};\n\n// FIXME: not needed\nconst toRelation = (attribute: Schema.Attribute.Relation) => {\n return {\n ...attribute,\n type: 'relation',\n targetModel: 'target' in attribute ? attribute.target : undefined,\n relationType: attribute.relation,\n };\n};\n\nconst isVisible = (model: Struct.ComponentSchema): boolean =>\n getOr(true, 'pluginOptions.content-manager.visible', model) === true;\n"],"names":["dtoFields","toContentManagerModel","contentType","apiID","modelName","isDisplayed","isVisible","attributes","id","type","formatAttributes","toDto","pick","getVisibleAttributes","getTimestamps","getCreatorFields","contentTypesUtils","concat","reduce","acc","key","attribute","relation","toLowerCase","includes","formatAttribute","toRelation","targetModel","target","undefined","relationType","model","getOr"],"mappings":";;;AAKA,MAAMA,SAAY,GAAA;AAChB,IAAA,KAAA;AACA,IAAA,aAAA;AACA,IAAA,OAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,eAAA;AACA,IAAA,YAAA;AACA,IAAA;AACD,CAAA;AAED,iBAAe,CAAA,KAAO;AACpBC,QAAAA,qBAAAA,CAAAA,CAAsBC,WAAmC,EAAA;YACvD,OAAO;AACL,gBAAA,GAAGA,WAAW;AACdC,gBAAAA,KAAAA,EAAOD,YAAYE,SAAS;AAC5BC,gBAAAA,WAAAA,EAAaC,SAAUJ,CAAAA,WAAAA,CAAAA;gBACvBK,UAAY,EAAA;oBACVC,EAAI,EAAA;wBACFC,IAAM,EAAA;AACR,qBAAA;AACA,oBAAA,GAAGC,iBAAiBR,WAAY;AAClC;AACF,aAAA;AACF,SAAA;AAEAS,QAAAA,KAAAA,EAAOC,IAAKZ,CAAAA,SAAAA;AACd,KAAA,CAAC;AAED,MAAMU,mBAAmB,CAACR,WAAAA,GAAAA;AACxB,IAAA,MAAM,EAAEW,oBAAoB,EAAEC,aAAa,EAAEC,gBAAgB,EAAE,GAAGC,YAAAA;;AAGlE,IAAA,OAAOH,oBAAqBX,CAAAA,WAAAA,CAAAA,CACzBe,MAAM,CAACH,aAAcZ,CAAAA,WAAAA,CAAAA,CAAAA,CACrBe,MAAM,CAACF,gBAAiBb,CAAAA,WAAAA,CAAAA,CAAAA,CACxBgB,MAAM,CAAC,CAACC,GAAUC,EAAAA,GAAAA,GAAAA;AACjB,QAAA,MAAMC,SAAYnB,GAAAA,WAAAA,CAAYK,UAAU,CAACa,GAAI,CAAA;;QAG7C,IAAIC,SAAAA,CAAUZ,IAAI,KAAK,UAAcY,IAAAA,SAAAA,CAAUC,QAAQ,CAACC,WAAW,EAAA,CAAGC,QAAQ,CAAC,OAAU,CAAA,EAAA;YACvF,OAAOL,GAAAA;AACT;AAEAA,QAAAA,GAAG,CAACC,GAAAA,CAAI,GAAGK,eAAAA,CAAgBL,GAAKC,EAAAA,SAAAA,CAAAA;QAChC,OAAOF,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACR,CAAA;AAEA;AACA,MAAMM,eAAAA,GAAkB,CAACL,GAAUC,EAAAA,SAAAA,GAAAA;IACjC,IAAIA,SAAAA,CAAUZ,IAAI,KAAK,UAAY,EAAA;AACjC,QAAA,OAAOiB,UAAWL,CAAAA,SAAAA,CAAAA;AACpB;IAEA,OAAOA,SAAAA;AACT,CAAA;AAEA;AACA,MAAMK,aAAa,CAACL,SAAAA,GAAAA;IAClB,OAAO;AACL,QAAA,GAAGA,SAAS;QACZZ,IAAM,EAAA,UAAA;AACNkB,QAAAA,WAAAA,EAAa,QAAYN,IAAAA,SAAAA,GAAYA,SAAUO,CAAAA,MAAM,GAAGC,SAAAA;AACxDC,QAAAA,YAAAA,EAAcT,UAAUC;AAC1B,KAAA;AACF,CAAA;AAEA,MAAMhB,YAAY,CAACyB,KAAAA,GACjBC,KAAM,CAAA,IAAA,EAAM,yCAAyCD,KAAW,CAAA,KAAA,IAAA;;;;"}
1
+ {"version":3,"file":"data-mapper.mjs","sources":["../../../server/src/services/data-mapper.ts"],"sourcesContent":["import { pick, getOr } from 'lodash/fp';\nimport { contentTypes as contentTypesUtils } from '@strapi/utils';\n\nimport type { Schema, Struct } from '@strapi/types';\n\nconst dtoFields = [\n 'uid',\n 'isDisplayed',\n 'apiID',\n 'kind',\n 'category',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'pluginOptions',\n];\n\nexport default () => ({\n toContentManagerModel(contentType: Struct.ComponentSchema) {\n return {\n ...contentType,\n apiID: contentType.modelName,\n isDisplayed: isVisible(contentType),\n attributes: {\n id: {\n type: 'integer',\n },\n ...formatAttributes(contentType),\n documentId: {\n type: 'string',\n },\n },\n };\n },\n\n toDto: pick(dtoFields),\n});\n\nconst formatAttributes = (contentType: Struct.ComponentSchema) => {\n const { getVisibleAttributes, getTimestamps, getCreatorFields } = contentTypesUtils;\n\n // only get attributes that can be seen in the auto generated Edit view or List view\n return getVisibleAttributes(contentType)\n .concat(getTimestamps(contentType))\n .concat(getCreatorFields(contentType))\n .reduce((acc: any, key: string) => {\n const attribute = contentType.attributes[key];\n\n // ignore morph until they are handled in the front\n if (attribute.type === 'relation' && attribute.relation.toLowerCase().includes('morph')) {\n return acc;\n }\n\n acc[key] = formatAttribute(key, attribute);\n return acc;\n }, {});\n};\n\n// FIXME: not needed\nconst formatAttribute = (key: any, attribute: Schema.Attribute.AnyAttribute) => {\n if (attribute.type === 'relation') {\n return toRelation(attribute);\n }\n\n return attribute;\n};\n\n// FIXME: not needed\nconst toRelation = (attribute: Schema.Attribute.Relation) => {\n return {\n ...attribute,\n type: 'relation',\n targetModel: 'target' in attribute ? attribute.target : undefined,\n relationType: attribute.relation,\n };\n};\n\nconst isVisible = (model: Struct.ComponentSchema): boolean =>\n getOr(true, 'pluginOptions.content-manager.visible', model) === true;\n"],"names":["dtoFields","toContentManagerModel","contentType","apiID","modelName","isDisplayed","isVisible","attributes","id","type","formatAttributes","documentId","toDto","pick","getVisibleAttributes","getTimestamps","getCreatorFields","contentTypesUtils","concat","reduce","acc","key","attribute","relation","toLowerCase","includes","formatAttribute","toRelation","targetModel","target","undefined","relationType","model","getOr"],"mappings":";;;AAKA,MAAMA,SAAY,GAAA;AAChB,IAAA,KAAA;AACA,IAAA,aAAA;AACA,IAAA,OAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,eAAA;AACA,IAAA,YAAA;AACA,IAAA;AACD,CAAA;AAED,iBAAe,CAAA,KAAO;AACpBC,QAAAA,qBAAAA,CAAAA,CAAsBC,WAAmC,EAAA;YACvD,OAAO;AACL,gBAAA,GAAGA,WAAW;AACdC,gBAAAA,KAAAA,EAAOD,YAAYE,SAAS;AAC5BC,gBAAAA,WAAAA,EAAaC,SAAUJ,CAAAA,WAAAA,CAAAA;gBACvBK,UAAY,EAAA;oBACVC,EAAI,EAAA;wBACFC,IAAM,EAAA;AACR,qBAAA;AACA,oBAAA,GAAGC,iBAAiBR,WAAY,CAAA;oBAChCS,UAAY,EAAA;wBACVF,IAAM,EAAA;AACR;AACF;AACF,aAAA;AACF,SAAA;AAEAG,QAAAA,KAAAA,EAAOC,IAAKb,CAAAA,SAAAA;AACd,KAAA,CAAC;AAED,MAAMU,mBAAmB,CAACR,WAAAA,GAAAA;AACxB,IAAA,MAAM,EAAEY,oBAAoB,EAAEC,aAAa,EAAEC,gBAAgB,EAAE,GAAGC,YAAAA;;AAGlE,IAAA,OAAOH,oBAAqBZ,CAAAA,WAAAA,CAAAA,CACzBgB,MAAM,CAACH,aAAcb,CAAAA,WAAAA,CAAAA,CAAAA,CACrBgB,MAAM,CAACF,gBAAiBd,CAAAA,WAAAA,CAAAA,CAAAA,CACxBiB,MAAM,CAAC,CAACC,GAAUC,EAAAA,GAAAA,GAAAA;AACjB,QAAA,MAAMC,SAAYpB,GAAAA,WAAAA,CAAYK,UAAU,CAACc,GAAI,CAAA;;QAG7C,IAAIC,SAAAA,CAAUb,IAAI,KAAK,UAAca,IAAAA,SAAAA,CAAUC,QAAQ,CAACC,WAAW,EAAA,CAAGC,QAAQ,CAAC,OAAU,CAAA,EAAA;YACvF,OAAOL,GAAAA;AACT;AAEAA,QAAAA,GAAG,CAACC,GAAAA,CAAI,GAAGK,eAAAA,CAAgBL,GAAKC,EAAAA,SAAAA,CAAAA;QAChC,OAAOF,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACR,CAAA;AAEA;AACA,MAAMM,eAAAA,GAAkB,CAACL,GAAUC,EAAAA,SAAAA,GAAAA;IACjC,IAAIA,SAAAA,CAAUb,IAAI,KAAK,UAAY,EAAA;AACjC,QAAA,OAAOkB,UAAWL,CAAAA,SAAAA,CAAAA;AACpB;IAEA,OAAOA,SAAAA;AACT,CAAA;AAEA;AACA,MAAMK,aAAa,CAACL,SAAAA,GAAAA;IAClB,OAAO;AACL,QAAA,GAAGA,SAAS;QACZb,IAAM,EAAA,UAAA;AACNmB,QAAAA,WAAAA,EAAa,QAAYN,IAAAA,SAAAA,GAAYA,SAAUO,CAAAA,MAAM,GAAGC,SAAAA;AACxDC,QAAAA,YAAAA,EAAcT,UAAUC;AAC1B,KAAA;AACF,CAAA;AAEA,MAAMjB,YAAY,CAAC0B,KAAAA,GACjBC,KAAM,CAAA,IAAA,EAAM,yCAAyCD,KAAW,CAAA,KAAA,IAAA;;;;"}
@@ -91,8 +91,15 @@ const documentManager = ({ strapi })=>{
91
91
  },
92
92
  async clone (id, body, uid) {
93
93
  const populate$1 = await populate.buildDeepPopulate(uid);
94
+ // Extract the locale to pass it as a plain param
95
+ const locale = body?.locale;
94
96
  const params = {
95
- data: omitIdField(body),
97
+ // Ensure id and documentId are not copied to the clone
98
+ data: fp.omit([
99
+ 'id',
100
+ 'documentId'
101
+ ], body),
102
+ locale,
96
103
  populate: populate$1
97
104
  };
98
105
  return strapi.documents(uid).clone({