@thunderid/nextjs 1.13.0 → 1.14.1

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 (259) hide show
  1. package/dist/cjs/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs +116 -0
  2. package/dist/cjs/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs.map +1 -0
  3. package/dist/cjs/client/components/auth/SignIn/SignIn.cjs +3 -2
  4. package/dist/cjs/client/components/auth/SignIn/SignIn.cjs.map +1 -1
  5. package/dist/cjs/client/components/{admin → management}/AgentCreate/AgentCreate.cjs +1 -1
  6. package/dist/cjs/client/components/management/AgentCreate/AgentCreate.cjs.map +1 -0
  7. package/dist/cjs/client/components/{admin → management}/AgentDetails/AgentDetails.cjs +1 -1
  8. package/dist/cjs/client/components/management/AgentDetails/AgentDetails.cjs.map +1 -0
  9. package/dist/cjs/client/components/{admin → management}/AgentList/AgentList.cjs +1 -1
  10. package/dist/cjs/client/components/management/AgentList/AgentList.cjs.map +1 -0
  11. package/dist/cjs/client/components/{admin → management}/ApplicationCreate/ApplicationCreate.cjs +1 -1
  12. package/dist/cjs/client/components/management/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
  13. package/dist/cjs/client/components/{admin → management}/ApplicationDetails/ApplicationDetails.cjs +1 -1
  14. package/dist/cjs/client/components/management/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
  15. package/dist/cjs/client/components/{admin → management}/ApplicationList/ApplicationList.cjs +1 -1
  16. package/dist/cjs/client/components/management/ApplicationList/ApplicationList.cjs.map +1 -0
  17. package/dist/cjs/client/components/{admin → management}/GroupCreate/GroupCreate.cjs +1 -1
  18. package/dist/cjs/client/components/management/GroupCreate/GroupCreate.cjs.map +1 -0
  19. package/dist/cjs/client/components/management/GroupDetails/GroupDetails.cjs +28 -0
  20. package/dist/cjs/client/components/management/GroupDetails/GroupDetails.cjs.map +1 -0
  21. package/dist/cjs/client/components/{admin → management}/GroupList/GroupList.cjs +1 -1
  22. package/dist/cjs/client/components/management/GroupList/GroupList.cjs.map +1 -0
  23. package/dist/cjs/client/components/{admin → management}/GroupMembers/GroupMembers.cjs +1 -1
  24. package/dist/cjs/client/components/management/GroupMembers/GroupMembers.cjs.map +1 -0
  25. package/dist/cjs/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs +28 -0
  26. package/dist/cjs/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs.map +1 -0
  27. package/dist/cjs/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs +28 -0
  28. package/dist/cjs/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs.map +1 -0
  29. package/dist/cjs/client/components/management/OrganizationUnitList/OrganizationUnitList.cjs +28 -0
  30. package/dist/cjs/client/components/management/OrganizationUnitList/OrganizationUnitList.cjs.map +1 -0
  31. package/dist/cjs/client/components/management/ProjectCreate/ProjectCreate.cjs +28 -0
  32. package/dist/cjs/client/components/management/ProjectCreate/ProjectCreate.cjs.map +1 -0
  33. package/dist/cjs/client/components/management/ProjectDetails/ProjectDetails.cjs +28 -0
  34. package/dist/cjs/client/components/management/ProjectDetails/ProjectDetails.cjs.map +1 -0
  35. package/dist/cjs/client/components/management/ProjectList/ProjectList.cjs +28 -0
  36. package/dist/cjs/client/components/management/ProjectList/ProjectList.cjs.map +1 -0
  37. package/dist/cjs/client/components/management/ProjectSwitcher/ProjectSwitcher.cjs +30 -0
  38. package/dist/cjs/client/components/management/ProjectSwitcher/ProjectSwitcher.cjs.map +1 -0
  39. package/dist/cjs/client/components/{admin → management}/RoleAssignments/RoleAssignments.cjs +1 -1
  40. package/dist/cjs/client/components/management/RoleAssignments/RoleAssignments.cjs.map +1 -0
  41. package/dist/cjs/client/components/{admin → management}/RoleCreate/RoleCreate.cjs +1 -1
  42. package/dist/cjs/client/components/management/RoleCreate/RoleCreate.cjs.map +1 -0
  43. package/dist/cjs/client/components/management/RoleDetails/RoleDetails.cjs +28 -0
  44. package/dist/cjs/client/components/management/RoleDetails/RoleDetails.cjs.map +1 -0
  45. package/dist/cjs/client/components/{admin → management}/RoleList/RoleList.cjs +1 -1
  46. package/dist/cjs/client/components/management/RoleList/RoleList.cjs.map +1 -0
  47. package/dist/cjs/client/components/{admin → management}/RolePermissions/RolePermissions.cjs +1 -1
  48. package/dist/cjs/client/components/management/RolePermissions/RolePermissions.cjs.map +1 -0
  49. package/dist/cjs/client/components/management/SharingPolicies/SharingPolicies.cjs +28 -0
  50. package/dist/cjs/client/components/management/SharingPolicies/SharingPolicies.cjs.map +1 -0
  51. package/dist/cjs/client/components/{admin → management}/UserCreate/UserCreate.cjs +1 -1
  52. package/dist/cjs/client/components/management/UserCreate/UserCreate.cjs.map +1 -0
  53. package/dist/cjs/client/components/{admin → management}/UserDetails/UserDetails.cjs +1 -1
  54. package/dist/cjs/client/components/management/UserDetails/UserDetails.cjs.map +1 -0
  55. package/dist/cjs/client/components/{admin → management}/UserList/UserList.cjs +1 -1
  56. package/dist/cjs/client/components/management/UserList/UserList.cjs.map +1 -0
  57. package/dist/cjs/client/contexts/ThunderID/ThunderIDProvider.cjs +53 -2
  58. package/dist/cjs/client/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
  59. package/dist/cjs/client/index.cjs +28 -17
  60. package/dist/cjs/index.cjs +98 -16
  61. package/dist/cjs/server/actions/account/getAccessibleOrganizationUnitsAction.cjs +53 -0
  62. package/dist/cjs/server/actions/account/getAccessibleOrganizationUnitsAction.cjs.map +1 -0
  63. package/dist/cjs/server/actions/account/getCurrentOrganizationUnitAction.cjs +31 -0
  64. package/dist/cjs/server/actions/account/getCurrentOrganizationUnitAction.cjs.map +1 -0
  65. package/dist/cjs/server/actions/auth/switchOrganizationUnitAction.cjs +85 -0
  66. package/dist/cjs/server/actions/auth/switchOrganizationUnitAction.cjs.map +1 -0
  67. package/dist/cjs/server/thunderid.cjs +16 -0
  68. package/dist/cjs/server/thunderid.cjs.map +1 -1
  69. package/dist/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts +24 -0
  70. package/dist/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts.map +1 -0
  71. package/dist/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js +112 -0
  72. package/dist/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js.map +1 -0
  73. package/dist/client/components/auth/SignIn/SignIn.d.ts +7 -1
  74. package/dist/client/components/auth/SignIn/SignIn.d.ts.map +1 -1
  75. package/dist/client/components/auth/SignIn/SignIn.js +3 -2
  76. package/dist/client/components/auth/SignIn/SignIn.js.map +1 -1
  77. package/dist/client/components/management/AgentCreate/AgentCreate.d.ts.map +1 -0
  78. package/dist/client/components/{admin → management}/AgentCreate/AgentCreate.js +1 -1
  79. package/dist/client/components/management/AgentCreate/AgentCreate.js.map +1 -0
  80. package/dist/client/components/management/AgentDetails/AgentDetails.d.ts.map +1 -0
  81. package/dist/client/components/{admin → management}/AgentDetails/AgentDetails.js +1 -1
  82. package/dist/client/components/management/AgentDetails/AgentDetails.js.map +1 -0
  83. package/dist/client/components/management/AgentList/AgentList.d.ts.map +1 -0
  84. package/dist/client/components/{admin → management}/AgentList/AgentList.js +1 -1
  85. package/dist/client/components/management/AgentList/AgentList.js.map +1 -0
  86. package/dist/client/components/management/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
  87. package/dist/client/components/{admin → management}/ApplicationCreate/ApplicationCreate.js +1 -1
  88. package/dist/client/components/management/ApplicationCreate/ApplicationCreate.js.map +1 -0
  89. package/dist/client/components/management/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
  90. package/dist/client/components/{admin → management}/ApplicationDetails/ApplicationDetails.js +1 -1
  91. package/dist/client/components/management/ApplicationDetails/ApplicationDetails.js.map +1 -0
  92. package/dist/client/components/management/ApplicationList/ApplicationList.d.ts.map +1 -0
  93. package/dist/client/components/{admin → management}/ApplicationList/ApplicationList.js +1 -1
  94. package/dist/client/components/management/ApplicationList/ApplicationList.js.map +1 -0
  95. package/dist/client/components/management/GroupCreate/GroupCreate.d.ts.map +1 -0
  96. package/dist/client/components/{admin → management}/GroupCreate/GroupCreate.js +1 -1
  97. package/dist/client/components/management/GroupCreate/GroupCreate.js.map +1 -0
  98. package/dist/client/components/management/GroupDetails/GroupDetails.d.ts +17 -0
  99. package/dist/client/components/management/GroupDetails/GroupDetails.d.ts.map +1 -0
  100. package/dist/client/components/management/GroupDetails/GroupDetails.js +25 -0
  101. package/dist/client/components/management/GroupDetails/GroupDetails.js.map +1 -0
  102. package/dist/client/components/management/GroupList/GroupList.d.ts.map +1 -0
  103. package/dist/client/components/{admin → management}/GroupList/GroupList.js +1 -1
  104. package/dist/client/components/management/GroupList/GroupList.js.map +1 -0
  105. package/dist/client/components/management/GroupMembers/GroupMembers.d.ts.map +1 -0
  106. package/dist/client/components/{admin → management}/GroupMembers/GroupMembers.js +1 -1
  107. package/dist/client/components/management/GroupMembers/GroupMembers.js.map +1 -0
  108. package/dist/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts +17 -0
  109. package/dist/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts.map +1 -0
  110. package/dist/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js +25 -0
  111. package/dist/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js.map +1 -0
  112. package/dist/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts +17 -0
  113. package/dist/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts.map +1 -0
  114. package/dist/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js +25 -0
  115. package/dist/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js.map +1 -0
  116. package/dist/client/components/management/OrganizationUnitList/OrganizationUnitList.d.ts +17 -0
  117. package/dist/client/components/management/OrganizationUnitList/OrganizationUnitList.d.ts.map +1 -0
  118. package/dist/client/components/management/OrganizationUnitList/OrganizationUnitList.js +25 -0
  119. package/dist/client/components/management/OrganizationUnitList/OrganizationUnitList.js.map +1 -0
  120. package/dist/client/components/management/ProjectCreate/ProjectCreate.d.ts +17 -0
  121. package/dist/client/components/management/ProjectCreate/ProjectCreate.d.ts.map +1 -0
  122. package/dist/client/components/management/ProjectCreate/ProjectCreate.js +25 -0
  123. package/dist/client/components/management/ProjectCreate/ProjectCreate.js.map +1 -0
  124. package/dist/client/components/management/ProjectDetails/ProjectDetails.d.ts +17 -0
  125. package/dist/client/components/management/ProjectDetails/ProjectDetails.d.ts.map +1 -0
  126. package/dist/client/components/management/ProjectDetails/ProjectDetails.js +25 -0
  127. package/dist/client/components/management/ProjectDetails/ProjectDetails.js.map +1 -0
  128. package/dist/client/components/management/ProjectList/ProjectList.d.ts +17 -0
  129. package/dist/client/components/management/ProjectList/ProjectList.d.ts.map +1 -0
  130. package/dist/client/components/management/ProjectList/ProjectList.js +25 -0
  131. package/dist/client/components/management/ProjectList/ProjectList.js.map +1 -0
  132. package/dist/client/components/management/ProjectSwitcher/ProjectSwitcher.d.ts +19 -0
  133. package/dist/client/components/management/ProjectSwitcher/ProjectSwitcher.d.ts.map +1 -0
  134. package/dist/client/components/management/ProjectSwitcher/ProjectSwitcher.js +27 -0
  135. package/dist/client/components/management/ProjectSwitcher/ProjectSwitcher.js.map +1 -0
  136. package/dist/client/components/management/RoleAssignments/RoleAssignments.d.ts.map +1 -0
  137. package/dist/client/components/{admin → management}/RoleAssignments/RoleAssignments.js +1 -1
  138. package/dist/client/components/management/RoleAssignments/RoleAssignments.js.map +1 -0
  139. package/dist/client/components/management/RoleCreate/RoleCreate.d.ts.map +1 -0
  140. package/dist/client/components/{admin → management}/RoleCreate/RoleCreate.js +1 -1
  141. package/dist/client/components/management/RoleCreate/RoleCreate.js.map +1 -0
  142. package/dist/client/components/management/RoleDetails/RoleDetails.d.ts +17 -0
  143. package/dist/client/components/management/RoleDetails/RoleDetails.d.ts.map +1 -0
  144. package/dist/client/components/management/RoleDetails/RoleDetails.js +25 -0
  145. package/dist/client/components/management/RoleDetails/RoleDetails.js.map +1 -0
  146. package/dist/client/components/management/RoleList/RoleList.d.ts.map +1 -0
  147. package/dist/client/components/{admin → management}/RoleList/RoleList.js +1 -1
  148. package/dist/client/components/management/RoleList/RoleList.js.map +1 -0
  149. package/dist/client/components/management/RolePermissions/RolePermissions.d.ts.map +1 -0
  150. package/dist/client/components/{admin → management}/RolePermissions/RolePermissions.js +1 -1
  151. package/dist/client/components/management/RolePermissions/RolePermissions.js.map +1 -0
  152. package/dist/client/components/management/SharingPolicies/SharingPolicies.d.ts +17 -0
  153. package/dist/client/components/management/SharingPolicies/SharingPolicies.d.ts.map +1 -0
  154. package/dist/client/components/management/SharingPolicies/SharingPolicies.js +25 -0
  155. package/dist/client/components/management/SharingPolicies/SharingPolicies.js.map +1 -0
  156. package/dist/client/components/management/UserCreate/UserCreate.d.ts.map +1 -0
  157. package/dist/client/components/{admin → management}/UserCreate/UserCreate.js +1 -1
  158. package/dist/client/components/management/UserCreate/UserCreate.js.map +1 -0
  159. package/dist/client/components/management/UserDetails/UserDetails.d.ts.map +1 -0
  160. package/dist/client/components/{admin → management}/UserDetails/UserDetails.js +1 -1
  161. package/dist/client/components/management/UserDetails/UserDetails.js.map +1 -0
  162. package/dist/client/components/management/UserList/UserList.d.ts.map +1 -0
  163. package/dist/client/components/{admin → management}/UserList/UserList.js +1 -1
  164. package/dist/client/components/management/UserList/UserList.js.map +1 -0
  165. package/dist/client/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
  166. package/dist/client/contexts/ThunderID/ThunderIDProvider.js +55 -4
  167. package/dist/client/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
  168. package/dist/client/index.d.ts +55 -33
  169. package/dist/client/index.d.ts.map +1 -1
  170. package/dist/client/index.js +28 -17
  171. package/dist/client/management.d.ts +3 -0
  172. package/dist/client/management.d.ts.map +1 -0
  173. package/dist/client/management.js +6 -0
  174. package/dist/index.js +29 -18
  175. package/dist/server/actions/account/getAccessibleOrganizationUnitsAction.d.ts +20 -0
  176. package/dist/server/actions/account/getAccessibleOrganizationUnitsAction.d.ts.map +1 -0
  177. package/dist/server/actions/account/getAccessibleOrganizationUnitsAction.js +51 -0
  178. package/dist/server/actions/account/getAccessibleOrganizationUnitsAction.js.map +1 -0
  179. package/dist/server/actions/account/getCurrentOrganizationUnitAction.d.ts +10 -0
  180. package/dist/server/actions/account/getCurrentOrganizationUnitAction.d.ts.map +1 -0
  181. package/dist/server/actions/account/getCurrentOrganizationUnitAction.js +28 -0
  182. package/dist/server/actions/account/getCurrentOrganizationUnitAction.js.map +1 -0
  183. package/dist/server/actions/auth/switchOrganizationUnitAction.d.ts +30 -0
  184. package/dist/server/actions/auth/switchOrganizationUnitAction.d.ts.map +1 -0
  185. package/dist/server/actions/auth/switchOrganizationUnitAction.js +82 -0
  186. package/dist/server/actions/auth/switchOrganizationUnitAction.js.map +1 -0
  187. package/dist/server/thunderid.d.ts +2 -1
  188. package/dist/server/thunderid.d.ts.map +1 -1
  189. package/dist/server/thunderid.js +14 -0
  190. package/dist/server/thunderid.js.map +1 -1
  191. package/package.json +3 -3
  192. package/dist/cjs/client/components/admin/AgentCreate/AgentCreate.cjs.map +0 -1
  193. package/dist/cjs/client/components/admin/AgentDetails/AgentDetails.cjs.map +0 -1
  194. package/dist/cjs/client/components/admin/AgentList/AgentList.cjs.map +0 -1
  195. package/dist/cjs/client/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +0 -1
  196. package/dist/cjs/client/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +0 -1
  197. package/dist/cjs/client/components/admin/ApplicationList/ApplicationList.cjs.map +0 -1
  198. package/dist/cjs/client/components/admin/GroupCreate/GroupCreate.cjs.map +0 -1
  199. package/dist/cjs/client/components/admin/GroupList/GroupList.cjs.map +0 -1
  200. package/dist/cjs/client/components/admin/GroupMembers/GroupMembers.cjs.map +0 -1
  201. package/dist/cjs/client/components/admin/RoleAssignments/RoleAssignments.cjs.map +0 -1
  202. package/dist/cjs/client/components/admin/RoleCreate/RoleCreate.cjs.map +0 -1
  203. package/dist/cjs/client/components/admin/RoleList/RoleList.cjs.map +0 -1
  204. package/dist/cjs/client/components/admin/RolePermissions/RolePermissions.cjs.map +0 -1
  205. package/dist/cjs/client/components/admin/UserCreate/UserCreate.cjs.map +0 -1
  206. package/dist/cjs/client/components/admin/UserDetails/UserDetails.cjs.map +0 -1
  207. package/dist/cjs/client/components/admin/UserList/UserList.cjs.map +0 -1
  208. package/dist/client/admin.d.ts +0 -3
  209. package/dist/client/admin.d.ts.map +0 -1
  210. package/dist/client/admin.js +0 -6
  211. package/dist/client/components/admin/AgentCreate/AgentCreate.d.ts.map +0 -1
  212. package/dist/client/components/admin/AgentCreate/AgentCreate.js.map +0 -1
  213. package/dist/client/components/admin/AgentDetails/AgentDetails.d.ts.map +0 -1
  214. package/dist/client/components/admin/AgentDetails/AgentDetails.js.map +0 -1
  215. package/dist/client/components/admin/AgentList/AgentList.d.ts.map +0 -1
  216. package/dist/client/components/admin/AgentList/AgentList.js.map +0 -1
  217. package/dist/client/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +0 -1
  218. package/dist/client/components/admin/ApplicationCreate/ApplicationCreate.js.map +0 -1
  219. package/dist/client/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +0 -1
  220. package/dist/client/components/admin/ApplicationDetails/ApplicationDetails.js.map +0 -1
  221. package/dist/client/components/admin/ApplicationList/ApplicationList.d.ts.map +0 -1
  222. package/dist/client/components/admin/ApplicationList/ApplicationList.js.map +0 -1
  223. package/dist/client/components/admin/GroupCreate/GroupCreate.d.ts.map +0 -1
  224. package/dist/client/components/admin/GroupCreate/GroupCreate.js.map +0 -1
  225. package/dist/client/components/admin/GroupList/GroupList.d.ts.map +0 -1
  226. package/dist/client/components/admin/GroupList/GroupList.js.map +0 -1
  227. package/dist/client/components/admin/GroupMembers/GroupMembers.d.ts.map +0 -1
  228. package/dist/client/components/admin/GroupMembers/GroupMembers.js.map +0 -1
  229. package/dist/client/components/admin/RoleAssignments/RoleAssignments.d.ts.map +0 -1
  230. package/dist/client/components/admin/RoleAssignments/RoleAssignments.js.map +0 -1
  231. package/dist/client/components/admin/RoleCreate/RoleCreate.d.ts.map +0 -1
  232. package/dist/client/components/admin/RoleCreate/RoleCreate.js.map +0 -1
  233. package/dist/client/components/admin/RoleList/RoleList.d.ts.map +0 -1
  234. package/dist/client/components/admin/RoleList/RoleList.js.map +0 -1
  235. package/dist/client/components/admin/RolePermissions/RolePermissions.d.ts.map +0 -1
  236. package/dist/client/components/admin/RolePermissions/RolePermissions.js.map +0 -1
  237. package/dist/client/components/admin/UserCreate/UserCreate.d.ts.map +0 -1
  238. package/dist/client/components/admin/UserCreate/UserCreate.js.map +0 -1
  239. package/dist/client/components/admin/UserDetails/UserDetails.d.ts.map +0 -1
  240. package/dist/client/components/admin/UserDetails/UserDetails.js.map +0 -1
  241. package/dist/client/components/admin/UserList/UserList.d.ts.map +0 -1
  242. package/dist/client/components/admin/UserList/UserList.js.map +0 -1
  243. /package/dist/cjs/client/{admin.cjs → management.cjs} +0 -0
  244. /package/dist/client/components/{admin → management}/AgentCreate/AgentCreate.d.ts +0 -0
  245. /package/dist/client/components/{admin → management}/AgentDetails/AgentDetails.d.ts +0 -0
  246. /package/dist/client/components/{admin → management}/AgentList/AgentList.d.ts +0 -0
  247. /package/dist/client/components/{admin → management}/ApplicationCreate/ApplicationCreate.d.ts +0 -0
  248. /package/dist/client/components/{admin → management}/ApplicationDetails/ApplicationDetails.d.ts +0 -0
  249. /package/dist/client/components/{admin → management}/ApplicationList/ApplicationList.d.ts +0 -0
  250. /package/dist/client/components/{admin → management}/GroupCreate/GroupCreate.d.ts +0 -0
  251. /package/dist/client/components/{admin → management}/GroupList/GroupList.d.ts +0 -0
  252. /package/dist/client/components/{admin → management}/GroupMembers/GroupMembers.d.ts +0 -0
  253. /package/dist/client/components/{admin → management}/RoleAssignments/RoleAssignments.d.ts +0 -0
  254. /package/dist/client/components/{admin → management}/RoleCreate/RoleCreate.d.ts +0 -0
  255. /package/dist/client/components/{admin → management}/RoleList/RoleList.d.ts +0 -0
  256. /package/dist/client/components/{admin → management}/RolePermissions/RolePermissions.d.ts +0 -0
  257. /package/dist/client/components/{admin → management}/UserCreate/UserCreate.d.ts +0 -0
  258. /package/dist/client/components/{admin → management}/UserDetails/UserDetails.d.ts +0 -0
  259. /package/dist/client/components/{admin → management}/UserList/UserList.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectSwitcher.cjs","names":["ProjectSwitcher: FC<ProjectSwitcherProps>","ReactProjectSwitcher"],"sources":["../../../../../../src/client/components/management/ProjectSwitcher/ProjectSwitcher.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {\n ProjectSwitcher as ReactProjectSwitcher,\n ProjectSwitcherProps as ReactProjectSwitcherProps,\n} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type ProjectSwitcherProps = ReactProjectSwitcherProps;\n\n/**\n * Lets the user choose the current project. The choice is client-side context kept in the browser, not a sign-in: `useThunderID()` exposes it as `currentProject`.\n * `ApplicationList` and `AgentList` list the current project, and `ApplicationCreate` and `AgentCreate` place new\n * resources in it when no organization unit is given.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <ProjectSwitcher onSelect={(project) => router.refresh()} />\n * ```\n */\nconst ProjectSwitcher: FC<ProjectSwitcherProps> = (props: ProjectSwitcherProps): ReactElement => (\n <ReactProjectSwitcher {...props} />\n);\n\nProjectSwitcher.displayName = 'ProjectSwitcher';\n\nexport default ProjectSwitcher;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,mBAA6C,UACjD,2CAACC,qCAAqB,GAAI,QAAS;AAGrC,gBAAgB,cAAc;AAE9B,8BAAe"}
