@strapi/admin 5.57.0 → 5.59.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 (415) hide show
  1. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  2. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  3. package/dist/admin/admin/src/components/ConfirmDialog.js +10 -9
  4. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  5. package/dist/admin/admin/src/components/ConfirmDialog.mjs +10 -9
  6. package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
  7. package/dist/admin/admin/src/components/Filters.js +57 -12
  8. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  9. package/dist/admin/admin/src/components/Filters.mjs +57 -12
  10. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  11. package/dist/admin/admin/src/components/Form.js +3 -1
  12. package/dist/admin/admin/src/components/Form.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.mjs +3 -1
  14. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Boolean.js +3 -2
  16. package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +3 -2
  18. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +2 -1
  20. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +2 -1
  22. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/LeftMenu.js +5 -1
  24. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  25. package/dist/admin/admin/src/components/LeftMenu.mjs +5 -1
  26. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  27. package/dist/admin/admin/src/components/PageHelpers.js +2 -1
  28. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  29. package/dist/admin/admin/src/components/PageHelpers.mjs +2 -1
  30. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/Pagination.js +7 -6
  32. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  33. package/dist/admin/admin/src/components/Pagination.mjs +7 -6
  34. package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/RelativeTime.js +2 -1
  36. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  37. package/dist/admin/admin/src/components/RelativeTime.mjs +2 -1
  38. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/SubNav.js +6 -12
  40. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  41. package/dist/admin/admin/src/components/SubNav.mjs +7 -13
  42. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  43. package/dist/admin/admin/src/components/Table.js +3 -1
  44. package/dist/admin/admin/src/components/Table.js.map +1 -1
  45. package/dist/admin/admin/src/components/Table.mjs +3 -1
  46. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  47. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  48. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  50. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
  51. package/dist/admin/admin/src/constants.js +14 -0
  52. package/dist/admin/admin/src/constants.js.map +1 -1
  53. package/dist/admin/admin/src/constants.mjs +14 -0
  54. package/dist/admin/admin/src/constants.mjs.map +1 -1
  55. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  56. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  57. package/dist/admin/admin/src/features/Auth.js +2 -1
  58. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  59. package/dist/admin/admin/src/features/Auth.mjs +2 -1
  60. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  61. package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
  62. package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
  63. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  64. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  65. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +6 -12
  66. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  67. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs +6 -12
  68. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
  69. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  70. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
  71. package/dist/admin/admin/src/pages/ProfilePage.js +2 -2
  72. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  73. package/dist/admin/admin/src/pages/ProfilePage.mjs +2 -2
  74. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  75. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +10 -2
  76. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  77. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +10 -2
  78. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  79. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js +4 -1
  80. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -1
  81. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs +4 -1
  82. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -1
  83. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -1
  84. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  85. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +3 -1
  86. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  87. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js +2 -1
  88. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
  89. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs +2 -1
  90. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +6 -5
  92. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs +6 -5
  94. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -1
  96. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -1
  98. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js +4 -4
  100. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs +4 -4
  102. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +7 -58
  104. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +7 -58
  106. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js +217 -0
  108. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js.map +1 -0
  109. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs +195 -0
  110. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs.map +1 -0
  111. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  112. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js +185 -0
  114. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js.map +1 -0
  115. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs +162 -0
  116. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs.map +1 -0
  117. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js +342 -0
  118. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js.map +1 -0
  119. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs +320 -0
  120. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs.map +1 -0
  121. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +9 -4
  122. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  123. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +9 -4
  124. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  125. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +15 -9
  126. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  127. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs +15 -9
  128. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  129. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -2
  130. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  131. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +5 -2
  132. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  133. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +2 -1
  134. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  135. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs +2 -1
  136. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  137. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +2 -1
  138. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  139. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +2 -1
  140. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  141. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +2 -1
  142. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  143. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +2 -1
  144. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  145. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  146. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
  147. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +3 -1
  148. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +3 -1
  150. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  154. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  156. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +4 -1
  158. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs +4 -1
  160. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +18 -3
  162. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +18 -3
  164. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  166. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  167. package/dist/admin/admin/src/router.js.map +1 -1
  168. package/dist/admin/admin/src/router.mjs.map +1 -1
  169. package/dist/admin/admin/src/services/admin.js +11 -1
  170. package/dist/admin/admin/src/services/admin.js.map +1 -1
  171. package/dist/admin/admin/src/services/admin.mjs +11 -2
  172. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  173. package/dist/admin/admin/src/services/users.js.map +1 -1
  174. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  175. package/dist/admin/admin/src/translations/en.json.js +71 -4
  176. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  177. package/dist/admin/admin/src/translations/en.json.mjs +71 -4
  178. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  179. package/dist/admin/admin/src/translations/eu.json.js +1 -1
  180. package/dist/admin/admin/src/translations/eu.json.mjs +1 -1
  181. package/dist/admin/admin/src/utils/browserStrapi.js +1 -1
  182. package/dist/admin/admin/src/utils/browserStrapi.js.map +1 -1
  183. package/dist/admin/admin/src/utils/browserStrapi.mjs +1 -1
  184. package/dist/admin/admin/src/utils/browserStrapi.mjs.map +1 -1
  185. package/dist/admin/admin/src/utils/cookies.js +7 -6
  186. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  187. package/dist/admin/admin/src/utils/cookies.mjs +7 -6
  188. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  189. package/dist/admin/admin/src/utils/getFetchClient.js +24 -0
  190. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  191. package/dist/admin/admin/src/utils/getFetchClient.mjs +24 -1
  192. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  193. package/dist/admin/admin/tests/utils.js +2 -1
  194. package/dist/admin/admin/tests/utils.js.map +1 -1
  195. package/dist/admin/admin/tests/utils.mjs +2 -1
  196. package/dist/admin/admin/tests/utils.mjs.map +1 -1
  197. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +52 -22
  198. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  199. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +53 -23
  200. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
  201. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js +16 -29
  202. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
  203. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs +18 -31
  204. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
  205. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js +473 -0
  206. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js.map +1 -0
  207. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs +471 -0
  208. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs.map +1 -0
  209. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js +2 -0
  210. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
  211. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs +2 -0
  212. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
  213. package/dist/admin/index.js +1 -0
  214. package/dist/admin/index.js.map +1 -1
  215. package/dist/admin/index.mjs +1 -1
  216. package/dist/admin/shared/utils/auth-cookie-path.js +13 -10
  217. package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -1
  218. package/dist/admin/shared/utils/auth-cookie-path.mjs +13 -10
  219. package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -1
  220. package/dist/admin/shared/utils/get-project-type.js +49 -0
  221. package/dist/admin/shared/utils/get-project-type.js.map +1 -0
  222. package/dist/admin/shared/utils/get-project-type.mjs +46 -0
  223. package/dist/admin/shared/utils/get-project-type.mjs.map +1 -0
  224. package/dist/admin/src/components/Filters.d.ts +1 -1
  225. package/dist/admin/src/components/Form.d.ts +1 -1
  226. package/dist/admin/src/constants.d.ts +10 -0
  227. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.d.ts +1 -1
  228. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.d.ts +1 -1
  229. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.d.ts +12 -0
  230. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.d.ts +14 -0
  231. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.d.ts +2 -0
  232. package/dist/admin/src/services/admin.d.ts +2 -2
  233. package/dist/admin/src/types/permissions.d.ts +1 -0
  234. package/dist/admin/src/utils/cookies.d.ts +7 -6
  235. package/dist/admin/src/utils/getFetchClient.d.ts +25 -0
  236. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +29 -0
  237. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +6 -1
  238. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.d.ts +2 -0
  239. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.d.ts +2 -0
  240. package/dist/ee/server/src/audit-logs/entitlements.d.ts +8 -0
  241. package/dist/ee/server/src/audit-logs/entitlements.d.ts.map +1 -0
  242. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +16 -0
  243. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
  244. package/dist/ee/server/src/controllers/admin.d.ts +36 -10
  245. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  246. package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
  247. package/dist/ee/server/src/controllers/index.d.ts +36 -10
  248. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  249. package/dist/ee/server/src/index.d.ts +36 -10
  250. package/dist/ee/server/src/index.d.ts.map +1 -1
  251. package/dist/ee/server/src/services/seat-enforcement.d.ts.map +1 -1
  252. package/dist/ee/server/src/validation/role.d.ts.map +1 -1
  253. package/dist/server/ee/server/src/audit-logs/entitlements.js +25 -0
  254. package/dist/server/ee/server/src/audit-logs/entitlements.js.map +1 -0
  255. package/dist/server/ee/server/src/audit-logs/entitlements.mjs +23 -0
  256. package/dist/server/ee/server/src/audit-logs/entitlements.mjs.map +1 -0
  257. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +20 -8
  258. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
  259. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +19 -9
  260. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
  261. package/dist/server/ee/server/src/audit-logs/utils/csv.js +3 -3
  262. package/dist/server/ee/server/src/audit-logs/utils/csv.js.map +1 -1
  263. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs +3 -3
  264. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs.map +1 -1
  265. package/dist/server/ee/server/src/controllers/admin.js +76 -3
  266. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  267. package/dist/server/ee/server/src/controllers/admin.mjs +76 -3
  268. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  269. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +28 -10
  270. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  271. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +28 -10
  272. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
  273. package/dist/server/ee/server/src/index.js +2 -0
  274. package/dist/server/ee/server/src/index.js.map +1 -1
  275. package/dist/server/ee/server/src/index.mjs +2 -0
  276. package/dist/server/ee/server/src/index.mjs.map +1 -1
  277. package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
  278. package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
  279. package/dist/server/ee/server/src/validation/role.js +4 -2
  280. package/dist/server/ee/server/src/validation/role.js.map +1 -1
  281. package/dist/server/ee/server/src/validation/role.mjs +4 -2
  282. package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
  283. package/dist/server/server/src/ai/services/ai.js.map +1 -1
  284. package/dist/server/server/src/ai/services/ai.mjs.map +1 -1
  285. package/dist/server/server/src/audit-logs/auth.js +72 -0
  286. package/dist/server/server/src/audit-logs/auth.js.map +1 -0
  287. package/dist/server/server/src/audit-logs/auth.mjs +67 -0
  288. package/dist/server/server/src/audit-logs/auth.mjs.map +1 -0
  289. package/dist/server/server/src/config/admin-actions.js +7 -0
  290. package/dist/server/server/src/config/admin-actions.js.map +1 -1
  291. package/dist/server/server/src/config/admin-actions.mjs +7 -0
  292. package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
  293. package/dist/server/server/src/controllers/admin.js +17 -12
  294. package/dist/server/server/src/controllers/admin.js.map +1 -1
  295. package/dist/server/server/src/controllers/admin.mjs +17 -12
  296. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  297. package/dist/server/server/src/controllers/authentication.js +34 -8
  298. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  299. package/dist/server/server/src/controllers/authentication.mjs +34 -8
  300. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  301. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  302. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  303. package/dist/server/server/src/register.js +4 -0
  304. package/dist/server/server/src/register.js.map +1 -1
  305. package/dist/server/server/src/register.mjs +4 -0
  306. package/dist/server/server/src/register.mjs.map +1 -1
  307. package/dist/server/server/src/routes/admin.js +18 -0
  308. package/dist/server/server/src/routes/admin.js.map +1 -1
  309. package/dist/server/server/src/routes/admin.mjs +18 -0
  310. package/dist/server/server/src/routes/admin.mjs.map +1 -1
  311. package/dist/server/server/src/services/api-token.js +4 -8
  312. package/dist/server/server/src/services/api-token.js.map +1 -1
  313. package/dist/server/server/src/services/api-token.mjs +4 -8
  314. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  315. package/dist/server/server/src/services/auth.js +4 -2
  316. package/dist/server/server/src/services/auth.js.map +1 -1
  317. package/dist/server/server/src/services/auth.mjs +4 -3
  318. package/dist/server/server/src/services/auth.mjs.map +1 -1
  319. package/dist/server/server/src/services/constants.js +4 -0
  320. package/dist/server/server/src/services/constants.js.map +1 -1
  321. package/dist/server/server/src/services/constants.mjs +4 -0
  322. package/dist/server/server/src/services/constants.mjs.map +1 -1
  323. package/dist/server/server/src/services/debug-dump.js +173 -0
  324. package/dist/server/server/src/services/debug-dump.js.map +1 -0
  325. package/dist/server/server/src/services/debug-dump.mjs +166 -0
  326. package/dist/server/server/src/services/debug-dump.mjs.map +1 -0
  327. package/dist/server/server/src/services/index.js +3 -1
  328. package/dist/server/server/src/services/index.js.map +1 -1
  329. package/dist/server/server/src/services/index.mjs +3 -1
  330. package/dist/server/server/src/services/index.mjs.map +1 -1
  331. package/dist/server/server/src/services/permission/rename-fields.js.map +1 -1
  332. package/dist/server/server/src/services/permission/rename-fields.mjs.map +1 -1
  333. package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
  334. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
  335. package/dist/server/server/src/services/role.js +8 -5
  336. package/dist/server/server/src/services/role.js.map +1 -1
  337. package/dist/server/server/src/services/role.mjs +8 -5
  338. package/dist/server/server/src/services/role.mjs.map +1 -1
  339. package/dist/server/server/src/utils/debug-dump/redact.js +197 -0
  340. package/dist/server/server/src/utils/debug-dump/redact.js.map +1 -0
  341. package/dist/server/server/src/utils/debug-dump/redact.mjs +194 -0
  342. package/dist/server/server/src/utils/debug-dump/redact.mjs.map +1 -0
  343. package/dist/server/server/src/validation/admin-tokens.js +4 -4
  344. package/dist/server/server/src/validation/admin-tokens.js.map +1 -1
  345. package/dist/server/server/src/validation/admin-tokens.mjs +4 -4
  346. package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -1
  347. package/dist/server/server/src/validation/api-tokens.js +4 -4
  348. package/dist/server/server/src/validation/api-tokens.js.map +1 -1
  349. package/dist/server/server/src/validation/api-tokens.mjs +4 -4
  350. package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
  351. package/dist/server/server/src/validation/role.js +6 -4
  352. package/dist/server/server/src/validation/role.js.map +1 -1
  353. package/dist/server/server/src/validation/role.mjs +6 -4
  354. package/dist/server/server/src/validation/role.mjs.map +1 -1
  355. package/dist/server/server/src/validation/transfer/token.js +4 -4
  356. package/dist/server/server/src/validation/transfer/token.js.map +1 -1
  357. package/dist/server/server/src/validation/transfer/token.mjs +4 -4
  358. package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
  359. package/dist/server/shared/utils/auth-cookie-path.js +13 -10
  360. package/dist/server/shared/utils/auth-cookie-path.js.map +1 -1
  361. package/dist/server/shared/utils/auth-cookie-path.mjs +13 -10
  362. package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -1
  363. package/dist/server/shared/utils/get-project-type.js +49 -0
  364. package/dist/server/shared/utils/get-project-type.js.map +1 -0
  365. package/dist/server/shared/utils/get-project-type.mjs +46 -0
  366. package/dist/server/shared/utils/get-project-type.mjs.map +1 -0
  367. package/dist/server/shared/utils/session-auth.js +70 -3
  368. package/dist/server/shared/utils/session-auth.js.map +1 -1
  369. package/dist/server/shared/utils/session-auth.mjs +70 -4
  370. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  371. package/dist/server/src/ai/services/ai.d.ts.map +1 -1
  372. package/dist/server/src/audit-logs/auth.d.ts +72 -0
  373. package/dist/server/src/audit-logs/auth.d.ts.map +1 -0
  374. package/dist/server/src/config/admin-actions.d.ts.map +1 -1
  375. package/dist/server/src/controllers/admin.d.ts +3 -0
  376. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  377. package/dist/server/src/controllers/authentication.d.ts.map +1 -1
  378. package/dist/server/src/controllers/index.d.ts +3 -0
  379. package/dist/server/src/controllers/index.d.ts.map +1 -1
  380. package/dist/server/src/domain/permission/index.d.ts.map +1 -1
  381. package/dist/server/src/index.d.ts +8 -0
  382. package/dist/server/src/index.d.ts.map +1 -1
  383. package/dist/server/src/register.d.ts.map +1 -1
  384. package/dist/server/src/routes/admin.d.ts.map +1 -1
  385. package/dist/server/src/services/auth.d.ts +6 -0
  386. package/dist/server/src/services/auth.d.ts.map +1 -1
  387. package/dist/server/src/services/constants.d.ts +2 -0
  388. package/dist/server/src/services/constants.d.ts.map +1 -1
  389. package/dist/server/src/services/debug-dump.d.ts +9 -0
  390. package/dist/server/src/services/debug-dump.d.ts.map +1 -0
  391. package/dist/server/src/services/index.d.ts +5 -0
  392. package/dist/server/src/services/index.d.ts.map +1 -1
  393. package/dist/server/src/services/permission/rename-fields.d.ts.map +1 -1
  394. package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
  395. package/dist/server/src/services/role.d.ts.map +1 -1
  396. package/dist/server/src/utils/debug-dump/redact.d.ts +8 -0
  397. package/dist/server/src/utils/debug-dump/redact.d.ts.map +1 -0
  398. package/dist/server/src/validation/role.d.ts.map +1 -1
  399. package/dist/shared/contracts/admin.d.ts +106 -0
  400. package/dist/shared/contracts/admin.d.ts.map +1 -1
  401. package/dist/shared/contracts/transfer.d.ts.map +1 -1
  402. package/dist/shared/utils/__tests__/get-project-type.test.d.ts +1 -0
  403. package/dist/shared/utils/__tests__/get-project-type.test.d.ts.map +1 -0
  404. package/dist/shared/utils/auth-cookie-path.d.ts +13 -10
  405. package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -1
  406. package/dist/shared/utils/get-project-type.d.ts +37 -0
  407. package/dist/shared/utils/get-project-type.d.ts.map +1 -0
  408. package/dist/shared/utils/session-auth.d.ts +16 -0
  409. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  410. package/package.json +8 -8
  411. package/dist/admin/admin/src/utils/getProjectType.js +0 -22
  412. package/dist/admin/admin/src/utils/getProjectType.js.map +0 -1
  413. package/dist/admin/admin/src/utils/getProjectType.mjs +0 -20
  414. package/dist/admin/admin/src/utils/getProjectType.mjs.map +0 -1
  415. package/dist/admin/src/utils/getProjectType.d.ts +0 -16
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@strapi/utils');
4
+ var adminUsers = require('./admin-users.js');
5
+
6
+ /**
7
+ * Event hub events bound to the `admin.auth.events` config callbacks
8
+ * (`onConnectionError`, `onSSOAutoRegistration`). Their names and payloads are public.
9
+ */ const AUTH_EVENTS = {
10
+ LOGIN_FAILURE: 'admin.auth.error',
11
+ AUTO_REGISTRATION: 'admin.auth.autoRegistration'
12
+ };
13
+ /**
14
+ * Emits without waiting: listeners bound to the event, such as the `onConnectionError`
15
+ * config callback, run before the audit subscriber and must not hold the login.
16
+ */ const emitLoginFailure = ({ strapi }, event)=>{
17
+ utils.emitAudit({
18
+ strapi
19
+ }, AUTH_EVENTS.LOGIN_FAILURE, {
20
+ error: event.error,
21
+ provider: event.provider,
22
+ reason: event.reason,
23
+ ...event.user ? {
24
+ user: {
25
+ id: event.user.id,
26
+ email: event.user.email
27
+ }
28
+ } : {}
29
+ }).catch((error)=>{
30
+ strapi.log.error(`Failed to emit ${AUTH_EVENTS.LOGIN_FAILURE}`, {
31
+ error
32
+ });
33
+ });
34
+ };
35
+ /**
36
+ * Whether the audit log records a failed login. Not recorded: failures anyone can produce
37
+ * from outside before any verification, a local login for an email with no account and an
38
+ * SSO connection with no valid profile.
39
+ */ const isRecordedLoginFailure = (event)=>event.reason !== 'sso_connection_error' && !(event.provider === 'local' && !event.user);
40
+ const toResource = (user)=>({
41
+ type: 'admin-user',
42
+ id: user.id,
43
+ email: user.email
44
+ });
45
+ const registerAuthAuditEvents = (auditLogsLifecycle)=>{
46
+ auditLogsLifecycle.registerEvent(AUTH_EVENTS.LOGIN_FAILURE, (event)=>({
47
+ ...event.user ? {
48
+ resource: toResource(event.user)
49
+ } : {},
50
+ outcome: 'failure',
51
+ details: {
52
+ provider: event.provider,
53
+ reason: event.reason
54
+ }
55
+ }), {
56
+ alwaysUnknownActor: true,
57
+ shouldRecord: isRecordedLoginFailure
58
+ });
59
+ auditLogsLifecycle.registerEvent(AUTH_EVENTS.AUTO_REGISTRATION, (event)=>({
60
+ resource: toResource(event.user),
61
+ details: {
62
+ provider: event.provider,
63
+ roles: adminUsers.toRoleIds(event.user.roles)
64
+ }
65
+ }));
66
+ };
67
+
68
+ exports.AUTH_EVENTS = AUTH_EVENTS;
69
+ exports.emitLoginFailure = emitLoginFailure;
70
+ exports.isRecordedLoginFailure = isRecordedLoginFailure;
71
+ exports.registerAuthAuditEvents = registerAuthAuditEvents;
72
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sources":["../../../../../server/src/audit-logs/auth.ts"],"sourcesContent":["import type { Data, Modules } from '@strapi/types';\nimport { emitAudit } from '@strapi/utils';\n\nimport { toRoleIds, type AdminUserResource, type AdminUserSnapshot } from './admin-users';\n\n/**\n * Event hub events bound to the `admin.auth.events` config callbacks\n * (`onConnectionError`, `onSSOAutoRegistration`). Their names and payloads are public.\n */\nexport const AUTH_EVENTS = {\n LOGIN_FAILURE: 'admin.auth.error',\n AUTO_REGISTRATION: 'admin.auth.autoRegistration',\n} as const;\n\n/** One fixed value per emit site. */\nexport type LoginFailureReason =\n | 'login_not_allowed'\n | 'unexpected_error'\n | 'invalid_credentials'\n | 'account_inactive'\n | 'sso_connection_error'\n | 'sso_registration_disabled'\n | 'sso_role_misconfigured';\n\n/**\n * Payload of `admin.auth.error`, also passed to the `onConnectionError` callback.\n * The audit log stores `provider`, `reason` and the account, never `error`.\n */\nexport interface LoginFailureEvent {\n error: Error;\n provider: string;\n reason: LoginFailureReason;\n /** The account the login was for, when known. */\n user?: { id: Data.ID; email: string };\n}\n\n/** Payload of `admin.auth.autoRegistration`: the created `admin::user` row, roles populated. */\nexport interface AutoRegistrationEvent {\n user: { id: Data.ID; email?: string | null; roles?: AdminUserSnapshot['roles'] };\n provider: string;\n}\n\nexport interface LoginFailureDetails {\n provider: string;\n reason: LoginFailureReason;\n}\n\nexport interface AutoRegistrationDetails {\n provider: string;\n roles: Data.ID[];\n}\n\ntype AuditStrapi = Parameters<typeof emitAudit>[0]['strapi'];\n\n/**\n * Emits without waiting: listeners bound to the event, such as the `onConnectionError`\n * config callback, run before the audit subscriber and must not hold the login.\n */\nexport const emitLoginFailure = (\n { strapi }: { strapi: AuditStrapi },\n event: LoginFailureEvent\n): void => {\n emitAudit({ strapi }, AUTH_EVENTS.LOGIN_FAILURE, {\n error: event.error,\n provider: event.provider,\n reason: event.reason,\n ...(event.user ? { user: { id: event.user.id, email: event.user.email } } : {}),\n } satisfies LoginFailureEvent).catch((error) => {\n strapi.log.error(`Failed to emit ${AUTH_EVENTS.LOGIN_FAILURE}`, { error });\n });\n};\n\n/**\n * Whether the audit log records a failed login. Not recorded: failures anyone can produce\n * from outside before any verification, a local login for an email with no account and an\n * SSO connection with no valid profile.\n */\nexport const isRecordedLoginFailure = (event: LoginFailureEvent) =>\n event.reason !== 'sso_connection_error' && !(event.provider === 'local' && !event.user);\n\n/**\n * The part of the audit-logs lifecycle service used here.\n * The full service type lives in the Admin EE package.\n */\ninterface AuditLogsLifecycle {\n registerEvent<TDetails>(\n name: string,\n transform: Modules.AuditLogs.EventTransformer<TDetails>,\n options?: {\n allowUnknownActor?: boolean;\n alwaysUnknownActor?: boolean;\n shouldRecord?: (...args: any[]) => boolean;\n }\n ): void;\n}\n\nconst toResource = (user: { id: Data.ID; email?: string | null }): AdminUserResource => ({\n type: 'admin-user',\n id: user.id,\n email: user.email as string,\n});\n\nexport const registerAuthAuditEvents = (auditLogsLifecycle: AuditLogsLifecycle) => {\n auditLogsLifecycle.registerEvent<LoginFailureDetails>(\n AUTH_EVENTS.LOGIN_FAILURE,\n (event: LoginFailureEvent) => ({\n ...(event.user ? { resource: toResource(event.user) } : {}),\n outcome: 'failure',\n details: { provider: event.provider, reason: event.reason },\n }),\n { alwaysUnknownActor: true, shouldRecord: isRecordedLoginFailure }\n );\n\n auditLogsLifecycle.registerEvent<AutoRegistrationDetails>(\n AUTH_EVENTS.AUTO_REGISTRATION,\n (event: AutoRegistrationEvent) => ({\n resource: toResource(event.user),\n details: { provider: event.provider, roles: toRoleIds(event.user.roles) },\n })\n );\n};\n"],"names":["AUTH_EVENTS","LOGIN_FAILURE","AUTO_REGISTRATION","emitLoginFailure","strapi","event","emitAudit","error","provider","reason","user","id","email","catch","log","isRecordedLoginFailure","toResource","type","registerAuthAuditEvents","auditLogsLifecycle","registerEvent","resource","outcome","details","alwaysUnknownActor","shouldRecord","roles","toRoleIds"],"mappings":";;;;;AAKA;;;UAIaA,WAAAA,GAAc;IACzBC,aAAAA,EAAe,kBAAA;IACfC,iBAAAA,EAAmB;AACrB;AA0CA;;;AAGC,IACM,MAAMC,gBAAAA,GAAmB,CAC9B,EAAEC,MAAM,EAA2B,EACnCC,KAAAA,GAAAA;IAEAC,eAAAA,CAAU;AAAEF,QAAAA;KAAO,EAAGJ,WAAAA,CAAYC,aAAa,EAAE;AAC/CM,QAAAA,KAAAA,EAAOF,MAAME,KAAK;AAClBC,QAAAA,QAAAA,EAAUH,MAAMG,QAAQ;AACxBC,QAAAA,MAAAA,EAAQJ,MAAMI,MAAM;QACpB,GAAIJ,KAAAA,CAAMK,IAAI,GAAG;YAAEA,IAAAA,EAAM;gBAAEC,EAAAA,EAAIN,KAAAA,CAAMK,IAAI,CAACC,EAAE;gBAAEC,KAAAA,EAAOP,KAAAA,CAAMK,IAAI,CAACE;AAAM;AAAE,SAAA,GAAI;KAC9E,CAAA,CAA+BC,KAAK,CAAC,CAACN,KAAAA,GAAAA;QACpCH,MAAAA,CAAOU,GAAG,CAACP,KAAK,CAAC,CAAC,eAAe,EAAEP,WAAAA,CAAYC,aAAa,CAAA,CAAE,EAAE;AAAEM,YAAAA;AAAM,SAAA,CAAA;AAC1E,IAAA,CAAA,CAAA;AACF;AAEA;;;;AAIC,IACM,MAAMQ,sBAAAA,GAAyB,CAACV,KAAAA,GACrCA,KAAAA,CAAMI,MAAM,KAAK,sBAAA,IAA0B,EAAEJ,KAAAA,CAAMG,QAAQ,KAAK,OAAA,IAAW,CAACH,KAAAA,CAAMK,IAAI;AAkBxF,MAAMM,UAAAA,GAAa,CAACN,IAAAA,IAAqE;QACvFO,IAAAA,EAAM,YAAA;AACNN,QAAAA,EAAAA,EAAID,KAAKC,EAAE;AACXC,QAAAA,KAAAA,EAAOF,KAAKE;KACd,CAAA;AAEO,MAAMM,0BAA0B,CAACC,kBAAAA,GAAAA;AACtCA,IAAAA,kBAAAA,CAAmBC,aAAa,CAC9BpB,WAAAA,CAAYC,aAAa,EACzB,CAACI,SAA8B;YAC7B,GAAIA,KAAAA,CAAMK,IAAI,GAAG;gBAAEW,QAAAA,EAAUL,UAAAA,CAAWX,MAAMK,IAAI;AAAE,aAAA,GAAI,EAAE;YAC1DY,OAAAA,EAAS,SAAA;YACTC,OAAAA,EAAS;AAAEf,gBAAAA,QAAAA,EAAUH,MAAMG,QAAQ;AAAEC,gBAAAA,MAAAA,EAAQJ,MAAMI;AAAO;AAC5D,SAAA,CAAA,EACA;QAAEe,kBAAAA,EAAoB,IAAA;QAAMC,YAAAA,EAAcV;AAAuB,KAAA,CAAA;AAGnEI,IAAAA,kBAAAA,CAAmBC,aAAa,CAC9BpB,WAAAA,CAAYE,iBAAiB,EAC7B,CAACG,SAAkC;YACjCgB,QAAAA,EAAUL,UAAAA,CAAWX,MAAMK,IAAI,CAAA;YAC/Ba,OAAAA,EAAS;AAAEf,gBAAAA,QAAAA,EAAUH,MAAMG,QAAQ;AAAEkB,gBAAAA,KAAAA,EAAOC,oBAAAA,CAAUtB,KAAAA,CAAMK,IAAI,CAACgB,KAAK;AAAE;SAC1E,CAAA,CAAA;AAEJ;;;;;;;"}
@@ -0,0 +1,67 @@
1
+ import { emitAudit } from '@strapi/utils';
2
+ import { toRoleIds } from './admin-users.mjs';
3
+
4
+ /**
5
+ * Event hub events bound to the `admin.auth.events` config callbacks
6
+ * (`onConnectionError`, `onSSOAutoRegistration`). Their names and payloads are public.
7
+ */ const AUTH_EVENTS = {
8
+ LOGIN_FAILURE: 'admin.auth.error',
9
+ AUTO_REGISTRATION: 'admin.auth.autoRegistration'
10
+ };
11
+ /**
12
+ * Emits without waiting: listeners bound to the event, such as the `onConnectionError`
13
+ * config callback, run before the audit subscriber and must not hold the login.
14
+ */ const emitLoginFailure = ({ strapi }, event)=>{
15
+ emitAudit({
16
+ strapi
17
+ }, AUTH_EVENTS.LOGIN_FAILURE, {
18
+ error: event.error,
19
+ provider: event.provider,
20
+ reason: event.reason,
21
+ ...event.user ? {
22
+ user: {
23
+ id: event.user.id,
24
+ email: event.user.email
25
+ }
26
+ } : {}
27
+ }).catch((error)=>{
28
+ strapi.log.error(`Failed to emit ${AUTH_EVENTS.LOGIN_FAILURE}`, {
29
+ error
30
+ });
31
+ });
32
+ };
33
+ /**
34
+ * Whether the audit log records a failed login. Not recorded: failures anyone can produce
35
+ * from outside before any verification, a local login for an email with no account and an
36
+ * SSO connection with no valid profile.
37
+ */ const isRecordedLoginFailure = (event)=>event.reason !== 'sso_connection_error' && !(event.provider === 'local' && !event.user);
38
+ const toResource = (user)=>({
39
+ type: 'admin-user',
40
+ id: user.id,
41
+ email: user.email
42
+ });
43
+ const registerAuthAuditEvents = (auditLogsLifecycle)=>{
44
+ auditLogsLifecycle.registerEvent(AUTH_EVENTS.LOGIN_FAILURE, (event)=>({
45
+ ...event.user ? {
46
+ resource: toResource(event.user)
47
+ } : {},
48
+ outcome: 'failure',
49
+ details: {
50
+ provider: event.provider,
51
+ reason: event.reason
52
+ }
53
+ }), {
54
+ alwaysUnknownActor: true,
55
+ shouldRecord: isRecordedLoginFailure
56
+ });
57
+ auditLogsLifecycle.registerEvent(AUTH_EVENTS.AUTO_REGISTRATION, (event)=>({
58
+ resource: toResource(event.user),
59
+ details: {
60
+ provider: event.provider,
61
+ roles: toRoleIds(event.user.roles)
62
+ }
63
+ }));
64
+ };
65
+
66
+ export { AUTH_EVENTS, emitLoginFailure, isRecordedLoginFailure, registerAuthAuditEvents };
67
+ //# sourceMappingURL=auth.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.mjs","sources":["../../../../../server/src/audit-logs/auth.ts"],"sourcesContent":["import type { Data, Modules } from '@strapi/types';\nimport { emitAudit } from '@strapi/utils';\n\nimport { toRoleIds, type AdminUserResource, type AdminUserSnapshot } from './admin-users';\n\n/**\n * Event hub events bound to the `admin.auth.events` config callbacks\n * (`onConnectionError`, `onSSOAutoRegistration`). Their names and payloads are public.\n */\nexport const AUTH_EVENTS = {\n LOGIN_FAILURE: 'admin.auth.error',\n AUTO_REGISTRATION: 'admin.auth.autoRegistration',\n} as const;\n\n/** One fixed value per emit site. */\nexport type LoginFailureReason =\n | 'login_not_allowed'\n | 'unexpected_error'\n | 'invalid_credentials'\n | 'account_inactive'\n | 'sso_connection_error'\n | 'sso_registration_disabled'\n | 'sso_role_misconfigured';\n\n/**\n * Payload of `admin.auth.error`, also passed to the `onConnectionError` callback.\n * The audit log stores `provider`, `reason` and the account, never `error`.\n */\nexport interface LoginFailureEvent {\n error: Error;\n provider: string;\n reason: LoginFailureReason;\n /** The account the login was for, when known. */\n user?: { id: Data.ID; email: string };\n}\n\n/** Payload of `admin.auth.autoRegistration`: the created `admin::user` row, roles populated. */\nexport interface AutoRegistrationEvent {\n user: { id: Data.ID; email?: string | null; roles?: AdminUserSnapshot['roles'] };\n provider: string;\n}\n\nexport interface LoginFailureDetails {\n provider: string;\n reason: LoginFailureReason;\n}\n\nexport interface AutoRegistrationDetails {\n provider: string;\n roles: Data.ID[];\n}\n\ntype AuditStrapi = Parameters<typeof emitAudit>[0]['strapi'];\n\n/**\n * Emits without waiting: listeners bound to the event, such as the `onConnectionError`\n * config callback, run before the audit subscriber and must not hold the login.\n */\nexport const emitLoginFailure = (\n { strapi }: { strapi: AuditStrapi },\n event: LoginFailureEvent\n): void => {\n emitAudit({ strapi }, AUTH_EVENTS.LOGIN_FAILURE, {\n error: event.error,\n provider: event.provider,\n reason: event.reason,\n ...(event.user ? { user: { id: event.user.id, email: event.user.email } } : {}),\n } satisfies LoginFailureEvent).catch((error) => {\n strapi.log.error(`Failed to emit ${AUTH_EVENTS.LOGIN_FAILURE}`, { error });\n });\n};\n\n/**\n * Whether the audit log records a failed login. Not recorded: failures anyone can produce\n * from outside before any verification, a local login for an email with no account and an\n * SSO connection with no valid profile.\n */\nexport const isRecordedLoginFailure = (event: LoginFailureEvent) =>\n event.reason !== 'sso_connection_error' && !(event.provider === 'local' && !event.user);\n\n/**\n * The part of the audit-logs lifecycle service used here.\n * The full service type lives in the Admin EE package.\n */\ninterface AuditLogsLifecycle {\n registerEvent<TDetails>(\n name: string,\n transform: Modules.AuditLogs.EventTransformer<TDetails>,\n options?: {\n allowUnknownActor?: boolean;\n alwaysUnknownActor?: boolean;\n shouldRecord?: (...args: any[]) => boolean;\n }\n ): void;\n}\n\nconst toResource = (user: { id: Data.ID; email?: string | null }): AdminUserResource => ({\n type: 'admin-user',\n id: user.id,\n email: user.email as string,\n});\n\nexport const registerAuthAuditEvents = (auditLogsLifecycle: AuditLogsLifecycle) => {\n auditLogsLifecycle.registerEvent<LoginFailureDetails>(\n AUTH_EVENTS.LOGIN_FAILURE,\n (event: LoginFailureEvent) => ({\n ...(event.user ? { resource: toResource(event.user) } : {}),\n outcome: 'failure',\n details: { provider: event.provider, reason: event.reason },\n }),\n { alwaysUnknownActor: true, shouldRecord: isRecordedLoginFailure }\n );\n\n auditLogsLifecycle.registerEvent<AutoRegistrationDetails>(\n AUTH_EVENTS.AUTO_REGISTRATION,\n (event: AutoRegistrationEvent) => ({\n resource: toResource(event.user),\n details: { provider: event.provider, roles: toRoleIds(event.user.roles) },\n })\n );\n};\n"],"names":["AUTH_EVENTS","LOGIN_FAILURE","AUTO_REGISTRATION","emitLoginFailure","strapi","event","emitAudit","error","provider","reason","user","id","email","catch","log","isRecordedLoginFailure","toResource","type","registerAuthAuditEvents","auditLogsLifecycle","registerEvent","resource","outcome","details","alwaysUnknownActor","shouldRecord","roles","toRoleIds"],"mappings":";;;AAKA;;;UAIaA,WAAAA,GAAc;IACzBC,aAAAA,EAAe,kBAAA;IACfC,iBAAAA,EAAmB;AACrB;AA0CA;;;AAGC,IACM,MAAMC,gBAAAA,GAAmB,CAC9B,EAAEC,MAAM,EAA2B,EACnCC,KAAAA,GAAAA;IAEAC,SAAAA,CAAU;AAAEF,QAAAA;KAAO,EAAGJ,WAAAA,CAAYC,aAAa,EAAE;AAC/CM,QAAAA,KAAAA,EAAOF,MAAME,KAAK;AAClBC,QAAAA,QAAAA,EAAUH,MAAMG,QAAQ;AACxBC,QAAAA,MAAAA,EAAQJ,MAAMI,MAAM;QACpB,GAAIJ,KAAAA,CAAMK,IAAI,GAAG;YAAEA,IAAAA,EAAM;gBAAEC,EAAAA,EAAIN,KAAAA,CAAMK,IAAI,CAACC,EAAE;gBAAEC,KAAAA,EAAOP,KAAAA,CAAMK,IAAI,CAACE;AAAM;AAAE,SAAA,GAAI;KAC9E,CAAA,CAA+BC,KAAK,CAAC,CAACN,KAAAA,GAAAA;QACpCH,MAAAA,CAAOU,GAAG,CAACP,KAAK,CAAC,CAAC,eAAe,EAAEP,WAAAA,CAAYC,aAAa,CAAA,CAAE,EAAE;AAAEM,YAAAA;AAAM,SAAA,CAAA;AAC1E,IAAA,CAAA,CAAA;AACF;AAEA;;;;AAIC,IACM,MAAMQ,sBAAAA,GAAyB,CAACV,KAAAA,GACrCA,KAAAA,CAAMI,MAAM,KAAK,sBAAA,IAA0B,EAAEJ,KAAAA,CAAMG,QAAQ,KAAK,OAAA,IAAW,CAACH,KAAAA,CAAMK,IAAI;AAkBxF,MAAMM,UAAAA,GAAa,CAACN,IAAAA,IAAqE;QACvFO,IAAAA,EAAM,YAAA;AACNN,QAAAA,EAAAA,EAAID,KAAKC,EAAE;AACXC,QAAAA,KAAAA,EAAOF,KAAKE;KACd,CAAA;AAEO,MAAMM,0BAA0B,CAACC,kBAAAA,GAAAA;AACtCA,IAAAA,kBAAAA,CAAmBC,aAAa,CAC9BpB,WAAAA,CAAYC,aAAa,EACzB,CAACI,SAA8B;YAC7B,GAAIA,KAAAA,CAAMK,IAAI,GAAG;gBAAEW,QAAAA,EAAUL,UAAAA,CAAWX,MAAMK,IAAI;AAAE,aAAA,GAAI,EAAE;YAC1DY,OAAAA,EAAS,SAAA;YACTC,OAAAA,EAAS;AAAEf,gBAAAA,QAAAA,EAAUH,MAAMG,QAAQ;AAAEC,gBAAAA,MAAAA,EAAQJ,MAAMI;AAAO;AAC5D,SAAA,CAAA,EACA;QAAEe,kBAAAA,EAAoB,IAAA;QAAMC,YAAAA,EAAcV;AAAuB,KAAA,CAAA;AAGnEI,IAAAA,kBAAAA,CAAmBC,aAAa,CAC9BpB,WAAAA,CAAYE,iBAAiB,EAC7B,CAACG,SAAkC;YACjCgB,QAAAA,EAAUL,UAAAA,CAAWX,MAAMK,IAAI,CAAA;YAC/Ba,OAAAA,EAAS;AAAEf,gBAAAA,QAAAA,EAAUH,MAAMG,QAAQ;AAAEkB,gBAAAA,KAAAA,EAAOC,SAAAA,CAAUtB,KAAAA,CAAMK,IAAI,CAACgB,KAAK;AAAE;SAC1E,CAAA,CAAA;AAEJ;;;;"}
@@ -229,6 +229,13 @@ const actions = [
229
229
  section: 'settings',
230
230
  category: 'project'
231
231
  },
