@thunderid/nextjs 1.12.0 → 1.14.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 (283) hide show
  1. package/dist/ThunderIDNextClient.d.ts +8 -1
  2. package/dist/ThunderIDNextClient.d.ts.map +1 -1
  3. package/dist/ThunderIDNextClient.js +10 -0
  4. package/dist/ThunderIDNextClient.js.map +1 -1
  5. package/dist/cjs/ThunderIDNextClient.cjs +10 -0
  6. package/dist/cjs/ThunderIDNextClient.cjs.map +1 -1
  7. package/dist/cjs/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs +116 -0
  8. package/dist/cjs/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs.map +1 -0
  9. package/dist/cjs/client/components/account/UserProfile/UserProfile.cjs +11 -1
  10. package/dist/cjs/client/components/account/UserProfile/UserProfile.cjs.map +1 -1
  11. package/dist/cjs/client/components/account/VerifyAttribute/VerifyAttribute.cjs +80 -0
  12. package/dist/cjs/client/components/account/VerifyAttribute/VerifyAttribute.cjs.map +1 -0
  13. package/dist/cjs/client/components/auth/SignIn/SignIn.cjs +3 -2
  14. package/dist/cjs/client/components/auth/SignIn/SignIn.cjs.map +1 -1
  15. package/dist/cjs/client/components/{admin → management}/AgentCreate/AgentCreate.cjs +1 -1
  16. package/dist/cjs/client/components/management/AgentCreate/AgentCreate.cjs.map +1 -0
  17. package/dist/cjs/client/components/{admin → management}/AgentDetails/AgentDetails.cjs +1 -1
  18. package/dist/cjs/client/components/management/AgentDetails/AgentDetails.cjs.map +1 -0
  19. package/dist/cjs/client/components/{admin → management}/AgentList/AgentList.cjs +1 -1
  20. package/dist/cjs/client/components/management/AgentList/AgentList.cjs.map +1 -0
  21. package/dist/cjs/client/components/{admin → management}/ApplicationCreate/ApplicationCreate.cjs +1 -1
  22. package/dist/cjs/client/components/management/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
  23. package/dist/cjs/client/components/{admin → management}/ApplicationDetails/ApplicationDetails.cjs +1 -1
  24. package/dist/cjs/client/components/management/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
  25. package/dist/cjs/client/components/{admin → management}/ApplicationList/ApplicationList.cjs +1 -1
  26. package/dist/cjs/client/components/management/ApplicationList/ApplicationList.cjs.map +1 -0
  27. package/dist/cjs/client/components/{admin → management}/GroupCreate/GroupCreate.cjs +1 -1
  28. package/dist/cjs/client/components/management/GroupCreate/GroupCreate.cjs.map +1 -0
  29. package/dist/cjs/client/components/management/GroupDetails/GroupDetails.cjs +28 -0
  30. package/dist/cjs/client/components/management/GroupDetails/GroupDetails.cjs.map +1 -0
  31. package/dist/cjs/client/components/{admin → management}/GroupList/GroupList.cjs +1 -1
  32. package/dist/cjs/client/components/management/GroupList/GroupList.cjs.map +1 -0
  33. package/dist/cjs/client/components/{admin → management}/GroupMembers/GroupMembers.cjs +1 -1
  34. package/dist/cjs/client/components/management/GroupMembers/GroupMembers.cjs.map +1 -0
  35. package/dist/cjs/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs +28 -0
  36. package/dist/cjs/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs.map +1 -0
  37. package/dist/cjs/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs +28 -0
  38. package/dist/cjs/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs.map +1 -0
  39. package/dist/cjs/client/components/management/OrganizationUnitList/OrganizationUnitList.cjs +28 -0
  40. package/dist/cjs/client/components/management/OrganizationUnitList/OrganizationUnitList.cjs.map +1 -0
  41. package/dist/cjs/client/components/management/ProjectCreate/ProjectCreate.cjs +28 -0
  42. package/dist/cjs/client/components/management/ProjectCreate/ProjectCreate.cjs.map +1 -0
  43. package/dist/cjs/client/components/management/ProjectDetails/ProjectDetails.cjs +28 -0
  44. package/dist/cjs/client/components/management/ProjectDetails/ProjectDetails.cjs.map +1 -0
  45. package/dist/cjs/client/components/management/ProjectList/ProjectList.cjs +28 -0
  46. package/dist/cjs/client/components/management/ProjectList/ProjectList.cjs.map +1 -0
  47. package/dist/cjs/client/components/management/ProjectSwitcher/ProjectSwitcher.cjs +30 -0
  48. package/dist/cjs/client/components/management/ProjectSwitcher/ProjectSwitcher.cjs.map +1 -0
  49. package/dist/cjs/client/components/{admin → management}/RoleAssignments/RoleAssignments.cjs +1 -1
  50. package/dist/cjs/client/components/management/RoleAssignments/RoleAssignments.cjs.map +1 -0
  51. package/dist/cjs/client/components/{admin → management}/RoleCreate/RoleCreate.cjs +1 -1
  52. package/dist/cjs/client/components/management/RoleCreate/RoleCreate.cjs.map +1 -0
  53. package/dist/cjs/client/components/management/RoleDetails/RoleDetails.cjs +28 -0
  54. package/dist/cjs/client/components/management/RoleDetails/RoleDetails.cjs.map +1 -0
  55. package/dist/cjs/client/components/{admin → management}/RoleList/RoleList.cjs +1 -1
  56. package/dist/cjs/client/components/management/RoleList/RoleList.cjs.map +1 -0
  57. package/dist/cjs/client/components/{admin → management}/RolePermissions/RolePermissions.cjs +1 -1
  58. package/dist/cjs/client/components/management/RolePermissions/RolePermissions.cjs.map +1 -0
  59. package/dist/cjs/client/components/management/SharingPolicies/SharingPolicies.cjs +28 -0
  60. package/dist/cjs/client/components/management/SharingPolicies/SharingPolicies.cjs.map +1 -0
  61. package/dist/cjs/client/components/{admin → management}/UserCreate/UserCreate.cjs +1 -1
  62. package/dist/cjs/client/components/management/UserCreate/UserCreate.cjs.map +1 -0
  63. package/dist/cjs/client/components/{admin → management}/UserDetails/UserDetails.cjs +1 -1
  64. package/dist/cjs/client/components/management/UserDetails/UserDetails.cjs.map +1 -0
  65. package/dist/cjs/client/components/{admin → management}/UserList/UserList.cjs +1 -1
  66. package/dist/cjs/client/components/management/UserList/UserList.cjs.map +1 -0
  67. package/dist/cjs/client/contexts/ThunderID/ThunderIDProvider.cjs +65 -2
  68. package/dist/cjs/client/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
  69. package/dist/cjs/client/index.cjs +29 -17
  70. package/dist/cjs/index.cjs +100 -16
  71. package/dist/cjs/server/actions/account/getAccessibleOrganizationUnitsAction.cjs +53 -0
  72. package/dist/cjs/server/actions/account/getAccessibleOrganizationUnitsAction.cjs.map +1 -0
  73. package/dist/cjs/server/actions/account/getCurrentOrganizationUnitAction.cjs +31 -0
  74. package/dist/cjs/server/actions/account/getCurrentOrganizationUnitAction.cjs.map +1 -0
  75. package/dist/cjs/server/actions/auth/executeSelfFlowAction.cjs +47 -0
  76. package/dist/cjs/server/actions/auth/executeSelfFlowAction.cjs.map +1 -0
  77. package/dist/cjs/server/actions/auth/switchOrganizationUnitAction.cjs +85 -0
  78. package/dist/cjs/server/actions/auth/switchOrganizationUnitAction.cjs.map +1 -0
  79. package/dist/cjs/server/thunderid.cjs +16 -0
  80. package/dist/cjs/server/thunderid.cjs.map +1 -1
  81. package/dist/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts +24 -0
  82. package/dist/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts.map +1 -0
  83. package/dist/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js +112 -0
  84. package/dist/client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js.map +1 -0
  85. package/dist/client/components/account/UserProfile/UserProfile.d.ts +7 -1
  86. package/dist/client/components/account/UserProfile/UserProfile.d.ts.map +1 -1
  87. package/dist/client/components/account/UserProfile/UserProfile.js +12 -2
  88. package/dist/client/components/account/UserProfile/UserProfile.js.map +1 -1
  89. package/dist/client/components/account/VerifyAttribute/VerifyAttribute.d.ts +41 -0
  90. package/dist/client/components/account/VerifyAttribute/VerifyAttribute.d.ts.map +1 -0
  91. package/dist/client/components/account/VerifyAttribute/VerifyAttribute.js +75 -0
  92. package/dist/client/components/account/VerifyAttribute/VerifyAttribute.js.map +1 -0
  93. package/dist/client/components/auth/SignIn/SignIn.d.ts +7 -1
  94. package/dist/client/components/auth/SignIn/SignIn.d.ts.map +1 -1
  95. package/dist/client/components/auth/SignIn/SignIn.js +3 -2
  96. package/dist/client/components/auth/SignIn/SignIn.js.map +1 -1
  97. package/dist/client/components/management/AgentCreate/AgentCreate.d.ts.map +1 -0
  98. package/dist/client/components/{admin → management}/AgentCreate/AgentCreate.js +1 -1
  99. package/dist/client/components/management/AgentCreate/AgentCreate.js.map +1 -0
  100. package/dist/client/components/management/AgentDetails/AgentDetails.d.ts.map +1 -0
  101. package/dist/client/components/{admin → management}/AgentDetails/AgentDetails.js +1 -1
  102. package/dist/client/components/management/AgentDetails/AgentDetails.js.map +1 -0
  103. package/dist/client/components/management/AgentList/AgentList.d.ts.map +1 -0
  104. package/dist/client/components/{admin → management}/AgentList/AgentList.js +1 -1
  105. package/dist/client/components/management/AgentList/AgentList.js.map +1 -0
  106. package/dist/client/components/management/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
  107. package/dist/client/components/{admin → management}/ApplicationCreate/ApplicationCreate.js +1 -1
  108. package/dist/client/components/management/ApplicationCreate/ApplicationCreate.js.map +1 -0
  109. package/dist/client/components/management/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
  110. package/dist/client/components/{admin → management}/ApplicationDetails/ApplicationDetails.js +1 -1
  111. package/dist/client/components/management/ApplicationDetails/ApplicationDetails.js.map +1 -0
  112. package/dist/client/components/management/ApplicationList/ApplicationList.d.ts.map +1 -0
  113. package/dist/client/components/{admin → management}/ApplicationList/ApplicationList.js +1 -1
  114. package/dist/client/components/management/ApplicationList/ApplicationList.js.map +1 -0
  115. package/dist/client/components/management/GroupCreate/GroupCreate.d.ts.map +1 -0
  116. package/dist/client/components/{admin → management}/GroupCreate/GroupCreate.js +1 -1
  117. package/dist/client/components/management/GroupCreate/GroupCreate.js.map +1 -0
  118. package/dist/client/components/management/GroupDetails/GroupDetails.d.ts +17 -0
  119. package/dist/client/components/management/GroupDetails/GroupDetails.d.ts.map +1 -0
  120. package/dist/client/components/management/GroupDetails/GroupDetails.js +25 -0
  121. package/dist/client/components/management/GroupDetails/GroupDetails.js.map +1 -0
  122. package/dist/client/components/management/GroupList/GroupList.d.ts.map +1 -0
  123. package/dist/client/components/{admin → management}/GroupList/GroupList.js +1 -1
  124. package/dist/client/components/management/GroupList/GroupList.js.map +1 -0
  125. package/dist/client/components/management/GroupMembers/GroupMembers.d.ts.map +1 -0
  126. package/dist/client/components/{admin → management}/GroupMembers/GroupMembers.js +1 -1
  127. package/dist/client/components/management/GroupMembers/GroupMembers.js.map +1 -0
  128. package/dist/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts +17 -0
  129. package/dist/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts.map +1 -0
  130. package/dist/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js +25 -0
  131. package/dist/client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js.map +1 -0
  132. package/dist/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts +17 -0
  133. package/dist/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts.map +1 -0
  134. package/dist/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js +25 -0
  135. package/dist/client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js.map +1 -0
  136. package/dist/client/components/management/OrganizationUnitList/OrganizationUnitList.d.ts +17 -0
  137. package/dist/client/components/management/OrganizationUnitList/OrganizationUnitList.d.ts.map +1 -0
  138. package/dist/client/components/management/OrganizationUnitList/OrganizationUnitList.js +25 -0
  139. package/dist/client/components/management/OrganizationUnitList/OrganizationUnitList.js.map +1 -0
  140. package/dist/client/components/management/ProjectCreate/ProjectCreate.d.ts +17 -0
  141. package/dist/client/components/management/ProjectCreate/ProjectCreate.d.ts.map +1 -0
  142. package/dist/client/components/management/ProjectCreate/ProjectCreate.js +25 -0
  143. package/dist/client/components/management/ProjectCreate/ProjectCreate.js.map +1 -0
  144. package/dist/client/components/management/ProjectDetails/ProjectDetails.d.ts +17 -0
  145. package/dist/client/components/management/ProjectDetails/ProjectDetails.d.ts.map +1 -0
  146. package/dist/client/components/management/ProjectDetails/ProjectDetails.js +25 -0
  147. package/dist/client/components/management/ProjectDetails/ProjectDetails.js.map +1 -0
  148. package/dist/client/components/management/ProjectList/ProjectList.d.ts +17 -0
  149. package/dist/client/components/management/ProjectList/ProjectList.d.ts.map +1 -0
  150. package/dist/client/components/management/ProjectList/ProjectList.js +25 -0
  151. package/dist/client/components/management/ProjectList/ProjectList.js.map +1 -0
  152. package/dist/client/components/management/ProjectSwitcher/ProjectSwitcher.d.ts +19 -0
  153. package/dist/client/components/management/ProjectSwitcher/ProjectSwitcher.d.ts.map +1 -0
  154. package/dist/client/components/management/ProjectSwitcher/ProjectSwitcher.js +27 -0
  155. package/dist/client/components/management/ProjectSwitcher/ProjectSwitcher.js.map +1 -0
  156. package/dist/client/components/management/RoleAssignments/RoleAssignments.d.ts.map +1 -0
  157. package/dist/client/components/{admin → management}/RoleAssignments/RoleAssignments.js +1 -1
  158. package/dist/client/components/management/RoleAssignments/RoleAssignments.js.map +1 -0
  159. package/dist/client/components/management/RoleCreate/RoleCreate.d.ts.map +1 -0
  160. package/dist/client/components/{admin → management}/RoleCreate/RoleCreate.js +1 -1
  161. package/dist/client/components/management/RoleCreate/RoleCreate.js.map +1 -0
  162. package/dist/client/components/management/RoleDetails/RoleDetails.d.ts +17 -0
  163. package/dist/client/components/management/RoleDetails/RoleDetails.d.ts.map +1 -0
  164. package/dist/client/components/management/RoleDetails/RoleDetails.js +25 -0
  165. package/dist/client/components/management/RoleDetails/RoleDetails.js.map +1 -0
  166. package/dist/client/components/management/RoleList/RoleList.d.ts.map +1 -0
  167. package/dist/client/components/{admin → management}/RoleList/RoleList.js +1 -1
  168. package/dist/client/components/management/RoleList/RoleList.js.map +1 -0
  169. package/dist/client/components/management/RolePermissions/RolePermissions.d.ts.map +1 -0
  170. package/dist/client/components/{admin → management}/RolePermissions/RolePermissions.js +1 -1
  171. package/dist/client/components/management/RolePermissions/RolePermissions.js.map +1 -0
  172. package/dist/client/components/management/SharingPolicies/SharingPolicies.d.ts +17 -0
  173. package/dist/client/components/management/SharingPolicies/SharingPolicies.d.ts.map +1 -0
  174. package/dist/client/components/management/SharingPolicies/SharingPolicies.js +25 -0
  175. package/dist/client/components/management/SharingPolicies/SharingPolicies.js.map +1 -0
  176. package/dist/client/components/management/UserCreate/UserCreate.d.ts.map +1 -0
  177. package/dist/client/components/{admin → management}/UserCreate/UserCreate.js +1 -1
  178. package/dist/client/components/management/UserCreate/UserCreate.js.map +1 -0
  179. package/dist/client/components/management/UserDetails/UserDetails.d.ts.map +1 -0
  180. package/dist/client/components/{admin → management}/UserDetails/UserDetails.js +1 -1
  181. package/dist/client/components/management/UserDetails/UserDetails.js.map +1 -0
  182. package/dist/client/components/management/UserList/UserList.d.ts.map +1 -0
  183. package/dist/client/components/{admin → management}/UserList/UserList.js +1 -1
  184. package/dist/client/components/management/UserList/UserList.js.map +1 -0
  185. package/dist/client/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
  186. package/dist/client/contexts/ThunderID/ThunderIDProvider.js +67 -4
  187. package/dist/client/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
  188. package/dist/client/index.d.ts +57 -33
  189. package/dist/client/index.d.ts.map +1 -1
  190. package/dist/client/index.js +29 -17
  191. package/dist/client/management.d.ts +3 -0
  192. package/dist/client/management.d.ts.map +1 -0
  193. package/dist/client/management.js +6 -0
  194. package/dist/index.js +30 -18
  195. package/dist/server/actions/account/getAccessibleOrganizationUnitsAction.d.ts +20 -0
  196. package/dist/server/actions/account/getAccessibleOrganizationUnitsAction.d.ts.map +1 -0
  197. package/dist/server/actions/account/getAccessibleOrganizationUnitsAction.js +51 -0
  198. package/dist/server/actions/account/getAccessibleOrganizationUnitsAction.js.map +1 -0
  199. package/dist/server/actions/account/getCurrentOrganizationUnitAction.d.ts +10 -0
  200. package/dist/server/actions/account/getCurrentOrganizationUnitAction.d.ts.map +1 -0
  201. package/dist/server/actions/account/getCurrentOrganizationUnitAction.js +28 -0
  202. package/dist/server/actions/account/getCurrentOrganizationUnitAction.js.map +1 -0
  203. package/dist/server/actions/auth/executeSelfFlowAction.d.ts +20 -0
  204. package/dist/server/actions/auth/executeSelfFlowAction.d.ts.map +1 -0
  205. package/dist/server/actions/auth/executeSelfFlowAction.js +45 -0
  206. package/dist/server/actions/auth/executeSelfFlowAction.js.map +1 -0
  207. package/dist/server/actions/auth/switchOrganizationUnitAction.d.ts +30 -0
  208. package/dist/server/actions/auth/switchOrganizationUnitAction.d.ts.map +1 -0
  209. package/dist/server/actions/auth/switchOrganizationUnitAction.js +82 -0
  210. package/dist/server/actions/auth/switchOrganizationUnitAction.js.map +1 -0
  211. package/dist/server/thunderid.d.ts +2 -1
  212. package/dist/server/thunderid.d.ts.map +1 -1
  213. package/dist/server/thunderid.js +14 -0
  214. package/dist/server/thunderid.js.map +1 -1
  215. package/package.json +3 -3
  216. package/dist/cjs/client/components/admin/AgentCreate/AgentCreate.cjs.map +0 -1
  217. package/dist/cjs/client/components/admin/AgentDetails/AgentDetails.cjs.map +0 -1
  218. package/dist/cjs/client/components/admin/AgentList/AgentList.cjs.map +0 -1
  219. package/dist/cjs/client/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +0 -1
  220. package/dist/cjs/client/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +0 -1
  221. package/dist/cjs/client/components/admin/ApplicationList/ApplicationList.cjs.map +0 -1
  222. package/dist/cjs/client/components/admin/GroupCreate/GroupCreate.cjs.map +0 -1
  223. package/dist/cjs/client/components/admin/GroupList/GroupList.cjs.map +0 -1
  224. package/dist/cjs/client/components/admin/GroupMembers/GroupMembers.cjs.map +0 -1
  225. package/dist/cjs/client/components/admin/RoleAssignments/RoleAssignments.cjs.map +0 -1
  226. package/dist/cjs/client/components/admin/RoleCreate/RoleCreate.cjs.map +0 -1
  227. package/dist/cjs/client/components/admin/RoleList/RoleList.cjs.map +0 -1
  228. package/dist/cjs/client/components/admin/RolePermissions/RolePermissions.cjs.map +0 -1
  229. package/dist/cjs/client/components/admin/UserCreate/UserCreate.cjs.map +0 -1
  230. package/dist/cjs/client/components/admin/UserDetails/UserDetails.cjs.map +0 -1
  231. package/dist/cjs/client/components/admin/UserList/UserList.cjs.map +0 -1
  232. package/dist/client/admin.d.ts +0 -3
  233. package/dist/client/admin.d.ts.map +0 -1
  234. package/dist/client/admin.js +0 -6
  235. package/dist/client/components/admin/AgentCreate/AgentCreate.d.ts.map +0 -1
  236. package/dist/client/components/admin/AgentCreate/AgentCreate.js.map +0 -1
  237. package/dist/client/components/admin/AgentDetails/AgentDetails.d.ts.map +0 -1
  238. package/dist/client/components/admin/AgentDetails/AgentDetails.js.map +0 -1
  239. package/dist/client/components/admin/AgentList/AgentList.d.ts.map +0 -1
  240. package/dist/client/components/admin/AgentList/AgentList.js.map +0 -1
  241. package/dist/client/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +0 -1
  242. package/dist/client/components/admin/ApplicationCreate/ApplicationCreate.js.map +0 -1
  243. package/dist/client/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +0 -1
  244. package/dist/client/components/admin/ApplicationDetails/ApplicationDetails.js.map +0 -1
  245. package/dist/client/components/admin/ApplicationList/ApplicationList.d.ts.map +0 -1
  246. package/dist/client/components/admin/ApplicationList/ApplicationList.js.map +0 -1
  247. package/dist/client/components/admin/GroupCreate/GroupCreate.d.ts.map +0 -1
  248. package/dist/client/components/admin/GroupCreate/GroupCreate.js.map +0 -1
  249. package/dist/client/components/admin/GroupList/GroupList.d.ts.map +0 -1
  250. package/dist/client/components/admin/GroupList/GroupList.js.map +0 -1
  251. package/dist/client/components/admin/GroupMembers/GroupMembers.d.ts.map +0 -1
  252. package/dist/client/components/admin/GroupMembers/GroupMembers.js.map +0 -1
  253. package/dist/client/components/admin/RoleAssignments/RoleAssignments.d.ts.map +0 -1
  254. package/dist/client/components/admin/RoleAssignments/RoleAssignments.js.map +0 -1
  255. package/dist/client/components/admin/RoleCreate/RoleCreate.d.ts.map +0 -1
  256. package/dist/client/components/admin/RoleCreate/RoleCreate.js.map +0 -1
  257. package/dist/client/components/admin/RoleList/RoleList.d.ts.map +0 -1
  258. package/dist/client/components/admin/RoleList/RoleList.js.map +0 -1
  259. package/dist/client/components/admin/RolePermissions/RolePermissions.d.ts.map +0 -1
  260. package/dist/client/components/admin/RolePermissions/RolePermissions.js.map +0 -1
  261. package/dist/client/components/admin/UserCreate/UserCreate.d.ts.map +0 -1
  262. package/dist/client/components/admin/UserCreate/UserCreate.js.map +0 -1
  263. package/dist/client/components/admin/UserDetails/UserDetails.d.ts.map +0 -1
  264. package/dist/client/components/admin/UserDetails/UserDetails.js.map +0 -1
  265. package/dist/client/components/admin/UserList/UserList.d.ts.map +0 -1
  266. package/dist/client/components/admin/UserList/UserList.js.map +0 -1
  267. /package/dist/cjs/client/{admin.cjs → management.cjs} +0 -0
  268. /package/dist/client/components/{admin → management}/AgentCreate/AgentCreate.d.ts +0 -0
  269. /package/dist/client/components/{admin → management}/AgentDetails/AgentDetails.d.ts +0 -0
  270. /package/dist/client/components/{admin → management}/AgentList/AgentList.d.ts +0 -0
  271. /package/dist/client/components/{admin → management}/ApplicationCreate/ApplicationCreate.d.ts +0 -0
  272. /package/dist/client/components/{admin → management}/ApplicationDetails/ApplicationDetails.d.ts +0 -0
  273. /package/dist/client/components/{admin → management}/ApplicationList/ApplicationList.d.ts +0 -0
  274. /package/dist/client/components/{admin → management}/GroupCreate/GroupCreate.d.ts +0 -0
  275. /package/dist/client/components/{admin → management}/GroupList/GroupList.d.ts +0 -0
  276. /package/dist/client/components/{admin → management}/GroupMembers/GroupMembers.d.ts +0 -0
  277. /package/dist/client/components/{admin → management}/RoleAssignments/RoleAssignments.d.ts +0 -0
  278. /package/dist/client/components/{admin → management}/RoleCreate/RoleCreate.d.ts +0 -0
  279. /package/dist/client/components/{admin → management}/RoleList/RoleList.d.ts +0 -0
  280. /package/dist/client/components/{admin → management}/RolePermissions/RolePermissions.d.ts +0 -0
  281. /package/dist/client/components/{admin → management}/UserCreate/UserCreate.d.ts +0 -0
  282. /package/dist/client/components/{admin → management}/UserDetails/UserDetails.d.ts +0 -0
  283. /package/dist/client/components/{admin → management}/UserList/UserList.d.ts +0 -0
