@civic/auth 0.3.5-temp-debug-logs.2 → 0.3.6-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 (975) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/browser/storage.d.ts.map +1 -0
  3. package/dist/browser/storage.js.map +1 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/constants.d.ts +15 -0
  7. package/dist/constants.d.ts.map +1 -0
  8. package/dist/constants.js +29 -0
  9. package/dist/constants.js.map +1 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/lib/cookies.d.ts.map +1 -0
  13. package/dist/lib/cookies.js.map +1 -0
  14. package/dist/lib/jwt.d.ts.map +1 -0
  15. package/dist/lib/jwt.js.map +1 -0
  16. package/dist/lib/logger.d.ts.map +1 -0
  17. package/dist/lib/logger.js.map +1 -0
  18. package/dist/lib/oauth.d.ts.map +1 -0
  19. package/dist/lib/oauth.js.map +1 -0
  20. package/dist/lib/obj.d.ts.map +1 -0
  21. package/dist/lib/obj.js.map +1 -0
  22. package/dist/lib/postMessage.d.ts.map +1 -0
  23. package/dist/lib/postMessage.js +13 -0
  24. package/dist/lib/postMessage.js.map +1 -0
  25. package/dist/lib/windowUtil.d.ts.map +1 -0
  26. package/dist/lib/windowUtil.js.map +1 -0
  27. package/dist/nextjs/NextClientAuthenticationRefresher.d.ts.map +1 -0
  28. package/dist/nextjs/NextClientAuthenticationRefresher.js.map +1 -0
  29. package/dist/nextjs/NextServerAuthenticationRefresherImpl.d.ts +11 -0
  30. package/dist/nextjs/NextServerAuthenticationRefresherImpl.d.ts.map +1 -0
  31. package/dist/nextjs/NextServerAuthenticationRefresherImpl.js +17 -0
  32. package/dist/nextjs/NextServerAuthenticationRefresherImpl.js.map +1 -0
  33. package/dist/nextjs/config.d.ts.map +1 -0
  34. package/dist/nextjs/config.js.map +1 -0
  35. package/dist/nextjs/cookies.d.ts +16 -0
  36. package/dist/nextjs/cookies.d.ts.map +1 -0
  37. package/dist/nextjs/cookies.js +41 -0
  38. package/dist/nextjs/cookies.js.map +1 -0
  39. package/dist/nextjs/hooks/index.d.ts.map +1 -0
  40. package/dist/nextjs/hooks/index.js.map +1 -0
  41. package/dist/nextjs/hooks/usePrevious.d.ts.map +1 -0
  42. package/dist/nextjs/hooks/usePrevious.js.map +1 -0
  43. package/dist/nextjs/hooks/useRefresh.d.ts.map +1 -0
  44. package/dist/nextjs/hooks/useRefresh.js.map +1 -0
  45. package/dist/nextjs/hooks/useUserCookie.d.ts.map +1 -0
  46. package/dist/nextjs/hooks/useUserCookie.js.map +1 -0
  47. package/dist/nextjs/index.d.ts.map +1 -0
  48. package/dist/nextjs/index.js.map +1 -0
  49. package/dist/nextjs/middleware/index.d.ts.map +1 -0
  50. package/dist/nextjs/middleware/index.js.map +1 -0
  51. package/dist/nextjs/middleware.d.ts.map +1 -0
  52. package/dist/nextjs/middleware.js +101 -0
  53. package/dist/nextjs/middleware.js.map +1 -0
  54. package/dist/nextjs/providers/NextAuthProvider.d.ts.map +1 -0
  55. package/dist/nextjs/providers/NextAuthProvider.js.map +1 -0
  56. package/dist/nextjs/routeHandler.d.ts.map +1 -0
  57. package/dist/nextjs/routeHandler.js +312 -0
  58. package/dist/nextjs/routeHandler.js.map +1 -0
  59. package/dist/nextjs/utils.d.ts.map +1 -0
  60. package/dist/nextjs/utils.js.map +1 -0
  61. package/dist/reactjs/components/ButtonContentOrLoader.d.ts.map +1 -0
  62. package/dist/reactjs/components/ButtonContentOrLoader.js.map +1 -0
  63. package/dist/reactjs/components/SignInButton.d.ts.map +1 -0
  64. package/dist/reactjs/components/SignInButton.js.map +1 -0
  65. package/dist/reactjs/components/SignOutButton.d.ts.map +1 -0
  66. package/dist/reactjs/components/SignOutButton.js.map +1 -0
  67. package/dist/reactjs/components/UserButton.d.ts.map +1 -0
  68. package/dist/reactjs/components/UserButton.js +142 -0
  69. package/dist/reactjs/components/UserButton.js.map +1 -0
  70. package/dist/reactjs/components/index.d.ts.map +1 -0
  71. package/dist/reactjs/components/index.js.map +1 -0
  72. package/dist/reactjs/components/utils.d.ts.map +1 -0
  73. package/dist/reactjs/components/utils.js.map +1 -0
  74. package/dist/reactjs/hooks/index.d.ts.map +1 -0
  75. package/dist/reactjs/hooks/index.js.map +1 -0
  76. package/dist/reactjs/hooks/useClientTokenExchangeSession.d.ts.map +1 -0
  77. package/dist/reactjs/hooks/useClientTokenExchangeSession.js.map +1 -0
  78. package/dist/reactjs/hooks/useUser.d.ts.map +1 -0
  79. package/dist/reactjs/hooks/useUser.js.map +1 -0
  80. package/dist/reactjs/index.d.ts.map +1 -0
  81. package/dist/reactjs/index.js.map +1 -0
  82. package/dist/reactjs/providers/AuthProvider.d.ts.map +1 -0
  83. package/dist/reactjs/providers/AuthProvider.js.map +1 -0
  84. package/dist/reactjs/providers/CivicAuthProvider.d.ts.map +1 -0
  85. package/dist/reactjs/providers/CivicAuthProvider.js.map +1 -0
  86. package/dist/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -0
  87. package/dist/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +1 -0
  88. package/dist/reactjs/providers/index.d.ts.map +1 -0
  89. package/dist/reactjs/providers/index.js.map +1 -0
  90. package/dist/server/ServerAuthenticationResolver.d.ts.map +1 -0
  91. package/dist/server/ServerAuthenticationResolver.js +67 -0
  92. package/dist/server/ServerAuthenticationResolver.js.map +1 -0
  93. package/dist/server/config.d.ts.map +1 -0
  94. package/dist/server/config.js.map +1 -0
  95. package/dist/server/index.d.ts.map +1 -0
  96. package/dist/server/index.js.map +1 -0
  97. package/dist/server/login.d.ts.map +1 -0
  98. package/dist/server/login.js.map +1 -0
  99. package/dist/server/logout.d.ts.map +1 -0
  100. package/dist/server/logout.js.map +1 -0
  101. package/dist/server/refresh.d.ts.map +1 -0
  102. package/dist/server/refresh.js.map +1 -0
  103. package/dist/services/AuthenticationService.d.ts +93 -0
  104. package/dist/services/AuthenticationService.d.ts.map +1 -0
  105. package/dist/services/AuthenticationService.js +366 -0
  106. package/dist/services/AuthenticationService.js.map +1 -0
  107. package/dist/services/PKCE.d.ts.map +1 -0
  108. package/dist/services/PKCE.js.map +1 -0
  109. package/dist/services/types.d.ts.map +1 -0
  110. package/dist/services/types.js.map +1 -0
  111. package/dist/shared/components/BlockDisplay.d.ts.map +1 -0
  112. package/dist/shared/components/BlockDisplay.js +29 -0
  113. package/dist/shared/components/BlockDisplay.js.map +1 -0
  114. package/dist/shared/components/CivicAuthIframe.d.ts.map +1 -0
  115. package/dist/shared/components/CivicAuthIframe.js +27 -0
  116. package/dist/shared/components/CivicAuthIframe.js.map +1 -0
  117. package/dist/shared/components/CivicAuthIframeContainer.d.ts.map +1 -0
  118. package/dist/shared/components/CivicAuthIframeContainer.js +154 -0
  119. package/dist/shared/components/CivicAuthIframeContainer.js.map +1 -0
  120. package/dist/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +1 -0
  121. package/dist/shared/components/CivicAuthLogoutIframeContainer.js +19 -0
  122. package/dist/shared/components/CivicAuthLogoutIframeContainer.js.map +1 -0
  123. package/dist/shared/components/CloseIcon.d.ts.map +1 -0
  124. package/dist/shared/components/CloseIcon.js.map +1 -0
  125. package/dist/shared/components/IFrameAndLoading.d.ts.map +1 -0
  126. package/dist/shared/components/IFrameAndLoading.js.map +1 -0
  127. package/dist/shared/components/LoadingIcon.d.ts.map +1 -0
  128. package/dist/shared/components/LoadingIcon.js.map +1 -0
  129. package/dist/shared/components/SVGLoading.d.ts +4 -0
  130. package/dist/shared/components/SVGLoading.d.ts.map +1 -0
  131. package/dist/shared/components/SVGLoading.js +28 -0
  132. package/dist/shared/components/SVGLoading.js.map +1 -0
  133. package/dist/shared/hooks/index.d.ts.map +1 -0
  134. package/dist/shared/hooks/index.js.map +1 -0
  135. package/dist/shared/hooks/useAuth.d.ts.map +1 -0
  136. package/dist/shared/hooks/useAuth.js.map +1 -0
  137. package/dist/shared/hooks/useCivicAuthConfig.d.ts.map +1 -0
  138. package/dist/shared/hooks/useCivicAuthConfig.js.map +1 -0
  139. package/dist/shared/hooks/useCurrentUrl.d.ts.map +1 -0
  140. package/dist/shared/hooks/useCurrentUrl.js.map +1 -0
  141. package/dist/shared/hooks/useIframe.d.ts.map +1 -0
  142. package/dist/shared/hooks/useIframe.js.map +1 -0
  143. package/dist/shared/hooks/useIsInIframe.d.ts.map +1 -0
  144. package/dist/shared/hooks/useIsInIframe.js.map +1 -0
  145. package/dist/shared/hooks/useOAuthEndpoints.d.ts.map +1 -0
  146. package/dist/shared/hooks/useOAuthEndpoints.js.map +1 -0
  147. package/dist/shared/hooks/useRefresh.d.ts.map +1 -0
  148. package/dist/shared/hooks/useRefresh.js.map +1 -0
  149. package/dist/shared/hooks/useSession.d.ts.map +1 -0
  150. package/dist/shared/hooks/useSession.js.map +1 -0
  151. package/dist/shared/hooks/useSignIn.d.ts.map +1 -0
  152. package/dist/shared/hooks/useSignIn.js +168 -0
  153. package/dist/shared/hooks/useSignIn.js.map +1 -0
  154. package/dist/shared/hooks/useToken.d.ts.map +1 -0
  155. package/dist/shared/hooks/useToken.js.map +1 -0
  156. package/dist/shared/hooks/useWindowFocused.d.ts.map +1 -0
  157. package/dist/shared/hooks/useWindowFocused.js.map +1 -0
  158. package/dist/shared/index.d.ts.map +1 -0
  159. package/dist/shared/index.js.map +1 -0
  160. package/dist/shared/lib/AuthenticationRefresherImpl.d.ts +14 -0
  161. package/dist/shared/lib/AuthenticationRefresherImpl.d.ts.map +1 -0
  162. package/dist/shared/lib/AuthenticationRefresherImpl.js +48 -0
  163. package/dist/shared/lib/AuthenticationRefresherImpl.js.map +1 -0
  164. package/dist/shared/lib/BrowserCookieStorage.d.ts +9 -0
  165. package/dist/shared/lib/BrowserCookieStorage.d.ts.map +1 -0
  166. package/dist/shared/lib/BrowserCookieStorage.js +56 -0
  167. package/dist/shared/lib/BrowserCookieStorage.js.map +1 -0
  168. package/dist/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -0
  169. package/dist/shared/lib/GenericAuthenticationRefresher.js.map +1 -0
  170. package/dist/shared/lib/UserSession.d.ts.map +1 -0
  171. package/dist/shared/lib/UserSession.js.map +1 -0
  172. package/dist/shared/lib/iframeUtils.d.ts.map +1 -0
  173. package/dist/shared/lib/iframeUtils.js.map +1 -0
  174. package/dist/shared/lib/session.d.ts.map +1 -0
  175. package/dist/shared/lib/session.js.map +1 -0
  176. package/dist/shared/lib/storage.d.ts +35 -0
  177. package/dist/shared/lib/storage.d.ts.map +1 -0
  178. package/dist/shared/lib/storage.js.map +1 -0
  179. package/dist/shared/lib/types.d.ts +39 -0
  180. package/dist/shared/lib/types.d.ts.map +1 -0
  181. package/dist/shared/lib/types.js.map +1 -0
  182. package/dist/shared/lib/util.d.ts +40 -0
  183. package/dist/shared/lib/util.d.ts.map +1 -0
  184. package/dist/shared/lib/util.js +187 -0
  185. package/dist/shared/lib/util.js.map +1 -0
  186. package/dist/shared/providers/AuthContext.d.ts.map +1 -0
  187. package/dist/shared/providers/AuthContext.js.map +1 -0
  188. package/dist/shared/providers/CivicAuthConfigContext.d.ts.map +1 -0
  189. package/dist/shared/providers/CivicAuthConfigContext.js.map +1 -0
  190. package/dist/shared/providers/IframeProvider.d.ts +25 -0
  191. package/dist/shared/providers/IframeProvider.d.ts.map +1 -0
  192. package/dist/shared/providers/IframeProvider.js +59 -0
  193. package/dist/shared/providers/IframeProvider.js.map +1 -0
  194. package/dist/shared/providers/SessionProvider.d.ts.map +1 -0
  195. package/dist/shared/providers/SessionProvider.js.map +1 -0
  196. package/dist/shared/providers/TokenProvider.d.ts.map +1 -0
  197. package/dist/shared/providers/TokenProvider.js.map +1 -0
  198. package/dist/shared/providers/UserProvider.d.ts.map +1 -0
  199. package/dist/shared/providers/UserProvider.js.map +1 -0
  200. package/dist/shared/providers/types.d.ts.map +1 -0
  201. package/dist/shared/providers/types.js.map +1 -0
  202. package/dist/shared/version.d.ts +2 -0
  203. package/dist/shared/version.d.ts.map +1 -0
  204. package/dist/shared/version.js +3 -0
  205. package/dist/shared/version.js.map +1 -0
  206. package/dist/types.d.ts +163 -0
  207. package/dist/types.d.ts.map +1 -0
  208. package/dist/types.js.map +1 -0
  209. package/dist/utils.d.ts.map +1 -0
  210. package/dist/utils.js.map +1 -0
  211. package/dist/version.d.ts.map +1 -0
  212. package/dist/version.js.map +1 -0
  213. package/package.json +21 -37
  214. package/dist/cjs/browser/storage.d.ts.map +0 -1
  215. package/dist/cjs/browser/storage.js +0 -24
  216. package/dist/cjs/browser/storage.js.map +0 -1
  217. package/dist/cjs/config.d.ts.map +0 -1
  218. package/dist/cjs/config.js +0 -8
  219. package/dist/cjs/config.js.map +0 -1
  220. package/dist/cjs/constants.d.ts +0 -12
  221. package/dist/cjs/constants.d.ts.map +0 -1
  222. package/dist/cjs/constants.js +0 -38
  223. package/dist/cjs/constants.js.map +0 -1
  224. package/dist/cjs/index.d.ts.map +0 -1
  225. package/dist/cjs/index.js +0 -11
  226. package/dist/cjs/index.js.map +0 -1
  227. package/dist/cjs/lib/cookies.d.ts.map +0 -1
  228. package/dist/cjs/lib/cookies.js +0 -29
  229. package/dist/cjs/lib/cookies.js.map +0 -1
  230. package/dist/cjs/lib/jwt.d.ts.map +0 -1
  231. package/dist/cjs/lib/jwt.js +0 -13
  232. package/dist/cjs/lib/jwt.js.map +0 -1
  233. package/dist/cjs/lib/logger.d.ts.map +0 -1
  234. package/dist/cjs/lib/logger.js +0 -62
  235. package/dist/cjs/lib/logger.js.map +0 -1
  236. package/dist/cjs/lib/oauth.d.ts.map +0 -1
  237. package/dist/cjs/lib/oauth.js +0 -74
  238. package/dist/cjs/lib/oauth.js.map +0 -1
  239. package/dist/cjs/lib/obj.d.ts.map +0 -1
  240. package/dist/cjs/lib/obj.js +0 -21
  241. package/dist/cjs/lib/obj.js.map +0 -1
  242. package/dist/cjs/lib/postMessage.d.ts.map +0 -1
  243. package/dist/cjs/lib/postMessage.js +0 -17
  244. package/dist/cjs/lib/postMessage.js.map +0 -1
  245. package/dist/cjs/lib/windowUtil.d.ts.map +0 -1
  246. package/dist/cjs/lib/windowUtil.js +0 -35
  247. package/dist/cjs/lib/windowUtil.js.map +0 -1
  248. package/dist/cjs/nextjs/GetUser.d.ts +0 -6
  249. package/dist/cjs/nextjs/GetUser.d.ts.map +0 -1
  250. package/dist/cjs/nextjs/GetUser.js +0 -11
  251. package/dist/cjs/nextjs/GetUser.js.map +0 -1
  252. package/dist/cjs/nextjs/NextClientAuthenticationRefresher.d.ts.map +0 -1
  253. package/dist/cjs/nextjs/NextClientAuthenticationRefresher.js +0 -26
  254. package/dist/cjs/nextjs/NextClientAuthenticationRefresher.js.map +0 -1
  255. package/dist/cjs/nextjs/config.d.ts +0 -209
  256. package/dist/cjs/nextjs/config.d.ts.map +0 -1
  257. package/dist/cjs/nextjs/config.js +0 -191
  258. package/dist/cjs/nextjs/config.js.map +0 -1
  259. package/dist/cjs/nextjs/cookies.d.ts +0 -27
  260. package/dist/cjs/nextjs/cookies.d.ts.map +0 -1
  261. package/dist/cjs/nextjs/cookies.js +0 -141
  262. package/dist/cjs/nextjs/cookies.js.map +0 -1
  263. package/dist/cjs/nextjs/hooks/index.d.ts.map +0 -1
  264. package/dist/cjs/nextjs/hooks/index.js +0 -6
  265. package/dist/cjs/nextjs/hooks/index.js.map +0 -1
  266. package/dist/cjs/nextjs/hooks/usePrevious.d.ts.map +0 -1
  267. package/dist/cjs/nextjs/hooks/usePrevious.js +0 -12
  268. package/dist/cjs/nextjs/hooks/usePrevious.js.map +0 -1
  269. package/dist/cjs/nextjs/hooks/useRefresh.d.ts.map +0 -1
  270. package/dist/cjs/nextjs/hooks/useRefresh.js +0 -43
  271. package/dist/cjs/nextjs/hooks/useRefresh.js.map +0 -1
  272. package/dist/cjs/nextjs/hooks/useUserCookie.d.ts.map +0 -1
  273. package/dist/cjs/nextjs/hooks/useUserCookie.js +0 -93
  274. package/dist/cjs/nextjs/hooks/useUserCookie.js.map +0 -1
  275. package/dist/cjs/nextjs/index.d.ts.map +0 -1
  276. package/dist/cjs/nextjs/index.js +0 -27
  277. package/dist/cjs/nextjs/index.js.map +0 -1
  278. package/dist/cjs/nextjs/middleware/index.d.ts.map +0 -1
  279. package/dist/cjs/nextjs/middleware/index.js +0 -10
  280. package/dist/cjs/nextjs/middleware/index.js.map +0 -1
  281. package/dist/cjs/nextjs/middleware.d.ts.map +0 -1
  282. package/dist/cjs/nextjs/middleware.js +0 -111
  283. package/dist/cjs/nextjs/middleware.js.map +0 -1
  284. package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
  285. package/dist/cjs/nextjs/providers/NextAuthProvider.js +0 -102
  286. package/dist/cjs/nextjs/providers/NextAuthProvider.js.map +0 -1
  287. package/dist/cjs/nextjs/routeHandler.d.ts.map +0 -1
  288. package/dist/cjs/nextjs/routeHandler.js +0 -318
  289. package/dist/cjs/nextjs/routeHandler.js.map +0 -1
  290. package/dist/cjs/nextjs/utils.d.ts.map +0 -1
  291. package/dist/cjs/nextjs/utils.js +0 -9
  292. package/dist/cjs/nextjs/utils.js.map +0 -1
  293. package/dist/cjs/reactjs/components/ButtonContentOrLoader.d.ts.map +0 -1
  294. package/dist/cjs/reactjs/components/ButtonContentOrLoader.js +0 -40
  295. package/dist/cjs/reactjs/components/ButtonContentOrLoader.js.map +0 -1
  296. package/dist/cjs/reactjs/components/SignInButton.d.ts.map +0 -1
  297. package/dist/cjs/reactjs/components/SignInButton.js +0 -31
  298. package/dist/cjs/reactjs/components/SignInButton.js.map +0 -1
  299. package/dist/cjs/reactjs/components/SignOutButton.d.ts.map +0 -1
  300. package/dist/cjs/reactjs/components/SignOutButton.js +0 -27
  301. package/dist/cjs/reactjs/components/SignOutButton.js.map +0 -1
  302. package/dist/cjs/reactjs/components/UserButton.d.ts.map +0 -1
  303. package/dist/cjs/reactjs/components/UserButton.js +0 -146
  304. package/dist/cjs/reactjs/components/UserButton.js.map +0 -1
  305. package/dist/cjs/reactjs/components/index.d.ts.map +0 -1
  306. package/dist/cjs/reactjs/components/index.js +0 -14
  307. package/dist/cjs/reactjs/components/index.js.map +0 -1
  308. package/dist/cjs/reactjs/components/utils.d.ts.map +0 -1
  309. package/dist/cjs/reactjs/components/utils.js +0 -31
  310. package/dist/cjs/reactjs/components/utils.js.map +0 -1
  311. package/dist/cjs/reactjs/hooks/index.d.ts.map +0 -1
  312. package/dist/cjs/reactjs/hooks/index.js +0 -8
  313. package/dist/cjs/reactjs/hooks/index.js.map +0 -1
  314. package/dist/cjs/reactjs/hooks/useAuth.d.ts.map +0 -1
  315. package/dist/cjs/reactjs/hooks/useAuth.js +0 -15
  316. package/dist/cjs/reactjs/hooks/useAuth.js.map +0 -1
  317. package/dist/cjs/reactjs/hooks/useClientTokenExchangeSession.d.ts.map +0 -1
  318. package/dist/cjs/reactjs/hooks/useClientTokenExchangeSession.js +0 -16
  319. package/dist/cjs/reactjs/hooks/useClientTokenExchangeSession.js.map +0 -1
  320. package/dist/cjs/reactjs/hooks/useSignIn.d.ts +0 -6
  321. package/dist/cjs/reactjs/hooks/useSignIn.d.ts.map +0 -1
  322. package/dist/cjs/reactjs/hooks/useSignIn.js +0 -38
  323. package/dist/cjs/reactjs/hooks/useSignIn.js.map +0 -1
  324. package/dist/cjs/reactjs/hooks/useUser.d.ts.map +0 -1
  325. package/dist/cjs/reactjs/hooks/useUser.js +0 -15
  326. package/dist/cjs/reactjs/hooks/useUser.js.map +0 -1
  327. package/dist/cjs/reactjs/index.d.ts.map +0 -1
  328. package/dist/cjs/reactjs/index.js +0 -32
  329. package/dist/cjs/reactjs/index.js.map +0 -1
  330. package/dist/cjs/reactjs/providers/AuthProvider.d.ts.map +0 -1
  331. package/dist/cjs/reactjs/providers/AuthProvider.js +0 -91
  332. package/dist/cjs/reactjs/providers/AuthProvider.js.map +0 -1
  333. package/dist/cjs/reactjs/providers/CivicAuthProvider.d.ts.map +0 -1
  334. package/dist/cjs/reactjs/providers/CivicAuthProvider.js +0 -29
  335. package/dist/cjs/reactjs/providers/CivicAuthProvider.js.map +0 -1
  336. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +0 -1
  337. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js +0 -147
  338. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +0 -1
  339. package/dist/cjs/reactjs/providers/index.d.ts.map +0 -1
  340. package/dist/cjs/reactjs/providers/index.js +0 -19
  341. package/dist/cjs/reactjs/providers/index.js.map +0 -1
  342. package/dist/cjs/server/ServerAuthenticationResolver.d.ts.map +0 -1
  343. package/dist/cjs/server/ServerAuthenticationResolver.js +0 -71
  344. package/dist/cjs/server/ServerAuthenticationResolver.js.map +0 -1
  345. package/dist/cjs/server/config.d.ts.map +0 -1
  346. package/dist/cjs/server/config.js +0 -3
  347. package/dist/cjs/server/config.js.map +0 -1
  348. package/dist/cjs/server/index.d.ts.map +0 -1
  349. package/dist/cjs/server/index.js +0 -21
  350. package/dist/cjs/server/index.js.map +0 -1
  351. package/dist/cjs/server/login.d.ts.map +0 -1
  352. package/dist/cjs/server/login.js +0 -42
  353. package/dist/cjs/server/login.js.map +0 -1
  354. package/dist/cjs/server/logout.d.ts.map +0 -1
  355. package/dist/cjs/server/logout.js +0 -26
  356. package/dist/cjs/server/logout.js.map +0 -1
  357. package/dist/cjs/server/refresh.d.ts.map +0 -1
  358. package/dist/cjs/server/refresh.js +0 -16
  359. package/dist/cjs/server/refresh.js.map +0 -1
  360. package/dist/cjs/services/AuthenticationService.d.ts +0 -91
  361. package/dist/cjs/services/AuthenticationService.d.ts.map +0 -1
  362. package/dist/cjs/services/AuthenticationService.js +0 -358
  363. package/dist/cjs/services/AuthenticationService.js.map +0 -1
  364. package/dist/cjs/services/PKCE.d.ts.map +0 -1
  365. package/dist/cjs/services/PKCE.js +0 -50
  366. package/dist/cjs/services/PKCE.js.map +0 -1
  367. package/dist/cjs/services/types.d.ts.map +0 -1
  368. package/dist/cjs/services/types.js +0 -11
  369. package/dist/cjs/services/types.js.map +0 -1
  370. package/dist/cjs/shared/components/BlockDisplay.d.ts.map +0 -1
  371. package/dist/cjs/shared/components/BlockDisplay.js +0 -27
  372. package/dist/cjs/shared/components/BlockDisplay.js.map +0 -1
  373. package/dist/cjs/shared/components/CivicAuthIframe.d.ts.map +0 -1
  374. package/dist/cjs/shared/components/CivicAuthIframe.js +0 -69
  375. package/dist/cjs/shared/components/CivicAuthIframe.js.map +0 -1
  376. package/dist/cjs/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
  377. package/dist/cjs/shared/components/CivicAuthIframeContainer.js +0 -159
  378. package/dist/cjs/shared/components/CivicAuthIframeContainer.js.map +0 -1
  379. package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +0 -1
  380. package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.js +0 -22
  381. package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.js.map +0 -1
  382. package/dist/cjs/shared/components/CloseIcon.d.ts.map +0 -1
  383. package/dist/cjs/shared/components/CloseIcon.js +0 -7
  384. package/dist/cjs/shared/components/CloseIcon.js.map +0 -1
  385. package/dist/cjs/shared/components/IFrameAndLoading.d.ts.map +0 -1
  386. package/dist/cjs/shared/components/IFrameAndLoading.js +0 -39
  387. package/dist/cjs/shared/components/IFrameAndLoading.js.map +0 -1
  388. package/dist/cjs/shared/components/LoadingIcon.d.ts.map +0 -1
  389. package/dist/cjs/shared/components/LoadingIcon.js +0 -28
  390. package/dist/cjs/shared/components/LoadingIcon.js.map +0 -1
  391. package/dist/cjs/shared/components/SVGLoading.d.ts +0 -2
  392. package/dist/cjs/shared/components/SVGLoading.d.ts.map +0 -1
  393. package/dist/cjs/shared/components/SVGLoading.js +0 -30
  394. package/dist/cjs/shared/components/SVGLoading.js.map +0 -1
  395. package/dist/cjs/shared/hooks/index.d.ts.map +0 -1
  396. package/dist/cjs/shared/hooks/index.js +0 -24
  397. package/dist/cjs/shared/hooks/index.js.map +0 -1
  398. package/dist/cjs/shared/hooks/useAuth.d.ts +0 -3
  399. package/dist/cjs/shared/hooks/useAuth.d.ts.map +0 -1
  400. package/dist/cjs/shared/hooks/useAuth.js +0 -15
  401. package/dist/cjs/shared/hooks/useAuth.js.map +0 -1
  402. package/dist/cjs/shared/hooks/useCivicAuthConfig.d.ts +0 -3
  403. package/dist/cjs/shared/hooks/useCivicAuthConfig.d.ts.map +0 -1
  404. package/dist/cjs/shared/hooks/useCivicAuthConfig.js +0 -13
  405. package/dist/cjs/shared/hooks/useCivicAuthConfig.js.map +0 -1
  406. package/dist/cjs/shared/hooks/useClientTokenExchangeSession.d.ts +0 -3
  407. package/dist/cjs/shared/hooks/useClientTokenExchangeSession.d.ts.map +0 -1
  408. package/dist/cjs/shared/hooks/useClientTokenExchangeSession.js +0 -16
  409. package/dist/cjs/shared/hooks/useClientTokenExchangeSession.js.map +0 -1
  410. package/dist/cjs/shared/hooks/useCurrentUrl.d.ts.map +0 -1
  411. package/dist/cjs/shared/hooks/useCurrentUrl.js +0 -27
  412. package/dist/cjs/shared/hooks/useCurrentUrl.js.map +0 -1
  413. package/dist/cjs/shared/hooks/useIframe.d.ts.map +0 -1
  414. package/dist/cjs/shared/hooks/useIframe.js +0 -16
  415. package/dist/cjs/shared/hooks/useIframe.js.map +0 -1
  416. package/dist/cjs/shared/hooks/useIsInIframe.d.ts.map +0 -1
  417. package/dist/cjs/shared/hooks/useIsInIframe.js +0 -17
  418. package/dist/cjs/shared/hooks/useIsInIframe.js.map +0 -1
  419. package/dist/cjs/shared/hooks/useOAuthEndpoints.d.ts.map +0 -1
  420. package/dist/cjs/shared/hooks/useOAuthEndpoints.js +0 -17
  421. package/dist/cjs/shared/hooks/useOAuthEndpoints.js.map +0 -1
  422. package/dist/cjs/shared/hooks/useRefresh.d.ts.map +0 -1
  423. package/dist/cjs/shared/hooks/useRefresh.js +0 -41
  424. package/dist/cjs/shared/hooks/useRefresh.js.map +0 -1
  425. package/dist/cjs/shared/hooks/useSession.d.ts.map +0 -1
  426. package/dist/cjs/shared/hooks/useSession.js +0 -16
  427. package/dist/cjs/shared/hooks/useSession.js.map +0 -1
  428. package/dist/cjs/shared/hooks/useSignIn.d.ts.map +0 -1
  429. package/dist/cjs/shared/hooks/useSignIn.js +0 -168
  430. package/dist/cjs/shared/hooks/useSignIn.js.map +0 -1
  431. package/dist/cjs/shared/hooks/useToken.d.ts.map +0 -1
  432. package/dist/cjs/shared/hooks/useToken.js +0 -15
  433. package/dist/cjs/shared/hooks/useToken.js.map +0 -1
  434. package/dist/cjs/shared/hooks/useWindowFocused.d.ts.map +0 -1
  435. package/dist/cjs/shared/hooks/useWindowFocused.js +0 -24
  436. package/dist/cjs/shared/hooks/useWindowFocused.js.map +0 -1
  437. package/dist/cjs/shared/index.d.ts.map +0 -1
  438. package/dist/cjs/shared/index.js +0 -25
  439. package/dist/cjs/shared/index.js.map +0 -1
  440. package/dist/cjs/shared/lib/AuthenticationRefresherImpl.d.ts +0 -13
  441. package/dist/cjs/shared/lib/AuthenticationRefresherImpl.d.ts.map +0 -1
  442. package/dist/cjs/shared/lib/AuthenticationRefresherImpl.js +0 -47
  443. package/dist/cjs/shared/lib/AuthenticationRefresherImpl.js.map +0 -1
  444. package/dist/cjs/shared/lib/BrowserCookieStorage.d.ts +0 -8
  445. package/dist/cjs/shared/lib/BrowserCookieStorage.d.ts.map +0 -1
  446. package/dist/cjs/shared/lib/BrowserCookieStorage.js +0 -56
  447. package/dist/cjs/shared/lib/BrowserCookieStorage.js.map +0 -1
  448. package/dist/cjs/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
  449. package/dist/cjs/shared/lib/GenericAuthenticationRefresher.js +0 -65
  450. package/dist/cjs/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
  451. package/dist/cjs/shared/lib/UserSession.d.ts.map +0 -1
  452. package/dist/cjs/shared/lib/UserSession.js +0 -27
  453. package/dist/cjs/shared/lib/UserSession.js.map +0 -1
  454. package/dist/cjs/shared/lib/iframeUtils.d.ts.map +0 -1
  455. package/dist/cjs/shared/lib/iframeUtils.js +0 -11
  456. package/dist/cjs/shared/lib/iframeUtils.js.map +0 -1
  457. package/dist/cjs/shared/lib/session.d.ts.map +0 -1
  458. package/dist/cjs/shared/lib/session.js +0 -48
  459. package/dist/cjs/shared/lib/session.js.map +0 -1
  460. package/dist/cjs/shared/lib/storage.d.ts +0 -34
  461. package/dist/cjs/shared/lib/storage.d.ts.map +0 -1
  462. package/dist/cjs/shared/lib/storage.js +0 -21
  463. package/dist/cjs/shared/lib/storage.js.map +0 -1
  464. package/dist/cjs/shared/lib/types.d.ts +0 -38
  465. package/dist/cjs/shared/lib/types.d.ts.map +0 -1
  466. package/dist/cjs/shared/lib/types.js +0 -22
  467. package/dist/cjs/shared/lib/types.js.map +0 -1
  468. package/dist/cjs/shared/lib/util.d.ts +0 -37
  469. package/dist/cjs/shared/lib/util.d.ts.map +0 -1
  470. package/dist/cjs/shared/lib/util.js +0 -204
  471. package/dist/cjs/shared/lib/util.js.map +0 -1
  472. package/dist/cjs/shared/providers/AuthContext.d.ts.map +0 -1
  473. package/dist/cjs/shared/providers/AuthContext.js +0 -7
  474. package/dist/cjs/shared/providers/AuthContext.js.map +0 -1
  475. package/dist/cjs/shared/providers/AuthProvider.d.ts +0 -22
  476. package/dist/cjs/shared/providers/AuthProvider.d.ts.map +0 -1
  477. package/dist/cjs/shared/providers/AuthProvider.js +0 -108
  478. package/dist/cjs/shared/providers/AuthProvider.js.map +0 -1
  479. package/dist/cjs/shared/providers/CivicAuthConfigContext.d.ts.map +0 -1
  480. package/dist/cjs/shared/providers/CivicAuthConfigContext.js +0 -59
  481. package/dist/cjs/shared/providers/CivicAuthConfigContext.js.map +0 -1
  482. package/dist/cjs/shared/providers/CivicAuthProvider.d.ts +0 -6
  483. package/dist/cjs/shared/providers/CivicAuthProvider.d.ts.map +0 -1
  484. package/dist/cjs/shared/providers/CivicAuthProvider.js +0 -38
  485. package/dist/cjs/shared/providers/CivicAuthProvider.js.map +0 -1
  486. package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.d.ts +0 -17
  487. package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.d.ts.map +0 -1
  488. package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.js +0 -168
  489. package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.js.map +0 -1
  490. package/dist/cjs/shared/providers/IframeProvider.d.ts +0 -24
  491. package/dist/cjs/shared/providers/IframeProvider.d.ts.map +0 -1
  492. package/dist/cjs/shared/providers/IframeProvider.js +0 -45
  493. package/dist/cjs/shared/providers/IframeProvider.js.map +0 -1
  494. package/dist/cjs/shared/providers/SessionProvider.d.ts.map +0 -1
  495. package/dist/cjs/shared/providers/SessionProvider.js +0 -28
  496. package/dist/cjs/shared/providers/SessionProvider.js.map +0 -1
  497. package/dist/cjs/shared/providers/TokenProvider.d.ts.map +0 -1
  498. package/dist/cjs/shared/providers/TokenProvider.js +0 -39
  499. package/dist/cjs/shared/providers/TokenProvider.js.map +0 -1
  500. package/dist/cjs/shared/providers/UserProvider.d.ts.map +0 -1
  501. package/dist/cjs/shared/providers/UserProvider.js +0 -69
  502. package/dist/cjs/shared/providers/UserProvider.js.map +0 -1
  503. package/dist/cjs/shared/providers/types.d.ts.map +0 -1
  504. package/dist/cjs/shared/providers/types.js +0 -3
  505. package/dist/cjs/shared/providers/types.js.map +0 -1
  506. package/dist/cjs/shared/version.d.ts +0 -2
  507. package/dist/cjs/shared/version.d.ts.map +0 -1
  508. package/dist/cjs/shared/version.js +0 -6
  509. package/dist/cjs/shared/version.js.map +0 -1
  510. package/dist/cjs/types.d.ts +0 -159
  511. package/dist/cjs/types.d.ts.map +0 -1
  512. package/dist/cjs/types.js +0 -20
  513. package/dist/cjs/types.js.map +0 -1
  514. package/dist/cjs/utils.d.ts.map +0 -1
  515. package/dist/cjs/utils.js +0 -47
  516. package/dist/cjs/utils.js.map +0 -1
  517. package/dist/cjs/version.d.ts.map +0 -1
  518. package/dist/cjs/version.js +0 -6
  519. package/dist/cjs/version.js.map +0 -1
  520. package/dist/esm/browser/storage.d.ts +0 -10
  521. package/dist/esm/browser/storage.d.ts.map +0 -1
  522. package/dist/esm/browser/storage.js.map +0 -1
  523. package/dist/esm/config.d.ts +0 -3
  524. package/dist/esm/config.d.ts.map +0 -1
  525. package/dist/esm/config.js.map +0 -1
  526. package/dist/esm/constants.d.ts +0 -12
  527. package/dist/esm/constants.d.ts.map +0 -1
  528. package/dist/esm/constants.js +0 -26
  529. package/dist/esm/constants.js.map +0 -1
  530. package/dist/esm/index.d.ts +0 -8
  531. package/dist/esm/index.d.ts.map +0 -1
  532. package/dist/esm/index.js.map +0 -1
  533. package/dist/esm/lib/cookies.d.ts +0 -7
  534. package/dist/esm/lib/cookies.d.ts.map +0 -1
  535. package/dist/esm/lib/cookies.js.map +0 -1
  536. package/dist/esm/lib/jwt.d.ts +0 -3
  537. package/dist/esm/lib/jwt.d.ts.map +0 -1
  538. package/dist/esm/lib/jwt.js.map +0 -1
  539. package/dist/esm/lib/logger.d.ts +0 -26
  540. package/dist/esm/lib/logger.d.ts.map +0 -1
  541. package/dist/esm/lib/logger.js.map +0 -1
  542. package/dist/esm/lib/oauth.d.ts +0 -19
  543. package/dist/esm/lib/oauth.d.ts.map +0 -1
  544. package/dist/esm/lib/oauth.js.map +0 -1
  545. package/dist/esm/lib/obj.d.ts +0 -3
  546. package/dist/esm/lib/obj.d.ts.map +0 -1
  547. package/dist/esm/lib/obj.js.map +0 -1
  548. package/dist/esm/lib/postMessage.d.ts +0 -4
  549. package/dist/esm/lib/postMessage.d.ts.map +0 -1
  550. package/dist/esm/lib/postMessage.js +0 -14
  551. package/dist/esm/lib/postMessage.js.map +0 -1
  552. package/dist/esm/lib/windowUtil.d.ts +0 -4
  553. package/dist/esm/lib/windowUtil.d.ts.map +0 -1
  554. package/dist/esm/lib/windowUtil.js.map +0 -1
  555. package/dist/esm/nextjs/GetUser.d.ts +0 -6
  556. package/dist/esm/nextjs/GetUser.d.ts.map +0 -1
  557. package/dist/esm/nextjs/GetUser.js +0 -7
  558. package/dist/esm/nextjs/GetUser.js.map +0 -1
  559. package/dist/esm/nextjs/NextClientAuthenticationRefresher.d.ts +0 -9
  560. package/dist/esm/nextjs/NextClientAuthenticationRefresher.d.ts.map +0 -1
  561. package/dist/esm/nextjs/NextClientAuthenticationRefresher.js.map +0 -1
  562. package/dist/esm/nextjs/config.d.ts.map +0 -1
  563. package/dist/esm/nextjs/config.js.map +0 -1
  564. package/dist/esm/nextjs/cookies.d.ts +0 -27
  565. package/dist/esm/nextjs/cookies.d.ts.map +0 -1
  566. package/dist/esm/nextjs/cookies.js +0 -103
  567. package/dist/esm/nextjs/cookies.js.map +0 -1
  568. package/dist/esm/nextjs/hooks/index.d.ts +0 -2
  569. package/dist/esm/nextjs/hooks/index.d.ts.map +0 -1
  570. package/dist/esm/nextjs/hooks/index.js.map +0 -1
  571. package/dist/esm/nextjs/hooks/usePrevious.d.ts +0 -2
  572. package/dist/esm/nextjs/hooks/usePrevious.d.ts.map +0 -1
  573. package/dist/esm/nextjs/hooks/usePrevious.js.map +0 -1
  574. package/dist/esm/nextjs/hooks/useRefresh.d.ts +0 -4
  575. package/dist/esm/nextjs/hooks/useRefresh.d.ts.map +0 -1
  576. package/dist/esm/nextjs/hooks/useRefresh.js.map +0 -1
  577. package/dist/esm/nextjs/hooks/useUserCookie.d.ts +0 -8
  578. package/dist/esm/nextjs/hooks/useUserCookie.d.ts.map +0 -1
  579. package/dist/esm/nextjs/hooks/useUserCookie.js.map +0 -1
  580. package/dist/esm/nextjs/index.d.ts +0 -9
  581. package/dist/esm/nextjs/index.d.ts.map +0 -1
  582. package/dist/esm/nextjs/index.js.map +0 -1
  583. package/dist/esm/nextjs/middleware/index.d.ts +0 -2
  584. package/dist/esm/nextjs/middleware/index.d.ts.map +0 -1
  585. package/dist/esm/nextjs/middleware/index.js.map +0 -1
  586. package/dist/esm/nextjs/middleware.d.ts +0 -57
  587. package/dist/esm/nextjs/middleware.d.ts.map +0 -1
  588. package/dist/esm/nextjs/middleware.js +0 -102
  589. package/dist/esm/nextjs/middleware.js.map +0 -1
  590. package/dist/esm/nextjs/providers/NextAuthProvider.d.ts +0 -9
  591. package/dist/esm/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
  592. package/dist/esm/nextjs/providers/NextAuthProvider.js.map +0 -1
  593. package/dist/esm/nextjs/routeHandler.d.ts +0 -19
  594. package/dist/esm/nextjs/routeHandler.d.ts.map +0 -1
  595. package/dist/esm/nextjs/routeHandler.js +0 -312
  596. package/dist/esm/nextjs/routeHandler.js.map +0 -1
  597. package/dist/esm/nextjs/utils.d.ts +0 -3
  598. package/dist/esm/nextjs/utils.d.ts.map +0 -1
  599. package/dist/esm/nextjs/utils.js.map +0 -1
  600. package/dist/esm/reactjs/components/ButtonContentOrLoader.d.ts +0 -17
  601. package/dist/esm/reactjs/components/ButtonContentOrLoader.d.ts.map +0 -1
  602. package/dist/esm/reactjs/components/ButtonContentOrLoader.js.map +0 -1
  603. package/dist/esm/reactjs/components/SignInButton.d.ts +0 -9
  604. package/dist/esm/reactjs/components/SignInButton.d.ts.map +0 -1
  605. package/dist/esm/reactjs/components/SignInButton.js.map +0 -1
  606. package/dist/esm/reactjs/components/SignOutButton.d.ts +0 -7
  607. package/dist/esm/reactjs/components/SignOutButton.d.ts.map +0 -1
  608. package/dist/esm/reactjs/components/SignOutButton.js.map +0 -1
  609. package/dist/esm/reactjs/components/UserButton.d.ts +0 -9
  610. package/dist/esm/reactjs/components/UserButton.d.ts.map +0 -1
  611. package/dist/esm/reactjs/components/UserButton.js +0 -143
  612. package/dist/esm/reactjs/components/UserButton.js.map +0 -1
  613. package/dist/esm/reactjs/components/index.d.ts +0 -6
  614. package/dist/esm/reactjs/components/index.d.ts.map +0 -1
  615. package/dist/esm/reactjs/components/index.js.map +0 -1
  616. package/dist/esm/reactjs/components/utils.d.ts +0 -13
  617. package/dist/esm/reactjs/components/utils.d.ts.map +0 -1
  618. package/dist/esm/reactjs/components/utils.js.map +0 -1
  619. package/dist/esm/reactjs/hooks/index.d.ts +0 -3
  620. package/dist/esm/reactjs/hooks/index.d.ts.map +0 -1
  621. package/dist/esm/reactjs/hooks/index.js.map +0 -1
  622. package/dist/esm/reactjs/hooks/useAuth.d.ts +0 -3
  623. package/dist/esm/reactjs/hooks/useAuth.d.ts.map +0 -1
  624. package/dist/esm/reactjs/hooks/useAuth.js.map +0 -1
  625. package/dist/esm/reactjs/hooks/useClientTokenExchangeSession.d.ts +0 -3
  626. package/dist/esm/reactjs/hooks/useClientTokenExchangeSession.d.ts.map +0 -1
  627. package/dist/esm/reactjs/hooks/useClientTokenExchangeSession.js.map +0 -1
  628. package/dist/esm/reactjs/hooks/useSignIn.d.ts +0 -6
  629. package/dist/esm/reactjs/hooks/useSignIn.d.ts.map +0 -1
  630. package/dist/esm/reactjs/hooks/useSignIn.js +0 -34
  631. package/dist/esm/reactjs/hooks/useSignIn.js.map +0 -1
  632. package/dist/esm/reactjs/hooks/useUser.d.ts +0 -4
  633. package/dist/esm/reactjs/hooks/useUser.d.ts.map +0 -1
  634. package/dist/esm/reactjs/hooks/useUser.js.map +0 -1
  635. package/dist/esm/reactjs/index.d.ts +0 -6
  636. package/dist/esm/reactjs/index.d.ts.map +0 -1
  637. package/dist/esm/reactjs/index.js.map +0 -1
  638. package/dist/esm/reactjs/providers/AuthProvider.d.ts +0 -10
  639. package/dist/esm/reactjs/providers/AuthProvider.d.ts.map +0 -1
  640. package/dist/esm/reactjs/providers/AuthProvider.js.map +0 -1
  641. package/dist/esm/reactjs/providers/CivicAuthProvider.d.ts +0 -5
  642. package/dist/esm/reactjs/providers/CivicAuthProvider.d.ts.map +0 -1
  643. package/dist/esm/reactjs/providers/CivicAuthProvider.js.map +0 -1
  644. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts +0 -17
  645. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +0 -1
  646. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +0 -1
  647. package/dist/esm/reactjs/providers/index.d.ts +0 -8
  648. package/dist/esm/reactjs/providers/index.d.ts.map +0 -1
  649. package/dist/esm/reactjs/providers/index.js.map +0 -1
  650. package/dist/esm/server/ServerAuthenticationResolver.d.ts +0 -20
  651. package/dist/esm/server/ServerAuthenticationResolver.d.ts.map +0 -1
  652. package/dist/esm/server/ServerAuthenticationResolver.js +0 -67
  653. package/dist/esm/server/ServerAuthenticationResolver.js.map +0 -1
  654. package/dist/esm/server/config.d.ts +0 -11
  655. package/dist/esm/server/config.d.ts.map +0 -1
  656. package/dist/esm/server/config.js.map +0 -1
  657. package/dist/esm/server/index.d.ts +0 -9
  658. package/dist/esm/server/index.d.ts.map +0 -1
  659. package/dist/esm/server/index.js.map +0 -1
  660. package/dist/esm/server/login.d.ts +0 -17
  661. package/dist/esm/server/login.d.ts.map +0 -1
  662. package/dist/esm/server/login.js.map +0 -1
  663. package/dist/esm/server/logout.d.ts +0 -7
  664. package/dist/esm/server/logout.d.ts.map +0 -1
  665. package/dist/esm/server/logout.js.map +0 -1
  666. package/dist/esm/server/refresh.d.ts +0 -7
  667. package/dist/esm/server/refresh.d.ts.map +0 -1
  668. package/dist/esm/server/refresh.js.map +0 -1
  669. package/dist/esm/services/AuthenticationService.d.ts +0 -91
  670. package/dist/esm/services/AuthenticationService.d.ts.map +0 -1
  671. package/dist/esm/services/AuthenticationService.js +0 -352
  672. package/dist/esm/services/AuthenticationService.js.map +0 -1
  673. package/dist/esm/services/PKCE.d.ts +0 -20
  674. package/dist/esm/services/PKCE.d.ts.map +0 -1
  675. package/dist/esm/services/PKCE.js.map +0 -1
  676. package/dist/esm/services/types.d.ts +0 -24
  677. package/dist/esm/services/types.d.ts.map +0 -1
  678. package/dist/esm/services/types.js.map +0 -1
  679. package/dist/esm/shared/components/BlockDisplay.d.ts +0 -6
  680. package/dist/esm/shared/components/BlockDisplay.d.ts.map +0 -1
  681. package/dist/esm/shared/components/BlockDisplay.js +0 -25
  682. package/dist/esm/shared/components/BlockDisplay.js.map +0 -1
  683. package/dist/esm/shared/components/CivicAuthIframe.d.ts +0 -9
  684. package/dist/esm/shared/components/CivicAuthIframe.d.ts.map +0 -1
  685. package/dist/esm/shared/components/CivicAuthIframe.js +0 -30
  686. package/dist/esm/shared/components/CivicAuthIframe.js.map +0 -1
  687. package/dist/esm/shared/components/CivicAuthIframeContainer.d.ts +0 -14
  688. package/dist/esm/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
  689. package/dist/esm/shared/components/CivicAuthIframeContainer.js +0 -155
  690. package/dist/esm/shared/components/CivicAuthIframeContainer.js.map +0 -1
  691. package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.d.ts +0 -6
  692. package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +0 -1
  693. package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.js +0 -20
  694. package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.js.map +0 -1
  695. package/dist/esm/shared/components/CloseIcon.d.ts +0 -3
  696. package/dist/esm/shared/components/CloseIcon.d.ts.map +0 -1
  697. package/dist/esm/shared/components/CloseIcon.js.map +0 -1
  698. package/dist/esm/shared/components/IFrameAndLoading.d.ts +0 -7
  699. package/dist/esm/shared/components/IFrameAndLoading.d.ts.map +0 -1
  700. package/dist/esm/shared/components/IFrameAndLoading.js.map +0 -1
  701. package/dist/esm/shared/components/LoadingIcon.d.ts +0 -6
  702. package/dist/esm/shared/components/LoadingIcon.d.ts.map +0 -1
  703. package/dist/esm/shared/components/LoadingIcon.js.map +0 -1
  704. package/dist/esm/shared/components/SVGLoading.d.ts +0 -2
  705. package/dist/esm/shared/components/SVGLoading.d.ts.map +0 -1
  706. package/dist/esm/shared/components/SVGLoading.js +0 -28
  707. package/dist/esm/shared/components/SVGLoading.js.map +0 -1
  708. package/dist/esm/shared/hooks/index.d.ts +0 -11
  709. package/dist/esm/shared/hooks/index.d.ts.map +0 -1
  710. package/dist/esm/shared/hooks/index.js.map +0 -1
  711. package/dist/esm/shared/hooks/useAuth.d.ts +0 -3
  712. package/dist/esm/shared/hooks/useAuth.d.ts.map +0 -1
  713. package/dist/esm/shared/hooks/useAuth.js +0 -12
  714. package/dist/esm/shared/hooks/useAuth.js.map +0 -1
  715. package/dist/esm/shared/hooks/useCivicAuthConfig.d.ts.map +0 -1
  716. package/dist/esm/shared/hooks/useCivicAuthConfig.js.map +0 -1
  717. package/dist/esm/shared/hooks/useClientTokenExchangeSession.d.ts +0 -3
  718. package/dist/esm/shared/hooks/useClientTokenExchangeSession.d.ts.map +0 -1
  719. package/dist/esm/shared/hooks/useClientTokenExchangeSession.js +0 -13
  720. package/dist/esm/shared/hooks/useClientTokenExchangeSession.js.map +0 -1
  721. package/dist/esm/shared/hooks/useCurrentUrl.d.ts +0 -3
  722. package/dist/esm/shared/hooks/useCurrentUrl.d.ts.map +0 -1
  723. package/dist/esm/shared/hooks/useCurrentUrl.js.map +0 -1
  724. package/dist/esm/shared/hooks/useIframe.d.ts +0 -3
  725. package/dist/esm/shared/hooks/useIframe.d.ts.map +0 -1
  726. package/dist/esm/shared/hooks/useIframe.js.map +0 -1
  727. package/dist/esm/shared/hooks/useIsInIframe.d.ts +0 -3
  728. package/dist/esm/shared/hooks/useIsInIframe.d.ts.map +0 -1
  729. package/dist/esm/shared/hooks/useIsInIframe.js.map +0 -1
  730. package/dist/esm/shared/hooks/useOAuthEndpoints.d.ts +0 -4
  731. package/dist/esm/shared/hooks/useOAuthEndpoints.d.ts.map +0 -1
  732. package/dist/esm/shared/hooks/useOAuthEndpoints.js.map +0 -1
  733. package/dist/esm/shared/hooks/useRefresh.d.ts +0 -4
  734. package/dist/esm/shared/hooks/useRefresh.d.ts.map +0 -1
  735. package/dist/esm/shared/hooks/useRefresh.js.map +0 -1
  736. package/dist/esm/shared/hooks/useSession.d.ts +0 -3
  737. package/dist/esm/shared/hooks/useSession.d.ts.map +0 -1
  738. package/dist/esm/shared/hooks/useSession.js.map +0 -1
  739. package/dist/esm/shared/hooks/useSignIn.d.ts +0 -17
  740. package/dist/esm/shared/hooks/useSignIn.d.ts.map +0 -1
  741. package/dist/esm/shared/hooks/useSignIn.js +0 -165
  742. package/dist/esm/shared/hooks/useSignIn.js.map +0 -1
  743. package/dist/esm/shared/hooks/useToken.d.ts +0 -3
  744. package/dist/esm/shared/hooks/useToken.d.ts.map +0 -1
  745. package/dist/esm/shared/hooks/useToken.js.map +0 -1
  746. package/dist/esm/shared/hooks/useWindowFocused.d.ts +0 -5
  747. package/dist/esm/shared/hooks/useWindowFocused.d.ts.map +0 -1
  748. package/dist/esm/shared/hooks/useWindowFocused.js.map +0 -1
  749. package/dist/esm/shared/index.d.ts +0 -7
  750. package/dist/esm/shared/index.d.ts.map +0 -1
  751. package/dist/esm/shared/index.js.map +0 -1
  752. package/dist/esm/shared/lib/AuthenticationRefresherImpl.d.ts +0 -13
  753. package/dist/esm/shared/lib/AuthenticationRefresherImpl.d.ts.map +0 -1
  754. package/dist/esm/shared/lib/AuthenticationRefresherImpl.js +0 -43
  755. package/dist/esm/shared/lib/AuthenticationRefresherImpl.js.map +0 -1
  756. package/dist/esm/shared/lib/BrowserCookieStorage.d.ts +0 -8
  757. package/dist/esm/shared/lib/BrowserCookieStorage.d.ts.map +0 -1
  758. package/dist/esm/shared/lib/BrowserCookieStorage.js +0 -52
  759. package/dist/esm/shared/lib/BrowserCookieStorage.js.map +0 -1
  760. package/dist/esm/shared/lib/GenericAuthenticationRefresher.d.ts +0 -16
  761. package/dist/esm/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
  762. package/dist/esm/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
  763. package/dist/esm/shared/lib/UserSession.d.ts +0 -17
  764. package/dist/esm/shared/lib/UserSession.d.ts.map +0 -1
  765. package/dist/esm/shared/lib/UserSession.js.map +0 -1
  766. package/dist/esm/shared/lib/iframeUtils.d.ts +0 -6
  767. package/dist/esm/shared/lib/iframeUtils.d.ts.map +0 -1
  768. package/dist/esm/shared/lib/iframeUtils.js.map +0 -1
  769. package/dist/esm/shared/lib/session.d.ts +0 -4
  770. package/dist/esm/shared/lib/session.d.ts.map +0 -1
  771. package/dist/esm/shared/lib/session.js.map +0 -1
  772. package/dist/esm/shared/lib/storage.d.ts +0 -34
  773. package/dist/esm/shared/lib/storage.d.ts.map +0 -1
  774. package/dist/esm/shared/lib/storage.js.map +0 -1
  775. package/dist/esm/shared/lib/types.d.ts +0 -38
  776. package/dist/esm/shared/lib/types.d.ts.map +0 -1
  777. package/dist/esm/shared/lib/types.js.map +0 -1
  778. package/dist/esm/shared/lib/util.d.ts +0 -37
  779. package/dist/esm/shared/lib/util.d.ts.map +0 -1
  780. package/dist/esm/shared/lib/util.js +0 -155
  781. package/dist/esm/shared/lib/util.js.map +0 -1
  782. package/dist/esm/shared/providers/AuthContext.d.ts +0 -12
  783. package/dist/esm/shared/providers/AuthContext.d.ts.map +0 -1
  784. package/dist/esm/shared/providers/AuthContext.js.map +0 -1
  785. package/dist/esm/shared/providers/AuthProvider.d.ts +0 -22
  786. package/dist/esm/shared/providers/AuthProvider.d.ts.map +0 -1
  787. package/dist/esm/shared/providers/AuthProvider.js +0 -72
  788. package/dist/esm/shared/providers/AuthProvider.js.map +0 -1
  789. package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts +0 -19
  790. package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts.map +0 -1
  791. package/dist/esm/shared/providers/CivicAuthConfigContext.js.map +0 -1
  792. package/dist/esm/shared/providers/CivicAuthProvider.d.ts +0 -6
  793. package/dist/esm/shared/providers/CivicAuthProvider.d.ts.map +0 -1
  794. package/dist/esm/shared/providers/CivicAuthProvider.js +0 -32
  795. package/dist/esm/shared/providers/CivicAuthProvider.js.map +0 -1
  796. package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.d.ts +0 -17
  797. package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.d.ts.map +0 -1
  798. package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.js +0 -131
  799. package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.js.map +0 -1
  800. package/dist/esm/shared/providers/IframeProvider.d.ts +0 -24
  801. package/dist/esm/shared/providers/IframeProvider.d.ts.map +0 -1
  802. package/dist/esm/shared/providers/IframeProvider.js +0 -41
  803. package/dist/esm/shared/providers/IframeProvider.js.map +0 -1
  804. package/dist/esm/shared/providers/SessionProvider.d.ts +0 -19
  805. package/dist/esm/shared/providers/SessionProvider.d.ts.map +0 -1
  806. package/dist/esm/shared/providers/SessionProvider.js.map +0 -1
  807. package/dist/esm/shared/providers/TokenProvider.d.ts +0 -17
  808. package/dist/esm/shared/providers/TokenProvider.d.ts.map +0 -1
  809. package/dist/esm/shared/providers/TokenProvider.js.map +0 -1
  810. package/dist/esm/shared/providers/UserProvider.d.ts +0 -26
  811. package/dist/esm/shared/providers/UserProvider.d.ts.map +0 -1
  812. package/dist/esm/shared/providers/UserProvider.js.map +0 -1
  813. package/dist/esm/shared/providers/types.d.ts +0 -15
  814. package/dist/esm/shared/providers/types.d.ts.map +0 -1
  815. package/dist/esm/shared/providers/types.js.map +0 -1
  816. package/dist/esm/shared/version.d.ts +0 -2
  817. package/dist/esm/shared/version.d.ts.map +0 -1
  818. package/dist/esm/shared/version.js +0 -3
  819. package/dist/esm/shared/version.js.map +0 -1
  820. package/dist/esm/types.d.ts +0 -159
  821. package/dist/esm/types.d.ts.map +0 -1
  822. package/dist/esm/types.js.map +0 -1
  823. package/dist/esm/utils.d.ts +0 -15
  824. package/dist/esm/utils.d.ts.map +0 -1
  825. package/dist/esm/utils.js.map +0 -1
  826. package/dist/esm/version.d.ts +0 -2
  827. package/dist/esm/version.d.ts.map +0 -1
  828. package/dist/esm/version.js.map +0 -1
  829. package/dist/tsconfig.cjs.tsbuildinfo +0 -1
  830. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  831. /package/dist/{cjs/browser → browser}/storage.d.ts +0 -0
  832. /package/dist/{esm/browser → browser}/storage.js +0 -0
  833. /package/dist/{cjs/config.d.ts → config.d.ts} +0 -0
  834. /package/dist/{esm/config.js → config.js} +0 -0
  835. /package/dist/{cjs/index.d.ts → index.d.ts} +0 -0
  836. /package/dist/{esm/index.js → index.js} +0 -0
  837. /package/dist/{cjs/lib → lib}/cookies.d.ts +0 -0
  838. /package/dist/{esm/lib → lib}/cookies.js +0 -0
  839. /package/dist/{cjs/lib → lib}/jwt.d.ts +0 -0
  840. /package/dist/{esm/lib → lib}/jwt.js +0 -0
  841. /package/dist/{cjs/lib → lib}/logger.d.ts +0 -0
  842. /package/dist/{esm/lib → lib}/logger.js +0 -0
  843. /package/dist/{cjs/lib → lib}/oauth.d.ts +0 -0
  844. /package/dist/{esm/lib → lib}/oauth.js +0 -0
  845. /package/dist/{cjs/lib → lib}/obj.d.ts +0 -0
  846. /package/dist/{esm/lib → lib}/obj.js +0 -0
  847. /package/dist/{cjs/lib → lib}/postMessage.d.ts +0 -0
  848. /package/dist/{cjs/lib → lib}/windowUtil.d.ts +0 -0
  849. /package/dist/{esm/lib → lib}/windowUtil.js +0 -0
  850. /package/dist/{cjs/nextjs → nextjs}/NextClientAuthenticationRefresher.d.ts +0 -0
  851. /package/dist/{esm/nextjs → nextjs}/NextClientAuthenticationRefresher.js +0 -0
  852. /package/dist/{esm/nextjs → nextjs}/config.d.ts +0 -0
  853. /package/dist/{esm/nextjs → nextjs}/config.js +0 -0
  854. /package/dist/{cjs/nextjs → nextjs}/hooks/index.d.ts +0 -0
  855. /package/dist/{esm/nextjs → nextjs}/hooks/index.js +0 -0
  856. /package/dist/{cjs/nextjs → nextjs}/hooks/usePrevious.d.ts +0 -0
  857. /package/dist/{esm/nextjs → nextjs}/hooks/usePrevious.js +0 -0
  858. /package/dist/{cjs/nextjs → nextjs}/hooks/useRefresh.d.ts +0 -0
  859. /package/dist/{esm/nextjs → nextjs}/hooks/useRefresh.js +0 -0
  860. /package/dist/{cjs/nextjs → nextjs}/hooks/useUserCookie.d.ts +0 -0
  861. /package/dist/{esm/nextjs → nextjs}/hooks/useUserCookie.js +0 -0
  862. /package/dist/{cjs/nextjs → nextjs}/index.d.ts +0 -0
  863. /package/dist/{esm/nextjs → nextjs}/index.js +0 -0
  864. /package/dist/{cjs/nextjs → nextjs}/middleware/index.d.ts +0 -0
  865. /package/dist/{esm/nextjs → nextjs}/middleware/index.js +0 -0
  866. /package/dist/{cjs/nextjs → nextjs}/middleware.d.ts +0 -0
  867. /package/dist/{cjs/nextjs → nextjs}/providers/NextAuthProvider.d.ts +0 -0
  868. /package/dist/{esm/nextjs → nextjs}/providers/NextAuthProvider.js +0 -0
  869. /package/dist/{cjs/nextjs → nextjs}/routeHandler.d.ts +0 -0
  870. /package/dist/{cjs/nextjs → nextjs}/utils.d.ts +0 -0
  871. /package/dist/{esm/nextjs → nextjs}/utils.js +0 -0
  872. /package/dist/{cjs/reactjs → reactjs}/components/ButtonContentOrLoader.d.ts +0 -0
  873. /package/dist/{esm/reactjs → reactjs}/components/ButtonContentOrLoader.js +0 -0
  874. /package/dist/{cjs/reactjs → reactjs}/components/SignInButton.d.ts +0 -0
  875. /package/dist/{esm/reactjs → reactjs}/components/SignInButton.js +0 -0
  876. /package/dist/{cjs/reactjs → reactjs}/components/SignOutButton.d.ts +0 -0
  877. /package/dist/{esm/reactjs → reactjs}/components/SignOutButton.js +0 -0
  878. /package/dist/{cjs/reactjs → reactjs}/components/UserButton.d.ts +0 -0
  879. /package/dist/{cjs/reactjs → reactjs}/components/index.d.ts +0 -0
  880. /package/dist/{esm/reactjs → reactjs}/components/index.js +0 -0
  881. /package/dist/{cjs/reactjs → reactjs}/components/utils.d.ts +0 -0
  882. /package/dist/{esm/reactjs → reactjs}/components/utils.js +0 -0
  883. /package/dist/{cjs/reactjs → reactjs}/hooks/index.d.ts +0 -0
  884. /package/dist/{esm/reactjs → reactjs}/hooks/index.js +0 -0
  885. /package/dist/{cjs/reactjs → reactjs}/hooks/useClientTokenExchangeSession.d.ts +0 -0
  886. /package/dist/{esm/reactjs → reactjs}/hooks/useClientTokenExchangeSession.js +0 -0
  887. /package/dist/{cjs/reactjs → reactjs}/hooks/useUser.d.ts +0 -0
  888. /package/dist/{esm/reactjs → reactjs}/hooks/useUser.js +0 -0
  889. /package/dist/{cjs/reactjs → reactjs}/index.d.ts +0 -0
  890. /package/dist/{esm/reactjs → reactjs}/index.js +0 -0
  891. /package/dist/{cjs/reactjs → reactjs}/providers/AuthProvider.d.ts +0 -0
  892. /package/dist/{esm/reactjs → reactjs}/providers/AuthProvider.js +0 -0
  893. /package/dist/{cjs/reactjs → reactjs}/providers/CivicAuthProvider.d.ts +0 -0
  894. /package/dist/{esm/reactjs → reactjs}/providers/CivicAuthProvider.js +0 -0
  895. /package/dist/{cjs/reactjs → reactjs}/providers/ClientTokenExchangeSessionProvider.d.ts +0 -0
  896. /package/dist/{esm/reactjs → reactjs}/providers/ClientTokenExchangeSessionProvider.js +0 -0
  897. /package/dist/{cjs/reactjs → reactjs}/providers/index.d.ts +0 -0
  898. /package/dist/{esm/reactjs → reactjs}/providers/index.js +0 -0
  899. /package/dist/{cjs/server → server}/ServerAuthenticationResolver.d.ts +0 -0
  900. /package/dist/{cjs/server → server}/config.d.ts +0 -0
  901. /package/dist/{esm/server → server}/config.js +0 -0
  902. /package/dist/{cjs/server → server}/index.d.ts +0 -0
  903. /package/dist/{esm/server → server}/index.js +0 -0
  904. /package/dist/{cjs/server → server}/login.d.ts +0 -0
  905. /package/dist/{esm/server → server}/login.js +0 -0
  906. /package/dist/{cjs/server → server}/logout.d.ts +0 -0
  907. /package/dist/{esm/server → server}/logout.js +0 -0
  908. /package/dist/{cjs/server → server}/refresh.d.ts +0 -0
  909. /package/dist/{esm/server → server}/refresh.js +0 -0
  910. /package/dist/{cjs/services → services}/PKCE.d.ts +0 -0
  911. /package/dist/{esm/services → services}/PKCE.js +0 -0
  912. /package/dist/{cjs/services → services}/types.d.ts +0 -0
  913. /package/dist/{esm/services → services}/types.js +0 -0
  914. /package/dist/{cjs/shared → shared}/components/BlockDisplay.d.ts +0 -0
  915. /package/dist/{cjs/shared → shared}/components/CivicAuthIframe.d.ts +0 -0
  916. /package/dist/{cjs/shared → shared}/components/CivicAuthIframeContainer.d.ts +0 -0
  917. /package/dist/{cjs/shared → shared}/components/CivicAuthLogoutIframeContainer.d.ts +0 -0
  918. /package/dist/{cjs/shared → shared}/components/CloseIcon.d.ts +0 -0
  919. /package/dist/{esm/shared → shared}/components/CloseIcon.js +0 -0
  920. /package/dist/{cjs/shared → shared}/components/IFrameAndLoading.d.ts +0 -0
  921. /package/dist/{esm/shared → shared}/components/IFrameAndLoading.js +0 -0
  922. /package/dist/{cjs/shared → shared}/components/LoadingIcon.d.ts +0 -0
  923. /package/dist/{esm/shared → shared}/components/LoadingIcon.js +0 -0
  924. /package/dist/{cjs/shared → shared}/hooks/index.d.ts +0 -0
  925. /package/dist/{esm/shared → shared}/hooks/index.js +0 -0
  926. /package/dist/{cjs/reactjs → shared}/hooks/useAuth.d.ts +0 -0
  927. /package/dist/{esm/reactjs → shared}/hooks/useAuth.js +0 -0
  928. /package/dist/{esm/shared → shared}/hooks/useCivicAuthConfig.d.ts +0 -0
  929. /package/dist/{esm/shared → shared}/hooks/useCivicAuthConfig.js +0 -0
  930. /package/dist/{cjs/shared → shared}/hooks/useCurrentUrl.d.ts +0 -0
  931. /package/dist/{esm/shared → shared}/hooks/useCurrentUrl.js +0 -0
  932. /package/dist/{cjs/shared → shared}/hooks/useIframe.d.ts +0 -0
  933. /package/dist/{esm/shared → shared}/hooks/useIframe.js +0 -0
  934. /package/dist/{cjs/shared → shared}/hooks/useIsInIframe.d.ts +0 -0
  935. /package/dist/{esm/shared → shared}/hooks/useIsInIframe.js +0 -0
  936. /package/dist/{cjs/shared → shared}/hooks/useOAuthEndpoints.d.ts +0 -0
  937. /package/dist/{esm/shared → shared}/hooks/useOAuthEndpoints.js +0 -0
  938. /package/dist/{cjs/shared → shared}/hooks/useRefresh.d.ts +0 -0
  939. /package/dist/{esm/shared → shared}/hooks/useRefresh.js +0 -0
  940. /package/dist/{cjs/shared → shared}/hooks/useSession.d.ts +0 -0
  941. /package/dist/{esm/shared → shared}/hooks/useSession.js +0 -0
  942. /package/dist/{cjs/shared → shared}/hooks/useSignIn.d.ts +0 -0
  943. /package/dist/{cjs/shared → shared}/hooks/useToken.d.ts +0 -0
  944. /package/dist/{esm/shared → shared}/hooks/useToken.js +0 -0
  945. /package/dist/{cjs/shared → shared}/hooks/useWindowFocused.d.ts +0 -0
  946. /package/dist/{esm/shared → shared}/hooks/useWindowFocused.js +0 -0
  947. /package/dist/{cjs/shared → shared}/index.d.ts +0 -0
  948. /package/dist/{esm/shared → shared}/index.js +0 -0
  949. /package/dist/{cjs/shared → shared}/lib/GenericAuthenticationRefresher.d.ts +0 -0
  950. /package/dist/{esm/shared → shared}/lib/GenericAuthenticationRefresher.js +0 -0
  951. /package/dist/{cjs/shared → shared}/lib/UserSession.d.ts +0 -0
  952. /package/dist/{esm/shared → shared}/lib/UserSession.js +0 -0
  953. /package/dist/{cjs/shared → shared}/lib/iframeUtils.d.ts +0 -0
  954. /package/dist/{esm/shared → shared}/lib/iframeUtils.js +0 -0
  955. /package/dist/{cjs/shared → shared}/lib/session.d.ts +0 -0
  956. /package/dist/{esm/shared → shared}/lib/session.js +0 -0
  957. /package/dist/{esm/shared → shared}/lib/storage.js +0 -0
  958. /package/dist/{esm/shared → shared}/lib/types.js +0 -0
  959. /package/dist/{cjs/shared → shared}/providers/AuthContext.d.ts +0 -0
  960. /package/dist/{esm/shared → shared}/providers/AuthContext.js +0 -0
  961. /package/dist/{cjs/shared → shared}/providers/CivicAuthConfigContext.d.ts +0 -0
  962. /package/dist/{esm/shared → shared}/providers/CivicAuthConfigContext.js +0 -0
  963. /package/dist/{cjs/shared → shared}/providers/SessionProvider.d.ts +0 -0
  964. /package/dist/{esm/shared → shared}/providers/SessionProvider.js +0 -0
  965. /package/dist/{cjs/shared → shared}/providers/TokenProvider.d.ts +0 -0
  966. /package/dist/{esm/shared → shared}/providers/TokenProvider.js +0 -0
  967. /package/dist/{cjs/shared → shared}/providers/UserProvider.d.ts +0 -0
  968. /package/dist/{esm/shared → shared}/providers/UserProvider.js +0 -0
  969. /package/dist/{cjs/shared → shared}/providers/types.d.ts +0 -0
  970. /package/dist/{esm/shared → shared}/providers/types.js +0 -0
  971. /package/dist/{esm/types.js → types.js} +0 -0
  972. /package/dist/{cjs/utils.d.ts → utils.d.ts} +0 -0
  973. /package/dist/{esm/utils.js → utils.js} +0 -0
  974. /package/dist/{cjs/version.d.ts → version.d.ts} +0 -0
  975. /package/dist/{esm/version.js → version.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWindowFocused.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/useWindowFocused.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,gBAAgB;;CAmBrB,CAAC;AACF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWindowFocused.js","sourceRoot":"","sources":["../../../src/shared/hooks/useWindowFocused.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC5B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE5C,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,EAAE,eAAe,EAAE,CAAC;AAC7B,CAAC,CAAC;AACF,OAAO,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["import { useEffect, useState } from \"react\";\n\nconst useWindowFocused = () => {\n const [isWindowFocused, setIsWindowFocused] = useState(true);\n useEffect(() => {\n const handleFocus = () => {\n setIsWindowFocused(true);\n };\n\n const handleBlur = () => {\n setIsWindowFocused(false);\n };\n window.addEventListener(\"focus\", handleFocus);\n window.addEventListener(\"blur\", handleBlur);\n\n return () => {\n window.removeEventListener(\"focus\", handleFocus);\n window.removeEventListener(\"blur\", handleBlur);\n };\n }, []);\n return { isWindowFocused };\n};\nexport { useWindowFocused };\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,eAAO,MAAM,UAAU,cAAgB,CAAC;AAExC,eAAO,MAAM,YAAY,YAWxB,CAAC;AACF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;AACxC,mCAAmC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,CAAC;QACtB,IACE,UAAU,EAAE;YACZ,OAAO,MAAM,KAAK,WAAW;YAC7B,OAAO,QAAQ,KAAK,WAAW,EAC/B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AACF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["import { VERSION } from \"./version.js\";\nexport { VERSION };\nlet versionPrinted = false;\nexport const getVersion = () => VERSION;\n// print the version to the browser\nexport const printVersion = () => {\n if (!versionPrinted) {\n versionPrinted = true;\n if (\n getVersion() &&\n typeof window !== \"undefined\" &&\n typeof document !== \"undefined\"\n ) {\n console.log(getVersion());\n }\n }\n};\nexport { BrowserCookieStorage } from \"@/shared/lib/BrowserCookieStorage.js\";\nexport { clearTokens } from \"@/shared/lib/util.js\";\n"]}
