@thunderid/nextjs 0.2.1 → 0.2.2

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 (349) hide show
  1. package/dist/{types/ThunderIDNextClient.d.ts → ThunderIDNextClient.d.ts} +1 -7
  2. package/dist/ThunderIDNextClient.d.ts.map +1 -0
  3. package/dist/ThunderIDNextClient.js +161 -0
  4. package/dist/ThunderIDNextClient.js.map +1 -0
  5. package/dist/cjs/ThunderIDNextClient.cjs +163 -0
  6. package/dist/cjs/ThunderIDNextClient.cjs.map +1 -0
  7. package/dist/cjs/_virtual/rolldown_runtime.cjs +25 -0
  8. package/dist/cjs/client/components/actions/SignInButton/SignInButton.cjs +79 -0
  9. package/dist/cjs/client/components/actions/SignInButton/SignInButton.cjs.map +1 -0
  10. package/dist/cjs/client/components/actions/SignOutButton/SignOutButton.cjs +61 -0
  11. package/dist/cjs/client/components/actions/SignOutButton/SignOutButton.cjs.map +1 -0
  12. package/dist/cjs/client/components/actions/SignUpButton/SignUpButton.cjs +91 -0
  13. package/dist/cjs/client/components/actions/SignUpButton/SignUpButton.cjs.map +1 -0
  14. package/dist/cjs/client/components/control/SignedIn/SignedIn.cjs +34 -0
  15. package/dist/cjs/client/components/control/SignedIn/SignedIn.cjs.map +1 -0
  16. package/dist/cjs/client/components/control/SignedOut/SignedOut.cjs +34 -0
  17. package/dist/cjs/client/components/control/SignedOut/SignedOut.cjs.map +1 -0
  18. package/dist/cjs/client/components/presentation/SignIn/SignIn.cjs +37 -0
  19. package/dist/cjs/client/components/presentation/SignIn/SignIn.cjs.map +1 -0
  20. package/dist/cjs/client/components/presentation/SignUp/SignUp.cjs +79 -0
  21. package/dist/cjs/client/components/presentation/SignUp/SignUp.cjs.map +1 -0
  22. package/dist/cjs/client/components/presentation/User/User.cjs +49 -0
  23. package/dist/cjs/client/components/presentation/User/User.cjs.map +1 -0
  24. package/dist/cjs/client/components/presentation/UserDropdown/UserDropdown.cjs +114 -0
  25. package/dist/cjs/client/components/presentation/UserDropdown/UserDropdown.cjs.map +1 -0
  26. package/dist/cjs/client/components/presentation/UserProfile/UserProfile.cjs +52 -0
  27. package/dist/cjs/client/components/presentation/UserProfile/UserProfile.cjs.map +1 -0
  28. package/dist/cjs/client/contexts/ThunderID/ThunderIDContext.cjs +34 -0
  29. package/dist/cjs/client/contexts/ThunderID/ThunderIDContext.cjs.map +1 -0
  30. package/dist/cjs/client/contexts/ThunderID/ThunderIDProvider.cjs +165 -0
  31. package/dist/cjs/client/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -0
  32. package/dist/cjs/client/contexts/ThunderID/useThunderID.cjs +19 -0
  33. package/dist/cjs/client/contexts/ThunderID/useThunderID.cjs.map +1 -0
  34. package/dist/cjs/client/index.cjs +11 -0
  35. package/dist/cjs/constants/sessionConstants.cjs +55 -0
  36. package/dist/cjs/constants/sessionConstants.cjs.map +1 -0
  37. package/dist/cjs/index.cjs +35 -990
  38. package/dist/cjs/server/ThunderIDProvider.cjs +114 -0
  39. package/dist/cjs/server/ThunderIDProvider.cjs.map +1 -0
  40. package/dist/cjs/server/actions/clearSession.cjs +41 -0
  41. package/dist/cjs/server/actions/clearSession.cjs.map +1 -0
  42. package/dist/cjs/server/actions/getAccessToken.cjs +27 -0
  43. package/dist/cjs/server/actions/getAccessToken.cjs.map +1 -0
  44. package/dist/cjs/server/actions/getClientOrigin.cjs +18 -0
  45. package/dist/cjs/server/actions/getClientOrigin.cjs.map +1 -0
  46. package/dist/cjs/server/actions/getSessionId.cjs +28 -0
  47. package/dist/cjs/server/actions/getSessionId.cjs.map +1 -0
  48. package/dist/cjs/server/actions/getSessionPayload.cjs +29 -0
  49. package/dist/cjs/server/actions/getSessionPayload.cjs.map +1 -0
  50. package/dist/cjs/server/actions/getUserAction.cjs +30 -0
  51. package/dist/cjs/server/actions/getUserAction.cjs.map +1 -0
  52. package/dist/cjs/server/actions/getUserProfileAction.cjs +34 -0
  53. package/dist/cjs/server/actions/getUserProfileAction.cjs.map +1 -0
  54. package/dist/cjs/server/actions/handleOAuthCallbackAction.cjs +89 -0
  55. package/dist/cjs/server/actions/handleOAuthCallbackAction.cjs.map +1 -0
  56. package/dist/cjs/server/actions/isSignedIn.cjs +40 -0
  57. package/dist/cjs/server/actions/isSignedIn.cjs.map +1 -0
  58. package/dist/cjs/server/actions/refreshToken.cjs +61 -0
  59. package/dist/cjs/server/actions/refreshToken.cjs.map +1 -0
  60. package/dist/cjs/server/actions/signInAction.cjs +95 -0
  61. package/dist/cjs/server/actions/signInAction.cjs.map +1 -0
  62. package/dist/cjs/server/actions/signOutAction.cjs +57 -0
  63. package/dist/cjs/server/actions/signOutAction.cjs.map +1 -0
  64. package/dist/cjs/server/actions/signUpAction.cjs +27 -0
  65. package/dist/cjs/server/actions/signUpAction.cjs.map +1 -0
  66. package/dist/cjs/server/actions/updateUserProfileAction.cjs +30 -0
  67. package/dist/cjs/server/actions/updateUserProfileAction.cjs.map +1 -0
  68. package/dist/cjs/server/getClient.cjs +19 -0
  69. package/dist/cjs/server/getClient.cjs.map +1 -0
  70. package/dist/cjs/server/index.cjs +9 -0
  71. package/dist/cjs/server/proxy/createRouteMatcher.cjs +36 -0
  72. package/dist/cjs/server/proxy/createRouteMatcher.cjs.map +1 -0
  73. package/dist/cjs/server/proxy/thunderIDProxy.cjs +182 -0
  74. package/dist/cjs/server/proxy/thunderIDProxy.cjs.map +1 -0
  75. package/dist/cjs/server/thunderid.cjs +27 -0
  76. package/dist/cjs/server/thunderid.cjs.map +1 -0
  77. package/dist/cjs/utils/SessionManager.cjs +150 -0
  78. package/dist/cjs/utils/SessionManager.cjs.map +1 -0
  79. package/dist/cjs/utils/decorateConfigWithNextEnv.cjs +28 -0
  80. package/dist/cjs/utils/decorateConfigWithNextEnv.cjs.map +1 -0
  81. package/dist/cjs/utils/handleRefreshToken.cjs +62 -0
  82. package/dist/cjs/utils/handleRefreshToken.cjs.map +1 -0
  83. package/dist/cjs/utils/logger.cjs +11 -0
  84. package/dist/cjs/utils/logger.cjs.map +1 -0
  85. package/dist/cjs/utils/sessionUtils.cjs +40 -0
  86. package/dist/cjs/utils/sessionUtils.cjs.map +1 -0
  87. package/dist/client/components/actions/SignInButton/SignInButton.d.ts.map +1 -0
  88. package/dist/client/components/actions/SignInButton/SignInButton.js +73 -0
  89. package/dist/client/components/actions/SignInButton/SignInButton.js.map +1 -0
  90. package/dist/client/components/actions/SignOutButton/SignOutButton.d.ts.map +1 -0
  91. package/dist/client/components/actions/SignOutButton/SignOutButton.js +57 -0
  92. package/dist/client/components/actions/SignOutButton/SignOutButton.js.map +1 -0
  93. package/dist/client/components/actions/SignUpButton/SignUpButton.d.ts.map +1 -0
  94. package/dist/client/components/actions/SignUpButton/SignUpButton.js +85 -0
  95. package/dist/client/components/actions/SignUpButton/SignUpButton.js.map +1 -0
  96. package/dist/client/components/control/Loading/Loading.d.ts.map +1 -0
  97. package/dist/client/components/control/SignedIn/SignedIn.d.ts.map +1 -0
  98. package/dist/client/components/control/SignedIn/SignedIn.js +32 -0
  99. package/dist/client/components/control/SignedIn/SignedIn.js.map +1 -0
  100. package/dist/client/components/control/SignedOut/SignedOut.d.ts.map +1 -0
  101. package/dist/client/components/control/SignedOut/SignedOut.js +32 -0
  102. package/dist/client/components/control/SignedOut/SignedOut.js.map +1 -0
  103. package/dist/client/components/presentation/SignIn/SignIn.d.ts.map +1 -0
  104. package/dist/client/components/presentation/SignIn/SignIn.js +33 -0
  105. package/dist/client/components/presentation/SignIn/SignIn.js.map +1 -0
  106. package/dist/client/components/presentation/SignUp/SignUp.d.ts.map +1 -0
  107. package/dist/client/components/presentation/SignUp/SignUp.js +75 -0
  108. package/dist/client/components/presentation/SignUp/SignUp.js.map +1 -0
  109. package/dist/client/components/presentation/User/User.d.ts.map +1 -0
  110. package/dist/client/components/presentation/User/User.js +46 -0
  111. package/dist/client/components/presentation/User/User.js.map +1 -0
  112. package/dist/client/components/presentation/UserDropdown/UserDropdown.d.ts.map +1 -0
  113. package/dist/client/components/presentation/UserDropdown/UserDropdown.js +110 -0
  114. package/dist/client/components/presentation/UserDropdown/UserDropdown.js.map +1 -0
  115. package/dist/client/components/presentation/UserProfile/UserProfile.d.ts.map +1 -0
  116. package/dist/client/components/presentation/UserProfile/UserProfile.js +49 -0
  117. package/dist/client/components/presentation/UserProfile/UserProfile.js.map +1 -0
  118. package/dist/client/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -0
  119. package/dist/client/contexts/ThunderID/ThunderIDContext.js +32 -0
  120. package/dist/client/contexts/ThunderID/ThunderIDContext.js.map +1 -0
  121. package/dist/{types/client → client}/contexts/ThunderID/ThunderIDProvider.d.ts +1 -8
  122. package/dist/client/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -0
  123. package/dist/client/contexts/ThunderID/ThunderIDProvider.js +159 -0
  124. package/dist/client/contexts/ThunderID/ThunderIDProvider.js.map +1 -0
  125. package/dist/client/contexts/ThunderID/useThunderID.d.ts.map +1 -0
  126. package/dist/client/contexts/ThunderID/useThunderID.js +17 -0
  127. package/dist/client/contexts/ThunderID/useThunderID.js.map +1 -0
  128. package/dist/{types/client → client}/index.d.ts +2 -10
  129. package/dist/client/index.d.ts.map +1 -0
  130. package/dist/client/index.js +13 -0
  131. package/dist/configs/InternalAuthAPIRoutesConfig.d.ts.map +1 -0
  132. package/dist/constants/sessionConstants.d.ts.map +1 -0
  133. package/dist/constants/sessionConstants.js +53 -0
  134. package/dist/constants/sessionConstants.js.map +1 -0
  135. package/dist/index.d.ts.map +1 -0
  136. package/dist/index.js +20 -934
  137. package/dist/models/api.d.ts.map +1 -0
  138. package/dist/models/config.d.ts.map +1 -0
  139. package/dist/server/ThunderIDProvider.d.ts.map +1 -0
  140. package/dist/server/ThunderIDProvider.js +111 -0
  141. package/dist/server/ThunderIDProvider.js.map +1 -0
  142. package/dist/server/actions/clearSession.d.ts.map +1 -0
  143. package/dist/server/actions/clearSession.js +39 -0
  144. package/dist/server/actions/clearSession.js.map +1 -0
  145. package/dist/server/actions/getAccessToken.d.ts.map +1 -0
  146. package/dist/{getAccessToken-oRxArjVC.js → server/actions/getAccessToken.js} +8 -5
  147. package/dist/server/actions/getAccessToken.js.map +1 -0
  148. package/dist/server/actions/getClientOrigin.d.ts.map +1 -0
  149. package/dist/server/actions/getClientOrigin.js +16 -0
  150. package/dist/server/actions/getClientOrigin.js.map +1 -0
  151. package/dist/server/actions/getSessionId.d.ts.map +1 -0
  152. package/dist/{getSessionId-_7hj8QSX.js → server/actions/getSessionId.js} +8 -5
  153. package/dist/server/actions/getSessionId.js.map +1 -0
  154. package/dist/server/actions/getSessionPayload.d.ts.map +1 -0
  155. package/dist/server/actions/getSessionPayload.js +27 -0
  156. package/dist/server/actions/getSessionPayload.js.map +1 -0
  157. package/dist/server/actions/getUserAction.d.ts.map +1 -0
  158. package/dist/server/actions/getUserAction.js +30 -0
  159. package/dist/server/actions/getUserAction.js.map +1 -0
  160. package/dist/server/actions/getUserProfileAction.d.ts.map +1 -0
  161. package/dist/server/actions/getUserProfileAction.js +34 -0
  162. package/dist/server/actions/getUserProfileAction.js.map +1 -0
  163. package/dist/server/actions/handleOAuthCallbackAction.d.ts.map +1 -0
  164. package/dist/server/actions/handleOAuthCallbackAction.js +87 -0
  165. package/dist/server/actions/handleOAuthCallbackAction.js.map +1 -0
  166. package/dist/server/actions/isSignedIn.d.ts.map +1 -0
  167. package/dist/server/actions/isSignedIn.js +40 -0
  168. package/dist/server/actions/isSignedIn.js.map +1 -0
  169. package/dist/server/actions/refreshToken.d.ts.map +1 -0
  170. package/dist/server/actions/refreshToken.js +58 -0
  171. package/dist/server/actions/refreshToken.js.map +1 -0
  172. package/dist/server/actions/signInAction.d.ts.map +1 -0
  173. package/dist/server/actions/signInAction.js +92 -0
  174. package/dist/server/actions/signInAction.js.map +1 -0
  175. package/dist/server/actions/signOutAction.d.ts.map +1 -0
  176. package/dist/server/actions/signOutAction.js +55 -0
  177. package/dist/server/actions/signOutAction.js.map +1 -0
  178. package/dist/server/actions/signUpAction.d.ts.map +1 -0
  179. package/dist/server/actions/signUpAction.js +27 -0
  180. package/dist/server/actions/signUpAction.js.map +1 -0
  181. package/dist/server/actions/updateUserProfileAction.d.ts.map +1 -0
  182. package/dist/server/actions/updateUserProfileAction.js +30 -0
  183. package/dist/server/actions/updateUserProfileAction.js.map +1 -0
  184. package/dist/server/getClient.d.ts.map +1 -0
  185. package/dist/server/getClient.js +19 -0
  186. package/dist/server/getClient.js.map +1 -0
  187. package/dist/{types/server → server}/index.d.ts +3 -0
  188. package/dist/server/index.d.ts.map +1 -0
  189. package/dist/server/index.js +6 -0
  190. package/dist/server/proxy/createRouteMatcher.d.ts.map +1 -0
  191. package/dist/server/proxy/createRouteMatcher.js +35 -0
  192. package/dist/server/proxy/createRouteMatcher.js.map +1 -0
  193. package/dist/{types/server/middleware/thunderIDMiddleware.d.ts → server/proxy/thunderIDProxy.d.ts} +13 -13
  194. package/dist/server/proxy/thunderIDProxy.d.ts.map +1 -0
  195. package/dist/server/proxy/thunderIDProxy.js +180 -0
  196. package/dist/server/proxy/thunderIDProxy.js.map +1 -0
  197. package/dist/server/thunderid.d.ts.map +1 -0
  198. package/dist/server/thunderid.js +27 -0
  199. package/dist/server/thunderid.js.map +1 -0
  200. package/dist/utils/SessionManager.d.ts.map +1 -0
  201. package/dist/utils/SessionManager.js +147 -0
  202. package/dist/utils/SessionManager.js.map +1 -0
  203. package/dist/utils/createRouteMatcher.d.ts.map +1 -0
  204. package/dist/utils/decorateConfigWithNextEnv.d.ts.map +1 -0
  205. package/dist/utils/decorateConfigWithNextEnv.js +27 -0
  206. package/dist/utils/decorateConfigWithNextEnv.js.map +1 -0
  207. package/dist/utils/handleRefreshToken.d.ts.map +1 -0
  208. package/dist/utils/handleRefreshToken.js +62 -0
  209. package/dist/utils/handleRefreshToken.js.map +1 -0
  210. package/dist/utils/logger.d.ts.map +1 -0
  211. package/dist/utils/logger.js +9 -0
  212. package/dist/utils/logger.js.map +1 -0
  213. package/dist/utils/sessionUtils.d.ts.map +1 -0
  214. package/dist/utils/sessionUtils.js +39 -0
  215. package/dist/utils/sessionUtils.js.map +1 -0
  216. package/package.json +6 -16
  217. package/dist/SessionManager-BvmZ19QF.js +0 -1384
  218. package/dist/cache-DOmEIb7_.js +0 -6329
  219. package/dist/cjs/SessionManager-x03qrCM_.js +0 -1397
  220. package/dist/cjs/cache-Bw8u7jYk.js +0 -6332
  221. package/dist/cjs/dynamic-rendering-DY0EUx64.js +0 -1510
  222. package/dist/cjs/getAccessToken-eJk739AD.js +0 -22
  223. package/dist/cjs/getSessionId-BXqdO0BZ.js +0 -28
  224. package/dist/cjs/getSessionId-j-ERy_WP.js +0 -5
  225. package/dist/cjs/index2.cjs +0 -8
  226. package/dist/cjs/middleware.cjs +0 -5151
  227. package/dist/cjs/segment-CViTHaAn.js +0 -52
  228. package/dist/cjs/server-ABSmm73r.js +0 -2426
  229. package/dist/dynamic-rendering-CXn-s32e.js +0 -1429
  230. package/dist/getSessionId-6IipYdCB.js +0 -5
  231. package/dist/index2.js +0 -7
  232. package/dist/middleware.js +0 -5152
  233. package/dist/segment-DRUZ6e3T.js +0 -47
  234. package/dist/server-BUNp5d6D.js +0 -2376
  235. package/dist/types/ThunderIDNextClient.d.ts.map +0 -1
  236. package/dist/types/client/components/actions/SignInButton/SignInButton.d.ts.map +0 -1
  237. package/dist/types/client/components/actions/SignOutButton/SignOutButton.d.ts.map +0 -1
  238. package/dist/types/client/components/actions/SignUpButton/SignUpButton.d.ts.map +0 -1
  239. package/dist/types/client/components/control/Loading/Loading.d.ts.map +0 -1
  240. package/dist/types/client/components/control/SignedIn/SignedIn.d.ts.map +0 -1
  241. package/dist/types/client/components/control/SignedOut/SignedOut.d.ts.map +0 -1
  242. package/dist/types/client/components/presentation/CreateOrganization/CreateOrganization.d.ts +0 -68
  243. package/dist/types/client/components/presentation/CreateOrganization/CreateOrganization.d.ts.map +0 -1
  244. package/dist/types/client/components/presentation/Organization/Organization.d.ts +0 -67
  245. package/dist/types/client/components/presentation/Organization/Organization.d.ts.map +0 -1
  246. package/dist/types/client/components/presentation/OrganizationList/OrganizationList.d.ts +0 -93
  247. package/dist/types/client/components/presentation/OrganizationList/OrganizationList.d.ts.map +0 -1
  248. package/dist/types/client/components/presentation/OrganizationProfile/OrganizationProfile.d.ts +0 -120
  249. package/dist/types/client/components/presentation/OrganizationProfile/OrganizationProfile.d.ts.map +0 -1
  250. package/dist/types/client/components/presentation/OrganizationSwitcher/OrganizationSwitcher.d.ts +0 -72
  251. package/dist/types/client/components/presentation/OrganizationSwitcher/OrganizationSwitcher.d.ts.map +0 -1
  252. package/dist/types/client/components/presentation/SignIn/SignIn.d.ts.map +0 -1
  253. package/dist/types/client/components/presentation/SignUp/SignUp.d.ts.map +0 -1
  254. package/dist/types/client/components/presentation/User/User.d.ts.map +0 -1
  255. package/dist/types/client/components/presentation/UserDropdown/UserDropdown.d.ts.map +0 -1
  256. package/dist/types/client/components/presentation/UserProfile/UserProfile.d.ts.map +0 -1
  257. package/dist/types/client/contexts/ThunderID/ThunderIDContext.d.ts.map +0 -1
  258. package/dist/types/client/contexts/ThunderID/ThunderIDProvider.d.ts.map +0 -1
  259. package/dist/types/client/contexts/ThunderID/useThunderID.d.ts.map +0 -1
  260. package/dist/types/client/index.d.ts.map +0 -1
  261. package/dist/types/configs/InternalAuthAPIRoutesConfig.d.ts.map +0 -1
  262. package/dist/types/constants/sessionConstants.d.ts.map +0 -1
  263. package/dist/types/index.d.ts.map +0 -1
  264. package/dist/types/middleware.d.ts +0 -35
  265. package/dist/types/middleware.d.ts.map +0 -1
  266. package/dist/types/models/api.d.ts.map +0 -1
  267. package/dist/types/models/config.d.ts.map +0 -1
  268. package/dist/types/server/ThunderIDProvider.d.ts.map +0 -1
  269. package/dist/types/server/actions/clearSession.d.ts.map +0 -1
  270. package/dist/types/server/actions/createOrganization.d.ts +0 -24
  271. package/dist/types/server/actions/createOrganization.d.ts.map +0 -1
  272. package/dist/types/server/actions/getAccessToken.d.ts.map +0 -1
  273. package/dist/types/server/actions/getAllOrganizations.d.ts +0 -24
  274. package/dist/types/server/actions/getAllOrganizations.d.ts.map +0 -1
  275. package/dist/types/server/actions/getBrandingPreference.d.ts +0 -24
  276. package/dist/types/server/actions/getBrandingPreference.d.ts.map +0 -1
  277. package/dist/types/server/actions/getClientOrigin.d.ts.map +0 -1
  278. package/dist/types/server/actions/getCurrentOrganizationAction.d.ts +0 -31
  279. package/dist/types/server/actions/getCurrentOrganizationAction.d.ts.map +0 -1
  280. package/dist/types/server/actions/getMyOrganizations.d.ts +0 -24
  281. package/dist/types/server/actions/getMyOrganizations.d.ts.map +0 -1
  282. package/dist/types/server/actions/getOrganizationAction.d.ts +0 -31
  283. package/dist/types/server/actions/getOrganizationAction.d.ts.map +0 -1
  284. package/dist/types/server/actions/getSessionId.d.ts.map +0 -1
  285. package/dist/types/server/actions/getSessionPayload.d.ts.map +0 -1
  286. package/dist/types/server/actions/getUserAction.d.ts.map +0 -1
  287. package/dist/types/server/actions/getUserProfileAction.d.ts.map +0 -1
  288. package/dist/types/server/actions/handleOAuthCallbackAction.d.ts.map +0 -1
  289. package/dist/types/server/actions/isSignedIn.d.ts.map +0 -1
  290. package/dist/types/server/actions/refreshToken.d.ts.map +0 -1
  291. package/dist/types/server/actions/signInAction.d.ts.map +0 -1
  292. package/dist/types/server/actions/signOutAction.d.ts.map +0 -1
  293. package/dist/types/server/actions/signUpAction.d.ts.map +0 -1
  294. package/dist/types/server/actions/switchOrganization.d.ts +0 -24
  295. package/dist/types/server/actions/switchOrganization.d.ts.map +0 -1
  296. package/dist/types/server/actions/updateUserProfileAction.d.ts.map +0 -1
  297. package/dist/types/server/getClient.d.ts.map +0 -1
  298. package/dist/types/server/index.d.ts.map +0 -1
  299. package/dist/types/server/middleware/createRouteMatcher.d.ts.map +0 -1
  300. package/dist/types/server/middleware/thunderIDMiddleware.d.ts.map +0 -1
  301. package/dist/types/server/thunderid.d.ts.map +0 -1
  302. package/dist/types/utils/SessionManager.d.ts.map +0 -1
  303. package/dist/types/utils/createRouteMatcher.d.ts.map +0 -1
  304. package/dist/types/utils/decorateConfigWithNextEnv.d.ts.map +0 -1
  305. package/dist/types/utils/handleRefreshToken.d.ts.map +0 -1
  306. package/dist/types/utils/logger.d.ts.map +0 -1
  307. package/dist/types/utils/sessionUtils.d.ts.map +0 -1
  308. /package/dist/{types/client → client}/components/actions/SignInButton/SignInButton.d.ts +0 -0
  309. /package/dist/{types/client → client}/components/actions/SignOutButton/SignOutButton.d.ts +0 -0
  310. /package/dist/{types/client → client}/components/actions/SignUpButton/SignUpButton.d.ts +0 -0
  311. /package/dist/{types/client → client}/components/control/Loading/Loading.d.ts +0 -0
  312. /package/dist/{types/client → client}/components/control/SignedIn/SignedIn.d.ts +0 -0
  313. /package/dist/{types/client → client}/components/control/SignedOut/SignedOut.d.ts +0 -0
  314. /package/dist/{types/client → client}/components/presentation/SignIn/SignIn.d.ts +0 -0
  315. /package/dist/{types/client → client}/components/presentation/SignUp/SignUp.d.ts +0 -0
  316. /package/dist/{types/client → client}/components/presentation/User/User.d.ts +0 -0
  317. /package/dist/{types/client → client}/components/presentation/UserDropdown/UserDropdown.d.ts +0 -0
  318. /package/dist/{types/client → client}/components/presentation/UserProfile/UserProfile.d.ts +0 -0
  319. /package/dist/{types/client → client}/contexts/ThunderID/ThunderIDContext.d.ts +0 -0
  320. /package/dist/{types/client → client}/contexts/ThunderID/useThunderID.d.ts +0 -0
  321. /package/dist/{types/configs → configs}/InternalAuthAPIRoutesConfig.d.ts +0 -0
  322. /package/dist/{types/constants → constants}/sessionConstants.d.ts +0 -0
  323. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  324. /package/dist/{types/models → models}/api.d.ts +0 -0
  325. /package/dist/{types/models → models}/config.d.ts +0 -0
  326. /package/dist/{types/server → server}/ThunderIDProvider.d.ts +0 -0
  327. /package/dist/{types/server → server}/actions/clearSession.d.ts +0 -0
  328. /package/dist/{types/server → server}/actions/getAccessToken.d.ts +0 -0
  329. /package/dist/{types/server → server}/actions/getClientOrigin.d.ts +0 -0
  330. /package/dist/{types/server → server}/actions/getSessionId.d.ts +0 -0
  331. /package/dist/{types/server → server}/actions/getSessionPayload.d.ts +0 -0
  332. /package/dist/{types/server → server}/actions/getUserAction.d.ts +0 -0
  333. /package/dist/{types/server → server}/actions/getUserProfileAction.d.ts +0 -0
  334. /package/dist/{types/server → server}/actions/handleOAuthCallbackAction.d.ts +0 -0
  335. /package/dist/{types/server → server}/actions/isSignedIn.d.ts +0 -0
  336. /package/dist/{types/server → server}/actions/refreshToken.d.ts +0 -0
  337. /package/dist/{types/server → server}/actions/signInAction.d.ts +0 -0
  338. /package/dist/{types/server → server}/actions/signOutAction.d.ts +0 -0
  339. /package/dist/{types/server → server}/actions/signUpAction.d.ts +0 -0
  340. /package/dist/{types/server → server}/actions/updateUserProfileAction.d.ts +0 -0
  341. /package/dist/{types/server → server}/getClient.d.ts +0 -0
  342. /package/dist/{types/server/middleware → server/proxy}/createRouteMatcher.d.ts +0 -0
  343. /package/dist/{types/server → server}/thunderid.d.ts +0 -0
  344. /package/dist/{types/utils → utils}/SessionManager.d.ts +0 -0
  345. /package/dist/{types/utils → utils}/createRouteMatcher.d.ts +0 -0
  346. /package/dist/{types/utils → utils}/decorateConfigWithNextEnv.d.ts +0 -0
  347. /package/dist/{types/utils → utils}/handleRefreshToken.d.ts +0 -0
  348. /package/dist/{types/utils → utils}/logger.d.ts +0 -0
  349. /package/dist/{types/utils → utils}/sessionUtils.d.ts +0 -0
