@bmc-soft/keycloak-auth 1.0.1 → 1.0.3

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 (301) hide show
  1. package/dist/_lib/escapeForInjectedJS.d.ts +2 -0
  2. package/dist/_lib/escapeForInjectedJS.d.ts.map +1 -0
  3. package/dist/_lib/escapeForInjectedJS.js +8 -0
  4. package/dist/_lib/escapeForInjectedJS.js.map +1 -0
  5. package/dist/_lib/getInjectedJSForDetect.d.ts +2 -0
  6. package/dist/_lib/getInjectedJSForDetect.d.ts.map +1 -0
  7. package/dist/_lib/getInjectedJSForDetect.js +27 -0
  8. package/dist/_lib/getInjectedJSForDetect.js.map +1 -0
  9. package/dist/_lib/getInjectedJSForLogin.d.ts +2 -0
  10. package/dist/_lib/getInjectedJSForLogin.d.ts.map +1 -0
  11. package/dist/_lib/getInjectedJSForLogin.js +168 -0
  12. package/dist/_lib/getInjectedJSForLogin.js.map +1 -0
  13. package/dist/_lib/getInjectedJSForLogout.d.ts +2 -0
  14. package/dist/_lib/getInjectedJSForLogout.d.ts.map +1 -0
  15. package/dist/_lib/getInjectedJSForLogout.js +63 -0
  16. package/dist/_lib/getInjectedJSForLogout.js.map +1 -0
  17. package/dist/_lib/index.d.ts +7 -0
  18. package/dist/_lib/index.d.ts.map +1 -0
  19. package/dist/_lib/index.js +7 -0
  20. package/dist/_lib/index.js.map +1 -0
  21. package/dist/_lib/types/authStage.d.ts +7 -0
  22. package/dist/_lib/types/authStage.d.ts.map +1 -0
  23. package/dist/_lib/types/authStage.js +6 -0
  24. package/dist/_lib/types/authStage.js.map +1 -0
  25. package/dist/_lib/types/confirmAuthPhase.d.ts +7 -0
  26. package/dist/_lib/types/confirmAuthPhase.d.ts.map +1 -0
  27. package/dist/_lib/types/confirmAuthPhase.js +6 -0
  28. package/dist/_lib/types/confirmAuthPhase.js.map +1 -0
  29. package/dist/_lib/types/index.d.ts +4 -0
  30. package/dist/_lib/types/index.d.ts.map +1 -0
  31. package/dist/_lib/types/index.js +4 -0
  32. package/dist/_lib/types/index.js.map +1 -0
  33. package/dist/_lib/types/pinSetupStage.d.ts +7 -0
  34. package/dist/_lib/types/pinSetupStage.d.ts.map +1 -0
  35. package/dist/_lib/types/pinSetupStage.js +6 -0
  36. package/dist/_lib/types/pinSetupStage.js.map +1 -0
  37. package/dist/axios/adapters/KeycloakTokenProvider.d.ts +10 -0
  38. package/dist/axios/adapters/KeycloakTokenProvider.d.ts.map +1 -0
  39. package/dist/axios/adapters/KeycloakTokenProvider.js +56 -0
  40. package/dist/axios/adapters/KeycloakTokenProvider.js.map +1 -0
  41. package/dist/axios/index.d.ts +5 -0
  42. package/dist/axios/index.d.ts.map +1 -0
  43. package/dist/axios/index.js +3 -0
  44. package/dist/axios/index.js.map +1 -0
  45. package/dist/axios/interceptors.d.ts +5 -0
  46. package/dist/axios/interceptors.d.ts.map +1 -0
  47. package/dist/axios/interceptors.js +136 -0
  48. package/dist/axios/interceptors.js.map +1 -0
  49. package/dist/axios/tokenProvider.d.ts +7 -0
  50. package/dist/axios/tokenProvider.d.ts.map +1 -0
  51. package/dist/axios/tokenProvider.js +2 -0
  52. package/dist/axios/tokenProvider.js.map +1 -0
  53. package/dist/axios/types.d.ts +17 -0
  54. package/dist/axios/types.d.ts.map +1 -0
  55. package/dist/axios/types.js +2 -0
  56. package/dist/axios/types.js.map +1 -0
  57. package/dist/context/KeycloakConfigContext.d.ts +10 -0
  58. package/dist/context/KeycloakConfigContext.d.ts.map +1 -0
  59. package/dist/context/KeycloakConfigContext.js +50 -0
  60. package/dist/context/KeycloakConfigContext.js.map +1 -0
  61. package/dist/context/KeycloakInstanceContext.d.ts +20 -0
  62. package/dist/context/KeycloakInstanceContext.d.ts.map +1 -0
  63. package/dist/context/KeycloakInstanceContext.js +113 -0
  64. package/dist/context/KeycloakInstanceContext.js.map +1 -0
  65. package/dist/context/KeycloakProvider.d.ts +15 -0
  66. package/dist/context/KeycloakProvider.d.ts.map +1 -0
  67. package/dist/context/KeycloakProvider.js +19 -0
  68. package/dist/context/KeycloakProvider.js.map +1 -0
  69. package/dist/context/KeycloakThemeContext.d.ts +66 -0
  70. package/dist/context/KeycloakThemeContext.d.ts.map +1 -0
  71. package/dist/context/KeycloakThemeContext.js +59 -0
  72. package/dist/context/KeycloakThemeContext.js.map +1 -0
  73. package/dist/context/ReauthContext.d.ts +13 -0
  74. package/dist/context/ReauthContext.d.ts.map +1 -0
  75. package/dist/context/ReauthContext.js +26 -0
  76. package/dist/context/ReauthContext.js.map +1 -0
  77. package/dist/context/TokenContext.d.ts +18 -0
  78. package/dist/context/TokenContext.d.ts.map +1 -0
  79. package/dist/context/TokenContext.js +117 -0
  80. package/dist/context/TokenContext.js.map +1 -0
  81. package/dist/context/index.d.ts +14 -0
  82. package/dist/context/index.d.ts.map +1 -0
  83. package/dist/context/index.js +7 -0
  84. package/dist/context/index.js.map +1 -0
  85. package/dist/core/adapter.d.ts +23 -0
  86. package/dist/core/adapter.d.ts.map +1 -0
  87. package/dist/core/adapter.js +75 -0
  88. package/dist/core/adapter.js.map +1 -0
  89. package/dist/core/client.d.ts +7 -0
  90. package/dist/core/client.d.ts.map +1 -0
  91. package/dist/core/client.js +12 -0
  92. package/dist/core/client.js.map +1 -0
  93. package/dist/core/index.d.ts +5 -0
  94. package/dist/core/index.d.ts.map +1 -0
  95. package/dist/core/index.js +4 -0
  96. package/dist/core/index.js.map +1 -0
  97. package/dist/core/storage.d.ts +10 -0
  98. package/dist/core/storage.d.ts.map +1 -0
  99. package/dist/core/storage.js +37 -0
  100. package/dist/core/storage.js.map +1 -0
  101. package/dist/core/types.d.ts +31 -0
  102. package/dist/core/types.d.ts.map +1 -0
  103. package/dist/core/types.js +2 -0
  104. package/dist/core/types.js.map +1 -0
  105. package/dist/core/utils.d.ts +2 -0
  106. package/dist/core/utils.d.ts.map +1 -0
  107. package/dist/core/utils.js +10 -0
  108. package/dist/core/utils.js.map +1 -0
  109. package/dist/hooks/index.d.ts +9 -0
  110. package/dist/hooks/index.d.ts.map +1 -0
  111. package/dist/hooks/index.js +7 -0
  112. package/dist/hooks/index.js.map +1 -0
  113. package/dist/hooks/useKeycloakAuth.d.ts +23 -0
  114. package/dist/hooks/useKeycloakAuth.d.ts.map +1 -0
  115. package/dist/hooks/useKeycloakAuth.js +67 -0
  116. package/dist/hooks/useKeycloakAuth.js.map +1 -0
  117. package/dist/hooks/useKeycloakAuthScreen.d.ts +11 -0
  118. package/dist/hooks/useKeycloakAuthScreen.d.ts.map +1 -0
  119. package/dist/hooks/useKeycloakAuthScreen.js +59 -0
  120. package/dist/hooks/useKeycloakAuthScreen.js.map +1 -0
  121. package/dist/index.d.ts +18 -0
  122. package/dist/index.d.ts.map +1 -0
  123. package/dist/index.js +12 -0
  124. package/dist/index.js.map +1 -0
  125. package/dist/screens/AuthPage/AuthPage.d.ts +17 -0
  126. package/dist/screens/AuthPage/AuthPage.d.ts.map +1 -0
  127. package/dist/screens/AuthPage/AuthPage.js +115 -0
  128. package/dist/screens/AuthPage/AuthPage.js.map +1 -0
  129. package/dist/screens/AuthPage/index.d.ts +2 -0
  130. package/dist/screens/AuthPage/index.d.ts.map +1 -0
  131. package/dist/screens/AuthPage/index.js +2 -0
  132. package/dist/screens/AuthPage/index.js.map +1 -0
  133. package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.d.ts +21 -0
  134. package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.d.ts.map +1 -0
  135. package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.js +215 -0
  136. package/dist/screens/ConfirmAuthPage/ConfirmAuthPage.js.map +1 -0
  137. package/dist/screens/ConfirmAuthPage/index.d.ts +2 -0
  138. package/dist/screens/ConfirmAuthPage/index.d.ts.map +1 -0
  139. package/dist/screens/ConfirmAuthPage/index.js +2 -0
  140. package/dist/screens/ConfirmAuthPage/index.js.map +1 -0
  141. package/dist/screens/index.d.ts +3 -0
  142. package/dist/screens/index.d.ts.map +1 -0
  143. package/dist/screens/index.js +3 -0
  144. package/dist/screens/index.js.map +1 -0
  145. package/dist/storage/credentialStorage.d.ts +26 -0
  146. package/dist/storage/credentialStorage.d.ts.map +1 -0
  147. package/dist/storage/credentialStorage.js +188 -0
  148. package/dist/storage/credentialStorage.js.map +1 -0
  149. package/dist/storage/index.d.ts +3 -0
  150. package/dist/storage/index.d.ts.map +1 -0
  151. package/dist/storage/index.js +3 -0
  152. package/dist/storage/index.js.map +1 -0
  153. package/dist/storage/tokenStorage.d.ts +28 -0
  154. package/dist/storage/tokenStorage.d.ts.map +1 -0
  155. package/dist/storage/tokenStorage.js +145 -0
  156. package/dist/storage/tokenStorage.js.map +1 -0
  157. package/dist/ui/DefaultButton/DefaultButton.d.ts +10 -0
  158. package/dist/ui/DefaultButton/DefaultButton.d.ts.map +1 -0
  159. package/dist/ui/DefaultButton/DefaultButton.js +41 -0
  160. package/dist/ui/DefaultButton/DefaultButton.js.map +1 -0
  161. package/dist/ui/DefaultButton/DefaultIconButton.d.ts +4 -0
  162. package/dist/ui/DefaultButton/DefaultIconButton.d.ts.map +1 -0
  163. package/dist/ui/DefaultButton/DefaultIconButton.js +11 -0
  164. package/dist/ui/DefaultButton/DefaultIconButton.js.map +1 -0
  165. package/dist/ui/DefaultButton/index.d.ts +4 -0
  166. package/dist/ui/DefaultButton/index.d.ts.map +1 -0
  167. package/dist/ui/DefaultButton/index.js +3 -0
  168. package/dist/ui/DefaultButton/index.js.map +1 -0
  169. package/dist/ui/DefaultLoader/DefaultLoader.d.ts +3 -0
  170. package/dist/ui/DefaultLoader/DefaultLoader.d.ts.map +1 -0
  171. package/dist/ui/DefaultLoader/DefaultLoader.js +16 -0
  172. package/dist/ui/DefaultLoader/DefaultLoader.js.map +1 -0
  173. package/dist/ui/DefaultLoader/index.d.ts +2 -0
  174. package/dist/ui/DefaultLoader/index.d.ts.map +1 -0
  175. package/dist/ui/DefaultLoader/index.js +2 -0
  176. package/dist/ui/DefaultLoader/index.js.map +1 -0
  177. package/dist/ui/LogoutButton/LogoutButtonIcon.d.ts +4 -0
  178. package/dist/ui/LogoutButton/LogoutButtonIcon.d.ts.map +1 -0
  179. package/dist/ui/LogoutButton/LogoutButtonIcon.js +12 -0
  180. package/dist/ui/LogoutButton/LogoutButtonIcon.js.map +1 -0
  181. package/dist/ui/LogoutButton/LogoutButtonText.d.ts +4 -0
  182. package/dist/ui/LogoutButton/LogoutButtonText.d.ts.map +1 -0
  183. package/dist/ui/LogoutButton/LogoutButtonText.js +18 -0
  184. package/dist/ui/LogoutButton/LogoutButtonText.js.map +1 -0
  185. package/dist/ui/LogoutButton/index.d.ts +4 -0
  186. package/dist/ui/LogoutButton/index.d.ts.map +1 -0
  187. package/dist/ui/LogoutButton/index.js +3 -0
  188. package/dist/ui/LogoutButton/index.js.map +1 -0
  189. package/dist/ui/LogoutButton/types.d.ts +14 -0
  190. package/dist/ui/LogoutButton/types.d.ts.map +1 -0
  191. package/dist/ui/LogoutButton/types.js +2 -0
  192. package/dist/ui/LogoutButton/types.js.map +1 -0
  193. package/dist/ui/LogoutButton/useLogoutButton.d.ts +13 -0
  194. package/dist/ui/LogoutButton/useLogoutButton.d.ts.map +1 -0
  195. package/dist/ui/LogoutButton/useLogoutButton.js +46 -0
  196. package/dist/ui/LogoutButton/useLogoutButton.js.map +1 -0
  197. package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.d.ts +15 -0
  198. package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.d.ts.map +1 -0
  199. package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.js +68 -0
  200. package/dist/ui/LogoutConfirmSheet/LogoutConfirmSheet.js.map +1 -0
  201. package/dist/ui/LogoutConfirmSheet/index.d.ts +2 -0
  202. package/dist/ui/LogoutConfirmSheet/index.d.ts.map +1 -0
  203. package/dist/ui/LogoutConfirmSheet/index.js +2 -0
  204. package/dist/ui/LogoutConfirmSheet/index.js.map +1 -0
  205. package/dist/ui/NumberPad/NumberPad.d.ts +15 -0
  206. package/dist/ui/NumberPad/NumberPad.d.ts.map +1 -0
  207. package/dist/ui/NumberPad/NumberPad.js +142 -0
  208. package/dist/ui/NumberPad/NumberPad.js.map +1 -0
  209. package/dist/ui/NumberPad/index.d.ts +2 -0
  210. package/dist/ui/NumberPad/index.d.ts.map +1 -0
  211. package/dist/ui/NumberPad/index.js +2 -0
  212. package/dist/ui/NumberPad/index.js.map +1 -0
  213. package/dist/ui/PINConfirm/PINConfirm.d.ts +18 -0
  214. package/dist/ui/PINConfirm/PINConfirm.d.ts.map +1 -0
  215. package/dist/ui/PINConfirm/PINConfirm.js +148 -0
  216. package/dist/ui/PINConfirm/PINConfirm.js.map +1 -0
  217. package/dist/ui/PINConfirm/index.d.ts +2 -0
  218. package/dist/ui/PINConfirm/index.d.ts.map +1 -0
  219. package/dist/ui/PINConfirm/index.js +2 -0
  220. package/dist/ui/PINConfirm/index.js.map +1 -0
  221. package/dist/ui/PINIndicator/PINIndicator.d.ts +13 -0
  222. package/dist/ui/PINIndicator/PINIndicator.d.ts.map +1 -0
  223. package/dist/ui/PINIndicator/PINIndicator.js +52 -0
  224. package/dist/ui/PINIndicator/PINIndicator.js.map +1 -0
  225. package/dist/ui/PINIndicator/index.d.ts +2 -0
  226. package/dist/ui/PINIndicator/index.d.ts.map +1 -0
  227. package/dist/ui/PINIndicator/index.js +2 -0
  228. package/dist/ui/PINIndicator/index.js.map +1 -0
  229. package/dist/ui/PINSetup/PINSetup.d.ts +17 -0
  230. package/dist/ui/PINSetup/PINSetup.d.ts.map +1 -0
  231. package/dist/ui/PINSetup/PINSetup.js +117 -0
  232. package/dist/ui/PINSetup/PINSetup.js.map +1 -0
  233. package/dist/ui/PINSetup/index.d.ts +2 -0
  234. package/dist/ui/PINSetup/index.d.ts.map +1 -0
  235. package/dist/ui/PINSetup/index.js +2 -0
  236. package/dist/ui/PINSetup/index.js.map +1 -0
  237. package/dist/ui/PINSetup/stages/BiometryStage.d.ts +12 -0
  238. package/dist/ui/PINSetup/stages/BiometryStage.d.ts.map +1 -0
  239. package/dist/ui/PINSetup/stages/BiometryStage.js +76 -0
  240. package/dist/ui/PINSetup/stages/BiometryStage.js.map +1 -0
  241. package/dist/ui/PINSetup/stages/ConfirmStage.d.ts +13 -0
  242. package/dist/ui/PINSetup/stages/ConfirmStage.d.ts.map +1 -0
  243. package/dist/ui/PINSetup/stages/ConfirmStage.js +20 -0
  244. package/dist/ui/PINSetup/stages/ConfirmStage.js.map +1 -0
  245. package/dist/ui/PINSetup/stages/EnterStage.d.ts +13 -0
  246. package/dist/ui/PINSetup/stages/EnterStage.d.ts.map +1 -0
  247. package/dist/ui/PINSetup/stages/EnterStage.js +19 -0
  248. package/dist/ui/PINSetup/stages/EnterStage.js.map +1 -0
  249. package/dist/ui/PINSetup/stages/index.d.ts +4 -0
  250. package/dist/ui/PINSetup/stages/index.d.ts.map +1 -0
  251. package/dist/ui/PINSetup/stages/index.js +4 -0
  252. package/dist/ui/PINSetup/stages/index.js.map +1 -0
  253. package/dist/ui/PINSetup/styles.d.ts +39 -0
  254. package/dist/ui/PINSetup/styles.d.ts.map +1 -0
  255. package/dist/ui/PINSetup/styles.js +40 -0
  256. package/dist/ui/PINSetup/styles.js.map +1 -0
  257. package/dist/ui/WebViewLogin/WebViewLogin.d.ts +14 -0
  258. package/dist/ui/WebViewLogin/WebViewLogin.d.ts.map +1 -0
  259. package/dist/ui/WebViewLogin/WebViewLogin.js +125 -0
  260. package/dist/ui/WebViewLogin/WebViewLogin.js.map +1 -0
  261. package/dist/ui/WebViewLogin/index.d.ts +2 -0
  262. package/dist/ui/WebViewLogin/index.d.ts.map +1 -0
  263. package/dist/ui/WebViewLogin/index.js +2 -0
  264. package/dist/ui/WebViewLogin/index.js.map +1 -0
  265. package/dist/ui/WebViewLogout/WebViewLogout.d.ts +11 -0
  266. package/dist/ui/WebViewLogout/WebViewLogout.d.ts.map +1 -0
  267. package/dist/ui/WebViewLogout/WebViewLogout.js +96 -0
  268. package/dist/ui/WebViewLogout/WebViewLogout.js.map +1 -0
  269. package/dist/ui/WebViewLogout/index.d.ts +2 -0
  270. package/dist/ui/WebViewLogout/index.d.ts.map +1 -0
  271. package/dist/ui/WebViewLogout/index.js +2 -0
  272. package/dist/ui/WebViewLogout/index.js.map +1 -0
  273. package/dist/ui/icons/FaceIdIcon.d.ts +4 -0
  274. package/dist/ui/icons/FaceIdIcon.d.ts.map +1 -0
  275. package/dist/ui/icons/FaceIdIcon.js +7 -0
  276. package/dist/ui/icons/FaceIdIcon.js.map +1 -0
  277. package/dist/ui/icons/FingerprintIcon.d.ts +4 -0
  278. package/dist/ui/icons/FingerprintIcon.d.ts.map +1 -0
  279. package/dist/ui/icons/FingerprintIcon.js +10 -0
  280. package/dist/ui/icons/FingerprintIcon.js.map +1 -0
  281. package/dist/ui/icons/index.d.ts +3 -0
  282. package/dist/ui/icons/index.d.ts.map +1 -0
  283. package/dist/ui/icons/index.js +3 -0
  284. package/dist/ui/icons/index.js.map +1 -0
  285. package/dist/ui/index.d.ts +11 -0
  286. package/dist/ui/index.d.ts.map +1 -0
  287. package/dist/ui/index.js +11 -0
  288. package/dist/ui/index.js.map +1 -0
  289. package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.d.ts +17 -0
  290. package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.d.ts.map +1 -0
  291. package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.js +48 -0
  292. package/dist/widgets/ReauthBottomSheet/ReauthBottomSheet.js.map +1 -0
  293. package/dist/widgets/ReauthBottomSheet/index.d.ts +2 -0
  294. package/dist/widgets/ReauthBottomSheet/index.d.ts.map +1 -0
  295. package/dist/widgets/ReauthBottomSheet/index.js +2 -0
  296. package/dist/widgets/ReauthBottomSheet/index.js.map +1 -0
  297. package/dist/widgets/index.d.ts +2 -0
  298. package/dist/widgets/index.d.ts.map +1 -0
  299. package/dist/widgets/index.js +2 -0
  300. package/dist/widgets/index.js.map +1 -0
  301. package/package.json +24 -2
