@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
@@ -0,0 +1,49 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
+ const require_Button = require('../../primitives/Button/Button.cjs');
4
+ const require_Alert = require('../../primitives/Alert/Alert.cjs');
5
+ const require_CopyableText = require('../../primitives/CopyableText/CopyableText.cjs');
6
+ const require_useAdminPartStyles = require('./useAdminPartStyles.cjs');
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
+
10
+ //#region src/components/admin/shared/ClientSecretNotice.tsx
11
+ /**
12
+ * Shows a client secret the one time it can be read, masked until revealed, with a copy button.
13
+ */
14
+ const ClientSecretNotice = ({ onDismiss, preferences, secret }) => {
15
+ const styles = require_useAdminPartStyles.default();
16
+ const { t } = require_useTranslation.default(preferences?.i18n);
17
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18
+ className: styles["row"],
19
+ style: {
20
+ alignItems: "stretch",
21
+ flexDirection: "column"
22
+ },
23
+ children: [
24
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default, {
25
+ variant: "warning",
26
+ role: "status",
27
+ children: t("admin.applications.secret.notice")
28
+ }),
29
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CopyableText.default, {
30
+ label: t("admin.applications.secret.title"),
31
+ value: secret,
32
+ masked: true
33
+ }),
34
+ onDismiss && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
35
+ className: styles["row"],
36
+ style: { justifyContent: "flex-end" },
37
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
38
+ onClick: onDismiss,
39
+ children: t("admin.applications.secret.done")
40
+ })
41
+ })
42
+ ]
43
+ });
44
+ };
45
+ var ClientSecretNotice_default = ClientSecretNotice;
46
+
47
+ //#endregion
48
+ exports.default = ClientSecretNotice_default;
49
+ //# sourceMappingURL=ClientSecretNotice.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientSecretNotice.cjs","names":["ClientSecretNotice: FC<ClientSecretNoticeProps>","styles: Record<string, string>","useAdminPartStyles","useTranslation","Alert","CopyableText","Button"],"sources":["../../../../../src/components/admin/shared/ClientSecretNotice.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Preferences} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport useAdminPartStyles from './useAdminPartStyles';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport Button from '../../primitives/Button/Button';\nimport CopyableText from '../../primitives/CopyableText/CopyableText';\n\nexport interface ClientSecretNoticeProps {\n /**\n * Called once the secret has been copied, after which it cannot be read again.\n */\n onDismiss?: () => void;\n preferences?: Preferences;\n secret: string;\n}\n\n/**\n * Shows a client secret the one time it can be read, masked until revealed, with a copy button.\n */\nconst ClientSecretNotice: FC<ClientSecretNoticeProps> = ({\n onDismiss,\n preferences,\n secret,\n}: ClientSecretNoticeProps): ReactElement => {\n const styles: Record<string, string> = useAdminPartStyles();\n const {t} = useTranslation(preferences?.i18n);\n\n return (\n <div className={styles['row']} style={{alignItems: 'stretch', flexDirection: 'column'}}>\n <Alert variant=\"warning\" role=\"status\">\n {t('admin.applications.secret.notice')}\n </Alert>\n <CopyableText label={t('admin.applications.secret.title')} value={secret} masked />\n {onDismiss && (\n <div className={styles['row']} style={{justifyContent: 'flex-end'}}>\n <Button onClick={onDismiss}>{t('admin.applications.secret.done')}</Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default ClientSecretNotice;\n"],"mappings":";;;;;;;;;;;;;AAuBA,MAAMA,sBAAmD,EACvD,WACA,aACA,aAC2C;CAC3C,MAAMC,SAAiCC,oCAAoB;CAC3D,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;AAE7C,QACE,4CAAC;EAAI,WAAW,OAAO;EAAQ,OAAO;GAAC,YAAY;GAAW,eAAe;GAAS;;GACpF,2CAACC;IAAM,SAAQ;IAAU,MAAK;cAC3B,EAAE,mCAAmC;KAChC;GACR,2CAACC;IAAa,OAAO,EAAE,kCAAkC;IAAE,OAAO;IAAQ;KAAS;GAClF,aACC,2CAAC;IAAI,WAAW,OAAO;IAAQ,OAAO,EAAC,gBAAgB,YAAW;cAChE,2CAACC;KAAO,SAAS;eAAY,EAAE,iCAAiC;MAAU;KACtE;;GAEJ;;AAIV,iCAAe"}
@@ -1,7 +1,7 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useThunderID = require('../../../contexts/ThunderID/useThunderID.cjs');
3
- const require_useFetchUsers = require('../../../hooks/management/useFetchUsers.cjs');
4
3
  const require_useFetchAuthFlows = require('../../../hooks/auth/useFetchAuthFlows.cjs');
4
+ const require_useFetchUsers = require('../../../hooks/management/useFetchUsers.cjs');
5
5
  const require_useFetchUserTypes = require('../../../hooks/management/useFetchUserTypes.cjs');
6
6
  const require_BaseInviteUser = require('./BaseInviteUser.cjs');
7
7
  let __thunderid_browser = require("@thunderid/browser");
@@ -5,10 +5,18 @@ const require_Typography = require('../../primitives/Typography/Typography.cjs')
5
5
  const require_Toggle = require('../../primitives/Toggle/Toggle.cjs');
6
6
  const require_ConsentCheckboxList = require('./ConsentCheckboxList.cjs');
7
7
  const require_Tooltip = require('../../primitives/Tooltip/Tooltip.cjs');
