@civic/auth 0.2.3 → 0.2.4-beta.1

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 (502) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/cjs/lib/cookies.d.ts.map +1 -1
  3. package/dist/cjs/lib/cookies.js +2 -0
  4. package/dist/cjs/lib/cookies.js.map +1 -1
  5. package/dist/cjs/lib/oauth.d.ts.map +1 -1
  6. package/dist/cjs/lib/oauth.js +7 -1
  7. package/dist/cjs/lib/oauth.js.map +1 -1
  8. package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts.map +1 -1
  9. package/dist/cjs/nextjs/providers/NextAuthProvider.js +12 -2
  10. package/dist/cjs/nextjs/providers/NextAuthProvider.js.map +1 -1
  11. package/dist/cjs/reactjs/providers/AuthProvider.d.ts +1 -1
  12. package/dist/cjs/reactjs/providers/AuthProvider.d.ts.map +1 -1
  13. package/dist/cjs/reactjs/providers/AuthProvider.js.map +1 -1
  14. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -1
  15. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js +11 -0
  16. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +1 -1
  17. package/dist/cjs/shared/version.d.ts +1 -1
  18. package/dist/cjs/shared/version.d.ts.map +1 -1
  19. package/dist/cjs/shared/version.js +1 -1
  20. package/dist/cjs/shared/version.js.map +1 -1
  21. package/dist/esm/lib/cookies.d.ts.map +1 -1
  22. package/dist/esm/lib/cookies.js +2 -0
  23. package/dist/esm/lib/cookies.js.map +1 -1
  24. package/dist/esm/lib/oauth.d.ts.map +1 -1
  25. package/dist/esm/lib/oauth.js +7 -1
  26. package/dist/esm/lib/oauth.js.map +1 -1
  27. package/dist/esm/nextjs/providers/NextAuthProvider.d.ts.map +1 -1
  28. package/dist/esm/nextjs/providers/NextAuthProvider.js +12 -2
  29. package/dist/esm/nextjs/providers/NextAuthProvider.js.map +1 -1
  30. package/dist/esm/reactjs/providers/AuthProvider.d.ts +1 -1
  31. package/dist/esm/reactjs/providers/AuthProvider.d.ts.map +1 -1
  32. package/dist/esm/reactjs/providers/AuthProvider.js +1 -0
  33. package/dist/esm/reactjs/providers/AuthProvider.js.map +1 -1
  34. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -1
  35. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.js +12 -1
  36. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +1 -1
  37. package/dist/esm/shared/version.d.ts +1 -1
  38. package/dist/esm/shared/version.d.ts.map +1 -1
  39. package/dist/esm/shared/version.js +1 -1
  40. package/dist/esm/shared/version.js.map +1 -1
  41. package/dist/generateVersion.d.ts +2 -0
  42. package/dist/generateVersion.d.ts.map +1 -0
  43. package/dist/generateVersion.js +12 -0
  44. package/dist/generateVersion.js.map +1 -0
  45. package/dist/package.json +118 -0
  46. package/dist/src/browser/storage.d.ts +9 -0
  47. package/dist/src/browser/storage.d.ts.map +1 -0
  48. package/dist/src/browser/storage.js +17 -0
  49. package/dist/src/browser/storage.js.map +1 -0
  50. package/dist/src/config.d.ts +3 -0
  51. package/dist/src/config.d.ts.map +1 -0
  52. package/dist/src/config.js +5 -0
  53. package/dist/src/config.js.map +1 -0
  54. package/dist/src/constants.d.ts +8 -0
  55. package/dist/src/constants.d.ts.map +1 -0
  56. package/dist/src/constants.js +16 -0
  57. package/dist/src/constants.js.map +1 -0
  58. package/dist/src/index.d.ts +6 -0
  59. package/dist/src/index.d.ts.map +1 -0
  60. package/dist/src/index.js +4 -0
  61. package/dist/src/index.js.map +1 -0
  62. package/dist/src/lib/cookies.d.ts +7 -0
  63. package/dist/src/lib/cookies.d.ts.map +1 -0
  64. package/dist/src/lib/cookies.js +25 -0
  65. package/dist/src/lib/cookies.js.map +1 -0
  66. package/dist/src/lib/jwt.d.ts +3 -0
  67. package/dist/src/lib/jwt.d.ts.map +1 -0
  68. package/dist/src/lib/jwt.js +9 -0
  69. package/dist/src/lib/jwt.js.map +1 -0
  70. package/dist/src/lib/logger.d.ts +26 -0
  71. package/dist/src/lib/logger.d.ts.map +1 -0
  72. package/dist/src/lib/logger.js +55 -0
  73. package/dist/src/lib/logger.js.map +1 -0
  74. package/dist/src/lib/oauth.d.ts +19 -0
  75. package/dist/src/lib/oauth.d.ts.map +1 -0
  76. package/dist/src/lib/oauth.js +61 -0
  77. package/dist/src/lib/oauth.js.map +1 -0
  78. package/dist/src/lib/obj.d.ts +3 -0
  79. package/dist/src/lib/obj.d.ts.map +1 -0
  80. package/dist/src/lib/obj.js +18 -0
  81. package/dist/src/lib/obj.js.map +1 -0
  82. package/dist/src/lib/postMessage.d.ts +4 -0
  83. package/dist/src/lib/postMessage.d.ts.map +1 -0
  84. package/dist/src/lib/postMessage.js +15 -0
  85. package/dist/src/lib/postMessage.js.map +1 -0
  86. package/dist/src/lib/windowUtil.d.ts +4 -0
  87. package/dist/src/lib/windowUtil.d.ts.map +1 -0
  88. package/dist/src/lib/windowUtil.js +31 -0
  89. package/dist/src/lib/windowUtil.js.map +1 -0
  90. package/dist/src/nextjs/GetUser.d.ts +6 -0
  91. package/dist/src/nextjs/GetUser.d.ts.map +1 -0
  92. package/dist/src/nextjs/GetUser.js +7 -0
  93. package/dist/src/nextjs/GetUser.js.map +1 -0
  94. package/dist/src/nextjs/config.d.ts +181 -0
  95. package/dist/src/nextjs/config.d.ts.map +1 -0
  96. package/dist/src/nextjs/config.js +177 -0
  97. package/dist/src/nextjs/config.js.map +1 -0
  98. package/dist/src/nextjs/cookies.d.ts +30 -0
  99. package/dist/src/nextjs/cookies.d.ts.map +1 -0
  100. package/dist/src/nextjs/cookies.js +112 -0
  101. package/dist/src/nextjs/cookies.js.map +1 -0
  102. package/dist/src/nextjs/hooks/index.d.ts +2 -0
  103. package/dist/src/nextjs/hooks/index.d.ts.map +1 -0
  104. package/dist/src/nextjs/hooks/index.js +2 -0
  105. package/dist/src/nextjs/hooks/index.js.map +1 -0
  106. package/dist/src/nextjs/hooks/usePrevious.d.ts +2 -0
  107. package/dist/src/nextjs/hooks/usePrevious.d.ts.map +1 -0
  108. package/dist/src/nextjs/hooks/usePrevious.js +9 -0
  109. package/dist/src/nextjs/hooks/usePrevious.js.map +1 -0
  110. package/dist/src/nextjs/hooks/useUserCookie.d.ts +8 -0
  111. package/dist/src/nextjs/hooks/useUserCookie.d.ts.map +1 -0
  112. package/dist/src/nextjs/hooks/useUserCookie.js +88 -0
  113. package/dist/src/nextjs/hooks/useUserCookie.js.map +1 -0
  114. package/dist/src/nextjs/index.d.ts +7 -0
  115. package/dist/src/nextjs/index.d.ts.map +1 -0
  116. package/dist/src/nextjs/index.js +8 -0
  117. package/dist/src/nextjs/index.js.map +1 -0
  118. package/dist/src/nextjs/middleware/index.d.ts +2 -0
  119. package/dist/src/nextjs/middleware/index.d.ts.map +1 -0
  120. package/dist/src/nextjs/middleware/index.js +4 -0
  121. package/dist/src/nextjs/middleware/index.js.map +1 -0
  122. package/dist/src/nextjs/middleware.d.ts +59 -0
  123. package/dist/src/nextjs/middleware.d.ts.map +1 -0
  124. package/dist/src/nextjs/middleware.js +107 -0
  125. package/dist/src/nextjs/middleware.js.map +1 -0
  126. package/dist/src/nextjs/providers/NextAuthProvider.d.ts +13 -0
  127. package/dist/src/nextjs/providers/NextAuthProvider.d.ts.map +1 -0
  128. package/dist/src/nextjs/providers/NextAuthProvider.js +94 -0
  129. package/dist/src/nextjs/providers/NextAuthProvider.js.map +1 -0
  130. package/dist/src/nextjs/routeHandler.d.ts +19 -0
  131. package/dist/src/nextjs/routeHandler.d.ts.map +1 -0
  132. package/dist/src/nextjs/routeHandler.js +299 -0
  133. package/dist/src/nextjs/routeHandler.js.map +1 -0
  134. package/dist/src/nextjs/utils.d.ts +3 -0
  135. package/dist/src/nextjs/utils.d.ts.map +1 -0
  136. package/dist/src/nextjs/utils.js +5 -0
  137. package/dist/src/nextjs/utils.js.map +1 -0
  138. package/dist/src/reactjs/components/SignInButton.d.ts +8 -0
  139. package/dist/src/reactjs/components/SignInButton.d.ts.map +1 -0
  140. package/dist/src/reactjs/components/SignInButton.js +14 -0
  141. package/dist/src/reactjs/components/SignInButton.js.map +1 -0
  142. package/dist/src/reactjs/components/SignOutButton.d.ts +6 -0
  143. package/dist/src/reactjs/components/SignOutButton.d.ts.map +1 -0
  144. package/dist/src/reactjs/components/SignOutButton.js +14 -0
  145. package/dist/src/reactjs/components/SignOutButton.js.map +1 -0
  146. package/dist/src/reactjs/components/UserButton.d.ts +6 -0
  147. package/dist/src/reactjs/components/UserButton.d.ts.map +1 -0
  148. package/dist/src/reactjs/components/UserButton.js +118 -0
  149. package/dist/src/reactjs/components/UserButton.js.map +1 -0
  150. package/dist/src/reactjs/components/index.d.ts +6 -0
  151. package/dist/src/reactjs/components/index.d.ts.map +1 -0
  152. package/dist/src/reactjs/components/index.js +6 -0
  153. package/dist/src/reactjs/components/index.js.map +1 -0
  154. package/dist/src/reactjs/hooks/index.d.ts +6 -0
  155. package/dist/src/reactjs/hooks/index.d.ts.map +1 -0
  156. package/dist/src/reactjs/hooks/index.js +6 -0
  157. package/dist/src/reactjs/hooks/index.js.map +1 -0
  158. package/dist/src/reactjs/hooks/useAuth.d.ts +3 -0
  159. package/dist/src/reactjs/hooks/useAuth.d.ts.map +1 -0
  160. package/dist/src/reactjs/hooks/useAuth.js +12 -0
  161. package/dist/src/reactjs/hooks/useAuth.js.map +1 -0
  162. package/dist/src/reactjs/hooks/useClientTokenExchangeSession.d.ts +3 -0
  163. package/dist/src/reactjs/hooks/useClientTokenExchangeSession.d.ts.map +1 -0
  164. package/dist/src/reactjs/hooks/useClientTokenExchangeSession.js +13 -0
  165. package/dist/src/reactjs/hooks/useClientTokenExchangeSession.js.map +1 -0
  166. package/dist/src/reactjs/hooks/useUser.d.ts +4 -0
  167. package/dist/src/reactjs/hooks/useUser.d.ts.map +1 -0
  168. package/dist/src/reactjs/hooks/useUser.js +12 -0
  169. package/dist/src/reactjs/hooks/useUser.js.map +1 -0
  170. package/dist/src/reactjs/index.d.ts +6 -0
  171. package/dist/src/reactjs/index.d.ts.map +1 -0
  172. package/dist/src/reactjs/index.js +10 -0
  173. package/dist/src/reactjs/index.js.map +1 -0
  174. package/dist/src/reactjs/providers/AuthProvider.d.ts +11 -0
  175. package/dist/src/reactjs/providers/AuthProvider.d.ts.map +1 -0
  176. package/dist/src/reactjs/providers/AuthProvider.js +76 -0
  177. package/dist/src/reactjs/providers/AuthProvider.js.map +1 -0
  178. package/dist/src/reactjs/providers/CivicAuthProvider.d.ts +6 -0
  179. package/dist/src/reactjs/providers/CivicAuthProvider.d.ts.map +1 -0
  180. package/dist/src/reactjs/providers/CivicAuthProvider.js +32 -0
  181. package/dist/src/reactjs/providers/CivicAuthProvider.js.map +1 -0
  182. package/dist/src/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts +17 -0
  183. package/dist/src/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -0
  184. package/dist/src/reactjs/providers/ClientTokenExchangeSessionProvider.js +148 -0
  185. package/dist/src/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +1 -0
  186. package/dist/src/reactjs/providers/index.d.ts +8 -0
  187. package/dist/src/reactjs/providers/index.d.ts.map +1 -0
  188. package/dist/src/reactjs/providers/index.js +7 -0
  189. package/dist/src/reactjs/providers/index.js.map +1 -0
  190. package/dist/src/server/ServerAuthenticationResolver.d.ts +20 -0
  191. package/dist/src/server/ServerAuthenticationResolver.d.ts.map +1 -0
  192. package/dist/src/server/ServerAuthenticationResolver.js +67 -0
  193. package/dist/src/server/ServerAuthenticationResolver.js.map +1 -0
  194. package/dist/src/server/config.d.ts +10 -0
  195. package/dist/src/server/config.d.ts.map +1 -0
  196. package/dist/src/server/config.js +2 -0
  197. package/dist/src/server/config.js.map +1 -0
  198. package/dist/src/server/index.d.ts +7 -0
  199. package/dist/src/server/index.d.ts.map +1 -0
  200. package/dist/src/server/index.js +7 -0
  201. package/dist/src/server/index.js.map +1 -0
  202. package/dist/src/server/login.d.ts +21 -0
  203. package/dist/src/server/login.d.ts.map +1 -0
  204. package/dist/src/server/login.js +56 -0
  205. package/dist/src/server/login.js.map +1 -0
  206. package/dist/src/server/refresh.d.ts +7 -0
  207. package/dist/src/server/refresh.d.ts.map +1 -0
  208. package/dist/src/server/refresh.js +13 -0
  209. package/dist/src/server/refresh.js.map +1 -0
  210. package/dist/src/services/AuthenticationService.d.ts +91 -0
  211. package/dist/src/services/AuthenticationService.d.ts.map +1 -0
  212. package/dist/src/services/AuthenticationService.js +322 -0
  213. package/dist/src/services/AuthenticationService.js.map +1 -0
  214. package/dist/src/services/PKCE.d.ts +20 -0
  215. package/dist/src/services/PKCE.d.ts.map +1 -0
  216. package/dist/src/services/PKCE.js +44 -0
  217. package/dist/src/services/PKCE.js.map +1 -0
  218. package/dist/src/services/types.d.ts +24 -0
  219. package/dist/src/services/types.d.ts.map +1 -0
  220. package/dist/src/services/types.js +7 -0
  221. package/dist/src/services/types.js.map +1 -0
  222. package/dist/src/shared/components/BlockDisplay.d.ts +7 -0
  223. package/dist/src/shared/components/BlockDisplay.d.ts.map +1 -0
  224. package/dist/src/shared/components/BlockDisplay.js +25 -0
  225. package/dist/src/shared/components/BlockDisplay.js.map +1 -0
  226. package/dist/src/shared/components/CivicAuthIframe.d.ts +9 -0
  227. package/dist/src/shared/components/CivicAuthIframe.d.ts.map +1 -0
  228. package/dist/src/shared/components/CivicAuthIframe.js +8 -0
  229. package/dist/src/shared/components/CivicAuthIframe.js.map +1 -0
  230. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts +13 -0
  231. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts.map +1 -0
  232. package/dist/src/shared/components/CivicAuthIframeContainer.js +138 -0
  233. package/dist/src/shared/components/CivicAuthIframeContainer.js.map +1 -0
  234. package/dist/src/shared/components/CivicAuthLogoutIframeContainer.d.ts +7 -0
  235. package/dist/src/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +1 -0
  236. package/dist/src/shared/components/CivicAuthLogoutIframeContainer.js +22 -0
  237. package/dist/src/shared/components/CivicAuthLogoutIframeContainer.js.map +1 -0
  238. package/dist/src/shared/components/CloseIcon.d.ts +4 -0
  239. package/dist/src/shared/components/CloseIcon.d.ts.map +1 -0
  240. package/dist/src/shared/components/CloseIcon.js +6 -0
  241. package/dist/src/shared/components/CloseIcon.js.map +1 -0
  242. package/dist/src/shared/components/IFrameAndLoading.d.ts +8 -0
  243. package/dist/src/shared/components/IFrameAndLoading.d.ts.map +1 -0
  244. package/dist/src/shared/components/IFrameAndLoading.js +27 -0
  245. package/dist/src/shared/components/IFrameAndLoading.js.map +1 -0
  246. package/dist/src/shared/components/LoadingIcon.d.ts +4 -0
  247. package/dist/src/shared/components/LoadingIcon.d.ts.map +1 -0
  248. package/dist/src/shared/components/LoadingIcon.js +30 -0
  249. package/dist/src/shared/components/LoadingIcon.js.map +1 -0
  250. package/dist/src/shared/hooks/index.d.ts +11 -0
  251. package/dist/src/shared/hooks/index.d.ts.map +1 -0
  252. package/dist/src/shared/hooks/index.js +11 -0
  253. package/dist/src/shared/hooks/index.js.map +1 -0
  254. package/dist/src/shared/hooks/useAuth.d.ts +3 -0
  255. package/dist/src/shared/hooks/useAuth.d.ts.map +1 -0
  256. package/dist/src/shared/hooks/useAuth.js +12 -0
  257. package/dist/src/shared/hooks/useAuth.js.map +1 -0
  258. package/dist/src/shared/hooks/useCivicAuthConfig.d.ts +3 -0
  259. package/dist/src/shared/hooks/useCivicAuthConfig.d.ts.map +1 -0
  260. package/dist/src/shared/hooks/useCivicAuthConfig.js +10 -0
  261. package/dist/src/shared/hooks/useCivicAuthConfig.js.map +1 -0
  262. package/dist/src/shared/hooks/useClientTokenExchangeSession.d.ts +3 -0
  263. package/dist/src/shared/hooks/useClientTokenExchangeSession.d.ts.map +1 -0
  264. package/dist/src/shared/hooks/useClientTokenExchangeSession.js +13 -0
  265. package/dist/src/shared/hooks/useClientTokenExchangeSession.js.map +1 -0
  266. package/dist/src/shared/hooks/useCurrentUrl.d.ts +3 -0
  267. package/dist/src/shared/hooks/useCurrentUrl.d.ts.map +1 -0
  268. package/dist/src/shared/hooks/useCurrentUrl.js +24 -0
  269. package/dist/src/shared/hooks/useCurrentUrl.js.map +1 -0
  270. package/dist/src/shared/hooks/useIframe.d.ts +3 -0
  271. package/dist/src/shared/hooks/useIframe.d.ts.map +1 -0
  272. package/dist/src/shared/hooks/useIframe.js +13 -0
  273. package/dist/src/shared/hooks/useIframe.js.map +1 -0
  274. package/dist/src/shared/hooks/useIsInIframe.d.ts +3 -0
  275. package/dist/src/shared/hooks/useIsInIframe.d.ts.map +1 -0
  276. package/dist/src/shared/hooks/useIsInIframe.js +14 -0
  277. package/dist/src/shared/hooks/useIsInIframe.js.map +1 -0
  278. package/dist/src/shared/hooks/useOAuthEndpoints.d.ts +4 -0
  279. package/dist/src/shared/hooks/useOAuthEndpoints.d.ts.map +1 -0
  280. package/dist/src/shared/hooks/useOAuthEndpoints.js +14 -0
  281. package/dist/src/shared/hooks/useOAuthEndpoints.js.map +1 -0
  282. package/dist/src/shared/hooks/useRefresh.d.ts +4 -0
  283. package/dist/src/shared/hooks/useRefresh.d.ts.map +1 -0
  284. package/dist/src/shared/hooks/useRefresh.js +38 -0
  285. package/dist/src/shared/hooks/useRefresh.js.map +1 -0
  286. package/dist/src/shared/hooks/useSession.d.ts +3 -0
  287. package/dist/src/shared/hooks/useSession.d.ts.map +1 -0
  288. package/dist/src/shared/hooks/useSession.js +13 -0
  289. package/dist/src/shared/hooks/useSession.js.map +1 -0
  290. package/dist/src/shared/hooks/useSignIn.d.ts +15 -0
  291. package/dist/src/shared/hooks/useSignIn.d.ts.map +1 -0
  292. package/dist/src/shared/hooks/useSignIn.js +126 -0
  293. package/dist/src/shared/hooks/useSignIn.js.map +1 -0
  294. package/dist/src/shared/hooks/useToken.d.ts +3 -0
  295. package/dist/src/shared/hooks/useToken.d.ts.map +1 -0
  296. package/dist/src/shared/hooks/useToken.js +12 -0
  297. package/dist/src/shared/hooks/useToken.js.map +1 -0
  298. package/dist/src/shared/hooks/useWindowFocused.d.ts +5 -0
  299. package/dist/src/shared/hooks/useWindowFocused.d.ts.map +1 -0
  300. package/dist/src/shared/hooks/useWindowFocused.js +21 -0
  301. package/dist/src/shared/hooks/useWindowFocused.js.map +1 -0
  302. package/dist/src/shared/index.d.ts +5 -0
  303. package/dist/src/shared/index.d.ts.map +1 -0
  304. package/dist/src/shared/index.js +16 -0
  305. package/dist/src/shared/index.js.map +1 -0
  306. package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts +20 -0
  307. package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -0
  308. package/dist/src/shared/lib/GenericAuthenticationRefresher.js +73 -0
  309. package/dist/src/shared/lib/GenericAuthenticationRefresher.js.map +1 -0
  310. package/dist/src/shared/lib/UserSession.d.ts +12 -0
  311. package/dist/src/shared/lib/UserSession.d.ts.map +1 -0
  312. package/dist/src/shared/lib/UserSession.js +20 -0
  313. package/dist/src/shared/lib/UserSession.js.map +1 -0
  314. package/dist/src/shared/lib/session.d.ts +3 -0
  315. package/dist/src/shared/lib/session.d.ts.map +1 -0
  316. package/dist/src/shared/lib/session.js +21 -0
  317. package/dist/src/shared/lib/session.js.map +1 -0
  318. package/dist/src/shared/lib/storage.d.ts +25 -0
  319. package/dist/src/shared/lib/storage.d.ts.map +1 -0
  320. package/dist/src/shared/lib/storage.js +17 -0
  321. package/dist/src/shared/lib/storage.js.map +1 -0
  322. package/dist/src/shared/lib/types.d.ts +36 -0
  323. package/dist/src/shared/lib/types.d.ts.map +1 -0
  324. package/dist/src/shared/lib/types.js +18 -0
  325. package/dist/src/shared/lib/types.js.map +1 -0
  326. package/dist/src/shared/lib/util.d.ts +34 -0
  327. package/dist/src/shared/lib/util.d.ts.map +1 -0
  328. package/dist/src/shared/lib/util.js +137 -0
  329. package/dist/src/shared/lib/util.js.map +1 -0
  330. package/dist/src/shared/providers/AuthContext.d.ts +11 -0
  331. package/dist/src/shared/providers/AuthContext.d.ts.map +1 -0
  332. package/dist/src/shared/providers/AuthContext.js +3 -0
  333. package/dist/src/shared/providers/AuthContext.js.map +1 -0
  334. package/dist/src/shared/providers/AuthProvider.d.ts +22 -0
  335. package/dist/src/shared/providers/AuthProvider.d.ts.map +1 -0
  336. package/dist/src/shared/providers/AuthProvider.js +72 -0
  337. package/dist/src/shared/providers/AuthProvider.js.map +1 -0
  338. package/dist/src/shared/providers/CivicAuthConfigContext.d.ts +18 -0
  339. package/dist/src/shared/providers/CivicAuthConfigContext.d.ts.map +1 -0
  340. package/dist/src/shared/providers/CivicAuthConfigContext.js +52 -0
  341. package/dist/src/shared/providers/CivicAuthConfigContext.js.map +1 -0
  342. package/dist/src/shared/providers/CivicAuthProvider.d.ts +6 -0
  343. package/dist/src/shared/providers/CivicAuthProvider.d.ts.map +1 -0
  344. package/dist/src/shared/providers/CivicAuthProvider.js +32 -0
  345. package/dist/src/shared/providers/CivicAuthProvider.js.map +1 -0
  346. package/dist/src/shared/providers/ClientTokenExchangeSessionProvider.d.ts +17 -0
  347. package/dist/src/shared/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -0
  348. package/dist/src/shared/providers/ClientTokenExchangeSessionProvider.js +131 -0
  349. package/dist/src/shared/providers/ClientTokenExchangeSessionProvider.js.map +1 -0
  350. package/dist/src/shared/providers/IframeProvider.d.ts +22 -0
  351. package/dist/src/shared/providers/IframeProvider.d.ts.map +1 -0
  352. package/dist/src/shared/providers/IframeProvider.js +35 -0
  353. package/dist/src/shared/providers/IframeProvider.js.map +1 -0
  354. package/dist/src/shared/providers/SessionProvider.d.ts +19 -0
  355. package/dist/src/shared/providers/SessionProvider.d.ts.map +1 -0
  356. package/dist/src/shared/providers/SessionProvider.js +23 -0
  357. package/dist/src/shared/providers/SessionProvider.js.map +1 -0
  358. package/dist/src/shared/providers/TokenProvider.d.ts +18 -0
  359. package/dist/src/shared/providers/TokenProvider.d.ts.map +1 -0
  360. package/dist/src/shared/providers/TokenProvider.js +42 -0
  361. package/dist/src/shared/providers/TokenProvider.js.map +1 -0
  362. package/dist/src/shared/providers/UserProvider.d.ts +24 -0
  363. package/dist/src/shared/providers/UserProvider.d.ts.map +1 -0
  364. package/dist/src/shared/providers/UserProvider.js +52 -0
  365. package/dist/src/shared/providers/UserProvider.js.map +1 -0
  366. package/dist/src/shared/providers/types.d.ts +15 -0
  367. package/dist/src/shared/providers/types.d.ts.map +1 -0
  368. package/dist/src/shared/providers/types.js +2 -0
  369. package/dist/src/shared/providers/types.js.map +1 -0
  370. package/dist/src/shared/version.d.ts +2 -0
  371. package/dist/src/shared/version.d.ts.map +1 -0
  372. package/dist/src/shared/version.js +3 -0
  373. package/dist/src/shared/version.js.map +1 -0
  374. package/dist/src/types.d.ts +148 -0
  375. package/dist/src/types.d.ts.map +1 -0
  376. package/dist/src/types.js +4 -0
  377. package/dist/src/types.js.map +1 -0
  378. package/dist/src/utils.d.ts +15 -0
  379. package/dist/src/utils.d.ts.map +1 -0
  380. package/dist/src/utils.js +43 -0
  381. package/dist/src/utils.js.map +1 -0
  382. package/dist/src/version.d.ts +2 -0
  383. package/dist/src/version.d.ts.map +1 -0
  384. package/dist/src/version.js +3 -0
  385. package/dist/src/version.js.map +1 -0
  386. package/dist/test/integration/sdk.test.d.ts +2 -0
  387. package/dist/test/integration/sdk.test.d.ts.map +1 -0
  388. package/dist/test/integration/sdk.test.js +237 -0
  389. package/dist/test/integration/sdk.test.js.map +1 -0
  390. package/dist/test/support/fixtures.d.ts +26 -0
  391. package/dist/test/support/fixtures.d.ts.map +1 -0
  392. package/dist/test/support/fixtures.js +55 -0
  393. package/dist/test/support/fixtures.js.map +1 -0
  394. package/dist/test/support/tokens.json +26 -0
  395. package/dist/test/unit/lib/oauth.test.d.ts +2 -0
  396. package/dist/test/unit/lib/oauth.test.d.ts.map +1 -0
  397. package/dist/test/unit/lib/oauth.test.js +56 -0
  398. package/dist/test/unit/lib/oauth.test.js.map +1 -0
  399. package/dist/test/unit/lib/obj.test.d.ts +2 -0
  400. package/dist/test/unit/lib/obj.test.d.ts.map +1 -0
  401. package/dist/test/unit/lib/obj.test.js +37 -0
  402. package/dist/test/unit/lib/obj.test.js.map +1 -0
  403. package/dist/test/unit/logger.test.d.ts +2 -0
  404. package/dist/test/unit/logger.test.d.ts.map +1 -0
  405. package/dist/test/unit/logger.test.js +141 -0
  406. package/dist/test/unit/logger.test.js.map +1 -0
  407. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts +2 -0
  408. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts.map +1 -0
  409. package/dist/test/unit/nextjs/NextAuthProvider.test.js +31 -0
  410. package/dist/test/unit/nextjs/NextAuthProvider.test.js.map +1 -0
  411. package/dist/test/unit/nextjs/config.test.d.ts +2 -0
  412. package/dist/test/unit/nextjs/config.test.d.ts.map +1 -0
  413. package/dist/test/unit/nextjs/config.test.js +203 -0
  414. package/dist/test/unit/nextjs/config.test.js.map +1 -0
  415. package/dist/test/unit/nextjs/getUser.test.d.ts +2 -0
  416. package/dist/test/unit/nextjs/getUser.test.d.ts.map +1 -0
  417. package/dist/test/unit/nextjs/getUser.test.js +22 -0
  418. package/dist/test/unit/nextjs/getUser.test.js.map +1 -0
  419. package/dist/test/unit/nextjs/handler.test.d.ts +2 -0
  420. package/dist/test/unit/nextjs/handler.test.d.ts.map +1 -0
  421. package/dist/test/unit/nextjs/handler.test.js +235 -0
  422. package/dist/test/unit/nextjs/handler.test.js.map +1 -0
  423. package/dist/test/unit/nextjs/middleware.test.d.ts +2 -0
  424. package/dist/test/unit/nextjs/middleware.test.d.ts.map +1 -0
  425. package/dist/test/unit/nextjs/middleware.test.js +113 -0
  426. package/dist/test/unit/nextjs/middleware.test.js.map +1 -0
  427. package/dist/test/unit/nextjs/utils.test.d.ts +2 -0
  428. package/dist/test/unit/nextjs/utils.test.d.ts.map +1 -0
  429. package/dist/test/unit/nextjs/utils.test.js +13 -0
  430. package/dist/test/unit/nextjs/utils.test.js.map +1 -0
  431. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts +2 -0
  432. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts.map +1 -0
  433. package/dist/test/unit/publicApi/apiSnapshot.test.js +10 -0
  434. package/dist/test/unit/publicApi/apiSnapshot.test.js.map +1 -0
  435. package/dist/test/unit/react/components/SignInButton.test.d.ts +2 -0
  436. package/dist/test/unit/react/components/SignInButton.test.d.ts.map +1 -0
  437. package/dist/test/unit/react/components/SignInButton.test.js +31 -0
  438. package/dist/test/unit/react/components/SignInButton.test.js.map +1 -0
  439. package/dist/test/unit/react/components/SignOutButton.test.d.ts +2 -0
  440. package/dist/test/unit/react/components/SignOutButton.test.d.ts.map +1 -0
  441. package/dist/test/unit/react/components/SignOutButton.test.js +30 -0
  442. package/dist/test/unit/react/components/SignOutButton.test.js.map +1 -0
  443. package/dist/test/unit/server/login.test.d.ts +2 -0
  444. package/dist/test/unit/server/login.test.d.ts.map +1 -0
  445. package/dist/test/unit/server/login.test.js +184 -0
  446. package/dist/test/unit/server/login.test.js.map +1 -0
  447. package/dist/test/unit/server/refresh.test.d.ts +2 -0
  448. package/dist/test/unit/server/refresh.test.d.ts.map +1 -0
  449. package/dist/test/unit/server/refresh.test.js +55 -0
  450. package/dist/test/unit/server/refresh.test.js.map +1 -0
  451. package/dist/test/unit/server/session.test.d.ts +2 -0
  452. package/dist/test/unit/server/session.test.d.ts.map +1 -0
  453. package/dist/test/unit/server/session.test.js +41 -0
  454. package/dist/test/unit/server/session.test.js.map +1 -0
  455. package/dist/test/unit/services/AuthenticationService.test.d.ts +2 -0
  456. package/dist/test/unit/services/AuthenticationService.test.d.ts.map +1 -0
  457. package/dist/test/unit/services/AuthenticationService.test.js +301 -0
  458. package/dist/test/unit/services/AuthenticationService.test.js.map +1 -0
  459. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts +2 -0
  460. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts.map +1 -0
  461. package/dist/test/unit/services/ServerAuthenticationResolver.test.js +75 -0
  462. package/dist/test/unit/services/ServerAuthenticationResolver.test.js.map +1 -0
  463. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts +2 -0
  464. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts.map +1 -0
  465. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js +144 -0
  466. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js.map +1 -0
  467. package/dist/test/unit/shared/UserSession.test.d.ts +2 -0
  468. package/dist/test/unit/shared/UserSession.test.d.ts.map +1 -0
  469. package/dist/test/unit/shared/UserSession.test.js +37 -0
  470. package/dist/test/unit/shared/UserSession.test.js.map +1 -0
  471. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts +2 -0
  472. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts.map +1 -0
  473. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js +122 -0
  474. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js.map +1 -0
  475. package/dist/test/unit/shared/printVersion.test.d.ts +2 -0
  476. package/dist/test/unit/shared/printVersion.test.d.ts.map +1 -0
  477. package/dist/test/unit/shared/printVersion.test.js +39 -0
  478. package/dist/test/unit/shared/printVersion.test.js.map +1 -0
  479. package/dist/test/unit/shared/providers/ClientTokenExchangeSessionProvider.test.d.ts +2 -0
  480. package/dist/test/unit/shared/providers/ClientTokenExchangeSessionProvider.test.d.ts.map +1 -0
  481. package/dist/test/unit/shared/providers/ClientTokenExchangeSessionProvider.test.js +108 -0
  482. package/dist/test/unit/shared/providers/ClientTokenExchangeSessionProvider.test.js.map +1 -0
  483. package/dist/test/unit/shared/storage.test.d.ts +2 -0
  484. package/dist/test/unit/shared/storage.test.d.ts.map +1 -0
  485. package/dist/test/unit/shared/storage.test.js +53 -0
  486. package/dist/test/unit/shared/storage.test.js.map +1 -0
  487. package/dist/test/unit/utils.test.d.ts +2 -0
  488. package/dist/test/unit/utils.test.d.ts.map +1 -0
  489. package/dist/test/unit/utils.test.js +40 -0
  490. package/dist/test/unit/utils.test.js.map +1 -0
  491. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  492. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  493. package/dist/tsconfig.tsbuildinfo +1 -0
  494. package/dist/vitest.config.d.ts +3 -0
  495. package/dist/vitest.config.d.ts.map +1 -0
  496. package/dist/vitest.config.js +44 -0
  497. package/dist/vitest.config.js.map +1 -0
  498. package/package.json +19 -18
  499. package/dist/cjs/reactjs/components/LoadingSpinner.d.ts +0 -7
  500. package/dist/cjs/reactjs/components/LoadingSpinner.d.ts.map +0 -1
  501. package/dist/cjs/reactjs/components/LoadingSpinner.js +0 -33
  502. package/dist/cjs/reactjs/components/LoadingSpinner.js.map +0 -1
