@multiplatform.one/keycloak 3.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/dist/cjs/Authenticated.cjs +83 -0
  2. package/dist/cjs/Authenticated.js +10 -6
  3. package/dist/cjs/Authenticated.js.map +1 -1
  4. package/dist/cjs/Authenticated.native.js +9 -24
  5. package/dist/cjs/Authenticated.native.js.map +3 -3
  6. package/dist/cjs/Loading.cjs +39 -0
  7. package/dist/cjs/Loading.js +25 -0
  8. package/dist/cjs/Loading.js.map +6 -0
  9. package/dist/cjs/Loading.native.js +32 -0
  10. package/dist/cjs/Loading.native.js.map +6 -0
  11. package/dist/cjs/authConfig.cjs +29 -0
  12. package/dist/cjs/authConfig.js +0 -1
  13. package/dist/cjs/authConfig.js.map +1 -1
  14. package/dist/cjs/authConfig.native.js +1 -1
  15. package/dist/cjs/authConfig.native.js.map +2 -2
  16. package/dist/cjs/hooks/index.cjs +20 -0
  17. package/dist/cjs/hooks/index.js +1 -1
  18. package/dist/cjs/hooks/index.js.map +1 -1
  19. package/dist/cjs/hooks/index.native.js +3 -2
  20. package/dist/cjs/hooks/index.native.js.map +2 -2
  21. package/dist/cjs/hooks/useAuthConfig.cjs +30 -0
  22. package/dist/cjs/hooks/useAuthConfig.native.js +1 -0
  23. package/dist/cjs/hooks/useAuthConfig.native.js.map +2 -2
  24. package/dist/cjs/hooks/useTokensFromQuery/index.cjs +35 -0
  25. package/dist/cjs/hooks/useTokensFromQuery/index.js +7 -5
  26. package/dist/cjs/hooks/useTokensFromQuery/index.js.map +1 -1
  27. package/dist/cjs/hooks/useTokensFromQuery/index.native.js +1 -0
  28. package/dist/cjs/hooks/useTokensFromQuery/index.native.js.map +2 -2
  29. package/dist/cjs/hooks/useTokensFromState.cjs +31 -0
  30. package/dist/cjs/hooks/useTokensFromState.js +5 -4
  31. package/dist/cjs/hooks/useTokensFromState.js.map +1 -1
  32. package/dist/cjs/hooks/useTokensFromState.native.js +7 -5
  33. package/dist/cjs/hooks/useTokensFromState.native.js.map +3 -3
  34. package/dist/cjs/index.cjs +24 -0
  35. package/dist/cjs/index.js +9 -9
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/cjs/index.native.js +12 -11
  38. package/dist/cjs/index.native.js.map +2 -2
  39. package/dist/cjs/keycloak/base.cjs +90 -0
  40. package/dist/cjs/keycloak/base.js +90 -0
  41. package/dist/cjs/keycloak/base.js.map +6 -0
  42. package/dist/cjs/keycloak/base.native.js +135 -0
  43. package/dist/cjs/keycloak/base.native.js.map +6 -0
  44. package/dist/cjs/keycloak/config.cjs +31 -0
  45. package/dist/cjs/keycloak/config.js +0 -1
  46. package/dist/cjs/keycloak/config.js.map +1 -1
  47. package/dist/cjs/keycloak/config.native.js +1 -1
  48. package/dist/cjs/keycloak/config.native.js.map +2 -2
  49. package/dist/cjs/keycloak/context.cjs +27 -0
  50. package/dist/cjs/keycloak/context.js +0 -1
  51. package/dist/cjs/keycloak/context.js.map +1 -1
  52. package/dist/cjs/keycloak/context.native.js +1 -1
  53. package/dist/cjs/keycloak/context.native.js.map +2 -2
  54. package/dist/cjs/keycloak/index.cjs +131 -0
  55. package/dist/cjs/keycloak/index.electron.cjs +30 -0
  56. package/dist/cjs/{session/session.js → keycloak/index.electron.js} +11 -16
  57. package/dist/cjs/keycloak/index.electron.js.map +6 -0
  58. package/dist/cjs/keycloak/index.electron.native.js +88 -0
  59. package/dist/cjs/keycloak/index.electron.native.js.map +6 -0
  60. package/dist/cjs/keycloak/index.js +86 -2
  61. package/dist/cjs/keycloak/index.js.map +2 -2
  62. package/dist/cjs/keycloak/index.native.js +87 -8
  63. package/dist/cjs/keycloak/index.native.js.map +3 -3
  64. package/dist/cjs/one.cjs +121 -0
  65. package/dist/cjs/{routes.js → one.js} +47 -62
  66. package/dist/cjs/one.js.map +6 -0
  67. package/dist/cjs/one.native.js +125 -0
  68. package/dist/cjs/one.native.js.map +6 -0
  69. package/dist/cjs/provider/AfterAuth.cjs +57 -0
  70. package/dist/cjs/provider/AfterAuth.js +22 -15
  71. package/dist/cjs/provider/AfterAuth.js.map +1 -1
  72. package/dist/cjs/provider/AfterAuth.native.js +22 -9
  73. package/dist/cjs/provider/AfterAuth.native.js.map +3 -3
  74. package/dist/cjs/provider/AuthProvider/index.cjs +223 -0
  75. package/dist/cjs/provider/AuthProvider/index.electron.cjs +223 -0
  76. package/dist/cjs/provider/AuthProvider/index.electron.js +243 -0
  77. package/dist/cjs/provider/AuthProvider/index.electron.js.map +6 -0
  78. package/dist/cjs/provider/AuthProvider/index.electron.native.js +300 -0
  79. package/dist/cjs/provider/AuthProvider/index.electron.native.js.map +6 -0
  80. package/dist/cjs/provider/AuthProvider/index.js +230 -5
  81. package/dist/cjs/provider/AuthProvider/index.js.map +3 -3
  82. package/dist/cjs/provider/AuthProvider/index.native.js +185 -7
  83. package/dist/cjs/provider/AuthProvider/index.native.js.map +3 -3
  84. package/dist/cjs/provider/AuthProvider/shared.cjs +36 -0
  85. package/dist/cjs/provider/AuthProvider/shared.js +30 -0
  86. package/dist/cjs/provider/AuthProvider/shared.js.map +6 -0
  87. package/dist/cjs/provider/AuthProvider/shared.native.js +40 -0
  88. package/dist/cjs/provider/AuthProvider/shared.native.js.map +6 -0
  89. package/dist/cjs/provider/KeycloakProvider.cjs +60 -0
  90. package/dist/cjs/provider/KeycloakProvider.js +8 -5
  91. package/dist/cjs/provider/KeycloakProvider.js.map +1 -1
  92. package/dist/cjs/provider/KeycloakProvider.native.js +6 -7
  93. package/dist/cjs/provider/KeycloakProvider.native.js.map +3 -3
  94. package/dist/cjs/provider/index.cjs +20 -0
  95. package/dist/cjs/provider/index.native.js +1 -0
  96. package/dist/cjs/provider/index.native.js.map +2 -2
  97. package/dist/cjs/session/index.cjs +36 -0
  98. package/dist/cjs/session/index.js +18 -3
  99. package/dist/cjs/session/index.js.map +2 -2
  100. package/dist/cjs/session/index.native.js +21 -7
  101. package/dist/cjs/session/index.native.js.map +3 -3
  102. package/dist/cjs/state.cjs +37 -0
  103. package/dist/cjs/state.js +10 -14
  104. package/dist/cjs/state.js.map +1 -1
  105. package/dist/cjs/state.native.js +21 -11
  106. package/dist/cjs/state.native.js.map +3 -3
  107. package/dist/cjs/token.cjs +36 -0
  108. package/dist/cjs/token.js.map +1 -1
  109. package/dist/cjs/token.native.js +2 -1
  110. package/dist/cjs/token.native.js.map +2 -2
  111. package/dist/cjs/types.cjs +16 -0
  112. package/dist/cjs/types.native.js +1 -0
  113. package/dist/cjs/types.native.js.map +2 -2
  114. package/dist/esm/Authenticated.js +11 -7
  115. package/dist/esm/Authenticated.js.map +1 -1
  116. package/dist/esm/Authenticated.mjs +7 -7
  117. package/dist/esm/Authenticated.mjs.map +1 -0
  118. package/dist/esm/Authenticated.native.js +10 -26
  119. package/dist/esm/Authenticated.native.js.map +3 -3
  120. package/dist/esm/Loading.js +11 -0
  121. package/dist/esm/Loading.js.map +6 -0
  122. package/dist/esm/Loading.mjs +16 -0
  123. package/dist/esm/Loading.mjs.map +1 -0
  124. package/dist/esm/Loading.native.js +13 -0
  125. package/dist/esm/Loading.native.js.map +6 -0
  126. package/dist/esm/authConfig.js +0 -1
  127. package/dist/esm/authConfig.js.map +1 -1
  128. package/dist/esm/authConfig.mjs +2 -3
  129. package/dist/esm/authConfig.mjs.map +1 -0
  130. package/dist/esm/authConfig.native.js +0 -1
  131. package/dist/esm/authConfig.native.js.map +2 -2
  132. package/dist/esm/hooks/index.js +1 -1
  133. package/dist/esm/hooks/index.mjs +2 -1
  134. package/dist/esm/hooks/index.mjs.map +1 -0
  135. package/dist/esm/hooks/index.native.js +1 -1
  136. package/dist/esm/hooks/index.native.js.map +1 -1
  137. package/dist/esm/hooks/useAuthConfig.mjs +2 -1
  138. package/dist/esm/hooks/useAuthConfig.mjs.map +1 -0
  139. package/dist/esm/hooks/useAuthConfig.native.js.map +1 -1
  140. package/dist/esm/hooks/useTokensFromQuery/index.js +8 -6
  141. package/dist/esm/hooks/useTokensFromQuery/index.js.map +1 -1
  142. package/dist/esm/hooks/useTokensFromQuery/index.mjs +9 -11
  143. package/dist/esm/hooks/useTokensFromQuery/index.mjs.map +1 -0
  144. package/dist/esm/hooks/useTokensFromQuery/index.native.js.map +1 -1
  145. package/dist/esm/hooks/useTokensFromState.js +6 -5
  146. package/dist/esm/hooks/useTokensFromState.js.map +1 -1
  147. package/dist/esm/hooks/useTokensFromState.mjs +6 -5
  148. package/dist/esm/hooks/useTokensFromState.mjs.map +1 -0
  149. package/dist/esm/hooks/useTokensFromState.native.js +6 -5
  150. package/dist/esm/hooks/useTokensFromState.native.js.map +3 -3
  151. package/dist/esm/index.js +2 -2
  152. package/dist/esm/index.mjs +4 -3
  153. package/dist/esm/index.mjs.map +1 -0
  154. package/dist/esm/index.native.js +2 -2
  155. package/dist/esm/index.native.js.map +1 -1
  156. package/dist/esm/keycloak/base.js +77 -0
  157. package/dist/esm/keycloak/base.js.map +6 -0
  158. package/dist/esm/keycloak/base.mjs +66 -0
  159. package/dist/esm/keycloak/base.mjs.map +1 -0
  160. package/dist/esm/keycloak/base.native.js +116 -0
  161. package/dist/esm/keycloak/base.native.js.map +6 -0
  162. package/dist/esm/keycloak/config.js +0 -1
  163. package/dist/esm/keycloak/config.js.map +1 -1
  164. package/dist/esm/keycloak/config.mjs +2 -3
  165. package/dist/esm/keycloak/config.mjs.map +1 -0
  166. package/dist/esm/keycloak/config.native.js +0 -1
  167. package/dist/esm/keycloak/config.native.js.map +2 -2
  168. package/dist/esm/keycloak/context.js +0 -1
  169. package/dist/esm/keycloak/context.js.map +1 -1
  170. package/dist/esm/keycloak/context.mjs +2 -3
  171. package/dist/esm/keycloak/context.mjs.map +1 -0
  172. package/dist/esm/keycloak/context.native.js +0 -1
  173. package/dist/esm/keycloak/context.native.js.map +2 -2
  174. package/dist/esm/keycloak/index.electron.js +9 -0
  175. package/dist/esm/keycloak/index.electron.js.map +6 -0
  176. package/dist/esm/keycloak/index.electron.mjs +6 -0
  177. package/dist/esm/keycloak/index.electron.mjs.map +1 -0
  178. package/dist/esm/keycloak/index.electron.native.js +65 -0
  179. package/dist/esm/keycloak/index.electron.native.js.map +6 -0
  180. package/dist/esm/keycloak/index.js +96 -1
  181. package/dist/esm/keycloak/index.js.map +1 -1
  182. package/dist/esm/keycloak/index.mjs +104 -1
  183. package/dist/esm/keycloak/index.mjs.map +1 -0
  184. package/dist/esm/keycloak/index.native.js +80 -2
  185. package/dist/esm/keycloak/index.native.js.map +3 -3
  186. package/dist/esm/one.js +96 -0
  187. package/dist/esm/one.js.map +6 -0
  188. package/dist/esm/one.mjs +87 -0
  189. package/dist/esm/one.mjs.map +1 -0
  190. package/dist/esm/one.native.js +98 -0
  191. package/dist/esm/one.native.js.map +6 -0
  192. package/dist/esm/provider/AfterAuth.js +21 -12
  193. package/dist/esm/provider/AfterAuth.js.map +1 -1
  194. package/dist/esm/provider/AfterAuth.mjs +19 -14
  195. package/dist/esm/provider/AfterAuth.mjs.map +1 -0
  196. package/dist/esm/provider/AfterAuth.native.js +32 -19
  197. package/dist/esm/provider/AfterAuth.native.js.map +3 -3
  198. package/dist/esm/provider/AuthProvider/index.electron.js +230 -0
  199. package/dist/esm/provider/AuthProvider/index.electron.js.map +6 -0
  200. package/dist/esm/provider/AuthProvider/index.electron.mjs +189 -0
  201. package/dist/esm/provider/AuthProvider/index.electron.mjs.map +1 -0
  202. package/dist/esm/provider/AuthProvider/index.electron.native.js +282 -0
  203. package/dist/esm/provider/AuthProvider/index.electron.native.js.map +6 -0
  204. package/dist/esm/provider/AuthProvider/index.js +227 -1
  205. package/dist/esm/provider/AuthProvider/index.js.map +3 -3
  206. package/dist/esm/provider/AuthProvider/index.mjs +189 -1
  207. package/dist/esm/provider/AuthProvider/index.mjs.map +1 -0
  208. package/dist/esm/provider/AuthProvider/index.native.js +185 -2
  209. package/dist/esm/provider/AuthProvider/index.native.js.map +3 -3
  210. package/dist/esm/provider/AuthProvider/shared.js +14 -0
  211. package/dist/esm/provider/AuthProvider/shared.js.map +6 -0
  212. package/dist/esm/provider/AuthProvider/shared.mjs +11 -0
  213. package/dist/esm/provider/AuthProvider/shared.mjs.map +1 -0
  214. package/dist/esm/provider/AuthProvider/shared.native.js +17 -0
  215. package/dist/esm/provider/AuthProvider/shared.native.js.map +6 -0
  216. package/dist/esm/provider/KeycloakProvider.js +9 -6
  217. package/dist/esm/provider/KeycloakProvider.js.map +1 -1
  218. package/dist/esm/provider/KeycloakProvider.mjs +10 -12
  219. package/dist/esm/provider/KeycloakProvider.mjs.map +1 -0
  220. package/dist/esm/provider/KeycloakProvider.native.js +6 -8
  221. package/dist/esm/provider/KeycloakProvider.native.js.map +3 -3
  222. package/dist/esm/provider/index.mjs +3 -2
  223. package/dist/esm/provider/index.mjs.map +1 -0
  224. package/dist/esm/provider/index.native.js.map +1 -1
  225. package/dist/esm/session/index.js +14 -1
  226. package/dist/esm/session/index.js.map +1 -1
  227. package/dist/esm/session/index.mjs +13 -1
  228. package/dist/esm/session/index.mjs.map +1 -0
  229. package/dist/esm/session/index.native.js +11 -2
  230. package/dist/esm/session/index.native.js.map +3 -3
  231. package/dist/esm/state.js +11 -15
  232. package/dist/esm/state.js.map +1 -1
  233. package/dist/esm/state.mjs +12 -15
  234. package/dist/esm/state.mjs.map +1 -0
  235. package/dist/esm/state.native.js +20 -12
  236. package/dist/esm/state.native.js.map +3 -3
  237. package/dist/esm/token.js.map +1 -1
  238. package/dist/esm/token.mjs +2 -1
  239. package/dist/esm/token.mjs.map +1 -0
  240. package/dist/esm/token.native.js +1 -1
  241. package/dist/esm/token.native.js.map +2 -2
  242. package/dist/esm/types.mjs +2 -0
  243. package/dist/esm/types.mjs.map +1 -0
  244. package/dist/jsx/Authenticated.js +11 -7
  245. package/dist/jsx/Authenticated.js.map +1 -1
  246. package/dist/jsx/Authenticated.mjs +7 -7
  247. package/dist/jsx/Authenticated.mjs.map +1 -0
  248. package/dist/jsx/Authenticated.native.js +9 -25
  249. package/dist/jsx/Authenticated.native.js.map +3 -3
  250. package/dist/jsx/Loading.js +11 -0
  251. package/dist/jsx/Loading.js.map +6 -0
  252. package/dist/jsx/Loading.mjs +16 -0
  253. package/dist/jsx/Loading.mjs.map +1 -0
  254. package/dist/jsx/Loading.native.js +13 -0
  255. package/dist/jsx/Loading.native.js.map +6 -0
  256. package/dist/jsx/authConfig.js +0 -1
  257. package/dist/jsx/authConfig.js.map +1 -1
  258. package/dist/jsx/authConfig.mjs +2 -3
  259. package/dist/jsx/authConfig.mjs.map +1 -0
  260. package/dist/jsx/authConfig.native.js +0 -1
  261. package/dist/jsx/authConfig.native.js.map +2 -2
  262. package/dist/jsx/hooks/index.js +1 -1
  263. package/dist/jsx/hooks/index.mjs +2 -1
  264. package/dist/jsx/hooks/index.mjs.map +1 -0
  265. package/dist/jsx/hooks/index.native.js +1 -1
  266. package/dist/jsx/hooks/index.native.js.map +1 -1
  267. package/dist/jsx/hooks/useAuthConfig.mjs +2 -1
  268. package/dist/jsx/hooks/useAuthConfig.mjs.map +1 -0
  269. package/dist/jsx/hooks/useAuthConfig.native.js.map +1 -1
  270. package/dist/jsx/hooks/useTokensFromQuery/index.js +8 -6
  271. package/dist/jsx/hooks/useTokensFromQuery/index.js.map +1 -1
  272. package/dist/jsx/hooks/useTokensFromQuery/index.mjs +9 -11
  273. package/dist/jsx/hooks/useTokensFromQuery/index.mjs.map +1 -0
  274. package/dist/jsx/hooks/useTokensFromQuery/index.native.js.map +1 -1
  275. package/dist/jsx/hooks/useTokensFromState.js +6 -5
  276. package/dist/jsx/hooks/useTokensFromState.js.map +1 -1
  277. package/dist/jsx/hooks/useTokensFromState.mjs +6 -5
  278. package/dist/jsx/hooks/useTokensFromState.mjs.map +1 -0
  279. package/dist/jsx/hooks/useTokensFromState.native.js +6 -5
  280. package/dist/jsx/hooks/useTokensFromState.native.js.map +3 -3
  281. package/dist/jsx/index.js +2 -2
  282. package/dist/jsx/index.mjs +4 -3
  283. package/dist/jsx/index.mjs.map +1 -0
  284. package/dist/jsx/index.native.js +2 -2
  285. package/dist/jsx/index.native.js.map +1 -1
  286. package/dist/jsx/keycloak/base.js +77 -0
  287. package/dist/jsx/keycloak/base.js.map +6 -0
  288. package/dist/jsx/keycloak/base.mjs +66 -0
  289. package/dist/jsx/keycloak/base.mjs.map +1 -0
  290. package/dist/jsx/keycloak/base.native.js +116 -0
  291. package/dist/jsx/keycloak/base.native.js.map +6 -0
  292. package/dist/jsx/keycloak/config.js +0 -1
  293. package/dist/jsx/keycloak/config.js.map +1 -1
  294. package/dist/jsx/keycloak/config.mjs +2 -3
  295. package/dist/jsx/keycloak/config.mjs.map +1 -0
  296. package/dist/jsx/keycloak/config.native.js +0 -1
  297. package/dist/jsx/keycloak/config.native.js.map +2 -2
  298. package/dist/jsx/keycloak/context.js +0 -1
  299. package/dist/jsx/keycloak/context.js.map +1 -1
  300. package/dist/jsx/keycloak/context.mjs +2 -3
  301. package/dist/jsx/keycloak/context.mjs.map +1 -0
  302. package/dist/jsx/keycloak/context.native.js +0 -1
  303. package/dist/jsx/keycloak/context.native.js.map +2 -2
  304. package/dist/jsx/keycloak/index.electron.js +9 -0
  305. package/dist/jsx/keycloak/index.electron.js.map +6 -0
  306. package/dist/jsx/keycloak/index.electron.mjs +6 -0
  307. package/dist/jsx/keycloak/index.electron.mjs.map +1 -0
  308. package/dist/jsx/keycloak/index.electron.native.js +65 -0
  309. package/dist/jsx/keycloak/index.electron.native.js.map +6 -0
  310. package/dist/jsx/keycloak/index.js +96 -1
  311. package/dist/jsx/keycloak/index.js.map +1 -1
  312. package/dist/jsx/keycloak/index.mjs +104 -1
  313. package/dist/jsx/keycloak/index.mjs.map +1 -0
  314. package/dist/jsx/keycloak/index.native.js +80 -2
  315. package/dist/jsx/keycloak/index.native.js.map +3 -3
  316. package/dist/jsx/one.js +96 -0
  317. package/dist/jsx/one.js.map +6 -0
  318. package/dist/jsx/one.mjs +87 -0
  319. package/dist/jsx/one.mjs.map +1 -0
  320. package/dist/jsx/one.native.js +98 -0
  321. package/dist/jsx/one.native.js.map +6 -0
  322. package/dist/jsx/provider/AfterAuth.js +21 -12
  323. package/dist/jsx/provider/AfterAuth.js.map +1 -1
  324. package/dist/jsx/provider/AfterAuth.mjs +19 -14
  325. package/dist/jsx/provider/AfterAuth.mjs.map +1 -0
  326. package/dist/jsx/provider/AfterAuth.native.js +20 -7
  327. package/dist/jsx/provider/AfterAuth.native.js.map +3 -3
  328. package/dist/jsx/provider/AuthProvider/index.electron.js +230 -0
  329. package/dist/jsx/provider/AuthProvider/index.electron.js.map +6 -0
  330. package/dist/jsx/provider/AuthProvider/index.electron.mjs +189 -0
  331. package/dist/jsx/provider/AuthProvider/index.electron.mjs.map +1 -0
  332. package/dist/jsx/provider/AuthProvider/index.electron.native.js +282 -0
  333. package/dist/jsx/provider/AuthProvider/index.electron.native.js.map +6 -0
  334. package/dist/jsx/provider/AuthProvider/index.js +227 -1
  335. package/dist/jsx/provider/AuthProvider/index.js.map +3 -3
  336. package/dist/jsx/provider/AuthProvider/index.mjs +189 -1
  337. package/dist/jsx/provider/AuthProvider/index.mjs.map +1 -0
  338. package/dist/jsx/provider/AuthProvider/index.native.js +185 -2
  339. package/dist/jsx/provider/AuthProvider/index.native.js.map +3 -3
  340. package/dist/jsx/provider/AuthProvider/shared.js +14 -0
  341. package/dist/jsx/provider/AuthProvider/shared.js.map +6 -0
  342. package/dist/jsx/provider/AuthProvider/shared.mjs +11 -0
  343. package/dist/jsx/provider/AuthProvider/shared.mjs.map +1 -0
  344. package/dist/jsx/provider/AuthProvider/shared.native.js +17 -0
  345. package/dist/jsx/provider/AuthProvider/shared.native.js.map +6 -0
  346. package/dist/jsx/provider/KeycloakProvider.js +9 -6
  347. package/dist/jsx/provider/KeycloakProvider.js.map +1 -1
  348. package/dist/jsx/provider/KeycloakProvider.mjs +10 -12
  349. package/dist/jsx/provider/KeycloakProvider.mjs.map +1 -0
  350. package/dist/jsx/provider/KeycloakProvider.native.js +6 -8
  351. package/dist/jsx/provider/KeycloakProvider.native.js.map +3 -3
  352. package/dist/jsx/provider/index.mjs +3 -2
  353. package/dist/jsx/provider/index.mjs.map +1 -0
  354. package/dist/jsx/provider/index.native.js.map +1 -1
  355. package/dist/jsx/session/index.js +14 -1
  356. package/dist/jsx/session/index.js.map +1 -1
  357. package/dist/jsx/session/index.mjs +13 -1
  358. package/dist/jsx/session/index.mjs.map +1 -0
  359. package/dist/jsx/session/index.native.js +11 -2
  360. package/dist/jsx/session/index.native.js.map +3 -3
  361. package/dist/jsx/state.js +11 -15
  362. package/dist/jsx/state.js.map +1 -1
  363. package/dist/jsx/state.mjs +12 -15
  364. package/dist/jsx/state.mjs.map +1 -0
  365. package/dist/jsx/state.native.js +20 -12
  366. package/dist/jsx/state.native.js.map +3 -3
  367. package/dist/jsx/token.js.map +1 -1
  368. package/dist/jsx/token.mjs +2 -1
  369. package/dist/jsx/token.mjs.map +1 -0
  370. package/dist/jsx/token.native.js +1 -1
  371. package/dist/jsx/token.native.js.map +2 -2
  372. package/dist/jsx/types.mjs +2 -0
  373. package/dist/jsx/types.mjs.map +1 -0
  374. package/package.json +27 -25
  375. package/src/@types/expoKeycloakAuth.d.ts +1 -1
  376. package/src/Authenticated.tsx +38 -19
  377. package/{routes/index.js → src/Loading.tsx} +19 -4
  378. package/src/authConfig.ts +2 -3
  379. package/src/hooks/index.ts +5 -5
  380. package/src/hooks/useAuthConfig.ts +2 -2
  381. package/src/hooks/useTokensFromQuery/index.ts +13 -8
  382. package/src/hooks/useTokensFromState.ts +6 -5
  383. package/src/index.ts +9 -9
  384. package/src/keycloak/base.ts +213 -0
  385. package/src/keycloak/config.ts +5 -7
  386. package/src/keycloak/context.ts +2 -4
  387. package/{routes/index.d.ts → src/keycloak/index.electron.ts} +9 -4
  388. package/src/keycloak/index.native.ts +46 -0
  389. package/src/keycloak/index.ts +150 -3
  390. package/src/one.ts +170 -0
  391. package/src/provider/AfterAuth.tsx +46 -25
  392. package/src/provider/AuthProvider/index.electron.tsx +410 -0
  393. package/src/provider/AuthProvider/index.native.tsx +298 -0
  394. package/src/provider/AuthProvider/index.tsx +417 -0
  395. package/src/provider/AuthProvider/shared.ts +65 -0
  396. package/src/provider/KeycloakProvider.tsx +21 -24
  397. package/src/provider/index.ts +5 -5
  398. package/src/session/{session.native.ts → index.native.ts} +6 -4
  399. package/src/session/index.ts +40 -2
  400. package/src/state.ts +12 -17
  401. package/src/token.ts +9 -6
  402. package/dist/cjs/keycloak/keycloak.js +0 -121
  403. package/dist/cjs/keycloak/keycloak.js.map +0 -6
  404. package/dist/cjs/keycloak/keycloak.native.js +0 -367
  405. package/dist/cjs/keycloak/keycloak.native.js.map +0 -6
  406. package/dist/cjs/provider/AuthProvider/AuthProvider.js +0 -175
  407. package/dist/cjs/provider/AuthProvider/AuthProvider.js.map +0 -6
  408. package/dist/cjs/provider/AuthProvider/AuthProvider.native.js +0 -401
  409. package/dist/cjs/provider/AuthProvider/AuthProvider.native.js.map +0 -6
  410. package/dist/cjs/routes.js.map +0 -6
  411. package/dist/cjs/routes.native.js +0 -385
  412. package/dist/cjs/routes.native.js.map +0 -6
  413. package/dist/cjs/session/session.js.map +0 -6
  414. package/dist/cjs/session/session.native.js +0 -152
  415. package/dist/cjs/session/session.native.js.map +0 -6
  416. package/dist/esm/keycloak/keycloak.js +0 -112
  417. package/dist/esm/keycloak/keycloak.js.map +0 -6
  418. package/dist/esm/keycloak/keycloak.mjs +0 -108
  419. package/dist/esm/keycloak/keycloak.native.js +0 -350
  420. package/dist/esm/keycloak/keycloak.native.js.map +0 -6
  421. package/dist/esm/provider/AuthProvider/AuthProvider.js +0 -162
  422. package/dist/esm/provider/AuthProvider/AuthProvider.js.map +0 -6
  423. package/dist/esm/provider/AuthProvider/AuthProvider.mjs +0 -168
  424. package/dist/esm/provider/AuthProvider/AuthProvider.native.js +0 -388
  425. package/dist/esm/provider/AuthProvider/AuthProvider.native.js.map +0 -6
  426. package/dist/esm/routes.js +0 -119
  427. package/dist/esm/routes.js.map +0 -6
  428. package/dist/esm/routes.mjs +0 -109
  429. package/dist/esm/routes.native.js +0 -364
  430. package/dist/esm/routes.native.js.map +0 -6
  431. package/dist/esm/session/session.js +0 -15
  432. package/dist/esm/session/session.js.map +0 -6
  433. package/dist/esm/session/session.mjs +0 -12
  434. package/dist/esm/session/session.native.js +0 -131
  435. package/dist/esm/session/session.native.js.map +0 -6
  436. package/dist/jsx/keycloak/keycloak.js +0 -112
  437. package/dist/jsx/keycloak/keycloak.js.map +0 -6
  438. package/dist/jsx/keycloak/keycloak.mjs +0 -108
  439. package/dist/jsx/keycloak/keycloak.native.js +0 -350
  440. package/dist/jsx/keycloak/keycloak.native.js.map +0 -6
  441. package/dist/jsx/provider/AuthProvider/AuthProvider.js +0 -162
  442. package/dist/jsx/provider/AuthProvider/AuthProvider.js.map +0 -6
  443. package/dist/jsx/provider/AuthProvider/AuthProvider.mjs +0 -168
  444. package/dist/jsx/provider/AuthProvider/AuthProvider.native.js +0 -388
  445. package/dist/jsx/provider/AuthProvider/AuthProvider.native.js.map +0 -6
  446. package/dist/jsx/routes.js +0 -119
  447. package/dist/jsx/routes.js.map +0 -6
  448. package/dist/jsx/routes.mjs +0 -109
  449. package/dist/jsx/routes.native.js +0 -364
  450. package/dist/jsx/routes.native.js.map +0 -6
  451. package/dist/jsx/session/session.js +0 -15
  452. package/dist/jsx/session/session.js.map +0 -6
  453. package/dist/jsx/session/session.mjs +0 -12
  454. package/dist/jsx/session/session.native.js +0 -131
  455. package/dist/jsx/session/session.native.js.map +0 -6
  456. package/src/keycloak/keycloak.native.ts +0 -182
  457. package/src/keycloak/keycloak.ts +0 -214
  458. package/src/provider/AuthProvider/AuthProvider.native.tsx +0 -194
  459. package/src/provider/AuthProvider/AuthProvider.tsx +0 -294
  460. package/src/provider/AuthProvider/index.ts +0 -22
  461. package/src/routes.ts +0 -196
  462. package/src/session/session.ts +0 -53
  463. package/types/Authenticated.d.ts +0 -9
  464. package/types/Authenticated.d.ts.map +0 -1
  465. package/types/authConfig.d.ts +0 -10
  466. package/types/authConfig.d.ts.map +0 -1
  467. package/types/hooks/index.d.ts +0 -4
  468. package/types/hooks/index.d.ts.map +0 -1
  469. package/types/hooks/useAuthConfig.d.ts +0 -2
  470. package/types/hooks/useAuthConfig.d.ts.map +0 -1
  471. package/types/hooks/useTokensFromQuery/index.d.ts +0 -2
  472. package/types/hooks/useTokensFromQuery/index.d.ts.map +0 -1
  473. package/types/hooks/useTokensFromQuery/index.native.d.ts +0 -2
  474. package/types/hooks/useTokensFromQuery/index.native.d.ts.map +0 -1
  475. package/types/hooks/useTokensFromState.d.ts +0 -2
  476. package/types/hooks/useTokensFromState.d.ts.map +0 -1
  477. package/types/index.d.ts +0 -8
  478. package/types/index.d.ts.map +0 -1
  479. package/types/keycloak/config.d.ts +0 -8
  480. package/types/keycloak/config.d.ts.map +0 -1
  481. package/types/keycloak/context.d.ts +0 -4
  482. package/types/keycloak/context.d.ts.map +0 -1
  483. package/types/keycloak/index.d.ts +0 -3
  484. package/types/keycloak/index.d.ts.map +0 -1
  485. package/types/keycloak/keycloak.d.ts +0 -42
  486. package/types/keycloak/keycloak.d.ts.map +0 -1
  487. package/types/keycloak/keycloak.native.d.ts +0 -36
  488. package/types/keycloak/keycloak.native.d.ts.map +0 -1
  489. package/types/provider/AfterAuth.d.ts +0 -6
  490. package/types/provider/AfterAuth.d.ts.map +0 -1
  491. package/types/provider/AuthProvider/AuthProvider.d.ts +0 -21
  492. package/types/provider/AuthProvider/AuthProvider.d.ts.map +0 -1
  493. package/types/provider/AuthProvider/AuthProvider.native.d.ts +0 -4
  494. package/types/provider/AuthProvider/AuthProvider.native.d.ts.map +0 -1
  495. package/types/provider/AuthProvider/index.d.ts +0 -2
  496. package/types/provider/AuthProvider/index.d.ts.map +0 -1
  497. package/types/provider/KeycloakProvider.d.ts +0 -13
  498. package/types/provider/KeycloakProvider.d.ts.map +0 -1
  499. package/types/provider/index.d.ts +0 -4
  500. package/types/provider/index.d.ts.map +0 -1
  501. package/types/routes.d.ts +0 -31
  502. package/types/routes.d.ts.map +0 -1
  503. package/types/session/index.d.ts +0 -2
  504. package/types/session/index.d.ts.map +0 -1
  505. package/types/session/session.d.ts +0 -16
  506. package/types/session/session.d.ts.map +0 -1
  507. package/types/session/session.native.d.ts +0 -5
  508. package/types/session/session.native.d.ts.map +0 -1
  509. package/types/state.d.ts +0 -11
  510. package/types/state.d.ts.map +0 -1
  511. package/types/token.d.ts +0 -16
  512. package/types/token.d.ts.map +0 -1
  513. package/types/types.d.ts +0 -19
  514. package/types/types.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/home/dharmendraboddeda/Projects/bitspur/multiplatform.one/multiplatform.one/packages/keycloak/src/state.ts"],