@@ -0,0 +1,26 @@
1
+ import React, { createContext, useCallback, useContext, useMemo, useState, } from 'react';
2
+ const ReauthContext = createContext(null);
3
+ export const ReauthProvider = React.memo(({ children }) => {
4
+ const [isReauthRequired, setIsReauthRequired] = useState(false);
5
+ const showReauth = useCallback(() => {
6
+ setIsReauthRequired(true);
7
+ }, []);
8
+ const hideReauth = useCallback(() => {
9
+ setIsReauthRequired(false);
10
+ }, []);
11
+ const value = useMemo(() => ({
12
+ isReauthRequired,
13
+ showReauth,
14
+ hideReauth,
15
+ }), [isReauthRequired, showReauth, hideReauth]);
16
+ return <ReauthContext.Provider value={value}>{children}</ReauthContext.Provider>;
17
+ });
18
+ ReauthProvider.displayName = 'ReauthProvider';
19
+ export const useReauth = () => {
20
+ const context = useContext(ReauthContext);
21
+ if (!context) {
22
+ throw new Error('useReauth must be used within ReauthProvider');
23
+ }
24
+ return context;
25
+ };
26
+ //# sourceMappingURL=ReauthContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReauthContext.js","sourceRoot":"","sources":["../../src/context/ReauthContext.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EACZ,aAAa,EAEb,WAAW,EACX,UAAU,EACV,OAAO,EACP,QAAQ,GACT,MAAM,OAAO,CAAC;AAQf,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AAMrE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAsB,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE;IAC3E,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,gBAAgB;QAChB,UAAU;QACV,UAAU;KACX,CAAC,EACF,CAAC,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,CAC3C,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnF,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAM9C,MAAM,CAAC,MAAM,SAAS,GAAG,GAAuB,EAAE;IAChD,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import type { KeycloakTokens } from '../core/types';
3
+ interface TokenContextValue {
4
+ token: string | null;
5
+ refreshToken: string | null;
6
+ idToken: string | null;
7
+ isExpired: boolean;
8
+ updateToken: (minValidity?: number) => Promise<string>;
9
+ clearTokens: () => Promise<void>;
10
+ }
11
+ export interface TokenProviderProps {
12
+ children: ReactNode;
13
+ onTokens?: (tokens: KeycloakTokens) => void;
14
+ }
15
+ export declare const TokenProvider: React.NamedExoticComponent<TokenProviderProps>;
16
+ export declare const useToken: () => TokenContextValue;
17
+ export {};
18
+ //# sourceMappingURL=TokenContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenContext.d.ts","sourceRoot":"","sources":["../../src/context/TokenContext.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAEZ,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAIlD,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAID,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IAEpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,aAAa,gDA8IxB,CAAC;AASH,eAAO,MAAM,QAAQ,QAAO,iBAQ3B,CAAC"}
@@ -0,0 +1,117 @@
1
+ import React, { createContext, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
2
+ import { tokenStorage } from '../storage';
3
+ import { useKeycloakInstance } from './KeycloakInstanceContext';
4
+ const TokenContext = createContext(null);
5
+ export const TokenProvider = React.memo(({ children, onTokens }) => {
6
+ const { keycloak, isInitialized } = useKeycloakInstance();
7
+ const [token, setToken] = useState(null);
8
+ const [refreshToken, setRefreshToken] = useState(null);
9
+ const [idToken, setIdToken] = useState(null);
10
+ useEffect(() => {
11
+ onTokens?.({ token, refreshToken, idToken });
12
+ }, [token, refreshToken, idToken, onTokens]);
13
+ useEffect(() => {
14
+ if (!isInitialized || !keycloak)
15
+ return;
16
+ const loadTokens = async () => {
17
+ try {
18
+ const tokens = await tokenStorage.getTokens();
19
+ setToken(tokens.token ?? null);
20
+ setRefreshToken(tokens.refreshToken ?? null);
21
+ setIdToken(tokens.idToken ?? null);
22
+ }
23
+ catch (error) {
24
+ console.error('[TokenContext] Load tokens error:', error);
25
+ }
26
+ };
27
+ loadTokens();
28
+ }, [isInitialized, keycloak]);
29
+ useEffect(() => {
30
+ if (!keycloak || !isInitialized)
31
+ return;
32
+ const currentToken = keycloak.token;
33
+ const currentRefreshToken = keycloak.refreshToken;
34
+ const currentIdToken = keycloak.idToken;
35
+ if (currentToken !== token) {
36
+ setToken(currentToken || null);
37
+ if (currentToken) {
38
+ tokenStorage.saveToken(currentToken).catch(console.error);
39
+ }
40
+ }
41
+ if (currentRefreshToken !== refreshToken) {
42
+ setRefreshToken(currentRefreshToken || null);
43
+ if (currentRefreshToken) {
44
+ tokenStorage.saveRefreshToken(currentRefreshToken).catch(console.error);
45
+ }
46
+ }
47
+ if (currentIdToken !== idToken) {
48
+ setIdToken(currentIdToken || null);
49
+ if (currentIdToken) {
50
+ tokenStorage.saveIdToken(currentIdToken).catch(console.error);
51
+ }
52
+ }
53
+ }, [keycloak?.token, keycloak?.refreshToken, keycloak?.idToken]);
54
+ const updateToken = useCallback(async (minValidity = 120) => {
55
+ if (!keycloak || !isInitialized) {
56
+ throw new Error('[TokenContext] Keycloak not initialized');
57
+ }
58
+ try {
59
+ const updated = await keycloak.updateToken(minValidity);
60
+ if (updated && keycloak.token) {
61
+ setToken(keycloak.token);
62
+ setRefreshToken(keycloak.refreshToken ?? null);
63
+ setIdToken(keycloak.idToken ?? null);
64
+ await tokenStorage.saveTokens({
65
+ token: keycloak.token,
66
+ refreshToken: keycloak.refreshToken ?? undefined,
67
+ idToken: keycloak.idToken ?? undefined,
68
+ });
69
+ return keycloak.token;
70
+ }
71
+ return token || '';
72
+ }
73
+ catch (error) {
74
+ console.error('[TokenContext] Update token error:', error);
75
+ throw error;
76
+ }
77
+ }, [keycloak, isInitialized, token]);
78
+ const clearTokens = useCallback(async () => {
79
+ setToken(null);
80
+ setRefreshToken(null);
81
+ setIdToken(null);
82
+ await tokenStorage.clearTokens();
83
+ if (keycloak) {
84
+ keycloak.clearToken();
85
+ }
86
+ }, [keycloak]);
87
+ const isExpired = useMemo(() => {
88
+ if (!keycloak || !token)
89
+ return true;
90
+ if (!keycloak.token || !keycloak.tokenParsed)
91
+ return true;
92
+ try {
93
+ return keycloak.isTokenExpired();
94
+ }
95
+ catch {
96
+ return true;
97
+ }
98
+ }, [keycloak, token]);
99
+ const value = useMemo(() => ({
100
+ token,
101
+ refreshToken,
102
+ idToken,
103
+ isExpired,
104
+ updateToken,
105
+ clearTokens,
106
+ }), [token, refreshToken, idToken, isExpired, updateToken, clearTokens]);
107
+ return <TokenContext.Provider value={value}>{children}</TokenContext.Provider>;
108
+ });
109
+ TokenProvider.displayName = 'TokenProvider';
110
+ export const useToken = () => {
111
+ const context = useContext(TokenContext);
112
+ if (!context) {
113
+ throw new Error('useToken must be used within TokenProvider');
114
+ }
115
+ return context;
116
+ };
117
+ //# sourceMappingURL=TokenContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenContext.js","sourceRoot":"","sources":["../../src/context/TokenContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export { KeycloakProvider } from './KeycloakProvider';
2
+ export type { KeycloakProviderProps } from './KeycloakProvider';
3
+ export type { KeycloakTokens } from '../core/types';
4
+ export { KeycloakConfigProvider, useKeycloakConfig, useKeycloakConfigRefresh, } from './KeycloakConfigContext';
5
+ export type { KeycloakConfigProviderProps } from './KeycloakConfigContext';
6
+ export { KeycloakInstanceProvider, useKeycloakInstance } from './KeycloakInstanceContext';
7
+ export type { KeycloakInstanceProviderProps } from './KeycloakInstanceContext';
8
+ export { TokenProvider, useToken } from './TokenContext';
9
+ export type { TokenProviderProps } from './TokenContext';
10
+ export { ReauthProvider, useReauth } from './ReauthContext';
11
+ export type { ReauthProviderProps } from './ReauthContext';
12
+ export { KeycloakThemeProvider, useKeycloakTheme, defaultKeycloakTheme, } from './KeycloakThemeContext';
13
+ export type { KeycloakTheme, KeycloakThemeButtonComponent, KeycloakThemeButtonProps, KeycloakThemeContextValue, KeycloakThemeFonts, KeycloakThemeColors, KeycloakThemeIconButtonComponent, KeycloakThemeIconButtonProps, KeycloakThemeLoaderComponent, KeycloakThemeProviderProps, ResolvedKeycloakThemeColors, } from './KeycloakThemeContext';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAElD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAC,wBAAwB,EAAE,mBAAmB,EAAC,MAAM,2BAA2B,CAAC;AACxF,YAAY,EAAC,6BAA6B,EAAC,MAAM,2BAA2B,CAAC;AAE7E,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACvD,YAAY,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAC,cAAc,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,aAAa,EACb,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,EAChC,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { KeycloakProvider } from './KeycloakProvider';
2
+ export { KeycloakConfigProvider, useKeycloakConfig, useKeycloakConfigRefresh, } from './KeycloakConfigContext';
3
+ export { KeycloakInstanceProvider, useKeycloakInstance } from './KeycloakInstanceContext';
4
+ export { TokenProvider, useToken } from './TokenContext';
5
+ export { ReauthProvider, useReauth } from './ReauthContext';
6
+ export { KeycloakThemeProvider, useKeycloakTheme, defaultKeycloakTheme, } from './KeycloakThemeContext';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,wBAAwB,EAAE,mBAAmB,EAAC,MAAM,2BAA2B,CAAC;AAGxF,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EAAC,cAAc,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { CallbackStorage, FetchTokenResponse, KeycloakAdapter, KeycloakConfig, KeycloakInstance, KeycloakJSON, KeycloakLoginOptions, KeycloakProfile, KeycloakRegisterOptions, OIDCProviderConfig } from '@react-keycloak/keycloak-ts';
2
+ import type { RNKeycloakInitOptions } from './types';
3
+ declare class RNAdapter implements KeycloakAdapter {
4
+ private readonly client;
5
+ constructor(client: Readonly<KeycloakInstance>, _keycloakConfig: Readonly<KeycloakConfig>, _initOptions: Readonly<RNKeycloakInitOptions>);
6
+ createCallbackStorage(): CallbackStorage;
7
+ createLoginUrl(options: KeycloakLoginOptions): string;
8
+ login(res?: KeycloakLoginOptions): Promise<void>;
9
+ logout(): Promise<void>;
10
+ register(_options?: KeycloakRegisterOptions): Promise<void>;
11
+ accountManagement(): Promise<void>;
12
+ fetchKeycloakConfigJSON(configUrl: string): Promise<KeycloakJSON>;
13
+ fetchOIDCProviderConfigJSON(oidcProviderConfigUrl: string): Promise<OIDCProviderConfig>;
14
+ fetchTokens(tokenUrl: string, params: string): Promise<FetchTokenResponse>;
15
+ refreshTokens(tokenUrl: string, params: string): Promise<FetchTokenResponse>;
16
+ fetchUserProfile(profileUrl: string, token: string): Promise<KeycloakProfile>;
17
+ fetchUserInfo(userInfoUrl: string, token: string): Promise<unknown>;
18
+ redirectUri(options?: {
19
+ redirectUri?: string;
20
+ }, _encodeHash?: boolean): string;
21
+ }
22
+ export default RNAdapter;
23
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAGnD,cAAM,SAAU,YAAW,eAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;gBAGlD,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,EACzC,YAAY,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAK/C,qBAAqB,IAAI,eAAe;IAIxC,cAAc,CAAC,OAAO,EAAE,oBAAoB;IAItC,KAAK,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjE,2BAA2B,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIvF,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY1E,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY5E,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI7E,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE,WAAW,CAAC,OAAO,CAAC,EAAE;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM;CAW7E;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,75 @@
1
+ import LocalStorage from './storage';
2
+ import { fetchJSON } from './utils';
3
+ class RNAdapter {
4
+ constructor(client, _keycloakConfig, _initOptions) {
5
+ this.client = client;
6
+ }
7
+ createCallbackStorage() {
8
+ return new LocalStorage();
9
+ }
10
+ createLoginUrl(options) {
11
+ return this.client.createLoginUrl(options);
12
+ }
13
+ async login(res) {
14
+ if (!res?.url) {
15
+ throw new Error('No URL provided for login');
16
+ }
17
+ const oauth = this.client.parseCallback(res.url);
18
+ return this.client.processCallback(oauth);
19
+ }
20
+ async logout() {
21
+ }
22
+ async register(_options) {
23
+ }
24
+ async accountManagement() {
25
+ const accountUrl = this.client.createAccountUrl();
26
+ if (typeof accountUrl !== 'undefined') {
27
+ }
28
+ else {
29
+ throw new Error('Not supported by the OIDC server');
30
+ }
31
+ }
32
+ async fetchKeycloakConfigJSON(configUrl) {
33
+ return await fetchJSON(configUrl);
34
+ }
35
+ async fetchOIDCProviderConfigJSON(oidcProviderConfigUrl) {
36
+ return await fetchJSON(oidcProviderConfigUrl);
37
+ }
38
+ async fetchTokens(tokenUrl, params) {
39
+ const tokenRes = await fetch(tokenUrl, {
40
+ method: 'POST',
41
+ headers: {
42
+ 'Content-type': 'application/x-www-form-urlencoded',
43
+ },
44
+ body: params,
45
+ });
46
+ return (await tokenRes.json());
47
+ }
48
+ async refreshTokens(tokenUrl, params) {
49
+ const tokenRes = await fetch(tokenUrl, {
50
+ method: 'POST',
51
+ headers: {
52
+ 'Content-type': 'application/x-www-form-urlencoded',
53
+ },
54
+ body: params,
55
+ });
56
+ return (await tokenRes.json());
57
+ }
58
+ async fetchUserProfile(profileUrl, token) {
59
+ return await fetchJSON(profileUrl, token);
60
+ }
61
+ async fetchUserInfo(userInfoUrl, token) {
62
+ return await fetchJSON(userInfoUrl, token);
63
+ }
64
+ redirectUri(options, _encodeHash) {
65
+ if (options && options.redirectUri) {
66
+ return options.redirectUri;
67
+ }
68
+ if (this.client.redirectUri) {
69
+ return this.client.redirectUri;
70
+ }
71
+ return '';
72
+ }
73
+ }
74
+ export default RNAdapter;
75
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { KeycloakClient } from '@react-keycloak/keycloak-ts';
2
+ import type { RNKeycloakInitOptions } from './types';
3
+ declare class KeycloakReactNativeClient extends KeycloakClient {
4
+ init(initOptions: RNKeycloakInitOptions): Promise<boolean>;
5
+ }
6
+ export default KeycloakReactNativeClient;
7
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAG3D,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAMnD,cAAM,yBAA0B,SAAQ,cAAc;IACvC,IAAI,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;CAMxE;AAED,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { KeycloakClient } from '@react-keycloak/keycloak-ts';
2
+ import RNAdapter from './adapter';
3
+ class KeycloakReactNativeClient extends KeycloakClient {
4
+ async init(initOptions) {
5
+ return super.init({
6
+ ...initOptions,
7
+ adapter: RNAdapter,
8
+ });
9
+ }
10
+ }
11
+ export default KeycloakReactNativeClient;
12
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAE3D,OAAO,SAAS,MAAM,WAAW,CAAC;AAOlC,MAAM,yBAA0B,SAAQ,cAAc;IAC7C,KAAK,CAAC,IAAI,CAAC,WAAkC;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC;YAChB,GAAG,WAAW;YACd,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import KeycloakReactNativeClient from './client';
2
+ export { KeycloakReactNativeClient };
3
+ export { LocalStorage } from './storage';
4
+ export type { KeycloakConfig, KeycloakConfigWith2FA, RNKeycloakInitOptions, KeycloakLoginOptions, TokenUpdateResult, KeycloakProfile, AuthState, } from './types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,UAAU,CAAC;AAMjD,OAAO,EAAC,yBAAyB,EAAC,CAAC;AACnC,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,SAAS,GACV,MAAM,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ import KeycloakReactNativeClient from './client';
2
+ export { KeycloakReactNativeClient };
3
+ export { LocalStorage } from './storage';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,UAAU,CAAC;AAMjD,OAAO,EAAC,yBAAyB,EAAC,CAAC;AACnC,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { CallbackState, CallbackStorage } from '@react-keycloak/keycloak-ts';
2
+ declare class LocalStorage implements CallbackStorage {
3
+ private storage;
4
+ get(state?: string): CallbackState | undefined;
5
+ add(state: CallbackState): void;
6
+ private clearExpired;
7
+ }
8
+ export default LocalStorage;
9
+ export { LocalStorage };
10
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/core/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAEhF,cAAM,YAAa,YAAW,eAAe;IAC3C,OAAO,CAAC,OAAO,CAAoC;IAEnD,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAe9C,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAU/B,OAAO,CAAC,YAAY;CAYrB;AAED,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAC,YAAY,EAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ class LocalStorage {
2
+ constructor() {
3
+ this.storage = new Map();
4
+ }
5
+ get(state) {
6
+ if (!state) {
7
+ return;
8
+ }
9
+ const key = `kc-callback-${state}`;
10
+ let value;
11
+ if (this.storage.has(key)) {
12
+ value = this.storage.get(key);
13
+ }
14
+ this.clearExpired();
15
+ return value;
16
+ }
17
+ add(state) {
18
+ this.clearExpired();
19
+ const key = `kc-callback-${state.state}`;
20
+ this.storage.set(key, {
21
+ ...state,
22
+ expires: new Date().getTime() + 60 * 60 * 1000,
23
+ });
24
+ }
25
+ clearExpired() {
26
+ const time = new Date().getTime();
27
+ Array.from(this.storage.entries())
28
+ .filter(([key, state]) => key.startsWith('kc-callback-') && (!state.expires || state.expires < time))
29
+ .map(([key]) => key)
30
+ .forEach(keyToRemove => {
31
+ this.storage.delete(keyToRemove);
32
+ });
33
+ }
34
+ }
35
+ export default LocalStorage;
36
+ export { LocalStorage };
37
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/core/storage.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY;IAAlB;QACU,YAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAuCrD,CAAC;IArCC,GAAG,CAAC,KAAc;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,eAAe,KAAK,EAAE,CAAC;QACnC,IAAI,KAAgC,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,KAAoB;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,MAAM,GAAG,GAAG,eAAe,KAAK,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACpB,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;SAC/C,CAAC,CAAC;IACL,CAAC;IAEO,YAAY;QAClB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAElC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aAC/B,MAAM,CACL,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAC7F;aACA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;aACnB,OAAO,CAAC,WAAW,CAAC,EAAE;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;CACF;AAED,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAC,YAAY,EAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { KeycloakConfig, KeycloakInitOptions, KeycloakLoginOptions, KeycloakProfile } from '@react-keycloak/keycloak-ts';
2
+ export type { KeycloakConfig, KeycloakLoginOptions, KeycloakProfile };
3
+ export interface KeycloakConfigWith2FA extends KeycloakConfig {
4
+ clientId2fa?: string;
5
+ }
6
+ export interface RNKeycloakInitOptions extends KeycloakInitOptions {
7
+ redirectUri?: string;
8
+ onAuthError?: (errorData: {
9
+ error: unknown;
10
+ error_description?: string;
11
+ }) => void;
12
+ onReady?: (authenticated?: boolean) => void;
13
+ }
14
+ export interface TokenUpdateResult {
15
+ token: string;
16
+ refreshToken?: string;
17
+ idToken?: string;
18
+ }
19
+ export interface KeycloakTokens {
20
+ token: string | null;
21
+ refreshToken: string | null;
22
+ idToken: string | null;
23
+ }
24
+ export interface AuthState {
25
+ isAuthenticated: boolean;
26
+ token: string | null;
27
+ refreshToken: string | null;
28
+ idToken: string | null;
29
+ profile: KeycloakProfile | null;
30
+ }
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EAAC,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAC,CAAC;AAQpE,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAE3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAEhE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;IAEhF,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAKD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAKD,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function fetchJSON<T>(url: string, token?: string): Promise<T>;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAS1E"}
@@ -0,0 +1,10 @@
1
+ export async function fetchJSON(url, token) {
2
+ const jsonRes = await fetch(url, {
3
+ headers: {
4
+ Accept: 'application/json',
5
+ Authorization: token ? `Bearer ${token}` : '',
6
+ },
7
+ });
8
+ return (await jsonRes.json());
9
+ }
10
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,GAAW,EAAE,KAAc;IAC5D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC/B,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;SAC9C;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAM,CAAC;AACrC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { useKeycloakAuth } from './useKeycloakAuth';
2
+ export type { UseKeycloakAuthResult } from './useKeycloakAuth';
3
+ export { useKeycloakAuthScreen } from './useKeycloakAuthScreen';
4
+ export type { KeycloakAuthScreen, UseKeycloakAuthScreenOptions, UseKeycloakAuthScreenResult, } from './useKeycloakAuthScreen';
5
+ export { useKeycloakConfig } from '../context/KeycloakConfigContext';
6
+ export { useKeycloakInstance } from '../context/KeycloakInstanceContext';
7
+ export { useToken } from '../context/TokenContext';
8
+ export { useReauth } from '../context/ReauthContext';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EACV,kBAAkB,EAClB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { useKeycloakAuth } from './useKeycloakAuth';
2
+ export { useKeycloakAuthScreen } from './useKeycloakAuthScreen';
3
+ export { useKeycloakConfig } from '../context/KeycloakConfigContext';
4
+ export { useKeycloakInstance } from '../context/KeycloakInstanceContext';
5
+ export { useToken } from '../context/TokenContext';
6
+ export { useReauth } from '../context/ReauthContext';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAQ9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { useKeycloakInstance } from '../context';
2
+ import type { KeycloakLoginOptions, KeycloakProfile } from '../core';
3
+ export interface UseKeycloakAuthResult {
4
+ keycloak: ReturnType<typeof useKeycloakInstance>['keycloak'];
5
+ isInitialized: boolean;
6
+ isLoading: boolean;
7
+ error: Error | null;
8
+ token: string | null;
9
+ isExpired: boolean;
10
+ isAuthenticated: boolean;
11
+ updateToken: (minValidity?: number) => Promise<string>;
12
+ login: (options: KeycloakLoginOptions) => Promise<void>;
13
+ logout: () => Promise<void>;
14
+ loadUserProfile: () => Promise<KeycloakProfile>;
15
+ createLoginUrl: (options?: KeycloakLoginOptions) => string;
16
+ createLogoutUrl: (redirectUri?: string) => string;
17
+ clearTokens: () => Promise<void>;
18
+ isReauthRequired: boolean;
19
+ showReauth: () => void;
20
+ hideReauth: () => void;
21
+ }
22
+ export declare const useKeycloakAuth: () => UseKeycloakAuthResult;
23
+ //# sourceMappingURL=useKeycloakAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeycloakAuth.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeycloakAuth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,mBAAmB,EAAsB,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAC,oBAAoB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAC;AAGnE,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC;IAE7D,aAAa,EAAE,OAAO,CAAC;IAEvB,SAAS,EAAE,OAAO,CAAC;IAEnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,SAAS,EAAE,OAAO,CAAC;IAEnB,eAAe,EAAE,OAAO,CAAC;IAEzB,WAAW,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD,KAAK,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,eAAe,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAEhD,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,MAAM,CAAC;IAE3D,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAElD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAMD,eAAO,MAAM,eAAe,QAAO,qBAwElC,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { useCallback } from 'react';
2
+ import { useKeycloakInstance, useReauth, useToken } from '../context';
3
+ import { tokenStorage } from '../storage';
4
+ export const useKeycloakAuth = () => {
5
+ const { keycloak, isInitialized, isLoading, error, redirectUri } = useKeycloakInstance();
6
+ const { token, isExpired, updateToken, clearTokens } = useToken();
7
+ const { isReauthRequired, showReauth, hideReauth } = useReauth();
8
+ const login = useCallback(async (options) => {
9
+ if (!keycloak) {
10
+ throw new Error('[useKeycloakAuth] Keycloak not initialized');
11
+ }
12
+ await keycloak.login({ ...options, redirectUri });
13
+ if (keycloak.token) {
14
+ await tokenStorage.saveTokens({
15
+ token: keycloak.token,
16
+ refreshToken: keycloak.refreshToken ?? undefined,
17
+ idToken: keycloak.idToken ?? undefined,
18
+ });
19
+ }
20
+ }, [keycloak, redirectUri]);
21
+ const logout = useCallback(async () => {
22
+ if (!keycloak) {
23
+ throw new Error('[useKeycloakAuth] Keycloak not initialized');
24
+ }
25
+ await keycloak.logout();
26
+ await clearTokens();
27
+ }, [keycloak, clearTokens]);
28
+ const loadUserProfile = useCallback(async () => {
29
+ if (!keycloak) {
30
+ throw new Error('[useKeycloakAuth] Keycloak not initialized');
31
+ }
32
+ return await keycloak.loadUserProfile();
33
+ }, [keycloak]);
34
+ const createLoginUrl = useCallback(() => {
35
+ if (!keycloak) {
36
+ throw new Error('[useKeycloakAuth] Keycloak not initialized');
37
+ }
38
+ return keycloak.createLoginUrl({ redirectUri });
39
+ }, [keycloak, redirectUri]);
40
+ const createLogoutUrl = useCallback(() => {
41
+ if (!keycloak) {
42
+ throw new Error('[useKeycloakAuth] Keycloak not initialized');
43
+ }
44
+ return keycloak.createLogoutUrl({ redirectUri });
45
+ }, [keycloak, redirectUri]);
46
+ const isAuthenticated = Boolean(keycloak?.authenticated && token && !isExpired);
47
+ return {
48
+ keycloak,
49
+ isInitialized,
50
+ isLoading,
51
+ error,
52
+ token,
53
+ isExpired,
54
+ isAuthenticated,
55
+ updateToken,
56
+ login,
57
+ logout,
58
+ loadUserProfile,
59
+ createLoginUrl,
60
+ createLogoutUrl,
61
+ clearTokens,
62
+ isReauthRequired,
63
+ showReauth,
64
+ hideReauth,
65
+ };
66
+ };
67
+ //# sourceMappingURL=useKeycloakAuth.js.map