@strapi/admin 5.25.0 → 5.27.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 (336) hide show
  1. package/dist/admin/admin/src/App.js +6 -2
  2. package/dist/admin/admin/src/App.js.map +1 -1
  3. package/dist/admin/admin/src/App.mjs +7 -3
  4. package/dist/admin/admin/src/App.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/ErrorElement.js +10 -3
  6. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  7. package/dist/admin/admin/src/components/ErrorElement.mjs +10 -3
  8. package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/GuidedTour/Context.js +26 -1
  10. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  11. package/dist/admin/admin/src/components/GuidedTour/Context.mjs +26 -1
  12. package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js +15 -0
  14. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js.map +1 -0
  15. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs +13 -0
  16. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs.map +1 -0
  17. package/dist/admin/admin/src/components/GuidedTour/Overview.js +2 -1
  18. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  19. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +2 -1
  20. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  21. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +162 -25
  22. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
  23. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +164 -27
  24. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +28 -9
  26. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  27. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs +30 -11
  28. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
  30. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  31. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +1 -1
  32. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js +2 -1
  34. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -1
  35. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs +2 -1
  36. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/Layouts/ActionLayout.js +3 -2
  38. package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
  39. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs +3 -2
  40. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/Layouts/ContentLayout.js +3 -2
  42. package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
  43. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs +3 -2
  44. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +65 -32
  46. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  47. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +66 -33
  48. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/Layouts/Layout.js +29 -6
  50. package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
  51. package/dist/admin/admin/src/components/Layouts/Layout.mjs +30 -7
  52. package/dist/admin/admin/src/components/Layouts/Layout.mjs.map +1 -1
  53. package/dist/admin/admin/src/components/LeftMenu.js +147 -92
  54. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  55. package/dist/admin/admin/src/components/LeftMenu.mjs +131 -95
  56. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  57. package/dist/admin/admin/src/components/MainNav/MainNav.js +20 -6
  58. package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
  59. package/dist/admin/admin/src/components/MainNav/MainNav.mjs +20 -6
  60. package/dist/admin/admin/src/components/MainNav/MainNav.mjs.map +1 -1
  61. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +157 -0
  62. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -0
  63. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +154 -0
  64. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -0
  65. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +65 -0
  66. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -0
  67. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +63 -0
  68. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -0
  69. package/dist/admin/admin/src/components/MainNav/NavLink.js +2 -1
  70. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  71. package/dist/admin/admin/src/components/MainNav/NavLink.mjs +2 -1
  72. package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
  73. package/dist/admin/admin/src/components/MainNav/NavUser.js +39 -22
  74. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  75. package/dist/admin/admin/src/components/MainNav/NavUser.mjs +39 -22
  76. package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
  77. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +8 -1
  78. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
  79. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +9 -2
  80. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -1
  81. package/dist/admin/admin/src/components/NpsSurvey.js +161 -120
  82. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  83. package/dist/admin/admin/src/components/NpsSurvey.mjs +162 -121
  84. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  85. package/dist/admin/admin/src/components/PageHelpers.js +1 -1
  86. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  87. package/dist/admin/admin/src/components/PageHelpers.mjs +1 -1
  88. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  89. package/dist/admin/admin/src/components/Providers.js +2 -4
  90. package/dist/admin/admin/src/components/Providers.js.map +1 -1
  91. package/dist/admin/admin/src/components/Providers.mjs +2 -4
  92. package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
  93. package/dist/admin/admin/src/components/SubNav.js +98 -33
  94. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  95. package/dist/admin/admin/src/components/SubNav.mjs +99 -34
  96. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  97. package/dist/admin/admin/src/components/UpsellBanner.js +3 -2
  98. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  99. package/dist/admin/admin/src/components/UpsellBanner.mjs +3 -2
  100. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  101. package/dist/admin/admin/src/constants/theme.js +12 -0
  102. package/dist/admin/admin/src/constants/theme.js.map +1 -0
  103. package/dist/admin/admin/src/constants/theme.mjs +9 -0
  104. package/dist/admin/admin/src/constants/theme.mjs.map +1 -0
  105. package/dist/admin/admin/src/features/Notifications.js +14 -7
  106. package/dist/admin/admin/src/features/Notifications.js.map +1 -1
  107. package/dist/admin/admin/src/features/Notifications.mjs +15 -8
  108. package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
  109. package/dist/admin/admin/src/features/Tracking.js +7 -2
  110. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  111. package/dist/admin/admin/src/features/Tracking.mjs +7 -2
  112. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  113. package/dist/admin/admin/src/hooks/useAIAvailability.js +13 -0
  114. package/dist/admin/admin/src/hooks/useAIAvailability.js.map +1 -0
  115. package/dist/admin/admin/src/hooks/useAIAvailability.mjs +11 -0
  116. package/dist/admin/admin/src/hooks/useAIAvailability.mjs.map +1 -0
  117. package/dist/admin/admin/src/hooks/useDeviceType.js +43 -0
  118. package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -0
  119. package/dist/admin/admin/src/hooks/useDeviceType.mjs +22 -0
  120. package/dist/admin/admin/src/hooks/useDeviceType.mjs.map +1 -0
  121. package/dist/admin/admin/src/hooks/useMediaQuery.js +70 -0
  122. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -0
  123. package/dist/admin/admin/src/hooks/useMediaQuery.mjs +46 -0
  124. package/dist/admin/admin/src/hooks/useMediaQuery.mjs.map +1 -0
  125. package/dist/admin/admin/src/hooks/useMenu.js +19 -0
  126. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  127. package/dist/admin/admin/src/hooks/useMenu.mjs +19 -0
  128. package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
  129. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -2
  130. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  131. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +15 -2
  132. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  133. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +11 -7
  134. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
  135. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs +11 -7
  136. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs.map +1 -1
  137. package/dist/admin/admin/src/pages/Auth/components/Login.js +3 -0
  138. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  139. package/dist/admin/admin/src/pages/Auth/components/Login.mjs +3 -0
  140. package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
  141. package/dist/admin/admin/src/pages/Home/HomePage.js +56 -54
  142. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  143. package/dist/admin/admin/src/pages/Home/HomePage.mjs +56 -54
  144. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  145. package/dist/admin/admin/src/pages/ProfilePage.js +54 -51
  146. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  147. package/dist/admin/admin/src/pages/ProfilePage.mjs +55 -52
  148. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/Layout.js +42 -6
  150. package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/Layout.mjs +43 -7
  152. package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +44 -32
  154. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +45 -33
  156. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +13 -2
  158. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +14 -3
  160. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +1 -1
  162. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs +2 -2
  164. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js +4 -3
  166. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
  167. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs +5 -4
  168. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
  169. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js +4 -3
  170. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
  171. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs +5 -4
  172. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
  173. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js +4 -3
  174. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
  175. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs +5 -4
  176. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
  177. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +36 -32
  178. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  179. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +36 -32
  180. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  181. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +1 -1
  182. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  183. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -1
  184. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  185. package/dist/admin/admin/src/render.js +6 -1
  186. package/dist/admin/admin/src/render.js.map +1 -1
  187. package/dist/admin/admin/src/render.mjs +6 -1
  188. package/dist/admin/admin/src/render.mjs.map +1 -1
  189. package/dist/admin/admin/src/services/api.js +2 -1
  190. package/dist/admin/admin/src/services/api.js.map +1 -1
  191. package/dist/admin/admin/src/services/api.mjs +2 -1
  192. package/dist/admin/admin/src/services/api.mjs.map +1 -1
  193. package/dist/admin/admin/src/services/auth.js +13 -2
  194. package/dist/admin/admin/src/services/auth.js.map +1 -1
  195. package/dist/admin/admin/src/services/auth.mjs +12 -3
  196. package/dist/admin/admin/src/services/auth.mjs.map +1 -1
  197. package/dist/admin/admin/src/translations/en.json.js +3 -0
  198. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  199. package/dist/admin/admin/src/translations/en.json.mjs +3 -0
  200. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  201. package/dist/admin/ee/admin/src/components/GlobalNotifications.js +11 -0
  202. package/dist/admin/ee/admin/src/components/GlobalNotifications.js.map +1 -0
  203. package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs +9 -0
  204. package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs.map +1 -0
  205. package/dist/admin/ee/admin/src/hooks/useAIAvailability.js +11 -0
  206. package/dist/admin/ee/admin/src/hooks/useAIAvailability.js.map +1 -0
  207. package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs +9 -0
  208. package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs.map +1 -0
  209. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js +82 -0
  210. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js.map +1 -0
  211. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs +80 -0
  212. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs.map +1 -0
  213. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +102 -0
  214. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -0
  215. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +100 -0
  216. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -0
  217. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -1
  218. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  219. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -1
  220. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  221. package/dist/admin/ee/admin/src/services/ai.js +33 -0
  222. package/dist/admin/ee/admin/src/services/ai.js.map +1 -0
  223. package/dist/admin/ee/admin/src/services/ai.mjs +29 -0
  224. package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -0
  225. package/dist/admin/ee.js +4 -0
  226. package/dist/admin/ee.js.map +1 -1
  227. package/dist/admin/ee.mjs +2 -0
  228. package/dist/admin/ee.mjs.map +1 -1
  229. package/dist/admin/index.js +13 -0
  230. package/dist/admin/index.js.map +1 -1
  231. package/dist/admin/index.mjs +5 -0
  232. package/dist/admin/index.mjs.map +1 -1
  233. package/dist/admin/src/components/GuidedTour/Context.d.ts +11 -0
  234. package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +6 -0
  235. package/dist/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.d.ts +7 -16
  236. package/dist/admin/src/components/GuidedTour/Tours.d.ts +1 -22
  237. package/dist/admin/src/components/LeftMenu.d.ts +2 -2
  238. package/dist/admin/src/components/MainNav/MainNavLinks.d.ts +11 -0
  239. package/dist/admin/src/components/MainNav/NavBurgerMenu.d.ts +9 -0
  240. package/dist/admin/src/components/MainNav/NavUser.d.ts +5 -4
  241. package/dist/admin/src/components/SubNav.d.ts +18 -5
  242. package/dist/admin/src/constants/theme.d.ts +7 -0
  243. package/dist/admin/src/core/store/configure.d.ts +2 -2
  244. package/dist/admin/src/core/store/hooks.d.ts +2 -2
  245. package/dist/admin/src/ee.d.ts +2 -0
  246. package/dist/admin/src/features/Tracking.d.ts +21 -2
  247. package/dist/admin/src/hooks/useAIAvailability.d.ts +5 -0
  248. package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
  249. package/dist/admin/src/hooks/useDeviceType.d.ts +6 -0
  250. package/dist/admin/src/hooks/useMediaQuery.d.ts +21 -0
  251. package/dist/admin/src/hooks/useMenu.d.ts +9 -1
  252. package/dist/admin/src/index.d.ts +6 -0
  253. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
  254. package/dist/admin/src/pages/Settings/components/SettingsNav.d.ts +3 -6
  255. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
  256. package/dist/admin/src/selectors.d.ts +2 -2
  257. package/dist/admin/src/services/admin.d.ts +7 -6
  258. package/dist/admin/src/services/api.d.ts +1 -1
  259. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  260. package/dist/admin/src/services/auth.d.ts +21 -12
  261. package/dist/admin/src/services/contentApi.d.ts +1 -1
  262. package/dist/admin/src/services/contentManager.d.ts +1 -1
  263. package/dist/admin/src/services/homepage.d.ts +3 -3
  264. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  265. package/dist/admin/src/services/users.d.ts +8 -8
  266. package/dist/admin/src/services/webhooks.d.ts +2 -2
  267. package/dist/admin/tests/utils.d.ts +1 -1
  268. package/dist/ee/admin/src/components/GlobalNotifications.d.ts +1 -0
  269. package/dist/ee/admin/src/hooks/useAIAvailability.d.ts +1 -0
  270. package/dist/ee/admin/src/hooks/useAIUsageWarning.d.ts +5 -0
  271. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +1 -1
  272. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +1 -0
  273. package/dist/ee/admin/src/services/ai.d.ts +9 -0
  274. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  275. package/dist/ee/server/src/ai/controllers/ai.d.ts +7 -0
  276. package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -0
  277. package/dist/ee/server/src/ai/routes/ai.d.ts +13 -0
  278. package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -0
  279. package/dist/ee/server/src/controllers/admin.d.ts +3 -0
  280. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  281. package/dist/ee/server/src/controllers/index.d.ts +3 -0
  282. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  283. package/dist/ee/server/src/index.d.ts +15 -187
  284. package/dist/ee/server/src/index.d.ts.map +1 -1
  285. package/dist/server/ee/server/src/ai/controllers/ai.js +218 -0
  286. package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -0
  287. package/dist/server/ee/server/src/ai/controllers/ai.mjs +216 -0
  288. package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -0
  289. package/dist/server/ee/server/src/ai/routes/ai.js +32 -0
  290. package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -0
  291. package/dist/server/ee/server/src/ai/routes/ai.mjs +30 -0
  292. package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -0
  293. package/dist/server/ee/server/src/controllers/admin.js +4 -1
  294. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  295. package/dist/server/ee/server/src/controllers/admin.mjs +4 -1
  296. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  297. package/dist/server/ee/server/src/index.js +37 -23
  298. package/dist/server/ee/server/src/index.js.map +1 -1
  299. package/dist/server/ee/server/src/index.mjs +37 -23
  300. package/dist/server/ee/server/src/index.mjs.map +1 -1
  301. package/dist/server/server/src/controllers/admin.js +5 -1
  302. package/dist/server/server/src/controllers/admin.js.map +1 -1
  303. package/dist/server/server/src/controllers/admin.mjs +5 -1
  304. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  305. package/dist/server/server/src/controllers/authenticated-user.js +15 -0
  306. package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
  307. package/dist/server/server/src/controllers/authenticated-user.mjs +15 -0
  308. package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
  309. package/dist/server/server/src/routes/users.js +10 -0
  310. package/dist/server/server/src/routes/users.js.map +1 -1
  311. package/dist/server/server/src/routes/users.mjs +10 -0
  312. package/dist/server/server/src/routes/users.mjs.map +1 -1
  313. package/dist/server/server/src/services/user.js +113 -1
  314. package/dist/server/server/src/services/user.js.map +1 -1
  315. package/dist/server/server/src/services/user.mjs +113 -1
  316. package/dist/server/server/src/services/user.mjs.map +1 -1
  317. package/dist/server/src/controllers/admin.d.ts +2 -0
  318. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  319. package/dist/server/src/controllers/authenticated-user.d.ts +1 -0
  320. package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
  321. package/dist/server/src/controllers/index.d.ts +3 -0
  322. package/dist/server/src/controllers/index.d.ts.map +1 -1
  323. package/dist/server/src/index.d.ts +7 -0
  324. package/dist/server/src/index.d.ts.map +1 -1
  325. package/dist/server/src/routes/users.d.ts.map +1 -1
  326. package/dist/server/src/services/index.d.ts +4 -0
  327. package/dist/server/src/services/index.d.ts.map +1 -1
  328. package/dist/server/src/services/user.d.ts +4 -0
  329. package/dist/server/src/services/user.d.ts.map +1 -1
  330. package/dist/shared/contracts/admin.d.ts +1 -0
  331. package/dist/shared/contracts/admin.d.ts.map +1 -1
  332. package/dist/shared/contracts/ai.d.ts +40 -0
  333. package/dist/shared/contracts/ai.d.ts.map +1 -0
  334. package/dist/shared/contracts/users.d.ts +32 -0
  335. package/dist/shared/contracts/users.d.ts.map +1 -1
  336. package/package.json +7 -7