4
- "mappings": "AAqBA,SAASA,qBAAqB;AAC9B,SAASC,wBAAwB;AAE1B,IAAMC,UAAUF,cAAcG,YAAa,CAACH,cAAcI,UAAU,CAACJ,cAAcK,UAElFC,WAAaL,iBACnB,QACA;EACEM,SAAS;EACTC,cAAc;EACdC,OAAO;AACT,GACAC,QACA;EAAER;AAAQ,CAAA,EARJI;AAWD,SAASK,eAAAA;AACd,SAAOL,SAAAA;AACT;",
5
- "names": ["MultiPlatform", "createStateStore", "persist", "isIframe", "isNext", "isServer", "useStore", "idToken", "refreshToken", "token", "undefined", "useAuthState"]
3
+ "sources": ["../../src/home/clayrisser/Projects/bitspur/multiplatform.one/multiplatform.one/packages/keycloak/src/state.ts"],
4
+ "mappings": "AAqBA,SAASA,sBAAsB;AAC/B,SAASC,WAAWC,YAAYC,UAAUC,gBAAgB;AAHzD,SAAA,kBAAA,UAAA,aAAA;;;;;;;;;;;;AAKM,IAAMC,UAAUF,YAAYD,cAAe,CAACD,aAAa,CAACG,UAE3DE,YAAN,SAAMA,aAAAA;;0BAAAA,UAAAA,GACJC,iBAAAA,MAAAA,WAAU,EAAA,GACVC,iBAAAA,MAAAA,gBAAe,EAAA,GACfC,iBAAAA,MAAAA,SAAQ,EAAA;GAGGC,eAAeV,eAAeM,WAAW;EACpDD;AACF,CAAA;",
5
+ "names": ["createUseStore", "isBrowser", "isElectron", "isIframe", "isServer", "persist", "AuthStore", "idToken", "refreshToken", "token", "useAuthStore"]
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/token.ts"],
4
- "mappings": "AAsBA,SAAS,iBAAiB;AAUnB,SAAS,wBAAwB,OAA0B,cAAiC;AACjG,MAAI,SAAO,QAAU;AACrB,WAAK,QACD,OAAO,SAAU,WAAiB,QAClC,eACE,iBAAiB,MAAQ,CAAC,eAAe,YAAY,IAAU,QAC5D,KAEF,eAAe,KAAK,IAAI,KAAQ,QANpB;AAOrB;AAEO,SAAS,eAAe,OAAe;AAC5C,QAAM,EAAE,IAAI,IAAI,UAAU,KAAK;AAC/B,SAAK,MACE,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI,KAAK,MADvB;AAEnB;",
4
+ "mappings": "AAqBA,SAAS,iBAAiB;AAWnB,SAAS,wBACd,OACA,cACA;AACA,MAAI,SAAO,QAAU;AACrB,WAAK,QACD,OAAO,SAAU,WAAiB,QAClC,eACE,iBAAiB,MAAQ,CAAC,eAAe,YAAY,IAAU,QAC5D,KAEF,eAAe,KAAK,IAAI,KAAQ,QANpB;AAOrB;AAEO,SAAS,eAAe,OAAe;AAC5C,QAAM,EAAE,IAAI,IAAI,UAAU,KAAK;AAC/B,SAAK,MACE,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI,KAAK,MADvB;AAEnB;",
5
5
  "names": []