@@ -7,7 +7,7 @@ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
9
 
10
- //#region src/client/components/admin/RoleAssignments/RoleAssignments.tsx
10
+ //#region src/client/components/management/RoleAssignments/RoleAssignments.tsx
11
11
  /**
12
12
  * Lists a role's assignments and assigns or unassigns users, groups and agents.
13
13
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleAssignments.cjs","names":["RoleAssignments: FC<RoleAssignmentsProps>","ReactRoleAssignments"],"sources":["../../../../../../src/client/components/management/RoleAssignments/RoleAssignments.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {\n RoleAssignments as ReactRoleAssignments,\n RoleAssignmentsProps as ReactRoleAssignmentsProps,\n} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type RoleAssignmentsProps = ReactRoleAssignmentsProps;\n\n/**\n * Lists a role's assignments and assigns or unassigns users, groups and agents.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <RoleAssignments roleId={id} />\n * ```\n */\nconst RoleAssignments: FC<RoleAssignmentsProps> = (props: RoleAssignmentsProps): ReactElement => (\n <ReactRoleAssignments {...props} />\n);\n\nRoleAssignments.displayName = 'RoleAssignments';\n\nexport default RoleAssignments;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,mBAA6C,UACjD,2CAACC,qCAAqB,GAAI,QAAS;AAGrC,gBAAgB,cAAc;AAE9B,8BAAe"}
@@ -7,7 +7,7 @@ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
9
 