@@ -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"}
@@ -2,8 +2,13 @@
2
2
 
3
3
 
4
4
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
5
+ const require_getSessionId = require('../../../server/actions/getSessionId.cjs');
6
+ const require_getUserAction = require('../../../server/actions/account/getUserAction.cjs');
7
+ const require_getUserProfileAction = require('../../../server/actions/account/getUserProfileAction.cjs');
5
8
  const require_logger = require('../../../utils/logger.cjs');
6
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');
7
12
  const require_fetchFlowMetaFromServer = require('../../fetchFlowMetaFromServer.cjs');
8
13
  const require_fetchManagementFromServer = require('../../fetchManagementFromServer.cjs');
9
14
  let __thunderid_node = require("@thunderid/node");
@@ -62,6 +67,38 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
62
67
  (0, react.useEffect)(() => {
63
68
  setIsLoading(false);
64
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
+ };
65
102
  const handleSignIn = async (payload, request) => {
66
103
  if (!signIn) throw new __thunderid_node.ThunderIDRuntimeError("`signIn` function is not available.", "ThunderIDClientProvider-handleSignIn-RuntimeError-001", "nextjs");
67
104
  const result = await signIn(payload, request);
@@ -113,11 +150,16 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
113
150
  applicationId,
114
151
  baseUrl,
115
152
  clearSession,
153
+ currentOrganizationUnit,
154
+ currentProject,
155
+ getCurrentOrganizationUnit: require_getCurrentOrganizationUnitAction.default,
116
156
  isLoading,
117
157
  isSignedIn,
118
158
  organizationHandle,
119
159
  preferences,
120
160
  refreshToken,
161
+ setCurrentProject,
162
+ switchOrganizationUnit: handleSwitchOrganizationUnit,
121
163
  scopes,
122
164
  signIn: handleSignIn,
123
165
  signInUrl,
@@ -135,7 +177,10 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
135
177
  applicationId,
136
178
  organizationHandle,
137
179
  scopes,
138
- preferences
180
+ preferences,
181
+ currentOrganizationUnit,
182
+ currentProject,
183
+ setCurrentProject
139
184
  ]);