@@ -16,7 +16,8 @@ var baseQuery = require('../utils/baseQuery.js');
16
16
  baseQuery: baseQuery.fetchBaseQuery(),
17
17
  tagTypes: [
18
18
  'GuidedTourMeta',
19
- 'HomepageKeyStatistics'
19
+ 'HomepageKeyStatistics',
20
+ 'AIUsage'
20
21
  ],
21
22
  endpoints: ()=>({})
22
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,eAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,wBAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA;AAAwB,KAAA;IACrDC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
1
+ {"version":3,"file":"api.js","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics', 'AIUsage'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,eAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,wBAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA,uBAAA;AAAyB,QAAA;AAAU,KAAA;IAChEC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
@@ -14,7 +14,8 @@ import { fetchBaseQuery } from '../utils/baseQuery.mjs';
14
14
  baseQuery: fetchBaseQuery(),
15
15
  tagTypes: [
16
16
  'GuidedTourMeta',
17
- 'HomepageKeyStatistics'
17
+ 'HomepageKeyStatistics',
18
+ 'AIUsage'
18
19
  ],
19
20
  endpoints: ()=>({})
20
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"api.mjs","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,SAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,cAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA;AAAwB,KAAA;IACrDC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
1
+ {"version":3,"file":"api.mjs","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics', 'AIUsage'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,SAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,cAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA,uBAAA;AAAyB,QAAA;AAAU,KAAA;IAChEC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
@@ -52,6 +52,15 @@ const authService = api.adminApi.enhanceEndpoints({
52
52
  'Me'
53
53
  ]
54
54
  }),
55
+ getAiToken: builder.query({
56
+ query: ()=>({
57
+ method: 'GET',
58
+ url: '/admin/users/me/ai-token'
59
+ }),
60
+ transformResponse (res) {
61
+ return res.data;
62
+ }
63
+ }),
55
64
  /**
56
65
  * Permissions
57
66
  */ checkPermissions: builder.query({
@@ -185,13 +194,14 @@ const authService = api.adminApi.enhanceEndpoints({
185
194
  ]
186
195
  })
187
196
  }),
