@civic/auth 0.0.1-beta.19 → 0.0.1-beta.2
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.
- package/README.md +0 -26
- package/dist/chunk-5NUJ7LFF.mjs +17 -0
- package/dist/chunk-5NUJ7LFF.mjs.map +1 -0
- package/dist/chunk-CRTRMMJ7.js.map +1 -1
- package/dist/chunk-KS7ERXGZ.js +481 -0
- package/dist/chunk-KS7ERXGZ.js.map +1 -0
- package/dist/chunk-NINRO7GS.js +209 -0
- package/dist/chunk-NINRO7GS.js.map +1 -0
- package/dist/chunk-NXBKSUKI.mjs +481 -0
- package/dist/chunk-NXBKSUKI.mjs.map +1 -0
- package/dist/chunk-T7HUHQ3J.mjs +209 -0
- package/dist/chunk-T7HUHQ3J.mjs.map +1 -0
- package/dist/chunk-WZLC5B4C.js +17 -0
- package/dist/chunk-WZLC5B4C.js.map +1 -0
- package/dist/index-DoDoIY_K.d.mts +79 -0
- package/dist/index-DoDoIY_K.d.ts +79 -0
- package/dist/index.css +70 -63
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +1 -3
- package/dist/index.d.ts +1 -3
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +0 -1
- package/dist/nextjs.d.mts +15 -42
- package/dist/nextjs.d.ts +15 -42
- package/dist/nextjs.js +180 -156
- package/dist/nextjs.js.map +1 -1
- package/dist/nextjs.mjs +177 -153
- package/dist/nextjs.mjs.map +1 -1
- package/dist/react.d.mts +81 -31
- package/dist/react.d.ts +81 -31
- package/dist/react.js +634 -35
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +664 -65
- package/dist/react.mjs.map +1 -1
- package/dist/server.d.mts +34 -14
- package/dist/server.d.ts +34 -14
- package/dist/server.js +185 -4
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +191 -10
- package/dist/server.mjs.map +1 -1
- package/package.json +17 -26
- package/dist/AuthProvider-Bj_Prt1x.d.ts +0 -21
- package/dist/AuthProvider-DUAoX4G9.d.mts +0 -21
- package/dist/UserProvider-CMLaYOUD.d.ts +0 -16
- package/dist/UserProvider-Cbm8MZkJ.d.mts +0 -16
- package/dist/chunk-5UQQYXCX.js +0 -1
- package/dist/chunk-5UQQYXCX.js.map +0 -1
- package/dist/chunk-BFESCRFK.mjs +0 -118
- package/dist/chunk-BFESCRFK.mjs.map +0 -1
- package/dist/chunk-CBQ3HKRV.mjs +0 -599
- package/dist/chunk-CBQ3HKRV.mjs.map +0 -1
- package/dist/chunk-CZ3AVCKD.js +0 -171
- package/dist/chunk-CZ3AVCKD.js.map +0 -1
- package/dist/chunk-DJFTZS4P.js +0 -118
- package/dist/chunk-DJFTZS4P.js.map +0 -1
- package/dist/chunk-HTTTZ2BP.mjs +0 -223
- package/dist/chunk-HTTTZ2BP.mjs.map +0 -1
- package/dist/chunk-O2SODTR3.js +0 -599
- package/dist/chunk-O2SODTR3.js.map +0 -1
- package/dist/chunk-O6DPCPRH.js +0 -223
- package/dist/chunk-O6DPCPRH.js.map +0 -1
- package/dist/chunk-PMJAV4JJ.mjs +0 -1
- package/dist/chunk-PMJAV4JJ.mjs.map +0 -1
- package/dist/chunk-UADVRCHY.mjs +0 -710
- package/dist/chunk-UADVRCHY.mjs.map +0 -1
- package/dist/chunk-VJVRFKDH.js +0 -710
- package/dist/chunk-VJVRFKDH.js.map +0 -1
- package/dist/chunk-X3FQBE22.mjs +0 -171
- package/dist/chunk-X3FQBE22.mjs.map +0 -1
- package/dist/nextjs/client.css +0 -335
- package/dist/nextjs/client.css.map +0 -1
- package/dist/nextjs/client.d.mts +0 -12
- package/dist/nextjs/client.d.ts +0 -12
- package/dist/nextjs/client.js +0 -179
- package/dist/nextjs/client.js.map +0 -1
- package/dist/nextjs/client.mjs +0 -179
- package/dist/nextjs/client.mjs.map +0 -1
- package/dist/storage-B2eAQNdv.d.ts +0 -25
- package/dist/storage-BJPUpxhm.d.mts +0 -25
- package/dist/types-Bqm9OCZN.d.mts +0 -22
- package/dist/types-Bqm9OCZN.d.ts +0 -22
- package/dist/types-HdCjGldB.d.mts +0 -58
- package/dist/types-HdCjGldB.d.ts +0 -58
package/dist/nextjs/client.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
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 };
|
package/dist/nextjs/client.js
DELETED
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5UQQYXCX.js');
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var _chunkVJVRFKDHjs = require('../chunk-VJVRFKDH.js');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _chunkDJFTZS4Pjs = require('../chunk-DJFTZS4P.js');
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _chunkCZ3AVCKDjs = require('../chunk-CZ3AVCKD.js');
|
|
13
|
-
require('../chunk-O6DPCPRH.js');
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var _chunkO2SODTR3js = require('../chunk-O2SODTR3.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 = _chunkCZ3AVCKDjs.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(_chunkDJFTZS4Pjs.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
|
-
_chunkVJVRFKDHjs.AuthProvider,
|
|
157
|
-
_chunkCRTRMMJ7js.__spreadProps.call(void 0, _chunkCRTRMMJ7js.__spreadValues.call(void 0, {}, props), {
|
|
158
|
-
redirectUrl,
|
|
159
|
-
config: { oauthServer },
|
|
160
|
-
clientId,
|
|
161
|
-
pkceConsumer: new (0, _chunkO2SODTR3js.ConfidentialClientPKCEConsumer)(challengeUrl),
|
|
162
|
-
sessionData,
|
|
163
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
164
|
-
_chunkVJVRFKDHjs.UserProvider,
|
|
165
|
-
{
|
|
166
|
-
storage: new (0, _chunkDJFTZS4Pjs.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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevincolgan/code/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/kevincolgan/code/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"]}
|
package/dist/nextjs/client.mjs
DELETED
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import "../chunk-PMJAV4JJ.mjs";
|
|
2
|
-
import {
|
|
3
|
-
AuthProvider,
|
|
4
|
-
UserProvider
|
|
5
|
-
} from "../chunk-UADVRCHY.mjs";
|
|
6
|
-
import {
|
|
7
|
-
NextjsClientStorage,
|
|
8
|
-
resolveCallbackUrl
|
|
9
|
-
} from "../chunk-BFESCRFK.mjs";
|
|
10
|
-
import {
|
|
11
|
-
resolveAuthConfig
|
|
12
|
-
} from "../chunk-X3FQBE22.mjs";
|
|
13
|
-
import "../chunk-HTTTZ2BP.mjs";
|
|
14
|
-
import {
|
|
15
|
-
ConfidentialClientPKCEConsumer
|
|
16
|
-
} from "../chunk-CBQ3HKRV.mjs";
|
|
17
|
-
import {
|
|
18
|
-
__async,
|
|
19
|
-
__objRest,
|
|
20
|
-
__spreadProps,
|
|
21
|
-
__spreadValues
|
|
22
|
-
} from "../chunk-RGHW4PYM.mjs";
|
|
23
|
-
|
|
24
|
-
// src/nextjs/providers/NextAuthProvider.tsx
|
|
25
|
-
import { useEffect as useEffect3, useState } from "react";
|
|
26
|
-
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
27
|
-
|
|
28
|
-
// src/nextjs/hooks/useUserCookie.ts
|
|
29
|
-
import { useEffect, useRef } from "react";
|
|
30
|
-
import { useRouter } from "next/navigation.js";
|
|
31
|
-
import { useQuery } from "@tanstack/react-query";
|
|
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 = useRef(false);
|
|
67
|
-
const router = useRouter();
|
|
68
|
-
const { data: user } = useQuery({
|
|
69
|
-
queryKey: ["user"],
|
|
70
|
-
queryFn: () => getUserFromCookie(),
|
|
71
|
-
refetchInterval: 2e3,
|
|
72
|
-
refetchIntervalInBackground: true,
|
|
73
|
-
enabled: !hasRunRef.current,
|
|
74
|
-
refetchOnWindowFocus: true
|
|
75
|
-
});
|
|
76
|
-
useEffect(() => {
|
|
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
|
-
import { useEffect as useEffect2, useRef as useRef2 } from "react";
|
|
91
|
-
import { useRouter as useRouter2 } from "next/navigation.js";
|
|
92
|
-
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
|
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 = useRef2(false);
|
|
102
|
-
const router = useRouter2();
|
|
103
|
-
const { data: token } = useQuery2({
|
|
104
|
-
queryKey: ["token", tokenName],
|
|
105
|
-
queryFn: () => getTokenFromCookie(tokenName) || null,
|
|
106
|
-
refetchInterval: 2e3,
|
|
107
|
-
refetchIntervalInBackground: true,
|
|
108
|
-
enabled: !hasRunRef.current,
|
|
109
|
-
refetchOnWindowFocus: true
|
|
110
|
-
});
|
|
111
|
-
useEffect2(() => {
|
|
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
|
-
import { jsx } from "react/jsx-runtime";
|
|
126
|
-
var queryClient = new QueryClient();
|
|
127
|
-
var CivicNextAuthProvider = (_a) => {
|
|
128
|
-
var _b = _a, {
|
|
129
|
-
children
|
|
130
|
-
} = _b, props = __objRest(_b, [
|
|
131
|
-
"children"
|
|
132
|
-
]);
|
|
133
|
-
const [redirectUrl, setRedirectUrl] = useState("");
|
|
134
|
-
const resolvedConfig = resolveAuthConfig();
|
|
135
|
-
const { clientId, oauthServer, callbackUrl, challengeUrl, logoutUrl } = resolvedConfig;
|
|
136
|
-
useEffect3(() => {
|
|
137
|
-
if (typeof globalThis.window !== "undefined") {
|
|
138
|
-
const currentUrl = globalThis.window.location.href;
|
|
139
|
-
setRedirectUrl(resolveCallbackUrl(resolvedConfig, currentUrl));
|
|
140
|
-
}
|
|
141
|
-
}, [callbackUrl, resolvedConfig]);
|
|
142
|
-
const user = useUserCookie();
|
|
143
|
-
const idToken = useTokenCookie("id_token" /* ID_TOKEN */);
|
|
144
|
-
const combinedUser = user ? __spreadProps(__spreadValues({}, user || {}), { idToken }) : null;
|
|
145
|
-
const sessionData = __spreadValues({
|
|
146
|
-
authenticated: !!user
|
|
147
|
-
}, idToken ? { idToken } : {});
|
|
148
|
-
const signOut = () => __async(void 0, null, function* () {
|
|
149
|
-
if (props.onSignOut) {
|
|
150
|
-
yield props.onSignOut();
|
|
151
|
-
}
|
|
152
|
-
window.location.href = logoutUrl;
|
|
153
|
-
return;
|
|
154
|
-
});
|
|
155
|
-
return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx(
|
|
156
|
-
AuthProvider,
|
|
157
|
-
__spreadProps(__spreadValues({}, props), {
|
|
158
|
-
redirectUrl,
|
|
159
|
-
config: { oauthServer },
|
|
160
|
-
clientId,
|
|
161
|
-
pkceConsumer: new ConfidentialClientPKCEConsumer(challengeUrl),
|
|
162
|
-
sessionData,
|
|
163
|
-
children: /* @__PURE__ */ jsx(
|
|
164
|
-
UserProvider,
|
|
165
|
-
{
|
|
166
|
-
storage: new NextjsClientStorage(),
|
|
167
|
-
user: combinedUser,
|
|
168
|
-
signOut,
|
|
169
|
-
children
|
|
170
|
-
}
|
|
171
|
-
)
|
|
172
|
-
})
|
|
173
|
-
) });
|
|
174
|
-
};
|
|
175
|
-
export {
|
|
176
|
-
CivicNextAuthProvider as CivicAuthProvider,
|
|
177
|
-
useUserCookie
|
|
178
|
-
};
|
|
179
|
-
//# sourceMappingURL=client.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/nextjs/providers/NextAuthProvider.tsx","../../src/nextjs/hooks/useUserCookie.ts","../../src/lib/cookies.ts","../../src/nextjs/hooks/useTokenCookie.ts"],"sourcesContent":["\"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"],"mappings":"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","names":["useEffect","window","useEffect","useRef","useRouter","useQuery","useRef","useRouter","useQuery","useEffect","useEffect"]}
|
|
@@ -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,22 +0,0 @@
|
|
|
1
|
-
declare enum OAuthTokens {
|
|
2
|
-
ID_TOKEN = "id_token",
|
|
3
|
-
ACCESS_TOKEN = "access_token",
|
|
4
|
-
REFRESH_TOKEN = "refresh_token"
|
|
5
|
-
}
|
|
6
|
-
declare enum CodeVerifier {
|
|
7
|
-
COOKIE_NAME = "code_verifier"
|
|
8
|
-
}
|
|
9
|
-
declare enum UserStorage {
|
|
10
|
-
USER = "user"
|
|
11
|
-
}
|
|
12
|
-
interface CookieConfig {
|
|
13
|
-
secure?: boolean;
|
|
14
|
-
sameSite?: "strict" | "lax" | "none";
|
|
15
|
-
domain?: string;
|
|
16
|
-
path?: string;
|
|
17
|
-
maxAge?: number;
|
|
18
|
-
httpOnly?: boolean;
|
|
19
|
-
}
|
|
20
|
-
type TokensCookieConfig = Record<OAuthTokens | CodeVerifier, CookieConfig>;
|
|
21
|
-
|
|
22
|
-
export { CodeVerifier as C, OAuthTokens as O, type TokensCookieConfig as T, UserStorage as U, type CookieConfig as a };
|
package/dist/types-Bqm9OCZN.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
declare enum OAuthTokens {
|
|
2
|
-
ID_TOKEN = "id_token",
|
|
3
|
-
ACCESS_TOKEN = "access_token",
|
|
4
|
-
REFRESH_TOKEN = "refresh_token"
|
|
5
|
-
}
|
|
6
|
-
declare enum CodeVerifier {
|
|
7
|
-
COOKIE_NAME = "code_verifier"
|
|
8
|
-
}
|
|
9
|
-
declare enum UserStorage {
|
|
10
|
-
USER = "user"
|
|
11
|
-
}
|
|
12
|
-
interface CookieConfig {
|
|
13
|
-
secure?: boolean;
|
|
14
|
-
sameSite?: "strict" | "lax" | "none";
|
|
15
|
-
domain?: string;
|
|
16
|
-
path?: string;
|
|
17
|
-
maxAge?: number;
|
|
18
|
-
httpOnly?: boolean;
|
|
19
|
-
}
|
|
20
|
-
type TokensCookieConfig = Record<OAuthTokens | CodeVerifier, CookieConfig>;
|
|
21
|
-
|
|
22
|
-
export { CodeVerifier as C, OAuthTokens as O, type TokensCookieConfig as T, UserStorage as U, type CookieConfig as a };
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { TokenResponseBody } from 'oslo/oauth2';
|
|
2
|
-
|
|
3
|
-
type UnknownObject = Record<string, unknown>;
|
|
4
|
-
type EmptyObject = Record<string, never>;
|
|
5
|
-
type DisplayMode = "iframe" | "redirect" | "new_tab" | "custom_tab";
|
|
6
|
-
type Endpoints = {
|
|
7
|
-
jwks: string;
|
|
8
|
-
auth: string;
|
|
9
|
-
token: string;
|
|
10
|
-
userinfo: string;
|
|
11
|
-
challenge?: string;
|
|
12
|
-
};
|
|
13
|
-
type Config = {
|
|
14
|
-
oauthServer: string;
|
|
15
|
-
endpoints?: Endpoints;
|
|
16
|
-
};
|
|
17
|
-
type SessionData = {
|
|
18
|
-
authenticated: boolean;
|
|
19
|
-
state?: string;
|
|
20
|
-
accessToken?: string;
|
|
21
|
-
refreshToken?: string;
|
|
22
|
-
idToken?: string;
|
|
23
|
-
timestamp?: number;
|
|
24
|
-
expiresIn?: number;
|
|
25
|
-
codeVerifier?: string;
|
|
26
|
-
displayMode?: DisplayMode;
|
|
27
|
-
openerUrl?: string;
|
|
28
|
-
};
|
|
29
|
-
type OIDCTokenResponseBody = TokenResponseBody & {
|
|
30
|
-
id_token: string;
|
|
31
|
-
};
|
|
32
|
-
type ForwardedTokens = Record<string, {
|
|
33
|
-
idToken?: string;
|
|
34
|
-
accessToken?: string;
|
|
35
|
-
refreshToken?: string;
|
|
36
|
-
}>;
|
|
37
|
-
type Tokens = {
|
|
38
|
-
idToken: string;
|
|
39
|
-
accessToken: string;
|
|
40
|
-
refreshToken: string;
|
|
41
|
-
forwardedTokens: ForwardedTokens;
|
|
42
|
-
};
|
|
43
|
-
type BaseUser = {
|
|
44
|
-
id: string;
|
|
45
|
-
email?: string;
|
|
46
|
-
name?: string;
|
|
47
|
-
given_name?: string;
|
|
48
|
-
family_name?: string;
|
|
49
|
-
picture?: string;
|
|
50
|
-
updated_at?: Date;
|
|
51
|
-
};
|
|
52
|
-
type User<T extends UnknownObject = EmptyObject> = BaseUser & Partial<Tokens> & T;
|
|
53
|
-
interface AuthStorage {
|
|
54
|
-
get(key: string): string | null;
|
|
55
|
-
set(key: string, value: string): void;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export type { AuthStorage as A, Config as C, DisplayMode as D, Endpoints as E, ForwardedTokens as F, OIDCTokenResponseBody as O, SessionData as S, Tokens as T, User as U, UnknownObject as a, EmptyObject as b };
|
package/dist/types-HdCjGldB.d.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { TokenResponseBody } from 'oslo/oauth2';
|
|
2
|
-
|
|
3
|
-
type UnknownObject = Record<string, unknown>;
|
|
4
|
-
type EmptyObject = Record<string, never>;
|
|
5
|
-
type DisplayMode = "iframe" | "redirect" | "new_tab" | "custom_tab";
|
|
6
|
-
type Endpoints = {
|
|
7
|
-
jwks: string;
|
|
8
|
-
auth: string;
|
|
9
|
-
token: string;
|
|
10
|
-
userinfo: string;
|
|
11
|
-
challenge?: string;
|
|
12
|
-
};
|
|
13
|
-
type Config = {
|
|
14
|
-
oauthServer: string;
|
|
15
|
-
endpoints?: Endpoints;
|
|
16
|
-
};
|
|
17
|
-
type SessionData = {
|
|
18
|
-
authenticated: boolean;
|
|
19
|
-
state?: string;
|
|
20
|
-
accessToken?: string;
|
|
21
|
-
refreshToken?: string;
|
|
22
|
-
idToken?: string;
|
|
23
|
-
timestamp?: number;
|
|
24
|
-
expiresIn?: number;
|
|
25
|
-
codeVerifier?: string;
|
|
26
|
-
displayMode?: DisplayMode;
|
|
27
|
-
openerUrl?: string;
|
|
28
|
-
};
|
|
29
|
-
type OIDCTokenResponseBody = TokenResponseBody & {
|
|
30
|
-
id_token: string;
|
|
31
|
-
};
|
|
32
|
-
type ForwardedTokens = Record<string, {
|
|
33
|
-
idToken?: string;
|
|
34
|
-
accessToken?: string;
|
|
35
|
-
refreshToken?: string;
|
|
36
|
-
}>;
|
|
37
|
-
type Tokens = {
|
|
38
|
-
idToken: string;
|
|
39
|
-
accessToken: string;
|
|
40
|
-
refreshToken: string;
|
|
41
|
-
forwardedTokens: ForwardedTokens;
|
|
42
|
-
};
|
|
43
|
-
type BaseUser = {
|
|
44
|
-
id: string;
|
|
45
|
-
email?: string;
|
|
46
|
-
name?: string;
|
|
47
|
-
given_name?: string;
|
|
48
|
-
family_name?: string;
|
|
49
|
-
picture?: string;
|
|
50
|
-
updated_at?: Date;
|
|
51
|
-
};
|
|
52
|
-
type User<T extends UnknownObject = EmptyObject> = BaseUser & Partial<Tokens> & T;
|
|
53
|
-
interface AuthStorage {
|
|
54
|
-
get(key: string): string | null;
|
|
55
|
-
set(key: string, value: string): void;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export type { AuthStorage as A, Config as C, DisplayMode as D, Endpoints as E, ForwardedTokens as F, OIDCTokenResponseBody as O, SessionData as S, Tokens as T, User as U, UnknownObject as a, EmptyObject as b };
|