@civic/auth 0.1.3 → 0.1.4-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (737) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +2 -2
  3. package/dist/cjs/browser/storage.d.ts +3 -0
  4. package/dist/cjs/browser/storage.d.ts.map +1 -1
  5. package/dist/cjs/browser/storage.js +8 -0
  6. package/dist/cjs/browser/storage.js.map +1 -1
  7. package/dist/cjs/lib/cookies.d.ts +2 -2
  8. package/dist/cjs/lib/cookies.d.ts.map +1 -1
  9. package/dist/cjs/lib/cookies.js +7 -5
  10. package/dist/cjs/lib/cookies.js.map +1 -1
  11. package/dist/cjs/lib/postMessage.js +1 -1
  12. package/dist/cjs/lib/postMessage.js.map +1 -1
  13. package/dist/cjs/lib/windowUtil.d.ts.map +1 -1
  14. package/dist/cjs/lib/windowUtil.js +1 -0
  15. package/dist/cjs/lib/windowUtil.js.map +1 -1
  16. package/dist/cjs/nextjs/config.d.ts.map +1 -1
  17. package/dist/cjs/nextjs/config.js +12 -0
  18. package/dist/cjs/nextjs/config.js.map +1 -1
  19. package/dist/cjs/nextjs/hooks/index.d.ts +1 -1
  20. package/dist/cjs/nextjs/hooks/index.d.ts.map +1 -1
  21. package/dist/cjs/nextjs/hooks/index.js +3 -3
  22. package/dist/cjs/nextjs/hooks/index.js.map +1 -1
  23. package/dist/cjs/nextjs/hooks/useUserCookie.d.ts.map +1 -1
  24. package/dist/cjs/nextjs/hooks/useUserCookie.js +43 -14
  25. package/dist/cjs/nextjs/hooks/useUserCookie.js.map +1 -1
  26. package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts +5 -1
  27. package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts.map +1 -1
  28. package/dist/cjs/nextjs/providers/NextAuthProvider.js +74 -35
  29. package/dist/cjs/nextjs/providers/NextAuthProvider.js.map +1 -1
  30. package/dist/cjs/reactjs/components/UserButton.js +20 -10
  31. package/dist/cjs/reactjs/components/UserButton.js.map +1 -1
  32. package/dist/cjs/reactjs/hooks/index.d.ts +0 -1
  33. package/dist/cjs/reactjs/hooks/index.d.ts.map +1 -1
  34. package/dist/cjs/reactjs/hooks/index.js +1 -3
  35. package/dist/cjs/reactjs/hooks/index.js.map +1 -1
  36. package/dist/cjs/services/AuthenticationService.d.ts +4 -1
  37. package/dist/cjs/services/AuthenticationService.d.ts.map +1 -1
  38. package/dist/cjs/services/AuthenticationService.js +38 -7
  39. package/dist/cjs/services/AuthenticationService.js.map +1 -1
  40. package/dist/cjs/shared/components/BlockDisplay.d.ts +7 -0
  41. package/dist/cjs/shared/components/BlockDisplay.d.ts.map +1 -0
  42. package/dist/cjs/shared/components/BlockDisplay.js +31 -0
  43. package/dist/cjs/shared/components/BlockDisplay.js.map +1 -0
  44. package/dist/cjs/shared/components/CivicAuthIframe.js +17 -7
  45. package/dist/cjs/shared/components/CivicAuthIframe.js.map +1 -1
  46. package/dist/cjs/shared/components/CivicAuthIframeContainer.d.ts.map +1 -1
  47. package/dist/cjs/shared/components/CivicAuthIframeContainer.js +39 -20
  48. package/dist/cjs/shared/components/CivicAuthIframeContainer.js.map +1 -1
  49. package/dist/cjs/shared/components/IFrameAndLoading.d.ts +7 -0
  50. package/dist/cjs/shared/components/IFrameAndLoading.d.ts.map +1 -0
  51. package/dist/cjs/shared/components/IFrameAndLoading.js +28 -0
  52. package/dist/cjs/shared/components/IFrameAndLoading.js.map +1 -0
  53. package/dist/cjs/shared/hooks/index.d.ts +5 -1
  54. package/dist/cjs/shared/hooks/index.d.ts.map +1 -1
  55. package/dist/cjs/shared/hooks/index.js +11 -3
  56. package/dist/cjs/shared/hooks/index.js.map +1 -1
  57. package/dist/cjs/shared/hooks/useCivicAuthConfig.d.ts +3 -0
  58. package/dist/cjs/shared/hooks/useCivicAuthConfig.d.ts.map +1 -0
  59. package/dist/cjs/shared/hooks/useCivicAuthConfig.js +13 -0
  60. package/dist/cjs/shared/hooks/useCivicAuthConfig.js.map +1 -0
  61. package/dist/cjs/shared/hooks/useClientTokenExchangeSession.d.ts +3 -0
  62. package/dist/cjs/shared/hooks/useClientTokenExchangeSession.d.ts.map +1 -0
  63. package/dist/cjs/shared/hooks/useClientTokenExchangeSession.js +16 -0
  64. package/dist/cjs/shared/hooks/useClientTokenExchangeSession.js.map +1 -0
  65. package/dist/cjs/shared/hooks/useCurrentUrl.d.ts +3 -0
  66. package/dist/cjs/shared/hooks/useCurrentUrl.d.ts.map +1 -0
  67. package/dist/cjs/shared/hooks/useCurrentUrl.js +27 -0
  68. package/dist/cjs/shared/hooks/useCurrentUrl.js.map +1 -0
  69. package/dist/cjs/shared/hooks/useIsInIframe.d.ts +3 -0
  70. package/dist/cjs/shared/hooks/useIsInIframe.d.ts.map +1 -0
  71. package/dist/cjs/shared/hooks/useIsInIframe.js +17 -0
  72. package/dist/cjs/shared/hooks/useIsInIframe.js.map +1 -0
  73. package/dist/cjs/shared/hooks/useOAuthEndpoints.d.ts +4 -0
  74. package/dist/cjs/shared/hooks/useOAuthEndpoints.d.ts.map +1 -0
  75. package/dist/cjs/shared/hooks/useOAuthEndpoints.js +17 -0
  76. package/dist/cjs/shared/hooks/useOAuthEndpoints.js.map +1 -0
  77. package/dist/cjs/shared/hooks/useRefresh.d.ts +4 -0
  78. package/dist/cjs/shared/hooks/useRefresh.d.ts.map +1 -0
  79. package/dist/cjs/shared/hooks/useRefresh.js +41 -0
  80. package/dist/cjs/shared/hooks/useRefresh.js.map +1 -0
  81. package/dist/cjs/shared/hooks/useSession.d.ts +1 -1
  82. package/dist/cjs/shared/hooks/useSession.d.ts.map +1 -1
  83. package/dist/cjs/shared/hooks/useSignIn.d.ts +14 -0
  84. package/dist/cjs/shared/hooks/useSignIn.d.ts.map +1 -0
  85. package/dist/cjs/shared/hooks/useSignIn.js +74 -0
  86. package/dist/cjs/shared/hooks/useSignIn.js.map +1 -0
  87. package/dist/cjs/shared/lib/GenericAuthenticationRefresher.d.ts +4 -0
  88. package/dist/cjs/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -1
  89. package/dist/cjs/shared/lib/GenericAuthenticationRefresher.js +30 -0
  90. package/dist/cjs/shared/lib/GenericAuthenticationRefresher.js.map +1 -1
  91. package/dist/cjs/shared/lib/types.d.ts +14 -1
  92. package/dist/cjs/shared/lib/types.d.ts.map +1 -1
  93. package/dist/cjs/shared/lib/types.js +2 -0
  94. package/dist/cjs/shared/lib/types.js.map +1 -1
  95. package/dist/cjs/shared/lib/util.d.ts.map +1 -1
  96. package/dist/cjs/shared/lib/util.js +27 -9
  97. package/dist/cjs/shared/lib/util.js.map +1 -1
  98. package/dist/cjs/shared/providers/AuthProvider.d.ts +3 -2
  99. package/dist/cjs/shared/providers/AuthProvider.d.ts.map +1 -1
  100. package/dist/cjs/shared/providers/AuthProvider.js +53 -244
  101. package/dist/cjs/shared/providers/AuthProvider.js.map +1 -1
  102. package/dist/cjs/shared/providers/CivicAuthConfigContext.d.ts +16 -0
  103. package/dist/cjs/shared/providers/CivicAuthConfigContext.d.ts.map +1 -0
  104. package/dist/cjs/shared/providers/CivicAuthConfigContext.js +80 -0
  105. package/dist/cjs/shared/providers/CivicAuthConfigContext.js.map +1 -0
  106. package/dist/cjs/shared/providers/CivicAuthProvider.d.ts.map +1 -1
  107. package/dist/cjs/shared/providers/CivicAuthProvider.js +23 -6
  108. package/dist/cjs/shared/providers/CivicAuthProvider.js.map +1 -1
  109. package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.d.ts +17 -0
  110. package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -0
  111. package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.js +183 -0
  112. package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.js.map +1 -0
  113. package/dist/cjs/shared/providers/IframeProvider.d.ts +7 -4
  114. package/dist/cjs/shared/providers/IframeProvider.d.ts.map +1 -1
  115. package/dist/cjs/shared/providers/IframeProvider.js +37 -9
  116. package/dist/cjs/shared/providers/IframeProvider.js.map +1 -1
  117. package/dist/cjs/shared/providers/SessionProvider.d.ts +10 -4
  118. package/dist/cjs/shared/providers/SessionProvider.d.ts.map +1 -1
  119. package/dist/cjs/shared/providers/SessionProvider.js +32 -12
  120. package/dist/cjs/shared/providers/SessionProvider.js.map +1 -1
  121. package/dist/cjs/shared/providers/TokenProvider.d.ts.map +1 -1
  122. package/dist/cjs/shared/providers/TokenProvider.js +29 -30
  123. package/dist/cjs/shared/providers/TokenProvider.js.map +1 -1
  124. package/dist/cjs/shared/providers/UserProvider.d.ts +4 -3
  125. package/dist/cjs/shared/providers/UserProvider.d.ts.map +1 -1
  126. package/dist/cjs/shared/providers/UserProvider.js +46 -25
  127. package/dist/cjs/shared/providers/UserProvider.js.map +1 -1
  128. package/dist/cjs/types.d.ts +1 -0
  129. package/dist/cjs/types.d.ts.map +1 -1
  130. package/dist/cjs/types.js.map +1 -1
  131. package/dist/cjs/utils.d.ts.map +1 -1
  132. package/dist/esm/browser/storage.d.ts +3 -0
  133. package/dist/esm/browser/storage.d.ts.map +1 -1
  134. package/dist/esm/browser/storage.js +8 -0
  135. package/dist/esm/browser/storage.js.map +1 -1
  136. package/dist/esm/lib/cookies.d.ts +2 -2
  137. package/dist/esm/lib/cookies.d.ts.map +1 -1
  138. package/dist/esm/lib/cookies.js +7 -5
  139. package/dist/esm/lib/cookies.js.map +1 -1
  140. package/dist/esm/lib/postMessage.js +1 -1
  141. package/dist/esm/lib/postMessage.js.map +1 -1
  142. package/dist/esm/lib/windowUtil.d.ts.map +1 -1
  143. package/dist/esm/lib/windowUtil.js +1 -0
  144. package/dist/esm/lib/windowUtil.js.map +1 -1
  145. package/dist/esm/nextjs/config.d.ts.map +1 -1
  146. package/dist/esm/nextjs/config.js +12 -0
  147. package/dist/esm/nextjs/config.js.map +1 -1
  148. package/dist/esm/nextjs/hooks/index.d.ts +1 -1
  149. package/dist/esm/nextjs/hooks/index.d.ts.map +1 -1
  150. package/dist/esm/nextjs/hooks/index.js +1 -1
  151. package/dist/esm/nextjs/hooks/index.js.map +1 -1
  152. package/dist/esm/nextjs/hooks/useUserCookie.d.ts.map +1 -1
  153. package/dist/esm/nextjs/hooks/useUserCookie.js +45 -16
  154. package/dist/esm/nextjs/hooks/useUserCookie.js.map +1 -1
  155. package/dist/esm/nextjs/providers/NextAuthProvider.d.ts +5 -1
  156. package/dist/esm/nextjs/providers/NextAuthProvider.d.ts.map +1 -1
  157. package/dist/esm/nextjs/providers/NextAuthProvider.js +59 -30
  158. package/dist/esm/nextjs/providers/NextAuthProvider.js.map +1 -1
  159. package/dist/esm/reactjs/components/UserButton.js +3 -3
  160. package/dist/esm/reactjs/components/UserButton.js.map +1 -1
  161. package/dist/esm/reactjs/hooks/index.d.ts +0 -1
  162. package/dist/esm/reactjs/hooks/index.d.ts.map +1 -1
  163. package/dist/esm/reactjs/hooks/index.js +0 -1
  164. package/dist/esm/reactjs/hooks/index.js.map +1 -1
  165. package/dist/esm/services/AuthenticationService.d.ts +4 -1
  166. package/dist/esm/services/AuthenticationService.d.ts.map +1 -1
  167. package/dist/esm/services/AuthenticationService.js +39 -8
  168. package/dist/esm/services/AuthenticationService.js.map +1 -1
  169. package/dist/esm/shared/components/BlockDisplay.d.ts +7 -0
  170. package/dist/esm/shared/components/BlockDisplay.d.ts.map +1 -0
  171. package/dist/esm/shared/components/BlockDisplay.js +25 -0
  172. package/dist/esm/shared/components/BlockDisplay.js.map +1 -0
  173. package/dist/esm/shared/components/CivicAuthIframeContainer.d.ts.map +1 -1
  174. package/dist/esm/shared/components/CivicAuthIframeContainer.js +23 -14
  175. package/dist/esm/shared/components/CivicAuthIframeContainer.js.map +1 -1
  176. package/dist/esm/shared/components/IFrameAndLoading.d.ts +7 -0
  177. package/dist/esm/shared/components/IFrameAndLoading.d.ts.map +1 -0
  178. package/dist/esm/shared/components/IFrameAndLoading.js +22 -0
  179. package/dist/esm/shared/components/IFrameAndLoading.js.map +1 -0
  180. package/dist/esm/shared/hooks/index.d.ts +5 -1
  181. package/dist/esm/shared/hooks/index.d.ts.map +1 -1
  182. package/dist/esm/shared/hooks/index.js +5 -1
  183. package/dist/esm/shared/hooks/index.js.map +1 -1
  184. package/dist/esm/shared/hooks/useCivicAuthConfig.d.ts +3 -0
  185. package/dist/esm/shared/hooks/useCivicAuthConfig.d.ts.map +1 -0
  186. package/dist/esm/shared/hooks/useCivicAuthConfig.js +10 -0
  187. package/dist/esm/shared/hooks/useCivicAuthConfig.js.map +1 -0
  188. package/dist/esm/shared/hooks/useClientTokenExchangeSession.d.ts +3 -0
  189. package/dist/esm/shared/hooks/useClientTokenExchangeSession.d.ts.map +1 -0
  190. package/dist/esm/shared/hooks/useClientTokenExchangeSession.js +13 -0
  191. package/dist/esm/shared/hooks/useClientTokenExchangeSession.js.map +1 -0
  192. package/dist/esm/shared/hooks/useCurrentUrl.d.ts +3 -0
  193. package/dist/esm/shared/hooks/useCurrentUrl.d.ts.map +1 -0
  194. package/dist/esm/shared/hooks/useCurrentUrl.js +24 -0
  195. package/dist/esm/shared/hooks/useCurrentUrl.js.map +1 -0
  196. package/dist/esm/shared/hooks/useIsInIframe.d.ts +3 -0
  197. package/dist/esm/shared/hooks/useIsInIframe.d.ts.map +1 -0
  198. package/dist/esm/shared/hooks/useIsInIframe.js +14 -0
  199. package/dist/esm/shared/hooks/useIsInIframe.js.map +1 -0
  200. package/dist/esm/shared/hooks/useOAuthEndpoints.d.ts +4 -0
  201. package/dist/esm/shared/hooks/useOAuthEndpoints.d.ts.map +1 -0
  202. package/dist/esm/shared/hooks/useOAuthEndpoints.js +14 -0
  203. package/dist/esm/shared/hooks/useOAuthEndpoints.js.map +1 -0
  204. package/dist/esm/shared/hooks/useRefresh.d.ts +4 -0
  205. package/dist/esm/shared/hooks/useRefresh.d.ts.map +1 -0
  206. package/dist/esm/shared/hooks/useRefresh.js +38 -0
  207. package/dist/esm/shared/hooks/useRefresh.js.map +1 -0
  208. package/dist/esm/shared/hooks/useSession.d.ts +1 -1
  209. package/dist/esm/shared/hooks/useSession.d.ts.map +1 -1
  210. package/dist/esm/shared/hooks/useSignIn.d.ts +14 -0
  211. package/dist/esm/shared/hooks/useSignIn.d.ts.map +1 -0
  212. package/dist/esm/shared/hooks/useSignIn.js +71 -0
  213. package/dist/esm/shared/hooks/useSignIn.js.map +1 -0
  214. package/dist/esm/shared/lib/GenericAuthenticationRefresher.d.ts +4 -0
  215. package/dist/esm/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -1
  216. package/dist/esm/shared/lib/GenericAuthenticationRefresher.js +30 -0
  217. package/dist/esm/shared/lib/GenericAuthenticationRefresher.js.map +1 -1
  218. package/dist/esm/shared/lib/types.d.ts +14 -1
  219. package/dist/esm/shared/lib/types.d.ts.map +1 -1
  220. package/dist/esm/shared/lib/types.js +2 -0
  221. package/dist/esm/shared/lib/types.js.map +1 -1
  222. package/dist/esm/shared/lib/util.d.ts.map +1 -1
  223. package/dist/esm/shared/lib/util.js +10 -2
  224. package/dist/esm/shared/lib/util.js.map +1 -1
  225. package/dist/esm/shared/providers/AuthProvider.d.ts +3 -2
  226. package/dist/esm/shared/providers/AuthProvider.d.ts.map +1 -1
  227. package/dist/esm/shared/providers/AuthProvider.js +37 -238
  228. package/dist/esm/shared/providers/AuthProvider.js.map +1 -1
  229. package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts +16 -0
  230. package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts.map +1 -0
  231. package/dist/esm/shared/providers/CivicAuthConfigContext.js +43 -0
  232. package/dist/esm/shared/providers/CivicAuthConfigContext.js.map +1 -0
  233. package/dist/esm/shared/providers/CivicAuthProvider.d.ts.map +1 -1
  234. package/dist/esm/shared/providers/CivicAuthProvider.js +23 -6
  235. package/dist/esm/shared/providers/CivicAuthProvider.js.map +1 -1
  236. package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.d.ts +17 -0
  237. package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -0
  238. package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.js +146 -0
  239. package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.js.map +1 -0
  240. package/dist/esm/shared/providers/IframeProvider.d.ts +7 -4
  241. package/dist/esm/shared/providers/IframeProvider.d.ts.map +1 -1
  242. package/dist/esm/shared/providers/IframeProvider.js +21 -3
  243. package/dist/esm/shared/providers/IframeProvider.js.map +1 -1
  244. package/dist/esm/shared/providers/SessionProvider.d.ts +10 -4
  245. package/dist/esm/shared/providers/SessionProvider.d.ts.map +1 -1
  246. package/dist/esm/shared/providers/SessionProvider.js +15 -5
  247. package/dist/esm/shared/providers/SessionProvider.js.map +1 -1
  248. package/dist/esm/shared/providers/TokenProvider.d.ts.map +1 -1
  249. package/dist/esm/shared/providers/TokenProvider.js +13 -24
  250. package/dist/esm/shared/providers/TokenProvider.js.map +1 -1
  251. package/dist/esm/shared/providers/UserProvider.d.ts +4 -3
  252. package/dist/esm/shared/providers/UserProvider.d.ts.map +1 -1
  253. package/dist/esm/shared/providers/UserProvider.js +30 -19
  254. package/dist/esm/shared/providers/UserProvider.js.map +1 -1
  255. package/dist/esm/types.d.ts +1 -0
  256. package/dist/esm/types.d.ts.map +1 -1
  257. package/dist/esm/types.js.map +1 -1
  258. package/dist/esm/utils.d.ts.map +1 -1
  259. package/dist/src/nextjs/hooks/useUserCookie.d.ts.map +1 -1
  260. package/dist/src/nextjs/hooks/useUserCookie.js +45 -16
  261. package/dist/src/nextjs/hooks/useUserCookie.js.map +1 -1
  262. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  263. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  264. package/dist/tsconfig.tsbuildinfo +1 -1
  265. package/package.json +7 -1
  266. package/.eslintignore +0 -3
  267. package/.eslintrc.json +0 -10
  268. package/.prettierignore +0 -3
  269. package/.prettierrc +0 -1
  270. package/.turbo/turbo-build.log +0 -13
  271. package/.turbo/turbo-lint$colon$fix.log +0 -10
  272. package/.turbo/turbo-test.log +0 -1153
  273. package/dist/cjs/nextjs/hooks/useTokenCookie.d.ts +0 -3
  274. package/dist/cjs/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
  275. package/dist/cjs/nextjs/hooks/useTokenCookie.js +0 -41
  276. package/dist/cjs/nextjs/hooks/useTokenCookie.js.map +0 -1
  277. package/dist/cjs/shared/hooks/useConfig.d.ts +0 -3
  278. package/dist/cjs/shared/hooks/useConfig.d.ts.map +0 -1
  279. package/dist/cjs/shared/hooks/useConfig.js +0 -16
  280. package/dist/cjs/shared/hooks/useConfig.js.map +0 -1
  281. package/dist/cjs/shared/providers/ConfigProvider.d.ts +0 -21
  282. package/dist/cjs/shared/providers/ConfigProvider.d.ts.map +0 -1
  283. package/dist/cjs/shared/providers/ConfigProvider.js +0 -46
  284. package/dist/cjs/shared/providers/ConfigProvider.js.map +0 -1
  285. package/dist/esm/nextjs/hooks/useTokenCookie.d.ts +0 -3
  286. package/dist/esm/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
  287. package/dist/esm/nextjs/hooks/useTokenCookie.js +0 -37
  288. package/dist/esm/nextjs/hooks/useTokenCookie.js.map +0 -1
  289. package/dist/esm/shared/hooks/useConfig.d.ts +0 -3
  290. package/dist/esm/shared/hooks/useConfig.d.ts.map +0 -1
  291. package/dist/esm/shared/hooks/useConfig.js +0 -13
  292. package/dist/esm/shared/hooks/useConfig.js.map +0 -1
  293. package/dist/esm/shared/providers/ConfigProvider.d.ts +0 -21
  294. package/dist/esm/shared/providers/ConfigProvider.d.ts.map +0 -1
  295. package/dist/esm/shared/providers/ConfigProvider.js +0 -19
  296. package/dist/esm/shared/providers/ConfigProvider.js.map +0 -1
  297. package/dist/src/browser/storage.d.ts +0 -6
  298. package/dist/src/browser/storage.d.ts.map +0 -1
  299. package/dist/src/browser/storage.js +0 -9
  300. package/dist/src/browser/storage.js.map +0 -1
  301. package/dist/src/config.d.ts +0 -3
  302. package/dist/src/config.d.ts.map +0 -1
  303. package/dist/src/config.js +0 -5
  304. package/dist/src/config.js.map +0 -1
  305. package/dist/src/constants.d.ts +0 -9
  306. package/dist/src/constants.d.ts.map +0 -1
  307. package/dist/src/constants.js +0 -17
  308. package/dist/src/constants.js.map +0 -1
  309. package/dist/src/index.d.ts +0 -4
  310. package/dist/src/index.d.ts.map +0 -1
  311. package/dist/src/index.js +0 -2
  312. package/dist/src/index.js.map +0 -1
  313. package/dist/src/lib/cookies.d.ts +0 -7
  314. package/dist/src/lib/cookies.d.ts.map +0 -1
  315. package/dist/src/lib/cookies.js +0 -23
  316. package/dist/src/lib/cookies.js.map +0 -1
  317. package/dist/src/lib/jwt.d.ts +0 -3
  318. package/dist/src/lib/jwt.d.ts.map +0 -1
  319. package/dist/src/lib/jwt.js +0 -9
  320. package/dist/src/lib/jwt.js.map +0 -1
  321. package/dist/src/lib/logger.d.ts +0 -26
  322. package/dist/src/lib/logger.d.ts.map +0 -1
  323. package/dist/src/lib/logger.js +0 -55
  324. package/dist/src/lib/logger.js.map +0 -1
  325. package/dist/src/lib/oauth.d.ts +0 -19
  326. package/dist/src/lib/oauth.d.ts.map +0 -1
  327. package/dist/src/lib/oauth.js +0 -60
  328. package/dist/src/lib/oauth.js.map +0 -1
  329. package/dist/src/lib/postMessage.d.ts +0 -4
  330. package/dist/src/lib/postMessage.d.ts.map +0 -1
  331. package/dist/src/lib/postMessage.js +0 -15
  332. package/dist/src/lib/postMessage.js.map +0 -1
  333. package/dist/src/lib/windowUtil.d.ts +0 -4
  334. package/dist/src/lib/windowUtil.d.ts.map +0 -1
  335. package/dist/src/lib/windowUtil.js +0 -30
  336. package/dist/src/lib/windowUtil.js.map +0 -1
  337. package/dist/src/nextjs/GetUser.d.ts +0 -6
  338. package/dist/src/nextjs/GetUser.d.ts.map +0 -1
  339. package/dist/src/nextjs/GetUser.js +0 -18
  340. package/dist/src/nextjs/GetUser.js.map +0 -1
  341. package/dist/src/nextjs/config.d.ts +0 -178
  342. package/dist/src/nextjs/config.d.ts.map +0 -1
  343. package/dist/src/nextjs/config.js +0 -161
  344. package/dist/src/nextjs/config.js.map +0 -1
  345. package/dist/src/nextjs/cookies.d.ts +0 -30
  346. package/dist/src/nextjs/cookies.d.ts.map +0 -1
  347. package/dist/src/nextjs/cookies.js +0 -112
  348. package/dist/src/nextjs/cookies.js.map +0 -1
  349. package/dist/src/nextjs/hooks/index.d.ts +0 -2
  350. package/dist/src/nextjs/hooks/index.d.ts.map +0 -1
  351. package/dist/src/nextjs/hooks/index.js +0 -2
  352. package/dist/src/nextjs/hooks/index.js.map +0 -1
  353. package/dist/src/nextjs/hooks/useTokenCookie.d.ts +0 -3
  354. package/dist/src/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
  355. package/dist/src/nextjs/hooks/useTokenCookie.js +0 -37
  356. package/dist/src/nextjs/hooks/useTokenCookie.js.map +0 -1
  357. package/dist/src/nextjs/hooks/useUserCookie.d.ts +0 -3
  358. package/dist/src/nextjs/index.d.ts +0 -7
  359. package/dist/src/nextjs/index.d.ts.map +0 -1
  360. package/dist/src/nextjs/index.js +0 -6
  361. package/dist/src/nextjs/index.js.map +0 -1
  362. package/dist/src/nextjs/middleware/index.d.ts +0 -2
  363. package/dist/src/nextjs/middleware/index.d.ts.map +0 -1
  364. package/dist/src/nextjs/middleware/index.js +0 -2
  365. package/dist/src/nextjs/middleware/index.js.map +0 -1
  366. package/dist/src/nextjs/middleware.d.ts +0 -59
  367. package/dist/src/nextjs/middleware.d.ts.map +0 -1
  368. package/dist/src/nextjs/middleware.js +0 -107
  369. package/dist/src/nextjs/middleware.js.map +0 -1
  370. package/dist/src/nextjs/providers/NextAuthProvider.d.ts +0 -9
  371. package/dist/src/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
  372. package/dist/src/nextjs/providers/NextAuthProvider.js +0 -50
  373. package/dist/src/nextjs/providers/NextAuthProvider.js.map +0 -1
  374. package/dist/src/nextjs/routeHandler.d.ts +0 -18
  375. package/dist/src/nextjs/routeHandler.d.ts.map +0 -1
  376. package/dist/src/nextjs/routeHandler.js +0 -212
  377. package/dist/src/nextjs/routeHandler.js.map +0 -1
  378. package/dist/src/nextjs/utils.d.ts +0 -3
  379. package/dist/src/nextjs/utils.d.ts.map +0 -1
  380. package/dist/src/nextjs/utils.js +0 -5
  381. package/dist/src/nextjs/utils.js.map +0 -1
  382. package/dist/src/reactjs/components/SignInButton.d.ts +0 -8
  383. package/dist/src/reactjs/components/SignInButton.d.ts.map +0 -1
  384. package/dist/src/reactjs/components/SignInButton.js +0 -14
  385. package/dist/src/reactjs/components/SignInButton.js.map +0 -1
  386. package/dist/src/reactjs/components/SignOutButton.d.ts +0 -6
  387. package/dist/src/reactjs/components/SignOutButton.d.ts.map +0 -1
  388. package/dist/src/reactjs/components/SignOutButton.js +0 -14
  389. package/dist/src/reactjs/components/SignOutButton.js.map +0 -1
  390. package/dist/src/reactjs/components/UserButton.d.ts +0 -8
  391. package/dist/src/reactjs/components/UserButton.d.ts.map +0 -1
  392. package/dist/src/reactjs/components/UserButton.js +0 -118
  393. package/dist/src/reactjs/components/UserButton.js.map +0 -1
  394. package/dist/src/reactjs/components/index.d.ts +0 -6
  395. package/dist/src/reactjs/components/index.d.ts.map +0 -1
  396. package/dist/src/reactjs/components/index.js +0 -6
  397. package/dist/src/reactjs/components/index.js.map +0 -1
  398. package/dist/src/reactjs/hooks/index.d.ts +0 -7
  399. package/dist/src/reactjs/hooks/index.d.ts.map +0 -1
  400. package/dist/src/reactjs/hooks/index.js +0 -7
  401. package/dist/src/reactjs/hooks/index.js.map +0 -1
  402. package/dist/src/reactjs/hooks/useAuth.d.ts +0 -3
  403. package/dist/src/reactjs/hooks/useAuth.d.ts.map +0 -1
  404. package/dist/src/reactjs/hooks/useAuth.js +0 -12
  405. package/dist/src/reactjs/hooks/useAuth.js.map +0 -1
  406. package/dist/src/reactjs/hooks/useUser.d.ts +0 -4
  407. package/dist/src/reactjs/hooks/useUser.d.ts.map +0 -1
  408. package/dist/src/reactjs/hooks/useUser.js +0 -12
  409. package/dist/src/reactjs/hooks/useUser.js.map +0 -1
  410. package/dist/src/reactjs/index.d.ts +0 -6
  411. package/dist/src/reactjs/index.d.ts.map +0 -1
  412. package/dist/src/reactjs/index.js +0 -8
  413. package/dist/src/reactjs/index.js.map +0 -1
  414. package/dist/src/reactjs/providers/index.d.ts +0 -8
  415. package/dist/src/reactjs/providers/index.d.ts.map +0 -1
  416. package/dist/src/reactjs/providers/index.js +0 -7
  417. package/dist/src/reactjs/providers/index.js.map +0 -1
  418. package/dist/src/server/ServerAuthenticationResolver.d.ts +0 -19
  419. package/dist/src/server/ServerAuthenticationResolver.d.ts.map +0 -1
  420. package/dist/src/server/ServerAuthenticationResolver.js +0 -61
  421. package/dist/src/server/ServerAuthenticationResolver.js.map +0 -1
  422. package/dist/src/server/config.d.ts +0 -9
  423. package/dist/src/server/config.d.ts.map +0 -1
  424. package/dist/src/server/config.js +0 -2
  425. package/dist/src/server/config.js.map +0 -1
  426. package/dist/src/server/index.d.ts +0 -7
  427. package/dist/src/server/index.d.ts.map +0 -1
  428. package/dist/src/server/index.js +0 -5
  429. package/dist/src/server/index.js.map +0 -1
  430. package/dist/src/server/login.d.ts +0 -17
  431. package/dist/src/server/login.d.ts.map +0 -1
  432. package/dist/src/server/login.js +0 -37
  433. package/dist/src/server/login.js.map +0 -1
  434. package/dist/src/server/refresh.d.ts +0 -7
  435. package/dist/src/server/refresh.d.ts.map +0 -1
  436. package/dist/src/server/refresh.js +0 -13
  437. package/dist/src/server/refresh.js.map +0 -1
  438. package/dist/src/services/AuthenticationService.d.ts +0 -87
  439. package/dist/src/services/AuthenticationService.d.ts.map +0 -1
  440. package/dist/src/services/AuthenticationService.js +0 -212
  441. package/dist/src/services/AuthenticationService.js.map +0 -1
  442. package/dist/src/services/PKCE.d.ts +0 -20
  443. package/dist/src/services/PKCE.d.ts.map +0 -1
  444. package/dist/src/services/PKCE.js +0 -44
  445. package/dist/src/services/PKCE.js.map +0 -1
  446. package/dist/src/services/types.d.ts +0 -23
  447. package/dist/src/services/types.d.ts.map +0 -1
  448. package/dist/src/services/types.js +0 -7
  449. package/dist/src/services/types.js.map +0 -1
  450. package/dist/src/shared/components/CivicAuthIframe.d.ts +0 -8
  451. package/dist/src/shared/components/CivicAuthIframe.d.ts.map +0 -1
  452. package/dist/src/shared/components/CivicAuthIframe.js +0 -9
  453. package/dist/src/shared/components/CivicAuthIframe.js.map +0 -1
  454. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts +0 -9
  455. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
  456. package/dist/src/shared/components/CivicAuthIframeContainer.js +0 -129
  457. package/dist/src/shared/components/CivicAuthIframeContainer.js.map +0 -1
  458. package/dist/src/shared/components/CloseIcon.d.ts +0 -4
  459. package/dist/src/shared/components/CloseIcon.d.ts.map +0 -1
  460. package/dist/src/shared/components/CloseIcon.js +0 -6
  461. package/dist/src/shared/components/CloseIcon.js.map +0 -1
  462. package/dist/src/shared/components/LoadingIcon.d.ts +0 -4
  463. package/dist/src/shared/components/LoadingIcon.d.ts.map +0 -1
  464. package/dist/src/shared/components/LoadingIcon.js +0 -30
  465. package/dist/src/shared/components/LoadingIcon.js.map +0 -1
  466. package/dist/src/shared/hooks/index.d.ts +0 -5
  467. package/dist/src/shared/hooks/index.d.ts.map +0 -1
  468. package/dist/src/shared/hooks/index.js +0 -5
  469. package/dist/src/shared/hooks/index.js.map +0 -1
  470. package/dist/src/shared/hooks/useAuth.d.ts +0 -3
  471. package/dist/src/shared/hooks/useAuth.d.ts.map +0 -1
  472. package/dist/src/shared/hooks/useAuth.js +0 -12
  473. package/dist/src/shared/hooks/useAuth.js.map +0 -1
  474. package/dist/src/shared/hooks/useConfig.d.ts +0 -3
  475. package/dist/src/shared/hooks/useConfig.d.ts.map +0 -1
  476. package/dist/src/shared/hooks/useConfig.js +0 -13
  477. package/dist/src/shared/hooks/useConfig.js.map +0 -1
  478. package/dist/src/shared/hooks/useIframe.d.ts +0 -3
  479. package/dist/src/shared/hooks/useIframe.d.ts.map +0 -1
  480. package/dist/src/shared/hooks/useIframe.js +0 -13
  481. package/dist/src/shared/hooks/useIframe.js.map +0 -1
  482. package/dist/src/shared/hooks/useSession.d.ts +0 -3
  483. package/dist/src/shared/hooks/useSession.d.ts.map +0 -1
  484. package/dist/src/shared/hooks/useSession.js +0 -13
  485. package/dist/src/shared/hooks/useSession.js.map +0 -1
  486. package/dist/src/shared/hooks/useToken.d.ts +0 -3
  487. package/dist/src/shared/hooks/useToken.d.ts.map +0 -1
  488. package/dist/src/shared/hooks/useToken.js +0 -12
  489. package/dist/src/shared/hooks/useToken.js.map +0 -1
  490. package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts +0 -16
  491. package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
  492. package/dist/src/shared/lib/GenericAuthenticationRefresher.js +0 -43
  493. package/dist/src/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
  494. package/dist/src/shared/lib/UserSession.d.ts +0 -12
  495. package/dist/src/shared/lib/UserSession.d.ts.map +0 -1
  496. package/dist/src/shared/lib/UserSession.js +0 -20
  497. package/dist/src/shared/lib/UserSession.js.map +0 -1
  498. package/dist/src/shared/lib/session.d.ts +0 -3
  499. package/dist/src/shared/lib/session.d.ts.map +0 -1
  500. package/dist/src/shared/lib/session.js +0 -10
  501. package/dist/src/shared/lib/session.js.map +0 -1
  502. package/dist/src/shared/lib/storage.d.ts +0 -25
  503. package/dist/src/shared/lib/storage.d.ts.map +0 -1
  504. package/dist/src/shared/lib/storage.js +0 -17
  505. package/dist/src/shared/lib/storage.js.map +0 -1
  506. package/dist/src/shared/lib/types.d.ts +0 -22
  507. package/dist/src/shared/lib/types.d.ts.map +0 -1
  508. package/dist/src/shared/lib/types.js +0 -16
  509. package/dist/src/shared/lib/types.js.map +0 -1
  510. package/dist/src/shared/lib/util.d.ts +0 -33
  511. package/dist/src/shared/lib/util.d.ts.map +0 -1
  512. package/dist/src/shared/lib/util.js +0 -124
  513. package/dist/src/shared/lib/util.js.map +0 -1
  514. package/dist/src/shared/providers/AuthContext.d.ts +0 -10
  515. package/dist/src/shared/providers/AuthContext.d.ts.map +0 -1
  516. package/dist/src/shared/providers/AuthContext.js +0 -3
  517. package/dist/src/shared/providers/AuthContext.js.map +0 -1
  518. package/dist/src/shared/providers/AuthProvider.d.ts +0 -20
  519. package/dist/src/shared/providers/AuthProvider.d.ts.map +0 -1
  520. package/dist/src/shared/providers/AuthProvider.js +0 -264
  521. package/dist/src/shared/providers/AuthProvider.js.map +0 -1
  522. package/dist/src/shared/providers/CivicAuthProvider.d.ts +0 -6
  523. package/dist/src/shared/providers/CivicAuthProvider.d.ts.map +0 -1
  524. package/dist/src/shared/providers/CivicAuthProvider.js +0 -15
  525. package/dist/src/shared/providers/CivicAuthProvider.js.map +0 -1
  526. package/dist/src/shared/providers/ConfigProvider.d.ts +0 -21
  527. package/dist/src/shared/providers/ConfigProvider.d.ts.map +0 -1
  528. package/dist/src/shared/providers/ConfigProvider.js +0 -19
  529. package/dist/src/shared/providers/ConfigProvider.js.map +0 -1
  530. package/dist/src/shared/providers/IframeProvider.d.ts +0 -16
  531. package/dist/src/shared/providers/IframeProvider.d.ts.map +0 -1
  532. package/dist/src/shared/providers/IframeProvider.js +0 -11
  533. package/dist/src/shared/providers/IframeProvider.js.map +0 -1
  534. package/dist/src/shared/providers/SessionProvider.d.ts +0 -13
  535. package/dist/src/shared/providers/SessionProvider.d.ts.map +0 -1
  536. package/dist/src/shared/providers/SessionProvider.js +0 -13
  537. package/dist/src/shared/providers/SessionProvider.js.map +0 -1
  538. package/dist/src/shared/providers/TokenProvider.d.ts +0 -18
  539. package/dist/src/shared/providers/TokenProvider.d.ts.map +0 -1
  540. package/dist/src/shared/providers/TokenProvider.js +0 -53
  541. package/dist/src/shared/providers/TokenProvider.js.map +0 -1
  542. package/dist/src/shared/providers/UserProvider.d.ts +0 -18
  543. package/dist/src/shared/providers/UserProvider.d.ts.map +0 -1
  544. package/dist/src/shared/providers/UserProvider.js +0 -38
  545. package/dist/src/shared/providers/UserProvider.js.map +0 -1
  546. package/dist/src/types.d.ts +0 -146
  547. package/dist/src/types.d.ts.map +0 -1
  548. package/dist/src/types.js +0 -2
  549. package/dist/src/types.js.map +0 -1
  550. package/dist/src/utils.d.ts +0 -15
  551. package/dist/src/utils.d.ts.map +0 -1
  552. package/dist/src/utils.js +0 -43
  553. package/dist/src/utils.js.map +0 -1
  554. package/dist/test/integration/sdk.test.d.ts +0 -2
  555. package/dist/test/integration/sdk.test.d.ts.map +0 -1
  556. package/dist/test/integration/sdk.test.js +0 -183
  557. package/dist/test/integration/sdk.test.js.map +0 -1
  558. package/dist/test/support/fixtures.d.ts +0 -26
  559. package/dist/test/support/fixtures.d.ts.map +0 -1
  560. package/dist/test/support/fixtures.js +0 -55
  561. package/dist/test/support/fixtures.js.map +0 -1
  562. package/dist/test/support/tokens.json +0 -26
  563. package/dist/test/unit/lib/oauth.test.d.ts +0 -2
  564. package/dist/test/unit/lib/oauth.test.d.ts.map +0 -1
  565. package/dist/test/unit/lib/oauth.test.js +0 -55
  566. package/dist/test/unit/lib/oauth.test.js.map +0 -1
  567. package/dist/test/unit/logger.test.d.ts +0 -2
  568. package/dist/test/unit/logger.test.d.ts.map +0 -1
  569. package/dist/test/unit/logger.test.js +0 -141
  570. package/dist/test/unit/logger.test.js.map +0 -1
  571. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts +0 -2
  572. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts.map +0 -1
  573. package/dist/test/unit/nextjs/NextAuthProvider.test.js +0 -29
  574. package/dist/test/unit/nextjs/NextAuthProvider.test.js.map +0 -1
  575. package/dist/test/unit/nextjs/config.test.d.ts +0 -2
  576. package/dist/test/unit/nextjs/config.test.d.ts.map +0 -1
  577. package/dist/test/unit/nextjs/config.test.js +0 -189
  578. package/dist/test/unit/nextjs/config.test.js.map +0 -1
  579. package/dist/test/unit/nextjs/getUser.test.d.ts +0 -2
  580. package/dist/test/unit/nextjs/getUser.test.d.ts.map +0 -1
  581. package/dist/test/unit/nextjs/getUser.test.js +0 -36
  582. package/dist/test/unit/nextjs/getUser.test.js.map +0 -1
  583. package/dist/test/unit/nextjs/middleware.test.d.ts +0 -2
  584. package/dist/test/unit/nextjs/middleware.test.d.ts.map +0 -1
  585. package/dist/test/unit/nextjs/middleware.test.js +0 -113
  586. package/dist/test/unit/nextjs/middleware.test.js.map +0 -1
  587. package/dist/test/unit/nextjs/utils.test.d.ts +0 -2
  588. package/dist/test/unit/nextjs/utils.test.d.ts.map +0 -1
  589. package/dist/test/unit/nextjs/utils.test.js +0 -13
  590. package/dist/test/unit/nextjs/utils.test.js.map +0 -1
  591. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts +0 -2
  592. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts.map +0 -1
  593. package/dist/test/unit/publicApi/apiSnapshot.test.js +0 -10
  594. package/dist/test/unit/publicApi/apiSnapshot.test.js.map +0 -1
  595. package/dist/test/unit/react/components/SignInButton.test.d.ts +0 -2
  596. package/dist/test/unit/react/components/SignInButton.test.d.ts.map +0 -1
  597. package/dist/test/unit/react/components/SignInButton.test.js +0 -31
  598. package/dist/test/unit/react/components/SignInButton.test.js.map +0 -1
  599. package/dist/test/unit/react/components/SignOutButton.test.d.ts +0 -2
  600. package/dist/test/unit/react/components/SignOutButton.test.d.ts.map +0 -1
  601. package/dist/test/unit/react/components/SignOutButton.test.js +0 -30
  602. package/dist/test/unit/react/components/SignOutButton.test.js.map +0 -1
  603. package/dist/test/unit/server/login.test.d.ts +0 -2
  604. package/dist/test/unit/server/login.test.d.ts.map +0 -1
  605. package/dist/test/unit/server/login.test.js +0 -127
  606. package/dist/test/unit/server/login.test.js.map +0 -1
  607. package/dist/test/unit/server/session.test.d.ts +0 -2
  608. package/dist/test/unit/server/session.test.d.ts.map +0 -1
  609. package/dist/test/unit/server/session.test.js +0 -41
  610. package/dist/test/unit/server/session.test.js.map +0 -1
  611. package/dist/test/unit/services/AuthenticationService.test.d.ts +0 -2
  612. package/dist/test/unit/services/AuthenticationService.test.d.ts.map +0 -1
  613. package/dist/test/unit/services/AuthenticationService.test.js +0 -104
  614. package/dist/test/unit/services/AuthenticationService.test.js.map +0 -1
  615. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts +0 -2
  616. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts.map +0 -1
  617. package/dist/test/unit/services/ServerAuthenticationResolver.test.js +0 -74
  618. package/dist/test/unit/services/ServerAuthenticationResolver.test.js.map +0 -1
  619. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts +0 -2
  620. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts.map +0 -1
  621. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js +0 -61
  622. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js.map +0 -1
  623. package/dist/test/unit/shared/UserSession.test.d.ts +0 -2
  624. package/dist/test/unit/shared/UserSession.test.d.ts.map +0 -1
  625. package/dist/test/unit/shared/UserSession.test.js +0 -37
  626. package/dist/test/unit/shared/UserSession.test.js.map +0 -1
  627. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts +0 -2
  628. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts.map +0 -1
  629. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js +0 -120
  630. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js.map +0 -1
  631. package/dist/test/unit/shared/storage.test.d.ts +0 -2
  632. package/dist/test/unit/shared/storage.test.d.ts.map +0 -1
  633. package/dist/test/unit/shared/storage.test.js +0 -53
  634. package/dist/test/unit/shared/storage.test.js.map +0 -1
  635. package/dist/test/unit/utils.test.d.ts +0 -2
  636. package/dist/test/unit/utils.test.d.ts.map +0 -1
  637. package/dist/test/unit/utils.test.js +0 -40
  638. package/dist/test/unit/utils.test.js.map +0 -1
  639. package/dist/vitest.config.d.ts +0 -3
  640. package/dist/vitest.config.d.ts.map +0 -1
  641. package/dist/vitest.config.js +0 -40
  642. package/dist/vitest.config.js.map +0 -1
  643. package/src/browser/storage.ts +0 -11
  644. package/src/config.ts +0 -6
  645. package/src/constants.ts +0 -29
  646. package/src/index.ts +0 -16
  647. package/src/lib/cookies.ts +0 -28
  648. package/src/lib/jwt.ts +0 -15
  649. package/src/lib/logger.ts +0 -72
  650. package/src/lib/oauth.ts +0 -83
  651. package/src/lib/postMessage.ts +0 -22
  652. package/src/lib/windowUtil.ts +0 -29
  653. package/src/nextjs/GetUser.ts +0 -22
  654. package/src/nextjs/config.ts +0 -203
  655. package/src/nextjs/cookies.ts +0 -162
  656. package/src/nextjs/hooks/index.ts +0 -1
  657. package/src/nextjs/hooks/useTokenCookie.ts +0 -41
  658. package/src/nextjs/hooks/useUserCookie.ts +0 -41
  659. package/src/nextjs/index.ts +0 -20
  660. package/src/nextjs/middleware/index.ts +0 -1
  661. package/src/nextjs/middleware.ts +0 -155
  662. package/src/nextjs/providers/NextAuthProvider.tsx +0 -87
  663. package/src/nextjs/routeHandler.ts +0 -297
  664. package/src/nextjs/utils.ts +0 -9
  665. package/src/reactjs/components/SignInButton.tsx +0 -32
  666. package/src/reactjs/components/SignOutButton.tsx +0 -24
  667. package/src/reactjs/components/UserButton.tsx +0 -239
  668. package/src/reactjs/components/index.ts +0 -5
  669. package/src/reactjs/hooks/index.ts +0 -6
  670. package/src/reactjs/hooks/useAuth.ts +0 -15
  671. package/src/reactjs/hooks/useUser.ts +0 -20
  672. package/src/reactjs/index.ts +0 -19
  673. package/src/reactjs/providers/index.ts +0 -27
  674. package/src/server/ServerAuthenticationResolver.ts +0 -107
  675. package/src/server/config.ts +0 -9
  676. package/src/server/index.ts +0 -13
  677. package/src/server/login.ts +0 -59
  678. package/src/server/refresh.ts +0 -23
  679. package/src/services/AuthenticationService.ts +0 -329
  680. package/src/services/PKCE.ts +0 -45
  681. package/src/services/types.ts +0 -54
  682. package/src/shared/components/CivicAuthIframe.tsx +0 -26
  683. package/src/shared/components/CivicAuthIframeContainer.tsx +0 -195
  684. package/src/shared/components/CloseIcon.tsx +0 -21
  685. package/src/shared/components/LoadingIcon.tsx +0 -53
  686. package/src/shared/hooks/index.ts +0 -4
  687. package/src/shared/hooks/useAuth.ts +0 -15
  688. package/src/shared/hooks/useConfig.ts +0 -14
  689. package/src/shared/hooks/useIframe.ts +0 -14
  690. package/src/shared/hooks/useSession.ts +0 -14
  691. package/src/shared/hooks/useToken.ts +0 -15
  692. package/src/shared/lib/GenericAuthenticationRefresher.ts +0 -75
  693. package/src/shared/lib/UserSession.ts +0 -25
  694. package/src/shared/lib/session.ts +0 -11
  695. package/src/shared/lib/storage.ts +0 -40
  696. package/src/shared/lib/types.ts +0 -26
  697. package/src/shared/lib/util.ts +0 -212
  698. package/src/shared/providers/AuthContext.tsx +0 -11
  699. package/src/shared/providers/AuthProvider.tsx +0 -397
  700. package/src/shared/providers/CivicAuthProvider.tsx +0 -31
  701. package/src/shared/providers/ConfigProvider.tsx +0 -50
  702. package/src/shared/providers/IframeProvider.tsx +0 -34
  703. package/src/shared/providers/SessionProvider.tsx +0 -29
  704. package/src/shared/providers/TokenProvider.tsx +0 -78
  705. package/src/shared/providers/UserProvider.tsx +0 -80
  706. package/src/types.ts +0 -227
  707. package/src/utils.ts +0 -58
  708. package/test/integration/sdk.test.tsx +0 -266
  709. package/test/support/fixtures.ts +0 -56
  710. package/test/support/tokens.json +0 -26
  711. package/test/unit/lib/oauth.test.ts +0 -72
  712. package/test/unit/logger.test.ts +0 -175
  713. package/test/unit/nextjs/NextAuthProvider.test.tsx +0 -38
  714. package/test/unit/nextjs/config.test.ts +0 -218
  715. package/test/unit/nextjs/getUser.test.ts +0 -41
  716. package/test/unit/nextjs/middleware.test.ts +0 -138
  717. package/test/unit/nextjs/routeHandler.test.ts.skipped +0 -369
  718. package/test/unit/nextjs/utils.test.ts +0 -17
  719. package/test/unit/publicApi/__snapshots__/apiSnapshot.test.ts.snap +0 -17
  720. package/test/unit/publicApi/apiSnapshot.test.ts +0 -11
  721. package/test/unit/react/components/SignInButton.test.tsx +0 -50
  722. package/test/unit/react/components/SignOutButton.test.tsx +0 -49
  723. package/test/unit/server/login.test.ts +0 -181
  724. package/test/unit/server/session.test.ts +0 -51
  725. package/test/unit/services/AuthenticationService.test.ts +0 -152
  726. package/test/unit/services/ServerAuthenticationResolver.test.ts +0 -115
  727. package/test/unit/shared/GenericAuthenticationRefresher.test.ts +0 -89
  728. package/test/unit/shared/UserSession.test.ts +0 -42
  729. package/test/unit/shared/components/CivicAuthIframeContainer.test.tsx +0 -154
  730. package/test/unit/shared/storage.test.ts +0 -67
  731. package/test/unit/utils.test.ts +0 -48
  732. package/tsconfig.build.json +0 -9
  733. package/tsconfig.cjs.json +0 -8
  734. package/tsconfig.esm.json +0 -7
  735. package/tsconfig.json +0 -42
  736. package/tsconfig.tsbuildinfo +0 -1
  737. package/vitest.config.ts +0 -41