140
185
  const handleProfileUpdate = (payload) => {
141
186
  setUser(payload);
@@ -145,6 +190,15 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
145
190
  profile: payload
146
191
  }));
147
192
  };
193
+ /**
194
+ * Re-reads `/users/me` through the server-held session, so a change made outside the profile API,
195
+ * such as a recorded verification, shows.
196
+ */
197
+ const revalidateProfile = async () => {
198
+ if (preferences?.user?.fetchUserProfile === false) return;
199
+ const result = await require_getUserProfileAction.default(await require_getSessionId.default() ?? "");
200
+ if (result.success) handleProfileUpdate(result.data.userProfile.profile);
201
+ };
148
202
  const unsupported = (name) => {
149
203
  return () => Promise.reject(new __thunderid_node.ThunderIDRuntimeError(`\`${name}\` is not supported in @thunderid/nextjs.`, `ThunderIDClientProvider-${name}-NotSupportedError-001`, "nextjs"));
150
204
  };
@@ -154,10 +208,13 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
154
208
  baseUrl,
155
209
  clearSession,
156
210
  clientId: void 0,
211
+ currentOrganizationUnit,
212
+ currentProject,
157
213
  discovery: { wellKnown: null },
158
214
  endpoints,
159
215
  exchangeToken: unsupported("exchangeToken"),
