@civic/auth 0.0.1-beta.30 → 0.0.1-beta.4

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 (1080) hide show
  1. package/README.md +4 -26
  2. package/dist/{chunk-63YGK3A7.mjs → chunk-3UIVD6NR.mjs} +69 -24
  3. package/dist/chunk-3UIVD6NR.mjs.map +1 -0
  4. package/dist/chunk-CRTRMMJ7.js.map +1 -1
  5. package/dist/chunk-KBDRDCE5.mjs +239 -0
  6. package/dist/chunk-KBDRDCE5.mjs.map +1 -0
  7. package/dist/{chunk-O3WGNLRO.mjs → chunk-NQPMNXBL.mjs} +31 -50
  8. package/dist/chunk-NQPMNXBL.mjs.map +1 -0
  9. package/dist/chunk-OLT5HB3G.js +239 -0
  10. package/dist/chunk-OLT5HB3G.js.map +1 -0
  11. package/dist/{chunk-6RFRDWIP.js → chunk-T47HULF6.js} +75 -30
  12. package/dist/chunk-T47HULF6.js.map +1 -0
  13. package/dist/{chunk-JDZPCA3P.js → chunk-WPISYQG3.js} +32 -51
  14. package/dist/chunk-WPISYQG3.js.map +1 -0
  15. package/dist/index-DoDoIY_K.d.mts +79 -0
  16. package/dist/index-DoDoIY_K.d.ts +79 -0
  17. package/dist/index.css +11 -12
  18. package/dist/index.css.map +1 -1
  19. package/dist/index.d.mts +1 -3
  20. package/dist/index.d.ts +1 -3
  21. package/dist/index.js +1 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +0 -1
  24. package/dist/nextjs.d.mts +18 -60
  25. package/dist/nextjs.d.ts +18 -60
  26. package/dist/nextjs.js +94 -156
  27. package/dist/nextjs.js.map +1 -1
  28. package/dist/nextjs.mjs +85 -147
  29. package/dist/nextjs.mjs.map +1 -1
  30. package/dist/react.d.mts +84 -30
  31. package/dist/react.d.ts +84 -30
  32. package/dist/react.js +975 -22
  33. package/dist/react.js.map +1 -1
  34. package/dist/react.mjs +1008 -55
  35. package/dist/react.mjs.map +1 -1
  36. package/dist/server.d.mts +29 -3
  37. package/dist/server.d.ts +29 -3
  38. package/dist/server.js +3 -4
  39. package/dist/server.js.map +1 -1
  40. package/dist/server.mjs +3 -4
  41. package/package.json +42 -52
  42. package/.eslintignore +0 -3
  43. package/.eslintrc.json +0 -10
  44. package/.prettierignore +0 -3
  45. package/.prettierrc +0 -1
  46. package/.turbo/turbo-build.log +0 -13
  47. package/.turbo/turbo-lint.log +0 -14
  48. package/.turbo/turbo-test.log +0 -1678
  49. package/civic-auth-0.0.1-beta.15.tgz +0 -0
  50. package/civic-auth-0.0.1-beta.17.tgz +0 -0
  51. package/dist/AuthProvider-BYZ8w92b.d.mts +0 -15
  52. package/dist/AuthProvider-BgOwv9h8.d.ts +0 -15
  53. package/dist/AuthProvider-Bj_Prt1x.d.ts +0 -21
  54. package/dist/AuthProvider-DUAoX4G9.d.mts +0 -21
  55. package/dist/UserProvider-BA2uflVB.d.ts +0 -16
  56. package/dist/UserProvider-Bl3j1PUO.d.mts +0 -16
  57. package/dist/UserProvider-CMLaYOUD.d.ts +0 -16
  58. package/dist/UserProvider-Cbm8MZkJ.d.mts +0 -16
  59. package/dist/chunk-4PLCDPEN.mjs +0 -599
  60. package/dist/chunk-4PLCDPEN.mjs.map +0 -1
  61. package/dist/chunk-5UQQYXCX.js +0 -1
  62. package/dist/chunk-5UQQYXCX.js.map +0 -1
  63. package/dist/chunk-63YGK3A7.mjs.map +0 -1
  64. package/dist/chunk-6RFRDWIP.js.map +0 -1
  65. package/dist/chunk-7K3QN2AT.js +0 -599
  66. package/dist/chunk-7K3QN2AT.js.map +0 -1
  67. package/dist/chunk-AM2Y662I.js +0 -601
  68. package/dist/chunk-AM2Y662I.js.map +0 -1
  69. package/dist/chunk-AP4627CS.mjs +0 -223
  70. package/dist/chunk-AP4627CS.mjs.map +0 -1
  71. package/dist/chunk-CTVJJBBA.js +0 -118
  72. package/dist/chunk-CTVJJBBA.js.map +0 -1
  73. package/dist/chunk-EKLYHP2D.mjs +0 -711
  74. package/dist/chunk-EKLYHP2D.mjs.map +0 -1
  75. package/dist/chunk-FHRZSX3C.js +0 -710
  76. package/dist/chunk-FHRZSX3C.js.map +0 -1
  77. package/dist/chunk-GB3H3I47.js +0 -711
  78. package/dist/chunk-GB3H3I47.js.map +0 -1
  79. package/dist/chunk-JDZPCA3P.js.map +0 -1
  80. package/dist/chunk-JEOPLLWO.js +0 -223
  81. package/dist/chunk-JEOPLLWO.js.map +0 -1
  82. package/dist/chunk-MK7557NR.mjs +0 -118
  83. package/dist/chunk-MK7557NR.mjs.map +0 -1
  84. package/dist/chunk-NLRREFOX.mjs +0 -710
  85. package/dist/chunk-NLRREFOX.mjs.map +0 -1
  86. package/dist/chunk-O3WGNLRO.mjs.map +0 -1
  87. package/dist/chunk-OXXUQ36U.mjs +0 -283
  88. package/dist/chunk-OXXUQ36U.mjs.map +0 -1
  89. package/dist/chunk-PMJAV4JJ.mjs +0 -1
  90. package/dist/chunk-PMJAV4JJ.mjs.map +0 -1
  91. package/dist/chunk-Q7DSPTUG.mjs +0 -601
  92. package/dist/chunk-Q7DSPTUG.mjs.map +0 -1
  93. package/dist/chunk-TH6FI2XI.js +0 -283
  94. package/dist/chunk-TH6FI2XI.js.map +0 -1
  95. package/dist/cjs/src/browser/storage.d.ts +0 -6
  96. package/dist/cjs/src/browser/storage.d.ts.map +0 -1
  97. package/dist/cjs/src/browser/storage.js +0 -13
  98. package/dist/cjs/src/browser/storage.js.map +0 -1
  99. package/dist/cjs/src/config.d.ts +0 -3
  100. package/dist/cjs/src/config.d.ts.map +0 -1
  101. package/dist/cjs/src/config.js +0 -8
  102. package/dist/cjs/src/config.js.map +0 -1
  103. package/dist/cjs/src/constants.d.ts +0 -9
  104. package/dist/cjs/src/constants.d.ts.map +0 -1
  105. package/dist/cjs/src/constants.js +0 -26
  106. package/dist/cjs/src/constants.js.map +0 -1
  107. package/dist/cjs/src/index.d.ts +0 -4
  108. package/dist/cjs/src/index.d.ts.map +0 -1
  109. package/dist/cjs/src/index.js +0 -3
  110. package/dist/cjs/src/index.js.map +0 -1
  111. package/dist/cjs/src/lib/cookies.d.ts +0 -7
  112. package/dist/cjs/src/lib/cookies.d.ts.map +0 -1
  113. package/dist/cjs/src/lib/cookies.js +0 -26
  114. package/dist/cjs/src/lib/cookies.js.map +0 -1
  115. package/dist/cjs/src/lib/jwt.d.ts +0 -3
  116. package/dist/cjs/src/lib/jwt.d.ts.map +0 -1
  117. package/dist/cjs/src/lib/jwt.js +0 -13
  118. package/dist/cjs/src/lib/jwt.js.map +0 -1
  119. package/dist/cjs/src/lib/logger.d.ts +0 -26
  120. package/dist/cjs/src/lib/logger.d.ts.map +0 -1
  121. package/dist/cjs/src/lib/logger.js +0 -62
  122. package/dist/cjs/src/lib/logger.js.map +0 -1
  123. package/dist/cjs/src/lib/oauth.d.ts +0 -19
  124. package/dist/cjs/src/lib/oauth.d.ts.map +0 -1
  125. package/dist/cjs/src/lib/oauth.js +0 -67
  126. package/dist/cjs/src/lib/oauth.js.map +0 -1
  127. package/dist/cjs/src/lib/postMessage.d.ts +0 -4
  128. package/dist/cjs/src/lib/postMessage.d.ts.map +0 -1
  129. package/dist/cjs/src/lib/postMessage.js +0 -18
  130. package/dist/cjs/src/lib/postMessage.js.map +0 -1
  131. package/dist/cjs/src/lib/windowUtil.d.ts +0 -4
  132. package/dist/cjs/src/lib/windowUtil.d.ts.map +0 -1
  133. package/dist/cjs/src/lib/windowUtil.js +0 -34
  134. package/dist/cjs/src/lib/windowUtil.js.map +0 -1
  135. package/dist/cjs/src/nextjs/GetUser.d.ts +0 -6
  136. package/dist/cjs/src/nextjs/GetUser.d.ts.map +0 -1
  137. package/dist/cjs/src/nextjs/GetUser.js +0 -22
  138. package/dist/cjs/src/nextjs/GetUser.js.map +0 -1
  139. package/dist/cjs/src/nextjs/config.d.ts +0 -178
  140. package/dist/cjs/src/nextjs/config.d.ts.map +0 -1
  141. package/dist/cjs/src/nextjs/config.js +0 -167
  142. package/dist/cjs/src/nextjs/config.js.map +0 -1
  143. package/dist/cjs/src/nextjs/cookies.d.ts +0 -30
  144. package/dist/cjs/src/nextjs/cookies.d.ts.map +0 -1
  145. package/dist/cjs/src/nextjs/cookies.js +0 -119
  146. package/dist/cjs/src/nextjs/cookies.js.map +0 -1
  147. package/dist/cjs/src/nextjs/hooks/index.d.ts +0 -2
  148. package/dist/cjs/src/nextjs/hooks/index.d.ts.map +0 -1
  149. package/dist/cjs/src/nextjs/hooks/index.js +0 -6
  150. package/dist/cjs/src/nextjs/hooks/index.js.map +0 -1
  151. package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts +0 -3
  152. package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
  153. package/dist/cjs/src/nextjs/hooks/useTokenCookie.js +0 -41
  154. package/dist/cjs/src/nextjs/hooks/useTokenCookie.js.map +0 -1
  155. package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts +0 -3
  156. package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts.map +0 -1
  157. package/dist/cjs/src/nextjs/hooks/useUserCookie.js +0 -40
  158. package/dist/cjs/src/nextjs/hooks/useUserCookie.js.map +0 -1
  159. package/dist/cjs/src/nextjs/index.d.ts +0 -7
  160. package/dist/cjs/src/nextjs/index.d.ts.map +0 -1
  161. package/dist/cjs/src/nextjs/index.js +0 -18
  162. package/dist/cjs/src/nextjs/index.js.map +0 -1
  163. package/dist/cjs/src/nextjs/middleware/index.d.ts +0 -2
  164. package/dist/cjs/src/nextjs/middleware/index.d.ts.map +0 -1
  165. package/dist/cjs/src/nextjs/middleware/index.js +0 -8
  166. package/dist/cjs/src/nextjs/middleware/index.js.map +0 -1
  167. package/dist/cjs/src/nextjs/middleware.d.ts +0 -59
  168. package/dist/cjs/src/nextjs/middleware.d.ts.map +0 -1
  169. package/dist/cjs/src/nextjs/middleware.js +0 -116
  170. package/dist/cjs/src/nextjs/middleware.js.map +0 -1
  171. package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts +0 -9
  172. package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
  173. package/dist/cjs/src/nextjs/providers/NextAuthProvider.js +0 -76
  174. package/dist/cjs/src/nextjs/providers/NextAuthProvider.js.map +0 -1
  175. package/dist/cjs/src/nextjs/routeHandler.d.ts +0 -18
  176. package/dist/cjs/src/nextjs/routeHandler.d.ts.map +0 -1
  177. package/dist/cjs/src/nextjs/routeHandler.js +0 -217
  178. package/dist/cjs/src/nextjs/routeHandler.js.map +0 -1
  179. package/dist/cjs/src/nextjs/utils.d.ts +0 -3
  180. package/dist/cjs/src/nextjs/utils.d.ts.map +0 -1
  181. package/dist/cjs/src/nextjs/utils.js +0 -9
  182. package/dist/cjs/src/nextjs/utils.js.map +0 -1
  183. package/dist/cjs/src/reactjs/components/SignInButton.d.ts +0 -8
  184. package/dist/cjs/src/reactjs/components/SignInButton.d.ts.map +0 -1
  185. package/dist/cjs/src/reactjs/components/SignInButton.js +0 -20
  186. package/dist/cjs/src/reactjs/components/SignInButton.js.map +0 -1
  187. package/dist/cjs/src/reactjs/components/SignOutButton.d.ts +0 -6
  188. package/dist/cjs/src/reactjs/components/SignOutButton.d.ts.map +0 -1
  189. package/dist/cjs/src/reactjs/components/SignOutButton.js +0 -20
  190. package/dist/cjs/src/reactjs/components/SignOutButton.js.map +0 -1
  191. package/dist/cjs/src/reactjs/components/UserButton.d.ts +0 -8
  192. package/dist/cjs/src/reactjs/components/UserButton.d.ts.map +0 -1
  193. package/dist/cjs/src/reactjs/components/UserButton.js +0 -136
  194. package/dist/cjs/src/reactjs/components/UserButton.js.map +0 -1
  195. package/dist/cjs/src/reactjs/components/index.d.ts +0 -6
  196. package/dist/cjs/src/reactjs/components/index.d.ts.map +0 -1
  197. package/dist/cjs/src/reactjs/components/index.js +0 -14
  198. package/dist/cjs/src/reactjs/components/index.js.map +0 -1
  199. package/dist/cjs/src/reactjs/hooks/index.d.ts +0 -7
  200. package/dist/cjs/src/reactjs/hooks/index.d.ts.map +0 -1
  201. package/dist/cjs/src/reactjs/hooks/index.js +0 -16
  202. package/dist/cjs/src/reactjs/hooks/index.js.map +0 -1
  203. package/dist/cjs/src/reactjs/hooks/useAuth.d.ts +0 -3
  204. package/dist/cjs/src/reactjs/hooks/useAuth.d.ts.map +0 -1
  205. package/dist/cjs/src/reactjs/hooks/useAuth.js +0 -15
  206. package/dist/cjs/src/reactjs/hooks/useAuth.js.map +0 -1
  207. package/dist/cjs/src/reactjs/hooks/useUser.d.ts +0 -4
  208. package/dist/cjs/src/reactjs/hooks/useUser.d.ts.map +0 -1
  209. package/dist/cjs/src/reactjs/hooks/useUser.js +0 -15
  210. package/dist/cjs/src/reactjs/hooks/useUser.js.map +0 -1
  211. package/dist/cjs/src/reactjs/index.d.ts +0 -6
  212. package/dist/cjs/src/reactjs/index.d.ts.map +0 -1
  213. package/dist/cjs/src/reactjs/index.js +0 -30
  214. package/dist/cjs/src/reactjs/index.js.map +0 -1
  215. package/dist/cjs/src/reactjs/providers/index.d.ts +0 -8
  216. package/dist/cjs/src/reactjs/providers/index.d.ts.map +0 -1
  217. package/dist/cjs/src/reactjs/providers/index.js +0 -19
  218. package/dist/cjs/src/reactjs/providers/index.js.map +0 -1
  219. package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts +0 -18
  220. package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts.map +0 -1
  221. package/dist/cjs/src/server/ServerAuthenticationResolver.js +0 -61
  222. package/dist/cjs/src/server/ServerAuthenticationResolver.js.map +0 -1
  223. package/dist/cjs/src/server/config.d.ts +0 -16
  224. package/dist/cjs/src/server/config.d.ts.map +0 -1
  225. package/dist/cjs/src/server/config.js +0 -3
  226. package/dist/cjs/src/server/config.js.map +0 -1
  227. package/dist/cjs/src/server/index.d.ts +0 -6
  228. package/dist/cjs/src/server/index.d.ts.map +0 -1
  229. package/dist/cjs/src/server/index.js +0 -14
  230. package/dist/cjs/src/server/index.js.map +0 -1
  231. package/dist/cjs/src/server/login.d.ts +0 -17
  232. package/dist/cjs/src/server/login.d.ts.map +0 -1
  233. package/dist/cjs/src/server/login.js +0 -42
  234. package/dist/cjs/src/server/login.js.map +0 -1
  235. package/dist/cjs/src/server/refresh.d.ts +0 -7
  236. package/dist/cjs/src/server/refresh.d.ts.map +0 -1
  237. package/dist/cjs/src/server/refresh.js +0 -16
  238. package/dist/cjs/src/server/refresh.js.map +0 -1
  239. package/dist/cjs/src/services/AuthenticationService.d.ts +0 -87
  240. package/dist/cjs/src/services/AuthenticationService.d.ts.map +0 -1
  241. package/dist/cjs/src/services/AuthenticationService.js +0 -218
  242. package/dist/cjs/src/services/AuthenticationService.js.map +0 -1
  243. package/dist/cjs/src/services/PKCE.d.ts +0 -20
  244. package/dist/cjs/src/services/PKCE.d.ts.map +0 -1
  245. package/dist/cjs/src/services/PKCE.js +0 -50
  246. package/dist/cjs/src/services/PKCE.js.map +0 -1
  247. package/dist/cjs/src/services/types.d.ts +0 -23
  248. package/dist/cjs/src/services/types.d.ts.map +0 -1
  249. package/dist/cjs/src/services/types.js +0 -11
  250. package/dist/cjs/src/services/types.js.map +0 -1
  251. package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts +0 -8
  252. package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts.map +0 -1
  253. package/dist/cjs/src/shared/components/CivicAuthIframe.js +0 -35
  254. package/dist/cjs/src/shared/components/CivicAuthIframe.js.map +0 -1
  255. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts +0 -9
  256. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
  257. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js +0 -154
  258. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js.map +0 -1
  259. package/dist/cjs/src/shared/components/CloseIcon.d.ts +0 -4
  260. package/dist/cjs/src/shared/components/CloseIcon.d.ts.map +0 -1
  261. package/dist/cjs/src/shared/components/CloseIcon.js +0 -12
  262. package/dist/cjs/src/shared/components/CloseIcon.js.map +0 -1
  263. package/dist/cjs/src/shared/components/LoadingIcon.d.ts +0 -4
  264. package/dist/cjs/src/shared/components/LoadingIcon.d.ts.map +0 -1
  265. package/dist/cjs/src/shared/components/LoadingIcon.js +0 -36
  266. package/dist/cjs/src/shared/components/LoadingIcon.js.map +0 -1
  267. package/dist/cjs/src/shared/hooks/index.d.ts +0 -5
  268. package/dist/cjs/src/shared/hooks/index.d.ts.map +0 -1
  269. package/dist/cjs/src/shared/hooks/index.js +0 -12
  270. package/dist/cjs/src/shared/hooks/index.js.map +0 -1
  271. package/dist/cjs/src/shared/hooks/useAuth.d.ts +0 -3
  272. package/dist/cjs/src/shared/hooks/useAuth.d.ts.map +0 -1
  273. package/dist/cjs/src/shared/hooks/useAuth.js +0 -15
  274. package/dist/cjs/src/shared/hooks/useAuth.js.map +0 -1
  275. package/dist/cjs/src/shared/hooks/useConfig.d.ts +0 -3
  276. package/dist/cjs/src/shared/hooks/useConfig.d.ts.map +0 -1
  277. package/dist/cjs/src/shared/hooks/useConfig.js +0 -16
  278. package/dist/cjs/src/shared/hooks/useConfig.js.map +0 -1
  279. package/dist/cjs/src/shared/hooks/useIframe.d.ts +0 -3
  280. package/dist/cjs/src/shared/hooks/useIframe.d.ts.map +0 -1
  281. package/dist/cjs/src/shared/hooks/useIframe.js +0 -16
  282. package/dist/cjs/src/shared/hooks/useIframe.js.map +0 -1
  283. package/dist/cjs/src/shared/hooks/useSession.d.ts +0 -3
  284. package/dist/cjs/src/shared/hooks/useSession.d.ts.map +0 -1
  285. package/dist/cjs/src/shared/hooks/useSession.js +0 -16
  286. package/dist/cjs/src/shared/hooks/useSession.js.map +0 -1
  287. package/dist/cjs/src/shared/hooks/useToken.d.ts +0 -3
  288. package/dist/cjs/src/shared/hooks/useToken.d.ts.map +0 -1
  289. package/dist/cjs/src/shared/hooks/useToken.js +0 -15
  290. package/dist/cjs/src/shared/hooks/useToken.js.map +0 -1
  291. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts +0 -15
  292. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
  293. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js +0 -43
  294. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
  295. package/dist/cjs/src/shared/lib/UserSession.d.ts +0 -12
  296. package/dist/cjs/src/shared/lib/UserSession.d.ts.map +0 -1
  297. package/dist/cjs/src/shared/lib/UserSession.js +0 -24
  298. package/dist/cjs/src/shared/lib/UserSession.js.map +0 -1
  299. package/dist/cjs/src/shared/lib/session.d.ts +0 -3
  300. package/dist/cjs/src/shared/lib/session.d.ts.map +0 -1
  301. package/dist/cjs/src/shared/lib/session.js +0 -13
  302. package/dist/cjs/src/shared/lib/session.js.map +0 -1
  303. package/dist/cjs/src/shared/lib/storage.d.ts +0 -25
  304. package/dist/cjs/src/shared/lib/storage.d.ts.map +0 -1
  305. package/dist/cjs/src/shared/lib/storage.js +0 -21
  306. package/dist/cjs/src/shared/lib/storage.js.map +0 -1
  307. package/dist/cjs/src/shared/lib/types.d.ts +0 -22
  308. package/dist/cjs/src/shared/lib/types.d.ts.map +0 -1
  309. package/dist/cjs/src/shared/lib/types.js +0 -19
  310. package/dist/cjs/src/shared/lib/types.js.map +0 -1
  311. package/dist/cjs/src/shared/lib/util.d.ts +0 -33
  312. package/dist/cjs/src/shared/lib/util.d.ts.map +0 -1
  313. package/dist/cjs/src/shared/lib/util.js +0 -163
  314. package/dist/cjs/src/shared/lib/util.js.map +0 -1
  315. package/dist/cjs/src/shared/providers/AuthContext.d.ts +0 -10
  316. package/dist/cjs/src/shared/providers/AuthContext.d.ts.map +0 -1
  317. package/dist/cjs/src/shared/providers/AuthContext.js +0 -6
  318. package/dist/cjs/src/shared/providers/AuthContext.js.map +0 -1
  319. package/dist/cjs/src/shared/providers/AuthProvider.d.ts +0 -20
  320. package/dist/cjs/src/shared/providers/AuthProvider.d.ts.map +0 -1
  321. package/dist/cjs/src/shared/providers/AuthProvider.js +0 -289
  322. package/dist/cjs/src/shared/providers/AuthProvider.js.map +0 -1
  323. package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts +0 -6
  324. package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts.map +0 -1
  325. package/dist/cjs/src/shared/providers/CivicAuthProvider.js +0 -21
  326. package/dist/cjs/src/shared/providers/CivicAuthProvider.js.map +0 -1
  327. package/dist/cjs/src/shared/providers/ConfigProvider.d.ts +0 -21
  328. package/dist/cjs/src/shared/providers/ConfigProvider.d.ts.map +0 -1
  329. package/dist/cjs/src/shared/providers/ConfigProvider.js +0 -46
  330. package/dist/cjs/src/shared/providers/ConfigProvider.js.map +0 -1
  331. package/dist/cjs/src/shared/providers/IframeProvider.d.ts +0 -16
  332. package/dist/cjs/src/shared/providers/IframeProvider.d.ts.map +0 -1
  333. package/dist/cjs/src/shared/providers/IframeProvider.js +0 -38
  334. package/dist/cjs/src/shared/providers/IframeProvider.js.map +0 -1
  335. package/dist/cjs/src/shared/providers/SessionProvider.d.ts +0 -13
  336. package/dist/cjs/src/shared/providers/SessionProvider.d.ts.map +0 -1
  337. package/dist/cjs/src/shared/providers/SessionProvider.js +0 -40
  338. package/dist/cjs/src/shared/providers/SessionProvider.js.map +0 -1
  339. package/dist/cjs/src/shared/providers/TokenProvider.d.ts +0 -18
  340. package/dist/cjs/src/shared/providers/TokenProvider.d.ts.map +0 -1
  341. package/dist/cjs/src/shared/providers/TokenProvider.js +0 -80
  342. package/dist/cjs/src/shared/providers/TokenProvider.js.map +0 -1
  343. package/dist/cjs/src/shared/providers/UserProvider.d.ts +0 -18
  344. package/dist/cjs/src/shared/providers/UserProvider.d.ts.map +0 -1
  345. package/dist/cjs/src/shared/providers/UserProvider.js +0 -65
  346. package/dist/cjs/src/shared/providers/UserProvider.js.map +0 -1
  347. package/dist/cjs/src/types.d.ts +0 -146
  348. package/dist/cjs/src/types.d.ts.map +0 -1
  349. package/dist/cjs/src/types.js +0 -3
  350. package/dist/cjs/src/types.js.map +0 -1
  351. package/dist/cjs/src/utils.d.ts +0 -15
  352. package/dist/cjs/src/utils.d.ts.map +0 -1
  353. package/dist/cjs/src/utils.js +0 -47
  354. package/dist/cjs/src/utils.js.map +0 -1
  355. package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
  356. package/dist/esm/src/browser/storage.d.ts +0 -6
  357. package/dist/esm/src/browser/storage.d.ts.map +0 -1
  358. package/dist/esm/src/browser/storage.js +0 -9
  359. package/dist/esm/src/browser/storage.js.map +0 -1
  360. package/dist/esm/src/config.d.ts +0 -3
  361. package/dist/esm/src/config.d.ts.map +0 -1
  362. package/dist/esm/src/config.js +0 -5
  363. package/dist/esm/src/config.js.map +0 -1
  364. package/dist/esm/src/constants.d.ts +0 -9
  365. package/dist/esm/src/constants.d.ts.map +0 -1
  366. package/dist/esm/src/constants.js +0 -17
  367. package/dist/esm/src/constants.js.map +0 -1
  368. package/dist/esm/src/index.d.ts +0 -4
  369. package/dist/esm/src/index.d.ts.map +0 -1
  370. package/dist/esm/src/index.js +0 -2
  371. package/dist/esm/src/index.js.map +0 -1
  372. package/dist/esm/src/lib/cookies.d.ts +0 -7
  373. package/dist/esm/src/lib/cookies.d.ts.map +0 -1
  374. package/dist/esm/src/lib/cookies.js +0 -23
  375. package/dist/esm/src/lib/cookies.js.map +0 -1
  376. package/dist/esm/src/lib/jwt.d.ts +0 -3
  377. package/dist/esm/src/lib/jwt.d.ts.map +0 -1
  378. package/dist/esm/src/lib/jwt.js +0 -9
  379. package/dist/esm/src/lib/jwt.js.map +0 -1
  380. package/dist/esm/src/lib/logger.d.ts +0 -26
  381. package/dist/esm/src/lib/logger.d.ts.map +0 -1
  382. package/dist/esm/src/lib/logger.js +0 -55
  383. package/dist/esm/src/lib/logger.js.map +0 -1
  384. package/dist/esm/src/lib/oauth.d.ts +0 -19
  385. package/dist/esm/src/lib/oauth.d.ts.map +0 -1
  386. package/dist/esm/src/lib/oauth.js +0 -60
  387. package/dist/esm/src/lib/oauth.js.map +0 -1
  388. package/dist/esm/src/lib/postMessage.d.ts +0 -4
  389. package/dist/esm/src/lib/postMessage.d.ts.map +0 -1
  390. package/dist/esm/src/lib/postMessage.js +0 -15
  391. package/dist/esm/src/lib/postMessage.js.map +0 -1
  392. package/dist/esm/src/lib/windowUtil.d.ts +0 -4
  393. package/dist/esm/src/lib/windowUtil.d.ts.map +0 -1
  394. package/dist/esm/src/lib/windowUtil.js +0 -30
  395. package/dist/esm/src/lib/windowUtil.js.map +0 -1
  396. package/dist/esm/src/nextjs/GetUser.d.ts +0 -6
  397. package/dist/esm/src/nextjs/GetUser.d.ts.map +0 -1
  398. package/dist/esm/src/nextjs/GetUser.js +0 -18
  399. package/dist/esm/src/nextjs/GetUser.js.map +0 -1
  400. package/dist/esm/src/nextjs/config.d.ts +0 -178
  401. package/dist/esm/src/nextjs/config.d.ts.map +0 -1
  402. package/dist/esm/src/nextjs/config.js +0 -162
  403. package/dist/esm/src/nextjs/config.js.map +0 -1
  404. package/dist/esm/src/nextjs/cookies.d.ts +0 -30
  405. package/dist/esm/src/nextjs/cookies.d.ts.map +0 -1
  406. package/dist/esm/src/nextjs/cookies.js +0 -112
  407. package/dist/esm/src/nextjs/cookies.js.map +0 -1
  408. package/dist/esm/src/nextjs/hooks/index.d.ts +0 -2
  409. package/dist/esm/src/nextjs/hooks/index.d.ts.map +0 -1
  410. package/dist/esm/src/nextjs/hooks/index.js +0 -2
  411. package/dist/esm/src/nextjs/hooks/index.js.map +0 -1
  412. package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts +0 -3
  413. package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
  414. package/dist/esm/src/nextjs/hooks/useTokenCookie.js +0 -37
  415. package/dist/esm/src/nextjs/hooks/useTokenCookie.js.map +0 -1
  416. package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts +0 -3
  417. package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts.map +0 -1
  418. package/dist/esm/src/nextjs/hooks/useUserCookie.js +0 -36
  419. package/dist/esm/src/nextjs/hooks/useUserCookie.js.map +0 -1
  420. package/dist/esm/src/nextjs/index.d.ts +0 -7
  421. package/dist/esm/src/nextjs/index.d.ts.map +0 -1
  422. package/dist/esm/src/nextjs/index.js +0 -6
  423. package/dist/esm/src/nextjs/index.js.map +0 -1
  424. package/dist/esm/src/nextjs/middleware/index.d.ts +0 -2
  425. package/dist/esm/src/nextjs/middleware/index.d.ts.map +0 -1
  426. package/dist/esm/src/nextjs/middleware/index.js +0 -2
  427. package/dist/esm/src/nextjs/middleware/index.js.map +0 -1
  428. package/dist/esm/src/nextjs/middleware.d.ts +0 -59
  429. package/dist/esm/src/nextjs/middleware.d.ts.map +0 -1
  430. package/dist/esm/src/nextjs/middleware.js +0 -107
  431. package/dist/esm/src/nextjs/middleware.js.map +0 -1
  432. package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts +0 -9
  433. package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
  434. package/dist/esm/src/nextjs/providers/NextAuthProvider.js +0 -50
  435. package/dist/esm/src/nextjs/providers/NextAuthProvider.js.map +0 -1
  436. package/dist/esm/src/nextjs/routeHandler.d.ts +0 -18
  437. package/dist/esm/src/nextjs/routeHandler.d.ts.map +0 -1
  438. package/dist/esm/src/nextjs/routeHandler.js +0 -212
  439. package/dist/esm/src/nextjs/routeHandler.js.map +0 -1
  440. package/dist/esm/src/nextjs/utils.d.ts +0 -3
  441. package/dist/esm/src/nextjs/utils.d.ts.map +0 -1
  442. package/dist/esm/src/nextjs/utils.js +0 -5
  443. package/dist/esm/src/nextjs/utils.js.map +0 -1
  444. package/dist/esm/src/reactjs/components/SignInButton.d.ts +0 -8
  445. package/dist/esm/src/reactjs/components/SignInButton.d.ts.map +0 -1
  446. package/dist/esm/src/reactjs/components/SignInButton.js +0 -14
  447. package/dist/esm/src/reactjs/components/SignInButton.js.map +0 -1
  448. package/dist/esm/src/reactjs/components/SignOutButton.d.ts +0 -6
  449. package/dist/esm/src/reactjs/components/SignOutButton.d.ts.map +0 -1
  450. package/dist/esm/src/reactjs/components/SignOutButton.js +0 -14
  451. package/dist/esm/src/reactjs/components/SignOutButton.js.map +0 -1
  452. package/dist/esm/src/reactjs/components/UserButton.d.ts +0 -8
  453. package/dist/esm/src/reactjs/components/UserButton.d.ts.map +0 -1
  454. package/dist/esm/src/reactjs/components/UserButton.js +0 -110
  455. package/dist/esm/src/reactjs/components/UserButton.js.map +0 -1
  456. package/dist/esm/src/reactjs/components/index.d.ts +0 -6
  457. package/dist/esm/src/reactjs/components/index.d.ts.map +0 -1
  458. package/dist/esm/src/reactjs/components/index.js +0 -6
  459. package/dist/esm/src/reactjs/components/index.js.map +0 -1
  460. package/dist/esm/src/reactjs/hooks/index.d.ts +0 -7
  461. package/dist/esm/src/reactjs/hooks/index.d.ts.map +0 -1
  462. package/dist/esm/src/reactjs/hooks/index.js +0 -7
  463. package/dist/esm/src/reactjs/hooks/index.js.map +0 -1
  464. package/dist/esm/src/reactjs/hooks/useAuth.d.ts +0 -3
  465. package/dist/esm/src/reactjs/hooks/useAuth.d.ts.map +0 -1
  466. package/dist/esm/src/reactjs/hooks/useAuth.js +0 -12
  467. package/dist/esm/src/reactjs/hooks/useAuth.js.map +0 -1
  468. package/dist/esm/src/reactjs/hooks/useUser.d.ts +0 -4
  469. package/dist/esm/src/reactjs/hooks/useUser.d.ts.map +0 -1
  470. package/dist/esm/src/reactjs/hooks/useUser.js +0 -12
  471. package/dist/esm/src/reactjs/hooks/useUser.js.map +0 -1
  472. package/dist/esm/src/reactjs/index.d.ts +0 -6
  473. package/dist/esm/src/reactjs/index.d.ts.map +0 -1
  474. package/dist/esm/src/reactjs/index.js +0 -8
  475. package/dist/esm/src/reactjs/index.js.map +0 -1
  476. package/dist/esm/src/reactjs/providers/index.d.ts +0 -8
  477. package/dist/esm/src/reactjs/providers/index.d.ts.map +0 -1
  478. package/dist/esm/src/reactjs/providers/index.js +0 -7
  479. package/dist/esm/src/reactjs/providers/index.js.map +0 -1
  480. package/dist/esm/src/server/ServerAuthenticationResolver.d.ts +0 -18
  481. package/dist/esm/src/server/ServerAuthenticationResolver.d.ts.map +0 -1
  482. package/dist/esm/src/server/ServerAuthenticationResolver.js +0 -57
  483. package/dist/esm/src/server/ServerAuthenticationResolver.js.map +0 -1
  484. package/dist/esm/src/server/config.d.ts +0 -16
  485. package/dist/esm/src/server/config.d.ts.map +0 -1
  486. package/dist/esm/src/server/config.js +0 -2
  487. package/dist/esm/src/server/config.js.map +0 -1
  488. package/dist/esm/src/server/index.d.ts +0 -6
  489. package/dist/esm/src/server/index.d.ts.map +0 -1
  490. package/dist/esm/src/server/index.js +0 -5
  491. package/dist/esm/src/server/index.js.map +0 -1
  492. package/dist/esm/src/server/login.d.ts +0 -17
  493. package/dist/esm/src/server/login.d.ts.map +0 -1
  494. package/dist/esm/src/server/login.js +0 -37
  495. package/dist/esm/src/server/login.js.map +0 -1
  496. package/dist/esm/src/server/refresh.d.ts +0 -7
  497. package/dist/esm/src/server/refresh.d.ts.map +0 -1
  498. package/dist/esm/src/server/refresh.js +0 -13
  499. package/dist/esm/src/server/refresh.js.map +0 -1
  500. package/dist/esm/src/services/AuthenticationService.d.ts +0 -87
  501. package/dist/esm/src/services/AuthenticationService.d.ts.map +0 -1
  502. package/dist/esm/src/services/AuthenticationService.js +0 -212
  503. package/dist/esm/src/services/AuthenticationService.js.map +0 -1
  504. package/dist/esm/src/services/PKCE.d.ts +0 -20
  505. package/dist/esm/src/services/PKCE.d.ts.map +0 -1
  506. package/dist/esm/src/services/PKCE.js +0 -44
  507. package/dist/esm/src/services/PKCE.js.map +0 -1
  508. package/dist/esm/src/services/types.d.ts +0 -23
  509. package/dist/esm/src/services/types.d.ts.map +0 -1
  510. package/dist/esm/src/services/types.js +0 -7
  511. package/dist/esm/src/services/types.js.map +0 -1
  512. package/dist/esm/src/shared/components/CivicAuthIframe.d.ts +0 -8
  513. package/dist/esm/src/shared/components/CivicAuthIframe.d.ts.map +0 -1
  514. package/dist/esm/src/shared/components/CivicAuthIframe.js +0 -9
  515. package/dist/esm/src/shared/components/CivicAuthIframe.js.map +0 -1
  516. package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts +0 -9
  517. package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
  518. package/dist/esm/src/shared/components/CivicAuthIframeContainer.js +0 -128
  519. package/dist/esm/src/shared/components/CivicAuthIframeContainer.js.map +0 -1
  520. package/dist/esm/src/shared/components/CloseIcon.d.ts +0 -4
  521. package/dist/esm/src/shared/components/CloseIcon.d.ts.map +0 -1
  522. package/dist/esm/src/shared/components/CloseIcon.js +0 -6
  523. package/dist/esm/src/shared/components/CloseIcon.js.map +0 -1
  524. package/dist/esm/src/shared/components/LoadingIcon.d.ts +0 -4
  525. package/dist/esm/src/shared/components/LoadingIcon.d.ts.map +0 -1
  526. package/dist/esm/src/shared/components/LoadingIcon.js +0 -30
  527. package/dist/esm/src/shared/components/LoadingIcon.js.map +0 -1
  528. package/dist/esm/src/shared/hooks/index.d.ts +0 -5
  529. package/dist/esm/src/shared/hooks/index.d.ts.map +0 -1
  530. package/dist/esm/src/shared/hooks/index.js +0 -5
  531. package/dist/esm/src/shared/hooks/index.js.map +0 -1
  532. package/dist/esm/src/shared/hooks/useAuth.d.ts +0 -3
  533. package/dist/esm/src/shared/hooks/useAuth.d.ts.map +0 -1
  534. package/dist/esm/src/shared/hooks/useAuth.js +0 -12
  535. package/dist/esm/src/shared/hooks/useAuth.js.map +0 -1
  536. package/dist/esm/src/shared/hooks/useConfig.d.ts +0 -3
  537. package/dist/esm/src/shared/hooks/useConfig.d.ts.map +0 -1
  538. package/dist/esm/src/shared/hooks/useConfig.js +0 -13
  539. package/dist/esm/src/shared/hooks/useConfig.js.map +0 -1
  540. package/dist/esm/src/shared/hooks/useIframe.d.ts +0 -3
  541. package/dist/esm/src/shared/hooks/useIframe.d.ts.map +0 -1
  542. package/dist/esm/src/shared/hooks/useIframe.js +0 -13
  543. package/dist/esm/src/shared/hooks/useIframe.js.map +0 -1
  544. package/dist/esm/src/shared/hooks/useSession.d.ts +0 -3
  545. package/dist/esm/src/shared/hooks/useSession.d.ts.map +0 -1
  546. package/dist/esm/src/shared/hooks/useSession.js +0 -13
  547. package/dist/esm/src/shared/hooks/useSession.js.map +0 -1
  548. package/dist/esm/src/shared/hooks/useToken.d.ts +0 -3
  549. package/dist/esm/src/shared/hooks/useToken.d.ts.map +0 -1
  550. package/dist/esm/src/shared/hooks/useToken.js +0 -12
  551. package/dist/esm/src/shared/hooks/useToken.js.map +0 -1
  552. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts +0 -15
  553. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
  554. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js +0 -39
  555. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
  556. package/dist/esm/src/shared/lib/UserSession.d.ts +0 -12
  557. package/dist/esm/src/shared/lib/UserSession.d.ts.map +0 -1
  558. package/dist/esm/src/shared/lib/UserSession.js +0 -20
  559. package/dist/esm/src/shared/lib/UserSession.js.map +0 -1
  560. package/dist/esm/src/shared/lib/session.d.ts +0 -3
  561. package/dist/esm/src/shared/lib/session.d.ts.map +0 -1
  562. package/dist/esm/src/shared/lib/session.js +0 -10
  563. package/dist/esm/src/shared/lib/session.js.map +0 -1
  564. package/dist/esm/src/shared/lib/storage.d.ts +0 -25
  565. package/dist/esm/src/shared/lib/storage.d.ts.map +0 -1
  566. package/dist/esm/src/shared/lib/storage.js +0 -17
  567. package/dist/esm/src/shared/lib/storage.js.map +0 -1
  568. package/dist/esm/src/shared/lib/types.d.ts +0 -22
  569. package/dist/esm/src/shared/lib/types.d.ts.map +0 -1
  570. package/dist/esm/src/shared/lib/types.js +0 -16
  571. package/dist/esm/src/shared/lib/types.js.map +0 -1
  572. package/dist/esm/src/shared/lib/util.d.ts +0 -33
  573. package/dist/esm/src/shared/lib/util.d.ts.map +0 -1
  574. package/dist/esm/src/shared/lib/util.js +0 -127
  575. package/dist/esm/src/shared/lib/util.js.map +0 -1
  576. package/dist/esm/src/shared/providers/AuthContext.d.ts +0 -10
  577. package/dist/esm/src/shared/providers/AuthContext.d.ts.map +0 -1
  578. package/dist/esm/src/shared/providers/AuthContext.js +0 -3
  579. package/dist/esm/src/shared/providers/AuthContext.js.map +0 -1
  580. package/dist/esm/src/shared/providers/AuthProvider.d.ts +0 -20
  581. package/dist/esm/src/shared/providers/AuthProvider.d.ts.map +0 -1
  582. package/dist/esm/src/shared/providers/AuthProvider.js +0 -263
  583. package/dist/esm/src/shared/providers/AuthProvider.js.map +0 -1
  584. package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts +0 -6
  585. package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts.map +0 -1
  586. package/dist/esm/src/shared/providers/CivicAuthProvider.js +0 -15
  587. package/dist/esm/src/shared/providers/CivicAuthProvider.js.map +0 -1
  588. package/dist/esm/src/shared/providers/ConfigProvider.d.ts +0 -21
  589. package/dist/esm/src/shared/providers/ConfigProvider.d.ts.map +0 -1
  590. package/dist/esm/src/shared/providers/ConfigProvider.js +0 -19
  591. package/dist/esm/src/shared/providers/ConfigProvider.js.map +0 -1
  592. package/dist/esm/src/shared/providers/IframeProvider.d.ts +0 -16
  593. package/dist/esm/src/shared/providers/IframeProvider.d.ts.map +0 -1
  594. package/dist/esm/src/shared/providers/IframeProvider.js +0 -11
  595. package/dist/esm/src/shared/providers/IframeProvider.js.map +0 -1
  596. package/dist/esm/src/shared/providers/SessionProvider.d.ts +0 -13
  597. package/dist/esm/src/shared/providers/SessionProvider.d.ts.map +0 -1
  598. package/dist/esm/src/shared/providers/SessionProvider.js +0 -13
  599. package/dist/esm/src/shared/providers/SessionProvider.js.map +0 -1
  600. package/dist/esm/src/shared/providers/TokenProvider.d.ts +0 -18
  601. package/dist/esm/src/shared/providers/TokenProvider.d.ts.map +0 -1
  602. package/dist/esm/src/shared/providers/TokenProvider.js +0 -53
  603. package/dist/esm/src/shared/providers/TokenProvider.js.map +0 -1
  604. package/dist/esm/src/shared/providers/UserProvider.d.ts +0 -18
  605. package/dist/esm/src/shared/providers/UserProvider.d.ts.map +0 -1
  606. package/dist/esm/src/shared/providers/UserProvider.js +0 -38
  607. package/dist/esm/src/shared/providers/UserProvider.js.map +0 -1
  608. package/dist/esm/src/types.d.ts +0 -146
  609. package/dist/esm/src/types.d.ts.map +0 -1
  610. package/dist/esm/src/types.js +0 -2
  611. package/dist/esm/src/types.js.map +0 -1
  612. package/dist/esm/src/utils.d.ts +0 -15
  613. package/dist/esm/src/utils.d.ts.map +0 -1
  614. package/dist/esm/src/utils.js +0 -43
  615. package/dist/esm/src/utils.js.map +0 -1
  616. package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
  617. package/dist/nextjs/client.css +0 -340
  618. package/dist/nextjs/client.css.map +0 -1
  619. package/dist/nextjs/client.d.mts +0 -10
  620. package/dist/nextjs/client.d.ts +0 -10
  621. package/dist/nextjs/client.js +0 -185
  622. package/dist/nextjs/client.js.map +0 -1
  623. package/dist/nextjs/client.mjs +0 -185
  624. package/dist/nextjs/client.mjs.map +0 -1
  625. package/dist/src/browser/storage.d.ts +0 -6
  626. package/dist/src/browser/storage.d.ts.map +0 -1
  627. package/dist/src/browser/storage.js +0 -9
  628. package/dist/src/browser/storage.js.map +0 -1
  629. package/dist/src/config.d.ts +0 -3
  630. package/dist/src/config.d.ts.map +0 -1
  631. package/dist/src/config.js +0 -5
  632. package/dist/src/config.js.map +0 -1
  633. package/dist/src/constants.d.ts +0 -9
  634. package/dist/src/constants.d.ts.map +0 -1
  635. package/dist/src/constants.js +0 -17
  636. package/dist/src/constants.js.map +0 -1
  637. package/dist/src/index.d.ts +0 -4
  638. package/dist/src/index.d.ts.map +0 -1
  639. package/dist/src/index.js +0 -2
  640. package/dist/src/index.js.map +0 -1
  641. package/dist/src/lib/cookies.d.ts +0 -7
  642. package/dist/src/lib/cookies.d.ts.map +0 -1
  643. package/dist/src/lib/cookies.js +0 -23
  644. package/dist/src/lib/cookies.js.map +0 -1
  645. package/dist/src/lib/jwt.d.ts +0 -3
  646. package/dist/src/lib/jwt.d.ts.map +0 -1
  647. package/dist/src/lib/jwt.js +0 -9
  648. package/dist/src/lib/jwt.js.map +0 -1
  649. package/dist/src/lib/logger.d.ts +0 -26
  650. package/dist/src/lib/logger.d.ts.map +0 -1
  651. package/dist/src/lib/logger.js +0 -55
  652. package/dist/src/lib/logger.js.map +0 -1
  653. package/dist/src/lib/oauth.d.ts +0 -19
  654. package/dist/src/lib/oauth.d.ts.map +0 -1
  655. package/dist/src/lib/oauth.js +0 -60
  656. package/dist/src/lib/oauth.js.map +0 -1
  657. package/dist/src/lib/postMessage.d.ts +0 -4
  658. package/dist/src/lib/postMessage.d.ts.map +0 -1
  659. package/dist/src/lib/postMessage.js +0 -15
  660. package/dist/src/lib/postMessage.js.map +0 -1
  661. package/dist/src/lib/windowUtil.d.ts +0 -4
  662. package/dist/src/lib/windowUtil.d.ts.map +0 -1
  663. package/dist/src/lib/windowUtil.js +0 -30
  664. package/dist/src/lib/windowUtil.js.map +0 -1
  665. package/dist/src/nextjs/GetUser.d.ts +0 -6
  666. package/dist/src/nextjs/GetUser.d.ts.map +0 -1
  667. package/dist/src/nextjs/GetUser.js +0 -18
  668. package/dist/src/nextjs/GetUser.js.map +0 -1
  669. package/dist/src/nextjs/config.d.ts +0 -178
  670. package/dist/src/nextjs/config.d.ts.map +0 -1
  671. package/dist/src/nextjs/config.js +0 -164
  672. package/dist/src/nextjs/config.js.map +0 -1
  673. package/dist/src/nextjs/cookies.d.ts +0 -30
  674. package/dist/src/nextjs/cookies.d.ts.map +0 -1
  675. package/dist/src/nextjs/cookies.js +0 -109
  676. package/dist/src/nextjs/cookies.js.map +0 -1
  677. package/dist/src/nextjs/hooks/index.d.ts +0 -2
  678. package/dist/src/nextjs/hooks/index.d.ts.map +0 -1
  679. package/dist/src/nextjs/hooks/index.js +0 -2
  680. package/dist/src/nextjs/hooks/index.js.map +0 -1
  681. package/dist/src/nextjs/hooks/useTokenCookie.d.ts +0 -3
  682. package/dist/src/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
  683. package/dist/src/nextjs/hooks/useTokenCookie.js +0 -37
  684. package/dist/src/nextjs/hooks/useTokenCookie.js.map +0 -1
  685. package/dist/src/nextjs/hooks/useUserCookie.d.ts +0 -3
  686. package/dist/src/nextjs/hooks/useUserCookie.d.ts.map +0 -1
  687. package/dist/src/nextjs/hooks/useUserCookie.js +0 -36
  688. package/dist/src/nextjs/hooks/useUserCookie.js.map +0 -1
  689. package/dist/src/nextjs/index.d.ts +0 -7
  690. package/dist/src/nextjs/index.d.ts.map +0 -1
  691. package/dist/src/nextjs/index.js +0 -6
  692. package/dist/src/nextjs/index.js.map +0 -1
  693. package/dist/src/nextjs/middleware/index.d.ts +0 -2
  694. package/dist/src/nextjs/middleware/index.d.ts.map +0 -1
  695. package/dist/src/nextjs/middleware/index.js +0 -2
  696. package/dist/src/nextjs/middleware/index.js.map +0 -1
  697. package/dist/src/nextjs/middleware.d.ts +0 -59
  698. package/dist/src/nextjs/middleware.d.ts.map +0 -1
  699. package/dist/src/nextjs/middleware.js +0 -107
  700. package/dist/src/nextjs/middleware.js.map +0 -1
  701. package/dist/src/nextjs/providers/NextAuthProvider.d.ts +0 -9
  702. package/dist/src/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
  703. package/dist/src/nextjs/providers/NextAuthProvider.js +0 -50
  704. package/dist/src/nextjs/providers/NextAuthProvider.js.map +0 -1
  705. package/dist/src/nextjs/routeHandler.d.ts +0 -18
  706. package/dist/src/nextjs/routeHandler.d.ts.map +0 -1
  707. package/dist/src/nextjs/routeHandler.js +0 -216
  708. package/dist/src/nextjs/routeHandler.js.map +0 -1
  709. package/dist/src/nextjs/utils.d.ts +0 -3
  710. package/dist/src/nextjs/utils.d.ts.map +0 -1
  711. package/dist/src/nextjs/utils.js +0 -5
  712. package/dist/src/nextjs/utils.js.map +0 -1
  713. package/dist/src/reactjs/components/SignInButton.d.ts +0 -8
  714. package/dist/src/reactjs/components/SignInButton.d.ts.map +0 -1
  715. package/dist/src/reactjs/components/SignInButton.js +0 -14
  716. package/dist/src/reactjs/components/SignInButton.js.map +0 -1
  717. package/dist/src/reactjs/components/SignOutButton.d.ts +0 -6
  718. package/dist/src/reactjs/components/SignOutButton.d.ts.map +0 -1
  719. package/dist/src/reactjs/components/SignOutButton.js +0 -14
  720. package/dist/src/reactjs/components/SignOutButton.js.map +0 -1
  721. package/dist/src/reactjs/components/UserButton.d.ts +0 -8
  722. package/dist/src/reactjs/components/UserButton.d.ts.map +0 -1
  723. package/dist/src/reactjs/components/UserButton.js +0 -110
  724. package/dist/src/reactjs/components/UserButton.js.map +0 -1
  725. package/dist/src/reactjs/components/index.d.ts +0 -6
  726. package/dist/src/reactjs/components/index.d.ts.map +0 -1
  727. package/dist/src/reactjs/components/index.js +0 -6
  728. package/dist/src/reactjs/components/index.js.map +0 -1
  729. package/dist/src/reactjs/hooks/index.d.ts +0 -8
  730. package/dist/src/reactjs/hooks/index.d.ts.map +0 -1
  731. package/dist/src/reactjs/hooks/index.js +0 -8
  732. package/dist/src/reactjs/hooks/index.js.map +0 -1
  733. package/dist/src/reactjs/hooks/useAuth.d.ts +0 -3
  734. package/dist/src/reactjs/hooks/useAuth.d.ts.map +0 -1
  735. package/dist/src/reactjs/hooks/useAuth.js +0 -12
  736. package/dist/src/reactjs/hooks/useAuth.js.map +0 -1
  737. package/dist/src/reactjs/hooks/useUser.d.ts +0 -4
  738. package/dist/src/reactjs/hooks/useUser.d.ts.map +0 -1
  739. package/dist/src/reactjs/hooks/useUser.js +0 -12
  740. package/dist/src/reactjs/hooks/useUser.js.map +0 -1
  741. package/dist/src/reactjs/index.d.ts +0 -6
  742. package/dist/src/reactjs/index.d.ts.map +0 -1
  743. package/dist/src/reactjs/index.js +0 -8
  744. package/dist/src/reactjs/index.js.map +0 -1
  745. package/dist/src/reactjs/providers/index.d.ts +0 -8
  746. package/dist/src/reactjs/providers/index.d.ts.map +0 -1
  747. package/dist/src/reactjs/providers/index.js +0 -7
  748. package/dist/src/reactjs/providers/index.js.map +0 -1
  749. package/dist/src/server/ServerAuthenticationResolver.d.ts +0 -18
  750. package/dist/src/server/ServerAuthenticationResolver.d.ts.map +0 -1
  751. package/dist/src/server/ServerAuthenticationResolver.js +0 -62
  752. package/dist/src/server/ServerAuthenticationResolver.js.map +0 -1
  753. package/dist/src/server/config.d.ts +0 -16
  754. package/dist/src/server/config.d.ts.map +0 -1
  755. package/dist/src/server/config.js +0 -2
  756. package/dist/src/server/config.js.map +0 -1
  757. package/dist/src/server/index.d.ts +0 -6
  758. package/dist/src/server/index.d.ts.map +0 -1
  759. package/dist/src/server/index.js +0 -5
  760. package/dist/src/server/index.js.map +0 -1
  761. package/dist/src/server/login.d.ts +0 -17
  762. package/dist/src/server/login.d.ts.map +0 -1
  763. package/dist/src/server/login.js +0 -37
  764. package/dist/src/server/login.js.map +0 -1
  765. package/dist/src/server/refresh.d.ts +0 -7
  766. package/dist/src/server/refresh.d.ts.map +0 -1
  767. package/dist/src/server/refresh.js +0 -13
  768. package/dist/src/server/refresh.js.map +0 -1
  769. package/dist/src/services/AuthenticationService.d.ts +0 -87
  770. package/dist/src/services/AuthenticationService.d.ts.map +0 -1
  771. package/dist/src/services/AuthenticationService.js +0 -222
  772. package/dist/src/services/AuthenticationService.js.map +0 -1
  773. package/dist/src/services/PKCE.d.ts +0 -20
  774. package/dist/src/services/PKCE.d.ts.map +0 -1
  775. package/dist/src/services/PKCE.js +0 -44
  776. package/dist/src/services/PKCE.js.map +0 -1
  777. package/dist/src/services/types.d.ts +0 -23
  778. package/dist/src/services/types.d.ts.map +0 -1
  779. package/dist/src/services/types.js +0 -7
  780. package/dist/src/services/types.js.map +0 -1
  781. package/dist/src/shared/components/CivicAuthIframe.d.ts +0 -8
  782. package/dist/src/shared/components/CivicAuthIframe.d.ts.map +0 -1
  783. package/dist/src/shared/components/CivicAuthIframe.js +0 -9
  784. package/dist/src/shared/components/CivicAuthIframe.js.map +0 -1
  785. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts +0 -9
  786. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
  787. package/dist/src/shared/components/CivicAuthIframeContainer.js +0 -130
  788. package/dist/src/shared/components/CivicAuthIframeContainer.js.map +0 -1
  789. package/dist/src/shared/components/CloseIcon.d.ts +0 -4
  790. package/dist/src/shared/components/CloseIcon.d.ts.map +0 -1
  791. package/dist/src/shared/components/CloseIcon.js +0 -6
  792. package/dist/src/shared/components/CloseIcon.js.map +0 -1
  793. package/dist/src/shared/components/LoadingIcon.d.ts +0 -4
  794. package/dist/src/shared/components/LoadingIcon.d.ts.map +0 -1
  795. package/dist/src/shared/components/LoadingIcon.js +0 -24
  796. package/dist/src/shared/components/LoadingIcon.js.map +0 -1
  797. package/dist/src/shared/hooks/index.d.ts +0 -5
  798. package/dist/src/shared/hooks/index.d.ts.map +0 -1
  799. package/dist/src/shared/hooks/index.js +0 -5
  800. package/dist/src/shared/hooks/index.js.map +0 -1
  801. package/dist/src/shared/hooks/useAuth.d.ts +0 -3
  802. package/dist/src/shared/hooks/useAuth.d.ts.map +0 -1
  803. package/dist/src/shared/hooks/useAuth.js +0 -12
  804. package/dist/src/shared/hooks/useAuth.js.map +0 -1
  805. package/dist/src/shared/hooks/useConfig.d.ts +0 -3
  806. package/dist/src/shared/hooks/useConfig.d.ts.map +0 -1
  807. package/dist/src/shared/hooks/useConfig.js +0 -13
  808. package/dist/src/shared/hooks/useConfig.js.map +0 -1
  809. package/dist/src/shared/hooks/useIframe.d.ts +0 -3
  810. package/dist/src/shared/hooks/useIframe.d.ts.map +0 -1
  811. package/dist/src/shared/hooks/useIframe.js +0 -13
  812. package/dist/src/shared/hooks/useIframe.js.map +0 -1
  813. package/dist/src/shared/hooks/useSession.d.ts +0 -3
  814. package/dist/src/shared/hooks/useSession.d.ts.map +0 -1
  815. package/dist/src/shared/hooks/useSession.js +0 -13
  816. package/dist/src/shared/hooks/useSession.js.map +0 -1
  817. package/dist/src/shared/hooks/useToken.d.ts +0 -3
  818. package/dist/src/shared/hooks/useToken.d.ts.map +0 -1
  819. package/dist/src/shared/hooks/useToken.js +0 -12
  820. package/dist/src/shared/hooks/useToken.js.map +0 -1
  821. package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts +0 -15
  822. package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
  823. package/dist/src/shared/lib/GenericAuthenticationRefresher.js +0 -43
  824. package/dist/src/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
  825. package/dist/src/shared/lib/UserSession.d.ts +0 -12
  826. package/dist/src/shared/lib/UserSession.d.ts.map +0 -1
  827. package/dist/src/shared/lib/UserSession.js +0 -20
  828. package/dist/src/shared/lib/UserSession.js.map +0 -1
  829. package/dist/src/shared/lib/session.d.ts +0 -3
  830. package/dist/src/shared/lib/session.d.ts.map +0 -1
  831. package/dist/src/shared/lib/session.js +0 -10
  832. package/dist/src/shared/lib/session.js.map +0 -1
  833. package/dist/src/shared/lib/storage.d.ts +0 -25
  834. package/dist/src/shared/lib/storage.d.ts.map +0 -1
  835. package/dist/src/shared/lib/storage.js +0 -17
  836. package/dist/src/shared/lib/storage.js.map +0 -1
  837. package/dist/src/shared/lib/types.d.ts +0 -22
  838. package/dist/src/shared/lib/types.d.ts.map +0 -1
  839. package/dist/src/shared/lib/types.js +0 -16
  840. package/dist/src/shared/lib/types.js.map +0 -1
  841. package/dist/src/shared/lib/util.d.ts +0 -33
  842. package/dist/src/shared/lib/util.d.ts.map +0 -1
  843. package/dist/src/shared/lib/util.js +0 -126
  844. package/dist/src/shared/lib/util.js.map +0 -1
  845. package/dist/src/shared/providers/AuthContext.d.ts +0 -10
  846. package/dist/src/shared/providers/AuthContext.d.ts.map +0 -1
  847. package/dist/src/shared/providers/AuthContext.js +0 -3
  848. package/dist/src/shared/providers/AuthContext.js.map +0 -1
  849. package/dist/src/shared/providers/AuthProvider.d.ts +0 -20
  850. package/dist/src/shared/providers/AuthProvider.d.ts.map +0 -1
  851. package/dist/src/shared/providers/AuthProvider.js +0 -263
  852. package/dist/src/shared/providers/AuthProvider.js.map +0 -1
  853. package/dist/src/shared/providers/CivicAuthProvider.d.ts +0 -6
  854. package/dist/src/shared/providers/CivicAuthProvider.d.ts.map +0 -1
  855. package/dist/src/shared/providers/CivicAuthProvider.js +0 -15
  856. package/dist/src/shared/providers/CivicAuthProvider.js.map +0 -1
  857. package/dist/src/shared/providers/ConfigProvider.d.ts +0 -21
  858. package/dist/src/shared/providers/ConfigProvider.d.ts.map +0 -1
  859. package/dist/src/shared/providers/ConfigProvider.js +0 -19
  860. package/dist/src/shared/providers/ConfigProvider.js.map +0 -1
  861. package/dist/src/shared/providers/IframeProvider.d.ts +0 -16
  862. package/dist/src/shared/providers/IframeProvider.d.ts.map +0 -1
  863. package/dist/src/shared/providers/IframeProvider.js +0 -11
  864. package/dist/src/shared/providers/IframeProvider.js.map +0 -1
  865. package/dist/src/shared/providers/SessionProvider.d.ts +0 -13
  866. package/dist/src/shared/providers/SessionProvider.d.ts.map +0 -1
  867. package/dist/src/shared/providers/SessionProvider.js +0 -13
  868. package/dist/src/shared/providers/SessionProvider.js.map +0 -1
  869. package/dist/src/shared/providers/TokenProvider.d.ts +0 -18
  870. package/dist/src/shared/providers/TokenProvider.d.ts.map +0 -1
  871. package/dist/src/shared/providers/TokenProvider.js +0 -53
  872. package/dist/src/shared/providers/TokenProvider.js.map +0 -1
  873. package/dist/src/shared/providers/UserProvider.d.ts +0 -18
  874. package/dist/src/shared/providers/UserProvider.d.ts.map +0 -1
  875. package/dist/src/shared/providers/UserProvider.js +0 -38
  876. package/dist/src/shared/providers/UserProvider.js.map +0 -1
  877. package/dist/src/types.d.ts +0 -146
  878. package/dist/src/types.d.ts.map +0 -1
  879. package/dist/src/types.js +0 -2
  880. package/dist/src/types.js.map +0 -1
  881. package/dist/src/utils.d.ts +0 -15
  882. package/dist/src/utils.d.ts.map +0 -1
  883. package/dist/src/utils.js +0 -43
  884. package/dist/src/utils.js.map +0 -1
  885. package/dist/storage-ANmRwpZ3.d.ts +0 -25
  886. package/dist/storage-B2eAQNdv.d.ts +0 -25
  887. package/dist/storage-BJPUpxhm.d.mts +0 -25
  888. package/dist/storage-BJyqsZwC.d.mts +0 -25
  889. package/dist/test/integration/sdk.test.d.ts +0 -2
  890. package/dist/test/integration/sdk.test.d.ts.map +0 -1
  891. package/dist/test/integration/sdk.test.js +0 -183
  892. package/dist/test/integration/sdk.test.js.map +0 -1
  893. package/dist/test/support/fixtures.d.ts +0 -26
  894. package/dist/test/support/fixtures.d.ts.map +0 -1
  895. package/dist/test/support/fixtures.js +0 -55
  896. package/dist/test/support/fixtures.js.map +0 -1
  897. package/dist/test/support/tokens.json +0 -26
  898. package/dist/test/unit/lib/oauth.test.d.ts +0 -2
  899. package/dist/test/unit/lib/oauth.test.d.ts.map +0 -1
  900. package/dist/test/unit/lib/oauth.test.js +0 -55
  901. package/dist/test/unit/lib/oauth.test.js.map +0 -1
  902. package/dist/test/unit/logger.test.d.ts +0 -2
  903. package/dist/test/unit/logger.test.d.ts.map +0 -1
  904. package/dist/test/unit/logger.test.js +0 -141
  905. package/dist/test/unit/logger.test.js.map +0 -1
  906. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts +0 -2
  907. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts.map +0 -1
  908. package/dist/test/unit/nextjs/NextAuthProvider.test.js +0 -29
  909. package/dist/test/unit/nextjs/NextAuthProvider.test.js.map +0 -1
  910. package/dist/test/unit/nextjs/config.test.d.ts +0 -2
  911. package/dist/test/unit/nextjs/config.test.d.ts.map +0 -1
  912. package/dist/test/unit/nextjs/config.test.js +0 -189
  913. package/dist/test/unit/nextjs/config.test.js.map +0 -1
  914. package/dist/test/unit/nextjs/getUser.test.d.ts +0 -2
  915. package/dist/test/unit/nextjs/getUser.test.d.ts.map +0 -1
  916. package/dist/test/unit/nextjs/getUser.test.js +0 -36
  917. package/dist/test/unit/nextjs/getUser.test.js.map +0 -1
  918. package/dist/test/unit/nextjs/middleware.test.d.ts +0 -2
  919. package/dist/test/unit/nextjs/middleware.test.d.ts.map +0 -1
  920. package/dist/test/unit/nextjs/middleware.test.js +0 -113
  921. package/dist/test/unit/nextjs/middleware.test.js.map +0 -1
  922. package/dist/test/unit/nextjs/utils.test.d.ts +0 -2
  923. package/dist/test/unit/nextjs/utils.test.d.ts.map +0 -1
  924. package/dist/test/unit/nextjs/utils.test.js +0 -13
  925. package/dist/test/unit/nextjs/utils.test.js.map +0 -1
  926. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts +0 -2
  927. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts.map +0 -1
  928. package/dist/test/unit/publicApi/apiSnapshot.test.js +0 -10
  929. package/dist/test/unit/publicApi/apiSnapshot.test.js.map +0 -1
  930. package/dist/test/unit/react/components/SignInButton.test.d.ts +0 -2
  931. package/dist/test/unit/react/components/SignInButton.test.d.ts.map +0 -1
  932. package/dist/test/unit/react/components/SignInButton.test.js +0 -31
  933. package/dist/test/unit/react/components/SignInButton.test.js.map +0 -1
  934. package/dist/test/unit/react/components/SignOutButton.test.d.ts +0 -2
  935. package/dist/test/unit/react/components/SignOutButton.test.d.ts.map +0 -1
  936. package/dist/test/unit/react/components/SignOutButton.test.js +0 -30
  937. package/dist/test/unit/react/components/SignOutButton.test.js.map +0 -1
  938. package/dist/test/unit/server/login.test.d.ts +0 -2
  939. package/dist/test/unit/server/login.test.d.ts.map +0 -1
  940. package/dist/test/unit/server/login.test.js +0 -127
  941. package/dist/test/unit/server/login.test.js.map +0 -1
  942. package/dist/test/unit/server/session.test.d.ts +0 -2
  943. package/dist/test/unit/server/session.test.d.ts.map +0 -1
  944. package/dist/test/unit/server/session.test.js +0 -41
  945. package/dist/test/unit/server/session.test.js.map +0 -1
  946. package/dist/test/unit/services/AuthenticationService.test.d.ts +0 -2
  947. package/dist/test/unit/services/AuthenticationService.test.d.ts.map +0 -1
  948. package/dist/test/unit/services/AuthenticationService.test.js +0 -104
  949. package/dist/test/unit/services/AuthenticationService.test.js.map +0 -1
  950. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts +0 -2
  951. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts.map +0 -1
  952. package/dist/test/unit/services/ServerAuthenticationResolver.test.js +0 -74
  953. package/dist/test/unit/services/ServerAuthenticationResolver.test.js.map +0 -1
  954. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts +0 -2
  955. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts.map +0 -1
  956. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js +0 -61
  957. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js.map +0 -1
  958. package/dist/test/unit/shared/UserSession.test.d.ts +0 -2
  959. package/dist/test/unit/shared/UserSession.test.d.ts.map +0 -1
  960. package/dist/test/unit/shared/UserSession.test.js +0 -37
  961. package/dist/test/unit/shared/UserSession.test.js.map +0 -1
  962. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts +0 -2
  963. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts.map +0 -1
  964. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js +0 -120
  965. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js.map +0 -1
  966. package/dist/test/unit/shared/storage.test.d.ts +0 -2
  967. package/dist/test/unit/shared/storage.test.d.ts.map +0 -1
  968. package/dist/test/unit/shared/storage.test.js +0 -53
  969. package/dist/test/unit/shared/storage.test.js.map +0 -1
  970. package/dist/test/unit/utils.test.d.ts +0 -2
  971. package/dist/test/unit/utils.test.d.ts.map +0 -1
  972. package/dist/test/unit/utils.test.js +0 -40
  973. package/dist/test/unit/utils.test.js.map +0 -1
  974. package/dist/tsconfig.tsbuildinfo +0 -1
  975. package/dist/types-Bqm9OCZN.d.mts +0 -22
  976. package/dist/types-Bqm9OCZN.d.ts +0 -22
  977. package/dist/types-BxAubCqO.d.mts +0 -58
  978. package/dist/types-BxAubCqO.d.ts +0 -58
  979. package/dist/types-DOfl9w7j.d.mts +0 -23
  980. package/dist/types-DOfl9w7j.d.ts +0 -23
  981. package/dist/types-HdCjGldB.d.mts +0 -58
  982. package/dist/types-HdCjGldB.d.ts +0 -58
  983. package/dist/vitest.config.d.ts +0 -3
  984. package/dist/vitest.config.d.ts.map +0 -1
  985. package/dist/vitest.config.js +0 -40
  986. package/dist/vitest.config.js.map +0 -1
  987. package/src/browser/storage.ts +0 -11
  988. package/src/config.ts +0 -6
  989. package/src/constants.ts +0 -29
  990. package/src/index.ts +0 -16
  991. package/src/lib/cookies.ts +0 -28
  992. package/src/lib/jwt.ts +0 -15
  993. package/src/lib/logger.ts +0 -72
  994. package/src/lib/oauth.ts +0 -83
  995. package/src/lib/postMessage.ts +0 -22
  996. package/src/lib/windowUtil.ts +0 -29
  997. package/src/nextjs/GetUser.ts +0 -22
  998. package/src/nextjs/config.ts +0 -205
  999. package/src/nextjs/cookies.ts +0 -162
  1000. package/src/nextjs/hooks/index.ts +0 -1
  1001. package/src/nextjs/hooks/useTokenCookie.ts +0 -41
  1002. package/src/nextjs/hooks/useUserCookie.ts +0 -41
  1003. package/src/nextjs/index.ts +0 -20
  1004. package/src/nextjs/middleware/index.ts +0 -1
  1005. package/src/nextjs/middleware.ts +0 -155
  1006. package/src/nextjs/providers/NextAuthProvider.tsx +0 -87
  1007. package/src/nextjs/routeHandler.ts +0 -297
  1008. package/src/nextjs/utils.ts +0 -9
  1009. package/src/reactjs/components/SignInButton.tsx +0 -32
  1010. package/src/reactjs/components/SignOutButton.tsx +0 -24
  1011. package/src/reactjs/components/UserButton.tsx +0 -215
  1012. package/src/reactjs/components/index.ts +0 -5
  1013. package/src/reactjs/hooks/index.ts +0 -6
  1014. package/src/reactjs/hooks/useAuth.ts +0 -15
  1015. package/src/reactjs/hooks/useUser.ts +0 -20
  1016. package/src/reactjs/index.ts +0 -19
  1017. package/src/reactjs/providers/index.ts +0 -27
  1018. package/src/server/ServerAuthenticationResolver.ts +0 -102
  1019. package/src/server/config.ts +0 -17
  1020. package/src/server/index.ts +0 -12
  1021. package/src/server/login.ts +0 -59
  1022. package/src/server/refresh.ts +0 -23
  1023. package/src/services/AuthenticationService.ts +0 -324
  1024. package/src/services/PKCE.ts +0 -45
  1025. package/src/services/types.ts +0 -54
  1026. package/src/shared/components/CivicAuthIframe.tsx +0 -26
  1027. package/src/shared/components/CivicAuthIframeContainer.tsx +0 -190
  1028. package/src/shared/components/CloseIcon.tsx +0 -21
  1029. package/src/shared/components/LoadingIcon.tsx +0 -53
  1030. package/src/shared/hooks/index.ts +0 -4
  1031. package/src/shared/hooks/useAuth.ts +0 -15
  1032. package/src/shared/hooks/useConfig.ts +0 -14
  1033. package/src/shared/hooks/useIframe.ts +0 -14
  1034. package/src/shared/hooks/useSession.ts +0 -14
  1035. package/src/shared/hooks/useToken.ts +0 -15
  1036. package/src/shared/lib/GenericAuthenticationRefresher.ts +0 -70
  1037. package/src/shared/lib/UserSession.ts +0 -25
  1038. package/src/shared/lib/session.ts +0 -11
  1039. package/src/shared/lib/storage.ts +0 -40
  1040. package/src/shared/lib/types.ts +0 -26
  1041. package/src/shared/lib/util.ts +0 -217
  1042. package/src/shared/providers/AuthContext.tsx +0 -11
  1043. package/src/shared/providers/AuthProvider.tsx +0 -390
  1044. package/src/shared/providers/CivicAuthProvider.tsx +0 -31
  1045. package/src/shared/providers/ConfigProvider.tsx +0 -50
  1046. package/src/shared/providers/IframeProvider.tsx +0 -34
  1047. package/src/shared/providers/SessionProvider.tsx +0 -29
  1048. package/src/shared/providers/TokenProvider.tsx +0 -78
  1049. package/src/shared/providers/UserProvider.tsx +0 -80
  1050. package/src/types.ts +0 -227
  1051. package/src/utils.ts +0 -58
  1052. package/test/integration/sdk.test.tsx +0 -266
  1053. package/test/support/fixtures.ts +0 -56
  1054. package/test/support/tokens.json +0 -26
  1055. package/test/unit/lib/oauth.test.ts +0 -72
  1056. package/test/unit/logger.test.ts +0 -175
  1057. package/test/unit/nextjs/NextAuthProvider.test.tsx +0 -38
  1058. package/test/unit/nextjs/config.test.ts +0 -218
  1059. package/test/unit/nextjs/getUser.test.ts +0 -41
  1060. package/test/unit/nextjs/middleware.test.ts +0 -138
  1061. package/test/unit/nextjs/routeHandler.test.ts.skipped +0 -369
  1062. package/test/unit/nextjs/utils.test.ts +0 -17
  1063. package/test/unit/publicApi/__snapshots__/apiSnapshot.test.ts.snap +0 -17
  1064. package/test/unit/publicApi/apiSnapshot.test.ts +0 -11
  1065. package/test/unit/react/components/SignInButton.test.tsx +0 -50
  1066. package/test/unit/react/components/SignOutButton.test.tsx +0 -49
  1067. package/test/unit/server/login.test.ts +0 -181
  1068. package/test/unit/server/session.test.ts +0 -51
  1069. package/test/unit/services/AuthenticationService.test.ts +0 -152
  1070. package/test/unit/services/ServerAuthenticationResolver.test.ts +0 -115
  1071. package/test/unit/shared/GenericAuthenticationRefresher.test.ts +0 -89
  1072. package/test/unit/shared/UserSession.test.ts +0 -42
  1073. package/test/unit/shared/components/CivicAuthIframeContainer.test.tsx +0 -154
  1074. package/test/unit/shared/storage.test.ts +0 -67
  1075. package/test/unit/utils.test.ts +0 -48
  1076. package/tsconfig.build.json +0 -5
  1077. package/tsconfig.cjs.json +0 -8
  1078. package/tsconfig.esm.json +0 -7
  1079. package/tsconfig.json +0 -42
  1080. package/vitest.config.ts +0 -41
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/patrick/Code/civic-auth/packages/civic-auth-client/dist/nextjs.js","../src/nextjs/GetUser.ts","../src/nextjs/middleware.ts","../src/nextjs/routeHandler.ts"],"names":["getUser","NextResponse","response"],"mappings":"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","file":"/Users/patrick/Code/civic-auth/packages/civic-auth-client/dist/nextjs.js","sourcesContent":[null,"/**\n * Used on the server-side to get the user object from the cookie\n */\nimport { User } from \"@/types\";\nimport { GenericUserSession } from \"@/shared/UserSession\";\nimport { NextjsClientStorage } from \"@/nextjs/cookies\";\nimport { retrieveTokens } from \"@/shared/util\";\n\nexport const getUser = (): User | null => {\n const clientStorage = new NextjsClientStorage();\n const userSession = new GenericUserSession(clientStorage);\n const tokens = retrieveTokens(clientStorage);\n const user = userSession.get();\n if (!user || !tokens) return null;\n\n return {\n ...user!,\n idToken: tokens.id_token,\n accessToken: tokens.access_token,\n refreshToken: tokens.refresh_token ?? \"\",\n } as User;\n};\n","/**\n * Authenticates the user on all requests by checking the token cookie\n *\n * Usage:\n * Option 1: use if no other middleware (e.g. no next-intl etc)\n * export default authMiddleware();\n *\n * Option 2: use if other middleware is needed - default auth config\n * export default withAuth((request) => {\n * console.log('in custom middleware', request.nextUrl.pathname);\n * return NextResponse.next();\n * })\n *\n * Option 3: use if other middleware is needed - specifying auth config\n * const withCivicAuth = auth({ loginUrl: '/login', include: ['/[.*]/user'] })\n * export default withCivicAuth((request) => {\n * console.log('in custom middleware', request.url);\n * return NextResponse.next();\n * })\n *\n */\nimport { NextRequest, NextResponse } from \"next/server.js\";\nimport picomatch from \"picomatch\";\nimport {\n AuthConfig,\n defaultAuthConfig,\n resolveAuthConfig,\n} from \"@/nextjs/config.js\";\n\ntype Middleware = (\n request: NextRequest,\n) => Promise<NextResponse> | NextResponse;\n\n// Matches globs:\n// Examples:\n// /user\n// /user/*\n// /user/**/info\nconst matchGlob = (pathname: string, globPattern: string) => {\n const matches = picomatch(globPattern);\n return matches(pathname);\n};\n\n// Matches globs:\n// Examples:\n// /user\n// /user/*\n// /user/**/info\nconst matchesGlobs = (pathname: string, patterns: string[]) =>\n patterns.some((pattern) => {\n if (!pattern) return false;\n console.log(\"matching\", {\n pattern,\n pathname,\n match: matchGlob(pathname, pattern),\n });\n return matchGlob(pathname, pattern);\n });\n\n// internal - used by all exported functions\nconst applyAuth = async (\n authConfig: AuthConfig,\n request: NextRequest,\n): Promise<NextResponse | undefined> => {\n const authConfigWithDefaults = resolveAuthConfig(authConfig);\n // Check for any valid auth token\n const isAuthenticated = !!request.cookies.get(\"id_token\");\n\n // skip auth check for redirect to login url\n if (\n request.nextUrl.pathname === authConfigWithDefaults.loginUrl &&\n request.method === \"GET\"\n ) {\n console.log(\"→ Skipping auth check - this is the login URL\");\n return undefined;\n }\n\n if (!matchesGlobs(request.nextUrl.pathname, authConfigWithDefaults.include)) {\n console.log(\"→ Skipping auth check - path not in include patterns\");\n return undefined;\n }\n\n if (matchesGlobs(request.nextUrl.pathname, authConfigWithDefaults.exclude)) {\n console.log(\"→ Skipping auth check - path in exclude patterns\");\n return undefined;\n }\n\n // Check for either token type\n if (!isAuthenticated) {\n const loginUrl = new URL(authConfigWithDefaults.loginUrl, request.url);\n console.log(\"→ No valid token found - redirecting to login\", loginUrl);\n return NextResponse.redirect(loginUrl);\n }\n\n console.log(\"→ Auth check passed\");\n return undefined;\n};\n\n/**\n *\n * Use this when auth is the only middleware you need.\n * Usage:\n *\n * export default authMiddleware({ loginUrl = '/login' }); // or just authMiddleware();\n *\n */\nexport const authMiddleware =\n (authConfig = defaultAuthConfig) =>\n async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth(authConfig, request);\n if (response) return response;\n\n // NextJS doesn't do middleware chaining yet, so this does not mean\n // \"call the next middleware\" - it means \"continue to the route handler\"\n return NextResponse.next();\n };\n\n/**\n * Usage:\n *\n * export default withAuth(async (request) => {\n * console.log('my middleware');\n * return NextResponse.next();\n * })\n */\n// use this when you have your own middleware to chain\nexport function withAuth(\n middleware: Middleware,\n): (request: NextRequest) => Promise<NextResponse> {\n return async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth({}, request);\n if (response) return response;\n\n return middleware(request);\n };\n}\n\n/**\n * Use this when you want to configure the middleware here (an alternative is to do it in the next.config file)\n *\n * Usage:\n *\n * const withAuth = auth({ loginUrl = '/login' }); // or just auth();\n *\n * export default withAuth(async (request) => {\n * console.log('my middleware');\n * return NextResponse.next();\n * })\n *\n */\nexport function auth(authConfig: AuthConfig = {}) {\n return (\n middleware: Middleware,\n ): ((request: NextRequest) => Promise<NextResponse>) => {\n return async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth(authConfig, request);\n if (response) return response;\n\n return middleware(request);\n };\n };\n}\n","import { NextRequest, NextResponse } from \"next/server.js\";\nimport { revalidatePath } from \"next/cache.js\";\nimport { AuthConfig, 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/session.js\";\nimport { resolveCallbackUrl } from \"@/nextjs/utils.js\";\nimport { GenericUserSession } from \"@/shared/UserSession.js\";\nimport {\n TOKEN_EXCHANGE_SUCCESS_TEXT,\n TOKEN_EXCHANGE_TRIGGER_TEXT,\n} from \"@/constants.js\";\nimport { serverTokenExchangeFromState } from \"@/lib/oauth.js\";\nimport { cookies } from \"next/headers.js\";\nimport { CodeVerifier } from \"@/shared/types\";\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 cookies: cookies(),\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 console.log('fetch jsonResponse', jsonResponse);\n if (jsonResponse.redirectUrl) {\n console.log('handleCallback serverTokenExchangeFromState, redirecting');\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 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
+ {"version":3,"sources":["/Users/lucas/dev/civic/civic-auth/packages/civic-auth-client/dist/nextjs.js","../src/shared/UserSession.ts","../src/nextjs/cookies.ts","../src/nextjs/GetUser.ts","../src/nextjs/middleware.ts","../src/nextjs/routeHandler.ts"],"names":["getUser","NextResponse"],"mappings":"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","file":"/Users/lucas/dev/civic/civic-auth/packages/civic-auth-client/dist/nextjs.js","sourcesContent":[null,"import { AuthStorage } from \"@/server\";\nimport { User } from \"@/types\";\nimport { NextjsClientCookies } from \"./types\";\n\nexport interface UserSession {\n get(): User | null;\n set(user: User): void;\n}\n\nexport class GenericUserSession implements UserSession {\n constructor(readonly storage: AuthStorage) {}\n\n get(): User | null {\n const user = this.storage.get(NextjsClientCookies.USER);\n return user ? JSON.parse(user) : null;\n }\n\n set(user: User | null): void {\n const value = user ? JSON.stringify(user) : \"\";\n this.storage.set(NextjsClientCookies.USER, value);\n }\n}\n","import { SessionData, UnknownObject, User } from \"@/types\";\nimport { NextResponse } from \"next/server\";\nimport { AuthConfig } from \"./config\";\nimport { CookieStorage, CookieStorageSettings } from \"@/server\";\nimport { cookies } from \"next/headers.js\";\nimport { GenericUserSession } from \"@/shared/UserSession\";\nimport { clearTokens } from \"@/shared/util\";\n\n/**\n * Creates HTTP-only cookies for authentication tokens\n */\nconst createTokenCookies = (\n response: NextResponse,\n sessionData: SessionData,\n config: AuthConfig,\n) => {\n const maxAge = sessionData.expiresIn ?? 3600;\n const cookieOptions = {\n ...config.cookies?.tokens,\n maxAge,\n };\n\n if (sessionData.accessToken) {\n response.cookies.set(\"access_token\", sessionData.accessToken, {\n ...cookieOptions,\n httpOnly: true,\n });\n }\n\n if (sessionData.idToken) {\n response.cookies.set(\"id_token\", sessionData.idToken, {\n ...cookieOptions,\n httpOnly: true,\n });\n }\n\n if (sessionData.refreshToken) {\n response.cookies.set(\"refresh_token\", sessionData.refreshToken, {\n ...cookieOptions,\n httpOnly: true,\n });\n }\n};\n\n/**\n * Creates a client-readable cookie with user info\n */\nconst createUserInfoCookie = (\n response: NextResponse,\n user: User<UnknownObject> | null,\n sessionData: SessionData,\n config: AuthConfig,\n) => {\n if (!user) {\n response.cookies.set(\"user\", \"\", {\n ...config.cookies?.user,\n maxAge: 0,\n });\n return;\n }\n const maxAge = sessionData.expiresIn ?? 3600;\n\n // TODO select fields to include in the user cookie\n const frontendUser = {\n ...user,\n };\n\n // TODO make call to get user info from the\n // auth server /userinfo endpoint when it's available\n // then add to the default claims above\n\n response.cookies.set(\"user\", JSON.stringify(frontendUser), {\n ...config.cookies?.user,\n maxAge,\n });\n};\n\n/**\n * Clears all authentication cookies\n */\nconst clearAuthCookies = async () => {\n // clear session, and tokens\n const cookieStorage = new NextjsCookieStorage();\n clearTokens(cookieStorage);\n\n // clear user\n const clientStorage = new NextjsClientStorage();\n const userSession = new GenericUserSession(clientStorage);\n userSession.set(null);\n};\n\nclass NextjsCookieStorage extends CookieStorage {\n constructor(config: Partial<CookieStorageSettings> = {}) {\n super({\n ...config,\n secure: true,\n httpOnly: true,\n });\n }\n\n get(key: string): string | null {\n return cookies().get(key)?.value || null;\n }\n\n set(key: string, value: string): void {\n cookies().set(key, value, this.settings);\n }\n}\n\nclass NextjsClientStorage extends CookieStorage {\n constructor(config: Partial<CookieStorageSettings> = {}) {\n super({\n ...config,\n secure: false,\n httpOnly: false,\n });\n }\n\n get(key: string): string | null {\n return cookies().get(key)?.value || null;\n }\n\n set(key: string, value: string): void {\n cookies().set(key, value, this.settings);\n }\n}\n\nexport {\n createTokenCookies,\n createUserInfoCookie,\n clearAuthCookies,\n NextjsCookieStorage,\n NextjsClientStorage,\n};\n","/**\n * Used on the server-side to get the user object from the cookie\n */\nimport { User } from \"@/types\";\nimport { GenericUserSession } from \"@/shared/UserSession\";\nimport { NextjsClientStorage } from \"./cookies\";\n\nexport const getUser = (): User | null => {\n const clientStorage = new NextjsClientStorage();\n const userSession = new GenericUserSession(clientStorage);\n return userSession.get();\n};\n","/**\n * Authenticates the user on all requests by checking the token cookie\n *\n * Usage:\n * Option 1: use if no other middleware (e.g. no next-intl etc)\n * export default authMiddleware();\n *\n * Option 2: use if other middleware is needed - default auth config\n * export default withAuth((request) => {\n * console.log('in custom middleware', request.nextUrl.pathname);\n * return NextResponse.next();\n * })\n *\n * Option 3: use if other middleware is needed - specifying auth config\n * const withCivicAuth = auth({ loginUrl: '/login', include: ['/[.*]/user'] })\n * export default withCivicAuth((request) => {\n * console.log('in custom middleware', request.url);\n * return NextResponse.next();\n * })\n *\n */\nimport { NextRequest, NextResponse } from \"next/server.js\";\nimport picomatch from \"picomatch\";\nimport {\n AuthConfig,\n defaultAuthConfig,\n resolveAuthConfig,\n} from \"@/nextjs/config.js\";\n\ntype Middleware = (\n request: NextRequest,\n) => Promise<NextResponse> | NextResponse;\n\n// Matches globs:\n// Examples:\n// /user\n// /user/*\n// /user/**/info\nconst matchGlob = (pathname: string, globPattern: string) => {\n const matches = picomatch(globPattern);\n return matches(pathname);\n};\n\n// Matches globs:\n// Examples:\n// /user\n// /user/*\n// /user/**/info\nconst matchesGlobs = (pathname: string, patterns: string[]) =>\n patterns.some((pattern) => {\n if (!pattern) return false;\n console.log(\"matching\", {\n pattern,\n pathname,\n match: matchGlob(pathname, pattern),\n });\n return matchGlob(pathname, pattern);\n });\n\n// internal - used by all exported functions\nconst applyAuth = async (\n authConfig: AuthConfig,\n request: NextRequest,\n): Promise<NextResponse | undefined> => {\n const authConfigWithDefaults = resolveAuthConfig(authConfig);\n\n // Check for any valid auth token\n // TODO check if token is not expired\n const isAuthenticated = !!request.cookies.get(\"id_token\");\n\n // skip auth check for login url\n if (request.nextUrl.pathname === authConfigWithDefaults.loginUrl) {\n console.log(\"→ Skipping auth check - this is the login URL\");\n return undefined;\n }\n\n if (!matchesGlobs(request.nextUrl.pathname, authConfigWithDefaults.include)) {\n console.log(\"→ Skipping auth check - path not in include patterns\");\n return undefined;\n }\n\n if (matchesGlobs(request.nextUrl.pathname, authConfigWithDefaults.exclude)) {\n console.log(\"→ Skipping auth check - path in exclude patterns\");\n return undefined;\n }\n\n // Check for either token type\n if (!isAuthenticated) {\n console.log(\"→ No valid token found - redirecting to login\");\n const loginUrl = new URL(authConfigWithDefaults.loginUrl, request.url);\n return NextResponse.redirect(loginUrl);\n }\n\n console.log(\"→ Auth check passed\");\n return undefined;\n};\n\n/**\n *\n * Use this when auth is the only middleware you need.\n * Usage:\n *\n * export default authMiddleware({ loginUrl = '/login' }); // or just authMiddleware();\n *\n */\nexport const authMiddleware =\n (authConfig = defaultAuthConfig) =>\n async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth(authConfig, request);\n if (response) return response;\n\n // NextJS doesn't do middleware chaining yet, so this does not mean\n // \"call the next middleware\" - it means \"continue to the route handler\"\n return NextResponse.next();\n };\n\n/**\n * Usage:\n *\n * export default withAuth(async (request) => {\n * console.log('my middleware');\n * return NextResponse.next();\n * })\n */\n// use this when you have your own middleware to chain\nexport function withAuth(\n middleware: Middleware,\n): (request: NextRequest) => Promise<NextResponse> {\n return async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth({}, request);\n if (response) return response;\n return middleware(request);\n };\n}\n\n/**\n * Use this when you want to configure the middleware here (an alternative is to do it in the next.config file)\n *\n * Usage:\n *\n * const withAuth = auth({ loginUrl = '/login' }); // or just auth();\n *\n * export default withAuth(async (request) => {\n * console.log('my middleware');\n * return NextResponse.next();\n * })\n *\n */\nexport function auth(authConfig: AuthConfig = {}) {\n return (\n middleware: Middleware,\n ): ((request: NextRequest) => Promise<NextResponse>) => {\n return async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth(authConfig, request);\n if (response) return response;\n return middleware(request);\n };\n };\n}\n","import { NextRequest, NextResponse } from \"next/server.js\";\nimport { revalidatePath } from \"next/cache.js\";\nimport { AuthConfig, resolveAuthConfig } from \"@/nextjs/config.js\";\nimport { loggers } from \"@/lib/logger.js\";\nimport {\n clearAuthCookies,\n NextjsClientStorage,\n NextjsCookieStorage,\n} from \"./cookies.js\";\nimport { GenericPublicClientPKCEProducer } from \"@/services/PKCE.js\";\nimport { resolveOAuthAccessCode } from \"@/server/login.js\";\nimport { getUser } from \"@/server/session.js\";\nimport { resolveCallbackUrl } from \"./utils.js\";\nimport { GenericUserSession } from \"@/shared/UserSession.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(): Promise<NextResponse> {\n const cookieStorage = new NextjsCookieStorage();\n const pkceProducer = new GenericPublicClientPKCEProducer(cookieStorage);\n\n const challenge = await pkceProducer.getCodeChallenge();\n\n return NextResponse.json({ status: \"success\", challenge });\n}\n\nasync function handleCallback(\n request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\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 const cookieStorage = new NextjsCookieStorage();\n\n const resolvedConfigs = resolveAuthConfig(config);\n const callbackUrl = resolveCallbackUrl(resolvedConfigs, request.url);\n\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\n userSession.set(user);\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(`<html></html>`);\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) => {\n // Check if the redirectPath is an absolute URL\n if (/^(https?:\\/\\/|www\\.).+/i.test(redirectPath)) {\n return redirectPath; // Return as-is if it's an absolute URL\n }\n return new URL(redirectPath, currentBasePath).href;\n};\n\nasync 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 const isAbsoluteRedirect = /^(https?:\\/\\/|www\\.).+/i.test(redirectTarget);\n const finalRedirectUrl = getAbsoluteRedirectPath(\n redirectTarget,\n new URL(request.url).origin,\n );\n\n const response = NextResponse.redirect(finalRedirectUrl);\n\n clearAuthCookies();\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();\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();\n return response;\n }\n };\n"]}
package/dist/nextjs.mjs CHANGED
@@ -1,46 +1,85 @@
1
1
  import {
2
- NextjsClientStorage,
3
- NextjsCookieStorage,
4
- clearAuthCookies,
5
2
  createCivicAuthPlugin,
6
- createTokenCookies,
7
- createUserInfoCookie,
8
3
  defaultAuthConfig,
9
4
  loggers,
10
5
  resolveAuthConfig,
11
6
  resolveCallbackUrl
12
- } from "./chunk-OXXUQ36U.mjs";
13
- import {
14
- resolveOAuthAccessCode
15
- } from "./chunk-63YGK3A7.mjs";
7
+ } from "./chunk-NQPMNXBL.mjs";
16
8
  import {
9
+ CookieStorage,
17
10
  GenericPublicClientPKCEProducer,
18
- GenericUserSession,
19
- TOKEN_EXCHANGE_SUCCESS_TEXT,
20
- TOKEN_EXCHANGE_TRIGGER_TEXT,
21
11
  getUser,
22
- retrieveTokens,
23
- serverTokenExchangeFromState
24
- } from "./chunk-Q7DSPTUG.mjs";
12
+ resolveOAuthAccessCode
13
+ } from "./chunk-3UIVD6NR.mjs";
14
+ import {
15
+ clearTokens
16
+ } from "./chunk-KBDRDCE5.mjs";
25
17
  import {
26
18
  __async,
27
19
  __spreadProps,
28
20
  __spreadValues
29
21
  } from "./chunk-RGHW4PYM.mjs";