188
- overrideExisting: false
197
+ overrideExisting: true
189
198
  });
190
- const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
199
+ const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useGetAiTokenQuery, useLazyGetAiTokenQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
191
200
 
192
201
  exports.useAccessTokenExchangeMutation = useAccessTokenExchangeMutation;
193
202
  exports.useCheckPermissionsQuery = useCheckPermissionsQuery;
194
203
  exports.useForgotPasswordMutation = useForgotPasswordMutation;
204
+ exports.useGetAiTokenQuery = useGetAiTokenQuery;
195
205
  exports.useGetMeQuery = useGetMeQuery;
196
206
  exports.useGetMyPermissionsQuery = useGetMyPermissionsQuery;
197
207
  exports.useGetProviderOptionsQuery = useGetProviderOptionsQuery;
@@ -199,6 +209,7 @@ exports.useGetProvidersQuery = useGetProvidersQuery;
199
209
  exports.useGetRegistrationInfoQuery = useGetRegistrationInfoQuery;
200
210
  exports.useIsSSOLockedQuery = useIsSSOLockedQuery;
201
211
  exports.useLazyCheckPermissionsQuery = useLazyCheckPermissionsQuery;
212
+ exports.useLazyGetAiTokenQuery = useLazyGetAiTokenQuery;
202
213
  exports.useLoginMutation = useLoginMutation;