8
+ let react = require("react");
9
+ react = require_rolldown_runtime.__toESM(react);
8
10
  let react_jsx_runtime = require("react/jsx-runtime");
9
11
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
10
12
 
11
13
  //#region src/components/auth/flow/Consent.tsx
14
+ const isObject = (value) => typeof value === "object" && value !== null;
15
+ /**
16
+ * Keep only well-formed prompt elements (non-null objects with a string `name`).
17
+ * @param value Raw `essential`/`optional` value from the consent payload
18
+ */
19
+ const toPromptElements = (value) => Array.isArray(value) ? value.filter((element) => isObject(element) && typeof element["name"] === "string") : [];
12
20
  /**
13
21
  * Consent component renders the list of purposes and their associated attributes (essential and optional)
14
22
  * based on the data provided by the backend. It allows users to toggle optional attributes while essential
@@ -41,21 +49,26 @@ const Consent = ({ consentData, formValues, onInputChange, children, t }) => {
41
49
  display: "flex",
42
50
  gap: "4px"
43
51
  });
44
- /** Resolve i18n keys */
45
- const resolve = (text) => {
46
- if (!text || !t) return text || "";
47
- return t(text);
48
- };
49
- const essentialInfo = resolve(`consent.essential_claims.info`);
50
- const optionalInfo = resolve(`consent.optional_claims.info`);
51
- const permissionInfo = resolve(`consent.authorize_scope.info`);
52
52
  /**
53
- * Falls back to default config values if essential/optional
54
- * keys cannot be resolved via translation files .
53
+ * Resolve an i18n key, falling back to the given value when no translation is found.
54
+ * `t` returns the key itself for missing translations, so that case is treated as "not found".
55
+ * @param key Translation key
56
+ * @param fallback Value to use when the key cannot be resolved
55
57
  */
56
- const essentialLabel = resolve(`consent.essential_claims`) || "Essential Attributes";
57
- const optionalLabel = resolve(`consent.optional_claims`) || "Optional Attributes";
58
- const permissionLabel = resolve(`consent.authorize_scope`) || "Permissions";
58
+ const resolve = (key, fallback = "") => {
59
+ const translated = t?.(key);
60
+ return translated && translated !== key ? translated : fallback;
61
+ };
62
+ const essentialInfo = resolve("consent.essential_claims.info");
63
+ const optionalInfo = resolve("consent.optional_claims.info");
64
+ const essentialPermissionInfo = resolve("consent.essential_scope.info");
65
+ const optionalPermissionInfo = resolve("consent.optional_scope.info");
66
+ const essentialLabel = resolve("consent.essential_claims", "Essential Attributes");
67
+ const optionalLabel = resolve("consent.optional_claims", "Optional Attributes");
68
+ const essentialPermissionLabel = resolve("consent.essential_scope", "Essential Permissions");
69
+ const optionalPermissionLabel = resolve("consent.optional_scope", "Optional Permissions");
70
+ const toggleAllAttributesLabel = resolve("consent.optional_claims.toggle_all", "Toggle all optional attributes");
71
+ const toggleAllPermissionsLabel = resolve("consent.optional_scope.toggle_all", "Toggle all optional permissions");
59
72
  /**
60
73
  * Method to check whether master toggle button is checked or not
61
74
  * @param purpose Purpose object
@@ -63,7 +76,7 @@ const Consent = ({ consentData, formValues, onInputChange, children, t }) => {
63
76
  */
64
77
  const handleChange = (purpose, checked) => {
65
78
  const checkValue = checked ? "true" : "false";
66
- purpose.optional.map((opt) => {
79
+ purpose.optional.forEach((opt) => {
67
80
  onInputChange(require_ConsentCheckboxList.getConsentOptionalKey(purpose.purposeId, opt.name), checkValue);
68
81
  });
69
82
  };
@@ -77,14 +90,38 @@ const Consent = ({ consentData, formValues, onInputChange, children, t }) => {
77
90
  return formValues[require_ConsentCheckboxList.getConsentOptionalKey(purpose.purposeId, opt.name)] === "true";
78
91
  });
79
92
  };
80
- if (!consentData) return null;
81
- let purposes = [];
82
- try {
83
- const parsed = typeof consentData === "string" ? JSON.parse(consentData) : consentData;
84
- purposes = Array.isArray(parsed) ? parsed : parsed.purposes || [];
85
- } catch (e) {
86
- return null;
87
- }
93
+ /**
94
+ * Renders a section title with an optional info tooltip.
95
+ * @param label Section title
96
+ * @param info Tooltip text; the tooltip is omitted when empty
97
+ */
98
+ const renderSectionTitle = (label, info) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Typography.default, {
99
+ variant: "subtitle2",
100
+ fontWeight: "bold",
101
+ children: label
102
+ }), info && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tooltip.default, {
103
+ helperText: info,
104
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Info.default, {
105
+ width: "1rem",
106
+ height: "1rem"
107
+ })
108
+ })] });
109
+ const purposes = (0, react.useMemo)(() => {
110
+ if (!consentData) return [];
111
+ let parsed;
112
+ try {
113
+ parsed = typeof consentData === "string" ? JSON.parse(consentData) : consentData;
114
+ } catch (e) {
115
+ return [];
116
+ }
117
+ const rawPurposes = Array.isArray(parsed) ? parsed : parsed?.purposes;
118
+ if (!Array.isArray(rawPurposes)) return [];
119
+ return rawPurposes.filter((purpose) => isObject(purpose) && typeof purpose["purposeId"] === "string").map((purpose) => ({
120
+ ...purpose,
121
+ essential: toPromptElements(purpose["essential"]),
122
+ optional: toPromptElements(purpose["optional"])
123
+ })).sort((a, b) => Number(b.type === "permissions") - Number(a.type === "permissions"));
124
+ }, [consentData]);
88
125
  if (purposes.length === 0) return null;