30
22
 
23
+ // src/shared/UserSession.ts
24
+ var GenericUserSession = class {
25
+ constructor(storage) {
26
+ this.storage = storage;
27
+ }
28
+ get() {
29
+ const user = this.storage.get("user" /* USER */);
30
+ return user ? JSON.parse(user) : null;
31
+ }
32
+ set(user) {
33
+ const value = user ? JSON.stringify(user) : "";
34
+ this.storage.set("user" /* USER */, value);
35
+ }
36
+ };
37
+
38
+ // src/nextjs/cookies.ts
39
+ import { cookies } from "next/headers.js";
40
+ var clearAuthCookies = () => __async(void 0, null, function* () {
41
+ const cookieStorage = new NextjsCookieStorage();
42
+ clearTokens(cookieStorage);
43
+ const clientStorage = new NextjsClientStorage();
44
+ const userSession = new GenericUserSession(clientStorage);
45
+ userSession.set(null);
46
+ });
47
+ var NextjsCookieStorage = class extends CookieStorage {
48
+ constructor(config = {}) {
49
+ super(__spreadProps(__spreadValues({}, config), {
50
+ secure: true,
51
+ httpOnly: true
52
+ }));
53
+ }
54
+ get(key) {
55
+ var _a;
56
+ return ((_a = cookies().get(key)) == null ? void 0 : _a.value) || null;
57
+ }
58
+ set(key, value) {
59
+ cookies().set(key, value, this.settings);
60
+ }
61
+ };
62
+ var NextjsClientStorage = class extends CookieStorage {
63
+ constructor(config = {}) {
64
+ super(__spreadProps(__spreadValues({}, config), {
65
+ secure: false,
66
+ httpOnly: false
67
+ }));
68
+ }
69
+ get(key) {
70
+ var _a;
71
+ return ((_a = cookies().get(key)) == null ? void 0 : _a.value) || null;
72
+ }
73
+ set(key, value) {
74
+ cookies().set(key, value, this.settings);
75
+ }
76
+ };
77
+
31
78
  // src/nextjs/GetUser.ts