@@ -0,0 +1,61 @@
1
+ import { v4 as uuid } from "uuid";
2
+ const getIssuerVariations = (issuer) => {
3
+ const issuerWithoutSlash = issuer.endsWith("/")
4
+ ? issuer.slice(0, issuer.length - 1)
5
+ : issuer;
6
+ const issuerWithSlash = `${issuerWithoutSlash}/`;
7
+ return [issuerWithoutSlash, issuerWithSlash];
8
+ };
9
+ const addSlashIfNeeded = (url) => url.endsWith("/") ? url : `${url}/`;
10
+ const getOauthEndpoints = async (oauthServer) => {
11
+ const openIdConfigResponse = await fetch(`${addSlashIfNeeded(oauthServer)}.well-known/openid-configuration`);
12
+ const openIdConfig = (await openIdConfigResponse.json());
13
+ return {
14
+ jwks: openIdConfig.jwks_uri,
15
+ auth: openIdConfig.authorization_endpoint,
16
+ token: openIdConfig.token_endpoint,
17
+ userinfo: openIdConfig.userinfo_endpoint,
18
+ endsession: openIdConfig.end_session_endpoint,
19
+ };
20
+ };
21
+ /**
22
+ * creates a state string for the OAuth2 flow, encoding the display mode too for future use
23
+ * @param {DisplayMode} displayMode
24
+ * @returns {string}
25
+ */
26
+ const generateState = (displayMode, serverTokenExchange) => {
27
+ const jsonString = JSON.stringify({
28
+ uuid: uuid(),
29
+ displayMode,
30
+ ...(serverTokenExchange ? { serverTokenExchange } : {}),
31
+ });
32
+ return btoa(jsonString);
33
+ };
34
+ /**
35
+ * parses the state string from the OAuth2 flow, decoding the display mode too
36
+ * @param state
37
+ * @param sessionDisplayMode
38
+ * @returns { uuid: string, displayMode: DisplayMode }
39
+ */
40
+ const displayModeFromState = (state, sessionDisplayMode) => {
41
+ try {
42
+ const jsonString = atob(state);
43
+ return JSON.parse(jsonString).displayMode;
44
+ }
45
+ catch (e) {
46
+ console.error("Failed to parse displayMode from state:", state, e);
47
+ return sessionDisplayMode;
48
+ }
49
+ };
50
+ const serverTokenExchangeFromState = (state) => {
51
+ try {
52
+ const jsonString = atob(state);
53
+ return JSON.parse(jsonString).serverTokenExchange;
54
+ }
55
+ catch {
56
+ console.error("Failed to parse serverTokenExchange from state:", state);
57
+ return undefined;
58
+ }
59
+ };
60
+ export { serverTokenExchangeFromState, getIssuerVariations, getOauthEndpoints, displayModeFromState, generateState, };
61
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/lib/oauth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAY,EAAE;IACvD,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC;IAEX,MAAM,eAAe,GAAG,GAAG,kBAAkB,GAAG,CAAC;IAEjD,OAAO,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE,CAC/C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;AAEtC,MAAM,iBAAiB,GAAG,KAAK,EAAE,WAAmB,EAAsB,EAAE;IAC1E,MAAM,oBAAoB,GAAG,MAAM,KAAK,CACtC,GAAG,gBAAgB,CAAC,WAAW,CAAC,kCAAkC,CACnE,CAAC;IACF,MAAM,YAAY,GAChB,CAAC,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAwB,CAAC;IAC7D,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,QAAQ;QAC3B,IAAI,EAAE,YAAY,CAAC,sBAAsB;QACzC,KAAK,EAAE,YAAY,CAAC,cAAc;QAClC,QAAQ,EAAE,YAAY,CAAC,iBAAiB;QACxC,UAAU,EAAE,YAAY,CAAC,oBAAoB;KAC9C,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,aAAa,GAAG,CACpB,WAAwB,EACxB,mBAA6B,EACrB,EAAE;IACV,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,IAAI,EAAE;QACZ,WAAW;QACX,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,CAC3B,KAAa,EACb,kBAA2C,EAClB,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,KAAa,EAAuB,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACd,CAAC","sourcesContent":["import type { DisplayMode, Endpoints, OpenIdConfiguration } from \"@/types.js\";\nimport { v4 as uuid } from \"uuid\";\n\nconst getIssuerVariations = (issuer: string): string[] => {\n const issuerWithoutSlash = issuer.endsWith(\"/\")\n ? issuer.slice(0, issuer.length - 1)\n : issuer;\n\n const issuerWithSlash = `${issuerWithoutSlash}/`;\n\n return [issuerWithoutSlash, issuerWithSlash];\n};\n\nconst addSlashIfNeeded = (url: string): string =>\n url.endsWith(\"/\") ? url : `${url}/`;\n\nconst getOauthEndpoints = async (oauthServer: string): Promise<Endpoints> => {\n const openIdConfigResponse = await fetch(\n `${addSlashIfNeeded(oauthServer)}.well-known/openid-configuration`,\n );\n const openIdConfig =\n (await openIdConfigResponse.json()) as OpenIdConfiguration;\n return {\n jwks: openIdConfig.jwks_uri,\n auth: openIdConfig.authorization_endpoint,\n token: openIdConfig.token_endpoint,\n userinfo: openIdConfig.userinfo_endpoint,\n endsession: openIdConfig.end_session_endpoint,\n };\n};\n\n/**\n * creates a state string for the OAuth2 flow, encoding the display mode too for future use\n * @param {DisplayMode} displayMode\n * @returns {string}\n */\nconst generateState = (\n displayMode: DisplayMode,\n serverTokenExchange?: boolean,\n): string => {\n const jsonString = JSON.stringify({\n uuid: uuid(),\n displayMode,\n ...(serverTokenExchange ? { serverTokenExchange } : {}),\n });\n return btoa(jsonString);\n};\n\n/**\n * parses the state string from the OAuth2 flow, decoding the display mode too\n * @param state\n * @param sessionDisplayMode\n * @returns { uuid: string, displayMode: DisplayMode }\n */\nconst displayModeFromState = (\n state: string,\n sessionDisplayMode: DisplayMode | undefined,\n): DisplayMode | undefined => {\n try {\n const jsonString = atob(state);\n return JSON.parse(jsonString).displayMode;\n } catch (e) {\n console.error(\"Failed to parse displayMode from state:\", state, e);\n return sessionDisplayMode;\n }\n};\n\nconst serverTokenExchangeFromState = (state: string): boolean | undefined => {\n try {\n const jsonString = atob(state);\n return JSON.parse(jsonString).serverTokenExchange;\n } catch {\n console.error(\"Failed to parse serverTokenExchange from state:\", state);\n return undefined;\n }\n};\n\nexport {\n serverTokenExchangeFromState,\n getIssuerVariations,\n getOauthEndpoints,\n displayModeFromState,\n generateState,\n};\n"]}
@@ -0,0 +1,3 @@
1
+ declare const objectsAreEqual: (obj1: Record<string, unknown> | null | undefined, obj2: Record<string, unknown> | null | undefined) => boolean;
2
+ export { objectsAreEqual };
3
+ //# sourceMappingURL=obj.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obj.d.ts","sourceRoot":"","sources":["../../../src/lib/obj.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,SACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,QAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KAC/C,OAiBF,CAAC;AACF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ const objectsAreEqual = (obj1, obj2) => {
2
+ if (obj1 === obj2)
3
+ return true;
4
+ if ((obj1 && !obj2) || (obj2 && !obj1)) {
5
+ return false;
6
+ }
7
+ const keys1 = obj1 ? Object.keys(obj1) : [];
8
+ const keys2 = obj2 ? Object.keys(obj2) : [];
9
+ if (keys1.length !== keys2.length)
10
+ return false;
11
+ for (const key of keys1) {
12
+ if ((obj1 || {})[key] !== (obj2 || {})[key])
13
+ return false;
14
+ }
15
+ return true;
16
+ };
17
+ export { objectsAreEqual };
18
+ //# sourceMappingURL=obj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obj.js","sourceRoot":"","sources":["../../../src/lib/obj.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,CACtB,IAAgD,EAChD,IAAgD,EACvC,EAAE;IACX,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE/B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5C,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IAC5D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF,OAAO,EAAE,eAAe,EAAE,CAAC","sourcesContent":["const objectsAreEqual = (\n obj1: Record<string, unknown> | null | undefined,\n obj2: Record<string, unknown> | null | undefined,\n): boolean => {\n if (obj1 === obj2) return true;\n\n if ((obj1 && !obj2) || (obj2 && !obj1)) {\n return false;\n }\n\n const keys1 = obj1 ? Object.keys(obj1) : [];\n const keys2 = obj2 ? Object.keys(obj2) : [];\n\n if (keys1.length !== keys2.length) return false;\n\n for (const key of keys1) {\n if ((obj1 || {})[key] !== (obj2 || {})[key]) return false;\n }\n\n return true;\n};\nexport { objectsAreEqual };\n"]}
@@ -0,0 +1,4 @@
1
+ import type { LoginPostMessage } from "@/types.js";
2
+ declare const validateLoginAppPostMessage: (event: LoginPostMessage, clientId: string) => boolean;
3
+ export { validateLoginAppPostMessage };
4
+ //# sourceMappingURL=postMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postMessage.d.ts","sourceRoot":"","sources":["../../../src/lib/postMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,QAAA,MAAM,2BAA2B,UACxB,gBAAgB,YACb,MAAM,KACf,OAcF,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ const validateLoginAppPostMessage = (event, clientId) => {
2
+ const caseEvent = event;
3
+ // console.log("caseEvent", caseEvent);
4
+ if (!caseEvent.clientId ||
5
+ !caseEvent.data.url ||
6
+ !caseEvent.source ||
7
+ !caseEvent.type ||
8
+ caseEvent.clientId !== clientId ||
9
+ caseEvent.source !== "civicloginApp") {
10
+ return false;
11
+ }
12
+ return true;
13
+ };
14
+ export { validateLoginAppPostMessage };
15
+ //# sourceMappingURL=postMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postMessage.js","sourceRoot":"","sources":["../../../src/lib/postMessage.ts"],"names":[],"mappings":"AAEA,MAAM,2BAA2B,GAAG,CAClC,KAAuB,EACvB,QAAgB,EACP,EAAE;IACX,MAAM,SAAS,GAAG,KAAyB,CAAC;IAC5C,uCAAuC;IACvC,IACE,CAAC,SAAS,CAAC,QAAQ;QACnB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;QACnB,CAAC,SAAS,CAAC,MAAM;QACjB,CAAC,SAAS,CAAC,IAAI;QACf,SAAS,CAAC,QAAQ,KAAK,QAAQ;QAC/B,SAAS,CAAC,MAAM,KAAK,eAAe,EACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAC","sourcesContent":["import type { LoginPostMessage } from \"@/types.js\";\n\nconst validateLoginAppPostMessage = (\n event: LoginPostMessage,\n clientId: string,\n): boolean => {\n const caseEvent = event as LoginPostMessage;\n // console.log(\"caseEvent\", caseEvent);\n if (\n !caseEvent.clientId ||\n !caseEvent.data.url ||\n !caseEvent.source ||\n !caseEvent.type ||\n caseEvent.clientId !== clientId ||\n caseEvent.source !== \"civicloginApp\"\n ) {\n return false;\n }\n return true;\n};\n\nexport { validateLoginAppPostMessage };\n"]}
@@ -0,0 +1,4 @@
1
+ declare const isWindowInIframe: (window: Window) => boolean;
2
+ declare const removeParamsWithoutReload: (paramsToRemove: string[]) => void;
3
+ export { isWindowInIframe, removeParamsWithoutReload };
4
+ //# sourceMappingURL=windowUtil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windowUtil.d.ts","sourceRoot":"","sources":["../../../src/lib/windowUtil.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,gBAAgB,WAAY,MAAM,KAAG,OAc1C,CAAC;AAEF,QAAA,MAAM,yBAAyB,mBAAoB,MAAM,EAAE,SAW1D,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ const isWindowInIframe = (window) => {
2
+ if (typeof window !== "undefined") {
3
+ // use the window width to determine if we're in an iframe or not
4
+ try {
5
+ if (window?.frameElement?.id === "civic-auth-iframe") {
6
+ return true;
7
+ }
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ }
10
+ catch (_e) {
11
+ // If we get an error, we're not in an iframe
12
+ return false;
13
+ }
14
+ }
15
+ return false;
16
+ };
17
+ const removeParamsWithoutReload = (paramsToRemove) => {
18
+ const url = new URL(window.location.href);
19
+ paramsToRemove.forEach((param) => {
20
+ url.searchParams.delete(param);
21
+ });
22
+ try {
23
+ window.history.replaceState({}, "", url);
24
+ window.dispatchEvent(new Event("popstate"));
25
+ }
26
+ catch (error) {
27
+ console.warn("window.history.replaceState failed", error);
28
+ }
29
+ };
30
+ export { isWindowInIframe, removeParamsWithoutReload };
31
+ //# sourceMappingURL=windowUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windowUtil.js","sourceRoot":"","sources":["../../../src/lib/windowUtil.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAW,EAAE;IACnD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,iEAAiE;QACjE,IAAI,CAAC;YACH,IAAI,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,mBAAmB,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,6DAA6D;QAC/D,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,6CAA6C;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,cAAwB,EAAE,EAAE;IAC7D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,cAAc,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;QACvC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,CAAC","sourcesContent":["const isWindowInIframe = (window: Window): boolean => {\n if (typeof window !== \"undefined\") {\n // use the window width to determine if we're in an iframe or not\n try {\n if (window?.frameElement?.id === \"civic-auth-iframe\") {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_e) {\n // If we get an error, we're not in an iframe\n return false;\n }\n }\n return false;\n};\n\nconst removeParamsWithoutReload = (paramsToRemove: string[]) => {\n const url = new URL(window.location.href);\n paramsToRemove.forEach((param: string) => {\n url.searchParams.delete(param);\n });\n try {\n window.history.replaceState({}, \"\", url);\n window.dispatchEvent(new Event(\"popstate\"));\n } catch (error) {\n console.warn(\"window.history.replaceState failed\", error);\n }\n};\n\nexport { isWindowInIframe, removeParamsWithoutReload };\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Used on the server-side to get the user object from the cookie
3
+ */
4
+ import type { User } from "@/types.js";
5
+ export declare const getUser: () => Promise<User | null>;
6
+ //# sourceMappingURL=GetUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetUser.d.ts","sourceRoot":"","sources":["../../../src/nextjs/GetUser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,eAAO,MAAM,OAAO,QAAa,OAAO,CAAC,IAAI,GAAG,IAAI,CAGnD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { NextjsClientStorage } from "@/nextjs/cookies.js";
2
+ import { getUser as getSessionUser } from "@/shared/lib/session.js";
3
+ export const getUser = async () => {
4
+ const clientStorage = new NextjsClientStorage();
5
+ return getSessionUser(clientStorage);
6
+ };
7
+ //# sourceMappingURL=GetUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetUser.js","sourceRoot":"","sources":["../../../src/nextjs/GetUser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,IAA0B,EAAE;IACtD,MAAM,aAAa,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAChD,OAAO,cAAc,CAAC,aAAa,CAAC,CAAC;AACvC,CAAC,CAAC","sourcesContent":["/**\n * Used on the server-side to get the user object from the cookie\n */\nimport type { User } from \"@/types.js\";\nimport { NextjsClientStorage } from \"@/nextjs/cookies.js\";\nimport { getUser as getSessionUser } from \"@/shared/lib/session.js\";\n\nexport const getUser = async (): Promise<User | null> => {\n const clientStorage = new NextjsClientStorage();\n return getSessionUser(clientStorage);\n};\n"]}
@@ -0,0 +1,181 @@
1
+ import type { NextConfig } from "next";
2
+ import { type CookieConfig, type TokensCookieConfig } from "@/shared/lib/types.js";
3
+ export type CookiesConfigObject = {
4
+ tokens: TokensCookieConfig;
5
+ user: CookieConfig;
6
+ };
7
+ export type AuthConfigWithDefaults = {
8
+ clientId: string;
9
+ oauthServer: string;
10
+ callbackUrl: string;
11
+ loginUrl: string;
12
+ logoutUrl: string;
13
+ logoutCallbackUrl: string;
14
+ challengeUrl: string;
15
+ include: string[];
16
+ exclude: string[];
17
+ cookies: CookiesConfigObject;
18
+ };
19
+ export type AuthConfig = Partial<AuthConfigWithDefaults>;
20
+ export type DefinedAuthConfig = AuthConfigWithDefaults;
21
+ /**
22
+ * Default configuration values that will be used if not overridden
23
+ */
24
+ export declare const defaultAuthConfig: Omit<AuthConfigWithDefaults, "clientId">;
25
+ /**
26
+ * Resolves the authentication configuration by combining:
27
+ * 1. Default values
28
+ * 2. Environment variables (set internally by the plugin)
29
+ * 3. Explicitly passed configuration
30
+ *
31
+ * Note: Developers should not set _civic_auth_* environment variables directly.
32
+ * Instead, pass configuration to the createCivicAuthPlugin in next.config.js:
33
+ *
34
+ * @example
35
+ * ```js
36
+ * // next.config.js
37
+ * export default createCivicAuthPlugin({
38
+ * callbackUrl: '/custom/callback',
39
+ * })
40
+ * ```
41
+ */
42
+ export declare const resolveAuthConfig: (config?: AuthConfig) => AuthConfigWithDefaults;
43
+ /**
44
+ * Creates a Next.js plugin that handles auth configuration.
45
+ *
46
+ * This is the main configuration point for the auth system.
47
+ * Do not set _civic_auth_* environment variables directly - instead,
48
+ * pass your configuration here:
49
+ *
50
+ * @example
51
+ * ```js
52
+ * // next.config.js
53
+ * export default createCivicAuthPlugin({
54
+ * clientId: 'my-client-id',
55
+ * callbackUrl: '/custom/callback',
56
+ * loginUrl: '/custom/login',
57
+ * logoutUrl: '/custom/logout',
58
+ * logoutCallbackUrl: '/custom/logoutcallback',
59
+ * include: ['/protected/*'],
60
+ * exclude: ['/public/*']
61
+ * })
62
+ * ```
63
+ *
64
+ * The plugin sets internal environment variables that are used by
65
+ * the auth system. These variables should not be set manually.
66
+ */
67
+ export declare const createCivicAuthPlugin: (authConfig: AuthConfig & Pick<Required<AuthConfig>, "clientId">) => (nextConfig?: NextConfig) => {
68
+ env: {
69
+ _civic_auth_client_id: string;
70
+ _civic_oauth_server: string;
71
+ _civic_auth_callback_url: string;
72
+ _civic_auth_challenge_url: string;
73
+ _civic_auth_login_url: string;
74
+ _civic_auth_logout_url: string;
75
+ _civic_auth_logout_callback_url: string;
76
+ _civic_auth_includes: string;
77
+ _civic_auth_excludes: string;
78
+ _civic_auth_cookie_config: string;
79
+ };
80
+ exportPathMap?: (defaultMap: import("next/dist/server/config-shared.js").ExportPathMap, ctx: {
81
+ dev: boolean;
82
+ dir: string;
83
+ outDir: string | null;
84
+ distDir: string;
85
+ buildId: string;
86
+ }) => Promise<import("next/dist/server/config-shared.js").ExportPathMap> | import("next/dist/server/config-shared.js").ExportPathMap;
87
+ i18n?: import("next/dist/server/config-shared.js").I18NConfig | null;
88
+ eslint?: import("next/dist/server/config-shared.js").ESLintConfig;
89
+ typescript?: import("next/dist/server/config-shared.js").TypeScriptConfig;
90
+ headers?: () => Promise<import("next/dist/lib/load-custom-routes.js").Header[]>;
91
+ rewrites?: () => Promise<import("next/dist/lib/load-custom-routes.js").Rewrite[] | {
92
+ beforeFiles: import("next/dist/lib/load-custom-routes.js").Rewrite[];
93
+ afterFiles: import("next/dist/lib/load-custom-routes.js").Rewrite[];
94
+ fallback: import("next/dist/lib/load-custom-routes.js").Rewrite[];
95
+ }>;
96
+ redirects?: () => Promise<import("next/dist/lib/load-custom-routes.js").Redirect[]>;
97
+ excludeDefaultMomentLocales?: boolean;
98
+ webpack?: import("next/dist/server/config-shared.js").NextJsWebpackConfig | null;
99
+ trailingSlash?: boolean;
100
+ distDir?: string;
101
+ cleanDistDir?: boolean;
102
+ assetPrefix?: string;
103
+ cacheHandler?: string | undefined;
104
+ cacheMaxMemorySize?: number;
105
+ useFileSystemPublicRoutes?: boolean;
106
+ generateBuildId?: () => string | null | Promise<string | null>;
107
+ generateEtags?: boolean;
108
+ pageExtensions?: string[];
109
+ compress?: boolean;
110
+ analyticsId?: string;
111
+ poweredByHeader?: boolean;
112
+ images?: import("next/dist/shared/lib/image-config.js").ImageConfig;
113
+ devIndicators?: {
114
+ buildActivity?: boolean;
115
+ buildActivityPosition?: "bottom-right" | "bottom-left" | "top-right" | "top-left";
116
+ };
117
+ onDemandEntries?: {
118
+ maxInactiveAge?: number;
119
+ pagesBufferLength?: number;
120
+ };
121
+ amp?: {
122
+ canonicalBase?: string;
123
+ };
124
+ deploymentId?: string;
125
+ basePath?: string;
126
+ sassOptions?: {
127
+ [key: string]: any;
128
+ };
129
+ productionBrowserSourceMaps?: boolean;
130
+ optimizeFonts?: boolean;
131
+ reactProductionProfiling?: boolean;
132
+ reactStrictMode?: boolean | null;
133
+ publicRuntimeConfig?: {
134
+ [key: string]: any;
135
+ };
136
+ serverRuntimeConfig?: {
137
+ [key: string]: any;
138
+ };
139
+ httpAgentOptions?: {
140
+ keepAlive?: boolean;
141
+ };
142
+ outputFileTracing?: boolean;
143
+ staticPageGenerationTimeout?: number;
144
+ crossOrigin?: "anonymous" | "use-credentials";
145
+ swcMinify?: boolean;
146
+ compiler?: {
147
+ reactRemoveProperties?: boolean | {
148
+ properties?: string[];
149
+ };
150
+ relay?: {
151
+ src: string;
152
+ artifactDirectory?: string;
153
+ language?: "typescript" | "javascript" | "flow";
154
+ eagerEsModules?: boolean;
155
+ };
156
+ removeConsole?: boolean | {
157
+ exclude?: string[];
158
+ };
159
+ styledComponents?: boolean | import("next/dist/server/config-shared.js").StyledComponentsConfig;
160
+ emotion?: boolean | import("next/dist/server/config-shared.js").EmotionConfig;
161
+ styledJsx?: boolean | {
162
+ useLightningcss?: boolean;
163
+ };
164
+ };
165
+ output?: "standalone" | "export";
166
+ transpilePackages?: string[];
167
+ skipMiddlewareUrlNormalize?: boolean;
168
+ skipTrailingSlashRedirect?: boolean;
169
+ modularizeImports?: Record<string, {
170
+ transform: string | Record<string, string>;
171
+ preventFullImport?: boolean;
172
+ skipDefaultConversion?: boolean;
173
+ }>;
174
+ logging?: {
175
+ fetches?: {
176
+ fullUrl?: boolean;
177
+ };
178
+ };
179
+ experimental?: import("next/dist/server/config-shared.js").ExperimentalConfig;
180
+ };
181
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/nextjs/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAK/B,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAGvD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAAE,UAAU,CA8DtE,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,YACpB,UAAU,KACjB,sBA2CF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,qBAAqB,eACpB,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,mBAE1C,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAyBk9a,CAAC;6BAAsG,CAAC;;;sBAAke,CAAC;yBAA4H,CAAC;;;qBAA+H,CAAC;;;;;;;;;;;;;;;;;;iBAA8pE,CAAC;;;;;;;6BAAg6C,CAAC;sBAAoC,CAAC;;aAAoC,CAAC;;6BAA0D,CAAC;oBAA8B,CAAC;0BAAkE,CAAC;;qBAA2C,CAAC;mBAAiC,CAAC;;wBAA+C,CAAC;eAAmD,CAAC;iBAA4C,CAAC;2BAAyC,CAAC;;;;;;;;;yBAA4zC,CAAC;6BAAwC,CAAC;;;eAAkD,CAAC;mBAAuB,CAAC;;;;CAD3xnB,CAAC"}
@@ -0,0 +1,177 @@
1
+ import { loggers } from "@/lib/logger.js";
2
+ import { withoutUndefined } from "@/utils.js";
3
+ import { CodeVerifier, OAuthTokens, } from "@/shared/lib/types.js";
4
+ import { DEFAULT_AUTH_SERVER } from "@/constants.js";
5
+ const logger = loggers.nextjs.handlers.auth;
6
+ const defaultServerSecure = !(process.env.NODE_ENV === "development");
7
+ /**
8
+ * Default configuration values that will be used if not overridden
9
+ */
10
+ export const defaultAuthConfig = {
11
+ oauthServer: DEFAULT_AUTH_SERVER,
12
+ callbackUrl: "/api/auth/callback",
13
+ challengeUrl: "/api/auth/challenge",
14
+ logoutUrl: "/api/auth/logout",
15
+ logoutCallbackUrl: "/api/auth/logoutcallback",
16
+ loginUrl: "/",
17
+ include: ["/*"],
18
+ exclude: [],
19
+ cookies: {
20
+ tokens: {
21
+ [OAuthTokens.ID_TOKEN]: {
22
+ secure: defaultServerSecure,
23
+ httpOnly: true,
24
+ sameSite: "strict",
25
+ path: "/",
26
+ },
27
+ [OAuthTokens.ACCESS_TOKEN]: {
28
+ secure: defaultServerSecure,
29
+ httpOnly: true,
30
+ sameSite: "strict",
31
+ path: "/",
32
+ },
33
+ [OAuthTokens.REFRESH_TOKEN]: {
34
+ secure: defaultServerSecure,
35
+ httpOnly: true,
36
+ sameSite: "strict",
37
+ path: "/",
38
+ },
39
+ [OAuthTokens.EXPIRES_IN]: {
40
+ secure: defaultServerSecure,
41
+ httpOnly: true,
42
+ sameSite: "strict",
43
+ path: "/",
44
+ },
45
+ [OAuthTokens.TIMESTAMP]: {
46
+ secure: defaultServerSecure,
47
+ httpOnly: true,
48
+ sameSite: "strict",
49
+ path: "/",
50
+ },
51
+ [CodeVerifier.COOKIE_NAME]: {
52
+ secure: defaultServerSecure,
53
+ httpOnly: true,
54
+ sameSite: "strict",
55
+ path: "/",
56
+ },
57
+ [CodeVerifier.APP_URL]: {
58
+ secure: defaultServerSecure,
59
+ httpOnly: true,
60
+ sameSite: "strict",
61
+ path: "/",
62
+ },
63
+ },
64
+ user: {
65
+ secure: defaultServerSecure,
66
+ httpOnly: false,
67
+ sameSite: "strict",
68
+ path: "/",
69
+ maxAge: 60 * 60, // 1 hour
70
+ },
71
+ },
72
+ };
73
+ /**
74
+ * Resolves the authentication configuration by combining:
75
+ * 1. Default values
76
+ * 2. Environment variables (set internally by the plugin)
77
+ * 3. Explicitly passed configuration
78
+ *
79
+ * Note: Developers should not set _civic_auth_* environment variables directly.
80
+ * Instead, pass configuration to the createCivicAuthPlugin in next.config.js:
81
+ *
82
+ * @example
83
+ * ```js
84
+ * // next.config.js
85
+ * export default createCivicAuthPlugin({
86
+ * callbackUrl: '/custom/callback',
87
+ * })
88
+ * ```
89
+ */
90
+ export const resolveAuthConfig = (config = {}) => {
91
+ // Read configuration that was set by the plugin via environment variables
92
+ const configFromEnv = withoutUndefined({
93
+ clientId: process.env._civic_auth_client_id,
94
+ oauthServer: process.env._civic_oauth_server,
95
+ callbackUrl: process.env._civic_auth_callback_url,
96
+ challengeUrl: process.env._civic_auth_challenge_url,
97
+ loginUrl: process.env._civic_auth_login_url,
98
+ logoutUrl: process.env._civic_auth_logout_url,
99
+ logoutCallbackUrl: process.env._civic_auth_logout_callback_url,
100
+ include: process.env._civic_auth_includes?.split(","),
101
+ exclude: process.env._civic_auth_excludes?.split(","),
102
+ cookies: process.env._civic_auth_cookie_config
103
+ ? JSON.parse(process.env._civic_auth_cookie_config)
104
+ : undefined,
105
+ });
106
+ const mergedConfig = {
107
+ ...defaultAuthConfig,
108
+ ...configFromEnv, // Apply plugin-set config
109
+ ...config, // Override with directly passed config
110
+ cookies: {
111
+ tokens: {
112
+ ...defaultAuthConfig.cookies.tokens,
113
+ ...(configFromEnv?.cookies?.tokens || {}),
114
+ ...(config.cookies?.tokens || {}),
115
+ },
116
+ user: {
117
+ ...defaultAuthConfig.cookies.user,
118
+ ...(configFromEnv?.cookies?.user || {}),
119
+ ...(config.cookies?.user || {}),
120
+ },
121
+ },
122
+ };
123
+ logger.debug("Config from environment:", JSON.stringify(configFromEnv, null, 2));
124
+ logger.debug("Resolved config:", JSON.stringify(mergedConfig, null, 2));
125
+ if (mergedConfig.clientId === undefined) {
126
+ throw new Error("Civic Auth client ID is required");
127
+ }
128
+ return mergedConfig;
129
+ };
130
+ /**
131
+ * Creates a Next.js plugin that handles auth configuration.
132
+ *
133
+ * This is the main configuration point for the auth system.
134
+ * Do not set _civic_auth_* environment variables directly - instead,
135
+ * pass your configuration here:
136
+ *
137
+ * @example
138
+ * ```js
139
+ * // next.config.js
140
+ * export default createCivicAuthPlugin({
141
+ * clientId: 'my-client-id',
142
+ * callbackUrl: '/custom/callback',
143
+ * loginUrl: '/custom/login',
144
+ * logoutUrl: '/custom/logout',
145
+ * logoutCallbackUrl: '/custom/logoutcallback',
146
+ * include: ['/protected/*'],
147
+ * exclude: ['/public/*']
148
+ * })
149
+ * ```
150
+ *
151
+ * The plugin sets internal environment variables that are used by
152
+ * the auth system. These variables should not be set manually.
153
+ */
154
+ export const createCivicAuthPlugin = (authConfig) => {
155
+ return (nextConfig) => {
156
+ logger.debug("createCivicAuthPlugin nextConfig", JSON.stringify(nextConfig, null, 2));
157
+ const resolvedConfig = resolveAuthConfig({ ...authConfig });
158
+ return {
159
+ ...nextConfig,
160
+ env: {
161
+ ...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_logout_callback_url: resolvedConfig.logoutCallbackUrl,
170
+ _civic_auth_includes: resolvedConfig.include.join(","),
171
+ _civic_auth_excludes: resolvedConfig.exclude.join(","),
172
+ _civic_auth_cookie_config: JSON.stringify(resolvedConfig.cookies),
173
+ },
174
+ };
175
+ };
176
+ };
177
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/nextjs/config.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable turbo/no-undeclared-env-vars */\nimport type { NextConfig } from \"next\";\nimport { loggers } from \"@/lib/logger.js\";\nimport { withoutUndefined } from \"@/utils.js\";\nimport {\n CodeVerifier,\n type CookieConfig,\n OAuthTokens,\n type TokensCookieConfig,\n} from \"@/shared/lib/types.js\";\nimport { DEFAULT_AUTH_SERVER } from \"@/constants.js\";\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 logoutCallbackUrl: 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 defaultServerSecure = !(process.env.NODE_ENV === \"development\");\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 logoutCallbackUrl: \"/api/auth/logoutcallback\",\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 [OAuthTokens.EXPIRES_IN]: {\n secure: defaultServerSecure,\n httpOnly: true,\n sameSite: \"strict\",\n path: \"/\",\n },\n [OAuthTokens.TIMESTAMP]: {\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 logoutCallbackUrl: process.env._civic_auth_logout_callback_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 * logoutCallbackUrl: '/custom/logoutcallback',\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_logout_callback_url: resolvedConfig.logoutCallbackUrl,\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"]}
@@ -0,0 +1,30 @@
1
+ import type { SessionData, UnknownObject, User } from "@/types.js";
2
+ import type { AuthConfig } from "@/nextjs/config.js";
3
+ import type { CodeVerifier, OAuthTokens, TokensCookieConfig } from "@/shared/lib/types.js";
4
+ import { CookieStorage, type CookieStorageSettings } from "@/shared/lib/storage.js";
5
+ /**
6
+ * Creates HTTP-only cookies for authentication tokens
7
+ */
8
+ declare const createTokenCookies: (response: Response, sessionData: SessionData, config: AuthConfig) => void;
9
+ /**
10
+ * Creates a client-readable cookie with user info
11
+ */
12
+ declare const createUserInfoCookie: (response: Response, user: User<UnknownObject> | null, sessionData: SessionData, config: AuthConfig) => void;
13
+ /**
14
+ * Clears all authentication cookies
15
+ */
16
+ declare const clearAuthCookies: (config: AuthConfig) => Promise<void>;
17
+ type KeySetter = OAuthTokens | CodeVerifier;
18
+ declare class NextjsCookieStorage extends CookieStorage {
19
+ readonly config: Partial<TokensCookieConfig>;
20
+ constructor(config?: Partial<TokensCookieConfig>);
21
+ get(key: string): Promise<string | null>;
22
+ set(key: KeySetter, value: string): Promise<void>;
23
+ }
24
+ declare class NextjsClientStorage extends CookieStorage {
25
+ constructor(config?: Partial<CookieStorageSettings>);
26
+ get(key: string): Promise<string | null>;
27
+ set(key: string, value: string): Promise<void>;
28
+ }
29
+ export { createTokenCookies, createUserInfoCookie, clearAuthCookies, NextjsCookieStorage, NextjsClientStorage, };
30
+ //# sourceMappingURL=cookies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../../src/nextjs/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,KAAK,EACV,YAAY,EAEZ,WAAW,EACX,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,QAAA,MAAM,kBAAkB,aACZ,QAAQ,eACL,WAAW,UAChB,UAAU,SA4BnB,CAAC;AAcF;;GAEG;AACH,QAAA,MAAM,oBAAoB,aACd,QAAQ,QACZ,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,eACnB,WAAW,UAChB,UAAU,SAyBnB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,gBAAgB,WAAkB,UAAU,kBASjD,CAAC;AAEF,KAAK,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;AAC5C,cAAM,mBAAoB,SAAQ,aAAa;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC;gBAAnC,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAOvD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKxC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOxD;AAED,cAAM,mBAAoB,SAAQ,aAAa;gBACjC,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAQjD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIrD;AAED,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,CAAC"}