6
6
  }
@@ -8,4 +8,5 @@ function isTokenExpired(token) {
8
8
  } = jwtDecode(token);
9
9
  return exp ? Math.floor(Date.now() / 1e3) >= exp : !1;
10
10
  }
11
- export { isTokenExpired, validOrRefreshableToken };
11
+ export { isTokenExpired, validOrRefreshableToken };
12
+ //# sourceMappingURL=token.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jwtDecode","validOrRefreshableToken","token","refreshToken","isTokenExpired","exp","Math","floor","Date","now"],"sources":["../../src/token.ts"],"sourcesContent":[null],"mappings":"AAqBA,SAASA,SAAA,QAAiB;AAWnB,SAASC,wBACdC,KAAA,EACAC,YAAA,EACA;EACA,IAAI,SAAOD,KAAA,GAAU,MACrB,OAAKA,KAAA,GACD,OAAOA,KAAA,IAAU,WAAiBA,KAAA,GAClCC,YAAA,GACEA,YAAA,KAAiB,MAAQ,CAACC,cAAA,CAAeD,YAAY,IAAUD,KAAA,GAC5D,KAEFE,cAAA,CAAeF,KAAK,IAAI,KAAQA,KAAA,GANpB;AAOrB;AAEO,SAASE,eAAeF,KAAA,EAAe;EAC5C,MAAM;IAAEG;EAAI,IAAIL,SAAA,CAAUE,KAAK;EAC/B,OAAKG,GAAA,GACEC,IAAA,CAAKC,KAAA,CAAMC,IAAA,CAAKC,GAAA,CAAI,IAAI,GAAI,KAAKJ,GAAA,GADvB;AAEnB","ignoreList":[]}
@@ -4,7 +4,7 @@ function validOrRefreshableToken(token, refreshToken) {
4
4
  return token ? typeof token != "string" ? token : refreshToken ? refreshToken === !0 || !isTokenExpired(refreshToken) ? token : !1 : isTokenExpired(token) ? !1 : token : !1;
5
5
  }
