@thunderid/react 1.6.0 → 1.8.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 (353) hide show
  1. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs +15 -4
  2. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs.map +1 -1
  3. package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs +36 -8
  4. package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs.map +1 -1
  5. package/dist/cjs/components/admin/AgentList/AgentList.cjs +13 -4
  6. package/dist/cjs/components/admin/AgentList/AgentList.cjs.map +1 -1
  7. package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs +70 -0
  8. package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
  9. package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs +135 -0
  10. package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs.map +1 -0
  11. package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs +82 -0
  12. package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
  13. package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs +238 -0
  14. package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs.map +1 -0
  15. package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs +55 -0
  16. package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs.map +1 -0
  17. package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs +95 -0
  18. package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs.map +1 -0
  19. package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs +8 -2
  20. package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs.map +1 -1
  21. package/dist/cjs/components/admin/GroupList/GroupList.cjs +10 -3
  22. package/dist/cjs/components/admin/GroupList/GroupList.cjs.map +1 -1
  23. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs +47 -10
  24. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +1 -1
  25. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs +48 -14
  26. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs.map +1 -1
  27. package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs +8 -2
  28. package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs.map +1 -1
  29. package/dist/cjs/components/admin/RoleList/RoleList.cjs +10 -3
  30. package/dist/cjs/components/admin/RoleList/RoleList.cjs.map +1 -1
  31. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs +8 -2
  32. package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs.map +1 -1
  33. package/dist/cjs/components/admin/UserCreate/UserCreate.cjs +15 -4
  34. package/dist/cjs/components/admin/UserCreate/UserCreate.cjs.map +1 -1
  35. package/dist/cjs/components/admin/UserDetails/UserDetails.cjs +31 -8
  36. package/dist/cjs/components/admin/UserDetails/UserDetails.cjs.map +1 -1
  37. package/dist/cjs/components/admin/UserList/UserList.cjs +13 -4
  38. package/dist/cjs/components/admin/UserList/UserList.cjs.map +1 -1
  39. package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs +62 -0
  40. package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs.map +1 -0
  41. package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs +49 -0
  42. package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs.map +1 -0
  43. package/dist/cjs/components/auth/InviteUser/InviteUser.cjs +1 -1
  44. package/dist/cjs/components/auth/flow/Consent.cjs +93 -73
  45. package/dist/cjs/components/auth/flow/Consent.cjs.map +1 -1
  46. package/dist/cjs/hooks/management/useManagementEndpoint.cjs.map +1 -1
  47. package/dist/cjs/hooks/management/useManagementRequestConfig.cjs +41 -0
  48. package/dist/cjs/hooks/management/useManagementRequestConfig.cjs.map +1 -0
  49. package/dist/cjs/index.cjs +1066 -188
  50. package/dist/components/admin/AgentCreate/AgentCreate.d.ts.map +1 -1
  51. package/dist/components/admin/AgentCreate/AgentCreate.js +16 -5
  52. package/dist/components/admin/AgentCreate/AgentCreate.js.map +1 -1
  53. package/dist/components/admin/AgentDetails/AgentDetails.d.ts.map +1 -1
  54. package/dist/components/admin/AgentDetails/AgentDetails.js +37 -9
  55. package/dist/components/admin/AgentDetails/AgentDetails.js.map +1 -1
  56. package/dist/components/admin/AgentList/AgentList.d.ts.map +1 -1
  57. package/dist/components/admin/AgentList/AgentList.js +14 -5
  58. package/dist/components/admin/AgentList/AgentList.js.map +1 -1
  59. package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts +30 -0
  60. package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
  61. package/dist/components/admin/ApplicationCreate/ApplicationCreate.js +66 -0
  62. package/dist/components/admin/ApplicationCreate/ApplicationCreate.js.map +1 -0
  63. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts +80 -0
  64. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts.map +1 -0
  65. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js +131 -0
  66. package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js.map +1 -0
  67. package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts +50 -0
  68. package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
  69. package/dist/components/admin/ApplicationDetails/ApplicationDetails.js +79 -0
  70. package/dist/components/admin/ApplicationDetails/ApplicationDetails.js.map +1 -0
  71. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts +92 -0
  72. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts.map +1 -0
  73. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js +234 -0
  74. package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js.map +1 -0
  75. package/dist/components/admin/ApplicationList/ApplicationList.d.ts +18 -0
  76. package/dist/components/admin/ApplicationList/ApplicationList.d.ts.map +1 -0
  77. package/dist/components/admin/ApplicationList/ApplicationList.js +51 -0
  78. package/dist/components/admin/ApplicationList/ApplicationList.js.map +1 -0
  79. package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts +55 -0
  80. package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts.map +1 -0
  81. package/dist/components/admin/ApplicationList/BaseApplicationList.js +93 -0
  82. package/dist/components/admin/ApplicationList/BaseApplicationList.js.map +1 -0
  83. package/dist/components/admin/GroupCreate/GroupCreate.d.ts.map +1 -1
  84. package/dist/components/admin/GroupCreate/GroupCreate.js +9 -3
  85. package/dist/components/admin/GroupCreate/GroupCreate.js.map +1 -1
  86. package/dist/components/admin/GroupList/GroupList.d.ts.map +1 -1
  87. package/dist/components/admin/GroupList/GroupList.js +11 -4
  88. package/dist/components/admin/GroupList/GroupList.js.map +1 -1
  89. package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +1 -1
  90. package/dist/components/admin/GroupMembers/GroupMembers.js +48 -11
  91. package/dist/components/admin/GroupMembers/GroupMembers.js.map +1 -1
  92. package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +1 -1
  93. package/dist/components/admin/RoleAssignments/RoleAssignments.js +49 -15
  94. package/dist/components/admin/RoleAssignments/RoleAssignments.js.map +1 -1
  95. package/dist/components/admin/RoleCreate/RoleCreate.d.ts.map +1 -1
  96. package/dist/components/admin/RoleCreate/RoleCreate.js +9 -3
  97. package/dist/components/admin/RoleCreate/RoleCreate.js.map +1 -1
  98. package/dist/components/admin/RoleList/RoleList.d.ts.map +1 -1
  99. package/dist/components/admin/RoleList/RoleList.js +11 -4
  100. package/dist/components/admin/RoleList/RoleList.js.map +1 -1
  101. package/dist/components/admin/RolePermissions/RolePermissions.d.ts.map +1 -1
  102. package/dist/components/admin/RolePermissions/RolePermissions.js +9 -3
  103. package/dist/components/admin/RolePermissions/RolePermissions.js.map +1 -1
  104. package/dist/components/admin/UserCreate/UserCreate.d.ts.map +1 -1
  105. package/dist/components/admin/UserCreate/UserCreate.js +16 -5
  106. package/dist/components/admin/UserCreate/UserCreate.js.map +1 -1
  107. package/dist/components/admin/UserDetails/UserDetails.d.ts.map +1 -1
  108. package/dist/components/admin/UserDetails/UserDetails.js +32 -9
  109. package/dist/components/admin/UserDetails/UserDetails.js.map +1 -1
  110. package/dist/components/admin/UserList/UserList.d.ts.map +1 -1
  111. package/dist/components/admin/UserList/UserList.js +14 -5
  112. package/dist/components/admin/UserList/UserList.js.map +1 -1
  113. package/dist/components/admin/shared/ApplicationFormFields.d.ts +35 -0
  114. package/dist/components/admin/shared/ApplicationFormFields.d.ts.map +1 -0
  115. package/dist/components/admin/shared/ApplicationFormFields.js +59 -0
  116. package/dist/components/admin/shared/ApplicationFormFields.js.map +1 -0
  117. package/dist/components/admin/shared/ClientSecretNotice.d.ts +16 -0
  118. package/dist/components/admin/shared/ClientSecretNotice.d.ts.map +1 -0
  119. package/dist/components/admin/shared/ClientSecretNotice.js +47 -0
  120. package/dist/components/admin/shared/ClientSecretNotice.js.map +1 -0
  121. package/dist/components/auth/InviteUser/InviteUser.js +1 -1
  122. package/dist/components/auth/flow/Consent.d.ts.map +1 -1
  123. package/dist/components/auth/flow/Consent.js +94 -75
  124. package/dist/components/auth/flow/Consent.js.map +1 -1
  125. package/dist/hooks/management/useManagementEndpoint.d.ts +5 -1
  126. package/dist/hooks/management/useManagementEndpoint.d.ts.map +1 -1
  127. package/dist/hooks/management/useManagementEndpoint.js.map +1 -1
  128. package/dist/hooks/management/useManagementRequestConfig.d.ts +22 -0
  129. package/dist/hooks/management/useManagementRequestConfig.d.ts.map +1 -0
  130. package/dist/hooks/management/useManagementRequestConfig.js +39 -0
  131. package/dist/hooks/management/useManagementRequestConfig.js.map +1 -0
  132. package/dist/index.d.ts +22 -55
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +12 -41
  135. package/dist/models/config.d.ts +3 -4
  136. package/dist/models/config.d.ts.map +1 -1
  137. package/package.json +2 -2
  138. package/dist/cjs/hooks/management/agents/useCreateAgent.cjs +0 -26
  139. package/dist/cjs/hooks/management/agents/useCreateAgent.cjs.map +0 -1
  140. package/dist/cjs/hooks/management/agents/useDeleteAgent.cjs +0 -26
  141. package/dist/cjs/hooks/management/agents/useDeleteAgent.cjs.map +0 -1
  142. package/dist/cjs/hooks/management/agents/useGetAgent.cjs +0 -30
  143. package/dist/cjs/hooks/management/agents/useGetAgent.cjs.map +0 -1
  144. package/dist/cjs/hooks/management/agents/useGetAgentGroups.cjs +0 -41
  145. package/dist/cjs/hooks/management/agents/useGetAgentGroups.cjs.map +0 -1
  146. package/dist/cjs/hooks/management/agents/useGetAgentRoles.cjs +0 -42
  147. package/dist/cjs/hooks/management/agents/useGetAgentRoles.cjs.map +0 -1
  148. package/dist/cjs/hooks/management/agents/useGetAgentTypes.cjs +0 -31
  149. package/dist/cjs/hooks/management/agents/useGetAgentTypes.cjs.map +0 -1
  150. package/dist/cjs/hooks/management/agents/useGetAgents.cjs +0 -33
  151. package/dist/cjs/hooks/management/agents/useGetAgents.cjs.map +0 -1
  152. package/dist/cjs/hooks/management/agents/useUpdateAgent.cjs +0 -27
  153. package/dist/cjs/hooks/management/agents/useUpdateAgent.cjs.map +0 -1
  154. package/dist/cjs/hooks/management/applications/useCreateApplication.cjs +0 -31
  155. package/dist/cjs/hooks/management/applications/useCreateApplication.cjs.map +0 -1
  156. package/dist/cjs/hooks/management/applications/useDeleteApplication.cjs +0 -26
  157. package/dist/cjs/hooks/management/applications/useDeleteApplication.cjs.map +0 -1
  158. package/dist/cjs/hooks/management/applications/useGetApplication.cjs +0 -35
  159. package/dist/cjs/hooks/management/applications/useGetApplication.cjs.map +0 -1
  160. package/dist/cjs/hooks/management/applications/useGetApplications.cjs +0 -36
  161. package/dist/cjs/hooks/management/applications/useGetApplications.cjs.map +0 -1
  162. package/dist/cjs/hooks/management/applications/useUpdateApplication.cjs +0 -27
  163. package/dist/cjs/hooks/management/applications/useUpdateApplication.cjs.map +0 -1
  164. package/dist/cjs/hooks/management/groups/useAddGroupMembers.cjs +0 -32
  165. package/dist/cjs/hooks/management/groups/useAddGroupMembers.cjs.map +0 -1
  166. package/dist/cjs/hooks/management/groups/useCreateGroup.cjs +0 -26
  167. package/dist/cjs/hooks/management/groups/useCreateGroup.cjs.map +0 -1
  168. package/dist/cjs/hooks/management/groups/useDeleteGroup.cjs +0 -30
  169. package/dist/cjs/hooks/management/groups/useDeleteGroup.cjs.map +0 -1
  170. package/dist/cjs/hooks/management/groups/useGetGroup.cjs +0 -30
  171. package/dist/cjs/hooks/management/groups/useGetGroup.cjs.map +0 -1
  172. package/dist/cjs/hooks/management/groups/useGetGroupMembers.cjs +0 -40
  173. package/dist/cjs/hooks/management/groups/useGetGroupMembers.cjs.map +0 -1
  174. package/dist/cjs/hooks/management/groups/useGetGroups.cjs +0 -31
  175. package/dist/cjs/hooks/management/groups/useGetGroups.cjs.map +0 -1
  176. package/dist/cjs/hooks/management/groups/useRemoveGroupMembers.cjs +0 -32
  177. package/dist/cjs/hooks/management/groups/useRemoveGroupMembers.cjs.map +0 -1
  178. package/dist/cjs/hooks/management/groups/useUpdateGroup.cjs +0 -31
  179. package/dist/cjs/hooks/management/groups/useUpdateGroup.cjs.map +0 -1
  180. package/dist/cjs/hooks/management/roles/useAddRoleAssignments.cjs +0 -27
  181. package/dist/cjs/hooks/management/roles/useAddRoleAssignments.cjs.map +0 -1
  182. package/dist/cjs/hooks/management/roles/useCreateRole.cjs +0 -26
  183. package/dist/cjs/hooks/management/roles/useCreateRole.cjs.map +0 -1
  184. package/dist/cjs/hooks/management/roles/useDeleteRole.cjs +0 -26
  185. package/dist/cjs/hooks/management/roles/useDeleteRole.cjs.map +0 -1
  186. package/dist/cjs/hooks/management/roles/useGetRole.cjs +0 -30
  187. package/dist/cjs/hooks/management/roles/useGetRole.cjs.map +0 -1
  188. package/dist/cjs/hooks/management/roles/useGetRoleAssignments.cjs +0 -42
  189. package/dist/cjs/hooks/management/roles/useGetRoleAssignments.cjs.map +0 -1
  190. package/dist/cjs/hooks/management/roles/useGetRoles.cjs +0 -31
  191. package/dist/cjs/hooks/management/roles/useGetRoles.cjs.map +0 -1
  192. package/dist/cjs/hooks/management/roles/useRemoveRoleAssignments.cjs +0 -27
  193. package/dist/cjs/hooks/management/roles/useRemoveRoleAssignments.cjs.map +0 -1
  194. package/dist/cjs/hooks/management/roles/useUpdateRole.cjs +0 -27
  195. package/dist/cjs/hooks/management/roles/useUpdateRole.cjs.map +0 -1
  196. package/dist/cjs/hooks/management/users/useCreateUser.cjs +0 -26
  197. package/dist/cjs/hooks/management/users/useCreateUser.cjs.map +0 -1
  198. package/dist/cjs/hooks/management/users/useDeleteUser.cjs +0 -26
  199. package/dist/cjs/hooks/management/users/useDeleteUser.cjs.map +0 -1
  200. package/dist/cjs/hooks/management/users/useGetUser.cjs +0 -30
  201. package/dist/cjs/hooks/management/users/useGetUser.cjs.map +0 -1
  202. package/dist/cjs/hooks/management/users/useGetUserGroups.cjs +0 -41
  203. package/dist/cjs/hooks/management/users/useGetUserGroups.cjs.map +0 -1
  204. package/dist/cjs/hooks/management/users/useGetUserTypes.cjs +0 -31
  205. package/dist/cjs/hooks/management/users/useGetUserTypes.cjs.map +0 -1
  206. package/dist/cjs/hooks/management/users/useGetUsers.cjs +0 -38
  207. package/dist/cjs/hooks/management/users/useGetUsers.cjs.map +0 -1
  208. package/dist/cjs/hooks/management/users/useUpdateUser.cjs +0 -27
  209. package/dist/cjs/hooks/management/users/useUpdateUser.cjs.map +0 -1
  210. package/dist/hooks/management/agents/useCreateAgent.d.ts +0 -11
  211. package/dist/hooks/management/agents/useCreateAgent.d.ts.map +0 -1
  212. package/dist/hooks/management/agents/useCreateAgent.js +0 -24
  213. package/dist/hooks/management/agents/useCreateAgent.js.map +0 -1
  214. package/dist/hooks/management/agents/useDeleteAgent.d.ts +0 -10
  215. package/dist/hooks/management/agents/useDeleteAgent.d.ts.map +0 -1
  216. package/dist/hooks/management/agents/useDeleteAgent.js +0 -24
  217. package/dist/hooks/management/agents/useDeleteAgent.js.map +0 -1
  218. package/dist/hooks/management/agents/useGetAgent.d.ts +0 -12
  219. package/dist/hooks/management/agents/useGetAgent.d.ts.map +0 -1
  220. package/dist/hooks/management/agents/useGetAgent.js +0 -28
  221. package/dist/hooks/management/agents/useGetAgent.js.map +0 -1
  222. package/dist/hooks/management/agents/useGetAgentGroups.d.ts +0 -16
  223. package/dist/hooks/management/agents/useGetAgentGroups.d.ts.map +0 -1
  224. package/dist/hooks/management/agents/useGetAgentGroups.js +0 -39
  225. package/dist/hooks/management/agents/useGetAgentGroups.js.map +0 -1
  226. package/dist/hooks/management/agents/useGetAgentRoles.d.ts +0 -17
  227. package/dist/hooks/management/agents/useGetAgentRoles.d.ts.map +0 -1
  228. package/dist/hooks/management/agents/useGetAgentRoles.js +0 -40
  229. package/dist/hooks/management/agents/useGetAgentRoles.js.map +0 -1
  230. package/dist/hooks/management/agents/useGetAgentTypes.d.ts +0 -15
  231. package/dist/hooks/management/agents/useGetAgentTypes.d.ts.map +0 -1
  232. package/dist/hooks/management/agents/useGetAgentTypes.js +0 -29
  233. package/dist/hooks/management/agents/useGetAgentTypes.js.map +0 -1
  234. package/dist/hooks/management/agents/useGetAgents.d.ts +0 -23
  235. package/dist/hooks/management/agents/useGetAgents.d.ts.map +0 -1
  236. package/dist/hooks/management/agents/useGetAgents.js +0 -31
  237. package/dist/hooks/management/agents/useGetAgents.js.map +0 -1
  238. package/dist/hooks/management/agents/useUpdateAgent.d.ts +0 -18
  239. package/dist/hooks/management/agents/useUpdateAgent.d.ts.map +0 -1
  240. package/dist/hooks/management/agents/useUpdateAgent.js +0 -25
  241. package/dist/hooks/management/agents/useUpdateAgent.js.map +0 -1
  242. package/dist/hooks/management/applications/useCreateApplication.d.ts +0 -16
  243. package/dist/hooks/management/applications/useCreateApplication.d.ts.map +0 -1
  244. package/dist/hooks/management/applications/useCreateApplication.js +0 -29
  245. package/dist/hooks/management/applications/useCreateApplication.js.map +0 -1
  246. package/dist/hooks/management/applications/useDeleteApplication.d.ts +0 -10
  247. package/dist/hooks/management/applications/useDeleteApplication.d.ts.map +0 -1
  248. package/dist/hooks/management/applications/useDeleteApplication.js +0 -24
  249. package/dist/hooks/management/applications/useDeleteApplication.js.map +0 -1
  250. package/dist/hooks/management/applications/useGetApplication.d.ts +0 -17
  251. package/dist/hooks/management/applications/useGetApplication.d.ts.map +0 -1
  252. package/dist/hooks/management/applications/useGetApplication.js +0 -33
  253. package/dist/hooks/management/applications/useGetApplication.js.map +0 -1
  254. package/dist/hooks/management/applications/useGetApplications.d.ts +0 -24
  255. package/dist/hooks/management/applications/useGetApplications.d.ts.map +0 -1
  256. package/dist/hooks/management/applications/useGetApplications.js +0 -34
  257. package/dist/hooks/management/applications/useGetApplications.js.map +0 -1
  258. package/dist/hooks/management/applications/useUpdateApplication.d.ts +0 -18
  259. package/dist/hooks/management/applications/useUpdateApplication.d.ts.map +0 -1
  260. package/dist/hooks/management/applications/useUpdateApplication.js +0 -25
  261. package/dist/hooks/management/applications/useUpdateApplication.js.map +0 -1
  262. package/dist/hooks/management/groups/useAddGroupMembers.d.ts +0 -24
  263. package/dist/hooks/management/groups/useAddGroupMembers.d.ts.map +0 -1
  264. package/dist/hooks/management/groups/useAddGroupMembers.js +0 -30
  265. package/dist/hooks/management/groups/useAddGroupMembers.js.map +0 -1
  266. package/dist/hooks/management/groups/useCreateGroup.d.ts +0 -11
  267. package/dist/hooks/management/groups/useCreateGroup.d.ts.map +0 -1
  268. package/dist/hooks/management/groups/useCreateGroup.js +0 -24
  269. package/dist/hooks/management/groups/useCreateGroup.js.map +0 -1
  270. package/dist/hooks/management/groups/useDeleteGroup.d.ts +0 -10
  271. package/dist/hooks/management/groups/useDeleteGroup.d.ts.map +0 -1
  272. package/dist/hooks/management/groups/useDeleteGroup.js +0 -28
  273. package/dist/hooks/management/groups/useDeleteGroup.js.map +0 -1
  274. package/dist/hooks/management/groups/useGetGroup.d.ts +0 -12
  275. package/dist/hooks/management/groups/useGetGroup.d.ts.map +0 -1
  276. package/dist/hooks/management/groups/useGetGroup.js +0 -28
  277. package/dist/hooks/management/groups/useGetGroup.js.map +0 -1
  278. package/dist/hooks/management/groups/useGetGroupMembers.d.ts +0 -20
  279. package/dist/hooks/management/groups/useGetGroupMembers.d.ts.map +0 -1
  280. package/dist/hooks/management/groups/useGetGroupMembers.js +0 -38
  281. package/dist/hooks/management/groups/useGetGroupMembers.js.map +0 -1
  282. package/dist/hooks/management/groups/useGetGroups.d.ts +0 -19
  283. package/dist/hooks/management/groups/useGetGroups.d.ts.map +0 -1
  284. package/dist/hooks/management/groups/useGetGroups.js +0 -29
  285. package/dist/hooks/management/groups/useGetGroups.js.map +0 -1
  286. package/dist/hooks/management/groups/useRemoveGroupMembers.d.ts +0 -12
  287. package/dist/hooks/management/groups/useRemoveGroupMembers.d.ts.map +0 -1
  288. package/dist/hooks/management/groups/useRemoveGroupMembers.js +0 -30
  289. package/dist/hooks/management/groups/useRemoveGroupMembers.js.map +0 -1
  290. package/dist/hooks/management/groups/useUpdateGroup.d.ts +0 -24
  291. package/dist/hooks/management/groups/useUpdateGroup.d.ts.map +0 -1
  292. package/dist/hooks/management/groups/useUpdateGroup.js +0 -29
  293. package/dist/hooks/management/groups/useUpdateGroup.js.map +0 -1
  294. package/dist/hooks/management/roles/useAddRoleAssignments.d.ts +0 -24
  295. package/dist/hooks/management/roles/useAddRoleAssignments.d.ts.map +0 -1
  296. package/dist/hooks/management/roles/useAddRoleAssignments.js +0 -25
  297. package/dist/hooks/management/roles/useAddRoleAssignments.js.map +0 -1
  298. package/dist/hooks/management/roles/useCreateRole.d.ts +0 -11
  299. package/dist/hooks/management/roles/useCreateRole.d.ts.map +0 -1
  300. package/dist/hooks/management/roles/useCreateRole.js +0 -24
  301. package/dist/hooks/management/roles/useCreateRole.js.map +0 -1
  302. package/dist/hooks/management/roles/useDeleteRole.d.ts +0 -10
  303. package/dist/hooks/management/roles/useDeleteRole.d.ts.map +0 -1
  304. package/dist/hooks/management/roles/useDeleteRole.js +0 -24
  305. package/dist/hooks/management/roles/useDeleteRole.js.map +0 -1
  306. package/dist/hooks/management/roles/useGetRole.d.ts +0 -12
  307. package/dist/hooks/management/roles/useGetRole.d.ts.map +0 -1
  308. package/dist/hooks/management/roles/useGetRole.js +0 -28
  309. package/dist/hooks/management/roles/useGetRole.js.map +0 -1
  310. package/dist/hooks/management/roles/useGetRoleAssignments.d.ts +0 -24
  311. package/dist/hooks/management/roles/useGetRoleAssignments.d.ts.map +0 -1
  312. package/dist/hooks/management/roles/useGetRoleAssignments.js +0 -40
  313. package/dist/hooks/management/roles/useGetRoleAssignments.js.map +0 -1
  314. package/dist/hooks/management/roles/useGetRoles.d.ts +0 -19
  315. package/dist/hooks/management/roles/useGetRoles.d.ts.map +0 -1
  316. package/dist/hooks/management/roles/useGetRoles.js +0 -29
  317. package/dist/hooks/management/roles/useGetRoles.js.map +0 -1
  318. package/dist/hooks/management/roles/useRemoveRoleAssignments.d.ts +0 -11
  319. package/dist/hooks/management/roles/useRemoveRoleAssignments.d.ts.map +0 -1
  320. package/dist/hooks/management/roles/useRemoveRoleAssignments.js +0 -25
  321. package/dist/hooks/management/roles/useRemoveRoleAssignments.js.map +0 -1
  322. package/dist/hooks/management/roles/useUpdateRole.d.ts +0 -24
  323. package/dist/hooks/management/roles/useUpdateRole.d.ts.map +0 -1
  324. package/dist/hooks/management/roles/useUpdateRole.js +0 -25
  325. package/dist/hooks/management/roles/useUpdateRole.js.map +0 -1
  326. package/dist/hooks/management/users/useCreateUser.d.ts +0 -11
  327. package/dist/hooks/management/users/useCreateUser.d.ts.map +0 -1
  328. package/dist/hooks/management/users/useCreateUser.js +0 -24
  329. package/dist/hooks/management/users/useCreateUser.js.map +0 -1
  330. package/dist/hooks/management/users/useDeleteUser.d.ts +0 -10
  331. package/dist/hooks/management/users/useDeleteUser.d.ts.map +0 -1
  332. package/dist/hooks/management/users/useDeleteUser.js +0 -24
  333. package/dist/hooks/management/users/useDeleteUser.js.map +0 -1
  334. package/dist/hooks/management/users/useGetUser.d.ts +0 -12
  335. package/dist/hooks/management/users/useGetUser.d.ts.map +0 -1
  336. package/dist/hooks/management/users/useGetUser.js +0 -28
  337. package/dist/hooks/management/users/useGetUser.js.map +0 -1
  338. package/dist/hooks/management/users/useGetUserGroups.d.ts +0 -16
  339. package/dist/hooks/management/users/useGetUserGroups.d.ts.map +0 -1
  340. package/dist/hooks/management/users/useGetUserGroups.js +0 -39
  341. package/dist/hooks/management/users/useGetUserGroups.js.map +0 -1
  342. package/dist/hooks/management/users/useGetUserTypes.d.ts +0 -15
  343. package/dist/hooks/management/users/useGetUserTypes.d.ts.map +0 -1
  344. package/dist/hooks/management/users/useGetUserTypes.js +0 -29
  345. package/dist/hooks/management/users/useGetUserTypes.js.map +0 -1
  346. package/dist/hooks/management/users/useGetUsers.d.ts +0 -17
  347. package/dist/hooks/management/users/useGetUsers.d.ts.map +0 -1
  348. package/dist/hooks/management/users/useGetUsers.js +0 -36
  349. package/dist/hooks/management/users/useGetUsers.js.map +0 -1
  350. package/dist/hooks/management/users/useUpdateUser.d.ts +0 -18
  351. package/dist/hooks/management/users/useUpdateUser.d.ts.map +0 -1
  352. package/dist/hooks/management/users/useUpdateUser.js +0 -25
  353. package/dist/hooks/management/users/useUpdateUser.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useCreateAgent = require('../../../hooks/management/agents/useCreateAgent.cjs');
