@strapi/admin 5.5.2 → 5.7.0-beta.0

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 (241) hide show
  1. package/dist/admin/{AdminSeatInfo-CfbjPdSS.mjs → AdminSeatInfo-Bpyschk4.mjs} +3 -3
  2. package/dist/admin/{AdminSeatInfo-CfbjPdSS.mjs.map → AdminSeatInfo-Bpyschk4.mjs.map} +1 -1
  3. package/dist/admin/{ApplicationInfoPage-Br2aUPw0.mjs → ApplicationInfoPage-BlX64-1T.mjs} +5 -5
  4. package/dist/admin/{ApplicationInfoPage-Br2aUPw0.mjs.map → ApplicationInfoPage-BlX64-1T.mjs.map} +1 -1
  5. package/dist/admin/{ApplicationInfoPage-BnGGYL0F.js → ApplicationInfoPage-Cx9Z4tfk.js} +2 -2
  6. package/dist/admin/{ApplicationInfoPage-BnGGYL0F.js.map → ApplicationInfoPage-Cx9Z4tfk.js.map} +1 -1
  7. package/dist/admin/{AuthResponse-CWs8VL81.mjs → AuthResponse-BI0D7fJC.mjs} +2 -2
  8. package/dist/admin/{AuthResponse-CWs8VL81.mjs.map → AuthResponse-BI0D7fJC.mjs.map} +1 -1
  9. package/dist/admin/{AuthenticatedLayout-BJU39shu.mjs → AuthenticatedLayout-Br8Ujef5.mjs} +11 -11
  10. package/dist/admin/{AuthenticatedLayout-BJU39shu.mjs.map → AuthenticatedLayout-Br8Ujef5.mjs.map} +1 -1
  11. package/dist/admin/{AuthenticatedLayout-BAEki0Lq.js → AuthenticatedLayout-CCwt0AgG.js} +9 -9
  12. package/dist/admin/{AuthenticatedLayout-BAEki0Lq.js.map → AuthenticatedLayout-CCwt0AgG.js.map} +1 -1
  13. package/dist/admin/{CreatePage-DOqA_BzK.mjs → CreatePage-CaMDsF7E.mjs} +3 -3
  14. package/dist/admin/{CreatePage-DOqA_BzK.mjs.map → CreatePage-CaMDsF7E.mjs.map} +1 -1
  15. package/dist/admin/{CreatePage-XayJSP6L.js → CreatePage-DtK2k2xj.js} +2 -2
  16. package/dist/admin/{CreatePage-XayJSP6L.js.map → CreatePage-DtK2k2xj.js.map} +1 -1
  17. package/dist/admin/{CreatePage-C7F5W4hT.js → CreatePage-Je194jpQ.js} +2 -2
  18. package/dist/admin/{CreatePage-C7F5W4hT.js.map → CreatePage-Je194jpQ.js.map} +1 -1
  19. package/dist/admin/{CreatePage-jnPXnNnq.mjs → CreatePage-cPI93IzV.mjs} +4 -4
  20. package/dist/admin/{CreatePage-jnPXnNnq.mjs.map → CreatePage-cPI93IzV.mjs.map} +1 -1
  21. package/dist/admin/{CreateView-CgQC_6cj.js → CreateView-CKHDAAe9.js} +2 -2
  22. package/dist/admin/{CreateView-CgQC_6cj.js.map → CreateView-CKHDAAe9.js.map} +1 -1
  23. package/dist/admin/{CreateView-Bu6ccXB2.js → CreateView-CV1T_FkK.js} +2 -2
  24. package/dist/admin/{CreateView-Bu6ccXB2.js.map → CreateView-CV1T_FkK.js.map} +1 -1
  25. package/dist/admin/{CreateView-wif5_cYe.mjs → CreateView-CYhJZ4SU.mjs} +3 -3
  26. package/dist/admin/{CreateView-wif5_cYe.mjs.map → CreateView-CYhJZ4SU.mjs.map} +1 -1
  27. package/dist/admin/{CreateView-BiuRhpJD.mjs → CreateView-CYk_dMMs.mjs} +3 -3
  28. package/dist/admin/{CreateView-BiuRhpJD.mjs.map → CreateView-CYk_dMMs.mjs.map} +1 -1
  29. package/dist/admin/{EditPage-BzCbACoy.mjs → EditPage-CZPAEYlB.mjs} +5 -5
  30. package/dist/admin/{EditPage-BzCbACoy.mjs.map → EditPage-CZPAEYlB.mjs.map} +1 -1
  31. package/dist/admin/{EditPage-1oJuB0Lg.js → EditPage-DPnF8khi.js} +3 -3
  32. package/dist/admin/{EditPage-1oJuB0Lg.js.map → EditPage-DPnF8khi.js.map} +1 -1
  33. package/dist/admin/{EditPage-BN85cZA1.mjs → EditPage-DTaqqKhx.mjs} +7 -7
  34. package/dist/admin/{EditPage-BN85cZA1.mjs.map → EditPage-DTaqqKhx.mjs.map} +1 -1
  35. package/dist/admin/{EditPage-BAGlyDIb.js → EditPage-e1MbaksH.js} +3 -3
  36. package/dist/admin/{EditPage-BAGlyDIb.js.map → EditPage-e1MbaksH.js.map} +1 -1
  37. package/dist/admin/{EditPage-CkLE0e4n.js → EditPage-f8LeUPW3.js} +5 -5
  38. package/dist/admin/{EditPage-CkLE0e4n.js.map → EditPage-f8LeUPW3.js.map} +1 -1
  39. package/dist/admin/{EditPage-CNJSkExi.mjs → EditPage-qRfveoLn.mjs} +5 -5
  40. package/dist/admin/{EditPage-CNJSkExi.mjs.map → EditPage-qRfveoLn.mjs.map} +1 -1
  41. package/dist/admin/{EditView-CwfC4Kyq.mjs → EditView-Df6PVPAd.mjs} +4 -4
  42. package/dist/admin/{EditView-CwfC4Kyq.mjs.map → EditView-Df6PVPAd.mjs.map} +1 -1
  43. package/dist/admin/{EditView-jM9DrszP.js → EditView-IrrSxD_e.js} +3 -3
  44. package/dist/admin/{EditView-jM9DrszP.js.map → EditView-IrrSxD_e.js.map} +1 -1
  45. package/dist/admin/{EditViewPage-C4XvyJjA.mjs → EditViewPage-BKnY-1Sj.mjs} +4 -4
  46. package/dist/admin/{EditViewPage-C4XvyJjA.mjs.map → EditViewPage-BKnY-1Sj.mjs.map} +1 -1
  47. package/dist/admin/{EditViewPage-DBwII2Z1.js → EditViewPage-BNzM51al.js} +3 -3
  48. package/dist/admin/{EditViewPage-DBwII2Z1.js.map → EditViewPage-BNzM51al.js.map} +1 -1
  49. package/dist/admin/{EventsTable-nmBcr8O2.mjs → EventsTable-DUz7EZyi.mjs} +2 -2
  50. package/dist/admin/{EventsTable-nmBcr8O2.mjs.map → EventsTable-DUz7EZyi.mjs.map} +1 -1
  51. package/dist/admin/{EventsTable-BhvNeNbz.js → EventsTable-fqzWSspG.js} +2 -2
  52. package/dist/admin/{EventsTable-BhvNeNbz.js.map → EventsTable-fqzWSspG.js.map} +1 -1
  53. package/dist/admin/HomePage-BcZ8G5Zk.js +375 -0
  54. package/dist/admin/HomePage-BcZ8G5Zk.js.map +1 -0
  55. package/dist/admin/{HomePage-CcfzjKvs.js → HomePage-DAKopsM1.js} +2 -2
  56. package/dist/admin/HomePage-DAKopsM1.js.map +1 -0
  57. package/dist/admin/{HomePage-u_7g2ehv.mjs → HomePage-HuAhOTRQ.mjs} +3 -3
  58. package/dist/admin/HomePage-HuAhOTRQ.mjs.map +1 -0
  59. package/dist/admin/HomePage-NPjXohKj.mjs +350 -0
  60. package/dist/admin/HomePage-NPjXohKj.mjs.map +1 -0
  61. package/dist/admin/{InstalledPlugins-BgEOmGBX.mjs → InstalledPlugins-BDBDHjp1.mjs} +3 -3
  62. package/dist/admin/{InstalledPlugins-BgEOmGBX.mjs.map → InstalledPlugins-BDBDHjp1.mjs.map} +1 -1
  63. package/dist/admin/{InstalledPlugins-svKeZGyA.js → InstalledPlugins-OsZRe2Mj.js} +2 -2
  64. package/dist/admin/{InstalledPlugins-svKeZGyA.js.map → InstalledPlugins-OsZRe2Mj.js.map} +1 -1
  65. package/dist/admin/{Layout-DmGwmGNh.js → Layout-BmPlcHQy.js} +3 -3
  66. package/dist/admin/{Layout-DmGwmGNh.js.map → Layout-BmPlcHQy.js.map} +1 -1
  67. package/dist/admin/{Layout-B3ZQJM5Z.mjs → Layout-ZnQ6qK04.mjs} +5 -5
  68. package/dist/admin/{Layout-B3ZQJM5Z.mjs.map → Layout-ZnQ6qK04.mjs.map} +1 -1
  69. package/dist/admin/{ListPage-36QpdmV1.js → ListPage-6TiKw8tv.js} +2 -2
  70. package/dist/admin/{ListPage-36QpdmV1.js.map → ListPage-6TiKw8tv.js.map} +1 -1
  71. package/dist/admin/{ListPage-BkzM6Uvl.js → ListPage-BVk9Y9nA.js} +2 -2
  72. package/dist/admin/{ListPage-BkzM6Uvl.js.map → ListPage-BVk9Y9nA.js.map} +1 -1
  73. package/dist/admin/{ListPage-DmmS9EoG.mjs → ListPage-B_XyFDAF.mjs} +5 -5
  74. package/dist/admin/{ListPage-DmmS9EoG.mjs.map → ListPage-B_XyFDAF.mjs.map} +1 -1
  75. package/dist/admin/{ListPage-GzmLDWNE.js → ListPage-BoJnuSeZ.js} +2 -2
  76. package/dist/admin/{ListPage-GzmLDWNE.js.map → ListPage-BoJnuSeZ.js.map} +1 -1
  77. package/dist/admin/{ListPage-CeZG3tWl.mjs → ListPage-Bu63qBzy.mjs} +3 -3
  78. package/dist/admin/{ListPage-CeZG3tWl.mjs.map → ListPage-Bu63qBzy.mjs.map} +1 -1
  79. package/dist/admin/{ListPage-Diz-6e6P.mjs → ListPage-C0iLSqYo.mjs} +3 -3
  80. package/dist/admin/{ListPage-Diz-6e6P.mjs.map → ListPage-C0iLSqYo.mjs.map} +1 -1
  81. package/dist/admin/{ListPage-B_bBu40k.js → ListPage-CtOOlqCn.js} +5 -5
  82. package/dist/admin/{ListPage-B_bBu40k.js.map → ListPage-CtOOlqCn.js.map} +1 -1
  83. package/dist/admin/{ListPage-4VI90pe4.mjs → ListPage-Da_2kaB7.mjs} +6 -6
  84. package/dist/admin/{ListPage-4VI90pe4.mjs.map → ListPage-Da_2kaB7.mjs.map} +1 -1
  85. package/dist/admin/{ListPage-DC6ePb2s.mjs → ListPage-YvkZI4Dz.mjs} +3 -3
  86. package/dist/admin/{ListPage-DC6ePb2s.mjs.map → ListPage-YvkZI4Dz.mjs.map} +1 -1
  87. package/dist/admin/{ListPage-Bku8n3kg.js → ListPage-xSonCT19.js} +3 -3
  88. package/dist/admin/{ListPage-Bku8n3kg.js.map → ListPage-xSonCT19.js.map} +1 -1
  89. package/dist/admin/{ListView-DBeqVkIs.mjs → ListView-CMiSzy7H.mjs} +4 -4
  90. package/dist/admin/{ListView-DBeqVkIs.mjs.map → ListView-CMiSzy7H.mjs.map} +1 -1
  91. package/dist/admin/{ListView-DYl24QDA.js → ListView-CeE2Qlyi.js} +3 -3
  92. package/dist/admin/{ListView-DYl24QDA.js.map → ListView-CeE2Qlyi.js.map} +1 -1
  93. package/dist/admin/{ListView-iLU-wzu0.js → ListView-Cr_P57s2.js} +3 -3
  94. package/dist/admin/{ListView-iLU-wzu0.js.map → ListView-Cr_P57s2.js.map} +1 -1
  95. package/dist/admin/{ListView-BUJkkfUH.mjs → ListView-DhZFpqcJ.mjs} +4 -4
  96. package/dist/admin/{ListView-BUJkkfUH.mjs.map → ListView-DhZFpqcJ.mjs.map} +1 -1
  97. package/dist/admin/{Login-BJEtLuhd.js → Login-B-e6bger.js} +2 -2
  98. package/dist/admin/{Login-BJEtLuhd.js.map → Login-B-e6bger.js.map} +1 -1
  99. package/dist/admin/{Login-C7l45L76.mjs → Login-CKEdHx7A.mjs} +3 -3
  100. package/dist/admin/{Login-C7l45L76.mjs.map → Login-CKEdHx7A.mjs.map} +1 -1
  101. package/dist/admin/{MagicLinkEE-CJh9wFOI.mjs → MagicLinkEE-DCazf_P2.mjs} +3 -3
  102. package/dist/admin/{MagicLinkEE-CJh9wFOI.mjs.map → MagicLinkEE-DCazf_P2.mjs.map} +1 -1
  103. package/dist/admin/{MagicLinkEE-BN6UlBxF.js → MagicLinkEE-DYCH6Jl2.js} +3 -3
  104. package/dist/admin/{MagicLinkEE-BN6UlBxF.js.map → MagicLinkEE-DYCH6Jl2.js.map} +1 -1
  105. package/dist/admin/{MarketplacePage-Cjj0kzPx.mjs → MarketplacePage-CTbE4SlU.mjs} +3 -3
  106. package/dist/admin/{MarketplacePage-Cjj0kzPx.mjs.map → MarketplacePage-CTbE4SlU.mjs.map} +1 -1
  107. package/dist/admin/{MarketplacePage-D1iVBCOI.js → MarketplacePage-DeH9a207.js} +2 -2
  108. package/dist/admin/{MarketplacePage-D1iVBCOI.js.map → MarketplacePage-DeH9a207.js.map} +1 -1
  109. package/dist/admin/{Permissions-CqkJcZdu.mjs → Permissions-gB8QZDch.mjs} +2 -2
  110. package/dist/admin/{Permissions-CqkJcZdu.mjs.map → Permissions-gB8QZDch.mjs.map} +1 -1
  111. package/dist/admin/{PrivateRoute-CzKixo0E.mjs → PrivateRoute-DIxYvSni.mjs} +2 -2
  112. package/dist/admin/{PrivateRoute-CzKixo0E.mjs.map → PrivateRoute-DIxYvSni.mjs.map} +1 -1
  113. package/dist/admin/{ProfilePage-Rr-rm8pV.mjs → ProfilePage-Bcb_ayAW.mjs} +4 -4
  114. package/dist/admin/{ProfilePage-Rr-rm8pV.mjs.map → ProfilePage-Bcb_ayAW.mjs.map} +1 -1
  115. package/dist/admin/{ProfilePage-w34iMGur.js → ProfilePage-CD0uiMaE.js} +3 -3
  116. package/dist/admin/{ProfilePage-w34iMGur.js.map → ProfilePage-CD0uiMaE.js.map} +1 -1
  117. package/dist/admin/{PurchaseAuditLogs-B_hQDE4Q.js → PurchaseAuditLogs-CHKqdqrY.js} +2 -2
  118. package/dist/admin/{PurchaseAuditLogs-B_hQDE4Q.js.map → PurchaseAuditLogs-CHKqdqrY.js.map} +1 -1
  119. package/dist/admin/{PurchaseAuditLogs-Dw4L-QFy.mjs → PurchaseAuditLogs-D9V7WucM.mjs} +2 -2
  120. package/dist/admin/{PurchaseAuditLogs-Dw4L-QFy.mjs.map → PurchaseAuditLogs-D9V7WucM.mjs.map} +1 -1
  121. package/dist/admin/{PurchaseContentHistory-DC3bIvQp.mjs → PurchaseContentHistory-CtiF0HJP.mjs} +2 -2
  122. package/dist/admin/{PurchaseContentHistory-DC3bIvQp.mjs.map → PurchaseContentHistory-CtiF0HJP.mjs.map} +1 -1
  123. package/dist/admin/{PurchaseContentHistory-cmmA1PTq.js → PurchaseContentHistory-eOg1pQvg.js} +2 -2
  124. package/dist/admin/{PurchaseContentHistory-cmmA1PTq.js.map → PurchaseContentHistory-eOg1pQvg.js.map} +1 -1
  125. package/dist/admin/{PurchaseSingleSignOn-u1Dn-vWC.js → PurchaseSingleSignOn-C4Mthjnp.js} +2 -2
  126. package/dist/admin/{PurchaseSingleSignOn-u1Dn-vWC.js.map → PurchaseSingleSignOn-C4Mthjnp.js.map} +1 -1
  127. package/dist/admin/{PurchaseSingleSignOn-CLL-FqfU.mjs → PurchaseSingleSignOn-Dfg-RTXq.mjs} +2 -2
  128. package/dist/admin/{PurchaseSingleSignOn-CLL-FqfU.mjs.map → PurchaseSingleSignOn-Dfg-RTXq.mjs.map} +1 -1
  129. package/dist/admin/RelativeTime-BGJ1PWx_.mjs +38 -0
  130. package/dist/admin/RelativeTime-BGJ1PWx_.mjs.map +1 -0
  131. package/dist/admin/RelativeTime-DPLD3wf-.js +60 -0
  132. package/dist/admin/RelativeTime-DPLD3wf-.js.map +1 -0
  133. package/dist/admin/{SelectRoles-CJxgL7wv.mjs → SelectRoles-D1xPS-qt.mjs} +4 -4
  134. package/dist/admin/{SelectRoles-CJxgL7wv.mjs.map → SelectRoles-D1xPS-qt.mjs.map} +1 -1
  135. package/dist/admin/{SelectRoles-PpNFFjHG.js → SelectRoles-DIyUH00-.js} +3 -3
  136. package/dist/admin/{SelectRoles-PpNFFjHG.js.map → SelectRoles-DIyUH00-.js.map} +1 -1
  137. package/dist/admin/{SingleSignOnPage-BalYHb9C.mjs → SingleSignOnPage-BC2aTKy7.mjs} +4 -4
  138. package/dist/admin/{SingleSignOnPage-BalYHb9C.mjs.map → SingleSignOnPage-BC2aTKy7.mjs.map} +1 -1
  139. package/dist/admin/{SingleSignOnPage-Da_Jyfd7.js → SingleSignOnPage-BNuYGkeX.js} +3 -3
  140. package/dist/admin/{SingleSignOnPage-Da_Jyfd7.js.map → SingleSignOnPage-BNuYGkeX.js.map} +1 -1
  141. package/dist/admin/{Table-CI3evx38.js → Table-7pe1j4im.js} +5 -57
  142. package/dist/admin/Table-7pe1j4im.js.map +1 -0
  143. package/dist/admin/{Table-Cy-GLzPL.mjs → Table-DQnLoM7I.mjs} +4 -36
  144. package/dist/admin/Table-DQnLoM7I.mjs.map +1 -0
  145. package/dist/admin/{Theme-5Y8Pi0Wm.mjs → Theme-CTMU9Z8I.mjs} +2 -2
  146. package/dist/admin/{Theme-5Y8Pi0Wm.mjs.map → Theme-CTMU9Z8I.mjs.map} +1 -1
  147. package/dist/admin/Theme-DWGZX5tv.js.map +1 -1
  148. package/dist/admin/{TokenTypeSelect-BVenRIH1.mjs → TokenTypeSelect-CTdltdS8.mjs} +3 -3
  149. package/dist/admin/{TokenTypeSelect-BVenRIH1.mjs.map → TokenTypeSelect-CTdltdS8.mjs.map} +1 -1
  150. package/dist/admin/{TokenTypeSelect-Dp4j35gM.js → TokenTypeSelect-ZzXED7rf.js} +2 -2
  151. package/dist/admin/{TokenTypeSelect-Dp4j35gM.js.map → TokenTypeSelect-ZzXED7rf.js.map} +1 -1
  152. package/dist/admin/{UseCasePage-BBSvDqnp.mjs → UseCasePage-BqAoX3j-.mjs} +4 -4
  153. package/dist/admin/{UseCasePage-BBSvDqnp.mjs.map → UseCasePage-BqAoX3j-.mjs.map} +1 -1
  154. package/dist/admin/{UseCasePage-L72HnaAQ.js → UseCasePage-iNVoVcCb.js} +2 -2
  155. package/dist/admin/{UseCasePage-L72HnaAQ.js.map → UseCasePage-iNVoVcCb.js.map} +1 -1
  156. package/dist/admin/{constants-DgAIQgtX.js → constants-BtdWKFzN.js} +2 -2
  157. package/dist/admin/{constants-DgAIQgtX.js.map → constants-BtdWKFzN.js.map} +1 -1
  158. package/dist/admin/{constants-CL6NsCNz.mjs → constants-TZNepYft.mjs} +3 -3
  159. package/dist/admin/{constants-CL6NsCNz.mjs.map → constants-TZNepYft.mjs.map} +1 -1
  160. package/dist/admin/{en-CJdNdwAe.js → en-BR2e5qX-.js} +7 -16
  161. package/dist/admin/{en-CJdNdwAe.js.map → en-BR2e5qX-.js.map} +1 -1
  162. package/dist/admin/{en-DOZzjg_v.mjs → en-CSPHZKTw.mjs} +7 -16
  163. package/dist/admin/{en-DOZzjg_v.mjs.map → en-CSPHZKTw.mjs.map} +1 -1
  164. package/dist/admin/{en-GB-BjOvFjLX.js → en-GB-Bke-WrFJ.js} +2 -2
  165. package/dist/admin/en-GB-Bke-WrFJ.js.map +1 -0
  166. package/dist/admin/en-GB-Gv8lAy1p.mjs +6 -0
  167. package/dist/admin/en-GB-Gv8lAy1p.mjs.map +1 -0
  168. package/dist/admin/{index-CV0X429t.mjs → index-CMdgTmC0.mjs} +61 -47
  169. package/dist/admin/index-CMdgTmC0.mjs.map +1 -0
  170. package/dist/admin/{index-DIfoFau6.js → index-DxMAHgtc.js} +59 -45
  171. package/dist/admin/index-DxMAHgtc.js.map +1 -0
  172. package/dist/admin/index.js +1 -1
  173. package/dist/admin/index.mjs +2 -2
  174. package/dist/admin/{selectors-BUDjU_0m.mjs → selectors-BZApelK9.mjs} +2 -2
  175. package/dist/admin/{selectors-BUDjU_0m.mjs.map → selectors-BZApelK9.mjs.map} +1 -1
  176. package/dist/admin/src/components/FormInputs/Date.d.ts +2 -1
  177. package/dist/admin/src/features/Tracking.d.ts +1 -1
  178. package/dist/admin/src/pages/Home/components/ContentManagerWidgets.d.ts +3 -0
  179. package/dist/admin/src/pages/Home/components/GuidedTour.d.ts +1 -0
  180. package/dist/admin/src/pages/Home/components/Widget.d.ts +23 -0
  181. package/dist/admin/src/services/homepage.d.ts +5 -0
  182. package/dist/admin/test.mjs +1 -1
  183. package/dist/admin/{useAdminRoles-Da1h27pK.mjs → useAdminRoles-BVwapBge.mjs} +2 -2
  184. package/dist/admin/{useAdminRoles-Da1h27pK.mjs.map → useAdminRoles-BVwapBge.mjs.map} +1 -1
  185. package/dist/admin/{useAdminRoles-CCllA7O2.js → useAdminRoles-DVnFvP_o.js} +2 -2
  186. package/dist/admin/{useAdminRoles-CCllA7O2.js.map → useAdminRoles-DVnFvP_o.js.map} +1 -1
  187. package/dist/admin/{useLicenseLimitNotification-DQKWFvvl.mjs → useLicenseLimitNotification-CAQIrlP4.mjs} +2 -2
  188. package/dist/admin/{useLicenseLimitNotification-DQKWFvvl.mjs.map → useLicenseLimitNotification-CAQIrlP4.mjs.map} +1 -1
  189. package/dist/admin/{validation-CWoP-BdZ.js → validation-CV2jBW7t.js} +2 -2
  190. package/dist/admin/{validation-CWoP-BdZ.js.map → validation-CV2jBW7t.js.map} +1 -1
  191. package/dist/admin/{validation-Dm_fjTrd.mjs → validation-D36pWUQH.mjs} +2 -2
  192. package/dist/admin/{validation-Dm_fjTrd.mjs.map → validation-D36pWUQH.mjs.map} +1 -1
  193. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  194. package/dist/ee/server/src/services/persist-tables.d.ts +1 -1
  195. package/dist/ee/server/src/services/persist-tables.d.ts.map +1 -1
  196. package/dist/package.json.d.ts +7 -7
  197. package/dist/server/index.js +184 -6
  198. package/dist/server/index.js.map +1 -1
  199. package/dist/server/index.mjs +313 -136
  200. package/dist/server/index.mjs.map +1 -1
  201. package/dist/server/src/controllers/homepage.d.ts +8 -0
  202. package/dist/server/src/controllers/homepage.d.ts.map +1 -0
  203. package/dist/server/src/controllers/index.d.ts +3 -0
  204. package/dist/server/src/controllers/index.d.ts.map +1 -1
  205. package/dist/server/src/index.d.ts +9 -0
  206. package/dist/server/src/index.d.ts.map +1 -1
  207. package/dist/server/src/routes/homepage.d.ts +14 -0
  208. package/dist/server/src/routes/homepage.d.ts.map +1 -0
  209. package/dist/server/src/routes/index.d.ts.map +1 -1
  210. package/dist/server/src/services/homepage.d.ts +11 -0
  211. package/dist/server/src/services/homepage.d.ts.map +1 -0
  212. package/dist/server/src/services/index.d.ts +6 -0
  213. package/dist/server/src/services/index.d.ts.map +1 -1
  214. package/dist/shared/contracts/admin.d.ts +2 -1
  215. package/dist/shared/contracts/api-token.d.ts +2 -1
  216. package/dist/shared/contracts/authentication.d.ts +3 -2
  217. package/dist/shared/contracts/content-api.d.ts +3 -2
  218. package/dist/shared/contracts/homepage.d.ts +26 -0
  219. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  220. package/dist/shared/contracts/permissions.d.ts +2 -1
  221. package/dist/shared/contracts/roles.d.ts +3 -2
  222. package/dist/shared/contracts/shared.d.ts +2 -1
  223. package/dist/shared/contracts/transfer.d.ts +1 -0
  224. package/dist/shared/contracts/user.d.ts +3 -2
  225. package/dist/shared/contracts/users.d.ts +3 -2
  226. package/dist/shared/contracts/webhooks.d.ts +2 -1
  227. package/package.json +9 -8
  228. package/dist/admin/HomePage-BjDpVjNN.mjs +0 -576
  229. package/dist/admin/HomePage-BjDpVjNN.mjs.map +0 -1
  230. package/dist/admin/HomePage-CcfzjKvs.js.map +0 -1
  231. package/dist/admin/HomePage-Cwwd04uv.js +0 -601
  232. package/dist/admin/HomePage-Cwwd04uv.js.map +0 -1
  233. package/dist/admin/HomePage-u_7g2ehv.mjs.map +0 -1
  234. package/dist/admin/Table-CI3evx38.js.map +0 -1
  235. package/dist/admin/Table-Cy-GLzPL.mjs.map +0 -1
  236. package/dist/admin/en-GB-BjOvFjLX.js.map +0 -1
  237. package/dist/admin/en-GB-Ceyy7cF8.mjs +0 -6
  238. package/dist/admin/en-GB-Ceyy7cF8.mjs.map +0 -1
  239. package/dist/admin/index-CV0X429t.mjs.map +0 -1
  240. package/dist/admin/index-DIfoFau6.js.map +0 -1
  241. /package/dist/admin/src/pages/{HomePage.d.ts → Home/HomePage.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import * as _ from "lodash";
2
2
  import ___default, { pick as pick$1 } from "lodash";
3
3
  import { merge, map, uniq, difference, isNil, castArray, pick, curry, pipe, prop, includes, isArray, set, omit, isEmpty, has, defaults, remove, eq, get, differenceWith, differenceBy, isEqual, toLower, isFunction, some, flatMap, isObject, cloneDeep, getOr, intersection, isPlainObject, matchesProperty, propEq, xor, startsWith, isString, isNumber, values, sumBy, trim, isUndefined, mapKeys, toString, toNumber, assign, reverse, take, drop, mapValues } from "lodash/fp";
4
- import utils$2, { async, errors, yup, validateYupSchema, policy, arrays, hooks as hooks$1, dates, validateYupSchemaSync, providerFactory, sanitize, contentTypes as contentTypes$1, traverse, traverseEntity, validate, env, validateZod, strings } from "@strapi/utils";
4
+ import utils$2, { async, errors, yup as yup$1, validateYupSchema, policy, arrays, hooks as hooks$1, dates, validateYupSchemaSync, providerFactory, sanitize, contentTypes as contentTypes$1, traverse, traverseEntity, validate, env, validateZod, strings } from "@strapi/utils";
5
5
  import path, { resolve, basename, join, extname } from "path";
6
6
  import fse, { exists as exists$4 } from "fs-extra";
7
7
  import koaStatic from "koa-static";
@@ -24,6 +24,7 @@ import compose from "koa-compose";
24
24
  import { strapi as strapi$1 } from "@strapi/data-transfer";
25
25
  import isLocalhostIp from "is-localhost-ip";
26
26
  import punycode from "punycode/";
27
+ import * as yup from "yup";
27
28
  import { scheduleJob } from "node-schedule";
28
29
  const getService$1 = (name2) => {
29
30
  return strapi.service(`admin::${name2}`);
@@ -596,19 +597,19 @@ const config = {
596
597
  const isAuthenticatedAdmin = (policyCtx) => {
597
598
  return Boolean(policyCtx.state.isAuthenticated);
598
599
  };
599
- const hasPermissionsSchema = yup.object({
600
- actions: yup.array().of(
600
+ const hasPermissionsSchema = yup$1.object({
601
+ actions: yup$1.array().of(
601
602
  // @ts-expect-error yup types
602
- yup.lazy((val) => {
603
+ yup$1.lazy((val) => {
603
604
  if (___default.isArray(val)) {
604
- return yup.array().of(yup.string()).min(1).max(2);
605
+ return yup$1.array().of(yup$1.string()).min(1).max(2);
605
606
  }
606
607
  if (___default.isString(val)) {
607
- return yup.string().required();
608
+ return yup$1.string().required();
608
609
  }
609
- return yup.object().shape({
610
- action: yup.string().required(),
611
- subject: yup.string()
610
+ return yup$1.object().shape({
611
+ action: yup$1.string().required(),
612
+ subject: yup$1.string()
612
613
  });
613
614
  })
614
615
  )
@@ -1318,6 +1319,18 @@ const transfer$2 = [
1318
1319
  }
1319
1320
  }
1320
1321
  ];
1322
+ const info = { pluginName: "admin", type: "admin" };
1323
+ const homepage = [
1324
+ {
1325
+ method: "GET",
1326
+ info,
1327
+ path: "/homepage/recent-documents",
1328
+ handler: "homepage.getRecentDocuments",
1329
+ config: {
1330
+ policies: ["admin::isAuthenticatedAdmin"]
1331
+ }
1332
+ }
1333
+ ];
1321
1334
  const routes$1 = {
1322
1335
  admin: {
1323
1336
  type: "admin",
@@ -1330,7 +1343,8 @@ const routes$1 = {
1330
1343
  ...webhooks$1,
1331
1344
  ...apiTokens,
1332
1345
  ...contentApi$1,
1333
- ...transfer$2
1346
+ ...transfer$2,
1347
+ ...homepage
1334
1348
  ]
1335
1349
  }
1336
1350
  };
@@ -1488,16 +1502,16 @@ const checkFieldsDontHaveDuplicates = (fields) => {
1488
1502
  const getActionFromProvider = (actionId) => {
1489
1503
  return getService$1("permission").actionProvider.get(actionId);
1490
1504
  };
1491
- const email = yup.string().email().lowercase();
1492
- const firstname = yup.string().trim().min(1);
1493
- const lastname = yup.string();
1494
- const username = yup.string().min(1);
1495
- const password = yup.string().min(8).matches(/[a-z]/, "${path} must contain at least one lowercase character").matches(/[A-Z]/, "${path} must contain at least one uppercase character").matches(/\d/, "${path} must contain at least one number");
1496
- const roles = yup.array(yup.strapiID()).min(1);
1497
- const isAPluginName = yup.string().test("is-a-plugin-name", "is not a plugin name", function(value) {
1505
+ const email = yup$1.string().email().lowercase();
1506
+ const firstname = yup$1.string().trim().min(1);
1507
+ const lastname = yup$1.string();
1508
+ const username = yup$1.string().min(1);
1509
+ const password = yup$1.string().min(8).matches(/[a-z]/, "${path} must contain at least one lowercase character").matches(/[A-Z]/, "${path} must contain at least one uppercase character").matches(/\d/, "${path} must contain at least one number");
1510
+ const roles = yup$1.array(yup$1.strapiID()).min(1);
1511
+ const isAPluginName = yup$1.string().test("is-a-plugin-name", "is not a plugin name", function(value) {
1498
1512
  return [void 0, "admin", ...Object.keys(strapi.plugins)].includes(value) ? true : this.createError({ path: this.path, message: `${this.path} is not an existing plugin` });
1499
1513
  });
1500
- const arrayOfConditionNames = yup.array().of(yup.string()).test("is-an-array-of-conditions", "is not a plugin name", function(value) {
1514
+ const arrayOfConditionNames = yup$1.array().of(yup$1.string()).test("is-an-array-of-conditions", "is not a plugin name", function(value) {
1501
1515
  const ids = strapi.service("admin::permission").conditionProvider.keys();
1502
1516
  return ___default.isUndefined(value) || ___default.difference(value, ids).length === 0 ? true : this.createError({ path: this.path, message: `contains conditions that don't exist` });
1503
1517
  });
@@ -1511,7 +1525,7 @@ const checkNilFields = (action2) => function(fields) {
1511
1525
  }
1512
1526
  return actionDomain.appliesToProperty("fields", action2) || isNil(fields);
1513
1527
  };
1514
- const fieldsPropertyValidation = (action2) => yup.array().of(yup.string()).nullable().test(
1528
+ const fieldsPropertyValidation = (action2) => yup$1.array().of(yup$1.string()).nullable().test(
1515
1529
  "field-nested",
1516
1530
  "Fields format are incorrect (bad nesting).",
1517
1531
  checkFieldsAreCorrectlyNested
@@ -1525,15 +1539,15 @@ const fieldsPropertyValidation = (action2) => yup.array().of(yup.string()).nulla
1525
1539
  // @ts-expect-error yup types
1526
1540
  checkNilFields(action2)
1527
1541
  );
1528
- const permission$3 = yup.object().shape({
1529
- action: yup.string().required().test("action-validity", "action is not an existing permission action", function(actionId) {
1542
+ const permission$3 = yup$1.object().shape({
1543
+ action: yup$1.string().required().test("action-validity", "action is not an existing permission action", function(actionId) {
1530
1544
  if (isNil(actionId)) {
1531
1545
  return true;
1532
1546
  }
1533
1547
  return !!getActionFromProvider(actionId);
1534
1548
  }),
1535
- actionParameters: yup.object().nullable(),
1536
- subject: yup.string().nullable().test("subject-validity", "Invalid subject submitted", function(subject2) {
1549
+ actionParameters: yup$1.object().nullable(),
1550
+ subject: yup$1.string().nullable().test("subject-validity", "Invalid subject submitted", function(subject2) {
1537
1551
  const action2 = getActionFromProvider(this.options.parent.action);
1538
1552
  if (!action2) {
1539
1553
  return true;
@@ -1546,7 +1560,7 @@ const permission$3 = yup.object().shape({
1546
1560
  }
1547
1561
  return false;
1548
1562
  }),
1549
- properties: yup.object().test("properties-structure", "Invalid property set at ${path}", function(properties) {
1563
+ properties: yup$1.object().test("properties-structure", "Invalid property set at ${path}", function(properties) {
1550
1564
  const action2 = getActionFromProvider(this.options.parent.action);
1551
1565
  const hasNoProperties = isEmpty(properties) || isNil(properties);
1552
1566
  if (!has("options.applyToProperties", action2)) {
@@ -1585,10 +1599,10 @@ const permission$3 = yup.object().shape({
1585
1599
  }
1586
1600
  }
1587
1601
  ),
1588
- conditions: yup.array().of(yup.string())
1602
+ conditions: yup$1.array().of(yup$1.string())
1589
1603
  }).noUnknown();
1590
- const updatePermissions = yup.object().shape({
1591
- permissions: yup.array().required().of(permission$3).test(
1604
+ const updatePermissions = yup$1.object().shape({
1605
+ permissions: yup$1.array().required().of(permission$3).test(
1592
1606
  "duplicated-permissions",
1593
1607
  "Some permissions are duplicated (same action and subject)",
1594
1608
  checkNoDuplicatedPermissions
@@ -1899,12 +1913,12 @@ const permissionDomain = {
1899
1913
  setProperty,
1900
1914
  toPermission
1901
1915
  };
1902
- const checkPermissionsSchema = yup.object().shape({
1903
- permissions: yup.array().of(
1904
- yup.object().shape({
1905
- action: yup.string().required(),
1906
- subject: yup.string().nullable(),
1907
- field: yup.string()
1916
+ const checkPermissionsSchema = yup$1.object().shape({
1917
+ permissions: yup$1.array().of(
1918
+ yup$1.object().shape({
1919
+ action: yup$1.string().required(),
1920
+ subject: yup$1.string().nullable(),
1921
+ field: yup$1.string()
1908
1922
  }).noUnknown()
1909
1923
  )
1910
1924
  });
@@ -1923,9 +1937,9 @@ const checkPermissionsExist = function(permissions2) {
1923
1937
  })
1924
1938
  );
1925
1939
  };
1926
- const actionsExistSchema = yup.array().of(
1927
- yup.object().shape({
1928
- conditions: yup.array().of(yup.string())
1940
+ const actionsExistSchema = yup$1.array().of(
1941
+ yup$1.object().shape({
1942
+ conditions: yup$1.array().of(yup$1.string())
1929
1943
  })
1930
1944
  ).test("actions-exist", "", checkPermissionsExist);
1931
1945
  const validatePermissionsExist = validateYupSchema(actionsExistSchema);
@@ -2322,37 +2336,37 @@ const token$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
2322
2336
  decodeJwtToken,
2323
2337
  getTokenOptions
2324
2338
  }, Symbol.toStringTag, { value: "Module" }));
2325
- const registerProviderActionSchema = yup.array().required().of(
2326
- yup.object().shape({
2327
- uid: yup.string().matches(
2339
+ const registerProviderActionSchema = yup$1.array().required().of(
2340
+ yup$1.object().shape({
2341
+ uid: yup$1.string().matches(
2328
2342
  /^[a-z]([a-z|.|-]+)[a-z]$/,
2329
2343
  (v) => `${v.path}: The id can only contain lowercase letters, dots and hyphens.`
2330
2344
  ).required(),
2331
- section: yup.string().oneOf(["contentTypes", "plugins", "settings", "internal"]).required(),
2332
- pluginName: yup.mixed().when("section", {
2345
+ section: yup$1.string().oneOf(["contentTypes", "plugins", "settings", "internal"]).required(),
2346
+ pluginName: yup$1.mixed().when("section", {
2333
2347
  is: "plugins",
2334
2348
  then: validators.isAPluginName.required(),
2335
2349
  otherwise: validators.isAPluginName
2336
2350
  }),
2337
- subjects: yup.mixed().when("section", {
2351
+ subjects: yup$1.mixed().when("section", {
2338
2352
  is: "contentTypes",
2339
- then: yup.array().of(yup.string()).required(),
2340
- otherwise: yup.mixed().oneOf([void 0], 'subjects should only be defined for the "contentTypes" section')
2353
+ then: yup$1.array().of(yup$1.string()).required(),
2354
+ otherwise: yup$1.mixed().oneOf([void 0], 'subjects should only be defined for the "contentTypes" section')
2341
2355
  }),
2342
- displayName: yup.string().required(),
2343
- category: yup.mixed().when("section", {
2356
+ displayName: yup$1.string().required(),
2357
+ category: yup$1.mixed().when("section", {
2344
2358
  is: "settings",
2345
- then: yup.string().required(),
2346
- otherwise: yup.mixed().test(
2359
+ then: yup$1.string().required(),
2360
+ otherwise: yup$1.mixed().test(
2347
2361
  "settingsCategory",
2348
2362
  'category should only be defined for the "settings" section',
2349
2363
  (cat) => cat === void 0
2350
2364
  )
2351
2365
  }),
2352
- subCategory: yup.mixed().when("section", {
2366
+ subCategory: yup$1.mixed().when("section", {
2353
2367
  is: (section) => ["settings", "plugins"].includes(section),
2354
- then: yup.string(),
2355
- otherwise: yup.mixed().test(
2368
+ then: yup$1.string(),
2369
+ otherwise: yup$1.mixed().test(
2356
2370
  "settingsSubCategory",
2357
2371
  'subCategory should only be defined for "plugins" and "settings" sections',
2358
2372
  (subCat) => {
@@ -2360,13 +2374,13 @@ const registerProviderActionSchema = yup.array().required().of(
2360
2374
  }
2361
2375
  )
2362
2376
  }),
2363
- options: yup.object({
2364
- applyToProperties: yup.array().of(yup.string())
2377
+ options: yup$1.object({
2378
+ applyToProperties: yup$1.array().of(yup$1.string())
2365
2379
  }),
2366
- aliases: yup.array(
2367
- yup.object({
2368
- actionId: yup.string(),
2369
- subjects: yup.array(yup.string()).nullable()
2380
+ aliases: yup$1.array(
2381
+ yup$1.object({
2382
+ actionId: yup$1.string(),
2383
+ subjects: yup$1.array(yup$1.string()).nullable()
2370
2384
  })
2371
2385
  ).nullable()
2372
2386
  }).noUnknown()
@@ -4086,6 +4100,144 @@ const projectSettings = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.def
4086
4100
  parseFilesData,
4087
4101
  updateProjectSettings: updateProjectSettings$1
4088
4102
  }, Symbol.toStringTag, { value: "Module" }));
4103
+ const createHomepageService = ({ strapi: strapi2 }) => {
4104
+ const MAX_DOCUMENTS = 4;
4105
+ const metadataService = strapi2.plugin("content-manager").service("document-metadata");
4106
+ const permissionService = strapi2.admin.services.permission;
4107
+ const getConfiguration = async (contentTypeUids) => {
4108
+ const coreStore = strapi2.db.query("strapi::core-store");
4109
+ const rawConfigurations = await coreStore.findMany({
4110
+ where: {
4111
+ key: {
4112
+ $in: contentTypeUids.map(
4113
+ (contentType2) => `plugin_content_manager_configuration_content_types::${contentType2}`
4114
+ )
4115
+ }
4116
+ }
4117
+ });
4118
+ return rawConfigurations.map((rawConfiguration) => {
4119
+ return JSON.parse(rawConfiguration.value);
4120
+ });
4121
+ };
4122
+ const getPermittedContentTypes = async () => {
4123
+ const readPermissions = await permissionService.findMany({
4124
+ where: {
4125
+ role: { users: { id: strapi2.requestContext.get()?.state?.user.id } },
4126
+ action: "plugin::content-manager.explorer.read"
4127
+ }
4128
+ });
4129
+ return readPermissions.map((permission2) => permission2.subject).filter(Boolean);
4130
+ };
4131
+ const getDocumentsMetaData = (allowedContentTypeUids, configurations) => {
4132
+ return allowedContentTypeUids.map((uid) => {
4133
+ const configuration = configurations.find((config2) => config2.uid === uid);
4134
+ const contentType2 = strapi2.contentType(uid);
4135
+ const fields = ["documentId", "updatedAt"];
4136
+ const hasDraftAndPublish = contentTypes$1.hasDraftAndPublish(contentType2);
4137
+ if (hasDraftAndPublish) {
4138
+ fields.push("publishedAt");
4139
+ }
4140
+ if (configuration?.settings.mainField) {
4141
+ fields.push(configuration.settings.mainField);
4142
+ }
4143
+ const isLocalized = contentType2.pluginOptions?.i18n?.localized;
4144
+ if (isLocalized) {
4145
+ fields.push("locale");
4146
+ }
4147
+ return {
4148
+ fields,
4149
+ mainField: configuration.settings.mainField,
4150
+ contentType: contentType2,
4151
+ hasDraftAndPublish,
4152
+ uid
4153
+ };
4154
+ });
4155
+ };
4156
+ const formatDocuments = (documents, meta) => {
4157
+ return documents.map((document) => {
4158
+ return {
4159
+ documentId: document.documentId,
4160
+ locale: document.locale ?? null,
4161
+ updatedAt: new Date(document.updatedAt),
4162
+ title: document[meta.mainField ?? "documentId"],
4163
+ publishedAt: meta.hasDraftAndPublish && document.publishedAt ? new Date(document.publishedAt) : null,
4164
+ contentTypeUid: meta.uid,
4165
+ contentTypeDisplayName: meta.contentType.info.displayName,
4166
+ kind: meta.contentType.kind
4167
+ };
4168
+ });
4169
+ };
4170
+ const addStatusToDocuments = async (documents) => {
4171
+ return Promise.all(
4172
+ documents.map(async (recentDocument) => {
4173
+ const hasDraftAndPublish = contentTypes$1.hasDraftAndPublish(
4174
+ strapi2.contentType(recentDocument.contentTypeUid)
4175
+ );
4176
+ const { availableStatus } = await metadataService.getMetadata(
4177
+ recentDocument.contentTypeUid,
4178
+ recentDocument,
4179
+ {
4180
+ availableStatus: hasDraftAndPublish,
4181
+ availableLocales: false
4182
+ }
4183
+ );
4184
+ const status = metadataService.getStatus(
4185
+ recentDocument,
4186
+ availableStatus
4187
+ );
4188
+ return {
4189
+ ...recentDocument,
4190
+ status: hasDraftAndPublish ? status : void 0
4191
+ };
4192
+ })
4193
+ );
4194
+ };
4195
+ return {
4196
+ async getRecentlyPublishedDocuments() {
4197
+ const permittedContentTypes = await getPermittedContentTypes();
4198
+ const allowedContentTypeUids = permittedContentTypes.filter((uid) => {
4199
+ return contentTypes$1.hasDraftAndPublish(strapi2.contentType(uid));
4200
+ });
4201
+ const configurations = await getConfiguration(allowedContentTypeUids);
4202
+ const documentsMeta = getDocumentsMetaData(allowedContentTypeUids, configurations);
4203
+ const recentDocuments = await Promise.all(
4204
+ documentsMeta.map(async (meta) => {
4205
+ const docs = await strapi2.documents(meta.uid).findMany({
4206
+ limit: MAX_DOCUMENTS,
4207
+ sort: "publishedAt:desc",
4208
+ fields: meta.fields,
4209
+ status: "published"
4210
+ });
4211
+ return formatDocuments(docs, meta);
4212
+ })
4213
+ );
4214
+ const overallRecentDocuments = recentDocuments.flat().sort((a, b) => {
4215
+ if (!a.publishedAt || !b.publishedAt) return 0;
4216
+ return b.publishedAt.valueOf() - a.publishedAt.valueOf();
4217
+ }).slice(0, MAX_DOCUMENTS);
4218
+ return addStatusToDocuments(overallRecentDocuments);
4219
+ },
4220
+ async getRecentlyUpdatedDocuments() {
4221
+ const allowedContentTypeUids = await getPermittedContentTypes();
4222
+ const configurations = await getConfiguration(allowedContentTypeUids);
4223
+ const documentsMeta = getDocumentsMetaData(allowedContentTypeUids, configurations);
4224
+ const recentDocuments = await Promise.all(
4225
+ documentsMeta.map(async (meta) => {
4226
+ const docs = await strapi2.documents(meta.uid).findMany({
4227
+ limit: MAX_DOCUMENTS,
4228
+ sort: "updatedAt:desc",
4229
+ fields: meta.fields
4230
+ });
4231
+ return formatDocuments(docs, meta);
4232
+ })
4233
+ );
4234
+ const overallRecentDocuments = recentDocuments.flat().sort((a, b) => {
4235
+ return b.updatedAt.valueOf() - a.updatedAt.valueOf();
4236
+ }).slice(0, MAX_DOCUMENTS);
4237
+ return addStatusToDocuments(overallRecentDocuments);
4238
+ }
4239
+ };
4240
+ };
4089
4241
  const services$1 = {
4090
4242
  auth: auth$1,
4091
4243
  user: user$3,
@@ -4100,7 +4252,8 @@ const services$1 = {
4100
4252
  action,
4101
4253
  "api-token": apiToken$2,
4102
4254
  transfer: transfer$1,
4103
- "project-settings": projectSettings
4255
+ "project-settings": projectSettings,
4256
+ homepage: createHomepageService
4104
4257
  };
4105
4258
  const MAX_IMAGE_WIDTH = 750;
4106
4259
  const MAX_IMAGE_HEIGHT = MAX_IMAGE_WIDTH;
@@ -4255,18 +4408,18 @@ const admin$3 = {
4255
4408
  ctx.send({ plugins: plugins2 });
4256
4409
  }
4257
4410
  };
4258
- const apiTokenCreationSchema = yup.object().shape({
4259
- name: yup.string().min(1).required(),
4260
- description: yup.string().optional(),
4261
- type: yup.string().oneOf(Object.values(constants$3.API_TOKEN_TYPE)).required(),
4262
- permissions: yup.array().of(yup.string()).nullable(),
4263
- lifespan: yup.number().min(1).oneOf(Object.values(constants$3.API_TOKEN_LIFESPANS)).nullable()
4411
+ const apiTokenCreationSchema = yup$1.object().shape({
4412
+ name: yup$1.string().min(1).required(),
4413
+ description: yup$1.string().optional(),
4414
+ type: yup$1.string().oneOf(Object.values(constants$3.API_TOKEN_TYPE)).required(),
4415
+ permissions: yup$1.array().of(yup$1.string()).nullable(),
4416
+ lifespan: yup$1.number().min(1).oneOf(Object.values(constants$3.API_TOKEN_LIFESPANS)).nullable()
4264
4417
  }).noUnknown().strict();
4265
- const apiTokenUpdateSchema = yup.object().shape({
4266
- name: yup.string().min(1).notNull(),
4267
- description: yup.string().nullable(),
4268
- type: yup.string().oneOf(Object.values(constants$3.API_TOKEN_TYPE)).notNull(),
4269
- permissions: yup.array().of(yup.string()).nullable()
4418
+ const apiTokenUpdateSchema = yup$1.object().shape({
4419
+ name: yup$1.string().min(1).notNull(),
4420
+ description: yup$1.string().nullable(),
4421
+ type: yup$1.string().oneOf(Object.values(constants$3.API_TOKEN_TYPE)).notNull(),
4422
+ permissions: yup$1.array().of(yup$1.string()).nullable()
4270
4423
  }).noUnknown().strict();
4271
4424
  const validateApiTokenCreationInput = validateYupSchema(apiTokenCreationSchema);
4272
4425
  const validateApiTokenUpdateInput = validateYupSchema(apiTokenUpdateSchema);
@@ -4353,36 +4506,36 @@ const apiToken$1 = {
4353
4506
  ctx.send({ data: layout });
4354
4507
  }
4355
4508
  };
4356
- const userCreationSchema = yup.object().shape({
4509
+ const userCreationSchema = yup$1.object().shape({
4357
4510
  email: validators.email.required(),
4358
4511
  firstname: validators.firstname.required(),
4359
4512
  lastname: validators.lastname,
4360
4513
  roles: validators.roles.min(1),
4361
- preferedLanguage: yup.string().nullable()
4514
+ preferedLanguage: yup$1.string().nullable()
4362
4515
  }).noUnknown();
4363
- const profileUpdateSchema = yup.object().shape({
4516
+ const profileUpdateSchema = yup$1.object().shape({
4364
4517
  email: validators.email.notNull(),
4365
4518
  firstname: validators.firstname.notNull(),
4366
4519
  lastname: validators.lastname.nullable(),
4367
4520
  username: validators.username.nullable(),
4368
4521
  password: validators.password.notNull(),
4369
- currentPassword: yup.string().when(
4522
+ currentPassword: yup$1.string().when(
4370
4523
  "password",
4371
4524
  (password2, schema) => !isUndefined(password2) ? schema.required() : schema
4372
4525
  ).notNull(),
4373
- preferedLanguage: yup.string().nullable()
4526
+ preferedLanguage: yup$1.string().nullable()
4374
4527
  }).noUnknown();
4375
- const userUpdateSchema = yup.object().shape({
4528
+ const userUpdateSchema = yup$1.object().shape({
4376
4529
  email: validators.email.notNull(),
4377
4530
  firstname: validators.firstname.notNull(),
4378
4531
  lastname: validators.lastname.nullable(),
4379
4532
  username: validators.username.nullable(),
4380
4533
  password: validators.password.notNull(),
4381
- isActive: yup.bool().notNull(),
4534
+ isActive: yup$1.bool().notNull(),
4382
4535
  roles: validators.roles.min(1).notNull()
4383
4536
  }).noUnknown();
4384
- const usersDeleteSchema = yup.object().shape({
4385
- ids: yup.array().of(yup.strapiID()).min(1).required()
4537
+ const usersDeleteSchema = yup$1.object().shape({
4538
+ ids: yup$1.array().of(yup$1.strapiID()).min(1).required()
4386
4539
  }).noUnknown();
4387
4540
  const validateUserCreationInput$1 = validateYupSchema(userCreationSchema);
4388
4541
  const validateProfileUpdateInput = validateYupSchema(profileUpdateSchema);
@@ -4429,18 +4582,18 @@ const authenticatedUser = {
4429
4582
  };
4430
4583
  }
4431
4584
  };
4432
- const registrationSchema = yup.object().shape({
4433
- registrationToken: yup.string().required(),
4434
- userInfo: yup.object().shape({
4585
+ const registrationSchema = yup$1.object().shape({
4586
+ registrationToken: yup$1.string().required(),
4587
+ userInfo: yup$1.object().shape({
4435
4588
  firstname: validators.firstname.required(),
4436
4589
  lastname: validators.lastname.nullable(),
4437
4590
  password: validators.password.required()
4438
4591
  }).required().noUnknown()
4439
4592
  }).noUnknown();
4440
- const registrationInfoQuerySchema = yup.object().shape({
4441
- registrationToken: yup.string().required()
4593
+ const registrationInfoQuerySchema = yup$1.object().shape({
4594
+ registrationToken: yup$1.string().required()
4442
4595
  }).required().noUnknown();
4443
- const adminRegistrationSchema = yup.object().shape({
4596
+ const adminRegistrationSchema = yup$1.object().shape({
4444
4597
  email: validators.email.required(),
4445
4598
  firstname: validators.firstname.required(),
4446
4599
  lastname: validators.lastname.nullable(),
@@ -4449,22 +4602,22 @@ const adminRegistrationSchema = yup.object().shape({
4449
4602
  const validateRegistrationInput = validateYupSchema(registrationSchema);
4450
4603
  const validateRegistrationInfoQuery = validateYupSchema(registrationInfoQuerySchema);
4451
4604
  const validateAdminRegistrationInput = validateYupSchema(adminRegistrationSchema);
4452
- const forgotPasswordSchema = yup.object().shape({
4605
+ const forgotPasswordSchema = yup$1.object().shape({
4453
4606
  email: validators.email.required()
4454
4607
  }).required().noUnknown();
4455
4608
  const validateForgotPasswordInput = validateYupSchema(forgotPasswordSchema);
4456
- const resetPasswordSchema = yup.object().shape({
4457
- resetPasswordToken: yup.string().required(),
4609
+ const resetPasswordSchema = yup$1.object().shape({
4610
+ resetPasswordToken: yup$1.string().required(),
4458
4611
  password: validators.password.required()
4459
4612
  }).required().noUnknown();
4460
4613
  const validateResetPasswordInput = validateYupSchema(resetPasswordSchema);
4461
- const renewToken = yup.object().shape({ token: yup.string().required() }).required().noUnknown();
4614
+ const renewToken = yup$1.object().shape({ token: yup$1.string().required() }).required().noUnknown();
4462
4615
  const validateRenewTokenInput = validateYupSchema(renewToken);
4463
4616
  const { ApplicationError: ApplicationError$6, ValidationError: ValidationError$2 } = errors;
4464
4617
  const authentication$1 = {
4465
4618
  login: compose([
4466
4619
  (ctx, next) => {
4467
- return passport$2.authenticate("local", { session: false }, (err, user2, info) => {
4620
+ return passport$2.authenticate("local", { session: false }, (err, user2, info2) => {
4468
4621
  if (err) {
4469
4622
  strapi.eventHub.emit("admin.auth.error", { error: err, provider: "local" });
4470
4623
  if (err.details?.code === "LOGIN_NOT_ALLOWED") {
@@ -4474,10 +4627,10 @@ const authentication$1 = {
4474
4627
  }
4475
4628
  if (!user2) {
4476
4629
  strapi.eventHub.emit("admin.auth.error", {
4477
- error: new Error(info.message),
4630
+ error: new Error(info2.message),
4478
4631
  provider: "local"
4479
4632
  });
4480
- throw new ApplicationError$6(info.message);
4633
+ throw new ApplicationError$6(info2.message);
4481
4634
  }
4482
4635
  const query = ctx.state;
4483
4636
  query.user = user2;
@@ -4615,12 +4768,12 @@ const permission = {
4615
4768
  };
4616
4769
  }
4617
4770
  };
4618
- const roleCreateSchema$1 = yup.object().shape({
4619
- name: yup.string().min(1).required(),
4620
- description: yup.string().nullable()
4771
+ const roleCreateSchema$1 = yup$1.object().shape({
4772
+ name: yup$1.string().min(1).required(),
4773
+ description: yup$1.string().nullable()
4621
4774
  }).noUnknown();
4622
- const rolesDeleteSchema$1 = yup.object().shape({
4623
- ids: yup.array().of(yup.strapiID()).min(1).required().test("roles-deletion-checks", "Roles deletion checks have failed", async function(ids) {
4775
+ const rolesDeleteSchema$1 = yup$1.object().shape({
4776
+ ids: yup$1.array().of(yup$1.strapiID()).min(1).required().test("roles-deletion-checks", "Roles deletion checks have failed", async function(ids) {
4624
4777
  try {
4625
4778
  await strapi.service("admin::role").checkRolesIdForDeletion(ids);
4626
4779
  } catch (e) {
@@ -4629,7 +4782,7 @@ const rolesDeleteSchema$1 = yup.object().shape({
4629
4782
  return true;
4630
4783
  })
4631
4784
  }).noUnknown();
4632
- const roleDeleteSchema$1 = yup.strapiID().required().test("no-admin-single-delete", "Role deletion checks have failed", async function(id) {
4785
+ const roleDeleteSchema$1 = yup$1.strapiID().required().test("no-admin-single-delete", "Role deletion checks have failed", async function(id) {
4633
4786
  try {
4634
4787
  await strapi.service("admin::role").checkRolesIdForDeletion([id]);
4635
4788
  } catch (e) {
@@ -4637,9 +4790,9 @@ const roleDeleteSchema$1 = yup.strapiID().required().test("no-admin-single-delet
4637
4790
  }
4638
4791
  return true;
4639
4792
  });
4640
- const roleUpdateSchema = yup.object().shape({
4641
- name: yup.string().min(1),
4642
- description: yup.string().nullable()
4793
+ const roleUpdateSchema = yup$1.object().shape({
4794
+ name: yup$1.string().min(1),
4795
+ description: yup$1.string().nullable()
4643
4796
  }).noUnknown();
4644
4797
  const validateRoleCreateInput$1 = validateYupSchema(roleCreateSchema$1);
4645
4798
  const validateRoleUpdateInput = validateYupSchema(roleUpdateSchema);
@@ -4806,16 +4959,16 @@ const runner = {
4806
4959
  push,
4807
4960
  pull
4808
4961
  };
4809
- const transferTokenCreationSchema = yup.object().shape({
4810
- name: yup.string().min(1).required(),
4811
- description: yup.string().optional(),
4812
- permissions: yup.array().min(1).of(yup.string().oneOf(Object.values(constants$3.TRANSFER_TOKEN_TYPE))).required(),
4813
- lifespan: yup.number().min(1).oneOf(Object.values(constants$3.TRANSFER_TOKEN_LIFESPANS)).nullable()
4962
+ const transferTokenCreationSchema = yup$1.object().shape({
4963
+ name: yup$1.string().min(1).required(),
4964
+ description: yup$1.string().optional(),
4965
+ permissions: yup$1.array().min(1).of(yup$1.string().oneOf(Object.values(constants$3.TRANSFER_TOKEN_TYPE))).required(),
4966
+ lifespan: yup$1.number().min(1).oneOf(Object.values(constants$3.TRANSFER_TOKEN_LIFESPANS)).nullable()
4814
4967
  }).noUnknown().strict();
4815
- const transferTokenUpdateSchema = yup.object().shape({
4816
- name: yup.string().min(1).notNull(),
4817
- description: yup.string().nullable(),
4818
- permissions: yup.array().min(1).of(yup.string().oneOf(Object.values(constants$3.TRANSFER_TOKEN_TYPE))).nullable()
4968
+ const transferTokenUpdateSchema = yup$1.object().shape({
4969
+ name: yup$1.string().min(1).notNull(),
4970
+ description: yup$1.string().nullable(),
4971
+ permissions: yup$1.array().min(1).of(yup$1.string().oneOf(Object.values(constants$3.TRANSFER_TOKEN_TYPE))).nullable()
4819
4972
  }).noUnknown().strict();
4820
4973
  const validateTransferTokenCreationInput$1 = validateYupSchema(transferTokenCreationSchema);
4821
4974
  const validateTransferTokenUpdateInput$1 = validateYupSchema(transferTokenUpdateSchema);
@@ -5002,9 +5155,9 @@ const user$2 = {
5002
5155
  }
5003
5156
  };
5004
5157
  const urlRegex = /^(?:([a-z0-9+.-]+):\/\/)(?:\S+(?::\S*)?@)?(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9_]-*)*[a-z\u00a1-\uffff0-9_]+)(?:\.(?:[a-z\u00a1-\uffff0-9_]-*)*[a-z\u00a1-\uffff0-9_]+)*\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/;
5005
- const webhookValidator = yup.object({
5006
- name: yup.string().required(),
5007
- url: yup.string().matches(urlRegex, "url must be a valid URL").required().test(
5158
+ const webhookValidator = yup$1.object({
5159
+ name: yup$1.string().required(),
5160
+ url: yup$1.string().matches(urlRegex, "url must be a valid URL").required().test(
5008
5161
  "is-public-url",
5009
5162
  "Url is not supported because it isn't reachable over the public internet",
5010
5163
  async (url) => {
@@ -5020,21 +5173,21 @@ const webhookValidator = yup.object({
5020
5173
  }
5021
5174
  }
5022
5175
  ),
5023
- headers: yup.lazy((data) => {
5176
+ headers: yup$1.lazy((data) => {
5024
5177
  if (typeof data !== "object") {
5025
- return yup.object().required();
5178
+ return yup$1.object().required();
5026
5179
  }
5027
- return yup.object(
5180
+ return yup$1.object(
5028
5181
  // @ts-expect-error lodash types
5029
5182
  ___default.mapValues(data, () => {
5030
- yup.string().min(1).required();
5183
+ yup$1.string().min(1).required();
5031
5184
  })
5032
5185
  ).required();
5033
5186
  }),
5034
- events: yup.array().of(yup.string()).required()
5187
+ events: yup$1.array().of(yup$1.string()).required()
5035
5188
  }).noUnknown();
5036
5189
  const updateWebhookValidator = webhookValidator.shape({
5037
- isEnabled: yup.boolean()
5190
+ isEnabled: yup$1.boolean()
5038
5191
  });
5039
5192
  const webhooks = {
5040
5193
  async listWebhooks(ctx) {
@@ -5115,6 +5268,29 @@ const contentApi = {
5115
5268
  ctx.send({ data: routesMap });
5116
5269
  }
5117
5270
  };
5271
+ const createHomepageController = () => {
5272
+ const homepageService = getService$1("homepage");
5273
+ const recentDocumentParamsSchema = yup.object().shape({
5274
+ action: yup.mixed().oneOf(["update", "publish"]).required()
5275
+ });
5276
+ return {
5277
+ async getRecentDocuments(ctx) {
5278
+ let action2;
5279
+ try {
5280
+ action2 = (await recentDocumentParamsSchema.validate(ctx.query)).action;
5281
+ } catch (error) {
5282
+ if (error instanceof yup.ValidationError) {
5283
+ throw new errors.ValidationError(error.message);
5284
+ }
5285
+ throw error;
5286
+ }
5287
+ if (action2 === "publish") {
5288
+ return { data: await homepageService.getRecentlyPublishedDocuments() };
5289
+ }
5290
+ return { data: await homepageService.getRecentlyUpdatedDocuments() };
5291
+ }
5292
+ };
5293
+ };
5118
5294
  const controllers$1 = {
5119
5295
  admin: admin$3,
5120
5296
  "api-token": apiToken$1,
@@ -5125,7 +5301,8 @@ const controllers$1 = {
5125
5301
  transfer,
5126
5302
  user: user$2,
5127
5303
  webhooks,
5128
- "content-api": contentApi
5304
+ "content-api": contentApi,
5305
+ homepage: createHomepageController
5129
5306
  };
5130
5307
  const Permission = {
5131
5308
  collectionName: "admin_permissions",
@@ -6168,9 +6345,9 @@ const services = {
6168
6345
  "seat-enforcement": seatEnforcement,
6169
6346
  "persist-tables": persistTables$1
6170
6347
  };
6171
- const providerOptionsUpdateSchema = yup.object().shape({
6172
- autoRegister: yup.boolean().required(),
6173
- defaultRole: yup.strapiID().when("autoRegister", (value, initSchema) => {
6348
+ const providerOptionsUpdateSchema = yup$1.object().shape({
6349
+ autoRegister: yup$1.boolean().required(),
6350
+ defaultRole: yup$1.strapiID().when("autoRegister", (value, initSchema) => {
6174
6351
  return value ? initSchema.required() : initSchema.nullable();
6175
6352
  }).test("is-valid-role", "You must submit a valid default role", (roleId) => {
6176
6353
  if (roleId === null) {
@@ -6178,8 +6355,8 @@ const providerOptionsUpdateSchema = yup.object().shape({
6178
6355
  }
6179
6356
  return strapi.service("admin::role").exists({ id: roleId });
6180
6357
  }),
6181
- ssoLockedRoles: yup.array().nullable().of(
6182
- yup.strapiID().test(
6358
+ ssoLockedRoles: yup$1.array().nullable().of(
6359
+ yup$1.strapiID().test(
6183
6360
  "is-valid-role",
6184
6361
  "You must submit a valid role for the SSO Locked roles",
6185
6362
  (roleId) => {
@@ -6333,12 +6510,12 @@ const authentication = {
6333
6510
  return providerAuthenticationFlow(ctx, next);
6334
6511
  }
6335
6512
  };
6336
- const roleCreateSchema = yup.object().shape({
6337
- name: yup.string().min(1).required(),
6338
- description: yup.string().nullable()
6513
+ const roleCreateSchema = yup$1.object().shape({
6514
+ name: yup$1.string().min(1).required(),
6515
+ description: yup$1.string().nullable()
6339
6516
  }).noUnknown();
6340
- const rolesDeleteSchema = yup.object().shape({
6341
- ids: yup.array().of(yup.strapiID()).min(1).required().test(
6517
+ const rolesDeleteSchema = yup$1.object().shape({
6518
+ ids: yup$1.array().of(yup$1.strapiID()).min(1).required().test(
6342
6519
  "roles-deletion-checks",
6343
6520
  "Roles deletion checks have failed",
6344
6521
  async function rolesDeletionChecks(ids) {
@@ -6354,7 +6531,7 @@ const rolesDeleteSchema = yup.object().shape({
6354
6531
  }
6355
6532
  )
6356
6533
  }).noUnknown();
6357
- const roleDeleteSchema = yup.strapiID().required().test(
6534
+ const roleDeleteSchema = yup$1.strapiID().required().test(
6358
6535
  "no-admin-single-delete",
6359
6536
  "Role deletion checks have failed",
6360
6537
  async function noAdminSingleDelete(id) {
@@ -6413,8 +6590,8 @@ const role = {
6413
6590
  });
6414
6591
  }
6415
6592
  };
6416
- const ssoUserCreationInputExtension = yup.object().shape({
6417
- useSSORegistration: yup.boolean()
6593
+ const ssoUserCreationInputExtension = yup$1.object().shape({
6594
+ useSSORegistration: yup$1.boolean()
6418
6595
  }).noUnknown();
6419
6596
  const validateUserCreationInput = (data) => {
6420
6597
  let schema = schemas.userCreationSchema;
@@ -6686,10 +6863,10 @@ const auditLogsRoutes = {
6686
6863
  ]
6687
6864
  };
6688
6865
  const ALLOWED_SORT_STRINGS = ["action:ASC", "action:DESC", "date:ASC", "date:DESC"];
6689
- const validateFindManySchema = yup.object().shape({
6690
- page: yup.number().integer().min(1),
6691
- pageSize: yup.number().integer().min(1).max(100),
6692
- sort: yup.mixed().oneOf(ALLOWED_SORT_STRINGS)
6866
+ const validateFindManySchema = yup$1.object().shape({
6867
+ page: yup$1.number().integer().min(1),
6868
+ pageSize: yup$1.number().integer().min(1).max(100),
6869
+ sort: yup$1.mixed().oneOf(ALLOWED_SORT_STRINGS)
6693
6870
  }).required();
6694
6871
  const validateFindMany = validateYupSchema(validateFindManySchema, { strict: false });
6695
6872
  const auditLogsController = {