@civic/auth 0.0.1-beta.2 → 0.0.1-beta.21

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 (84) hide show
  1. package/README.md +26 -0
  2. package/dist/AuthProvider-Bj_Prt1x.d.ts +21 -0
  3. package/dist/AuthProvider-DUAoX4G9.d.mts +21 -0
  4. package/dist/UserProvider-CMLaYOUD.d.ts +16 -0
  5. package/dist/UserProvider-Cbm8MZkJ.d.mts +16 -0
  6. package/dist/chunk-4PLCDPEN.mjs +599 -0
  7. package/dist/chunk-4PLCDPEN.mjs.map +1 -0
  8. package/dist/chunk-5UQQYXCX.js +1 -0
  9. package/dist/chunk-5UQQYXCX.js.map +1 -0
  10. package/dist/chunk-6RFRDWIP.js +223 -0
  11. package/dist/chunk-6RFRDWIP.js.map +1 -0
  12. package/dist/chunk-7K3QN2AT.js +599 -0
  13. package/dist/chunk-7K3QN2AT.js.map +1 -0
  14. package/dist/chunk-AP4627CS.mjs +223 -0
  15. package/dist/chunk-AP4627CS.mjs.map +1 -0
  16. package/dist/chunk-CRTRMMJ7.js.map +1 -1
  17. package/dist/chunk-CTVJJBBA.js +118 -0
  18. package/dist/chunk-CTVJJBBA.js.map +1 -0
  19. package/dist/chunk-FHRZSX3C.js +710 -0
  20. package/dist/chunk-FHRZSX3C.js.map +1 -0
  21. package/dist/chunk-JDZPCA3P.js +173 -0
  22. package/dist/chunk-JDZPCA3P.js.map +1 -0
  23. package/dist/chunk-MK7557NR.mjs +118 -0
  24. package/dist/chunk-MK7557NR.mjs.map +1 -0
  25. package/dist/chunk-NLRREFOX.mjs +710 -0
  26. package/dist/chunk-NLRREFOX.mjs.map +1 -0
  27. package/dist/chunk-O3WGNLRO.mjs +173 -0
  28. package/dist/chunk-O3WGNLRO.mjs.map +1 -0
  29. package/dist/chunk-PMJAV4JJ.mjs +1 -0
  30. package/dist/chunk-PMJAV4JJ.mjs.map +1 -0
  31. package/dist/index.css +63 -70
  32. package/dist/index.css.map +1 -1
  33. package/dist/index.d.mts +3 -1
  34. package/dist/index.d.ts +3 -1
  35. package/dist/index.js +2 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.mjs +1 -0
  38. package/dist/nextjs/client.css +335 -0
  39. package/dist/nextjs/client.css.map +1 -0
  40. package/dist/nextjs/client.d.mts +12 -0
  41. package/dist/nextjs/client.d.ts +12 -0
  42. package/dist/nextjs/client.js +179 -0
  43. package/dist/nextjs/client.js.map +1 -0
  44. package/dist/nextjs/client.mjs +179 -0
  45. package/dist/nextjs/client.mjs.map +1 -0
  46. package/dist/nextjs.d.mts +67 -15
  47. package/dist/nextjs.d.ts +67 -15
  48. package/dist/nextjs.js +158 -180
  49. package/dist/nextjs.js.map +1 -1
  50. package/dist/nextjs.mjs +155 -177
  51. package/dist/nextjs.mjs.map +1 -1
  52. package/dist/react.d.mts +31 -81
  53. package/dist/react.d.ts +31 -81
  54. package/dist/react.js +35 -634
  55. package/dist/react.js.map +1 -1
  56. package/dist/react.mjs +65 -664
  57. package/dist/react.mjs.map +1 -1
  58. package/dist/server.d.mts +14 -34
  59. package/dist/server.d.ts +14 -34
  60. package/dist/server.js +4 -185
  61. package/dist/server.js.map +1 -1
  62. package/dist/server.mjs +10 -191
  63. package/dist/server.mjs.map +1 -1
  64. package/dist/storage-B2eAQNdv.d.ts +25 -0
  65. package/dist/storage-BJPUpxhm.d.mts +25 -0
  66. package/dist/types-Bqm9OCZN.d.mts +22 -0
  67. package/dist/types-Bqm9OCZN.d.ts +22 -0
  68. package/dist/types-HdCjGldB.d.mts +58 -0
  69. package/dist/types-HdCjGldB.d.ts +58 -0
  70. package/package.json +26 -17
  71. package/dist/chunk-5NUJ7LFF.mjs +0 -17
  72. package/dist/chunk-5NUJ7LFF.mjs.map +0 -1
  73. package/dist/chunk-KS7ERXGZ.js +0 -481
  74. package/dist/chunk-KS7ERXGZ.js.map +0 -1
  75. package/dist/chunk-NINRO7GS.js +0 -209
  76. package/dist/chunk-NINRO7GS.js.map +0 -1
  77. package/dist/chunk-NXBKSUKI.mjs +0 -481
  78. package/dist/chunk-NXBKSUKI.mjs.map +0 -1
  79. package/dist/chunk-T7HUHQ3J.mjs +0 -209
  80. package/dist/chunk-T7HUHQ3J.mjs.map +0 -1
  81. package/dist/chunk-WZLC5B4C.js +0 -17
  82. package/dist/chunk-WZLC5B4C.js.map +0 -1
  83. package/dist/index-DoDoIY_K.d.mts +0 -79
  84. package/dist/index-DoDoIY_K.d.ts +0 -79