232
+ {
233
+ uid: 'debug-dump.read',
234
+ displayName: 'Generate a support debug dump',
235
+ pluginName: 'admin',
236
+ section: 'settings',
237
+ category: 'debug and support'
238
+ },
232
239
  {
233
240
  uid: 'transfer.tokens.access',
234
241
  displayName: 'Access the transfer tokens settings page',
@@ -1 +1 @@
1
- {"version":3,"file":"admin-actions.js","sources":["../../../../../server/src/config/admin-actions.ts"],"sourcesContent":["export const actions = [\n {\n uid: 'marketplace.read',\n displayName: 'Access the marketplace',\n pluginName: 'admin',\n section: 'settings',\n category: 'plugins and marketplace',\n subCategory: 'marketplace',\n },\n {\n uid: 'webhooks.create',\n displayName: 'Create',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'users.create',\n displayName: 'Create (invite)',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'users.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n aliases: [\n {\n actionId: 'plugin::content-manager.explorer.read',\n subjects: ['admin::user'],\n },\n ],\n },\n {\n uid: 'users.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'users.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'roles.create',\n displayName: 'Create',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'roles.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n aliases: [\n {\n actionId: 'plugin::content-manager.explorer.read',\n subjects: ['admin::role'],\n },\n ],\n },\n {\n uid: 'roles.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'roles.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'api-tokens.access',\n displayName: 'Access the API tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'api Tokens',\n },\n {\n uid: 'admin-tokens.access',\n displayName: 'Access the Admin tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'admin tokens',\n },\n {\n uid: 'admin-tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'project-settings.update',\n displayName: 'Update the project level settings',\n pluginName: 'admin',\n section: 'settings',\n category: 'project',\n },\n {\n uid: 'project-settings.read',\n displayName: 'Read the project level settings',\n pluginName: 'admin',\n section: 'settings',\n category: 'project',\n },\n {\n uid: 'transfer.tokens.access',\n displayName: 'Access the transfer tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'transfer tokens',\n },\n {\n uid: 'transfer.tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n];\n\nexport default {\n actions,\n};\n"],"names":["actions","uid","displayName","pluginName","section","category","subCategory","aliases","actionId","subjects"],"mappings":"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"}
1
+ {"version":3,"file":"admin-actions.js","sources":["../../../../../server/src/config/admin-actions.ts"],"sourcesContent":["export const actions = [\n {\n uid: 'marketplace.read',\n displayName: 'Access the marketplace',\n pluginName: 'admin',\n section: 'settings',\n category: 'plugins and marketplace',\n subCategory: 'marketplace',\n },\n {\n uid: 'webhooks.create',\n displayName: 'Create',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'users.create',\n displayName: 'Create (invite)',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'users.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n aliases: [\n {\n actionId: 'plugin::content-manager.explorer.read',\n subjects: ['admin::user'],\n },\n ],\n },\n {\n uid: 'users.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'users.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'roles.create',\n displayName: 'Create',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'roles.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n aliases: [\n {\n actionId: 'plugin::content-manager.explorer.read',\n subjects: ['admin::role'],\n },\n ],\n },\n {\n uid: 'roles.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'roles.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'api-tokens.access',\n displayName: 'Access the API tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'api Tokens',\n },\n {\n uid: 'admin-tokens.access',\n displayName: 'Access the Admin tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'admin tokens',\n },\n {\n uid: 'admin-tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'project-settings.update',\n displayName: 'Update the project level settings',\n pluginName: 'admin',\n section: 'settings',\n category: 'project',\n },\n {\n uid: 'project-settings.read',\n displayName: 'Read the project level settings',\n pluginName: 'admin',\n section: 'settings',\n category: 'project',\n },\n {\n uid: 'debug-dump.read',\n displayName: 'Generate a support debug dump',\n pluginName: 'admin',\n section: 'settings',\n category: 'debug and support',\n },\n {\n uid: 'transfer.tokens.access',\n displayName: 'Access the transfer tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'transfer tokens',\n },\n {\n uid: 'transfer.tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n];\n\nexport default {\n actions,\n};\n"],"names":["actions","uid","displayName","pluginName","section","category","subCategory","aliases","actionId","subjects"],"mappings":"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"}
@@ -225,6 +225,13 @@ const actions = [
225
225
  section: 'settings',
226
226
  category: 'project'
227
227
  },
228
+ {
229
+ uid: 'debug-dump.read',
230
+ displayName: 'Generate a support debug dump',
231
+ pluginName: 'admin',
232
+ section: 'settings',
233
+ category: 'debug and support'
234
+ },
228
235
  {
229
236
  uid: 'transfer.tokens.access',
230
237
  displayName: 'Access the transfer tokens settings page',
@@ -1 +1 @@
1
- {"version":3,"file":"admin-actions.mjs","sources":["../../../../../server/src/config/admin-actions.ts"],"sourcesContent":["export const actions = [\n {\n uid: 'marketplace.read',\n displayName: 'Access the marketplace',\n pluginName: 'admin',\n section: 'settings',\n category: 'plugins and marketplace',\n subCategory: 'marketplace',\n },\n {\n uid: 'webhooks.create',\n displayName: 'Create',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'users.create',\n displayName: 'Create (invite)',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'users.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n aliases: [\n {\n actionId: 'plugin::content-manager.explorer.read',\n subjects: ['admin::user'],\n },\n ],\n },\n {\n uid: 'users.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'users.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'roles.create',\n displayName: 'Create',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'roles.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n aliases: [\n {\n actionId: 'plugin::content-manager.explorer.read',\n subjects: ['admin::role'],\n },\n ],\n },\n {\n uid: 'roles.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'roles.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'api-tokens.access',\n displayName: 'Access the API tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'api Tokens',\n },\n {\n uid: 'admin-tokens.access',\n displayName: 'Access the Admin tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'admin tokens',\n },\n {\n uid: 'admin-tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'project-settings.update',\n displayName: 'Update the project level settings',\n pluginName: 'admin',\n section: 'settings',\n category: 'project',\n },\n {\n uid: 'project-settings.read',\n displayName: 'Read the project level settings',\n pluginName: 'admin',\n section: 'settings',\n category: 'project',\n },\n {\n uid: 'transfer.tokens.access',\n displayName: 'Access the transfer tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'transfer tokens',\n },\n {\n uid: 'transfer.tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n];\n\nexport default {\n actions,\n};\n"],"names":["actions","uid","displayName","pluginName","section","category","subCategory","aliases","actionId","subjects"],"mappings":"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"}
1
+ {"version":3,"file":"admin-actions.mjs","sources":["../../../../../server/src/config/admin-actions.ts"],"sourcesContent":["export const actions = [\n {\n uid: 'marketplace.read',\n displayName: 'Access the marketplace',\n pluginName: 'admin',\n section: 'settings',\n category: 'plugins and marketplace',\n subCategory: 'marketplace',\n },\n {\n uid: 'webhooks.create',\n displayName: 'Create',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'webhooks.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'webhooks',\n },\n {\n uid: 'users.create',\n displayName: 'Create (invite)',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'users.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n aliases: [\n {\n actionId: 'plugin::content-manager.explorer.read',\n subjects: ['admin::user'],\n },\n ],\n },\n {\n uid: 'users.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'users.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'users',\n },\n {\n uid: 'roles.create',\n displayName: 'Create',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'roles.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n aliases: [\n {\n actionId: 'plugin::content-manager.explorer.read',\n subjects: ['admin::role'],\n },\n ],\n },\n {\n uid: 'roles.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'roles.delete',\n displayName: 'Delete',\n pluginName: 'admin',\n section: 'settings',\n category: 'users and roles',\n subCategory: 'roles',\n },\n {\n uid: 'api-tokens.access',\n displayName: 'Access the API tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'api Tokens',\n },\n {\n uid: 'admin-tokens.access',\n displayName: 'Access the Admin tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'admin tokens',\n },\n {\n uid: 'admin-tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'admin-tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'admin tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'api-tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'api tokens',\n subCategory: 'general',\n },\n {\n uid: 'project-settings.update',\n displayName: 'Update the project level settings',\n pluginName: 'admin',\n section: 'settings',\n category: 'project',\n },\n {\n uid: 'project-settings.read',\n displayName: 'Read the project level settings',\n pluginName: 'admin',\n section: 'settings',\n category: 'project',\n },\n {\n uid: 'debug-dump.read',\n displayName: 'Generate a support debug dump',\n pluginName: 'admin',\n section: 'settings',\n category: 'debug and support',\n },\n {\n uid: 'transfer.tokens.access',\n displayName: 'Access the transfer tokens settings page',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'transfer tokens',\n },\n {\n uid: 'transfer.tokens.create',\n displayName: 'Create (generate)',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.read',\n displayName: 'Read',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.update',\n displayName: 'Update',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.regenerate',\n displayName: 'Regenerate',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n {\n uid: 'transfer.tokens.delete',\n displayName: 'Delete (revoke)',\n pluginName: 'admin',\n section: 'settings',\n category: 'transfer tokens',\n subCategory: 'general',\n },\n];\n\nexport default {\n actions,\n};\n"],"names":["actions","uid","displayName","pluginName","section","category","subCategory","aliases","actionId","subjects"],"mappings":"MAAaA,OAAAA,GAAU;AACrB,IAAA;QACEC,GAAAA,EAAK,kBAAA;QACLC,WAAAA,EAAa,wBAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,yBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,iBAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACEJ,GAAAA,EAAK,eAAA;QACLC,WAAAA,EAAa,MAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACEJ,GAAAA,EAAK,iBAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACEJ,GAAAA,EAAK,iBAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACEJ,GAAAA,EAAK,cAAA;QACLC,WAAAA,EAAa,iBAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,YAAA;QACLC,WAAAA,EAAa,MAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa,OAAA;QACbC,OAAAA,EAAS;AACP,YAAA;gBACEC,QAAAA,EAAU,uCAAA;gBACVC,QAAAA,EAAU;AAAC,oBAAA;AAAc;AAC3B;AACD;AACH,KAAA;AACA,IAAA;QACER,GAAAA,EAAK,cAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,cAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,cAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,YAAA;QACLC,WAAAA,EAAa,MAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa,OAAA;QACbC,OAAAA,EAAS;AACP,YAAA;gBACEC,QAAAA,EAAU,uCAAA;gBACVC,QAAAA,EAAU;AAAC,oBAAA;AAAc;AAC3B;AACD;AACH,KAAA;AACA,IAAA;QACER,GAAAA,EAAK,cAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,cAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,mBAAA;QACLC,WAAAA,EAAa,qCAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,YAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,qBAAA;QACLC,WAAAA,EAAa,uCAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,cAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,qBAAA;QACLC,WAAAA,EAAa,mBAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,cAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,mBAAA;QACLC,WAAAA,EAAa,MAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,cAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,qBAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,cAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,yBAAA;QACLC,WAAAA,EAAa,YAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,cAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,qBAAA;QACLC,WAAAA,EAAa,iBAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,cAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,mBAAA;QACLC,WAAAA,EAAa,mBAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,YAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,iBAAA;QACLC,WAAAA,EAAa,MAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,YAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,mBAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,YAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,uBAAA;QACLC,WAAAA,EAAa,YAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,YAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,mBAAA;QACLC,WAAAA,EAAa,iBAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,YAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,yBAAA;QACLC,WAAAA,EAAa,mCAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACEJ,GAAAA,EAAK,uBAAA;QACLC,WAAAA,EAAa,iCAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACEJ,GAAAA,EAAK,iBAAA;QACLC,WAAAA,EAAa,+BAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACEJ,GAAAA,EAAK,wBAAA;QACLC,WAAAA,EAAa,0CAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,wBAAA;QACLC,WAAAA,EAAa,mBAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,sBAAA;QACLC,WAAAA,EAAa,MAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,wBAAA;QACLC,WAAAA,EAAa,QAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,4BAAA;QACLC,WAAAA,EAAa,YAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf,KAAA;AACA,IAAA;QACEL,GAAAA,EAAK,wBAAA;QACLC,WAAAA,EAAa,iBAAA;QACbC,UAAAA,EAAY,OAAA;QACZC,OAAAA,EAAS,UAAA;QACTC,QAAAA,EAAU,iBAAA;QACVC,WAAAA,EAAa;AACf;;AAGF,mBAAe;AACbN,IAAAA;AACF,CAAA;;;;"}
@@ -20,6 +20,16 @@ const isUsingTypeScript = (...args)=>{
20
20
  }
21
21
  return lazyTsUtils.isUsingTypeScript(...args);
22
22
  };
23
+ // Core plugins are always enabled, so they are omitted from the plugins list.
24
+ const CORE_PLUGINS = new Set([
25
+ 'content-manager',
26
+ 'content-type-builder',
27
+ 'email',
28
+ 'upload',
29
+ 'i18n',
30
+ 'content-releases',
31
+ 'review-workflows'
32
+ ]);
23
33
  /**
24
34
  * A set of functions called "actions" for `Admin`
25
35
  */ var admin = {
@@ -131,20 +141,15 @@ const isUsingTypeScript = (...args)=>{
131
141
  }
132
142
  };
133
143
  },
