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

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 (478) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-lint$colon$fix.log +16 -0
  3. package/.turbo/turbo-test.log +552 -1077
  4. package/dist/{src/shared/providers → cjs/src/shared}/AuthProvider.d.ts +7 -9
  5. package/dist/cjs/src/shared/AuthProvider.d.ts.map +1 -0
  6. package/dist/{src/shared/providers → cjs/src/shared}/AuthProvider.js +70 -87
  7. package/dist/cjs/src/shared/AuthProvider.js.map +1 -0
  8. package/dist/{src/shared/providers → cjs/src/shared}/CivicAuthProvider.d.ts +3 -3
  9. package/dist/cjs/src/shared/CivicAuthProvider.d.ts.map +1 -0
  10. package/dist/cjs/src/shared/CivicAuthProvider.js +19 -0
  11. package/dist/cjs/src/shared/CivicAuthProvider.js.map +1 -0
  12. package/dist/{src/shared/lib → cjs/src/shared}/GenericAuthenticationRefresher.d.ts +4 -4
  13. package/dist/cjs/src/shared/GenericAuthenticationRefresher.d.ts.map +1 -0
  14. package/dist/{src/shared/lib → cjs/src/shared}/GenericAuthenticationRefresher.js +11 -7
  15. package/dist/cjs/src/shared/GenericAuthenticationRefresher.js.map +1 -0
  16. package/dist/{src/shared/providers → cjs/src/shared}/UserProvider.d.ts +6 -7
  17. package/dist/cjs/src/shared/UserProvider.d.ts.map +1 -0
  18. package/dist/cjs/src/shared/UserProvider.js +42 -0
  19. package/dist/cjs/src/shared/UserProvider.js.map +1 -0
  20. package/dist/cjs/src/shared/UserSession.d.ts +12 -0
  21. package/dist/cjs/src/shared/UserSession.d.ts.map +1 -0
  22. package/dist/cjs/src/shared/UserSession.js +24 -0
  23. package/dist/cjs/src/shared/UserSession.js.map +1 -0
  24. package/dist/cjs/src/shared/session.d.ts +3 -0
  25. package/dist/cjs/src/shared/session.d.ts.map +1 -0
  26. package/dist/cjs/src/shared/session.js +13 -0
  27. package/dist/cjs/src/shared/session.js.map +1 -0
  28. package/dist/{src/shared/lib → cjs/src/shared}/util.d.ts +10 -4
  29. package/dist/cjs/src/shared/util.d.ts.map +1 -0
  30. package/dist/cjs/src/shared/util.js +162 -0
  31. package/dist/cjs/src/shared/util.js.map +1 -0
  32. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  33. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  34. package/dist/src/nextjs/cookies.d.ts.map +1 -1
  35. package/dist/src/nextjs/cookies.js +12 -8
  36. package/dist/src/nextjs/cookies.js.map +1 -1
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +3 -3
  39. package/.turbo/turbo-lint.log +0 -14
  40. package/civic-auth-0.0.1-beta.15.tgz +0 -0
  41. package/civic-auth-0.0.1-beta.17.tgz +0 -0
  42. package/dist/AuthProvider-BYZ8w92b.d.mts +0 -15
  43. package/dist/AuthProvider-BgOwv9h8.d.ts +0 -15
  44. package/dist/AuthProvider-Bj_Prt1x.d.ts +0 -21
  45. package/dist/AuthProvider-DUAoX4G9.d.mts +0 -21
  46. package/dist/UserProvider-BA2uflVB.d.ts +0 -16
  47. package/dist/UserProvider-Bl3j1PUO.d.mts +0 -16
  48. package/dist/UserProvider-CMLaYOUD.d.ts +0 -16
  49. package/dist/UserProvider-Cbm8MZkJ.d.mts +0 -16
  50. package/dist/chunk-4PLCDPEN.mjs +0 -599
  51. package/dist/chunk-4PLCDPEN.mjs.map +0 -1
  52. package/dist/chunk-5UQQYXCX.js +0 -1
  53. package/dist/chunk-5UQQYXCX.js.map +0 -1
  54. package/dist/chunk-63YGK3A7.mjs +0 -223
  55. package/dist/chunk-63YGK3A7.mjs.map +0 -1
  56. package/dist/chunk-6RFRDWIP.js +0 -223
  57. package/dist/chunk-6RFRDWIP.js.map +0 -1
  58. package/dist/chunk-7K3QN2AT.js +0 -599
  59. package/dist/chunk-7K3QN2AT.js.map +0 -1
  60. package/dist/chunk-AM2Y662I.js +0 -601
  61. package/dist/chunk-AM2Y662I.js.map +0 -1
  62. package/dist/chunk-AP4627CS.mjs +0 -223
  63. package/dist/chunk-AP4627CS.mjs.map +0 -1
  64. package/dist/chunk-CRTRMMJ7.js +0 -59
  65. package/dist/chunk-CRTRMMJ7.js.map +0 -1
  66. package/dist/chunk-CTVJJBBA.js +0 -118
  67. package/dist/chunk-CTVJJBBA.js.map +0 -1
  68. package/dist/chunk-EKLYHP2D.mjs +0 -711
  69. package/dist/chunk-EKLYHP2D.mjs.map +0 -1
  70. package/dist/chunk-FHRZSX3C.js +0 -710
  71. package/dist/chunk-FHRZSX3C.js.map +0 -1
  72. package/dist/chunk-GB3H3I47.js +0 -711
  73. package/dist/chunk-GB3H3I47.js.map +0 -1
  74. package/dist/chunk-JDZPCA3P.js +0 -173
  75. package/dist/chunk-JDZPCA3P.js.map +0 -1
  76. package/dist/chunk-JEOPLLWO.js +0 -223
  77. package/dist/chunk-JEOPLLWO.js.map +0 -1
  78. package/dist/chunk-MK7557NR.mjs +0 -118
  79. package/dist/chunk-MK7557NR.mjs.map +0 -1
  80. package/dist/chunk-NLRREFOX.mjs +0 -710
  81. package/dist/chunk-NLRREFOX.mjs.map +0 -1
  82. package/dist/chunk-O3WGNLRO.mjs +0 -173
  83. package/dist/chunk-O3WGNLRO.mjs.map +0 -1
  84. package/dist/chunk-OXXUQ36U.mjs +0 -283
  85. package/dist/chunk-OXXUQ36U.mjs.map +0 -1
  86. package/dist/chunk-PMJAV4JJ.mjs +0 -1
  87. package/dist/chunk-PMJAV4JJ.mjs.map +0 -1
  88. package/dist/chunk-Q7DSPTUG.mjs +0 -601
  89. package/dist/chunk-Q7DSPTUG.mjs.map +0 -1
  90. package/dist/chunk-RGHW4PYM.mjs +0 -59
  91. package/dist/chunk-RGHW4PYM.mjs.map +0 -1
  92. package/dist/chunk-TH6FI2XI.js +0 -283
  93. package/dist/chunk-TH6FI2XI.js.map +0 -1
  94. package/dist/index.css +0 -340
  95. package/dist/index.css.map +0 -1
  96. package/dist/index.d.mts +0 -5
  97. package/dist/index.d.ts +0 -5
  98. package/dist/index.js +0 -3
  99. package/dist/index.js.map +0 -1
  100. package/dist/index.mjs +0 -3
  101. package/dist/index.mjs.map +0 -1
  102. package/dist/nextjs/client.css +0 -340
  103. package/dist/nextjs/client.css.map +0 -1
  104. package/dist/nextjs/client.d.mts +0 -10
  105. package/dist/nextjs/client.d.ts +0 -10
  106. package/dist/nextjs/client.js +0 -185
  107. package/dist/nextjs/client.js.map +0 -1
  108. package/dist/nextjs/client.mjs +0 -185
  109. package/dist/nextjs/client.mjs.map +0 -1
  110. package/dist/nextjs.d.mts +0 -267
  111. package/dist/nextjs.d.ts +0 -267
  112. package/dist/nextjs.js +0 -315
  113. package/dist/nextjs.js.map +0 -1
  114. package/dist/nextjs.mjs +0 -315
  115. package/dist/nextjs.mjs.map +0 -1
  116. package/dist/react.d.mts +0 -65
  117. package/dist/react.d.ts +0 -65
  118. package/dist/react.js +0 -226
  119. package/dist/react.js.map +0 -1
  120. package/dist/react.mjs +0 -226
  121. package/dist/react.mjs.map +0 -1
  122. package/dist/server.d.mts +0 -35
  123. package/dist/server.d.ts +0 -35
  124. package/dist/server.js +0 -20
  125. package/dist/server.js.map +0 -1
  126. package/dist/server.mjs +0 -20
  127. package/dist/server.mjs.map +0 -1
  128. package/dist/src/browser/storage.d.ts +0 -6
  129. package/dist/src/browser/storage.d.ts.map +0 -1
  130. package/dist/src/browser/storage.js +0 -9
  131. package/dist/src/browser/storage.js.map +0 -1
  132. package/dist/src/config.d.ts +0 -3
  133. package/dist/src/config.d.ts.map +0 -1
  134. package/dist/src/config.js +0 -5
  135. package/dist/src/config.js.map +0 -1
  136. package/dist/src/constants.d.ts +0 -9
  137. package/dist/src/constants.d.ts.map +0 -1
  138. package/dist/src/constants.js +0 -17
  139. package/dist/src/constants.js.map +0 -1
  140. package/dist/src/index.d.ts +0 -4
  141. package/dist/src/index.d.ts.map +0 -1
  142. package/dist/src/index.js +0 -2
  143. package/dist/src/index.js.map +0 -1
  144. package/dist/src/lib/cookies.d.ts +0 -7
  145. package/dist/src/lib/cookies.d.ts.map +0 -1
  146. package/dist/src/lib/cookies.js +0 -23
  147. package/dist/src/lib/cookies.js.map +0 -1
  148. package/dist/src/lib/jwt.d.ts +0 -3
  149. package/dist/src/lib/jwt.d.ts.map +0 -1
  150. package/dist/src/lib/jwt.js +0 -9
  151. package/dist/src/lib/jwt.js.map +0 -1
  152. package/dist/src/lib/logger.d.ts +0 -26
  153. package/dist/src/lib/logger.d.ts.map +0 -1
  154. package/dist/src/lib/logger.js +0 -55
  155. package/dist/src/lib/logger.js.map +0 -1
  156. package/dist/src/lib/oauth.d.ts +0 -19
  157. package/dist/src/lib/oauth.d.ts.map +0 -1
  158. package/dist/src/lib/oauth.js +0 -60
  159. package/dist/src/lib/oauth.js.map +0 -1
  160. package/dist/src/lib/postMessage.d.ts +0 -4
  161. package/dist/src/lib/postMessage.d.ts.map +0 -1
  162. package/dist/src/lib/postMessage.js +0 -15
  163. package/dist/src/lib/postMessage.js.map +0 -1
  164. package/dist/src/lib/windowUtil.d.ts +0 -4
  165. package/dist/src/lib/windowUtil.d.ts.map +0 -1
  166. package/dist/src/lib/windowUtil.js +0 -30
  167. package/dist/src/lib/windowUtil.js.map +0 -1
  168. package/dist/src/nextjs/GetUser.d.ts +0 -6
  169. package/dist/src/nextjs/GetUser.d.ts.map +0 -1
  170. package/dist/src/nextjs/GetUser.js +0 -18
  171. package/dist/src/nextjs/GetUser.js.map +0 -1
  172. package/dist/src/nextjs/config.d.ts +0 -178
  173. package/dist/src/nextjs/config.d.ts.map +0 -1
  174. package/dist/src/nextjs/config.js +0 -164
  175. package/dist/src/nextjs/config.js.map +0 -1
  176. package/dist/src/nextjs/cookies.d.ts +0 -30
  177. package/dist/src/nextjs/hooks/index.d.ts +0 -2
  178. package/dist/src/nextjs/hooks/index.d.ts.map +0 -1
  179. package/dist/src/nextjs/hooks/index.js +0 -2
  180. package/dist/src/nextjs/hooks/index.js.map +0 -1
  181. package/dist/src/nextjs/hooks/useTokenCookie.d.ts +0 -3
  182. package/dist/src/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
  183. package/dist/src/nextjs/hooks/useTokenCookie.js +0 -37
  184. package/dist/src/nextjs/hooks/useTokenCookie.js.map +0 -1
  185. package/dist/src/nextjs/hooks/useUserCookie.d.ts +0 -3
  186. package/dist/src/nextjs/hooks/useUserCookie.d.ts.map +0 -1
  187. package/dist/src/nextjs/hooks/useUserCookie.js +0 -36
  188. package/dist/src/nextjs/hooks/useUserCookie.js.map +0 -1
  189. package/dist/src/nextjs/index.d.ts +0 -7
  190. package/dist/src/nextjs/index.d.ts.map +0 -1
  191. package/dist/src/nextjs/index.js +0 -6
  192. package/dist/src/nextjs/index.js.map +0 -1
  193. package/dist/src/nextjs/middleware/index.d.ts +0 -2
  194. package/dist/src/nextjs/middleware/index.d.ts.map +0 -1
  195. package/dist/src/nextjs/middleware/index.js +0 -2
  196. package/dist/src/nextjs/middleware/index.js.map +0 -1
  197. package/dist/src/nextjs/middleware.d.ts +0 -59
  198. package/dist/src/nextjs/middleware.d.ts.map +0 -1
  199. package/dist/src/nextjs/middleware.js +0 -107
  200. package/dist/src/nextjs/middleware.js.map +0 -1
  201. package/dist/src/nextjs/providers/NextAuthProvider.d.ts +0 -9
  202. package/dist/src/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
  203. package/dist/src/nextjs/providers/NextAuthProvider.js +0 -50
  204. package/dist/src/nextjs/providers/NextAuthProvider.js.map +0 -1
  205. package/dist/src/nextjs/routeHandler.d.ts +0 -18
  206. package/dist/src/nextjs/routeHandler.d.ts.map +0 -1
  207. package/dist/src/nextjs/routeHandler.js +0 -216
  208. package/dist/src/nextjs/routeHandler.js.map +0 -1
  209. package/dist/src/nextjs/utils.d.ts +0 -3
  210. package/dist/src/nextjs/utils.d.ts.map +0 -1
  211. package/dist/src/nextjs/utils.js +0 -5
  212. package/dist/src/nextjs/utils.js.map +0 -1
  213. package/dist/src/reactjs/components/SignInButton.d.ts +0 -8
  214. package/dist/src/reactjs/components/SignInButton.d.ts.map +0 -1
  215. package/dist/src/reactjs/components/SignInButton.js +0 -14
  216. package/dist/src/reactjs/components/SignInButton.js.map +0 -1
  217. package/dist/src/reactjs/components/SignOutButton.d.ts +0 -6
  218. package/dist/src/reactjs/components/SignOutButton.d.ts.map +0 -1
  219. package/dist/src/reactjs/components/SignOutButton.js +0 -14
  220. package/dist/src/reactjs/components/SignOutButton.js.map +0 -1
  221. package/dist/src/reactjs/components/UserButton.d.ts +0 -8
  222. package/dist/src/reactjs/components/UserButton.d.ts.map +0 -1
  223. package/dist/src/reactjs/components/UserButton.js +0 -110
  224. package/dist/src/reactjs/components/UserButton.js.map +0 -1
  225. package/dist/src/reactjs/components/index.d.ts +0 -6
  226. package/dist/src/reactjs/components/index.d.ts.map +0 -1
  227. package/dist/src/reactjs/components/index.js +0 -6
  228. package/dist/src/reactjs/components/index.js.map +0 -1
  229. package/dist/src/reactjs/hooks/index.d.ts +0 -8
  230. package/dist/src/reactjs/hooks/index.d.ts.map +0 -1
  231. package/dist/src/reactjs/hooks/index.js +0 -8
  232. package/dist/src/reactjs/hooks/index.js.map +0 -1
  233. package/dist/src/reactjs/hooks/useAuth.d.ts +0 -3
  234. package/dist/src/reactjs/hooks/useAuth.d.ts.map +0 -1
  235. package/dist/src/reactjs/hooks/useAuth.js +0 -12
  236. package/dist/src/reactjs/hooks/useAuth.js.map +0 -1
  237. package/dist/src/reactjs/hooks/useUser.d.ts +0 -4
  238. package/dist/src/reactjs/hooks/useUser.d.ts.map +0 -1
  239. package/dist/src/reactjs/hooks/useUser.js +0 -12
  240. package/dist/src/reactjs/hooks/useUser.js.map +0 -1
  241. package/dist/src/reactjs/index.d.ts +0 -6
  242. package/dist/src/reactjs/index.d.ts.map +0 -1
  243. package/dist/src/reactjs/index.js +0 -8
  244. package/dist/src/reactjs/index.js.map +0 -1
  245. package/dist/src/reactjs/providers/index.d.ts +0 -8
  246. package/dist/src/reactjs/providers/index.d.ts.map +0 -1
  247. package/dist/src/reactjs/providers/index.js +0 -7
  248. package/dist/src/reactjs/providers/index.js.map +0 -1
  249. package/dist/src/server/ServerAuthenticationResolver.d.ts +0 -18
  250. package/dist/src/server/ServerAuthenticationResolver.d.ts.map +0 -1
  251. package/dist/src/server/ServerAuthenticationResolver.js +0 -62
  252. package/dist/src/server/ServerAuthenticationResolver.js.map +0 -1
  253. package/dist/src/server/config.d.ts +0 -16
  254. package/dist/src/server/config.d.ts.map +0 -1
  255. package/dist/src/server/config.js +0 -2
  256. package/dist/src/server/config.js.map +0 -1
  257. package/dist/src/server/index.d.ts +0 -6
  258. package/dist/src/server/index.d.ts.map +0 -1
  259. package/dist/src/server/index.js +0 -5
  260. package/dist/src/server/index.js.map +0 -1
  261. package/dist/src/server/login.d.ts +0 -17
  262. package/dist/src/server/login.d.ts.map +0 -1
  263. package/dist/src/server/login.js +0 -37
  264. package/dist/src/server/login.js.map +0 -1
  265. package/dist/src/server/refresh.d.ts +0 -7
  266. package/dist/src/server/refresh.d.ts.map +0 -1
  267. package/dist/src/server/refresh.js +0 -13
  268. package/dist/src/server/refresh.js.map +0 -1
  269. package/dist/src/services/AuthenticationService.d.ts +0 -87
  270. package/dist/src/services/AuthenticationService.d.ts.map +0 -1
  271. package/dist/src/services/AuthenticationService.js +0 -222
  272. package/dist/src/services/AuthenticationService.js.map +0 -1
  273. package/dist/src/services/PKCE.d.ts +0 -20
  274. package/dist/src/services/PKCE.d.ts.map +0 -1
  275. package/dist/src/services/PKCE.js +0 -44
  276. package/dist/src/services/PKCE.js.map +0 -1
  277. package/dist/src/services/types.d.ts +0 -23
  278. package/dist/src/services/types.d.ts.map +0 -1
  279. package/dist/src/services/types.js +0 -7
  280. package/dist/src/services/types.js.map +0 -1
  281. package/dist/src/shared/components/CivicAuthIframe.d.ts +0 -8
  282. package/dist/src/shared/components/CivicAuthIframe.d.ts.map +0 -1
  283. package/dist/src/shared/components/CivicAuthIframe.js +0 -9
  284. package/dist/src/shared/components/CivicAuthIframe.js.map +0 -1
  285. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts +0 -9
  286. package/dist/src/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
  287. package/dist/src/shared/components/CivicAuthIframeContainer.js +0 -130
  288. package/dist/src/shared/components/CivicAuthIframeContainer.js.map +0 -1
  289. package/dist/src/shared/components/CloseIcon.d.ts +0 -4
  290. package/dist/src/shared/components/CloseIcon.d.ts.map +0 -1
  291. package/dist/src/shared/components/CloseIcon.js +0 -6
  292. package/dist/src/shared/components/CloseIcon.js.map +0 -1
  293. package/dist/src/shared/components/LoadingIcon.d.ts +0 -4
  294. package/dist/src/shared/components/LoadingIcon.d.ts.map +0 -1
  295. package/dist/src/shared/components/LoadingIcon.js +0 -24
  296. package/dist/src/shared/components/LoadingIcon.js.map +0 -1
  297. package/dist/src/shared/hooks/index.d.ts +0 -5
  298. package/dist/src/shared/hooks/index.d.ts.map +0 -1
  299. package/dist/src/shared/hooks/index.js +0 -5
  300. package/dist/src/shared/hooks/index.js.map +0 -1
  301. package/dist/src/shared/hooks/useAuth.d.ts +0 -3
  302. package/dist/src/shared/hooks/useAuth.d.ts.map +0 -1
  303. package/dist/src/shared/hooks/useAuth.js +0 -12
  304. package/dist/src/shared/hooks/useAuth.js.map +0 -1
  305. package/dist/src/shared/hooks/useConfig.d.ts +0 -3
  306. package/dist/src/shared/hooks/useConfig.d.ts.map +0 -1
  307. package/dist/src/shared/hooks/useConfig.js +0 -13
  308. package/dist/src/shared/hooks/useConfig.js.map +0 -1
  309. package/dist/src/shared/hooks/useIframe.d.ts +0 -3
  310. package/dist/src/shared/hooks/useIframe.d.ts.map +0 -1
  311. package/dist/src/shared/hooks/useIframe.js +0 -13
  312. package/dist/src/shared/hooks/useIframe.js.map +0 -1
  313. package/dist/src/shared/hooks/useSession.d.ts +0 -3
  314. package/dist/src/shared/hooks/useSession.d.ts.map +0 -1
  315. package/dist/src/shared/hooks/useSession.js +0 -13
  316. package/dist/src/shared/hooks/useSession.js.map +0 -1
  317. package/dist/src/shared/hooks/useToken.d.ts +0 -3
  318. package/dist/src/shared/hooks/useToken.d.ts.map +0 -1
  319. package/dist/src/shared/hooks/useToken.js +0 -12
  320. package/dist/src/shared/hooks/useToken.js.map +0 -1
  321. package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
  322. package/dist/src/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
  323. package/dist/src/shared/lib/UserSession.d.ts +0 -12
  324. package/dist/src/shared/lib/UserSession.d.ts.map +0 -1
  325. package/dist/src/shared/lib/UserSession.js +0 -20
  326. package/dist/src/shared/lib/UserSession.js.map +0 -1
  327. package/dist/src/shared/lib/session.d.ts +0 -3
  328. package/dist/src/shared/lib/session.d.ts.map +0 -1
  329. package/dist/src/shared/lib/session.js +0 -10
  330. package/dist/src/shared/lib/session.js.map +0 -1
  331. package/dist/src/shared/lib/storage.d.ts +0 -25
  332. package/dist/src/shared/lib/storage.d.ts.map +0 -1
  333. package/dist/src/shared/lib/storage.js +0 -17
  334. package/dist/src/shared/lib/storage.js.map +0 -1
  335. package/dist/src/shared/lib/types.d.ts +0 -22
  336. package/dist/src/shared/lib/types.d.ts.map +0 -1
  337. package/dist/src/shared/lib/types.js +0 -16
  338. package/dist/src/shared/lib/types.js.map +0 -1
  339. package/dist/src/shared/lib/util.d.ts.map +0 -1
  340. package/dist/src/shared/lib/util.js +0 -126
  341. package/dist/src/shared/lib/util.js.map +0 -1
  342. package/dist/src/shared/providers/AuthContext.d.ts +0 -10
  343. package/dist/src/shared/providers/AuthContext.d.ts.map +0 -1
  344. package/dist/src/shared/providers/AuthContext.js +0 -3
  345. package/dist/src/shared/providers/AuthContext.js.map +0 -1
  346. package/dist/src/shared/providers/AuthProvider.d.ts.map +0 -1
  347. package/dist/src/shared/providers/AuthProvider.js.map +0 -1
  348. package/dist/src/shared/providers/CivicAuthProvider.d.ts.map +0 -1
  349. package/dist/src/shared/providers/CivicAuthProvider.js +0 -15
  350. package/dist/src/shared/providers/CivicAuthProvider.js.map +0 -1
  351. package/dist/src/shared/providers/ConfigProvider.d.ts +0 -21
  352. package/dist/src/shared/providers/ConfigProvider.d.ts.map +0 -1
  353. package/dist/src/shared/providers/ConfigProvider.js +0 -19
  354. package/dist/src/shared/providers/ConfigProvider.js.map +0 -1
  355. package/dist/src/shared/providers/IframeProvider.d.ts +0 -16
  356. package/dist/src/shared/providers/IframeProvider.d.ts.map +0 -1
  357. package/dist/src/shared/providers/IframeProvider.js +0 -11
  358. package/dist/src/shared/providers/IframeProvider.js.map +0 -1
  359. package/dist/src/shared/providers/SessionProvider.d.ts +0 -13
  360. package/dist/src/shared/providers/SessionProvider.d.ts.map +0 -1
  361. package/dist/src/shared/providers/SessionProvider.js +0 -13
  362. package/dist/src/shared/providers/SessionProvider.js.map +0 -1
  363. package/dist/src/shared/providers/TokenProvider.d.ts +0 -18
  364. package/dist/src/shared/providers/TokenProvider.d.ts.map +0 -1
  365. package/dist/src/shared/providers/TokenProvider.js +0 -53
  366. package/dist/src/shared/providers/TokenProvider.js.map +0 -1
  367. package/dist/src/shared/providers/UserProvider.d.ts.map +0 -1
  368. package/dist/src/shared/providers/UserProvider.js +0 -38
  369. package/dist/src/shared/providers/UserProvider.js.map +0 -1
  370. package/dist/src/types.d.ts +0 -146
  371. package/dist/src/types.d.ts.map +0 -1
  372. package/dist/src/types.js +0 -2
  373. package/dist/src/types.js.map +0 -1
  374. package/dist/src/utils.d.ts +0 -15
  375. package/dist/src/utils.d.ts.map +0 -1
  376. package/dist/src/utils.js +0 -43
  377. package/dist/src/utils.js.map +0 -1
  378. package/dist/storage-ANmRwpZ3.d.ts +0 -25
  379. package/dist/storage-B2eAQNdv.d.ts +0 -25
  380. package/dist/storage-BJPUpxhm.d.mts +0 -25
  381. package/dist/storage-BJyqsZwC.d.mts +0 -25
  382. package/dist/test/integration/sdk.test.d.ts +0 -2
  383. package/dist/test/integration/sdk.test.d.ts.map +0 -1
  384. package/dist/test/integration/sdk.test.js +0 -183
  385. package/dist/test/integration/sdk.test.js.map +0 -1
  386. package/dist/test/support/fixtures.d.ts +0 -26
  387. package/dist/test/support/fixtures.d.ts.map +0 -1
  388. package/dist/test/support/fixtures.js +0 -55
  389. package/dist/test/support/fixtures.js.map +0 -1
  390. package/dist/test/support/tokens.json +0 -26
  391. package/dist/test/unit/lib/oauth.test.d.ts +0 -2
  392. package/dist/test/unit/lib/oauth.test.d.ts.map +0 -1
  393. package/dist/test/unit/lib/oauth.test.js +0 -55
  394. package/dist/test/unit/lib/oauth.test.js.map +0 -1
  395. package/dist/test/unit/logger.test.d.ts +0 -2
  396. package/dist/test/unit/logger.test.d.ts.map +0 -1
  397. package/dist/test/unit/logger.test.js +0 -141
  398. package/dist/test/unit/logger.test.js.map +0 -1
  399. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts +0 -2
  400. package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts.map +0 -1
  401. package/dist/test/unit/nextjs/NextAuthProvider.test.js +0 -29
  402. package/dist/test/unit/nextjs/NextAuthProvider.test.js.map +0 -1
  403. package/dist/test/unit/nextjs/config.test.d.ts +0 -2
  404. package/dist/test/unit/nextjs/config.test.d.ts.map +0 -1
  405. package/dist/test/unit/nextjs/config.test.js +0 -189
  406. package/dist/test/unit/nextjs/config.test.js.map +0 -1
  407. package/dist/test/unit/nextjs/getUser.test.d.ts +0 -2
  408. package/dist/test/unit/nextjs/getUser.test.d.ts.map +0 -1
  409. package/dist/test/unit/nextjs/getUser.test.js +0 -36
  410. package/dist/test/unit/nextjs/getUser.test.js.map +0 -1
  411. package/dist/test/unit/nextjs/middleware.test.d.ts +0 -2
  412. package/dist/test/unit/nextjs/middleware.test.d.ts.map +0 -1
  413. package/dist/test/unit/nextjs/middleware.test.js +0 -113
  414. package/dist/test/unit/nextjs/middleware.test.js.map +0 -1
  415. package/dist/test/unit/nextjs/utils.test.d.ts +0 -2
  416. package/dist/test/unit/nextjs/utils.test.d.ts.map +0 -1
  417. package/dist/test/unit/nextjs/utils.test.js +0 -13
  418. package/dist/test/unit/nextjs/utils.test.js.map +0 -1
  419. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts +0 -2
  420. package/dist/test/unit/publicApi/apiSnapshot.test.d.ts.map +0 -1
  421. package/dist/test/unit/publicApi/apiSnapshot.test.js +0 -10
  422. package/dist/test/unit/publicApi/apiSnapshot.test.js.map +0 -1
  423. package/dist/test/unit/react/components/SignInButton.test.d.ts +0 -2
  424. package/dist/test/unit/react/components/SignInButton.test.d.ts.map +0 -1
  425. package/dist/test/unit/react/components/SignInButton.test.js +0 -31
  426. package/dist/test/unit/react/components/SignInButton.test.js.map +0 -1
  427. package/dist/test/unit/react/components/SignOutButton.test.d.ts +0 -2
  428. package/dist/test/unit/react/components/SignOutButton.test.d.ts.map +0 -1
  429. package/dist/test/unit/react/components/SignOutButton.test.js +0 -30
  430. package/dist/test/unit/react/components/SignOutButton.test.js.map +0 -1
  431. package/dist/test/unit/server/login.test.d.ts +0 -2
  432. package/dist/test/unit/server/login.test.d.ts.map +0 -1
  433. package/dist/test/unit/server/login.test.js +0 -127
  434. package/dist/test/unit/server/login.test.js.map +0 -1
  435. package/dist/test/unit/server/session.test.d.ts +0 -2
  436. package/dist/test/unit/server/session.test.d.ts.map +0 -1
  437. package/dist/test/unit/server/session.test.js +0 -41
  438. package/dist/test/unit/server/session.test.js.map +0 -1
  439. package/dist/test/unit/services/AuthenticationService.test.d.ts +0 -2
  440. package/dist/test/unit/services/AuthenticationService.test.d.ts.map +0 -1
  441. package/dist/test/unit/services/AuthenticationService.test.js +0 -104
  442. package/dist/test/unit/services/AuthenticationService.test.js.map +0 -1
  443. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts +0 -2
  444. package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts.map +0 -1
  445. package/dist/test/unit/services/ServerAuthenticationResolver.test.js +0 -74
  446. package/dist/test/unit/services/ServerAuthenticationResolver.test.js.map +0 -1
  447. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts +0 -2
  448. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts.map +0 -1
  449. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js +0 -61
  450. package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js.map +0 -1
  451. package/dist/test/unit/shared/UserSession.test.d.ts +0 -2
  452. package/dist/test/unit/shared/UserSession.test.d.ts.map +0 -1
  453. package/dist/test/unit/shared/UserSession.test.js +0 -37
  454. package/dist/test/unit/shared/UserSession.test.js.map +0 -1
  455. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts +0 -2
  456. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts.map +0 -1
  457. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js +0 -120
  458. package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js.map +0 -1
  459. package/dist/test/unit/shared/storage.test.d.ts +0 -2
  460. package/dist/test/unit/shared/storage.test.d.ts.map +0 -1
  461. package/dist/test/unit/shared/storage.test.js +0 -53
  462. package/dist/test/unit/shared/storage.test.js.map +0 -1
  463. package/dist/test/unit/utils.test.d.ts +0 -2
  464. package/dist/test/unit/utils.test.d.ts.map +0 -1
  465. package/dist/test/unit/utils.test.js +0 -40
  466. package/dist/test/unit/utils.test.js.map +0 -1
  467. package/dist/types-Bqm9OCZN.d.mts +0 -22
  468. package/dist/types-Bqm9OCZN.d.ts +0 -22
  469. package/dist/types-BxAubCqO.d.mts +0 -58
  470. package/dist/types-BxAubCqO.d.ts +0 -58
  471. package/dist/types-DOfl9w7j.d.mts +0 -23
  472. package/dist/types-DOfl9w7j.d.ts +0 -23
  473. package/dist/types-HdCjGldB.d.mts +0 -58
  474. package/dist/types-HdCjGldB.d.ts +0 -58
  475. package/dist/vitest.config.d.ts +0 -3
  476. package/dist/vitest.config.d.ts.map +0 -1
  477. package/dist/vitest.config.js +0 -40
  478. package/dist/vitest.config.js.map +0 -1
