@civic/auth 0.0.1-beta.31 → 0.0.1-beta.5

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 (701) hide show
  1. package/README.md +4 -0
  2. package/dist/chunk-CRTRMMJ7.js +59 -0
  3. package/dist/chunk-CRTRMMJ7.js.map +1 -0
  4. package/dist/chunk-EAANLFR5.mjs +148 -0
  5. package/dist/chunk-EAANLFR5.mjs.map +1 -0
  6. package/dist/chunk-EGFTMH5S.mjs +214 -0
  7. package/dist/chunk-EGFTMH5S.mjs.map +1 -0
  8. package/dist/chunk-KCSGIIPA.js +214 -0
  9. package/dist/chunk-KCSGIIPA.js.map +1 -0
  10. package/dist/chunk-MVO4UZ2A.js +148 -0
  11. package/dist/chunk-MVO4UZ2A.js.map +1 -0
  12. package/dist/chunk-PMDIR5XE.mjs +502 -0
  13. package/dist/chunk-PMDIR5XE.mjs.map +1 -0
  14. package/dist/chunk-RGHW4PYM.mjs +59 -0
  15. package/dist/chunk-RGHW4PYM.mjs.map +1 -0
  16. package/dist/chunk-YNLXRD5L.js +502 -0
  17. package/dist/chunk-YNLXRD5L.js.map +1 -0
  18. package/dist/index-Bfi0hVMZ.d.mts +58 -0
  19. package/dist/index-Bfi0hVMZ.d.ts +58 -0
  20. package/dist/index.css +339 -0
  21. package/dist/index.css.map +1 -0
  22. package/dist/index.d.mts +2 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.js +2 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/index.mjs +2 -0
  27. package/dist/index.mjs.map +1 -0
  28. package/dist/nextjs.d.mts +224 -0
  29. package/dist/nextjs.d.ts +224 -0
  30. package/dist/nextjs.js +239 -0
  31. package/dist/nextjs.js.map +1 -0
  32. package/dist/nextjs.mjs +239 -0
  33. package/dist/nextjs.mjs.map +1 -0
  34. package/dist/react.d.mts +101 -0
  35. package/dist/react.d.ts +101 -0
  36. package/dist/react.js +970 -0
  37. package/dist/react.js.map +1 -0
  38. package/dist/react.mjs +970 -0
  39. package/dist/react.mjs.map +1 -0
  40. package/dist/server.d.mts +56 -0
  41. package/dist/server.d.ts +56 -0
  42. package/dist/server.js +20 -0
  43. package/dist/server.js.map +1 -0
  44. package/dist/server.mjs +20 -0
  45. package/dist/server.mjs.map +1 -0
  46. package/package.json +42 -52
  47. package/.eslintignore +0 -3
  48. package/.eslintrc.json +0 -10
  49. package/.prettierignore +0 -3
  50. package/.prettierrc +0 -1
  51. package/.turbo/turbo-build.log +0 -13
  52. package/.turbo/turbo-lint$colon$fix.log +0 -16
  53. package/.turbo/turbo-test.log +0 -1153
  54. package/dist/cjs/src/browser/storage.d.ts +0 -6
  55. package/dist/cjs/src/browser/storage.d.ts.map +0 -1
  56. package/dist/cjs/src/browser/storage.js +0 -13
  57. package/dist/cjs/src/browser/storage.js.map +0 -1
  58. package/dist/cjs/src/config.d.ts +0 -3
  59. package/dist/cjs/src/config.d.ts.map +0 -1
  60. package/dist/cjs/src/config.js +0 -8
  61. package/dist/cjs/src/config.js.map +0 -1
  62. package/dist/cjs/src/constants.d.ts +0 -9
  63. package/dist/cjs/src/constants.d.ts.map +0 -1
  64. package/dist/cjs/src/constants.js +0 -26
  65. package/dist/cjs/src/constants.js.map +0 -1
  66. package/dist/cjs/src/index.d.ts +0 -4
  67. package/dist/cjs/src/index.d.ts.map +0 -1
  68. package/dist/cjs/src/index.js +0 -3
  69. package/dist/cjs/src/index.js.map +0 -1
  70. package/dist/cjs/src/lib/cookies.d.ts +0 -7
  71. package/dist/cjs/src/lib/cookies.d.ts.map +0 -1
  72. package/dist/cjs/src/lib/cookies.js +0 -26
  73. package/dist/cjs/src/lib/cookies.js.map +0 -1
  74. package/dist/cjs/src/lib/jwt.d.ts +0 -3
  75. package/dist/cjs/src/lib/jwt.d.ts.map +0 -1
  76. package/dist/cjs/src/lib/jwt.js +0 -13
  77. package/dist/cjs/src/lib/jwt.js.map +0 -1
  78. package/dist/cjs/src/lib/logger.d.ts +0 -26
  79. package/dist/cjs/src/lib/logger.d.ts.map +0 -1
  80. package/dist/cjs/src/lib/logger.js +0 -62
  81. package/dist/cjs/src/lib/logger.js.map +0 -1
  82. package/dist/cjs/src/lib/oauth.d.ts +0 -19
  83. package/dist/cjs/src/lib/oauth.d.ts.map +0 -1
  84. package/dist/cjs/src/lib/oauth.js +0 -67
  85. package/dist/cjs/src/lib/oauth.js.map +0 -1
  86. package/dist/cjs/src/lib/postMessage.d.ts +0 -4
  87. package/dist/cjs/src/lib/postMessage.d.ts.map +0 -1
  88. package/dist/cjs/src/lib/postMessage.js +0 -18
  89. package/dist/cjs/src/lib/postMessage.js.map +0 -1
  90. package/dist/cjs/src/lib/windowUtil.d.ts +0 -4
  91. package/dist/cjs/src/lib/windowUtil.d.ts.map +0 -1
  92. package/dist/cjs/src/lib/windowUtil.js +0 -34
  93. package/dist/cjs/src/lib/windowUtil.js.map +0 -1
  94. package/dist/cjs/src/nextjs/GetUser.d.ts +0 -6
  95. package/dist/cjs/src/nextjs/GetUser.d.ts.map +0 -1
  96. package/dist/cjs/src/nextjs/GetUser.js +0 -22
  97. package/dist/cjs/src/nextjs/GetUser.js.map +0 -1
  98. package/dist/cjs/src/nextjs/config.d.ts +0 -178
  99. package/dist/cjs/src/nextjs/config.d.ts.map +0 -1
  100. package/dist/cjs/src/nextjs/config.js +0 -167
  101. package/dist/cjs/src/nextjs/config.js.map +0 -1
  102. package/dist/cjs/src/nextjs/cookies.d.ts +0 -30
  103. package/dist/cjs/src/nextjs/cookies.d.ts.map +0 -1
  104. package/dist/cjs/src/nextjs/cookies.js +0 -119
  105. package/dist/cjs/src/nextjs/cookies.js.map +0 -1
  106. package/dist/cjs/src/nextjs/hooks/index.d.ts +0 -2
  107. package/dist/cjs/src/nextjs/hooks/index.d.ts.map +0 -1
  108. package/dist/cjs/src/nextjs/hooks/index.js +0 -6
  109. package/dist/cjs/src/nextjs/hooks/index.js.map +0 -1
  110. package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts +0 -3
  111. package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
  112. package/dist/cjs/src/nextjs/hooks/useTokenCookie.js +0 -41
  113. package/dist/cjs/src/nextjs/hooks/useTokenCookie.js.map +0 -1
  114. package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts +0 -3
  115. package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts.map +0 -1
  116. package/dist/cjs/src/nextjs/hooks/useUserCookie.js +0 -40
  117. package/dist/cjs/src/nextjs/hooks/useUserCookie.js.map +0 -1
  118. package/dist/cjs/src/nextjs/index.d.ts +0 -7
  119. package/dist/cjs/src/nextjs/index.d.ts.map +0 -1
  120. package/dist/cjs/src/nextjs/index.js +0 -18
  121. package/dist/cjs/src/nextjs/index.js.map +0 -1
  122. package/dist/cjs/src/nextjs/middleware/index.d.ts +0 -2
  123. package/dist/cjs/src/nextjs/middleware/index.d.ts.map +0 -1
  124. package/dist/cjs/src/nextjs/middleware/index.js +0 -8
  125. package/dist/cjs/src/nextjs/middleware/index.js.map +0 -1
  126. package/dist/cjs/src/nextjs/middleware.d.ts +0 -59
  127. package/dist/cjs/src/nextjs/middleware.d.ts.map +0 -1
  128. package/dist/cjs/src/nextjs/middleware.js +0 -116
  129. package/dist/cjs/src/nextjs/middleware.js.map +0 -1
  130. package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts +0 -9
  131. package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
  132. package/dist/cjs/src/nextjs/providers/NextAuthProvider.js +0 -76
  133. package/dist/cjs/src/nextjs/providers/NextAuthProvider.js.map +0 -1
  134. package/dist/cjs/src/nextjs/routeHandler.d.ts +0 -18
  135. package/dist/cjs/src/nextjs/routeHandler.d.ts.map +0 -1
  136. package/dist/cjs/src/nextjs/routeHandler.js +0 -217
  137. package/dist/cjs/src/nextjs/routeHandler.js.map +0 -1
  138. package/dist/cjs/src/nextjs/utils.d.ts +0 -3
  139. package/dist/cjs/src/nextjs/utils.d.ts.map +0 -1
  140. package/dist/cjs/src/nextjs/utils.js +0 -9
  141. package/dist/cjs/src/nextjs/utils.js.map +0 -1
  142. package/dist/cjs/src/reactjs/components/SignInButton.d.ts +0 -8
  143. package/dist/cjs/src/reactjs/components/SignInButton.d.ts.map +0 -1
  144. package/dist/cjs/src/reactjs/components/SignInButton.js +0 -20
  145. package/dist/cjs/src/reactjs/components/SignInButton.js.map +0 -1
  146. package/dist/cjs/src/reactjs/components/SignOutButton.d.ts +0 -6
  147. package/dist/cjs/src/reactjs/components/SignOutButton.d.ts.map +0 -1
  148. package/dist/cjs/src/reactjs/components/SignOutButton.js +0 -20
  149. package/dist/cjs/src/reactjs/components/SignOutButton.js.map +0 -1
  150. package/dist/cjs/src/reactjs/components/UserButton.d.ts +0 -8
  151. package/dist/cjs/src/reactjs/components/UserButton.d.ts.map +0 -1
  152. package/dist/cjs/src/reactjs/components/UserButton.js +0 -136
  153. package/dist/cjs/src/reactjs/components/UserButton.js.map +0 -1
  154. package/dist/cjs/src/reactjs/components/index.d.ts +0 -6
  155. package/dist/cjs/src/reactjs/components/index.d.ts.map +0 -1
  156. package/dist/cjs/src/reactjs/components/index.js +0 -14
  157. package/dist/cjs/src/reactjs/components/index.js.map +0 -1
  158. package/dist/cjs/src/reactjs/hooks/index.d.ts +0 -7
  159. package/dist/cjs/src/reactjs/hooks/index.d.ts.map +0 -1
  160. package/dist/cjs/src/reactjs/hooks/index.js +0 -16
  161. package/dist/cjs/src/reactjs/hooks/index.js.map +0 -1
  162. package/dist/cjs/src/reactjs/hooks/useAuth.d.ts +0 -3
  163. package/dist/cjs/src/reactjs/hooks/useAuth.d.ts.map +0 -1
  164. package/dist/cjs/src/reactjs/hooks/useAuth.js +0 -15
  165. package/dist/cjs/src/reactjs/hooks/useAuth.js.map +0 -1
  166. package/dist/cjs/src/reactjs/hooks/useUser.d.ts +0 -4
  167. package/dist/cjs/src/reactjs/hooks/useUser.d.ts.map +0 -1
  168. package/dist/cjs/src/reactjs/hooks/useUser.js +0 -15
  169. package/dist/cjs/src/reactjs/hooks/useUser.js.map +0 -1
  170. package/dist/cjs/src/reactjs/index.d.ts +0 -6
  171. package/dist/cjs/src/reactjs/index.d.ts.map +0 -1
  172. package/dist/cjs/src/reactjs/index.js +0 -30
  173. package/dist/cjs/src/reactjs/index.js.map +0 -1
  174. package/dist/cjs/src/reactjs/providers/index.d.ts +0 -8
  175. package/dist/cjs/src/reactjs/providers/index.d.ts.map +0 -1
  176. package/dist/cjs/src/reactjs/providers/index.js +0 -19
  177. package/dist/cjs/src/reactjs/providers/index.js.map +0 -1
  178. package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts +0 -18
  179. package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts.map +0 -1
  180. package/dist/cjs/src/server/ServerAuthenticationResolver.js +0 -61
  181. package/dist/cjs/src/server/ServerAuthenticationResolver.js.map +0 -1
  182. package/dist/cjs/src/server/config.d.ts +0 -16
  183. package/dist/cjs/src/server/config.d.ts.map +0 -1
  184. package/dist/cjs/src/server/config.js +0 -3
  185. package/dist/cjs/src/server/config.js.map +0 -1
  186. package/dist/cjs/src/server/index.d.ts +0 -6
  187. package/dist/cjs/src/server/index.d.ts.map +0 -1
  188. package/dist/cjs/src/server/index.js +0 -14
  189. package/dist/cjs/src/server/index.js.map +0 -1
  190. package/dist/cjs/src/server/login.d.ts +0 -17
  191. package/dist/cjs/src/server/login.d.ts.map +0 -1
  192. package/dist/cjs/src/server/login.js +0 -42
  193. package/dist/cjs/src/server/login.js.map +0 -1
  194. package/dist/cjs/src/server/refresh.d.ts +0 -7
  195. package/dist/cjs/src/server/refresh.d.ts.map +0 -1
  196. package/dist/cjs/src/server/refresh.js +0 -16
  197. package/dist/cjs/src/server/refresh.js.map +0 -1
  198. package/dist/cjs/src/services/AuthenticationService.d.ts +0 -87
  199. package/dist/cjs/src/services/AuthenticationService.d.ts.map +0 -1
  200. package/dist/cjs/src/services/AuthenticationService.js +0 -218
  201. package/dist/cjs/src/services/AuthenticationService.js.map +0 -1
  202. package/dist/cjs/src/services/PKCE.d.ts +0 -20
  203. package/dist/cjs/src/services/PKCE.d.ts.map +0 -1
  204. package/dist/cjs/src/services/PKCE.js +0 -50
  205. package/dist/cjs/src/services/PKCE.js.map +0 -1
  206. package/dist/cjs/src/services/types.d.ts +0 -23
  207. package/dist/cjs/src/services/types.d.ts.map +0 -1
  208. package/dist/cjs/src/services/types.js +0 -11
  209. package/dist/cjs/src/services/types.js.map +0 -1
  210. package/dist/cjs/src/shared/AuthProvider.d.ts +0 -18
  211. package/dist/cjs/src/shared/AuthProvider.d.ts.map +0 -1
  212. package/dist/cjs/src/shared/AuthProvider.js +0 -246
  213. package/dist/cjs/src/shared/AuthProvider.js.map +0 -1
  214. package/dist/cjs/src/shared/CivicAuthProvider.d.ts +0 -6
  215. package/dist/cjs/src/shared/CivicAuthProvider.d.ts.map +0 -1
  216. package/dist/cjs/src/shared/CivicAuthProvider.js +0 -19
  217. package/dist/cjs/src/shared/CivicAuthProvider.js.map +0 -1
  218. package/dist/cjs/src/shared/GenericAuthenticationRefresher.d.ts +0 -15
  219. package/dist/cjs/src/shared/GenericAuthenticationRefresher.d.ts.map +0 -1
  220. package/dist/cjs/src/shared/GenericAuthenticationRefresher.js +0 -47
  221. package/dist/cjs/src/shared/GenericAuthenticationRefresher.js.map +0 -1
  222. package/dist/cjs/src/shared/UserProvider.d.ts +0 -17
  223. package/dist/cjs/src/shared/UserProvider.d.ts.map +0 -1
  224. package/dist/cjs/src/shared/UserProvider.js +0 -42
  225. package/dist/cjs/src/shared/UserProvider.js.map +0 -1
  226. package/dist/cjs/src/shared/UserSession.d.ts +0 -12
  227. package/dist/cjs/src/shared/UserSession.d.ts.map +0 -1
  228. package/dist/cjs/src/shared/UserSession.js +0 -24
  229. package/dist/cjs/src/shared/UserSession.js.map +0 -1
  230. package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts +0 -8
  231. package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts.map +0 -1
  232. package/dist/cjs/src/shared/components/CivicAuthIframe.js +0 -35
  233. package/dist/cjs/src/shared/components/CivicAuthIframe.js.map +0 -1
  234. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts +0 -9
  235. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
  236. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js +0 -154
  237. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js.map +0 -1
  238. package/dist/cjs/src/shared/components/CloseIcon.d.ts +0 -4
  239. package/dist/cjs/src/shared/components/CloseIcon.d.ts.map +0 -1
  240. package/dist/cjs/src/shared/components/CloseIcon.js +0 -12
  241. package/dist/cjs/src/shared/components/CloseIcon.js.map +0 -1
  242. package/dist/cjs/src/shared/components/LoadingIcon.d.ts +0 -4
  243. package/dist/cjs/src/shared/components/LoadingIcon.d.ts.map +0 -1
  244. package/dist/cjs/src/shared/components/LoadingIcon.js +0 -36
  245. package/dist/cjs/src/shared/components/LoadingIcon.js.map +0 -1
  246. package/dist/cjs/src/shared/hooks/index.d.ts +0 -5
  247. package/dist/cjs/src/shared/hooks/index.d.ts.map +0 -1
  248. package/dist/cjs/src/shared/hooks/index.js +0 -12
  249. package/dist/cjs/src/shared/hooks/index.js.map +0 -1
  250. package/dist/cjs/src/shared/hooks/useAuth.d.ts +0 -3
  251. package/dist/cjs/src/shared/hooks/useAuth.d.ts.map +0 -1
  252. package/dist/cjs/src/shared/hooks/useAuth.js +0 -15
  253. package/dist/cjs/src/shared/hooks/useAuth.js.map +0 -1
  254. package/dist/cjs/src/shared/hooks/useConfig.d.ts +0 -3
  255. package/dist/cjs/src/shared/hooks/useConfig.d.ts.map +0 -1
  256. package/dist/cjs/src/shared/hooks/useConfig.js +0 -16
  257. package/dist/cjs/src/shared/hooks/useConfig.js.map +0 -1
  258. package/dist/cjs/src/shared/hooks/useIframe.d.ts +0 -3
  259. package/dist/cjs/src/shared/hooks/useIframe.d.ts.map +0 -1
  260. package/dist/cjs/src/shared/hooks/useIframe.js +0 -16
  261. package/dist/cjs/src/shared/hooks/useIframe.js.map +0 -1
  262. package/dist/cjs/src/shared/hooks/useSession.d.ts +0 -3
  263. package/dist/cjs/src/shared/hooks/useSession.d.ts.map +0 -1
  264. package/dist/cjs/src/shared/hooks/useSession.js +0 -16
  265. package/dist/cjs/src/shared/hooks/useSession.js.map +0 -1
  266. package/dist/cjs/src/shared/hooks/useToken.d.ts +0 -3
  267. package/dist/cjs/src/shared/hooks/useToken.d.ts.map +0 -1
  268. package/dist/cjs/src/shared/hooks/useToken.js +0 -15
  269. package/dist/cjs/src/shared/hooks/useToken.js.map +0 -1
  270. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts +0 -15
  271. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
  272. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js +0 -43
  273. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
  274. package/dist/cjs/src/shared/lib/UserSession.d.ts +0 -12
  275. package/dist/cjs/src/shared/lib/UserSession.d.ts.map +0 -1
  276. package/dist/cjs/src/shared/lib/UserSession.js +0 -24
  277. package/dist/cjs/src/shared/lib/UserSession.js.map +0 -1
  278. package/dist/cjs/src/shared/lib/session.d.ts +0 -3
  279. package/dist/cjs/src/shared/lib/session.d.ts.map +0 -1
  280. package/dist/cjs/src/shared/lib/session.js +0 -13
  281. package/dist/cjs/src/shared/lib/session.js.map +0 -1
  282. package/dist/cjs/src/shared/lib/storage.d.ts +0 -25
  283. package/dist/cjs/src/shared/lib/storage.d.ts.map +0 -1
  284. package/dist/cjs/src/shared/lib/storage.js +0 -21
  285. package/dist/cjs/src/shared/lib/storage.js.map +0 -1
  286. package/dist/cjs/src/shared/lib/types.d.ts +0 -22
  287. package/dist/cjs/src/shared/lib/types.d.ts.map +0 -1
  288. package/dist/cjs/src/shared/lib/types.js +0 -19
  289. package/dist/cjs/src/shared/lib/types.js.map +0 -1
  290. package/dist/cjs/src/shared/lib/util.d.ts +0 -33
  291. package/dist/cjs/src/shared/lib/util.d.ts.map +0 -1
  292. package/dist/cjs/src/shared/lib/util.js +0 -163
  293. package/dist/cjs/src/shared/lib/util.js.map +0 -1
  294. package/dist/cjs/src/shared/providers/AuthContext.d.ts +0 -10
  295. package/dist/cjs/src/shared/providers/AuthContext.d.ts.map +0 -1
  296. package/dist/cjs/src/shared/providers/AuthContext.js +0 -6
  297. package/dist/cjs/src/shared/providers/AuthContext.js.map +0 -1
  298. package/dist/cjs/src/shared/providers/AuthProvider.d.ts +0 -20
  299. package/dist/cjs/src/shared/providers/AuthProvider.d.ts.map +0 -1
  300. package/dist/cjs/src/shared/providers/AuthProvider.js +0 -289
  301. package/dist/cjs/src/shared/providers/AuthProvider.js.map +0 -1
  302. package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts +0 -6
  303. package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts.map +0 -1
  304. package/dist/cjs/src/shared/providers/CivicAuthProvider.js +0 -21
  305. package/dist/cjs/src/shared/providers/CivicAuthProvider.js.map +0 -1
  306. package/dist/cjs/src/shared/providers/ConfigProvider.d.ts +0 -21
  307. package/dist/cjs/src/shared/providers/ConfigProvider.d.ts.map +0 -1
  308. package/dist/cjs/src/shared/providers/ConfigProvider.js +0 -46
  309. package/dist/cjs/src/shared/providers/ConfigProvider.js.map +0 -1
  310. package/dist/cjs/src/shared/providers/IframeProvider.d.ts +0 -16
  311. package/dist/cjs/src/shared/providers/IframeProvider.d.ts.map +0 -1
  312. package/dist/cjs/src/shared/providers/IframeProvider.js +0 -38
  313. package/dist/cjs/src/shared/providers/IframeProvider.js.map +0 -1
  314. package/dist/cjs/src/shared/providers/SessionProvider.d.ts +0 -13
  315. package/dist/cjs/src/shared/providers/SessionProvider.d.ts.map +0 -1
  316. package/dist/cjs/src/shared/providers/SessionProvider.js +0 -40
  317. package/dist/cjs/src/shared/providers/SessionProvider.js.map +0 -1
  318. package/dist/cjs/src/shared/providers/TokenProvider.d.ts +0 -18
  319. package/dist/cjs/src/shared/providers/TokenProvider.d.ts.map +0 -1
  320. package/dist/cjs/src/shared/providers/TokenProvider.js +0 -80
  321. package/dist/cjs/src/shared/providers/TokenProvider.js.map +0 -1
  322. package/dist/cjs/src/shared/providers/UserProvider.d.ts +0 -18
  323. package/dist/cjs/src/shared/providers/UserProvider.d.ts.map +0 -1
  324. package/dist/cjs/src/shared/providers/UserProvider.js +0 -65
  325. package/dist/cjs/src/shared/providers/UserProvider.js.map +0 -1
  326. package/dist/cjs/src/shared/session.d.ts +0 -3
  327. package/dist/cjs/src/shared/session.d.ts.map +0 -1
  328. package/dist/cjs/src/shared/session.js +0 -13
  329. package/dist/cjs/src/shared/session.js.map +0 -1
  330. package/dist/cjs/src/shared/util.d.ts +0 -39
  331. package/dist/cjs/src/shared/util.d.ts.map +0 -1
  332. package/dist/cjs/src/shared/util.js +0 -162
  333. package/dist/cjs/src/shared/util.js.map +0 -1
  334. package/dist/cjs/src/types.d.ts +0 -146
  335. package/dist/cjs/src/types.d.ts.map +0 -1
  336. package/dist/cjs/src/types.js +0 -3
  337. package/dist/cjs/src/types.js.map +0 -1
  338. package/dist/cjs/src/utils.d.ts +0 -15
  339. package/dist/cjs/src/utils.d.ts.map +0 -1
  340. package/dist/cjs/src/utils.js +0 -47
  341. package/dist/cjs/src/utils.js.map +0 -1
  342. package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
  343. package/dist/esm/src/browser/storage.d.ts +0 -6
  344. package/dist/esm/src/browser/storage.d.ts.map +0 -1
  345. package/dist/esm/src/browser/storage.js +0 -9
  346. package/dist/esm/src/browser/storage.js.map +0 -1
  347. package/dist/esm/src/config.d.ts +0 -3
  348. package/dist/esm/src/config.d.ts.map +0 -1
  349. package/dist/esm/src/config.js +0 -5
  350. package/dist/esm/src/config.js.map +0 -1
  351. package/dist/esm/src/constants.d.ts +0 -9
  352. package/dist/esm/src/constants.d.ts.map +0 -1
  353. package/dist/esm/src/constants.js +0 -17
  354. package/dist/esm/src/constants.js.map +0 -1
  355. package/dist/esm/src/index.d.ts +0 -4
  356. package/dist/esm/src/index.d.ts.map +0 -1
  357. package/dist/esm/src/index.js +0 -2
  358. package/dist/esm/src/index.js.map +0 -1
  359. package/dist/esm/src/lib/cookies.d.ts +0 -7
  360. package/dist/esm/src/lib/cookies.d.ts.map +0 -1
  361. package/dist/esm/src/lib/cookies.js +0 -23
  362. package/dist/esm/src/lib/cookies.js.map +0 -1
  363. package/dist/esm/src/lib/jwt.d.ts +0 -3
  364. package/dist/esm/src/lib/jwt.d.ts.map +0 -1
  365. package/dist/esm/src/lib/jwt.js +0 -9
  366. package/dist/esm/src/lib/jwt.js.map +0 -1
  367. package/dist/esm/src/lib/logger.d.ts +0 -26
  368. package/dist/esm/src/lib/logger.d.ts.map +0 -1
  369. package/dist/esm/src/lib/logger.js +0 -55
  370. package/dist/esm/src/lib/logger.js.map +0 -1
  371. package/dist/esm/src/lib/oauth.d.ts +0 -19
  372. package/dist/esm/src/lib/oauth.d.ts.map +0 -1
  373. package/dist/esm/src/lib/oauth.js +0 -60
  374. package/dist/esm/src/lib/oauth.js.map +0 -1
  375. package/dist/esm/src/lib/postMessage.d.ts +0 -4
  376. package/dist/esm/src/lib/postMessage.d.ts.map +0 -1
  377. package/dist/esm/src/lib/postMessage.js +0 -15
  378. package/dist/esm/src/lib/postMessage.js.map +0 -1
  379. package/dist/esm/src/lib/windowUtil.d.ts +0 -4
  380. package/dist/esm/src/lib/windowUtil.d.ts.map +0 -1
  381. package/dist/esm/src/lib/windowUtil.js +0 -30
  382. package/dist/esm/src/lib/windowUtil.js.map +0 -1
  383. package/dist/esm/src/nextjs/GetUser.d.ts +0 -6
  384. package/dist/esm/src/nextjs/GetUser.d.ts.map +0 -1
  385. package/dist/esm/src/nextjs/GetUser.js +0 -18
  386. package/dist/esm/src/nextjs/GetUser.js.map +0 -1
  387. package/dist/esm/src/nextjs/config.d.ts +0 -178
  388. package/dist/esm/src/nextjs/config.d.ts.map +0 -1
  389. package/dist/esm/src/nextjs/config.js +0 -162
  390. package/dist/esm/src/nextjs/config.js.map +0 -1
  391. package/dist/esm/src/nextjs/cookies.d.ts +0 -30
  392. package/dist/esm/src/nextjs/cookies.d.ts.map +0 -1
  393. package/dist/esm/src/nextjs/cookies.js +0 -112
  394. package/dist/esm/src/nextjs/cookies.js.map +0 -1
  395. package/dist/esm/src/nextjs/hooks/index.d.ts +0 -2
  396. package/dist/esm/src/nextjs/hooks/index.d.ts.map +0 -1
  397. package/dist/esm/src/nextjs/hooks/index.js +0 -2
  398. package/dist/esm/src/nextjs/hooks/index.js.map +0 -1
  399. package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts +0 -3
  400. package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
  401. package/dist/esm/src/nextjs/hooks/useTokenCookie.js +0 -37
  402. package/dist/esm/src/nextjs/hooks/useTokenCookie.js.map +0 -1
  403. package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts +0 -3
  404. package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts.map +0 -1
  405. package/dist/esm/src/nextjs/hooks/useUserCookie.js +0 -36
  406. package/dist/esm/src/nextjs/hooks/useUserCookie.js.map +0 -1
  407. package/dist/esm/src/nextjs/index.d.ts +0 -7
  408. package/dist/esm/src/nextjs/index.d.ts.map +0 -1
  409. package/dist/esm/src/nextjs/index.js +0 -6
  410. package/dist/esm/src/nextjs/index.js.map +0 -1
  411. package/dist/esm/src/nextjs/middleware/index.d.ts +0 -2
  412. package/dist/esm/src/nextjs/middleware/index.d.ts.map +0 -1
  413. package/dist/esm/src/nextjs/middleware/index.js +0 -2
  414. package/dist/esm/src/nextjs/middleware/index.js.map +0 -1
  415. package/dist/esm/src/nextjs/middleware.d.ts +0 -59
  416. package/dist/esm/src/nextjs/middleware.d.ts.map +0 -1
  417. package/dist/esm/src/nextjs/middleware.js +0 -107
  418. package/dist/esm/src/nextjs/middleware.js.map +0 -1
  419. package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts +0 -9
  420. package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
  421. package/dist/esm/src/nextjs/providers/NextAuthProvider.js +0 -50
  422. package/dist/esm/src/nextjs/providers/NextAuthProvider.js.map +0 -1
  423. package/dist/esm/src/nextjs/routeHandler.d.ts +0 -18
  424. package/dist/esm/src/nextjs/routeHandler.d.ts.map +0 -1
  425. package/dist/esm/src/nextjs/routeHandler.js +0 -212
  426. package/dist/esm/src/nextjs/routeHandler.js.map +0 -1
  427. package/dist/esm/src/nextjs/utils.d.ts +0 -3
  428. package/dist/esm/src/nextjs/utils.d.ts.map +0 -1
  429. package/dist/esm/src/nextjs/utils.js +0 -5
  430. package/dist/esm/src/nextjs/utils.js.map +0 -1
  431. package/dist/esm/src/reactjs/components/SignInButton.d.ts +0 -8
  432. package/dist/esm/src/reactjs/components/SignInButton.d.ts.map +0 -1
  433. package/dist/esm/src/reactjs/components/SignInButton.js +0 -14
  434. package/dist/esm/src/reactjs/components/SignInButton.js.map +0 -1
  435. package/dist/esm/src/reactjs/components/SignOutButton.d.ts +0 -6
  436. package/dist/esm/src/reactjs/components/SignOutButton.d.ts.map +0 -1
  437. package/dist/esm/src/reactjs/components/SignOutButton.js +0 -14
  438. package/dist/esm/src/reactjs/components/SignOutButton.js.map +0 -1
  439. package/dist/esm/src/reactjs/components/UserButton.d.ts +0 -8
  440. package/dist/esm/src/reactjs/components/UserButton.d.ts.map +0 -1
  441. package/dist/esm/src/reactjs/components/UserButton.js +0 -110
  442. package/dist/esm/src/reactjs/components/UserButton.js.map +0 -1
  443. package/dist/esm/src/reactjs/components/index.d.ts +0 -6
  444. package/dist/esm/src/reactjs/components/index.d.ts.map +0 -1
  445. package/dist/esm/src/reactjs/components/index.js +0 -6
  446. package/dist/esm/src/reactjs/components/index.js.map +0 -1
  447. package/dist/esm/src/reactjs/hooks/index.d.ts +0 -7
  448. package/dist/esm/src/reactjs/hooks/index.d.ts.map +0 -1
  449. package/dist/esm/src/reactjs/hooks/index.js +0 -7
  450. package/dist/esm/src/reactjs/hooks/index.js.map +0 -1
  451. package/dist/esm/src/reactjs/hooks/useAuth.d.ts +0 -3
  452. package/dist/esm/src/reactjs/hooks/useAuth.d.ts.map +0 -1
  453. package/dist/esm/src/reactjs/hooks/useAuth.js +0 -12
  454. package/dist/esm/src/reactjs/hooks/useAuth.js.map +0 -1
  455. package/dist/esm/src/reactjs/hooks/useUser.d.ts +0 -4
  456. package/dist/esm/src/reactjs/hooks/useUser.d.ts.map +0 -1
  457. package/dist/esm/src/reactjs/hooks/useUser.js +0 -12
  458. package/dist/esm/src/reactjs/hooks/useUser.js.map +0 -1
  459. package/dist/esm/src/reactjs/index.d.ts +0 -6
  460. package/dist/esm/src/reactjs/index.d.ts.map +0 -1
  461. package/dist/esm/src/reactjs/index.js +0 -8
  462. package/dist/esm/src/reactjs/index.js.map +0 -1
  463. package/dist/esm/src/reactjs/providers/index.d.ts +0 -8
  464. package/dist/esm/src/reactjs/providers/index.d.ts.map +0 -1
  465. package/dist/esm/src/reactjs/providers/index.js +0 -7
  466. package/dist/esm/src/reactjs/providers/index.js.map +0 -1
  467. package/dist/esm/src/server/ServerAuthenticationResolver.d.ts +0 -18
  468. package/dist/esm/src/server/ServerAuthenticationResolver.d.ts.map +0 -1
  469. package/dist/esm/src/server/ServerAuthenticationResolver.js +0 -57
  470. package/dist/esm/src/server/ServerAuthenticationResolver.js.map +0 -1
  471. package/dist/esm/src/server/config.d.ts +0 -16
  472. package/dist/esm/src/server/config.d.ts.map +0 -1
  473. package/dist/esm/src/server/config.js +0 -2
  474. package/dist/esm/src/server/config.js.map +0 -1
  475. package/dist/esm/src/server/index.d.ts +0 -6
  476. package/dist/esm/src/server/index.d.ts.map +0 -1
  477. package/dist/esm/src/server/index.js +0 -5
  478. package/dist/esm/src/server/index.js.map +0 -1
  479. package/dist/esm/src/server/login.d.ts +0 -17
  480. package/dist/esm/src/server/login.d.ts.map +0 -1
  481. package/dist/esm/src/server/login.js +0 -37
  482. package/dist/esm/src/server/login.js.map +0 -1
  483. package/dist/esm/src/server/refresh.d.ts +0 -7
  484. package/dist/esm/src/server/refresh.d.ts.map +0 -1
  485. package/dist/esm/src/server/refresh.js +0 -13
  486. package/dist/esm/src/server/refresh.js.map +0 -1
  487. package/dist/esm/src/services/AuthenticationService.d.ts +0 -87
  488. package/dist/esm/src/services/AuthenticationService.d.ts.map +0 -1
  489. package/dist/esm/src/services/AuthenticationService.js +0 -212
  490. package/dist/esm/src/services/AuthenticationService.js.map +0 -1
  491. package/dist/esm/src/services/PKCE.d.ts +0 -20
  492. package/dist/esm/src/services/PKCE.d.ts.map +0 -1
  493. package/dist/esm/src/services/PKCE.js +0 -44
  494. package/dist/esm/src/services/PKCE.js.map +0 -1
  495. package/dist/esm/src/services/types.d.ts +0 -23
  496. package/dist/esm/src/services/types.d.ts.map +0 -1
  497. package/dist/esm/src/services/types.js +0 -7
  498. package/dist/esm/src/services/types.js.map +0 -1
  499. package/dist/esm/src/shared/components/CivicAuthIframe.d.ts +0 -8
  500. package/dist/esm/src/shared/components/CivicAuthIframe.d.ts.map +0 -1
  501. package/dist/esm/src/shared/components/CivicAuthIframe.js +0 -9
  502. package/dist/esm/src/shared/components/CivicAuthIframe.js.map +0 -1
  503. package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts +0 -9
  504. package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
  505. package/dist/esm/src/shared/components/CivicAuthIframeContainer.js +0 -128
  506. package/dist/esm/src/shared/components/CivicAuthIframeContainer.js.map +0 -1
  507. package/dist/esm/src/shared/components/CloseIcon.d.ts +0 -4
  508. package/dist/esm/src/shared/components/CloseIcon.d.ts.map +0 -1
  509. package/dist/esm/src/shared/components/CloseIcon.js +0 -6
  510. package/dist/esm/src/shared/components/CloseIcon.js.map +0 -1
  511. package/dist/esm/src/shared/components/LoadingIcon.d.ts +0 -4
  512. package/dist/esm/src/shared/components/LoadingIcon.d.ts.map +0 -1
  513. package/dist/esm/src/shared/components/LoadingIcon.js +0 -30
  514. package/dist/esm/src/shared/components/LoadingIcon.js.map +0 -1
  515. package/dist/esm/src/shared/hooks/index.d.ts +0 -5
  516. package/dist/esm/src/shared/hooks/index.d.ts.map +0 -1
  517. package/dist/esm/src/shared/hooks/index.js +0 -5
  518. package/dist/esm/src/shared/hooks/index.js.map +0 -1
  519. package/dist/esm/src/shared/hooks/useAuth.d.ts +0 -3
  520. package/dist/esm/src/shared/hooks/useAuth.d.ts.map +0 -1
  521. package/dist/esm/src/shared/hooks/useAuth.js +0 -12
  522. package/dist/esm/src/shared/hooks/useAuth.js.map +0 -1
  523. package/dist/esm/src/shared/hooks/useConfig.d.ts +0 -3
  524. package/dist/esm/src/shared/hooks/useConfig.d.ts.map +0 -1
  525. package/dist/esm/src/shared/hooks/useConfig.js +0 -13
  526. package/dist/esm/src/shared/hooks/useConfig.js.map +0 -1
  527. package/dist/esm/src/shared/hooks/useIframe.d.ts +0 -3
  528. package/dist/esm/src/shared/hooks/useIframe.d.ts.map +0 -1
  529. package/dist/esm/src/shared/hooks/useIframe.js +0 -13
  530. package/dist/esm/src/shared/hooks/useIframe.js.map +0 -1
  531. package/dist/esm/src/shared/hooks/useSession.d.ts +0 -3
  532. package/dist/esm/src/shared/hooks/useSession.d.ts.map +0 -1
  533. package/dist/esm/src/shared/hooks/useSession.js +0 -13
  534. package/dist/esm/src/shared/hooks/useSession.js.map +0 -1
  535. package/dist/esm/src/shared/hooks/useToken.d.ts +0 -3
  536. package/dist/esm/src/shared/hooks/useToken.d.ts.map +0 -1
  537. package/dist/esm/src/shared/hooks/useToken.js +0 -12
  538. package/dist/esm/src/shared/hooks/useToken.js.map +0 -1
  539. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts +0 -15
  540. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
  541. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js +0 -39
  542. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
  543. package/dist/esm/src/shared/lib/UserSession.d.ts +0 -12
  544. package/dist/esm/src/shared/lib/UserSession.d.ts.map +0 -1
  545. package/dist/esm/src/shared/lib/UserSession.js +0 -20
  546. package/dist/esm/src/shared/lib/UserSession.js.map +0 -1
  547. package/dist/esm/src/shared/lib/session.d.ts +0 -3
  548. package/dist/esm/src/shared/lib/session.d.ts.map +0 -1
  549. package/dist/esm/src/shared/lib/session.js +0 -10
  550. package/dist/esm/src/shared/lib/session.js.map +0 -1
  551. package/dist/esm/src/shared/lib/storage.d.ts +0 -25
  552. package/dist/esm/src/shared/lib/storage.d.ts.map +0 -1
  553. package/dist/esm/src/shared/lib/storage.js +0 -17
  554. package/dist/esm/src/shared/lib/storage.js.map +0 -1
  555. package/dist/esm/src/shared/lib/types.d.ts +0 -22
  556. package/dist/esm/src/shared/lib/types.d.ts.map +0 -1
  557. package/dist/esm/src/shared/lib/types.js +0 -16
  558. package/dist/esm/src/shared/lib/types.js.map +0 -1
  559. package/dist/esm/src/shared/lib/util.d.ts +0 -33
  560. package/dist/esm/src/shared/lib/util.d.ts.map +0 -1
  561. package/dist/esm/src/shared/lib/util.js +0 -127
  562. package/dist/esm/src/shared/lib/util.js.map +0 -1
  563. package/dist/esm/src/shared/providers/AuthContext.d.ts +0 -10
  564. package/dist/esm/src/shared/providers/AuthContext.d.ts.map +0 -1
  565. package/dist/esm/src/shared/providers/AuthContext.js +0 -3
  566. package/dist/esm/src/shared/providers/AuthContext.js.map +0 -1
  567. package/dist/esm/src/shared/providers/AuthProvider.d.ts +0 -20
  568. package/dist/esm/src/shared/providers/AuthProvider.d.ts.map +0 -1
  569. package/dist/esm/src/shared/providers/AuthProvider.js +0 -263
  570. package/dist/esm/src/shared/providers/AuthProvider.js.map +0 -1
  571. package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts +0 -6
  572. package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts.map +0 -1
  573. package/dist/esm/src/shared/providers/CivicAuthProvider.js +0 -15
  574. package/dist/esm/src/shared/providers/CivicAuthProvider.js.map +0 -1
  575. package/dist/esm/src/shared/providers/ConfigProvider.d.ts +0 -21
  576. package/dist/esm/src/shared/providers/ConfigProvider.d.ts.map +0 -1
  577. package/dist/esm/src/shared/providers/ConfigProvider.js +0 -19
  578. package/dist/esm/src/shared/providers/ConfigProvider.js.map +0 -1
  579. package/dist/esm/src/shared/providers/IframeProvider.d.ts +0 -16
  580. package/dist/esm/src/shared/providers/IframeProvider.d.ts.map +0 -1
  581. package/dist/esm/src/shared/providers/IframeProvider.js +0 -11
  582. package/dist/esm/src/shared/providers/IframeProvider.js.map +0 -1
  583. package/dist/esm/src/shared/providers/SessionProvider.d.ts +0 -13
  584. package/dist/esm/src/shared/providers/SessionProvider.d.ts.map +0 -1
  585. package/dist/esm/src/shared/providers/SessionProvider.js +0 -13
  586. package/dist/esm/src/shared/providers/SessionProvider.js.map +0 -1
  587. package/dist/esm/src/shared/providers/TokenProvider.d.ts +0 -18
  588. package/dist/esm/src/shared/providers/TokenProvider.d.ts.map +0 -1
  589. package/dist/esm/src/shared/providers/TokenProvider.js +0 -53
  590. package/dist/esm/src/shared/providers/TokenProvider.js.map +0 -1
  591. package/dist/esm/src/shared/providers/UserProvider.d.ts +0 -18
  592. package/dist/esm/src/shared/providers/UserProvider.d.ts.map +0 -1
  593. package/dist/esm/src/shared/providers/UserProvider.js +0 -38
  594. package/dist/esm/src/shared/providers/UserProvider.js.map +0 -1
  595. package/dist/esm/src/types.d.ts +0 -146
  596. package/dist/esm/src/types.d.ts.map +0 -1
  597. package/dist/esm/src/types.js +0 -2
  598. package/dist/esm/src/types.js.map +0 -1
  599. package/dist/esm/src/utils.d.ts +0 -15
  600. package/dist/esm/src/utils.d.ts.map +0 -1
  601. package/dist/esm/src/utils.js +0 -43
  602. package/dist/esm/src/utils.js.map +0 -1
  603. package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
  604. package/dist/src/nextjs/cookies.d.ts.map +0 -1
  605. package/dist/src/nextjs/cookies.js +0 -113
  606. package/dist/src/nextjs/cookies.js.map +0 -1
  607. package/dist/tsconfig.tsbuildinfo +0 -1
  608. package/src/browser/storage.ts +0 -11
  609. package/src/config.ts +0 -6
  610. package/src/constants.ts +0 -29
  611. package/src/index.ts +0 -16
  612. package/src/lib/cookies.ts +0 -28
  613. package/src/lib/jwt.ts +0 -15
  614. package/src/lib/logger.ts +0 -72
  615. package/src/lib/oauth.ts +0 -83
  616. package/src/lib/postMessage.ts +0 -22
  617. package/src/lib/windowUtil.ts +0 -29
  618. package/src/nextjs/GetUser.ts +0 -22
  619. package/src/nextjs/config.ts +0 -205
  620. package/src/nextjs/cookies.ts +0 -162
  621. package/src/nextjs/hooks/index.ts +0 -1
  622. package/src/nextjs/hooks/useTokenCookie.ts +0 -41
  623. package/src/nextjs/hooks/useUserCookie.ts +0 -41
  624. package/src/nextjs/index.ts +0 -20
  625. package/src/nextjs/middleware/index.ts +0 -1
  626. package/src/nextjs/middleware.ts +0 -155
  627. package/src/nextjs/providers/NextAuthProvider.tsx +0 -87
  628. package/src/nextjs/routeHandler.ts +0 -297
  629. package/src/nextjs/utils.ts +0 -9
  630. package/src/reactjs/components/SignInButton.tsx +0 -32
  631. package/src/reactjs/components/SignOutButton.tsx +0 -24
  632. package/src/reactjs/components/UserButton.tsx +0 -215
  633. package/src/reactjs/components/index.ts +0 -5
  634. package/src/reactjs/hooks/index.ts +0 -6
  635. package/src/reactjs/hooks/useAuth.ts +0 -15
  636. package/src/reactjs/hooks/useUser.ts +0 -20
  637. package/src/reactjs/index.ts +0 -19
  638. package/src/reactjs/providers/index.ts +0 -27
  639. package/src/server/ServerAuthenticationResolver.ts +0 -102
  640. package/src/server/config.ts +0 -17
  641. package/src/server/index.ts +0 -12
  642. package/src/server/login.ts +0 -59
  643. package/src/server/refresh.ts +0 -23
  644. package/src/services/AuthenticationService.ts +0 -324
  645. package/src/services/PKCE.ts +0 -45
  646. package/src/services/types.ts +0 -54
  647. package/src/shared/components/CivicAuthIframe.tsx +0 -26
  648. package/src/shared/components/CivicAuthIframeContainer.tsx +0 -190
  649. package/src/shared/components/CloseIcon.tsx +0 -21
  650. package/src/shared/components/LoadingIcon.tsx +0 -53
  651. package/src/shared/hooks/index.ts +0 -4
  652. package/src/shared/hooks/useAuth.ts +0 -15
  653. package/src/shared/hooks/useConfig.ts +0 -14
  654. package/src/shared/hooks/useIframe.ts +0 -14
  655. package/src/shared/hooks/useSession.ts +0 -14
  656. package/src/shared/hooks/useToken.ts +0 -15
  657. package/src/shared/lib/GenericAuthenticationRefresher.ts +0 -70
  658. package/src/shared/lib/UserSession.ts +0 -25
  659. package/src/shared/lib/session.ts +0 -11
  660. package/src/shared/lib/storage.ts +0 -40
  661. package/src/shared/lib/types.ts +0 -26
  662. package/src/shared/lib/util.ts +0 -217
  663. package/src/shared/providers/AuthContext.tsx +0 -11
  664. package/src/shared/providers/AuthProvider.tsx +0 -390
  665. package/src/shared/providers/CivicAuthProvider.tsx +0 -31
  666. package/src/shared/providers/ConfigProvider.tsx +0 -50
  667. package/src/shared/providers/IframeProvider.tsx +0 -34
  668. package/src/shared/providers/SessionProvider.tsx +0 -29
  669. package/src/shared/providers/TokenProvider.tsx +0 -78
  670. package/src/shared/providers/UserProvider.tsx +0 -80
  671. package/src/types.ts +0 -227
  672. package/src/utils.ts +0 -58
  673. package/test/integration/sdk.test.tsx +0 -266
  674. package/test/support/fixtures.ts +0 -56
  675. package/test/support/tokens.json +0 -26
  676. package/test/unit/lib/oauth.test.ts +0 -72
  677. package/test/unit/logger.test.ts +0 -175
  678. package/test/unit/nextjs/NextAuthProvider.test.tsx +0 -38
  679. package/test/unit/nextjs/config.test.ts +0 -218
  680. package/test/unit/nextjs/getUser.test.ts +0 -41
  681. package/test/unit/nextjs/middleware.test.ts +0 -138
  682. package/test/unit/nextjs/routeHandler.test.ts.skipped +0 -369
  683. package/test/unit/nextjs/utils.test.ts +0 -17
  684. package/test/unit/publicApi/__snapshots__/apiSnapshot.test.ts.snap +0 -17
  685. package/test/unit/publicApi/apiSnapshot.test.ts +0 -11
  686. package/test/unit/react/components/SignInButton.test.tsx +0 -50
  687. package/test/unit/react/components/SignOutButton.test.tsx +0 -49
  688. package/test/unit/server/login.test.ts +0 -181
  689. package/test/unit/server/session.test.ts +0 -51
  690. package/test/unit/services/AuthenticationService.test.ts +0 -152
  691. package/test/unit/services/ServerAuthenticationResolver.test.ts +0 -115
  692. package/test/unit/shared/GenericAuthenticationRefresher.test.ts +0 -89
  693. package/test/unit/shared/UserSession.test.ts +0 -42
  694. package/test/unit/shared/components/CivicAuthIframeContainer.test.tsx +0 -154
  695. package/test/unit/shared/storage.test.ts +0 -67
  696. package/test/unit/utils.test.ts +0 -48
  697. package/tsconfig.build.json +0 -5
  698. package/tsconfig.cjs.json +0 -8
  699. package/tsconfig.esm.json +0 -7
  700. package/tsconfig.json +0 -42
  701. package/vitest.config.ts +0 -41