10
- //#region src/client/components/admin/RoleCreate/RoleCreate.tsx
10
+ //#region src/client/components/management/RoleCreate/RoleCreate.tsx
11
11
  /**
12
12
  * Creates a role.
13
13
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleCreate.cjs","names":["RoleCreate: FC<RoleCreateProps>","ReactRoleCreate"],"sources":["../../../../../../src/client/components/management/RoleCreate/RoleCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {RoleCreate as ReactRoleCreate, RoleCreateProps as ReactRoleCreateProps} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type RoleCreateProps = ReactRoleCreateProps;\n\n/**\n * Creates a role.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <RoleCreate onCreated={(role) => router.push(`/admin/roles/${role.id}`)} />\n * ```\n */\nconst RoleCreate: FC<RoleCreateProps> = (props: RoleCreateProps): ReactElement => <ReactRoleCreate {...props} />;\n\nRoleCreate.displayName = 'RoleCreate';\n\nexport default RoleCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,cAAmC,UAAyC,2CAACC,gCAAgB,GAAI,QAAS;AAEhH,WAAW,cAAc;AAEzB,yBAAe"}
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+
3
+
4
+ const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.cjs');
5
+ let __thunderid_react = require("@thunderid/react");
6
+ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
+
10
+ //#region src/client/components/management/RoleDetails/RoleDetails.tsx
11
+ /**
12
+ * Shows a role with its permissions and assignments, and optionally manages the assignments and deletes the role.
13
+ *
14
+ * Management requests go through a server action with the signed-in user's server-held session, so
15
+ * the access token never reaches the browser. Whether a request succeeds is the server's decision.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <RoleDetails roleId={id} editable deletable onDeleted={() => router.push('/admin/roles')} />
20
+ * ```
21
+ */
22
+ const RoleDetails = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__thunderid_react.RoleDetails, { ...props });
23
+ RoleDetails.displayName = "RoleDetails";
24
+ var RoleDetails_default = RoleDetails;
25
+
26
+ //#endregion
27
+ exports.default = RoleDetails_default;
28
+ //# sourceMappingURL=RoleDetails.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleDetails.cjs","names":["RoleDetails: FC<RoleDetailsProps>","ReactRoleDetails"],"sources":["../../../../../../src/client/components/management/RoleDetails/RoleDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {RoleDetails as ReactRoleDetails, RoleDetailsProps as ReactRoleDetailsProps} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type RoleDetailsProps = ReactRoleDetailsProps;\n\n/**\n * Shows a role with its permissions and assignments, and optionally manages the assignments and deletes the role.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <RoleDetails roleId={id} editable deletable onDeleted={() => router.push('/admin/roles')} />\n * ```\n */\nconst RoleDetails: FC<RoleDetailsProps> = (props: RoleDetailsProps): ReactElement => <ReactRoleDetails {...props} />;\n\nRoleDetails.displayName = 'RoleDetails';\n\nexport default RoleDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,eAAqC,UAA0C,2CAACC,iCAAiB,GAAI,QAAS;AAEpH,YAAY,cAAc;AAE1B,0BAAe"}
@@ -7,7 +7,7 @@ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
9
 
10
- //#region src/client/components/admin/RoleList/RoleList.tsx
10
+ //#region src/client/components/management/RoleList/RoleList.tsx
11
11
  /**
12
12
  * Lists roles, a page at a time.
13
13
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleList.cjs","names":["RoleList: FC<RoleListProps>","ReactRoleList"],"sources":["../../../../../../src/client/components/management/RoleList/RoleList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {RoleList as ReactRoleList, RoleListProps as ReactRoleListProps} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type RoleListProps = ReactRoleListProps;\n\n/**\n * Lists roles, a page at a time.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <RoleList onSelect={(role) => router.push(`/admin/roles/${role.id}`)} />\n * ```\n */\nconst RoleList: FC<RoleListProps> = (props: RoleListProps): ReactElement => <ReactRoleList {...props} />;\n\nRoleList.displayName = 'RoleList';\n\nexport default RoleList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,YAA+B,UAAuC,2CAACC,8BAAc,GAAI,QAAS;AAExG,SAAS,cAAc;AAEvB,uBAAe"}
@@ -7,7 +7,7 @@ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
9
 