package/dist/index.d.mts CHANGED
@@ -1,3 +1,5 @@
1
- export { C as Config, D as DisplayMode, E as Endpoints, F as ForwardedTokens, T as Tokens, U as User } from './index-DoDoIY_K.mjs';
1
+ export { A as AuthStorage, C as Config, D as DisplayMode, E as Endpoints, F as ForwardedTokens, T as Tokens, U as User } from './types-HdCjGldB.mjs';
2
+ export { C as CodeVerifier, a as CookieConfig, O as OAuthTokens, T as TokensCookieConfig, U as UserStorage } from './types-Bqm9OCZN.mjs';
3
+ export { U as UserContextType } from './UserProvider-Cbm8MZkJ.mjs';
2
4
  import 'oslo/oauth2';
3
5
  import 'oslo/jwt';
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
- export { C as Config, D as DisplayMode, E as Endpoints, F as ForwardedTokens, T as Tokens, U as User } from './index-DoDoIY_K.js';
1
+ export { A as AuthStorage, C as Config, D as DisplayMode, E as Endpoints, F as ForwardedTokens, T as Tokens, U as User } from './types-HdCjGldB.js';
2
+ export { C as CodeVerifier, a as CookieConfig, O as OAuthTokens, T as TokensCookieConfig, U as UserStorage } from './types-Bqm9OCZN.js';
3
+ export { U as UserContextType } from './UserProvider-CMLaYOUD.js';
2
4
  import 'oslo/oauth2';
3
5
  import 'oslo/jwt';
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- "use strict";require('./chunk-CRTRMMJ7.js');
1
+ "use strict";require('./chunk-5UQQYXCX.js');
2
+ require('./chunk-CRTRMMJ7.js');
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/lucas/dev/civic/civic-auth/packages/civic-auth-client/dist/index.js"],"names":[],"mappings":"AAAA,4CAA4B","file":"/Users/lucas/dev/civic/civic-auth/packages/civic-auth-client/dist/index.js"}
1
+ {"version":3,"sources":["/Users/flippie/civic/repos/civic-auth/packages/civic-auth-client/dist/index.js"],"names":[],"mappings":"AAAA,4CAA4B;AAC5B,+BAA4B","file":"/Users/flippie/civic/repos/civic-auth/packages/civic-auth-client/dist/index.js"}
package/dist/index.mjs CHANGED
@@ -1,2 +1,3 @@
1
+ import "./chunk-PMJAV4JJ.mjs";
1
2
  import "./chunk-RGHW4PYM.mjs";