@@ -1,25 +0,0 @@
1
- import { S as SessionData, U as User, a as UnknownObject, A as AuthStorage } from './types-BxAubCqO.js';
2
-
3
- type SameSiteOption = "strict" | "lax" | "none";
4
- interface SessionStorage {
5
- get(): SessionData;
6
- getUser(): User<UnknownObject> | null;
7
- set(data: Partial<SessionData>): void;
8
- setUser(data: User<UnknownObject> | null): void;
9
- clear(): void;
10
- }
11
- type CookieStorageSettings = {
12
- httpOnly: boolean;
13
- secure: boolean;
14
- sameSite: SameSiteOption;
15
- expires: Date;
16
- path: string;
17
- };
18
- declare abstract class CookieStorage implements AuthStorage {
19
- protected settings: CookieStorageSettings;
20
- protected constructor(settings?: Partial<CookieStorageSettings>);
21
- abstract get(key: string): string | null;
22
- abstract set(key: string, value: string): void;
23
- }
24
-
25
- export { CookieStorage as C, type SessionStorage as S, type CookieStorageSettings as a };
@@ -1,25 +0,0 @@
1
- import { S as SessionData, U as User, a as UnknownObject, A as AuthStorage } from './types-HdCjGldB.js';
2
-
3
- type SameSiteOption = "strict" | "lax" | "none";
4
- interface SessionStorage {
5
- get(): SessionData;
6
- getUser(): User<UnknownObject> | null;
7
- set(data: Partial<SessionData>): void;
8
- setUser(data: User<UnknownObject> | null): void;
9
- clear(): void;
10
- }
11
- type CookieStorageSettings = {
12
- httpOnly: boolean;
13
- secure: boolean;
14
- sameSite: SameSiteOption;
15
- expires: Date;
16
- path: string;
17
- };
18
- declare abstract class CookieStorage implements AuthStorage {
19
- protected settings: CookieStorageSettings;
20
- protected constructor(settings?: Partial<CookieStorageSettings>);
21
- abstract get(key: string): string | null;
22
- abstract set(key: string, value: string): void;
23
- }
24
-
25
- export { CookieStorage as C, type SessionStorage as S, type CookieStorageSettings as a };
@@ -1,25 +0,0 @@
1
- import { S as SessionData, U as User, a as UnknownObject, A as AuthStorage } from './types-HdCjGldB.mjs';
2
-
3
- type SameSiteOption = "strict" | "lax" | "none";
4
- interface SessionStorage {
5
- get(): SessionData;
6
- getUser(): User<UnknownObject> | null;
7
- set(data: Partial<SessionData>): void;
8
- setUser(data: User<UnknownObject> | null): void;
9
- clear(): void;
10
- }
11
- type CookieStorageSettings = {
12
- httpOnly: boolean;
13
- secure: boolean;
14
- sameSite: SameSiteOption;
15
- expires: Date;
16
- path: string;
17
- };
18
- declare abstract class CookieStorage implements AuthStorage {
19
- protected settings: CookieStorageSettings;
20
- protected constructor(settings?: Partial<CookieStorageSettings>);
21
- abstract get(key: string): string | null;
22
- abstract set(key: string, value: string): void;
23
- }
24
-
25
- export { CookieStorage as C, type SessionStorage as S, type CookieStorageSettings as a };
@@ -1,25 +0,0 @@
1
- import { S as SessionData, U as User, a as UnknownObject, A as AuthStorage } from './types-BxAubCqO.mjs';
2
-
3
- type SameSiteOption = "strict" | "lax" | "none";
4
- interface SessionStorage {
5
- get(): SessionData;
6
- getUser(): User<UnknownObject> | null;
7
- set(data: Partial<SessionData>): void;
8
- setUser(data: User<UnknownObject> | null): void;
9
- clear(): void;
10
- }
11
- type CookieStorageSettings = {
12
- httpOnly: boolean;
13
- secure: boolean;
14
- sameSite: SameSiteOption;
15
- expires: Date;
16
- path: string;
17
- };
18
- declare abstract class CookieStorage implements AuthStorage {
19
- protected settings: CookieStorageSettings;
20
- protected constructor(settings?: Partial<CookieStorageSettings>);
21
- abstract get(key: string): string | null;
22
- abstract set(key: string, value: string): void;
23
- }
24
-
25
- export { CookieStorage as C, type SessionStorage as S, type CookieStorageSettings as a };
@@ -1,2 +0,0 @@
1
- import "@testing-library/jest-dom";
2
- //# sourceMappingURL=sdk.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.test.d.ts","sourceRoot":"","sources":["../../../test/integration/sdk.test.tsx"],"names":[],"mappings":"AAaA,OAAO,2BAA2B,CAAC"}
@@ -1,183 +0,0 @@
1
- import React from "react";
2
- import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
3
- import { OAuth2Client } from "oslo/oauth2";
4
- import { useAuth, useUser } from "@/reactjs/hooks/index.js";
5
- import { CivicAuthProvider } from "@/reactjs/providers/index.js";
6
- import { render, screen, act, fireEvent, waitFor, } from "@testing-library/react";
7
- import { describe, it, expect, beforeEach, vi, afterEach } from "vitest";
8
- import "@testing-library/jest-dom";
9
- import * as jose from "jose";
10
- import tokensFixture from "../support/tokens.json";
11
- import * as oauthLib from "@/lib/oauth.js";
12
- const validTokens = { ...tokensFixture.local.validTokens };
13
- // Mock Component to test OAuth flow with useAuth
14
- const MockOAuthComponent = () => {
15
- const { signIn, isAuthenticated } = useAuth();
16
- const { user } = useUser();
17
- const handleLogin = async () => {
18
- try {
19
- await signIn("redirect");
20
- alert("Login Redirect Initiated");
21
- }
22
- catch {
23
- alert("Login Failed");
24
- }
25
- };
26
- return (React.createElement("div", null,
27
- React.createElement("button", { onClick: handleLogin }, "Login"),
28
- user && (React.createElement("p", { "data-testid": "user-email" },
29
- "User:",
30
- user.email)),
31
- isAuthenticated && (React.createElement("p", { "data-testid": "session" }, "Session authenticated:true"))));
32
- };
33
- describe("OAuth login", () => {
34
- const clientId = "test-client-id";
35
- let mockOAuth2Client;
36
- let originalWindowLocation;
37
- afterEach(vi.clearAllMocks);
38
- vi.spyOn(oauthLib, "getOauthEndpoints").mockResolvedValue({
39
- auth: "http://localhost:3001/oauth/auth",
40
- token: "http://localhost:3001/oauth/token",
41
- jwks: "http://localhost:3001/oauth/jwks",
42
- userinfo: "http://localhost:3001/oauth/userinfo",
43
- });
44
- vi.mock("oslo/oauth2", () => ({
45
- OAuth2Client: vi.fn(),
46
- generateCodeVerifier: vi.fn(() => "mock-code-verifier"),
47
- generateState: vi.fn(() => "mock-state"),
48
- }));
49
- vi.mock("jose", () => ({
50
- jwtVerify: vi.fn(),
51
- createRemoteJWKSet: vi.fn(),
52
- }));
53
- beforeEach(() => {
54
- vi.clearAllMocks();
55
- vi.resetModules();
56
- // Setup mock implementations
57
- mockOAuth2Client = {
58
- createAuthorizationURL: vi.fn(),
59
- validateAuthorizationCode: vi.fn(),
60
- refreshAccessToken: vi.fn(),
61
- clientId: "test-client-id",
62
- };
63
- vi.mocked(OAuth2Client).mockImplementation(() => mockOAuth2Client);
64
- // Setup jose mocks
65
- const mockJWKS = {
66
- getKey: vi.fn().mockResolvedValue({ alg: "RS256" }),
67
- };
68
- vi.mocked(jose.createRemoteJWKSet).mockReturnValue(mockJWKS);
69
- vi.mocked(jose.jwtVerify).mockResolvedValue({
70
- payload: { sub: "user123", name: "Test User", email: "test@example.com" },
71
- protectedHeader: { alg: "RS256" },
72
- });
73
- originalWindowLocation = window.location;
74
- window.location = { href: "" };
75
- global.alert = vi.fn();
76
- // Mock window.open to prevent errors.
77
- vi.spyOn(window, "open").mockReturnValue(null);
78
- });
79
- afterEach(() => {
80
- window.location = originalWindowLocation;
81
- });
82
- it("should set the correct auth url for login with redirect", async () => {
83
- const windowAssign = vi.fn();
84
- const redirectUri = "http://localhost:3001/callback";
85
- vi.mocked(mockOAuth2Client.createAuthorizationURL).mockResolvedValue(new URL("http://localhost:3001/oauth/auth?response_type=code&client_id=" +
86
- clientId +
87
- "&redirect_uri=" +
88
- encodeURIComponent(redirectUri) +
89
- "&scope=openid%20profile%20email&state=mock-state&code_challenge=mock-code-challenge&code_challenge_method=S256"));
90
- window.location = {
91
- ...originalWindowLocation,
92
- assign: windowAssign,
93
- replace: vi.fn(),
94
- reload: vi.fn(),
95
- };
96
- const queryClient = new QueryClient();
97
- render(React.createElement(QueryClientProvider, { client: queryClient },
98
- React.createElement(CivicAuthProvider, { clientId: clientId, redirectUrl: redirectUri, config: {
99
- oauthServer: "http://localhost:3001",
100
- } },
101
- React.createElement(MockOAuthComponent, null))));
102
- // Trigger the login button click, which initiates the OAuth flow
103
- await act(async () => {
104
- fireEvent.click(screen.getByText("Login"));
105
- });
106
- // Confirm that the sdk set the window.location.href to the auth url
107
- const url = new URL(window.location.href);
108
- expect(url.origin + url.pathname).toEqual("http://localhost:3001/oauth/auth");
109
- expect(url.searchParams.get("response_type")).toEqual("code");
110
- expect(url.searchParams.get("client_id")).toEqual(clientId);
111
- expect(url.searchParams.get("redirect_uri")).toEqual(redirectUri);
112
- expect(url.searchParams.get("scope")).toEqual("openid profile email");
113
- expect(url.searchParams.get("state")).toBeTruthy(); // Ensure state is present
114
- expect(url.searchParams.get("code_challenge")).toBeTruthy(); // Ensure code_challenge is present
115
- expect(url.searchParams.get("code_challenge_method")).toEqual("S256");
116
- expect(screen.queryByTestId("session")).not.toBeInTheDocument();
117
- });
118
- it("should initiate code exchange, validate tokens, and derive user from ID token", async () => {
119
- const queryClient = new QueryClient();
120
- const redirectUri = "http://localhost:3001/callback";
121
- // Mock ID token with user information
122
- const mockIdToken = validTokens.idToken;
123
- const mockAccessToken = validTokens.accessToken;
124
- // Mock oslo token exchange
125
- const mockTokens = {
126
- access_token: mockAccessToken,
127
- id_token: mockIdToken,
128
- refresh_token: "mock-refresh-token",
129
- expires_in: 3600,
130
- };
131
- vi.mocked(mockOAuth2Client.validateAuthorizationCode).mockResolvedValue(mockTokens);
132
- // Prime storage and simulate redirect
133
- await act(async () => {
134
- localStorage.setItem("civic-auth:test-client-id", JSON.stringify({
135
- authenticated: false,
136
- state: "mock-state",
137
- codeVerifier: "mock-code-verifier",
138
- displayMode: "redirect",
139
- }));
140
- window.location.pathname = "test-pathName";
141
- // Configure window.location to simulate redirect
142
- Object.defineProperty(window, "location", {
143
- value: {
144
- ...window.location,
145
- origin: "http://mock-origin",
146
- },
147
- writable: true,
148
- });
149
- window.location.href = `${redirectUri}?code=test-code&state=mock-state`;
150
- // Render the AuthProvider with the mock OAuth component
151
- render(React.createElement(QueryClientProvider, { client: queryClient },
152
- React.createElement(CivicAuthProvider, { clientId: clientId, redirectUrl: redirectUri, config: {
153
- oauthServer: "http://localhost:3001",
154
- } },
155
- React.createElement(MockOAuthComponent, null))));
156
- });
157
- expect(mockOAuth2Client.validateAuthorizationCode).toHaveBeenCalledWith("test-code", {
158
- codeVerifier: "mock-code-verifier",
159
- });
160
- // Check that jose.jwtVerify was called for id_token validation
161
- await waitFor(() => {
162
- expect(jose.jwtVerify).toHaveBeenCalledWith(mockIdToken, expect.any(Object), {
163
- issuer: ["http://localhost:3001", "http://localhost:3001/"],
164
- audience: clientId,
165
- });
166
- });
167
- // Check that jose.jwtVerify was called for access_token validation
168
- await waitFor(() => {
169
- expect(jose.jwtVerify).toHaveBeenCalledWith(mockAccessToken, expect.any(Object), {
170
- issuer: ["http://localhost:3001", "http://localhost:3001/"],
171
- });
172
- });
173
- // Check that the authenticated flag is set in the session
174
- await waitFor(() => {
175
- expect(screen.queryByTestId("session")).toHaveTextContent("Session authenticated:true");
176
- });
177
- // Check that the user info derived from the ID token is displayed
178
- await waitFor(() => {
179
- expect(screen.queryByTestId("user-email")).toHaveTextContent("User:ghost@civic.com");
180
- });
181
- });
182
- });
183
- //# sourceMappingURL=sdk.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.test.js","sourceRoot":"","sources":["../../../test/integration/sdk.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { OAuth2Client } from \"oslo/oauth2\";\nimport { useAuth, useUser } from \"@/reactjs/hooks/index.js\";\nimport { CivicAuthProvider } from \"@/reactjs/providers/index.js\";\nimport {\n render,\n screen,\n act,\n fireEvent,\n waitFor,\n} from \"@testing-library/react\";\nimport { describe, it, expect, beforeEach, vi, afterEach } from \"vitest\";\nimport \"@testing-library/jest-dom\";\nimport * as jose from \"jose\";\nimport tokensFixture from \"../support/tokens.json\";\nimport * as oauthLib from \"@/lib/oauth.js\";\nimport type { JWTVerifyResult, ResolvedKey } from \"jose\";\n\nconst validTokens = { ...tokensFixture.local.validTokens };\n// Mock Component to test OAuth flow with useAuth\nconst MockOAuthComponent = () => {\n const { signIn, isAuthenticated } = useAuth();\n const { user } = useUser();\n\n const handleLogin = async () => {\n try {\n await signIn(\"redirect\");\n alert(\"Login Redirect Initiated\");\n } catch {\n alert(\"Login Failed\");\n }\n };\n\n return (\n <div>\n <button onClick={handleLogin}>Login</button>\n {user && (\n <p data-testid=\"user-email\">\n User:\n {user.email}\n </p>\n )}\n {isAuthenticated && (\n <p data-testid=\"session\">Session authenticated:true</p>\n )}\n </div>\n );\n};\n\ndescribe(\"OAuth login\", () => {\n const clientId = \"test-client-id\";\n let mockOAuth2Client: OAuth2Client;\n let originalWindowLocation: Location;\n afterEach(vi.clearAllMocks);\n\n vi.spyOn(oauthLib, \"getOauthEndpoints\").mockResolvedValue({\n auth: \"http://localhost:3001/oauth/auth\",\n token: \"http://localhost:3001/oauth/token\",\n jwks: \"http://localhost:3001/oauth/jwks\",\n userinfo: \"http://localhost:3001/oauth/userinfo\",\n });\n vi.mock(\"oslo/oauth2\", () => ({\n OAuth2Client: vi.fn(),\n generateCodeVerifier: vi.fn(() => \"mock-code-verifier\"),\n generateState: vi.fn(() => \"mock-state\"),\n }));\n\n vi.mock(\"jose\", () => ({\n jwtVerify: vi.fn(),\n createRemoteJWKSet: vi.fn(),\n }));\n\n beforeEach(() => {\n vi.clearAllMocks();\n vi.resetModules();\n\n // Setup mock implementations\n mockOAuth2Client = {\n createAuthorizationURL: vi.fn(),\n validateAuthorizationCode: vi.fn(),\n refreshAccessToken: vi.fn(),\n clientId: \"test-client-id\",\n } as unknown as OAuth2Client;\n vi.mocked(OAuth2Client).mockImplementation(() => mockOAuth2Client);\n\n // Setup jose mocks\n const mockJWKS = {\n getKey: vi.fn().mockResolvedValue({ alg: \"RS256\" }),\n };\n vi.mocked(jose.createRemoteJWKSet).mockReturnValue(mockJWKS as any);\n vi.mocked(jose.jwtVerify).mockResolvedValue({\n payload: { sub: \"user123\", name: \"Test User\", email: \"test@example.com\" },\n protectedHeader: { alg: \"RS256\" },\n } as unknown as JWTVerifyResult<unknown> & ResolvedKey);\n\n originalWindowLocation = window.location;\n window.location = { href: \"\" } as Location;\n global.alert = vi.fn();\n // Mock window.open to prevent errors.\n vi.spyOn(window, \"open\").mockReturnValue(null);\n });\n\n afterEach(() => {\n window.location = originalWindowLocation;\n });\n\n it(\"should set the correct auth url for login with redirect\", async () => {\n const windowAssign = vi.fn();\n const redirectUri = \"http://localhost:3001/callback\";\n\n vi.mocked(mockOAuth2Client.createAuthorizationURL).mockResolvedValue(\n new URL(\n \"http://localhost:3001/oauth/auth?response_type=code&client_id=\" +\n clientId +\n \"&redirect_uri=\" +\n encodeURIComponent(redirectUri) +\n \"&scope=openid%20profile%20email&state=mock-state&code_challenge=mock-code-challenge&code_challenge_method=S256\",\n ),\n );\n\n window.location = {\n ...originalWindowLocation,\n assign: windowAssign,\n replace: vi.fn(),\n reload: vi.fn(),\n };\n\n const queryClient = new QueryClient();\n render(\n <QueryClientProvider client={queryClient}>\n <CivicAuthProvider\n clientId={clientId}\n redirectUrl={redirectUri}\n config={{\n oauthServer: \"http://localhost:3001\",\n }}\n >\n <MockOAuthComponent />\n </CivicAuthProvider>\n </QueryClientProvider>,\n );\n\n // Trigger the login button click, which initiates the OAuth flow\n await act(async () => {\n fireEvent.click(screen.getByText(\"Login\"));\n });\n\n // Confirm that the sdk set the window.location.href to the auth url\n const url = new URL(window.location.href);\n expect(url.origin + url.pathname).toEqual(\n \"http://localhost:3001/oauth/auth\",\n );\n expect(url.searchParams.get(\"response_type\")).toEqual(\"code\");\n expect(url.searchParams.get(\"client_id\")).toEqual(clientId);\n expect(url.searchParams.get(\"redirect_uri\")).toEqual(redirectUri);\n expect(url.searchParams.get(\"scope\")).toEqual(\"openid profile email\");\n expect(url.searchParams.get(\"state\")).toBeTruthy(); // Ensure state is present\n expect(url.searchParams.get(\"code_challenge\")).toBeTruthy(); // Ensure code_challenge is present\n expect(url.searchParams.get(\"code_challenge_method\")).toEqual(\"S256\");\n expect(screen.queryByTestId(\"session\")).not.toBeInTheDocument();\n });\n\n it(\"should initiate code exchange, validate tokens, and derive user from ID token\", async () => {\n const queryClient = new QueryClient();\n const redirectUri = \"http://localhost:3001/callback\";\n\n // Mock ID token with user information\n const mockIdToken = validTokens.idToken;\n const mockAccessToken = validTokens.accessToken;\n\n // Mock oslo token exchange\n const mockTokens = {\n access_token: mockAccessToken,\n id_token: mockIdToken,\n refresh_token: \"mock-refresh-token\",\n expires_in: 3600,\n };\n vi.mocked(mockOAuth2Client.validateAuthorizationCode).mockResolvedValue(\n mockTokens,\n );\n\n // Prime storage and simulate redirect\n await act(async () => {\n localStorage.setItem(\n \"civic-auth:test-client-id\",\n JSON.stringify({\n authenticated: false,\n state: \"mock-state\",\n codeVerifier: \"mock-code-verifier\",\n displayMode: \"redirect\",\n }),\n );\n window.location.pathname = \"test-pathName\";\n\n // Configure window.location to simulate redirect\n Object.defineProperty(window, \"location\", {\n value: {\n ...window.location,\n origin: \"http://mock-origin\",\n },\n writable: true,\n });\n window.location.href = `${redirectUri}?code=test-code&state=mock-state`;\n\n // Render the AuthProvider with the mock OAuth component\n render(\n <QueryClientProvider client={queryClient}>\n <CivicAuthProvider\n clientId={clientId}\n redirectUrl={redirectUri}\n config={{\n oauthServer: \"http://localhost:3001\",\n }}\n >\n <MockOAuthComponent />\n </CivicAuthProvider>\n </QueryClientProvider>,\n );\n });\n\n expect(mockOAuth2Client.validateAuthorizationCode).toHaveBeenCalledWith(\n \"test-code\",\n {\n codeVerifier: \"mock-code-verifier\",\n },\n );\n\n // Check that jose.jwtVerify was called for id_token validation\n await waitFor(() => {\n expect(jose.jwtVerify).toHaveBeenCalledWith(\n mockIdToken,\n expect.any(Object),\n {\n issuer: [\"http://localhost:3001\", \"http://localhost:3001/\"],\n audience: clientId,\n },\n );\n });\n\n // Check that jose.jwtVerify was called for access_token validation\n await waitFor(() => {\n expect(jose.jwtVerify).toHaveBeenCalledWith(\n mockAccessToken,\n expect.any(Object),\n {\n issuer: [\"http://localhost:3001\", \"http://localhost:3001/\"],\n },\n );\n });\n\n // Check that the authenticated flag is set in the session\n await waitFor(() => {\n expect(screen.queryByTestId(\"session\")).toHaveTextContent(\n \"Session authenticated:true\",\n );\n });\n\n // Check that the user info derived from the ID token is displayed\n await waitFor(() => {\n expect(screen.queryByTestId(\"user-email\")).toHaveTextContent(\n \"User:ghost@civic.com\",\n );\n });\n });\n});\n"]}
@@ -1,26 +0,0 @@
1
- declare const oauthWellKnownResponse: {
2
- authorization_endpoint: string;
3
- claims_parameter_supported: boolean;
4
- claims_supported: string[];
5
- code_challenge_methods_supported: string[];
6
- end_session_endpoint: string;
7
- grant_types_supported: string[];
8
- issuer: string;
9
- jwks_uri: string;
10
- authorization_response_iss_parameter_supported: boolean;
11
- response_modes_supported: string[];
12
- response_types_supported: string[];
13
- scopes_supported: string[];
14
- subject_types_supported: string[];
15
- token_endpoint_auth_methods_supported: string[];
16
- token_endpoint_auth_signing_alg_values_supported: string[];
17
- token_endpoint: string;
18
- id_token_signing_alg_values_supported: string[];
19
- pushed_authorization_request_endpoint: string;
20
- request_parameter_supported: boolean;
21
- request_uri_parameter_supported: boolean;
22
- userinfo_endpoint: string;
23
- claim_types_supported: string[];
24
- };
25
- export { oauthWellKnownResponse };
26
- //# sourceMappingURL=fixtures.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../test/support/fixtures.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;CAqD3B,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -1,55 +0,0 @@
1
- const oauthWellKnownResponse = {
2
- authorization_endpoint: "https://auth-dev.civic.com/oauth/auth",
3
- claims_parameter_supported: false,
4
- claims_supported: [
5
- "sub",
6
- "forwardedTokens",
7
- "email",
8
- "name",
9
- "family_name",
10
- "picture",
11
- "login_method",
12
- "sid",
13
- "auth_time",
14
- "iss",
15
- ],
16
- code_challenge_methods_supported: ["S256"],
17
- end_session_endpoint: "https://auth-dev.civic.com/oauth/session/end",
18
- grant_types_supported: ["implicit", "authorization_code", "refresh_token"],
19
- issuer: "https://auth-dev.civic.com/oauth/",
20
- jwks_uri: "https://auth-dev.civic.com/oauth/jwks",
21
- authorization_response_iss_parameter_supported: true,
22
- response_modes_supported: ["form_post", "fragment", "query"],
23
- response_types_supported: ["code id_token", "code", "id_token", "none"],
24
- scopes_supported: [
25
- "openid",
26
- "offline_access",
27
- "forwardedTokens",
28
- "email",
29
- "profile",
30
- ],
31
- subject_types_supported: ["public"],
32
- token_endpoint_auth_methods_supported: [
33
- "client_secret_basic",
34
- "client_secret_jwt",
35
- "client_secret_post",
36
- "private_key_jwt",
37
- "none",
38
- ],
39
- token_endpoint_auth_signing_alg_values_supported: [
40
- "HS256",
41
- "RS256",
42
- "PS256",
43
- "ES256",
44
- "EdDSA",
45
- ],
46
- token_endpoint: "https://auth-dev.civic.com/oauth/token",
47
- id_token_signing_alg_values_supported: ["PS256", "RS256"],
48
- pushed_authorization_request_endpoint: "https://auth-dev.civic.com/oauth/request",
49
- request_parameter_supported: false,
50
- request_uri_parameter_supported: false,
51
- userinfo_endpoint: "https://auth-dev.civic.com/oauth/me",
52
- claim_types_supported: ["normal"],
53
- };
54
- export { oauthWellKnownResponse };
55
- //# sourceMappingURL=fixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../test/support/fixtures.ts"],"names":[],"mappings":"AAAA,MAAM,sBAAsB,GAAG;IAC7B,sBAAsB,EAAE,uCAAuC;IAC/D,0BAA0B,EAAE,KAAK;IACjC,gBAAgB,EAAE;QAChB,KAAK;QACL,iBAAiB;QACjB,OAAO;QACP,MAAM;QACN,aAAa;QACb,SAAS;QACT,cAAc;QACd,KAAK;QACL,WAAW;QACX,KAAK;KACN;IACD,gCAAgC,EAAE,CAAC,MAAM,CAAC;IAC1C,oBAAoB,EAAE,8CAA8C;IACpE,qBAAqB,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,eAAe,CAAC;IAC1E,MAAM,EAAE,mCAAmC;IAC3C,QAAQ,EAAE,uCAAuC;IACjD,8CAA8C,EAAE,IAAI;IACpD,wBAAwB,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC;IAC5D,wBAAwB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;IACvE,gBAAgB,EAAE;QAChB,QAAQ;QACR,gBAAgB;QAChB,iBAAiB;QACjB,OAAO;QACP,SAAS;KACV;IACD,uBAAuB,EAAE,CAAC,QAAQ,CAAC;IACnC,qCAAqC,EAAE;QACrC,qBAAqB;QACrB,mBAAmB;QACnB,oBAAoB;QACpB,iBAAiB;QACjB,MAAM;KACP;IACD,gDAAgD,EAAE;QAChD,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;KACR;IACD,cAAc,EAAE,wCAAwC;IACxD,qCAAqC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IACzD,qCAAqC,EACnC,0CAA0C;IAC5C,2BAA2B,EAAE,KAAK;IAClC,+BAA+B,EAAE,KAAK;IACtC,iBAAiB,EAAE,qCAAqC;IACxD,qBAAqB,EAAE,CAAC,QAAQ,CAAC;CAClC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC","sourcesContent":["const oauthWellKnownResponse = {\n authorization_endpoint: \"https://auth-dev.civic.com/oauth/auth\",\n claims_parameter_supported: false,\n claims_supported: [\n \"sub\",\n \"forwardedTokens\",\n \"email\",\n \"name\",\n \"family_name\",\n \"picture\",\n \"login_method\",\n \"sid\",\n \"auth_time\",\n \"iss\",\n ],\n code_challenge_methods_supported: [\"S256\"],\n end_session_endpoint: \"https://auth-dev.civic.com/oauth/session/end\",\n grant_types_supported: [\"implicit\", \"authorization_code\", \"refresh_token\"],\n issuer: \"https://auth-dev.civic.com/oauth/\",\n jwks_uri: \"https://auth-dev.civic.com/oauth/jwks\",\n authorization_response_iss_parameter_supported: true,\n response_modes_supported: [\"form_post\", \"fragment\", \"query\"],\n response_types_supported: [\"code id_token\", \"code\", \"id_token\", \"none\"],\n scopes_supported: [\n \"openid\",\n \"offline_access\",\n \"forwardedTokens\",\n \"email\",\n \"profile\",\n ],\n subject_types_supported: [\"public\"],\n token_endpoint_auth_methods_supported: [\n \"client_secret_basic\",\n \"client_secret_jwt\",\n \"client_secret_post\",\n \"private_key_jwt\",\n \"none\",\n ],\n token_endpoint_auth_signing_alg_values_supported: [\n \"HS256\",\n \"RS256\",\n \"PS256\",\n \"ES256\",\n \"EdDSA\",\n ],\n token_endpoint: \"https://auth-dev.civic.com/oauth/token\",\n id_token_signing_alg_values_supported: [\"PS256\", \"RS256\"],\n pushed_authorization_request_endpoint:\n \"https://auth-dev.civic.com/oauth/request\",\n request_parameter_supported: false,\n request_uri_parameter_supported: false,\n userinfo_endpoint: \"https://auth-dev.civic.com/oauth/me\",\n claim_types_supported: [\"normal\"],\n};\n\nexport { oauthWellKnownResponse };\n"]}
@@ -1,26 +0,0 @@
1
- {
2
- "local": {
3
- "validTokens": {
4
- "idToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImNpdmljLWF1dGgtdG9rZW4tc2lnbmVyLWtleSJ9.eyJzdWIiOiIzMzZmNDQ1Zi1hZjcxLTQxYzYtODNlZC00NjJhY2ZiNTU1YjYiLCJlbWFpbCI6Imdob3N0QGNpdmljLmNvbSIsImZvcndhcmRlZFRva2VucyI6eyJkdW1teSI6eyJhY2Nlc3NfdG9rZW4iOiIiLCJleHBpcmVzX2luIjozNjAwLCJpZF90b2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW10bGVYTjBiM0psTFVOSVFVNUhSUzFOUlNKOS5leUp6ZFdJaU9pSjBaWE4wSWl3aVlYUmZhR0Z6YUNJNklrcEdVbkZRZUhsZmJGYzFVaTFIV0dabE9Ia3lja0VpTENKaGRXUWlPaUp0ZVMxamJHbGxiblFpTENKbGVIQWlPakUzTWprd05qZ3hOVFVzSW1saGRDSTZNVGN5T1RBMk5EVTFOU3dpYVhOeklqb2lhSFIwY0RvdkwyeHZZMkZzYUc5emREbzVNRGt3SW4wLm11TGg2T2s0YVIyb0V3RC1yUFZXck5RY24xMFZqSjVmN0hUUHVNSk50NFBFVUEyVkttZnRKdHdEOXB5WVVNUngybkhHaWRIMVIyemhwbUpWclVUaDl4SDVpNkQxckx5VHA2UXFTbm9RQ1lYTFA3bzdJRWdLcTkta1R0TUhWS2t1LU1qX2FvNk05TUFaN3llYnpCR3dJcHVYcFRZY3JwMC1EQVZLSW94LVV1b0lfSkljbURWSExtbjJfUEhMZ0Z1Y3ctMTlVZFgyYUlTM19kSDRqQ01CLXp4Y0xGTmV6SlVfV1BRVTNYUEhyQk83M3lMWTU2NmEyb1RVczV3Tkh4bWJKOXdBWXJSRHJSQVBrcml2R2s1WEhNSG5RX21OUlUxNGhSc2N3Y25vOC1NZnNlZlRHc1JsbDdSRXpiaUFWUzZjY2hHV0ItVXJJWk92R0p6UjFlZGRjQSIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJ0b2tlbl90eXBlIjoiQmVhcmVyIn19LCJub25jZSI6IjEyMzQ1Njc4OTAiLCJhdF9oYXNoIjoiVFZjelNRMERIeElHY2t1VzducDYydyIsImF1ZCI6ImRlbW8tY2xpZW50LTEiLCJleHAiOjE3MjkwNjgxNTYsImlhdCI6MTcyOTA2NDU1NiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDozMDAxIn0.NNvOtkls3wjivcCWYanqWr8_cHzf7by2_6mSF_qeNqJ8zt7ZPmKh2R6WbnrlYVsym0sMYueR9m_bDGsNZNrwXGPABz4ff7TV5LH8LO1W_fdPemMBlIDdRwc0DZx7BUIKqwvciQ1lHx-2xv-6gH7TZVX7Dwvv-zArLpLkmzrec4EV0Wyn-WYAZFqMMpPvEUCCxkp_AWMh9P8ax3ExSHPAMu5_skJo1nJTK5lri3DNU31IuXvLz2JFYusDViFDwu5wx_TSC1S-hsRQd_aK_wGGifqfuwuGRX43ZEDqRcB5lgBAfc8v1kxYu5HhF07C63zMLZjJg66pGBHwNWp5r-Q4K-2xBXDU6TP-4YYikvwqIOjlRiz_RP_kEBrioqNRvwk8SU2laJ7g7st_4q86RiXPS4uN31o5eDSCiM5dd0OdC2IUZorC5pMym-IzuHEJhWr68psczj3dUKxbLbuoH-827CQt-8Vv8znfS7ck8I0YDXjVSKhBYXoCnzXpwJ-c9OcPIbquTQrqeogGqTlA6Nt-23rC7Ave8xOcRQZrJ1Ec5c5eD_4MoSYw3q90b6AT6U3tY3ewYQMdg4Ro9x-hFu7uCuurDZgnyugpM7dBATaFfR3ar9nRtdMyPrU2LhEeZS2iwSvP7wuWJpIkjxFy3znFrsFBTa_WbD0BJSOfl1j5G94",
5
- "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCIsImtpZCI6ImNpdmljLWF1dGgtdG9rZW4tc2lnbmVyLWtleSJ9.eyJqdGkiOiJjS2xCVW1jZW0tVjE3RzM4N1AyTUIiLCJzdWIiOiIzMzZmNDQ1Zi1hZjcxLTQxYzYtODNlZC00NjJhY2ZiNTU1YjYiLCJpYXQiOjE3MjkwNjQ1NTYsImV4cCI6MTcyOTA2ODE1NiwiY2xpZW50X2lkIjoiZGVtby1jbGllbnQtMSIsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMSIsImF1ZCI6ImNpdmljIn0.gsX--7GtdF1JYQi5Spt6GfcvZ_8EZxkpO8GljfoXJw-cRYhP98-w9IADZBn87ekH914pnUTxp1x_oLhTWGBrR_yMsHRYim_gkVv8t-dnOEAR4IzDByG7kd58TM_blbY-yma0Cb-O3XRGgrdkvw2PjMeHfTSl3tlYx0c47PS8WegOkYkQcfyPUUNEsUFA8e5qzmkMCdwFWHaox-fQaaNpFrO0wCRWOvYr3vFnrLU87Ds7AOaurZUYaFgxqcMsg3zhZXB2pslqS2p9pmQO3Yi0m8-ntX5P18TWX6oOdBbOLqJX3R5s2GAAm9tYJOeBz-JpTucmn4OaL3OyJvIZqM-7EAVtHdnVYUjzGarNu4_b-rcj66mkSNBbquqjAmRBQ5nnRMkmWZxkf6BKgOwmuONLaU4soZEc_AUNtcKIRzbYmBvrgBlPZr5lvkSKIynKlDCbhsB7O_yBRijVesQrau5ReUcXdbJMRj1U5goBnWXV8y8xZFVKwJvx5WdQVUz2tjmtTO8xMK0ORcWdJShIzlhvQrUsjuiFKWytlbRckIdrllsNLfTFbIvQLa9Pmi-FgrJtm-wD3RoHlNgtjGiHjN-YfWCauTcSn9Xd8TbjIc8D43LuRR2Oh3c78GrEVerbnmTjXh6UFZ6ZXkrkarVst8KQMtPiUo9_DdtJP6ghXLXdo6A"
6
- },
7
- "expiredTokens": {
8
- "idToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzZmJlM2QwMy0yZDM4LTRjZjgtYjAzNy1kZDVjMjdkOWFmODAiLCJlbWFpbCI6ImVkMjEyNTczLTgxMGEtNDliZS1iNzdiLTg2OWMyOWM2ZWRkZEBleGFtcGxlLmV4YW1wbGUiLCJmb3J3YXJkZWRUb2tlbnMiOnsiZHVtbXkiOnsiYWNjZXNzX3Rva2VuIjoidGVzdC1mb3J3YXJkZWQtYWNjZXNzLXRva2VuIiwiaWRfdG9rZW4iOiJ0ZXN0LWZvcndhcmRlZC1pZC10b2tlbiJ9fSwibm9uY2UiOiIxMjM0NTY3ODkwIiwiYXRfaGFzaCI6Ikh3T3JXdldWRV9UR3h3c2ZCN0NyRlEiLCJhdWQiOiJkZW1vLWNsaWVudC0xIiwiZXhwIjoxNjk3OTU5OTI1LCJpYXQiOjE2NjY0MjM5MjUsImlzcyI6Imh0dHBzOi8vYXV0aC1kZXYuY2l2aWMuY29tL29hdXRoLyJ9.MO0IdxEyNiOq4E5QdtpfSbnXQKiN8euC2ac0E0VWggUP4o5yoz29gqAzETP_omvOBfOn4hJjXTDPGqKXKg-Lz-oLdzF71aztskCerwDuB5PdqyCGMS9Qa2j40FTJ7RkuBG9PISUpGWYfZ28q7u94h8GyWtqRtPAF2aPD1rvckk-WTXLeMqEWtfEy0yCJ4MvEwp6MUgeb7EwRKUZ_cuVCE5Xm8rNebO9b2I3Jqdg8cNNyAxEYkWERBcfFtOfaQYD_8DNJvpNpJvZXAowaab7dzNgGBAxhTQ7s4S9h-Ly2nQIAIpbff_A4baI6rOqWfFxdzrxcFt34x0S_90Z3MXNziAb-ocG0WkPewRm0hvrF4E-zFTM4guTvtol0cKw9qWLb_JE-Idm9Zq-abkOS6FvM2E0j1iqKjT1GqM_EhOdIMzOidqxlls5v2UaaJ34PvR_1yTopm6Lguhr6uX3CW_F4A5tGAxsReeUDdGQAhkPYqZp8zjPUxjCA3cJEnMSGWHgqiBJ5lCLeH-SaccT828pSqYL8FrN0Qts3ILaElVVECHiWhN90lGaBSPw8pn19odH70wH651C2eonWKAKQMpNheGmyjrGE8n0jPwz-p-8ISp5H793wlWiTH2ay33METj0Vbgg-G1p1xcWD5WR4X-uyH1f-iNupvVNYn8mf0iPxM-I",
9
- "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJ0Wk9RdjQ0Unh2MzJ4dTJReElzTnEiLCJzdWIiOiIzZmJlM2QwMy0yZDM4LTRjZjgtYjAzNy1kZDVjMjdkOWFmODAiLCJleHAiOjE2OTc5NTk5MjUsImlhdCI6MTY2NjQyMzkyNSwiY2xpZW50X2lkIjoiZGVtby1jbGllbnQtMSIsImlzcyI6Imh0dHBzOi8vYXV0aC1kZXYuY2l2aWMuY29tL29hdXRoLyIsImF1ZCI6ImNpdmljIn0.HxnjNL8P7K0WHoCQXpvbxtu_yTrcdudj4GI4fjQZEoVXJ14IkssKUa3aJGWZ2vJkxqIogoLmywYFBjvLZqcc1vo3Q-aLlVEb7EkjsQU4Qo8BMsJ0ZS2_4cDewt9WBUrMA-fDy3UwgoxHlM5OCjQ5lKAPLLm2FJDJ-djFOf_z0le9FOZ4MqkU7u_lc57e0jdCwSZmIRIU5DPX90jh-p2r8OxBwRorjAwuiiu59wTtYyEpfdicSwb7mM7hM6nFp-zl14ogWGCiW20_Lx0sz-1EfzUgw-rH2xW5R_QDUQtHJ15Pq0mtck77i608y2IElnQgwYlmSmn7gpSUoNB7Bh7cBckRfV1YHh8CoReQOKjtfCbhZYVdFDuuUaIEYmI_E9W-C4BKWJkdtX3kCy576jCx15-N7VBzVYIpkOVHHeZdRkMLVJCts2W84it0lCXgMg7KfOcuv8Lzqj_IrSBmP6jgKiOhWJ0eWQLrKGBKOS5IxhK6kyQjZSKy8Yj-N_iBt1PP4e-EWBL2jlQ81ycm4_qgUmiADryUVRchUUAyT-y5TD_LTb2gu-7h_ElKFJ_9scWjxn-SguJi2ObYaFqTes9cNtMFLP3mi9wHhlCngb5_Bw1goV0XHR1H-PSX-XOQ0MzTK7KA8uT1PHbRCsHEFkjMaZgWEwfxTqXVt2LzT6PH_Qs"
10
- }
11
- },
12
- "dev": {
13
- "validTokens": {
14
- "idToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzZmJlM2QwMy0yZDM4LTRjZjgtYjAzNy1kZDVjMjdkOWFmODAiLCJlbWFpbCI6ImVkMjEyNTczLTgxMGEtNDliZS1iNzdiLTg2OWMyOWM2ZWRkZEBleGFtcGxlLmV4YW1wbGUiLCJmb3J3YXJkZWRUb2tlbnMiOnsiZHVtbXkiOnsiYWNjZXNzX3Rva2VuIjoidGVzdC1mb3J3YXJkZWQtYWNjZXNzLXRva2VuIiwiaWRfdG9rZW4iOiJ0ZXN0LWZvcndhcmRlZC1pZC10b2tlbiJ9fSwibm9uY2UiOiIxMjM0NTY3ODkwIiwiYXRfaGFzaCI6Ikh3T3JXdldWRV9UR3h3c2ZCN0NyRlEiLCJhdWQiOiJkZW1vLWNsaWVudC0xIiwiZXhwIjozMjUyODU5NDc1NCwiaWF0IjoxNzI5MDY2NTY4LCJpc3MiOiJodHRwczovL2F1dGgtZGV2LmNpdmljLmNvbS9vYXV0aC8ifQ.vRQtCQqzV_m62rClHrOtiV7C2zBDOp6h51IgPvlX4-z9x5BDmgckZpNfxPo-Skl7Un5HwTmnqfEyrdsIUScI86Nf_jVt6oEwM1YE2PwygHPW6oE4-Nlipcpll7zNaQQTBVpfuz1bEC7xRqM3quH-RT_hEB4em8YrN0uIBtPrBJ3JpzSnjrLkdziLiSQbejYMLM69WCRCc0pT1V8oBRWxq3fd6s71ajZ8X-KIf5p5Nc24FzidK6X3Yb7pD9sq8BlqbGIDpdXJXNCPJz8kpN9AiggAJUpYeNV2zi0rm5O5-C8UHwOVkAd7SCc_rBxoUxJ9K8B_RX3mo0wKzjY_BVLrvba4R9Nbl5JYkaWPnvKaZDEebjdb3eHdljeomEtP1uYNOqTGqY0Pj8312WNjC6-HtDQFevzmZKYqLtExGuGMuj81V9QUO_SAWzPKZ_wgscJzdR_lFgCqL2uOE0CL6LcnXefyqiMMtsIh2BuBKBJHzCmBf26ezaOuR_hRH4wbJ2rawiqSInhwedeHC1MoVsEWcjealUJspWCfbTqGF-ewTmRAvXffkNjOiQNtclt63ap9gbE89tsNlG_TFICbHFAbn4rNTq6e1gpgke1Ouf9ex1UXrZb9HdfeN5o9-7IsPlEWblkxDKxqcj6YAukETfW7wYzt4tV_sxqO_uxiHhczRU8",
15
- "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJ0Wk9RdjQ0Unh2MzJ4dTJReElzTnEiLCJzdWIiOiIzZmJlM2QwMy0yZDM4LTRjZjgtYjAzNy1kZDVjMjdkOWFmODAiLCJpYXQiOjE3MjkwNjY1NjgsImV4cCI6MzI1Mjg1OTQ3NTQsImNsaWVudF9pZCI6ImRlbW8tY2xpZW50LTEiLCJpc3MiOiJodHRwczovL2F1dGgtZGV2LmNpdmljLmNvbS9vYXV0aC8iLCJhdWQiOiJjaXZpYyJ9.CzQ_WXqFobV_fafE3K2dIUttvcFDxOGMT_GnUmdyg5HLB1MRCQYZItwZof_h-LdQp8suo4XyneclOJnQhCzlmDjOcEZOns_joh91t-zDX1jXIQNqC_evpzvfr5Rubz26gsKljk642ru0gkaH8cLHPJx3jgvtBrQzbLbzKJZRIhWqthrqdcKHKeUxN6g-LAFqQG7d-tP6cL_X1Q29IBpJ49SkpYFEDslLwQ_LU5zal_k-2tEyU6DfoFWB9hbNfBQy16SJzgDBDnZ3DadDSRjpXBwRa7m9ALa3A_qVln3K4wuTR46LFDqMKNAqf_sfy5tIJ6Zja5ehwxqmMwXtHomZY9OtfHDE511AZ6wGSagEpexe3eV-2TVwTvJBZnqfeLnnzlF9Z6qqq65lJ5XhO34Ylxnt-kqLqPOPwp-rYCJna-tUsEKAokkqKnHf2FycMQAaBx0grk5yyD2Y4CttlCfbdehoFSyWtTFvkjkk7MebLXqvMbqxXSmKaBn7Of0W6E9Qs6nJ5gWMaVuD9gc2H-BvQAQBUSYpl0TB_yPJKbiRb03HvvgZUdgB9XI9e5YFSMA0K_0SPtx4AgSLH2Coz-NxwLUtP22PUTNmm-04r8Sj0SVWw9w9mW4YXU3U4BGI_0fmIW3BMGgDk_9ghsumaNYKSe1P4qFLqh2jqEov0MagLck"
16
- },
17
- "differentSignerTokens": {
18
- "idToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzZmJlM2QwMy0yZDM4LTRjZjgtYjAzNy1kZDVjMjdkOWFmODAiLCJlbWFpbCI6ImVkMjEyNTczLTgxMGEtNDliZS1iNzdiLTg2OWMyOWM2ZWRkZEBleGFtcGxlLmV4YW1wbGUiLCJmb3J3YXJkZWRUb2tlbnMiOnsiZHVtbXkiOnsiYWNjZXNzX3Rva2VuIjoidGVzdC1mb3J3YXJkZWQtYWNjZXNzLXRva2VuIiwiaWRfdG9rZW4iOiJ0ZXN0LWZvcndhcmRlZC1pZC10b2tlbiJ9fSwibm9uY2UiOiIxMjM0NTY3ODkwIiwiYXRfaGFzaCI6Ikh3T3JXdldWRV9UR3h3c2ZCN0NyRlEiLCJhdWQiOiJkZW1vLWNsaWVudC0xIiwiZXhwIjozMjUyODU5NDc1NCwiaWF0IjoxNzI5MDY2NTY4LCJpc3MiOiJodHRwczovL2F1dGgtZGV2LmNpdmljLmNvbS9vYXV0aC8ifQ.hEPfoJRHEttdCUttpFI1e5fVrPIboOsAqwNsnXR0ANpl9qJjbYgkwPhpTaoujCI2LoNmTNqTxdFuq19g03-EMIJCvfv2hi4NOSXCzk94EFumDLaKQNvSnyXBb3LolD45-OqRBUycvQcWgynRSCS_GaGncJ_qPfFarThwYuzRKF7XvBlQf7FbdnVAWwpuP9AU6dJDLZNJChm3wRrubsbMLzhtWbFhTAlrp7ACLoCkx6c3_IZs35Wcn-5DfdBRGYicrJvaqQ4xBTTLR0lE23VsLMPDAqgdcCOIduCobq6FuY8hAGkJwOZ-cW81KYrCGQn_47GDfaP_BsAUM4YblcCuAQ",
19
- "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJ0Wk9RdjQ0Unh2MzJ4dTJReElzTnEiLCJzdWIiOiIzZmJlM2QwMy0yZDM4LTRjZjgtYjAzNy1kZDVjMjdkOWFmODAiLCJpYXQiOjE3MjkwNjY1NjgsImV4cCI6MzI1Mjg1OTQ3NTQsImNsaWVudF9pZCI6ImRlbW8tY2xpZW50LTEiLCJpc3MiOiJodHRwczovL2F1dGgtZGV2LmNpdmljLmNvbS9vYXV0aC8iLCJhdWQiOiJjaXZpYyJ9.VXHpr2yV7fk7ggPurT5zSlfcTrC6VfMGqt5KUi9bw3raetbwC7zdPNtNdcwLEGL1O-JvQB2JH6aDc24bLv6h2yyxNZufoq9LHQKZpJYEe6nEaeTIZkWG0TeKa1Kpj4Gq2C7ooNMPKdjb8hYu_4PN8uaB7z1jM55CLPr-SvSiOqpyZDDc92zShlYTGcUVKFUIM4mQ-vZv8064ck4L1ca0H3LvMegdiUg0WUcDttzcfRpqv9jw1g-CNGx4I-0Bqlb_EqGuY345-0_iH3AsMvFuhQn1SltYYrLLWm9drMpQh3YGtFGqu21Oz-geRrpfAmxRBF7fcgDC-0kwroP2ARymDw"
20
- },
21
- "expiredTokens": {
22
- "idToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzZmJlM2QwMy0yZDM4LTRjZjgtYjAzNy1kZDVjMjdkOWFmODAiLCJlbWFpbCI6ImVkMjEyNTczLTgxMGEtNDliZS1iNzdiLTg2OWMyOWM2ZWRkZEBleGFtcGxlLmV4YW1wbGUiLCJmb3J3YXJkZWRUb2tlbnMiOnsiZHVtbXkiOnsiYWNjZXNzX3Rva2VuIjoidGVzdC1mb3J3YXJkZWQtYWNjZXNzLXRva2VuIiwiaWRfdG9rZW4iOiJ0ZXN0LWZvcndhcmRlZC1pZC10b2tlbiJ9fSwibm9uY2UiOiIxMjM0NTY3ODkwIiwiYXRfaGFzaCI6Ikh3T3JXdldWRV9UR3h3c2ZCN0NyRlEiLCJhdWQiOiJkZW1vLWNsaWVudC0xIiwiZXhwIjoxNjk3OTU5OTI1LCJpYXQiOjE2NjY0MjM5MjUsImlzcyI6Imh0dHBzOi8vYXV0aC1kZXYuY2l2aWMuY29tL29hdXRoLyJ9.MO0IdxEyNiOq4E5QdtpfSbnXQKiN8euC2ac0E0VWggUP4o5yoz29gqAzETP_omvOBfOn4hJjXTDPGqKXKg-Lz-oLdzF71aztskCerwDuB5PdqyCGMS9Qa2j40FTJ7RkuBG9PISUpGWYfZ28q7u94h8GyWtqRtPAF2aPD1rvckk-WTXLeMqEWtfEy0yCJ4MvEwp6MUgeb7EwRKUZ_cuVCE5Xm8rNebO9b2I3Jqdg8cNNyAxEYkWERBcfFtOfaQYD_8DNJvpNpJvZXAowaab7dzNgGBAxhTQ7s4S9h-Ly2nQIAIpbff_A4baI6rOqWfFxdzrxcFt34x0S_90Z3MXNziAb-ocG0WkPewRm0hvrF4E-zFTM4guTvtol0cKw9qWLb_JE-Idm9Zq-abkOS6FvM2E0j1iqKjT1GqM_EhOdIMzOidqxlls5v2UaaJ34PvR_1yTopm6Lguhr6uX3CW_F4A5tGAxsReeUDdGQAhkPYqZp8zjPUxjCA3cJEnMSGWHgqiBJ5lCLeH-SaccT828pSqYL8FrN0Qts3ILaElVVECHiWhN90lGaBSPw8pn19odH70wH651C2eonWKAKQMpNheGmyjrGE8n0jPwz-p-8ISp5H793wlWiTH2ay33METj0Vbgg-G1p1xcWD5WR4X-uyH1f-iNupvVNYn8mf0iPxM-I",
23
- "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJ0Wk9RdjQ0Unh2MzJ4dTJReElzTnEiLCJzdWIiOiIzZmJlM2QwMy0yZDM4LTRjZjgtYjAzNy1kZDVjMjdkOWFmODAiLCJleHAiOjE2OTc5NTk5MjUsImlhdCI6MTY2NjQyMzkyNSwiY2xpZW50X2lkIjoiZGVtby1jbGllbnQtMSIsImlzcyI6Imh0dHBzOi8vYXV0aC1kZXYuY2l2aWMuY29tL29hdXRoLyIsImF1ZCI6ImNpdmljIn0.HxnjNL8P7K0WHoCQXpvbxtu_yTrcdudj4GI4fjQZEoVXJ14IkssKUa3aJGWZ2vJkxqIogoLmywYFBjvLZqcc1vo3Q-aLlVEb7EkjsQU4Qo8BMsJ0ZS2_4cDewt9WBUrMA-fDy3UwgoxHlM5OCjQ5lKAPLLm2FJDJ-djFOf_z0le9FOZ4MqkU7u_lc57e0jdCwSZmIRIU5DPX90jh-p2r8OxBwRorjAwuiiu59wTtYyEpfdicSwb7mM7hM6nFp-zl14ogWGCiW20_Lx0sz-1EfzUgw-rH2xW5R_QDUQtHJ15Pq0mtck77i608y2IElnQgwYlmSmn7gpSUoNB7Bh7cBckRfV1YHh8CoReQOKjtfCbhZYVdFDuuUaIEYmI_E9W-C4BKWJkdtX3kCy576jCx15-N7VBzVYIpkOVHHeZdRkMLVJCts2W84it0lCXgMg7KfOcuv8Lzqj_IrSBmP6jgKiOhWJ0eWQLrKGBKOS5IxhK6kyQjZSKy8Yj-N_iBt1PP4e-EWBL2jlQ81ycm4_qgUmiADryUVRchUUAyT-y5TD_LTb2gu-7h_ElKFJ_9scWjxn-SguJi2ObYaFqTes9cNtMFLP3mi9wHhlCngb5_Bw1goV0XHR1H-PSX-XOQ0MzTK7KA8uT1PHbRCsHEFkjMaZgWEwfxTqXVt2LzT6PH_Qs"
24
- }
25
- }
26
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=oauth.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/lib/oauth.test.ts"],"names":[],"mappings":""}
@@ -1,55 +0,0 @@
1
- import { getOauthEndpoints, getIssuerVariations, displayModeFromState, generateState, } from "@/lib/oauth.js";
2
- import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
3
- import { oauthWellKnownResponse } from "../../support/fixtures.js";
4
- describe("getOauthEndpoints", () => {
5
- afterEach(vi.clearAllMocks);
6
- beforeEach(() => {
7
- global.fetch = vi.fn().mockResolvedValue({
8
- json: vi.fn().mockResolvedValue(oauthWellKnownResponse),
9
- });
10
- });
11
- it("should translate the response from the auth server into an endpoints object", async () => {
12
- const response = await getOauthEndpoints("https://example.com");
13
- expect(response).toEqual({
14
- auth: "https://auth-dev.civic.com/oauth/auth",
15
- token: "https://auth-dev.civic.com/oauth/token",
16
- jwks: "https://auth-dev.civic.com/oauth/jwks",
17
- userinfo: "https://auth-dev.civic.com/oauth/me",
18
- });
19
- });
20
- });
21
- describe("getIssuerVariations", () => {
22
- it("should return an array of variations of the issuer", () => {
23
- const issuer = "https://example.com";
24
- const variations = getIssuerVariations(issuer);
25
- expect(variations).toEqual(["https://example.com", "https://example.com/"]);
26
- });
27
- });
28
- describe("displayModeFromState", () => {
29
- it("should return the display mode from the state", () => {
30
- const state = "state";
31
- const displayMode = "redirect";
32
- const result = displayModeFromState(state, displayMode);
33
- expect(result).toEqual(displayMode);
34
- });
35
- it("should extract the display mode correctly from state", () => {
36
- const state = "eyJ1dWlkIjoiMGY0NWU5YWItY2U1Ni00OWZiLTlkYmUtOGQ3ZmM3YTI3NDFhIiwiZGlzcGxheU1vZGUiOiJpZnJhbWUiLCJzZXJ2ZXJUb2tlbkV4Y2hhbmdlIjp0cnVlfQ";
37
- const displayMode = "redirect";
38
- const result = displayModeFromState(state, displayMode);
39
- expect(result).toEqual("iframe");
40
- });
41
- });
42
- describe("generateState", () => {
43
- it("should generate a state string", () => {
44
- const state = generateState("redirect");
45
- expect(state).toBeTruthy();
46
- expect(state).toHaveLength(96);
47
- });
48
- it('should generate a state string with "serverTokenExchange" key', () => {
49
- const state = generateState("redirect", true);
50
- expect(state).toBeTruthy();
51
- const decoded = atob(state);
52
- expect(JSON.parse(decoded)).toHaveProperty("serverTokenExchange", true);
53
- });
54
- });
55
- //# sourceMappingURL=oauth.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth.test.js","sourceRoot":"","sources":["../../../../test/unit/lib/oauth.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getOauthEndpoints,\n getIssuerVariations,\n displayModeFromState,\n generateState,\n} from \"@/lib/oauth.js\";\nimport { describe, it, expect, vi, beforeEach, afterEach } from \"vitest\";\nimport { oauthWellKnownResponse } from \"../../support/fixtures.js\";\n\ndescribe(\"getOauthEndpoints\", () => {\n afterEach(vi.clearAllMocks);\n\n beforeEach(() => {\n global.fetch = vi.fn().mockResolvedValue({\n json: vi.fn().mockResolvedValue(oauthWellKnownResponse),\n });\n });\n\n it(\"should translate the response from the auth server into an endpoints object\", async () => {\n const response = await getOauthEndpoints(\"https://example.com\");\n expect(response).toEqual({\n auth: \"https://auth-dev.civic.com/oauth/auth\",\n token: \"https://auth-dev.civic.com/oauth/token\",\n jwks: \"https://auth-dev.civic.com/oauth/jwks\",\n userinfo: \"https://auth-dev.civic.com/oauth/me\",\n });\n });\n});\n\ndescribe(\"getIssuerVariations\", () => {\n it(\"should return an array of variations of the issuer\", () => {\n const issuer = \"https://example.com\";\n const variations = getIssuerVariations(issuer);\n expect(variations).toEqual([\"https://example.com\", \"https://example.com/\"]);\n });\n});\n\ndescribe(\"displayModeFromState\", () => {\n it(\"should return the display mode from the state\", () => {\n const state = \"state\";\n const displayMode = \"redirect\";\n const result = displayModeFromState(state, displayMode);\n\n expect(result).toEqual(displayMode);\n });\n\n it(\"should extract the display mode correctly from state\", () => {\n const state =\n \"eyJ1dWlkIjoiMGY0NWU5YWItY2U1Ni00OWZiLTlkYmUtOGQ3ZmM3YTI3NDFhIiwiZGlzcGxheU1vZGUiOiJpZnJhbWUiLCJzZXJ2ZXJUb2tlbkV4Y2hhbmdlIjp0cnVlfQ\";\n const displayMode = \"redirect\";\n const result = displayModeFromState(state, displayMode);\n\n expect(result).toEqual(\"iframe\");\n });\n});\n\ndescribe(\"generateState\", () => {\n it(\"should generate a state string\", () => {\n const state = generateState(\"redirect\");\n\n expect(state).toBeTruthy();\n expect(state).toHaveLength(96);\n });\n\n it('should generate a state string with \"serverTokenExchange\" key', () => {\n const state = generateState(\"redirect\", true);\n\n expect(state).toBeTruthy();\n const decoded = atob(state);\n expect(JSON.parse(decoded)).toHaveProperty(\"serverTokenExchange\", true);\n });\n});\n"]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=logger.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.test.d.ts","sourceRoot":"","sources":["../../../test/unit/logger.test.ts"],"names":[],"mappings":""}