@@ -0,0 +1,14 @@
1
+ import type { AuthConfig } from "../../server/config.js";
2
+ import type { AuthStorage, Endpoints, OIDCTokenResponseBody } from "../../types.js";
3
+ import { GenericAuthenticationRefresher } from "./GenericAuthenticationRefresher.js";
4
+ export declare class AuthenticationRefresherImpl extends GenericAuthenticationRefresher {
5
+ protected endpointOverrides?: Partial<Endpoints> | undefined;
6
+ private endpoints;
7
+ private oauth2client;
8
+ constructor(authConfig: AuthConfig, storage: AuthStorage, endpointOverrides?: Partial<Endpoints> | undefined);
9
+ init(): Promise<this>;
10
+ static build(authConfig: AuthConfig, storage: AuthStorage, endpointOverrides?: Partial<Endpoints>): Promise<AuthenticationRefresherImpl>;
11
+ storeTokens(tokenResponseBody: OIDCTokenResponseBody): Promise<void>;
12
+ refreshAccessToken(): Promise<OIDCTokenResponseBody>;
13
+ }
14
+ //# sourceMappingURL=AuthenticationRefresherImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthenticationRefresherImpl.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/AuthenticationRefresherImpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMrD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEhF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,qBAAa,2BAA4B,SAAQ,8BAA8B;IAM3E,SAAS,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IALlD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAA2B;gBAE7C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,WAAW,EACV,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,YAAA;IAQ5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;WAmBd,KAAK,CAChB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GACrC,OAAO,CAAC,2BAA2B,CAAC;IAWjC,WAAW,CAAC,iBAAiB,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,kBAAkB,IAAI,OAAO,CAAC,qBAAqB,CAAC;CAoB3D"}
@@ -0,0 +1,48 @@
1
+ import { getEndpointsWithOverrides, storeTokens, validateOauth2Tokens, } from "../../shared/lib/util.js";
2
+ import { OAuth2Client } from "oslo/oauth2";
3
+ import { GenericAuthenticationRefresher } from "./GenericAuthenticationRefresher.js";
4
+ export class AuthenticationRefresherImpl extends GenericAuthenticationRefresher {
5
+ endpointOverrides;
6
+ endpoints;
7
+ oauth2client;
8
+ constructor(authConfig, storage, endpointOverrides) {
9
+ super();
10
+ this.endpointOverrides = endpointOverrides;
11
+ this.authConfig = authConfig;
12
+ this.storage = storage;
13
+ this.init();
14
+ }
15
+ async init() {
16
+ if (!this.authConfig)
17
+ throw new Error("No auth config available");
18
+ // resolve oauth config
19
+ this.endpoints = await getEndpointsWithOverrides(this.oauthServer, this.endpointOverrides);
20
+ this.oauth2client = new OAuth2Client(this.authConfig.clientId, this.endpoints.auth, this.endpoints.token, {
21
+ redirectURI: this.authConfig.redirectUrl,
22
+ });
23
+ return this;
24
+ }
25
+ static async build(authConfig, storage, endpointOverrides) {
26
+ const refresher = new AuthenticationRefresherImpl(authConfig, storage, endpointOverrides);
27
+ await refresher.init();
28
+ return refresher;
29
+ }
30
+ async storeTokens(tokenResponseBody) {
31
+ if (!this.storage)
32
+ throw new Error("No storage available");
33
+ await storeTokens(this.storage, tokenResponseBody);
34
+ }
35
+ async refreshAccessToken() {
36
+ if (!this.storage)
37
+ throw new Error("No storage available");
38
+ const refreshToken = await this.getRefreshToken();
39
+ if (!this.oauth2client)
40
+ this.init();
41
+ const oauth2Client = this.oauth2client;
42
+ const tokenResponseBody = await oauth2Client.refreshAccessToken(refreshToken);
43
+ await validateOauth2Tokens(tokenResponseBody, this.endpoints, oauth2Client, this.oauthServer);
44
+ await this.storeTokens(tokenResponseBody);
45
+ return tokenResponseBody;
46
+ }
47
+ }
48
+ //# sourceMappingURL=AuthenticationRefresherImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthenticationRefresherImpl.js","sourceRoot":"","sources":["../../../src/shared/lib/AuthenticationRefresherImpl.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,MAAM,OAAO,2BAA4B,SAAQ,8BAA8B;IAMjE;IALJ,SAAS,CAAwB;IACjC,YAAY,CAA2B;IAC/C,YACE,UAAsB,EACtB,OAAoB,EACV,iBAAsC;QAEhD,KAAK,EAAE,CAAC;QAFE,sBAAiB,GAAjB,iBAAiB,CAAqB;QAGhD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAClE,uBAAuB;QACvB,IAAI,CAAC,SAAS,GAAG,MAAM,yBAAyB,CAC9C,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,iBAAiB,CACvB,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAClC,IAAI,CAAC,UAAU,CAAC,QAAQ,EACxB,IAAI,CAAC,SAAS,CAAC,IAAI,EACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EACpB;YACE,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;SACzC,CACF,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,UAAsB,EACtB,OAAoB,EACpB,iBAAsC;QAEtC,MAAM,SAAS,GAAG,IAAI,2BAA2B,CAC/C,UAAU,EACV,OAAO,EACP,iBAAiB,CAClB,CAAC;QACF,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAEvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,iBAAwC;QACxD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAa,CAAC;QACxC,MAAM,iBAAiB,GACrB,MAAM,YAAY,CAAC,kBAAkB,CACnC,YAAY,CACb,CAAC;QACJ,MAAM,oBAAoB,CACxB,iBAAiB,EACjB,IAAI,CAAC,SAAU,EACf,YAAY,EACZ,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC1C,OAAO,iBAAiB,CAAC;IAC3B,CAAC;CACF","sourcesContent":["import type { AuthConfig } from \"@/server/config.js\";\nimport {\n getEndpointsWithOverrides,\n storeTokens,\n validateOauth2Tokens,\n} from \"@/shared/lib/util.js\";\nimport type { AuthStorage, Endpoints, OIDCTokenResponseBody } from \"@/types.js\";\nimport { OAuth2Client } from \"oslo/oauth2\";\nimport { GenericAuthenticationRefresher } from \"./GenericAuthenticationRefresher.js\";\n\nexport class AuthenticationRefresherImpl extends GenericAuthenticationRefresher {\n private endpoints: Endpoints | undefined;\n private oauth2client: OAuth2Client | undefined;\n constructor(\n authConfig: AuthConfig,\n storage: AuthStorage,\n protected endpointOverrides?: Partial<Endpoints>,\n ) {\n super();\n this.authConfig = authConfig;\n this.storage = storage;\n this.init();\n }\n\n async init(): Promise<this> {\n if (!this.authConfig) throw new Error(\"No auth config available\");\n // resolve oauth config\n this.endpoints = await getEndpointsWithOverrides(\n this.oauthServer,\n this.endpointOverrides,\n );\n this.oauth2client = new OAuth2Client(\n this.authConfig.clientId,\n this.endpoints.auth,\n this.endpoints.token,\n {\n redirectURI: this.authConfig.redirectUrl,\n },\n );\n\n return this;\n }\n\n static async build(\n authConfig: AuthConfig,\n storage: AuthStorage,\n endpointOverrides?: Partial<Endpoints>,\n ): Promise<AuthenticationRefresherImpl> {\n const refresher = new AuthenticationRefresherImpl(\n authConfig,\n storage,\n endpointOverrides,\n );\n await refresher.init();\n\n return refresher;\n }\n\n async storeTokens(tokenResponseBody: OIDCTokenResponseBody): Promise<void> {\n if (!this.storage) throw new Error(\"No storage available\");\n await storeTokens(this.storage, tokenResponseBody);\n }\n\n async refreshAccessToken(): Promise<OIDCTokenResponseBody> {\n if (!this.storage) throw new Error(\"No storage available\");\n const refreshToken = await this.getRefreshToken();\n\n if (!this.oauth2client) this.init();\n const oauth2Client = this.oauth2client!;\n const tokenResponseBody =\n await oauth2Client.refreshAccessToken<OIDCTokenResponseBody>(\n refreshToken,\n );\n await validateOauth2Tokens(\n tokenResponseBody,\n this.endpoints!,\n oauth2Client,\n this.oauthServer,\n );\n\n await this.storeTokens(tokenResponseBody);\n return tokenResponseBody;\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { CookieStorage, type CookieStorageSettings } from "../../shared/lib/storage.js";
2
+ import type { CookieConfig } from "./types.js";
3
+ export declare class BrowserCookieStorage extends CookieStorage {
4
+ constructor(config?: Partial<CookieStorageSettings>);
5
+ get(key: string): Promise<string | null>;
6
+ set(key: string, value: string, cookieConfigOverride?: Partial<CookieConfig>): Promise<void>;
7
+ delete(key: string): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=BrowserCookieStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserCookieStorage.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/BrowserCookieStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoC/C,qBAAa,oBAAqB,SAAQ,aAAa;gBACzC,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM;IASjD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IASxC,GAAG,CACP,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,oBAAoB,GAAE,OAAO,CAAC,YAAY,CAAM,GAC/C,OAAO,CAAC,IAAI,CAAC;IAOV,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzC"}
@@ -0,0 +1,56 @@
1
+ import { CookieStorage, } from "../../shared/lib/storage.js";
2
+ // Ensure only runs in a browser environment
3
+ function documentObj() {
4
+ if (typeof globalThis.window !== "undefined")
5
+ return globalThis.document;
6
+ const stack = new Error().stack;
7
+ throw new Error("Document is not available in this environment:" + JSON.stringify(stack));
8
+ }
9
+ const split = (separator) => (str) => str.split(separator);
10
+ const cookieStringFromSettings = (settings) => {
11
+ let cookieSettings = "";
12
+ if (settings.path) {
13
+ cookieSettings += `Path=${settings.path}; `;
14
+ }
15
+ if (settings.expires) {
16
+ cookieSettings += `Expires=${settings.expires}; `;
17
+ }
18
+ if (settings.secure) {
19
+ cookieSettings += `Secure; `;
20
+ }
21
+ if (settings.httpOnly) {
22
+ // HttpOnly cannot be set from client-side JavaScript, so this clause can be omitted.
23
+ console.warn("HttpOnly cannot be set on client-side cookies. Ignoring this setting.");
24
+ }
25
+ if (settings.sameSite) {
26
+ cookieSettings += `SameSite=${settings.sameSite}; `;
27
+ }
28
+ return cookieSettings.trim();
29
+ };
30
+ export class BrowserCookieStorage extends CookieStorage {
31
+ constructor(config = {}) {
32
+ super({
33
+ // sensible browser defaults
34
+ secure: false,
35
+ httpOnly: false,
36
+ ...config,
37
+ });
38
+ }
39
+ async get(key) {
40
+ const encodedValue = documentObj()
41
+ .cookie.split(";")
42
+ .map(split("="))
43
+ .find(([cookieKey]) => cookieKey?.trim() === key)?.[1];
44
+ return encodedValue ? decodeURIComponent(encodedValue) : null;
45
+ }
46
+ async set(key, value, cookieConfigOverride = {}) {
47
+ const encodedValue = encodeURIComponent(value);
48
+ const settings = { ...this.settings, ...cookieConfigOverride };
49
+ const cookieString = cookieStringFromSettings(settings);
50
+ documentObj().cookie = `${key}=${encodedValue}; ${cookieString}`;
51
+ }
52
+ async delete(key) {
53
+ documentObj().cookie = `${key}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
54
+ }
55
+ }
56
+ //# sourceMappingURL=BrowserCookieStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserCookieStorage.js","sourceRoot":"","sources":["../../../src/shared/lib/BrowserCookieStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GAEd,MAAM,yBAAyB,CAAC;AAGjC,4CAA4C;AAC5C,SAAS,WAAW;IAClB,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,UAAU,CAAC,QAAQ,CAAC;IACzE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAChC,MAAM,IAAI,KAAK,CACb,gDAAgD,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAE3E,MAAM,wBAAwB,GAAG,CAAC,QAA+B,EAAU,EAAE;IAC3E,IAAI,cAAc,GAAG,EAAE,CAAC;IAExB,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,cAAc,IAAI,QAAQ,QAAQ,CAAC,IAAI,IAAI,CAAC;IAC9C,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,cAAc,IAAI,WAAW,QAAQ,CAAC,OAAO,IAAI,CAAC;IACpD,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,cAAc,IAAI,UAAU,CAAC;IAC/B,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,qFAAqF;QACrF,OAAO,CAAC,IAAI,CACV,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,cAAc,IAAI,YAAY,QAAQ,CAAC,QAAQ,IAAI,CAAC;IACtD,CAAC;IACD,OAAO,cAAc,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC,CAAC;AACF,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACrD,YAAY,SAAyC,EAAE;QACrD,KAAK,CAAC;YACJ,4BAA4B;YAC5B,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,KAAK;YACf,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,YAAY,GAAG,WAAW,EAAE;aAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;aACjB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACf,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzD,OAAO,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,GAAG,CACP,GAAW,EACX,KAAa,EACb,uBAA8C,EAAE;QAEhD,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,oBAAoB,EAAE,CAAC;QAC/D,MAAM,YAAY,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACxD,WAAW,EAAE,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,WAAW,EAAE,CAAC,MAAM,GAAG,GAAG,GAAG,mDAAmD,CAAC;IACnF,CAAC;CACF","sourcesContent":["import {\n CookieStorage,\n type CookieStorageSettings,\n} from \"@/shared/lib/storage.js\";\nimport type { CookieConfig } from \"./types.js\";\n\n// Ensure only runs in a browser environment\nfunction documentObj() {\n if (typeof globalThis.window !== \"undefined\") return globalThis.document;\n const stack = new Error().stack;\n throw new Error(\n \"Document is not available in this environment:\" + JSON.stringify(stack),\n );\n}\n\nconst split = (separator: string) => (str: string) => str.split(separator);\n\nconst cookieStringFromSettings = (settings: CookieStorageSettings): string => {\n let cookieSettings = \"\";\n\n if (settings.path) {\n cookieSettings += `Path=${settings.path}; `;\n }\n if (settings.expires) {\n cookieSettings += `Expires=${settings.expires}; `;\n }\n if (settings.secure) {\n cookieSettings += `Secure; `;\n }\n if (settings.httpOnly) {\n // HttpOnly cannot be set from client-side JavaScript, so this clause can be omitted.\n console.warn(\n \"HttpOnly cannot be set on client-side cookies. Ignoring this setting.\",\n );\n }\n if (settings.sameSite) {\n cookieSettings += `SameSite=${settings.sameSite}; `;\n }\n return cookieSettings.trim();\n};\nexport class BrowserCookieStorage extends CookieStorage {\n constructor(config: Partial<CookieStorageSettings> = {}) {\n super({\n // sensible browser defaults\n secure: false,\n httpOnly: false,\n ...config,\n });\n }\n\n async get(key: string): Promise<string | null> {\n const encodedValue = documentObj()\n .cookie.split(\";\")\n .map(split(\"=\"))\n .find(([cookieKey]) => cookieKey?.trim() === key)?.[1];\n\n return encodedValue ? decodeURIComponent(encodedValue) : null;\n }\n\n async set(\n key: string,\n value: string,\n cookieConfigOverride: Partial<CookieConfig> = {},\n ): Promise<void> {\n const encodedValue = encodeURIComponent(value);\n const settings = { ...this.settings, ...cookieConfigOverride };\n const cookieString = cookieStringFromSettings(settings);\n documentObj().cookie = `${key}=${encodedValue}; ${cookieString}`;\n }\n\n async delete(key: string): Promise<void> {\n documentObj().cookie = `${key}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericAuthenticationRefresher.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/GenericAuthenticationRefresher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAKnE,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAErE,8BAAsB,8BACpB,YAAW,uBAAuB;IAElC,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7C,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,iBAAiB,UAAS;IAEjC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,QAAQ,CAAC,kBAAkB,CACzB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,CAAC;IAE3B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAQlC,aAAa;YAIL,aAAa;IAerB,gBAAgB;IAoBtB,gBAAgB;CAQjB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericAuthenticationRefresher.js","sourceRoot":"","sources":["../../../src/shared/lib/GenericAuthenticationRefresher.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,4BAA4B,EAC5B,cAAc,GACf,MAAM,sBAAsB,CAAC;AAG9B,MAAM,OAAgB,8BAA8B;IAGxC,UAAU,CAAyB;IACnC,OAAO,CAA0B;IAC3C,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAEjC,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,UAAU,EAAE,WAAW,IAAI,mBAAmB,CAAC;IAC7D,CAAC;IAMD,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC;YACH,yCAAyC;YACzC,IAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,MAAM,EAAE,CAAC;gBACzD,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;gBACnD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,6CAA6C;YAC9E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,kEAAkE;QACpE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,6BAA6B;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,iBAAiB;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GACb,CAAC,MAAM,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;QAEjE,8DAA8D;QAC9D,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,aAAa;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,iDAAiD;QAEhH,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;QACvB,YAAY,CAAC,OAAO,CAAC,wBAAwB,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB;QACd,0EAA0E;QAC1E,mEAAmE;QACnE,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACvE,IAAI,eAAe,EAAE,CAAC;YACpB,YAAY,CAAC,eAAe,CAAC,CAAC;QAChC,CAAC;IACH,CAAC","sourcesContent":["import {\n AUTOREFRESH_TIMEOUT_NAME,\n DEFAULT_AUTH_SERVER,\n REFRESH_IN_PROGRESS,\n} from \"@/constants.js\";\nimport type { AuthConfig } from \"@/server/config.js\";\nimport type { AuthenticationRefresher } from \"@/services/types.js\";\nimport {\n retrieveAccessTokenExpiresAt,\n retrieveTokens,\n} from \"@/shared/lib/util.js\";\nimport type { AuthStorage, OIDCTokenResponseBody } from \"@/types.js\";\n\nexport abstract class GenericAuthenticationRefresher\n implements AuthenticationRefresher\n{\n protected authConfig: AuthConfig | undefined;\n protected storage: AuthStorage | undefined;\n static refreshInProgress = false;\n\n get oauthServer(): string {\n return this.authConfig?.oauthServer || DEFAULT_AUTH_SERVER;\n }\n\n abstract refreshAccessToken(\n refreshToken?: string,\n ): Promise<OIDCTokenResponseBody>;\n\n async getRefreshToken(): Promise<string> {\n if (!this.storage) throw new Error(\"No storage available\");\n\n const tokens = await retrieveTokens(this.storage);\n if (!tokens?.refresh_token) throw new Error(\"No refresh token available\");\n return tokens.refresh_token;\n }\n\n async refreshTokens() {\n return this.refreshAccessToken();\n }\n\n private async handleRefresh() {\n try {\n // ensure only one refresh is in progress\n if (localStorage.getItem(REFRESH_IN_PROGRESS) !== \"true\") {\n localStorage.setItem(REFRESH_IN_PROGRESS, \"true\");\n await this.refreshTokens();\n localStorage.setItem(REFRESH_IN_PROGRESS, \"false\");\n await this.setupAutorefresh(); // Reset the timeout after successful refresh\n }\n } catch (error) {\n console.error(\"Failed to refresh tokens:\", error);\n // TODO detect if refresh token has expired and if yes then logout\n }\n }\n\n async setupAutorefresh() {\n if (!this.storage) throw new Error(\"No storage available\");\n // Clear any existing timeout\n this.clearAutorefresh();\n\n // get expires_in\n const now = Math.floor(Date.now() / 1000);\n const expiresAt =\n (await retrieveAccessTokenExpiresAt(this.storage)) || now + 60;\n\n // Calculate time until expiry (subtract 30 seconds as buffer)\n const bufferTime = 30; // 30 seconds\n const refreshTime = Math.max(0, expiresAt - bufferTime - now); // handle case were token has expired in the past\n\n const refreshTimeout = setTimeout(() => {\n this.handleRefresh();\n }, 1000 * refreshTime);\n localStorage.setItem(AUTOREFRESH_TIMEOUT_NAME, refreshTimeout.toString());\n }\n\n clearAutorefresh() {\n // use local storage to store the timeout id so that if multiple instances\n // of the refresher are created they can all clear the same timeout\n const existingTimeout = localStorage.getItem(AUTOREFRESH_TIMEOUT_NAME);\n if (existingTimeout) {\n clearTimeout(existingTimeout);\n }\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserSession.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/UserSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,IAAI,EACL,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,aAAa;IAClD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,eAAe,CAAC,EAAE,kBAAkB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AAED,qBAAa,kBAAkB,CAAC,CAAC,SAAS,aAAa,CACrD,YAAW,WAAW,CAAC,CAAC,CAAC;IAEb,QAAQ,CAAC,OAAO,EAAE,WAAW;gBAApB,OAAO,EAAE,WAAW;IAEnC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAK9B,GAAG,CACP,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,eAAe,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,GAAG,IAAI,GAChE,OAAO,CAAC,IAAI,CAAC;IAQV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserSession.js","sourceRoot":"","sources":["../../../src/shared/lib/UserSession.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAO3D,MAAM,OAAO,kBAAkB;IAGR;IAArB,YAAqB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAE7C,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiE;QAEjE,MAAM,eAAe,GAAG,IAAI,EAAE,eAAe;YAC3C,CAAC,CAAC,2BAA2B,CAAC,IAAI,EAAE,eAAqC,CAAC;YAC1E,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF","sourcesContent":["import type {\n AuthStorage,\n ForwardedTokensJWT,\n UnknownObject,\n User,\n} from \"@/types.js\";\nimport { UserStorage } from \"@/shared/lib/types.js\";\nimport { convertForwardedTokenFormat } from \"@/lib/jwt.js\";\n\nexport interface UserSession<T extends UnknownObject> {\n get(): Promise<User<T> | null>;\n set(user: User<T> & { forwardedTokens?: ForwardedTokensJWT }): Promise<void>;\n}\n\nexport class GenericUserSession<T extends UnknownObject>\n implements UserSession<T>\n{\n constructor(readonly storage: AuthStorage) {}\n\n async get(): Promise<User<T> | null> {\n const user = await this.storage.get(UserStorage.USER);\n return user ? JSON.parse(user) : null;\n }\n\n async set(\n user: (User<T> & { forwardedTokens?: ForwardedTokensJWT }) | null,\n ): Promise<void> {\n const forwardedTokens = user?.forwardedTokens\n ? convertForwardedTokenFormat(user?.forwardedTokens as ForwardedTokensJWT)\n : null;\n const value = user ? JSON.stringify({ ...user, forwardedTokens }) : \"\";\n await this.storage.set(UserStorage.USER, value);\n }\n\n async clear(): Promise<void> {\n await this.storage.delete(UserStorage.USER);\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframeUtils.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/iframeUtils.ts"],"names":[],"mappings":"AAAA,KAAK,qBAAqB,GAAG,iBAAiB,GAAG;IAC/C,UAAU,EAAE,MAAM,iBAAiB,CAAC;CACrC,CAAC;AACF,eAAO,MAAM,YAAY,cACZ,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,KAC1D,iBAKF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframeUtils.js","sourceRoot":"","sources":["../../../src/shared/lib/iframeUtils.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,SAA2D,EACxC,EAAE;IACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAQ,SAAmC,EAAE,UAAU,EAAE,EAAE,IAAI,SAAS,CAAC;AAC3E,CAAC,CAAC","sourcesContent":["type ExtendedIframeElement = HTMLIFrameElement & {\n getElement: () => HTMLIFrameElement;\n};\nexport const getIframeRef = (\n iframeRef: HTMLIFrameElement | ExtendedIframeElement | null,\n): HTMLIFrameElement => {\n if (!iframeRef) {\n throw new Error(\"iframeRef is required for displayMode 'iframe'\");\n }\n return (iframeRef as ExtendedIframeElement)?.getElement?.() ?? iframeRef;\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAsBpB,wBAAsB,OAAO,CAAC,CAAC,SAAS,aAAa,GAAG,WAAW,EACjE,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAoBzB;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAS7B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/shared/lib/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAmB,MAAM,MAAM,CAAC;AAClD,OAAO,EACL,SAAS,GAMV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAE9D,uCAAuC;AACvC,MAAM,QAAQ,GAAG,CACf,IAAS,EACT,GAAM,EACM,EAAE;IACd,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,GAAW,EACK,EAAE;IAClB,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,WAA6B,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,WAAW,GAAG,cAAc,CAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,uCAAuC;IACvC,IAAI,CAAC,WAAW,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAElC,qCAAqC;IACrC,MAAM,6BAA6B,GAAG;QACpC,GAAI,WAAiB;QACrB,EAAE,EAAE,WAAW,CAAC,GAAG;KACpB,CAAC;IAEF,6CAA6C;IAC7C,0EAA0E;IAC1E,OAAO,QAAQ,CACb,CAAC,GAAG,4BAA4B,EAAE,GAAG,SAAS,CAAC,EAC/C,6BAA6B,CACnB,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAoB;IAEpB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,QAAQ;QAC7B,WAAW,EAAE,WAAW,CAAC,YAAY;QACrC,YAAY,EAAE,WAAW,CAAC,aAAa;KACxC,CAAC;AACJ,CAAC","sourcesContent":["import { retrieveTokens } from \"@/shared/lib/util.js\";\nimport { decodeJwt, type JWTPayload } from \"jose\";\nimport {\n tokenKeys,\n type AuthStorage,\n type OAuthTokens,\n type User,\n type EmptyObject,\n type UnknownObject,\n} from \"@/types.js\";\nimport { JWT_PAYLOAD_KNOWN_CLAIM_KEYS } from \"@/constants.js\";\n\n// Function to omit keys from an object\nconst omitKeys = <K extends keyof T, T extends Record<string, unknown>>(\n keys: K[],\n obj: T,\n): Omit<T, K> => {\n const result = { ...obj };\n keys.forEach((key) => {\n delete result[key];\n });\n return result;\n};\n\nconst parseJWTToType = <T extends UnknownObject = EmptyObject>(\n jwt: string,\n): JWTPayload & T => {\n const parseResult = decodeJwt(jwt);\n return parseResult as JWTPayload & T;\n};\n\nexport async function getUser<T extends UnknownObject = EmptyObject>(\n storage: AuthStorage,\n): Promise<User<T> | null> {\n const tokens = await retrieveTokens(storage);\n if (!tokens) return null;\n\n const parsedToken = parseJWTToType<T>(tokens.id_token);\n // it might be preferable to throw here\n if (!parsedToken.sub) return null;\n\n // set the user ID from the token sub\n const userWithAdditionalTokenFields = {\n ...(parsedToken as T),\n id: parsedToken.sub,\n };\n\n // Assumes all information is in the ID token\n // remove the token keys from the user object to stop it getting too large\n return omitKeys(\n [...JWT_PAYLOAD_KNOWN_CLAIM_KEYS, ...tokenKeys],\n userWithAdditionalTokenFields,\n ) as User<T>;\n}\n\nexport async function getTokens(\n storage: AuthStorage,\n): Promise<OAuthTokens | null> {\n const storageData = await retrieveTokens(storage);\n if (!storageData) return null;\n\n return {\n idToken: storageData.id_token,\n accessToken: storageData.access_token,\n refreshToken: storageData.refresh_token,\n };\n}\n"]}
@@ -0,0 +1,35 @@
1
+ import type { AuthStorage, SessionData, UnknownObject, User } from "../../types.js";
2
+ import type { CookieConfig } from "./types.js";
3
+ type SameSiteOption = "strict" | "lax" | "none";
4
+ export interface SessionStorage {
5
+ get(): SessionData;
6
+ getUser(): User<UnknownObject> | null;
7
+ set(data: Partial<SessionData>): void;
8
+ setUser(data: User<UnknownObject> | null): void;
9
+ clear(): void;
10
+ }
11
+ export type CookieStorageSettings = {
12
+ httpOnly: boolean;
13
+ secure: boolean;
14
+ sameSite: SameSiteOption;
15
+ expires: Date;
16
+ path: string;
17
+ };
18
+ export declare const DEFAULT_COOKIE_DURATION: number;
19
+ export declare abstract class CookieStorage implements AuthStorage {
20
+ protected settings: CookieStorageSettings;
21
+ protected constructor(settings?: Partial<CookieStorageSettings>);
22
+ abstract get(key: string): Promise<string | null>;
23
+ abstract set(key: string, value: string, cookieConfigOverride?: Partial<CookieConfig>): Promise<void>;
24
+ abstract delete(key: string): Promise<void>;
25
+ }
26
+ export type AuthCookieStorageSettings = {
27
+ httpOnly: boolean;
28
+ secure: boolean;
29
+ sameSite: SameSiteOption;
30
+ expires: Date;
31
+ path: string;
32
+ timestamp: Date;
33
+ };
34
+ export {};
35
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,KAAK,cAAc,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,GAAG,IAAI,WAAW,CAAC;IACnB,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACtC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAChD,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAU,CAAC;AAE/C,8BAAsB,aAAc,YAAW,WAAW;IACxD,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAC1C,SAAS,aAAa,QAAQ,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAanE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,GAAG,CACV,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,oBAAoB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC;IAChB,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAC5C;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/shared/lib/storage.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa;AAE7D,MAAM,OAAgB,aAAa;IACvB,QAAQ,CAAwB;IAC1C,YAAsB,WAA2C,EAAE;QACjE,IAAI,CAAC,QAAQ,GAAG;YACd,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI;YACnC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI;YAC/B,6CAA6C;YAC7C,kEAAkE;YAClE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;YACpC,OAAO,EACL,QAAQ,CAAC,OAAO;gBAChB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,uBAAuB,CAAC;YACvD,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,GAAG;SAC3B,CAAC;IACJ,CAAC;CAQF","sourcesContent":["import type { AuthStorage, SessionData, UnknownObject, User } from \"@/types.js\";\nimport type { CookieConfig } from \"./types.js\";\n\ntype SameSiteOption = \"strict\" | \"lax\" | \"none\";\n\nexport interface SessionStorage {\n get(): SessionData;\n getUser(): User<UnknownObject> | null;\n set(data: Partial<SessionData>): void;\n setUser(data: User<UnknownObject> | null): void;\n clear(): void;\n}\n\nexport type CookieStorageSettings = {\n httpOnly: boolean;\n secure: boolean;\n sameSite: SameSiteOption;\n expires: Date;\n path: string;\n};\n\nexport const DEFAULT_COOKIE_DURATION = 60 * 15; // 15 minutes\n\nexport abstract class CookieStorage implements AuthStorage {\n protected settings: CookieStorageSettings;\n protected constructor(settings: Partial<CookieStorageSettings> = {}) {\n this.settings = {\n httpOnly: settings.httpOnly ?? true,\n secure: settings.secure ?? true,\n // the callback request comes the auth server\n // 'lax' ensures the code_verifier cookie is sent with the request\n sameSite: settings.sameSite ?? \"lax\",\n expires:\n settings.expires ??\n new Date(Date.now() + 1000 * DEFAULT_COOKIE_DURATION),\n path: settings.path ?? \"/\",\n };\n }\n abstract get(key: string): Promise<string | null>;\n abstract set(\n key: string,\n value: string,\n cookieConfigOverride?: Partial<CookieConfig>,\n ): Promise<void>;\n abstract delete(key: string): Promise<void>;\n}\n\nexport type AuthCookieStorageSettings = {\n httpOnly: boolean;\n secure: boolean;\n sameSite: SameSiteOption;\n expires: Date;\n path: string;\n timestamp: Date;\n};\n"]}
@@ -0,0 +1,39 @@
1
+ import type { Endpoints } from "../../types.js";
2
+ export declare enum OAuthTokens {
3
+ ID_TOKEN = "id_token",
4
+ ACCESS_TOKEN = "access_token",
5
+ REFRESH_TOKEN = "refresh_token",
6
+ ACCESS_TOKEN_EXPIRES_AT = "access_token_expires_at"
7
+ }
8
+ export declare const AUTH_SERVER_SESSION = "_session";
9
+ export declare const AUTH_SERVER_LEGACY_SESSION = "_session.legacy";
10
+ export declare enum CodeVerifier {
11
+ COOKIE_NAME = "code_verifier",
12
+ APP_URL = "app_url"
13
+ }
14
+ export declare enum UserStorage {
15
+ USER = "user"
16
+ }
17
+ export interface CookieConfig {
18
+ secure?: boolean;
19
+ sameSite?: "strict" | "lax" | "none";
20
+ domain?: string;
21
+ path?: string;
22
+ maxAge?: number;
23
+ httpOnly?: boolean;
24
+ }
25
+ export type KeySetter = OAuthTokens | CodeVerifier | UserStorage;
26
+ export type TokensCookieConfig = Record<OAuthTokens | CodeVerifier, CookieConfig>;
27
+ export type CivicAuthConfig = null | {
28
+ clientId: string;
29
+ redirectUrl: string;
30
+ logoutRedirectUrl: string;
31
+ oauthServer: string;
32
+ endpoints: Endpoints;
33
+ scopes: string[];
34
+ nonce?: string;
35
+ challengeUrl?: string;
36
+ refreshUrl?: string;
37
+ logoutUrl?: string;
38
+ };
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,oBAAY,WAAW;IACrB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,uBAAuB,4BAA4B;CACpD;AAED,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,oBAAY,YAAY;IACtB,WAAW,kBAAkB;IAC7B,OAAO,YAAY;CACpB;AACD,oBAAY,WAAW;IACrB,IAAI,SAAS;CACd;AACD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACrC,WAAW,GAAG,YAAY,EAC1B,YAAY,CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/lib/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4CAA6B,CAAA;IAC7B,8CAA+B,CAAA;IAC/B,kEAAmD,CAAA;AACrD,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAE5D,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6CAA6B,CAAA;IAC7B,mCAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AACD,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,4BAAa,CAAA;AACf,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB","sourcesContent":["import type { Endpoints } from \"@/types.js\";\n\nexport enum OAuthTokens {\n ID_TOKEN = \"id_token\",\n ACCESS_TOKEN = \"access_token\",\n REFRESH_TOKEN = \"refresh_token\",\n ACCESS_TOKEN_EXPIRES_AT = \"access_token_expires_at\",\n}\n\nexport const AUTH_SERVER_SESSION = \"_session\";\nexport const AUTH_SERVER_LEGACY_SESSION = \"_session.legacy\";\n\nexport enum CodeVerifier {\n COOKIE_NAME = \"code_verifier\",\n APP_URL = \"app_url\",\n}\nexport enum UserStorage {\n USER = \"user\",\n}\nexport interface CookieConfig {\n secure?: boolean;\n sameSite?: \"strict\" | \"lax\" | \"none\";\n domain?: string;\n path?: string;\n maxAge?: number;\n httpOnly?: boolean;\n}\nexport type KeySetter = OAuthTokens | CodeVerifier | UserStorage;\n\nexport type TokensCookieConfig = Record<\n OAuthTokens | CodeVerifier,\n CookieConfig\n>;\n\nexport type CivicAuthConfig = null | {\n clientId: string;\n redirectUrl: string;\n logoutRedirectUrl: string;\n oauthServer: string;\n endpoints: Endpoints;\n scopes: string[];\n nonce?: string;\n challengeUrl?: string;\n refreshUrl?: string;\n logoutUrl?: string;\n};\n"]}
@@ -0,0 +1,40 @@
1
+ import type { AuthStorage, Endpoints, OIDCTokenResponseBody, ParsedTokens } from "../../types.js";
2
+ import { OAuth2Client } from "oslo/oauth2";
3
+ import type { PKCEConsumer, PKCEProducer } from "../../services/types.js";
4
+ import type { CookieStorage } from "./storage.js";
5
+ /**
6
+ * Given a PKCE code verifier, derive the code challenge using SHA
7
+ */
8
+ export declare function deriveCodeChallenge(codeVerifier: string, method?: "Plain" | "S256"): Promise<string>;
9
+ export declare function getEndpointsWithOverrides(oauthServer: string, endpointOverrides?: Partial<Endpoints>): Promise<Endpoints>;
10
+ export declare function generateOauthLoginUrl(config: {
11
+ clientId: string;
12
+ scopes: string[];
13
+ state: string;
14
+ redirectUrl: string;
15
+ oauthServer: string;
16
+ nonce?: string;
17
+ endpointOverrides?: Partial<Endpoints>;
18
+ pkceConsumer: PKCEConsumer;
19
+ }): Promise<URL>;
20
+ export declare function generateOauthLogoutUrl(config: {
21
+ clientId: string;
22
+ redirectUrl: string;
23
+ idToken: string;
24
+ state: string;
25
+ oauthServer: string;
26
+ endpointOverrides?: Partial<Endpoints>;
27
+ }): Promise<URL>;
28
+ export declare function buildOauth2Client(clientId: string, redirectUri: string, endpoints: Endpoints): OAuth2Client;
29
+ export declare function exchangeTokens(code: string, state: string, pkceProducer: PKCEProducer, oauth2Client: OAuth2Client, oauthServer: string, endpoints: Endpoints): Promise<OIDCTokenResponseBody>;
30
+ export declare const getAccessTokenExpiresAt: (tokens: OIDCTokenResponseBody) => number;
31
+ export declare function setAccessTokenExpiresAt(storage: AuthStorage | CookieStorage, tokens: OIDCTokenResponseBody): Promise<void>;
32
+ export declare function storeTokens(storage: AuthStorage, tokens: OIDCTokenResponseBody): Promise<void>;
33
+ export declare function storeServerTokens(storage: AuthStorage | CookieStorage, tokens: OIDCTokenResponseBody): Promise<void>;
34
+ export declare function clearTokens(storage: AuthStorage): Promise<void>;
35
+ export declare function clearAuthServerSession(storage: AuthStorage): Promise<void>;
36
+ export declare function clearUser(storage: AuthStorage): Promise<void>;
37
+ export declare function retrieveTokens(storage: AuthStorage): Promise<OIDCTokenResponseBody | null>;
38
+ export declare function retrieveAccessTokenExpiresAt(storage: AuthStorage): Promise<number>;
39
+ export declare function validateOauth2Tokens(tokens: OIDCTokenResponseBody, endpoints: Endpoints, oauth2Client: OAuth2Client, issuer: string): Promise<ParsedTokens>;
40
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,YAAY,EACb,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAOlD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,OAAO,GAAG,MAAe,GAChC,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,iBAAiB,GAAE,OAAO,CAAC,SAAS,CAAM,GACzC,OAAO,CAAC,SAAS,CAAC,CAMpB;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,YAAY,EAAE,YAAY,CAAC;CAC5B,GAAG,OAAO,CAAC,GAAG,CAAC,CA2Bf;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CACxC,GAAG,OAAO,CAAC,GAAG,CAAC,CAcf;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,GACnB,YAAY,CAId;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,kCAoBrB;AAED,eAAO,MAAM,uBAAuB,WAC1B,qBAAqB,KAC5B,MAUF,CAAC;AACF,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,GAAG,aAAa,EACpC,MAAM,EAAE,qBAAqB,iBAQ9B;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,qBAAqB,iBAQ9B;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,GAAG,aAAa,EACpC,MAAM,EAAE,qBAAqB,iBAsC9B;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,iBAYrD;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,WAAW,iBAGhE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,WAAW,iBAGnD;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAmBvC;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CA2BvB"}
@@ -0,0 +1,187 @@
1
+ import { AUTH_SERVER_LEGACY_SESSION, AUTH_SERVER_SESSION, OAuthTokens, } from "./types.js";
2
+ import { OAuth2Client } from "oslo/oauth2";
3
+ import { getIssuerVariations, getOauthEndpoints } from "../../lib/oauth.js";
4
+ import * as jose from "jose";
5
+ import { withoutUndefined } from "../../utils.js";
6
+ import { GenericUserSession } from "../../shared/lib/UserSession.js";
7
+ import { decodeJwt } from "jose";
8
+ import { AUTOREFRESH_TIMEOUT_NAME, LOGOUT_STATE, REFRESH_IN_PROGRESS, } from "../../constants.js";
9
+ /**
10
+ * Given a PKCE code verifier, derive the code challenge using SHA
11
+ */
12
+ export async function deriveCodeChallenge(codeVerifier, method = "S256") {
13
+ if (method === "Plain") {
14
+ console.warn("Using insecure plain code challenge method");
15
+ return codeVerifier;
16
+ }
17
+ const encoder = new TextEncoder();
18
+ const data = encoder.encode(codeVerifier);
19
+ const digest = await crypto.subtle.digest("SHA-256", data);
20
+ return btoa(String.fromCharCode(...new Uint8Array(digest)))
21
+ .replace(/\+/g, "-")
22
+ .replace(/\//g, "_")
23
+ .replace(/=+$/, "");
24
+ }
25
+ export async function getEndpointsWithOverrides(oauthServer, endpointOverrides = {}) {
26
+ const endpoints = await getOauthEndpoints(oauthServer);
27
+ return {
28
+ ...endpoints,
29
+ ...endpointOverrides,
30
+ };
31
+ }
32
+ export async function generateOauthLoginUrl(config) {
33
+ const endpoints = await getEndpointsWithOverrides(config.oauthServer, config.endpointOverrides);
34
+ const oauth2Client = buildOauth2Client(config.clientId, config.redirectUrl, endpoints);
35
+ const challenge = await config.pkceConsumer.getCodeChallenge();
36
+ const oAuthUrl = await oauth2Client.createAuthorizationURL({
37
+ state: config.state,
38
+ scopes: config.scopes,
39
+ });
40
+ // The OAuth2 client supports PKCE, but does not allow passing in a code challenge from some other source
41
+ // It only allows passing in a code verifier which it then hashes itself.
42
+ oAuthUrl.searchParams.append("code_challenge", challenge);
43
+ oAuthUrl.searchParams.append("code_challenge_method", "S256");
44
+ if (config.nonce) {
45
+ // nonce isn't supported by oslo, so we add it manually
46
+ oAuthUrl.searchParams.append("nonce", config.nonce);
47
+ }
48
+ // Required by the auth server for offline_access scope
49
+ oAuthUrl.searchParams.append("prompt", "consent");
50
+ return oAuthUrl;
51
+ }
52
+ export async function generateOauthLogoutUrl(config) {
53
+ const endpoints = await getEndpointsWithOverrides(config.oauthServer, config.endpointOverrides);
54
+ const endSessionUrl = new URL(endpoints.endsession);
55
+ endSessionUrl.searchParams.append("client_id", config.clientId);
56
+ endSessionUrl.searchParams.append("id_token_hint", config.idToken);
57
+ endSessionUrl.searchParams.append("state", config.state);
58
+ endSessionUrl.searchParams.append("post_logout_redirect_uri", config.redirectUrl);
59
+ return endSessionUrl;
60
+ }
61
+ export function buildOauth2Client(clientId, redirectUri, endpoints) {
62
+ return new OAuth2Client(clientId, endpoints.auth, endpoints.token, {
63
+ redirectURI: redirectUri,
64
+ });
65
+ }
66
+ export async function exchangeTokens(code, state, pkceProducer, oauth2Client, oauthServer, endpoints) {
67
+ const codeVerifier = await pkceProducer.getCodeVerifier();
68
+ if (!codeVerifier)
69
+ throw new Error("Code verifier not found in state");
70
+ const tokens = await oauth2Client.validateAuthorizationCode(code, {
71
+ codeVerifier,
72
+ });
73
+ // Validate relevant tokens
74
+ try {
75
+ await validateOauth2Tokens(tokens, endpoints, oauth2Client, oauthServer);
76
+ }
77
+ catch (error) {
78
+ console.error("tokenExchange error", { error, tokens });
79
+ throw new Error(`OIDC tokens validation failed: ${error.message}`);
80
+ }
81
+ return tokens;
82
+ }
83
+ export const getAccessTokenExpiresAt = (tokens) => {
84
+ const parsedAccessToken = decodeJwt(tokens.access_token);
85
+ if (parsedAccessToken?.exp || false) {
86
+ return parsedAccessToken.exp;
87
+ }
88
+ else if (tokens.expires_in) {
89
+ const now = Math.floor(new Date().getTime() / 1000);
90
+ return now + tokens.expires_in;
91
+ }
92
+ else {
93
+ throw new Error("Cannot determine access token expiry!");
94
+ }
95
+ };
96
+ export async function setAccessTokenExpiresAt(storage, tokens) {
97
+ // try to extract absolute expiry time from access token but fallback to calculation if not possible
98
+ const accessTokenExpiresAt = getAccessTokenExpiresAt(tokens);
99
+ await storage.set(OAuthTokens.ACCESS_TOKEN_EXPIRES_AT, accessTokenExpiresAt.toString());
100
+ }
101
+ export async function storeTokens(storage, tokens) {
102
+ await storage.set(OAuthTokens.ID_TOKEN, tokens.id_token);
103
+ await storage.set(OAuthTokens.ACCESS_TOKEN, tokens.access_token);
104
+ if (tokens.refresh_token) {
105
+ await storage.set(OAuthTokens.REFRESH_TOKEN, tokens.refresh_token);
106
+ }
107
+ await setAccessTokenExpiresAt(storage, tokens);
108
+ }
109
+ export async function storeServerTokens(storage, tokens) {
110
+ const accessTokenExpiresAt = getAccessTokenExpiresAt(tokens);
111
+ const cookieStorage = storage;
112
+ const now = Math.floor(Date.now() / 1000);
113
+ const accessTokenMaxAge = accessTokenExpiresAt && accessTokenExpiresAt - now;
114
+ const cookiesOverride = {
115
+ ...(accessTokenMaxAge ? { maxAge: accessTokenMaxAge } : {}),
116
+ };
117
+ // the refresh token must be longer-lived than the access token max age to allow time for automatic refresh
118
+ // as it's not a JWT, we derive it from the access token max age and add a margin
119
+ const refreshTokenMaxAge = accessTokenMaxAge && accessTokenMaxAge + 5 * 60;
120
+ const refreshCookiesOverride = {
121
+ ...(refreshTokenMaxAge ? { maxAge: refreshTokenMaxAge } : {}),
122
+ };
123
+ await cookieStorage.set(OAuthTokens.ID_TOKEN, tokens.id_token, cookiesOverride);
124
+ await cookieStorage.set(OAuthTokens.ACCESS_TOKEN, tokens.access_token, cookiesOverride);
125
+ if (tokens.refresh_token) {
126
+ await cookieStorage.set(OAuthTokens.REFRESH_TOKEN, tokens.refresh_token, refreshCookiesOverride);
127
+ }
128
+ await storage.set(OAuthTokens.ACCESS_TOKEN_EXPIRES_AT, accessTokenExpiresAt.toString(), cookiesOverride);
129
+ }
130
+ export async function clearTokens(storage) {
131
+ console.log("clearTokens");
132
+ // clear all local storage keys related to OAuth and CivicAuth SDK
133
+ const clearOAuthPromises = [
134
+ ...Object.values(OAuthTokens),
135
+ REFRESH_IN_PROGRESS,
136
+ AUTOREFRESH_TIMEOUT_NAME,
137
+ LOGOUT_STATE,
138
+ ].map(async (key) => {
139
+ await storage.delete(key);
140
+ });
141
+ await Promise.all([...clearOAuthPromises]);
142
+ }
143
+ export async function clearAuthServerSession(storage) {
144
+ await storage.delete(AUTH_SERVER_SESSION);
145
+ await storage.delete(AUTH_SERVER_LEGACY_SESSION);
146
+ }
147
+ export async function clearUser(storage) {
148
+ const userSession = new GenericUserSession(storage);
149
+ await userSession.clear();
150
+ }
151
+ export async function retrieveTokens(storage) {
152
+ const idToken = await storage.get(OAuthTokens.ID_TOKEN);
153
+ const accessToken = await storage.get(OAuthTokens.ACCESS_TOKEN);
154
+ const refreshToken = await storage.get(OAuthTokens.REFRESH_TOKEN);
155
+ const accessTokenExpiresAt = await storage.get(OAuthTokens.ACCESS_TOKEN_EXPIRES_AT);
156
+ if (!idToken || !accessToken)
157
+ return null;
158
+ return {
159
+ id_token: idToken,
160
+ access_token: accessToken,
161
+ refresh_token: refreshToken ?? undefined,
162
+ access_token_expires_at: accessTokenExpiresAt !== null
163
+ ? parseInt(accessTokenExpiresAt, 10)
164
+ : undefined, // Convert string to number
165
+ };
166
+ }
167
+ export async function retrieveAccessTokenExpiresAt(storage) {
168
+ return Number(await storage.get(OAuthTokens.ACCESS_TOKEN_EXPIRES_AT));
169
+ }
170
+ export async function validateOauth2Tokens(tokens, endpoints, oauth2Client, issuer) {
171
+ const JWKS = jose.createRemoteJWKSet(new URL(endpoints.jwks));
172
+ // validate the ID token
173
+ const idTokenResponse = await jose.jwtVerify(tokens.id_token, JWKS, {
174
+ issuer: getIssuerVariations(issuer),
175
+ audience: oauth2Client.clientId,
176
+ });
177
+ // validate the access token
178
+ const accessTokenResponse = await jose.jwtVerify(tokens.access_token, JWKS, {
179
+ issuer: getIssuerVariations(issuer),
180
+ });
181
+ return withoutUndefined({
182
+ id_token: idTokenResponse.payload,
183
+ access_token: accessTokenResponse.payload,
184
+ refresh_token: tokens.refresh_token,
185
+ });
186
+ }
187
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/shared/lib/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Utility functions shared by auth server and client integrations\n// Typically these functions should be used inside AuthenticationInitiator and AuthenticationResolver implementations\nimport type {\n AuthStorage,\n Endpoints,\n OIDCTokenResponseBody,\n ParsedTokens,\n} from \"@/types.js\";\nimport {\n AUTH_SERVER_LEGACY_SESSION,\n AUTH_SERVER_SESSION,\n OAuthTokens,\n} from \"./types.js\";\nimport { OAuth2Client } from \"oslo/oauth2\";\nimport { getIssuerVariations, getOauthEndpoints } from \"@/lib/oauth.js\";\nimport * as jose from \"jose\";\nimport { withoutUndefined } from \"@/utils.js\";\nimport type { PKCEConsumer, PKCEProducer } from \"@/services/types.js\";\nimport { GenericUserSession } from \"@/shared/lib/UserSession.js\";\nimport { decodeJwt, type JWTPayload } from \"jose\";\nimport type { CookieStorage } from \"./storage.js\";\nimport {\n AUTOREFRESH_TIMEOUT_NAME,\n LOGOUT_STATE,\n REFRESH_IN_PROGRESS,\n} from \"@/constants.js\";\n\n/**\n * Given a PKCE code verifier, derive the code challenge using SHA\n */\nexport async function deriveCodeChallenge(\n codeVerifier: string,\n method: \"Plain\" | \"S256\" = \"S256\",\n): Promise<string> {\n if (method === \"Plain\") {\n console.warn(\"Using insecure plain code challenge method\");\n return codeVerifier;\n }\n\n const encoder = new TextEncoder();\n const data = encoder.encode(codeVerifier);\n const digest = await crypto.subtle.digest(\"SHA-256\", data);\n return btoa(String.fromCharCode(...new Uint8Array(digest)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n}\n\nexport async function getEndpointsWithOverrides(\n oauthServer: string,\n endpointOverrides: Partial<Endpoints> = {},\n): Promise<Endpoints> {\n const endpoints = await getOauthEndpoints(oauthServer);\n return {\n ...endpoints,\n ...endpointOverrides,\n };\n}\n\nexport async function generateOauthLoginUrl(config: {\n clientId: string;\n scopes: string[];\n state: string;\n redirectUrl: string;\n oauthServer: string;\n nonce?: string;\n endpointOverrides?: Partial<Endpoints>;\n // used to get the PKCE challenge\n pkceConsumer: PKCEConsumer;\n}): Promise<URL> {\n const endpoints = await getEndpointsWithOverrides(\n config.oauthServer,\n config.endpointOverrides,\n );\n const oauth2Client = buildOauth2Client(\n config.clientId,\n config.redirectUrl,\n endpoints,\n );\n const challenge = await config.pkceConsumer.getCodeChallenge();\n const oAuthUrl = await oauth2Client.createAuthorizationURL({\n state: config.state,\n scopes: config.scopes,\n });\n // The OAuth2 client supports PKCE, but does not allow passing in a code challenge from some other source\n // It only allows passing in a code verifier which it then hashes itself.\n oAuthUrl.searchParams.append(\"code_challenge\", challenge);\n oAuthUrl.searchParams.append(\"code_challenge_method\", \"S256\");\n if (config.nonce) {\n // nonce isn't supported by oslo, so we add it manually\n oAuthUrl.searchParams.append(\"nonce\", config.nonce);\n }\n // Required by the auth server for offline_access scope\n oAuthUrl.searchParams.append(\"prompt\", \"consent\");\n\n return oAuthUrl;\n}\n\nexport async function generateOauthLogoutUrl(config: {\n clientId: string;\n redirectUrl: string;\n idToken: string;\n state: string;\n oauthServer: string;\n endpointOverrides?: Partial<Endpoints>;\n}): Promise<URL> {\n const endpoints = await getEndpointsWithOverrides(\n config.oauthServer,\n config.endpointOverrides,\n );\n const endSessionUrl = new URL(endpoints.endsession);\n endSessionUrl.searchParams.append(\"client_id\", config.clientId);\n endSessionUrl.searchParams.append(\"id_token_hint\", config.idToken);\n endSessionUrl.searchParams.append(\"state\", config.state);\n endSessionUrl.searchParams.append(\n \"post_logout_redirect_uri\",\n config.redirectUrl,\n );\n return endSessionUrl;\n}\n\nexport function buildOauth2Client(\n clientId: string,\n redirectUri: string,\n endpoints: Endpoints,\n): OAuth2Client {\n return new OAuth2Client(clientId, endpoints.auth, endpoints.token, {\n redirectURI: redirectUri,\n });\n}\n\nexport async function exchangeTokens(\n code: string,\n state: string,\n pkceProducer: PKCEProducer,\n oauth2Client: OAuth2Client,\n oauthServer: string,\n endpoints: Endpoints,\n) {\n const codeVerifier = await pkceProducer.getCodeVerifier();\n if (!codeVerifier) throw new Error(\"Code verifier not found in state\");\n\n const tokens =\n await oauth2Client.validateAuthorizationCode<OIDCTokenResponseBody>(code, {\n codeVerifier,\n });\n\n // Validate relevant tokens\n try {\n await validateOauth2Tokens(tokens, endpoints, oauth2Client, oauthServer);\n } catch (error) {\n console.error(\"tokenExchange error\", { error, tokens });\n throw new Error(\n `OIDC tokens validation failed: ${(error as Error).message}`,\n );\n }\n return tokens;\n}\n\nexport const getAccessTokenExpiresAt = (\n tokens: OIDCTokenResponseBody,\n): number => {\n const parsedAccessToken = decodeJwt(tokens.access_token);\n if (parsedAccessToken?.exp || false) {\n return parsedAccessToken.exp;\n } else if (tokens.expires_in) {\n const now = Math.floor(new Date().getTime() / 1000);\n return now + tokens.expires_in;\n } else {\n throw new Error(\"Cannot determine access token expiry!\");\n }\n};\nexport async function setAccessTokenExpiresAt(\n storage: AuthStorage | CookieStorage,\n tokens: OIDCTokenResponseBody,\n) {\n // try to extract absolute expiry time from access token but fallback to calculation if not possible\n const accessTokenExpiresAt = getAccessTokenExpiresAt(tokens);\n await storage.set(\n OAuthTokens.ACCESS_TOKEN_EXPIRES_AT,\n accessTokenExpiresAt.toString(),\n );\n}\n\nexport async function storeTokens(\n storage: AuthStorage,\n tokens: OIDCTokenResponseBody,\n) {\n await storage.set(OAuthTokens.ID_TOKEN, tokens.id_token);\n await storage.set(OAuthTokens.ACCESS_TOKEN, tokens.access_token);\n if (tokens.refresh_token) {\n await storage.set(OAuthTokens.REFRESH_TOKEN, tokens.refresh_token);\n }\n await setAccessTokenExpiresAt(storage, tokens);\n}\n\nexport async function storeServerTokens(\n storage: AuthStorage | CookieStorage,\n tokens: OIDCTokenResponseBody,\n) {\n const accessTokenExpiresAt = getAccessTokenExpiresAt(tokens);\n const cookieStorage = storage as CookieStorage;\n const now = Math.floor(Date.now() / 1000);\n const accessTokenMaxAge = accessTokenExpiresAt && accessTokenExpiresAt - now;\n\n const cookiesOverride = {\n ...(accessTokenMaxAge ? { maxAge: accessTokenMaxAge } : {}),\n };\n // the refresh token must be longer-lived than the access token max age to allow time for automatic refresh\n // as it's not a JWT, we derive it from the access token max age and add a margin\n const refreshTokenMaxAge = accessTokenMaxAge && accessTokenMaxAge + 5 * 60;\n const refreshCookiesOverride = {\n ...(refreshTokenMaxAge ? { maxAge: refreshTokenMaxAge } : {}),\n };\n await cookieStorage.set(\n OAuthTokens.ID_TOKEN,\n tokens.id_token,\n cookiesOverride,\n );\n await cookieStorage.set(\n OAuthTokens.ACCESS_TOKEN,\n tokens.access_token,\n cookiesOverride,\n );\n if (tokens.refresh_token) {\n await cookieStorage.set(\n OAuthTokens.REFRESH_TOKEN,\n tokens.refresh_token,\n refreshCookiesOverride,\n );\n }\n await storage.set(\n OAuthTokens.ACCESS_TOKEN_EXPIRES_AT,\n accessTokenExpiresAt.toString(),\n cookiesOverride,\n );\n}\n\nexport async function clearTokens(storage: AuthStorage) {\n console.log(\"clearTokens\");\n // clear all local storage keys related to OAuth and CivicAuth SDK\n const clearOAuthPromises = [\n ...Object.values(OAuthTokens),\n REFRESH_IN_PROGRESS,\n AUTOREFRESH_TIMEOUT_NAME,\n LOGOUT_STATE,\n ].map(async (key) => {\n await storage.delete(key);\n });\n await Promise.all([...clearOAuthPromises]);\n}\n\nexport async function clearAuthServerSession(storage: AuthStorage) {\n await storage.delete(AUTH_SERVER_SESSION);\n await storage.delete(AUTH_SERVER_LEGACY_SESSION);\n}\n\nexport async function clearUser(storage: AuthStorage) {\n const userSession = new GenericUserSession(storage);\n await userSession.clear();\n}\n\nexport async function retrieveTokens(\n storage: AuthStorage,\n): Promise<OIDCTokenResponseBody | null> {\n const idToken = await storage.get(OAuthTokens.ID_TOKEN);\n const accessToken = await storage.get(OAuthTokens.ACCESS_TOKEN);\n const refreshToken = await storage.get(OAuthTokens.REFRESH_TOKEN);\n const accessTokenExpiresAt = await storage.get(\n OAuthTokens.ACCESS_TOKEN_EXPIRES_AT,\n );\n\n if (!idToken || !accessToken) return null;\n\n return {\n id_token: idToken,\n access_token: accessToken,\n refresh_token: refreshToken ?? undefined,\n access_token_expires_at:\n accessTokenExpiresAt !== null\n ? parseInt(accessTokenExpiresAt, 10)\n : undefined, // Convert string to number\n };\n}\n\nexport async function retrieveAccessTokenExpiresAt(\n storage: AuthStorage,\n): Promise<number> {\n return Number(await storage.get(OAuthTokens.ACCESS_TOKEN_EXPIRES_AT));\n}\n\nexport async function validateOauth2Tokens(\n tokens: OIDCTokenResponseBody,\n endpoints: Endpoints,\n oauth2Client: OAuth2Client,\n issuer: string,\n): Promise<ParsedTokens> {\n const JWKS = jose.createRemoteJWKSet(new URL(endpoints.jwks));\n\n // validate the ID token\n const idTokenResponse = await jose.jwtVerify<JWTPayload>(\n tokens.id_token,\n JWKS,\n {\n issuer: getIssuerVariations(issuer),\n audience: oauth2Client.clientId,\n },\n );\n\n // validate the access token\n const accessTokenResponse = await jose.jwtVerify<JWTPayload>(\n tokens.access_token,\n JWKS,\n {\n issuer: getIssuerVariations(issuer),\n },\n );\n\n return withoutUndefined({\n id_token: idTokenResponse.payload,\n access_token: accessTokenResponse.payload,\n refresh_token: tokens.refresh_token,\n });\n}\n"]}