144
+ async debugDump () {
145
+ const data = await index.getService('debug-dump').generate();
146
+ return {
147
+ data
148
+ };
149
+ },
134
150
  async plugins (ctx) {
135
151
  const enabledPlugins = strapi.config.get('enabledPlugins');
136
- // List of core plugins that are always enabled,
137
- // and so it's not necessary to display them in the plugins list
138
- const CORE_PLUGINS = [
139
- 'content-manager',
140
- 'content-type-builder',
141
- 'email',
142
- 'upload',
143
- 'i18n',
144
- 'content-releases',
145
- 'review-workflows'
146
- ];
147
- const plugins = Object.entries(enabledPlugins).filter(([key])=>!CORE_PLUGINS.includes(key)).map(([key, plugin])=>({
152
+ const plugins = Object.entries(enabledPlugins).filter(([key])=>!CORE_PLUGINS.has(key)).map(([key, plugin])=>({
148
153
  name: plugin.info.name || key,
149
154
  displayName: plugin.info.displayName || plugin.info.name || key,
150
155
  description: plugin.info.description || '',
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sources":["../../../../../server/src/controllers/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Context } from 'koa';\n\nimport path from 'path';\n\nimport { exists } from 'fs-extra';\nimport { env } from '@strapi/utils';\nimport type { Struct } from '@strapi/types';\nimport {\n validateUpdateProjectSettings,\n validateUpdateProjectSettingsFiles,\n validateUpdateProjectSettingsImagesDimensions,\n} from '../validation/project-settings';\nimport { getService } from '../utils';\n\nimport type {\n Init,\n GetProjectSettings,\n GetProjectType,\n Information,\n Plugins,\n TelemetryProperties,\n UpdateProjectSettings,\n GetGuidedTourMeta,\n} from '../../../shared/contracts/admin';\n\n// Lazy: only resolved on first GET /admin/project-type request\ntype TsUtilsModule = typeof import('@strapi/typescript-utils');\nlet lazyTsUtils: TsUtilsModule | undefined;\nconst isUsingTypeScript: TsUtilsModule['isUsingTypeScript'] = (\n ...args: Parameters<TsUtilsModule['isUsingTypeScript']>\n) => {\n if (!lazyTsUtils) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTsUtils = require('@strapi/typescript-utils');\n }\n return (lazyTsUtils as TsUtilsModule).isUsingTypeScript(...args);\n};\n\n/**\n * A set of functions called \"actions\" for `Admin`\n */\nexport default {\n // TODO very temporary to check the switch ee/ce\n // When removing this we need to update the /admin/src/index.js file\n // whe,re we set the strapi.window.isEE value\n\n // NOTE: admin/ee/server overrides this controller, and adds the EE features\n // This returns an empty feature list for CE\n async getProjectType(): Promise<GetProjectType.Response> {\n const flags = strapi.config.get('admin.flags', {});\n return { data: { isEE: false, isTrial: false, features: [], flags, ai: { enabled: false } } };\n },\n\n async init() {\n let uuid = strapi.config.get('uuid', false);\n const hasAdmin = await getService('user').exists();\n const { menuLogo, authLogo } = await getService('project-settings').getProjectSettings();\n // set to null if telemetryDisabled flag not avaialble in package.json\n const telemetryDisabled: boolean | null = strapi.config.get(\n 'packageJsonStrapi.telemetryDisabled',\n null\n );\n\n if (telemetryDisabled !== null && telemetryDisabled === true) {\n uuid = false;\n }\n\n return {\n data: {\n uuid,\n hasAdmin,\n menuLogo: menuLogo ? menuLogo.url : null,\n authLogo: authLogo ? authLogo.url : null,\n },\n } satisfies Init.Response;\n },\n\n async getProjectSettings() {\n return getService(\n 'project-settings'\n ).getProjectSettings() satisfies Promise<GetProjectSettings.Response>;\n },\n\n async updateProjectSettings(ctx: Context) {\n const {\n request: { files, body },\n } = ctx as { request: UpdateProjectSettings.Request };\n\n const projectSettingsService = getService('project-settings');\n\n await validateUpdateProjectSettings(body);\n await validateUpdateProjectSettingsFiles(files);\n\n const formatedFiles = await projectSettingsService.parseFilesData(files);\n await validateUpdateProjectSettingsImagesDimensions(formatedFiles);\n\n return projectSettingsService.updateProjectSettings({\n ...body,\n ...formatedFiles,\n }) satisfies Promise<UpdateProjectSettings.Response>;\n },\n\n async telemetryProperties(ctx: Context) {\n // If the telemetry is disabled, ignore the request and return early\n if (strapi.telemetry.isDisabled) {\n ctx.status = 204;\n return;\n }\n\n const useTypescriptOnServer = await isUsingTypeScript(strapi.dirs.app.root);\n const useTypescriptOnAdmin = await isUsingTypeScript(\n path.join(strapi.dirs.app.root, 'src', 'admin')\n );\n const isHostedOnStrapiCloud = env('STRAPI_HOSTING', null) === 'strapi.cloud';\n\n const numberOfAllContentTypes = _.size(strapi.contentTypes);\n const numberOfComponents = _.size(strapi.components);\n\n const getNumberOfDynamicZones = () => {\n return Object.values(strapi.contentTypes)\n .flatMap((contentType: Struct.ContentTypeSchema) => Object.values(contentType.attributes))\n .filter((attribute) => attribute.type === 'dynamiczone').length;\n };\n\n const getNumberOfFolders = async (): Promise<number> => {\n try {\n const contentStructure = strapi.get('content-structure') as\n | { countGroups?: () => Promise<number> }\n | undefined;\n\n return (await contentStructure?.countGroups?.()) ?? 0;\n } catch {\n return 0;\n }\n };\n\n return {\n data: {\n useTypescriptOnServer,\n useTypescriptOnAdmin,\n isHostedOnStrapiCloud,\n numberOfAllContentTypes, // TODO: V5: This event should be renamed numberOfContentTypes in V5 as the name is already taken to describe the number of content types using i18n.\n numberOfComponents,\n numberOfDynamicZones: getNumberOfDynamicZones(),\n numberOfContentTypeFolders: await getNumberOfFolders(),\n },\n } satisfies TelemetryProperties.Response;\n },\n\n async information() {\n const currentEnvironment: string = strapi.config.get('environment');\n const autoReload = strapi.config.get('autoReload', false);\n const strapiVersion = strapi.config.get('info.strapi', null);\n const dependencies = strapi.config.get('info.dependencies', {});\n const projectId = strapi.config.get('uuid', null);\n const nodeVersion = process.version;\n const communityEdition = !strapi.EE;\n const useYarn: boolean = await exists(path.join(process.cwd(), 'yarn.lock'));\n\n return {\n data: {\n currentEnvironment,\n autoReload,\n strapiVersion,\n dependencies,\n projectId,\n nodeVersion,\n communityEdition,\n useYarn,\n },\n } satisfies Information.Response;\n },\n\n async plugins(ctx: Context) {\n const enabledPlugins = strapi.config.get('enabledPlugins') as any;\n\n // List of core plugins that are always enabled,\n // and so it's not necessary to display them in the plugins list\n const CORE_PLUGINS = [\n 'content-manager',\n 'content-type-builder',\n 'email',\n 'upload',\n 'i18n',\n 'content-releases',\n 'review-workflows',\n ];\n\n const plugins = Object.entries(enabledPlugins)\n .filter(([key]: any) => !CORE_PLUGINS.includes(key))\n .map(([key, plugin]: any) => ({\n name: plugin.info.name || key,\n displayName: plugin.info.displayName || plugin.info.name || key,\n description: plugin.info.description || '',\n packageName: plugin.info.packageName,\n }));\n\n ctx.send({ plugins } satisfies Plugins.Response);\n },\n\n async licenseTrialTimeLeft() {\n const data = await strapi.ee.getTrialEndDate({\n strapi,\n });\n\n return data;\n },\n\n async getGuidedTourMeta(ctx: Context) {\n const isFirstSuperAdminUser = await getService('user').isFirstSuperAdminUser(ctx.state.user.id);\n\n return {\n data: {\n isFirstSuperAdminUser,\n schemas: strapi.contentTypes,\n },\n } satisfies GetGuidedTourMeta.Response;\n },\n};\n"],"names":["lazyTsUtils","isUsingTypeScript","args","require","getProjectType","flags","strapi","config","get","data","isEE","isTrial","features","ai","enabled","init","uuid","hasAdmin","getService","exists","menuLogo","authLogo","getProjectSettings","telemetryDisabled","url","updateProjectSettings","ctx","request","files","body","projectSettingsService","validateUpdateProjectSettings","validateUpdateProjectSettingsFiles","formatedFiles","parseFilesData","validateUpdateProjectSettingsImagesDimensions","telemetryProperties","telemetry","isDisabled","status","useTypescriptOnServer","dirs","app","root","useTypescriptOnAdmin","path","join","isHostedOnStrapiCloud","env","numberOfAllContentTypes","_","size","contentTypes","numberOfComponents","components","getNumberOfDynamicZones","Object","values","flatMap","contentType","attributes","filter","attribute","type","length","getNumberOfFolders","contentStructure","countGroups","numberOfDynamicZones","numberOfContentTypeFolders","information","currentEnvironment","autoReload","strapiVersion","dependencies","projectId","nodeVersion","process","version","communityEdition","EE","useYarn","cwd","plugins","enabledPlugins","CORE_PLUGINS","entries","key","includes","map","plugin","name","info","displayName","description","packageName","send","licenseTrialTimeLeft","ee","getTrialEndDate","getGuidedTourMeta","isFirstSuperAdminUser","state","user","id","schemas"],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sources":["../../../../../server/src/controllers/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Context } from 'koa';\n\nimport path from 'path';\n\nimport { exists } from 'fs-extra';\nimport { env } from '@strapi/utils';\nimport type { Struct } from '@strapi/types';\nimport {\n validateUpdateProjectSettings,\n validateUpdateProjectSettingsFiles,\n validateUpdateProjectSettingsImagesDimensions,\n} from '../validation/project-settings';\nimport { getService } from '../utils';\n\nimport type {\n Init,\n GetProjectSettings,\n GetProjectType,\n Information,\n Plugins,\n TelemetryProperties,\n UpdateProjectSettings,\n GetGuidedTourMeta,\n DebugDump,\n} from '../../../shared/contracts/admin';\n\n// Lazy: only resolved on first GET /admin/project-type request\ntype TsUtilsModule = typeof import('@strapi/typescript-utils');\nlet lazyTsUtils: TsUtilsModule | undefined;\nconst isUsingTypeScript: TsUtilsModule['isUsingTypeScript'] = (\n ...args: Parameters<TsUtilsModule['isUsingTypeScript']>\n) => {\n if (!lazyTsUtils) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTsUtils = require('@strapi/typescript-utils');\n }\n return (lazyTsUtils as TsUtilsModule).isUsingTypeScript(...args);\n};\n\n// Core plugins are always enabled, so they are omitted from the plugins list.\nconst CORE_PLUGINS = new Set([\n 'content-manager',\n 'content-type-builder',\n 'email',\n 'upload',\n 'i18n',\n 'content-releases',\n 'review-workflows',\n]);\n\n/**\n * A set of functions called \"actions\" for `Admin`\n */\nexport default {\n // TODO very temporary to check the switch ee/ce\n // When removing this we need to update the /admin/src/index.js file\n // whe,re we set the strapi.window.isEE value\n\n // NOTE: admin/ee/server overrides this controller, and adds the EE features\n // This returns an empty feature list for CE\n async getProjectType(): Promise<GetProjectType.Response> {\n const flags = strapi.config.get('admin.flags', {});\n return { data: { isEE: false, isTrial: false, features: [], flags, ai: { enabled: false } } };\n },\n\n async init() {\n let uuid = strapi.config.get('uuid', false);\n const hasAdmin = await getService('user').exists();\n const { menuLogo, authLogo } = await getService('project-settings').getProjectSettings();\n // set to null if telemetryDisabled flag not avaialble in package.json\n const telemetryDisabled: boolean | null = strapi.config.get(\n 'packageJsonStrapi.telemetryDisabled',\n null\n );\n\n if (telemetryDisabled !== null && telemetryDisabled === true) {\n uuid = false;\n }\n\n return {\n data: {\n uuid,\n hasAdmin,\n menuLogo: menuLogo ? menuLogo.url : null,\n authLogo: authLogo ? authLogo.url : null,\n },\n } satisfies Init.Response;\n },\n\n async getProjectSettings() {\n return getService(\n 'project-settings'\n ).getProjectSettings() satisfies Promise<GetProjectSettings.Response>;\n },\n\n async updateProjectSettings(ctx: Context) {\n const {\n request: { files, body },\n } = ctx as { request: UpdateProjectSettings.Request };\n\n const projectSettingsService = getService('project-settings');\n\n await validateUpdateProjectSettings(body);\n await validateUpdateProjectSettingsFiles(files);\n\n const formatedFiles = await projectSettingsService.parseFilesData(files);\n await validateUpdateProjectSettingsImagesDimensions(formatedFiles);\n\n return projectSettingsService.updateProjectSettings({\n ...body,\n ...formatedFiles,\n }) satisfies Promise<UpdateProjectSettings.Response>;\n },\n\n async telemetryProperties(ctx: Context) {\n // If the telemetry is disabled, ignore the request and return early\n if (strapi.telemetry.isDisabled) {\n ctx.status = 204;\n return;\n }\n\n const useTypescriptOnServer = await isUsingTypeScript(strapi.dirs.app.root);\n const useTypescriptOnAdmin = await isUsingTypeScript(\n path.join(strapi.dirs.app.root, 'src', 'admin')\n );\n const isHostedOnStrapiCloud = env('STRAPI_HOSTING', null) === 'strapi.cloud';\n\n const numberOfAllContentTypes = _.size(strapi.contentTypes);\n const numberOfComponents = _.size(strapi.components);\n\n const getNumberOfDynamicZones = () => {\n return Object.values(strapi.contentTypes)\n .flatMap((contentType: Struct.ContentTypeSchema) => Object.values(contentType.attributes))\n .filter((attribute) => attribute.type === 'dynamiczone').length;\n };\n\n const getNumberOfFolders = async (): Promise<number> => {\n try {\n const contentStructure = strapi.get('content-structure') as\n { countGroups?: () => Promise<number> } | undefined;\n\n return (await contentStructure?.countGroups?.()) ?? 0;\n } catch {\n return 0;\n }\n };\n\n return {\n data: {\n useTypescriptOnServer,\n useTypescriptOnAdmin,\n isHostedOnStrapiCloud,\n numberOfAllContentTypes, // TODO: V5: This event should be renamed numberOfContentTypes in V5 as the name is already taken to describe the number of content types using i18n.\n numberOfComponents,\n numberOfDynamicZones: getNumberOfDynamicZones(),\n numberOfContentTypeFolders: await getNumberOfFolders(),\n },\n } satisfies TelemetryProperties.Response;\n },\n\n async information() {\n const currentEnvironment: string = strapi.config.get('environment');\n const autoReload = strapi.config.get('autoReload', false);\n const strapiVersion = strapi.config.get('info.strapi', null);\n const dependencies = strapi.config.get('info.dependencies', {});\n const projectId = strapi.config.get('uuid', null);\n const nodeVersion = process.version;\n const communityEdition = !strapi.EE;\n const useYarn: boolean = await exists(path.join(process.cwd(), 'yarn.lock'));\n\n return {\n data: {\n currentEnvironment,\n autoReload,\n strapiVersion,\n dependencies,\n projectId,\n nodeVersion,\n communityEdition,\n useYarn,\n },\n } satisfies Information.Response;\n },\n\n async debugDump() {\n const data = await getService('debug-dump').generate();\n\n return { data } satisfies DebugDump.Response;\n },\n\n async plugins(ctx: Context) {\n const enabledPlugins = strapi.config.get('enabledPlugins') as any;\n\n const plugins = Object.entries(enabledPlugins)\n .filter(([key]: any) => !CORE_PLUGINS.has(key))\n .map(([key, plugin]: any) => ({\n name: plugin.info.name || key,\n displayName: plugin.info.displayName || plugin.info.name || key,\n description: plugin.info.description || '',\n packageName: plugin.info.packageName,\n }));\n\n ctx.send({ plugins } satisfies Plugins.Response);\n },\n\n async licenseTrialTimeLeft() {\n const data = await strapi.ee.getTrialEndDate({\n strapi,\n });\n\n return data;\n },\n\n async getGuidedTourMeta(ctx: Context) {\n const isFirstSuperAdminUser = await getService('user').isFirstSuperAdminUser(ctx.state.user.id);\n\n return {\n data: {\n isFirstSuperAdminUser,\n schemas: strapi.contentTypes,\n },\n } satisfies GetGuidedTourMeta.Response;\n },\n};\n"],"names":["lazyTsUtils","isUsingTypeScript","args","require","CORE_PLUGINS","Set","getProjectType","flags","strapi","config","get","data","isEE","isTrial","features","ai","enabled","init","uuid","hasAdmin","getService","exists","menuLogo","authLogo","getProjectSettings","telemetryDisabled","url","updateProjectSettings","ctx","request","files","body","projectSettingsService","validateUpdateProjectSettings","validateUpdateProjectSettingsFiles","formatedFiles","parseFilesData","validateUpdateProjectSettingsImagesDimensions","telemetryProperties","telemetry","isDisabled","status","useTypescriptOnServer","dirs","app","root","useTypescriptOnAdmin","path","join","isHostedOnStrapiCloud","env","numberOfAllContentTypes","_","size","contentTypes","numberOfComponents","components","getNumberOfDynamicZones","Object","values","flatMap","contentType","attributes","filter","attribute","type","length","getNumberOfFolders","contentStructure","countGroups","numberOfDynamicZones","numberOfContentTypeFolders","information","currentEnvironment","autoReload","strapiVersion","dependencies","projectId","nodeVersion","process","version","communityEdition","EE","useYarn","cwd","debugDump","generate","plugins","enabledPlugins","entries","key","has","map","plugin","name","info","displayName","description","packageName","send","licenseTrialTimeLeft","ee","getTrialEndDate","getGuidedTourMeta","isFirstSuperAdminUser","state","user","id","schemas"],"mappings":"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"}
@@ -13,6 +13,16 @@ const isUsingTypeScript = (...args)=>{
13
13
  }
14
14
  return lazyTsUtils.isUsingTypeScript(...args);
15
15
  };
16
+ // Core plugins are always enabled, so they are omitted from the plugins list.
17
+ const CORE_PLUGINS = new Set([
18
+ 'content-manager',
19
+ 'content-type-builder',
20
+ 'email',
21
+ 'upload',
22
+ 'i18n',
23
+ 'content-releases',
24
+ 'review-workflows'
25
+ ]);
16
26
  /**
17
27
  * A set of functions called "actions" for `Admin`
18
28
  */ var admin = {
@@ -124,20 +134,15 @@ const isUsingTypeScript = (...args)=>{
124
134
  }
125
135
  };
126
136
  },
137
+ async debugDump () {
138
+ const data = await getService('debug-dump').generate();
139
+ return {
140
+ data
141
+ };
142
+ },
127
143
  async plugins (ctx) {
128
144
  const enabledPlugins = strapi.config.get('enabledPlugins');
129
- // List of core plugins that are always enabled,
130
- // and so it's not necessary to display them in the plugins list
131
- const CORE_PLUGINS = [
132
- 'content-manager',
133
- 'content-type-builder',
134
- 'email',
135
- 'upload',
136
- 'i18n',
137
- 'content-releases',
138
- 'review-workflows'
139
- ];
140
- const plugins = Object.entries(enabledPlugins).filter(([key])=>!CORE_PLUGINS.includes(key)).map(([key, plugin])=>({
145
+ const plugins = Object.entries(enabledPlugins).filter(([key])=>!CORE_PLUGINS.has(key)).map(([key, plugin])=>({
141
146
  name: plugin.info.name || key,
142
147
  displayName: plugin.info.displayName || plugin.info.name || key,
143
148
  description: plugin.info.description || '',
@@ -1 +1 @@
1
- {"version":3,"file":"admin.mjs","sources":["../../../../../server/src/controllers/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Context } from 'koa';\n\nimport path from 'path';\n\nimport { exists } from 'fs-extra';\nimport { env } from '@strapi/utils';\nimport type { Struct } from '@strapi/types';\nimport {\n validateUpdateProjectSettings,\n validateUpdateProjectSettingsFiles,\n validateUpdateProjectSettingsImagesDimensions,\n} from '../validation/project-settings';\nimport { getService } from '../utils';\n\nimport type {\n Init,\n GetProjectSettings,\n GetProjectType,\n Information,\n Plugins,\n TelemetryProperties,\n UpdateProjectSettings,\n GetGuidedTourMeta,\n} from '../../../shared/contracts/admin';\n\n// Lazy: only resolved on first GET /admin/project-type request\ntype TsUtilsModule = typeof import('@strapi/typescript-utils');\nlet lazyTsUtils: TsUtilsModule | undefined;\nconst isUsingTypeScript: TsUtilsModule['isUsingTypeScript'] = (\n ...args: Parameters<TsUtilsModule['isUsingTypeScript']>\n) => {\n if (!lazyTsUtils) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTsUtils = require('@strapi/typescript-utils');\n }\n return (lazyTsUtils as TsUtilsModule).isUsingTypeScript(...args);\n};\n\n/**\n * A set of functions called \"actions\" for `Admin`\n */\nexport default {\n // TODO very temporary to check the switch ee/ce\n // When removing this we need to update the /admin/src/index.js file\n // whe,re we set the strapi.window.isEE value\n\n // NOTE: admin/ee/server overrides this controller, and adds the EE features\n // This returns an empty feature list for CE\n async getProjectType(): Promise<GetProjectType.Response> {\n const flags = strapi.config.get('admin.flags', {});\n return { data: { isEE: false, isTrial: false, features: [], flags, ai: { enabled: false } } };\n },\n\n async init() {\n let uuid = strapi.config.get('uuid', false);\n const hasAdmin = await getService('user').exists();\n const { menuLogo, authLogo } = await getService('project-settings').getProjectSettings();\n // set to null if telemetryDisabled flag not avaialble in package.json\n const telemetryDisabled: boolean | null = strapi.config.get(\n 'packageJsonStrapi.telemetryDisabled',\n null\n );\n\n if (telemetryDisabled !== null && telemetryDisabled === true) {\n uuid = false;\n }\n\n return {\n data: {\n uuid,\n hasAdmin,\n menuLogo: menuLogo ? menuLogo.url : null,\n authLogo: authLogo ? authLogo.url : null,\n },\n } satisfies Init.Response;\n },\n\n async getProjectSettings() {\n return getService(\n 'project-settings'\n ).getProjectSettings() satisfies Promise<GetProjectSettings.Response>;\n },\n\n async updateProjectSettings(ctx: Context) {\n const {\n request: { files, body },\n } = ctx as { request: UpdateProjectSettings.Request };\n\n const projectSettingsService = getService('project-settings');\n\n await validateUpdateProjectSettings(body);\n await validateUpdateProjectSettingsFiles(files);\n\n const formatedFiles = await projectSettingsService.parseFilesData(files);\n await validateUpdateProjectSettingsImagesDimensions(formatedFiles);\n\n return projectSettingsService.updateProjectSettings({\n ...body,\n ...formatedFiles,\n }) satisfies Promise<UpdateProjectSettings.Response>;\n },\n\n async telemetryProperties(ctx: Context) {\n // If the telemetry is disabled, ignore the request and return early\n if (strapi.telemetry.isDisabled) {\n ctx.status = 204;\n return;\n }\n\n const useTypescriptOnServer = await isUsingTypeScript(strapi.dirs.app.root);\n const useTypescriptOnAdmin = await isUsingTypeScript(\n path.join(strapi.dirs.app.root, 'src', 'admin')\n );\n const isHostedOnStrapiCloud = env('STRAPI_HOSTING', null) === 'strapi.cloud';\n\n const numberOfAllContentTypes = _.size(strapi.contentTypes);\n const numberOfComponents = _.size(strapi.components);\n\n const getNumberOfDynamicZones = () => {\n return Object.values(strapi.contentTypes)\n .flatMap((contentType: Struct.ContentTypeSchema) => Object.values(contentType.attributes))\n .filter((attribute) => attribute.type === 'dynamiczone').length;\n };\n\n const getNumberOfFolders = async (): Promise<number> => {\n try {\n const contentStructure = strapi.get('content-structure') as\n | { countGroups?: () => Promise<number> }\n | undefined;\n\n return (await contentStructure?.countGroups?.()) ?? 0;\n } catch {\n return 0;\n }\n };\n\n return {\n data: {\n useTypescriptOnServer,\n useTypescriptOnAdmin,\n isHostedOnStrapiCloud,\n numberOfAllContentTypes, // TODO: V5: This event should be renamed numberOfContentTypes in V5 as the name is already taken to describe the number of content types using i18n.\n numberOfComponents,\n numberOfDynamicZones: getNumberOfDynamicZones(),\n numberOfContentTypeFolders: await getNumberOfFolders(),\n },\n } satisfies TelemetryProperties.Response;\n },\n\n async information() {\n const currentEnvironment: string = strapi.config.get('environment');\n const autoReload = strapi.config.get('autoReload', false);\n const strapiVersion = strapi.config.get('info.strapi', null);\n const dependencies = strapi.config.get('info.dependencies', {});\n const projectId = strapi.config.get('uuid', null);\n const nodeVersion = process.version;\n const communityEdition = !strapi.EE;\n const useYarn: boolean = await exists(path.join(process.cwd(), 'yarn.lock'));\n\n return {\n data: {\n currentEnvironment,\n autoReload,\n strapiVersion,\n dependencies,\n projectId,\n nodeVersion,\n communityEdition,\n useYarn,\n },\n } satisfies Information.Response;\n },\n\n async plugins(ctx: Context) {\n const enabledPlugins = strapi.config.get('enabledPlugins') as any;\n\n // List of core plugins that are always enabled,\n // and so it's not necessary to display them in the plugins list\n const CORE_PLUGINS = [\n 'content-manager',\n 'content-type-builder',\n 'email',\n 'upload',\n 'i18n',\n 'content-releases',\n 'review-workflows',\n ];\n\n const plugins = Object.entries(enabledPlugins)\n .filter(([key]: any) => !CORE_PLUGINS.includes(key))\n .map(([key, plugin]: any) => ({\n name: plugin.info.name || key,\n displayName: plugin.info.displayName || plugin.info.name || key,\n description: plugin.info.description || '',\n packageName: plugin.info.packageName,\n }));\n\n ctx.send({ plugins } satisfies Plugins.Response);\n },\n\n async licenseTrialTimeLeft() {\n const data = await strapi.ee.getTrialEndDate({\n strapi,\n });\n\n return data;\n },\n\n async getGuidedTourMeta(ctx: Context) {\n const isFirstSuperAdminUser = await getService('user').isFirstSuperAdminUser(ctx.state.user.id);\n\n return {\n data: {\n isFirstSuperAdminUser,\n schemas: strapi.contentTypes,\n },\n } satisfies GetGuidedTourMeta.Response;\n },\n};\n"],"names":["lazyTsUtils","isUsingTypeScript","args","require","getProjectType","flags","strapi","config","get","data","isEE","isTrial","features","ai","enabled","init","uuid","hasAdmin","getService","exists","menuLogo","authLogo","getProjectSettings","telemetryDisabled","url","updateProjectSettings","ctx","request","files","body","projectSettingsService","validateUpdateProjectSettings","validateUpdateProjectSettingsFiles","formatedFiles","parseFilesData","validateUpdateProjectSettingsImagesDimensions","telemetryProperties","telemetry","isDisabled","status","useTypescriptOnServer","dirs","app","root","useTypescriptOnAdmin","path","join","isHostedOnStrapiCloud","env","numberOfAllContentTypes","_","size","contentTypes","numberOfComponents","components","getNumberOfDynamicZones","Object","values","flatMap","contentType","attributes","filter","attribute","type","length","getNumberOfFolders","contentStructure","countGroups","numberOfDynamicZones","numberOfContentTypeFolders","information","currentEnvironment","autoReload","strapiVersion","dependencies","projectId","nodeVersion","process","version","communityEdition","EE","useYarn","cwd","plugins","enabledPlugins","CORE_PLUGINS","entries","key","includes","map","plugin","name","info","displayName","description","packageName","send","licenseTrialTimeLeft","ee","getTrialEndDate","getGuidedTourMeta","isFirstSuperAdminUser","state","user","id","schemas"],"mappings":"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"}
1
+ {"version":3,"file":"admin.mjs","sources":["../../../../../server/src/controllers/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Context } from 'koa';\n\nimport path from 'path';\n\nimport { exists } from 'fs-extra';\nimport { env } from '@strapi/utils';\nimport type { Struct } from '@strapi/types';\nimport {\n validateUpdateProjectSettings,\n validateUpdateProjectSettingsFiles,\n validateUpdateProjectSettingsImagesDimensions,\n} from '../validation/project-settings';\nimport { getService } from '../utils';\n\nimport type {\n Init,\n GetProjectSettings,\n GetProjectType,\n Information,\n Plugins,\n TelemetryProperties,\n UpdateProjectSettings,\n GetGuidedTourMeta,\n DebugDump,\n} from '../../../shared/contracts/admin';\n\n// Lazy: only resolved on first GET /admin/project-type request\ntype TsUtilsModule = typeof import('@strapi/typescript-utils');\nlet lazyTsUtils: TsUtilsModule | undefined;\nconst isUsingTypeScript: TsUtilsModule['isUsingTypeScript'] = (\n ...args: Parameters<TsUtilsModule['isUsingTypeScript']>\n) => {\n if (!lazyTsUtils) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTsUtils = require('@strapi/typescript-utils');\n }\n return (lazyTsUtils as TsUtilsModule).isUsingTypeScript(...args);\n};\n\n// Core plugins are always enabled, so they are omitted from the plugins list.\nconst CORE_PLUGINS = new Set([\n 'content-manager',\n 'content-type-builder',\n 'email',\n 'upload',\n 'i18n',\n 'content-releases',\n 'review-workflows',\n]);\n\n/**\n * A set of functions called \"actions\" for `Admin`\n */\nexport default {\n // TODO very temporary to check the switch ee/ce\n // When removing this we need to update the /admin/src/index.js file\n // whe,re we set the strapi.window.isEE value\n\n // NOTE: admin/ee/server overrides this controller, and adds the EE features\n // This returns an empty feature list for CE\n async getProjectType(): Promise<GetProjectType.Response> {\n const flags = strapi.config.get('admin.flags', {});\n return { data: { isEE: false, isTrial: false, features: [], flags, ai: { enabled: false } } };\n },\n\n async init() {\n let uuid = strapi.config.get('uuid', false);\n const hasAdmin = await getService('user').exists();\n const { menuLogo, authLogo } = await getService('project-settings').getProjectSettings();\n // set to null if telemetryDisabled flag not avaialble in package.json\n const telemetryDisabled: boolean | null = strapi.config.get(\n 'packageJsonStrapi.telemetryDisabled',\n null\n );\n\n if (telemetryDisabled !== null && telemetryDisabled === true) {\n uuid = false;\n }\n\n return {\n data: {\n uuid,\n hasAdmin,\n menuLogo: menuLogo ? menuLogo.url : null,\n authLogo: authLogo ? authLogo.url : null,\n },\n } satisfies Init.Response;\n },\n\n async getProjectSettings() {\n return getService(\n 'project-settings'\n ).getProjectSettings() satisfies Promise<GetProjectSettings.Response>;\n },\n\n async updateProjectSettings(ctx: Context) {\n const {\n request: { files, body },\n } = ctx as { request: UpdateProjectSettings.Request };\n\n const projectSettingsService = getService('project-settings');\n\n await validateUpdateProjectSettings(body);\n await validateUpdateProjectSettingsFiles(files);\n\n const formatedFiles = await projectSettingsService.parseFilesData(files);\n await validateUpdateProjectSettingsImagesDimensions(formatedFiles);\n\n return projectSettingsService.updateProjectSettings({\n ...body,\n ...formatedFiles,\n }) satisfies Promise<UpdateProjectSettings.Response>;\n },\n\n async telemetryProperties(ctx: Context) {\n // If the telemetry is disabled, ignore the request and return early\n if (strapi.telemetry.isDisabled) {\n ctx.status = 204;\n return;\n }\n\n const useTypescriptOnServer = await isUsingTypeScript(strapi.dirs.app.root);\n const useTypescriptOnAdmin = await isUsingTypeScript(\n path.join(strapi.dirs.app.root, 'src', 'admin')\n );\n const isHostedOnStrapiCloud = env('STRAPI_HOSTING', null) === 'strapi.cloud';\n\n const numberOfAllContentTypes = _.size(strapi.contentTypes);\n const numberOfComponents = _.size(strapi.components);\n\n const getNumberOfDynamicZones = () => {\n return Object.values(strapi.contentTypes)\n .flatMap((contentType: Struct.ContentTypeSchema) => Object.values(contentType.attributes))\n .filter((attribute) => attribute.type === 'dynamiczone').length;\n };\n\n const getNumberOfFolders = async (): Promise<number> => {\n try {\n const contentStructure = strapi.get('content-structure') as\n { countGroups?: () => Promise<number> } | undefined;\n\n return (await contentStructure?.countGroups?.()) ?? 0;\n } catch {\n return 0;\n }\n };\n\n return {\n data: {\n useTypescriptOnServer,\n useTypescriptOnAdmin,\n isHostedOnStrapiCloud,\n numberOfAllContentTypes, // TODO: V5: This event should be renamed numberOfContentTypes in V5 as the name is already taken to describe the number of content types using i18n.\n numberOfComponents,\n numberOfDynamicZones: getNumberOfDynamicZones(),\n numberOfContentTypeFolders: await getNumberOfFolders(),\n },\n } satisfies TelemetryProperties.Response;\n },\n\n async information() {\n const currentEnvironment: string = strapi.config.get('environment');\n const autoReload = strapi.config.get('autoReload', false);\n const strapiVersion = strapi.config.get('info.strapi', null);\n const dependencies = strapi.config.get('info.dependencies', {});\n const projectId = strapi.config.get('uuid', null);\n const nodeVersion = process.version;\n const communityEdition = !strapi.EE;\n const useYarn: boolean = await exists(path.join(process.cwd(), 'yarn.lock'));\n\n return {\n data: {\n currentEnvironment,\n autoReload,\n strapiVersion,\n dependencies,\n projectId,\n nodeVersion,\n communityEdition,\n useYarn,\n },\n } satisfies Information.Response;\n },\n\n async debugDump() {\n const data = await getService('debug-dump').generate();\n\n return { data } satisfies DebugDump.Response;\n },\n\n async plugins(ctx: Context) {\n const enabledPlugins = strapi.config.get('enabledPlugins') as any;\n\n const plugins = Object.entries(enabledPlugins)\n .filter(([key]: any) => !CORE_PLUGINS.has(key))\n .map(([key, plugin]: any) => ({\n name: plugin.info.name || key,\n displayName: plugin.info.displayName || plugin.info.name || key,\n description: plugin.info.description || '',\n packageName: plugin.info.packageName,\n }));\n\n ctx.send({ plugins } satisfies Plugins.Response);\n },\n\n async licenseTrialTimeLeft() {\n const data = await strapi.ee.getTrialEndDate({\n strapi,\n });\n\n return data;\n },\n\n async getGuidedTourMeta(ctx: Context) {\n const isFirstSuperAdminUser = await getService('user').isFirstSuperAdminUser(ctx.state.user.id);\n\n return {\n data: {\n isFirstSuperAdminUser,\n schemas: strapi.contentTypes,\n },\n } satisfies GetGuidedTourMeta.Response;\n },\n};\n"],"names":["lazyTsUtils","isUsingTypeScript","args","require","CORE_PLUGINS","Set","getProjectType","flags","strapi","config","get","data","isEE","isTrial","features","ai","enabled","init","uuid","hasAdmin","getService","exists","menuLogo","authLogo","getProjectSettings","telemetryDisabled","url","updateProjectSettings","ctx","request","files","body","projectSettingsService","validateUpdateProjectSettings","validateUpdateProjectSettingsFiles","formatedFiles","parseFilesData","validateUpdateProjectSettingsImagesDimensions","telemetryProperties","telemetry","isDisabled","status","useTypescriptOnServer","dirs","app","root","useTypescriptOnAdmin","path","join","isHostedOnStrapiCloud","env","numberOfAllContentTypes","_","size","contentTypes","numberOfComponents","components","getNumberOfDynamicZones","Object","values","flatMap","contentType","attributes","filter","attribute","type","length","getNumberOfFolders","contentStructure","countGroups","numberOfDynamicZones","numberOfContentTypeFolders","information","currentEnvironment","autoReload","strapiVersion","dependencies","projectId","nodeVersion","process","version","communityEdition","EE","useYarn","cwd","debugDump","generate","plugins","enabledPlugins","entries","key","has","map","plugin","name","info","displayName","description","packageName","send","licenseTrialTimeLeft","ee","getTrialEndDate","getGuidedTourMeta","isFirstSuperAdminUser","state","user","id","schemas"],"mappings":"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"}