32
79
  var getUser2 = () => {
33
- var _a;
34
80
  const clientStorage = new NextjsClientStorage();
35
81
  const userSession = new GenericUserSession(clientStorage);
36
- const tokens = retrieveTokens(clientStorage);
37
- const user = userSession.get();
38
- if (!user || !tokens) return null;
39
- return __spreadProps(__spreadValues({}, user), {
40
- idToken: tokens.id_token,
41
- accessToken: tokens.access_token,
42
- refreshToken: (_a = tokens.refresh_token) != null ? _a : ""
43
- });
82
+ return userSession.get();
44
83
  };
45
84
 
46
85
  // src/nextjs/middleware.ts
@@ -62,7 +101,7 @@ var matchesGlobs = (pathname, patterns) => patterns.some((pattern) => {
62
101
  var applyAuth = (authConfig, request) => __async(void 0, null, function* () {
63
102
  const authConfigWithDefaults = resolveAuthConfig(authConfig);
64
103
  const isAuthenticated = !!request.cookies.get("id_token");
65
- if (request.nextUrl.pathname === authConfigWithDefaults.loginUrl && request.method === "GET") {
104
+ if (request.nextUrl.pathname === authConfigWithDefaults.loginUrl) {
66
105
  console.log("\u2192 Skipping auth check - this is the login URL");
67
106
  return void 0;
68
107
  }
@@ -75,8 +114,8 @@ var applyAuth = (authConfig, request) => __async(void 0, null, function* () {
75
114
  return void 0;
76
115
  }
77
116
  if (!isAuthenticated) {
117
+ console.log("\u2192 No valid token found - redirecting to login");
78
118
  const loginUrl = new URL(authConfigWithDefaults.loginUrl, request.url);
79
- console.log("\u2192 No valid token found - redirecting to login", loginUrl);
80
119
  return NextResponse.redirect(loginUrl);
81
120
  }
82
121
  console.log("\u2192 Auth check passed");
@@ -107,7 +146,6 @@ function auth(authConfig = {}) {
107
146
  // src/nextjs/routeHandler.ts
108
147
  import { NextResponse as NextResponse2 } from "next/server.js";
109
148
  import { revalidatePath } from "next/cache.js";
110
- import { cookies } from "next/headers.js";
111
149
  var logger = loggers.nextjs.handlers.auth;
112
150
  var AuthError = class extends Error {
113
151
  constructor(message, status = 401) {
@@ -116,24 +154,22 @@ var AuthError = class extends Error {
116
154
  this.name = "AuthError";
117
155
  }
118
156
  };
119
- function handleChallenge(request, config) {
157
+ function handleChallenge() {
120
158
  return __async(this, null, function* () {
121
- var _a, _b;
122
- const cookieStorage = new NextjsCookieStorage((_b = (_a = config.cookies) == null ? void 0 : _a.tokens) != null ? _b : {});
159
+ const cookieStorage = new NextjsCookieStorage();
123
160
  const pkceProducer = new GenericPublicClientPKCEProducer(cookieStorage);
124
161
  const challenge = yield pkceProducer.getCodeChallenge();
125
- const appUrl = request.nextUrl.searchParams.get("appUrl");
126
- if (appUrl) {
127
- cookieStorage.set("app_url" /* APP_URL */, appUrl);
128
- }
129
162
  return NextResponse2.json({ status: "success", challenge });
130
163
  });
131
164
  }
132
- function performTokenExchangeAndSetCookies(request, config, code, state, appUrl) {
165
+ function handleCallback(request, config) {
133
166
  return __async(this, null, function* () {
167
+ const code = request.nextUrl.searchParams.get("code");
168
+ const state = request.nextUrl.searchParams.get("state");
169
+ if (!code || !state) throw new AuthError("Bad parameters", 400);
170
+ const cookieStorage = new NextjsCookieStorage();
134
171
  const resolvedConfigs = resolveAuthConfig(config);
135
- const cookieStorage = new NextjsCookieStorage(resolvedConfigs.cookies.tokens);
136
- const callbackUrl = resolveCallbackUrl(resolvedConfigs, appUrl);
172
+ const callbackUrl = resolveCallbackUrl(resolvedConfigs, request.url);
137
173
  try {
138
174
  yield resolveOAuthAccessCode(code, state, cookieStorage, __spreadProps(__spreadValues({}, resolvedConfigs), {
139
175
  redirectUrl: callbackUrl
@@ -149,107 +185,17 @@ function performTokenExchangeAndSetCookies(request, config, code, state, appUrl)
149
185
  const clientStorage = new NextjsClientStorage();
150
186
  const userSession = new GenericUserSession(clientStorage);
151
187
  userSession.set(user);
152
- });
153
- }
154
- function handleCallback(request, config) {
155
- return __async(this, null, function* () {
156
- var _a;
157
- const resolvedConfigs = resolveAuthConfig(config);
158
- console.log("handleCallback", { request, resolvedConfigs });
159
- const code = request.nextUrl.searchParams.get("code");
160
- const state = request.nextUrl.searchParams.get("state") || "";
161
- if (!code || !state) throw new AuthError("Bad parameters", 400);
162
- const appUrl = ((_a = request.cookies.get("app_url" /* APP_URL */)) == null ? void 0 : _a.value) || request.nextUrl.searchParams.get("appUrl");
163
- console.log("handleCallback", {
164
- code,
165
- state,
166
- cookies: cookies(),
167
- appUrl
168
- });
169
- const codeVerifier = request.cookies.get("code_verifier" /* COOKIE_NAME */);
170
- if (!codeVerifier || !appUrl) {
171
- console.log("handleCallback no code_verifier found", {
172
- state,
173
- serverTokenExchange: serverTokenExchangeFromState(`${state}`)
174
- });
175
- let response2 = new NextResponse2(
176
- `<html><body><span style="display:none">${TOKEN_EXCHANGE_TRIGGER_TEXT}</span></body></html>`
177
- );
178
- if (state && serverTokenExchangeFromState(state)) {
179
- console.log(
180
- "handleCallback serverTokenExchangeFromState, launching redirect page...",
181
- {
182
- requestUrl: request.url,
183
- configCallbackUrl: resolvedConfigs.callbackUrl
184
- }
185
- );
186
- const requestUrl = new URL(request.url);
187
- const fetchUrl = `${resolvedConfigs.callbackUrl}?${requestUrl.searchParams.toString()}&sameDomainServerTokenExchange=true`;
188
- response2 = new NextResponse2(
189
- `<html>
190
- <body>
191
- <span style="display:none">
192
- <script>
193
- window.onload = function () {
194
- const appUrl = globalThis.window?.location?.origin;
195
- fetch('${fetchUrl}&appUrl=' + appUrl).then((response) => {
196
- response.json().then((jsonResponse) => {
197
- console.log('fetch jsonResponse', jsonResponse);
198
- if (jsonResponse.redirectUrl) {
199
- console.log('handleCallback serverTokenExchangeFromState, redirecting');
200
- window.location.href = jsonResponse.redirectUrl;
201
- }
202
- });
203
- });
204
- };
205
- </script>
206
- </span>
207
- </body>
208
- </html>
209
- `
210
- );
211
- }
212
- response2.headers.set("Content-Type", "text/html; charset=utf-8");
213
- console.log(
214
- `handleCallback no code_verifier found, returning ${TOKEN_EXCHANGE_TRIGGER_TEXT}`
215
- );
216
- return response2;
217
- }
218
- yield performTokenExchangeAndSetCookies(
219
- request,
220
- resolvedConfigs,
221
- code,
222
- state,
223
- appUrl
224
- );
225
- if (request.url.includes("sameDomainServerTokenExchange=true")) {
226
- console.log(
227
- "handleCallback sameDomainServerTokenExchange = true, returnining redirectUrl",
228
- appUrl
229
- );
230
- return NextResponse2.json({
231
- status: "success",
232
- redirectUrl: appUrl
233
- });
234
- }
235
- if (serverTokenExchangeFromState(state)) {
236
- console.log(
237
- "handleCallback serverTokenExchangeFromState, redirect to appUrl",
238
- appUrl
239
- );
240
- if (!appUrl) {
241
- throw new Error("appUrl undefined. Cannot redirect.");
242
- }
243
- return NextResponse2.redirect(`${appUrl}`);
244
- }
245
- const response = new NextResponse2(
246
- `<html><span style="display:none">${TOKEN_EXCHANGE_SUCCESS_TEXT}</span></html>`
247
- );
188
+ const response = new NextResponse2(`<html></html>`);
248
189
  response.headers.set("Content-Type", "text/html; charset=utf-8");
249
190
  return response;
250
191
  });
251
192
  }
252
- var getAbsoluteRedirectPath = (redirectPath, currentBasePath) => new URL(redirectPath, currentBasePath).href;
193
+ var getAbsoluteRedirectPath = (redirectPath, currentBasePath) => {
194
+ if (/^(https?:\/\/|www\.).+/i.test(redirectPath)) {
195
+ return redirectPath;
196
+ }
197
+ return new URL(redirectPath, currentBasePath).href;
198
+ };
253
199
  function handleLogout(request, config) {
254
200
  return __async(this, null, function* () {
255
201
  var _a;
@@ -257,13 +203,12 @@ function handleLogout(request, config) {
257
203
  const defaultRedirectPath = (_a = resolvedConfigs.loginUrl) != null ? _a : "/";
258
204
  const redirectTarget = new URL(request.url).searchParams.get("redirect") || defaultRedirectPath;
259
205
  const isAbsoluteRedirect = /^(https?:\/\/|www\.).+/i.test(redirectTarget);
260
- const appUrl = request.nextUrl.searchParams.get("appUrl");
261
- const finalRedirectUrl = isAbsoluteRedirect ? redirectTarget : getAbsoluteRedirectPath(
206
+ const finalRedirectUrl = getAbsoluteRedirectPath(
262
207
  redirectTarget,
263
- new URL(appUrl != null ? appUrl : request.url).origin
208
+ new URL(request.url).origin
264
209
  );
265
210
  const response = NextResponse2.redirect(finalRedirectUrl);
266
- clearAuthCookies(config);
211
+ clearAuthCookies();
267
212
  try {
268
213
  revalidatePath(isAbsoluteRedirect ? finalRedirectUrl : redirectTarget);
269
214
  } catch (error) {
@@ -280,7 +225,7 @@ var handler = (authConfig = {}) => (request) => __async(void 0, null, function*
280
225
  const lastSegment = pathSegments[pathSegments.length - 1];
281
226
  switch (lastSegment) {
282
227
  case "challenge":
283
- return yield handleChallenge(request, config);
228
+ return yield handleChallenge();
284
229
  case "callback":
285
230
  return yield handleCallback(request, config);
286
231
  case "logout":
@@ -293,23 +238,16 @@ var handler = (authConfig = {}) => (request) => __async(void 0, null, function*
293
238
  const status = error instanceof AuthError ? error.status : 500;
294
239
  const message = error instanceof Error ? error.message : "Authentication failed";
295
240
  const response = NextResponse2.json({ error: message }, { status });
296
- clearAuthCookies(config);
241
+ clearAuthCookies();
297
242
  return response;
298
243
  }
299
244
  });
300
245
  export {
301
- NextjsClientStorage,
302
- NextjsCookieStorage,
303
246
  auth,
304
247
  authMiddleware,
305
- clearAuthCookies,
306
248
  createCivicAuthPlugin,
307
- createTokenCookies,
308
- createUserInfoCookie,
309
- defaultAuthConfig,
310
249
  getUser2 as getUser,
311
250
  handler,
312
- resolveAuthConfig,
313
251
  withAuth
314
252
  };
315
253
  //# sourceMappingURL=nextjs.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/nextjs/GetUser.ts","../src/nextjs/middleware.ts","../src/nextjs/routeHandler.ts"],"sourcesContent":["/**\n * Used on the server-side to get the user object from the cookie\n */\nimport { User } from \"@/types\";\nimport { GenericUserSession } from \"@/shared/UserSession\";\nimport { NextjsClientStorage } from \"@/nextjs/cookies\";\nimport { retrieveTokens } from \"@/shared/util\";\n\nexport const getUser = (): User | null => {\n const clientStorage = new NextjsClientStorage();\n const userSession = new GenericUserSession(clientStorage);\n const tokens = retrieveTokens(clientStorage);\n const user = userSession.get();\n if (!user || !tokens) return null;\n\n return {\n ...user!,\n idToken: tokens.id_token,\n accessToken: tokens.access_token,\n refreshToken: tokens.refresh_token ?? \"\",\n } as User;\n};\n","/**\n * Authenticates the user on all requests by checking the token cookie\n *\n * Usage:\n * Option 1: use if no other middleware (e.g. no next-intl etc)\n * export default authMiddleware();\n *\n * Option 2: use if other middleware is needed - default auth config\n * export default withAuth((request) => {\n * console.log('in custom middleware', request.nextUrl.pathname);\n * return NextResponse.next();\n * })\n *\n * Option 3: use if other middleware is needed - specifying auth config\n * const withCivicAuth = auth({ loginUrl: '/login', include: ['/[.*]/user'] })\n * export default withCivicAuth((request) => {\n * console.log('in custom middleware', request.url);\n * return NextResponse.next();\n * })\n *\n */\nimport { NextRequest, NextResponse } from \"next/server.js\";\nimport picomatch from \"picomatch\";\nimport {\n AuthConfig,\n defaultAuthConfig,\n resolveAuthConfig,\n} from \"@/nextjs/config.js\";\n\ntype Middleware = (\n request: NextRequest,\n) => Promise<NextResponse> | NextResponse;\n\n// Matches globs:\n// Examples:\n// /user\n// /user/*\n// /user/**/info\nconst matchGlob = (pathname: string, globPattern: string) => {\n const matches = picomatch(globPattern);\n return matches(pathname);\n};\n\n// Matches globs:\n// Examples:\n// /user\n// /user/*\n// /user/**/info\nconst matchesGlobs = (pathname: string, patterns: string[]) =>\n patterns.some((pattern) => {\n if (!pattern) return false;\n console.log(\"matching\", {\n pattern,\n pathname,\n match: matchGlob(pathname, pattern),\n });\n return matchGlob(pathname, pattern);\n });\n\n// internal - used by all exported functions\nconst applyAuth = async (\n authConfig: AuthConfig,\n request: NextRequest,\n): Promise<NextResponse | undefined> => {\n const authConfigWithDefaults = resolveAuthConfig(authConfig);\n // Check for any valid auth token\n const isAuthenticated = !!request.cookies.get(\"id_token\");\n\n // skip auth check for redirect to login url\n if (\n request.nextUrl.pathname === authConfigWithDefaults.loginUrl &&\n request.method === \"GET\"\n ) {\n console.log(\"→ Skipping auth check - this is the login URL\");\n return undefined;\n }\n\n if (!matchesGlobs(request.nextUrl.pathname, authConfigWithDefaults.include)) {\n console.log(\"→ Skipping auth check - path not in include patterns\");\n return undefined;\n }\n\n if (matchesGlobs(request.nextUrl.pathname, authConfigWithDefaults.exclude)) {\n console.log(\"→ Skipping auth check - path in exclude patterns\");\n return undefined;\n }\n\n // Check for either token type\n if (!isAuthenticated) {\n const loginUrl = new URL(authConfigWithDefaults.loginUrl, request.url);\n console.log(\"→ No valid token found - redirecting to login\", loginUrl);\n return NextResponse.redirect(loginUrl);\n }\n\n console.log(\"→ Auth check passed\");\n return undefined;\n};\n\n/**\n *\n * Use this when auth is the only middleware you need.\n * Usage:\n *\n * export default authMiddleware({ loginUrl = '/login' }); // or just authMiddleware();\n *\n */\nexport const authMiddleware =\n (authConfig = defaultAuthConfig) =>\n async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth(authConfig, request);\n if (response) return response;\n\n // NextJS doesn't do middleware chaining yet, so this does not mean\n // \"call the next middleware\" - it means \"continue to the route handler\"\n return NextResponse.next();\n };\n\n/**\n * Usage:\n *\n * export default withAuth(async (request) => {\n * console.log('my middleware');\n * return NextResponse.next();\n * })\n */\n// use this when you have your own middleware to chain\nexport function withAuth(\n middleware: Middleware,\n): (request: NextRequest) => Promise<NextResponse> {\n return async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth({}, request);\n if (response) return response;\n\n return middleware(request);\n };\n}\n\n/**\n * Use this when you want to configure the middleware here (an alternative is to do it in the next.config file)\n *\n * Usage:\n *\n * const withAuth = auth({ loginUrl = '/login' }); // or just auth();\n *\n * export default withAuth(async (request) => {\n * console.log('my middleware');\n * return NextResponse.next();\n * })\n *\n */\nexport function auth(authConfig: AuthConfig = {}) {\n return (\n middleware: Middleware,\n ): ((request: NextRequest) => Promise<NextResponse>) => {\n return async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth(authConfig, request);\n if (response) return response;\n\n return middleware(request);\n };\n };\n}\n","import { NextRequest, NextResponse } from \"next/server.js\";\nimport { revalidatePath } from \"next/cache.js\";\nimport { AuthConfig, 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/session.js\";\nimport { resolveCallbackUrl } from \"@/nextjs/utils.js\";\nimport { GenericUserSession } from \"@/shared/UserSession.js\";\nimport {\n TOKEN_EXCHANGE_SUCCESS_TEXT,\n TOKEN_EXCHANGE_TRIGGER_TEXT,\n} from \"@/constants.js\";\nimport { serverTokenExchangeFromState } from \"@/lib/oauth.js\";\nimport { cookies } from \"next/headers.js\";\nimport { CodeVerifier } from \"@/shared/types\";\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 cookies: cookies(),\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 console.log('fetch jsonResponse', jsonResponse);\n if (jsonResponse.redirectUrl) {\n console.log('handleCallback serverTokenExchangeFromState, redirecting');\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 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"],"mappings":"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","names":["getUser","NextResponse","NextResponse","response"]}
1
+ {"version":3,"sources":["../src/shared/UserSession.ts","../src/nextjs/cookies.ts","../src/nextjs/GetUser.ts","../src/nextjs/middleware.ts","../src/nextjs/routeHandler.ts"],"sourcesContent":["import { AuthStorage } from \"@/server\";\nimport { User } from \"@/types\";\nimport { NextjsClientCookies } from \"./types\";\n\nexport interface UserSession {\n get(): User | null;\n set(user: User): void;\n}\n\nexport class GenericUserSession implements UserSession {\n constructor(readonly storage: AuthStorage) {}\n\n get(): User | null {\n const user = this.storage.get(NextjsClientCookies.USER);\n return user ? JSON.parse(user) : null;\n }\n\n set(user: User | null): void {\n const value = user ? JSON.stringify(user) : \"\";\n this.storage.set(NextjsClientCookies.USER, value);\n }\n}\n","import { SessionData, UnknownObject, User } from \"@/types\";\nimport { NextResponse } from \"next/server\";\nimport { AuthConfig } from \"./config\";\nimport { CookieStorage, CookieStorageSettings } from \"@/server\";\nimport { cookies } from \"next/headers.js\";\nimport { GenericUserSession } from \"@/shared/UserSession\";\nimport { clearTokens } from \"@/shared/util\";\n\n/**\n * Creates HTTP-only cookies for authentication tokens\n */\nconst createTokenCookies = (\n response: NextResponse,\n sessionData: SessionData,\n config: AuthConfig,\n) => {\n const maxAge = sessionData.expiresIn ?? 3600;\n const cookieOptions = {\n ...config.cookies?.tokens,\n maxAge,\n };\n\n if (sessionData.accessToken) {\n response.cookies.set(\"access_token\", sessionData.accessToken, {\n ...cookieOptions,\n httpOnly: true,\n });\n }\n\n if (sessionData.idToken) {\n response.cookies.set(\"id_token\", sessionData.idToken, {\n ...cookieOptions,\n httpOnly: true,\n });\n }\n\n if (sessionData.refreshToken) {\n response.cookies.set(\"refresh_token\", sessionData.refreshToken, {\n ...cookieOptions,\n httpOnly: true,\n });\n }\n};\n\n/**\n * Creates a client-readable cookie with user info\n */\nconst createUserInfoCookie = (\n response: NextResponse,\n user: User<UnknownObject> | null,\n sessionData: SessionData,\n config: AuthConfig,\n) => {\n if (!user) {\n response.cookies.set(\"user\", \"\", {\n ...config.cookies?.user,\n maxAge: 0,\n });\n return;\n }\n const maxAge = sessionData.expiresIn ?? 3600;\n\n // TODO select fields to include in the user cookie\n const frontendUser = {\n ...user,\n };\n\n // TODO make call to get user info from the\n // auth server /userinfo endpoint when it's available\n // then add to the default claims above\n\n response.cookies.set(\"user\", JSON.stringify(frontendUser), {\n ...config.cookies?.user,\n maxAge,\n });\n};\n\n/**\n * Clears all authentication cookies\n */\nconst clearAuthCookies = async () => {\n // clear session, and tokens\n const cookieStorage = new NextjsCookieStorage();\n clearTokens(cookieStorage);\n\n // clear user\n const clientStorage = new NextjsClientStorage();\n const userSession = new GenericUserSession(clientStorage);\n userSession.set(null);\n};\n\nclass NextjsCookieStorage extends CookieStorage {\n constructor(config: Partial<CookieStorageSettings> = {}) {\n super({\n ...config,\n secure: true,\n httpOnly: true,\n });\n }\n\n get(key: string): string | null {\n return cookies().get(key)?.value || null;\n }\n\n set(key: string, value: string): void {\n cookies().set(key, value, this.settings);\n }\n}\n\nclass NextjsClientStorage extends CookieStorage {\n constructor(config: Partial<CookieStorageSettings> = {}) {\n super({\n ...config,\n secure: false,\n httpOnly: false,\n });\n }\n\n get(key: string): string | null {\n return cookies().get(key)?.value || null;\n }\n\n set(key: string, value: string): void {\n cookies().set(key, value, this.settings);\n }\n}\n\nexport {\n createTokenCookies,\n createUserInfoCookie,\n clearAuthCookies,\n NextjsCookieStorage,\n NextjsClientStorage,\n};\n","/**\n * Used on the server-side to get the user object from the cookie\n */\nimport { User } from \"@/types\";\nimport { GenericUserSession } from \"@/shared/UserSession\";\nimport { NextjsClientStorage } from \"./cookies\";\n\nexport const getUser = (): User | null => {\n const clientStorage = new NextjsClientStorage();\n const userSession = new GenericUserSession(clientStorage);\n return userSession.get();\n};\n","/**\n * Authenticates the user on all requests by checking the token cookie\n *\n * Usage:\n * Option 1: use if no other middleware (e.g. no next-intl etc)\n * export default authMiddleware();\n *\n * Option 2: use if other middleware is needed - default auth config\n * export default withAuth((request) => {\n * console.log('in custom middleware', request.nextUrl.pathname);\n * return NextResponse.next();\n * })\n *\n * Option 3: use if other middleware is needed - specifying auth config\n * const withCivicAuth = auth({ loginUrl: '/login', include: ['/[.*]/user'] })\n * export default withCivicAuth((request) => {\n * console.log('in custom middleware', request.url);\n * return NextResponse.next();\n * })\n *\n */\nimport { NextRequest, NextResponse } from \"next/server.js\";\nimport picomatch from \"picomatch\";\nimport {\n AuthConfig,\n defaultAuthConfig,\n resolveAuthConfig,\n} from \"@/nextjs/config.js\";\n\ntype Middleware = (\n request: NextRequest,\n) => Promise<NextResponse> | NextResponse;\n\n// Matches globs:\n// Examples:\n// /user\n// /user/*\n// /user/**/info\nconst matchGlob = (pathname: string, globPattern: string) => {\n const matches = picomatch(globPattern);\n return matches(pathname);\n};\n\n// Matches globs:\n// Examples:\n// /user\n// /user/*\n// /user/**/info\nconst matchesGlobs = (pathname: string, patterns: string[]) =>\n patterns.some((pattern) => {\n if (!pattern) return false;\n console.log(\"matching\", {\n pattern,\n pathname,\n match: matchGlob(pathname, pattern),\n });\n return matchGlob(pathname, pattern);\n });\n\n// internal - used by all exported functions\nconst applyAuth = async (\n authConfig: AuthConfig,\n request: NextRequest,\n): Promise<NextResponse | undefined> => {\n const authConfigWithDefaults = resolveAuthConfig(authConfig);\n\n // Check for any valid auth token\n // TODO check if token is not expired\n const isAuthenticated = !!request.cookies.get(\"id_token\");\n\n // skip auth check for login url\n if (request.nextUrl.pathname === authConfigWithDefaults.loginUrl) {\n console.log(\"→ Skipping auth check - this is the login URL\");\n return undefined;\n }\n\n if (!matchesGlobs(request.nextUrl.pathname, authConfigWithDefaults.include)) {\n console.log(\"→ Skipping auth check - path not in include patterns\");\n return undefined;\n }\n\n if (matchesGlobs(request.nextUrl.pathname, authConfigWithDefaults.exclude)) {\n console.log(\"→ Skipping auth check - path in exclude patterns\");\n return undefined;\n }\n\n // Check for either token type\n if (!isAuthenticated) {\n console.log(\"→ No valid token found - redirecting to login\");\n const loginUrl = new URL(authConfigWithDefaults.loginUrl, request.url);\n return NextResponse.redirect(loginUrl);\n }\n\n console.log(\"→ Auth check passed\");\n return undefined;\n};\n\n/**\n *\n * Use this when auth is the only middleware you need.\n * Usage:\n *\n * export default authMiddleware({ loginUrl = '/login' }); // or just authMiddleware();\n *\n */\nexport const authMiddleware =\n (authConfig = defaultAuthConfig) =>\n async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth(authConfig, request);\n if (response) return response;\n\n // NextJS doesn't do middleware chaining yet, so this does not mean\n // \"call the next middleware\" - it means \"continue to the route handler\"\n return NextResponse.next();\n };\n\n/**\n * Usage:\n *\n * export default withAuth(async (request) => {\n * console.log('my middleware');\n * return NextResponse.next();\n * })\n */\n// use this when you have your own middleware to chain\nexport function withAuth(\n middleware: Middleware,\n): (request: NextRequest) => Promise<NextResponse> {\n return async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth({}, request);\n if (response) return response;\n return middleware(request);\n };\n}\n\n/**\n * Use this when you want to configure the middleware here (an alternative is to do it in the next.config file)\n *\n * Usage:\n *\n * const withAuth = auth({ loginUrl = '/login' }); // or just auth();\n *\n * export default withAuth(async (request) => {\n * console.log('my middleware');\n * return NextResponse.next();\n * })\n *\n */\nexport function auth(authConfig: AuthConfig = {}) {\n return (\n middleware: Middleware,\n ): ((request: NextRequest) => Promise<NextResponse>) => {\n return async (request: NextRequest): Promise<NextResponse> => {\n const response = await applyAuth(authConfig, request);\n if (response) return response;\n return middleware(request);\n };\n };\n}\n","import { NextRequest, NextResponse } from \"next/server.js\";\nimport { revalidatePath } from \"next/cache.js\";\nimport { AuthConfig, resolveAuthConfig } from \"@/nextjs/config.js\";\nimport { loggers } from \"@/lib/logger.js\";\nimport {\n clearAuthCookies,\n NextjsClientStorage,\n NextjsCookieStorage,\n} from \"./cookies.js\";\nimport { GenericPublicClientPKCEProducer } from \"@/services/PKCE.js\";\nimport { resolveOAuthAccessCode } from \"@/server/login.js\";\nimport { getUser } from \"@/server/session.js\";\nimport { resolveCallbackUrl } from \"./utils.js\";\nimport { GenericUserSession } from \"@/shared/UserSession.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(): Promise<NextResponse> {\n const cookieStorage = new NextjsCookieStorage();\n const pkceProducer = new GenericPublicClientPKCEProducer(cookieStorage);\n\n const challenge = await pkceProducer.getCodeChallenge();\n\n return NextResponse.json({ status: \"success\", challenge });\n}\n\nasync function handleCallback(\n request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\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 const cookieStorage = new NextjsCookieStorage();\n\n const resolvedConfigs = resolveAuthConfig(config);\n const callbackUrl = resolveCallbackUrl(resolvedConfigs, request.url);\n\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\n userSession.set(user);\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(`<html></html>`);\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) => {\n // Check if the redirectPath is an absolute URL\n if (/^(https?:\\/\\/|www\\.).+/i.test(redirectPath)) {\n return redirectPath; // Return as-is if it's an absolute URL\n }\n return new URL(redirectPath, currentBasePath).href;\n};\n\nasync 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 const isAbsoluteRedirect = /^(https?:\\/\\/|www\\.).+/i.test(redirectTarget);\n const finalRedirectUrl = getAbsoluteRedirectPath(\n redirectTarget,\n new URL(request.url).origin,\n );\n\n const response = NextResponse.redirect(finalRedirectUrl);\n\n clearAuthCookies();\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();\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();\n return response;\n }\n };\n"],"mappings":"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","names":["getUser","NextResponse","NextResponse"]}