160
216
  getAccessToken: unsupported("getAccessToken"),
217
+ getCurrentOrganizationUnit: require_getCurrentOrganizationUnitAction.default,
161
218
  getDecodedIdToken: unsupported("getDecodedIdToken"),
162
219
  getGrantedPermissions: unsupported("getGrantedPermissions"),
163
220
  getIdToken: unsupported("getIdToken"),
@@ -178,12 +235,14 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
178
235
  recover: unsupported("recover"),
179
236
  resolveFlowTemplateLiterals: (text) => text ?? "",
180
237
  scopes,
238
+ setCurrentProject,
181
239
  signIn: handleSignIn,
182
240
  signInSilently: unsupported("signInSilently"),
183
241
  signInUrl,
184
242
  signOut: handleSignOut,
185
243
  signUp: handleSignUp,
186
244
  signUpUrl,
245
+ switchOrganizationUnit: handleSwitchOrganizationUnit,
187
246
  user,
188
247
  userSchema,
189
248
  vendor: (0, __thunderid_node.getVendorPrefix)(vendor)
@@ -201,7 +260,10 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
201
260
  user,
202
261
  userSchema,
203
262
  initialMeta,
204
- vendor
263
+ vendor,
264
+ currentOrganizationUnit,
265
+ currentProject,
266
+ setCurrentProject
205
267
  ]);