4
- const require_useGetAgentTypes = require('../../../hooks/management/agents/useGetAgentTypes.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
5
+ const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
5
6
  const require_useDefaultOuId = require('../shared/useDefaultOuId.cjs');
6
7
  const require_BaseAgentCreate = require('./BaseAgentCreate.cjs');
7
8
  let __thunderid_browser = require("@thunderid/browser");
@@ -23,8 +24,18 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
23
24
  const AgentCreate = ({ onCreated, ouId, owner, preferences,...rest }) => {
24
25
  const { t } = require_useTranslation.default(preferences?.i18n);
25
26
  const resolvedOuId = require_useDefaultOuId.default(ouId);
26
- const { data: agentTypes } = require_useGetAgentTypes.default({ limit: 100 });
27
- const { error, isLoading, mutate } = require_useCreateAgent.default({ onSuccess: onCreated });
27
+ const agentsEndpoint = require_useManagementEndpoint.default("agents");
28
+ const agentTypesEndpoint = require_useManagementEndpoint.default("agentTypes");
29
+ const { data: agentTypes } = require_useResourceQuery.default([__thunderid_browser.AgentQueryKeys.AGENT_TYPES, { limit: 100 }], (fetcher) => (0, __thunderid_browser.getAgentTypes)({
30
+ ...agentTypesEndpoint,
31
+ fetcher,
32
+ limit: 100
33
+ }));
34
+ const { error, isLoading, mutate } = require_useResourceMutation.default((payload, fetcher) => (0, __thunderid_browser.createAgent)({
35
+ ...agentsEndpoint,
36
+ fetcher,
37
+ payload
38
+ }), () => [[__thunderid_browser.AgentQueryKeys.AGENTS]], { onSuccess: onCreated });
28
39
  const options = (0, react.useMemo)(() => (agentTypes?.types ?? []).map((agentType) => ({
29
40
  label: agentType.displayName,
30
41
  value: agentType.handle
@@ -1 +1 @@
1
- {"version":3,"file":"AgentCreate.cjs","names":["AgentCreate: FC<AgentCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","useGetAgentTypes","useCreateAgent","options: SelectOption[]","BaseAgentCreate"],"sources":["../../../../../src/components/admin/AgentCreate/AgentCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage, Agent, AgentType, SelectOption} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseAgentCreate, {AgentCreateSubmission, BaseAgentCreateProps} from './BaseAgentCreate';\nimport useCreateAgent from '../../../hooks/management/agents/useCreateAgent';\nimport useGetAgentTypes from '../../../hooks/management/agents/useGetAgentTypes';\nimport useTranslation from '../../../hooks/useTranslation';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type AgentCreateProps = Omit<BaseAgentCreateProps, 'agentTypes' | 'error' | 'isSubmitting' | 'onSubmit'> & {\n /**\n * Called with the created agent.\n */\n onCreated?: (agent: Agent) => void;\n /**\n * Organization unit the agent is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n /**\n * The person responsible for the agent. Defaults to the server's choice, usually the creator.\n */\n owner?: string;\n};\n\n/**\n * Registers an agent through the management API.\n *\n * @example\n * ```tsx\n * <AgentCreate onCreated={(agent) => navigate(`/agents/${agent.id}`)} />\n * ```\n */\nconst AgentCreate: FC<AgentCreateProps> = ({\n onCreated,\n ouId,\n owner,\n preferences,\n ...rest\n}: AgentCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const {data: agentTypes} = useGetAgentTypes({limit: 100});\n const {error, isLoading, mutate} = useCreateAgent({onSuccess: onCreated});\n\n const options: SelectOption[] = useMemo(\n () =>\n (agentTypes?.types ?? []).map((agentType: AgentType) => ({\n label: agentType.displayName,\n value: agentType.handle,\n })),\n [agentTypes],\n );\n\n const handleSubmit = ({description, name, type}: AgentCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate({description, name, ouId: resolvedOuId, owner, type});\n }\n };\n\n return (\n <BaseAgentCreate\n agentTypes={options}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.agents.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAMA,eAAqC,EACzC,WACA,MACA,OACA,YACA,GAAG,WACiC;CACpC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAM,EAAC,MAAM,eAAcC,iCAAiB,EAAC,OAAO,KAAI,CAAC;CACzD,MAAM,EAAC,OAAO,WAAW,WAAUC,+BAAe,EAAC,WAAW,WAAU,CAAC;CAEzE,MAAMC,oCAED,YAAY,SAAS,EAAE,EAAE,KAAK,eAA0B;EACvD,OAAO,UAAU;EACjB,OAAO,UAAU;EAClB,EAAE,EACL,CAAC,WAAW,CACb;CAED,MAAM,gBAAgB,EAAC,aAAa,MAAM,WAAuC;AAC/E,MAAI,aACF,CAAK,OAAO;GAAC;GAAa;GAAM,MAAM;GAAc;GAAO;GAAK,CAAC;;AAIrE,QACE,2CAACC;EACC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OACE,iEAAwC,GAAG,OAAO,4BAA4B,GAAG,EAAE,4BAA4B;EAEpG;EACb,GAAI;GACJ;;AAIN,0BAAe"}
1
+ {"version":3,"file":"AgentCreate.cjs","names":["AgentCreate: FC<AgentCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","agentsEndpoint: ManagementEndpoint","useManagementEndpoint","agentTypesEndpoint: ManagementEndpoint","useResourceQuery","AgentQueryKeys","useResourceMutation","options: SelectOption[]","BaseAgentCreate"],"sources":["../../../../../src/components/admin/AgentCreate/AgentCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Agent,\n AgentQueryKeys,\n AgentType,\n AgentTypeListResponse,\n CreateAgentRequest,\n SelectOption,\n createAgent,\n getAgentTypes,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseAgentCreate, {AgentCreateSubmission, BaseAgentCreateProps} from './BaseAgentCreate';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type AgentCreateProps = Omit<BaseAgentCreateProps, 'agentTypes' | 'error' | 'isSubmitting' | 'onSubmit'> & {\n /**\n * Called with the created agent.\n */\n onCreated?: (agent: Agent) => void;\n /**\n * Organization unit the agent is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n /**\n * The person responsible for the agent. Defaults to the server's choice, usually the creator.\n */\n owner?: string;\n};\n\n/**\n * Registers an agent through the management API.\n *\n * @example\n * ```tsx\n * <AgentCreate onCreated={(agent) => navigate(`/agents/${agent.id}`)} />\n * ```\n */\nconst AgentCreate: FC<AgentCreateProps> = ({\n onCreated,\n ouId,\n owner,\n preferences,\n ...rest\n}: AgentCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const agentTypesEndpoint: ManagementEndpoint = useManagementEndpoint('agentTypes');\n const {data: agentTypes}: ResourceQueryResult<AgentTypeListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENT_TYPES, {limit: 100}],\n (fetcher) => getAgentTypes({...agentTypesEndpoint, fetcher, limit: 100}),\n );\n const {error, isLoading, mutate}: ResourceMutationResult<Agent, CreateAgentRequest> = useResourceMutation(\n (payload: CreateAgentRequest, fetcher) => createAgent({...agentsEndpoint, fetcher, payload}),\n () => [[AgentQueryKeys.AGENTS]],\n {onSuccess: onCreated},\n );\n\n const options: SelectOption[] = useMemo(\n () =>\n (agentTypes?.types ?? []).map((agentType: AgentType) => ({\n label: agentType.displayName,\n value: agentType.handle,\n })),\n [agentTypes],\n );\n\n const handleSubmit = ({description, name, type}: AgentCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate({description, name, ouId: resolvedOuId, owner, type});\n }\n };\n\n return (\n <BaseAgentCreate\n agentTypes={options}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.agents.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAMA,eAAqC,EACzC,WACA,MACA,OACA,YACA,GAAG,WACiC;CACpC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAMC,iBAAqCC,sCAAsB,SAAS;CAC1E,MAAMC,qBAAyCD,sCAAsB,aAAa;CAClF,MAAM,EAAC,MAAM,eAA0DE,iCACrE,CAACC,mCAAe,aAAa,EAAC,OAAO,KAAI,CAAC,GACzC,mDAA0B;EAAC,GAAG;EAAoB;EAAS,OAAO;EAAI,CAAC,CACzE;CACD,MAAM,EAAC,OAAO,WAAW,WAA6DC,qCACnF,SAA6B,iDAAwB;EAAC,GAAG;EAAgB;EAAS;EAAQ,CAAC,QACtF,CAAC,CAACD,mCAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;CAED,MAAME,oCAED,YAAY,SAAS,EAAE,EAAE,KAAK,eAA0B;EACvD,OAAO,UAAU;EACjB,OAAO,UAAU;EAClB,EAAE,EACL,CAAC,WAAW,CACb;CAED,MAAM,gBAAgB,EAAC,aAAa,MAAM,WAAuC;AAC/E,MAAI,aACF,CAAK,OAAO;GAAC;GAAa;GAAM,MAAM;GAAc;GAAO;GAAK,CAAC;;AAIrE,QACE,2CAACC;EACC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OACE,iEAAwC,GAAG,OAAO,4BAA4B,GAAG,EAAE,4BAA4B;EAEpG;EACb,GAAI;GACJ;;AAIN,0BAAe"}
@@ -1,9 +1,8 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useGetAgent = require('../../../hooks/management/agents/useGetAgent.cjs');
4
- const require_useDeleteAgent = require('../../../hooks/management/agents/useDeleteAgent.cjs');
5
- const require_useGetAgentGroups = require('../../../hooks/management/agents/useGetAgentGroups.cjs');
6
- const require_useGetAgentRoles = require('../../../hooks/management/agents/useGetAgentRoles.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
5
+ const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
7
6
  const require_BaseAgentDetails = require('./BaseAgentDetails.cjs');
8
7
  let __thunderid_browser = require("@thunderid/browser");
9
8
  __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
@@ -22,10 +21,39 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
22
21
  */
23
22
  const AgentDetails = ({ agentId, deletable = false, onDeleted, preferences,...rest }) => {
24
23
  const { t } = require_useTranslation.default(preferences?.i18n);
25
- const agent = require_useGetAgent.default(agentId);
26
- const groups = require_useGetAgentGroups.default(agentId, { limit: 100 });
27
- const roles = require_useGetAgentRoles.default(agentId, { limit: 100 });
28
- const deletion = require_useDeleteAgent.default({ onSuccess: onDeleted });
24
+ const endpoint = require_useManagementEndpoint.default("agents");
25
+ const agent = require_useResourceQuery.default([__thunderid_browser.AgentQueryKeys.AGENT, agentId], (fetcher) => (0, __thunderid_browser.getAgent)({
26
+ ...endpoint,
27
+ agentId,
28
+ fetcher
29
+ }), { enabled: Boolean(agentId) });
30
+ const groups = require_useResourceQuery.default([
31
+ __thunderid_browser.GroupQueryKeys.MEMBERSHIPS,
32
+ "agent",
33
+ agentId,
34
+ { limit: 100 }
35
+ ], (fetcher) => (0, __thunderid_browser.getAgentGroups)({
36
+ ...endpoint,
37
+ agentId,
38
+ fetcher,
39
+ limit: 100
40
+ }), { enabled: Boolean(agentId) });
41
+ const roles = require_useResourceQuery.default([
42
+ __thunderid_browser.RoleQueryKeys.ROLE_ASSIGNMENTS,
43
+ "agent",
44
+ agentId,
45
+ { limit: 100 }
46
+ ], (fetcher) => (0, __thunderid_browser.getAgentRoles)({
47
+ ...endpoint,
48
+ agentId,
49
+ fetcher,
50
+ limit: 100
51
+ }), { enabled: Boolean(agentId) });
52
+ const deletion = require_useResourceMutation.default((id, fetcher) => (0, __thunderid_browser.deleteAgent)({
53
+ ...endpoint,
54
+ agentId: id,
55
+ fetcher
56
+ }), () => [[__thunderid_browser.AgentQueryKeys.AGENTS]], { onSuccess: onDeleted });
29
57
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseAgentDetails.default, {
30
58
  agent: agent.data,
31
59
  groups: groups.data?.groups,
@@ -1 +1 @@
1
- {"version":3,"file":"AgentDetails.cjs","names":["AgentDetails: FC<AgentDetailsProps>","useTranslation","useGetAgent","useGetAgentGroups","useGetAgentRoles","useDeleteAgent","BaseAgentDetails"],"sources":["../../../../../src/components/admin/AgentDetails/AgentDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toManagementErrorMessage} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseAgentDetails, {BaseAgentDetailsProps} from './BaseAgentDetails';\nimport useDeleteAgent from '../../../hooks/management/agents/useDeleteAgent';\nimport useGetAgent from '../../../hooks/management/agents/useGetAgent';\nimport useGetAgentGroups from '../../../hooks/management/agents/useGetAgentGroups';\nimport useGetAgentRoles from '../../../hooks/management/agents/useGetAgentRoles';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type AgentDetailsProps = Omit<\n BaseAgentDetailsProps,\n 'agent' | 'error' | 'groups' | 'isDeleting' | 'isLoading' | 'onDelete' | 'roles'\n> & {\n agentId: string;\n /**\n * Whether the agent can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Called after the agent has been deleted.\n */\n onDeleted?: () => void;\n};\n\n/**\n * Shows an agent with the groups and roles it holds, and optionally lets the signed-in user delete\n * it.\n *\n * @example\n * ```tsx\n * <AgentDetails agentId={agentId} deletable onDeleted={() => navigate('/agents')} />\n * ```\n */\nconst AgentDetails: FC<AgentDetailsProps> = ({\n agentId,\n deletable = false,\n onDeleted,\n preferences,\n ...rest\n}: AgentDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const agent = useGetAgent(agentId);\n const groups = useGetAgentGroups(agentId, {limit: 100});\n const roles = useGetAgentRoles(agentId, {limit: 100});\n const deletion = useDeleteAgent({onSuccess: onDeleted});\n\n return (\n <BaseAgentDetails\n agent={agent.data}\n groups={groups.data?.groups}\n roles={roles.data?.roles}\n isLoading={agent.isLoading}\n error={\n toManagementErrorMessage(t, agent.error, 'admin.agents.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.agents.details.delete.error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(agentId) : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqCA,MAAMA,gBAAuC,EAC3C,SACA,YAAY,OACZ,WACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,QAAQC,4BAAY,QAAQ;CAClC,MAAM,SAASC,kCAAkB,SAAS,EAAC,OAAO,KAAI,CAAC;CACvD,MAAM,QAAQC,iCAAiB,SAAS,EAAC,OAAO,KAAI,CAAC;CACrD,MAAM,WAAWC,+BAAe,EAAC,WAAW,WAAU,CAAC;AAEvD,QACE,2CAACC;EACC,OAAO,MAAM;EACb,QAAQ,OAAO,MAAM;EACrB,OAAO,MAAM,MAAM;EACnB,WAAW,MAAM;EACjB,yDAC2B,GAAG,MAAM,OAAO,6BAA6B,sDAC7C,GAAG,SAAS,OAAO,oCAAoC;EAElF,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,QAAQ,GAAG;EACrD;EACb,GAAI;GACJ;;AAIN,2BAAe"}
1
+ {"version":3,"file":"AgentDetails.cjs","names":["AgentDetails: FC<AgentDetailsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","agent: ResourceQueryResult<Agent>","useResourceQuery","AgentQueryKeys","groups: ResourceQueryResult<MembershipGroupListResponse>","GroupQueryKeys","roles: ResourceQueryResult<AgentRoleListResponse>","RoleQueryKeys","deletion: ResourceMutationResult<void, string>","useResourceMutation","BaseAgentDetails"],"sources":["../../../../../src/components/admin/AgentDetails/AgentDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Agent,\n AgentQueryKeys,\n AgentRoleListResponse,\n GroupQueryKeys,\n MembershipGroupListResponse,\n RoleQueryKeys,\n deleteAgent,\n getAgent,\n getAgentGroups,\n getAgentRoles,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseAgentDetails, {BaseAgentDetailsProps} from './BaseAgentDetails';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type AgentDetailsProps = Omit<\n BaseAgentDetailsProps,\n 'agent' | 'error' | 'groups' | 'isDeleting' | 'isLoading' | 'onDelete' | 'roles'\n> & {\n agentId: string;\n /**\n * Whether the agent can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Called after the agent has been deleted.\n */\n onDeleted?: () => void;\n};\n\n/**\n * Shows an agent with the groups and roles it holds, and optionally lets the signed-in user delete\n * it.\n *\n * @example\n * ```tsx\n * <AgentDetails agentId={agentId} deletable onDeleted={() => navigate('/agents')} />\n * ```\n */\nconst AgentDetails: FC<AgentDetailsProps> = ({\n agentId,\n deletable = false,\n onDeleted,\n preferences,\n ...rest\n}: AgentDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const agent: ResourceQueryResult<Agent> = useResourceQuery(\n [AgentQueryKeys.AGENT, agentId],\n (fetcher) => getAgent({...endpoint, agentId, fetcher}),\n {enabled: Boolean(agentId)},\n );\n const groups: ResourceQueryResult<MembershipGroupListResponse> = useResourceQuery(\n [GroupQueryKeys.MEMBERSHIPS, 'agent', agentId, {limit: 100}],\n (fetcher) => getAgentGroups({...endpoint, agentId, fetcher, limit: 100}),\n {enabled: Boolean(agentId)},\n );\n const roles: ResourceQueryResult<AgentRoleListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLE_ASSIGNMENTS, 'agent', agentId, {limit: 100}],\n (fetcher) => getAgentRoles({...endpoint, agentId, fetcher, limit: 100}),\n {enabled: Boolean(agentId)},\n );\n const deletion: ResourceMutationResult<void, string> = useResourceMutation(\n (id: string, fetcher) => deleteAgent({...endpoint, agentId: id, fetcher}),\n () => [[AgentQueryKeys.AGENTS]],\n {onSuccess: onDeleted},\n );\n\n return (\n <BaseAgentDetails\n agent={agent.data}\n groups={groups.data?.groups}\n roles={roles.data?.roles}\n isLoading={agent.isLoading}\n error={\n toManagementErrorMessage(t, agent.error, 'admin.agents.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.agents.details.delete.error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(agentId) : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgDA,MAAMA,gBAAuC,EAC3C,SACA,YAAY,OACZ,WACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,sCAAsB,SAAS;CACpE,MAAMC,QAAoCC,iCACxC,CAACC,mCAAe,OAAO,QAAQ,GAC9B,8CAAqB;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,EACtD,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,SAA2DF,iCAC/D;EAACG,mCAAe;EAAa;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC3D,oDAA2B;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACxE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,QAAoDJ,iCACxD;EAACK,kCAAc;EAAkB;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC/D,mDAA0B;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACvE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,WAAiDC,qCACpD,IAAY,iDAAwB;EAAC,GAAG;EAAU,SAAS;EAAI;EAAQ,CAAC,QACnE,CAAC,CAACN,mCAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;AAED,QACE,2CAACO;EACC,OAAO,MAAM;EACb,QAAQ,OAAO,MAAM;EACrB,OAAO,MAAM,MAAM;EACnB,WAAW,MAAM;EACjB,yDAC2B,GAAG,MAAM,OAAO,6BAA6B,sDAC7C,GAAG,SAAS,OAAO,oCAAoC;EAElF,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,QAAQ,GAAG;EACrD;EACb,GAAI;GACJ;;AAIN,2BAAe"}
@@ -1,6 +1,7 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
- const require_useGetAgents = require('../../../hooks/management/agents/useGetAgents.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
4
5
  const require_BaseAgentList = require('./BaseAgentList.cjs');
5
6
  let __thunderid_browser = require("@thunderid/browser");
6
7
  __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
@@ -26,11 +27,19 @@ const AgentList = ({ limit = 20, preferences, searchable = true, searchAttribute
26
27
  label: t("admin.agents.list.search.name"),
27
28
  value: "name"
28
29
  }];
29
- const { data, error, isLoading } = require_useGetAgents.default({
30
- filter: search ? (0, __thunderid_browser.toEqualityFilter)(search.attribute, search.value) : void 0,
30
+ const endpoint = require_useManagementEndpoint.default("agents");
31
+ const filter = search ? (0, __thunderid_browser.toEqualityFilter)(search.attribute, search.value) : void 0;
32
+ const { data, error, isLoading } = require_useResourceQuery.default([__thunderid_browser.AgentQueryKeys.AGENTS, {
33
+ filter,
31
34
  limit,
32
35
  offset
33
- });
36
+ }], (fetcher) => (0, __thunderid_browser.getAgents)({
37
+ ...endpoint,
38
+ fetcher,
39
+ filter,
40
+ limit,
41
+ offset
42
+ }));
34
43
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseAgentList.default, {
35
44
  agents: data?.agents ?? [],
36
45
  totalResults: data?.totalResults,
@@ -1 +1 @@
1
- {"version":3,"file":"AgentList.cjs","names":["AgentList: FC<AgentListProps>","useTranslation","attributes: SelectOption[]","useGetAgents","BaseAgentList"],"sources":["../../../../../src/components/admin/AgentList/AgentList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {toEqualityFilter, toManagementErrorMessage, SelectOption} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseAgentList, {BaseAgentListProps} from './BaseAgentList';\nimport {AdminSearchValue} from '../shared/AdminSearch';\nimport useGetAgents from '../../../hooks/management/agents/useGetAgents';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type AgentListProps = Omit<\n BaseAgentListProps,\n 'agents' | 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'onSearch' | 'search' | 'totalResults'\n> & {\n /**\n * Whether to show the search form. Agents are searched by a custom attribute, by default `name`, and\n * the server matches the whole value.\n * @default true\n */\n searchable?: boolean;\n};\n\n/**\n * Lists the agents the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <AgentList onSelect={(agent) => setSelectedAgentId(agent.id)} />\n * ```\n */\nconst AgentList: FC<AgentListProps> = ({\n limit = 20,\n preferences,\n searchable = true,\n searchAttributes,\n ...rest\n}: AgentListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const [search, setSearch] = useState<AdminSearchValue | null>(null);\n const attributes: SelectOption[] = searchAttributes ?? [{label: t('admin.agents.list.search.name'), value: 'name'}];\n const {data, error, isLoading} = useGetAgents({\n filter: search ? toEqualityFilter(search.attribute, search.value) : undefined,\n limit,\n offset,\n });\n\n return (\n <BaseAgentList\n agents={data?.agents ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.agents.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n search={search}\n searchAttributes={attributes}\n onSearch={\n searchable\n ? (next: AdminSearchValue | null): void => {\n setSearch(next);\n setOffset(0);\n }\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,aAAiC,EACrC,QAAQ,IACR,aACA,aAAa,MACb,iBACA,GAAG,WAC+B;CAClC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAM,CAAC,QAAQ,iCAA+C,KAAK;CACnE,MAAMC,aAA6B,oBAAoB,CAAC;EAAC,OAAO,EAAE,gCAAgC;EAAE,OAAO;EAAO,CAAC;CACnH,MAAM,EAAC,MAAM,OAAO,cAAaC,6BAAa;EAC5C,QAAQ,mDAA0B,OAAO,WAAW,OAAO,MAAM,GAAG;EACpE;EACA;EACD,CAAC;AAEF,QACE,2CAACC;EACC,QAAQ,MAAM,UAAU,EAAE;EAC1B,cAAc,MAAM;EACT;EACX,yDAAgC,GAAG,OAAO,0BAA0B;EAC7D;EACC;EACR,cAAc;EACN;EACR,kBAAkB;EAClB,UACE,cACK,SAAwC;AACvC,aAAU,KAAK;AACf,aAAU,EAAE;MAEd;EAEO;EACb,GAAI;GACJ;;AAIN,wBAAe"}
1
+ {"version":3,"file":"AgentList.cjs","names":["AgentList: FC<AgentListProps>","useTranslation","attributes: SelectOption[]","endpoint: ManagementEndpoint","useManagementEndpoint","filter: string | undefined","useResourceQuery","AgentQueryKeys","BaseAgentList"],"sources":["../../../../../src/components/admin/AgentList/AgentList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AgentListResponse,\n AgentQueryKeys,\n SelectOption,\n getAgents,\n toEqualityFilter,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseAgentList, {BaseAgentListProps} from './BaseAgentList';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {AdminSearchValue} from '../shared/AdminSearch';\n\nexport type AgentListProps = Omit<\n BaseAgentListProps,\n 'agents' | 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'onSearch' | 'search' | 'totalResults'\n> & {\n /**\n * Whether to show the search form. Agents are searched by a custom attribute, by default `name`, and\n * the server matches the whole value.\n * @default true\n */\n searchable?: boolean;\n};\n\n/**\n * Lists the agents the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <AgentList onSelect={(agent) => setSelectedAgentId(agent.id)} />\n * ```\n */\nconst AgentList: FC<AgentListProps> = ({\n limit = 20,\n preferences,\n searchable = true,\n searchAttributes,\n ...rest\n}: AgentListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const [search, setSearch] = useState<AdminSearchValue | null>(null);\n const attributes: SelectOption[] = searchAttributes ?? [{label: t('admin.agents.list.search.name'), value: 'name'}];\n const endpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const filter: string | undefined = search ? toEqualityFilter(search.attribute, search.value) : undefined;\n const {data, error, isLoading}: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {filter, limit, offset}],\n (fetcher) => getAgents({...endpoint, fetcher, filter, limit, offset}),\n );\n\n return (\n <BaseAgentList\n agents={data?.agents ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.agents.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n search={search}\n searchAttributes={attributes}\n onSearch={\n searchable\n ? (next: AdminSearchValue | null): void => {\n setSearch(next);\n setOffset(0);\n }\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsCA,MAAMA,aAAiC,EACrC,QAAQ,IACR,aACA,aAAa,MACb,iBACA,GAAG,WAC+B;CAClC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAM,CAAC,QAAQ,iCAA+C,KAAK;CACnE,MAAMC,aAA6B,oBAAoB,CAAC;EAAC,OAAO,EAAE,gCAAgC;EAAE,OAAO;EAAO,CAAC;CACnH,MAAMC,WAA+BC,sCAAsB,SAAS;CACpE,MAAMC,SAA6B,mDAA0B,OAAO,WAAW,OAAO,MAAM,GAAG;CAC/F,MAAM,EAAC,MAAM,OAAO,cAAqDC,iCACvE,CAACC,mCAAe,QAAQ;EAAC;EAAQ;EAAO;EAAO,CAAC,GAC/C,+CAAsB;EAAC,GAAG;EAAU;EAAS;EAAQ;EAAO;EAAO,CAAC,CACtE;AAED,QACE,2CAACC;EACC,QAAQ,MAAM,UAAU,EAAE;EAC1B,cAAc,MAAM;EACT;EACX,yDAAgC,GAAG,OAAO,0BAA0B;EAC7D;EACC;EACR,cAAc;EACN;EACR,kBAAkB;EAClB,UACE,cACK,SAAwC;AACvC,aAAU,KAAK;AACf,aAAU,EAAE;MAEd;EAEO;EACb,GAAI;GACJ;;AAIN,wBAAe"}
@@ -0,0 +1,70 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
5
+ const require_useDefaultOuId = require('../shared/useDefaultOuId.cjs');
6
+ const require_BaseApplicationCreate = require('./BaseApplicationCreate.cjs');
7
+ let __thunderid_browser = require("@thunderid/browser");
8
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
9
+ let react = require("react");
10
+ react = require_rolldown_runtime.__toESM(react);
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
13
+
14
+ //#region src/components/admin/ApplicationCreate/ApplicationCreate.tsx
15
+ /**
16
+ * Creates an application with an OAuth client through the management API, and shows its client
17
+ * secret once when the server returns one.
18
+ *
19
+ * The server guards applications with the root `system` permission, for reading and for changes alike;
20
+ * it defines no application-specific permission. Gate the view and its actions on it with
21
+ * `useGrantedPermissions().can('system')`.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <ApplicationCreate onCreated={(application) => navigate(`/applications/${application.id}`)} />
26
+ * ```
27
+ */
28
+ const ApplicationCreate = ({ onCreated, ouId, preferences,...rest }) => {
29
+ const { t } = require_useTranslation.default(preferences?.i18n);
30
+ const resolvedOuId = require_useDefaultOuId.default(ouId);
31
+ const endpoint = require_useManagementEndpoint.default("applications");
32
+ const [created, setCreated] = (0, react.useState)(null);
33
+ const [formKey, setFormKey] = (0, react.useState)(0);
34
+ const { error, isLoading, mutate } = require_useResourceMutation.default((payload, fetcher) => (0, __thunderid_browser.createApplication)({
35
+ ...endpoint,
36
+ fetcher,
37
+ payload
38
+ }), () => [[__thunderid_browser.ApplicationQueryKeys.APPLICATIONS]], { onSuccess: (application) => {
39
+ const secret = (0, __thunderid_browser.getApplicationClientSecret)(application);
40
+ if (secret) setCreated({
41
+ application,
42
+ secret
43
+ });
44
+ else onCreated?.(application);
45
+ } });
46
+ const handleSubmit = (submission) => {
47
+ if (resolvedOuId) mutate((0, __thunderid_browser.toCreateApplicationRequest)(submission, resolvedOuId));
48
+ };
49
+ const handleSecretDismiss = () => {
50
+ if (created) {
51
+ setCreated(null);
52
+ setFormKey((key) => key + 1);
53
+ onCreated?.(created.application);
54
+ }
55
+ };
56
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseApplicationCreate.default, {
57
+ onSubmit: handleSubmit,
58
+ isSubmitting: isLoading,
59
+ clientSecret: created?.secret ?? null,
60
+ onSecretDismiss: handleSecretDismiss,
61
+ error: resolvedOuId ? (0, __thunderid_browser.toManagementErrorMessage)(t, error, "admin.applications.create.error") : t("admin.common.errors.no_ou"),
62
+ preferences,
63
+ ...rest
64
+ }, formKey);
65
+ };
66
+ var ApplicationCreate_default = ApplicationCreate;
67
+
68
+ //#endregion
69
+ exports.default = ApplicationCreate_default;
70
+ //# sourceMappingURL=ApplicationCreate.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationCreate.cjs","names":["ApplicationCreate: FC<ApplicationCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","endpoint: ManagementEndpoint","useManagementEndpoint","useResourceMutation","ApplicationQueryKeys","secret: string | undefined","BaseApplicationCreate"],"sources":["../../../../../src/components/admin/ApplicationCreate/ApplicationCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Application,\n ApplicationQueryKeys,\n createApplication,\n CreateApplicationRequest,\n getApplicationClientSecret,\n toCreateApplicationRequest,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseApplicationCreate, {ApplicationCreateSubmission, BaseApplicationCreateProps} from './BaseApplicationCreate';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useTranslation from '../../../hooks/useTranslation';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type ApplicationCreateProps = Omit<\n BaseApplicationCreateProps,\n 'clientSecret' | 'error' | 'isSubmitting' | 'onSecretDismiss' | 'onSubmit'\n> & {\n /**\n * Called with the created application. When the server returned a client secret, it is called once\n * the user has copied the secret, since the secret cannot be read again.\n */\n onCreated?: (application: Application) => void;\n /**\n * Organization unit the application is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n};\n\n/**\n * Creates an application with an OAuth client through the management API, and shows its client\n * secret once when the server returns one.\n *\n * The server guards applications with the root `system` permission, for reading and for changes alike;\n * it defines no application-specific permission. Gate the view and its actions on it with\n * `useGrantedPermissions().can('system')`.\n *\n * @example\n * ```tsx\n * <ApplicationCreate onCreated={(application) => navigate(`/applications/${application.id}`)} />\n * ```\n */\nconst ApplicationCreate: FC<ApplicationCreateProps> = ({\n onCreated,\n ouId,\n preferences,\n ...rest\n}: ApplicationCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const endpoint: ManagementEndpoint = useManagementEndpoint('applications');\n const [created, setCreated] = useState<{application: Application; secret: string} | null>(null);\n const [formKey, setFormKey] = useState<number>(0);\n const {error, isLoading, mutate}: ResourceMutationResult<Application, CreateApplicationRequest> = useResourceMutation(\n (payload: CreateApplicationRequest, fetcher) => createApplication({...endpoint, fetcher, payload}),\n () => [[ApplicationQueryKeys.APPLICATIONS]],\n {\n onSuccess: (application: Application): void => {\n const secret: string | undefined = getApplicationClientSecret(application);\n\n if (secret) {\n setCreated({application, secret});\n } else {\n onCreated?.(application);\n }\n },\n },\n );\n\n const handleSubmit = (submission: ApplicationCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate(toCreateApplicationRequest(submission, resolvedOuId));\n }\n };\n\n const handleSecretDismiss = (): void => {\n if (created) {\n setCreated(null);\n setFormKey((key: number) => key + 1);\n onCreated?.(created.application);\n }\n };\n\n return (\n <BaseApplicationCreate\n key={formKey}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n clientSecret={created?.secret ?? null}\n onSecretDismiss={handleSecretDismiss}\n error={\n resolvedOuId\n ? toManagementErrorMessage(t, error, 'admin.applications.create.error')\n : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default ApplicationCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAMA,qBAAiD,EACrD,WACA,MACA,YACA,GAAG,WACuC;CAC1C,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAMC,WAA+BC,sCAAsB,eAAe;CAC1E,MAAM,CAAC,SAAS,kCAA0E,KAAK;CAC/F,MAAM,CAAC,SAAS,kCAA+B,EAAE;CACjD,MAAM,EAAC,OAAO,WAAW,WAAyEC,qCAC/F,SAAmC,uDAA8B;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,QAC5F,CAAC,CAACC,yCAAqB,aAAa,CAAC,EAC3C,EACE,YAAY,gBAAmC;EAC7C,MAAMC,6DAAwD,YAAY;AAE1E,MAAI,OACF,YAAW;GAAC;GAAa;GAAO,CAAC;MAEjC,aAAY,YAAY;IAG7B,CACF;CAED,MAAM,gBAAgB,eAAkD;AACtE,MAAI,aACF,CAAK,2DAAkC,YAAY,aAAa,CAAC;;CAIrE,MAAM,4BAAkC;AACtC,MAAI,SAAS;AACX,cAAW,KAAK;AAChB,eAAY,QAAgB,MAAM,EAAE;AACpC,eAAY,QAAQ,YAAY;;;AAIpC,QACE,2CAACC;EAEC,UAAU;EACV,cAAc;EACd,cAAc,SAAS,UAAU;EACjC,iBAAiB;EACjB,OACE,iEAC6B,GAAG,OAAO,kCAAkC,GACrE,EAAE,4BAA4B;EAEvB;EACb,GAAI;IAXC,QAYL;;AAIN,gCAAe"}
@@ -0,0 +1,135 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_useTheme = require('../../../contexts/Theme/useTheme.cjs');
3
+ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
4
+ const require_Button = require('../../primitives/Button/Button.cjs');
5
+ const require_Alert = require('../../primitives/Alert/Alert.cjs');
6
+ const require_AdminSection_styles = require('../shared/AdminSection.styles.cjs');
7
+ const require_AdminSection = require('../shared/AdminSection.cjs');
8
+ const require_ApplicationFormFields = require('../shared/ApplicationFormFields.cjs');
9
+ const require_ClientSecretNotice = require('../shared/ClientSecretNotice.cjs');
10
+ let __thunderid_browser = require("@thunderid/browser");
11
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
12
+ let react = require("react");
13
+ react = require_rolldown_runtime.__toESM(react);
14
+ let react_jsx_runtime = require("react/jsx-runtime");
15
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
16
+
17
+ //#region src/components/admin/ApplicationCreate/BaseApplicationCreate.tsx
18
+ /**
19
+ * A form that collects a new application's name, description, links and OAuth basics: redirect URIs,
20
+ * grant types and whether the client is public. Holds no data of its own: handle the submission, and
21
+ * pass back the client secret the server returned to show it once.
22
+ */
23
+ const BaseApplicationCreate = ({ children, className, clientSecret = null, description, error = null, isSubmitting = false, onCancel, onSecretDismiss, onSubmit, preferences, title }) => {
24
+ const { theme, colorScheme } = require_useTheme.default();
25
+ const styles = require_AdminSection_styles.default(theme, colorScheme);
26
+ const { t } = require_useTranslation.default(preferences?.i18n);
27
+ const [values, setValues] = (0, react.useState)({
28
+ description: "",
29
+ grantTypes: [...__thunderid_browser.DEFAULT_APPLICATION_GRANT_TYPES],
30
+ logoUrl: "",
31
+ name: "",
32
+ publicClient: false,
33
+ redirectUris: "",
34
+ url: ""
35
+ });
36
+ const submission = {
37
+ description: values.description.trim() || void 0,
38
+ grantTypes: values.grantTypes,
39
+ logoUrl: values.logoUrl.trim() || void 0,
40
+ name: values.name.trim(),
41
+ publicClient: values.publicClient,
42
+ redirectUris: (0, __thunderid_browser.parseRedirectUris)(values.redirectUris),
43
+ url: values.url.trim() || void 0
44
+ };
45
+ const isValid = (0, __thunderid_browser.isApplicationSubmissionValid)(submission);
46
+ const setInput = (field, value) => setValues((previous) => ({
47
+ ...previous,
48
+ [field]: value
49
+ }));
50
+ const setGrantTypes = (grantTypes) => setValues((previous) => ({
51
+ ...previous,
52
+ grantTypes
53
+ }));
54
+ const setPublicClient = (publicClient) => setValues((previous) => ({
55
+ ...previous,
56
+ publicClient
57
+ }));
58
+ const submit = () => {
59
+ if (isValid && !isSubmitting) onSubmit(submission);
60
+ };
61
+ const handleSubmit = (event) => {
62
+ event.preventDefault();
63
+ submit();
64
+ };
65
+ if (children) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
66
+ className,
67
+ children: children({
68
+ clientSecret,
69
+ error,
70
+ grantTypeOptions: __thunderid_browser.APPLICATION_GRANT_TYPES.map((grantType) => ({
71
+ label: t(`admin.applications.grant_types.${grantType}`),
72
+ value: grantType
73
+ })),
74
+ handleGrantTypesChange: setGrantTypes,
75
+ handleInputChange: setInput,
76
+ handlePublicClientChange: setPublicClient,
77
+ handleSubmit: submit,
78
+ isSubmitting,
79
+ isValid,
80
+ onCancel,
81
+ onSecretDismiss: clientSecret ? onSecretDismiss : void 0,
82
+ values
83
+ })
84
+ });
85
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AdminSection.default, {
86
+ block: "application-create",
87
+ className,
88
+ title: title ?? t("admin.applications.create.title"),
89
+ description,
90
+ preferences,
91
+ children: clientSecret ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ClientSecretNotice.default, {
92
+ secret: clientSecret,
93
+ onDismiss: onSecretDismiss,
94
+ preferences
95
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("form", {
96
+ className: styles["form"],
97
+ onSubmit: handleSubmit,
98
+ noValidate: true,
99
+ children: [
100
+ error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default, {
101
+ variant: "error",
102
+ role: "alert",
103
+ children: error
104
+ }),
105
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ApplicationFormFields.default, {
106
+ preferences,
107
+ values,
108
+ onInputChange: setInput,
109
+ onGrantTypesChange: setGrantTypes,
110
+ onPublicClientChange: setPublicClient
111
+ }),
112
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
113
+ className: styles["formActions"],
114
+ children: [onCancel && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
115
+ type: "button",
116
+ variant: "text",
117
+ onClick: onCancel,
118
+ disabled: isSubmitting,
119
+ children: t("admin.common.actions.cancel")
120
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
121
+ type: "submit",
122
+ loading: isSubmitting,
123
+ disabled: !isValid || isSubmitting,
124
+ children: t("admin.applications.create.submit")
125
+ })]
126
+ })
127
+ ]
128
+ })
129
+ });
130
+ };
131
+ var BaseApplicationCreate_default = BaseApplicationCreate;
132
+
133
+ //#endregion
134
+ exports.default = BaseApplicationCreate_default;
135
+ //# sourceMappingURL=BaseApplicationCreate.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseApplicationCreate.cjs","names":["BaseApplicationCreate: FC<BaseApplicationCreateProps>","useTheme","styles: Record<string, string>","useStyles","useTranslation","DEFAULT_APPLICATION_GRANT_TYPES","submission: ApplicationCreateSubmission","isValid: boolean","APPLICATION_GRANT_TYPES","AdminSection","ClientSecretNotice","Alert","ApplicationFormFields","Button"],"sources":["../../../../../src/components/admin/ApplicationCreate/BaseApplicationCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n APPLICATION_GRANT_TYPES,\n ApplicationSubmission,\n DEFAULT_APPLICATION_GRANT_TYPES,\n isApplicationSubmissionValid,\n parseRedirectUris,\n Preferences,\n SelectOption,\n} from '@thunderid/browser';\nimport {FC, FormEvent, ReactElement, ReactNode, useState} from 'react';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport Button from '../../primitives/Button/Button';\nimport AdminSection from '../shared/AdminSection';\nimport useStyles from '../shared/AdminSection.styles';\nimport ApplicationFormFields, {ApplicationFormValues, ApplicationTextField} from '../shared/ApplicationFormFields';\nimport ClientSecretNotice from '../shared/ClientSecretNotice';\n\n/**\n * The application {@link BaseApplicationCreate} submits. The organization unit is added by the caller.\n */\nexport type ApplicationCreateSubmission = ApplicationSubmission;\n\n/**\n * What {@link BaseApplicationCreate} hands its `children` render function, so the form can be built with any UI.\n */\nexport interface BaseApplicationCreateRenderProps {\n /**\n * The client secret of the application just created, to show once. `null` while there is none.\n */\n clientSecret: string | null;\n error: string | null;\n /**\n * The grant types to choose from, with translated labels.\n */\n grantTypeOptions: SelectOption[];\n /**\n * Sets the chosen grant types.\n */\n handleGrantTypesChange: (grantTypes: string[]) => void;\n /**\n * Sets one text field of the form. `redirectUris` takes URIs separated by commas.\n */\n handleInputChange: (field: ApplicationTextField, value: string) => void;\n /**\n * Sets whether the client is public.\n */\n handlePublicClientChange: (publicClient: boolean) => void;\n /**\n * Submits the current values. Does nothing while they are not valid.\n */\n handleSubmit: () => void;\n isSubmitting: boolean;\n /**\n * Whether the values can be submitted.\n */\n isValid: boolean;\n onCancel?: () => void;\n /**\n * Hides the client secret once it has been copied. Undefined while there is no secret.\n */\n onSecretDismiss?: () => void;\n values: ApplicationFormValues;\n}\n\nexport interface BaseApplicationCreateProps {\n /**\n * Renders custom UI in place of the default form. Receives the values, their setters, the grant\n * types, the submit handler, the submission state and the client secret to show.\n */\n children?: (props: BaseApplicationCreateRenderProps) => ReactNode;\n className?: string;\n /**\n * The client secret of the application just created. When set, the form gives way to the secret,\n * which can be read only this once, until `onSecretDismiss` clears it.\n */\n clientSecret?: string | null;\n description?: string;\n error?: string | null;\n isSubmitting?: boolean;\n onCancel?: () => void;\n /**\n * Called when the user has copied the client secret.\n */\n onSecretDismiss?: () => void;\n onSubmit: (application: ApplicationCreateSubmission) => void;\n preferences?: Preferences;\n title?: string;\n}\n\n/**\n * A form that collects a new application's name, description, links and OAuth basics: redirect URIs,\n * grant types and whether the client is public. Holds no data of its own: handle the submission, and\n * pass back the client secret the server returned to show it once.\n */\nconst BaseApplicationCreate: FC<BaseApplicationCreateProps> = ({\n children,\n className,\n clientSecret = null,\n description,\n error = null,\n isSubmitting = false,\n onCancel,\n onSecretDismiss,\n onSubmit,\n preferences,\n title,\n}: BaseApplicationCreateProps): ReactElement => {\n const {theme, colorScheme} = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme);\n const {t} = useTranslation(preferences?.i18n);\n const [values, setValues] = useState<ApplicationFormValues>({\n description: '',\n grantTypes: [...DEFAULT_APPLICATION_GRANT_TYPES],\n logoUrl: '',\n name: '',\n publicClient: false,\n redirectUris: '',\n url: '',\n });\n\n const submission: ApplicationCreateSubmission = {\n description: values.description.trim() || undefined,\n grantTypes: values.grantTypes,\n logoUrl: values.logoUrl.trim() || undefined,\n name: values.name.trim(),\n publicClient: values.publicClient,\n redirectUris: parseRedirectUris(values.redirectUris),\n url: values.url.trim() || undefined,\n };\n const isValid: boolean = isApplicationSubmissionValid(submission);\n\n const setInput = (field: ApplicationTextField, value: string): void =>\n setValues((previous: ApplicationFormValues) => ({...previous, [field]: value}));\n const setGrantTypes = (grantTypes: string[]): void =>\n setValues((previous: ApplicationFormValues) => ({...previous, grantTypes}));\n const setPublicClient = (publicClient: boolean): void =>\n setValues((previous: ApplicationFormValues) => ({...previous, publicClient}));\n\n const submit = (): void => {\n if (isValid && !isSubmitting) {\n onSubmit(submission);\n }\n };\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>): void => {\n event.preventDefault();\n submit();\n };\n\n if (children) {\n return (\n <div className={className}>\n {children({\n clientSecret,\n error,\n grantTypeOptions: APPLICATION_GRANT_TYPES.map((grantType: string) => ({\n label: t(`admin.applications.grant_types.${grantType}`),\n value: grantType,\n })),\n handleGrantTypesChange: setGrantTypes,\n handleInputChange: setInput,\n handlePublicClientChange: setPublicClient,\n handleSubmit: submit,\n isSubmitting,\n isValid,\n onCancel,\n onSecretDismiss: clientSecret ? onSecretDismiss : undefined,\n values,\n })}\n </div>\n );\n }\n\n return (\n <AdminSection\n block=\"application-create\"\n className={className}\n title={title ?? t('admin.applications.create.title')}\n description={description}\n preferences={preferences}\n >\n {clientSecret ? (\n <ClientSecretNotice secret={clientSecret} onDismiss={onSecretDismiss} preferences={preferences} />\n ) : (\n <form className={styles['form']} onSubmit={handleSubmit} noValidate>\n {error && (\n <Alert variant=\"error\" role=\"alert\">\n {error}\n </Alert>\n )}\n <ApplicationFormFields\n preferences={preferences}\n values={values}\n onInputChange={setInput}\n onGrantTypesChange={setGrantTypes}\n onPublicClientChange={setPublicClient}\n />\n <div className={styles['formActions']}>\n {onCancel && (\n <Button type=\"button\" variant=\"text\" onClick={onCancel} disabled={isSubmitting}>\n {t('admin.common.actions.cancel')}\n </Button>\n )}\n <Button type=\"submit\" loading={isSubmitting} disabled={!isValid || isSubmitting}>\n {t('admin.applications.create.submit')}\n </Button>\n </div>\n </form>\n )}\n </AdminSection>\n );\n};\n\nexport default BaseApplicationCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmGA,MAAMA,yBAAyD,EAC7D,UACA,WACA,eAAe,MACf,aACA,QAAQ,MACR,eAAe,OACf,UACA,iBACA,UACA,aACA,YAC8C;CAC9C,MAAM,EAAC,OAAO,gBAAeC,0BAAU;CACvC,MAAMC,SAAiCC,oCAAU,OAAO,YAAY;CACpE,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA6C;EAC1D,aAAa;EACb,YAAY,CAAC,GAAGC,oDAAgC;EAChD,SAAS;EACT,MAAM;EACN,cAAc;EACd,cAAc;EACd,KAAK;EACN,CAAC;CAEF,MAAMC,aAA0C;EAC9C,aAAa,OAAO,YAAY,MAAM,IAAI;EAC1C,YAAY,OAAO;EACnB,SAAS,OAAO,QAAQ,MAAM,IAAI;EAClC,MAAM,OAAO,KAAK,MAAM;EACxB,cAAc,OAAO;EACrB,yDAAgC,OAAO,aAAa;EACpD,KAAK,OAAO,IAAI,MAAM,IAAI;EAC3B;CACD,MAAMC,gEAAgD,WAAW;CAEjE,MAAM,YAAY,OAA6B,UAC7C,WAAW,cAAqC;EAAC,GAAG;GAAW,QAAQ;EAAM,EAAE;CACjF,MAAM,iBAAiB,eACrB,WAAW,cAAqC;EAAC,GAAG;EAAU;EAAW,EAAE;CAC7E,MAAM,mBAAmB,iBACvB,WAAW,cAAqC;EAAC,GAAG;EAAU;EAAa,EAAE;CAE/E,MAAM,eAAqB;AACzB,MAAI,WAAW,CAAC,aACd,UAAS,WAAW;;CAIxB,MAAM,gBAAgB,UAA4C;AAChE,QAAM,gBAAgB;AACtB,UAAQ;;AAGV,KAAI,SACF,QACE,2CAAC;EAAe;YACb,SAAS;GACR;GACA;GACA,kBAAkBC,4CAAwB,KAAK,eAAuB;IACpE,OAAO,EAAE,kCAAkC,YAAY;IACvD,OAAO;IACR,EAAE;GACH,wBAAwB;GACxB,mBAAmB;GACnB,0BAA0B;GAC1B,cAAc;GACd;GACA;GACA;GACA,iBAAiB,eAAe,kBAAkB;GAClD;GACD,CAAC;GACE;AAIV,QACE,2CAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,kCAAkC;EACvC;EACA;YAEZ,eACC,2CAACC;GAAmB,QAAQ;GAAc,WAAW;GAA8B;IAAe,GAElG,4CAAC;GAAK,WAAW,OAAO;GAAS,UAAU;GAAc;;IACtD,SACC,2CAACC;KAAM,SAAQ;KAAQ,MAAK;eACzB;MACK;IAEV,2CAACC;KACc;KACL;KACR,eAAe;KACf,oBAAoB;KACpB,sBAAsB;MACtB;IACF,4CAAC;KAAI,WAAW,OAAO;gBACpB,YACC,2CAACC;MAAO,MAAK;MAAS,SAAQ;MAAO,SAAS;MAAU,UAAU;gBAC/D,EAAE,8BAA8B;OAC1B,EAEX,2CAACA;MAAO,MAAK;MAAS,SAAS;MAAc,UAAU,CAAC,WAAW;gBAChE,EAAE,mCAAmC;OAC/B;MACL;;IACD;GAEI;;AAInB,oCAAe"}
@@ -0,0 +1,82 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
+ const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
4
+ const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
5
+ const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
6
+ const require_BaseApplicationDetails = require('./BaseApplicationDetails.cjs');
7
+ let __thunderid_browser = require("@thunderid/browser");
8
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
11
+
12
+ //#region src/components/admin/ApplicationDetails/ApplicationDetails.tsx
13
+ /**
14
+ * Shows an application and its OAuth configuration, and optionally lets the signed-in user edit it,
15
+ * regenerate its client secret or delete it.
16
+ *
17
+ * The server guards applications with the root `system` permission, for reading and for changes alike;
18
+ * it defines no application-specific permission. Gate the view and its actions on it with
19
+ * `useGrantedPermissions().can('system')`.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * const {can} = useGrantedPermissions();
24
+ * const isAdmin = can('system');
25
+ *
26
+ * <ApplicationDetails
27
+ * applicationId={applicationId}
28
+ * editable={isAdmin}
29
+ * deletable={isAdmin}
30
+ * secretRegenerable={isAdmin}
31
+ * onDeleted={() => navigate('/applications')}
32
+ * />
33
+ * ```
34
+ */
35
+ const ApplicationDetails = ({ applicationId, deletable = false, editable = false, onDeleted, preferences, secretRegenerable = false,...rest }) => {
36
+ const { t } = require_useTranslation.default(preferences?.i18n);
37
+ const endpoint = require_useManagementEndpoint.default("applications");
38
+ const application = require_useResourceQuery.default([__thunderid_browser.ApplicationQueryKeys.APPLICATION, applicationId], (fetcher) => (0, __thunderid_browser.getApplication)({
39
+ ...endpoint,
40
+ applicationId,
41
+ fetcher
42
+ }), { enabled: Boolean(applicationId) });
43
+ const deletion = require_useResourceMutation.default((id, fetcher) => (0, __thunderid_browser.deleteApplication)({
44
+ ...endpoint,
45
+ applicationId: id,
46
+ fetcher
47
+ }), () => [[__thunderid_browser.ApplicationQueryKeys.APPLICATIONS]], { onSuccess: onDeleted });
48
+ const update = require_useResourceMutation.default(({ application: current, changes }, fetcher) => (0, __thunderid_browser.updateApplication)({
49
+ ...endpoint,
50
+ applicationId: current.id,
51
+ fetcher,
52
+ payload: (0, __thunderid_browser.toUpdateApplicationRequest)(current, changes)
53
+ }), ({ application: current }) => [[__thunderid_browser.ApplicationQueryKeys.APPLICATION, current.id], [__thunderid_browser.ApplicationQueryKeys.APPLICATIONS]]);
54
+ const regeneration = require_useResourceMutation.default((id, fetcher) => (0, __thunderid_browser.regenerateClientSecret)({
55
+ ...endpoint,
56
+ applicationId: id,
57
+ fetcher
58
+ }), (id) => [[__thunderid_browser.ApplicationQueryKeys.APPLICATION, id], [__thunderid_browser.ApplicationQueryKeys.APPLICATIONS]]);
59
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseApplicationDetails.default, {
60
+ application: application.data,
61
+ isLoading: application.isLoading,
62
+ error: (0, __thunderid_browser.toManagementErrorMessage)(t, application.error, "admin.applications.details.error") ?? (0, __thunderid_browser.toManagementErrorMessage)(t, deletion.error, "admin.applications.details.delete.error") ?? (0, __thunderid_browser.toManagementErrorMessage)(t, update.error, "admin.applications.details.edit.error") ?? (0, __thunderid_browser.toManagementErrorMessage)(t, regeneration.error, "admin.applications.details.secret.error"),
63
+ isDeleting: deletion.isLoading,
64
+ onDelete: deletable ? () => void deletion.mutate(applicationId) : void 0,
65
+ isUpdating: update.isLoading,
66
+ onUpdate: editable && application.data ? (changes) => void update.mutate({
67
+ application: application.data,
68
+ changes
69
+ }) : void 0,
70
+ isRegeneratingSecret: regeneration.isLoading,
71
+ onRegenerateSecret: secretRegenerable ? () => void regeneration.mutate(applicationId) : void 0,
72
+ clientSecret: regeneration.data?.clientSecret ?? null,
73
+ onSecretDismiss: regeneration.reset,
74
+ preferences,
75
+ ...rest
76
+ });
77
+ };
78
+ var ApplicationDetails_default = ApplicationDetails;
79
+
80
+ //#endregion
81
+ exports.default = ApplicationDetails_default;
82
+ //# sourceMappingURL=ApplicationDetails.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationDetails.cjs","names":["ApplicationDetails: FC<ApplicationDetailsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","application: ResourceQueryResult<Application>","useResourceQuery","ApplicationQueryKeys","deletion: ResourceMutationResult<void, string>","useResourceMutation","update: ResourceMutationResult<Application, UpdateApplicationVariables>","regeneration: ResourceMutationResult<RegenerateClientSecretResult, string>","BaseApplicationDetails"],"sources":["../../../../../src/components/admin/ApplicationDetails/ApplicationDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Application,\n ApplicationQueryKeys,\n deleteApplication,\n getApplication,\n regenerateClientSecret,\n RegenerateClientSecretResult,\n toManagementErrorMessage,\n toUpdateApplicationRequest,\n updateApplication,\n} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseApplicationDetails, {\n ApplicationUpdateSubmission,\n BaseApplicationDetailsProps,\n} from './BaseApplicationDetails';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\n\ninterface UpdateApplicationVariables {\n application: Application;\n changes: ApplicationUpdateSubmission;\n}\n\nexport type ApplicationDetailsProps = Omit<\n BaseApplicationDetailsProps,\n | 'application'\n | 'clientSecret'\n | 'error'\n | 'isDeleting'\n | 'isLoading'\n | 'isRegeneratingSecret'\n | 'isUpdating'\n | 'onDelete'\n | 'onRegenerateSecret'\n | 'onSecretDismiss'\n | 'onUpdate'\n> & {\n applicationId: string;\n /**\n * Whether the application can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Whether the application's general fields, redirect URIs and grant types can be edited from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Called after the application has been deleted.\n */\n onDeleted?: () => void;\n /**\n * Whether the application's client secret can be regenerated from this view. The new secret is shown\n * once.\n * @default false\n */\n secretRegenerable?: boolean;\n};\n\n/**\n * Shows an application and its OAuth configuration, and optionally lets the signed-in user edit it,\n * regenerate its client secret or delete it.\n *\n * The server guards applications with the root `system` permission, for reading and for changes alike;\n * it defines no application-specific permission. Gate the view and its actions on it with\n * `useGrantedPermissions().can('system')`.\n *\n * @example\n * ```tsx\n * const {can} = useGrantedPermissions();\n * const isAdmin = can('system');\n *\n * <ApplicationDetails\n * applicationId={applicationId}\n * editable={isAdmin}\n * deletable={isAdmin}\n * secretRegenerable={isAdmin}\n * onDeleted={() => navigate('/applications')}\n * />\n * ```\n */\nconst ApplicationDetails: FC<ApplicationDetailsProps> = ({\n applicationId,\n deletable = false,\n editable = false,\n onDeleted,\n preferences,\n secretRegenerable = false,\n ...rest\n}: ApplicationDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('applications');\n const application: ResourceQueryResult<Application> = useResourceQuery(\n [ApplicationQueryKeys.APPLICATION, applicationId],\n (fetcher) => getApplication({...endpoint, applicationId, fetcher}),\n {enabled: Boolean(applicationId)},\n );\n const deletion: ResourceMutationResult<void, string> = useResourceMutation(\n (id: string, fetcher) => deleteApplication({...endpoint, applicationId: id, fetcher}),\n () => [[ApplicationQueryKeys.APPLICATIONS]],\n {onSuccess: onDeleted},\n );\n const update: ResourceMutationResult<Application, UpdateApplicationVariables> = useResourceMutation(\n ({application: current, changes}: UpdateApplicationVariables, fetcher) =>\n updateApplication({\n ...endpoint,\n applicationId: current.id,\n fetcher,\n payload: toUpdateApplicationRequest(current, changes),\n }),\n ({application: current}: UpdateApplicationVariables) => [\n [ApplicationQueryKeys.APPLICATION, current.id],\n [ApplicationQueryKeys.APPLICATIONS],\n ],\n );\n const regeneration: ResourceMutationResult<RegenerateClientSecretResult, string> = useResourceMutation(\n (id: string, fetcher) => regenerateClientSecret({...endpoint, applicationId: id, fetcher}),\n (id: string) => [[ApplicationQueryKeys.APPLICATION, id], [ApplicationQueryKeys.APPLICATIONS]],\n );\n\n return (\n <BaseApplicationDetails\n application={application.data}\n isLoading={application.isLoading}\n error={\n toManagementErrorMessage(t, application.error, 'admin.applications.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.applications.details.delete.error') ??\n toManagementErrorMessage(t, update.error, 'admin.applications.details.edit.error') ??\n toManagementErrorMessage(t, regeneration.error, 'admin.applications.details.secret.error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(applicationId) : undefined}\n isUpdating={update.isLoading}\n onUpdate={\n editable && application.data\n ? (changes: ApplicationUpdateSubmission): void =>\n void update.mutate({application: application.data!, changes})\n : undefined\n }\n isRegeneratingSecret={regeneration.isLoading}\n onRegenerateSecret={secretRegenerable ? (): void => void regeneration.mutate(applicationId) : undefined}\n clientSecret={regeneration.data?.clientSecret ?? null}\n onSecretDismiss={regeneration.reset}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default ApplicationDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFA,MAAMA,sBAAmD,EACvD,eACA,YAAY,OACZ,WAAW,OACX,WACA,aACA,oBAAoB,MACpB,GAAG,WACwC;CAC3C,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,sCAAsB,eAAe;CAC1E,MAAMC,cAAgDC,iCACpD,CAACC,yCAAqB,aAAa,cAAc,GAChD,oDAA2B;EAAC,GAAG;EAAU;EAAe;EAAQ,CAAC,EAClE,EAAC,SAAS,QAAQ,cAAc,EAAC,CAClC;CACD,MAAMC,WAAiDC,qCACpD,IAAY,uDAA8B;EAAC,GAAG;EAAU,eAAe;EAAI;EAAQ,CAAC,QAC/E,CAAC,CAACF,yCAAqB,aAAa,CAAC,EAC3C,EAAC,WAAW,WAAU,CACvB;CACD,MAAMG,SAA0ED,qCAC7E,EAAC,aAAa,SAAS,WAAsC,uDAC1C;EAChB,GAAG;EACH,eAAe,QAAQ;EACvB;EACA,6DAAoC,SAAS,QAAQ;EACtD,CAAC,GACH,EAAC,aAAa,cAAyC,CACtD,CAACF,yCAAqB,aAAa,QAAQ,GAAG,EAC9C,CAACA,yCAAqB,aAAa,CACpC,CACF;CACD,MAAMI,eAA6EF,qCAChF,IAAY,4DAAmC;EAAC,GAAG;EAAU,eAAe;EAAI;EAAQ,CAAC,GACzF,OAAe,CAAC,CAACF,yCAAqB,aAAa,GAAG,EAAE,CAACA,yCAAqB,aAAa,CAAC,CAC9F;AAED,QACE,2CAACK;EACC,aAAa,YAAY;EACzB,WAAW,YAAY;EACvB,yDAC2B,GAAG,YAAY,OAAO,mCAAmC,sDACzD,GAAG,SAAS,OAAO,0CAA0C,sDAC7D,GAAG,OAAO,OAAO,wCAAwC,sDACzD,GAAG,aAAa,OAAO,0CAA0C;EAE5F,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,cAAc,GAAG;EACxE,YAAY,OAAO;EACnB,UACE,YAAY,YAAY,QACnB,YACC,KAAK,OAAO,OAAO;GAAC,aAAa,YAAY;GAAO;GAAQ,CAAC,GAC/D;EAEN,sBAAsB,aAAa;EACnC,oBAAoB,0BAAgC,KAAK,aAAa,OAAO,cAAc,GAAG;EAC9F,cAAc,aAAa,MAAM,gBAAgB;EACjD,iBAAiB,aAAa;EACjB;EACb,GAAI;GACJ;;AAIN,iCAAe"}