6
6
  function isTokenExpired(token) {
7
- var exp = jwtDecode(token).exp;
7
+ var { exp } = jwtDecode(token);
8
8
  return exp ? Math.floor(Date.now() / 1e3) >= exp : !1;
9
9
  }
10
10
  export {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/home/dharmendraboddeda/Projects/bitspur/multiplatform.one/multiplatform.one/packages/keycloak/src/token.ts"],
4
- "mappings": "AAsBA,SAASA,iBAAiB;AAUnB,SAASC,wBAAwBC,OAA0BC,cAA+B;AAC/F,MAAI,SAAOD,QAAU;AACrB,WAAKA,QACD,OAAOA,SAAU,WAAiBA,QAClCC,eACEA,iBAAiB,MAAQ,CAACC,eAAeD,YAAAA,IAAsBD,QAC5D,KAEFE,eAAeF,KAAAA,IAAS,KAAQA,QANpB;AAOrB;AAEO,SAASE,eAAeF,OAAa;AAC1C,MAAQG,MAAQL,UAAUE,KAAAA,EAAlBG;AACR,SAAKA,MACEC,KAAKC,MAAMC,KAAKC,IAAG,IAAK,GAAA,KAASJ,MADvB;AAEnB;",
3
+ "sources": ["../../src/home/clayrisser/Projects/bitspur/multiplatform.one/multiplatform.one/packages/keycloak/src/token.ts"],
4
+ "mappings": "AAqBA,SAASA,iBAAiB;AAWnB,SAASC,wBACdC,OACAC,cAA+B;AAE/B,MAAI,SAAOD,QAAU;AACrB,WAAKA,QACD,OAAOA,SAAU,WAAiBA,QAClCC,eACEA,iBAAiB,MAAQ,CAACC,eAAeD,YAAAA,IAAsBD,QAC5D,KAEFE,eAAeF,KAAAA,IAAS,KAAQA,QANpB;AAOrB;AAEO,SAASE,eAAeF,OAAa;AAC1C,MAAM,EAAEG,IAAG,IAAKL,UAAUE,KAAAA;AAC1B,SAAKG,MACEC,KAAKC,MAAMC,KAAKC,IAAG,IAAK,GAAA,KAASJ,MADvB;AAEnB;",
5
5
  "names": ["jwtDecode", "validOrRefreshableToken", "token", "refreshToken", "isTokenExpired", "exp", "Math", "floor", "Date", "now"]
6
6
  }
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
package/package.json CHANGED
@@ -1,23 +1,28 @@
1
1
  {
2
2
  "name": "@multiplatform.one/keycloak",
3
- "version": "3.0.0",
3
+ "version": "5.0.1",
4
4
  "description": "keycloak client for multiplatform.one ecosystem",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
7
7
  "module:jsx": "dist/jsx",
8
- "react-native": "src/index.ts",
8
+ "react-native": "0.74.5",
9
9
  "source": "src/index.ts",
10
10
  "types": "types/index.d.ts",
11
11
  "exports": {
12
12
  ".": {
13
+ "types": "./types/index.d.ts",
13
14
  "import": "./dist/esm/index.js",
14
- "require": "./dist/cjs/index.js",
15
- "types": "./types/index.d.ts"
15
+ "require": "./dist/cjs/index.cjs"
16
16
  },
17
- "./routes": {
18
- "import": "./dist/esm/routes.js",
19
- "require": "./dist/cjs/routes.js",
20
- "types": "./dist/esm/routes.d.ts"
17
+ "./one": {
18
+ "types": "./types/one.d.ts",
19
+ "import": "./dist/esm/one.js",
20
+ "require": "./dist/cjs/one.cjs"
21
+ },
22
+ "./emptyNextAuthReact": {
23
+ "types": "./types/emptyNextAuthReact.d.ts",
24
+ "import": "./dist/esm/emptyNextAuthReact.js",
25
+ "require": "./dist/cjs/emptyNextAuthReact.cjs"
21
26
  },
22
27
  "./package.json": "./package.json"
23
28
  },
@@ -44,25 +49,21 @@
44
49
  },
45
50
  "peerDependencies": {
46
51
  "@react-native-async-storage/async-storage": "1.21.0",
47
- "multiplatform.one": "2.1.0",
48
- "next": "^13.0.5",
49
- "react": "18.2.0",
50
- "react-native": "0.74.2"
52
+ "multiplatform.one": "5.0.1",
53
+ "react": "~18.2.0"
51
54
  },
52
55
  "devDependencies": {
53
56
  "@react-native-async-storage/async-storage": "1.23.1",
54
- "@tamagui/build": "^1.100.3",
55
- "@testing-library/jest-dom": "^6.4.6",
57
+ "@tamagui/build": "^1.121.11",
58
+ "@testing-library/jest-dom": "^6.6.3",
56
59
  "@testing-library/react": "^15.0.7",
57
60
  "@types/lodash.camelcase": "^4.3.9",
58
61
  "@types/lodash.startcase": "^4.4.9",
59
62
  "@types/react": "^18.3.1",
60
63
  "@types/react-native": "^0.73.0",
61
- "@vitejs/plugin-react": "^4.3.1",
62
- "multiplatform.one": "2.1.0",
63
- "next": "^14.2.3",
64
- "react": "18.2.0",
65
- "react-native": "0.74.2",
64
+ "@vitejs/plugin-react": "^4.3.4",
65
+ "multiplatform.one": "5.0.1",
66
+ "react": "~18.2.0",
66
67
  "typescript": "~5.3.3",
67
68
  "vitest": "^1.6.0",
68
69
  "vitest-react-native": "^0.1.5"
@@ -70,18 +71,19 @@
70
71
  "engines": {
71
72
  "node": ">=6.0.0"
72
73
  },
73
- "eslintIgnore": [
74
- "lib"
75
- ],
76
74
  "dependencies": {
77
- "@multiplatform.one/zustand": "2.0.0",
75
+ "@auth/core": "^0.36.0",
76
+ "@multiplatform.one/authjs": "5.0.1",
77
+ "@multiplatform.one/use-store": "5.0.1",
78
78
  "expo-auth-session": "^5.5.2",
79
79
  "expo-crypto": "^13.0.2",
80
80
  "jwt-decode": "^4.0.0",
81
81
  "keycloak-js": "^24.0.5",
82
- "next-auth": "^4.24.7"
82
+ "next-auth": "^4.24.11"
83
83
  },
84
84
  "scripts": {
85
- "build": "rm -rf dist types 2>/dev/null && tamagui-build"
85
+ "typecheck": "tsc --noEmit",
86
+ "build": "rm -rf dist types 2>/dev/null && tamagui-build --ts-project ./tsconfig.build.json",
87
+ "test": "vitest run --coverage --coverage.provider=v8 --coverage.reporter=text --coverage.reporter=lcov --coverage.reporter=html"
86
88
  }
87
89
  }
@@ -19,7 +19,7 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- declare module 'expo-keycloak-auth' {
22
+ declare module "expo-keycloak-auth" {
23
23
  export const KeycloakProvider: any;
24
24
  export function useKeycloak(): any;
25
25
  }
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * File: /src/Authenticated.tsx
3
3
  * Project: @multiplatform.one/keycloak
4
- * File Created: 22-06-2023 10:07:56
4
+ * File Created: 19-11-2024 20:26:31
5
5
  * Author: Clay Risser
6
6
  * -----
7
- * BitSpur (c) Copyright 2021 - 2023
7
+ * BitSpur (c) Copyright 2021 - 2024
8
8
  *
9
9
  * Licensed under the Apache License, Version 2.0 (the "License");
10
10
  * you may not use this file except in compliance with the License.
@@ -19,14 +19,12 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use client';
23
-
24
- import AsyncStorage from '@react-native-async-storage/async-storage';
25
- import React, { ComponentType, PropsWithChildren, useEffect } from 'react';
26
- import { MultiPlatform } from 'multiplatform.one';
27
- import { Text } from 'tamagui';
28
- import { useAuthConfig, useTokensFromQuery } from './hooks';
29
- import { useKeycloak } from './keycloak';
22
+ import AsyncStorage from "@react-native-async-storage/async-storage";
23
+ import { isIframe, isServer } from "multiplatform.one";
24
+ import { type ComponentType, type PropsWithChildren, useEffect } from "react";
25
+ import { Text } from "tamagui";
26
+ import { useAuthConfig, useTokensFromQuery } from "./hooks";
27
+ import { useKeycloak } from "./keycloak/index";
30
28
 
31
29
  global.AsyncStorage = AsyncStorage;
32
30
 
@@ -36,13 +34,23 @@ export interface AuthenticatedProps extends PropsWithChildren {
36
34
  loggedOutComponent?: ComponentType;
37
35
  }
38
36
 
39
- export function Authenticated({ children, disabled, loggedOutComponent, loadingComponent }: AuthenticatedProps) {
37
+ export function Authenticated({
38
+ children,
39
+ disabled,
40
+ loggedOutComponent,
41
+ loadingComponent,
42
+ }: AuthenticatedProps) {
40
43
  const authConfig = useAuthConfig();
41
44
  const keycloak = useKeycloak();
42
45
  const tokensFromQuery = useTokensFromQuery();
43
-
44
46
  useEffect(() => {
45
- if (!keycloak || MultiPlatform.isIframe || MultiPlatform.isServer || keycloak.authenticated || tokensFromQuery) {
47
+ if (
48
+ !keycloak ||
49
+ (!authConfig.iframeSso && isIframe) ||
50
+ isServer ||
51
+ keycloak.authenticated ||
52
+ tokensFromQuery
53
+ ) {
46
54
  return;
47
55
  }
48
56
  keycloak?.login({
@@ -50,20 +58,31 @@ export function Authenticated({ children, disabled, loggedOutComponent, loadingC
50
58
  });
51
59
  }, [keycloak?.authenticated]);
52
60
 
53
- if (typeof disabled === 'undefined') disabled = authConfig.disabled;
61
+ if (typeof disabled === "undefined") disabled = authConfig.disabled;
54
62
  if (disabled) return <>{children}</>;
55
- if (typeof keycloak === 'undefined') {
63
+ if (typeof keycloak === "undefined") {
56
64
  const LoadingComponent = loadingComponent;
57
- return LoadingComponent ? <LoadingComponent /> : <Text>{authConfig.debug ? 'loading' : null}</Text>;
65
+ return LoadingComponent ? (
66
+ <LoadingComponent />
67
+ ) : (
68
+ <Text>{authConfig.debug ? "loading" : null}</Text>
69
+ );
58
70
  }
59
71
  if (keycloak === null || keycloak.authenticated) return <>{children}</>;
60
72
  const LoggedOutComponent = loggedOutComponent;
61
- return LoggedOutComponent ? <LoggedOutComponent /> : <Text>{authConfig.debug ? 'not authenticated' : null}</Text>;
73
+ return LoggedOutComponent ? (
74
+ <LoggedOutComponent />
75
+ ) : (
76
+ <Text>{authConfig.debug ? "not authenticated" : null}</Text>
77
+ );
62
78
  }
63
79
 
64
- export function withAuthenticated<P extends object>(Component: ComponentType<P>) {
80
+ export function withAuthenticated<P extends object>(
81
+ Component: ComponentType<P>,
82
+ options: AuthenticatedProps = {},
83
+ ) {
65
84
  return (props: P) => (
66
- <Authenticated>
85
+ <Authenticated {...options}>
67
86
  <Component {...props} />
68
87
  </Authenticated>
69
88
  );
@@ -1,7 +1,7 @@
1
- /*
2
- * File: /routes/index.js
1
+ /**
2
+ * File: /src/Loading.tsx
3
3
  * Project: @multiplatform.one/keycloak
4
- * File Created: 04-04-2024 15:50:39
4
+ * File Created: 01-01-1970 00:00:00
5
5
  * Author: Clay Risser
6
6
  * -----
7
7
  * BitSpur (c) Copyright 2021 - 2024
@@ -19,4 +19,19 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- module.exports = require('../dist/cjs/routes.js');
22
+ import type { ComponentType } from "react";
23
+ import { Text } from "tamagui";
24
+ import { useAuthConfig } from "./hooks";
25
+
26
+ export interface LoadingProps {
27
+ loadingComponent?: ComponentType;
28
+ }
29
+
30
+ export function Loading({ loadingComponent }: LoadingProps) {
31
+ const { debug } = useAuthConfig();
32
+ const LoadingComponent = loadingComponent;
33
+ if (typeof LoadingComponent === "undefined") {
34
+ return <Text>{debug ? "loading" : null}</Text>;
35
+ }
36
+ return <LoadingComponent />;
37
+ }
package/src/authConfig.ts CHANGED
@@ -19,9 +19,7 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use client';
23
-
24
- import { createContext } from 'react';
22
+ import { createContext } from "react";
25
23
 
26
24
  export const defaultAuthConfig: AuthConfig = {};
27
25
 
@@ -30,6 +28,7 @@ export const AuthConfigContext = createContext<AuthConfig>(defaultAuthConfig);
30
28
  export interface AuthConfig {
31
29
  debug?: boolean;
32
30
  disabled?: boolean;
31
+ iframeSso?: boolean;
33
32
  loginRedirectUri?: string;
34
33
  messageHandlerKeys?: string[];
35
34
  }
@@ -1,7 +1,7 @@
1
- /*
1
+ /**
2
2
  * File: /src/hooks/index.ts
3
3
  * Project: @multiplatform.one/keycloak
4
- * File Created: 04-04-2024 15:50:39
4
+ * File Created: 19-11-2024 20:26:31
5
5
  * Author: Clay Risser
6
6
  * -----
7
7
  * BitSpur (c) Copyright 2021 - 2024
@@ -19,6 +19,6 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- export * from './useAuthConfig';
23
- export * from './useTokensFromQuery';
24
- export * from './useTokensFromState';
22
+ export * from "./useAuthConfig";
23
+ export * from "./useTokensFromQuery/index";
24
+ export * from "./useTokensFromState";
@@ -19,8 +19,8 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- import { useContext } from 'react';
23
- import { AuthConfigContext } from '../authConfig';
22
+ import { useContext } from "react";
23
+ import { AuthConfigContext } from "../authConfig";
24
24
 
25
25
  export function useAuthConfig() {
26
26
  return useContext(AuthConfigContext);
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * File: /src/hooks/useTokensFromQuery/index.ts
3
3
  * Project: @multiplatform.one/keycloak
4
- * File Created: 04-04-2024 15:50:39
4
+ * File Created: 19-11-2024 20:26:31
5
5
  * Author: Clay Risser
6
6
  * -----
7
7
  * BitSpur (c) Copyright 2021 - 2024
@@ -19,13 +19,18 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use client';
23
-
24
- import { MultiPlatform } from 'multiplatform.one';
25
- import { useRouter } from 'next/router';
22
+ import { isIframe } from "multiplatform.one";
23
+ import { useAuthConfig } from "../useAuthConfig";
26
24
 
27
25
  export function useTokensFromQuery() {
28
- if (!MultiPlatform.isIframe) return false;
29
- const { query } = MultiPlatform.isNext ? useRouter() : { query: {} };
30
- return 'idToken' in query || 'token' in query || 'refreshToken' in query;
26
+ const { iframeSso } = useAuthConfig();
27
+ if (iframeSso || !isIframe) return false;
28
+ const query = new URLSearchParams(
29
+ typeof window === "undefined" ? "" : window?.location?.search || "",
30
+ );
31
+ return (
32
+ typeof query.get("idToken") === "string" ||
33
+ typeof query.get("token") === "string" ||
34
+ typeof query.get("refreshToken") === "string"
35
+ );
31
36
  }
@@ -19,10 +19,11 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- import { useAuthState } from '../state';
23
- import { validOrRefreshableToken } from '../token';
22
+ import { useAuthStore } from "../state";
23
+ import { validOrRefreshableToken } from "../token";
24
24
 
25
- export function useTokensFromState() {
26
- const authState = useAuthState();
27
- return !!validOrRefreshableToken(authState.token, authState.refreshToken);
25
+ export function useTokensFromStore() {
26
+ const authStore = useAuthStore();
27
+ if (typeof authStore === "undefined") return undefined;
28
+ return !!validOrRefreshableToken(authStore.token, authStore.refreshToken);
28
29
  }
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
- /*
1
+ /**
2
2
  * File: /src/index.ts
3
3
  * Project: @multiplatform.one/keycloak
4
- * File Created: 01-06-2024 13:44:49
4
+ * File Created: 19-11-2024 20:26:31
5
5
  * Author: Clay Risser
6
6
  * -----
7
7
  * BitSpur (c) Copyright 2021 - 2024
@@ -19,10 +19,10 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- export * from './Authenticated';
23
- export * from './authConfig';
24
- export * from './hooks';
25
- export * from './keycloak';
26
- export * from './provider';
27
- export * from './session';
28
- export * from './types';
22
+ export * from "./Authenticated";
23
+ export * from "./authConfig";
24
+ export * from "./hooks";
25
+ export * from "./keycloak/index";
26
+ export * from "./provider";
27
+ export * from "./session/index";
28
+ export * from "./types";
@@ -0,0 +1,213 @@
1
+ /*
2
+ * File: /src/keycloak/base.ts
3
+ * Project: @multiplatform.one/keycloak
4
+ * File Created: 25-12-2024 04:55:48
5
+ * Author: Clay Risser
6
+ * -----
7
+ * BitSpur (c) Copyright 2021 - 2024
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+
22
+ import type { AuthRequestPromptOptions } from "expo-auth-session";
23
+ import { jwtDecode } from "jwt-decode";
24
+ import type KeycloakClient from "keycloak-js";
25
+ import type {
26
+ KeycloakLoginOptions as KeycloakJsLoginOptions,
27
+ KeycloakLogoutOptions as KeycloakJsLogoutOptions,
28
+ } from "keycloak-js";
29
+ import { useContext } from "react";
30
+ import { useAuthConfig } from "../hooks";
31
+ import type { Session } from "../session";
32
+ import type { AccessTokenParsed, TokenParsed } from "../token";
33
+ import type { KeycloakMock } from "../types";
34
+ import type { KeycloakConfig } from "./config";
35
+ import { KeycloakContext } from "./context";
36
+
37
+ export class BaseKeycloak {
38
+ public authenticated = false;
39
+ public clientId: string;
40
+ public email?: string;
41
+ public idToken?: string;
42
+ public idTokenParsed?: TokenParsed;
43
+ public realm: string;
44
+ public realmAccess?: RealmAccess;
45
+ public refreshToken?: string;
46
+ public refreshTokenParsed?: TokenParsed;
47
+ public resourceAccess?: ResourceAccess;
48
+ public sessionId?: string;
49
+ public subject?: string;
50
+ public token?: string;
51
+ public tokenParsed?: AccessTokenParsed;
52
+ public username?: string;
53
+
54
+ protected _keycloakClient?: KeycloakClient;
55
+ protected _login?: (_options: KeycloakLoginOptions) => Promise<undefined>;
56
+ protected _logout?: (_options: KeycloakLogoutOptions) => Promise<undefined>;
57
+ protected _mock?: KeycloakMock;
58
+
59
+ constructor(
60
+ public readonly config: KeycloakConfig,
61
+ input?: string | KeycloakClient | KeycloakMock | Session,
62
+ idToken?: string,
63
+ refreshToken?: string,
64
+ login?: (_options: KeycloakLoginOptions) => Promise<undefined>,
65
+ logout?: (_options: KeycloakLogoutOptions) => Promise<undefined>,
66
+ ) {
67
+ this.clientId = this.config.clientId;
68
+ this.realm = this.config.realm;
69
+ if (typeof input === "string") {
70
+ this.token = input;
71
+ this.idToken = idToken;
72
+ this.refreshToken = refreshToken;
73
+ this._parseTokens();
74
+ } else if (typeof input === "object") {
75
+ this._handleInputObject(input);
76
+ }
77
+ this._login = login;
78
+ this._logout = logout;
79
+ this._sync();
80
+ }
81
+
82
+ protected _handleInputObject(input: KeycloakClient | KeycloakMock | Session) {
83
+ if (typeof (input as KeycloakClient).init === "function") {
84
+ this._keycloakClient = input as KeycloakClient;
85
+ } else {
86
+ this._mock = input as KeycloakMock;
87
+ }
88
+ }
89
+
90
+ protected _parseTokens() {
91
+ if (this.token && !this.tokenParsed) {
92
+ this.tokenParsed = jwtDecode(this.token);
93
+ }
94
+ if (this.idToken && !this.idTokenParsed) {
95
+ this.idTokenParsed = jwtDecode(this.idToken);
96
+ }
97
+ if (this.refreshToken && !this.refreshTokenParsed) {
98
+ this.refreshTokenParsed = jwtDecode(this.refreshToken) as TokenParsed;
99
+ }
100
+ }
101
+
102
+ protected _clear() {
103
+ this.authenticated = false;
104
+ this.email = undefined;
105
+ this.idToken = undefined;
106
+ this.idTokenParsed = undefined;
107
+ this.realmAccess = undefined;
108
+ this.refreshToken = undefined;
109
+ this.refreshTokenParsed = undefined;
110
+ this.resourceAccess = undefined;
111
+ this.sessionId = undefined;
112
+ this.subject = undefined;
113
+ this.token = undefined;
114
+ this.tokenParsed = undefined;
115
+ this.username = undefined;
116
+ }
117
+
118
+ protected _sync() {
119
+ if (this._mock) {
120
+ this.authenticated = true;
121
+ this.email = this._mock.email;
122
+ this.username = this._mock.username;
123
+ } else if (this._keycloakClient) {
124
+ this.authenticated = !!this._keycloakClient.authenticated;
125
+ this.email = this._keycloakClient?.tokenParsed?.email;
126
+ this.idToken = this._keycloakClient?.idToken;
127
+ this.idTokenParsed = this._keycloakClient?.idTokenParsed;
128
+ this.realmAccess = this._keycloakClient?.realmAccess;
129
+ this.refreshToken = this._keycloakClient?.refreshToken;
130
+ this.refreshTokenParsed = this._keycloakClient?.refreshTokenParsed;
131
+ this.resourceAccess = this._keycloakClient?.resourceAccess;
132
+ this.sessionId = this._keycloakClient?.sessionId;
133
+ this.subject = this._keycloakClient?.subject;
134
+ this.token = this._keycloakClient?.token;
135
+ this.tokenParsed = this._keycloakClient?.tokenParsed;
136
+ this.username = this.tokenParsed?.preferred_username;
137
+ if (this._keycloakClient.realm) this.realm = this._keycloakClient.realm;
138
+ if (this._keycloakClient.clientId) {
139
+ this.clientId = this._keycloakClient.clientId;
140
+ }
141
+ } else if (this.tokenParsed) {
142
+ this.clientId = this.tokenParsed.azp || this.config.clientId;
143
+ this.email = this.tokenParsed.email;
144
+ this.realm = this.tokenParsed.iss?.split("/").pop() || this.config.realm;
145
+ this.realmAccess = this.tokenParsed.realm_access;
146
+ this.resourceAccess = this.tokenParsed.resource_access;
147
+ this.sessionId = this.tokenParsed.session_state;
148
+ this.subject = this.tokenParsed.sub;
149
+ this.authenticated = !!(
150
+ this.tokenParsed?.exp &&
151
+ this.idToken &&
152
+ this.tokenParsed.exp > Date.now() / 1000
153
+ );
154
+ this.username = this.tokenParsed?.preferred_username;
155
+ } else {
156
+ return this._clear();
157
+ }
158
+ }
159
+
160
+ async getUserInfo() {
161
+ if (!this.authenticated) return;
162
+ const response = await fetch(
163
+ `${this.config.url}/realms/${this.realm}/protocol/openid-connect/userinfo`,
164
+ {
165
+ method: "GET",
166
+ headers: {
167
+ Authorization: `Bearer ${this.token}`,
168
+ Accept: "application/json",
169
+ },
170
+ },
171
+ );
172
+ if (response.ok) return response.json();
173
+ }
174
+
175
+ async login(options: KeycloakLoginOptions = {}) {
176
+ this._clear();
177
+ if (this._keycloakClient) {
178
+ await this._keycloakClient.login(options);
179
+ } else {
180
+ await this._login?.(options);
181
+ }
182
+ this._sync();
183
+ }
184
+
185
+ async logout(options: KeycloakLogoutOptions = {}) {
186
+ if (this._keycloakClient) {
187
+ await this._keycloakClient.logout(options);
188
+ } else {
189
+ await this._logout?.(options);
190
+ }
191
+ this._clear();
192
+ }
193
+ }
194
+
195
+ export function useKeycloak() {
196
+ const { disabled } = useAuthConfig();
197
+ if (disabled) return null;
198
+ return useContext(KeycloakContext);
199
+ }
200
+
201
+ export type KeycloakLogoutOptions = KeycloakJsLogoutOptions;
202
+ export type KeycloakLoginOptions = KeycloakJsLoginOptions &
203
+ AuthRequestPromptOptions & { redirect?: boolean };
204
+
205
+ export interface ResourceAccess {
206
+ [clientId: string]: {
207
+ roles: string[];
208
+ };
209
+ }
210
+
211
+ export interface RealmAccess {
212
+ roles: string[];
213
+ }