@civic/auth 0.0.1-beta.28 → 0.0.1-beta.29

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 (261) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-lint.log +14 -0
  3. package/.turbo/turbo-test.log +1678 -0
  4. package/civic-auth-0.0.1-beta.15.tgz +0 -0
  5. package/civic-auth-0.0.1-beta.17.tgz +0 -0
  6. package/dist/AuthProvider-BYZ8w92b.d.mts +15 -0
  7. package/dist/AuthProvider-BgOwv9h8.d.ts +15 -0
  8. package/dist/AuthProvider-Bj_Prt1x.d.ts +21 -0
  9. package/dist/AuthProvider-DUAoX4G9.d.mts +21 -0
  10. package/dist/UserProvider-BA2uflVB.d.ts +16 -0
  11. package/dist/UserProvider-Bl3j1PUO.d.mts +16 -0
  12. package/dist/UserProvider-CMLaYOUD.d.ts +16 -0
  13. package/dist/UserProvider-Cbm8MZkJ.d.mts +16 -0
  14. package/dist/chunk-4PLCDPEN.mjs +599 -0
  15. package/dist/chunk-4PLCDPEN.mjs.map +1 -0
  16. package/dist/chunk-5UQQYXCX.js +1 -0
  17. package/dist/chunk-5UQQYXCX.js.map +1 -0
  18. package/dist/chunk-63YGK3A7.mjs +223 -0
  19. package/dist/chunk-63YGK3A7.mjs.map +1 -0
  20. package/dist/chunk-6RFRDWIP.js +223 -0
  21. package/dist/chunk-6RFRDWIP.js.map +1 -0
  22. package/dist/chunk-7K3QN2AT.js +599 -0
  23. package/dist/chunk-7K3QN2AT.js.map +1 -0
  24. package/dist/chunk-AM2Y662I.js +601 -0
  25. package/dist/chunk-AM2Y662I.js.map +1 -0
  26. package/dist/chunk-AP4627CS.mjs +223 -0
  27. package/dist/chunk-AP4627CS.mjs.map +1 -0
  28. package/dist/chunk-CRTRMMJ7.js +59 -0
  29. package/dist/chunk-CRTRMMJ7.js.map +1 -0
  30. package/dist/chunk-CTVJJBBA.js +118 -0
  31. package/dist/chunk-CTVJJBBA.js.map +1 -0
  32. package/dist/chunk-EKLYHP2D.mjs +711 -0
  33. package/dist/chunk-EKLYHP2D.mjs.map +1 -0
  34. package/dist/chunk-FHRZSX3C.js +710 -0
  35. package/dist/chunk-FHRZSX3C.js.map +1 -0
  36. package/dist/chunk-GB3H3I47.js +711 -0
  37. package/dist/chunk-GB3H3I47.js.map +1 -0
  38. package/dist/chunk-JDZPCA3P.js +173 -0
  39. package/dist/chunk-JDZPCA3P.js.map +1 -0
  40. package/dist/chunk-JEOPLLWO.js +223 -0
  41. package/dist/chunk-JEOPLLWO.js.map +1 -0
  42. package/dist/chunk-MK7557NR.mjs +118 -0
  43. package/dist/chunk-MK7557NR.mjs.map +1 -0
  44. package/dist/chunk-NLRREFOX.mjs +710 -0
  45. package/dist/chunk-NLRREFOX.mjs.map +1 -0
  46. package/dist/chunk-O3WGNLRO.mjs +173 -0
  47. package/dist/chunk-O3WGNLRO.mjs.map +1 -0
  48. package/dist/chunk-OXXUQ36U.mjs +283 -0
  49. package/dist/chunk-OXXUQ36U.mjs.map +1 -0
  50. package/dist/chunk-PMJAV4JJ.mjs +1 -0
  51. package/dist/chunk-PMJAV4JJ.mjs.map +1 -0
  52. package/dist/chunk-Q7DSPTUG.mjs +601 -0
  53. package/dist/chunk-Q7DSPTUG.mjs.map +1 -0
  54. package/dist/chunk-RGHW4PYM.mjs +59 -0
  55. package/dist/chunk-RGHW4PYM.mjs.map +1 -0
  56. package/dist/chunk-TH6FI2XI.js +283 -0
  57. package/dist/chunk-TH6FI2XI.js.map +1 -0
  58. package/dist/cjs/src/browser/storage.d.ts +2 -2
  59. package/dist/cjs/src/browser/storage.d.ts.map +1 -1
  60. package/dist/cjs/src/browser/storage.js +3 -3
  61. package/dist/cjs/src/browser/storage.js.map +1 -1
  62. package/dist/cjs/src/nextjs/GetUser.d.ts +1 -1
  63. package/dist/cjs/src/nextjs/GetUser.d.ts.map +1 -1
  64. package/dist/cjs/src/nextjs/GetUser.js +3 -3
  65. package/dist/cjs/src/nextjs/GetUser.js.map +1 -1
  66. package/dist/cjs/src/nextjs/config.d.ts.map +1 -1
  67. package/dist/cjs/src/nextjs/config.js +0 -2
  68. package/dist/cjs/src/nextjs/config.js.map +1 -1
  69. package/dist/cjs/src/nextjs/cookies.d.ts +4 -4
  70. package/dist/cjs/src/nextjs/cookies.d.ts.map +1 -1
  71. package/dist/cjs/src/nextjs/cookies.js +14 -11
  72. package/dist/cjs/src/nextjs/cookies.js.map +1 -1
  73. package/dist/cjs/src/nextjs/routeHandler.d.ts.map +1 -1
  74. package/dist/cjs/src/nextjs/routeHandler.js +1 -5
  75. package/dist/cjs/src/nextjs/routeHandler.js.map +1 -1
  76. package/dist/cjs/src/reactjs/hooks/index.d.ts +0 -1
  77. package/dist/cjs/src/reactjs/hooks/index.d.ts.map +1 -1
  78. package/dist/cjs/src/reactjs/hooks/index.js +1 -3
  79. package/dist/cjs/src/reactjs/hooks/index.js.map +1 -1
  80. package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts.map +1 -1
  81. package/dist/cjs/src/server/ServerAuthenticationResolver.js +2 -7
  82. package/dist/cjs/src/server/ServerAuthenticationResolver.js.map +1 -1
  83. package/dist/cjs/src/server/login.d.ts +1 -1
  84. package/dist/cjs/src/server/login.d.ts.map +1 -1
  85. package/dist/cjs/src/server/login.js +2 -2
  86. package/dist/cjs/src/server/login.js.map +1 -1
  87. package/dist/cjs/src/services/AuthenticationService.d.ts.map +1 -1
  88. package/dist/cjs/src/services/AuthenticationService.js +6 -16
  89. package/dist/cjs/src/services/AuthenticationService.js.map +1 -1
  90. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts.map +1 -1
  91. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js +0 -2
  92. package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js.map +1 -1
  93. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -1
  94. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js +2 -6
  95. package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js.map +1 -1
  96. package/dist/cjs/src/shared/lib/UserSession.d.ts +4 -4
  97. package/dist/cjs/src/shared/lib/UserSession.d.ts.map +1 -1
  98. package/dist/cjs/src/shared/lib/UserSession.js +4 -4
  99. package/dist/cjs/src/shared/lib/UserSession.js.map +1 -1
  100. package/dist/cjs/src/shared/lib/session.js +1 -1
  101. package/dist/cjs/src/shared/lib/session.js.map +1 -1
  102. package/dist/cjs/src/shared/lib/storage.d.ts +2 -2
  103. package/dist/cjs/src/shared/lib/storage.d.ts.map +1 -1
  104. package/dist/cjs/src/shared/lib/storage.js.map +1 -1
  105. package/dist/cjs/src/shared/lib/util.d.ts +4 -4
  106. package/dist/cjs/src/shared/lib/util.d.ts.map +1 -1
  107. package/dist/cjs/src/shared/lib/util.js +16 -15
  108. package/dist/cjs/src/shared/lib/util.js.map +1 -1
  109. package/dist/cjs/src/types.d.ts +2 -2
  110. package/dist/cjs/src/types.d.ts.map +1 -1
  111. package/dist/cjs/src/types.js.map +1 -1
  112. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  113. package/dist/esm/src/browser/storage.d.ts +2 -2
  114. package/dist/esm/src/browser/storage.d.ts.map +1 -1
  115. package/dist/esm/src/browser/storage.js +3 -3
  116. package/dist/esm/src/browser/storage.js.map +1 -1
  117. package/dist/esm/src/nextjs/GetUser.d.ts +1 -1
  118. package/dist/esm/src/nextjs/GetUser.d.ts.map +1 -1
  119. package/dist/esm/src/nextjs/GetUser.js +3 -3
  120. package/dist/esm/src/nextjs/GetUser.js.map +1 -1
  121. package/dist/esm/src/nextjs/config.d.ts.map +1 -1
  122. package/dist/esm/src/nextjs/config.js +0 -2
  123. package/dist/esm/src/nextjs/config.js.map +1 -1
  124. package/dist/esm/src/nextjs/cookies.d.ts +4 -4
  125. package/dist/esm/src/nextjs/cookies.d.ts.map +1 -1
  126. package/dist/esm/src/nextjs/cookies.js +14 -11
  127. package/dist/esm/src/nextjs/cookies.js.map +1 -1
  128. package/dist/esm/src/nextjs/routeHandler.d.ts.map +1 -1
  129. package/dist/esm/src/nextjs/routeHandler.js +1 -5
  130. package/dist/esm/src/nextjs/routeHandler.js.map +1 -1
  131. package/dist/esm/src/reactjs/hooks/index.d.ts +0 -1
  132. package/dist/esm/src/reactjs/hooks/index.d.ts.map +1 -1
  133. package/dist/esm/src/reactjs/hooks/index.js +0 -1
  134. package/dist/esm/src/reactjs/hooks/index.js.map +1 -1
  135. package/dist/esm/src/server/ServerAuthenticationResolver.d.ts.map +1 -1
  136. package/dist/esm/src/server/ServerAuthenticationResolver.js +2 -7
  137. package/dist/esm/src/server/ServerAuthenticationResolver.js.map +1 -1
  138. package/dist/esm/src/server/login.d.ts +1 -1
  139. package/dist/esm/src/server/login.d.ts.map +1 -1
  140. package/dist/esm/src/server/login.js +2 -2
  141. package/dist/esm/src/server/login.js.map +1 -1
  142. package/dist/esm/src/services/AuthenticationService.d.ts.map +1 -1
  143. package/dist/esm/src/services/AuthenticationService.js +6 -16
  144. package/dist/esm/src/services/AuthenticationService.js.map +1 -1
  145. package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts.map +1 -1
  146. package/dist/esm/src/shared/components/CivicAuthIframeContainer.js +0 -2
  147. package/dist/esm/src/shared/components/CivicAuthIframeContainer.js.map +1 -1
  148. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -1
  149. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js +2 -6
  150. package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js.map +1 -1
  151. package/dist/esm/src/shared/lib/UserSession.d.ts +4 -4
  152. package/dist/esm/src/shared/lib/UserSession.d.ts.map +1 -1
  153. package/dist/esm/src/shared/lib/UserSession.js +4 -4
  154. package/dist/esm/src/shared/lib/UserSession.js.map +1 -1
  155. package/dist/esm/src/shared/lib/session.js +1 -1
  156. package/dist/esm/src/shared/lib/session.js.map +1 -1
  157. package/dist/esm/src/shared/lib/storage.d.ts +2 -2
  158. package/dist/esm/src/shared/lib/storage.d.ts.map +1 -1
  159. package/dist/esm/src/shared/lib/storage.js.map +1 -1
  160. package/dist/esm/src/shared/lib/util.d.ts +4 -4
  161. package/dist/esm/src/shared/lib/util.d.ts.map +1 -1
  162. package/dist/esm/src/shared/lib/util.js +16 -15
  163. package/dist/esm/src/shared/lib/util.js.map +1 -1
  164. package/dist/esm/src/types.d.ts +2 -2
  165. package/dist/esm/src/types.d.ts.map +1 -1
  166. package/dist/esm/src/types.js.map +1 -1
  167. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  168. package/dist/index.css +340 -0
  169. package/dist/index.css.map +1 -0
  170. package/dist/index.d.mts +5 -0
  171. package/dist/index.d.ts +5 -0
  172. package/dist/index.js +3 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/index.mjs +3 -0
  175. package/dist/index.mjs.map +1 -0
  176. package/dist/nextjs/client.css +340 -0
  177. package/dist/nextjs/client.css.map +1 -0
  178. package/dist/nextjs/client.d.mts +10 -0
  179. package/dist/nextjs/client.d.ts +10 -0
  180. package/dist/nextjs/client.js +185 -0
  181. package/dist/nextjs/client.js.map +1 -0
  182. package/dist/nextjs/client.mjs +185 -0
  183. package/dist/nextjs/client.mjs.map +1 -0
  184. package/dist/nextjs.d.mts +267 -0
  185. package/dist/nextjs.d.ts +267 -0
  186. package/dist/nextjs.js +315 -0
  187. package/dist/nextjs.js.map +1 -0
  188. package/dist/nextjs.mjs +315 -0
  189. package/dist/nextjs.mjs.map +1 -0
  190. package/dist/react.d.mts +65 -0
  191. package/dist/react.d.ts +65 -0
  192. package/dist/react.js +226 -0
  193. package/dist/react.js.map +1 -0
  194. package/dist/react.mjs +226 -0
  195. package/dist/react.mjs.map +1 -0
  196. package/dist/server.d.mts +35 -0
  197. package/dist/server.d.ts +35 -0
  198. package/dist/server.js +20 -0
  199. package/dist/server.js.map +1 -0
  200. package/dist/server.mjs +20 -0
  201. package/dist/server.mjs.map +1 -0
  202. package/dist/src/shared/components/LoadingIcon.d.ts.map +1 -1
  203. package/dist/src/shared/components/LoadingIcon.js +0 -6
  204. package/dist/src/shared/components/LoadingIcon.js.map +1 -1
  205. package/dist/storage-ANmRwpZ3.d.ts +25 -0
  206. package/dist/storage-B2eAQNdv.d.ts +25 -0
  207. package/dist/storage-BJPUpxhm.d.mts +25 -0
  208. package/dist/storage-BJyqsZwC.d.mts +25 -0
  209. package/dist/tsconfig.tsbuildinfo +1 -1
  210. package/dist/types-Bqm9OCZN.d.mts +22 -0
  211. package/dist/types-Bqm9OCZN.d.ts +22 -0
  212. package/dist/types-BxAubCqO.d.mts +58 -0
  213. package/dist/types-BxAubCqO.d.ts +58 -0
  214. package/dist/types-DOfl9w7j.d.mts +23 -0
  215. package/dist/types-DOfl9w7j.d.ts +23 -0
  216. package/dist/types-HdCjGldB.d.mts +58 -0
  217. package/dist/types-HdCjGldB.d.ts +58 -0
  218. package/package.json +1 -1
  219. package/src/browser/storage.ts +3 -3
  220. package/src/nextjs/GetUser.ts +3 -3
  221. package/src/nextjs/config.ts +0 -2
  222. package/src/nextjs/cookies.ts +14 -18
  223. package/src/nextjs/routeHandler.ts +1 -5
  224. package/src/reactjs/hooks/index.ts +0 -1
  225. package/src/server/ServerAuthenticationResolver.ts +2 -7
  226. package/src/server/login.ts +2 -2
  227. package/src/services/AuthenticationService.ts +6 -16
  228. package/src/shared/components/CivicAuthIframeContainer.tsx +0 -4
  229. package/src/shared/lib/GenericAuthenticationRefresher.ts +3 -8
  230. package/src/shared/lib/UserSession.ts +6 -6
  231. package/src/shared/lib/session.ts +1 -1
  232. package/src/shared/lib/storage.ts +2 -2
  233. package/src/shared/lib/util.ts +21 -18
  234. package/src/types.ts +2 -2
  235. package/test/unit/nextjs/getUser.test.ts +8 -8
  236. package/test/unit/publicApi/__snapshots__/apiSnapshot.test.ts.snap +0 -7
  237. package/test/unit/server/login.test.ts +20 -18
  238. package/test/unit/server/session.test.ts +4 -4
  239. package/test/unit/services/AuthenticationService.test.ts +3 -3
  240. package/test/unit/services/ServerAuthenticationResolver.test.ts +11 -6
  241. package/test/unit/shared/GenericAuthenticationRefresher.test.ts +4 -4
  242. package/test/unit/shared/UserSession.test.ts +6 -6
  243. package/test/unit/shared/storage.test.ts +6 -6
  244. package/dist/cjs/src/nextjs/client/index.d.ts +0 -2
  245. package/dist/cjs/src/nextjs/client/index.d.ts.map +0 -1
  246. package/dist/cjs/src/nextjs/client/index.js +0 -6
  247. package/dist/cjs/src/nextjs/client/index.js.map +0 -1
  248. package/dist/cjs/src/styles.css +0 -387
  249. package/dist/esm/src/nextjs/client/index.d.ts +0 -2
  250. package/dist/esm/src/nextjs/client/index.d.ts.map +0 -1
  251. package/dist/esm/src/nextjs/client/index.js +0 -2
  252. package/dist/esm/src/nextjs/client/index.js.map +0 -1
  253. package/dist/esm/src/styles.css +0 -387
  254. package/dist/src/nextjs/client/index.d.ts +0 -2
  255. package/dist/src/nextjs/client/index.d.ts.map +0 -1
  256. package/dist/src/nextjs/client/index.js +0 -2
  257. package/dist/src/nextjs/client/index.js.map +0 -1
  258. package/dist/test/unit/nextjs/routeHandler.test.d.ts +0 -2
  259. package/dist/test/unit/nextjs/routeHandler.test.d.ts.map +0 -1
  260. package/dist/test/unit/nextjs/routeHandler.test.js +0 -271
  261. package/dist/test/unit/nextjs/routeHandler.test.js.map +0 -1