10
- //#region src/client/components/admin/RolePermissions/RolePermissions.tsx
10
+ //#region src/client/components/management/RolePermissions/RolePermissions.tsx
11
11
  /**
12
12
  * Shows the permissions a role grants.
13
13
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RolePermissions.cjs","names":["RolePermissions: FC<RolePermissionsProps>","ReactRolePermissions"],"sources":["../../../../../../src/client/components/management/RolePermissions/RolePermissions.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {\n RolePermissions as ReactRolePermissions,\n RolePermissionsProps as ReactRolePermissionsProps,\n} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type RolePermissionsProps = ReactRolePermissionsProps;\n\n/**\n * Shows the permissions a role grants.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <RolePermissions roleId={id} />\n * ```\n */\nconst RolePermissions: FC<RolePermissionsProps> = (props: RolePermissionsProps): ReactElement => (\n <ReactRolePermissions {...props} />\n);\n\nRolePermissions.displayName = 'RolePermissions';\n\nexport default RolePermissions;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,mBAA6C,UACjD,2CAACC,qCAAqB,GAAI,QAAS;AAGrC,gBAAgB,cAAc;AAE9B,8BAAe"}
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+
3
+
4
+ const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.cjs');
5
+ let __thunderid_react = require("@thunderid/react");
6
+ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
+
10
+ //#region src/client/components/management/SharingPolicies/SharingPolicies.tsx
11
+ /**
12
+ * Lists the sharing policies of a user, an application, a role or a flow, and lets the signed-in user manage them when `editable`.
13
+ *
14
+ * Management requests go through a server action with the signed-in user's server-held session, so
15
+ * the access token never reaches the browser. Whether a request succeeds is the server's decision.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <SharingPolicies resourceType="role" resourceId={roleId} editable />
20
+ * ```
21
+ */
22
+ const SharingPolicies = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__thunderid_react.SharingPolicies, { ...props });
23
+ SharingPolicies.displayName = "SharingPolicies";
24
+ var SharingPolicies_default = SharingPolicies;
25
+
26
+ //#endregion
27
+ exports.default = SharingPolicies_default;
28
+ //# sourceMappingURL=SharingPolicies.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharingPolicies.cjs","names":["SharingPolicies: FC<SharingPoliciesProps>","ReactSharingPolicies"],"sources":["../../../../../../src/client/components/management/SharingPolicies/SharingPolicies.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {\n SharingPolicies as ReactSharingPolicies,\n SharingPoliciesProps as ReactSharingPoliciesProps,\n} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type SharingPoliciesProps = ReactSharingPoliciesProps;\n\n/**\n * Lists the sharing policies of a user, an application, a role or a flow, and lets the signed-in user manage them when `editable`.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <SharingPolicies resourceType=\"role\" resourceId={roleId} editable />\n * ```\n */\nconst SharingPolicies: FC<SharingPoliciesProps> = (props: SharingPoliciesProps): ReactElement => (\n <ReactSharingPolicies {...props} />\n);\n\nSharingPolicies.displayName = 'SharingPolicies';\n\nexport default SharingPolicies;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,mBAA6C,UACjD,2CAACC,qCAAqB,GAAI,QAAS;AAGrC,gBAAgB,cAAc;AAE9B,8BAAe"}
@@ -7,7 +7,7 @@ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
9
 
10
- //#region src/client/components/admin/UserCreate/UserCreate.tsx
10
+ //#region src/client/components/management/UserCreate/UserCreate.tsx
11
11
  /**
12
12
  * Creates a user, or invites one with `mode="invite"`.
13
13
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserCreate.cjs","names":["UserCreate: FC<UserCreateProps>","ReactUserCreate"],"sources":["../../../../../../src/client/components/management/UserCreate/UserCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {UserCreate as ReactUserCreate, UserCreateProps as ReactUserCreateProps} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type UserCreateProps = ReactUserCreateProps;\n\n/**\n * Creates a user, or invites one with `mode=\"invite\"`.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <UserCreate onCreated={(user) => router.push(`/admin/users/${user.id}`)} />\n * ```\n */\nconst UserCreate: FC<UserCreateProps> = (props: UserCreateProps): ReactElement => <ReactUserCreate {...props} />;\n\nUserCreate.displayName = 'UserCreate';\n\nexport default UserCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,cAAmC,UAAyC,2CAACC,gCAAgB,GAAI,QAAS;AAEhH,WAAW,cAAc;AAEzB,yBAAe"}
@@ -7,7 +7,7 @@ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
9
 
10
- //#region src/client/components/admin/UserDetails/UserDetails.tsx
10
+ //#region src/client/components/management/UserDetails/UserDetails.tsx
11
11
  /**
12
12
  * Shows a user's attributes and groups, and optionally edits or deletes the user.
13
13
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDetails.cjs","names":["UserDetails: FC<UserDetailsProps>","ReactUserDetails"],"sources":["../../../../../../src/client/components/management/UserDetails/UserDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {UserDetails as ReactUserDetails, UserDetailsProps as ReactUserDetailsProps} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type UserDetailsProps = ReactUserDetailsProps;\n\n/**\n * Shows a user's attributes and groups, and optionally edits or deletes the user.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <UserDetails userId={id} editable deletable onDeleted={() => router.push('/admin/users')} />\n * ```\n */\nconst UserDetails: FC<UserDetailsProps> = (props: UserDetailsProps): ReactElement => <ReactUserDetails {...props} />;\n\nUserDetails.displayName = 'UserDetails';\n\nexport default UserDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,eAAqC,UAA0C,2CAACC,iCAAiB,GAAI,QAAS;AAEpH,YAAY,cAAc;AAE1B,0BAAe"}
@@ -7,7 +7,7 @@ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
9
 
10
- //#region src/client/components/admin/UserList/UserList.tsx
10
+ //#region src/client/components/management/UserList/UserList.tsx
11
11
  /**
12
12
  * Lists the users the signed-in user is allowed to see, a page at a time.
13
13
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserList.cjs","names":["UserList: FC<UserListProps>","ReactUserList"],"sources":["../../../../../../src/client/components/management/UserList/UserList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {UserList as ReactUserList, UserListProps as ReactUserListProps} from '@thunderid/react';\nimport {FC, ReactElement} from 'react';\n\nexport type UserListProps = ReactUserListProps;\n\n/**\n * Lists the users the signed-in user is allowed to see, a page at a time.\n *\n * Management requests go through a server action with the signed-in user's server-held session, so\n * the access token never reaches the browser. Whether a request succeeds is the server's decision.\n *\n * @example\n * ```tsx\n * <UserList onSelect={(user) => router.push(`/admin/users/${user.id}`)} />\n * ```\n */\nconst UserList: FC<UserListProps> = (props: UserListProps): ReactElement => <ReactUserList {...props} />;\n\nUserList.displayName = 'UserList';\n\nexport default UserList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,YAA+B,UAAuC,2CAACC,8BAAc,GAAI,QAAS;AAExG,SAAS,cAAc;AAEvB,uBAAe"}
@@ -3,9 +3,12 @@
3
3
 
4
4
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
5
5
  const require_getSessionId = require('../../../server/actions/getSessionId.cjs');
6
+ const require_getUserAction = require('../../../server/actions/account/getUserAction.cjs');
6
7
  const require_getUserProfileAction = require('../../../server/actions/account/getUserProfileAction.cjs');
7
8
  const require_logger = require('../../../utils/logger.cjs');
8
9
  const require_ThunderIDContext = require('./ThunderIDContext.cjs');
10
+ const require_getCurrentOrganizationUnitAction = require('../../../server/actions/account/getCurrentOrganizationUnitAction.cjs');
11
+ const require_switchOrganizationUnitAction = require('../../../server/actions/auth/switchOrganizationUnitAction.cjs');
9
12
  const require_fetchFlowMetaFromServer = require('../../fetchFlowMetaFromServer.cjs');
10
13
  const require_fetchManagementFromServer = require('../../fetchManagementFromServer.cjs');
11
14
  let __thunderid_node = require("@thunderid/node");
@@ -64,6 +67,38 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
64
67
  (0, react.useEffect)(() => {
65
68
  setIsLoading(false);
66
69
  }, [isSignedIn, user]);
70
+ const [currentOrganizationUnit, setCurrentOrganizationUnit] = (0, react.useState)(null);
71
+ const { currentProject, setCurrentProject } = (0, __thunderid_react.useCurrentProjectState)((0, __thunderid_node.getVendorPrefix)(vendor));
72
+ (0, react.useEffect)(() => {
73
+ if (!isSignedIn) {
74
+ setCurrentOrganizationUnit(null);
75
+ return;
76
+ }
77
+ require_getCurrentOrganizationUnitAction.default().then(setCurrentOrganizationUnit).catch(() => setCurrentOrganizationUnit(null));
78
+ }, [isSignedIn, user]);
79
+ /**
80
+ * Signs in again bounded to another organization unit through a server action. Redirect mode sends the
81
+ * browser to the unit's authorization endpoint and resolves with `undefined`; embedded mode replaces
82
+ * the session in place and resolves with the refreshed user. A failure keeps the previous session and
83
+ * rejects with an error whose code is one of `OrganizationUnitSwitchErrorCodes`.
84
+ */
85
+ const handleSwitchOrganizationUnit = async (organizationUnitId, options) => {
86
+ const result = await require_switchOrganizationUnitAction.default(organizationUnitId, { redirect: options?.redirect });
87
+ if (!result.success) throw new __thunderid_node.ThunderIDAPIError(JSON.stringify({
88
+ code: result.code,
89
+ message: { defaultValue: "Switching the organization unit failed" }
90
+ }), result.code, "nextjs", result.statusCode);
91
+ if (result.data.signInUrl) {
92
+ window.location.href = result.data.signInUrl;
93
+ return;
94
+ }
95
+ const sessionId = await require_getSessionId.default();
96
+ const refreshedUser = (sessionId ? await require_getUserAction.default(sessionId) : void 0)?.data?.user ?? null;
97
+ if (refreshedUser) setUser(refreshedUser);
98
+ setCurrentOrganizationUnit(await require_getCurrentOrganizationUnitAction.default());
99
+ router.refresh();
100
+ return refreshedUser ?? void 0;
101
+ };
67
102
  const handleSignIn = async (payload, request) => {
68
103
  if (!signIn) throw new __thunderid_node.ThunderIDRuntimeError("`signIn` function is not available.", "ThunderIDClientProvider-handleSignIn-RuntimeError-001", "nextjs");
69
104
  const result = await signIn(payload, request);
@@ -115,11 +150,16 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
115
150
  applicationId,
116
151
  baseUrl,
117
152
  clearSession,
153
+ currentOrganizationUnit,
154
+ currentProject,
155
+ getCurrentOrganizationUnit: require_getCurrentOrganizationUnitAction.default,
118
156
  isLoading,
119
157
  isSignedIn,
120
158
  organizationHandle,
121
159
  preferences,
122
160
  refreshToken,
161
+ setCurrentProject,
162
+ switchOrganizationUnit: handleSwitchOrganizationUnit,
123
163
  scopes,
124
164
  signIn: handleSignIn,
125
165
  signInUrl,
@@ -137,7 +177,10 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
137
177
  applicationId,
138
178
  organizationHandle,
139
179
  scopes,
140
- preferences
180
+ preferences,
181
+ currentOrganizationUnit,
182
+ currentProject,
183
+ setCurrentProject
141
184
  ]);