203
214
  exports.useLogoutMutation = useLogoutMutation;
204
215
  exports.useRegisterAdminMutation = useRegisterAdminMutation;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport { type GetOwnPermissions, type GetMe, type UpdateMe } from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: false,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport {\n type GetOwnPermissions,\n type GetMe,\n type UpdateMe,\n type GetAiToken,\n} from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n getAiToken: builder.query<GetAiToken.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/ai-token',\n }),\n transformResponse(res: GetAiToken.Response) {\n return res.data;\n },\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","getAiToken","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useGetAiTokenQuery","useLazyGetAiTokenQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
@@ -50,6 +50,15 @@ const authService = adminApi.enhanceEndpoints({
50
50
  'Me'
51
51
  ]
52
52
  }),
53
+ getAiToken: builder.query({
54
+ query: ()=>({
55
+ method: 'GET',
56
+ url: '/admin/users/me/ai-token'
57
+ }),
58
+ transformResponse (res) {
59
+ return res.data;
60
+ }
61
+ }),
53
62
  /**
54
63
  * Permissions
55
64
  */ checkPermissions: builder.query({
@@ -183,9 +192,9 @@ const authService = adminApi.enhanceEndpoints({
183
192
  ]
184
193
  })
185
194
  }),
186
- overrideExisting: false
195
+ overrideExisting: true
187
196
  });
188
- const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
197
+ const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useGetAiTokenQuery, useLazyGetAiTokenQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
189
198
 
190
- export { useAccessTokenExchangeMutation, useCheckPermissionsQuery, useForgotPasswordMutation, useGetMeQuery, useGetMyPermissionsQuery, useGetProviderOptionsQuery, useGetProvidersQuery, useGetRegistrationInfoQuery, useIsSSOLockedQuery, useLazyCheckPermissionsQuery, useLoginMutation, useLogoutMutation, useRegisterAdminMutation, useRegisterUserMutation, useResetPasswordMutation, useUpdateMeMutation, useUpdateProviderOptionsMutation };
199
+ export { useAccessTokenExchangeMutation, useCheckPermissionsQuery, useForgotPasswordMutation, useGetAiTokenQuery, useGetMeQuery, useGetMyPermissionsQuery, useGetProviderOptionsQuery, useGetProvidersQuery, useGetRegistrationInfoQuery, useIsSSOLockedQuery, useLazyCheckPermissionsQuery, useLazyGetAiTokenQuery, useLoginMutation, useLogoutMutation, useRegisterAdminMutation, useRegisterUserMutation, useResetPasswordMutation, useUpdateMeMutation, useUpdateProviderOptionsMutation };
191
200
  //# sourceMappingURL=auth.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.mjs","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport { type GetOwnPermissions, type GetMe, type UpdateMe } from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: false,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