89
126
  if (children) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: children({
90
127
  formValues,
@@ -93,62 +130,45 @@ const Consent = ({ consentData, formValues, onInputChange, children, t }) => {
93
130
  }) });
94
131
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
95
132
  className: purposesContainerClass,
96
- children: purposes.map((purpose, purposeIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
97
- className: purposeItemClass,
98
- children: [purpose.essential && purpose.essential.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
99
- className: sectionClass,
100
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
101
- className: sectionHeaderClass,
102
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Typography.default, {
103
- variant: "subtitle2",
104
- fontWeight: "bold",
105
- children: essentialLabel
106
- }), essentialInfo !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tooltip.default, {
107
- helperText: essentialInfo,
108
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Info.default, {
109
- width: "1rem",
110
- height: "1rem"
111
- })
133
+ children: purposes.map((purpose, purposeIndex) => {
134
+ const isPermission = purpose.type === "permissions";
135
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
136
+ className: purposeItemClass,
137
+ children: [purpose.essential?.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
138
+ className: sectionClass,
139
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
140
+ className: sectionHeaderClass,
141
+ children: renderSectionTitle(isPermission ? essentialPermissionLabel : essentialLabel, isPermission ? essentialPermissionInfo : essentialInfo)
142
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ConsentCheckboxList.default, {
143
+ variant: "ESSENTIAL",
144
+ purpose,
145
+ formValues,
146
+ onInputChange,
147
+ t
112
148
  })]
113
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ConsentCheckboxList.default, {
114
- variant: "ESSENTIAL",
115
- purpose,
116
- formValues,
117
- onInputChange,
118
- t
119
- })]
120
- }), purpose.optional && purpose.optional.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
121
- className: sectionClass,
122
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
123
- className: optionalSectionHeaderClass,
149
+ }), purpose.optional?.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
150
+ className: sectionClass,
124
151
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
125
- className: optionalSectionLabelClass,
126
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Typography.default, {
127
- variant: "subtitle2",
128
- fontWeight: "bold",
129
- children: purpose.type === "permissions" ? permissionLabel : optionalLabel
130
- }), Boolean(purpose.type === "permissions" ? permissionInfo : optionalInfo) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tooltip.default, {
131
- helperText: purpose.type === "permissions" ? permissionInfo : optionalInfo,
132
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Info.default, {
133
- width: "1rem",
134
- height: "1rem"
135
- })
152
+ className: optionalSectionHeaderClass,
153
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
154
+ className: optionalSectionLabelClass,
155
+ children: renderSectionTitle(isPermission ? optionalPermissionLabel : optionalLabel, isPermission ? optionalPermissionInfo : optionalInfo)
156
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Toggle.default, {
157
+ id: `consent_opt_${purpose.purposeId}_all`,
158
+ checked: checkOptValue(purpose),
159
+ "aria-label": isPermission ? toggleAllPermissionsLabel : toggleAllAttributesLabel,
160
+ onChange: (e) => handleChange(purpose, e.target.checked)
136
161
  })]
137
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Toggle.default, {
138
- id: `consent_opt_${purpose.purposeId}_all`,
139
- checked: checkOptValue(purpose),
140
- "aria-label": "Toggle all optional attributes",
141
- onChange: (e) => handleChange(purpose, e.target.checked)
162
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ConsentCheckboxList.default, {
163
+ variant: "OPTIONAL",
164
+ purpose,
165
+ formValues,
166
+ onInputChange,
167
+ t
142
168
  })]
143
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ConsentCheckboxList.default, {
144
- variant: "OPTIONAL",
145
- purpose,
146
- formValues,
147
- onInputChange,
148
- t
149
169
  })]
150
- })]
151
- }, purpose.purposeId || purposeIndex))
170
+ }, purpose.purposeId || purposeIndex);
171
+ })
152
172
  });
153
173
  };
154
174
  var Consent_default = Consent;