@@ -1 +0,0 @@
1
- {"version":3,"file":"NextAuthProvider.js","sourceRoot":"","sources":["../../../../../src/nextjs/providers/NextAuthProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n/**\n * A very small context provider for the user object - it takes the user object from the cookie and provides it to the app.\n */\nimport React, { useEffect, useState } from \"react\";\nimport type { AuthProviderProps } from \"@/shared/providers/AuthProvider.js\";\nimport { AuthProvider } from \"@/shared/providers/AuthProvider.js\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport type { User } from \"@/types.js\";\nimport { resolveAuthConfig } from \"@/nextjs/config.js\";\nimport { resolveCallbackUrl } from \"@/nextjs/utils.js\";\nimport { ConfidentialClientPKCEConsumer } from \"@/services/PKCE.js\";\nimport { NextjsClientStorage } from \"@/nextjs/cookies.js\";\nimport { UserProvider } from \"@/shared/providers/UserProvider.js\";\nimport { OAuthTokens } from \"@/shared/lib/types.js\";\nimport { useUserCookie } from \"@/nextjs/hooks/useUserCookie.js\";\nimport { useTokenCookie } from \"@/nextjs/hooks/index.js\";\n\nconst queryClient = new QueryClient();\n\ntype NextCivicAuthProviderProps = Omit<AuthProviderProps, \"clientId\">;\n\nconst CivicNextAuthProviderInternal = ({\n children,\n ...props\n}: NextCivicAuthProviderProps) => {\n const [redirectUrl, setRedirectUrl] = useState<string>(\"\");\n const resolvedConfig = resolveAuthConfig();\n const { clientId, oauthServer, callbackUrl, challengeUrl, logoutUrl } =\n resolvedConfig;\n\n useEffect(() => {\n if (typeof globalThis.window !== \"undefined\") {\n const appUrl = globalThis.window.location.origin;\n setRedirectUrl(resolveCallbackUrl(resolvedConfig, appUrl));\n }\n }, [callbackUrl, resolvedConfig]);\n\n const user = useUserCookie();\n const idToken = useTokenCookie(OAuthTokens.ID_TOKEN);\n const combinedUser = user ? ({ ...(user || {}), idToken } as User) : null;\n const sessionData = {\n authenticated: !!user,\n ...(idToken ? { idToken } : {}),\n };\n const signOut = async (): Promise<void> => {\n if (props.onSignOut) {\n await props.onSignOut();\n }\n const appUrl = globalThis.window.location.origin;\n window.location.href = `${logoutUrl}?appUrl=${appUrl}`;\n return;\n };\n return (\n <AuthProvider\n {...props}\n redirectUrl={redirectUrl}\n config={{ oauthServer }}\n clientId={clientId}\n pkceConsumer={new ConfidentialClientPKCEConsumer(challengeUrl)}\n sessionData={sessionData}\n >\n <UserProvider\n storage={new NextjsClientStorage()}\n user={combinedUser}\n signOut={signOut}\n >\n {children}\n </UserProvider>\n </AuthProvider>\n );\n};\n\nconst CivicNextAuthProvider = ({\n children,\n ...props\n}: NextCivicAuthProviderProps) => {\n return (\n <QueryClientProvider client={queryClient}>\n <CivicNextAuthProviderInternal {...props}>\n {children}\n </CivicNextAuthProviderInternal>\n </QueryClientProvider>\n );\n};\n\nexport { CivicNextAuthProvider, type NextCivicAuthProviderProps };\n"]}
@@ -1,18 +0,0 @@
1
- import type { NextRequest } from "next/server.js";
2
- import { NextResponse } from "next/server.js";
3
- import type { AuthConfig } from "../nextjs/config.js";
4
- export declare function handleLogout(request: NextRequest, config: AuthConfig): Promise<NextResponse>;
5
- /**
6
- * Creates an authentication handler for Next.js API routes
7
- *
8
- * Usage:
9
- * ```ts
10
- * // app/api/auth/[...civicauth]/route.ts
11
- * import { handler } from '@civic/auth/nextjs'
12
- * export const GET = handler({
13
- * // optional config overrides
14
- * })
15
- * ```
16
- */
17
- export declare const handler: (authConfig?: {}) => (request: NextRequest) => Promise<NextResponse>;
18
- //# sourceMappingURL=routeHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routeHandler.d.ts","sourceRoot":"","sources":["../../../../src/nextjs/routeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAwNrD,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,YAAY,CAAC,CA4BvB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,OAAO,iCAEF,WAAW,KAAG,OAAO,CAAC,YAAY,CA8BjD,CAAC"}
@@ -1,212 +0,0 @@
1
- import { NextResponse } from "next/server.js";
2
- import { revalidatePath } from "next/cache.js";
3
- import { resolveAuthConfig } from "../nextjs/config.js";
4
- import { loggers } from "../lib/logger.js";
5
- import { clearAuthCookies, NextjsClientStorage, NextjsCookieStorage, } from "../nextjs/cookies.js";
6
- import { GenericPublicClientPKCEProducer } from "../services/PKCE.js";
7
- import { resolveOAuthAccessCode } from "../server/login.js";
8
- import { getUser } from "../shared/lib/session.js";
9
- import { resolveCallbackUrl } from "../nextjs/utils.js";
10
- import { GenericUserSession } from "../shared/lib/UserSession.js";
11
- import { TOKEN_EXCHANGE_SUCCESS_TEXT, TOKEN_EXCHANGE_TRIGGER_TEXT, } from "../constants.js";
12
- import { serverTokenExchangeFromState } from "../lib/oauth.js";
13
- import { CodeVerifier } from "../shared/lib/types.js";
14
- const logger = loggers.nextjs.handlers.auth;
15
- class AuthError extends Error {
16
- status;
17
- constructor(message, status = 401) {
18
- super(message);
19
- this.status = status;
20
- this.name = "AuthError";
21
- }
22
- }
23
- /**
24
- * create a code verifier and challenge for PKCE
25
- * saving the verifier in a cookie for later use
26
- * @returns {Promise<NextResponse>}
27
- */
28
- async function handleChallenge(request, config) {
29
- const cookieStorage = new NextjsCookieStorage(config.cookies?.tokens ?? {});
30
- const pkceProducer = new GenericPublicClientPKCEProducer(cookieStorage);
31
- const challenge = await pkceProducer.getCodeChallenge();
32
- const appUrl = request.nextUrl.searchParams.get("appUrl");
33
- if (appUrl) {
34
- cookieStorage.set(CodeVerifier.APP_URL, appUrl);
35
- }
36
- return NextResponse.json({ status: "success", challenge });
37
- }
38
- async function performTokenExchangeAndSetCookies(request, config, code, state, appUrl) {
39
- const resolvedConfigs = resolveAuthConfig(config);
40
- const cookieStorage = new NextjsCookieStorage(resolvedConfigs.cookies.tokens);
41
- const callbackUrl = resolveCallbackUrl(resolvedConfigs, appUrl);
42
- try {
43
- await resolveOAuthAccessCode(code, state, cookieStorage, {
44
- ...resolvedConfigs,
45
- redirectUrl: callbackUrl,
46
- });
47
- }
48
- catch (error) {
49
- logger.error("Token exchange failed:", error);
50
- throw new AuthError("Failed to authenticate user", 401);
51
- }
52
- const user = await getUser(cookieStorage);
53
- if (!user) {
54
- throw new AuthError("Failed to get user info", 401);
55
- }
56
- const clientStorage = new NextjsClientStorage();
57
- const userSession = new GenericUserSession(clientStorage);
58
- userSession.set(user);
59
- }
60
- async function handleCallback(request, config) {
61
- const resolvedConfigs = resolveAuthConfig(config);
62
- console.log("handleCallback", { request, resolvedConfigs });
63
- const code = request.nextUrl.searchParams.get("code");
64
- const state = request.nextUrl.searchParams.get("state") || "";
65
- if (!code || !state)
66
- throw new AuthError("Bad parameters", 400);
67
- // appUrl is passed from the client to the server in the query string
68
- // this is necessary because the server does not have access to the client's window.location.origin
69
- // and can not accurately determine the appUrl (specially if the app is behind a reverse proxy)
70
- const appUrl = request.cookies.get(CodeVerifier.APP_URL)?.value ||
71
- request.nextUrl.searchParams.get("appUrl");
72
- // If we have a code_verifier cookie and the appUrl, we can do a token exchange.
73
- // Otherwise, just render an empty page.
74
- // The initial redirect back from the auth server does not send cookies, because the redirect is from a 3rd-party domain.
75
- // The client will make an additional call to this route with cookies included, at which point we do the token exchange.
76
- console.log("handleCallback", {
77
- code,
78
- state,
79
- appUrl,
80
- });
81
- const codeVerifier = request.cookies.get(CodeVerifier.COOKIE_NAME);
82
- if (!codeVerifier || !appUrl) {
83
- console.log("handleCallback no code_verifier found", {
84
- state,
85
- serverTokenExchange: serverTokenExchangeFromState(`${state}`),
86
- });
87
- let response = new NextResponse(`<html><body><span style="display:none">${TOKEN_EXCHANGE_TRIGGER_TEXT}</span></body></html>`);
88
- // in server-side token exchange mode we need to launch a page that will trigger the token exchange
89
- // from the same domain, allowing it access to the code_verifier cookie
90
- // we only need to do this in redirect mode, as the iframe already triggers a client-side token exchange
91
- // if no code-verifier cookie is found
92
- if (state && serverTokenExchangeFromState(state)) {
93
- console.log("handleCallback serverTokenExchangeFromState, launching redirect page...", {
94
- requestUrl: request.url,
95
- configCallbackUrl: resolvedConfigs.callbackUrl,
96
- });
97
- // we need to replace the URL with resolved config in case the server is hosted
98
- // behind a reverse proxy or load balancer
99
- const requestUrl = new URL(request.url);
100
- const fetchUrl = `${resolvedConfigs.callbackUrl}?${requestUrl.searchParams.toString()}&sameDomainServerTokenExchange=true`;
101
- response = new NextResponse(`<html>
102
- <body>
103
- <span style="display:none">
104
- <script>
105
- window.onload = function () {
106
- const appUrl = globalThis.window?.location?.origin;
107
- fetch('${fetchUrl}&appUrl=' + appUrl).then((response) => {
108
- response.json().then((jsonResponse) => {
109
- if (jsonResponse.redirectUrl) {
110
- window.location.href = jsonResponse.redirectUrl;
111
- }
112
- });
113
- });
114
- };
115
- </script>
116
- </span>
117
- </body>
118
- </html>
119
- `);
120
- }
121
- response.headers.set("Content-Type", "text/html; charset=utf-8");
122
- console.log(`handleCallback no code_verifier found, returning ${TOKEN_EXCHANGE_TRIGGER_TEXT}`);
123
- return response;
124
- }
125
- await performTokenExchangeAndSetCookies(request, resolvedConfigs, code, state, appUrl);
126
- if (request.url.includes("sameDomainServerTokenExchange=true")) {
127
- console.log("handleCallback sameDomainServerTokenExchange = true, returnining redirectUrl", appUrl);
128
- return NextResponse.json({
129
- status: "success",
130
- redirectUrl: appUrl,
131
- });
132
- }
133
- // this is the case where a 'normal' redirect is happening
134
- if (serverTokenExchangeFromState(state)) {
135
- console.log("handleCallback serverTokenExchangeFromState, redirect to appUrl", appUrl);
136
- if (!appUrl) {
137
- throw new Error("appUrl undefined. Cannot redirect.");
138
- }
139
- return NextResponse.redirect(`${appUrl}`);
140
- }
141
- // return an empty HTML response so the iframe doesn't show any response
142
- // in the short moment between the redirect and the parent window
143
- // acknowledging the redirect and closing the iframe
144
- const response = new NextResponse(`<html><span style="display:none">${TOKEN_EXCHANGE_SUCCESS_TEXT}</span></html>`);
145
- response.headers.set("Content-Type", "text/html; charset=utf-8");
146
- return response;
147
- }
148
- /**
149
- * If redirectPath is an absolute path, return it as-is.
150
- * Otherwise for relative paths, append it to the current domain.
151
- * @param redirectPath
152
- * @returns
153
- */
154
- const getAbsoluteRedirectPath = (redirectPath, currentBasePath) => new URL(redirectPath, currentBasePath).href;
155
- export async function handleLogout(request, config) {
156
- const resolvedConfigs = resolveAuthConfig(config);
157
- const defaultRedirectPath = resolvedConfigs.loginUrl ?? "/";
158
- const redirectTarget = new URL(request.url).searchParams.get("redirect") || defaultRedirectPath;
159
- const isAbsoluteRedirect = /^(https?:\/\/|www\.).+/i.test(redirectTarget);
160
- const appUrl = request.nextUrl.searchParams.get("appUrl");
161
- const finalRedirectUrl = isAbsoluteRedirect
162
- ? redirectTarget
163
- : getAbsoluteRedirectPath(redirectTarget, new URL(appUrl ?? request.url).origin);
164
- const response = NextResponse.redirect(finalRedirectUrl);
165
- await clearAuthCookies(config);
166
- try {
167
- revalidatePath(isAbsoluteRedirect ? finalRedirectUrl : redirectTarget);
168
- }
169
- catch (error) {
170
- logger.warn("Failed to revalidate path after logout:", error);
171
- }
172
- return response;
173
- }
174
- /**
175
- * Creates an authentication handler for Next.js API routes
176
- *
177
- * Usage:
178
- * ```ts
179
- * // app/api/auth/[...civicauth]/route.ts
180
- * import { handler } from '@civic/auth/nextjs'
181
- * export const GET = handler({
182
- * // optional config overrides
183
- * })
184
- * ```
185
- */
186
- export const handler = (authConfig = {}) => async (request) => {
187
- const config = resolveAuthConfig(authConfig);
188
- try {
189
- const pathname = request.nextUrl.pathname;
190
- const pathSegments = pathname.split("/");
191
- const lastSegment = pathSegments[pathSegments.length - 1];
192
- switch (lastSegment) {
193
- case "challenge":
194
- return await handleChallenge(request, config);
195
- case "callback":
196
- return await handleCallback(request, config);
197
- case "logout":
198
- return await handleLogout(request, config);
199
- default:
200
- throw new AuthError(`Invalid auth route: ${pathname}`, 404);
201
- }
202
- }
203
- catch (error) {
204
- logger.error("Auth handler error:", error);
205
- const status = error instanceof AuthError ? error.status : 500;
206
- const message = error instanceof Error ? error.message : "Authentication failed";
207
- const response = NextResponse.json({ error: message }, { status });
208
- clearAuthCookies(config);
209
- return response;
210
- }
211
- };
212
- //# sourceMappingURL=routeHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routeHandler.js","sourceRoot":"","sources":["../../../../src/nextjs/routeHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NextRequest } from \"next/server.js\";\nimport { NextResponse } from \"next/server.js\";\nimport { revalidatePath } from \"next/cache.js\";\nimport type { AuthConfig } from \"@/nextjs/config.js\";\nimport { resolveAuthConfig } from \"@/nextjs/config.js\";\nimport { loggers } from \"@/lib/logger.js\";\nimport {\n clearAuthCookies,\n NextjsClientStorage,\n NextjsCookieStorage,\n} from \"@/nextjs/cookies.js\";\nimport { GenericPublicClientPKCEProducer } from \"@/services/PKCE.js\";\nimport { resolveOAuthAccessCode } from \"@/server/login.js\";\nimport { getUser } from \"@/shared/lib/session.js\";\nimport { resolveCallbackUrl } from \"@/nextjs/utils.js\";\nimport { GenericUserSession } from \"@/shared/lib/UserSession.js\";\nimport {\n TOKEN_EXCHANGE_SUCCESS_TEXT,\n TOKEN_EXCHANGE_TRIGGER_TEXT,\n} from \"@/constants.js\";\nimport { serverTokenExchangeFromState } from \"@/lib/oauth.js\";\nimport { CodeVerifier } from \"@/shared/lib/types.js\";\n\nconst logger = loggers.nextjs.handlers.auth;\n\nclass AuthError extends Error {\n constructor(\n message: string,\n public readonly status: number = 401,\n ) {\n super(message);\n this.name = \"AuthError\";\n }\n}\n\n/**\n * create a code verifier and challenge for PKCE\n * saving the verifier in a cookie for later use\n * @returns {Promise<NextResponse>}\n */\nasync function handleChallenge(\n request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\n const cookieStorage = new NextjsCookieStorage(config.cookies?.tokens ?? {});\n const pkceProducer = new GenericPublicClientPKCEProducer(cookieStorage);\n\n const challenge = await pkceProducer.getCodeChallenge();\n const appUrl = request.nextUrl.searchParams.get(\"appUrl\");\n if (appUrl) {\n cookieStorage.set(CodeVerifier.APP_URL, appUrl);\n }\n return NextResponse.json({ status: \"success\", challenge });\n}\n\nasync function performTokenExchangeAndSetCookies(\n request: NextRequest,\n config: AuthConfig,\n code: string,\n state: string,\n appUrl: string,\n) {\n const resolvedConfigs = resolveAuthConfig(config);\n const cookieStorage = new NextjsCookieStorage(resolvedConfigs.cookies.tokens);\n\n const callbackUrl = resolveCallbackUrl(resolvedConfigs, appUrl);\n try {\n await resolveOAuthAccessCode(code, state, cookieStorage, {\n ...resolvedConfigs,\n redirectUrl: callbackUrl,\n });\n } catch (error) {\n logger.error(\"Token exchange failed:\", error);\n throw new AuthError(\"Failed to authenticate user\", 401);\n }\n\n const user = await getUser(cookieStorage);\n if (!user) {\n throw new AuthError(\"Failed to get user info\", 401);\n }\n\n const clientStorage = new NextjsClientStorage();\n const userSession = new GenericUserSession(clientStorage);\n userSession.set(user);\n}\nasync function handleCallback(\n request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\n const resolvedConfigs = resolveAuthConfig(config);\n console.log(\"handleCallback\", { request, resolvedConfigs });\n const code = request.nextUrl.searchParams.get(\"code\");\n const state = request.nextUrl.searchParams.get(\"state\") || \"\";\n if (!code || !state) throw new AuthError(\"Bad parameters\", 400);\n\n // appUrl is passed from the client to the server in the query string\n // this is necessary because the server does not have access to the client's window.location.origin\n // and can not accurately determine the appUrl (specially if the app is behind a reverse proxy)\n const appUrl =\n request.cookies.get(CodeVerifier.APP_URL)?.value ||\n request.nextUrl.searchParams.get(\"appUrl\");\n\n // If we have a code_verifier cookie and the appUrl, we can do a token exchange.\n // Otherwise, just render an empty page.\n // The initial redirect back from the auth server does not send cookies, because the redirect is from a 3rd-party domain.\n // The client will make an additional call to this route with cookies included, at which point we do the token exchange.\n console.log(\"handleCallback\", {\n code,\n state,\n appUrl,\n });\n\n const codeVerifier = request.cookies.get(CodeVerifier.COOKIE_NAME);\n\n if (!codeVerifier || !appUrl) {\n console.log(\"handleCallback no code_verifier found\", {\n state,\n serverTokenExchange: serverTokenExchangeFromState(`${state}`),\n });\n let response = new NextResponse(\n `<html><body><span style=\"display:none\">${TOKEN_EXCHANGE_TRIGGER_TEXT}</span></body></html>`,\n );\n\n // in server-side token exchange mode we need to launch a page that will trigger the token exchange\n // from the same domain, allowing it access to the code_verifier cookie\n // we only need to do this in redirect mode, as the iframe already triggers a client-side token exchange\n // if no code-verifier cookie is found\n if (state && serverTokenExchangeFromState(state)) {\n console.log(\n \"handleCallback serverTokenExchangeFromState, launching redirect page...\",\n {\n requestUrl: request.url,\n configCallbackUrl: resolvedConfigs.callbackUrl,\n },\n );\n // we need to replace the URL with resolved config in case the server is hosted\n // behind a reverse proxy or load balancer\n const requestUrl = new URL(request.url);\n const fetchUrl = `${resolvedConfigs.callbackUrl}?${requestUrl.searchParams.toString()}&sameDomainServerTokenExchange=true`;\n response = new NextResponse(\n `<html>\n <body>\n <span style=\"display:none\">\n <script>\n window.onload = function () {\n const appUrl = globalThis.window?.location?.origin;\n fetch('${fetchUrl}&appUrl=' + appUrl).then((response) => {\n response.json().then((jsonResponse) => {\n if (jsonResponse.redirectUrl) {\n window.location.href = jsonResponse.redirectUrl;\n }\n });\n });\n };\n </script>\n </span>\n </body>\n </html>\n `,\n );\n }\n response.headers.set(\"Content-Type\", \"text/html; charset=utf-8\");\n console.log(\n `handleCallback no code_verifier found, returning ${TOKEN_EXCHANGE_TRIGGER_TEXT}`,\n );\n return response;\n }\n\n await performTokenExchangeAndSetCookies(\n request,\n resolvedConfigs,\n code,\n state,\n appUrl,\n );\n\n if (request.url.includes(\"sameDomainServerTokenExchange=true\")) {\n console.log(\n \"handleCallback sameDomainServerTokenExchange = true, returnining redirectUrl\",\n appUrl,\n );\n return NextResponse.json({\n status: \"success\",\n redirectUrl: appUrl,\n });\n }\n\n // this is the case where a 'normal' redirect is happening\n if (serverTokenExchangeFromState(state)) {\n console.log(\n \"handleCallback serverTokenExchangeFromState, redirect to appUrl\",\n appUrl,\n );\n if (!appUrl) {\n throw new Error(\"appUrl undefined. Cannot redirect.\");\n }\n return NextResponse.redirect(`${appUrl}`);\n }\n // return an empty HTML response so the iframe doesn't show any response\n // in the short moment between the redirect and the parent window\n // acknowledging the redirect and closing the iframe\n const response = new NextResponse(\n `<html><span style=\"display:none\">${TOKEN_EXCHANGE_SUCCESS_TEXT}</span></html>`,\n );\n response.headers.set(\"Content-Type\", \"text/html; charset=utf-8\");\n return response;\n}\n\n/**\n * If redirectPath is an absolute path, return it as-is.\n * Otherwise for relative paths, append it to the current domain.\n * @param redirectPath\n * @returns\n */\nconst getAbsoluteRedirectPath = (\n redirectPath: string,\n currentBasePath: string,\n) => new URL(redirectPath, currentBasePath).href;\n\nexport async function handleLogout(\n request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\n const resolvedConfigs = resolveAuthConfig(config);\n const defaultRedirectPath = resolvedConfigs.loginUrl ?? \"/\";\n const redirectTarget =\n new URL(request.url).searchParams.get(\"redirect\") || defaultRedirectPath;\n\n const isAbsoluteRedirect = /^(https?:\\/\\/|www\\.).+/i.test(redirectTarget);\n\n const appUrl = request.nextUrl.searchParams.get(\"appUrl\");\n\n const finalRedirectUrl = isAbsoluteRedirect\n ? redirectTarget\n : getAbsoluteRedirectPath(\n redirectTarget,\n new URL(appUrl ?? request.url).origin,\n );\n\n const response = NextResponse.redirect(finalRedirectUrl);\n\n await clearAuthCookies(config);\n\n try {\n revalidatePath(isAbsoluteRedirect ? finalRedirectUrl : redirectTarget);\n } catch (error) {\n logger.warn(\"Failed to revalidate path after logout:\", error);\n }\n\n return response;\n}\n\n/**\n * Creates an authentication handler for Next.js API routes\n *\n * Usage:\n * ```ts\n * // app/api/auth/[...civicauth]/route.ts\n * import { handler } from '@civic/auth/nextjs'\n * export const GET = handler({\n * // optional config overrides\n * })\n * ```\n */\nexport const handler =\n (authConfig = {}) =>\n async (request: NextRequest): Promise<NextResponse> => {\n const config = resolveAuthConfig(authConfig);\n\n try {\n const pathname = request.nextUrl.pathname;\n const pathSegments = pathname.split(\"/\");\n const lastSegment = pathSegments[pathSegments.length - 1];\n\n switch (lastSegment) {\n case \"challenge\":\n return await handleChallenge(request, config);\n case \"callback\":\n return await handleCallback(request, config);\n case \"logout\":\n return await handleLogout(request, config);\n default:\n throw new AuthError(`Invalid auth route: ${pathname}`, 404);\n }\n } catch (error) {\n logger.error(\"Auth handler error:\", error);\n\n const status = error instanceof AuthError ? error.status : 500;\n const message =\n error instanceof Error ? error.message : \"Authentication failed\";\n\n const response = NextResponse.json({ error: message }, { status });\n\n clearAuthCookies(config);\n return response;\n }\n };\n"]}
@@ -1,3 +0,0 @@
1
- import type { AuthConfigWithDefaults } from "../nextjs/config.js";
2
- export declare const resolveCallbackUrl: (config: AuthConfigWithDefaults, baseUrl?: string) => string;
3
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/nextjs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,eAAO,MAAM,kBAAkB,WACrB,sBAAsB,YACpB,MAAM,KACf,MAGF,CAAC"}
@@ -1,5 +0,0 @@
1
- export const resolveCallbackUrl = (config, baseUrl) => {
2
- const callbackUrl = new URL(config?.callbackUrl, baseUrl).toString();
3
- return callbackUrl.toString();
4
- };
5
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/nextjs/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAA8B,EAC9B,OAAgB,EACR,EAAE;IACV,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC,CAAC","sourcesContent":["import type { AuthConfigWithDefaults } from \"@/nextjs/config.js\";\n\nexport const resolveCallbackUrl = (\n config: AuthConfigWithDefaults,\n baseUrl?: string,\n): string => {\n const callbackUrl = new URL(config?.callbackUrl, baseUrl).toString();\n return callbackUrl.toString();\n};\n"]}
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- import type { DisplayMode } from "../../types.js";
3
- declare const SignInButton: ({ displayMode, className, }: {
4
- displayMode?: DisplayMode;
5
- className?: string;
6
- }) => React.JSX.Element;
7
- export { SignInButton };
8
- //# sourceMappingURL=SignInButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SignInButton.d.ts","sourceRoot":"","sources":["../../../../../src/reactjs/components/SignInButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,QAAA,MAAM,YAAY,gCAGf;IACD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,sBAkBA,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,14 +0,0 @@
1
- "use client";
2
- import React from "react";
3
- import { useUser } from "../../reactjs/hooks/useUser.js";
4
- const SignInButton = ({ displayMode, className, }) => {
5
- const { signIn } = useUser();
6
- return (React.createElement("button", { "data-testid": "sign-in-button", style: {
7
- borderRadius: "9999px",
8
- border: "1px solid #6b7280",
9
- padding: "0.75rem 1rem",
10
- transition: "background-color 0.2s",
11
- }, className: className, onClick: () => signIn(displayMode) }, "Sign In"));
12
- };
13
- export { SignInButton };
14
- //# sourceMappingURL=SignInButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SignInButton.js","sourceRoot":"","sources":["../../../../../src/reactjs/components/SignInButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,MAAM,YAAY,GAAG,CAAC,EACpB,WAAW,EACX,SAAS,GAIV,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IAE7B,OAAO,CACL,+CACc,gBAAgB,EAC5B,KAAK,EAAE;YACL,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,uBAAuB;SACpC,EACD,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,cAG3B,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport type { DisplayMode } from \"@/types.js\";\nimport { useUser } from \"@/reactjs/hooks/useUser.js\";\n\nconst SignInButton = ({\n displayMode,\n className,\n}: {\n displayMode?: DisplayMode;\n className?: string;\n}) => {\n const { signIn } = useUser();\n\n return (\n <button\n data-testid=\"sign-in-button\"\n style={{\n borderRadius: \"9999px\",\n border: \"1px solid #6b7280\",\n padding: \"0.75rem 1rem\",\n transition: \"background-color 0.2s\",\n }}\n className={className}\n onClick={() => signIn(displayMode)}\n >\n Sign In\n </button>\n );\n};\n\nexport { SignInButton };\n"]}
@@ -1,6 +0,0 @@
1
- import React from "react";
2
- declare const SignOutButton: ({ className }: {
3
- className?: string;
4
- }) => React.JSX.Element;
5
- export { SignOutButton };
6
- //# sourceMappingURL=SignOutButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SignOutButton.d.ts","sourceRoot":"","sources":["../../../../../src/reactjs/components/SignOutButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,QAAA,MAAM,aAAa,kBAAmB;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,sBAiB3D,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1,14 +0,0 @@
1
- "use client";
2
- import React from "react";
3
- import { useUser } from "../../reactjs/hooks/useUser.js";
4
- const SignOutButton = ({ className }) => {
5
- const { signOut } = useUser();
6
- return (React.createElement("button", { style: {
7
- borderRadius: "9999px",
8
- border: "1px solid #6b7280",
9
- padding: "0.75rem 1rem",
10
- transition: "background-color 0.2s",
11
- }, className: className, onClick: () => signOut() }, "Sign Out"));
12
- };
13
- export { SignOutButton };
14
- //# sourceMappingURL=SignOutButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SignOutButton.js","sourceRoot":"","sources":["../../../../../src/reactjs/components/SignOutButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,MAAM,aAAa,GAAG,CAAC,EAAE,SAAS,EAA0B,EAAE,EAAE;IAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IAE9B,OAAO,CACL,gCACE,KAAK,EAAE;YACL,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,uBAAuB;SACpC,EACD,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,eAGjB,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { useUser } from \"@/reactjs/hooks/useUser.js\";\n\nconst SignOutButton = ({ className }: { className?: string }) => {\n const { signOut } = useUser();\n\n return (\n <button\n style={{\n borderRadius: \"9999px\",\n border: \"1px solid #6b7280\",\n padding: \"0.75rem 1rem\",\n transition: \"background-color 0.2s\",\n }}\n className={className}\n onClick={() => signOut()}\n >\n Sign Out\n </button>\n );\n};\n\nexport { SignOutButton };\n"]}
@@ -1,8 +0,0 @@
1
- import type { DisplayMode } from "../../types.js";
2
- import React from "react";
3
- declare const UserButton: ({ displayMode, className, }: {
4
- displayMode?: DisplayMode;
5
- className?: string;
6
- }) => React.JSX.Element;
7
- export { UserButton };
8
- //# sourceMappingURL=UserButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserButton.d.ts","sourceRoot":"","sources":["../../../../../src/reactjs/components/UserButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAmD,MAAM,OAAO,CAAC;AAoCxE,QAAA,MAAM,UAAU,gCAGb;IACD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,sBAuKA,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,110 +0,0 @@
1
- "use client";
2
- import { useUser } from "../../reactjs/hooks/index.js";
3
- import React, { useCallback, useEffect, useRef, useState } from "react";
4
- const ChevronDown = () => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "lucide lucide-chevron-down" },
5
- React.createElement("path", { d: "m6 9 6 6 6-6" })));
6
- const ChevronUp = () => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "lucide lucide-chevron-up" },
7
- React.createElement("path", { d: "m18 15-6-6-6 6" })));
8
- const UserButton = ({ displayMode, className, }) => {
9
- const [isOpen, setIsOpen] = useState(false);
10
- const [buttonWidth, setButtonWidth] = useState(null);
11
- const { user, signIn, signOut } = useUser();
12
- const buttonRef = useRef(null);
13
- const dropdownRef = useRef(null);
14
- useEffect(() => {
15
- if (buttonRef.current) {
16
- setButtonWidth(buttonRef.current.offsetWidth);
17
- }
18
- }, [isOpen]);
19
- const handleClickOutside = useCallback((event) => {
20
- const target = event.target;
21
- if (buttonRef.current &&
22
- dropdownRef.current &&
23
- !buttonRef.current.contains(target) &&
24
- !dropdownRef.current.contains(target)) {
25
- setIsOpen(false);
26
- }
27
- }, []);
28
- const handleSignOut = useCallback(async () => {
29
- signOut();
30
- setIsOpen(false);
31
- }, [signOut]);
32
- const handleSignIn = useCallback(async () => {
33
- await signIn(displayMode);
34
- setIsOpen(false);
35
- }, [signIn, displayMode]);
36
- const handleEscape = useCallback((event) => {
37
- if (event.key === "Escape") {
38
- setIsOpen(false);
39
- }
40
- }, []);
41
- useEffect(() => {
42
- if (isOpen) {
43
- window.addEventListener("click", handleClickOutside);
44
- window.addEventListener("keydown", handleEscape);
45
- }
46
- return () => {
47
- window.removeEventListener("click", handleClickOutside);
48
- window.removeEventListener("keydown", handleEscape);
49
- };
50
- }, [handleClickOutside, handleEscape, isOpen]);
51
- if (user) {
52
- return (React.createElement("div", { style: { position: "relative", width: "auto" }, id: "civic-dropdown-container" },
53
- React.createElement("button", { ref: buttonRef, style: {
54
- display: "flex",
55
- minWidth: "10rem",
56
- alignItems: "center",
57
- justifyContent: "space-between",
58
- gap: "0.5rem",
59
- borderRadius: "9999px",
60
- border: "1px solid #6b7280",
61
- padding: "0.75rem 1rem",
62
- color: "#6b7280",
63
- transition: "background-color 0.2s",
64
- }, className: className, onClick: () => {
65
- setIsOpen((isOpen) => !isOpen);
66
- } },
67
- user?.picture ? (React.createElement("span", { style: {
68
- position: "relative",
69
- display: "flex",
70
- height: "1.5rem",
71
- width: "1.5rem",
72
- flexShrink: 0,
73
- gap: "0.5rem",
74
- overflow: "hidden",
75
- borderRadius: "9999px",
76
- } },
77
- React.createElement("img", { style: { height: "100%", width: "100%", objectFit: "cover" }, src: user.picture, alt: user?.name || user?.email }))) : (React.createElement("div", null)),
78
- React.createElement("span", null, user?.name || user?.email),
79
- React.createElement("div", { style: { pointerEvents: "none" } }, isOpen ? React.createElement(ChevronUp, null) : React.createElement(ChevronDown, null))),
80
- React.createElement("div", { ref: dropdownRef, style: isOpen
81
- ? {
82
- position: "absolute",
83
- left: 0,
84
- width: buttonWidth || "auto",
85
- marginTop: "0.5rem",
86
- borderRadius: "0.5rem",
87
- backgroundColor: "white",
88
- padding: "0.5rem 0",
89
- color: "#6b7280",
90
- boxShadow: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",
91
- }
92
- : { display: "none" } },
93
- React.createElement("ul", null,
94
- React.createElement("li", null,
95
- React.createElement("button", { style: {
96
- display: "block",
97
- width: "100%",
98
- padding: "0.5rem 1rem",
99
- transition: "background-color 0.2s",
100
- }, onClick: handleSignOut }, "Logout"))))));
101
- }
102
- return (React.createElement("button", { ref: buttonRef, "data-testid": "sign-in-button", style: {
103
- borderRadius: "9999px",
104
- border: "1px solid #6b7280",
105
- padding: "0.75rem 1rem",
106
- transition: "background-color 0.2s",
107
- }, className: className, onClick: handleSignIn }, "Sign in"));
108
- };
109
- export { UserButton };
110
- //# sourceMappingURL=UserButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserButton.js","sourceRoot":"","sources":["../../../../../src/reactjs/components/UserButton.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\nimport { useUser } from \"@/reactjs/hooks/index.js\";\nimport type { DisplayMode } from \"@/types.js\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nconst ChevronDown = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-chevron-down\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n);\n\nconst ChevronUp = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-chevron-up\"\n >\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n);\n\nconst UserButton = ({\n displayMode,\n className,\n}: {\n displayMode?: DisplayMode;\n className?: string;\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [buttonWidth, setButtonWidth] = useState<number | null>(null);\n const { user, signIn, signOut } = useUser();\n const buttonRef = useRef<HTMLButtonElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (buttonRef.current) {\n setButtonWidth(buttonRef.current.offsetWidth);\n }\n }, [isOpen]);\n\n const handleClickOutside = useCallback((event: MouseEvent) => {\n const target = event.target as HTMLElement;\n\n if (\n buttonRef.current &&\n dropdownRef.current &&\n !buttonRef.current.contains(target) &&\n !dropdownRef.current.contains(target)\n ) {\n setIsOpen(false);\n }\n }, []);\n\n const handleSignOut = useCallback(async () => {\n signOut();\n\n setIsOpen(false);\n }, [signOut]);\n\n const handleSignIn = useCallback(async () => {\n await signIn(displayMode);\n\n setIsOpen(false);\n }, [signIn, displayMode]);\n\n const handleEscape = useCallback((event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setIsOpen(false);\n }\n }, []);\n\n useEffect(() => {\n if (isOpen) {\n window.addEventListener(\"click\", handleClickOutside);\n\n window.addEventListener(\"keydown\", handleEscape);\n }\n\n return () => {\n window.removeEventListener(\"click\", handleClickOutside);\n\n window.removeEventListener(\"keydown\", handleEscape);\n };\n }, [handleClickOutside, handleEscape, isOpen]);\n\n if (user) {\n return (\n <div\n style={{ position: \"relative\", width: \"auto\" }}\n id=\"civic-dropdown-container\"\n >\n <button\n ref={buttonRef}\n style={{\n display: \"flex\",\n minWidth: \"10rem\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: \"0.5rem\",\n borderRadius: \"9999px\",\n border: \"1px solid #6b7280\",\n padding: \"0.75rem 1rem\",\n color: \"#6b7280\",\n transition: \"background-color 0.2s\",\n }}\n className={className}\n onClick={() => {\n setIsOpen((isOpen) => !isOpen);\n }}\n >\n {user?.picture ? (\n <span\n style={{\n position: \"relative\",\n display: \"flex\",\n height: \"1.5rem\",\n width: \"1.5rem\",\n flexShrink: 0,\n gap: \"0.5rem\",\n overflow: \"hidden\",\n borderRadius: \"9999px\",\n }}\n >\n <img\n style={{ height: \"100%\", width: \"100%\", objectFit: \"cover\" }}\n src={user.picture}\n alt={user?.name || user?.email}\n />\n </span>\n ) : (\n <div />\n )}\n\n <span>{user?.name || user?.email}</span>\n\n <div style={{ pointerEvents: \"none\" }}>\n {isOpen ? <ChevronUp /> : <ChevronDown />}\n </div>\n </button>\n <div\n ref={dropdownRef}\n style={\n isOpen\n ? {\n position: \"absolute\",\n left: 0,\n width: buttonWidth || \"auto\",\n marginTop: \"0.5rem\",\n borderRadius: \"0.5rem\",\n backgroundColor: \"white\",\n padding: \"0.5rem 0\",\n color: \"#6b7280\",\n boxShadow:\n \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n }\n : { display: \"none\" }\n }\n >\n <ul>\n <li>\n <button\n style={{\n display: \"block\",\n width: \"100%\",\n padding: \"0.5rem 1rem\",\n transition: \"background-color 0.2s\",\n }}\n onClick={handleSignOut}\n >\n Logout\n </button>\n </li>\n </ul>\n </div>\n </div>\n );\n }\n\n return (\n <button\n ref={buttonRef}\n data-testid=\"sign-in-button\"\n style={{\n borderRadius: \"9999px\",\n border: \"1px solid #6b7280\",\n padding: \"0.75rem 1rem\",\n transition: \"background-color 0.2s\",\n }}\n className={className}\n onClick={handleSignIn}\n >\n Sign in\n </button>\n );\n};\n\nexport { UserButton };\n"]}
@@ -1,6 +0,0 @@
1
- export { CivicAuthIframe } from "../../shared/components/CivicAuthIframe.js";
2
- export { CivicAuthIframeContainer } from "../../shared/components/CivicAuthIframeContainer.js";
3
- export { UserButton } from "../../reactjs/components/UserButton.js";
4
- export { SignInButton } from "../../reactjs/components/SignInButton.js";
5
- export { SignOutButton } from "../../reactjs/components/SignOutButton.js";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/reactjs/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC"}
@@ -1,6 +0,0 @@
1
- export { CivicAuthIframe } from "../../shared/components/CivicAuthIframe.js";
2
- export { CivicAuthIframeContainer } from "../../shared/components/CivicAuthIframeContainer.js";
3
- export { UserButton } from "../../reactjs/components/UserButton.js";
4
- export { SignInButton } from "../../reactjs/components/SignInButton.js";
5
- export { SignOutButton } from "../../reactjs/components/SignOutButton.js";
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/reactjs/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC","sourcesContent":["export { CivicAuthIframe } from \"@/shared/components/CivicAuthIframe.js\";\nexport { CivicAuthIframeContainer } from \"@/shared/components/CivicAuthIframeContainer.js\";\nexport { UserButton } from \"@/reactjs/components/UserButton.js\";\nexport { SignInButton } from \"@/reactjs/components/SignInButton.js\";\nexport { SignOutButton } from \"@/reactjs/components/SignOutButton.js\";\n"]}
@@ -1,7 +0,0 @@
1
- export { useUser } from "../../reactjs/hooks/useUser.js";
2
- export { useToken } from "../../shared/hooks/useToken.js";
3
- export { useAuth } from "../../shared/hooks/useAuth.js";
4
- export { useSession } from "../../shared/hooks/useSession.js";
5
- export { useConfig } from "../../shared/hooks/useConfig.js";
6
- export { useIframe } from "../../shared/hooks/useIframe.js";
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/reactjs/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,7 +0,0 @@
1
- export { useUser } from "../../reactjs/hooks/useUser.js";
2
- export { useToken } from "../../shared/hooks/useToken.js";
3
- export { useAuth } from "../../shared/hooks/useAuth.js";
4
- export { useSession } from "../../shared/hooks/useSession.js";
5
- export { useConfig } from "../../shared/hooks/useConfig.js";
6
- export { useIframe } from "../../shared/hooks/useIframe.js";
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/reactjs/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC","sourcesContent":["export { useUser } from \"@/reactjs/hooks/useUser.js\";\nexport { useToken } from \"@/shared/hooks/useToken.js\";\nexport { useAuth } from \"@/shared/hooks/useAuth.js\";\nexport { useSession } from \"@/shared/hooks/useSession.js\";\nexport { useConfig } from \"@/shared/hooks/useConfig.js\";\nexport { useIframe } from \"@/shared/hooks/useIframe.js\";\n"]}
@@ -1,3 +0,0 @@
1
- declare const useAuth: () => import("../../shared/providers/AuthContext.js").AuthContextType;
2
- export { useAuth };
3
- //# sourceMappingURL=useAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../../src/reactjs/hooks/useAuth.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,OAAO,mEAQZ,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,12 +0,0 @@
1
- "use client";
2
- import { useContext } from "react";
3
- import { AuthContext } from "../../shared/providers/AuthContext.js";
4
- const useAuth = () => {
5
- const context = useContext(AuthContext);
6
- if (!context) {
7
- throw new Error("useAuth must be used within an AuthProvider");
8
- }
9
- return context;
10
- };
11
- export { useAuth };
12
- //# sourceMappingURL=useAuth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../../../src/reactjs/hooks/useAuth.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC","sourcesContent":["\"use client\";\nimport { useContext } from \"react\";\nimport { AuthContext } from \"@/shared/providers/AuthContext.js\";\n\nconst useAuth = () => {\n const context = useContext(AuthContext);\n\n if (!context) {\n throw new Error(\"useAuth must be used within an AuthProvider\");\n }\n\n return context;\n};\n\nexport { useAuth };\n"]}
@@ -1,4 +0,0 @@
1
- import { type UserContextType } from "../../shared/providers/UserProvider.js";
2
- declare const useUser: <T extends Record<string, unknown> = Record<string, never>>() => UserContextType<T>;
3
- export { useUser };
4
- //# sourceMappingURL=useUser.d.ts.map