2
3
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,335 @@
1
+ /* src/styles.css */
2
+ *,
3
+ ::before,
4
+ ::after {
5
+ --tw-border-spacing-x: 0;
6
+ --tw-border-spacing-y: 0;
7
+ --tw-translate-x: 0;
8
+ --tw-translate-y: 0;
9
+ --tw-rotate: 0;
10
+ --tw-skew-x: 0;
11
+ --tw-skew-y: 0;
12
+ --tw-scale-x: 1;
13
+ --tw-scale-y: 1;
14
+ --tw-pan-x: ;
15
+ --tw-pan-y: ;
16
+ --tw-pinch-zoom: ;
17
+ --tw-scroll-snap-strictness: proximity;
18
+ --tw-gradient-from-position: ;
19
+ --tw-gradient-via-position: ;
20
+ --tw-gradient-to-position: ;
21
+ --tw-ordinal: ;
22
+ --tw-slashed-zero: ;
23
+ --tw-numeric-figure: ;
24
+ --tw-numeric-spacing: ;
25
+ --tw-numeric-fraction: ;
26
+ --tw-ring-inset: ;
27
+ --tw-ring-offset-width: 0px;
28
+ --tw-ring-offset-color: #fff;
29
+ --tw-ring-color: rgb(59 130 246 / 0.5);
30
+ --tw-ring-offset-shadow: 0 0 #0000;
31
+ --tw-ring-shadow: 0 0 #0000;
32
+ --tw-shadow: 0 0 #0000;
33
+ --tw-shadow-colored: 0 0 #0000;
34
+ --tw-blur: ;
35
+ --tw-brightness: ;
36
+ --tw-contrast: ;
37
+ --tw-grayscale: ;
38
+ --tw-hue-rotate: ;
39
+ --tw-invert: ;
40
+ --tw-saturate: ;
41
+ --tw-sepia: ;
42
+ --tw-drop-shadow: ;
43
+ --tw-backdrop-blur: ;
44
+ --tw-backdrop-brightness: ;
45
+ --tw-backdrop-contrast: ;
46
+ --tw-backdrop-grayscale: ;
47
+ --tw-backdrop-hue-rotate: ;
48
+ --tw-backdrop-invert: ;
49
+ --tw-backdrop-opacity: ;
50
+ --tw-backdrop-saturate: ;
51
+ --tw-backdrop-sepia: ;
52
+ --tw-contain-size: ;
53
+ --tw-contain-layout: ;
54
+ --tw-contain-paint: ;
55
+ --tw-contain-style: ;
56
+ }
57
+ ::backdrop {
58
+ --tw-border-spacing-x: 0;
59
+ --tw-border-spacing-y: 0;
60
+ --tw-translate-x: 0;
61
+ --tw-translate-y: 0;
62
+ --tw-rotate: 0;
63
+ --tw-skew-x: 0;
64
+ --tw-skew-y: 0;
65
+ --tw-scale-x: 1;
66
+ --tw-scale-y: 1;
67
+ --tw-pan-x: ;
68
+ --tw-pan-y: ;
69
+ --tw-pinch-zoom: ;
70
+ --tw-scroll-snap-strictness: proximity;
71
+ --tw-gradient-from-position: ;
72
+ --tw-gradient-via-position: ;
73
+ --tw-gradient-to-position: ;
74
+ --tw-ordinal: ;
75
+ --tw-slashed-zero: ;
76
+ --tw-numeric-figure: ;
77
+ --tw-numeric-spacing: ;
78
+ --tw-numeric-fraction: ;
79
+ --tw-ring-inset: ;
80
+ --tw-ring-offset-width: 0px;
81
+ --tw-ring-offset-color: #fff;
82
+ --tw-ring-color: rgb(59 130 246 / 0.5);
83
+ --tw-ring-offset-shadow: 0 0 #0000;
84
+ --tw-ring-shadow: 0 0 #0000;
85
+ --tw-shadow: 0 0 #0000;
86
+ --tw-shadow-colored: 0 0 #0000;
87
+ --tw-blur: ;
88
+ --tw-brightness: ;
89
+ --tw-contrast: ;
90
+ --tw-grayscale: ;
91
+ --tw-hue-rotate: ;
92
+ --tw-invert: ;
93
+ --tw-saturate: ;
94
+ --tw-sepia: ;
95
+ --tw-drop-shadow: ;
96
+ --tw-backdrop-blur: ;
97
+ --tw-backdrop-brightness: ;
98
+ --tw-backdrop-contrast: ;
99
+ --tw-backdrop-grayscale: ;
100
+ --tw-backdrop-hue-rotate: ;
101
+ --tw-backdrop-invert: ;
102
+ --tw-backdrop-opacity: ;
103
+ --tw-backdrop-saturate: ;
104
+ --tw-backdrop-sepia: ;
105
+ --tw-contain-size: ;
106
+ --tw-contain-layout: ;
107
+ --tw-contain-paint: ;
108
+ --tw-contain-style: ;
109
+ }
110
+ .cac-sr-only {
111
+ position: absolute;
112
+ width: 1px;
113
+ height: 1px;
114
+ padding: 0;
115
+ margin: -1px;
116
+ overflow: hidden;
117
+ clip: rect(0, 0, 0, 0);
118
+ white-space: nowrap;
119
+ border-width: 0;
120
+ }
121
+ .cac-absolute {
122
+ position: absolute;
123
+ }
124
+ .cac-relative {
125
+ position: relative;
126
+ }
127
+ .cac-inset-0 {
128
+ inset: 0px;
129
+ }
130
+ .cac-left-0 {
131
+ left: 0px;
132
+ }
133
+ .cac-right-0 {
134
+ right: 0px;
135
+ }
136
+ .cac-right-4 {
137
+ right: 1rem;
138
+ }
139
+ .cac-top-0 {
140
+ top: 0px;
141
+ }
142
+ .cac-top-4 {
143
+ top: 1rem;
144
+ }
145
+ .cac-z-50 {
146
+ z-index: 50;
147
+ }
148
+ .cac-mt-2 {
149
+ margin-top: 0.5rem;
150
+ }
151
+ .cac-block {
152
+ display: block;
153
+ }
154
+ .cac-inline {
155
+ display: inline;
156
+ }
157
+ .cac-flex {
158
+ display: flex;
159
+ }
160
+ .cac-hidden {
161
+ display: none;
162
+ }
163
+ .cac-h-10 {
164
+ height: 2.5rem;
165
+ }
166
+ .cac-h-8 {
167
+ height: 2rem;
168
+ }
169
+ .cac-h-\[26rem\] {
170
+ height: 26rem;
171
+ }
172
+ .cac-h-full {
173
+ height: 100%;
174
+ }
175
+ .cac-h-screen {
176
+ height: 100vh;
177
+ }
178
+ .cac-w-10 {
179
+ width: 2.5rem;
180
+ }
181
+ .cac-w-8 {
182
+ width: 2rem;
183
+ }
184
+ .cac-w-80 {
185
+ width: 20rem;
186
+ }
187
+ .cac-w-full {
188
+ width: 100%;
189
+ }
190
+ .cac-w-screen {
191
+ width: 100vw;
192
+ }
193
+ .cac-shrink-0 {
194
+ flex-shrink: 0;
195
+ }
196
+ @keyframes cac-spin {
197
+ to {
198
+ transform: rotate(360deg);
199
+ }
200
+ }
201
+ .cac-animate-spin {
202
+ animation: cac-spin 1s linear infinite;
203
+ }
204
+ .cac-cursor-pointer {
205
+ cursor: pointer;
206
+ }
207
+ .cac-items-center {
208
+ align-items: center;
209
+ }
210
+ .cac-justify-center {
211
+ justify-content: center;
212
+ }
213
+ .cac-justify-between {
214
+ justify-content: space-between;
215
+ }
216
+ .cac-gap-2 {
217
+ gap: 0.5rem;
218
+ }
219
+ .cac-overflow-hidden {
220
+ overflow: hidden;
221
+ }
222
+ .cac-rounded-3xl {
223
+ border-radius: 1.5rem;
224
+ }
225
+ .cac-rounded-full {
226
+ border-radius: 9999px;
227
+ }
228
+ .cac-rounded-lg {
229
+ border-radius: 0.5rem;
230
+ }
231
+ .cac-border {
232
+ border-width: 1px;
233
+ }
234
+ .cac-border-none {
235
+ border-style: none;
236
+ }
237
+ .cac-border-neutral-500 {
238
+ --tw-border-opacity: 1;
239
+ border-color: rgb(115 115 115 / var(--tw-border-opacity));
240
+ }
241
+ .cac-bg-neutral-950 {
242
+ --tw-bg-opacity: 1;
243
+ background-color: rgb(10 10 10 / var(--tw-bg-opacity));
244
+ }
245
+ .cac-bg-transparent {
246
+ background-color: transparent;
247
+ }
248
+ .cac-bg-white {
249
+ --tw-bg-opacity: 1;
250
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
251
+ }
252
+ .cac-bg-opacity-50 {
253
+ --tw-bg-opacity: 0.5 ;
254
+ }
255
+ .cac-fill-neutral-600 {
256
+ fill: #525252;
257
+ }
258
+ .cac-object-cover {
259
+ -o-object-fit: cover;
260
+ object-fit: cover;
261
+ }
262
+ .cac-p-1 {
263
+ padding: 0.25rem;
264
+ }
265
+ .cac-p-6 {
266
+ padding: 1.5rem;
267
+ }
268
+ .cac-px-3 {
269
+ padding-left: 0.75rem;
270
+ padding-right: 0.75rem;
271
+ }
272
+ .cac-px-4 {
273
+ padding-left: 1rem;
274
+ padding-right: 1rem;
275
+ }
276
+ .cac-py-2 {
277
+ padding-top: 0.5rem;
278
+ padding-bottom: 0.5rem;
279
+ }
280
+ .cac-text-neutral-200 {
281
+ --tw-text-opacity: 1;
282
+ color: rgb(229 229 229 / var(--tw-text-opacity));
283
+ }
284
+ .cac-text-neutral-400 {
285
+ --tw-text-opacity: 1;
286
+ color: rgb(163 163 163 / var(--tw-text-opacity));
287
+ }
288
+ .cac-text-neutral-500 {
289
+ --tw-text-opacity: 1;
290
+ color: rgb(115 115 115 / var(--tw-text-opacity));
291
+ }
292
+ .cac-shadow-lg {
293
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
294
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
295
+ box-shadow:
296
+ var(--tw-ring-offset-shadow, 0 0 #0000),
297
+ var(--tw-ring-shadow, 0 0 #0000),
298
+ var(--tw-shadow);
299
+ }
300
+ .cac-shadow-xl {
301
+ --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
302
+ --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
303
+ box-shadow:
304
+ var(--tw-ring-offset-shadow, 0 0 #0000),
305
+ var(--tw-ring-shadow, 0 0 #0000),
306
+ var(--tw-shadow);
307
+ }
308
+ .cac-transition-colors {
309
+ transition-property:
310
+ color,
311
+ background-color,
312
+ border-color,
313
+ text-decoration-color,
314
+ fill,
315
+ stroke;
316
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
317
+ transition-duration: 150ms;
318
+ }
319
+ .hover\:cac-bg-neutral-200:hover {
320
+ --tw-bg-opacity: 1;
321
+ background-color: rgb(229 229 229 / var(--tw-bg-opacity));
322
+ }
323
+ .hover\:cac-bg-opacity-50:hover {
324
+ --tw-bg-opacity: 0.5 ;
325
+ }
326
+ @media (prefers-color-scheme: dark) {
327
+ .dark\:cac-fill-neutral-300 {
328
+ fill: #d4d4d4;
329
+ }
330
+ .dark\:cac-text-neutral-600 {
331
+ --tw-text-opacity: 1;
332
+ color: rgb(82 82 82 / var(--tw-text-opacity));
333
+ }
334
+ }
335
+ /*# sourceMappingURL=client.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/styles.css"],"sourcesContent":["*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: \n}\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: \n}\n.cac-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0\n}\n.cac-absolute {\n position: absolute\n}\n.cac-relative {\n position: relative\n}\n.cac-inset-0 {\n inset: 0px\n}\n.cac-left-0 {\n left: 0px\n}\n.cac-right-0 {\n right: 0px\n}\n.cac-right-4 {\n right: 1rem\n}\n.cac-top-0 {\n top: 0px\n}\n.cac-top-4 {\n top: 1rem\n}\n.cac-z-50 {\n z-index: 50\n}\n.cac-mt-2 {\n margin-top: 0.5rem\n}\n.cac-block {\n display: block\n}\n.cac-inline {\n display: inline\n}\n.cac-flex {\n display: flex\n}\n.cac-hidden {\n display: none\n}\n.cac-h-10 {\n height: 2.5rem\n}\n.cac-h-8 {\n height: 2rem\n}\n.cac-h-\\[26rem\\] {\n height: 26rem\n}\n.cac-h-full {\n height: 100%\n}\n.cac-h-screen {\n height: 100vh\n}\n.cac-w-10 {\n width: 2.5rem\n}\n.cac-w-8 {\n width: 2rem\n}\n.cac-w-80 {\n width: 20rem\n}\n.cac-w-full {\n width: 100%\n}\n.cac-w-screen {\n width: 100vw\n}\n.cac-shrink-0 {\n flex-shrink: 0\n}\n@keyframes cac-spin {\n to {\n transform: rotate(360deg)\n }\n}\n.cac-animate-spin {\n animation: cac-spin 1s linear infinite\n}\n.cac-cursor-pointer {\n cursor: pointer\n}\n.cac-items-center {\n align-items: center\n}\n.cac-justify-center {\n justify-content: center\n}\n.cac-justify-between {\n justify-content: space-between\n}\n.cac-gap-2 {\n gap: 0.5rem\n}\n.cac-overflow-hidden {\n overflow: hidden\n}\n.cac-rounded-3xl {\n border-radius: 1.5rem\n}\n.cac-rounded-full {\n border-radius: 9999px\n}\n.cac-rounded-lg {\n border-radius: 0.5rem\n}\n.cac-border {\n border-width: 1px\n}\n.cac-border-none {\n border-style: none\n}\n.cac-border-neutral-500 {\n --tw-border-opacity: 1;\n border-color: rgb(115 115 115 / var(--tw-border-opacity))\n}\n.cac-bg-neutral-950 {\n --tw-bg-opacity: 1;\n background-color: rgb(10 10 10 / var(--tw-bg-opacity))\n}\n.cac-bg-transparent {\n background-color: transparent\n}\n.cac-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity))\n}\n.cac-bg-opacity-50 {\n --tw-bg-opacity: 0.5\n}\n.cac-fill-neutral-600 {\n fill: #525252\n}\n.cac-object-cover {\n -o-object-fit: cover;\n object-fit: cover\n}\n.cac-p-1 {\n padding: 0.25rem\n}\n.cac-p-6 {\n padding: 1.5rem\n}\n.cac-px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem\n}\n.cac-px-4 {\n padding-left: 1rem;\n padding-right: 1rem\n}\n.cac-py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem\n}\n.cac-text-neutral-200 {\n --tw-text-opacity: 1;\n color: rgb(229 229 229 / var(--tw-text-opacity))\n}\n.cac-text-neutral-400 {\n --tw-text-opacity: 1;\n color: rgb(163 163 163 / var(--tw-text-opacity))\n}\n.cac-text-neutral-500 {\n --tw-text-opacity: 1;\n color: rgb(115 115 115 / var(--tw-text-opacity))\n}\n.cac-shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)\n}\n.cac-shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)\n}\n.cac-transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms\n}\n.hover\\:cac-bg-neutral-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(229 229 229 / var(--tw-bg-opacity))\n}\n.hover\\:cac-bg-opacity-50:hover {\n --tw-bg-opacity: 0.5\n}\n@media (prefers-color-scheme: dark) {\n .dark\\:cac-fill-neutral-300 {\n fill: #d4d4d4\n }\n .dark\\:cac-text-neutral-600 {\n --tw-text-opacity: 1;\n color: rgb(82 82 82 / var(--tw-text-opacity))\n }\n}\n"],"mappings":";AAAA;AAAG;AAAU;AACT,yBAAuB;AACvB,yBAAuB;AACvB,oBAAkB;AAClB,oBAAkB;AAClB,eAAa;AACb,eAAa;AACb,eAAa;AACb,gBAAc;AACd,gBAAc;AACd;AACA;AACA;AACA,+BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAwB;AACxB,0BAAwB;AACxB,mBAAiB,IAAI,GAAG,IAAI,IAAI,EAAE;AAClC,2BAAyB,EAAE,EAAE;AAC7B,oBAAkB,EAAE,EAAE;AACtB,eAAa,EAAE,EAAE;AACjB,uBAAqB,EAAE,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACJ;AACA;AACI,yBAAuB;AACvB,yBAAuB;AACvB,oBAAkB;AAClB,oBAAkB;AAClB,eAAa;AACb,eAAa;AACb,eAAa;AACb,gBAAc;AACd,gBAAc;AACd;AACA;AACA;AACA,+BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAwB;AACxB,0BAAwB;AACxB,mBAAiB,IAAI,GAAG,IAAI,IAAI,EAAE;AAClC,2BAAyB,EAAE,EAAE;AAC7B,oBAAkB,EAAE,EAAE;AACtB,eAAa,EAAE,EAAE;AACjB,uBAAqB,EAAE,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACJ;AACA,CAAC;AACG,YAAU;AACV,SAAO;AACP,UAAQ;AACR,WAAS;AACT,UAAQ;AACR,YAAU;AACV,QAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpB,eAAa;AACb,gBAAc;AAClB;AACA,CAAC;AACG,YAAU;AACd;AACA,CAAC;AACG,YAAU;AACd;AACA,CAAC;AACG,SAAO;AACX;AACA,CAAC;AACG,QAAM;AACV;AACA,CAAC;AACG,SAAO;AACX;AACA,CAAC;AACG,SAAO;AACX;AACA,CAAC;AACG,OAAK;AACT;AACA,CAAC;AACG,OAAK;AACT;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,cAAY;AAChB;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,UAAQ;AACZ;AACA,CAAC;AACG,UAAQ;AACZ;AACA,CAAC;AACG,UAAQ;AACZ;AACA,CAAC;AACG,UAAQ;AACZ;AACA,CAAC;AACG,UAAQ;AACZ;AACA,CAAC;AACG,SAAO;AACX;AACA,CAAC;AACG,SAAO;AACX;AACA,CAAC;AACG,SAAO;AACX;AACA,CAAC;AACG,SAAO;AACX;AACA,CAAC;AACG,SAAO;AACX;AACA,CAAC;AACG,eAAa;AACjB;AACA,WAAW;AACP;AACI,eAAW,OAAO;AACtB;AACJ;AACA,CAAC;AACG,aAAW,SAAS,GAAG,OAAO;AAClC;AACA,CAAC;AACG,UAAQ;AACZ;AACA,CAAC;AACG,eAAa;AACjB;AACA,CAAC;AACG,mBAAiB;AACrB;AACA,CAAC;AACG,mBAAiB;AACrB;AACA,CAAC;AACG,OAAK;AACT;AACA,CAAC;AACG,YAAU;AACd;AACA,CAAC;AACG,iBAAe;AACnB;AACA,CAAC;AACG,iBAAe;AACnB;AACA,CAAC;AACG,iBAAe;AACnB;AACA,CAAC;AACG,gBAAc;AAClB;AACA,CAAC;AACG,gBAAc;AAClB;AACA,CAAC;AACG,uBAAqB;AACrB,gBAAc,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI;AACxC;AACA,CAAC;AACG,mBAAiB;AACjB,oBAAkB,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI;AACzC;AACA,CAAC;AACG,oBAAkB;AACtB;AACA,CAAC;AACG,mBAAiB;AACjB,oBAAkB,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI;AAC5C;AACA,CAAC;AACG,mBAAiB;AACrB;AACA,CAAC;AACG,QAAM;AACV;AACA,CAAC;AACG,iBAAe;AACZ,cAAY;AACnB;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,gBAAc;AACd,iBAAe;AACnB;AACA,CAAC;AACG,gBAAc;AACd,iBAAe;AACnB;AACA,CAAC;AACG,eAAa;AACb,kBAAgB;AACpB;AACA,CAAC;AACG,qBAAmB;AACnB,SAAO,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI;AACjC;AACA,CAAC;AACG,qBAAmB;AACnB,SAAO,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI;AACjC;AACA,CAAC;AACG,qBAAmB;AACnB,SAAO,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI;AACjC;AACA,CAAC;AACG,eAAa,EAAE,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE;AAC3E,uBAAqB,EAAE,KAAK,KAAK,KAAK,IAAI,kBAAkB,EAAE,EAAE,IAAI,IAAI,KAAK,IAAI;AACjF;AAAA,IAAY,IAAI,uBAAuB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI,gBAAgB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI;AAC/F;AACA,CAAC;AACG,eAAa,EAAE,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE;AAC5E,uBAAqB,EAAE,KAAK,KAAK,KAAK,IAAI,kBAAkB,EAAE,EAAE,IAAI,KAAK,KAAK,IAAI;AAClF;AAAA,IAAY,IAAI,uBAAuB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI,gBAAgB,EAAE,EAAE,EAAE,MAAM;AAAA,IAAE,IAAI;AAC/F;AACA,CAAC;AACG;AAAA,IAAqB,KAAK;AAAA,IAAE,gBAAgB;AAAA,IAAE,YAAY;AAAA,IAAE,qBAAqB;AAAA,IAAE,IAAI;AAAA,IAAE;AACzF,8BAA4B,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACtD,uBAAqB;AACzB;AACA,CAAC,yBAAyB;AACtB,mBAAiB;AACjB,oBAAkB,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI;AAC5C;AACA,CAAC,wBAAwB;AACrB,mBAAiB;AACrB;AACA,OAAO,CAAC,oBAAoB,EAAE;AAC1B,GAAC;AACG,UAAM;AACV;AACA,GAAC;AACG,uBAAmB;AACnB,WAAO,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI;AAC9B;AACJ;","names":[]}
@@ -0,0 +1,12 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { A as AuthProviderProps } from '../AuthProvider-DUAoX4G9.mjs';
3
+ import { b as EmptyObject, U as User } from '../types-HdCjGldB.mjs';
4
+ import 'react';
5
+ import 'oslo/oauth2';
6
+
7
+ type NextCivicAuthProviderProps = Omit<AuthProviderProps, "clientId">;
8
+ declare const CivicNextAuthProvider: ({ children, ...props }: NextCivicAuthProviderProps) => react_jsx_runtime.JSX.Element;
9
+
10
+ declare const useUserCookie: <T extends EmptyObject>() => User<T> | null;
11
+
12
+ export { type NextCivicAuthProviderProps as AuthProviderProps, CivicNextAuthProvider as CivicAuthProvider, useUserCookie };
@@ -0,0 +1,12 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { A as AuthProviderProps } from '../AuthProvider-Bj_Prt1x.js';
3
+ import { b as EmptyObject, U as User } from '../types-HdCjGldB.js';
4
+ import 'react';
5
+ import 'oslo/oauth2';
6
+
7
+ type NextCivicAuthProviderProps = Omit<AuthProviderProps, "clientId">;
8
+ declare const CivicNextAuthProvider: ({ children, ...props }: NextCivicAuthProviderProps) => react_jsx_runtime.JSX.Element;
9
+
10
+ declare const useUserCookie: <T extends EmptyObject>() => User<T> | null;
11
+
12
+ export { type NextCivicAuthProviderProps as AuthProviderProps, CivicNextAuthProvider as CivicAuthProvider, useUserCookie };
@@ -0,0 +1,179 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5UQQYXCX.js');
2
+
3
+
4
+
5
+ var _chunkFHRZSX3Cjs = require('../chunk-FHRZSX3C.js');
6
+
7
+
8
+
9
+ var _chunkCTVJJBBAjs = require('../chunk-CTVJJBBA.js');
10
+
11
+
12
+ var _chunkJDZPCA3Pjs = require('../chunk-JDZPCA3P.js');
13
+ require('../chunk-6RFRDWIP.js');
14
+
15
+
16
+ var _chunk7K3QN2ATjs = require('../chunk-7K3QN2AT.js');
17
+
18
+
19
+
20
+
21
+
22
+ var _chunkCRTRMMJ7js = require('../chunk-CRTRMMJ7.js');
23
+
24
+ // src/nextjs/providers/NextAuthProvider.tsx
25
+ var _react = require('react');
26
+ var _reactquery = require('@tanstack/react-query');
27
+
28
+ // src/nextjs/hooks/useUserCookie.ts
29
+
30
+ var _navigationjs = require('next/navigation.js');
31
+
32
+
33
+ // src/lib/cookies.ts
34
+ var getWindowCookieValue = ({
35
+ key,
36
+ window: window2,
37
+ parseJson = false
38
+ }) => {
39
+ const cookie = window2.document.cookie;
40
+ if (!cookie) return null;
41
+ const cookies = cookie.split(";");
42
+ for (const c of cookies) {
43
+ const [name, value] = c.trim().split("=");
44
+ if (value && name === key) {
45
+ try {
46
+ const decodeURIComponentValue = decodeURIComponent(value);
47
+ return parseJson === true ? JSON.parse(decodeURIComponentValue) : decodeURIComponentValue;
48
+ } catch (e) {
49
+ return value;
50
+ }
51
+ }
52
+ }
53
+ return null;
54
+ };
55
+
56
+ // src/nextjs/hooks/useUserCookie.ts
57
+ var getUserFromCookie = () => {
58
+ const userCookie = getWindowCookieValue({
59
+ key: "user" /* USER */,
60
+ window: globalThis.window,
61
+ parseJson: true
62
+ });
63
+ return userCookie;
64
+ };
65
+ var useUserCookie = () => {
66
+ const hasRunRef = _react.useRef.call(void 0, false);
67
+ const router = _navigationjs.useRouter.call(void 0, );
68
+ const { data: user } = _reactquery.useQuery.call(void 0, {
69
+ queryKey: ["user"],
70
+ queryFn: () => getUserFromCookie(),
71
+ refetchInterval: 2e3,
72
+ refetchIntervalInBackground: true,
73
+ enabled: !hasRunRef.current,
74
+ refetchOnWindowFocus: true
75
+ });
76
+ _react.useEffect.call(void 0, () => {
77
+ if (user) {
78
+ if (!hasRunRef.current) {
79
+ hasRunRef.current = true;
80
+ router.refresh();
81
+ }
82
+ } else {
83
+ hasRunRef.current = false;
84
+ }
85
+ }, [user, router]);
86
+ return user != null ? user : null;
87
+ };
88
+
89
+ // src/nextjs/hooks/useTokenCookie.ts
90
+
91
+
92
+
93
+ var getTokenFromCookie = (tokenName) => {
94
+ return getWindowCookieValue({
95
+ key: tokenName,
96
+ window: globalThis.window,
97
+ parseJson: false
98
+ });
99
+ };
100
+ var useTokenCookie = (tokenName) => {
101
+ const hasRunRef = _react.useRef.call(void 0, false);
102
+ const router = _navigationjs.useRouter.call(void 0, );
103
+ const { data: token } = _reactquery.useQuery.call(void 0, {
104
+ queryKey: ["token", tokenName],
105
+ queryFn: () => getTokenFromCookie(tokenName) || null,
106
+ refetchInterval: 2e3,
107
+ refetchIntervalInBackground: true,
108
+ enabled: !hasRunRef.current,
109
+ refetchOnWindowFocus: true
110
+ });
111
+ _react.useEffect.call(void 0, () => {
112
+ if (token) {
113
+ if (!hasRunRef.current) {
114
+ hasRunRef.current = true;
115
+ router.refresh();
116
+ }
117
+ } else {
118
+ hasRunRef.current = false;
119
+ }
120
+ }, [token, router]);
121
+ return token != null ? token : null;
122
+ };
123
+
124
+ // src/nextjs/providers/NextAuthProvider.tsx
125
+ var _jsxruntime = require('react/jsx-runtime');
126
+ var queryClient = new (0, _reactquery.QueryClient)();
127
+ var CivicNextAuthProvider = (_a) => {
128
+ var _b = _a, {
129
+ children
130
+ } = _b, props = _chunkCRTRMMJ7js.__objRest.call(void 0, _b, [
131
+ "children"
132
+ ]);
133
+ const [redirectUrl, setRedirectUrl] = _react.useState.call(void 0, "");
134
+ const resolvedConfig = _chunkJDZPCA3Pjs.resolveAuthConfig.call(void 0, );
135
+ const { clientId, oauthServer, callbackUrl, challengeUrl, logoutUrl } = resolvedConfig;
136
+ _react.useEffect.call(void 0, () => {
137
+ if (typeof globalThis.window !== "undefined") {
138
+ const currentUrl = globalThis.window.location.href;
139
+ setRedirectUrl(_chunkCTVJJBBAjs.resolveCallbackUrl.call(void 0, resolvedConfig, currentUrl));
140
+ }
141
+ }, [callbackUrl, resolvedConfig]);
142
+ const user = useUserCookie();
143
+ const idToken = useTokenCookie("id_token" /* ID_TOKEN */);
144
+ const combinedUser = user ? _chunkCRTRMMJ7js.__spreadProps.call(void 0, _chunkCRTRMMJ7js.__spreadValues.call(void 0, {}, user || {}), { idToken }) : null;
145
+ const sessionData = _chunkCRTRMMJ7js.__spreadValues.call(void 0, {
146
+ authenticated: !!user
147
+ }, idToken ? { idToken } : {});
148
+ const signOut = () => _chunkCRTRMMJ7js.__async.call(void 0, void 0, null, function* () {
149
+ if (props.onSignOut) {
150
+ yield props.onSignOut();
151
+ }
152
+ window.location.href = logoutUrl;
153
+ return;
154
+ });
155
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
156
+ _chunkFHRZSX3Cjs.AuthProvider,
157
+ _chunkCRTRMMJ7js.__spreadProps.call(void 0, _chunkCRTRMMJ7js.__spreadValues.call(void 0, {}, props), {
158
+ redirectUrl,
159
+ config: { oauthServer },
160
+ clientId,
161
+ pkceConsumer: new (0, _chunk7K3QN2ATjs.ConfidentialClientPKCEConsumer)(challengeUrl),
162
+ sessionData,
163
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
164
+ _chunkFHRZSX3Cjs.UserProvider,
165
+ {
166
+ storage: new (0, _chunkCTVJJBBAjs.NextjsClientStorage)(),
167
+ user: combinedUser,
168
+ signOut,
169
+ children
170
+ }
171
+ )
172
+ })
173
+ ) });
174
+ };
175
+
176
+
177
+
178
+ exports.CivicAuthProvider = CivicNextAuthProvider; exports.useUserCookie = useUserCookie;
179
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/flippie/civic/repos/civic-auth/packages/civic-auth-client/dist/nextjs/client.js","../../src/nextjs/providers/NextAuthProvider.tsx","../../src/nextjs/hooks/useUserCookie.ts","../../src/lib/cookies.ts","../../src/nextjs/hooks/useTokenCookie.ts"],"names":["window","useRef","useRouter","useQuery","useEffect"],"mappings":"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","file":"/Users/flippie/civic/repos/civic-auth/packages/civic-auth-client/dist/nextjs/client.js","sourcesContent":[null,"\"use client\";\n/**\n * A very small context provider for the user object - it takes the user object from the cookie and provides it to the app.\n */\nimport { useEffect, useState } from \"react\";\nimport { AuthProvider, AuthProviderProps } from \"@/shared/AuthProvider.js\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { resolveAuthConfig } from \"@/nextjs/config.js\";\nimport { resolveCallbackUrl } from \"@/nextjs/utils.js\";\n\n// adding the styles import here to be added to the bundle\nimport \"@/styles.css\";\nimport { ConfidentialClientPKCEConsumer } from \"@/services/PKCE.js\";\nimport { NextjsClientStorage } from \"@/nextjs/cookies\";\nimport { UserProvider } from \"@/shared/UserProvider\";\nimport { useUserCookie } from \"../hooks/useUserCookie\";\nimport { OAuthTokens } from \"@/shared/types\";\nimport { useTokenCookie } from \"../hooks/useTokenCookie\";\nimport { User } from \"@/types\";\n\nconst queryClient = new QueryClient();\n\nexport type NextCivicAuthProviderProps = Omit<AuthProviderProps, \"clientId\">;\n\nexport const CivicNextAuthProvider = ({\n children,\n ...props\n}: NextCivicAuthProviderProps) => {\n const [redirectUrl, setRedirectUrl] = useState<string>(\"\");\n const resolvedConfig = resolveAuthConfig();\n const { clientId, oauthServer, callbackUrl, challengeUrl, logoutUrl } =\n resolvedConfig;\n\n useEffect(() => {\n if (typeof globalThis.window !== \"undefined\") {\n const currentUrl = globalThis.window.location.href;\n setRedirectUrl(resolveCallbackUrl(resolvedConfig, currentUrl));\n }\n }, [callbackUrl, resolvedConfig]);\n\n const user = useUserCookie();\n const idToken = useTokenCookie(OAuthTokens.ID_TOKEN);\n const combinedUser = user ? ({ ...(user || {}), idToken } as User) : null;\n const sessionData = {\n authenticated: !!user,\n ...(idToken ? { idToken } : {}),\n };\n const signOut = async (): Promise<void> => {\n if (props.onSignOut) {\n await props.onSignOut();\n }\n window.location.href = logoutUrl;\n return;\n };\n return (\n <QueryClientProvider client={queryClient}>\n <AuthProvider\n {...props}\n redirectUrl={redirectUrl}\n config={{ oauthServer }}\n clientId={clientId}\n pkceConsumer={new ConfidentialClientPKCEConsumer(challengeUrl)}\n sessionData={sessionData}\n >\n <UserProvider\n storage={new NextjsClientStorage()}\n user={combinedUser}\n signOut={signOut}\n >\n {children}\n </UserProvider>\n </AuthProvider>\n </QueryClientProvider>\n );\n};\n","\"use client\";\nimport { useEffect, useRef } from \"react\";\nimport { useRouter } from \"next/navigation.js\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { getWindowCookieValue } from \"@/lib/cookies.js\";\nimport { EmptyObject, User } from \"@/types\";\nimport { UserStorage } from \"@/shared/types\";\n\nconst getUserFromCookie = () => {\n const userCookie = getWindowCookieValue({\n key: UserStorage.USER,\n window: globalThis.window,\n parseJson: true,\n });\n return userCookie;\n};\n\nexport const useUserCookie = <T extends EmptyObject>() => {\n const hasRunRef = useRef(false);\n const router = useRouter();\n\n const { data: user } = useQuery({\n queryKey: [\"user\"],\n queryFn: () => getUserFromCookie() as User<T> | null,\n refetchInterval: 2000,\n refetchIntervalInBackground: true,\n enabled: !hasRunRef.current,\n refetchOnWindowFocus: true,\n });\n\n useEffect(() => {\n if (user) {\n if (!hasRunRef.current) {\n hasRunRef.current = true;\n router.refresh();\n }\n } else {\n hasRunRef.current = false;\n }\n }, [user, router]);\n\n return user ?? null;\n};\n","const getWindowCookieValue = ({\n key,\n window,\n parseJson = false,\n}: {\n key: string;\n window: Window;\n parseJson?: boolean;\n}) => {\n const cookie = window.document.cookie;\n if (!cookie) return null;\n const cookies = cookie.split(\";\");\n for (const c of cookies) {\n const [name, value] = c.trim().split(\"=\");\n if (value && name === key) {\n try {\n const decodeURIComponentValue = decodeURIComponent(value);\n return parseJson === true\n ? JSON.parse(decodeURIComponentValue)\n : decodeURIComponentValue;\n } catch {\n return value;\n }\n }\n }\n return null;\n};\nexport { getWindowCookieValue };\n","\"use client\";\nimport { useEffect, useRef } from \"react\";\nimport { useRouter } from \"next/navigation.js\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { getWindowCookieValue } from \"@/lib/cookies.js\";\nimport { OAuthTokens } from \"@/shared/types\";\n\nconst getTokenFromCookie = (tokenName: OAuthTokens): string => {\n return getWindowCookieValue({\n key: tokenName,\n window: globalThis.window,\n parseJson: false,\n });\n};\n\nexport const useTokenCookie = (tokenName: OAuthTokens): string | null => {\n const hasRunRef = useRef(false);\n const router = useRouter();\n\n const { data: token } = useQuery({\n queryKey: [\"token\", tokenName],\n queryFn: () => getTokenFromCookie(tokenName) || null,\n refetchInterval: 2000,\n refetchIntervalInBackground: true,\n enabled: !hasRunRef.current,\n refetchOnWindowFocus: true,\n });\n\n useEffect(() => {\n if (token) {\n if (!hasRunRef.current) {\n hasRunRef.current = true;\n router.refresh();\n }\n } else {\n hasRunRef.current = false;\n }\n }, [token, router]);\n\n return token ?? null;\n};\n"]}