142
185
  const handleProfileUpdate = (payload) => {
143
186
  setUser(payload);
@@ -165,10 +208,13 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
165
208
  baseUrl,
166
209
  clearSession,
167
210
  clientId: void 0,
211
+ currentOrganizationUnit,
212
+ currentProject,
168
213
  discovery: { wellKnown: null },
169
214
  endpoints,
170
215
  exchangeToken: unsupported("exchangeToken"),
171
216
  getAccessToken: unsupported("getAccessToken"),
217
+ getCurrentOrganizationUnit: require_getCurrentOrganizationUnitAction.default,
172
218
  getDecodedIdToken: unsupported("getDecodedIdToken"),
173
219
  getGrantedPermissions: unsupported("getGrantedPermissions"),
174
220
  getIdToken: unsupported("getIdToken"),
@@ -189,12 +235,14 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
189
235
  recover: unsupported("recover"),
190
236
  resolveFlowTemplateLiterals: (text) => text ?? "",
191
237
  scopes,
238
+ setCurrentProject,
192
239
  signIn: handleSignIn,
193
240
  signInSilently: unsupported("signInSilently"),
194
241
  signInUrl,
195
242
  signOut: handleSignOut,
196
243
  signUp: handleSignUp,
197
244
  signUpUrl,
245
+ switchOrganizationUnit: handleSwitchOrganizationUnit,
198
246
  user,
199
247
  userSchema,
200
248
  vendor: (0, __thunderid_node.getVendorPrefix)(vendor)
@@ -212,7 +260,10 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
212
260
  user,
213
261
  userSchema,
214
262
  initialMeta,
215
- vendor
263
+ vendor,
264
+ currentOrganizationUnit,
265
+ currentProject,
266
+ setCurrentProject
216
267
  ]);
