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

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/.eslintignore +3 -0
  2. package/.eslintrc.json +10 -0
  3. package/.prettierignore +3 -0
  4. package/.prettierrc +1 -0
  5. package/.turbo/turbo-build.log +13 -0
  6. package/.turbo/turbo-lint.log +14 -0
  7. package/.turbo/turbo-test.log +1678 -0
  8. package/README.md +26 -4
  9. package/civic-auth-0.0.1-beta.15.tgz +0 -0
  10. package/civic-auth-0.0.1-beta.17.tgz +0 -0
  11. package/dist/AuthProvider-BYZ8w92b.d.mts +15 -0
  12. package/dist/AuthProvider-BgOwv9h8.d.ts +15 -0
  13. package/dist/AuthProvider-Bj_Prt1x.d.ts +21 -0
  14. package/dist/AuthProvider-DUAoX4G9.d.mts +21 -0
  15. package/dist/UserProvider-BA2uflVB.d.ts +16 -0
  16. package/dist/UserProvider-Bl3j1PUO.d.mts +16 -0
  17. package/dist/UserProvider-CMLaYOUD.d.ts +16 -0
  18. package/dist/UserProvider-Cbm8MZkJ.d.mts +16 -0
  19. package/dist/chunk-4PLCDPEN.mjs +599 -0
  20. package/dist/chunk-4PLCDPEN.mjs.map +1 -0
  21. package/dist/chunk-5UQQYXCX.js +1 -0
  22. package/dist/chunk-5UQQYXCX.js.map +1 -0
  23. package/dist/{chunk-UV56GNIT.mjs → chunk-63YGK3A7.mjs} +84 -62
  24. package/dist/chunk-63YGK3A7.mjs.map +1 -0
  25. package/dist/{chunk-4GIHS7LB.js → chunk-6RFRDWIP.js} +88 -66
  26. package/dist/chunk-6RFRDWIP.js.map +1 -0
  27. package/dist/chunk-7K3QN2AT.js +599 -0
  28. package/dist/chunk-7K3QN2AT.js.map +1 -0
  29. package/dist/chunk-AM2Y662I.js +601 -0
  30. package/dist/chunk-AM2Y662I.js.map +1 -0
  31. package/dist/chunk-AP4627CS.mjs +223 -0
  32. package/dist/chunk-AP4627CS.mjs.map +1 -0
  33. package/dist/chunk-CRTRMMJ7.js.map +1 -1
  34. package/dist/chunk-CTVJJBBA.js +118 -0
  35. package/dist/chunk-CTVJJBBA.js.map +1 -0
  36. package/dist/chunk-EKLYHP2D.mjs +711 -0
  37. package/dist/chunk-EKLYHP2D.mjs.map +1 -0
  38. package/dist/chunk-FHRZSX3C.js +710 -0
  39. package/dist/chunk-FHRZSX3C.js.map +1 -0
  40. package/dist/chunk-GB3H3I47.js +711 -0
  41. package/dist/chunk-GB3H3I47.js.map +1 -0
  42. package/dist/{chunk-WPISYQG3.js → chunk-JDZPCA3P.js} +51 -32
  43. package/dist/chunk-JDZPCA3P.js.map +1 -0
  44. package/dist/chunk-JEOPLLWO.js +223 -0
  45. package/dist/chunk-JEOPLLWO.js.map +1 -0
  46. package/dist/chunk-MK7557NR.mjs +118 -0
  47. package/dist/chunk-MK7557NR.mjs.map +1 -0
  48. package/dist/chunk-NLRREFOX.mjs +710 -0
  49. package/dist/chunk-NLRREFOX.mjs.map +1 -0
  50. package/dist/{chunk-NQPMNXBL.mjs → chunk-O3WGNLRO.mjs} +50 -31
  51. package/dist/chunk-O3WGNLRO.mjs.map +1 -0
  52. package/dist/chunk-OXXUQ36U.mjs +283 -0
  53. package/dist/chunk-OXXUQ36U.mjs.map +1 -0
  54. package/dist/chunk-PMJAV4JJ.mjs +1 -0
  55. package/dist/chunk-PMJAV4JJ.mjs.map +1 -0
  56. package/dist/chunk-Q7DSPTUG.mjs +601 -0
  57. package/dist/chunk-Q7DSPTUG.mjs.map +1 -0
  58. package/dist/chunk-TH6FI2XI.js +283 -0
  59. package/dist/chunk-TH6FI2XI.js.map +1 -0
  60. package/dist/cjs/src/browser/storage.d.ts +6 -0
  61. package/dist/cjs/src/browser/storage.d.ts.map +1 -0
  62. package/dist/cjs/src/browser/storage.js +13 -0
  63. package/dist/cjs/src/browser/storage.js.map +1 -0
  64. package/dist/cjs/src/config.d.ts +3 -0
  65. package/dist/cjs/src/config.d.ts.map +1 -0
  66. package/dist/cjs/src/config.js +8 -0
  67. package/dist/cjs/src/config.js.map +1 -0
  68. package/dist/cjs/src/constants.d.ts +9 -0
  69. package/dist/cjs/src/constants.d.ts.map +1 -0
  70. package/dist/cjs/src/constants.js +26 -0
  71. package/dist/cjs/src/constants.js.map +1 -0
  72. package/dist/cjs/src/index.d.ts +4 -0
  73. package/dist/cjs/src/index.d.ts.map +1 -0
  74. package/dist/cjs/src/index.js +3 -0
  75. package/dist/cjs/src/index.js.map +1 -0
  76. package/dist/cjs/src/lib/cookies.d.ts +7 -0
  77. package/dist/cjs/src/lib/cookies.d.ts.map +1 -0
  78. package/dist/cjs/src/lib/cookies.js +26 -0
  79. package/dist/cjs/src/lib/cookies.js.map +1 -0
  80. package/dist/cjs/src/lib/jwt.d.ts +3 -0
  81. package/dist/cjs/src/lib/jwt.d.ts.map +1 -0
  82. package/dist/cjs/src/lib/jwt.js +13 -0
  83. package/dist/cjs/src/lib/jwt.js.map +1 -0
  84. package/dist/cjs/src/lib/logger.d.ts +26 -0
  85. package/dist/cjs/src/lib/logger.d.ts.map +1 -0
  86. package/dist/cjs/src/lib/logger.js +62 -0
  87. package/dist/cjs/src/lib/logger.js.map +1 -0
  88. package/dist/cjs/src/lib/oauth.d.ts +19 -0
  89. package/dist/cjs/src/lib/oauth.d.ts.map +1 -0
  90. package/dist/cjs/src/lib/oauth.js +67 -0
  91. package/dist/cjs/src/lib/oauth.js.map +1 -0
  92. package/dist/cjs/src/lib/postMessage.d.ts +4 -0
  93. package/dist/cjs/src/lib/postMessage.d.ts.map +1 -0
  94. package/dist/cjs/src/lib/postMessage.js +18 -0
  95. package/dist/cjs/src/lib/postMessage.js.map +1 -0
  96. package/dist/cjs/src/lib/windowUtil.d.ts +4 -0
  97. package/dist/cjs/src/lib/windowUtil.d.ts.map +1 -0
  98. package/dist/cjs/src/lib/windowUtil.js +34 -0
  99. package/dist/cjs/src/lib/windowUtil.js.map +1 -0
  100. package/dist/cjs/src/nextjs/GetUser.d.ts +6 -0
  101. package/dist/cjs/src/nextjs/GetUser.d.ts.map +1 -0
  102. package/dist/cjs/src/nextjs/GetUser.js +22 -0
  103. package/dist/cjs/src/nextjs/GetUser.js.map +1 -0
  104. package/dist/cjs/src/nextjs/config.d.ts +178 -0
  105. package/dist/cjs/src/nextjs/config.d.ts.map +1 -0
  106. package/dist/cjs/src/nextjs/config.js +167 -0
  107. package/dist/cjs/src/nextjs/config.js.map +1 -0
  108. package/dist/cjs/src/nextjs/cookies.d.ts +30 -0
  109. package/dist/cjs/src/nextjs/cookies.d.ts.map +1 -0
  110. package/dist/cjs/src/nextjs/cookies.js +119 -0
  111. package/dist/cjs/src/nextjs/cookies.js.map +1 -0
  112. package/dist/cjs/src/nextjs/hooks/index.d.ts +2 -0
  113. package/dist/cjs/src/nextjs/hooks/index.d.ts.map +1 -0
  114. package/dist/cjs/src/nextjs/hooks/index.js +6 -0
  115. package/dist/cjs/src/nextjs/hooks/index.js.map +1 -0
  116. package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts +3 -0
  117. package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts.map +1 -0
  118. package/dist/cjs/src/nextjs/hooks/useTokenCookie.js +41 -0
  119. package/dist/cjs/src/nextjs/hooks/useTokenCookie.js.map +1 -0
  120. package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts +3 -0
  121. package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts.map +1 -0
  122. package/dist/cjs/src/nextjs/hooks/useUserCookie.js +40 -0
  123. package/dist/cjs/src/nextjs/hooks/useUserCookie.js.map +1 -0
  124. package/dist/cjs/src/nextjs/index.d.ts +7 -0
  125. package/dist/cjs/src/nextjs/index.d.ts.map +1 -0
  126. package/dist/cjs/src/nextjs/index.js +18 -0
  127. package/dist/cjs/src/nextjs/index.js.map +1 -0
  128. package/dist/cjs/src/nextjs/middleware/index.d.ts +2 -0
  129. package/dist/cjs/src/nextjs/middleware/index.d.ts.map +1 -0
  130. package/dist/cjs/src/nextjs/middleware/index.js +8 -0
  131. package/dist/cjs/src/nextjs/middleware/index.js.map +1 -0
  132. package/dist/cjs/src/nextjs/middleware.d.ts +59 -0
  133. package/dist/cjs/src/nextjs/middleware.d.ts.map +1 -0
  134. package/dist/cjs/src/nextjs/middleware.js +116 -0
  135. package/dist/cjs/src/nextjs/middleware.js.map +1 -0
  136. package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts +9 -0
  137. package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts.map +1 -0
  138. package/dist/cjs/src/nextjs/providers/NextAuthProvider.js +76 -0
  139. package/dist/cjs/src/nextjs/providers/NextAuthProvider.js.map +1 -0
  140. package/dist/cjs/src/nextjs/routeHandler.d.ts +18 -0
  141. package/dist/cjs/src/nextjs/routeHandler.d.ts.map +1 -0
  142. package/dist/cjs/src/nextjs/routeHandler.js +217 -0
  143. package/dist/cjs/src/nextjs/routeHandler.js.map +1 -0
  144. package/dist/cjs/src/nextjs/utils.d.ts +3 -0
  145. package/dist/cjs/src/nextjs/utils.d.ts.map +1 -0
  146. package/dist/cjs/src/nextjs/utils.js +9 -0
  147. package/dist/cjs/src/nextjs/utils.js.map +1 -0
  148. package/dist/cjs/src/reactjs/components/SignInButton.d.ts +8 -0
  149. package/dist/cjs/src/reactjs/components/SignInButton.d.ts.map +1 -0
  150. package/dist/cjs/src/reactjs/components/SignInButton.js +20 -0
  151. package/dist/cjs/src/reactjs/components/SignInButton.js.map +1 -0
  152. package/dist/cjs/src/reactjs/components/SignOutButton.d.ts +6 -0
  153. package/dist/cjs/src/reactjs/components/SignOutButton.d.ts.map +1 -0
  154. package/dist/cjs/src/reactjs/components/SignOutButton.js +20 -0
  155. package/dist/cjs/src/reactjs/components/SignOutButton.js.map +1 -0
  156. package/dist/cjs/src/reactjs/components/UserButton.d.ts +8 -0
  157. package/dist/cjs/src/reactjs/components/UserButton.d.ts.map +1 -0
  158. package/dist/cjs/src/reactjs/components/UserButton.js +136 -0
  159. package/dist/cjs/src/reactjs/components/UserButton.js.map +1 -0
  160. package/dist/cjs/src/reactjs/components/index.d.ts +6 -0
  161. package/dist/cjs/src/reactjs/components/index.d.ts.map +1 -0
  162. package/dist/cjs/src/reactjs/components/index.js +14 -0
  163. package/dist/cjs/src/reactjs/components/index.js.map +1 -0
  164. package/dist/cjs/src/reactjs/hooks/index.d.ts +7 -0
  165. package/dist/cjs/src/reactjs/hooks/index.d.ts.map +1 -0
  166. package/dist/cjs/src/reactjs/hooks/index.js +16 -0
  167. package/dist/cjs/src/reactjs/hooks/index.js.map +1 -0
  168. package/dist/cjs/src/reactjs/hooks/useAuth.d.ts +3 -0
  169. package/dist/cjs/src/reactjs/hooks/useAuth.d.ts.map +1 -0
  170. package/dist/cjs/src/reactjs/hooks/useAuth.js +15 -0
  171. package/dist/cjs/src/reactjs/hooks/useAuth.js.map +1 -0
  172. package/dist/cjs/src/reactjs/hooks/useUser.d.ts +4 -0
  173. package/dist/cjs/src/reactjs/hooks/useUser.d.ts.map +1 -0
  174. package/dist/cjs/src/reactjs/hooks/useUser.js +15 -0
  175. package/dist/cjs/src/reactjs/hooks/useUser.js.map +1 -0
  176. package/dist/cjs/src/reactjs/index.d.ts +6 -0
  177. package/dist/cjs/src/reactjs/index.d.ts.map +1 -0
  178. package/dist/cjs/src/reactjs/index.js +30 -0
  179. package/dist/cjs/src/reactjs/index.js.map +1 -0
  180. package/dist/cjs/src/reactjs/providers/index.d.ts +8 -0
  181. package/dist/cjs/src/reactjs/providers/index.d.ts.map +1 -0
  182. package/dist/cjs/src/reactjs/providers/index.js +19 -0
  183. package/dist/cjs/src/reactjs/providers/index.js.map +1 -0
  184. package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts +18 -0
  185. package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts.map +1 -0
  186. package/dist/cjs/src/server/ServerAuthenticationResolver.js +61 -0
  187. package/dist/cjs/src/server/ServerAuthenticationResolver.js.map +1 -0
  188. package/dist/cjs/src/server/config.d.ts +16 -0
  189. package/dist/cjs/src/server/config.d.ts.map +1 -0
  190. package/dist/cjs/src/server/config.js +3 -0
  191. package/dist/cjs/src/server/config.js.map +1 -0
  192. package/dist/cjs/src/server/index.d.ts +6 -0
  193. package/dist/cjs/src/server/index.d.ts.map +1 -0
  194. package/dist/cjs/src/server/index.js +14 -0
  195. package/dist/cjs/src/server/index.js.map +1 -0
  196. package/dist/cjs/src/server/login.d.ts +17 -0
  197. package/dist/cjs/src/server/login.d.ts.map +1 -0
  198. package/dist/cjs/src/server/login.js +42 -0
  199. package/dist/cjs/src/server/login.js.map +1 -0
  200. package/dist/cjs/src/server/refresh.d.ts +7 -0
  201. package/dist/cjs/src/server/refresh.d.ts.map +1 -0
  202. package/dist/cjs/src/server/refresh.js +16 -0
  203. package/dist/cjs/src/server/refresh.js.map +1 -0
  204. package/dist/cjs/src/services/AuthenticationService.d.ts +87 -0
  205. package/dist/cjs/src/services/AuthenticationService.d.ts.map +1 -0
  206. package/dist/cjs/src/services/AuthenticationService.js +218 -0
  207. package/dist/cjs/src/services/AuthenticationService.js.map +1 -0
  208. package/dist/cjs/src/services/PKCE.d.ts +20 -0
  209. package/dist/cjs/src/services/PKCE.d.ts.map +1 -0
  210. package/dist/cjs/src/services/PKCE.js +50 -0
  211. package/dist/cjs/src/services/PKCE.js.map +1 -0
  212. package/dist/cjs/src/services/types.d.ts +23 -0
  213. package/dist/cjs/src/services/types.d.ts.map +1 -0
  214. package/dist/cjs/src/services/types.js +11 -0
  215. package/dist/cjs/src/services/types.js.map +1 -0
  216. package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts +8 -0
  217. package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts.map +1 -0
  218. package/dist/cjs/src/shared/components/CivicAuthIframe.js +35 -0
  219. package/dist/cjs/src/shared/components/CivicAuthIframe.js.map +1 -0
  220. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts +9 -0
  221. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts.map +1 -0
  222. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js +154 -0
  223. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js.map +1 -0
  224. package/dist/cjs/src/shared/components/CloseIcon.d.ts +4 -0
  225. package/dist/cjs/src/shared/components/CloseIcon.d.ts.map +1 -0
  226. package/dist/cjs/src/shared/components/CloseIcon.js +12 -0
  227. package/dist/cjs/src/shared/components/CloseIcon.js.map +1 -0
  228. package/dist/cjs/src/shared/components/LoadingIcon.d.ts +4 -0
  229. package/dist/cjs/src/shared/components/LoadingIcon.d.ts.map +1 -0
  230. package/dist/cjs/src/shared/components/LoadingIcon.js +36 -0
  231. package/dist/cjs/src/shared/components/LoadingIcon.js.map +1 -0
  232. package/dist/cjs/src/shared/hooks/index.d.ts +5 -0
  233. package/dist/cjs/src/shared/hooks/index.d.ts.map +1 -0
  234. package/dist/cjs/src/shared/hooks/index.js +12 -0
  235. package/dist/cjs/src/shared/hooks/index.js.map +1 -0
  236. package/dist/cjs/src/shared/hooks/useAuth.d.ts +3 -0
  237. package/dist/cjs/src/shared/hooks/useAuth.d.ts.map +1 -0
  238. package/dist/cjs/src/shared/hooks/useAuth.js +15 -0
  239. package/dist/cjs/src/shared/hooks/useAuth.js.map +1 -0
  240. package/dist/cjs/src/shared/hooks/useConfig.d.ts +3 -0
  241. package/dist/cjs/src/shared/hooks/useConfig.d.ts.map +1 -0
  242. package/dist/cjs/src/shared/hooks/useConfig.js +16 -0
  243. package/dist/cjs/src/shared/hooks/useConfig.js.map +1 -0
  244. package/dist/cjs/src/shared/hooks/useIframe.d.ts +3 -0
  245. package/dist/cjs/src/shared/hooks/useIframe.d.ts.map +1 -0
  246. package/dist/cjs/src/shared/hooks/useIframe.js +16 -0
  247. package/dist/cjs/src/shared/hooks/useIframe.js.map +1 -0
  248. package/dist/cjs/src/shared/hooks/useSession.d.ts +3 -0
  249. package/dist/cjs/src/shared/hooks/useSession.d.ts.map +1 -0
  250. package/dist/cjs/src/shared/hooks/useSession.js +16 -0
  251. package/dist/cjs/src/shared/hooks/useSession.js.map +1 -0
  252. package/dist/cjs/src/shared/hooks/useToken.d.ts +3 -0
  253. package/dist/cjs/src/shared/hooks/useToken.d.ts.map +1 -0
  254. package/dist/cjs/src/shared/hooks/useToken.js +15 -0
  255. package/dist/cjs/src/shared/hooks/useToken.js.map +1 -0
  256. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts +15 -0
  257. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -0
  258. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js +43 -0
  259. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js.map +1 -0
  260. package/dist/cjs/src/shared/lib/UserSession.d.ts +12 -0
  261. package/dist/cjs/src/shared/lib/UserSession.d.ts.map +1 -0
  262. package/dist/cjs/src/shared/lib/UserSession.js +24 -0
  263. package/dist/cjs/src/shared/lib/UserSession.js.map +1 -0
  264. package/dist/cjs/src/shared/lib/session.d.ts +3 -0
  265. package/dist/cjs/src/shared/lib/session.d.ts.map +1 -0
  266. package/dist/cjs/src/shared/lib/session.js +13 -0
  267. package/dist/cjs/src/shared/lib/session.js.map +1 -0
  268. package/dist/cjs/src/shared/lib/storage.d.ts +25 -0
  269. package/dist/cjs/src/shared/lib/storage.d.ts.map +1 -0
  270. package/dist/cjs/src/shared/lib/storage.js +21 -0
  271. package/dist/cjs/src/shared/lib/storage.js.map +1 -0
  272. package/dist/cjs/src/shared/lib/types.d.ts +22 -0
  273. package/dist/cjs/src/shared/lib/types.d.ts.map +1 -0
  274. package/dist/cjs/src/shared/lib/types.js +19 -0
  275. package/dist/cjs/src/shared/lib/types.js.map +1 -0
  276. package/dist/cjs/src/shared/lib/util.d.ts +33 -0
  277. package/dist/cjs/src/shared/lib/util.d.ts.map +1 -0
  278. package/dist/cjs/src/shared/lib/util.js +163 -0
  279. package/dist/cjs/src/shared/lib/util.js.map +1 -0
  280. package/dist/cjs/src/shared/providers/AuthContext.d.ts +10 -0
  281. package/dist/cjs/src/shared/providers/AuthContext.d.ts.map +1 -0
  282. package/dist/cjs/src/shared/providers/AuthContext.js +6 -0
  283. package/dist/cjs/src/shared/providers/AuthContext.js.map +1 -0
  284. package/dist/cjs/src/shared/providers/AuthProvider.d.ts +20 -0
  285. package/dist/cjs/src/shared/providers/AuthProvider.d.ts.map +1 -0
  286. package/dist/cjs/src/shared/providers/AuthProvider.js +289 -0
  287. package/dist/cjs/src/shared/providers/AuthProvider.js.map +1 -0
  288. package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts +6 -0
  289. package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts.map +1 -0
  290. package/dist/cjs/src/shared/providers/CivicAuthProvider.js +21 -0
  291. package/dist/cjs/src/shared/providers/CivicAuthProvider.js.map +1 -0
  292. package/dist/cjs/src/shared/providers/ConfigProvider.d.ts +21 -0
  293. package/dist/cjs/src/shared/providers/ConfigProvider.d.ts.map +1 -0
  294. package/dist/cjs/src/shared/providers/ConfigProvider.js +46 -0
  295. package/dist/cjs/src/shared/providers/ConfigProvider.js.map +1 -0
  296. package/dist/cjs/src/shared/providers/IframeProvider.d.ts +16 -0
  297. package/dist/cjs/src/shared/providers/IframeProvider.d.ts.map +1 -0
  298. package/dist/cjs/src/shared/providers/IframeProvider.js +38 -0
  299. package/dist/cjs/src/shared/providers/IframeProvider.js.map +1 -0
  300. package/dist/cjs/src/shared/providers/SessionProvider.d.ts +13 -0
  301. package/dist/cjs/src/shared/providers/SessionProvider.d.ts.map +1 -0
  302. package/dist/cjs/src/shared/providers/SessionProvider.js +40 -0
  303. package/dist/cjs/src/shared/providers/SessionProvider.js.map +1 -0
  304. package/dist/cjs/src/shared/providers/TokenProvider.d.ts +18 -0
  305. package/dist/cjs/src/shared/providers/TokenProvider.d.ts.map +1 -0
  306. package/dist/cjs/src/shared/providers/TokenProvider.js +80 -0
  307. package/dist/cjs/src/shared/providers/TokenProvider.js.map +1 -0
  308. package/dist/cjs/src/shared/providers/UserProvider.d.ts +18 -0
  309. package/dist/cjs/src/shared/providers/UserProvider.d.ts.map +1 -0
  310. package/dist/cjs/src/shared/providers/UserProvider.js +65 -0
  311. package/dist/cjs/src/shared/providers/UserProvider.js.map +1 -0
  312. package/dist/cjs/src/types.d.ts +146 -0
  313. package/dist/cjs/src/types.d.ts.map +1 -0
  314. package/dist/cjs/src/types.js +3 -0
  315. package/dist/cjs/src/types.js.map +1 -0
  316. package/dist/cjs/src/utils.d.ts +15 -0
  317. package/dist/cjs/src/utils.d.ts.map +1 -0
  318. package/dist/cjs/src/utils.js +47 -0
  319. package/dist/cjs/src/utils.js.map +1 -0
  320. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  321. package/dist/esm/src/browser/storage.d.ts +6 -0
  322. package/dist/esm/src/browser/storage.d.ts.map +1 -0
  323. package/dist/esm/src/browser/storage.js +9 -0
  324. package/dist/esm/src/browser/storage.js.map +1 -0
  325. package/dist/esm/src/config.d.ts +3 -0
  326. package/dist/esm/src/config.d.ts.map +1 -0
  327. package/dist/esm/src/config.js +5 -0
  328. package/dist/esm/src/config.js.map +1 -0
  329. package/dist/esm/src/constants.d.ts +9 -0
  330. package/dist/esm/src/constants.d.ts.map +1 -0
  331. package/dist/esm/src/constants.js +17 -0
  332. package/dist/esm/src/constants.js.map +1 -0
  333. package/dist/esm/src/index.d.ts +4 -0
  334. package/dist/esm/src/index.d.ts.map +1 -0
  335. package/dist/esm/src/index.js +2 -0
  336. package/dist/esm/src/index.js.map +1 -0
  337. package/dist/esm/src/lib/cookies.d.ts +7 -0
  338. package/dist/esm/src/lib/cookies.d.ts.map +1 -0
  339. package/dist/esm/src/lib/cookies.js +23 -0
  340. package/dist/esm/src/lib/cookies.js.map +1 -0
  341. package/dist/esm/src/lib/jwt.d.ts +3 -0
  342. package/dist/esm/src/lib/jwt.d.ts.map +1 -0
  343. package/dist/esm/src/lib/jwt.js +9 -0
  344. package/dist/esm/src/lib/jwt.js.map +1 -0
  345. package/dist/esm/src/lib/logger.d.ts +26 -0
  346. package/dist/esm/src/lib/logger.d.ts.map +1 -0
  347. package/dist/esm/src/lib/logger.js +55 -0
  348. package/dist/esm/src/lib/logger.js.map +1 -0
  349. package/dist/esm/src/lib/oauth.d.ts +19 -0
  350. package/dist/esm/src/lib/oauth.d.ts.map +1 -0
  351. package/dist/esm/src/lib/oauth.js +60 -0
  352. package/dist/esm/src/lib/oauth.js.map +1 -0
  353. package/dist/esm/src/lib/postMessage.d.ts +4 -0
  354. package/dist/esm/src/lib/postMessage.d.ts.map +1 -0
  355. package/dist/esm/src/lib/postMessage.js +15 -0
  356. package/dist/esm/src/lib/postMessage.js.map +1 -0
  357. package/dist/esm/src/lib/windowUtil.d.ts +4 -0
  358. package/dist/esm/src/lib/windowUtil.d.ts.map +1 -0
  359. package/dist/esm/src/lib/windowUtil.js +30 -0
  360. package/dist/esm/src/lib/windowUtil.js.map +1 -0
  361. package/dist/esm/src/nextjs/GetUser.d.ts +6 -0
  362. package/dist/esm/src/nextjs/GetUser.d.ts.map +1 -0
  363. package/dist/esm/src/nextjs/GetUser.js +18 -0
  364. package/dist/esm/src/nextjs/GetUser.js.map +1 -0
  365. package/dist/esm/src/nextjs/config.d.ts +178 -0
  366. package/dist/esm/src/nextjs/config.d.ts.map +1 -0
  367. package/dist/esm/src/nextjs/config.js +162 -0
  368. package/dist/esm/src/nextjs/config.js.map +1 -0
  369. package/dist/esm/src/nextjs/cookies.d.ts +30 -0
  370. package/dist/esm/src/nextjs/cookies.d.ts.map +1 -0
  371. package/dist/esm/src/nextjs/cookies.js +112 -0
  372. package/dist/esm/src/nextjs/cookies.js.map +1 -0
  373. package/dist/esm/src/nextjs/hooks/index.d.ts +2 -0
  374. package/dist/esm/src/nextjs/hooks/index.d.ts.map +1 -0
  375. package/dist/esm/src/nextjs/hooks/index.js +2 -0
  376. package/dist/esm/src/nextjs/hooks/index.js.map +1 -0
  377. package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts +3 -0
  378. package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts.map +1 -0
  379. package/dist/esm/src/nextjs/hooks/useTokenCookie.js +37 -0
  380. package/dist/esm/src/nextjs/hooks/useTokenCookie.js.map +1 -0
  381. package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts +3 -0
  382. package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts.map +1 -0
  383. package/dist/esm/src/nextjs/hooks/useUserCookie.js +36 -0
  384. package/dist/esm/src/nextjs/hooks/useUserCookie.js.map +1 -0
  385. package/dist/esm/src/nextjs/index.d.ts +7 -0
  386. package/dist/esm/src/nextjs/index.d.ts.map +1 -0
  387. package/dist/esm/src/nextjs/index.js +6 -0
  388. package/dist/esm/src/nextjs/index.js.map +1 -0
  389. package/dist/esm/src/nextjs/middleware/index.d.ts +2 -0
  390. package/dist/esm/src/nextjs/middleware/index.d.ts.map +1 -0
  391. package/dist/esm/src/nextjs/middleware/index.js +2 -0
  392. package/dist/esm/src/nextjs/middleware/index.js.map +1 -0
  393. package/dist/esm/src/nextjs/middleware.d.ts +59 -0
  394. package/dist/esm/src/nextjs/middleware.d.ts.map +1 -0
  395. package/dist/esm/src/nextjs/middleware.js +107 -0
  396. package/dist/esm/src/nextjs/middleware.js.map +1 -0
  397. package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts +9 -0
  398. package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts.map +1 -0
  399. package/dist/esm/src/nextjs/providers/NextAuthProvider.js +50 -0
  400. package/dist/esm/src/nextjs/providers/NextAuthProvider.js.map +1 -0
  401. package/dist/esm/src/nextjs/routeHandler.d.ts +18 -0
  402. package/dist/esm/src/nextjs/routeHandler.d.ts.map +1 -0
  403. package/dist/esm/src/nextjs/routeHandler.js +212 -0
  404. package/dist/esm/src/nextjs/routeHandler.js.map +1 -0
  405. package/dist/esm/src/nextjs/utils.d.ts +3 -0
  406. package/dist/esm/src/nextjs/utils.d.ts.map +1 -0
  407. package/dist/esm/src/nextjs/utils.js +5 -0
  408. package/dist/esm/src/nextjs/utils.js.map +1 -0
  409. package/dist/esm/src/reactjs/components/SignInButton.d.ts +8 -0
  410. package/dist/esm/src/reactjs/components/SignInButton.d.ts.map +1 -0
  411. package/dist/esm/src/reactjs/components/SignInButton.js +14 -0
  412. package/dist/esm/src/reactjs/components/SignInButton.js.map +1 -0
  413. package/dist/esm/src/reactjs/components/SignOutButton.d.ts +6 -0
  414. package/dist/esm/src/reactjs/components/SignOutButton.d.ts.map +1 -0
  415. package/dist/esm/src/reactjs/components/SignOutButton.js +14 -0
  416. package/dist/esm/src/reactjs/components/SignOutButton.js.map +1 -0
  417. package/dist/esm/src/reactjs/components/UserButton.d.ts +8 -0
  418. package/dist/esm/src/reactjs/components/UserButton.d.ts.map +1 -0
  419. package/dist/esm/src/reactjs/components/UserButton.js +110 -0
  420. package/dist/esm/src/reactjs/components/UserButton.js.map +1 -0
  421. package/dist/esm/src/reactjs/components/index.d.ts +6 -0
  422. package/dist/esm/src/reactjs/components/index.d.ts.map +1 -0
  423. package/dist/esm/src/reactjs/components/index.js +6 -0
  424. package/dist/esm/src/reactjs/components/index.js.map +1 -0
  425. package/dist/esm/src/reactjs/hooks/index.d.ts +7 -0
  426. package/dist/esm/src/reactjs/hooks/index.d.ts.map +1 -0
  427. package/dist/esm/src/reactjs/hooks/index.js +7 -0
  428. package/dist/esm/src/reactjs/hooks/index.js.map +1 -0
  429. package/dist/esm/src/reactjs/hooks/useAuth.d.ts +3 -0
  430. package/dist/esm/src/reactjs/hooks/useAuth.d.ts.map +1 -0
  431. package/dist/esm/src/reactjs/hooks/useAuth.js +12 -0
  432. package/dist/esm/src/reactjs/hooks/useAuth.js.map +1 -0
  433. package/dist/esm/src/reactjs/hooks/useUser.d.ts +4 -0
  434. package/dist/esm/src/reactjs/hooks/useUser.d.ts.map +1 -0
  435. package/dist/esm/src/reactjs/hooks/useUser.js +12 -0
  436. package/dist/esm/src/reactjs/hooks/useUser.js.map +1 -0
  437. package/dist/esm/src/reactjs/index.d.ts +6 -0
  438. package/dist/esm/src/reactjs/index.d.ts.map +1 -0
  439. package/dist/esm/src/reactjs/index.js +8 -0
  440. package/dist/esm/src/reactjs/index.js.map +1 -0
  441. package/dist/esm/src/reactjs/providers/index.d.ts +8 -0
  442. package/dist/esm/src/reactjs/providers/index.d.ts.map +1 -0
  443. package/dist/esm/src/reactjs/providers/index.js +7 -0
  444. package/dist/esm/src/reactjs/providers/index.js.map +1 -0
  445. package/dist/esm/src/server/ServerAuthenticationResolver.d.ts +18 -0
  446. package/dist/esm/src/server/ServerAuthenticationResolver.d.ts.map +1 -0
  447. package/dist/esm/src/server/ServerAuthenticationResolver.js +57 -0
  448. package/dist/esm/src/server/ServerAuthenticationResolver.js.map +1 -0
  449. package/dist/esm/src/server/config.d.ts +16 -0
  450. package/dist/esm/src/server/config.d.ts.map +1 -0
  451. package/dist/esm/src/server/config.js +2 -0
  452. package/dist/esm/src/server/config.js.map +1 -0
  453. package/dist/esm/src/server/index.d.ts +6 -0
  454. package/dist/esm/src/server/index.d.ts.map +1 -0
  455. package/dist/esm/src/server/index.js +5 -0
  456. package/dist/esm/src/server/index.js.map +1 -0
  457. package/dist/esm/src/server/login.d.ts +17 -0
  458. package/dist/esm/src/server/login.d.ts.map +1 -0
  459. package/dist/esm/src/server/login.js +37 -0
  460. package/dist/esm/src/server/login.js.map +1 -0
  461. package/dist/esm/src/server/refresh.d.ts +7 -0
  462. package/dist/esm/src/server/refresh.d.ts.map +1 -0
  463. package/dist/esm/src/server/refresh.js +13 -0
  464. package/dist/esm/src/server/refresh.js.map +1 -0
  465. package/dist/esm/src/services/AuthenticationService.d.ts +87 -0
  466. package/dist/esm/src/services/AuthenticationService.d.ts.map +1 -0
  467. package/dist/esm/src/services/AuthenticationService.js +212 -0
  468. package/dist/esm/src/services/AuthenticationService.js.map +1 -0
  469. package/dist/esm/src/services/PKCE.d.ts +20 -0
  470. package/dist/esm/src/services/PKCE.d.ts.map +1 -0
  471. package/dist/esm/src/services/PKCE.js +44 -0
  472. package/dist/esm/src/services/PKCE.js.map +1 -0
  473. package/dist/esm/src/services/types.d.ts +23 -0
  474. package/dist/esm/src/services/types.d.ts.map +1 -0
  475. package/dist/esm/src/services/types.js +7 -0
  476. package/dist/esm/src/services/types.js.map +1 -0
  477. package/dist/esm/src/shared/components/CivicAuthIframe.d.ts +8 -0
  478. package/dist/esm/src/shared/components/CivicAuthIframe.d.ts.map +1 -0
  479. package/dist/esm/src/shared/components/CivicAuthIframe.js +9 -0
  480. package/dist/esm/src/shared/components/CivicAuthIframe.js.map +1 -0
  481. package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts +9 -0
  482. package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts.map +1 -0
  483. package/dist/esm/src/shared/components/CivicAuthIframeContainer.js +128 -0
  484. package/dist/esm/src/shared/components/CivicAuthIframeContainer.js.map +1 -0
  485. package/dist/esm/src/shared/components/CloseIcon.d.ts +4 -0
  486. package/dist/esm/src/shared/components/CloseIcon.d.ts.map +1 -0
  487. package/dist/esm/src/shared/components/CloseIcon.js +6 -0
  488. package/dist/esm/src/shared/components/CloseIcon.js.map +1 -0
  489. package/dist/esm/src/shared/components/LoadingIcon.d.ts +4 -0
  490. package/dist/esm/src/shared/components/LoadingIcon.d.ts.map +1 -0
  491. package/dist/esm/src/shared/components/LoadingIcon.js +30 -0
  492. package/dist/esm/src/shared/components/LoadingIcon.js.map +1 -0
  493. package/dist/esm/src/shared/hooks/index.d.ts +5 -0
  494. package/dist/esm/src/shared/hooks/index.d.ts.map +1 -0
  495. package/dist/esm/src/shared/hooks/index.js +5 -0
  496. package/dist/esm/src/shared/hooks/index.js.map +1 -0
  497. package/dist/esm/src/shared/hooks/useAuth.d.ts +3 -0
  498. package/dist/esm/src/shared/hooks/useAuth.d.ts.map +1 -0
  499. package/dist/esm/src/shared/hooks/useAuth.js +12 -0
  500. package/dist/esm/src/shared/hooks/useAuth.js.map +1 -0
  501. package/dist/esm/src/shared/hooks/useConfig.d.ts +3 -0
  502. package/dist/esm/src/shared/hooks/useConfig.d.ts.map +1 -0
  503. package/dist/esm/src/shared/hooks/useConfig.js +13 -0
  504. package/dist/esm/src/shared/hooks/useConfig.js.map +1 -0
  505. package/dist/esm/src/shared/hooks/useIframe.d.ts +3 -0
  506. package/dist/esm/src/shared/hooks/useIframe.d.ts.map +1 -0
  507. package/dist/esm/src/shared/hooks/useIframe.js +13 -0
  508. package/dist/esm/src/shared/hooks/useIframe.js.map +1 -0
  509. package/dist/esm/src/shared/hooks/useSession.d.ts +3 -0
  510. package/dist/esm/src/shared/hooks/useSession.d.ts.map +1 -0
  511. package/dist/esm/src/shared/hooks/useSession.js +13 -0
  512. package/dist/esm/src/shared/hooks/useSession.js.map +1 -0
  513. package/dist/esm/src/shared/hooks/useToken.d.ts +3 -0
  514. package/dist/esm/src/shared/hooks/useToken.d.ts.map +1 -0
  515. package/dist/esm/src/shared/hooks/useToken.js +12 -0
  516. package/dist/esm/src/shared/hooks/useToken.js.map +1 -0
  517. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts +15 -0
  518. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -0
  519. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js +39 -0
  520. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js.map +1 -0
  521. package/dist/esm/src/shared/lib/UserSession.d.ts +12 -0
  522. package/dist/esm/src/shared/lib/UserSession.d.ts.map +1 -0
  523. package/dist/esm/src/shared/lib/UserSession.js +20 -0
  524. package/dist/esm/src/shared/lib/UserSession.js.map +1 -0
  525. package/dist/esm/src/shared/lib/session.d.ts +3 -0
  526. package/dist/esm/src/shared/lib/session.d.ts.map +1 -0
  527. package/dist/esm/src/shared/lib/session.js +10 -0
  528. package/dist/esm/src/shared/lib/session.js.map +1 -0
  529. package/dist/esm/src/shared/lib/storage.d.ts +25 -0
  530. package/dist/esm/src/shared/lib/storage.d.ts.map +1 -0
  531. package/dist/esm/src/shared/lib/storage.js +17 -0
  532. package/dist/esm/src/shared/lib/storage.js.map +1 -0
  533. package/dist/esm/src/shared/lib/types.d.ts +22 -0
  534. package/dist/esm/src/shared/lib/types.d.ts.map +1 -0
  535. package/dist/esm/src/shared/lib/types.js +16 -0
  536. package/dist/esm/src/shared/lib/types.js.map +1 -0
  537. package/dist/esm/src/shared/lib/util.d.ts +33 -0
  538. package/dist/esm/src/shared/lib/util.d.ts.map +1 -0
  539. package/dist/esm/src/shared/lib/util.js +127 -0
  540. package/dist/esm/src/shared/lib/util.js.map +1 -0
  541. package/dist/esm/src/shared/providers/AuthContext.d.ts +10 -0
  542. package/dist/esm/src/shared/providers/AuthContext.d.ts.map +1 -0
  543. package/dist/esm/src/shared/providers/AuthContext.js +3 -0
  544. package/dist/esm/src/shared/providers/AuthContext.js.map +1 -0
  545. package/dist/esm/src/shared/providers/AuthProvider.d.ts +20 -0
  546. package/dist/esm/src/shared/providers/AuthProvider.d.ts.map +1 -0
  547. package/dist/esm/src/shared/providers/AuthProvider.js +263 -0
  548. package/dist/esm/src/shared/providers/AuthProvider.js.map +1 -0
  549. package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts +6 -0
  550. package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts.map +1 -0
  551. package/dist/esm/src/shared/providers/CivicAuthProvider.js +15 -0
  552. package/dist/esm/src/shared/providers/CivicAuthProvider.js.map +1 -0
  553. package/dist/esm/src/shared/providers/ConfigProvider.d.ts +21 -0
  554. package/dist/esm/src/shared/providers/ConfigProvider.d.ts.map +1 -0
  555. package/dist/esm/src/shared/providers/ConfigProvider.js +19 -0
  556. package/dist/esm/src/shared/providers/ConfigProvider.js.map +1 -0
  557. package/dist/esm/src/shared/providers/IframeProvider.d.ts +16 -0
  558. package/dist/esm/src/shared/providers/IframeProvider.d.ts.map +1 -0
  559. package/dist/esm/src/shared/providers/IframeProvider.js +11 -0
  560. package/dist/esm/src/shared/providers/IframeProvider.js.map +1 -0
  561. package/dist/esm/src/shared/providers/SessionProvider.d.ts +13 -0
  562. package/dist/esm/src/shared/providers/SessionProvider.d.ts.map +1 -0
  563. package/dist/esm/src/shared/providers/SessionProvider.js +13 -0
  564. package/dist/esm/src/shared/providers/SessionProvider.js.map +1 -0
  565. package/dist/esm/src/shared/providers/TokenProvider.d.ts +18 -0
  566. package/dist/esm/src/shared/providers/TokenProvider.d.ts.map +1 -0
  567. package/dist/esm/src/shared/providers/TokenProvider.js +53 -0
  568. package/dist/esm/src/shared/providers/TokenProvider.js.map +1 -0
  569. package/dist/esm/src/shared/providers/UserProvider.d.ts +18 -0
  570. package/dist/esm/src/shared/providers/UserProvider.d.ts.map +1 -0
  571. package/dist/esm/src/shared/providers/UserProvider.js +38 -0
  572. package/dist/esm/src/shared/providers/UserProvider.js.map +1 -0
  573. package/dist/esm/src/types.d.ts +146 -0
  574. package/dist/esm/src/types.d.ts.map +1 -0
  575. package/dist/esm/src/types.js +2 -0
  576. package/dist/esm/src/types.js.map +1 -0
  577. package/dist/esm/src/utils.d.ts +15 -0
  578. package/dist/esm/src/utils.d.ts.map +1 -0
  579. package/dist/esm/src/utils.js +43 -0
  580. package/dist/esm/src/utils.js.map +1 -0
  581. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  582. package/dist/index.css +71 -73
  583. package/dist/index.css.map +1 -1
  584. package/dist/index.d.mts +3 -1
  585. package/dist/index.d.ts +3 -1
  586. package/dist/index.js +2 -1
  587. package/dist/index.js.map +1 -1
  588. package/dist/index.mjs +1 -0
  589. package/dist/nextjs/client.css +340 -0
  590. package/dist/nextjs/client.css.map +1 -0
  591. package/dist/nextjs/client.d.mts +10 -0
  592. package/dist/nextjs/client.d.ts +10 -0
  593. package/dist/nextjs/client.js +185 -0
  594. package/dist/nextjs/client.js.map +1 -0
  595. package/dist/nextjs/client.mjs +185 -0
  596. package/dist/nextjs/client.mjs.map +1 -0
  597. package/dist/nextjs.d.mts +60 -18
  598. package/dist/nextjs.d.ts +60 -18
  599. package/dist/nextjs.js +156 -94
  600. package/dist/nextjs.js.map +1 -1
  601. package/dist/nextjs.mjs +147 -85
  602. package/dist/nextjs.mjs.map +1 -1
  603. package/dist/react.d.mts +30 -84
  604. package/dist/react.d.ts +30 -84
  605. package/dist/react.js +31 -983
  606. package/dist/react.js.map +1 -1
  607. package/dist/react.mjs +62 -1014
  608. package/dist/react.mjs.map +1 -1
  609. package/dist/server.d.mts +14 -34
  610. package/dist/server.d.ts +14 -34
  611. package/dist/server.js +6 -3
  612. package/dist/server.js.map +1 -1
  613. package/dist/server.mjs +6 -3
  614. package/dist/src/browser/storage.d.ts +6 -0
  615. package/dist/src/browser/storage.d.ts.map +1 -0
  616. package/dist/src/browser/storage.js +9 -0
  617. package/dist/src/browser/storage.js.map +1 -0
  618. package/dist/src/config.d.ts +3 -0
  619. package/dist/src/config.d.ts.map +1 -0
  620. package/dist/src/config.js +5 -0
  621. package/dist/src/config.js.map +1 -0
  622. package/dist/src/constants.d.ts +9 -0
  623. package/dist/src/constants.d.ts.map +1 -0
  624. package/dist/src/constants.js +17 -0
  625. package/dist/src/constants.js.map +1 -0
  626. package/dist/src/index.d.ts +4 -0
  627. package/dist/src/index.d.ts.map +1 -0
  628. package/dist/src/index.js +2 -0
  629. package/dist/src/index.js.map +1 -0
  630. package/dist/src/lib/cookies.d.ts +7 -0
  631. package/dist/src/lib/cookies.d.ts.map +1 -0
  632. package/dist/src/lib/cookies.js +23 -0
  633. package/dist/src/lib/cookies.js.map +1 -0
  634. package/dist/src/lib/jwt.d.ts +3 -0
  635. package/dist/src/lib/jwt.d.ts.map +1 -0
  636. package/dist/src/lib/jwt.js +9 -0
  637. package/dist/src/lib/jwt.js.map +1 -0
  638. package/dist/src/lib/logger.d.ts +26 -0
  639. package/dist/src/lib/logger.d.ts.map +1 -0
  640. package/dist/src/lib/logger.js +55 -0
  641. package/dist/src/lib/logger.js.map +1 -0
  642. package/dist/src/lib/oauth.d.ts +19 -0
  643. package/dist/src/lib/oauth.d.ts.map +1 -0
  644. package/dist/src/lib/oauth.js +60 -0
  645. package/dist/src/lib/oauth.js.map +1 -0
  646. package/dist/src/lib/postMessage.d.ts +4 -0
  647. package/dist/src/lib/postMessage.d.ts.map +1 -0
  648. package/dist/src/lib/postMessage.js +15 -0
  649. package/dist/src/lib/postMessage.js.map +1 -0
  650. package/dist/src/lib/windowUtil.d.ts +4 -0
  651. package/dist/src/lib/windowUtil.d.ts.map +1 -0
  652. package/dist/src/lib/windowUtil.js +30 -0
  653. package/dist/src/lib/windowUtil.js.map +1 -0
  654. package/dist/src/nextjs/GetUser.d.ts +6 -0
  655. package/dist/src/nextjs/GetUser.d.ts.map +1 -0
  656. package/dist/src/nextjs/GetUser.js +18 -0
  657. package/dist/src/nextjs/GetUser.js.map +1 -0
  658. package/dist/src/nextjs/config.d.ts +178 -0
  659. package/dist/src/nextjs/config.d.ts.map +1 -0
  660. package/dist/src/nextjs/config.js +164 -0
  661. package/dist/src/nextjs/config.js.map +1 -0
  662. package/dist/src/nextjs/cookies.d.ts +30 -0
  663. package/dist/src/nextjs/cookies.d.ts.map +1 -0
  664. package/dist/src/nextjs/cookies.js +109 -0
  665. package/dist/src/nextjs/cookies.js.map +1 -0
  666. package/dist/src/nextjs/hooks/index.d.ts +2 -0
  667. package/dist/src/nextjs/hooks/index.d.ts.map +1 -0
  668. package/dist/src/nextjs/hooks/index.js +2 -0
  669. package/dist/src/nextjs/hooks/index.js.map +1 -0
  670. package/dist/src/nextjs/hooks/useTokenCookie.d.ts +3 -0
  671. package/dist/src/nextjs/hooks/useTokenCookie.d.ts.map +1 -0
  672. package/dist/src/nextjs/hooks/useTokenCookie.js +37 -0
  673. package/dist/src/nextjs/hooks/useTokenCookie.js.map +1 -0
  674. package/dist/src/nextjs/hooks/useUserCookie.d.ts +3 -0
  675. package/dist/src/nextjs/hooks/useUserCookie.d.ts.map +1 -0
  676. package/dist/src/nextjs/hooks/useUserCookie.js +36 -0
  677. package/dist/src/nextjs/hooks/useUserCookie.js.map +1 -0
  678. package/dist/src/nextjs/index.d.ts +7 -0
  679. package/dist/src/nextjs/index.d.ts.map +1 -0
  680. package/dist/src/nextjs/index.js +6 -0
  681. package/dist/src/nextjs/index.js.map +1 -0
  682. package/dist/src/nextjs/middleware/index.d.ts +2 -0
  683. package/dist/src/nextjs/middleware/index.d.ts.map +1 -0
  684. package/dist/src/nextjs/middleware/index.js +2 -0
  685. package/dist/src/nextjs/middleware/index.js.map +1 -0
  686. package/dist/src/nextjs/middleware.d.ts +59 -0
  687. package/dist/src/nextjs/middleware.d.ts.map +1 -0
  688. package/dist/src/nextjs/middleware.js +107 -0
  689. package/dist/src/nextjs/middleware.js.map +1 -0
  690. package/dist/src/nextjs/providers/NextAuthProvider.d.ts +9 -0
  691. package/dist/src/nextjs/providers/NextAuthProvider.d.ts.map +1 -0
  692. package/dist/src/nextjs/providers/NextAuthProvider.js +50 -0
  693. package/dist/src/nextjs/providers/NextAuthProvider.js.map +1 -0
  694. package/dist/src/nextjs/routeHandler.d.ts +18 -0
  695. package/dist/src/nextjs/routeHandler.d.ts.map +1 -0
  696. package/dist/src/nextjs/routeHandler.js +216 -0
  697. package/dist/src/nextjs/routeHandler.js.map +1 -0
  698. package/dist/src/nextjs/utils.d.ts +3 -0
  699. package/dist/src/nextjs/utils.d.ts.map +1 -0
  700. package/dist/src/nextjs/utils.js +5 -0
  701. package/dist/src/nextjs/utils.js.map +1 -0
  702. package/dist/src/reactjs/components/SignInButton.d.ts +8 -0
  703. package/dist/src/reactjs/components/SignInButton.d.ts.map +1 -0
  704. package/dist/src/reactjs/components/SignInButton.js +14 -0
  705. package/dist/src/reactjs/components/SignInButton.js.map +1 -0
  706. package/dist/src/reactjs/components/SignOutButton.d.ts +6 -0
  707. package/dist/src/reactjs/components/SignOutButton.d.ts.map +1 -0
  708. package/dist/src/reactjs/components/SignOutButton.js +14 -0
  709. package/dist/src/reactjs/components/SignOutButton.js.map +1 -0
  710. package/dist/src/reactjs/components/UserButton.d.ts +8 -0
  711. package/dist/src/reactjs/components/UserButton.d.ts.map +1 -0
  712. package/dist/src/reactjs/components/UserButton.js +110 -0
  713. package/dist/src/reactjs/components/UserButton.js.map +1 -0
  714. package/dist/src/reactjs/components/index.d.ts +6 -0
  715. package/dist/src/reactjs/components/index.d.ts.map +1 -0
  716. package/dist/src/reactjs/components/index.js +6 -0
  717. package/dist/src/reactjs/components/index.js.map +1 -0
  718. package/dist/src/reactjs/hooks/index.d.ts +8 -0
  719. package/dist/src/reactjs/hooks/index.d.ts.map +1 -0
  720. package/dist/src/reactjs/hooks/index.js +8 -0
  721. package/dist/src/reactjs/hooks/index.js.map +1 -0
  722. package/dist/src/reactjs/hooks/useAuth.d.ts +3 -0
  723. package/dist/src/reactjs/hooks/useAuth.d.ts.map +1 -0
  724. package/dist/src/reactjs/hooks/useAuth.js +12 -0
  725. package/dist/src/reactjs/hooks/useAuth.js.map +1 -0
  726. package/dist/src/reactjs/hooks/useUser.d.ts +4 -0
  727. package/dist/src/reactjs/hooks/useUser.d.ts.map +1 -0
  728. package/dist/src/reactjs/hooks/useUser.js +12 -0
  729. package/dist/src/reactjs/hooks/useUser.js.map +1 -0
  730. package/dist/src/reactjs/index.d.ts +6 -0
  731. package/dist/src/reactjs/index.d.ts.map +1 -0
  732. package/dist/src/reactjs/index.js +8 -0
  733. package/dist/src/reactjs/index.js.map +1 -0
  734. package/dist/src/reactjs/providers/index.d.ts +8 -0
  735. package/dist/src/reactjs/providers/index.d.ts.map +1 -0
  736. package/dist/src/reactjs/providers/index.js +7 -0
  737. package/dist/src/reactjs/providers/index.js.map +1 -0
  738. package/dist/src/server/ServerAuthenticationResolver.d.ts +18 -0
  739. package/dist/src/server/ServerAuthenticationResolver.d.ts.map +1 -0
  740. package/dist/src/server/ServerAuthenticationResolver.js +62 -0
  741. package/dist/src/server/ServerAuthenticationResolver.js.map +1 -0
  742. package/dist/src/server/config.d.ts +16 -0
  743. package/dist/src/server/config.d.ts.map +1 -0
  744. package/dist/src/server/config.js +2 -0
  745. package/dist/src/server/config.js.map +1 -0
  746. package/dist/src/server/index.d.ts +6 -0
  747. package/dist/src/server/index.d.ts.map +1 -0
  748. package/dist/src/server/index.js +5 -0
  749. package/dist/src/server/index.js.map +1 -0
  750. package/dist/src/server/login.d.ts +17 -0
  751. package/dist/src/server/login.d.ts.map +1 -0
  752. package/dist/src/server/login.js +37 -0
  753. package/dist/src/server/login.js.map +1 -0
  754. package/dist/src/server/refresh.d.ts +7 -0
  755. package/dist/src/server/refresh.d.ts.map +1 -0
  756. package/dist/src/server/refresh.js +13 -0
  757. package/dist/src/server/refresh.js.map +1 -0
  758. package/dist/src/services/AuthenticationService.d.ts +87 -0
  759. package/dist/src/services/AuthenticationService.d.ts.map +1 -0
  760. package/dist/src/services/AuthenticationService.js +222 -0
  761. package/dist/src/services/AuthenticationService.js.map +1 -0
  762. package/dist/src/services/PKCE.d.ts +20 -0
  763. package/dist/src/services/PKCE.d.ts.map +1 -0
  764. package/dist/src/services/PKCE.js +44 -0
  765. package/dist/src/services/PKCE.js.map +1 -0
  766. package/dist/src/services/types.d.ts +23 -0
  767. package/dist/src/services/types.d.ts.map +1 -0
  768. package/dist/src/services/types.js +7 -0
  769. package/dist/src/services/types.js.map +1 -0
  770. package/dist/src/shared/components/CivicAuthIframe.d.ts +8 -0
  771. package/dist/src/shared/components/CivicAuthIframe.d.ts.map +1 -0
  772. package/dist/src/shared/components/CivicAuthIframe.js +9 -0
  773. package/dist/src/shared/components/CivicAuthIframe.js.map +1 -0
  774. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts +9 -0
  775. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts.map +1 -0
  776. package/dist/src/shared/components/CivicAuthIframeContainer.js +130 -0
  777. package/dist/src/shared/components/CivicAuthIframeContainer.js.map +1 -0
  778. package/dist/src/shared/components/CloseIcon.d.ts +4 -0
  779. package/dist/src/shared/components/CloseIcon.d.ts.map +1 -0
  780. package/dist/src/shared/components/CloseIcon.js +6 -0
  781. package/dist/src/shared/components/CloseIcon.js.map +1 -0
  782. package/dist/src/shared/components/LoadingIcon.d.ts +4 -0
  783. package/dist/src/shared/components/LoadingIcon.d.ts.map +1 -0
  784. package/dist/src/shared/components/LoadingIcon.js +24 -0
  785. package/dist/src/shared/components/LoadingIcon.js.map +1 -0
  786. package/dist/src/shared/hooks/index.d.ts +5 -0
  787. package/dist/src/shared/hooks/index.d.ts.map +1 -0
  788. package/dist/src/shared/hooks/index.js +5 -0
  789. package/dist/src/shared/hooks/index.js.map +1 -0
  790. package/dist/src/shared/hooks/useAuth.d.ts +3 -0
  791. package/dist/src/shared/hooks/useAuth.d.ts.map +1 -0
  792. package/dist/src/shared/hooks/useAuth.js +12 -0
  793. package/dist/src/shared/hooks/useAuth.js.map +1 -0
  794. package/dist/src/shared/hooks/useConfig.d.ts +3 -0
  795. package/dist/src/shared/hooks/useConfig.d.ts.map +1 -0
  796. package/dist/src/shared/hooks/useConfig.js +13 -0
  797. package/dist/src/shared/hooks/useConfig.js.map +1 -0
  798. package/dist/src/shared/hooks/useIframe.d.ts +3 -0
  799. package/dist/src/shared/hooks/useIframe.d.ts.map +1 -0
  800. package/dist/src/shared/hooks/useIframe.js +13 -0
  801. package/dist/src/shared/hooks/useIframe.js.map +1 -0
  802. package/dist/src/shared/hooks/useSession.d.ts +3 -0
  803. package/dist/src/shared/hooks/useSession.d.ts.map +1 -0
  804. package/dist/src/shared/hooks/useSession.js +13 -0
  805. package/dist/src/shared/hooks/useSession.js.map +1 -0
  806. package/dist/src/shared/hooks/useToken.d.ts +3 -0
  807. package/dist/src/shared/hooks/useToken.d.ts.map +1 -0
  808. package/dist/src/shared/hooks/useToken.js +12 -0
  809. package/dist/src/shared/hooks/useToken.js.map +1 -0
  810. package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts +15 -0
  811. package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -0
  812. package/dist/src/shared/lib/GenericAuthenticationRefresher.js +43 -0
  813. package/dist/src/shared/lib/GenericAuthenticationRefresher.js.map +1 -0
  814. package/dist/src/shared/lib/UserSession.d.ts +12 -0
  815. package/dist/src/shared/lib/UserSession.d.ts.map +1 -0
  816. package/dist/src/shared/lib/UserSession.js +20 -0
  817. package/dist/src/shared/lib/UserSession.js.map +1 -0
  818. package/dist/src/shared/lib/session.d.ts +3 -0
  819. package/dist/src/shared/lib/session.d.ts.map +1 -0
  820. package/dist/src/shared/lib/session.js +10 -0
  821. package/dist/src/shared/lib/session.js.map +1 -0
  822. package/dist/src/shared/lib/storage.d.ts +25 -0
  823. package/dist/src/shared/lib/storage.d.ts.map +1 -0
  824. package/dist/src/shared/lib/storage.js +17 -0
  825. package/dist/src/shared/lib/storage.js.map +1 -0
  826. package/dist/src/shared/lib/types.d.ts +22 -0
  827. package/dist/src/shared/lib/types.d.ts.map +1 -0
  828. package/dist/src/shared/lib/types.js +16 -0
  829. package/dist/src/shared/lib/types.js.map +1 -0
  830. package/dist/src/shared/lib/util.d.ts +33 -0
  831. package/dist/src/shared/lib/util.d.ts.map +1 -0
  832. package/dist/src/shared/lib/util.js +126 -0
  833. package/dist/src/shared/lib/util.js.map +1 -0
  834. package/dist/src/shared/providers/AuthContext.d.ts +10 -0
  835. package/dist/src/shared/providers/AuthContext.d.ts.map +1 -0
  836. package/dist/src/shared/providers/AuthContext.js +3 -0
  837. package/dist/src/shared/providers/AuthContext.js.map +1 -0
  838. package/dist/src/shared/providers/AuthProvider.d.ts +20 -0
  839. package/dist/src/shared/providers/AuthProvider.d.ts.map +1 -0
  840. package/dist/src/shared/providers/AuthProvider.js +263 -0
  841. package/dist/src/shared/providers/AuthProvider.js.map +1 -0
  842. package/dist/src/shared/providers/CivicAuthProvider.d.ts +6 -0
  843. package/dist/src/shared/providers/CivicAuthProvider.d.ts.map +1 -0
  844. package/dist/src/shared/providers/CivicAuthProvider.js +15 -0
  845. package/dist/src/shared/providers/CivicAuthProvider.js.map +1 -0
  846. package/dist/src/shared/providers/ConfigProvider.d.ts +21 -0
  847. package/dist/src/shared/providers/ConfigProvider.d.ts.map +1 -0
  848. package/dist/src/shared/providers/ConfigProvider.js +19 -0
  849. package/dist/src/shared/providers/ConfigProvider.js.map +1 -0
  850. package/dist/src/shared/providers/IframeProvider.d.ts +16 -0
  851. package/dist/src/shared/providers/IframeProvider.d.ts.map +1 -0
  852. package/dist/src/shared/providers/IframeProvider.js +11 -0
  853. package/dist/src/shared/providers/IframeProvider.js.map +1 -0
  854. package/dist/src/shared/providers/SessionProvider.d.ts +13 -0
  855. package/dist/src/shared/providers/SessionProvider.d.ts.map +1 -0
  856. package/dist/src/shared/providers/SessionProvider.js +13 -0
  857. package/dist/src/shared/providers/SessionProvider.js.map +1 -0
  858. package/dist/src/shared/providers/TokenProvider.d.ts +18 -0
  859. package/dist/src/shared/providers/TokenProvider.d.ts.map +1 -0
  860. package/dist/src/shared/providers/TokenProvider.js +53 -0
  861. package/dist/src/shared/providers/TokenProvider.js.map +1 -0
  862. package/dist/src/shared/providers/UserProvider.d.ts +18 -0
  863. package/dist/src/shared/providers/UserProvider.d.ts.map +1 -0
  864. package/dist/src/shared/providers/UserProvider.js +38 -0
  865. package/dist/src/shared/providers/UserProvider.js.map +1 -0
  866. package/dist/src/types.d.ts +146 -0
  867. package/dist/src/types.d.ts.map +1 -0
  868. package/dist/src/types.js +2 -0
  869. package/dist/src/types.js.map +1 -0
  870. package/dist/src/utils.d.ts +15 -0
  871. package/dist/src/utils.d.ts.map +1 -0
  872. package/dist/src/utils.js +43 -0
  873. package/dist/src/utils.js.map +1 -0
  874. package/dist/storage-ANmRwpZ3.d.ts +25 -0
  875. package/dist/storage-B2eAQNdv.d.ts +25 -0
  876. package/dist/storage-BJPUpxhm.d.mts +25 -0
  877. package/dist/storage-BJyqsZwC.d.mts +25 -0
  878. package/dist/test/integration/sdk.test.d.ts +2 -0
  879. package/dist/test/integration/sdk.test.d.ts.map +1 -0
  880. package/dist/test/integration/sdk.test.js +183 -0
  881. package/dist/test/integration/sdk.test.js.map +1 -0
  882. package/dist/test/support/fixtures.d.ts +26 -0
  883. package/dist/test/support/fixtures.d.ts.map +1 -0
  884. package/dist/test/support/fixtures.js +55 -0
  885. package/dist/test/support/fixtures.js.map +1 -0
  886. package/dist/test/support/tokens.json +26 -0
  887. package/dist/test/unit/lib/oauth.test.d.ts +2 -0
  888. package/dist/test/unit/lib/oauth.test.d.ts.map +1 -0
  889. package/dist/test/unit/lib/oauth.test.js +55 -0
  890. package/dist/test/unit/lib/oauth.test.js.map +1 -0
  891. package/dist/test/unit/logger.test.d.ts +2 -0
  892. package/dist/test/unit/logger.test.d.ts.map +1 -0
  893. package/dist/test/unit/logger.test.js +141 -0
  894. package/dist/test/unit/logger.test.js.map +1 -0
  895. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts +2 -0
  896. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts.map +1 -0
  897. package/dist/test/unit/nextjs/NextAuthProvider.test.js +29 -0
  898. package/dist/test/unit/nextjs/NextAuthProvider.test.js.map +1 -0
  899. package/dist/test/unit/nextjs/config.test.d.ts +2 -0
  900. package/dist/test/unit/nextjs/config.test.d.ts.map +1 -0
  901. package/dist/test/unit/nextjs/config.test.js +189 -0
  902. package/dist/test/unit/nextjs/config.test.js.map +1 -0
  903. package/dist/test/unit/nextjs/getUser.test.d.ts +2 -0
  904. package/dist/test/unit/nextjs/getUser.test.d.ts.map +1 -0
  905. package/dist/test/unit/nextjs/getUser.test.js +36 -0
  906. package/dist/test/unit/nextjs/getUser.test.js.map +1 -0
  907. package/dist/test/unit/nextjs/middleware.test.d.ts +2 -0
  908. package/dist/test/unit/nextjs/middleware.test.d.ts.map +1 -0
  909. package/dist/test/unit/nextjs/middleware.test.js +113 -0
  910. package/dist/test/unit/nextjs/middleware.test.js.map +1 -0
  911. package/dist/test/unit/nextjs/utils.test.d.ts +2 -0
  912. package/dist/test/unit/nextjs/utils.test.d.ts.map +1 -0
  913. package/dist/test/unit/nextjs/utils.test.js +13 -0
  914. package/dist/test/unit/nextjs/utils.test.js.map +1 -0
  915. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts +2 -0
  916. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts.map +1 -0
  917. package/dist/test/unit/publicApi/apiSnapshot.test.js +10 -0
  918. package/dist/test/unit/publicApi/apiSnapshot.test.js.map +1 -0
  919. package/dist/test/unit/react/components/SignInButton.test.d.ts +2 -0
  920. package/dist/test/unit/react/components/SignInButton.test.d.ts.map +1 -0
  921. package/dist/test/unit/react/components/SignInButton.test.js +31 -0
  922. package/dist/test/unit/react/components/SignInButton.test.js.map +1 -0
  923. package/dist/test/unit/react/components/SignOutButton.test.d.ts +2 -0
  924. package/dist/test/unit/react/components/SignOutButton.test.d.ts.map +1 -0
  925. package/dist/test/unit/react/components/SignOutButton.test.js +30 -0
  926. package/dist/test/unit/react/components/SignOutButton.test.js.map +1 -0
  927. package/dist/test/unit/server/login.test.d.ts +2 -0
  928. package/dist/test/unit/server/login.test.d.ts.map +1 -0
  929. package/dist/test/unit/server/login.test.js +127 -0
  930. package/dist/test/unit/server/login.test.js.map +1 -0
  931. package/dist/test/unit/server/session.test.d.ts +2 -0
  932. package/dist/test/unit/server/session.test.d.ts.map +1 -0
  933. package/dist/test/unit/server/session.test.js +41 -0
  934. package/dist/test/unit/server/session.test.js.map +1 -0
  935. package/dist/test/unit/services/AuthenticationService.test.d.ts +2 -0
  936. package/dist/test/unit/services/AuthenticationService.test.d.ts.map +1 -0
  937. package/dist/test/unit/services/AuthenticationService.test.js +104 -0
  938. package/dist/test/unit/services/AuthenticationService.test.js.map +1 -0
  939. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts +2 -0
  940. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts.map +1 -0
  941. package/dist/test/unit/services/ServerAuthenticationResolver.test.js +74 -0
  942. package/dist/test/unit/services/ServerAuthenticationResolver.test.js.map +1 -0
  943. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts +2 -0
  944. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts.map +1 -0
  945. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js +61 -0
  946. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js.map +1 -0
  947. package/dist/test/unit/shared/UserSession.test.d.ts +2 -0
  948. package/dist/test/unit/shared/UserSession.test.d.ts.map +1 -0
  949. package/dist/test/unit/shared/UserSession.test.js +37 -0
  950. package/dist/test/unit/shared/UserSession.test.js.map +1 -0
  951. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts +2 -0
  952. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts.map +1 -0
  953. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js +120 -0
  954. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js.map +1 -0
  955. package/dist/test/unit/shared/storage.test.d.ts +2 -0
  956. package/dist/test/unit/shared/storage.test.d.ts.map +1 -0
  957. package/dist/test/unit/shared/storage.test.js +53 -0
  958. package/dist/test/unit/shared/storage.test.js.map +1 -0
  959. package/dist/test/unit/utils.test.d.ts +2 -0
  960. package/dist/test/unit/utils.test.d.ts.map +1 -0
  961. package/dist/test/unit/utils.test.js +40 -0
  962. package/dist/test/unit/utils.test.js.map +1 -0
  963. package/dist/tsconfig.tsbuildinfo +1 -0
  964. package/dist/types-Bqm9OCZN.d.mts +22 -0
  965. package/dist/types-Bqm9OCZN.d.ts +22 -0
  966. package/dist/types-BxAubCqO.d.mts +58 -0
  967. package/dist/types-BxAubCqO.d.ts +58 -0
  968. package/dist/types-DOfl9w7j.d.mts +23 -0
  969. package/dist/types-DOfl9w7j.d.ts +23 -0
  970. package/dist/types-HdCjGldB.d.mts +58 -0
  971. package/dist/types-HdCjGldB.d.ts +58 -0
  972. package/dist/vitest.config.d.ts +3 -0
  973. package/dist/vitest.config.d.ts.map +1 -0
  974. package/dist/vitest.config.js +40 -0
  975. package/dist/vitest.config.js.map +1 -0
  976. package/package.json +53 -43
  977. package/src/browser/storage.ts +11 -0
  978. package/src/config.ts +6 -0
  979. package/src/constants.ts +29 -0
  980. package/src/index.ts +16 -0
  981. package/src/lib/cookies.ts +28 -0
  982. package/src/lib/jwt.ts +15 -0
  983. package/src/lib/logger.ts +72 -0
  984. package/src/lib/oauth.ts +83 -0
  985. package/src/lib/postMessage.ts +22 -0
  986. package/src/lib/windowUtil.ts +29 -0
  987. package/src/nextjs/GetUser.ts +22 -0
  988. package/src/nextjs/config.ts +205 -0
  989. package/src/nextjs/cookies.ts +162 -0
  990. package/src/nextjs/hooks/index.ts +1 -0
  991. package/src/nextjs/hooks/useTokenCookie.ts +41 -0
  992. package/src/nextjs/hooks/useUserCookie.ts +41 -0
  993. package/src/nextjs/index.ts +20 -0
  994. package/src/nextjs/middleware/index.ts +1 -0
  995. package/src/nextjs/middleware.ts +155 -0
  996. package/src/nextjs/providers/NextAuthProvider.tsx +87 -0
  997. package/src/nextjs/routeHandler.ts +297 -0
  998. package/src/nextjs/utils.ts +9 -0
  999. package/src/reactjs/components/SignInButton.tsx +32 -0
  1000. package/src/reactjs/components/SignOutButton.tsx +24 -0
  1001. package/src/reactjs/components/UserButton.tsx +215 -0
  1002. package/src/reactjs/components/index.ts +5 -0
  1003. package/src/reactjs/hooks/index.ts +6 -0
  1004. package/src/reactjs/hooks/useAuth.ts +15 -0
  1005. package/src/reactjs/hooks/useUser.ts +20 -0
  1006. package/src/reactjs/index.ts +19 -0
  1007. package/src/reactjs/providers/index.ts +27 -0
  1008. package/src/server/ServerAuthenticationResolver.ts +102 -0
  1009. package/src/server/config.ts +17 -0
  1010. package/src/server/index.ts +12 -0
  1011. package/src/server/login.ts +59 -0
  1012. package/src/server/refresh.ts +23 -0
  1013. package/src/services/AuthenticationService.ts +324 -0
  1014. package/src/services/PKCE.ts +45 -0
  1015. package/src/services/types.ts +54 -0
  1016. package/src/shared/components/CivicAuthIframe.tsx +26 -0
  1017. package/src/shared/components/CivicAuthIframeContainer.tsx +190 -0
  1018. package/src/shared/components/CloseIcon.tsx +21 -0
  1019. package/src/shared/components/LoadingIcon.tsx +53 -0
  1020. package/src/shared/hooks/index.ts +4 -0
  1021. package/src/shared/hooks/useAuth.ts +15 -0
  1022. package/src/shared/hooks/useConfig.ts +14 -0
  1023. package/src/shared/hooks/useIframe.ts +14 -0
  1024. package/src/shared/hooks/useSession.ts +14 -0
  1025. package/src/shared/hooks/useToken.ts +15 -0
  1026. package/src/shared/lib/GenericAuthenticationRefresher.ts +70 -0
  1027. package/src/shared/lib/UserSession.ts +25 -0
  1028. package/src/shared/lib/session.ts +11 -0
  1029. package/src/shared/lib/storage.ts +40 -0
  1030. package/src/shared/lib/types.ts +26 -0
  1031. package/src/shared/lib/util.ts +217 -0
  1032. package/src/shared/providers/AuthContext.tsx +11 -0
  1033. package/src/shared/providers/AuthProvider.tsx +390 -0
  1034. package/src/shared/providers/CivicAuthProvider.tsx +31 -0
  1035. package/src/shared/providers/ConfigProvider.tsx +50 -0
  1036. package/src/shared/providers/IframeProvider.tsx +34 -0
  1037. package/src/shared/providers/SessionProvider.tsx +29 -0
  1038. package/src/shared/providers/TokenProvider.tsx +78 -0
  1039. package/src/shared/providers/UserProvider.tsx +80 -0
  1040. package/src/types.ts +227 -0
  1041. package/src/utils.ts +58 -0
  1042. package/test/integration/sdk.test.tsx +266 -0
  1043. package/test/support/fixtures.ts +56 -0
  1044. package/test/support/tokens.json +26 -0
  1045. package/test/unit/lib/oauth.test.ts +72 -0
  1046. package/test/unit/logger.test.ts +175 -0
  1047. package/test/unit/nextjs/NextAuthProvider.test.tsx +38 -0
  1048. package/test/unit/nextjs/config.test.ts +218 -0
  1049. package/test/unit/nextjs/getUser.test.ts +41 -0
  1050. package/test/unit/nextjs/middleware.test.ts +138 -0
  1051. package/test/unit/nextjs/routeHandler.test.ts.skipped +369 -0
  1052. package/test/unit/nextjs/utils.test.ts +17 -0
  1053. package/test/unit/publicApi/__snapshots__/apiSnapshot.test.ts.snap +17 -0
  1054. package/test/unit/publicApi/apiSnapshot.test.ts +11 -0
  1055. package/test/unit/react/components/SignInButton.test.tsx +50 -0
  1056. package/test/unit/react/components/SignOutButton.test.tsx +49 -0
  1057. package/test/unit/server/login.test.ts +181 -0
  1058. package/test/unit/server/session.test.ts +51 -0
  1059. package/test/unit/services/AuthenticationService.test.ts +152 -0
  1060. package/test/unit/services/ServerAuthenticationResolver.test.ts +115 -0
  1061. package/test/unit/shared/GenericAuthenticationRefresher.test.ts +89 -0
  1062. package/test/unit/shared/UserSession.test.ts +42 -0
  1063. package/test/unit/shared/components/CivicAuthIframeContainer.test.tsx +154 -0
  1064. package/test/unit/shared/storage.test.ts +67 -0
  1065. package/test/unit/utils.test.ts +48 -0
  1066. package/tsconfig.build.json +5 -0
  1067. package/tsconfig.cjs.json +8 -0
  1068. package/tsconfig.esm.json +7 -0
  1069. package/tsconfig.json +42 -0
  1070. package/vitest.config.ts +41 -0
  1071. package/dist/chunk-4GIHS7LB.js.map +0 -1
  1072. package/dist/chunk-GNGLWGZJ.mjs +0 -238
  1073. package/dist/chunk-GNGLWGZJ.mjs.map +0 -1
  1074. package/dist/chunk-NQPMNXBL.mjs.map +0 -1
  1075. package/dist/chunk-UV56GNIT.mjs.map +0 -1
  1076. package/dist/chunk-VXIWRZWU.js +0 -238
  1077. package/dist/chunk-VXIWRZWU.js.map +0 -1
  1078. package/dist/chunk-WPISYQG3.js.map +0 -1
  1079. package/dist/index-DoDoIY_K.d.mts +0 -79
  1080. package/dist/index-DoDoIY_K.d.ts +0 -79
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/shared/hooks/useAuth.tsx","../src/shared/AuthContext.tsx","../src/shared/hooks/useSession.tsx","../src/shared/providers/SessionProvider.tsx","../src/shared/hooks/useToken.tsx","../src/shared/providers/TokenProvider.tsx","../src/shared/hooks/useConfig.tsx","../src/config.ts","../src/shared/providers/ConfigProvider.tsx","../src/shared/hooks/useIframe.tsx","../src/shared/providers/IframeProvider.tsx","../src/shared/components/CivicAuthIframeContainer.tsx","../src/shared/components/LoadingIcon.tsx","../src/shared/components/CloseIcon.tsx","../src/shared/components/CivicAuthIframe.tsx","../src/shared/UserProvider.tsx","../src/shared/AuthProvider.tsx"],"sourcesContent":["\"use client\";\nimport { useContext } from \"react\";\n\nimport { AuthContext } from \"@/shared/AuthContext.tsx\";\n\nconst useAuth = () => {\n const context = useContext(AuthContext);\n\n if (!context) {\n throw new Error(\"useAuth must be used within an AuthProvider\");\n }\n\n return context;\n};\n\nexport { useAuth };\n","import { createContext } from \"react\";\nimport { DisplayMode } from \"@/types.ts\";\n\nexport type AuthContextType = {\n signIn: (displayMode?: DisplayMode) => Promise<void>;\n isAuthenticated: boolean;\n isLoading: boolean;\n error: Error | null;\n signOut: () => Promise<void>;\n};\nexport const AuthContext = createContext<AuthContextType | null>(null);\n","\"use client\";\nimport { useContext } from \"react\";\nimport { SessionContext } from \"@/shared/providers/SessionProvider\";\n\n// TokenProvider will use this internal context to access session\nconst useSession = () => {\n const context = useContext(SessionContext);\n if (!context) {\n throw new Error(\"useSession must be used within an SessionProvider\");\n }\n return context;\n};\n\nexport { useSession };\n","\"use client\";\nimport { SessionData } from \"@/types\";\nimport { createContext, ReactNode } from \"react\";\n\nexport type SessionProviderOutput = SessionData;\nconst defaultSession: SessionProviderOutput = {\n authenticated: false,\n idToken: undefined,\n accessToken: undefined,\n displayMode: \"iframe\",\n};\n\n// Context for exposing session specifically to the TokenProvider\nconst SessionContext = createContext<SessionProviderOutput>(defaultSession);\n\ntype SessionContextType = {\n children: ReactNode;\n session?: SessionData | null;\n};\n\nconst SessionProvider = ({ children, session }: SessionContextType) => (\n <SessionContext.Provider value={{ ...defaultSession, ...(session || {}) }}>\n {children}\n </SessionContext.Provider>\n);\n\nexport type { SessionContextType };\nexport { SessionProvider, SessionContext };\n","\"use client\";\nimport { useContext } from \"react\";\nimport { TokenContext } from \"@/shared/providers/TokenProvider\";\n\nconst useToken = () => {\n const context = useContext(TokenContext);\n\n if (!context) {\n throw new Error(\"useToken must be used within a TokenProvider\");\n }\n\n return context;\n};\n\nexport { useToken };\n","\"use client\";\nimport { createContext, ReactNode, useMemo } from \"react\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useAuth } from \"@/shared/hooks/useAuth\";\nimport { useSession } from \"@/shared/hooks/useSession\";\nimport { ForwardedTokens, IdToken } from \"@/types\";\nimport { parseJWT } from \"oslo/jwt\";\nimport { convertForwardedTokenFormat } from \"@/lib/jwt.js\";\n\ntype TokenContextType = {\n accessToken: string | null;\n idToken: string | null;\n forwardedTokens: ForwardedTokens;\n refreshToken: () => Promise<void>;\n isLoading: boolean;\n error: Error | null;\n};\n\nconst TokenContext = createContext<TokenContextType | undefined>(undefined);\n\nconst TokenProvider = ({ children }: { children: ReactNode }) => {\n const { isLoading, error: authError } = useAuth();\n const session = useSession();\n const queryClient = useQueryClient();\n\n const refreshTokenMutation = useMutation({\n mutationFn: async () => {\n // Implement token refresh logic here\n throw new Error(\"Method not implemented.\");\n },\n onSuccess: () => {\n // Invalidate and refetch queries that depend on the auth session\n queryClient.invalidateQueries({ queryKey: [\"session\"] });\n },\n });\n\n const decodeTokens = useMemo(() => {\n if (!session?.idToken) return null;\n\n const parsedJWT = parseJWT(session.idToken) as IdToken | null;\n\n if (!parsedJWT) return null;\n\n const { forwardedTokens } = parsedJWT.payload;\n\n return forwardedTokens\n ? convertForwardedTokenFormat(forwardedTokens)\n : null;\n }, [session?.idToken]);\n\n const value = useMemo(\n () => ({\n accessToken: session.accessToken || null,\n idToken: session.idToken || null,\n forwardedTokens: decodeTokens || {},\n refreshToken: refreshTokenMutation.mutateAsync,\n isLoading,\n error: (authError || refreshTokenMutation.error) as Error | null,\n }),\n [\n session.accessToken,\n session.idToken,\n decodeTokens,\n refreshTokenMutation.mutateAsync,\n refreshTokenMutation.error,\n isLoading,\n authError,\n ],\n );\n\n return (\n <TokenContext.Provider value={value}>{children}</TokenContext.Provider>\n );\n};\n\nexport type { TokenContextType };\nexport { TokenProvider, TokenContext };\n","\"use client\";\nimport { useContext } from \"react\";\nimport { ConfigContext } from \"@/shared/providers/ConfigProvider\";\n\n// TokenProvider will use this internal context to access Config\nconst useConfig = () => {\n const context = useContext(ConfigContext);\n if (!context) {\n throw new Error(\"useConfig must be used within an ConfigProvider\");\n }\n return context;\n};\n\nexport { useConfig };\n","import { Config } from \"@/types\";\nimport { DEFAULT_AUTH_SERVER } from \"./constants\";\n\nexport const authConfig: Config = {\n oauthServer: DEFAULT_AUTH_SERVER,\n};\n","\"use client\";\nimport { authConfig } from \"@/config\";\nimport { Config } from \"@/types\";\nimport { createContext, ReactNode } from \"react\";\n\nexport type ConfigProviderOutput = {\n config: Config;\n redirectUrl: string;\n modalIframe: boolean;\n serverTokenExchange: boolean;\n};\nconst defaultConfig: ConfigProviderOutput = {\n config: authConfig,\n redirectUrl: \"\",\n modalIframe: true,\n serverTokenExchange: false,\n};\n// Context for exposing Config specifically to the TokenProvider\nconst ConfigContext = createContext<ConfigProviderOutput>(defaultConfig);\n\ntype ConfigContextType = {\n children: ReactNode;\n config: Config;\n redirectUrl: string;\n modalIframe?: boolean;\n serverTokenExchange: boolean;\n};\n\nconst ConfigProvider = ({\n children,\n config,\n redirectUrl,\n modalIframe,\n serverTokenExchange,\n}: ConfigContextType) => (\n <ConfigContext.Provider\n value={{\n config,\n redirectUrl,\n modalIframe: !!modalIframe,\n serverTokenExchange,\n }}\n >\n {children}\n </ConfigContext.Provider>\n);\n\nexport type { ConfigContextType };\nexport { ConfigProvider, ConfigContext };\n","\"use client\";\nimport { useContext } from \"react\";\nimport { IframeContext } from \"@/shared/providers/IframeProvider\";\n\n// TokenProvider will use this internal context to access Iframe\nconst useIframe = () => {\n const context = useContext(IframeContext);\n if (!context) {\n throw new Error(\"useIframe must be used within an IframeProvider\");\n }\n return context;\n};\n\nexport { useIframe };\n","\"use client\";\nimport {\n createContext,\n Dispatch,\n ReactNode,\n RefObject,\n SetStateAction,\n} from \"react\";\n\nexport type IframeProviderOutput = {\n iframeRef: RefObject<HTMLIFrameElement> | null;\n setAuthResponseUrl: Dispatch<SetStateAction<string | null>>;\n};\nconst defaultIframe: IframeProviderOutput = {\n iframeRef: null,\n setAuthResponseUrl: () => {},\n};\n\n// Context for exposing Iframe specifically to the TokenProvider\nconst IframeContext = createContext<IframeProviderOutput>(defaultIframe);\n\ntype IframeContextType = {\n children: ReactNode;\n iframeRef: RefObject<HTMLIFrameElement> | null;\n setAuthResponseUrl: Dispatch<SetStateAction<string | null>>;\n};\n\nconst IframeProvider = ({\n children,\n iframeRef,\n setAuthResponseUrl,\n}: IframeContextType) => (\n <IframeContext.Provider value={{ iframeRef, setAuthResponseUrl }}>\n {children}\n </IframeContext.Provider>\n);\n\nexport type { IframeContextType };\nexport { IframeProvider, IframeContext };\n","\"use client\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { LoadingIcon } from \"@/shared/components/LoadingIcon\";\nimport { CloseIcon } from \"@/shared/components/CloseIcon\";\nimport { CivicAuthIframe } from \"@/shared/components/CivicAuthIframe\";\nimport { useAuth, useConfig, useIframe } from \"@/shared/hooks\";\nimport React from \"react\";\nimport { TOKEN_EXCHANGE_TRIGGER_TEXT } from \"@/constants\";\n\ntype CivicAuthIframeContainerProps = {\n onClose?: () => void;\n closeOnRedirect?: boolean;\n};\n\nfunction NoChrome({\n children,\n}: {\n children: React.ReactNode;\n onClose?: () => void;\n}) {\n return <div className=\"cac-relative\">{children}</div>;\n}\n\nfunction IframeChrome({\n children,\n onClose,\n}: {\n children: React.ReactNode;\n onClose?: () => void;\n}) {\n return (\n <div\n className=\"cac-absolute cac-left-0 cac-top-0 cac-z-50 cac-flex cac-h-screen cac-w-screen cac-items-center cac-justify-center cac-bg-neutral-950 cac-bg-opacity-50\"\n onClick={onClose}\n >\n <div\n className=\"cac-relative cac-rounded-3xl cac-bg-white cac-p-6 cac-shadow-lg\"\n onClick={(e) => e.stopPropagation()}\n >\n <button\n className=\"cac-absolute cac-right-4 cac-top-4 cac-flex cac-cursor-pointer cac-items-center cac-justify-center cac-border-none cac-bg-transparent cac-p-1 cac-text-neutral-400\"\n onClick={onClose}\n >\n <CloseIcon />\n </button>\n\n {children}\n </div>\n </div>\n );\n}\nconst CivicAuthIframeContainer = ({\n onClose,\n closeOnRedirect = true,\n}: CivicAuthIframeContainerProps) => {\n const [isLoading, setIsLoading] = useState(true);\n const { isLoading: isAuthLoading } = useAuth();\n const config = useConfig();\n const { setAuthResponseUrl, iframeRef } = useIframe();\n const processIframeUrl = useCallback(() => {\n if (iframeRef && iframeRef.current && iframeRef.current.contentWindow) {\n try {\n const iframeUrl = iframeRef.current.contentWindow.location.href;\n // we know that oauth has finished when the iframe redirects to our redirectUrl\n if (iframeUrl.startsWith(config.redirectUrl)) {\n // we still want to show the spinner during redirect\n setIsLoading(true);\n const iframeBody =\n iframeRef.current.contentWindow.document.body.innerHTML;\n\n // If we're doing a server token exchange, we need to call the server a second time\n // using a fetch so that we're on the same domain and cookies can be sent and read\n // The server will use the presence of the code_verifier cookie to determine whether to do a token exchange or not.\n // On the initial (3rd party) redirect from the auth server, the cookie won't be sent, so the server-side callback route will just render a blank page,\n // and we'll do the exchange request from here, which will include the cookies.\n if (iframeBody.includes(TOKEN_EXCHANGE_TRIGGER_TEXT)) {\n console.log(\n `${TOKEN_EXCHANGE_TRIGGER_TEXT}, calling callback URL again...`,\n );\n const params = new URL(iframeUrl).searchParams;\n fetch(`${config.redirectUrl}?${params.toString()}`);\n } else {\n // if we're doing token-exchange in the client, we can just set the authResponseUrl\n // to be handled by the auth provider\n setAuthResponseUrl(iframeUrl);\n }\n\n if (closeOnRedirect) onClose?.();\n return true; // Successfully processed the URL\n }\n } catch {\n // If we get here, the iframe hasn't redirected to our origin yet\n console.log(\"Waiting for redirect...\");\n }\n }\n return false; // Haven't processed the URL yet\n }, [\n closeOnRedirect,\n config.redirectUrl,\n iframeRef,\n onClose,\n setAuthResponseUrl,\n ]);\n\n const intervalId = useRef<NodeJS.Timeout>();\n\n const handleEscape = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onClose?.();\n }\n },\n [onClose],\n );\n\n // handle Escape\n useEffect(() => {\n window.addEventListener(\"keydown\", handleEscape);\n\n return () => window.removeEventListener(\"keydown\", handleEscape);\n });\n\n const handleIframeLoad = () => {\n setIsLoading(false);\n console.log(\"handleIframeLoad\");\n if (processIframeUrl() && intervalId.current) {\n clearInterval(intervalId.current);\n }\n };\n const showLoadingIcon =\n isLoading || isAuthLoading || !iframeRef?.current?.getAttribute(\"src\");\n\n const WrapperComponent = config.modalIframe ? IframeChrome : NoChrome;\n\n return (\n <WrapperComponent onClose={onClose}>\n {showLoadingIcon && (\n <div className=\"cac-absolute cac-inset-0 cac-flex cac-items-center cac-justify-center cac-rounded-3xl cac-bg-white\">\n <LoadingIcon />\n </div>\n )}\n\n <CivicAuthIframe ref={iframeRef} onLoad={handleIframeLoad} />\n </WrapperComponent>\n );\n};\n\nexport type { CivicAuthIframeContainerProps };\n\nexport { CivicAuthIframeContainer };\n","const LoadingIcon = () => (\n <div role=\"status\">\n <svg\n aria-hidden=\"true\"\n className=\"cac-inline cac-h-8 cac-w-8 cac-animate-spin cac-fill-neutral-600 cac-text-neutral-200 dark:cac-fill-neutral-300 dark:cac-text-neutral-600\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n <span className=\"cac-sr-only\">Loading...</span>\n </div>\n);\n\nexport { LoadingIcon };\n","const CloseIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-x\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n);\n\nexport { CloseIcon };\n","\"use client\";\nimport { IFRAME_ID } from \"@/constants\";\nimport { forwardRef } from \"react\";\n\ntype CivicAuthIframeProps = {\n onLoad?: () => void;\n};\n\nconst CivicAuthIframe = forwardRef<HTMLIFrameElement, CivicAuthIframeProps>(\n ({ onLoad }, ref) => {\n return (\n <iframe\n id={IFRAME_ID}\n ref={ref}\n className=\"cac-h-[26rem] cac-w-80 cac-border-none\"\n onLoad={onLoad}\n />\n );\n },\n);\n\nCivicAuthIframe.displayName = \"CivicAuthIframe\";\n\nexport type { CivicAuthIframeProps };\n\nexport { CivicAuthIframe };\n","\"use client\";\nimport { createContext, ReactNode } from \"react\";\nimport { useQuery, UseQueryResult } from \"@tanstack/react-query\";\nimport { JWT } from \"oslo/jwt\";\nimport { AuthStorage, EmptyObject, User } from \"@/types\";\nimport { useAuth } from \"@/shared/hooks/useAuth\";\nimport { useToken } from \"@/shared/hooks/useToken\";\nimport { useSession } from \"@/shared/hooks/useSession\";\nimport { AuthContextType } from \"@/shared/AuthContext\";\nimport { GenericUserSession } from \"@/shared/UserSession\";\n\ntype UserContextType<\n T extends Record<string, unknown> & JWT[\"payload\"] = Record<string, unknown> &\n JWT[\"payload\"],\n> = {\n user: User<T> | null;\n} & Omit<AuthContextType, \"isAuthenticated\">;\n\nconst UserContext = createContext<UserContextType | null>(null);\n\nconst UserProvider = <T extends EmptyObject>({\n children,\n storage,\n user: inputUser,\n signOut: inputSignOut,\n}: {\n children: ReactNode;\n storage: AuthStorage;\n user?: User<T> | null;\n signOut?: () => Promise<void>;\n}) => {\n const { isLoading: authLoading, error: authError } = useAuth();\n const session = useSession();\n const { accessToken } = useToken();\n const { signIn, signOut } = useAuth();\n\n const fetchUser = async (): Promise<User | null> => {\n if (!accessToken) {\n return null;\n }\n const userSession = new GenericUserSession(storage);\n return userSession.get();\n };\n\n const {\n data: user,\n isLoading: userLoading,\n error: userError,\n }: UseQueryResult<User<T> | null, Error> = useQuery({\n queryKey: [\"user\", session?.idToken],\n queryFn: fetchUser,\n enabled: !!session?.idToken, // Only run the query if we have an access token\n });\n\n const isLoading = authLoading || userLoading;\n const error = authError || userError;\n\n return (\n <UserContext.Provider\n value={{\n user: (inputUser || user) ?? null,\n isLoading,\n error,\n signIn,\n signOut: inputSignOut || signOut,\n }}\n >\n {children}\n </UserContext.Provider>\n );\n};\n\nexport type { UserContextType };\n\nexport { UserProvider, UserContext };\n","\"use client\";\nimport {\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { Config, DisplayMode, SessionData } from \"@/types\";\nimport { CivicAuthIframeContainer } from \"@/shared/components/CivicAuthIframeContainer\";\nimport { TokenProvider } from \"@/shared/providers/TokenProvider\";\nimport { SessionProvider } from \"@/shared/providers/SessionProvider\";\nimport { DEFAULT_SCOPES } from \"@/constants\";\nimport { authConfig } from \"@/config\";\nimport { LoadingIcon } from \"@/shared/components/LoadingIcon\";\nimport { isWindowInIframe } from \"@/lib/windowUtil\";\nimport { AuthContext } from \"@/shared/AuthContext\";\nimport {\n BrowserAuthenticationInitiator,\n BrowserAuthenticationService,\n} from \"@/services/AuthenticationService\";\nimport {\n AuthenticationResolver,\n PKCEConsumer,\n PopupError,\n} from \"@/services/types\";\nimport { ConfidentialClientPKCEConsumer } from \"@/services/PKCE\";\nimport { generateState } from \"@/lib/oauth\";\nimport { LocalStorageAdapter } from \"@/browser/storage\";\nimport { ConfigProvider } from \"@/shared/providers/ConfigProvider\";\nimport { getUser } from \"./session\";\nimport { GenericUserSession } from \"./UserSession\";\nimport { IframeProvider } from \"@/shared/providers/IframeProvider\";\n\n// Global this object setup\nlet globalThisObject;\nif (typeof window !== \"undefined\") {\n globalThisObject = window;\n} else if (typeof global !== \"undefined\") {\n globalThisObject = global;\n} else {\n globalThisObject = Function(\"return this\")();\n}\nglobalThisObject.globalThis = globalThisObject;\n\nexport type AuthProviderProps = {\n children: ReactNode;\n clientId: string;\n redirectUrl?: string;\n nonce?: string;\n config?: Config;\n onSignIn?: (error?: Error) => void;\n onSignOut?: () => Promise<void>;\n pkceConsumer?: PKCEConsumer;\n modalIframe?: boolean;\n sessionData?: SessionData;\n};\n\nfunction BlockDisplay({ children }: { children: ReactNode }) {\n return (\n <div className=\"cac-relative cac-left-0 cac-top-0 cac-z-50 cac-flex cac-h-screen cac-w-screen cac-items-center cac-justify-center cac-bg-white\">\n <div className=\"cac-absolute cac-inset-0 cac-flex cac-items-center cac-justify-center cac-bg-white\">\n {children}\n </div>\n </div>\n );\n}\n\nconst AuthProvider = ({\n children,\n clientId,\n redirectUrl: inputRedirectUrl,\n config = authConfig,\n onSignIn,\n onSignOut,\n pkceConsumer,\n nonce,\n modalIframe = true,\n sessionData: inputSessionData,\n}: AuthProviderProps) => {\n const [iframeUrl, setIframeUrl] = useState<string | null>(null);\n const [currentUrl, setCurrentUrl] = useState<string | null>(null);\n const [isInIframe, setIsInIframe] = useState(false);\n const [authResponseUrl, setAuthResponseUrl] = useState<string | null>(null);\n const [tokenExchangeError, setTokenExchangeError] = useState<Error>();\n const [displayMode, setDisplayMode] = useState<DisplayMode>(\"iframe\");\n const [browserAuthenticationInitiator, setBrowserAuthenticationInitiator] =\n useState<BrowserAuthenticationInitiator | null>();\n const [showIFrame, setShowIFrame] = useState(false);\n const [isRedirecting, setIsRedirecting] = useState(false);\n const queryClient = useQueryClient();\n const iframeRef = useRef<HTMLIFrameElement>(null);\n\n // TODO maybe we want to support or derive serverTokenExchange another way?\n const serverTokenExchange =\n pkceConsumer instanceof ConfidentialClientPKCEConsumer;\n // check if the current window is in an iframe with the iframe id, and set an isInIframe state\n useEffect(() => {\n if (typeof globalThis.window !== \"undefined\") {\n setCurrentUrl(globalThis.window.location.href);\n const isInIframeVal = isWindowInIframe(globalThis.window);\n setIsInIframe(isInIframeVal);\n }\n }, []);\n\n const redirectUrl = useMemo(\n () => (inputRedirectUrl || currentUrl || \"\").split(\"?\")[0],\n [currentUrl, inputRedirectUrl],\n );\n\n const [authService, setAuthService] = useState<AuthenticationResolver>();\n\n useEffect(() => {\n if (!currentUrl) return;\n BrowserAuthenticationService.build({\n clientId,\n redirectUrl,\n oauthServer: config.oauthServer,\n scopes: DEFAULT_SCOPES,\n displayMode,\n }).then(setAuthService);\n }, [currentUrl, clientId, redirectUrl, config, displayMode]);\n\n const {\n data: session,\n isLoading,\n error,\n } = useQuery({\n queryKey: [\n \"session\",\n authResponseUrl,\n iframeUrl,\n currentUrl,\n isInIframe,\n authService,\n ],\n queryFn: async () => {\n if (!authService) {\n return { authenticated: false };\n }\n if (inputSessionData) {\n return inputSessionData;\n }\n const url = new URL(\n authResponseUrl\n ? authResponseUrl\n : globalThis.window.location.href || \"\",\n );\n // if we have existing tokens, then validate them and return the session data\n // otherwise check if we have a code in the url and exchange it for tokens\n // if we have neither, return undefined\n const existingSessionData = await authService.validateExistingSession();\n if (existingSessionData.authenticated) {\n return existingSessionData;\n }\n const code = url.searchParams.get(\"code\");\n const state = url.searchParams.get(\"state\");\n if (!serverTokenExchange && code && state && !isInIframe) {\n try {\n console.log(\"AuthProvider useQuery code\", {\n isInIframe,\n code,\n state,\n });\n await authService.tokenExchange(code, state);\n const clientStorage = new LocalStorageAdapter();\n const user = await getUser(clientStorage);\n if (!user) {\n throw new Error(\"Failed to get user info\");\n }\n\n const userSession = new GenericUserSession(clientStorage);\n userSession.set(user);\n\n onSignIn?.(); // Call onSignIn without an error if successful\n return authService.getSessionData();\n } catch (error) {\n setTokenExchangeError(error as Error);\n onSignIn?.(\n error instanceof Error ? error : new Error(\"Failed to sign in\"),\n ); // Pass the error to onSignIn\n return { authenticated: false };\n }\n }\n\n return existingSessionData;\n },\n });\n\n const signOutMutation = useMutation({\n mutationFn: async () => {\n // Implement signOut logic here\n const authInitiator = getAuthInitiator();\n authInitiator?.signOut();\n setIframeUrl(null);\n setShowIFrame(false);\n setAuthResponseUrl(null);\n onSignOut?.();\n },\n onSuccess: () => {\n queryClient.setQueryData(\n [\n \"session\",\n authResponseUrl,\n iframeUrl,\n currentUrl,\n isInIframe,\n authService,\n ],\n null,\n );\n },\n });\n\n const getAuthInitiator = useCallback(\n (overrideDisplayMode?: DisplayMode) => {\n const useDisplayMode = overrideDisplayMode || displayMode;\n if (!pkceConsumer) {\n return null;\n }\n return (\n browserAuthenticationInitiator ||\n new BrowserAuthenticationInitiator({\n pkceConsumer, // generate and retrieve the challenge client-side\n clientId,\n redirectUrl,\n state: generateState(useDisplayMode, serverTokenExchange),\n scopes: DEFAULT_SCOPES,\n displayMode: useDisplayMode,\n oauthServer: config.oauthServer,\n // the endpoints to use for the login (if not obtained from the auth server\n endpointOverrides: config.endpoints,\n nonce,\n })\n );\n },\n [\n serverTokenExchange,\n displayMode,\n browserAuthenticationInitiator,\n clientId,\n redirectUrl,\n config.oauthServer,\n config.endpoints,\n pkceConsumer,\n nonce,\n ],\n );\n\n const signIn = useCallback(\n async (overrideDisplayMode: DisplayMode = \"iframe\") => {\n setDisplayMode(overrideDisplayMode);\n const authInitiator = getAuthInitiator(overrideDisplayMode);\n setBrowserAuthenticationInitiator(authInitiator);\n if (overrideDisplayMode === \"iframe\") {\n setShowIFrame(true);\n } else if (overrideDisplayMode === \"redirect\") {\n setIsRedirecting(true);\n }\n authInitiator?.signIn(iframeRef.current).catch((error) => {\n console.log(\"signIn error\", {\n error,\n isPopupError: error instanceof PopupError,\n });\n // if we've tried to open a popup and it has failed, then fallback to redirect mode\n if (error instanceof PopupError) {\n signIn(\"redirect\");\n }\n });\n },\n [getAuthInitiator],\n );\n\n // remove event listeners when the component unmounts\n useEffect(() => {\n return () => {\n if (browserAuthenticationInitiator) {\n browserAuthenticationInitiator.cleanup();\n }\n };\n }, [browserAuthenticationInitiator]);\n\n const isAuthenticated = useMemo(\n () => (session ? session.authenticated : false),\n [session],\n );\n\n useQuery({\n queryKey: [\"autoSignIn\", modalIframe, redirectUrl, isAuthenticated],\n queryFn: async () => {\n if (\n !modalIframe &&\n redirectUrl &&\n !isAuthenticated &&\n iframeRef.current\n ) {\n signIn(\"iframe\");\n }\n return true;\n },\n refetchOnWindowFocus: false,\n });\n\n const value = useMemo(\n () => ({\n isLoading,\n error: error as Error | null,\n signOut: async () => {\n await signOutMutation.mutateAsync();\n },\n isAuthenticated,\n signIn,\n }),\n [isLoading, error, signOutMutation, isAuthenticated, signIn],\n );\n return (\n <AuthContext.Provider value={value}>\n <ConfigProvider\n config={config}\n redirectUrl={redirectUrl}\n modalIframe={modalIframe}\n serverTokenExchange={serverTokenExchange}\n >\n <IframeProvider\n setAuthResponseUrl={setAuthResponseUrl}\n iframeRef={iframeRef}\n >\n <SessionProvider session={session}>\n <TokenProvider>\n {modalIframe && !isInIframe && !session?.authenticated && (\n <div\n style={\n showIFrame ? { display: \"block\" } : { display: \"none\" }\n }\n >\n <CivicAuthIframeContainer\n onClose={() => setShowIFrame(false)}\n />\n </div>\n )}\n\n {modalIframe &&\n (isInIframe ||\n isRedirecting ||\n (isLoading && !serverTokenExchange)) && (\n <BlockDisplay>\n <LoadingIcon />\n </BlockDisplay>\n )}\n\n {(tokenExchangeError || error) && (\n <BlockDisplay>\n <div>\n Error: {(tokenExchangeError || (error as Error)).message}\n </div>\n </BlockDisplay>\n )}\n {children}\n </TokenProvider>\n </SessionProvider>\n </IframeProvider>\n </ConfigProvider>\n </AuthContext.Provider>\n );\n};\n\nexport { AuthProvider };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,kBAAkB;;;ACD3B,SAAS,qBAAqB;AAUvB,IAAM,cAAc,cAAsC,IAAI;;;ADLrE,IAAM,UAAU,MAAM;AACpB,QAAM,UAAU,WAAW,WAAW;AAEtC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AAEA,SAAO;AACT;;;AEZA,SAAS,cAAAA,mBAAkB;;;ACC3B,SAAS,iBAAAC,sBAAgC;AAmBvC;AAhBF,IAAM,iBAAwC;AAAA,EAC5C,eAAe;AAAA,EACf,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AACf;AAGA,IAAM,iBAAiBC,eAAqC,cAAc;AAO1E,IAAM,kBAAkB,CAAC,EAAE,UAAU,QAAQ,MAC3C,oBAAC,eAAe,UAAf,EAAwB,OAAO,kCAAK,iBAAoB,WAAW,CAAC,IAClE,UACH;;;ADlBF,IAAM,aAAa,MAAM;AACvB,QAAM,UAAUC,YAAW,cAAc;AACzC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AACA,SAAO;AACT;;;AEVA,SAAS,cAAAC,mBAAkB;;;ACA3B,SAAS,iBAAAC,gBAA0B,eAAe;AAClD,SAAS,aAAa,sBAAsB;AAI5C,SAAS,gBAAgB;AAiErB,gBAAAC,YAAA;AArDJ,IAAM,eAAeC,eAA4C,MAAS;AAE1E,IAAM,gBAAgB,CAAC,EAAE,SAAS,MAA+B;AAC/D,QAAM,EAAE,WAAW,OAAO,UAAU,IAAI,QAAQ;AAChD,QAAM,UAAU,WAAW;AAC3B,QAAM,cAAc,eAAe;AAEnC,QAAM,uBAAuB,YAAY;AAAA,IACvC,YAAY,MAAY;AAEtB,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC3C;AAAA,IACA,WAAW,MAAM;AAEf,kBAAY,kBAAkB,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;AAAA,IACzD;AAAA,EACF,CAAC;AAED,QAAM,eAAe,QAAQ,MAAM;AACjC,QAAI,EAAC,mCAAS,SAAS,QAAO;AAE9B,UAAM,YAAY,SAAS,QAAQ,OAAO;AAE1C,QAAI,CAAC,UAAW,QAAO;AAEvB,UAAM,EAAE,gBAAgB,IAAI,UAAU;AAEtC,WAAO,kBACH,4BAA4B,eAAe,IAC3C;AAAA,EACN,GAAG,CAAC,mCAAS,OAAO,CAAC;AAErB,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL,aAAa,QAAQ,eAAe;AAAA,MACpC,SAAS,QAAQ,WAAW;AAAA,MAC5B,iBAAiB,gBAAgB,CAAC;AAAA,MAClC,cAAc,qBAAqB;AAAA,MACnC;AAAA,MACA,OAAQ,aAAa,qBAAqB;AAAA,IAC5C;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR;AAAA,MACA,qBAAqB;AAAA,MACrB,qBAAqB;AAAA,MACrB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SACE,gBAAAD,KAAC,aAAa,UAAb,EAAsB,OAAe,UAAS;AAEnD;;;ADrEA,IAAM,WAAW,MAAM;AACrB,QAAM,UAAUE,YAAW,YAAY;AAEvC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AAEA,SAAO;AACT;;;AEXA,SAAS,cAAAC,mBAAkB;;;ACEpB,IAAM,aAAqB;AAAA,EAChC,aAAa;AACf;;;ACFA,SAAS,iBAAAC,sBAAgC;AAgCvC,gBAAAC,YAAA;AAxBF,IAAM,gBAAsC;AAAA,EAC1C,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,aAAa;AAAA,EACb,qBAAqB;AACvB;AAEA,IAAM,gBAAgBD,eAAoC,aAAa;AAUvE,IAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE,gBAAAC;AAAA,EAAC,cAAc;AAAA,EAAd;AAAA,IACC,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,aAAa,CAAC,CAAC;AAAA,MACf;AAAA,IACF;AAAA,IAEC;AAAA;AACH;;;AFvCF,IAAM,YAAY,MAAM;AACtB,QAAM,UAAUC,YAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACnE;AACA,SAAO;AACT;;;AGVA,SAAS,cAAAC,mBAAkB;;;ACA3B;AAAA,EACE,iBAAAC;AAAA,OAKK;AAyBL,gBAAAC,YAAA;AAnBF,IAAM,gBAAsC;AAAA,EAC1C,WAAW;AAAA,EACX,oBAAoB,MAAM;AAAA,EAAC;AAC7B;AAGA,IAAM,gBAAgBD,eAAoC,aAAa;AAQvE,IAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF,MACE,gBAAAC,KAAC,cAAc,UAAd,EAAuB,OAAO,EAAE,WAAW,mBAAmB,GAC5D,UACH;;;AD7BF,IAAM,YAAY,MAAM;AACtB,QAAM,UAAUC,YAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACnE;AACA,SAAO;AACT;;;AEVA,SAAS,aAAa,WAAW,QAAQ,gBAAgB;;;ACCrD,SAOE,OAAAC,MAPF;AAFJ,IAAM,cAAc,MAClB,qBAAC,SAAI,MAAK,UACR;AAAA;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MAEN;AAAA,wBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA;AAAA;AAAA,EACF;AAAA,EACA,gBAAAA,KAAC,UAAK,WAAU,eAAc,wBAAU;AAAA,GAC1C;;;AClBA,SAYE,OAAAC,MAZF,QAAAC,aAAA;AADF,IAAM,YAAY,MAChB,gBAAAA;AAAA,EAAC;AAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,WAAU;AAAA,IAEV;AAAA,sBAAAD,KAAC,UAAK,GAAE,cAAa;AAAA,MACrB,gBAAAA,KAAC,UAAK,GAAE,cAAa;AAAA;AAAA;AACvB;;;ACbF,SAAS,kBAAkB;AASrB,gBAAAE,YAAA;AAHN,IAAM,kBAAkB;AAAA,EACtB,CAAC,EAAE,OAAO,GAAG,QAAQ;AACnB,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAI;AAAA,QACJ;AAAA,QACA,WAAU;AAAA,QACV;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,gBAAgB,cAAc;;;AHDrB,gBAAAC,MAeH,QAAAC,aAfG;AANT,SAAS,SAAS;AAAA,EAChB;AACF,GAGG;AACD,SAAO,gBAAAD,KAAC,SAAI,WAAU,gBAAgB,UAAS;AACjD;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AACF,GAGG;AACD,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,SAAS;AAAA,MAET,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,UAElC;AAAA,4BAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS;AAAA,gBAET,0BAAAA,KAAC,aAAU;AAAA;AAAA,YACb;AAAA,YAEC;AAAA;AAAA;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;AACA,IAAM,2BAA2B,CAAC;AAAA,EAChC;AAAA,EACA,kBAAkB;AACpB,MAAqC;AAtDrC;AAuDE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,IAAI;AAC/C,QAAM,EAAE,WAAW,cAAc,IAAI,QAAQ;AAC7C,QAAM,SAAS,UAAU;AACzB,QAAM,EAAE,oBAAoB,UAAU,IAAI,UAAU;AACpD,QAAM,mBAAmB,YAAY,MAAM;AACzC,QAAI,aAAa,UAAU,WAAW,UAAU,QAAQ,eAAe;AACrE,UAAI;AACF,cAAM,YAAY,UAAU,QAAQ,cAAc,SAAS;AAE3D,YAAI,UAAU,WAAW,OAAO,WAAW,GAAG;AAE5C,uBAAa,IAAI;AACjB,gBAAM,aACJ,UAAU,QAAQ,cAAc,SAAS,KAAK;AAOhD,cAAI,WAAW,SAAS,2BAA2B,GAAG;AACpD,oBAAQ;AAAA,cACN,GAAG,2BAA2B;AAAA,YAChC;AACA,kBAAM,SAAS,IAAI,IAAI,SAAS,EAAE;AAClC,kBAAM,GAAG,OAAO,WAAW,IAAI,OAAO,SAAS,CAAC,EAAE;AAAA,UACpD,OAAO;AAGL,+BAAmB,SAAS;AAAA,UAC9B;AAEA,cAAI,gBAAiB;AACrB,iBAAO;AAAA,QACT;AAAA,MACF,SAAQ;AAEN,gBAAQ,IAAI,yBAAyB;AAAA,MACvC;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG;AAAA,IACD;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,aAAa,OAAuB;AAE1C,QAAM,eAAe;AAAA,IACnB,CAAC,UAAyB;AACxB,UAAI,MAAM,QAAQ,UAAU;AAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAGA,YAAU,MAAM;AACd,WAAO,iBAAiB,WAAW,YAAY;AAE/C,WAAO,MAAM,OAAO,oBAAoB,WAAW,YAAY;AAAA,EACjE,CAAC;AAED,QAAM,mBAAmB,MAAM;AAC7B,iBAAa,KAAK;AAClB,YAAQ,IAAI,kBAAkB;AAC9B,QAAI,iBAAiB,KAAK,WAAW,SAAS;AAC5C,oBAAc,WAAW,OAAO;AAAA,IAClC;AAAA,EACF;AACA,QAAM,kBACJ,aAAa,iBAAiB,GAAC,4CAAW,YAAX,mBAAoB,aAAa;AAElE,QAAM,mBAAmB,OAAO,cAAc,eAAe;AAE7D,SACE,gBAAAC,MAAC,oBAAiB,SACf;AAAA,uBACC,gBAAAD,KAAC,SAAI,WAAU,sGACb,0BAAAA,KAAC,eAAY,GACf;AAAA,IAGF,gBAAAA,KAAC,mBAAgB,KAAK,WAAW,QAAQ,kBAAkB;AAAA,KAC7D;AAEJ;;;AIhJA,SAAS,iBAAAE,sBAAgC;AACzC,SAAS,gBAAgC;AAwDrC,gBAAAC,YAAA;AAxCJ,IAAM,cAAcC,eAAsC,IAAI;AAE9D,IAAM,eAAe,CAAwB;AAAA,EAC3C;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,SAAS;AACX,MAKM;AA9BN;AA+BE,QAAM,EAAE,WAAW,aAAa,OAAO,UAAU,IAAI,QAAQ;AAC7D,QAAM,UAAU,WAAW;AAC3B,QAAM,EAAE,YAAY,IAAI,SAAS;AACjC,QAAM,EAAE,QAAQ,QAAQ,IAAI,QAAQ;AAEpC,QAAM,YAAY,MAAkC;AAClD,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,IACT;AACA,UAAM,cAAc,IAAI,mBAAmB,OAAO;AAClD,WAAO,YAAY,IAAI;AAAA,EACzB;AAEA,QAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,OAAO;AAAA,EACT,IAA2C,SAAS;AAAA,IAClD,UAAU,CAAC,QAAQ,mCAAS,OAAO;AAAA,IACnC,SAAS;AAAA,IACT,SAAS,CAAC,EAAC,mCAAS;AAAA;AAAA,EACtB,CAAC;AAED,QAAM,YAAY,eAAe;AACjC,QAAM,QAAQ,aAAa;AAE3B,SACE,gBAAAD;AAAA,IAAC,YAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,OAAO,kBAAa,SAAb,YAAsB;AAAA,QAC7B;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,gBAAgB;AAAA,MAC3B;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;;;ACrEA;AAAA,EAEE,eAAAE;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,OACK;AACP,SAAS,eAAAC,cAAa,YAAAC,WAAU,kBAAAC,uBAAsB;AAsDhD,gBAAAC,OAmSY,QAAAC,aAnSZ;AA1BN,IAAI;AACJ,IAAI,OAAO,WAAW,aAAa;AACjC,qBAAmB;AACrB,WAAW,OAAO,WAAW,aAAa;AACxC,qBAAmB;AACrB,OAAO;AACL,qBAAmB,SAAS,aAAa,EAAE;AAC7C;AACA,iBAAiB,aAAa;AAe9B,SAAS,aAAa,EAAE,SAAS,GAA4B;AAC3D,SACE,gBAAAD,MAAC,SAAI,WAAU,kIACb,0BAAAA,MAAC,SAAI,WAAU,sFACZ,UACH,GACF;AAEJ;AAEA,IAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AACf,MAAyB;AACvB,QAAM,CAAC,WAAW,YAAY,IAAIE,UAAwB,IAAI;AAC9D,QAAM,CAAC,YAAY,aAAa,IAAIA,UAAwB,IAAI;AAChE,QAAM,CAAC,YAAY,aAAa,IAAIA,UAAS,KAAK;AAClD,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAwB,IAAI;AAC1E,QAAM,CAAC,oBAAoB,qBAAqB,IAAIA,UAAgB;AACpE,QAAM,CAAC,aAAa,cAAc,IAAIA,UAAsB,QAAQ;AACpE,QAAM,CAAC,gCAAgC,iCAAiC,IACtEA,UAAgD;AAClD,QAAM,CAAC,YAAY,aAAa,IAAIA,UAAS,KAAK;AAClD,QAAM,CAAC,eAAe,gBAAgB,IAAIA,UAAS,KAAK;AACxD,QAAM,cAAcC,gBAAe;AACnC,QAAM,YAAYC,QAA0B,IAAI;AAGhD,QAAM,sBACJ,wBAAwB;AAE1B,EAAAC,WAAU,MAAM;AACd,QAAI,OAAO,WAAW,WAAW,aAAa;AAC5C,oBAAc,WAAW,OAAO,SAAS,IAAI;AAC7C,YAAM,gBAAgB,iBAAiB,WAAW,MAAM;AACxD,oBAAc,aAAa;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,cAAcC;AAAA,IAClB,OAAO,oBAAoB,cAAc,IAAI,MAAM,GAAG,EAAE,CAAC;AAAA,IACzD,CAAC,YAAY,gBAAgB;AAAA,EAC/B;AAEA,QAAM,CAAC,aAAa,cAAc,IAAIJ,UAAiC;AAEvE,EAAAG,WAAU,MAAM;AACd,QAAI,CAAC,WAAY;AACjB,iCAA6B,MAAM;AAAA,MACjC;AAAA,MACA;AAAA,MACA,aAAa,OAAO;AAAA,MACpB,QAAQ;AAAA,MACR;AAAA,IACF,CAAC,EAAE,KAAK,cAAc;AAAA,EACxB,GAAG,CAAC,YAAY,UAAU,aAAa,QAAQ,WAAW,CAAC;AAE3D,QAAM;AAAA,IACJ,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACF,IAAIE,UAAS;AAAA,IACX,UAAU;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS,MAAY;AACnB,UAAI,CAAC,aAAa;AAChB,eAAO,EAAE,eAAe,MAAM;AAAA,MAChC;AACA,UAAI,kBAAkB;AACpB,eAAO;AAAA,MACT;AACA,YAAM,MAAM,IAAI;AAAA,QACd,kBACI,kBACA,WAAW,OAAO,SAAS,QAAQ;AAAA,MACzC;AAIA,YAAM,sBAAsB,MAAM,YAAY,wBAAwB;AACtE,UAAI,oBAAoB,eAAe;AACrC,eAAO;AAAA,MACT;AACA,YAAM,OAAO,IAAI,aAAa,IAAI,MAAM;AACxC,YAAM,QAAQ,IAAI,aAAa,IAAI,OAAO;AAC1C,UAAI,CAAC,uBAAuB,QAAQ,SAAS,CAAC,YAAY;AACxD,YAAI;AACF,kBAAQ,IAAI,8BAA8B;AAAA,YACxC;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AACD,gBAAM,YAAY,cAAc,MAAM,KAAK;AAC3C,gBAAM,gBAAgB,IAAI,oBAAoB;AAC9C,gBAAM,OAAO,MAAM,QAAQ,aAAa;AACxC,cAAI,CAAC,MAAM;AACT,kBAAM,IAAI,MAAM,yBAAyB;AAAA,UAC3C;AAEA,gBAAM,cAAc,IAAI,mBAAmB,aAAa;AACxD,sBAAY,IAAI,IAAI;AAEpB;AACA,iBAAO,YAAY,eAAe;AAAA,QACpC,SAASC,QAAO;AACd,gCAAsBA,MAAc;AACpC;AAAA,YACEA,kBAAiB,QAAQA,SAAQ,IAAI,MAAM,mBAAmB;AAAA;AAEhE,iBAAO,EAAE,eAAe,MAAM;AAAA,QAChC;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,QAAM,kBAAkBC,aAAY;AAAA,IAClC,YAAY,MAAY;AAEtB,YAAM,gBAAgB,iBAAiB;AACvC,qDAAe;AACf,mBAAa,IAAI;AACjB,oBAAc,KAAK;AACnB,yBAAmB,IAAI;AACvB;AAAA,IACF;AAAA,IACA,WAAW,MAAM;AACf,kBAAY;AAAA,QACV;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,mBAAmBC;AAAA,IACvB,CAAC,wBAAsC;AACrC,YAAM,iBAAiB,uBAAuB;AAC9C,UAAI,CAAC,cAAc;AACjB,eAAO;AAAA,MACT;AACA,aACE,kCACA,IAAI,+BAA+B;AAAA,QACjC;AAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,cAAc,gBAAgB,mBAAmB;AAAA,QACxD,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,aAAa,OAAO;AAAA;AAAA,QAEpB,mBAAmB,OAAO;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IAEL;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAASA;AAAA,IACb,CAAO,sBAAmC,aAAa;AACrD,qBAAe,mBAAmB;AAClC,YAAM,gBAAgB,iBAAiB,mBAAmB;AAC1D,wCAAkC,aAAa;AAC/C,UAAI,wBAAwB,UAAU;AACpC,sBAAc,IAAI;AAAA,MACpB,WAAW,wBAAwB,YAAY;AAC7C,yBAAiB,IAAI;AAAA,MACvB;AACA,qDAAe,OAAO,UAAU,SAAS,MAAM,CAACF,WAAU;AACxD,gBAAQ,IAAI,gBAAgB;AAAA,UAC1B,OAAAA;AAAA,UACA,cAAcA,kBAAiB;AAAA,QACjC,CAAC;AAED,YAAIA,kBAAiB,YAAY;AAC/B,iBAAO,UAAU;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,gBAAgB;AAAA,EACnB;AAGA,EAAAH,WAAU,MAAM;AACd,WAAO,MAAM;AACX,UAAI,gCAAgC;AAClC,uCAA+B,QAAQ;AAAA,MACzC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,8BAA8B,CAAC;AAEnC,QAAM,kBAAkBC;AAAA,IACtB,MAAO,UAAU,QAAQ,gBAAgB;AAAA,IACzC,CAAC,OAAO;AAAA,EACV;AAEA,EAAAC,UAAS;AAAA,IACP,UAAU,CAAC,cAAc,aAAa,aAAa,eAAe;AAAA,IAClE,SAAS,MAAY;AACnB,UACE,CAAC,eACD,eACA,CAAC,mBACD,UAAU,SACV;AACA,eAAO,QAAQ;AAAA,MACjB;AACA,aAAO;AAAA,IACT;AAAA,IACA,sBAAsB;AAAA,EACxB,CAAC;AAED,QAAM,QAAQD;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,MAAY;AACnB,cAAM,gBAAgB,YAAY;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,WAAW,OAAO,iBAAiB,iBAAiB,MAAM;AAAA,EAC7D;AACA,SACE,gBAAAN,MAAC,YAAY,UAAZ,EAAqB,OACpB,0BAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UAEA,0BAAAA,MAAC,mBAAgB,SACf,0BAAAC,MAAC,iBACE;AAAA,2BAAe,CAAC,cAAc,EAAC,mCAAS,kBACvC,gBAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,OACE,aAAa,EAAE,SAAS,QAAQ,IAAI,EAAE,SAAS,OAAO;AAAA,gBAGxD,0BAAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,SAAS,MAAM,cAAc,KAAK;AAAA;AAAA,gBACpC;AAAA;AAAA,YACF;AAAA,YAGD,gBACE,cACC,iBACC,aAAa,CAAC,wBACf,gBAAAA,MAAC,gBACC,0BAAAA,MAAC,eAAY,GACf;AAAA,aAGF,sBAAsB,UACtB,gBAAAA,MAAC,gBACC,0BAAAC,MAAC,SAAI;AAAA;AAAA,eACM,sBAAuB,OAAiB;AAAA,eACnD,GACF;AAAA,YAED;AAAA,aACH,GACF;AAAA;AAAA,MACF;AAAA;AAAA,EACF,GACF;AAEJ;","names":["useContext","createContext","createContext","useContext","useContext","createContext","jsx","createContext","useContext","useContext","createContext","jsx","useContext","useContext","createContext","jsx","useContext","jsx","jsx","jsxs","jsx","jsx","jsxs","createContext","jsx","createContext","useCallback","useEffect","useMemo","useRef","useState","useMutation","useQuery","useQueryClient","jsx","jsxs","useState","useQueryClient","useRef","useEffect","useMemo","useQuery","error","useMutation","useCallback"]}
@@ -1,3 +1,7 @@
1
+ import {
2
+ DEFAULT_AUTH_SERVER,
3
+ withoutUndefined
4
+ } from "./chunk-4PLCDPEN.mjs";
1
5
  import {
2
6
  __spreadProps,
3
7
  __spreadValues
@@ -55,8 +59,11 @@ var loggers = {
55
59
 
56
60
  // src/nextjs/config.ts
57
61
  var logger = loggers.nextjs.handlers.auth;
62
+ var _a;
63
+ var appUrl = typeof process !== "undefined" ? ((_a = process == null ? void 0 : process.env) == null ? void 0 : _a.NEXT_PUBLIC_APP_URL) || "" : "";
64
+ var defaultServerSecure = !appUrl.startsWith("http://localhost");
58
65
  var defaultAuthConfig = {
59
- oauthServer: "https://auth-dev.civic.com/oauth",
66
+ oauthServer: DEFAULT_AUTH_SERVER,
60
67
  callbackUrl: "/api/auth/callback",
61
68
  challengeUrl: "/api/auth/challenge",
62
69
  logoutUrl: "/api/auth/logout",
@@ -65,12 +72,34 @@ var defaultAuthConfig = {
65
72
  exclude: [],
66
73
  cookies: {
67
74
  tokens: {
68
- sameSite: "strict",
69
- path: "/",
70
- maxAge: 60 * 60
71
- // 1 hour
75
+ ["id_token" /* ID_TOKEN */]: {
76
+ secure: defaultServerSecure,
77
+ httpOnly: true,
78
+ sameSite: "strict",
79
+ path: "/"
80
+ },
81
+ ["access_token" /* ACCESS_TOKEN */]: {
82
+ secure: defaultServerSecure,
83
+ httpOnly: true,
84
+ sameSite: "strict",
85
+ path: "/"
86
+ },
87
+ ["refresh_token" /* REFRESH_TOKEN */]: {
88
+ secure: defaultServerSecure,
89
+ httpOnly: true,
90
+ sameSite: "strict",
91
+ path: "/"
92
+ },
93
+ ["code_verifier" /* COOKIE_NAME */]: {
94
+ secure: defaultServerSecure,
95
+ httpOnly: true,
96
+ sameSite: "strict",
97
+ path: "/"
98
+ }
72
99
  },
73
100
  user: {
101
+ secure: defaultServerSecure,
102
+ httpOnly: false,
74
103
  sameSite: "strict",
75
104
  path: "/",
76
105
  maxAge: 60 * 60
@@ -78,17 +107,9 @@ var defaultAuthConfig = {
78
107
  }
79
108
  }
80
109
  };
81
- var withoutUndefined = (obj) => {
82
- const result = {};
83
- for (const key in obj) {
84
- if (obj[key] !== void 0) {
85
- result[key] = obj[key];
86
- }
87
- }
88
- return result;
89
- };
90
110
  var resolveAuthConfig = (config = {}) => {
91
- var _a, _b, _c, _d;
111
+ var _a2, _b, _c, _d, _e, _f;
112
+ logger.debug("resolveAuthConfig inputs", JSON.stringify(config, null, 2));
92
113
  const configFromEnv = withoutUndefined({
93
114
  clientId: process.env._civic_auth_client_id,
94
115
  oauthServer: process.env._civic_oauth_server,
@@ -97,19 +118,22 @@ var resolveAuthConfig = (config = {}) => {
97
118
  loginUrl: process.env._civic_auth_login_url,
98
119
  appUrl: process.env._civic_auth_app_url,
99
120
  logoutUrl: process.env._civic_auth_logout_url,
100
- include: (_a = process.env._civic_auth_includes) == null ? void 0 : _a.split(","),
121
+ include: (_a2 = process.env._civic_auth_includes) == null ? void 0 : _a2.split(","),
101
122
  exclude: (_b = process.env._civic_auth_excludes) == null ? void 0 : _b.split(","),
102
123
  cookies: process.env._civic_auth_cookie_config ? JSON.parse(process.env._civic_auth_cookie_config) : void 0
103
124
  });
104
125
  const mergedConfig = __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, defaultAuthConfig), configFromEnv), config), {
105
126
  // Override with directly passed config
106
127
  cookies: {
107
- tokens: __spreadValues(__spreadValues({}, defaultAuthConfig.cookies.tokens), ((_c = config.cookies) == null ? void 0 : _c.tokens) || {}),
108
- user: __spreadValues(__spreadValues({}, defaultAuthConfig.cookies.user), ((_d = config.cookies) == null ? void 0 : _d.user) || {})
128
+ tokens: __spreadValues(__spreadValues(__spreadValues({}, defaultAuthConfig.cookies.tokens), ((_c = configFromEnv == null ? void 0 : configFromEnv.cookies) == null ? void 0 : _c.tokens) || {}), ((_d = config.cookies) == null ? void 0 : _d.tokens) || {}),
129
+ user: __spreadValues(__spreadValues(__spreadValues({}, defaultAuthConfig.cookies.user), ((_e = configFromEnv == null ? void 0 : configFromEnv.cookies) == null ? void 0 : _e.user) || {}), ((_f = config.cookies) == null ? void 0 : _f.user) || {})
109
130
  }
110
131
  });
111
- logger.debug("Config from environment:", configFromEnv);
112
- logger.debug("Resolved config:", mergedConfig);
132
+ logger.debug(
133
+ "Config from environment:",
134
+ JSON.stringify(configFromEnv, null, 2)
135
+ );
136
+ logger.debug("Resolved config:", JSON.stringify(mergedConfig, null, 2));
113
137
  if (mergedConfig.clientId === void 0) {
114
138
  throw new Error("Civic Auth client ID is required");
115
139
  }
@@ -117,6 +141,10 @@ var resolveAuthConfig = (config = {}) => {
117
141
  };
118
142
  var createCivicAuthPlugin = (clientId, authConfig = {}) => {
119
143
  return (nextConfig) => {
144
+ logger.debug(
145
+ "createCivicAuthPlugin nextConfig",
146
+ JSON.stringify(nextConfig, null, 2)
147
+ );
120
148
  const resolvedConfig = resolveAuthConfig(__spreadProps(__spreadValues({}, authConfig), { clientId }));
121
149
  return __spreadProps(__spreadValues({}, nextConfig), {
122
150
  env: __spreadProps(__spreadValues({}, nextConfig == null ? void 0 : nextConfig.env), {
@@ -136,19 +164,10 @@ var createCivicAuthPlugin = (clientId, authConfig = {}) => {
136
164
  };
137
165
  };
138
166
 
139
- // src/nextjs/utils.ts
140
- var resolveCallbackUrl = (config, alternativeUrl) => {
141
- var _a;
142
- const baseUrl = (_a = config.appUrl) != null ? _a : alternativeUrl;
143
- const callbackUrl = new URL(config == null ? void 0 : config.callbackUrl, baseUrl).toString();
144
- return callbackUrl.toString();
145
- };
146
-
147
167
  export {
148
168
  loggers,
149
169
  defaultAuthConfig,
150
170
  resolveAuthConfig,
151
- createCivicAuthPlugin,
152
- resolveCallbackUrl
171
+ createCivicAuthPlugin
153
172
  };
154
- //# sourceMappingURL=chunk-NQPMNXBL.mjs.map
173
+ //# sourceMappingURL=chunk-O3WGNLRO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/logger.ts","../src/nextjs/config.ts"],"sourcesContent":["import debug from \"debug\";\n\nconst PACKAGE_NAME = \"@civic/auth\";\n\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void;\n info(message: string, ...args: unknown[]): void;\n warn(message: string, ...args: unknown[]): void;\n error(message: string, ...args: unknown[]): void;\n}\n\nclass DebugLogger implements Logger {\n private debugLogger: debug.Debugger;\n private infoLogger: debug.Debugger;\n private warnLogger: debug.Debugger;\n private errorLogger: debug.Debugger;\n\n constructor(namespace: string) {\n // Format: @org/package:library:component:level\n this.debugLogger = debug(`${PACKAGE_NAME}:${namespace}:debug`);\n this.infoLogger = debug(`${PACKAGE_NAME}:${namespace}:info`);\n this.warnLogger = debug(`${PACKAGE_NAME}:${namespace}:warn`);\n this.errorLogger = debug(`${PACKAGE_NAME}:${namespace}:error`);\n\n this.debugLogger.color = \"4\";\n this.infoLogger.color = \"2\";\n this.warnLogger.color = \"3\";\n this.errorLogger.color = \"1\";\n }\n\n debug(message: string, ...args: unknown[]): void {\n this.debugLogger(message, ...args);\n }\n\n info(message: string, ...args: unknown[]): void {\n this.infoLogger(message, ...args);\n }\n\n warn(message: string, ...args: unknown[]): void {\n this.warnLogger(message, ...args);\n }\n\n error(message: string, ...args: unknown[]): void {\n this.errorLogger(message, ...args);\n }\n}\n\nexport const createLogger = (namespace: string): Logger =>\n new DebugLogger(namespace);\n\n// Pre-configured loggers for different parts of your package\nexport const loggers = {\n // Next.js specific loggers\n nextjs: {\n routes: createLogger(\"api:routes\"),\n middleware: createLogger(\"api:middleware\"),\n handlers: {\n auth: createLogger(\"api:handlers:auth\"),\n },\n },\n // React specific loggers\n react: {\n components: createLogger(\"react:components\"),\n hooks: createLogger(\"react:hooks\"),\n context: createLogger(\"react:context\"),\n },\n // Shared utilities loggers\n services: {\n validation: createLogger(\"utils:validation\"),\n network: createLogger(\"utils:network\"),\n },\n} as const;\n","/* eslint-disable turbo/no-undeclared-env-vars */\nimport { NextConfig } from \"next\";\nimport { loggers } from \"@/lib/logger\";\nimport { withoutUndefined } from \"@/utils\";\nimport {\n CodeVerifier,\n CookieConfig,\n OAuthTokens,\n TokensCookieConfig,\n} from \"@/shared/types\";\nimport { DEFAULT_AUTH_SERVER } from \"@/constants\";\n\nconst logger = loggers.nextjs.handlers.auth;\n\nexport type CookiesConfigObject = {\n tokens: TokensCookieConfig;\n user: CookieConfig;\n};\nexport type AuthConfigWithDefaults = {\n clientId: string;\n oauthServer: string;\n callbackUrl: string;\n loginUrl: string;\n logoutUrl: string;\n appUrl?: string;\n challengeUrl: string;\n include: string[];\n exclude: string[];\n cookies: CookiesConfigObject;\n};\n\nexport type AuthConfig = Partial<AuthConfigWithDefaults>;\n\nexport type DefinedAuthConfig = AuthConfigWithDefaults;\n\nconst appUrl =\n typeof process !== \"undefined\"\n ? process?.env?.NEXT_PUBLIC_APP_URL || \"\"\n : \"\";\nconst defaultServerSecure = !appUrl.startsWith(\"http://localhost\");\n\n/**\n * Default configuration values that will be used if not overridden\n */\nexport const defaultAuthConfig: Omit<AuthConfigWithDefaults, \"clientId\"> = {\n oauthServer: DEFAULT_AUTH_SERVER,\n callbackUrl: \"/api/auth/callback\",\n challengeUrl: \"/api/auth/challenge\",\n logoutUrl: \"/api/auth/logout\",\n loginUrl: \"/\",\n include: [\"/*\"],\n exclude: [],\n cookies: {\n tokens: {\n [OAuthTokens.ID_TOKEN]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n [OAuthTokens.ACCESS_TOKEN]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n [OAuthTokens.REFRESH_TOKEN]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n [CodeVerifier.COOKIE_NAME]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n },\n user: {\n secure: defaultServerSecure,\n httpOnly: false,\n sameSite: \"strict\",\n path: \"/\",\n maxAge: 60 * 60, // 1 hour\n },\n },\n};\n\n/**\n * Resolves the authentication configuration by combining:\n * 1. Default values\n * 2. Environment variables (set internally by the plugin)\n * 3. Explicitly passed configuration\n *\n * Note: Developers should not set _civic_auth_* environment variables directly.\n * Instead, pass configuration to the createCivicAuthPlugin in next.config.js:\n *\n * @example\n * ```js\n * // next.config.js\n * export default createCivicAuthPlugin({\n * callbackUrl: '/custom/callback',\n * })\n * ```\n */\nexport const resolveAuthConfig = (\n config: AuthConfig = {},\n): AuthConfigWithDefaults & { clientId: string } => {\n logger.debug(\"resolveAuthConfig inputs\", JSON.stringify(config, null, 2));\n // Read configuration that was set by the plugin via environment variables\n const configFromEnv = withoutUndefined({\n clientId: process.env._civic_auth_client_id,\n oauthServer: process.env._civic_oauth_server,\n callbackUrl: process.env._civic_auth_callback_url,\n challengeUrl: process.env._civic_auth_challenge_url,\n loginUrl: process.env._civic_auth_login_url,\n appUrl: process.env._civic_auth_app_url,\n logoutUrl: process.env._civic_auth_logout_url,\n include: process.env._civic_auth_includes?.split(\",\"),\n exclude: process.env._civic_auth_excludes?.split(\",\"),\n cookies: process.env._civic_auth_cookie_config\n ? JSON.parse(process.env._civic_auth_cookie_config)\n : undefined,\n }) as AuthConfig;\n const mergedConfig = {\n ...defaultAuthConfig,\n ...configFromEnv, // Apply plugin-set config\n ...config, // Override with directly passed config\n cookies: {\n tokens: {\n ...defaultAuthConfig.cookies.tokens,\n ...(configFromEnv?.cookies?.tokens || {}),\n ...(config.cookies?.tokens || {}),\n },\n user: {\n ...defaultAuthConfig.cookies.user,\n ...(configFromEnv?.cookies?.user || {}),\n ...(config.cookies?.user || {}),\n },\n },\n };\n\n logger.debug(\n \"Config from environment:\",\n JSON.stringify(configFromEnv, null, 2),\n );\n logger.debug(\"Resolved config:\", JSON.stringify(mergedConfig, null, 2));\n if (mergedConfig.clientId === undefined) {\n throw new Error(\"Civic Auth client ID is required\");\n }\n return mergedConfig as AuthConfigWithDefaults & { clientId: string };\n};\n\n/**\n * Creates a Next.js plugin that handles auth configuration.\n *\n * This is the main configuration point for the auth system.\n * Do not set _civic_auth_* environment variables directly - instead,\n * pass your configuration here:\n *\n * @example\n * ```js\n * // next.config.js\n * export default createCivicAuthPlugin({\n * clientId: 'my-client-id',\n * callbackUrl: '/custom/callback',\n * loginUrl: '/custom/login',\n * logoutUrl: '/custom/logout',\n * include: ['/protected/*'],\n * exclude: ['/public/*']\n * })\n * ```\n *\n * The plugin sets internal environment variables that are used by\n * the auth system. These variables should not be set manually.\n */\nexport const createCivicAuthPlugin = (\n clientId: string,\n authConfig: AuthConfig = {},\n) => {\n return (nextConfig?: NextConfig) => {\n logger.debug(\n \"createCivicAuthPlugin nextConfig\",\n JSON.stringify(nextConfig, null, 2),\n );\n const resolvedConfig = resolveAuthConfig({ ...authConfig, clientId });\n return {\n ...nextConfig,\n env: {\n ...nextConfig?.env,\n // Internal environment variables - do not set these manually\n _civic_auth_client_id: clientId,\n _civic_oauth_server: resolvedConfig.oauthServer,\n _civic_auth_callback_url: resolvedConfig.callbackUrl,\n _civic_auth_challenge_url: resolvedConfig.challengeUrl,\n _civic_auth_login_url: resolvedConfig.loginUrl,\n _civic_auth_logout_url: resolvedConfig.logoutUrl,\n _civic_auth_app_url: resolvedConfig.appUrl,\n _civic_auth_includes: resolvedConfig.include.join(\",\"),\n _civic_auth_excludes: resolvedConfig.exclude.join(\",\"),\n _civic_auth_cookie_config: JSON.stringify(resolvedConfig.cookies),\n },\n };\n };\n};\n"],"mappings":";;;;;;;;;;AAAA,OAAO,WAAW;AAElB,IAAM,eAAe;AASrB,IAAM,cAAN,MAAoC;AAAA,EAMlC,YAAY,WAAmB;AAE7B,SAAK,cAAc,MAAM,GAAG,YAAY,IAAI,SAAS,QAAQ;AAC7D,SAAK,aAAa,MAAM,GAAG,YAAY,IAAI,SAAS,OAAO;AAC3D,SAAK,aAAa,MAAM,GAAG,YAAY,IAAI,SAAS,OAAO;AAC3D,SAAK,cAAc,MAAM,GAAG,YAAY,IAAI,SAAS,QAAQ;AAE7D,SAAK,YAAY,QAAQ;AACzB,SAAK,WAAW,QAAQ;AACxB,SAAK,WAAW,QAAQ;AACxB,SAAK,YAAY,QAAQ;AAAA,EAC3B;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,YAAY,SAAS,GAAG,IAAI;AAAA,EACnC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,WAAW,SAAS,GAAG,IAAI;AAAA,EAClC;AAAA,EAEA,KAAK,YAAoB,MAAuB;AAC9C,SAAK,WAAW,SAAS,GAAG,IAAI;AAAA,EAClC;AAAA,EAEA,MAAM,YAAoB,MAAuB;AAC/C,SAAK,YAAY,SAAS,GAAG,IAAI;AAAA,EACnC;AACF;AAEO,IAAM,eAAe,CAAC,cAC3B,IAAI,YAAY,SAAS;AAGpB,IAAM,UAAU;AAAA;AAAA,EAErB,QAAQ;AAAA,IACN,QAAQ,aAAa,YAAY;AAAA,IACjC,YAAY,aAAa,gBAAgB;AAAA,IACzC,UAAU;AAAA,MACR,MAAM,aAAa,mBAAmB;AAAA,IACxC;AAAA,EACF;AAAA;AAAA,EAEA,OAAO;AAAA,IACL,YAAY,aAAa,kBAAkB;AAAA,IAC3C,OAAO,aAAa,aAAa;AAAA,IACjC,SAAS,aAAa,eAAe;AAAA,EACvC;AAAA;AAAA,EAEA,UAAU;AAAA,IACR,YAAY,aAAa,kBAAkB;AAAA,IAC3C,SAAS,aAAa,eAAe;AAAA,EACvC;AACF;;;AC3DA,IAAM,SAAS,QAAQ,OAAO,SAAS;AAZvC;AAmCA,IAAM,SACJ,OAAO,YAAY,gBACf,wCAAS,QAAT,mBAAc,wBAAuB,KACrC;AACN,IAAM,sBAAsB,CAAC,OAAO,WAAW,kBAAkB;AAK1D,IAAM,oBAA8D;AAAA,EACzE,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS,CAAC,IAAI;AAAA,EACd,SAAS,CAAC;AAAA,EACV,SAAS;AAAA,IACP,QAAQ;AAAA,MACN,0BAAqB,GAAG;AAAA,QACtB,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,QACV,MAAM;AAAA,MACR;AAAA,MACA,kCAAyB,GAAG;AAAA,QAC1B,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,QACV,MAAM;AAAA,MACR;AAAA,MACA,oCAA0B,GAAG;AAAA,QAC3B,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,QACV,MAAM;AAAA,MACR;AAAA,MACA,kCAAyB,GAAG;AAAA,QAC1B,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,QACV,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAU;AAAA,MACV,MAAM;AAAA,MACN,QAAQ,KAAK;AAAA;AAAA,IACf;AAAA,EACF;AACF;AAmBO,IAAM,oBAAoB,CAC/B,SAAqB,CAAC,MAC4B;AA5GpD,MAAAA,KAAA;AA6GE,SAAO,MAAM,4BAA4B,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAExE,QAAM,gBAAgB,iBAAiB;AAAA,IACrC,UAAU,QAAQ,IAAI;AAAA,IACtB,aAAa,QAAQ,IAAI;AAAA,IACzB,aAAa,QAAQ,IAAI;AAAA,IACzB,cAAc,QAAQ,IAAI;AAAA,IAC1B,UAAU,QAAQ,IAAI;AAAA,IACtB,QAAQ,QAAQ,IAAI;AAAA,IACpB,WAAW,QAAQ,IAAI;AAAA,IACvB,UAASA,MAAA,QAAQ,IAAI,yBAAZ,gBAAAA,IAAkC,MAAM;AAAA,IACjD,UAAS,aAAQ,IAAI,yBAAZ,mBAAkC,MAAM;AAAA,IACjD,SAAS,QAAQ,IAAI,4BACjB,KAAK,MAAM,QAAQ,IAAI,yBAAyB,IAChD;AAAA,EACN,CAAC;AACD,QAAM,eAAe,+DAChB,oBACA,gBACA,SAHgB;AAAA;AAAA,IAInB,SAAS;AAAA,MACP,QAAQ,iDACH,kBAAkB,QAAQ,WACzB,oDAAe,YAAf,mBAAwB,WAAU,CAAC,MACnC,YAAO,YAAP,mBAAgB,WAAU,CAAC;AAAA,MAEjC,MAAM,iDACD,kBAAkB,QAAQ,SACzB,oDAAe,YAAf,mBAAwB,SAAQ,CAAC,MACjC,YAAO,YAAP,mBAAgB,SAAQ,CAAC;AAAA,IAEjC;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,KAAK,UAAU,eAAe,MAAM,CAAC;AAAA,EACvC;AACA,SAAO,MAAM,oBAAoB,KAAK,UAAU,cAAc,MAAM,CAAC,CAAC;AACtE,MAAI,aAAa,aAAa,QAAW;AACvC,UAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AACA,SAAO;AACT;AAyBO,IAAM,wBAAwB,CACnC,UACA,aAAyB,CAAC,MACvB;AACH,SAAO,CAAC,eAA4B;AAClC,WAAO;AAAA,MACL;AAAA,MACA,KAAK,UAAU,YAAY,MAAM,CAAC;AAAA,IACpC;AACA,UAAM,iBAAiB,kBAAkB,iCAAK,aAAL,EAAiB,SAAS,EAAC;AACpE,WAAO,iCACF,aADE;AAAA,MAEL,KAAK,iCACA,yCAAY,MADZ;AAAA;AAAA,QAGH,uBAAuB;AAAA,QACvB,qBAAqB,eAAe;AAAA,QACpC,0BAA0B,eAAe;AAAA,QACzC,2BAA2B,eAAe;AAAA,QAC1C,uBAAuB,eAAe;AAAA,QACtC,wBAAwB,eAAe;AAAA,QACvC,qBAAqB,eAAe;AAAA,QACpC,sBAAsB,eAAe,QAAQ,KAAK,GAAG;AAAA,QACrD,sBAAsB,eAAe,QAAQ,KAAK,GAAG;AAAA,QACrD,2BAA2B,KAAK,UAAU,eAAe,OAAO;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AACF;","names":["_a"]}
@@ -0,0 +1,283 @@
1
+ import {
2
+ CookieStorage
3
+ } from "./chunk-63YGK3A7.mjs";
4
+ import {
5
+ DEFAULT_AUTH_SERVER,
6
+ GenericUserSession,
7
+ clearTokens,
8
+ withoutUndefined
9
+ } from "./chunk-Q7DSPTUG.mjs";
10
+ import {
11
+ __async,
12
+ __spreadProps,
13
+ __spreadValues
14
+ } from "./chunk-RGHW4PYM.mjs";
15
+
16
+ // src/lib/logger.ts
17
+ import debug from "debug";
18
+ var PACKAGE_NAME = "@civic/auth";
19
+ var DebugLogger = class {
20
+ constructor(namespace) {
21
+ this.debugLogger = debug(`${PACKAGE_NAME}:${namespace}:debug`);
22
+ this.infoLogger = debug(`${PACKAGE_NAME}:${namespace}:info`);
23
+ this.warnLogger = debug(`${PACKAGE_NAME}:${namespace}:warn`);
24
+ this.errorLogger = debug(`${PACKAGE_NAME}:${namespace}:error`);
25
+ this.debugLogger.color = "4";
26
+ this.infoLogger.color = "2";
27
+ this.warnLogger.color = "3";
28
+ this.errorLogger.color = "1";
29
+ }
30
+ debug(message, ...args) {
31
+ this.debugLogger(message, ...args);
32
+ }
33
+ info(message, ...args) {
34
+ this.infoLogger(message, ...args);
35
+ }
36
+ warn(message, ...args) {
37
+ this.warnLogger(message, ...args);
38
+ }
39
+ error(message, ...args) {
40
+ this.errorLogger(message, ...args);
41
+ }
42
+ };
43
+ var createLogger = (namespace) => new DebugLogger(namespace);
44
+ var loggers = {
45
+ // Next.js specific loggers
46
+ nextjs: {
47
+ routes: createLogger("api:routes"),
48
+ middleware: createLogger("api:middleware"),
49
+ handlers: {
50
+ auth: createLogger("api:handlers:auth")
51
+ }
52
+ },
53
+ // React specific loggers
54
+ react: {
55
+ components: createLogger("react:components"),
56
+ hooks: createLogger("react:hooks"),
57
+ context: createLogger("react:context")
58
+ },
59
+ // Shared utilities loggers
60
+ services: {
61
+ validation: createLogger("utils:validation"),
62
+ network: createLogger("utils:network")
63
+ }
64
+ };
65
+
66
+ // src/nextjs/config.ts
67
+ var logger = loggers.nextjs.handlers.auth;
68
+ console.log(`process.env.NODE_ENV: ${process.env.NODE_ENV}`);
69
+ var isDevelopment = process.env.NODE_ENV === "development";
70
+ var defaultServerSecure = isDevelopment ? false : true;
71
+ console.log(`defaultServerSecure: ${defaultServerSecure}`);
72
+ var defaultAuthConfig = {
73
+ oauthServer: DEFAULT_AUTH_SERVER,
74
+ callbackUrl: "/api/auth/callback",
75
+ challengeUrl: "/api/auth/challenge",
76
+ logoutUrl: "/api/auth/logout",
77
+ loginUrl: "/",
78
+ include: ["/*"],
79
+ exclude: [],
80
+ cookies: {
81
+ tokens: {
82
+ ["id_token" /* ID_TOKEN */]: {
83
+ secure: defaultServerSecure,
84
+ httpOnly: true,
85
+ sameSite: "strict",
86
+ path: "/"
87
+ },
88
+ ["access_token" /* ACCESS_TOKEN */]: {
89
+ secure: defaultServerSecure,
90
+ httpOnly: true,
91
+ sameSite: "strict",
92
+ path: "/"
93
+ },
94
+ ["refresh_token" /* REFRESH_TOKEN */]: {
95
+ secure: defaultServerSecure,
96
+ httpOnly: true,
97
+ sameSite: "strict",
98
+ path: "/"
99
+ },
100
+ ["code_verifier" /* COOKIE_NAME */]: {
101
+ secure: defaultServerSecure,
102
+ httpOnly: true,
103
+ sameSite: "strict",
104
+ path: "/"
105
+ },
106
+ ["app_url" /* APP_URL */]: {
107
+ secure: defaultServerSecure,
108
+ httpOnly: true,
109
+ sameSite: "strict",
110
+ path: "/"
111
+ }
112
+ },
113
+ user: {
114
+ secure: defaultServerSecure,
115
+ httpOnly: false,
116
+ sameSite: "strict",
117
+ path: "/",
118
+ maxAge: 60 * 60
119
+ // 1 hour
120
+ }
121
+ }
122
+ };
123
+ var resolveAuthConfig = (config = {}) => {
124
+ var _a, _b, _c, _d, _e, _f;
125
+ const configFromEnv = withoutUndefined({
126
+ clientId: process.env._civic_auth_client_id,
127
+ oauthServer: process.env._civic_oauth_server,
128
+ callbackUrl: process.env._civic_auth_callback_url,
129
+ challengeUrl: process.env._civic_auth_challenge_url,
130
+ loginUrl: process.env._civic_auth_login_url,
131
+ logoutUrl: process.env._civic_auth_logout_url,
132
+ include: (_a = process.env._civic_auth_includes) == null ? void 0 : _a.split(","),
133
+ exclude: (_b = process.env._civic_auth_excludes) == null ? void 0 : _b.split(","),
134
+ cookies: process.env._civic_auth_cookie_config ? JSON.parse(process.env._civic_auth_cookie_config) : void 0
135
+ });
136
+ const mergedConfig = __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, defaultAuthConfig), configFromEnv), config), {
137
+ // Override with directly passed config
138
+ cookies: {
139
+ tokens: __spreadValues(__spreadValues(__spreadValues({}, defaultAuthConfig.cookies.tokens), ((_c = configFromEnv == null ? void 0 : configFromEnv.cookies) == null ? void 0 : _c.tokens) || {}), ((_d = config.cookies) == null ? void 0 : _d.tokens) || {}),
140
+ user: __spreadValues(__spreadValues(__spreadValues({}, defaultAuthConfig.cookies.user), ((_e = configFromEnv == null ? void 0 : configFromEnv.cookies) == null ? void 0 : _e.user) || {}), ((_f = config.cookies) == null ? void 0 : _f.user) || {})
141
+ }
142
+ });
143
+ logger.debug(
144
+ "Config from environment:",
145
+ JSON.stringify(configFromEnv, null, 2)
146
+ );
147
+ logger.debug("Resolved config:", JSON.stringify(mergedConfig, null, 2));
148
+ if (mergedConfig.clientId === void 0) {
149
+ throw new Error("Civic Auth client ID is required");
150
+ }
151
+ return mergedConfig;
152
+ };
153
+ var createCivicAuthPlugin = (authConfig) => {
154
+ return (nextConfig) => {
155
+ logger.debug(
156
+ "createCivicAuthPlugin nextConfig",
157
+ JSON.stringify(nextConfig, null, 2)
158
+ );
159
+ const resolvedConfig = resolveAuthConfig(__spreadValues({}, authConfig));
160
+ return __spreadProps(__spreadValues({}, nextConfig), {
161
+ env: __spreadProps(__spreadValues({}, nextConfig == null ? void 0 : nextConfig.env), {
162
+ // Internal environment variables - do not set these manually
163
+ _civic_auth_client_id: resolvedConfig.clientId,
164
+ _civic_oauth_server: resolvedConfig.oauthServer,
165
+ _civic_auth_callback_url: resolvedConfig.callbackUrl,
166
+ _civic_auth_challenge_url: resolvedConfig.challengeUrl,
167
+ _civic_auth_login_url: resolvedConfig.loginUrl,
168
+ _civic_auth_logout_url: resolvedConfig.logoutUrl,
169
+ _civic_auth_includes: resolvedConfig.include.join(","),
170
+ _civic_auth_excludes: resolvedConfig.exclude.join(","),
171
+ _civic_auth_cookie_config: JSON.stringify(resolvedConfig.cookies)
172
+ })
173
+ });
174
+ };
175
+ };
176
+
177
+ // src/nextjs/cookies.ts
178
+ import { cookies } from "next/headers.js";
179
+ var createTokenCookies = (response, sessionData, config) => {
180
+ var _a, _b;
181
+ const maxAge = (_a = sessionData.expiresIn) != null ? _a : 3600;
182
+ const cookieOptions = __spreadProps(__spreadValues({}, (_b = config.cookies) == null ? void 0 : _b.tokens), {
183
+ maxAge
184
+ });
185
+ if (sessionData.accessToken) {
186
+ response.cookies.set("access_token", sessionData.accessToken, __spreadProps(__spreadValues({}, cookieOptions), {
187
+ httpOnly: true
188
+ }));
189
+ }
190
+ if (sessionData.idToken) {
191
+ response.cookies.set("id_token", sessionData.idToken, __spreadProps(__spreadValues({}, cookieOptions), {
192
+ httpOnly: true
193
+ }));
194
+ }
195
+ if (sessionData.refreshToken) {
196
+ response.cookies.set("refresh_token", sessionData.refreshToken, __spreadProps(__spreadValues({}, cookieOptions), {
197
+ httpOnly: true
198
+ }));
199
+ }
200
+ };
201
+ var createUserInfoCookie = (response, user, sessionData, config) => {
202
+ var _a, _b, _c;
203
+ if (!user) {
204
+ response.cookies.set("user", "", __spreadProps(__spreadValues({}, (_a = config.cookies) == null ? void 0 : _a.user), {
205
+ maxAge: 0
206
+ }));
207
+ return;
208
+ }
209
+ const maxAge = (_b = sessionData.expiresIn) != null ? _b : 3600;
210
+ const frontendUser = __spreadValues({}, user);
211
+ response.cookies.set("user", JSON.stringify(frontendUser), __spreadProps(__spreadValues({}, (_c = config.cookies) == null ? void 0 : _c.user), {
212
+ maxAge
213
+ }));
214
+ };
215
+ var clearAuthCookies = (config) => __async(void 0, null, function* () {
216
+ var _a;
217
+ const cookieStorage = new NextjsCookieStorage((_a = config.cookies) == null ? void 0 : _a.tokens);
218
+ clearTokens(cookieStorage);
219
+ const clientStorage = new NextjsClientStorage();
220
+ const userSession = new GenericUserSession(clientStorage);
221
+ userSession.set(null);
222
+ });
223
+ var NextjsCookieStorage = class extends CookieStorage {
224
+ constructor(config = {}) {
225
+ super({
226
+ secure: true,
227
+ httpOnly: true
228
+ });
229
+ this.config = config;
230
+ }
231
+ get(key) {
232
+ var _a;
233
+ return ((_a = cookies().get(key)) == null ? void 0 : _a.value) || null;
234
+ }
235
+ set(key, value) {
236
+ var _a;
237
+ const cookieSettings = ((_a = this.config) == null ? void 0 : _a[key]) || __spreadValues({}, this.settings);
238
+ console.log(
239
+ "NextjsCookieStorage.set",
240
+ JSON.stringify(
241
+ { key, value, config: this.config, cookieSettings },
242
+ null,
243
+ 2
244
+ )
245
+ );
246
+ cookies().set(key, value, cookieSettings);
247
+ }
248
+ };
249
+ var NextjsClientStorage = class extends CookieStorage {
250
+ constructor(config = {}) {
251
+ super(__spreadProps(__spreadValues({}, config), {
252
+ secure: false,
253
+ httpOnly: false
254
+ }));
255
+ }
256
+ get(key) {
257
+ var _a;
258
+ return ((_a = cookies().get(key)) == null ? void 0 : _a.value) || null;
259
+ }
260
+ set(key, value) {
261
+ cookies().set(key, value, this.settings);
262
+ }
263
+ };
264
+
265
+ // src/nextjs/utils.ts
266
+ var resolveCallbackUrl = (config, baseUrl) => {
267
+ const callbackUrl = new URL(config == null ? void 0 : config.callbackUrl, baseUrl).toString();
268
+ return callbackUrl.toString();
269
+ };
270
+
271
+ export {
272
+ loggers,
273
+ defaultAuthConfig,
274
+ resolveAuthConfig,
275
+ createCivicAuthPlugin,
276
+ createTokenCookies,
277
+ createUserInfoCookie,
278
+ clearAuthCookies,
279
+ NextjsCookieStorage,
280
+ NextjsClientStorage,
281
+ resolveCallbackUrl
282
+ };
283
+ //# sourceMappingURL=chunk-OXXUQ36U.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/logger.ts","../src/nextjs/config.ts","../src/nextjs/cookies.ts","../src/nextjs/utils.ts"],"sourcesContent":["import debug from \"debug\";\n\nconst PACKAGE_NAME = \"@civic/auth\";\n\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void;\n info(message: string, ...args: unknown[]): void;\n warn(message: string, ...args: unknown[]): void;\n error(message: string, ...args: unknown[]): void;\n}\n\nclass DebugLogger implements Logger {\n private debugLogger: debug.Debugger;\n private infoLogger: debug.Debugger;\n private warnLogger: debug.Debugger;\n private errorLogger: debug.Debugger;\n\n constructor(namespace: string) {\n // Format: @org/package:library:component:level\n this.debugLogger = debug(`${PACKAGE_NAME}:${namespace}:debug`);\n this.infoLogger = debug(`${PACKAGE_NAME}:${namespace}:info`);\n this.warnLogger = debug(`${PACKAGE_NAME}:${namespace}:warn`);\n this.errorLogger = debug(`${PACKAGE_NAME}:${namespace}:error`);\n\n this.debugLogger.color = \"4\";\n this.infoLogger.color = \"2\";\n this.warnLogger.color = \"3\";\n this.errorLogger.color = \"1\";\n }\n\n debug(message: string, ...args: unknown[]): void {\n this.debugLogger(message, ...args);\n }\n\n info(message: string, ...args: unknown[]): void {\n this.infoLogger(message, ...args);\n }\n\n warn(message: string, ...args: unknown[]): void {\n this.warnLogger(message, ...args);\n }\n\n error(message: string, ...args: unknown[]): void {\n this.errorLogger(message, ...args);\n }\n}\n\nexport const createLogger = (namespace: string): Logger =>\n new DebugLogger(namespace);\n\n// Pre-configured loggers for different parts of your package\nexport const loggers = {\n // Next.js specific loggers\n nextjs: {\n routes: createLogger(\"api:routes\"),\n middleware: createLogger(\"api:middleware\"),\n handlers: {\n auth: createLogger(\"api:handlers:auth\"),\n },\n },\n // React specific loggers\n react: {\n components: createLogger(\"react:components\"),\n hooks: createLogger(\"react:hooks\"),\n context: createLogger(\"react:context\"),\n },\n // Shared utilities loggers\n services: {\n validation: createLogger(\"utils:validation\"),\n network: createLogger(\"utils:network\"),\n },\n} as const;\n","/* eslint-disable turbo/no-undeclared-env-vars */\nimport { NextConfig } from \"next\";\nimport { loggers } from \"@/lib/logger\";\nimport { withoutUndefined } from \"@/utils\";\nimport {\n CodeVerifier,\n CookieConfig,\n OAuthTokens,\n TokensCookieConfig,\n} from \"@/shared/types\";\nimport { DEFAULT_AUTH_SERVER } from \"@/constants\";\n\nconst logger = loggers.nextjs.handlers.auth;\n\nexport type CookiesConfigObject = {\n tokens: TokensCookieConfig;\n user: CookieConfig;\n};\n\nexport type AuthConfigWithDefaults = {\n clientId: string;\n oauthServer: string;\n callbackUrl: string;\n loginUrl: string;\n logoutUrl: string;\n challengeUrl: string;\n include: string[];\n exclude: string[];\n cookies: CookiesConfigObject;\n};\n\nexport type AuthConfig = Partial<AuthConfigWithDefaults>;\n\nexport type DefinedAuthConfig = AuthConfigWithDefaults;\n\nconsole.log(`process.env.NODE_ENV: ${process.env.NODE_ENV}`);\nconst isDevelopment = process.env.NODE_ENV === \"development\";\n\nconst defaultServerSecure = isDevelopment ? false : true;\nconsole.log(`defaultServerSecure: ${defaultServerSecure}`);\n/**\n * Default configuration values that will be used if not overridden\n */\nexport const defaultAuthConfig: Omit<AuthConfigWithDefaults, \"clientId\"> = {\n oauthServer: DEFAULT_AUTH_SERVER,\n callbackUrl: \"/api/auth/callback\",\n challengeUrl: \"/api/auth/challenge\",\n logoutUrl: \"/api/auth/logout\",\n loginUrl: \"/\",\n include: [\"/*\"],\n exclude: [],\n cookies: {\n tokens: {\n [OAuthTokens.ID_TOKEN]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n [OAuthTokens.ACCESS_TOKEN]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n [OAuthTokens.REFRESH_TOKEN]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n [CodeVerifier.COOKIE_NAME]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n [CodeVerifier.APP_URL]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n },\n user: {\n secure: defaultServerSecure,\n httpOnly: false,\n sameSite: \"strict\",\n path: \"/\",\n maxAge: 60 * 60, // 1 hour\n },\n },\n};\n\n/**\n * Resolves the authentication configuration by combining:\n * 1. Default values\n * 2. Environment variables (set internally by the plugin)\n * 3. Explicitly passed configuration\n *\n * Note: Developers should not set _civic_auth_* environment variables directly.\n * Instead, pass configuration to the createCivicAuthPlugin in next.config.js:\n *\n * @example\n * ```js\n * // next.config.js\n * export default createCivicAuthPlugin({\n * callbackUrl: '/custom/callback',\n * })\n * ```\n */\nexport const resolveAuthConfig = (\n config: AuthConfig = {},\n): AuthConfigWithDefaults => {\n // Read configuration that was set by the plugin via environment variables\n const configFromEnv = withoutUndefined({\n clientId: process.env._civic_auth_client_id,\n oauthServer: process.env._civic_oauth_server,\n callbackUrl: process.env._civic_auth_callback_url,\n challengeUrl: process.env._civic_auth_challenge_url,\n loginUrl: process.env._civic_auth_login_url,\n logoutUrl: process.env._civic_auth_logout_url,\n include: process.env._civic_auth_includes?.split(\",\"),\n exclude: process.env._civic_auth_excludes?.split(\",\"),\n cookies: process.env._civic_auth_cookie_config\n ? JSON.parse(process.env._civic_auth_cookie_config)\n : undefined,\n }) as AuthConfig;\n const mergedConfig = {\n ...defaultAuthConfig,\n ...configFromEnv, // Apply plugin-set config\n ...config, // Override with directly passed config\n cookies: {\n tokens: {\n ...defaultAuthConfig.cookies.tokens,\n ...(configFromEnv?.cookies?.tokens || {}),\n ...(config.cookies?.tokens || {}),\n },\n user: {\n ...defaultAuthConfig.cookies.user,\n ...(configFromEnv?.cookies?.user || {}),\n ...(config.cookies?.user || {}),\n },\n },\n };\n\n logger.debug(\n \"Config from environment:\",\n JSON.stringify(configFromEnv, null, 2),\n );\n logger.debug(\"Resolved config:\", JSON.stringify(mergedConfig, null, 2));\n if (mergedConfig.clientId === undefined) {\n throw new Error(\"Civic Auth client ID is required\");\n }\n return mergedConfig as AuthConfigWithDefaults & { clientId: string };\n};\n\n/**\n * Creates a Next.js plugin that handles auth configuration.\n *\n * This is the main configuration point for the auth system.\n * Do not set _civic_auth_* environment variables directly - instead,\n * pass your configuration here:\n *\n * @example\n * ```js\n * // next.config.js\n * export default createCivicAuthPlugin({\n * clientId: 'my-client-id',\n * callbackUrl: '/custom/callback',\n * loginUrl: '/custom/login',\n * logoutUrl: '/custom/logout',\n * include: ['/protected/*'],\n * exclude: ['/public/*']\n * })\n * ```\n *\n * The plugin sets internal environment variables that are used by\n * the auth system. These variables should not be set manually.\n */\nexport const createCivicAuthPlugin = (\n authConfig: AuthConfig & Pick<Required<AuthConfig>, \"clientId\">,\n) => {\n return (nextConfig?: NextConfig) => {\n logger.debug(\n \"createCivicAuthPlugin nextConfig\",\n JSON.stringify(nextConfig, null, 2),\n );\n const resolvedConfig = resolveAuthConfig({ ...authConfig });\n return {\n ...nextConfig,\n env: {\n ...nextConfig?.env,\n // Internal environment variables - do not set these manually\n _civic_auth_client_id: resolvedConfig.clientId,\n _civic_oauth_server: resolvedConfig.oauthServer,\n _civic_auth_callback_url: resolvedConfig.callbackUrl,\n _civic_auth_challenge_url: resolvedConfig.challengeUrl,\n _civic_auth_login_url: resolvedConfig.loginUrl,\n _civic_auth_logout_url: resolvedConfig.logoutUrl,\n _civic_auth_includes: resolvedConfig.include.join(\",\"),\n _civic_auth_excludes: resolvedConfig.exclude.join(\",\"),\n _civic_auth_cookie_config: JSON.stringify(resolvedConfig.cookies),\n },\n };\n };\n};\n","import { SessionData, UnknownObject, User } from \"@/types\";\nimport { NextResponse } from \"next/server\";\nimport { AuthConfig } from \"@/nextjs/config\";\nimport { CookieStorage, CookieStorageSettings } from \"@/server\";\nimport { cookies } from \"next/headers.js\";\nimport { GenericUserSession } from \"@/shared/UserSession\";\nimport { clearTokens } from \"@/shared/util\";\nimport { CodeVerifier, OAuthTokens, TokensCookieConfig } from \"@/shared/types\";\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 (config: AuthConfig) => {\n // clear session, and tokens\n const cookieStorage = new NextjsCookieStorage(config.cookies?.tokens);\n clearTokens(cookieStorage);\n\n // clear user\n const clientStorage = new NextjsClientStorage();\n const userSession = new GenericUserSession(clientStorage);\n userSession.set(null);\n};\n\ntype KeySetter = OAuthTokens | CodeVerifier;\nclass NextjsCookieStorage extends CookieStorage {\n constructor(readonly config: Partial<TokensCookieConfig> = {}) {\n super({\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: KeySetter, value: string): void {\n const cookieSettings = this.config?.[key as KeySetter] || {\n ...this.settings,\n };\n console.log(\n \"NextjsCookieStorage.set\",\n JSON.stringify(\n { key, value, config: this.config, cookieSettings },\n null,\n 2,\n ),\n );\n cookies().set(key, value, cookieSettings);\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","import { AuthConfigWithDefaults } from \"@/nextjs/config\";\n\nexport const resolveCallbackUrl = (\n config: AuthConfigWithDefaults,\n baseUrl?: string,\n): string => {\n const callbackUrl = new URL(config?.callbackUrl, baseUrl).toString();\n return callbackUrl.toString();\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-PMJAV4JJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}