1
+ {"version":3,"file":"auth.mjs","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport {\n type GetOwnPermissions,\n type GetMe,\n type UpdateMe,\n type GetAiToken,\n} from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n getAiToken: builder.query<GetAiToken.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/ai-token',\n }),\n transformResponse(res: GetAiToken.Response) {\n return res.data;\n },\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","getAiToken","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useGetAiTokenQuery","useLazyGetAiTokenQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
@@ -533,6 +533,7 @@ var en = {
533
533
  "app.components.NpsSurvey.dismiss-survey-label": "Dismiss survey",
534
534
  "app.components.NpsSurvey.no-recommendation": "Not at all likely",
535
535
  "app.components.NpsSurvey.happy-to-recommend": "Extremely likely",
536
+ "app.components.NpsSurvey.select-rating": "Select rating",
536
537
  "app.components.Official": "Official",
537
538
  "app.components.Onboarding.help.button": "Help button",
538
539
  "app.components.Onboarding.label.completed": "% completed",
@@ -827,6 +828,8 @@ var en = {
827
828
  submit: submit,
828
829
  "tours.contentTypeBuilder.Introduction.title": "Welcome to the Content-Type Builder!",
829
830
  "tours.contentTypeBuilder.Introduction.content": "Here you create and manage the structure of your app with collection types, single types, and reusable components. Let's dive in!",
831
+ "tours.contentTypeBuilder.AIChat.title": "Time to get started!",
832
+ "tours.contentTypeBuilder.AIChat.content": "<p>If you have any questions about the Content-Type Builder or Strapi ask them here.</p><p>Strapi AI can generate schemas tailored to your needs. Ask for exactly what you want, for example:<ul><li>Date picker</li><li>Email and password fields</li><li>Media of any type</li><li>UIDs</li></ul></p><p>Don’t be shy, try it out !</p>",
830
833
  "tours.contentTypeBuilder.CollectionTypes.title": "Collection Types",
831
834
  "tours.contentTypeBuilder.CollectionTypes.content": "These are your go-to for managing multiple entries — think blog posts or products.",
832
835
  "tours.contentTypeBuilder.SingleTypes.title": "Single Types",
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -529,6 +529,7 @@ var en = {
529
529
  "app.components.NpsSurvey.dismiss-survey-label": "Dismiss survey",
530
530
  "app.components.NpsSurvey.no-recommendation": "Not at all likely",
531
531
  "app.components.NpsSurvey.happy-to-recommend": "Extremely likely",
532
+ "app.components.NpsSurvey.select-rating": "Select rating",
532
533
  "app.components.Official": "Official",
533
534
  "app.components.Onboarding.help.button": "Help button",
534
535
  "app.components.Onboarding.label.completed": "% completed",
@@ -823,6 +824,8 @@ var en = {
823
824
  submit: submit,
824
825
  "tours.contentTypeBuilder.Introduction.title": "Welcome to the Content-Type Builder!",
825
826
  "tours.contentTypeBuilder.Introduction.content": "Here you create and manage the structure of your app with collection types, single types, and reusable components. Let's dive in!",
827
+ "tours.contentTypeBuilder.AIChat.title": "Time to get started!",
828
+ "tours.contentTypeBuilder.AIChat.content": "<p>If you have any questions about the Content-Type Builder or Strapi ask them here.</p><p>Strapi AI can generate schemas tailored to your needs. Ask for exactly what you want, for example:<ul><li>Date picker</li><li>Email and password fields</li><li>Media of any type</li><li>UIDs</li></ul></p><p>Don’t be shy, try it out !</p>",
826
829
  "tours.contentTypeBuilder.CollectionTypes.title": "Collection Types",
827
830
  "tours.contentTypeBuilder.CollectionTypes.content": "These are your go-to for managing multiple entries — think blog posts or products.",
828
831
  "tours.contentTypeBuilder.SingleTypes.title": "Single Types",
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var useAIUsageWarning = require('../hooks/useAIUsageWarning.js');
4
+
5
+ const GlobalNotifications = ()=>{
6
+ useAIUsageWarning.useAIUsageWarning();
7
+ return null;
8
+ };
9
+
10
+ exports.GlobalNotifications = GlobalNotifications;
11
+ //# sourceMappingURL=GlobalNotifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalNotifications.js","sources":["../../../../../../ee/admin/src/components/GlobalNotifications.tsx"],"sourcesContent":["import { useAIUsageWarning } from '../hooks/useAIUsageWarning';\n\nexport const GlobalNotifications = () => {\n useAIUsageWarning();\n\n return null;\n};\n"],"names":["GlobalNotifications","useAIUsageWarning"],"mappings":";;;;MAEaA,mBAAsB,GAAA,IAAA;AACjCC,IAAAA,mCAAAA,EAAAA;IAEA,OAAO,IAAA;AACT;;;;"}
@@ -0,0 +1,9 @@
1
+ import { useAIUsageWarning } from '../hooks/useAIUsageWarning.mjs';
2
+
3
+ const GlobalNotifications = ()=>{
4
+ useAIUsageWarning();
5
+ return null;
6
+ };
7
+
8
+ export { GlobalNotifications };
9
+ //# sourceMappingURL=GlobalNotifications.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalNotifications.mjs","sources":["../../../../../../ee/admin/src/components/GlobalNotifications.tsx"],"sourcesContent":["import { useAIUsageWarning } from '../hooks/useAIUsageWarning';\n\nexport const GlobalNotifications = () => {\n useAIUsageWarning();\n\n return null;\n};\n"],"names":["GlobalNotifications","useAIUsageWarning"],"mappings":";;MAEaA,mBAAsB,GAAA,IAAA;AACjCC,IAAAA,iBAAAA,EAAAA;IAEA,OAAO,IAAA;AACT;;;;"}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const useAIAvailability = ()=>{
4
+ const isAiEnabled = window.strapi.ai?.enabled !== false;
5
+ const isEE = window.strapi?.isEE;
6
+ const isAiFeatureEnabled = window.strapi.features.isEnabled('cms-ai');
7
+ return !!isEE && isAiEnabled && isAiFeatureEnabled;
8
+ };
9
+
10
+ exports.useAIAvailability = useAIAvailability;
11
+ //# sourceMappingURL=useAIAvailability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAIAvailability.js","sources":["../../../../../../ee/admin/src/hooks/useAIAvailability.ts"],"sourcesContent":["export const useAIAvailability = (): boolean => {\n const isAiEnabled = window.strapi.ai?.enabled !== false;\n const isEE = window.strapi?.isEE;\n const isAiFeatureEnabled = window.strapi.features.isEnabled('cms-ai');\n\n return !!isEE && isAiEnabled && isAiFeatureEnabled;\n};\n"],"names":["useAIAvailability","isAiEnabled","window","strapi","ai","enabled","isEE","isAiFeatureEnabled","features","isEnabled"],"mappings":";;MAAaA,iBAAoB,GAAA,IAAA;AAC/B,IAAA,MAAMC,cAAcC,MAAOC,CAAAA,MAAM,CAACC,EAAE,EAAEC,OAAY,KAAA,KAAA;IAClD,MAAMC,IAAAA,GAAOJ,MAAOC,CAAAA,MAAM,EAAEG,IAAAA;AAC5B,IAAA,MAAMC,qBAAqBL,MAAOC,CAAAA,MAAM,CAACK,QAAQ,CAACC,SAAS,CAAC,QAAA,CAAA;IAE5D,OAAO,CAAC,CAACH,IAAAA,IAAQL,WAAeM,IAAAA,kBAAAA;AAClC;;;;"}
@@ -0,0 +1,9 @@
1
+ const useAIAvailability = ()=>{
2
+ const isAiEnabled = window.strapi.ai?.enabled !== false;
3
+ const isEE = window.strapi?.isEE;
4
+ const isAiFeatureEnabled = window.strapi.features.isEnabled('cms-ai');
5
+ return !!isEE && isAiEnabled && isAiFeatureEnabled;
6
+ };
7
+
8
+ export { useAIAvailability };
9
+ //# sourceMappingURL=useAIAvailability.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAIAvailability.mjs","sources":["../../../../../../ee/admin/src/hooks/useAIAvailability.ts"],"sourcesContent":["export const useAIAvailability = (): boolean => {\n const isAiEnabled = window.strapi.ai?.enabled !== false;\n const isEE = window.strapi?.isEE;\n const isAiFeatureEnabled = window.strapi.features.isEnabled('cms-ai');\n\n return !!isEE && isAiEnabled && isAiFeatureEnabled;\n};\n"],"names":["useAIAvailability","isAiEnabled","window","strapi","ai","enabled","isEE","isAiFeatureEnabled","features","isEnabled"],"mappings":"MAAaA,iBAAoB,GAAA,IAAA;AAC/B,IAAA,MAAMC,cAAcC,MAAOC,CAAAA,MAAM,CAACC,EAAE,EAAEC,OAAY,KAAA,KAAA;IAClD,MAAMC,IAAAA,GAAOJ,MAAOC,CAAAA,MAAM,EAAEG,IAAAA;AAC5B,IAAA,MAAMC,qBAAqBL,MAAOC,CAAAA,MAAM,CAACK,QAAQ,CAACC,SAAS,CAAC,QAAA,CAAA;IAE5D,OAAO,CAAC,CAACH,IAAAA,IAAQL,WAAeM,IAAAA,kBAAAA;AAClC;;;;"}
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactRouterDom = require('react-router-dom');
5
+ var Notifications = require('../../../../admin/src/features/Notifications.js');
6
+ var ai = require('../services/ai.js');
7
+ var useAIAvailability = require('./useAIAvailability.js');
8
+
9
+ /**
10
+ * Triggers a warning notification if AI usage is above a threshold (default 80%).
11
+ * @param threshold - Usage percentage (0-1) at which to warn. Default: 0.8 (80%)
12
+ */ function useAIUsageWarning(threshold = 0.8) {
13
+ const location = reactRouterDom.useLocation();
14
+ const isAuthPage = location.pathname.startsWith('/auth');
15
+ const { toggleNotification } = Notifications.useNotification();
16
+ const isAIEnabled = useAIAvailability.useAIAvailability();
17
+ const { data, isLoading, error } = ai.useGetAIUsageQuery(undefined, {
18
+ refetchOnMountOrArgChange: true,
19
+ skip: !isAIEnabled || isAuthPage
20
+ });
21
+ const warningLevelsRef = React.useRef(new Set());
22
+ React.useEffect(()=>{
23
+ if (isAuthPage || isLoading || error || !data?.subscription?.cmsAiEnabled || !isAIEnabled) return;
24
+ const totalCredits = data.subscription.cmsAiCreditsBase;
25
+ const usedCredits = data.cmsAiCreditsUsed;
26
+ const maxCredits = data.subscription.cmsAiCreditsMaxUsage;
27
+ if (!totalCredits || totalCredits <= 0) return;
28
+ const percentUsed = usedCredits / totalCredits;
29
+ const percentDisplay = Math.round(percentUsed * 100);
30
+ const remaining = Math.max(totalCredits - usedCredits, 0);
31
+ if (percentUsed >= 1 && !warningLevelsRef.current.has(100)) {
32
+ const hasOverageAllowance = maxCredits && maxCredits > totalCredits;
33
+ if (hasOverageAllowance) {
34
+ // Overages notification (error style)
35
+ toggleNotification({
36
+ type: 'danger',
37
+ message: `You've used 100% of your AI credits. Overages are being applied.`,
38
+ timeout: 5000
39
+ });
40
+ } else {
41
+ // No overages allowed - credits exhausted
42
+ toggleNotification({
43
+ type: 'danger',
44
+ message: `You've exhausted your AI credits. No additional credits available.`,
45
+ timeout: 5000
46
+ });
47
+ }
48
+ warningLevelsRef.current.add(100);
49
+ } else if (percentUsed >= 0.9 && percentUsed < 1 && !warningLevelsRef.current.has(90)) {
50
+ // 90% warning notification
51
+ toggleNotification({
52
+ type: 'warning',
53
+ message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,
54
+ timeout: 5000
55
+ });
56
+ warningLevelsRef.current.add(90);
57
+ } else if (percentUsed >= threshold && percentUsed < 0.9 && !warningLevelsRef.current.has(Math.round(threshold * 100))) {
58
+ // Initial threshold warning (default 80%)
59
+ toggleNotification({
60
+ type: 'warning',
61
+ message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,
62
+ timeout: 5000
63
+ });
64
+ warningLevelsRef.current.add(Math.round(threshold * 100));
65
+ }
66
+ // Reset warnings if usage drops significantly (e.g., below 70%)
67
+ if (percentUsed < 0.7) {
68
+ warningLevelsRef.current.clear();
69
+ }
70
+ }, [
71
+ data,
72
+ isLoading,
73
+ error,
74
+ threshold,
75
+ toggleNotification,
76
+ isAIEnabled,
77
+ isAuthPage
78
+ ]);
79
+ }
80
+
81
+ exports.useAIUsageWarning = useAIUsageWarning;
82
+ //# sourceMappingURL=useAIUsageWarning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAIUsageWarning.js","sources":["../../../../../../ee/admin/src/hooks/useAIUsageWarning.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { useLocation } from 'react-router-dom';\n\nimport { useNotification } from '../../../../admin/src/features/Notifications';\nimport { useGetAIUsageQuery } from '../services/ai';\n\nimport { useAIAvailability } from './useAIAvailability';\n\n/**\n * Triggers a warning notification if AI usage is above a threshold (default 80%).\n * @param threshold - Usage percentage (0-1) at which to warn. Default: 0.8 (80%)\n */\nexport function useAIUsageWarning(threshold: number = 0.8) {\n const location = useLocation();\n const isAuthPage = location.pathname.startsWith('/auth');\n const { toggleNotification } = useNotification();\n const isAIEnabled = useAIAvailability();\n const { data, isLoading, error } = useGetAIUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n skip: !isAIEnabled || isAuthPage,\n });\n const warningLevelsRef = useRef(new Set<number>());\n\n useEffect(() => {\n if (isAuthPage || isLoading || error || !data?.subscription?.cmsAiEnabled || !isAIEnabled)\n return;\n\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n\n if (!totalCredits || totalCredits <= 0) return;\n\n const percentUsed = usedCredits / totalCredits;\n\n const percentDisplay = Math.round(percentUsed * 100);\n const remaining = Math.max(totalCredits - usedCredits, 0);\n\n if (percentUsed >= 1 && !warningLevelsRef.current.has(100)) {\n const hasOverageAllowance = maxCredits && maxCredits > totalCredits;\n\n if (hasOverageAllowance) {\n // Overages notification (error style)\n toggleNotification({\n type: 'danger',\n message: `You've used 100% of your AI credits. Overages are being applied.`,\n timeout: 5000,\n });\n } else {\n // No overages allowed - credits exhausted\n toggleNotification({\n type: 'danger',\n message: `You've exhausted your AI credits. No additional credits available.`,\n timeout: 5000,\n });\n }\n warningLevelsRef.current.add(100);\n } else if (percentUsed >= 0.9 && percentUsed < 1 && !warningLevelsRef.current.has(90)) {\n // 90% warning notification\n toggleNotification({\n type: 'warning',\n message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,\n timeout: 5000,\n });\n warningLevelsRef.current.add(90);\n } else if (\n percentUsed >= threshold &&\n percentUsed < 0.9 &&\n !warningLevelsRef.current.has(Math.round(threshold * 100))\n ) {\n // Initial threshold warning (default 80%)\n toggleNotification({\n type: 'warning',\n message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,\n timeout: 5000,\n });\n warningLevelsRef.current.add(Math.round(threshold * 100));\n }\n\n // Reset warnings if usage drops significantly (e.g., below 70%)\n if (percentUsed < 0.7) {\n warningLevelsRef.current.clear();\n }\n }, [data, isLoading, error, threshold, toggleNotification, isAIEnabled, isAuthPage]);\n}\n"],"names":["useAIUsageWarning","threshold","location","useLocation","isAuthPage","pathname","startsWith","toggleNotification","useNotification","isAIEnabled","useAIAvailability","data","isLoading","error","useGetAIUsageQuery","undefined","refetchOnMountOrArgChange","skip","warningLevelsRef","useRef","Set","useEffect","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","percentUsed","percentDisplay","Math","round","remaining","max","current","has","hasOverageAllowance","type","message","timeout","add","clear"],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { useRef, useEffect } from 'react';
2
+ import { useLocation } from 'react-router-dom';
3
+ import { useNotification } from '../../../../admin/src/features/Notifications.mjs';
4
+ import { useGetAIUsageQuery } from '../services/ai.mjs';
5
+ import { useAIAvailability } from './useAIAvailability.mjs';
6
+
7
+ /**
8
+ * Triggers a warning notification if AI usage is above a threshold (default 80%).
9
+ * @param threshold - Usage percentage (0-1) at which to warn. Default: 0.8 (80%)
10
+ */ function useAIUsageWarning(threshold = 0.8) {
11
+ const location = useLocation();
12
+ const isAuthPage = location.pathname.startsWith('/auth');
13
+ const { toggleNotification } = useNotification();
14
+ const isAIEnabled = useAIAvailability();
15
+ const { data, isLoading, error } = useGetAIUsageQuery(undefined, {
16
+ refetchOnMountOrArgChange: true,
17
+ skip: !isAIEnabled || isAuthPage
18
+ });
19
+ const warningLevelsRef = useRef(new Set());
20
+ useEffect(()=>{
21
+ if (isAuthPage || isLoading || error || !data?.subscription?.cmsAiEnabled || !isAIEnabled) return;
22
+ const totalCredits = data.subscription.cmsAiCreditsBase;
23
+ const usedCredits = data.cmsAiCreditsUsed;
24
+ const maxCredits = data.subscription.cmsAiCreditsMaxUsage;
25
+ if (!totalCredits || totalCredits <= 0) return;
26
+ const percentUsed = usedCredits / totalCredits;
27
+ const percentDisplay = Math.round(percentUsed * 100);
28
+ const remaining = Math.max(totalCredits - usedCredits, 0);
29
+ if (percentUsed >= 1 && !warningLevelsRef.current.has(100)) {
30
+ const hasOverageAllowance = maxCredits && maxCredits > totalCredits;
31
+ if (hasOverageAllowance) {
32
+ // Overages notification (error style)
33
+ toggleNotification({
34
+ type: 'danger',
35
+ message: `You've used 100% of your AI credits. Overages are being applied.`,
36
+ timeout: 5000
37
+ });
38
+ } else {
39
+ // No overages allowed - credits exhausted
40
+ toggleNotification({
41
+ type: 'danger',
42
+ message: `You've exhausted your AI credits. No additional credits available.`,
43
+ timeout: 5000
44
+ });
45
+ }
46
+ warningLevelsRef.current.add(100);
47
+ } else if (percentUsed >= 0.9 && percentUsed < 1 && !warningLevelsRef.current.has(90)) {
48
+ // 90% warning notification
49
+ toggleNotification({
50
+ type: 'warning',
51
+ message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,
52
+ timeout: 5000
53
+ });
54
+ warningLevelsRef.current.add(90);
55
+ } else if (percentUsed >= threshold && percentUsed < 0.9 && !warningLevelsRef.current.has(Math.round(threshold * 100))) {
56
+ // Initial threshold warning (default 80%)
57
+ toggleNotification({
58
+ type: 'warning',
59
+ message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,
60
+ timeout: 5000
61
+ });
62
+ warningLevelsRef.current.add(Math.round(threshold * 100));
63
+ }
64
+ // Reset warnings if usage drops significantly (e.g., below 70%)
65
+ if (percentUsed < 0.7) {
66
+ warningLevelsRef.current.clear();
67
+ }
68
+ }, [
69
+ data,
70
+ isLoading,
71
+ error,
72
+ threshold,
73
+ toggleNotification,
74
+ isAIEnabled,
75
+ isAuthPage
76
+ ]);
77
+ }
78
+
79
+ export { useAIUsageWarning };
80
+ //# sourceMappingURL=useAIUsageWarning.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAIUsageWarning.mjs","sources":["../../../../../../ee/admin/src/hooks/useAIUsageWarning.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { useLocation } from 'react-router-dom';\n\nimport { useNotification } from '../../../../admin/src/features/Notifications';\nimport { useGetAIUsageQuery } from '../services/ai';\n\nimport { useAIAvailability } from './useAIAvailability';\n\n/**\n * Triggers a warning notification if AI usage is above a threshold (default 80%).\n * @param threshold - Usage percentage (0-1) at which to warn. Default: 0.8 (80%)\n */\nexport function useAIUsageWarning(threshold: number = 0.8) {\n const location = useLocation();\n const isAuthPage = location.pathname.startsWith('/auth');\n const { toggleNotification } = useNotification();\n const isAIEnabled = useAIAvailability();\n const { data, isLoading, error } = useGetAIUsageQuery(undefined, {\n refetchOnMountOrArgChange: true,\n skip: !isAIEnabled || isAuthPage,\n });\n const warningLevelsRef = useRef(new Set<number>());\n\n useEffect(() => {\n if (isAuthPage || isLoading || error || !data?.subscription?.cmsAiEnabled || !isAIEnabled)\n return;\n\n const totalCredits = data.subscription.cmsAiCreditsBase;\n const usedCredits = data.cmsAiCreditsUsed;\n const maxCredits = data.subscription.cmsAiCreditsMaxUsage;\n\n if (!totalCredits || totalCredits <= 0) return;\n\n const percentUsed = usedCredits / totalCredits;\n\n const percentDisplay = Math.round(percentUsed * 100);\n const remaining = Math.max(totalCredits - usedCredits, 0);\n\n if (percentUsed >= 1 && !warningLevelsRef.current.has(100)) {\n const hasOverageAllowance = maxCredits && maxCredits > totalCredits;\n\n if (hasOverageAllowance) {\n // Overages notification (error style)\n toggleNotification({\n type: 'danger',\n message: `You've used 100% of your AI credits. Overages are being applied.`,\n timeout: 5000,\n });\n } else {\n // No overages allowed - credits exhausted\n toggleNotification({\n type: 'danger',\n message: `You've exhausted your AI credits. No additional credits available.`,\n timeout: 5000,\n });\n }\n warningLevelsRef.current.add(100);\n } else if (percentUsed >= 0.9 && percentUsed < 1 && !warningLevelsRef.current.has(90)) {\n // 90% warning notification\n toggleNotification({\n type: 'warning',\n message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,\n timeout: 5000,\n });\n warningLevelsRef.current.add(90);\n } else if (\n percentUsed >= threshold &&\n percentUsed < 0.9 &&\n !warningLevelsRef.current.has(Math.round(threshold * 100))\n ) {\n // Initial threshold warning (default 80%)\n toggleNotification({\n type: 'warning',\n message: `You've used ${percentDisplay}% of your AI credits. ${remaining} remain.`,\n timeout: 5000,\n });\n warningLevelsRef.current.add(Math.round(threshold * 100));\n }\n\n // Reset warnings if usage drops significantly (e.g., below 70%)\n if (percentUsed < 0.7) {\n warningLevelsRef.current.clear();\n }\n }, [data, isLoading, error, threshold, toggleNotification, isAIEnabled, isAuthPage]);\n}\n"],"names":["useAIUsageWarning","threshold","location","useLocation","isAuthPage","pathname","startsWith","toggleNotification","useNotification","isAIEnabled","useAIAvailability","data","isLoading","error","useGetAIUsageQuery","undefined","refetchOnMountOrArgChange","skip","warningLevelsRef","useRef","Set","useEffect","subscription","cmsAiEnabled","totalCredits","cmsAiCreditsBase","usedCredits","cmsAiCreditsUsed","maxCredits","cmsAiCreditsMaxUsage","percentUsed","percentDisplay","Math","round","remaining","max","current","has","hasOverageAllowance","type","message","timeout","add","clear"],"mappings":"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"}