217
268
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ThunderIDContext.default.Provider, {
218
269
  value: contextValue,
@@ -1 +1 @@
1
- {"version":3,"file":"ThunderIDProvider.cjs","names":["ThunderIDClientProvider: FC<PropsWithChildren<ThunderIDClientProviderProps>>","reRenderCheckRef: RefObject<boolean>","router: AppRouterInstance","searchParams: ReadonlyURLSearchParams","code: string | null","state: string | null","result: {error?: string; redirectUrl?: string; success: boolean}","ThunderIDRuntimeError","result: any","contextValue: ThunderIDContextProps","result: Awaited<ReturnType<typeof getUserProfileAction>>","getUserProfileAction","getSessionId","reactContextValue: ReactThunderIDContextProps","fetchManagementFromServer","ThunderIDContext","ReactThunderIDContext","I18nProvider","FlowMetaProvider","fetchFlowMetaFromServer","ThemeProvider","FlowProvider","UserProvider"],"sources":["../../../../../src/client/contexts/ThunderID/ThunderIDProvider.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {\n AttributeSchema,\n EmbeddedFlowExecuteRequestConfig,\n FlowMetadataResponse,\n generateFlattenedUserProfile,\n UpdateMeProfileConfig,\n User,\n UserProfile,\n ThunderIDRuntimeError,\n getVendorPrefix,\n} from '@thunderid/node';\nimport {\n I18nProvider,\n FlowMetaProvider,\n FlowProvider,\n UserProvider,\n ThemeProvider,\n ThunderIDContext as ReactThunderIDContext,\n ThunderIDContextProps as ReactThunderIDContextProps,\n ThunderIDProviderProps,\n} from '@thunderid/react';\nimport {ReadonlyURLSearchParams} from 'next/dist/client/components/navigation.react-server';\nimport {AppRouterInstance} from 'next/dist/shared/lib/app-router-context.shared-runtime';\nimport {useRouter, useSearchParams} from 'next/navigation';\nimport {FC, PropsWithChildren, RefObject, useEffect, useMemo, useRef, useState} from 'react';\nimport ThunderIDContext, {ThunderIDContextProps} from './ThunderIDContext';\nimport getUserProfileAction from '../../../server/actions/account/getUserProfileAction';\nimport getSessionId from '../../../server/actions/getSessionId';\nimport {RefreshResult} from '../../../server/actions/refreshToken';\nimport logger from '../../../utils/logger';\nimport fetchFlowMetaFromServer from '../../fetchFlowMetaFromServer';\nimport fetchManagementFromServer from '../../fetchManagementFromServer';\n\n/**\n * Props interface of {@link ThunderIDClientProvider}\n */\nexport type ThunderIDClientProviderProps = Partial<Omit<ThunderIDProviderProps, 'baseUrl' | 'clientId'>> &\n Pick<ThunderIDProviderProps, 'baseUrl' | 'clientId'> & {\n applicationId: ThunderIDContextProps['applicationId'];\n clearSession: () => Promise<void>;\n handleOAuthCallback: (\n code: string,\n state: string,\n ) => Promise<{error?: string; redirectUrl?: string; success: boolean}>;\n /**\n * Flow metadata fetched server-side ahead of time, seeding `FlowMetaProvider` so it can skip\n * its own initial client-side fetch (avoiding a flash of untranslated i18n keys).\n */\n initialMeta?: FlowMetadataResponse | null;\n isSignedIn: boolean;\n organizationHandle: ThunderIDContextProps['organizationHandle'];\n refreshToken: () => Promise<RefreshResult>;\n signIn: ThunderIDContextProps['signIn'];\n signOut: ThunderIDContextProps['signOut'];\n signUp: ThunderIDContextProps['signUp'];\n updateProfile: (\n requestConfig: UpdateMeProfileConfig,\n sessionId?: string,\n ) => Promise<{data: {user: User}; error: string; success: boolean}>;\n user: User | null;\n userProfile: UserProfile;\n userSchema?: Record<string, AttributeSchema> | null;\n };\n\nconst ThunderIDClientProvider: FC<PropsWithChildren<ThunderIDClientProviderProps>> = ({\n baseUrl,\n children,\n endpoints,\n signIn,\n clearSession,\n refreshToken,\n signOut,\n signUp,\n handleOAuthCallback,\n preferences,\n isSignedIn,\n signInUrl,\n signUpUrl,\n user: _user,\n userProfile: _userProfile,\n userSchema: _userSchema = null,\n updateProfile,\n applicationId,\n organizationHandle,\n scopes,\n vendor,\n initialMeta = null,\n}: PropsWithChildren<ThunderIDClientProviderProps>) => {\n const reRenderCheckRef: RefObject<boolean> = useRef(false);\n const router: AppRouterInstance = useRouter();\n const searchParams: ReadonlyURLSearchParams = useSearchParams();\n const [isLoading, setIsLoading] = useState<boolean>(true);\n const [user, setUser] = useState<User | null>(_user);\n const [userProfile, setUserProfile] = useState<UserProfile>(_userProfile);\n const [userSchema, setUserSchema] = useState<Record<string, AttributeSchema> | null>(_userSchema);\n\n useEffect(() => {\n setUserProfile(_userProfile);\n }, [_userProfile]);\n\n useEffect(() => {\n setUserSchema(_userSchema);\n }, [_userSchema]);\n\n useEffect(() => {\n setUser(_user);\n }, [_user]);\n\n // Handle OAuth callback automatically\n useEffect(() => {\n // React 18.x Strict.Mode has a new check for `Ensuring reusable state` to facilitate an upcoming react feature.\n // https://reactjs.org/docs/strict-mode.html#ensuring-reusable-state\n // This will remount all the useEffects to ensure that there are no unexpected side effects.\n // When react remounts the signIn hook of the AuthProvider, it will cause a race condition. Hence, we have to\n // prevent the re-render of this hook as suggested in the following discussion.\n // https://github.com/reactwg/react-18/discussions/18#discussioncomment-795623\n if (reRenderCheckRef.current) {\n return;\n }\n\n reRenderCheckRef.current = true;\n\n // Don't handle callback if already signed in\n if (isSignedIn) return;\n\n (async (): Promise<void> => {\n try {\n const code: string | null = searchParams.get('code');\n const state: string | null = searchParams.get('state');\n const error: string | null = searchParams.get('error');\n\n // Check for OAuth errors first\n if (error) {\n logger.error('[ThunderIDClientProvider] An error was received for the initiated sign-in request.');\n\n return;\n }\n\n // Handle OAuth callback if code and state are present\n if (code && state) {\n setIsLoading(true);\n\n const result: {error?: string; redirectUrl?: string; success: boolean} = await handleOAuthCallback(\n code,\n state,\n );\n\n if (result.success) {\n // Redirect to the success URL\n if (result.redirectUrl) {\n router.push(result.redirectUrl);\n } else {\n // Refresh the page to update authentication state\n window.location.reload();\n }\n } else {\n logger.error(\n `[ThunderIDClientProvider] An error occurred while signing in: ${result.error || 'Authentication failed'}`,\n );\n }\n }\n } catch (error) {\n logger.error('[ThunderIDClientProvider] Failed to handle OAuth callback:', error);\n }\n })();\n }, []);\n\n useEffect(() => {\n // Set loading to false when server has resolved authentication state\n setIsLoading(false);\n }, [isSignedIn, user]);\n\n const handleSignIn = async (payload: any, request: EmbeddedFlowExecuteRequestConfig): Promise<any> => {\n if (!signIn) {\n throw new ThunderIDRuntimeError(\n '`signIn` function is not available.',\n 'ThunderIDClientProvider-handleSignIn-RuntimeError-001',\n 'nextjs',\n );\n }\n\n const result: any = await signIn(payload, request);\n\n // Redirect based flow URL is sent as `signInUrl` in the response.\n // Use window.location.href instead of router.push() — the OAuth authorization\n // endpoint is on an external server, and router.push() would send RSC fetch\n // headers that the identity provider doesn't understand, causing a CORS error.\n if (result?.data?.signInUrl) {\n window.location.href = result.data.signInUrl;\n\n return undefined;\n }\n\n // After the Embedded flow is successful, the URL to navigate next is sent as `afterSignInUrl` in the response.\n if (result?.data?.afterSignInUrl) {\n router.push(result.data.afterSignInUrl);\n\n return undefined;\n }\n\n if (result?.error) {\n throw new Error(result.error);\n }\n\n return result?.data ?? result;\n };\n\n const handleSignUp = async (payload: any, request: EmbeddedFlowExecuteRequestConfig): Promise<any> => {\n if (!signUp) {\n throw new ThunderIDRuntimeError(\n '`signUp` function is not available.',\n 'ThunderIDClientProvider-handleSignUp-RuntimeError-001',\n 'nextjs',\n );\n }\n\n const result: any = await signUp(payload, request);\n\n // Redirect based flow URL is sent as `signUpUrl` in the response.\n if (result?.data?.signUpUrl) {\n router.push(result.data.signUpUrl);\n\n return undefined;\n }\n\n // After the Embedded flow is successful, the URL to navigate next is sent as `afterSignUpUrl` in the response.\n if (result?.data?.afterSignUpUrl) {\n router.push(result.data.afterSignUpUrl);\n\n return undefined;\n }\n\n if (result?.error) {\n throw new Error(result.error);\n }\n\n return result?.data ?? result;\n };\n\n const handleSignOut = async (): Promise<any> => {\n logger.debug('[ThunderIDClientProvider][handleSignOut] `handleSignOut` called.');\n\n try {\n const result: any = await signOut();\n\n logger.debug('[ThunderIDClientProvider][handleSignOut] Sign out result:', result);\n\n if (result?.data?.afterSignOutUrl) {\n router.push(result.data.afterSignOutUrl);\n\n return {location: result.data.afterSignOutUrl, redirected: true};\n }\n\n if (result?.error) {\n logger.error(\n '[ThunderIDClientProvider][handleSignOut] Error result was returned during signing the user out with a button click:',\n result.error,\n );\n }\n\n return result?.data ?? result;\n } catch (error) {\n logger.error(\n '[ThunderIDClientProvider][handleSignOut] Error occurred during signing the user out with a button click:',\n error,\n );\n\n return undefined;\n }\n };\n\n const contextValue: ThunderIDContextProps = useMemo(\n () => ({\n applicationId,\n baseUrl,\n clearSession,\n isLoading,\n isSignedIn,\n organizationHandle,\n preferences,\n refreshToken,\n scopes,\n signIn: handleSignIn,\n signInUrl,\n signOut: handleSignOut,\n signUp: handleSignUp,\n signUpUrl,\n user,\n }),\n [\n baseUrl,\n user,\n isSignedIn,\n isLoading,\n signInUrl,\n signUpUrl,\n applicationId,\n organizationHandle,\n scopes,\n preferences,\n ],\n );\n\n const handleProfileUpdate = (payload: User): void => {\n setUser(payload);\n setUserProfile((prev: UserProfile) => ({\n ...prev,\n flattenedProfile: generateFlattenedUserProfile(payload),\n profile: payload,\n }));\n };\n\n /**\n * Re-reads `/users/me` through the server-held session, so a change made outside the profile API,\n * such as a recorded verification, shows.\n */\n const revalidateProfile = async (): Promise<void> => {\n if (preferences?.user?.fetchUserProfile === false) return;\n\n const result: Awaited<ReturnType<typeof getUserProfileAction>> = await getUserProfileAction(\n (await getSessionId()) ?? '',\n );\n\n if (result.success) {\n handleProfileUpdate(result.data.userProfile.profile);\n }\n };\n\n // Bridge into @thunderid/react's own ThunderIDContext. Internal react components rendered by\n // BaseSignIn/BaseSignUp — most notably FlowMetaProvider, which fetches `/flow/meta` and injects\n // its i18n bundle — call react's `useThunderID()` directly. Without this bridge they'd only see\n // react's context default (applicationId/baseUrl undefined, isInitialized false), so the meta\n // fetch would never fire and flow labels would render as untranslated i18n keys. Fields with no\n // nextjs equivalent (token/http helpers meant for direct browser API calls) are stubbed out,\n // since nextjs routes those operations through server actions instead.\n const unsupported = (name: string): (() => Promise<never>) => {\n return () =>\n Promise.reject(\n new ThunderIDRuntimeError(\n `\\`${name}\\` is not supported in @thunderid/nextjs.`,\n `ThunderIDClientProvider-${name}-NotSupportedError-001`,\n 'nextjs',\n ),\n );\n };\n\n const reactContextValue: ReactThunderIDContextProps = useMemo(\n () => ({\n afterSignInUrl: undefined,\n applicationId,\n baseUrl,\n clearSession,\n clientId: undefined,\n discovery: {wellKnown: null},\n // Only the management collection overrides arrive here, so the admin hooks build the URLs the\n // management server action accepts.\n endpoints,\n exchangeToken: unsupported('exchangeToken'),\n getAccessToken: unsupported('getAccessToken'),\n getDecodedIdToken: unsupported('getDecodedIdToken'),\n // The Next.js useGrantedPermissions reads them through a server action instead.\n getGrantedPermissions: unsupported('getGrantedPermissions'),\n getIdToken: unsupported('getIdToken'),\n getStorageManager: () => Promise.resolve(null),\n http: {\n // The admin components and hooks send management requests through a server action that adds\n // the server-held access token, so the token never reaches the browser.\n fetcher: fetchManagementFromServer,\n request: unsupported('http.request'),\n requestAll: unsupported('http.requestAll'),\n },\n instanceId: 0,\n isInitialized: !isLoading,\n isLoading,\n isMetaLoading: false,\n isSignedIn,\n meta: initialMeta ?? null,\n organizationHandle,\n reInitialize: unsupported('reInitialize'),\n recover: unsupported('recover'),\n resolveFlowTemplateLiterals: (text: string | undefined): string => text ?? '',\n scopes,\n signIn: handleSignIn,\n signInSilently: unsupported('signInSilently'),\n signInUrl,\n signOut: handleSignOut,\n signUp: handleSignUp,\n signUpUrl,\n user,\n userSchema,\n vendor: getVendorPrefix(vendor),\n }),\n [\n applicationId,\n baseUrl,\n clearSession,\n endpoints,\n isLoading,\n isSignedIn,\n organizationHandle,\n scopes,\n signInUrl,\n signUpUrl,\n user,\n userSchema,\n initialMeta,\n vendor,\n ],\n );\n\n return (\n <ThunderIDContext.Provider value={contextValue}>\n <ReactThunderIDContext.Provider value={reactContextValue}>\n <I18nProvider preferences={preferences?.i18n}>\n <FlowMetaProvider\n enabled={preferences?.resolveFromMeta !== false}\n initialMeta={initialMeta}\n fetchMeta={fetchFlowMetaFromServer}\n >\n <ThemeProvider theme={preferences?.theme?.overrides} mode={preferences?.theme?.mode}>\n <FlowProvider>\n <UserProvider\n profile={userProfile}\n userSchema={userSchema}\n onUpdateProfile={handleProfileUpdate}\n revalidateProfile={revalidateProfile}\n updateProfile={updateProfile}\n >\n {children}\n </UserProvider>\n </FlowProvider>\n </ThemeProvider>\n </FlowMetaProvider>\n </I18nProvider>\n </ReactThunderIDContext.Provider>\n </ThunderIDContext.Provider>\n );\n};\n\nexport default ThunderIDClientProvider;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThunderIDProvider.cjs","names":["ThunderIDClientProvider: FC<PropsWithChildren<ThunderIDClientProviderProps>>","reRenderCheckRef: RefObject<boolean>","router: AppRouterInstance","searchParams: ReadonlyURLSearchParams","code: string | null","state: string | null","result: {error?: string; redirectUrl?: string; success: boolean}","result: SwitchOrganizationUnitActionResult","switchOrganizationUnitAction","ThunderIDAPIError","sessionId: string | undefined","getSessionId","refreshedUser: User | null","getUserAction","getCurrentOrganizationUnitAction","ThunderIDRuntimeError","result: any","contextValue: ThunderIDContextProps","result: Awaited<ReturnType<typeof getUserProfileAction>>","getUserProfileAction","reactContextValue: ReactThunderIDContextProps","fetchManagementFromServer","ThunderIDContext","ReactThunderIDContext","I18nProvider","FlowMetaProvider","fetchFlowMetaFromServer","ThemeProvider","FlowProvider","UserProvider"],"sources":["../../../../../src/client/contexts/ThunderID/ThunderIDProvider.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use client';\n\nimport {\n AttributeSchema,\n EmbeddedFlowExecuteRequestConfig,\n FlowMetadataResponse,\n generateFlattenedUserProfile,\n UpdateMeProfileConfig,\n User,\n UserProfile,\n ThunderIDRuntimeError,\n getVendorPrefix,\n CurrentOrganizationUnit,\n SwitchOrganizationUnitOptions,\n ThunderIDAPIError,\n} from '@thunderid/node';\nimport {\n I18nProvider,\n FlowMetaProvider,\n FlowProvider,\n UserProvider,\n ThemeProvider,\n ThunderIDContext as ReactThunderIDContext,\n ThunderIDContextProps as ReactThunderIDContextProps,\n ThunderIDProviderProps,\n useCurrentProjectState,\n} from '@thunderid/react';\nimport {ReadonlyURLSearchParams} from 'next/dist/client/components/navigation.react-server';\nimport {AppRouterInstance} from 'next/dist/shared/lib/app-router-context.shared-runtime';\nimport {useRouter, useSearchParams} from 'next/navigation';\nimport {FC, PropsWithChildren, RefObject, useEffect, useMemo, useRef, useState} from 'react';\nimport ThunderIDContext, {ThunderIDContextProps} from './ThunderIDContext';\nimport getCurrentOrganizationUnitAction from '../../../server/actions/account/getCurrentOrganizationUnitAction';\nimport getUserAction from '../../../server/actions/account/getUserAction';\nimport getUserProfileAction from '../../../server/actions/account/getUserProfileAction';\nimport switchOrganizationUnitAction, {\n SwitchOrganizationUnitActionResult,\n} from '../../../server/actions/auth/switchOrganizationUnitAction';\nimport getSessionId from '../../../server/actions/getSessionId';\nimport {RefreshResult} from '../../../server/actions/refreshToken';\nimport logger from '../../../utils/logger';\nimport fetchFlowMetaFromServer from '../../fetchFlowMetaFromServer';\nimport fetchManagementFromServer from '../../fetchManagementFromServer';\n\n/**\n * Props interface of {@link ThunderIDClientProvider}\n */\nexport type ThunderIDClientProviderProps = Partial<Omit<ThunderIDProviderProps, 'baseUrl' | 'clientId'>> &\n Pick<ThunderIDProviderProps, 'baseUrl' | 'clientId'> & {\n applicationId: ThunderIDContextProps['applicationId'];\n clearSession: () => Promise<void>;\n handleOAuthCallback: (\n code: string,\n state: string,\n ) => Promise<{error?: string; redirectUrl?: string; success: boolean}>;\n /**\n * Flow metadata fetched server-side ahead of time, seeding `FlowMetaProvider` so it can skip\n * its own initial client-side fetch (avoiding a flash of untranslated i18n keys).\n */\n initialMeta?: FlowMetadataResponse | null;\n isSignedIn: boolean;\n organizationHandle: ThunderIDContextProps['organizationHandle'];\n refreshToken: () => Promise<RefreshResult>;\n signIn: ThunderIDContextProps['signIn'];\n signOut: ThunderIDContextProps['signOut'];\n signUp: ThunderIDContextProps['signUp'];\n updateProfile: (\n requestConfig: UpdateMeProfileConfig,\n sessionId?: string,\n ) => Promise<{data: {user: User}; error: string; success: boolean}>;\n user: User | null;\n userProfile: UserProfile;\n userSchema?: Record<string, AttributeSchema> | null;\n };\n\nconst ThunderIDClientProvider: FC<PropsWithChildren<ThunderIDClientProviderProps>> = ({\n baseUrl,\n children,\n endpoints,\n signIn,\n clearSession,\n refreshToken,\n signOut,\n signUp,\n handleOAuthCallback,\n preferences,\n isSignedIn,\n signInUrl,\n signUpUrl,\n user: _user,\n userProfile: _userProfile,\n userSchema: _userSchema = null,\n updateProfile,\n applicationId,\n organizationHandle,\n scopes,\n vendor,\n initialMeta = null,\n}: PropsWithChildren<ThunderIDClientProviderProps>) => {\n const reRenderCheckRef: RefObject<boolean> = useRef(false);\n const router: AppRouterInstance = useRouter();\n const searchParams: ReadonlyURLSearchParams = useSearchParams();\n const [isLoading, setIsLoading] = useState<boolean>(true);\n const [user, setUser] = useState<User | null>(_user);\n const [userProfile, setUserProfile] = useState<UserProfile>(_userProfile);\n const [userSchema, setUserSchema] = useState<Record<string, AttributeSchema> | null>(_userSchema);\n\n useEffect(() => {\n setUserProfile(_userProfile);\n }, [_userProfile]);\n\n useEffect(() => {\n setUserSchema(_userSchema);\n }, [_userSchema]);\n\n useEffect(() => {\n setUser(_user);\n }, [_user]);\n\n // Handle OAuth callback automatically\n useEffect(() => {\n // React 18.x Strict.Mode has a new check for `Ensuring reusable state` to facilitate an upcoming react feature.\n // https://reactjs.org/docs/strict-mode.html#ensuring-reusable-state\n // This will remount all the useEffects to ensure that there are no unexpected side effects.\n // When react remounts the signIn hook of the AuthProvider, it will cause a race condition. Hence, we have to\n // prevent the re-render of this hook as suggested in the following discussion.\n // https://github.com/reactwg/react-18/discussions/18#discussioncomment-795623\n if (reRenderCheckRef.current) {\n return;\n }\n\n reRenderCheckRef.current = true;\n\n // Don't handle callback if already signed in\n if (isSignedIn) return;\n\n (async (): Promise<void> => {\n try {\n const code: string | null = searchParams.get('code');\n const state: string | null = searchParams.get('state');\n const error: string | null = searchParams.get('error');\n\n // Check for OAuth errors first\n if (error) {\n logger.error('[ThunderIDClientProvider] An error was received for the initiated sign-in request.');\n\n return;\n }\n\n // Handle OAuth callback if code and state are present\n if (code && state) {\n setIsLoading(true);\n\n const result: {error?: string; redirectUrl?: string; success: boolean} = await handleOAuthCallback(\n code,\n state,\n );\n\n if (result.success) {\n // Redirect to the success URL\n if (result.redirectUrl) {\n router.push(result.redirectUrl);\n } else {\n // Refresh the page to update authentication state\n window.location.reload();\n }\n } else {\n logger.error(\n `[ThunderIDClientProvider] An error occurred while signing in: ${result.error || 'Authentication failed'}`,\n );\n }\n }\n } catch (error) {\n logger.error('[ThunderIDClientProvider] Failed to handle OAuth callback:', error);\n }\n })();\n }, []);\n\n useEffect(() => {\n // Set loading to false when server has resolved authentication state\n setIsLoading(false);\n }, [isSignedIn, user]);\n\n const [currentOrganizationUnit, setCurrentOrganizationUnit] = useState<CurrentOrganizationUnit | null>(null);\n // The current project is client-side context for the management UI, kept in the browser like the\n // React SDK's: it changes no session, cookie or token.\n const {currentProject, setCurrentProject} = useCurrentProjectState(getVendorPrefix(vendor));\n\n useEffect(() => {\n if (!isSignedIn) {\n setCurrentOrganizationUnit(null);\n\n return;\n }\n\n getCurrentOrganizationUnitAction()\n .then(setCurrentOrganizationUnit)\n .catch(() => setCurrentOrganizationUnit(null));\n }, [isSignedIn, user]);\n\n /**\n * Signs in again bounded to another organization unit through a server action. Redirect mode sends the\n * browser to the unit's authorization endpoint and resolves with `undefined`; embedded mode replaces\n * the session in place and resolves with the refreshed user. A failure keeps the previous session and\n * rejects with an error whose code is one of `OrganizationUnitSwitchErrorCodes`.\n */\n const handleSwitchOrganizationUnit = async (\n organizationUnitId: string,\n options?: SwitchOrganizationUnitOptions,\n ): Promise<User | undefined> => {\n const result: SwitchOrganizationUnitActionResult = await switchOrganizationUnitAction(organizationUnitId, {\n redirect: options?.redirect,\n });\n\n if (!result.success) {\n throw new ThunderIDAPIError(\n JSON.stringify({code: result.code, message: {defaultValue: 'Switching the organization unit failed'}}),\n result.code,\n 'nextjs',\n result.statusCode,\n );\n }\n\n if (result.data.signInUrl) {\n // The authorization endpoint is on the identity server, so leave the app rather than route.\n window.location.href = result.data.signInUrl;\n\n return undefined;\n }\n\n const sessionId: string | undefined = await getSessionId();\n const refreshed: Awaited<ReturnType<typeof getUserAction>> | undefined = sessionId\n ? await getUserAction(sessionId)\n : undefined;\n const refreshedUser: User | null = refreshed?.data?.user ?? null;\n\n if (refreshedUser) {\n setUser(refreshedUser);\n }\n\n setCurrentOrganizationUnit(await getCurrentOrganizationUnitAction());\n router.refresh();\n\n return refreshedUser ?? undefined;\n };\n\n const handleSignIn = async (payload: any, request: EmbeddedFlowExecuteRequestConfig): Promise<any> => {\n if (!signIn) {\n throw new ThunderIDRuntimeError(\n '`signIn` function is not available.',\n 'ThunderIDClientProvider-handleSignIn-RuntimeError-001',\n 'nextjs',\n );\n }\n\n const result: any = await signIn(payload, request);\n\n // Redirect based flow URL is sent as `signInUrl` in the response.\n // Use window.location.href instead of router.push() — the OAuth authorization\n // endpoint is on an external server, and router.push() would send RSC fetch\n // headers that the identity provider doesn't understand, causing a CORS error.\n if (result?.data?.signInUrl) {\n window.location.href = result.data.signInUrl;\n\n return undefined;\n }\n\n // After the Embedded flow is successful, the URL to navigate next is sent as `afterSignInUrl` in the response.\n if (result?.data?.afterSignInUrl) {\n router.push(result.data.afterSignInUrl);\n\n return undefined;\n }\n\n if (result?.error) {\n throw new Error(result.error);\n }\n\n return result?.data ?? result;\n };\n\n const handleSignUp = async (payload: any, request: EmbeddedFlowExecuteRequestConfig): Promise<any> => {\n if (!signUp) {\n throw new ThunderIDRuntimeError(\n '`signUp` function is not available.',\n 'ThunderIDClientProvider-handleSignUp-RuntimeError-001',\n 'nextjs',\n );\n }\n\n const result: any = await signUp(payload, request);\n\n // Redirect based flow URL is sent as `signUpUrl` in the response.\n if (result?.data?.signUpUrl) {\n router.push(result.data.signUpUrl);\n\n return undefined;\n }\n\n // After the Embedded flow is successful, the URL to navigate next is sent as `afterSignUpUrl` in the response.\n if (result?.data?.afterSignUpUrl) {\n router.push(result.data.afterSignUpUrl);\n\n return undefined;\n }\n\n if (result?.error) {\n throw new Error(result.error);\n }\n\n return result?.data ?? result;\n };\n\n const handleSignOut = async (): Promise<any> => {\n logger.debug('[ThunderIDClientProvider][handleSignOut] `handleSignOut` called.');\n\n try {\n const result: any = await signOut();\n\n logger.debug('[ThunderIDClientProvider][handleSignOut] Sign out result:', result);\n\n if (result?.data?.afterSignOutUrl) {\n router.push(result.data.afterSignOutUrl);\n\n return {location: result.data.afterSignOutUrl, redirected: true};\n }\n\n if (result?.error) {\n logger.error(\n '[ThunderIDClientProvider][handleSignOut] Error result was returned during signing the user out with a button click:',\n result.error,\n );\n }\n\n return result?.data ?? result;\n } catch (error) {\n logger.error(\n '[ThunderIDClientProvider][handleSignOut] Error occurred during signing the user out with a button click:',\n error,\n );\n\n return undefined;\n }\n };\n\n const contextValue: ThunderIDContextProps = useMemo(\n () => ({\n applicationId,\n baseUrl,\n clearSession,\n currentOrganizationUnit,\n currentProject,\n getCurrentOrganizationUnit: getCurrentOrganizationUnitAction,\n isLoading,\n isSignedIn,\n organizationHandle,\n preferences,\n refreshToken,\n setCurrentProject,\n switchOrganizationUnit: handleSwitchOrganizationUnit,\n scopes,\n signIn: handleSignIn,\n signInUrl,\n signOut: handleSignOut,\n signUp: handleSignUp,\n signUpUrl,\n user,\n }),\n [\n baseUrl,\n user,\n isSignedIn,\n isLoading,\n signInUrl,\n signUpUrl,\n applicationId,\n organizationHandle,\n scopes,\n preferences,\n currentOrganizationUnit,\n currentProject,\n setCurrentProject,\n ],\n );\n\n const handleProfileUpdate = (payload: User): void => {\n setUser(payload);\n setUserProfile((prev: UserProfile) => ({\n ...prev,\n flattenedProfile: generateFlattenedUserProfile(payload),\n profile: payload,\n }));\n };\n\n /**\n * Re-reads `/users/me` through the server-held session, so a change made outside the profile API,\n * such as a recorded verification, shows.\n */\n const revalidateProfile = async (): Promise<void> => {\n if (preferences?.user?.fetchUserProfile === false) return;\n\n const result: Awaited<ReturnType<typeof getUserProfileAction>> = await getUserProfileAction(\n (await getSessionId()) ?? '',\n );\n\n if (result.success) {\n handleProfileUpdate(result.data.userProfile.profile);\n }\n };\n\n // Bridge into @thunderid/react's own ThunderIDContext. Internal react components rendered by\n // BaseSignIn/BaseSignUp — most notably FlowMetaProvider, which fetches `/flow/meta` and injects\n // its i18n bundle — call react's `useThunderID()` directly. Without this bridge they'd only see\n // react's context default (applicationId/baseUrl undefined, isInitialized false), so the meta\n // fetch would never fire and flow labels would render as untranslated i18n keys. Fields with no\n // nextjs equivalent (token/http helpers meant for direct browser API calls) are stubbed out,\n // since nextjs routes those operations through server actions instead.\n const unsupported = (name: string): (() => Promise<never>) => {\n return () =>\n Promise.reject(\n new ThunderIDRuntimeError(\n `\\`${name}\\` is not supported in @thunderid/nextjs.`,\n `ThunderIDClientProvider-${name}-NotSupportedError-001`,\n 'nextjs',\n ),\n );\n };\n\n const reactContextValue: ReactThunderIDContextProps = useMemo(\n () => ({\n afterSignInUrl: undefined,\n applicationId,\n baseUrl,\n clearSession,\n clientId: undefined,\n currentOrganizationUnit,\n currentProject,\n discovery: {wellKnown: null},\n // Only the management collection overrides arrive here, so the admin hooks build the URLs the\n // management server action accepts.\n endpoints,\n exchangeToken: unsupported('exchangeToken'),\n getAccessToken: unsupported('getAccessToken'),\n getCurrentOrganizationUnit: getCurrentOrganizationUnitAction,\n getDecodedIdToken: unsupported('getDecodedIdToken'),\n // The Next.js useGrantedPermissions reads them through a server action instead.\n getGrantedPermissions: unsupported('getGrantedPermissions'),\n getIdToken: unsupported('getIdToken'),\n getStorageManager: () => Promise.resolve(null),\n http: {\n // The admin components and hooks send management requests through a server action that adds\n // the server-held access token, so the token never reaches the browser.\n fetcher: fetchManagementFromServer,\n request: unsupported('http.request'),\n requestAll: unsupported('http.requestAll'),\n },\n instanceId: 0,\n isInitialized: !isLoading,\n isLoading,\n isMetaLoading: false,\n isSignedIn,\n meta: initialMeta ?? null,\n organizationHandle,\n reInitialize: unsupported('reInitialize'),\n recover: unsupported('recover'),\n resolveFlowTemplateLiterals: (text: string | undefined): string => text ?? '',\n scopes,\n setCurrentProject,\n signIn: handleSignIn,\n signInSilently: unsupported('signInSilently'),\n signInUrl,\n signOut: handleSignOut,\n signUp: handleSignUp,\n signUpUrl,\n switchOrganizationUnit: handleSwitchOrganizationUnit,\n user,\n userSchema,\n vendor: getVendorPrefix(vendor),\n }),\n [\n applicationId,\n baseUrl,\n clearSession,\n endpoints,\n isLoading,\n isSignedIn,\n organizationHandle,\n scopes,\n signInUrl,\n signUpUrl,\n user,\n userSchema,\n initialMeta,\n vendor,\n currentOrganizationUnit,\n currentProject,\n setCurrentProject,\n ],\n );\n\n return (\n <ThunderIDContext.Provider value={contextValue}>\n <ReactThunderIDContext.Provider value={reactContextValue}>\n <I18nProvider preferences={preferences?.i18n}>\n <FlowMetaProvider\n enabled={preferences?.resolveFromMeta !== false}\n initialMeta={initialMeta}\n fetchMeta={fetchFlowMetaFromServer}\n >\n <ThemeProvider theme={preferences?.theme?.overrides} mode={preferences?.theme?.mode}>\n <FlowProvider>\n <UserProvider\n profile={userProfile}\n userSchema={userSchema}\n onUpdateProfile={handleProfileUpdate}\n revalidateProfile={revalidateProfile}\n updateProfile={updateProfile}\n >\n {children}\n </UserProvider>\n </FlowProvider>\n </ThemeProvider>\n </FlowMetaProvider>\n </I18nProvider>\n </ReactThunderIDContext.Provider>\n </ThunderIDContext.Provider>\n );\n};\n\nexport default ThunderIDClientProvider;\n"],"mappings":"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"}
@@ -14,26 +14,37 @@ const require_UserProfile = require('./components/account/UserProfile/UserProfil
14
14
  const require_UserDropdown = require('./components/account/UserDropdown/UserDropdown.cjs');
15
15
  const require_UserAvatar = require('./components/account/UserAvatar/UserAvatar.cjs');
16
16
  const require_ChangeCredential = require('./components/account/ChangeCredential/ChangeCredential.cjs');
17
+ const require_OrganizationUnitSwitcher = require('./components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs');
17
18
  const require_UserSelect = require('./components/primitives/UserSelect/UserSelect.cjs');
18
19
  const require_AuthFlowSelect = require('./components/primitives/AuthFlowSelect/AuthFlowSelect.cjs');
19
20
  const require_UserTypeSelect = require('./components/primitives/UserTypeSelect/UserTypeSelect.cjs');
20
- const require_UserList = require('./components/admin/UserList/UserList.cjs');
21
- const require_UserCreate = require('./components/admin/UserCreate/UserCreate.cjs');
22
- const require_UserDetails = require('./components/admin/UserDetails/UserDetails.cjs');
23
- const require_GroupList = require('./components/admin/GroupList/GroupList.cjs');
24
- const require_GroupCreate = require('./components/admin/GroupCreate/GroupCreate.cjs');
25
- const require_GroupMembers = require('./components/admin/GroupMembers/GroupMembers.cjs');
26
- const require_RoleList = require('./components/admin/RoleList/RoleList.cjs');
27
- const require_RoleCreate = require('./components/admin/RoleCreate/RoleCreate.cjs');
28
- const require_RoleAssignments = require('./components/admin/RoleAssignments/RoleAssignments.cjs');
29
- const require_RolePermissions = require('./components/admin/RolePermissions/RolePermissions.cjs');
30
- const require_AgentList = require('./components/admin/AgentList/AgentList.cjs');
31
- const require_AgentCreate = require('./components/admin/AgentCreate/AgentCreate.cjs');
32
- const require_AgentDetails = require('./components/admin/AgentDetails/AgentDetails.cjs');
33
- const require_ApplicationList = require('./components/admin/ApplicationList/ApplicationList.cjs');
34
- const require_ApplicationCreate = require('./components/admin/ApplicationCreate/ApplicationCreate.cjs');
35
- const require_ApplicationDetails = require('./components/admin/ApplicationDetails/ApplicationDetails.cjs');
21
+ const require_UserList = require('./components/management/UserList/UserList.cjs');
22
+ const require_UserCreate = require('./components/management/UserCreate/UserCreate.cjs');
23
+ const require_UserDetails = require('./components/management/UserDetails/UserDetails.cjs');
24
+ const require_GroupList = require('./components/management/GroupList/GroupList.cjs');
25
+ const require_GroupCreate = require('./components/management/GroupCreate/GroupCreate.cjs');
26
+ const require_GroupMembers = require('./components/management/GroupMembers/GroupMembers.cjs');
27
+ const require_RoleList = require('./components/management/RoleList/RoleList.cjs');
28
+ const require_RoleCreate = require('./components/management/RoleCreate/RoleCreate.cjs');
29
+ const require_RoleAssignments = require('./components/management/RoleAssignments/RoleAssignments.cjs');
30
+ const require_RolePermissions = require('./components/management/RolePermissions/RolePermissions.cjs');
31
+ const require_GroupDetails = require('./components/management/GroupDetails/GroupDetails.cjs');
32
+ const require_RoleDetails = require('./components/management/RoleDetails/RoleDetails.cjs');
33
+ const require_AgentList = require('./components/management/AgentList/AgentList.cjs');
34
+ const require_AgentCreate = require('./components/management/AgentCreate/AgentCreate.cjs');
35
+ const require_AgentDetails = require('./components/management/AgentDetails/AgentDetails.cjs');
36
+ const require_ApplicationList = require('./components/management/ApplicationList/ApplicationList.cjs');
37
+ const require_ApplicationCreate = require('./components/management/ApplicationCreate/ApplicationCreate.cjs');
38
+ const require_ApplicationDetails = require('./components/management/ApplicationDetails/ApplicationDetails.cjs');
39
+ const require_ProjectList = require('./components/management/ProjectList/ProjectList.cjs');
40
+ const require_ProjectCreate = require('./components/management/ProjectCreate/ProjectCreate.cjs');
41
+ const require_ProjectDetails = require('./components/management/ProjectDetails/ProjectDetails.cjs');
42
+ const require_ProjectSwitcher = require('./components/management/ProjectSwitcher/ProjectSwitcher.cjs');
43
+ const require_OrganizationUnitList = require('./components/management/OrganizationUnitList/OrganizationUnitList.cjs');
44
+ const require_OrganizationUnitCreate = require('./components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs');
45
+ const require_OrganizationUnitDetails = require('./components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs');
46
+ const require_SharingPolicies = require('./components/management/SharingPolicies/SharingPolicies.cjs');
36
47
  const require_useGrantedPermissions = require('./hooks/management/useGrantedPermissions.cjs');
37
- require('./admin.cjs');
48
+ require('./management.cjs');
38
49
  let __thunderid_react = require("@thunderid/react");
39
50
  __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);