@@ -1,387 +0,0 @@
1
- *, ::before, ::after {
2
- --tw-border-spacing-x: 0;
3
- --tw-border-spacing-y: 0;
4
- --tw-translate-x: 0;
5
- --tw-translate-y: 0;
6
- --tw-rotate: 0;
7
- --tw-skew-x: 0;
8
- --tw-skew-y: 0;
9
- --tw-scale-x: 1;
10
- --tw-scale-y: 1;
11
- --tw-pan-x: ;
12
- --tw-pan-y: ;
13
- --tw-pinch-zoom: ;
14
- --tw-scroll-snap-strictness: proximity;
15
- --tw-gradient-from-position: ;
16
- --tw-gradient-via-position: ;
17
- --tw-gradient-to-position: ;
18
- --tw-ordinal: ;
19
- --tw-slashed-zero: ;
20
- --tw-numeric-figure: ;
21
- --tw-numeric-spacing: ;
22
- --tw-numeric-fraction: ;
23
- --tw-ring-inset: ;
24
- --tw-ring-offset-width: 0px;
25
- --tw-ring-offset-color: #fff;
26
- --tw-ring-color: rgb(59 130 246 / 0.5);
27
- --tw-ring-offset-shadow: 0 0 #0000;
28
- --tw-ring-shadow: 0 0 #0000;
29
- --tw-shadow: 0 0 #0000;
30
- --tw-shadow-colored: 0 0 #0000;
31
- --tw-blur: ;
32
- --tw-brightness: ;
33
- --tw-contrast: ;
34
- --tw-grayscale: ;
35
- --tw-hue-rotate: ;
36
- --tw-invert: ;
37
- --tw-saturate: ;
38
- --tw-sepia: ;
39
- --tw-drop-shadow: ;
40
- --tw-backdrop-blur: ;
41
- --tw-backdrop-brightness: ;
42
- --tw-backdrop-contrast: ;
43
- --tw-backdrop-grayscale: ;
44
- --tw-backdrop-hue-rotate: ;
45
- --tw-backdrop-invert: ;
46
- --tw-backdrop-opacity: ;
47
- --tw-backdrop-saturate: ;
48
- --tw-backdrop-sepia: ;
49
- --tw-contain-size: ;
50
- --tw-contain-layout: ;
51
- --tw-contain-paint: ;
52
- --tw-contain-style:
53
- }
54
-
55
- ::backdrop {
56
- --tw-border-spacing-x: 0;
57
- --tw-border-spacing-y: 0;
58
- --tw-translate-x: 0;
59
- --tw-translate-y: 0;
60
- --tw-rotate: 0;
61
- --tw-skew-x: 0;
62
- --tw-skew-y: 0;
63
- --tw-scale-x: 1;
64
- --tw-scale-y: 1;
65
- --tw-pan-x: ;
66
- --tw-pan-y: ;
67
- --tw-pinch-zoom: ;
68
- --tw-scroll-snap-strictness: proximity;
69
- --tw-gradient-from-position: ;
70
- --tw-gradient-via-position: ;
71
- --tw-gradient-to-position: ;
72
- --tw-ordinal: ;
73
- --tw-slashed-zero: ;
74
- --tw-numeric-figure: ;
75
- --tw-numeric-spacing: ;
76
- --tw-numeric-fraction: ;
77
- --tw-ring-inset: ;
78
- --tw-ring-offset-width: 0px;
79
- --tw-ring-offset-color: #fff;
80
- --tw-ring-color: rgb(59 130 246 / 0.5);
81
- --tw-ring-offset-shadow: 0 0 #0000;
82
- --tw-ring-shadow: 0 0 #0000;
83
- --tw-shadow: 0 0 #0000;
84
- --tw-shadow-colored: 0 0 #0000;
85
- --tw-blur: ;
86
- --tw-brightness: ;
87
- --tw-contrast: ;
88
- --tw-grayscale: ;
89
- --tw-hue-rotate: ;
90
- --tw-invert: ;
91
- --tw-saturate: ;
92
- --tw-sepia: ;
93
- --tw-drop-shadow: ;
94
- --tw-backdrop-blur: ;
95
- --tw-backdrop-brightness: ;
96
- --tw-backdrop-contrast: ;
97
- --tw-backdrop-grayscale: ;
98
- --tw-backdrop-hue-rotate: ;
99
- --tw-backdrop-invert: ;
100
- --tw-backdrop-opacity: ;
101
- --tw-backdrop-saturate: ;
102
- --tw-backdrop-sepia: ;
103
- --tw-contain-size: ;
104
- --tw-contain-layout: ;
105
- --tw-contain-paint: ;
106
- --tw-contain-style:
107
- }
108
-
109
- .cac-sr-only {
110
- position: absolute;
111
- width: 1px;
112
- height: 1px;
113
- padding: 0;
114
- margin: -1px;
115
- overflow: hidden;
116
- clip: rect(0, 0, 0, 0);
117
- white-space: nowrap;
118
- border-width: 0
119
- }
120
-
121
- .cac-absolute {
122
- position: absolute
123
- }
124
-
125
- .cac-relative {
126
- position: relative
127
- }
128
-
129
- .cac-inset-0 {
130
- inset: 0px
131
- }
132
-
133
- .cac-left-0 {
134
- left: 0px
135
- }
136
-
137
- .cac-right-0 {
138
- right: 0px
139
- }
140
-
141
- .cac-right-4 {
142
- right: 1rem
143
- }
144
-
145
- .cac-top-0 {
146
- top: 0px
147
- }
148
-
149
- .cac-top-4 {
150
- top: 1rem
151
- }
152
-
153
- .cac-z-50 {
154
- z-index: 50
155
- }
156
-
157
- .cac-mt-2 {
158
- margin-top: 0.5rem
159
- }
160
-
161
- .cac-block {
162
- display: block
163
- }
164
-
165
- .cac-inline {
166
- display: inline
167
- }
168
-
169
- .cac-flex {
170
- display: flex
171
- }
172
-
173
- .cac-hidden {
174
- display: none
175
- }
176
-
177
- .cac-h-10 {
178
- height: 2.5rem
179
- }
180
-
181
- .cac-h-8 {
182
- height: 2rem
183
- }
184
-
185
- .cac-h-\[26rem\] {
186
- height: 26rem
187
- }
188
-
189
- .cac-h-full {
190
- height: 100%
191
- }
192
-
193
- .cac-h-screen {
194
- height: 100vh
195
- }
196
-
197
- .cac-w-10 {
198
- width: 2.5rem
199
- }
200
-
201
- .cac-w-8 {
202
- width: 2rem
203
- }
204
-
205
- .cac-w-full {
206
- width: 100%
207
- }
208
-
209
- .cac-w-screen {
210
- width: 100vw
211
- }
212
-
213
- .cac-min-w-72 {
214
- min-width: 18rem
215
- }
216
-
217
- .cac-shrink-0 {
218
- flex-shrink: 0
219
- }
220
-
221
- @keyframes cac-spin {
222
- to {
223
- transform: rotate(360deg)
224
- }
225
- }
226
-
227
- .cac-animate-spin {
228
- animation: cac-spin 1s linear infinite
229
- }
230
-
231
- .cac-cursor-pointer {
232
- cursor: pointer
233
- }
234
-
235
- .cac-items-center {
236
- align-items: center
237
- }
238
-
239
- .cac-justify-center {
240
- justify-content: center
241
- }
242
-
243
- .cac-justify-between {
244
- justify-content: space-between
245
- }
246
-
247
- .cac-gap-2 {
248
- gap: 0.5rem
249
- }
250
-
251
- .cac-overflow-hidden {
252
- overflow: hidden
253
- }
254
-
255
- .cac-rounded-3xl {
256
- border-radius: 1.5rem
257
- }
258
-
259
- .cac-rounded-full {
260
- border-radius: 9999px
261
- }
262
-
263
- .cac-rounded-lg {
264
- border-radius: 0.5rem
265
- }
266
-
267
- .cac-border {
268
- border-width: 1px
269
- }
270
-
271
- .cac-border-none {
272
- border-style: none
273
- }
274
-
275
- .cac-border-neutral-500 {
276
- --tw-border-opacity: 1;
277
- border-color: rgb(115 115 115 / var(--tw-border-opacity))
278
- }
279
-
280
- .cac-bg-neutral-950 {
281
- --tw-bg-opacity: 1;
282
- background-color: rgb(10 10 10 / var(--tw-bg-opacity))
283
- }
284
-
285
- .cac-bg-transparent {
286
- background-color: transparent
287
- }
288
-
289
- .cac-bg-white {
290
- --tw-bg-opacity: 1;
291
- background-color: rgb(255 255 255 / var(--tw-bg-opacity))
292
- }
293
-
294
- .cac-bg-opacity-50 {
295
- --tw-bg-opacity: 0.5
296
- }
297
-
298
- .cac-fill-neutral-600 {
299
- fill: #525252
300
- }
301
-
302
- .cac-object-cover {
303
- -o-object-fit: cover;
304
- object-fit: cover
305
- }
306
-
307
- .cac-p-1 {
308
- padding: 0.25rem
309
- }
310
-
311
- .cac-p-2 {
312
- padding: 0.5rem
313
- }
314
-
315
- .cac-px-3 {
316
- padding-left: 0.75rem;
317
- padding-right: 0.75rem
318
- }
319
-
320
- .cac-px-4 {
321
- padding-left: 1rem;
322
- padding-right: 1rem
323
- }
324
-
325
- .cac-py-2 {
326
- padding-top: 0.5rem;
327
- padding-bottom: 0.5rem
328
- }
329
-
330
- .cac-text-neutral-200 {
331
- --tw-text-opacity: 1;
332
- color: rgb(229 229 229 / var(--tw-text-opacity))
333
- }
334
-
335
- .cac-text-neutral-400 {
336
- --tw-text-opacity: 1;
337
- color: rgb(163 163 163 / var(--tw-text-opacity))
338
- }
339
-
340
- .cac-text-neutral-500 {
341
- --tw-text-opacity: 1;
342
- color: rgb(115 115 115 / var(--tw-text-opacity))
343
- }
344
-
345
- .cac-shadow-lg {
346
- --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
347
- --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
348
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
349
- }
350
-
351
- .cac-shadow-xl {
352
- --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
353
- --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
354
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
355
- }
356
-
357
- .cac-transition-colors {
358
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
359
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
360
- transition-duration: 150ms
361
- }
362
-
363
- .hover\:cac-bg-neutral-200:hover {
364
- --tw-bg-opacity: 1;
365
- background-color: rgb(229 229 229 / var(--tw-bg-opacity))
366
- }
367
-
368
- .hover\:cac-bg-opacity-50:hover {
369
- --tw-bg-opacity: 0.5
370
- }
371
-
372
- @media (min-width: 640px) {
373
- .sm\:cac-p-6 {
374
- padding: 1.5rem
375
- }
376
- }
377
-
378
- @media (prefers-color-scheme: dark) {
379
- .dark\:cac-fill-neutral-300 {
380
- fill: #d4d4d4
381
- }
382
-
383
- .dark\:cac-text-neutral-600 {
384
- --tw-text-opacity: 1;
385
- color: rgb(82 82 82 / var(--tw-text-opacity))
386
- }
387
- }
@@ -1,2 +0,0 @@
1
- export { CivicNextAuthProvider as CivicAuthProvider, type NextCivicAuthProviderProps as AuthProviderProps, } from "@/nextjs/providers/NextAuthProvider.jsx";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/nextjs/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,IAAI,iBAAiB,EAC1C,KAAK,0BAA0B,IAAI,iBAAiB,GACrD,MAAM,yCAAyC,CAAC"}
@@ -1,2 +0,0 @@
1
- export { CivicNextAuthProvider as CivicAuthProvider, } from "@/nextjs/providers/NextAuthProvider.jsx";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/nextjs/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,IAAI,iBAAiB,GAE3C,MAAM,yCAAyC,CAAC","sourcesContent":["export {\n CivicNextAuthProvider as CivicAuthProvider,\n type NextCivicAuthProviderProps as AuthProviderProps,\n} from \"@/nextjs/providers/NextAuthProvider.jsx\";\n"]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=routeHandler.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routeHandler.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/nextjs/routeHandler.test.ts"],"names":[],"mappings":""}
@@ -1,271 +0,0 @@
1
- import { describe, it, expect, beforeEach, vi } from "vitest";
2
- import { NextRequest, NextResponse } from "next/server.js";
3
- import { handler } from "@/nextjs/routeHandler.js";
4
- import { revalidatePath } from "next/cache.js";
5
- import * as logger from "@/lib/logger.js";
6
- import * as login from "@/server/login.js";
7
- import * as session from "@/shared/lib/session.js";
8
- import * as cookies from "@/nextjs/cookies.js";
9
- import * as PKCE from "@/services/PKCE.js";
10
- import { GenericUserSession } from "@/shared/lib/UserSession.js";
11
- import { TOKEN_EXCHANGE_TRIGGER_TEXT } from "@/constants.js";
12
- vi.mock("next/headers.js", () => {
13
- return {
14
- cookies: vi.fn().mockReturnValue({
15
- set: vi.fn(),
16
- get: (name) => {
17
- if (name === "codeVerifier") {
18
- return "test-code-verifier";
19
- }
20
- },
21
- }),
22
- };
23
- });
24
- vi.mock("@/server/login.js");
25
- vi.mock("@/shared/lib/session.js");
26
- vi.mock("@/nextjs/cookies.js");
27
- vi.mock("@/services/PKCE.js");
28
- const mockUser = {
29
- id: "user123",
30
- name: "John Doe",
31
- email: "john@example.com",
32
- picture: "https://example.com/john.jpg",
33
- };
34
- // Mock implementations
35
- vi.mock("next/server.js", () => {
36
- class MockNextResponse {
37
- body;
38
- init;
39
- constructor(body, init) {
40
- this.body = body;
41
- this.init = init;
42
- this.body = body;
43
- this.init = init;
44
- }
45
- headers = {
46
- set: vi.fn(),
47
- };
48
- cookies = {
49
- set: vi.fn(),
50
- get: vi.fn(),
51
- };
52
- json() {
53
- return Promise.resolve({});
54
- }
55
- static json(data, options) {
56
- return {
57
- ...options,
58
- data,
59
- json: () => Promise.resolve(data),
60
- headers: {
61
- set: vi.fn(),
62
- },
63
- cookies: {
64
- set: vi.fn(),
65
- get: vi.fn(),
66
- },
67
- };
68
- }
69
- static redirect(url) {
70
- return {
71
- url,
72
- cookies: {
73
- set: vi.fn(),
74
- get: vi.fn(),
75
- },
76
- };
77
- }
78
- }
79
- return {
80
- NextResponse: MockNextResponse,
81
- NextRequest: vi.fn().mockImplementation((url) => ({
82
- url,
83
- nextUrl: new URL(url),
84
- })),
85
- };
86
- });
87
- vi.mock("next/cache", () => ({
88
- revalidatePath: vi.fn(),
89
- }));
90
- describe("Auth Route Handler", () => {
91
- let mockLogger;
92
- afterEach(vi.clearAllMocks);
93
- beforeEach(() => {
94
- mockLogger = {
95
- error: vi.fn(),
96
- info: vi.fn(),
97
- warn: vi.fn(),
98
- debug: vi.fn(),
99
- };
100
- vi.spyOn(logger.loggers.nextjs.handlers.auth, "debug").mockImplementation((...args) => mockLogger.debug(...args));
101
- vi.spyOn(logger.loggers.nextjs.handlers.auth, "info").mockImplementation((...args) => mockLogger.info(...args));
102
- vi.spyOn(logger.loggers.nextjs.handlers.auth, "warn").mockImplementation((...args) => mockLogger.warn(...args));
103
- vi.spyOn(logger.loggers.nextjs.handlers.auth, "error").mockImplementation((...args) => mockLogger.error(...args));
104
- });
105
- beforeEach(() => {
106
- vi.clearAllMocks();
107
- vi.stubEnv("_civic_auth_client_id", "test-client-id");
108
- vi.spyOn(login, "resolveOAuthAccessCode").mockResolvedValue({});
109
- vi.spyOn(session, "getUser").mockResolvedValue(mockUser);
110
- vi.spyOn(GenericUserSession.prototype, "set");
111
- });
112
- describe("Challenge Handler", () => {
113
- beforeEach(() => {
114
- vi.spyOn(PKCE.GenericPublicClientPKCEProducer.prototype, "getCodeChallenge").mockResolvedValue("test-code-challenge");
115
- });
116
- it("should handle challenge request", async () => {
117
- const mockRequest = new NextRequest("https://example.com/api/auth/challenge");
118
- const routeHandler = handler();
119
- const response = await routeHandler(mockRequest);
120
- expect(response.json()).resolves.toEqual({
121
- status: "success",
122
- challenge: "test-code-challenge",
123
- });
124
- });
125
- });
126
- describe("Callback Handler", () => {
127
- let mockRequest;
128
- let routeHandler;
129
- beforeAll(() => {
130
- routeHandler = handler();
131
- });
132
- it("should handle missing parameters", async () => {
133
- mockRequest = new NextRequest("https://example.com/api/auth/callback");
134
- mockRequest.cookies = {
135
- get: (cookieName) => cookieName === "code_verifier" ? "test-code-verifier" : undefined,
136
- };
137
- const response = await routeHandler(mockRequest);
138
- expect(response.json()).resolves.toEqual({
139
- error: "Bad parameters",
140
- });
141
- expect(response.status).toBe(400);
142
- });
143
- describe("with all parameters passed in", () => {
144
- beforeAll(() => {
145
- mockRequest = new NextRequest("https://example.com/api/auth/callback?code=123&state=testState&appUrl=https://example.com");
146
- mockRequest.cookies = {
147
- get: (cookieName) => cookieName === "code_verifier" ? "test-code-verifier" : undefined,
148
- };
149
- });
150
- it("should handle error when resolving the access code", async () => {
151
- vi.spyOn(login, "resolveOAuthAccessCode").mockRejectedValue("Token exchange failed");
152
- const response = await routeHandler(mockRequest);
153
- expect(response.json()).resolves.toEqual({
154
- error: "Failed to authenticate user",
155
- });
156
- expect(response.status).toBe(401);
157
- });
158
- describe("with code_verifier cookie present on request", () => {
159
- it("should do token exchange", async () => {
160
- const routeHandler = handler();
161
- const response = await routeHandler(mockRequest);
162
- // should have resolved the access code
163
- expect(login.resolveOAuthAccessCode).toHaveBeenCalled();
164
- // verify response data
165
- const responseData = await response.json();
166
- expect(responseData).toEqual({});
167
- // verify user is being set to the session
168
- expect(GenericUserSession.prototype.set).toHaveBeenCalledWith(mockUser);
169
- });
170
- it("should return empty html response", async () => {
171
- const response = await routeHandler(mockRequest);
172
- expect(response.body).toEqual('<html><span style="display:none">serverSideTokenExchangeSuccess</span></html>');
173
- });
174
- });
175
- describe("with no code_verifier cookie present on request", () => {
176
- beforeAll(() => {
177
- mockRequest.cookies = {
178
- get: () => undefined,
179
- };
180
- });
181
- it("should not do token exchange", async () => {
182
- const response = await routeHandler(mockRequest);
183
- // should have resolved the access code
184
- expect(login.resolveOAuthAccessCode).not.toHaveBeenCalled();
185
- // verify response data
186
- const responseData = await response.json();
187
- expect(responseData).toEqual({});
188
- // verify user is being set to the session
189
- expect(GenericUserSession.prototype.set).not.toHaveBeenCalled();
190
- });
191
- describe("in server token-exchange mode", () => {
192
- let state;
193
- beforeEach(() => {
194
- state =
195
- "eyJ1dWlkIjoiMGY0NWU5YWItY2U1Ni00OWZiLTlkYmUtOGQ3ZmM3YTI3NDFhIiwiZGlzcGxheU1vZGUiOiJpZnJhbWUiLCJzZXJ2ZXJUb2tlbkV4Y2hhbmdlIjp0cnVlfQ";
196
- const params = new URLSearchParams({ code: "123", state });
197
- mockRequest = new NextRequest(`https://example.com/api/auth/callback?${params.toString()}`);
198
- mockRequest.cookies = {
199
- get: () => undefined,
200
- };
201
- });
202
- it("should return html with a javascript fetch call to retry the callback token exchange", async () => {
203
- // this state indicates server-side token exchange
204
- const response = await routeHandler(mockRequest);
205
- expect(response.body).toContain(`fetch('/api/auth/callback?code=123&state=${state}&sameDomainServerTokenExchange=true&appUrl=' + appUrl)`);
206
- });
207
- });
208
- describe("in client token-exchange mode", () => {
209
- let state;
210
- beforeEach(() => {
211
- state =
212
- "eyJ1dWlkIjoiNzE5MmI3MmItYzk5ZC00NjhmLTliMDAtMWFhOWVhYjI0YjgxIiwiZGlzcGxheU1vZGUiOiJyZWRpcmVjdCJ9";
213
- const params = new URLSearchParams({ code: "123", state });
214
- mockRequest = new NextRequest(`https://example.com/api/auth/callback?${params.toString()}`);
215
- mockRequest.cookies = {
216
- get: () => undefined,
217
- };
218
- });
219
- it("should return html response indicating a token exchange is required", async () => {
220
- const response = await routeHandler(mockRequest);
221
- expect(response.body).toEqual(`<html><body><span style="display:none">${TOKEN_EXCHANGE_TRIGGER_TEXT}</span></body></html>`);
222
- });
223
- });
224
- });
225
- });
226
- });
227
- describe("Logout Handler", () => {
228
- beforeEach(() => {
229
- vi.spyOn(cookies, "clearAuthCookies");
230
- });
231
- it("should clear auth cookies", async () => {
232
- const mockRequest = new NextRequest("https://example.com/api/auth/logout?redirect=/dashboard");
233
- const routeHandler = handler();
234
- await routeHandler(mockRequest);
235
- expect(cookies.clearAuthCookies).toHaveBeenCalled();
236
- });
237
- it("should handle relative redirect paths", async () => {
238
- const mockRequest = new NextRequest("https://example.com/api/auth/logout?redirect=/dashboard");
239
- const routeHandler = handler();
240
- const response = await routeHandler(mockRequest);
241
- expect(response.url).toBe("https://example.com/dashboard");
242
- expect(revalidatePath).toHaveBeenCalledWith("/dashboard");
243
- });
244
- it("should handle default redirect to home", async () => {
245
- const mockRequest = new NextRequest("https://example.com/api/auth/logout");
246
- const routeHandler = handler();
247
- const response = await routeHandler(mockRequest);
248
- expect(response.url).toBe("https://example.com/");
249
- expect(revalidatePath).toHaveBeenCalledWith("/");
250
- });
251
- it("should handle absolute URLs and preserve the domain", async () => {
252
- const mockRequest = new NextRequest("https://example.com/api/auth/logout?redirect=https://other-domain.com/page");
253
- const routeHandler = handler();
254
- const response = await routeHandler(mockRequest);
255
- // The URL constructor will preserve the absolute URL
256
- expect(response.url).toBe("https://other-domain.com/page");
257
- expect(revalidatePath).toHaveBeenCalledWith("https://other-domain.com/page");
258
- });
259
- it("should handle revalidation failure gracefully", async () => {
260
- const mockRequest = new NextRequest("https://example.com/api/auth/logout?redirect=/dashboard");
261
- vi.mocked(revalidatePath).mockImplementationOnce(() => {
262
- throw new Error("Revalidation failed");
263
- });
264
- const routeHandler = handler();
265
- const response = await routeHandler(mockRequest);
266
- expect(response.url).toBe("https://example.com/dashboard");
267
- expect(mockLogger.warn).toHaveBeenCalled();
268
- });
269
- });
270
- });
271
- //# sourceMappingURL=routeHandler.test.js.map