@@ -1 +1 @@
1
- {"version":3,"file":"Consent.cjs","names":["Consent: FC<ConsentProps>","purposesContainerClass: string","css","purposeItemClass: string","sectionClass: string","sectionHeaderClass: string","optionalSectionHeaderClass: string","optionalSectionLabelClass: string","getConsentOptionalKey","purposes: ConsentPurposeData[]","parsed: ConsentPurposeData[] | {purposes: ConsentPurposeData[]}","Typography","Tooltip","Info","ConsentCheckboxList","Toggle"],"sources":["../../../../../src/components/auth/flow/Consent.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {type ConsentPurposeData, PromptElement} from '@thunderid/browser';\nimport {type ChangeEvent, FC, ReactNode} from 'react';\nimport ConsentCheckboxList, {getConsentOptionalKey} from './ConsentCheckboxList';\nimport Typography from '../../primitives/Typography/Typography';\nimport Toggle from '../../primitives/Toggle/Toggle';\nimport {Info} from '../../primitives/Icons';\nimport Tooltip from '../../primitives/Tooltip/Tooltip';\nimport {UseTranslation} from '../../../hooks/useTranslation';\nimport {css} from '../../../styles/emotion';\n\n/**\n * Backward-compatible consent purpose type exported by @thunderid/react.\n *\n * Some consumers import this name directly; keep it as an alias to the v2 model.\n */\nexport type ConsentPurpose = ConsentPurposeData;\n\n/**\n * Render props exposed by Consent when using the render-prop pattern.\n */\nexport interface ConsentRenderProps {\n /** Current form values - used to read optional checkbox state. */\n formValues: Record<string, string>;\n /** Callback invoked when a user toggles an optional attribute. */\n onInputChange: (name: string, value: string) => void;\n /** The resolved list of consent purposes parsed from `consentData`. */\n purposes: ConsentPurposeData[];\n}\n\n/**\n * Props for the Consent component.\n */\nexport interface ConsentProps {\n /**\n * Render-props callback. When provided, the default consent UI is replaced with\n * whatever JSX the callback returns. The parsed `purposes` list is injected so\n * consumers do not need to re-parse `consentData` themselves.\n *\n * @example\n * ```tsx\n * <Consent consentData={raw} formValues={formInputs} onInputChange={onChange} t={t}>\n * {({ purposes, formValues, onInputChange, t }) => (\n * <div>\n * {purposes.map(p => <MyConsentSection key={p.purposeId} purpose={p} />)}\n * </div>\n * )}\n * </Consent>\n * ```\n */\n children?: (props: ConsentRenderProps) => ReactNode;\n /**\n * The raw JSON string returned by the backend in `additionalData.consentPrompt`.\n */\n consentData?: string | ConsentPurposeData[] | {purposes: ConsentPurposeData[]};\n /**\n * Current form values - used to read optional checkbox state.\n */\n formValues: Record<string, string>;\n /**\n * Callback invoked when a user toggles an optional attribute.\n */\n onInputChange: (name: string, value: string) => void;\n\n /**\n * translation data\n */\n t?: UseTranslation['t'];\n}\n\n/**\n * Consent component renders the list of purposes and their associated attributes (essential and optional)\n * based on the data provided by the backend. It allows users to toggle optional attributes while essential\n * attributes are displayed as read-only.\n */\nconst Consent: FC<ConsentProps> = ({consentData, formValues, onInputChange, children, t}: ConsentProps) => {\n // Computed per render (not at module scope): a CSP nonce configured on <ThunderIDProvider>\n // isn't known until the provider renders, and Emotion needs it applied before any style\n // insertion happens. These are static, so Emotion's own cache dedupes the repeat calls to a\n // no-op after the first render — this isn't a real per-render cost.\n const purposesContainerClass: string = css({\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n marginTop: '0.25rem',\n });\n const purposeItemClass: string = css({paddingBottom: '1rem'});\n const sectionClass: string = css({marginTop: '0.5rem'});\n const sectionHeaderClass: string = css({alignItems: 'center', display: 'flex', gap: '4px', marginBottom: '10px'});\n const optionalSectionHeaderClass: string = css({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: '10px',\n paddingRight: '4px',\n });\n const optionalSectionLabelClass: string = css({alignItems: 'center', display: 'flex', gap: '4px'});\n\n /** Resolve i18n keys */\n const resolve = (text: string | undefined): string => {\n if (!text || !t) {\n return text || '';\n }\n return t(text);\n };\n\n const essentialInfo = resolve(`consent.essential_claims.info`);\n const optionalInfo = resolve(`consent.optional_claims.info`);\n const permissionInfo = resolve(`consent.authorize_scope.info`);\n /**\n * Falls back to default config values if essential/optional\n * keys cannot be resolved via translation files .\n */\n const essentialLabel = resolve(`consent.essential_claims`) || 'Essential Attributes';\n const optionalLabel = resolve(`consent.optional_claims`) || 'Optional Attributes';\n const permissionLabel = resolve(`consent.authorize_scope`) || 'Permissions';\n\n /**\n * Method to check whether master toggle button is checked or not\n * @param purpose Purpose object\n * @param checked boolean variable to check, whether toggle is checked or unchecked\n */\n const handleChange = (purpose: ConsentPurposeData, checked: boolean): void => {\n const checkValue = checked ? 'true' : 'false';\n purpose.optional.map((opt: PromptElement) => {\n const key: string = getConsentOptionalKey(purpose.purposeId, opt.name);\n onInputChange(key, checkValue);\n });\n };\n\n /**\n * Check all optional claims are selected or not\n * @param purpose Purpose object\n * @returns boolean value to denote all optional claims are selected\n */\n const checkOptValue = (purpose: ConsentPurposeData): boolean => {\n return purpose.optional.every((opt: PromptElement) => {\n const key: string = getConsentOptionalKey(purpose.purposeId, opt.name);\n return formValues[key] === 'true';\n });\n };\n\n if (!consentData) return null;\n\n let purposes: ConsentPurposeData[] = [];\n\n try {\n const parsed: ConsentPurposeData[] | {purposes: ConsentPurposeData[]} =\n typeof consentData === 'string' ? JSON.parse(consentData) : consentData;\n\n purposes = Array.isArray(parsed) ? parsed : parsed.purposes || [];\n } catch (e) {\n // Failed to parse consent prompt data\n return null;\n }\n\n if (purposes.length === 0) return null;\n\n if (children) {\n return <>{children({formValues, onInputChange, purposes: purposes})}</>;\n }\n\n return (\n <div className={purposesContainerClass}>\n {purposes.map((purpose: ConsentPurposeData, purposeIndex: number) => (\n <div key={purpose.purposeId || purposeIndex} className={purposeItemClass}>\n {/* TODO: Uncomment when the backend supports multiple purposes for a application */}\n {/* <Typography variant=\"h6\" fontWeight={600} gutterBottom color=\"inherit\">\n {purpose.purposeName}\n </Typography>\n <Typography variant=\"body2\" color=\"inherit\" style={{marginBottom: '1rem', opacity: 0.85}}>\n {purpose.description}\n </Typography> */}\n\n {purpose.essential && purpose.essential.length > 0 && (\n <div className={sectionClass}>\n <div className={sectionHeaderClass}>\n <Typography variant=\"subtitle2\" fontWeight=\"bold\">\n {essentialLabel}\n </Typography>\n {essentialInfo !== '' && (\n <Tooltip helperText={essentialInfo}>\n <Info width=\"1rem\" height=\"1rem\" />\n </Tooltip>\n )}\n </div>\n <ConsentCheckboxList\n variant=\"ESSENTIAL\"\n purpose={purpose}\n formValues={formValues}\n onInputChange={onInputChange}\n t={t}\n />\n </div>\n )}\n\n {purpose.optional && purpose.optional.length > 0 && (\n <div className={sectionClass}>\n <div className={optionalSectionHeaderClass}>\n <div className={optionalSectionLabelClass}>\n <Typography variant=\"subtitle2\" fontWeight=\"bold\">\n {purpose.type === 'permissions' ? permissionLabel : optionalLabel}\n </Typography>\n {/* Show tooltip for optional claims/permissions according to their type */}\n {Boolean(purpose.type === 'permissions' ? permissionInfo : optionalInfo) && (\n <Tooltip helperText={purpose.type === 'permissions' ? permissionInfo : optionalInfo}>\n <Info width=\"1rem\" height=\"1rem\" />\n </Tooltip>\n )}\n </div>\n <Toggle\n id={`consent_opt_${purpose.purposeId}_all`}\n checked={checkOptValue(purpose)}\n aria-label=\"Toggle all optional attributes\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => handleChange(purpose, e.target.checked)}\n />\n </div>\n <ConsentCheckboxList\n variant=\"OPTIONAL\"\n purpose={purpose}\n formValues={formValues}\n onInputChange={onInputChange}\n t={t}\n />\n </div>\n )}\n </div>\n ))}\n </div>\n );\n};\n\nexport default Consent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Consent.cjs","names":["Consent: FC<ConsentProps>","purposesContainerClass: string","css","purposeItemClass: string","sectionClass: string","sectionHeaderClass: string","optionalSectionHeaderClass: string","optionalSectionLabelClass: string","translated: string | undefined","getConsentOptionalKey","Typography","Tooltip","Info","purposes: ConsentPurposeData[]","parsed: unknown","rawPurposes: unknown","isPermission: boolean","ConsentCheckboxList","Toggle"],"sources":["../../../../../src/components/auth/flow/Consent.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {type ConsentPurposeData, PromptElement} from '@thunderid/browser';\nimport {type ChangeEvent, FC, ReactNode, useMemo} from 'react';\nimport ConsentCheckboxList, {getConsentOptionalKey} from './ConsentCheckboxList';\nimport Typography from '../../primitives/Typography/Typography';\nimport Toggle from '../../primitives/Toggle/Toggle';\nimport {Info} from '../../primitives/Icons';\nimport Tooltip from '../../primitives/Tooltip/Tooltip';\nimport {UseTranslation} from '../../../hooks/useTranslation';\nimport {css} from '../../../styles/emotion';\n\n/**\n * Backward-compatible consent purpose type exported by @thunderid/react.\n *\n * Some consumers import this name directly; keep it as an alias to the v2 model.\n */\nexport type ConsentPurpose = ConsentPurposeData;\n\n/**\n * Render props exposed by Consent when using the render-prop pattern.\n */\nexport interface ConsentRenderProps {\n /** Current form values - used to read optional checkbox state. */\n formValues: Record<string, string>;\n /** Callback invoked when a user toggles an optional attribute. */\n onInputChange: (name: string, value: string) => void;\n /** The resolved list of consent purposes parsed from `consentData`. */\n purposes: ConsentPurposeData[];\n}\n\n/**\n * Props for the Consent component.\n */\nexport interface ConsentProps {\n /**\n * Render-props callback. When provided, the default consent UI is replaced with\n * whatever JSX the callback returns. The parsed `purposes` list is injected so\n * consumers do not need to re-parse `consentData` themselves.\n *\n * @example\n * ```tsx\n * <Consent consentData={raw} formValues={formInputs} onInputChange={onChange} t={t}>\n * {({ purposes, formValues, onInputChange, t }) => (\n * <div>\n * {purposes.map(p => <MyConsentSection key={p.purposeId} purpose={p} />)}\n * </div>\n * )}\n * </Consent>\n * ```\n */\n children?: (props: ConsentRenderProps) => ReactNode;\n /**\n * The raw JSON string returned by the backend in `additionalData.consentPrompt`.\n */\n consentData?: string | ConsentPurposeData[] | {purposes: ConsentPurposeData[]};\n /**\n * Current form values - used to read optional checkbox state.\n */\n formValues: Record<string, string>;\n /**\n * Callback invoked when a user toggles an optional attribute.\n */\n onInputChange: (name: string, value: string) => void;\n\n /**\n * translation data\n */\n t?: UseTranslation['t'];\n}\n\nconst isObject = (value: unknown): value is Record<string, unknown> => typeof value === 'object' && value !== null;\n\n/**\n * Keep only well-formed prompt elements (non-null objects with a string `name`).\n * @param value Raw `essential`/`optional` value from the consent payload\n */\nconst toPromptElements = (value: unknown): PromptElement[] =>\n Array.isArray(value)\n ? (value.filter(\n (element: unknown) => isObject(element) && typeof element['name'] === 'string',\n ) as unknown as PromptElement[])\n : [];\n\n/**\n * Consent component renders the list of purposes and their associated attributes (essential and optional)\n * based on the data provided by the backend. It allows users to toggle optional attributes while essential\n * attributes are displayed as read-only.\n */\nconst Consent: FC<ConsentProps> = ({consentData, formValues, onInputChange, children, t}: ConsentProps) => {\n // Computed per render (not at module scope): a CSP nonce configured on <ThunderIDProvider>\n // isn't known until the provider renders, and Emotion needs it applied before any style\n // insertion happens. These are static, so Emotion's own cache dedupes the repeat calls to a\n // no-op after the first render — this isn't a real per-render cost.\n const purposesContainerClass: string = css({\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n marginTop: '0.25rem',\n });\n const purposeItemClass: string = css({paddingBottom: '1rem'});\n const sectionClass: string = css({marginTop: '0.5rem'});\n const sectionHeaderClass: string = css({alignItems: 'center', display: 'flex', gap: '4px', marginBottom: '10px'});\n const optionalSectionHeaderClass: string = css({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: '10px',\n paddingRight: '4px',\n });\n const optionalSectionLabelClass: string = css({alignItems: 'center', display: 'flex', gap: '4px'});\n\n /**\n * Resolve an i18n key, falling back to the given value when no translation is found.\n * `t` returns the key itself for missing translations, so that case is treated as \"not found\".\n * @param key Translation key\n * @param fallback Value to use when the key cannot be resolved\n */\n const resolve = (key: string, fallback = ''): string => {\n const translated: string | undefined = t?.(key);\n return translated && translated !== key ? translated : fallback;\n };\n\n const essentialInfo = resolve('consent.essential_claims.info');\n const optionalInfo = resolve('consent.optional_claims.info');\n const essentialPermissionInfo = resolve('consent.essential_scope.info');\n const optionalPermissionInfo = resolve('consent.optional_scope.info');\n const essentialLabel = resolve('consent.essential_claims', 'Essential Attributes');\n const optionalLabel = resolve('consent.optional_claims', 'Optional Attributes');\n const essentialPermissionLabel = resolve('consent.essential_scope', 'Essential Permissions');\n const optionalPermissionLabel = resolve('consent.optional_scope', 'Optional Permissions');\n const toggleAllAttributesLabel = resolve('consent.optional_claims.toggle_all', 'Toggle all optional attributes');\n const toggleAllPermissionsLabel = resolve('consent.optional_scope.toggle_all', 'Toggle all optional permissions');\n\n /**\n * Method to check whether master toggle button is checked or not\n * @param purpose Purpose object\n * @param checked boolean variable to check, whether toggle is checked or unchecked\n */\n const handleChange = (purpose: ConsentPurposeData, checked: boolean): void => {\n const checkValue = checked ? 'true' : 'false';\n purpose.optional.forEach((opt: PromptElement) => {\n const key: string = getConsentOptionalKey(purpose.purposeId, opt.name);\n onInputChange(key, checkValue);\n });\n };\n\n /**\n * Check all optional claims are selected or not\n * @param purpose Purpose object\n * @returns boolean value to denote all optional claims are selected\n */\n const checkOptValue = (purpose: ConsentPurposeData): boolean => {\n return purpose.optional.every((opt: PromptElement) => {\n const key: string = getConsentOptionalKey(purpose.purposeId, opt.name);\n return formValues[key] === 'true';\n });\n };\n\n /**\n * Renders a section title with an optional info tooltip.\n * @param label Section title\n * @param info Tooltip text; the tooltip is omitted when empty\n */\n const renderSectionTitle = (label: string, info: string): ReactNode => (\n <>\n <Typography variant=\"subtitle2\" fontWeight=\"bold\">\n {label}\n </Typography>\n {info && (\n <Tooltip helperText={info}>\n <Info width=\"1rem\" height=\"1rem\" />\n </Tooltip>\n )}\n </>\n );\n\n // Parse, validate and order the purposes once per `consentData` change rather than on every render\n // (e.g. each `formValues` update). Must run before any early return to respect the rules of hooks.\n const purposes: ConsentPurposeData[] = useMemo((): ConsentPurposeData[] => {\n if (!consentData) return [];\n\n let parsed: unknown;\n\n try {\n parsed = typeof consentData === 'string' ? JSON.parse(consentData) : consentData;\n } catch (e) {\n // Failed to parse consent prompt data\n return [];\n }\n\n const rawPurposes: unknown = Array.isArray(parsed) ? parsed : (parsed as {purposes?: unknown})?.purposes;\n\n if (!Array.isArray(rawPurposes)) return [];\n\n // `JSON.parse` doesn't validate the shape, so drop malformed purposes and elements here\n // instead of letting the sort or the render read properties off `null`. Purposes without a\n // `purposeId` are omitted too, since it keys the optional-element form values and they would collide.\n const normalized: ConsentPurposeData[] = rawPurposes\n .filter(\n (purpose: unknown): purpose is Record<string, unknown> =>\n isObject(purpose) && typeof purpose['purposeId'] === 'string',\n )\n .map(\n (purpose: Record<string, unknown>): ConsentPurposeData => ({\n ...(purpose as unknown as ConsentPurposeData),\n essential: toPromptElements(purpose['essential']),\n optional: toPromptElements(purpose['optional']),\n }),\n );\n\n // Order purposes so that permissions come first and attributes come last.\n // `normalized` is already a copy, so sorting doesn't mutate the caller's data; Array.prototype.sort\n // is stable, so purposes of the same type keep their original order.\n return normalized.sort(\n (a: ConsentPurposeData, b: ConsentPurposeData) =>\n Number(b.type === 'permissions') - Number(a.type === 'permissions'),\n );\n }, [consentData]);\n\n if (purposes.length === 0) return null;\n\n if (children) {\n return <>{children({formValues, onInputChange, purposes: purposes})}</>;\n }\n\n return (\n <div className={purposesContainerClass}>\n {purposes.map((purpose: ConsentPurposeData, purposeIndex: number) => {\n // Pick section labels/tooltips according to the purpose type (permissions vs attributes)\n const isPermission: boolean = purpose.type === 'permissions';\n\n return (\n <div key={purpose.purposeId || purposeIndex} className={purposeItemClass}>\n {/* TODO: Uncomment when the backend supports multiple purposes for a application */}\n {/* <Typography variant=\"h6\" fontWeight={600} gutterBottom color=\"inherit\">\n {purpose.purposeName}\n </Typography>\n <Typography variant=\"body2\" color=\"inherit\" style={{marginBottom: '1rem', opacity: 0.85}}>\n {purpose.description}\n </Typography> */}\n\n {purpose.essential?.length > 0 && (\n <div className={sectionClass}>\n <div className={sectionHeaderClass}>\n {renderSectionTitle(\n isPermission ? essentialPermissionLabel : essentialLabel,\n isPermission ? essentialPermissionInfo : essentialInfo,\n )}\n </div>\n <ConsentCheckboxList\n variant=\"ESSENTIAL\"\n purpose={purpose}\n formValues={formValues}\n onInputChange={onInputChange}\n t={t}\n />\n </div>\n )}\n\n {purpose.optional?.length > 0 && (\n <div className={sectionClass}>\n <div className={optionalSectionHeaderClass}>\n <div className={optionalSectionLabelClass}>\n {renderSectionTitle(\n isPermission ? optionalPermissionLabel : optionalLabel,\n isPermission ? optionalPermissionInfo : optionalInfo,\n )}\n </div>\n <Toggle\n id={`consent_opt_${purpose.purposeId}_all`}\n checked={checkOptValue(purpose)}\n aria-label={isPermission ? toggleAllPermissionsLabel : toggleAllAttributesLabel}\n onChange={(e: ChangeEvent<HTMLInputElement>): void => handleChange(purpose, e.target.checked)}\n />\n </div>\n <ConsentCheckboxList\n variant=\"OPTIONAL\"\n purpose={purpose}\n formValues={formValues}\n onInputChange={onInputChange}\n t={t}\n />\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default Consent;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useManagementEndpoint.cjs","names":["useThunderID"],"sources":["../../../../src/hooks/management/useManagementEndpoint.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {ResourceEndpointKey, resolveResourceEndpoint} from '@thunderid/browser';\nimport useThunderID from '../../contexts/ThunderID/useThunderID';\n\n/**\n * The URL inputs a management API function needs.\n */\nexport interface ManagementEndpoint {\n baseUrl: string | undefined;\n /**\n * The collection URL from `endpoints` when overridden, otherwise `undefined` so the API function\n * falls back to `{baseUrl}/{collection}`.\n */\n url: string | undefined;\n}\n\n/**\n * Resolves where a management resource collection lives, honoring the provider's `endpoints`\n * override so the management API can run on a different host from the authorization server.\n *\n * @param key - The resource collection.\n * @returns The base URL and optional collection URL override.\n */\nconst useManagementEndpoint = (\n key: Extract<\n ResourceEndpointKey,\n 'agents' | 'agentTypes' | 'applications' | 'flows' | 'groups' | 'roles' | 'users' | 'userTypes'\n >,\n): ManagementEndpoint => {\n const {baseUrl, endpoints} = useThunderID();\n\n return {baseUrl, url: resolveResourceEndpoint(key, {endpoints})};\n};\n\nexport default useManagementEndpoint;\n"],"mappings":";;;;;;;;;;;;;AAyBA,MAAM,yBACJ,QAIuB;CACvB,MAAM,EAAC,SAAS,cAAaA,8BAAc;AAE3C,QAAO;EAAC;EAAS,sDAA6B,KAAK,EAAC,WAAU,CAAC;EAAC;;AAGlE,oCAAe"}
1
+ {"version":3,"file":"useManagementEndpoint.cjs","names":["useThunderID"],"sources":["../../../../src/hooks/management/useManagementEndpoint.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {ResourceEndpointKey, resolveResourceEndpoint} from '@thunderid/browser';\nimport useThunderID from '../../contexts/ThunderID/useThunderID';\n\n/**\n * The URL inputs a management API function needs.\n */\nexport interface ManagementEndpoint {\n baseUrl: string | undefined;\n /**\n * The collection URL from `endpoints` when overridden, otherwise `undefined` so the API function\n * falls back to `{baseUrl}/{collection}`.\n */\n url: string | undefined;\n}\n\n/**\n * The management collections an app can call through the SDK's API functions.\n */\nexport type ManagementCollection = Extract<\n ResourceEndpointKey,\n | 'agents'\n | 'agentTypes'\n | 'applications'\n | 'configurationVersions'\n | 'connections'\n | 'design'\n | 'export'\n | 'flows'\n | 'gateways'\n | 'groups'\n | 'i18n'\n | 'import'\n | 'notificationTemplates'\n | 'organizationUnits'\n | 'resourceServers'\n | 'roles'\n | 'secrets'\n | 'serverConfig'\n | 'users'\n | 'userTypes'\n | 'variables'\n>;\n\n/**\n * Resolves where a management resource collection lives, honoring the provider's `endpoints`\n * override so the management API can run on a different host from the authorization server.\n *\n * @param key - The resource collection.\n * @returns The base URL and optional collection URL override.\n */\nconst useManagementEndpoint = (key: ManagementCollection): ManagementEndpoint => {\n const {baseUrl, endpoints} = useThunderID();\n\n return {baseUrl, url: resolveResourceEndpoint(key, {endpoints})};\n};\n\nexport default useManagementEndpoint;\n"],"mappings":";;;;;;;;;;;;;AAqDA,MAAM,yBAAyB,QAAkD;CAC/E,MAAM,EAAC,SAAS,cAAaA,8BAAc;AAE3C,QAAO;EAAC;EAAS,sDAA6B,KAAK,EAAC,WAAU,CAAC;EAAC;;AAGlE,oCAAe"}
@@ -0,0 +1,41 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ const require_useManagementEndpoint = require('./useManagementEndpoint.cjs');
3
+ const require_useResourceQuery = require('./useResourceQuery.cjs');
4
+ let react = require("react");
5
+ react = require_rolldown_runtime.__toESM(react);
6
+
7
+ //#region src/hooks/management/useManagementRequestConfig.ts
8
+ /**
9
+ * Returns the request config the SDK's management API functions take for a collection: the server URL,
10
+ * the collection URL when `endpoints` overrides it, and a fetcher that sends the signed-in user's access
11
+ * token (`ThunderIDProvider`'s `http.fetcher` when set).
12
+ *
13
+ * Use it to call the API functions from an app's own data layer, such as TanStack Query:
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * const config = useManagementRequestConfig('groups');
18
+ * const groups = useQuery({
19
+ * queryKey: [GroupQueryKeys.GROUPS, {limit, offset}],
20
+ * queryFn: () => getGroups({...config, limit, offset}),
21
+ * });
22
+ * ```
23
+ */
24
+ const useManagementRequestConfig = (collection) => {
25
+ const { baseUrl, url } = require_useManagementEndpoint.default(collection);
26
+ const fetcher = require_useResourceQuery.useResolvedFetcher();
27
+ return (0, react.useMemo)(() => ({
28
+ baseUrl,
29
+ fetcher,
30
+ url
31
+ }), [
32
+ baseUrl,
33
+ fetcher,
34
+ url
35
+ ]);
36
+ };
37
+ var useManagementRequestConfig_default = useManagementRequestConfig;
38
+
39
+ //#endregion
40
+ exports.default = useManagementRequestConfig_default;
41
+ //# sourceMappingURL=useManagementRequestConfig.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useManagementRequestConfig.cjs","names":["useManagementEndpoint","fetcher: ApiFetcher","useResolvedFetcher"],"sources":["../../../../src/hooks/management/useManagementRequestConfig.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {ApiFetcher, ManagementRequestConfig} from '@thunderid/browser';\nimport {useMemo} from 'react';\nimport useManagementEndpoint, {ManagementCollection, ManagementEndpoint} from './useManagementEndpoint';\nimport {useResolvedFetcher} from './useResourceQuery';\n\nexport type {ManagementCollection};\n\n/**\n * Returns the request config the SDK's management API functions take for a collection: the server URL,\n * the collection URL when `endpoints` overrides it, and a fetcher that sends the signed-in user's access\n * token (`ThunderIDProvider`'s `http.fetcher` when set).\n *\n * Use it to call the API functions from an app's own data layer, such as TanStack Query:\n *\n * @example\n * ```tsx\n * const config = useManagementRequestConfig('groups');\n * const groups = useQuery({\n * queryKey: [GroupQueryKeys.GROUPS, {limit, offset}],\n * queryFn: () => getGroups({...config, limit, offset}),\n * });\n * ```\n */\nconst useManagementRequestConfig = (collection: ManagementCollection): ManagementRequestConfig => {\n const {baseUrl, url}: ManagementEndpoint = useManagementEndpoint(collection);\n const fetcher: ApiFetcher = useResolvedFetcher();\n\n return useMemo(() => ({baseUrl, fetcher, url}), [baseUrl, fetcher, url]);\n};\n\nexport default useManagementRequestConfig;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAM,8BAA8B,eAA8D;CAChG,MAAM,EAAC,SAAS,QAA2BA,sCAAsB,WAAW;CAC5E,MAAMC,UAAsBC,6CAAoB;AAEhD,kCAAsB;EAAC;EAAS;EAAS;EAAI,GAAG;EAAC;EAAS;EAAS;EAAI,CAAC;;AAG1E,yCAAe"}