@@ -15,7 +15,7 @@
15
15
  * specific language governing permissions and limitations
16
16
  * under the License.
17
17
  */
18
- import { AllOrganizationsApiResponse, ThunderIDNodeClient, CreateOrganizationPayload, ExtendedAuthorizeRequestUrlParams, IdToken, Organization, OrganizationDetails, SignInOptions, SignUpOptions, Storage, TokenExchangeRequestConfig, TokenResponse, User, UserProfile } from '@thunderid/node';
18
+ import { ThunderIDNodeClient, ExtendedAuthorizeRequestUrlParams, IdToken, SignInOptions, SignUpOptions, Storage, TokenExchangeRequestConfig, TokenResponse, User, UserProfile } from '@thunderid/node';
19
19
  import { ThunderIDNextConfig } from './models/config';
20
20
  declare class ThunderIDNextClient<T extends ThunderIDNextConfig = ThunderIDNextConfig> extends ThunderIDNodeClient<T> {
21
21
  isInitialized: boolean;
@@ -26,12 +26,6 @@ declare class ThunderIDNextClient<T extends ThunderIDNextConfig = ThunderIDNextC
26
26
  getUser(userId?: string): Promise<User>;
27
27
  getUserProfile(userId?: string): Promise<UserProfile>;
28
28
  updateUserProfile(payload: any, userId?: string): Promise<User>;
29
- createOrganization(payload: CreateOrganizationPayload, userId?: string): Promise<Organization>;
30
- getOrganization(organizationId: string, userId?: string): Promise<OrganizationDetails>;
31
- getMyOrganizations(options?: any, userId?: string): Promise<Organization[]>;
32
- getAllOrganizations(options?: any, userId?: string): Promise<AllOrganizationsApiResponse>;
33
- getCurrentOrganization(userId?: string): Promise<Organization | null>;
34
- switchOrganization(organization: Organization, userId?: string): Promise<TokenResponse | Response>;
35
29
  isLoading(): boolean;
36
30
  isSignedIn(sessionId?: string): Promise<boolean>;
37
31
  exchangeToken(config: TokenExchangeRequestConfig, sessionId?: string): Promise<TokenResponse | Response>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThunderIDNextClient.d.ts","sourceRoot":"","sources":["../src/ThunderIDNextClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,mBAAmB,EAGnB,iCAAiC,EAEjC,OAAO,EAEP,aAAa,EACb,aAAa,EACb,OAAO,EACP,0BAA0B,EAC1B,aAAa,EACb,IAAI,EACJ,WAAW,EAQZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAKpD,cAAM,mBAAmB,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IACpG,aAAa,UAAS;;YAMf,iBAAiB;IAehB,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAwC1D,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAclD,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BvC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAqCrD,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBrE,SAAS,IAAI,OAAO;IAIpB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhD,aAAa,CAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;IAKlG,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBpD,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzE,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IASpC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBxC,MAAM,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD,cAAc,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;IAS7D,sBAAsB,CACjC,YAAY,EAAE,iCAAiC,EAC/C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAKF,iBAAiB,IAAI,GAAG;IAIlB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IASpC,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzF,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAGhF;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,161 @@
1
+ import getClientOrigin_default from "./server/actions/getClientOrigin.js";
2
+ import getSessionId_default from "./server/actions/getSessionId.js";
3
+ import decorateConfigWithNextEnv_default from "./utils/decorateConfigWithNextEnv.js";
4
+ import { ThunderIDNodeClient, ThunderIDRuntimeError, extractUserClaimsFromIdToken, flattenUserSchema, generateFlattenedUserProfile, generateUserProfile, getSchemas, getScim2Me, updateMeProfile } from "@thunderid/node";
5
+
6
+ //#region src/ThunderIDNextClient.ts
7
+ var ThunderIDNextClient = class extends ThunderIDNodeClient {
8
+ isInitialized = false;
9
+ constructor() {
10
+ super();
11
+ }
12
+ async ensureInitialized() {
13
+ if (!this.isInitialized) await this.initialize({});
14
+ if (!this.isInitialized) throw new Error("[ThunderIDNextClient] Client is not initialized. Make sure you have wrapped your app with ThunderIDProvider and provided the required configuration (baseUrl, clientId, etc.).");
15
+ }
16
+ async initialize(config, storage) {
17
+ if (this.isInitialized) return Promise.resolve(true);
18
+ const { baseUrl, organizationHandle, clientId, clientSecret, signInUrl, afterSignInUrl, afterSignOutUrl, signUpUrl,...rest } = decorateConfigWithNextEnv_default(config);
19
+ const origin = await getClientOrigin_default();
20
+ const initialized = await super.initialize({
21
+ ...rest,
22
+ afterSignInUrl: afterSignInUrl ?? origin,
23
+ afterSignOutUrl: afterSignOutUrl ?? origin,
24
+ baseUrl,
25
+ clientId,
26
+ clientSecret,
27
+ enablePKCE: rest.enablePKCE ?? true,
28
+ organizationHandle,
29
+ signInUrl,
30
+ signUpUrl
31
+ }, storage);
32
+ this.isInitialized = initialized;
33
+ return initialized;
34
+ }
35
+ async reInitialize(config) {
36
+ try {
37
+ await super.reInitialize(config);
38
+ return true;
39
+ } catch (error) {
40
+ throw new ThunderIDRuntimeError(`Failed to re-initialize the client: ${error instanceof Error ? error.message : String(error)}`, "ThunderIDNextClient-reInitialize-RuntimeError-001", "nextjs", "An error occurred while re-initializing the client. Please check your configuration and network connection.");
41
+ }
42
+ }
43
+ async getUser(userId) {
44
+ await this.ensureInitialized();
45
+ const resolvedSessionId = userId || await getSessionId_default();
46
+ try {
47
+ const baseUrl = (await this.getStorageManager().getConfigData())?.baseUrl;
48
+ return generateUserProfile(await getScim2Me({
49
+ baseUrl,
50
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` }
51
+ }), flattenUserSchema(await getSchemas({
52
+ baseUrl,
53
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` }
54
+ })));
55
+ } catch (error) {
56
+ return await super.getUser(resolvedSessionId);
57
+ }
58
+ }
59
+ async getUserProfile(userId) {
60
+ await this.ensureInitialized();
61
+ try {
62
+ const baseUrl = (await this.getStorageManager().getConfigData())?.baseUrl;
63
+ const profile = await getScim2Me({
64
+ baseUrl,
65
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` }
66
+ });
67
+ const processedSchemas = flattenUserSchema(await getSchemas({
68
+ baseUrl,
69
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` }
70
+ }));
71
+ return {
72
+ flattenedProfile: generateFlattenedUserProfile(profile, processedSchemas),
73
+ profile,
74
+ schemas: processedSchemas
75
+ };
76
+ } catch (error) {
77
+ return {
78
+ flattenedProfile: extractUserClaimsFromIdToken(await super.getDecodedIdToken(userId)),
79
+ profile: extractUserClaimsFromIdToken(await super.getDecodedIdToken(userId)),
80
+ schemas: []
81
+ };
82
+ }
83
+ }
84
+ async updateUserProfile(payload, userId) {
85
+ await this.ensureInitialized();
86
+ try {
87
+ const baseUrl = (await this.getStorageManager().getConfigData())?.baseUrl;
88
+ return updateMeProfile({
89
+ baseUrl,
90
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` },
91
+ payload
92
+ });
93
+ } catch (error) {
94
+ throw new ThunderIDRuntimeError(`Failed to update user profile: ${error instanceof Error ? error.message : String(error)}`, "ThunderIDNextClient-UpdateProfileError-001", "react", "An error occurred while updating the user profile. Please check your configuration and network connection.");
95
+ }
96
+ }
97
+ isLoading() {
98
+ return false;
99
+ }
100
+ isSignedIn(sessionId) {
101
+ return super.isSignedIn(sessionId);
102
+ }
103
+ exchangeToken(config, sessionId) {
104
+ return super.exchangeToken(config, sessionId);
105
+ }
106
+ async getAccessToken(_sessionId) {
107
+ const { default: getAccessToken } = await import("./server/actions/getAccessToken.js");
108
+ const token = await getAccessToken();
109
+ if (typeof token !== "string" || !token) throw new ThunderIDRuntimeError("Failed to get access token.", "ThunderIDNextClient-getAccessToken-RuntimeError-003", "nextjs", "An error occurred while obtaining the access token. Please check your configuration and network connection.");
110
+ return token;
111
+ }
112
+ async getDecodedIdToken(sessionId, idToken) {
113
+ await this.ensureInitialized();
114
+ return await super.getDecodedIdToken(sessionId, idToken);
115
+ }
116
+ async signIn(...args) {
117
+ const arg1 = args[0];
118
+ args[1];
119
+ const arg3 = args[2];
120
+ const arg4 = args[3];
121
+ return super.signIn(arg4, arg3, arg1?.code, arg1?.session_state, arg1?.state, arg1);
122
+ }
123
+ async signOut(...args) {
124
+ if (args[1] && typeof args[1] !== "string") throw new Error("The second argument must be a string.");
125
+ const afterSignOutUrl = this.getConfiguration()?.afterSignOutUrl || "/";
126
+ const resolvedSessionId = args[1] || await getSessionId_default();
127
+ try {
128
+ await super.signOut(resolvedSessionId);
129
+ } catch (error) {
130
+ if (!(error instanceof Error ? error.message : String(error)).includes("end_session_endpoint")) throw error;
131
+ }
132
+ return afterSignOutUrl;
133
+ }
134
+ async signUp(_options) {
135
+ throw new ThunderIDRuntimeError("Not implemented", "ThunderIDNextClient-ValidationError-002", "nextjs", "The signUp method is not implemented in the Next.js client.");
136
+ }
137
+ signInSilently(_options) {
138
+ throw new ThunderIDRuntimeError("Not implemented", "ThunderIDNextClient-signInSilently-NotImplementedError-001", "nextjs", "The signInSilently method is not implemented in the Next.js client.");
139
+ }
140
+ async getAuthorizeRequestUrl(customParams, userId) {
141
+ await this.ensureInitialized();
142
+ return this.getSignInUrl(customParams, userId);
143
+ }
144
+ getStorageManager() {
145
+ return super.getStorageManager();
146
+ }
147
+ async clearSession() {
148
+ throw new ThunderIDRuntimeError("Not implemented", "ThunderIDNextClient-clearSession-NotImplementedError-001", "nextjs", "The clearSession method is not implemented in the Next.js client.");
149
+ }
150
+ async setSession(sessionData, sessionId) {
151
+ return this.getStorageManager().setSessionData(sessionData, sessionId);
152
+ }
153
+ decodeJwtToken(token) {
154
+ return super.decodeJwtToken(token);
155
+ }
156
+ };
157
+ var ThunderIDNextClient_default = ThunderIDNextClient;
158
+
159
+ //#endregion
160
+ export { ThunderIDNextClient_default as default };
161
+ //# sourceMappingURL=ThunderIDNextClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThunderIDNextClient.js","names":["decorateConfigWithNextEnv","origin: string","getClientOrigin","initialized: boolean","resolvedSessionId: string","getSessionId","baseUrl: string | undefined","profile: User","processedSchemas: FlattenedSchema[]","token: string | undefined","arg1: any","arg3: any","arg4: any","afterSignOutUrl: string"],"sources":["../src/ThunderIDNextClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {\n ThunderIDNodeClient,\n ThunderIDRuntimeError,\n AuthClientConfig,\n ExtendedAuthorizeRequestUrlParams,\n FlattenedSchema,\n IdToken,\n Schema,\n SignInOptions,\n SignUpOptions,\n Storage,\n TokenExchangeRequestConfig,\n TokenResponse,\n User,\n UserProfile,\n extractUserClaimsFromIdToken,\n flattenUserSchema,\n generateFlattenedUserProfile,\n generateUserProfile,\n getScim2Me,\n getSchemas,\n updateMeProfile,\n} from '@thunderid/node';\nimport {ThunderIDNextConfig} from './models/config';\nimport getClientOrigin from './server/actions/getClientOrigin';\nimport getSessionId from './server/actions/getSessionId';\nimport decorateConfigWithNextEnv from './utils/decorateConfigWithNextEnv';\n\nclass ThunderIDNextClient<T extends ThunderIDNextConfig = ThunderIDNextConfig> extends ThunderIDNodeClient<T> {\n public isInitialized = false;\n\n public constructor() {\n super();\n }\n\n private async ensureInitialized(): Promise<void> {\n if (!this.isInitialized) {\n // Server actions may run in a module context that hasn't been through\n // ThunderIDServerProvider (e.g. a different worker). Try to initialize\n // from environment variables before giving up.\n await this.initialize({} as T);\n }\n\n if (!this.isInitialized) {\n throw new Error(\n '[ThunderIDNextClient] Client is not initialized. Make sure you have wrapped your app with ThunderIDProvider and provided the required configuration (baseUrl, clientId, etc.).',\n );\n }\n }\n\n override async initialize(config: T, storage?: Storage): Promise<boolean> {\n if (this.isInitialized) {\n return Promise.resolve(true);\n }\n\n const {\n baseUrl,\n organizationHandle,\n clientId,\n clientSecret,\n signInUrl,\n afterSignInUrl,\n afterSignOutUrl,\n signUpUrl,\n ...rest\n } = decorateConfigWithNextEnv(config);\n\n const origin: string = await getClientOrigin();\n\n const initialized: boolean = await super.initialize(\n {\n ...rest,\n afterSignInUrl: afterSignInUrl ?? origin,\n afterSignOutUrl: afterSignOutUrl ?? origin,\n baseUrl,\n clientId,\n clientSecret,\n enablePKCE: (rest as any).enablePKCE ?? true,\n organizationHandle,\n signInUrl,\n signUpUrl,\n } as any,\n storage,\n );\n\n this.isInitialized = initialized;\n\n return initialized;\n }\n\n override async reInitialize(config: Partial<T>): Promise<boolean> {\n try {\n await super.reInitialize(config);\n return true;\n } catch (error) {\n throw new ThunderIDRuntimeError(\n `Failed to re-initialize the client: ${error instanceof Error ? error.message : String(error)}`,\n 'ThunderIDNextClient-reInitialize-RuntimeError-001',\n 'nextjs',\n 'An error occurred while re-initializing the client. Please check your configuration and network connection.',\n );\n }\n }\n\n override async getUser(userId?: string): Promise<User> {\n await this.ensureInitialized();\n const resolvedSessionId: string = userId || (await getSessionId())!;\n\n try {\n const configData: AuthClientConfig<T> = await this.getStorageManager().getConfigData();\n const baseUrl: string | undefined = configData?.baseUrl;\n\n const profile: User = await getScim2Me({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n });\n\n const schemas: Schema[] = await getSchemas({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n });\n\n return generateUserProfile(profile, flattenUserSchema(schemas));\n } catch (error) {\n return await super.getUser(resolvedSessionId);\n }\n }\n\n override async getUserProfile(userId?: string): Promise<UserProfile> {\n await this.ensureInitialized();\n\n try {\n const configData: AuthClientConfig<T> = await this.getStorageManager().getConfigData();\n const baseUrl: string | undefined = configData?.baseUrl;\n\n const profile: User = await getScim2Me({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n });\n\n const schemas: Schema[] = await getSchemas({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n });\n\n const processedSchemas: FlattenedSchema[] = flattenUserSchema(schemas);\n\n return {\n flattenedProfile: generateFlattenedUserProfile(profile, processedSchemas),\n profile,\n schemas: processedSchemas,\n };\n } catch (error) {\n return {\n flattenedProfile: extractUserClaimsFromIdToken(await super.getDecodedIdToken(userId)),\n profile: extractUserClaimsFromIdToken(await super.getDecodedIdToken(userId)),\n schemas: [],\n };\n }\n }\n\n override async updateUserProfile(payload: any, userId?: string): Promise<User> {\n await this.ensureInitialized();\n\n try {\n const configData: AuthClientConfig<T> = await this.getStorageManager().getConfigData();\n const baseUrl: string | undefined = configData?.baseUrl;\n\n return updateMeProfile({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n payload,\n });\n } catch (error) {\n throw new ThunderIDRuntimeError(\n `Failed to update user profile: ${error instanceof Error ? error.message : String(error)}`,\n 'ThunderIDNextClient-UpdateProfileError-001',\n 'react',\n 'An error occurred while updating the user profile. Please check your configuration and network connection.',\n );\n }\n }\n\n override isLoading(): boolean {\n return false;\n }\n\n override isSignedIn(sessionId?: string): Promise<boolean> {\n return super.isSignedIn(sessionId);\n }\n\n override exchangeToken(config: TokenExchangeRequestConfig, sessionId?: string): Promise<TokenResponse | Response> {\n return super.exchangeToken(config, sessionId) as unknown as Promise<TokenResponse | Response>;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n override async getAccessToken(_sessionId?: string): Promise<string> {\n const {default: getAccessToken} = await import('./server/actions/getAccessToken');\n const token: string | undefined = await getAccessToken();\n\n if (typeof token !== 'string' || !token) {\n throw new ThunderIDRuntimeError(\n 'Failed to get access token.',\n 'ThunderIDNextClient-getAccessToken-RuntimeError-003',\n 'nextjs',\n 'An error occurred while obtaining the access token. Please check your configuration and network connection.',\n );\n }\n\n return token;\n }\n\n override async getDecodedIdToken(sessionId?: string, idToken?: string): Promise<IdToken> {\n await this.ensureInitialized();\n return await super.getDecodedIdToken(sessionId, idToken);\n }\n\n override async signIn(...args: any[]): Promise<any> {\n const arg1: any = args[0];\n const arg2: any = args[1];\n const arg3: any = args[2];\n const arg4: any = args[3];\n\n return super.signIn(arg4, arg3, arg1?.code, arg1?.session_state, arg1?.state, arg1) as unknown as Promise<User>;\n }\n\n override async signOut(...args: any[]): Promise<string> {\n if (args[1] && typeof args[1] !== 'string') {\n throw new Error('The second argument must be a string.');\n }\n\n const config: T = this.getConfiguration();\n const afterSignOutUrl: string = config?.afterSignOutUrl || '/';\n\n const resolvedSessionId: string = args[1] || (await getSessionId())!;\n\n try {\n await (super.signOut as (...a: any[]) => Promise<string>)(resolvedSessionId);\n } catch (error) {\n const message: string = error instanceof Error ? error.message : String(error);\n\n if (!message.includes('end_session_endpoint')) {\n throw error;\n }\n }\n\n return afterSignOutUrl;\n }\n\n override async signUp(_options?: SignUpOptions): Promise<void> {\n throw new ThunderIDRuntimeError(\n 'Not implemented',\n 'ThunderIDNextClient-ValidationError-002',\n 'nextjs',\n 'The signUp method is not implemented in the Next.js client.',\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n override signInSilently(_options?: SignInOptions): Promise<User | boolean> {\n throw new ThunderIDRuntimeError(\n 'Not implemented',\n 'ThunderIDNextClient-signInSilently-NotImplementedError-001',\n 'nextjs',\n 'The signInSilently method is not implemented in the Next.js client.',\n );\n }\n\n public async getAuthorizeRequestUrl(\n customParams: ExtendedAuthorizeRequestUrlParams,\n userId?: string,\n ): Promise<string> {\n await this.ensureInitialized();\n return this.getSignInUrl(customParams, userId);\n }\n\n public override getStorageManager(): any {\n return super.getStorageManager();\n }\n\n public override async clearSession(): Promise<void> {\n throw new ThunderIDRuntimeError(\n 'Not implemented',\n 'ThunderIDNextClient-clearSession-NotImplementedError-001',\n 'nextjs',\n 'The clearSession method is not implemented in the Next.js client.',\n );\n }\n\n override async setSession(sessionData: Record<string, unknown>, sessionId?: string): Promise<void> {\n return this.getStorageManager().setSessionData(sessionData, sessionId);\n }\n\n override decodeJwtToken<R = Record<string, unknown>>(token: string): Promise<R> {\n return super.decodeJwtToken<R>(token);\n }\n}\n\nexport default ThunderIDNextClient;\n"],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
+ const require_getClientOrigin = require('./server/actions/getClientOrigin.cjs');
3
+ const require_getSessionId = require('./server/actions/getSessionId.cjs');
4
+ const require_decorateConfigWithNextEnv = require('./utils/decorateConfigWithNextEnv.cjs');
5
+ let __thunderid_node = require("@thunderid/node");
6
+ __thunderid_node = require_rolldown_runtime.__toESM(__thunderid_node);
7
+
8
+ //#region src/ThunderIDNextClient.ts
9
+ var ThunderIDNextClient = class extends __thunderid_node.ThunderIDNodeClient {
10
+ isInitialized = false;
11
+ constructor() {
12
+ super();
13
+ }
14
+ async ensureInitialized() {
15
+ if (!this.isInitialized) await this.initialize({});
16
+ if (!this.isInitialized) throw new Error("[ThunderIDNextClient] Client is not initialized. Make sure you have wrapped your app with ThunderIDProvider and provided the required configuration (baseUrl, clientId, etc.).");
17
+ }
18
+ async initialize(config, storage) {
19
+ if (this.isInitialized) return Promise.resolve(true);
20
+ const { baseUrl, organizationHandle, clientId, clientSecret, signInUrl, afterSignInUrl, afterSignOutUrl, signUpUrl,...rest } = require_decorateConfigWithNextEnv.default(config);
21
+ const origin = await require_getClientOrigin.default();
22
+ const initialized = await super.initialize({
23
+ ...rest,
24
+ afterSignInUrl: afterSignInUrl ?? origin,
25
+ afterSignOutUrl: afterSignOutUrl ?? origin,
26
+ baseUrl,
27
+ clientId,
28
+ clientSecret,
29
+ enablePKCE: rest.enablePKCE ?? true,
30
+ organizationHandle,
31
+ signInUrl,
32
+ signUpUrl
33
+ }, storage);
34
+ this.isInitialized = initialized;
35
+ return initialized;
36
+ }
37
+ async reInitialize(config) {
38
+ try {
39
+ await super.reInitialize(config);
40
+ return true;
41
+ } catch (error) {
42
+ throw new __thunderid_node.ThunderIDRuntimeError(`Failed to re-initialize the client: ${error instanceof Error ? error.message : String(error)}`, "ThunderIDNextClient-reInitialize-RuntimeError-001", "nextjs", "An error occurred while re-initializing the client. Please check your configuration and network connection.");
43
+ }
44
+ }
45
+ async getUser(userId) {
46
+ await this.ensureInitialized();
47
+ const resolvedSessionId = userId || await require_getSessionId.default();
48
+ try {
49
+ const baseUrl = (await this.getStorageManager().getConfigData())?.baseUrl;
50
+ return (0, __thunderid_node.generateUserProfile)(await (0, __thunderid_node.getScim2Me)({
51
+ baseUrl,
52
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` }
53
+ }), (0, __thunderid_node.flattenUserSchema)(await (0, __thunderid_node.getSchemas)({
54
+ baseUrl,
55
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` }
56
+ })));
57
+ } catch (error) {
58
+ return await super.getUser(resolvedSessionId);
59
+ }
60
+ }
61
+ async getUserProfile(userId) {
62
+ await this.ensureInitialized();
63
+ try {
64
+ const baseUrl = (await this.getStorageManager().getConfigData())?.baseUrl;
65
+ const profile = await (0, __thunderid_node.getScim2Me)({
66
+ baseUrl,
67
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` }
68
+ });
69
+ const processedSchemas = (0, __thunderid_node.flattenUserSchema)(await (0, __thunderid_node.getSchemas)({
70
+ baseUrl,
71
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` }
72
+ }));
73
+ return {
74
+ flattenedProfile: (0, __thunderid_node.generateFlattenedUserProfile)(profile, processedSchemas),
75
+ profile,
76
+ schemas: processedSchemas
77
+ };
78
+ } catch (error) {
79
+ return {
80
+ flattenedProfile: (0, __thunderid_node.extractUserClaimsFromIdToken)(await super.getDecodedIdToken(userId)),
81
+ profile: (0, __thunderid_node.extractUserClaimsFromIdToken)(await super.getDecodedIdToken(userId)),
82
+ schemas: []
83
+ };
84
+ }
85
+ }
86
+ async updateUserProfile(payload, userId) {
87
+ await this.ensureInitialized();
88
+ try {
89
+ const baseUrl = (await this.getStorageManager().getConfigData())?.baseUrl;
90
+ return (0, __thunderid_node.updateMeProfile)({
91
+ baseUrl,
92
+ headers: { Authorization: `Bearer ${await this.getAccessToken(userId)}` },
93
+ payload
94
+ });
95
+ } catch (error) {
96
+ throw new __thunderid_node.ThunderIDRuntimeError(`Failed to update user profile: ${error instanceof Error ? error.message : String(error)}`, "ThunderIDNextClient-UpdateProfileError-001", "react", "An error occurred while updating the user profile. Please check your configuration and network connection.");
97
+ }
98
+ }
99
+ isLoading() {
100
+ return false;
101
+ }
102
+ isSignedIn(sessionId) {
103
+ return super.isSignedIn(sessionId);
104
+ }
105
+ exchangeToken(config, sessionId) {
106
+ return super.exchangeToken(config, sessionId);
107
+ }
108
+ async getAccessToken(_sessionId) {
109
+ const { default: getAccessToken } = await Promise.resolve().then(() => require("./server/actions/getAccessToken.cjs"));
110
+ const token = await getAccessToken();
111
+ if (typeof token !== "string" || !token) throw new __thunderid_node.ThunderIDRuntimeError("Failed to get access token.", "ThunderIDNextClient-getAccessToken-RuntimeError-003", "nextjs", "An error occurred while obtaining the access token. Please check your configuration and network connection.");
112
+ return token;
113
+ }
114
+ async getDecodedIdToken(sessionId, idToken) {
115
+ await this.ensureInitialized();
116
+ return await super.getDecodedIdToken(sessionId, idToken);
117
+ }
118
+ async signIn(...args) {
119
+ const arg1 = args[0];
120
+ args[1];
121
+ const arg3 = args[2];
122
+ const arg4 = args[3];
123
+ return super.signIn(arg4, arg3, arg1?.code, arg1?.session_state, arg1?.state, arg1);
124
+ }
125
+ async signOut(...args) {
126
+ if (args[1] && typeof args[1] !== "string") throw new Error("The second argument must be a string.");
127
+ const afterSignOutUrl = this.getConfiguration()?.afterSignOutUrl || "/";
128
+ const resolvedSessionId = args[1] || await require_getSessionId.default();
129
+ try {
130
+ await super.signOut(resolvedSessionId);
131
+ } catch (error) {
132
+ if (!(error instanceof Error ? error.message : String(error)).includes("end_session_endpoint")) throw error;
133
+ }
134
+ return afterSignOutUrl;
135
+ }
136
+ async signUp(_options) {
137
+ throw new __thunderid_node.ThunderIDRuntimeError("Not implemented", "ThunderIDNextClient-ValidationError-002", "nextjs", "The signUp method is not implemented in the Next.js client.");
138
+ }
139
+ signInSilently(_options) {
140
+ throw new __thunderid_node.ThunderIDRuntimeError("Not implemented", "ThunderIDNextClient-signInSilently-NotImplementedError-001", "nextjs", "The signInSilently method is not implemented in the Next.js client.");
141
+ }
142
+ async getAuthorizeRequestUrl(customParams, userId) {
143
+ await this.ensureInitialized();
144
+ return this.getSignInUrl(customParams, userId);
145
+ }
146
+ getStorageManager() {
147
+ return super.getStorageManager();
148
+ }
149
+ async clearSession() {
150
+ throw new __thunderid_node.ThunderIDRuntimeError("Not implemented", "ThunderIDNextClient-clearSession-NotImplementedError-001", "nextjs", "The clearSession method is not implemented in the Next.js client.");
151
+ }
152
+ async setSession(sessionData, sessionId) {
153
+ return this.getStorageManager().setSessionData(sessionData, sessionId);
154
+ }
155
+ decodeJwtToken(token) {
156
+ return super.decodeJwtToken(token);
157
+ }
158
+ };
159
+ var ThunderIDNextClient_default = ThunderIDNextClient;
160
+
161
+ //#endregion
162
+ exports.default = ThunderIDNextClient_default;
163
+ //# sourceMappingURL=ThunderIDNextClient.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThunderIDNextClient.cjs","names":["ThunderIDNodeClient","decorateConfigWithNextEnv","origin: string","getClientOrigin","initialized: boolean","ThunderIDRuntimeError","resolvedSessionId: string","getSessionId","baseUrl: string | undefined","profile: User","processedSchemas: FlattenedSchema[]","token: string | undefined","arg1: any","arg3: any","arg4: any","afterSignOutUrl: string"],"sources":["../../src/ThunderIDNextClient.ts"],"sourcesContent":["/**\n * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {\n ThunderIDNodeClient,\n ThunderIDRuntimeError,\n AuthClientConfig,\n ExtendedAuthorizeRequestUrlParams,\n FlattenedSchema,\n IdToken,\n Schema,\n SignInOptions,\n SignUpOptions,\n Storage,\n TokenExchangeRequestConfig,\n TokenResponse,\n User,\n UserProfile,\n extractUserClaimsFromIdToken,\n flattenUserSchema,\n generateFlattenedUserProfile,\n generateUserProfile,\n getScim2Me,\n getSchemas,\n updateMeProfile,\n} from '@thunderid/node';\nimport {ThunderIDNextConfig} from './models/config';\nimport getClientOrigin from './server/actions/getClientOrigin';\nimport getSessionId from './server/actions/getSessionId';\nimport decorateConfigWithNextEnv from './utils/decorateConfigWithNextEnv';\n\nclass ThunderIDNextClient<T extends ThunderIDNextConfig = ThunderIDNextConfig> extends ThunderIDNodeClient<T> {\n public isInitialized = false;\n\n public constructor() {\n super();\n }\n\n private async ensureInitialized(): Promise<void> {\n if (!this.isInitialized) {\n // Server actions may run in a module context that hasn't been through\n // ThunderIDServerProvider (e.g. a different worker). Try to initialize\n // from environment variables before giving up.\n await this.initialize({} as T);\n }\n\n if (!this.isInitialized) {\n throw new Error(\n '[ThunderIDNextClient] Client is not initialized. Make sure you have wrapped your app with ThunderIDProvider and provided the required configuration (baseUrl, clientId, etc.).',\n );\n }\n }\n\n override async initialize(config: T, storage?: Storage): Promise<boolean> {\n if (this.isInitialized) {\n return Promise.resolve(true);\n }\n\n const {\n baseUrl,\n organizationHandle,\n clientId,\n clientSecret,\n signInUrl,\n afterSignInUrl,\n afterSignOutUrl,\n signUpUrl,\n ...rest\n } = decorateConfigWithNextEnv(config);\n\n const origin: string = await getClientOrigin();\n\n const initialized: boolean = await super.initialize(\n {\n ...rest,\n afterSignInUrl: afterSignInUrl ?? origin,\n afterSignOutUrl: afterSignOutUrl ?? origin,\n baseUrl,\n clientId,\n clientSecret,\n enablePKCE: (rest as any).enablePKCE ?? true,\n organizationHandle,\n signInUrl,\n signUpUrl,\n } as any,\n storage,\n );\n\n this.isInitialized = initialized;\n\n return initialized;\n }\n\n override async reInitialize(config: Partial<T>): Promise<boolean> {\n try {\n await super.reInitialize(config);\n return true;\n } catch (error) {\n throw new ThunderIDRuntimeError(\n `Failed to re-initialize the client: ${error instanceof Error ? error.message : String(error)}`,\n 'ThunderIDNextClient-reInitialize-RuntimeError-001',\n 'nextjs',\n 'An error occurred while re-initializing the client. Please check your configuration and network connection.',\n );\n }\n }\n\n override async getUser(userId?: string): Promise<User> {\n await this.ensureInitialized();\n const resolvedSessionId: string = userId || (await getSessionId())!;\n\n try {\n const configData: AuthClientConfig<T> = await this.getStorageManager().getConfigData();\n const baseUrl: string | undefined = configData?.baseUrl;\n\n const profile: User = await getScim2Me({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n });\n\n const schemas: Schema[] = await getSchemas({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n });\n\n return generateUserProfile(profile, flattenUserSchema(schemas));\n } catch (error) {\n return await super.getUser(resolvedSessionId);\n }\n }\n\n override async getUserProfile(userId?: string): Promise<UserProfile> {\n await this.ensureInitialized();\n\n try {\n const configData: AuthClientConfig<T> = await this.getStorageManager().getConfigData();\n const baseUrl: string | undefined = configData?.baseUrl;\n\n const profile: User = await getScim2Me({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n });\n\n const schemas: Schema[] = await getSchemas({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n });\n\n const processedSchemas: FlattenedSchema[] = flattenUserSchema(schemas);\n\n return {\n flattenedProfile: generateFlattenedUserProfile(profile, processedSchemas),\n profile,\n schemas: processedSchemas,\n };\n } catch (error) {\n return {\n flattenedProfile: extractUserClaimsFromIdToken(await super.getDecodedIdToken(userId)),\n profile: extractUserClaimsFromIdToken(await super.getDecodedIdToken(userId)),\n schemas: [],\n };\n }\n }\n\n override async updateUserProfile(payload: any, userId?: string): Promise<User> {\n await this.ensureInitialized();\n\n try {\n const configData: AuthClientConfig<T> = await this.getStorageManager().getConfigData();\n const baseUrl: string | undefined = configData?.baseUrl;\n\n return updateMeProfile({\n baseUrl,\n headers: {\n Authorization: `Bearer ${await this.getAccessToken(userId)}`,\n },\n payload,\n });\n } catch (error) {\n throw new ThunderIDRuntimeError(\n `Failed to update user profile: ${error instanceof Error ? error.message : String(error)}`,\n 'ThunderIDNextClient-UpdateProfileError-001',\n 'react',\n 'An error occurred while updating the user profile. Please check your configuration and network connection.',\n );\n }\n }\n\n override isLoading(): boolean {\n return false;\n }\n\n override isSignedIn(sessionId?: string): Promise<boolean> {\n return super.isSignedIn(sessionId);\n }\n\n override exchangeToken(config: TokenExchangeRequestConfig, sessionId?: string): Promise<TokenResponse | Response> {\n return super.exchangeToken(config, sessionId) as unknown as Promise<TokenResponse | Response>;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n override async getAccessToken(_sessionId?: string): Promise<string> {\n const {default: getAccessToken} = await import('./server/actions/getAccessToken');\n const token: string | undefined = await getAccessToken();\n\n if (typeof token !== 'string' || !token) {\n throw new ThunderIDRuntimeError(\n 'Failed to get access token.',\n 'ThunderIDNextClient-getAccessToken-RuntimeError-003',\n 'nextjs',\n 'An error occurred while obtaining the access token. Please check your configuration and network connection.',\n );\n }\n\n return token;\n }\n\n override async getDecodedIdToken(sessionId?: string, idToken?: string): Promise<IdToken> {\n await this.ensureInitialized();\n return await super.getDecodedIdToken(sessionId, idToken);\n }\n\n override async signIn(...args: any[]): Promise<any> {\n const arg1: any = args[0];\n const arg2: any = args[1];\n const arg3: any = args[2];\n const arg4: any = args[3];\n\n return super.signIn(arg4, arg3, arg1?.code, arg1?.session_state, arg1?.state, arg1) as unknown as Promise<User>;\n }\n\n override async signOut(...args: any[]): Promise<string> {\n if (args[1] && typeof args[1] !== 'string') {\n throw new Error('The second argument must be a string.');\n }\n\n const config: T = this.getConfiguration();\n const afterSignOutUrl: string = config?.afterSignOutUrl || '/';\n\n const resolvedSessionId: string = args[1] || (await getSessionId())!;\n\n try {\n await (super.signOut as (...a: any[]) => Promise<string>)(resolvedSessionId);\n } catch (error) {\n const message: string = error instanceof Error ? error.message : String(error);\n\n if (!message.includes('end_session_endpoint')) {\n throw error;\n }\n }\n\n return afterSignOutUrl;\n }\n\n override async signUp(_options?: SignUpOptions): Promise<void> {\n throw new ThunderIDRuntimeError(\n 'Not implemented',\n 'ThunderIDNextClient-ValidationError-002',\n 'nextjs',\n 'The signUp method is not implemented in the Next.js client.',\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n override signInSilently(_options?: SignInOptions): Promise<User | boolean> {\n throw new ThunderIDRuntimeError(\n 'Not implemented',\n 'ThunderIDNextClient-signInSilently-NotImplementedError-001',\n 'nextjs',\n 'The signInSilently method is not implemented in the Next.js client.',\n );\n }\n\n public async getAuthorizeRequestUrl(\n customParams: ExtendedAuthorizeRequestUrlParams,\n userId?: string,\n ): Promise<string> {\n await this.ensureInitialized();\n return this.getSignInUrl(customParams, userId);\n }\n\n public override getStorageManager(): any {\n return super.getStorageManager();\n }\n\n public override async clearSession(): Promise<void> {\n throw new ThunderIDRuntimeError(\n 'Not implemented',\n 'ThunderIDNextClient-clearSession-NotImplementedError-001',\n 'nextjs',\n 'The clearSession method is not implemented in the Next.js client.',\n );\n }\n\n override async setSession(sessionData: Record<string, unknown>, sessionId?: string): Promise<void> {\n return this.getStorageManager().setSessionData(sessionData, sessionId);\n }\n\n override decodeJwtToken<R = Record<string, unknown>>(token: string): Promise<R> {\n return super.decodeJwtToken<R>(token);\n }\n}\n\nexport default ThunderIDNextClient;\n"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ //#region rolldown:runtime
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+
23
+ //#endregion
24
+
25
+ exports.__toESM = __toESM;
@@ -0,0 +1,79 @@
1
+ 'use client';
2
+
3
+
4
+ const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.cjs');
5
+ const require_useThunderID = require('../../../contexts/ThunderID/useThunderID.cjs');
6
+ let __thunderid_node = require("@thunderid/node");
7
+ __thunderid_node = require_rolldown_runtime.__toESM(__thunderid_node);
8
+ let __thunderid_react = require("@thunderid/react");
9
+ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
10
+ let next_navigation = require("next/navigation");
11
+ next_navigation = require_rolldown_runtime.__toESM(next_navigation);
12
+ let react = require("react");
13
+ react = require_rolldown_runtime.__toESM(react);
14
+ let react_jsx_runtime = require("react/jsx-runtime");
15
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
16
+
17
+ //#region src/client/components/actions/SignInButton/SignInButton.tsx
18
+ /**
19
+ * SignInButton component that uses server actions for authentication in Next.js.
20
+ *
21
+ * @example Using render props
22
+ * ```tsx
23
+ * <SignInButton>
24
+ * {({isLoading}) => (
25
+ * <button type="submit" disabled={isLoading}>
26
+ * {isLoading ? 'Signing in...' : 'Sign In'}
27
+ * </button>
28
+ * )}
29
+ * </SignInButton>
30
+ * ```
31
+ *
32
+ * @example Using traditional props
33
+ * ```tsx
34
+ * <SignInButton className="custom-button">Sign In</SignInButton>
35
+ * ```
36
+ *
37
+ * @remarks
38
+ * In Next.js with server actions, the sign-in is handled via the server action.
39
+ * When using render props, the custom button should use `type="submit"` instead of `onClick={signIn}`.
40
+ * The `signIn` function in render props is provided for API consistency but should not be used directly.
41
+ */
42
+ const SignInButton = (0, react.forwardRef)(({ className, style, children, preferences, onClick, signInOptions = {},...rest }, ref) => {
43
+ const { signIn, signInUrl } = require_useThunderID.default();
44
+ const router = (0, next_navigation.useRouter)();
45
+ const { t } = (0, __thunderid_react.useTranslation)(preferences?.i18n);
46
+ const [isLoading, setIsLoading] = (0, react.useState)(false);
47
+ const handleSignIn = async () => {
48
+ try {
49
+ setIsLoading(true);
50
+ if (signInUrl) router.push(signInUrl);
51
+ else if (signIn) await signIn(signInOptions);
52
+ } catch (error) {
53
+ throw new __thunderid_node.ThunderIDRuntimeError(`Sign in failed: ${error instanceof Error ? error.message : String(error)}`, "SignInButton-handleSignIn-RuntimeError-001", "nextjs", "Something went wrong while trying to sign in. Please try again later.");
54
+ } finally {
55
+ setIsLoading(false);
56
+ }
57
+ };
58
+ const handleOnClick = async (e) => {
59
+ await handleSignIn();
60
+ if (onClick) onClick(e);
61
+ };
62
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__thunderid_react.BaseSignInButton, {
63
+ className,
64
+ style,
65
+ ref,
66
+ preferences,
67
+ isLoading,
68
+ signIn: handleSignIn,
69
+ onClick: handleOnClick,
70
+ ...rest,
71
+ children: children ?? t("elements.buttons.signin.text")
72
+ });
73
+ });
74
+ SignInButton.displayName = "SignInButton";
75
+ var SignInButton_default = SignInButton;
76
+
77
+ //#endregion
78
+ exports.default = SignInButton_default;
79
+ //# sourceMappingURL=SignInButton.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignInButton.cjs","names":["SignInButton: ForwardRefExoticComponent<SignInButtonProps & RefAttributes<HTMLButtonElement>>","useThunderID","router: AppRouterInstance","ThunderIDRuntimeError","BaseSignInButton"],"sources":["../../../../../../src/client/components/actions/SignInButton/SignInButton.tsx"],"sourcesContent":["/**\n * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n'use client';\n\nimport {ThunderIDRuntimeError} from '@thunderid/node';\nimport {BaseSignInButton, BaseSignInButtonProps, useTranslation} from '@thunderid/react';\nimport {AppRouterInstance} from 'next/dist/shared/lib/app-router-context.shared-runtime';\nimport {useRouter} from 'next/navigation';\nimport {forwardRef, ForwardRefExoticComponent, ReactElement, Ref, RefAttributes, MouseEvent, useState} from 'react';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\n\n/**\n * Props interface of {@link SignInButton}\n */\nexport type SignInButtonProps = BaseSignInButtonProps & {\n /**\n * Additional parameters to pass to the `authorize` request.\n */\n signInOptions?: Record<string, any>;\n};\n\n/**\n * SignInButton component that uses server actions for authentication in Next.js.\n *\n * @example Using render props\n * ```tsx\n * <SignInButton>\n * {({isLoading}) => (\n * <button type=\"submit\" disabled={isLoading}>\n * {isLoading ? 'Signing in...' : 'Sign In'}\n * </button>\n * )}\n * </SignInButton>\n * ```\n *\n * @example Using traditional props\n * ```tsx\n * <SignInButton className=\"custom-button\">Sign In</SignInButton>\n * ```\n *\n * @remarks\n * In Next.js with server actions, the sign-in is handled via the server action.\n * When using render props, the custom button should use `type=\"submit\"` instead of `onClick={signIn}`.\n * The `signIn` function in render props is provided for API consistency but should not be used directly.\n */\nconst SignInButton: ForwardRefExoticComponent<SignInButtonProps & RefAttributes<HTMLButtonElement>> = forwardRef<\n HTMLButtonElement,\n SignInButtonProps\n>(\n (\n {className, style, children, preferences, onClick, signInOptions = {}, ...rest}: SignInButtonProps,\n ref: Ref<HTMLButtonElement>,\n ): ReactElement => {\n const {signIn, signInUrl} = useThunderID();\n const router: AppRouterInstance = useRouter();\n const {t} = useTranslation(preferences?.i18n);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const handleSignIn = async (): Promise<void> => {\n try {\n setIsLoading(true);\n\n // If a custom `signInUrl` is provided, use it for navigation.\n if (signInUrl) {\n router.push(signInUrl);\n } else if (signIn) {\n await signIn(signInOptions);\n }\n } catch (error) {\n throw new ThunderIDRuntimeError(\n `Sign in failed: ${error instanceof Error ? error.message : String(error)}`,\n 'SignInButton-handleSignIn-RuntimeError-001',\n 'nextjs',\n 'Something went wrong while trying to sign in. Please try again later.',\n );\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleOnClick = async (e: MouseEvent<HTMLButtonElement>): Promise<void> => {\n await handleSignIn();\n if (onClick) {\n onClick(e);\n }\n };\n\n return (\n <BaseSignInButton\n className={className}\n style={style}\n ref={ref}\n preferences={preferences}\n isLoading={isLoading}\n signIn={handleSignIn}\n onClick={handleOnClick}\n {...rest}\n >\n {children ?? t('elements.buttons.signin.text')}\n </BaseSignInButton>\n );\n },\n);\n\nSignInButton.displayName = 'SignInButton';\n\nexport default SignInButton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,MAAMA,sCAKF,EAAC,WAAW,OAAO,UAAU,aAAa,SAAS,gBAAgB,EAAE,CAAE,GAAG,QAC1E,QACiB;CACjB,MAAM,EAAC,QAAQ,cAAaC,8BAAc;CAC1C,MAAMC,yCAAuC;CAC7C,MAAM,EAAC,4CAAoB,aAAa,KAAK;CAE7C,MAAM,CAAC,WAAW,oCAAyB,MAAM;CAEjD,MAAM,eAAe,YAA2B;AAC9C,MAAI;AACF,gBAAa,KAAK;AAGlB,OAAI,UACF,QAAO,KAAK,UAAU;YACb,OACT,OAAM,OAAO,cAAc;WAEtB,OAAO;AACd,SAAM,IAAIC,uCACR,mBAAmB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,IACzE,8CACA,UACA,wEACD;YACO;AACR,gBAAa,MAAM;;;CAIvB,MAAM,gBAAgB,OAAO,MAAoD;AAC/E,QAAM,cAAc;AACpB,MAAI,QACF,SAAQ,EAAE;;AAId,QACE,2CAACC;EACY;EACJ;EACF;EACQ;EACF;EACX,QAAQ;EACR,SAAS;EACT,GAAI;YAEH,YAAY,EAAE,+BAA+B;GAC7B;EAGxB;AAED,aAAa,cAAc;AAE3B,2BAAe"}
@@ -0,0 +1,61 @@
1
+ 'use client';
2
+
3
+
4
+ const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.cjs');
5
+ const require_logger = require('../../../../utils/logger.cjs');
6
+ const require_useThunderID = require('../../../contexts/ThunderID/useThunderID.cjs');
7
+ let __thunderid_react = require("@thunderid/react");
8
+ __thunderid_react = require_rolldown_runtime.__toESM(__thunderid_react);
9
+ let react = require("react");
10
+ react = require_rolldown_runtime.__toESM(react);
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
13
+
14
+ //#region src/client/components/actions/SignOutButton/SignOutButton.tsx
15
+ /**
16
+ * SignInButton component. This button initiates the sign-in process when clicked.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * import { SignInButton } from '@thunderid/auth-react';
21
+ *
22
+ * const App = () => {
23
+ * const buttonRef = useRef<HTMLButtonElement>(null);
24
+ * return (
25
+ * <SignInButton ref={buttonRef} className="custom-class" style={{ backgroundColor: 'blue' }}>
26
+ * Sign In
27
+ * </SignInButton>
28
+ * );
29
+ * }
30
+ * ```
31
+ */
32
+ const SignOutButton = (0, react.forwardRef)(({ className, style, preferences, onClick, children,...rest }, ref) => {
33
+ const { signOut } = require_useThunderID.default();
34
+ const { t } = (0, __thunderid_react.useTranslation)(preferences?.i18n);
35
+ const [isLoading, setIsLoading] = (0, react.useState)(false);
36
+ const handleOnClick = async (e) => {
37
+ try {
38
+ setIsLoading(true);
39
+ require_logger.default.debug("[SignOutButton] Initiating a sign-out from a button click");
40
+ await signOut();
41
+ if (onClick) onClick(e);
42
+ } catch (error) {
43
+ require_logger.default.error("[SignOutButton] Error occurred initiating sign-out from a button click:", error);
44
+ } finally {
45
+ setIsLoading(false);
46
+ }
47
+ };
48
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__thunderid_react.BaseSignOutButton, {
49
+ ref,
50
+ onClick: handleOnClick,
51
+ isLoading,
52
+ preferences,
53
+ ...rest,
54
+ children: children ?? t("elements.buttons.signout.text")
55
+ });
56
+ });
57
+ var SignOutButton_default = SignOutButton;
58
+
59
+ //#endregion
60
+ exports.default = SignOutButton_default;
61
+ //# sourceMappingURL=SignOutButton.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignOutButton.cjs","names":["SignOutButton: ForwardRefExoticComponent<SignOutButtonProps & RefAttributes<HTMLButtonElement>>","useThunderID","BaseSignOutButton"],"sources":["../../../../../../src/client/components/actions/SignOutButton/SignOutButton.tsx"],"sourcesContent":["/**\n * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n'use client';\n\nimport {BaseSignOutButton, BaseSignOutButtonProps, useTranslation} from '@thunderid/react';\nimport {forwardRef, ForwardRefExoticComponent, ReactElement, Ref, RefAttributes, useState, MouseEvent} from 'react';\nimport logger from '../../../../utils/logger';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\n\n/**\n * Interface for SignInButton component props.\n */\nexport type SignOutButtonProps = BaseSignOutButtonProps;\n\n/**\n * SignInButton component. This button initiates the sign-in process when clicked.\n *\n * @example\n * ```tsx\n * import { SignInButton } from '@thunderid/auth-react';\n *\n * const App = () => {\n * const buttonRef = useRef<HTMLButtonElement>(null);\n * return (\n * <SignInButton ref={buttonRef} className=\"custom-class\" style={{ backgroundColor: 'blue' }}>\n * Sign In\n * </SignInButton>\n * );\n * }\n * ```\n */\nconst SignOutButton: ForwardRefExoticComponent<SignOutButtonProps & RefAttributes<HTMLButtonElement>> = forwardRef<\n HTMLButtonElement,\n SignOutButtonProps\n>(\n (\n {className, style, preferences, onClick, children, ...rest}: SignOutButtonProps,\n ref: Ref<HTMLButtonElement>,\n ): ReactElement => {\n const {signOut} = useThunderID();\n const {t} = useTranslation(preferences?.i18n);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const handleOnClick = async (e: MouseEvent<HTMLButtonElement>): Promise<void> => {\n try {\n setIsLoading(true);\n\n logger.debug('[SignOutButton] Initiating a sign-out from a button click');\n\n await signOut();\n\n if (onClick) {\n onClick(e);\n }\n } catch (error) {\n logger.error('[SignOutButton] Error occurred initiating sign-out from a button click:', error);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n <BaseSignOutButton ref={ref} onClick={handleOnClick} isLoading={isLoading} preferences={preferences} {...rest}>\n {children ?? t('elements.buttons.signout.text')}\n </BaseSignOutButton>\n );\n },\n);\n\nexport default SignOutButton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAMA,uCAKF,EAAC,WAAW,OAAO,aAAa,SAAS,SAAU,GAAG,QACtD,QACiB;CACjB,MAAM,EAAC,YAAWC,8BAAc;CAChC,MAAM,EAAC,4CAAoB,aAAa,KAAK;CAE7C,MAAM,CAAC,WAAW,oCAAyB,MAAM;CAEjD,MAAM,gBAAgB,OAAO,MAAoD;AAC/E,MAAI;AACF,gBAAa,KAAK;AAElB,0BAAO,MAAM,4DAA4D;AAEzE,SAAM,SAAS;AAEf,OAAI,QACF,SAAQ,EAAE;WAEL,OAAO;AACd,0BAAO,MAAM,2EAA2E,MAAM;YACtF;AACR,gBAAa,MAAM;;;AAIvB,QACE,2CAACC;EAAuB;EAAK,SAAS;EAA0B;EAAwB;EAAa,GAAI;YACtG,YAAY,EAAE,gCAAgC;GAC7B;EAGzB;AAED,4BAAe"}