206
268
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ThunderIDContext.default.Provider, {
207
269
  value: contextValue,
@@ -220,6 +282,7 @@ const ThunderIDClientProvider = ({ baseUrl, children, endpoints, signIn, clearSe
220
282
  profile: userProfile,
221
283
  userSchema,
222
284
  onUpdateProfile: handleProfileUpdate,
285
+ revalidateProfile,
223
286
  updateProfile,
224
287
  children
225
288
  }) })
@@ -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","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 {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 // 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 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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"}
@@ -9,30 +9,42 @@ const require_DeviceGrant = require('./components/auth/DeviceGrant/DeviceGrant.c
9
9
  const require_SignOutButton = require('./components/auth/buttons/SignOutButton/SignOutButton.cjs');
10
10
  const require_User = require('./components/account/User/User.cjs');
11
11
  const require_SignUp = require('./components/auth/SignUp/SignUp.cjs');
12
+ const require_VerifyAttribute = require('./components/account/VerifyAttribute/VerifyAttribute.cjs');
12
13
  const require_UserProfile = require('./components/account/UserProfile/UserProfile.cjs');
13
14
  const require_UserDropdown = require('./components/account/UserDropdown/UserDropdown.cjs');
14
15
  const require_UserAvatar = require('./components/account/UserAvatar/UserAvatar.cjs');
15
16
  const require_ChangeCredential = require('./components/account/ChangeCredential/ChangeCredential.cjs');
17
+ const require_OrganizationUnitSwitcher = require('./components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs');
16
18
  const require_UserSelect = require('./components/primitives/UserSelect/UserSelect.cjs');
17
19
  const require_AuthFlowSelect = require('./components/primitives/AuthFlowSelect/AuthFlowSelect.cjs');
18
20
  const require_UserTypeSelect = require('./components/primitives/UserTypeSelect/UserTypeSelect.cjs');
19
- const require_UserList = require('./components/admin/UserList/UserList.cjs');
20
- const require_UserCreate = require('./components/admin/UserCreate/UserCreate.cjs');
21
- const require_UserDetails = require('./components/admin/UserDetails/UserDetails.cjs');
22
- const require_GroupList = require('./components/admin/GroupList/GroupList.cjs');
23
- const require_GroupCreate = require('./components/admin/GroupCreate/GroupCreate.cjs');
24
- const require_GroupMembers = require('./components/admin/GroupMembers/GroupMembers.cjs');
25
- const require_RoleList = require('./components/admin/RoleList/RoleList.cjs');
26
- const require_RoleCreate = require('./components/admin/RoleCreate/RoleCreate.cjs');
27
- const require_RoleAssignments = require('./components/admin/RoleAssignments/RoleAssignments.cjs');
28
- const require_RolePermissions = require('./components/admin/RolePermissions/RolePermissions.cjs');
29
- const require_AgentList = require('./components/admin/AgentList/AgentList.cjs');
30
- const require_AgentCreate = require('./components/admin/AgentCreate/AgentCreate.cjs');
31
- const require_AgentDetails = require('./components/admin/AgentDetails/AgentDetails.cjs');
32
- const require_ApplicationList = require('./components/admin/ApplicationList/ApplicationList.cjs');
33
- const require_ApplicationCreate = require('./components/admin/ApplicationCreate/ApplicationCreate.cjs');
34
- 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');
35
47
  const require_useGrantedPermissions = require('./hooks/management/useGrantedPermissions.cjs');
36
- require('./admin.cjs');
48
+ require('./management.cjs');
37
49
  let __thunderid_react = require("@thunderid/react");
38
50
  __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
@@ -16,29 +16,41 @@ const require_DeviceGrant = require('./client/components/auth/DeviceGrant/Device
16
16
  const require_SignOutButton = require('./client/components/auth/buttons/SignOutButton/SignOutButton.cjs');
17
17
  const require_User = require('./client/components/account/User/User.cjs');
18
18
  const require_SignUp = require('./client/components/auth/SignUp/SignUp.cjs');
19
+ const require_VerifyAttribute = require('./client/components/account/VerifyAttribute/VerifyAttribute.cjs');
19
20
  const require_UserProfile = require('./client/components/account/UserProfile/UserProfile.cjs');
20
21
  const require_UserDropdown = require('./client/components/account/UserDropdown/UserDropdown.cjs');
21
22
  const require_UserAvatar = require('./client/components/account/UserAvatar/UserAvatar.cjs');
22
23
  const require_ChangeCredential = require('./client/components/account/ChangeCredential/ChangeCredential.cjs');
24
+ const require_OrganizationUnitSwitcher = require('./client/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs');
23
25
  const require_UserSelect = require('./client/components/primitives/UserSelect/UserSelect.cjs');
24
26
  const require_AuthFlowSelect = require('./client/components/primitives/AuthFlowSelect/AuthFlowSelect.cjs');
25
27
  const require_UserTypeSelect = require('./client/components/primitives/UserTypeSelect/UserTypeSelect.cjs');
26
- const require_UserList = require('./client/components/admin/UserList/UserList.cjs');
27
- const require_UserCreate = require('./client/components/admin/UserCreate/UserCreate.cjs');
28
- const require_UserDetails = require('./client/components/admin/UserDetails/UserDetails.cjs');
29
- const require_GroupList = require('./client/components/admin/GroupList/GroupList.cjs');
30
- const require_GroupCreate = require('./client/components/admin/GroupCreate/GroupCreate.cjs');
31
- const require_GroupMembers = require('./client/components/admin/GroupMembers/GroupMembers.cjs');
32
- const require_RoleList = require('./client/components/admin/RoleList/RoleList.cjs');
33
- const require_RoleCreate = require('./client/components/admin/RoleCreate/RoleCreate.cjs');
34
- const require_RoleAssignments = require('./client/components/admin/RoleAssignments/RoleAssignments.cjs');
35
- const require_RolePermissions = require('./client/components/admin/RolePermissions/RolePermissions.cjs');
36
- const require_AgentList = require('./client/components/admin/AgentList/AgentList.cjs');
37
- const require_AgentCreate = require('./client/components/admin/AgentCreate/AgentCreate.cjs');
38
- const require_AgentDetails = require('./client/components/admin/AgentDetails/AgentDetails.cjs');
39
- const require_ApplicationList = require('./client/components/admin/ApplicationList/ApplicationList.cjs');
40
- const require_ApplicationCreate = require('./client/components/admin/ApplicationCreate/ApplicationCreate.cjs');
41
- const require_ApplicationDetails = require('./client/components/admin/ApplicationDetails/ApplicationDetails.cjs');
28
+ const require_UserList = require('./client/components/management/UserList/UserList.cjs');
29
+ const require_UserCreate = require('./client/components/management/UserCreate/UserCreate.cjs');
30
+ const require_UserDetails = require('./client/components/management/UserDetails/UserDetails.cjs');
31
+ const require_GroupList = require('./client/components/management/GroupList/GroupList.cjs');
32
+ const require_GroupCreate = require('./client/components/management/GroupCreate/GroupCreate.cjs');
33
+ const require_GroupMembers = require('./client/components/management/GroupMembers/GroupMembers.cjs');
34
+ const require_RoleList = require('./client/components/management/RoleList/RoleList.cjs');
35
+ const require_RoleCreate = require('./client/components/management/RoleCreate/RoleCreate.cjs');
36
+ const require_RoleAssignments = require('./client/components/management/RoleAssignments/RoleAssignments.cjs');
37
+ const require_RolePermissions = require('./client/components/management/RolePermissions/RolePermissions.cjs');
38
+ const require_GroupDetails = require('./client/components/management/GroupDetails/GroupDetails.cjs');
39
+ const require_RoleDetails = require('./client/components/management/RoleDetails/RoleDetails.cjs');
40
+ const require_AgentList = require('./client/components/management/AgentList/AgentList.cjs');
41
+ const require_AgentCreate = require('./client/components/management/AgentCreate/AgentCreate.cjs');
42
+ const require_AgentDetails = require('./client/components/management/AgentDetails/AgentDetails.cjs');
43
+ const require_ApplicationList = require('./client/components/management/ApplicationList/ApplicationList.cjs');
44
+ const require_ApplicationCreate = require('./client/components/management/ApplicationCreate/ApplicationCreate.cjs');
45
+ const require_ApplicationDetails = require('./client/components/management/ApplicationDetails/ApplicationDetails.cjs');
46
+ const require_ProjectList = require('./client/components/management/ProjectList/ProjectList.cjs');
47
+ const require_ProjectCreate = require('./client/components/management/ProjectCreate/ProjectCreate.cjs');
48
+ const require_ProjectDetails = require('./client/components/management/ProjectDetails/ProjectDetails.cjs');
49
+ const require_ProjectSwitcher = require('./client/components/management/ProjectSwitcher/ProjectSwitcher.cjs');
50
+ const require_OrganizationUnitList = require('./client/components/management/OrganizationUnitList/OrganizationUnitList.cjs');
51
+ const require_OrganizationUnitCreate = require('./client/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs');
52
+ const require_OrganizationUnitDetails = require('./client/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs');
53
+ const require_SharingPolicies = require('./client/components/management/SharingPolicies/SharingPolicies.cjs');
42
54
  const require_useGrantedPermissions = require('./client/hooks/management/useGrantedPermissions.cjs');
43
55
  require('./client/index.cjs');
44
56
  let __thunderid_react = require("@thunderid/react");
@@ -93,6 +105,12 @@ Object.defineProperty(exports, 'BaseGroupCreate', {
93
105
  return __thunderid_react.BaseGroupCreate;
94
106
  }
95
107
  });
108
+ Object.defineProperty(exports, 'BaseGroupDetails', {
109
+ enumerable: true,
110
+ get: function () {
111
+ return __thunderid_react.BaseGroupDetails;
112
+ }
113
+ });
96
114
  Object.defineProperty(exports, 'BaseGroupList', {
97
115
  enumerable: true,
98
116
  get: function () {
@@ -105,6 +123,48 @@ Object.defineProperty(exports, 'BaseGroupMembers', {
105
123
  return __thunderid_react.BaseGroupMembers;
106
124
  }
107
125
  });
126
+ Object.defineProperty(exports, 'BaseOrganizationUnitCreate', {
127
+ enumerable: true,
128
+ get: function () {
129
+ return __thunderid_react.BaseOrganizationUnitCreate;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, 'BaseOrganizationUnitDetails', {
133
+ enumerable: true,
134
+ get: function () {
135
+ return __thunderid_react.BaseOrganizationUnitDetails;
136
+ }
137
+ });
138
+ Object.defineProperty(exports, 'BaseOrganizationUnitList', {
139
+ enumerable: true,
140
+ get: function () {
141
+ return __thunderid_react.BaseOrganizationUnitList;
142
+ }
143
+ });
144
+ Object.defineProperty(exports, 'BaseProjectCreate', {
145
+ enumerable: true,
146
+ get: function () {
147
+ return __thunderid_react.BaseProjectCreate;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, 'BaseProjectDetails', {
151
+ enumerable: true,
152
+ get: function () {
153
+ return __thunderid_react.BaseProjectDetails;
154
+ }
155
+ });
156
+ Object.defineProperty(exports, 'BaseProjectList', {
157
+ enumerable: true,
158
+ get: function () {
159
+ return __thunderid_react.BaseProjectList;
160
+ }
161
+ });
162
+ Object.defineProperty(exports, 'BaseProjectSwitcher', {
163
+ enumerable: true,
164
+ get: function () {
165
+ return __thunderid_react.BaseProjectSwitcher;
166
+ }
167
+ });
108
168
  Object.defineProperty(exports, 'BaseRoleAssignments', {
109
169
  enumerable: true,
110
170
  get: function () {
@@ -117,6 +177,12 @@ Object.defineProperty(exports, 'BaseRoleCreate', {
117
177
  return __thunderid_react.BaseRoleCreate;
118
178
  }
119
179
  });
180
+ Object.defineProperty(exports, 'BaseRoleDetails', {
181
+ enumerable: true,
182
+ get: function () {
183
+ return __thunderid_react.BaseRoleDetails;
184
+ }
185
+ });
120
186
  Object.defineProperty(exports, 'BaseRoleList', {
121
187
  enumerable: true,
122
188
  get: function () {
@@ -129,6 +195,12 @@ Object.defineProperty(exports, 'BaseRolePermissions', {
129
195
  return __thunderid_react.BaseRolePermissions;
130
196
  }
131
197
  });
198
+ Object.defineProperty(exports, 'BaseSharingPolicies', {
199
+ enumerable: true,
200
+ get: function () {
201
+ return __thunderid_react.BaseSharingPolicies;
202
+ }
203
+ });
132
204
  Object.defineProperty(exports, 'BaseUserCreate', {
133
205
  enumerable: true,
134
206
  get: function () {
@@ -150,12 +222,23 @@ Object.defineProperty(exports, 'BaseUserList', {
150
222
  exports.ChangeCredential = require_ChangeCredential.default;
151
223
  exports.DeviceGrant = require_DeviceGrant.default;
152
224
  exports.GroupCreate = require_GroupCreate.default;
225
+ exports.GroupDetails = require_GroupDetails.default;
153
226
  exports.GroupList = require_GroupList.default;
154
227
  exports.GroupMembers = require_GroupMembers.default;
228
+ exports.OrganizationUnitCreate = require_OrganizationUnitCreate.default;
229
+ exports.OrganizationUnitDetails = require_OrganizationUnitDetails.default;
230
+ exports.OrganizationUnitList = require_OrganizationUnitList.default;
231
+ exports.OrganizationUnitSwitcher = require_OrganizationUnitSwitcher.default;
232
+ exports.ProjectCreate = require_ProjectCreate.default;
233
+ exports.ProjectDetails = require_ProjectDetails.default;
234
+ exports.ProjectList = require_ProjectList.default;
235
+ exports.ProjectSwitcher = require_ProjectSwitcher.default;
155
236
  exports.RoleAssignments = require_RoleAssignments.default;
156
237
  exports.RoleCreate = require_RoleCreate.default;
238
+ exports.RoleDetails = require_RoleDetails.default;
157
239
  exports.RoleList = require_RoleList.default;
158
240
  exports.RolePermissions = require_RolePermissions.default;
241
+ exports.SharingPolicies = require_SharingPolicies.default;
159
242
  exports.SignIn = require_SignIn.default;
160
243
  exports.SignInButton = require_SignInButton.default;
161
244
  exports.SignOutButton = require_SignOutButton.default;
@@ -174,6 +257,7 @@ exports.UserList = require_UserList.default;
174
257
  exports.UserProfile = require_UserProfile.default;
175
258
  exports.UserSelect = require_UserSelect.default;
176
259
  exports.UserTypeSelect = require_UserTypeSelect.default;
260
+ exports.VerifyAttribute = require_VerifyAttribute.default;
177
261
  exports.backchannelLogout = require_backchannelLogout.default;
178
262
  exports.createRouteMatcher = require_createRouteMatcher.default;
179
263
  exports.removeChunkedCookieFromHeader = require_thunderIDProxy.removeChunkedCookieFromHeader;
@@ -0,0 +1,53 @@
1
+ 'use server';
2
+
3
+
4
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
5
+ const require_getClient = require('../../getClient.cjs');
6
+ const require_getAccessToken = require('../getAccessToken.cjs');
7
+ let __thunderid_node = require("@thunderid/node");
8
+ __thunderid_node = require_rolldown_runtime.__toESM(__thunderid_node);
9
+
10
+ //#region src/server/actions/account/getAccessibleOrganizationUnitsAction.ts
11
+ /**
12
+ * Lists the organization units the signed-in user can access (`/users/me/ous`) with the session's
13
+ * access token, which stays on the server. Only `scope`, `limit` and `offset` are taken from the caller;
14
+ * the session is the one in the request's cookie.
15
+ *
16
+ * Failures are returned rather than thrown, so the error crosses the server action boundary with its
17
+ * status and code, and without the server's message.
18
+ */
19
+ const getAccessibleOrganizationUnitsAction = async ({ limit, offset, scope } = {}) => {
20
+ const accessToken = await require_getAccessToken.default();
21
+ if (!accessToken) return {
22
+ statusCode: 401,
23
+ success: false
24
+ };
25
+ try {
26
+ const client = require_getClient.default();
27
+ if (!client.isInitialized) await client.initialize({});
28
+ const config = await client.getConfiguration();
29
+ return {
30
+ data: await (0, __thunderid_node.getAccessibleOrganizationUnits)({
31
+ baseUrl: config.baseUrl,
32
+ headers: { Authorization: `Bearer ${accessToken}` },
33
+ limit,
34
+ offset,
35
+ scope: scope === "siblings" ? "siblings" : void 0,
36
+ url: (0, __thunderid_node.resolveResourceEndpoint)("usersMeOrganizationUnits", config)
37
+ }),
38
+ success: true
39
+ };
40
+ } catch (error) {
41
+ if (error instanceof __thunderid_node.ThunderIDAPIError) return {
42
+ code: error.code,
43
+ statusCode: error.statusCode,
44
+ success: false
45
+ };
46
+ return { success: false };
47
+ }
48
+ };
49
+ var getAccessibleOrganizationUnitsAction_default = getAccessibleOrganizationUnitsAction;
50
+
51
+ //#endregion
52
+ exports.default = getAccessibleOrganizationUnitsAction_default;
53
+ //# sourceMappingURL=getAccessibleOrganizationUnitsAction.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccessibleOrganizationUnitsAction.cjs","names":["accessToken: string | undefined","getAccessToken","getClient","config: ThunderIDNextConfig","ThunderIDAPIError"],"sources":["../../../../../src/server/actions/account/getAccessibleOrganizationUnitsAction.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n'use server';\n\nimport {\n AccessibleOrganizationUnitList,\n AccessibleOrganizationUnitsOptions,\n ThunderIDAPIError,\n getAccessibleOrganizationUnits,\n resolveResourceEndpoint,\n} from '@thunderid/node';\nimport {ThunderIDNextConfig} from '../../../models/config';\nimport getClient from '../../getClient';\nimport getAccessToken from '../getAccessToken';\n\nexport type GetAccessibleOrganizationUnitsActionResult =\n | {data: AccessibleOrganizationUnitList; success: true}\n | {code?: string; statusCode?: number; success: false};\n\n/**\n * Lists the organization units the signed-in user can access (`/users/me/ous`) with the session's\n * access token, which stays on the server. Only `scope`, `limit` and `offset` are taken from the caller;\n * the session is the one in the request's cookie.\n *\n * Failures are returned rather than thrown, so the error crosses the server action boundary with its\n * status and code, and without the server's message.\n */\nconst getAccessibleOrganizationUnitsAction = async ({\n limit,\n offset,\n scope,\n}: AccessibleOrganizationUnitsOptions = {}): Promise<GetAccessibleOrganizationUnitsActionResult> => {\n const accessToken: string | undefined = await getAccessToken();\n\n if (!accessToken) {\n return {statusCode: 401, success: false};\n }\n\n try {\n const client = getClient();\n\n if (!client.isInitialized) {\n await client.initialize({} as ThunderIDNextConfig);\n }\n\n const config: ThunderIDNextConfig = await client.getConfiguration();\n const data: AccessibleOrganizationUnitList = await getAccessibleOrganizationUnits({\n baseUrl: config.baseUrl,\n headers: {Authorization: `Bearer ${accessToken}`},\n limit,\n offset,\n scope: scope === 'siblings' ? 'siblings' : undefined,\n url: resolveResourceEndpoint('usersMeOrganizationUnits', config),\n });\n\n return {data, success: true};\n } catch (error) {\n if (error instanceof ThunderIDAPIError) {\n return {code: error.code, statusCode: error.statusCode, success: false};\n }\n\n return {success: false};\n }\n};\n\nexport default getAccessibleOrganizationUnitsAction;\n"],"mappings":";;;;;;;;;;;;;;;;;;AA4BA,MAAM,uCAAuC,OAAO,EAClD,OACA,QACA,UACsC,EAAE,KAA0D;CAClG,MAAMA,cAAkC,MAAMC,gCAAgB;AAE9D,KAAI,CAAC,YACH,QAAO;EAAC,YAAY;EAAK,SAAS;EAAM;AAG1C,KAAI;EACF,MAAM,SAASC,2BAAW;AAE1B,MAAI,CAAC,OAAO,cACV,OAAM,OAAO,WAAW,EAAE,CAAwB;EAGpD,MAAMC,SAA8B,MAAM,OAAO,kBAAkB;AAUnE,SAAO;GAAC,MATqC,2DAAqC;IAChF,SAAS,OAAO;IAChB,SAAS,EAAC,eAAe,UAAU,eAAc;IACjD;IACA;IACA,OAAO,UAAU,aAAa,aAAa;IAC3C,mDAA6B,4BAA4B,OAAO;IACjE,CAAC;GAEY,SAAS;GAAK;UACrB,OAAO;AACd,MAAI,iBAAiBC,mCACnB,QAAO;GAAC,MAAM,MAAM;GAAM,YAAY,MAAM;GAAY,SAAS;GAAM;AAGzE,SAAO,EAAC,SAAS,OAAM;;;AAI3B,mDAAe"}