@@ -1,397 +0,0 @@
1
- "use client";
2
-
3
- import React, {
4
- type ReactNode,
5
- useCallback,
6
- useEffect,
7
- useMemo,
8
- useRef,
9
- useState,
10
- } from "react";
11
- import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
12
- import type { Config, DisplayMode, SessionData } from "@/types.js";
13
- import { CivicAuthIframeContainer } from "@/shared/components/CivicAuthIframeContainer.js";
14
- import { TokenProvider } from "@/shared/providers/TokenProvider.js";
15
- import { SessionProvider } from "@/shared/providers/SessionProvider.js";
16
- import { DEFAULT_SCOPES } from "@/constants.js";
17
- import { authConfig } from "@/config.js";
18
- import { LoadingIcon } from "@/shared/components/LoadingIcon.js";
19
- import { isWindowInIframe } from "@/lib/windowUtil.js";
20
- import { AuthContext } from "@/shared/providers/AuthContext.js";
21
- import {
22
- BrowserAuthenticationInitiator,
23
- BrowserAuthenticationService,
24
- } from "@/services/AuthenticationService.js";
25
- import type { AuthenticationResolver, PKCEConsumer } from "@/services/types.js";
26
- import { PopupError } from "@/services/types.js";
27
- import { ConfidentialClientPKCEConsumer } from "@/services/PKCE.js";
28
- import { generateState } from "@/lib/oauth.js";
29
- import { LocalStorageAdapter } from "@/browser/storage.js";
30
- import { ConfigProvider } from "@/shared/providers/ConfigProvider.js";
31
- import { getUser } from "../lib/session.js";
32
- import { GenericUserSession } from "../lib/UserSession.js";
33
- import { IframeProvider } from "@/shared/providers/IframeProvider.js";
34
-
35
- // Global this object setup
36
- let globalThisObject;
37
- if (typeof window !== "undefined") {
38
- globalThisObject = window;
39
- } else if (typeof global !== "undefined") {
40
- globalThisObject = global;
41
- } else {
42
- globalThisObject = Function("return this")();
43
- }
44
- globalThisObject.globalThis = globalThisObject;
45
-
46
- export type AuthProviderProps = {
47
- children: ReactNode;
48
- clientId: string;
49
- nonce?: string;
50
- onSignIn?: (error?: Error) => void;
51
- onSignOut?: () => Promise<void>;
52
- modalIframe?: boolean; // set to false if the iframe is being embedded in the client app
53
- config?: Config;
54
- redirectUrl?: string;
55
- };
56
-
57
- export type InternalAuthProviderProps = AuthProviderProps & {
58
- sessionData?: SessionData;
59
- pkceConsumer?: PKCEConsumer;
60
- };
61
-
62
- function BlockDisplay({ children }: { children: ReactNode }) {
63
- return (
64
- <div
65
- id="iframe-block-display-wrapper"
66
- style={{
67
- position: "relative",
68
- left: 0,
69
- top: 0,
70
- zIndex: 50,
71
- display: "flex",
72
- height: "100vh",
73
- width: "100vw",
74
- alignItems: "center",
75
- justifyContent: "center",
76
- backgroundColor: "white",
77
- }}
78
- >
79
- <div
80
- id="iframe-block-display"
81
- style={{
82
- position: "absolute",
83
- inset: 0,
84
- display: "flex",
85
- alignItems: "center",
86
- justifyContent: "center",
87
- backgroundColor: "white",
88
- }}
89
- >
90
- {children}
91
- </div>
92
- </div>
93
- );
94
- }
95
-
96
- const AuthProvider = ({
97
- children,
98
- clientId,
99
- redirectUrl: inputRedirectUrl,
100
- config = authConfig,
101
- onSignIn,
102
- onSignOut,
103
- pkceConsumer,
104
- nonce,
105
- modalIframe = true,
106
- sessionData: inputSessionData,
107
- }: InternalAuthProviderProps) => {
108
- const [iframeUrl, setIframeUrl] = useState<string | null>(null);
109
- const [currentUrl, setCurrentUrl] = useState<string | null>(null);
110
- const [isInIframe, setIsInIframe] = useState(false);
111
- const [authResponseUrl, setAuthResponseUrl] = useState<string | null>(null);
112
- const [tokenExchangeError, setTokenExchangeError] = useState<Error>();
113
- const [displayMode, setDisplayMode] = useState<DisplayMode>("iframe");
114
- const [browserAuthenticationInitiator, setBrowserAuthenticationInitiator] =
115
- useState<BrowserAuthenticationInitiator | null>();
116
- const [showIFrame, setShowIFrame] = useState(false);
117
- const [isRedirecting, setIsRedirecting] = useState(false);
118
- const queryClient = useQueryClient();
119
- const iframeRef = useRef<HTMLIFrameElement>(null);
120
-
121
- // TODO maybe we want to support or derive serverTokenExchange another way?
122
- const serverTokenExchange =
123
- pkceConsumer instanceof ConfidentialClientPKCEConsumer;
124
- // check if the current window is in an iframe with the iframe id, and set an isInIframe state
125
- useEffect(() => {
126
- if (typeof globalThis.window !== "undefined") {
127
- setCurrentUrl(globalThis.window.location.href);
128
- const isInIframeVal = isWindowInIframe(globalThis.window);
129
- setIsInIframe(isInIframeVal);
130
- }
131
- }, []);
132
-
133
- const redirectUrl = useMemo(
134
- () => (inputRedirectUrl || currentUrl || "").split("?")[0],
135
- [currentUrl, inputRedirectUrl],
136
- );
137
-
138
- const [authService, setAuthService] = useState<AuthenticationResolver>();
139
-
140
- useEffect(() => {
141
- if (!currentUrl || !redirectUrl) return;
142
- BrowserAuthenticationService.build({
143
- clientId,
144
- redirectUrl,
145
- oauthServer: config.oauthServer,
146
- scopes: DEFAULT_SCOPES,
147
- displayMode,
148
- }).then(setAuthService);
149
- }, [currentUrl, clientId, redirectUrl, config, displayMode]);
150
-
151
- const {
152
- data: session,
153
- isLoading,
154
- error,
155
- } = useQuery({
156
- queryKey: [
157
- "session",
158
- authResponseUrl,
159
- iframeUrl,
160
- currentUrl,
161
- isInIframe,
162
- authService,
163
- ],
164
- queryFn: async () => {
165
- if (!authService) {
166
- return { authenticated: false };
167
- }
168
- if (inputSessionData) {
169
- return inputSessionData;
170
- }
171
- const url = new URL(
172
- authResponseUrl
173
- ? authResponseUrl
174
- : globalThis.window.location.href || "",
175
- );
176
- // if we have existing tokens, then validate them and return the session data
177
- // otherwise check if we have a code in the url and exchange it for tokens
178
- // if we have neither, return undefined
179
- const existingSessionData = await authService.validateExistingSession();
180
- if (existingSessionData.authenticated) {
181
- return existingSessionData;
182
- }
183
- const code = url.searchParams.get("code");
184
- const state = url.searchParams.get("state");
185
- if (!serverTokenExchange && code && state && !isInIframe) {
186
- try {
187
- await authService.tokenExchange(code, state);
188
- const clientStorage = new LocalStorageAdapter();
189
- const user = await getUser(clientStorage);
190
- if (!user) {
191
- throw new Error("Failed to get user info");
192
- }
193
-
194
- const userSession = new GenericUserSession(clientStorage);
195
- userSession.set(user);
196
-
197
- onSignIn?.(); // Call onSignIn without an error if successful
198
- return authService.getSessionData();
199
- } catch (error) {
200
- setTokenExchangeError(error as Error);
201
- onSignIn?.(
202
- error instanceof Error ? error : new Error("Failed to sign in"),
203
- ); // Pass the error to onSignIn
204
- return { authenticated: false };
205
- }
206
- }
207
-
208
- return existingSessionData;
209
- },
210
- });
211
-
212
- const signOutMutation = useMutation({
213
- mutationFn: async () => {
214
- await onSignOut?.();
215
- // Implement signOut logic here
216
- const authInitiator = getAuthInitiator();
217
- await authInitiator?.signOut();
218
- setIframeUrl(null);
219
- setShowIFrame(false);
220
- setAuthResponseUrl(null);
221
- },
222
- onSuccess: () => {
223
- queryClient.setQueryData(
224
- [
225
- "session",
226
- authResponseUrl,
227
- iframeUrl,
228
- currentUrl,
229
- isInIframe,
230
- authService,
231
- ],
232
- null,
233
- );
234
- },
235
- });
236
-
237
- const getAuthInitiator = useCallback(
238
- (overrideDisplayMode?: DisplayMode) => {
239
- const useDisplayMode = overrideDisplayMode || displayMode;
240
-
241
- if (!pkceConsumer || !redirectUrl) {
242
- return null;
243
- }
244
-
245
- return new BrowserAuthenticationInitiator({
246
- pkceConsumer, // generate and retrieve the challenge client-side
247
- clientId,
248
- redirectUrl,
249
- state: generateState(useDisplayMode, serverTokenExchange),
250
- scopes: DEFAULT_SCOPES,
251
- displayMode: useDisplayMode,
252
- oauthServer: config.oauthServer,
253
- // the endpoints to use for the login (if not obtained from the auth server
254
- endpointOverrides: config.endpoints,
255
- nonce,
256
- });
257
- },
258
- [
259
- serverTokenExchange,
260
- displayMode,
261
- clientId,
262
- redirectUrl,
263
- config.oauthServer,
264
- config.endpoints,
265
- pkceConsumer,
266
- nonce,
267
- ],
268
- );
269
-
270
- const signIn = useCallback(
271
- async (overrideDisplayMode: DisplayMode = "iframe") => {
272
- setDisplayMode(overrideDisplayMode);
273
- const authInitiator = getAuthInitiator(overrideDisplayMode);
274
- setBrowserAuthenticationInitiator(authInitiator);
275
- if (overrideDisplayMode === "iframe") {
276
- setShowIFrame(true);
277
- } else if (overrideDisplayMode === "redirect") {
278
- setIsRedirecting(true);
279
- }
280
-
281
- if (!authInitiator) {
282
- throw new Error("Failed to get auth initiator");
283
- }
284
-
285
- authInitiator.signIn(iframeRef.current).catch((error) => {
286
- console.log("signIn error", {
287
- error,
288
- isPopupError: error instanceof PopupError,
289
- });
290
- // if we've tried to open a popup and it has failed, then fallback to redirect mode
291
- if (error instanceof PopupError) {
292
- signIn("redirect");
293
- }
294
- });
295
- },
296
- [getAuthInitiator],
297
- );
298
-
299
- // remove event listeners when the component unmounts
300
- useEffect(() => {
301
- return () => {
302
- if (browserAuthenticationInitiator) {
303
- browserAuthenticationInitiator.cleanup();
304
- }
305
- };
306
- }, [browserAuthenticationInitiator]);
307
-
308
- const isAuthenticated = useMemo(
309
- () => (session ? session.authenticated : false),
310
- [session],
311
- );
312
-
313
- useQuery({
314
- queryKey: ["autoSignIn", modalIframe, redirectUrl, isAuthenticated],
315
- queryFn: async () => {
316
- if (
317
- !modalIframe &&
318
- redirectUrl &&
319
- !isAuthenticated &&
320
- iframeRef.current
321
- ) {
322
- signIn("iframe");
323
- }
324
- return true;
325
- },
326
- refetchOnWindowFocus: false,
327
- });
328
-
329
- const value = useMemo(
330
- () => ({
331
- isLoading,
332
- error: error as Error | null,
333
- signOut: async () => {
334
- await signOutMutation.mutateAsync();
335
- },
336
- isAuthenticated,
337
- signIn,
338
- }),
339
- [isLoading, error, signOutMutation, isAuthenticated, signIn],
340
- );
341
-
342
- if (!redirectUrl) return null;
343
-
344
- const showIframeLoadingOverlay =
345
- modalIframe &&
346
- (isInIframe || isRedirecting || (isLoading && !serverTokenExchange));
347
- const showErrorOverlay = tokenExchangeError || error;
348
- return (
349
- <AuthContext.Provider value={value}>
350
- <ConfigProvider
351
- config={config}
352
- redirectUrl={redirectUrl}
353
- modalIframe={modalIframe}
354
- serverTokenExchange={serverTokenExchange}
355
- >
356
- <IframeProvider
357
- setAuthResponseUrl={setAuthResponseUrl}
358
- iframeRef={iframeRef}
359
- >
360
- <SessionProvider session={session}>
361
- <TokenProvider>
362
- {modalIframe && !isInIframe && !session?.authenticated && (
363
- <div
364
- style={
365
- showIFrame ? { display: "block" } : { display: "none" }
366
- }
367
- >
368
- <CivicAuthIframeContainer
369
- onClose={() => setShowIFrame(false)}
370
- />
371
- </div>
372
- )}
373
-
374
- {showErrorOverlay && (
375
- <BlockDisplay>
376
- <div>
377
- Error: {(tokenExchangeError || (error as Error)).message}
378
- </div>
379
- </BlockDisplay>
380
- )}
381
-
382
- {showIframeLoadingOverlay && !showErrorOverlay && (
383
- <BlockDisplay>
384
- <LoadingIcon />
385
- </BlockDisplay>
386
- )}
387
-
388
- {children}
389
- </TokenProvider>
390
- </SessionProvider>
391
- </IframeProvider>
392
- </ConfigProvider>
393
- </AuthContext.Provider>
394
- );
395
- };
396
-
397
- export { AuthProvider };
@@ -1,31 +0,0 @@
1
- "use client";
2
- import React from "react";
3
- import {
4
- AuthProvider,
5
- type AuthProviderProps,
6
- } from "@/shared/providers/AuthProvider.js";
7
- import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
8
- import { BrowserPublicClientPKCEProducer } from "@/services/PKCE.js";
9
- import { UserProvider } from "./UserProvider.js";
10
- import { LocalStorageAdapter } from "@/browser/storage.js";
11
-
12
- const queryClient = new QueryClient();
13
-
14
- type CivicAuthProviderProps = Omit<AuthProviderProps, "pkceConsumer">;
15
-
16
- const CivicAuthProvider = ({ children, ...props }: CivicAuthProviderProps) => {
17
- return (
18
- <QueryClientProvider client={queryClient}>
19
- <AuthProvider
20
- {...props}
21
- pkceConsumer={new BrowserPublicClientPKCEProducer()}
22
- >
23
- <UserProvider storage={new LocalStorageAdapter()}>
24
- {children}
25
- </UserProvider>
26
- </AuthProvider>
27
- </QueryClientProvider>
28
- );
29
- };
30
-
31
- export { CivicAuthProvider, type CivicAuthProviderProps };
@@ -1,50 +0,0 @@
1
- "use client";
2
- import { authConfig } from "@/config.js";
3
- import type { Config } from "@/types.js";
4
- import type { ReactNode } from "react";
5
- import React, { createContext } from "react";
6
-
7
- export type ConfigProviderOutput = {
8
- config: Config;
9
- redirectUrl: string;
10
- modalIframe: boolean;
11
- serverTokenExchange: boolean;
12
- };
13
- const defaultConfig: ConfigProviderOutput = {
14
- config: authConfig,
15
- redirectUrl: "",
16
- modalIframe: true,
17
- serverTokenExchange: false,
18
- };
19
- // Context for exposing Config specifically to the TokenProvider
20
- const ConfigContext = createContext<ConfigProviderOutput>(defaultConfig);
21
-
22
- type ConfigContextType = {
23
- children: ReactNode;
24
- config: Config;
25
- redirectUrl: string;
26
- modalIframe?: boolean;
27
- serverTokenExchange: boolean;
28
- };
29
-
30
- const ConfigProvider = ({
31
- children,
32
- config,
33
- redirectUrl,
34
- modalIframe,
35
- serverTokenExchange,
36
- }: ConfigContextType) => (
37
- <ConfigContext.Provider
38
- value={{
39
- config,
40
- redirectUrl,
41
- modalIframe: !!modalIframe,
42
- serverTokenExchange,
43
- }}
44
- >
45
- {children}
46
- </ConfigContext.Provider>
47
- );
48
-
49
- export type { ConfigContextType };
50
- export { ConfigProvider, ConfigContext };
@@ -1,34 +0,0 @@
1
- "use client";
2
- import type { Dispatch, ReactNode, RefObject, SetStateAction } from "react";
3
- import React, { createContext } from "react";
4
-
5
- export type IframeProviderOutput = {
6
- iframeRef: RefObject<HTMLIFrameElement> | null;
7
- setAuthResponseUrl: Dispatch<SetStateAction<string | null>>;
8
- };
9
- const defaultIframe: IframeProviderOutput = {
10
- iframeRef: null,
11
- setAuthResponseUrl: () => {},
12
- };
13
-
14
- // Context for exposing Iframe specifically to the TokenProvider
15
- const IframeContext = createContext<IframeProviderOutput>(defaultIframe);
16
-
17
- type IframeContextType = {
18
- children: ReactNode;
19
- iframeRef: RefObject<HTMLIFrameElement> | null;
20
- setAuthResponseUrl: Dispatch<SetStateAction<string | null>>;
21
- };
22
-
23
- const IframeProvider = ({
24
- children,
25
- iframeRef,
26
- setAuthResponseUrl,
27
- }: IframeContextType) => (
28
- <IframeContext.Provider value={{ iframeRef, setAuthResponseUrl }}>
29
- {children}
30
- </IframeContext.Provider>
31
- );
32
-
33
- export type { IframeContextType };
34
- export { IframeProvider, IframeContext };
@@ -1,29 +0,0 @@
1
- "use client";
2
- import type { SessionData } from "@/types.js";
3
- import type { ReactNode } from "react";
4
- import React, { createContext } from "react";
5
-
6
- export type SessionProviderOutput = SessionData;
7
- const defaultSession: SessionProviderOutput = {
8
- authenticated: false,
9
- idToken: undefined,
10
- accessToken: undefined,
11
- displayMode: "iframe",
12
- };
13
-
14
- // Context for exposing session specifically to the TokenProvider
15
- const SessionContext = createContext<SessionProviderOutput>(defaultSession);
16
-
17
- type SessionContextType = {
18
- children: ReactNode;
19
- session?: SessionData | null;
20
- };
21
-
22
- const SessionProvider = ({ children, session }: SessionContextType) => (
23
- <SessionContext.Provider value={{ ...defaultSession, ...(session || {}) }}>
24
- {children}
25
- </SessionContext.Provider>
26
- );
27
-
28
- export type { SessionContextType };
29
- export { SessionProvider, SessionContext };
@@ -1,78 +0,0 @@
1
- "use client";
2
- import type { ReactNode } from "react";
3
- import React, { createContext, useMemo } from "react";
4
- import { useMutation, useQueryClient } from "@tanstack/react-query";
5
- import { useAuth } from "@/shared/hooks/useAuth.js";
6
- import { useSession } from "@/shared/hooks/useSession.js";
7
- import type { ForwardedTokens, IdToken } from "@/types.js";
8
- import { parseJWT } from "oslo/jwt";
9
- import { convertForwardedTokenFormat } from "@/lib/jwt.js";
10
-
11
- type TokenContextType = {
12
- accessToken: string | null;
13
- idToken: string | null;
14
- forwardedTokens: ForwardedTokens;
15
- refreshToken: () => Promise<void>;
16
- isLoading: boolean;
17
- error: Error | null;
18
- };
19
-
20
- const TokenContext = createContext<TokenContextType | undefined>(undefined);
21
-
22
- const TokenProvider = ({ children }: { children: ReactNode }) => {
23
- const { isLoading, error: authError } = useAuth();
24
- const session = useSession();
25
- const queryClient = useQueryClient();
26
-
27
- const refreshTokenMutation = useMutation({
28
- mutationFn: async () => {
29
- // Implement token refresh logic here
30
- throw new Error("Method not implemented.");
31
- },
32
- onSuccess: () => {
33
- // Invalidate and refetch queries that depend on the auth session
34
- queryClient.invalidateQueries({ queryKey: ["session"] });
35
- },
36
- });
37
-
38
- const decodeTokens = useMemo(() => {
39
- if (!session?.idToken) return null;
40
-
41
- const parsedJWT = parseJWT(session.idToken) as IdToken | null;
42
-
43
- if (!parsedJWT) return null;
44
-
45
- const { forwardedTokens } = parsedJWT.payload;
46
-
47
- return forwardedTokens
48
- ? convertForwardedTokenFormat(forwardedTokens)
49
- : null;
50
- }, [session?.idToken]);
51
-
52
- const value = useMemo(
53
- () => ({
54
- accessToken: session.accessToken || null,
55
- idToken: session.idToken || null,
56
- forwardedTokens: decodeTokens || {},
57
- refreshToken: refreshTokenMutation.mutateAsync,
58
- isLoading,
59
- error: (authError || refreshTokenMutation.error) as Error | null,
60
- }),
61
- [
62
- session.accessToken,
63
- session.idToken,
64
- decodeTokens,
65
- refreshTokenMutation.mutateAsync,
66
- refreshTokenMutation.error,
67
- isLoading,
68
- authError,
69
- ],
70
- );
71
-
72
- return (
73
- <TokenContext.Provider value={value}>{children}</TokenContext.Provider>
74
- );
75
- };
76
-
77
- export type { TokenContextType };
78
- export { TokenProvider, TokenContext };
@@ -1,80 +0,0 @@
1
- "use client";
2
-
3
- import React, { createContext } from "react";
4
- import type { ReactNode } from "react";
5
- import type { UseQueryResult } from "@tanstack/react-query";
6
- import { useQuery } from "@tanstack/react-query";
7
- import type { JWT } from "oslo/jwt";
8
- import type { AuthStorage, EmptyObject, User } from "@/types.js";
9
- import { useAuth } from "@/shared/hooks/useAuth.js";
10
- import { useToken } from "@/shared/hooks/useToken.js";
11
- import { useSession } from "@/shared/hooks/useSession.js";
12
- import type { AuthContextType } from "@/shared/providers/AuthContext.js";
13
- import { GenericUserSession } from "@/shared/lib/UserSession.js";
14
-
15
- type UserContextType<
16
- T extends Record<string, unknown> & JWT["payload"] = Record<string, unknown> &
17
- JWT["payload"],
18
- > = {
19
- user: User<T> | null;
20
- } & Omit<AuthContextType, "isAuthenticated">;
21
-
22
- const UserContext = createContext<UserContextType | null>(null);
23
-
24
- const UserProvider = <T extends EmptyObject>({
25
- children,
26
- storage,
27
- user: inputUser,
28
- signOut: inputSignOut,
29
- }: {
30
- children: ReactNode;
31
- storage: AuthStorage;
32
- user?: User<T> | null;
33
- signOut?: () => Promise<void>;
34
- }) => {
35
- const { isLoading: authLoading, error: authError } = useAuth();
36
- const session = useSession();
37
- const { accessToken, idToken } = useToken();
38
- const { signIn, signOut } = useAuth();
39
-
40
- const fetchUser = async (): Promise<User | null> => {
41
- if (!accessToken) {
42
- return null;
43
- }
44
- const userSession = new GenericUserSession(storage);
45
- return userSession.get();
46
- };
47
-
48
- const {
49
- data: user,
50
- isLoading: userLoading,
51
- error: userError,
52
- }: UseQueryResult<User<T> | null, Error> = useQuery({
53
- queryKey: ["user", session?.idToken],
54
- queryFn: fetchUser,
55
- enabled: !!session?.idToken, // Only run the query if we have an access token
56
- });
57
-
58
- const isLoading = authLoading || userLoading;
59
- const error = authError || userError;
60
-
61
- const userWithIdToken = user ? { ...user, idToken } : null;
62
-
63
- return (
64
- <UserContext.Provider
65
- value={{
66
- user: (inputUser || userWithIdToken) ?? null,
67
- isLoading,
68
- error,
69
- signIn,
70
- signOut: inputSignOut || signOut,
71
- }}
72
- >
73
- {children}
74
- </UserContext.Provider>
75
- );
76
- };
77
-
78
- export type { UserContextType };
79
-
80
- export { UserProvider, UserContext };