@binoauth/react 0.8.21 → 0.8.22
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/dist/components/AuthCallbackPage.d.ts +109 -0
- package/dist/components/AuthCallbackPage.d.ts.map +1 -0
- package/dist/components/AuthCallbackPage.js +270 -0
- package/dist/components/AuthCallbackPage.js.map +1 -0
- package/dist/components/AuthErrorBoundary.d.ts +34 -0
- package/dist/components/AuthErrorBoundary.d.ts.map +1 -0
- package/dist/components/AuthErrorBoundary.js +78 -0
- package/dist/components/AuthErrorBoundary.js.map +1 -0
- package/dist/components/AuthProvider.d.ts +29 -0
- package/dist/components/AuthProvider.d.ts.map +1 -0
- package/dist/components/AuthProvider.js +204 -0
- package/dist/components/AuthProvider.js.map +1 -0
- package/dist/components/ProtectedRoute.d.ts +8 -0
- package/dist/components/ProtectedRoute.d.ts.map +1 -0
- package/dist/components/ProtectedRoute.js +27 -0
- package/dist/components/ProtectedRoute.js.map +1 -0
- package/dist/context.d.ts +13 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +4 -0
- package/dist/context.js.map +1 -0
- package/dist/hooks.d.ts +2 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +10 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +2 -1
@@ -0,0 +1,109 @@
|
|
1
|
+
import { type CSSProperties } from "react";
|
2
|
+
export interface AuthCallbackPageStyles {
|
3
|
+
container?: CSSProperties;
|
4
|
+
content?: CSSProperties;
|
5
|
+
icon?: CSSProperties;
|
6
|
+
title?: CSSProperties;
|
7
|
+
message?: CSSProperties;
|
8
|
+
subtitle?: CSSProperties;
|
9
|
+
}
|
10
|
+
export interface AuthCallbackPageProps {
|
11
|
+
/**
|
12
|
+
* URL search parameters containing code and state
|
13
|
+
*/
|
14
|
+
searchParams?: URLSearchParams;
|
15
|
+
/**
|
16
|
+
* Callback function to execute after successful authentication
|
17
|
+
*/
|
18
|
+
onSuccess?: (user: any) => void;
|
19
|
+
/**
|
20
|
+
* Callback function to execute on authentication error
|
21
|
+
*/
|
22
|
+
onError?: (error: Error) => void;
|
23
|
+
/**
|
24
|
+
* URL to redirect to after successful authentication
|
25
|
+
*/
|
26
|
+
successRedirectUrl?: string;
|
27
|
+
/**
|
28
|
+
* URL to redirect to after failed authentication
|
29
|
+
*/
|
30
|
+
errorRedirectUrl?: string;
|
31
|
+
/**
|
32
|
+
* Custom loading component
|
33
|
+
*/
|
34
|
+
loadingComponent?: React.ReactNode;
|
35
|
+
/**
|
36
|
+
* Custom error component
|
37
|
+
*/
|
38
|
+
errorComponent?: (error: Error) => React.ReactNode;
|
39
|
+
/**
|
40
|
+
* Custom styles for different states
|
41
|
+
*/
|
42
|
+
styles?: {
|
43
|
+
loading?: AuthCallbackPageStyles;
|
44
|
+
success?: AuthCallbackPageStyles;
|
45
|
+
error?: AuthCallbackPageStyles;
|
46
|
+
};
|
47
|
+
/**
|
48
|
+
* CSS class names for different states
|
49
|
+
*/
|
50
|
+
classNames?: {
|
51
|
+
loading?: {
|
52
|
+
container?: string;
|
53
|
+
content?: string;
|
54
|
+
icon?: string;
|
55
|
+
title?: string;
|
56
|
+
message?: string;
|
57
|
+
subtitle?: string;
|
58
|
+
};
|
59
|
+
success?: {
|
60
|
+
container?: string;
|
61
|
+
content?: string;
|
62
|
+
icon?: string;
|
63
|
+
title?: string;
|
64
|
+
message?: string;
|
65
|
+
subtitle?: string;
|
66
|
+
};
|
67
|
+
error?: {
|
68
|
+
container?: string;
|
69
|
+
content?: string;
|
70
|
+
icon?: string;
|
71
|
+
title?: string;
|
72
|
+
message?: string;
|
73
|
+
subtitle?: string;
|
74
|
+
};
|
75
|
+
};
|
76
|
+
}
|
77
|
+
/**
|
78
|
+
* AuthCallbackPage component handles OAuth callback processing
|
79
|
+
*
|
80
|
+
* @example
|
81
|
+
* ```tsx
|
82
|
+
* // Basic usage
|
83
|
+
* <AuthCallbackPage />
|
84
|
+
*
|
85
|
+
* // With custom redirects
|
86
|
+
* <AuthCallbackPage
|
87
|
+
* successRedirectUrl="/dashboard"
|
88
|
+
* errorRedirectUrl="/login?error=auth_failed"
|
89
|
+
* />
|
90
|
+
*
|
91
|
+
* // With custom styling
|
92
|
+
* <AuthCallbackPage
|
93
|
+
* styles={{
|
94
|
+
* loading: {
|
95
|
+
* container: { backgroundColor: "#000" },
|
96
|
+
* title: { color: "#fff" }
|
97
|
+
* }
|
98
|
+
* }}
|
99
|
+
* classNames={{
|
100
|
+
* success: {
|
101
|
+
* container: "success-container",
|
102
|
+
* title: "success-title"
|
103
|
+
* }
|
104
|
+
* }}
|
105
|
+
* />
|
106
|
+
* ```
|
107
|
+
*/
|
108
|
+
export declare function AuthCallbackPage({ searchParams, onSuccess, onError, successRedirectUrl, errorRedirectUrl, loadingComponent, errorComponent, styles, classNames, }: AuthCallbackPageProps): import("react/jsx-runtime").JSX.Element;
|
109
|
+
//# sourceMappingURL=AuthCallbackPage.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AuthCallbackPage.d.ts","sourceRoot":"","sources":["../../src/components/AuthCallbackPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAGhE,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;IACnD;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,sBAAsB,CAAC;QACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;QACjC,KAAK,CAAC,EAAE,sBAAsB,CAAC;KAChC,CAAC;IACF;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE;YACR,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,OAAO,CAAC,EAAE;YACR,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,KAAK,CAAC,EAAE;YACN,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;CACH;AAwHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,SAAS,EACT,OAAO,EACP,kBAAwB,EACxB,gBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,MAAM,EACN,UAAU,GACX,EAAE,qBAAqB,2CAoQvB"}
|
@@ -0,0 +1,270 @@
|
|
1
|
+
"use client";
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
3
|
+
import { useEffect, useState } from "react";
|
4
|
+
import { useAuth } from "../hooks";
|
5
|
+
// Default styles
|
6
|
+
const defaultStyles = {
|
7
|
+
loading: {
|
8
|
+
container: {
|
9
|
+
minHeight: "100vh",
|
10
|
+
display: "flex",
|
11
|
+
alignItems: "center",
|
12
|
+
justifyContent: "center",
|
13
|
+
backgroundColor: "#f9fafb",
|
14
|
+
fontFamily: "system-ui, -apple-system, sans-serif",
|
15
|
+
},
|
16
|
+
content: {
|
17
|
+
maxWidth: "28rem",
|
18
|
+
width: "100%",
|
19
|
+
padding: "2rem",
|
20
|
+
textAlign: "center",
|
21
|
+
},
|
22
|
+
icon: {
|
23
|
+
margin: "0 auto 1.5rem",
|
24
|
+
height: "3rem",
|
25
|
+
width: "3rem",
|
26
|
+
color: "#4f46e5",
|
27
|
+
},
|
28
|
+
title: {
|
29
|
+
margin: "1.5rem 0 0.5rem",
|
30
|
+
fontSize: "1.875rem",
|
31
|
+
fontWeight: "800",
|
32
|
+
color: "#111827",
|
33
|
+
},
|
34
|
+
message: {
|
35
|
+
margin: "0.5rem 0",
|
36
|
+
fontSize: "0.875rem",
|
37
|
+
color: "#6b7280",
|
38
|
+
},
|
39
|
+
subtitle: {
|
40
|
+
margin: "1rem 0",
|
41
|
+
fontSize: "0.75rem",
|
42
|
+
color: "#9ca3af",
|
43
|
+
},
|
44
|
+
},
|
45
|
+
success: {
|
46
|
+
container: {
|
47
|
+
minHeight: "100vh",
|
48
|
+
display: "flex",
|
49
|
+
alignItems: "center",
|
50
|
+
justifyContent: "center",
|
51
|
+
backgroundColor: "#f9fafb",
|
52
|
+
fontFamily: "system-ui, -apple-system, sans-serif",
|
53
|
+
},
|
54
|
+
content: {
|
55
|
+
maxWidth: "28rem",
|
56
|
+
width: "100%",
|
57
|
+
padding: "2rem",
|
58
|
+
textAlign: "center",
|
59
|
+
},
|
60
|
+
icon: {
|
61
|
+
margin: "0 auto 1.5rem",
|
62
|
+
height: "3rem",
|
63
|
+
width: "3rem",
|
64
|
+
color: "#059669",
|
65
|
+
},
|
66
|
+
title: {
|
67
|
+
margin: "1.5rem 0 0.5rem",
|
68
|
+
fontSize: "1.875rem",
|
69
|
+
fontWeight: "800",
|
70
|
+
color: "#111827",
|
71
|
+
},
|
72
|
+
message: {
|
73
|
+
margin: "0.5rem 0",
|
74
|
+
fontSize: "0.875rem",
|
75
|
+
color: "#6b7280",
|
76
|
+
},
|
77
|
+
subtitle: {
|
78
|
+
margin: "1rem 0",
|
79
|
+
fontSize: "0.75rem",
|
80
|
+
color: "#9ca3af",
|
81
|
+
},
|
82
|
+
},
|
83
|
+
error: {
|
84
|
+
container: {
|
85
|
+
minHeight: "100vh",
|
86
|
+
display: "flex",
|
87
|
+
alignItems: "center",
|
88
|
+
justifyContent: "center",
|
89
|
+
backgroundColor: "#f9fafb",
|
90
|
+
fontFamily: "system-ui, -apple-system, sans-serif",
|
91
|
+
},
|
92
|
+
content: {
|
93
|
+
maxWidth: "28rem",
|
94
|
+
width: "100%",
|
95
|
+
padding: "2rem",
|
96
|
+
textAlign: "center",
|
97
|
+
},
|
98
|
+
icon: {
|
99
|
+
margin: "0 auto 1.5rem",
|
100
|
+
height: "3rem",
|
101
|
+
width: "3rem",
|
102
|
+
color: "#dc2626",
|
103
|
+
},
|
104
|
+
title: {
|
105
|
+
margin: "1.5rem 0 0.5rem",
|
106
|
+
fontSize: "1.875rem",
|
107
|
+
fontWeight: "800",
|
108
|
+
color: "#111827",
|
109
|
+
},
|
110
|
+
message: {
|
111
|
+
margin: "0.5rem 0",
|
112
|
+
fontSize: "0.875rem",
|
113
|
+
color: "#6b7280",
|
114
|
+
},
|
115
|
+
subtitle: {
|
116
|
+
margin: "1rem 0",
|
117
|
+
fontSize: "0.75rem",
|
118
|
+
color: "#9ca3af",
|
119
|
+
},
|
120
|
+
},
|
121
|
+
};
|
122
|
+
/**
|
123
|
+
* AuthCallbackPage component handles OAuth callback processing
|
124
|
+
*
|
125
|
+
* @example
|
126
|
+
* ```tsx
|
127
|
+
* // Basic usage
|
128
|
+
* <AuthCallbackPage />
|
129
|
+
*
|
130
|
+
* // With custom redirects
|
131
|
+
* <AuthCallbackPage
|
132
|
+
* successRedirectUrl="/dashboard"
|
133
|
+
* errorRedirectUrl="/login?error=auth_failed"
|
134
|
+
* />
|
135
|
+
*
|
136
|
+
* // With custom styling
|
137
|
+
* <AuthCallbackPage
|
138
|
+
* styles={{
|
139
|
+
* loading: {
|
140
|
+
* container: { backgroundColor: "#000" },
|
141
|
+
* title: { color: "#fff" }
|
142
|
+
* }
|
143
|
+
* }}
|
144
|
+
* classNames={{
|
145
|
+
* success: {
|
146
|
+
* container: "success-container",
|
147
|
+
* title: "success-title"
|
148
|
+
* }
|
149
|
+
* }}
|
150
|
+
* />
|
151
|
+
* ```
|
152
|
+
*/
|
153
|
+
export function AuthCallbackPage({ searchParams, onSuccess, onError, successRedirectUrl = "/", errorRedirectUrl = "/", loadingComponent, errorComponent, styles, classNames, }) {
|
154
|
+
const { callback, user, error } = useAuth();
|
155
|
+
const [processing, setProcessing] = useState(false);
|
156
|
+
const [callbackError, setCallbackError] = useState(null);
|
157
|
+
// Merge custom styles with defaults
|
158
|
+
const getStyles = (state) => {
|
159
|
+
const base = defaultStyles[state];
|
160
|
+
const custom = styles?.[state];
|
161
|
+
return {
|
162
|
+
container: { ...base.container, ...custom?.container },
|
163
|
+
content: { ...base.content, ...custom?.content },
|
164
|
+
icon: { ...base.icon, ...custom?.icon },
|
165
|
+
title: { ...base.title, ...custom?.title },
|
166
|
+
message: { ...base.message, ...custom?.message },
|
167
|
+
subtitle: { ...(base.subtitle || {}), ...custom?.subtitle },
|
168
|
+
};
|
169
|
+
};
|
170
|
+
useEffect(() => {
|
171
|
+
const handleCallback = async () => {
|
172
|
+
// Prevent multiple callback attempts
|
173
|
+
if (processing)
|
174
|
+
return;
|
175
|
+
// Get URL parameters
|
176
|
+
const urlParams = searchParams || new URLSearchParams(window.location.search);
|
177
|
+
const code = urlParams.get("code");
|
178
|
+
const state = urlParams.get("state");
|
179
|
+
// Check for OAuth error in URL
|
180
|
+
const oauthError = urlParams.get("error");
|
181
|
+
const errorDescription = urlParams.get("error_description");
|
182
|
+
if (oauthError) {
|
183
|
+
const authError = new Error(errorDescription || `OAuth error: ${oauthError}`);
|
184
|
+
setCallbackError(authError);
|
185
|
+
onError?.(authError);
|
186
|
+
// Redirect to error URL after delay
|
187
|
+
setTimeout(() => {
|
188
|
+
window.location.href = errorRedirectUrl;
|
189
|
+
}, 2000);
|
190
|
+
return;
|
191
|
+
}
|
192
|
+
// Validate required parameters
|
193
|
+
if (!code || !state) {
|
194
|
+
const missingParamsError = new Error("Missing required OAuth callback parameters (code or state)");
|
195
|
+
setCallbackError(missingParamsError);
|
196
|
+
onError?.(missingParamsError);
|
197
|
+
// Redirect to error URL after delay
|
198
|
+
setTimeout(() => {
|
199
|
+
window.location.href = errorRedirectUrl;
|
200
|
+
}, 2000);
|
201
|
+
return;
|
202
|
+
}
|
203
|
+
setProcessing(true);
|
204
|
+
try {
|
205
|
+
// Process the OAuth callback
|
206
|
+
await callback(code, state);
|
207
|
+
}
|
208
|
+
catch (err) {
|
209
|
+
const callbackErr = err;
|
210
|
+
setCallbackError(callbackErr);
|
211
|
+
onError?.(callbackErr);
|
212
|
+
// Redirect to error URL after delay
|
213
|
+
setTimeout(() => {
|
214
|
+
window.location.href = errorRedirectUrl;
|
215
|
+
}, 2000);
|
216
|
+
}
|
217
|
+
finally {
|
218
|
+
setProcessing(false);
|
219
|
+
}
|
220
|
+
};
|
221
|
+
handleCallback();
|
222
|
+
}, [
|
223
|
+
callback,
|
224
|
+
onError,
|
225
|
+
onSuccess,
|
226
|
+
processing,
|
227
|
+
searchParams,
|
228
|
+
errorRedirectUrl,
|
229
|
+
successRedirectUrl,
|
230
|
+
]);
|
231
|
+
// Handle successful authentication
|
232
|
+
useEffect(() => {
|
233
|
+
if (user && !processing && !callbackError && !error) {
|
234
|
+
onSuccess?.(user);
|
235
|
+
// Redirect to success URL
|
236
|
+
setTimeout(() => {
|
237
|
+
window.location.href = successRedirectUrl;
|
238
|
+
}, 1000);
|
239
|
+
}
|
240
|
+
}, [user, processing, callbackError, error, onSuccess, successRedirectUrl]);
|
241
|
+
// Display error if callback failed
|
242
|
+
const displayError = callbackError || error;
|
243
|
+
if (displayError) {
|
244
|
+
if (errorComponent) {
|
245
|
+
return _jsx(_Fragment, { children: errorComponent(displayError) });
|
246
|
+
}
|
247
|
+
const errorStyles = getStyles('error');
|
248
|
+
return (_jsx("div", { style: errorStyles.container, className: classNames?.error?.container, children: _jsx("div", { style: errorStyles.content, className: classNames?.error?.content, children: _jsxs("div", { children: [_jsx("h2", { style: errorStyles.title, className: classNames?.error?.title, children: "Authentication Failed" }), _jsx("p", { style: errorStyles.message, className: classNames?.error?.message, children: displayError.message }), _jsx("p", { style: errorStyles.subtitle, className: classNames?.error?.subtitle, children: "Redirecting to login page..." })] }) }) }));
|
249
|
+
}
|
250
|
+
// Show success state when user is authenticated
|
251
|
+
if (user && !processing) {
|
252
|
+
const successStyles = getStyles('success');
|
253
|
+
return (_jsx("div", { style: successStyles.container, className: classNames?.success?.container, children: _jsx("div", { style: successStyles.content, className: classNames?.success?.content, children: _jsxs("div", { children: [_jsx("div", { style: successStyles.icon, className: classNames?.success?.icon, children: _jsx("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }) }), _jsx("h2", { style: successStyles.title, className: classNames?.success?.title, children: "Authentication Successful" }), _jsxs("p", { style: successStyles.message, className: classNames?.success?.message, children: ["Welcome, ", user.name || user.email || "User", "!"] }), _jsx("p", { style: successStyles.subtitle, className: classNames?.success?.subtitle, children: "Redirecting..." })] }) }) }));
|
254
|
+
}
|
255
|
+
// Show loading state
|
256
|
+
if (loadingComponent) {
|
257
|
+
return _jsx(_Fragment, { children: loadingComponent });
|
258
|
+
}
|
259
|
+
const loadingStyles = getStyles('loading');
|
260
|
+
return (_jsxs("div", { style: loadingStyles.container, className: classNames?.loading?.container, children: [_jsx("div", { style: loadingStyles.content, className: classNames?.loading?.content, children: _jsxs("div", { children: [_jsx("div", { style: {
|
261
|
+
...loadingStyles.icon,
|
262
|
+
animation: 'spin 1s linear infinite'
|
263
|
+
}, className: classNames?.loading?.icon, children: _jsx("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" }) }) }), _jsx("h2", { style: loadingStyles.title, className: classNames?.loading?.title, children: "Processing Authentication" }), _jsx("p", { style: loadingStyles.message, className: classNames?.loading?.message, children: "Please wait while we complete your login..." })] }) }), _jsx("style", { children: `
|
264
|
+
@keyframes spin {
|
265
|
+
from { transform: rotate(0deg); }
|
266
|
+
to { transform: rotate(360deg); }
|
267
|
+
}
|
268
|
+
` })] }));
|
269
|
+
}
|
270
|
+
//# sourceMappingURL=AuthCallbackPage.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AuthCallbackPage.js","sourceRoot":"","sources":["../../src/components/AuthCallbackPage.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import React, { Component, type ReactNode } from 'react';
|
2
|
+
interface AuthErrorBoundaryState {
|
3
|
+
hasError: boolean;
|
4
|
+
error?: Error;
|
5
|
+
errorInfo?: React.ErrorInfo;
|
6
|
+
}
|
7
|
+
interface AuthErrorBoundaryProps {
|
8
|
+
children: ReactNode;
|
9
|
+
fallback?: (error: Error, errorInfo?: React.ErrorInfo) => ReactNode;
|
10
|
+
onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
|
11
|
+
}
|
12
|
+
/**
|
13
|
+
* Error boundary specifically for authentication-related errors
|
14
|
+
* SECURITY: Prevents authentication errors from crashing the entire app
|
15
|
+
* and provides secure error handling for auth components
|
16
|
+
*/
|
17
|
+
export declare class AuthErrorBoundary extends Component<AuthErrorBoundaryProps, AuthErrorBoundaryState> {
|
18
|
+
constructor(props: AuthErrorBoundaryProps);
|
19
|
+
static getDerivedStateFromError(error: Error): AuthErrorBoundaryState;
|
20
|
+
componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
|
21
|
+
render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* Hook version of error boundary for functional components
|
25
|
+
* SECURITY: Provides error handling capabilities to functional auth components
|
26
|
+
*/
|
27
|
+
export declare function useAuthErrorHandler(): {
|
28
|
+
error: Error | null;
|
29
|
+
handleError: (error: Error) => void;
|
30
|
+
clearError: () => void;
|
31
|
+
hasError: boolean;
|
32
|
+
};
|
33
|
+
export {};
|
34
|
+
//# sourceMappingURL=AuthErrorBoundary.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AuthErrorBoundary.d.ts","sourceRoot":"","sources":["../../src/components/AuthErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzD,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC;IACpE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;CAC9D;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,SAAS,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;gBAClF,KAAK,EAAE,sBAAsB;IAKzC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,sBAAsB;IAKrE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;IAmB1D,MAAM;CAqCP;AAED;;;GAGG;AACH,wBAAgB,mBAAmB;;yBAGa,KAAK;;;EAepD"}
|
@@ -0,0 +1,78 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React, { Component } from 'react';
|
3
|
+
/**
|
4
|
+
* Error boundary specifically for authentication-related errors
|
5
|
+
* SECURITY: Prevents authentication errors from crashing the entire app
|
6
|
+
* and provides secure error handling for auth components
|
7
|
+
*/
|
8
|
+
export class AuthErrorBoundary extends Component {
|
9
|
+
constructor(props) {
|
10
|
+
super(props);
|
11
|
+
this.state = { hasError: false };
|
12
|
+
}
|
13
|
+
static getDerivedStateFromError(error) {
|
14
|
+
// Update state so the next render will show the fallback UI
|
15
|
+
return { hasError: true, error };
|
16
|
+
}
|
17
|
+
componentDidCatch(error, errorInfo) {
|
18
|
+
// SECURITY: Log authentication errors securely
|
19
|
+
console.error('Authentication error caught by boundary:', {
|
20
|
+
error: error.message,
|
21
|
+
stack: error.stack,
|
22
|
+
componentStack: errorInfo.componentStack
|
23
|
+
});
|
24
|
+
this.setState({
|
25
|
+
error,
|
26
|
+
errorInfo
|
27
|
+
});
|
28
|
+
// Call custom error handler if provided
|
29
|
+
if (this.props.onError) {
|
30
|
+
this.props.onError(error, errorInfo);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
render() {
|
34
|
+
if (this.state.hasError && this.state.error) {
|
35
|
+
// SECURITY: Use custom fallback if provided, otherwise default safe fallback
|
36
|
+
if (this.props.fallback) {
|
37
|
+
return this.props.fallback(this.state.error, this.state.errorInfo);
|
38
|
+
}
|
39
|
+
// Default fallback - shows safe error message without exposing internals
|
40
|
+
return (_jsxs("div", { style: {
|
41
|
+
padding: '20px',
|
42
|
+
border: '1px solid #ff6b6b',
|
43
|
+
borderRadius: '4px',
|
44
|
+
backgroundColor: '#ffe0e0',
|
45
|
+
color: '#d63031'
|
46
|
+
}, children: [_jsx("h3", { children: "Authentication Error" }), _jsx("p", { children: "Something went wrong with authentication. Please try refreshing the page." }), _jsxs("details", { style: { marginTop: '10px' }, children: [_jsx("summary", { children: "Error Details" }), _jsx("pre", { style: {
|
47
|
+
fontSize: '12px',
|
48
|
+
marginTop: '10px',
|
49
|
+
padding: '10px',
|
50
|
+
backgroundColor: '#f8f8f8',
|
51
|
+
borderRadius: '4px',
|
52
|
+
overflow: 'auto'
|
53
|
+
}, children: this.state.error.message })] })] }));
|
54
|
+
}
|
55
|
+
return this.props.children;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
/**
|
59
|
+
* Hook version of error boundary for functional components
|
60
|
+
* SECURITY: Provides error handling capabilities to functional auth components
|
61
|
+
*/
|
62
|
+
export function useAuthErrorHandler() {
|
63
|
+
const [error, setError] = React.useState(null);
|
64
|
+
const handleError = React.useCallback((error) => {
|
65
|
+
console.error('Authentication error:', error);
|
66
|
+
setError(error);
|
67
|
+
}, []);
|
68
|
+
const clearError = React.useCallback(() => {
|
69
|
+
setError(null);
|
70
|
+
}, []);
|
71
|
+
return {
|
72
|
+
error,
|
73
|
+
handleError,
|
74
|
+
clearError,
|
75
|
+
hasError: !!error
|
76
|
+
};
|
77
|
+
}
|
78
|
+
//# sourceMappingURL=AuthErrorBoundary.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AuthErrorBoundary.js","sourceRoot":"","sources":["../../src/components/AuthErrorBoundary.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAczD;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAyD;IAC9F,YAAY,KAA6B;QACvC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,4DAA4D;QAC5D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,SAA0B;QACxD,+CAA+C;QAC/C,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE;YACxD,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,cAAc,EAAE,SAAS,CAAC,cAAc;SACzC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC;YACZ,KAAK;YACL,SAAS;SACV,CAAC,CAAC;QAEH,wCAAwC;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5C,6EAA6E;YAC7E,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrE,CAAC;YAED,yEAAyE;YACzE,OAAO,CACL,eAAK,KAAK,EAAE;oBACV,OAAO,EAAE,MAAM;oBACf,MAAM,EAAE,mBAAmB;oBAC3B,YAAY,EAAE,KAAK;oBACnB,eAAe,EAAE,SAAS;oBAC1B,KAAK,EAAE,SAAS;iBACjB,aACC,gDAA6B,EAC7B,oGAAgF,EAChF,mBAAS,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,aACnC,8CAAgC,EAChC,cAAK,KAAK,EAAE;oCACV,QAAQ,EAAE,MAAM;oCAChB,SAAS,EAAE,MAAM;oCACjB,OAAO,EAAE,MAAM;oCACf,eAAe,EAAE,SAAS;oCAC1B,YAAY,EAAE,KAAK;oCACnB,QAAQ,EAAE,MAAM;iCACjB,YACE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GACrB,IACE,IACN,CACP,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAe,IAAI,CAAC,CAAC;IAE7D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAY,EAAE,EAAE;QACrD,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC9C,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,KAAK;QACL,WAAW;QACX,UAAU;QACV,QAAQ,EAAE,CAAC,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { type ReactNode } from "react";
|
2
|
+
import { type BinoAuthConfig, type StorageConfig } from "binoauth";
|
3
|
+
export interface ClientSafeAuthConfig {
|
4
|
+
clientId: string;
|
5
|
+
issuer: string;
|
6
|
+
redirectUri: string;
|
7
|
+
scope?: string;
|
8
|
+
}
|
9
|
+
interface ClientSafeStorageConfig {
|
10
|
+
storage?: 'localStorage' | 'sessionStorage';
|
11
|
+
secure?: boolean;
|
12
|
+
prefix?: string;
|
13
|
+
clientId?: string;
|
14
|
+
encryptionKey?: string;
|
15
|
+
}
|
16
|
+
interface AuthProviderProps {
|
17
|
+
children: ReactNode;
|
18
|
+
config: {
|
19
|
+
auth: ClientSafeAuthConfig;
|
20
|
+
storage: ClientSafeStorageConfig;
|
21
|
+
};
|
22
|
+
serverConfig?: {
|
23
|
+
auth: BinoAuthConfig;
|
24
|
+
storage: StorageConfig;
|
25
|
+
};
|
26
|
+
}
|
27
|
+
export declare function AuthProvider({ children, config, serverConfig }: AuthProviderProps): import("react/jsx-runtime").JSX.Element;
|
28
|
+
export {};
|
29
|
+
//# sourceMappingURL=AuthProvider.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../src/components/AuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAC5D,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,UAAU,CAAC;AAwDlB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE;QACN,IAAI,EAAE,oBAAoB,CAAC;QAC3B,OAAO,EAAE,uBAAuB,CAAC;KAClC,CAAC;IAEF,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,cAAc,CAAC;QACrB,OAAO,EAAE,aAAa,CAAC;KACxB,CAAC;CACH;AAqDD,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,iBAAiB,2CA0HjF"}
|
@@ -0,0 +1,204 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { useEffect, useState } from "react";
|
3
|
+
import { BinoAuthOAuth as AuthClient, } from "binoauth";
|
4
|
+
import { AuthContext } from "../context";
|
5
|
+
import { AuthErrorBoundary } from "./AuthErrorBoundary";
|
6
|
+
/**
|
7
|
+
* Generate a client-side encryption key for storage
|
8
|
+
* SECURITY: This is not as secure as server-side keys but provides basic protection
|
9
|
+
* @param clientId - Client ID for key derivation
|
10
|
+
* @returns Encryption key
|
11
|
+
*/
|
12
|
+
function generateClientEncryptionKey(clientId) {
|
13
|
+
// Use a combination of client ID and browser fingerprint for key derivation
|
14
|
+
const fingerprint = `${navigator.userAgent}-${window.location.origin}-${clientId}`;
|
15
|
+
// Create a simple hash (in production, use a proper PBKDF2/scrypt)
|
16
|
+
let hash = 0;
|
17
|
+
for (let i = 0; i < fingerprint.length; i++) {
|
18
|
+
const char = fingerprint.charCodeAt(i);
|
19
|
+
hash = ((hash << 5) - hash) + char;
|
20
|
+
hash = hash & hash; // Convert to 32-bit integer
|
21
|
+
}
|
22
|
+
// Pad to create a reasonably long key
|
23
|
+
return `client_${Math.abs(hash).toString(16).padStart(16, '0')}_${clientId.slice(0, 8)}`;
|
24
|
+
}
|
25
|
+
/**
|
26
|
+
* Validate return-to URL to prevent open redirect attacks
|
27
|
+
* @param returnTo - URL to validate
|
28
|
+
* @returns Safe URL or null if invalid
|
29
|
+
*/
|
30
|
+
function validateReturnToUrl(returnTo) {
|
31
|
+
if (!returnTo)
|
32
|
+
return null;
|
33
|
+
try {
|
34
|
+
const url = new URL(returnTo, window.location.origin);
|
35
|
+
// SECURITY: Only allow same-origin URLs
|
36
|
+
if (url.origin !== window.location.origin) {
|
37
|
+
console.warn('Rejected returnTo URL with different origin:', returnTo);
|
38
|
+
return null;
|
39
|
+
}
|
40
|
+
// SECURITY: Block javascript: and data: URLs
|
41
|
+
if (url.protocol === 'javascript:' || url.protocol === 'data:') {
|
42
|
+
console.warn('Rejected dangerous returnTo URL protocol:', returnTo);
|
43
|
+
return null;
|
44
|
+
}
|
45
|
+
return url.toString();
|
46
|
+
}
|
47
|
+
catch (error) {
|
48
|
+
console.warn('Invalid returnTo URL:', returnTo, error);
|
49
|
+
return null;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
/**
|
53
|
+
* Construct BinoAuthConfig from simplified ClientSafeAuthConfig
|
54
|
+
* @param config - Simplified client-safe config
|
55
|
+
* @returns BinoAuthConfig for use with BinoAuthOAuth client
|
56
|
+
*/
|
57
|
+
function constructAuthConfig(config) {
|
58
|
+
return {
|
59
|
+
issuer: config.issuer,
|
60
|
+
clientId: config.clientId,
|
61
|
+
redirectUri: config.redirectUri,
|
62
|
+
scope: config.scope || 'openid profile email',
|
63
|
+
};
|
64
|
+
}
|
65
|
+
/**
|
66
|
+
* Validate AuthProvider props for security
|
67
|
+
* @param props - Props to validate
|
68
|
+
* @throws Error if props contain security issues
|
69
|
+
*/
|
70
|
+
function validateAuthProviderProps(props) {
|
71
|
+
const { config } = props;
|
72
|
+
// SECURITY: Validate required auth config fields
|
73
|
+
if (!config.auth.clientId || typeof config.auth.clientId !== 'string') {
|
74
|
+
throw new Error('AuthProvider: clientId is required and must be a string');
|
75
|
+
}
|
76
|
+
if (!config.auth.issuer || typeof config.auth.issuer !== 'string') {
|
77
|
+
throw new Error('AuthProvider: issuer is required and must be a string');
|
78
|
+
}
|
79
|
+
if (!config.auth.redirectUri || typeof config.auth.redirectUri !== 'string') {
|
80
|
+
throw new Error('AuthProvider: redirectUri is required and must be a string');
|
81
|
+
}
|
82
|
+
// SECURITY: Validate URLs are properly formed
|
83
|
+
try {
|
84
|
+
new URL(config.auth.issuer);
|
85
|
+
}
|
86
|
+
catch {
|
87
|
+
throw new Error('AuthProvider: issuer must be a valid URL');
|
88
|
+
}
|
89
|
+
try {
|
90
|
+
new URL(config.auth.redirectUri);
|
91
|
+
}
|
92
|
+
catch {
|
93
|
+
throw new Error('AuthProvider: redirectUri must be a valid URL');
|
94
|
+
}
|
95
|
+
// SECURITY: Validate storage config
|
96
|
+
if (config.storage.storage && !['localStorage', 'sessionStorage'].includes(config.storage.storage)) {
|
97
|
+
throw new Error('AuthProvider: storage must be either "localStorage" or "sessionStorage"');
|
98
|
+
}
|
99
|
+
// SECURITY: Warn about insecure configurations
|
100
|
+
if (config.storage.secure === false) {
|
101
|
+
console.warn('SECURITY WARNING: AuthProvider configured with secure=false. Tokens may be vulnerable.');
|
102
|
+
}
|
103
|
+
// SECURITY: Check for accidentally passed sensitive data
|
104
|
+
const configStr = JSON.stringify(config);
|
105
|
+
if (configStr.includes('secret') || configStr.includes('private') || configStr.includes('key')) {
|
106
|
+
console.warn('SECURITY WARNING: AuthProvider config may contain sensitive data. Ensure no secrets are passed to client-side components.');
|
107
|
+
}
|
108
|
+
}
|
109
|
+
export function AuthProvider({ children, config, serverConfig }) {
|
110
|
+
// SECURITY: Validate props before proceeding
|
111
|
+
validateAuthProviderProps({ children, config, serverConfig });
|
112
|
+
// SECURITY: Use server config when available (SSR), otherwise construct from client config
|
113
|
+
const authConfig = serverConfig ? serverConfig.auth : constructAuthConfig(config.auth);
|
114
|
+
const storageConfig = serverConfig ? serverConfig.storage : config.storage;
|
115
|
+
const [client] = useState(() => {
|
116
|
+
// SECURITY: Ensure encryption key is available for storage
|
117
|
+
const finalStorageConfig = {
|
118
|
+
...storageConfig,
|
119
|
+
encryptionKey: storageConfig.encryptionKey || generateClientEncryptionKey(authConfig.clientId)
|
120
|
+
};
|
121
|
+
return new AuthClient(authConfig, finalStorageConfig);
|
122
|
+
});
|
123
|
+
const [user, setUser] = useState(null);
|
124
|
+
const [isLoading, setIsLoading] = useState(true);
|
125
|
+
const [error, setError] = useState(null);
|
126
|
+
useEffect(() => {
|
127
|
+
client
|
128
|
+
.getUserInfo()
|
129
|
+
.then((user) => setUser(user))
|
130
|
+
.catch((err) => setError(err))
|
131
|
+
.finally(() => setIsLoading(false));
|
132
|
+
}, [client]);
|
133
|
+
const login = async () => {
|
134
|
+
try {
|
135
|
+
window.location.href = await client.getLoginUrl();
|
136
|
+
}
|
137
|
+
catch (err) {
|
138
|
+
setError(err);
|
139
|
+
throw err;
|
140
|
+
}
|
141
|
+
};
|
142
|
+
const logout = async (returnTo) => {
|
143
|
+
await client.logout();
|
144
|
+
// SECURITY: Validate returnTo URL to prevent open redirect attacks
|
145
|
+
const safeReturnTo = validateReturnToUrl(returnTo) || window.location.origin;
|
146
|
+
window.location.href = await client.getLogoutPageUrl(safeReturnTo);
|
147
|
+
};
|
148
|
+
const callback = async (code, state) => {
|
149
|
+
try {
|
150
|
+
// SECURITY: Additional CSRF protection - validate state format
|
151
|
+
if (!state || state.length < 32) {
|
152
|
+
throw new Error('Invalid state parameter format - potential CSRF attack');
|
153
|
+
}
|
154
|
+
// SECURITY: Validate code parameter
|
155
|
+
if (!code || code.length < 10) {
|
156
|
+
throw new Error('Invalid authorization code');
|
157
|
+
}
|
158
|
+
// SECURITY: Add request origin validation in React context
|
159
|
+
const currentOrigin = window.location.origin;
|
160
|
+
const configOrigin = new URL(authConfig.redirectUri).origin;
|
161
|
+
// SECURITY: Allow same-origin or localhost development scenarios
|
162
|
+
const isValidOrigin = currentOrigin === configOrigin ||
|
163
|
+
(process.env.NODE_ENV === 'development' &&
|
164
|
+
(currentOrigin.includes('localhost') || currentOrigin.includes('127.0.0.1')));
|
165
|
+
if (!isValidOrigin) {
|
166
|
+
console.warn('Origin validation failed:', { currentOrigin, configOrigin });
|
167
|
+
throw new Error('Origin mismatch - potential CSRF attack');
|
168
|
+
}
|
169
|
+
await client.handleCallback(code, state);
|
170
|
+
// SECURITY: Fetch user info only after successful token exchange
|
171
|
+
const userInfo = await client.getUserInfo();
|
172
|
+
setUser(userInfo);
|
173
|
+
// SECURITY: Clear error state on successful authentication
|
174
|
+
setError(null);
|
175
|
+
}
|
176
|
+
catch (err) {
|
177
|
+
console.error('Callback authentication failed:', err);
|
178
|
+
setError(err);
|
179
|
+
// SECURITY: Clear any potentially invalid user state
|
180
|
+
setUser(null);
|
181
|
+
// SECURITY: Optional - clear potentially compromised tokens
|
182
|
+
await client.logout();
|
183
|
+
}
|
184
|
+
};
|
185
|
+
const getAccessToken = async () => {
|
186
|
+
// SECURITY: Only return token value, not the full token object
|
187
|
+
const token = await client.getTokenStorage().getAccessToken();
|
188
|
+
return token?.value || null;
|
189
|
+
};
|
190
|
+
return (_jsx(AuthErrorBoundary, { onError: (error, errorInfo) => {
|
191
|
+
console.error('AuthProvider error boundary caught:', error, errorInfo);
|
192
|
+
setError(error);
|
193
|
+
}, children: _jsx(AuthContext.Provider, { value: {
|
194
|
+
user,
|
195
|
+
isLoading,
|
196
|
+
isAuthenticated: !!user,
|
197
|
+
error,
|
198
|
+
login,
|
199
|
+
logout,
|
200
|
+
callback,
|
201
|
+
getAccessToken,
|
202
|
+
}, children: children }) }));
|
203
|
+
}
|
204
|
+
//# sourceMappingURL=AuthProvider.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AuthProvider.js","sourceRoot":"","sources":["../../src/components/AuthProvider.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { type ReactNode } from "react";
|
2
|
+
interface ProtectedRouteProps {
|
3
|
+
children: ReactNode;
|
4
|
+
loadingFallback?: ReactNode;
|
5
|
+
}
|
6
|
+
export declare function ProtectedRoute({ children, loadingFallback, }: ProtectedRouteProps): import("react/jsx-runtime").JSX.Element;
|
7
|
+
export {};
|
8
|
+
//# sourceMappingURL=ProtectedRoute.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ProtectedRoute.d.ts","sourceRoot":"","sources":["../../src/components/ProtectedRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAGlD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,eAAe,GAChB,EAAE,mBAAmB,2CA2BrB"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { useEffect } from "react";
|
3
|
+
import { useAuth } from "../hooks";
|
4
|
+
export function ProtectedRoute({ children, loadingFallback, }) {
|
5
|
+
const { isAuthenticated, isLoading, login, error } = useAuth();
|
6
|
+
// SECURITY: Use useEffect to prevent infinite re-render loop
|
7
|
+
useEffect(() => {
|
8
|
+
if (!isLoading && !isAuthenticated && !error) {
|
9
|
+
login().catch((err) => {
|
10
|
+
console.error('Login failed in ProtectedRoute:', err);
|
11
|
+
});
|
12
|
+
}
|
13
|
+
}, [isLoading, isAuthenticated, login, error]);
|
14
|
+
if (isLoading) {
|
15
|
+
return loadingFallback ? _jsx(_Fragment, { children: loadingFallback }) : _jsx("div", { children: "Loading..." });
|
16
|
+
}
|
17
|
+
// SECURITY: Show error state instead of children if authentication failed
|
18
|
+
if (error) {
|
19
|
+
return _jsxs("div", { children: ["Authentication error: ", error.message] });
|
20
|
+
}
|
21
|
+
// SECURITY: Only render children if authenticated
|
22
|
+
if (!isAuthenticated) {
|
23
|
+
return loadingFallback ? _jsx(_Fragment, { children: loadingFallback }) : _jsx("div", { children: "Redirecting to login..." });
|
24
|
+
}
|
25
|
+
return _jsx(_Fragment, { children: children });
|
26
|
+
}
|
27
|
+
//# sourceMappingURL=ProtectedRoute.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ProtectedRoute.js","sourceRoot":"","sources":["../../src/components/ProtectedRoute.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAOnC,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,eAAe,GACK;IACpB,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;IAE/D,6DAA6D;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7C,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,eAAe,CAAC,CAAC,CAAC,4BAAG,eAAe,GAAI,CAAC,CAAC,CAAC,uCAAqB,CAAC;IAC1E,CAAC;IAED,0EAA0E;IAC1E,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,oDAA4B,KAAK,CAAC,OAAO,IAAO,CAAC;IAC1D,CAAC;IAED,kDAAkD;IAClD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC,CAAC,CAAC,4BAAG,eAAe,GAAI,CAAC,CAAC,CAAC,oDAAkC,CAAC;IACvF,CAAC;IAED,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { type User } from 'binoauth';
|
2
|
+
export interface AuthContextType {
|
3
|
+
user: User | null;
|
4
|
+
isLoading: boolean;
|
5
|
+
isAuthenticated: boolean;
|
6
|
+
error: Error | null;
|
7
|
+
login: () => Promise<void>;
|
8
|
+
logout: (returnTo?: string) => Promise<void>;
|
9
|
+
callback: (code: string, state: string) => Promise<void>;
|
10
|
+
getAccessToken: () => Promise<string | null>;
|
11
|
+
}
|
12
|
+
export declare const AuthContext: import("react").Context<AuthContextType | undefined>;
|
13
|
+
//# sourceMappingURL=context.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,WAAW,sDAEvB,CAAC"}
|
package/dist/context.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAa,MAAM,UAAU,CAAC;AAarC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CACtC,SAAS,CACV,CAAC"}
|
package/dist/hooks.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAGA,wBAAgB,OAAO,wCAMtB"}
|
package/dist/hooks.js
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
import { useContext } from "react";
|
2
|
+
import { AuthContext } from "./context";
|
3
|
+
export function useAuth() {
|
4
|
+
const context = useContext(AuthContext);
|
5
|
+
if (context === undefined) {
|
6
|
+
throw new Error("useAuth must be used within an AuthProvider");
|
7
|
+
}
|
8
|
+
return context;
|
9
|
+
}
|
10
|
+
//# sourceMappingURL=hooks.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,UAAU,OAAO;IACrB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/index.d.ts
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
export { useAuth } from "./hooks";
|
2
|
+
export { AuthContext, type AuthContextType } from "./context";
|
3
|
+
export { AuthProvider, type ClientSafeAuthConfig } from "./components/AuthProvider";
|
4
|
+
export { ProtectedRoute } from "./components/ProtectedRoute";
|
5
|
+
export { AuthErrorBoundary, useAuthErrorHandler } from "./components/AuthErrorBoundary";
|
6
|
+
export { AuthCallbackPage, type AuthCallbackPageProps, type AuthCallbackPageStyles } from "./components/AuthCallbackPage";
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/index.js
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
export { useAuth } from "./hooks";
|
2
|
+
export { AuthContext } from "./context";
|
3
|
+
export { AuthProvider } from "./components/AuthProvider";
|
4
|
+
export { ProtectedRoute } from "./components/ProtectedRoute";
|
5
|
+
export { AuthErrorBoundary, useAuthErrorHandler } from "./components/AuthErrorBoundary";
|
6
|
+
export { AuthCallbackPage } from "./components/AuthCallbackPage";
|
7
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,WAAW,EAAwB,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,YAAY,EAA6B,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAA2D,MAAM,+BAA+B,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react/jsx-runtime.d.ts","../../tenant-sdk/dist/runtime.d.ts","../../tenant-sdk/dist/models/ApiKeyTokenRequest.d.ts","../../tenant-sdk/dist/models/ApiKeyTokenResponse.d.ts","../../tenant-sdk/dist/models/ClientConfigResponse.d.ts","../../tenant-sdk/dist/models/ClientDiscoveryResponse.d.ts","../../tenant-sdk/dist/models/ConsentRequest.d.ts","../../tenant-sdk/dist/models/Credentials.d.ts","../../tenant-sdk/dist/models/DeviceAuthResponse.d.ts","../../tenant-sdk/dist/models/DeviceAuthenticationRequest.d.ts","../../tenant-sdk/dist/models/DeviceAuthorizationRequest.d.ts","../../tenant-sdk/dist/models/EmailVerificationRequest.d.ts","../../tenant-sdk/dist/models/ValidationErrorLocInner.d.ts","../../tenant-sdk/dist/models/ValidationError.d.ts","../../tenant-sdk/dist/models/HTTPValidationError.d.ts","../../tenant-sdk/dist/models/IntrospectTokenRequest.d.ts","../../tenant-sdk/dist/models/IntrospectTokenResponse.d.ts","../../tenant-sdk/dist/models/LoginRequest.d.ts","../../tenant-sdk/dist/models/LoginResponse.d.ts","../../tenant-sdk/dist/models/LogoutRequest.d.ts","../../tenant-sdk/dist/models/MFARequest.d.ts","../../tenant-sdk/dist/models/MagicLinkRequest.d.ts","../../tenant-sdk/dist/models/PhoneOTPRequest.d.ts","../../tenant-sdk/dist/models/PhoneOTPVerificationRequest.d.ts","../../tenant-sdk/dist/models/ProviderResponse.d.ts","../../tenant-sdk/dist/models/ProviderType.d.ts","../../tenant-sdk/dist/models/RequestMagicLinkResponse.d.ts","../../tenant-sdk/dist/models/ResendEmailVerificationRequest.d.ts","../../tenant-sdk/dist/models/SignupRequest.d.ts","../../tenant-sdk/dist/models/SignupResponse.d.ts","../../tenant-sdk/dist/models/TokenRequest.d.ts","../../tenant-sdk/dist/models/TokenResponse.d.ts","../../tenant-sdk/dist/models/UserInfoResponse.d.ts","../../tenant-sdk/dist/models/VerifyMagicLinkCodeRequest.d.ts","../../tenant-sdk/dist/models/VerifyMagicLinkTokenRequest.d.ts","../../tenant-sdk/dist/models/index.d.ts","../../tenant-sdk/dist/apis/AuthenticationApi.d.ts","../../tenant-sdk/dist/apis/ExternalAuthApi.d.ts","../../tenant-sdk/dist/apis/OAuth2Api.d.ts","../../tenant-sdk/dist/apis/OpenidApi.d.ts","../../tenant-sdk/dist/apis/SystemApi.d.ts","../../tenant-sdk/dist/apis/UserProfileApi.d.ts","../../tenant-sdk/dist/apis/index.d.ts","../../tenant-sdk/dist/index.d.ts","../../core/dist/auth/types.d.ts","../../core/dist/oauth/types.d.ts","../../core/dist/oauth/storage/encryption.d.ts","../../core/dist/oauth/storage/index.d.ts","../../core/dist/oauth/client.d.ts","../../core/dist/auth/error.d.ts","../../core/dist/auth/flows/base-flow.d.ts","../../core/dist/auth/flows/password.d.ts","../../core/dist/auth/flows/magic-link.d.ts","../../core/dist/auth/flows/otp.d.ts","../../core/dist/auth/flows/mfa.d.ts","../../core/dist/auth/flows/social.d.ts","../../core/dist/auth/client.d.ts","../../core/dist/oauth/error.d.ts","../../core/dist/oauth/utils.d.ts","../../core/dist/oauth/flows/base-flow.d.ts","../../core/dist/oauth/flows/authorization-code.d.ts","../../core/dist/oauth/flows/refresh-token.d.ts","../../core/dist/oauth/flows/device-code.d.ts","../../core/dist/oauth/flows/client-credentials.d.ts","../../core/dist/oauth/index.d.ts","../../core/dist/auth/index.d.ts","../../core/dist/admin/types.d.ts","../../core/dist/admin/client.d.ts","../../core/dist/admin/index.d.ts","../../core/dist/index.d.ts","../src/context.ts","../src/hooks.ts","../src/components/AuthErrorBoundary.tsx","../src/components/AuthProvider.tsx","../src/components/ProtectedRoute.tsx","../src/components/AuthCallbackPage.tsx","../src/index.ts","../node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/@types/node/compatibility/index.d.ts","../node_modules/@types/node/globals.typedarray.d.ts","../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/index.d.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/bun-types/globals.d.ts","../../../node_modules/bun-types/s3.d.ts","../../../node_modules/bun-types/fetch.d.ts","../../../node_modules/bun-types/bun.d.ts","../../../node_modules/bun-types/extensions.d.ts","../../../node_modules/bun-types/devserver.d.ts","../../../node_modules/bun-types/ffi.d.ts","../../../node_modules/bun-types/html-rewriter.d.ts","../../../node_modules/bun-types/jsc.d.ts","../../../node_modules/bun-types/sqlite.d.ts","../../../node_modules/bun-types/test.d.ts","../../../node_modules/bun-types/wasm.d.ts","../../../node_modules/bun-types/overrides.d.ts","../../../node_modules/bun-types/deprecated.d.ts","../../../node_modules/bun-types/redis.d.ts","../../../node_modules/bun-types/shell.d.ts","../../../node_modules/bun-types/experimental.d.ts","../../../node_modules/bun-types/bun.ns.d.ts","../../../node_modules/bun-types/index.d.ts","../../../node_modules/@types/bun/index.d.ts","../../../node_modules/@types/d3-array/index.d.ts","../../../node_modules/@types/d3-selection/index.d.ts","../../../node_modules/@types/d3-axis/index.d.ts","../../../node_modules/@types/d3-brush/index.d.ts","../../../node_modules/@types/d3-chord/index.d.ts","../../../node_modules/@types/d3-color/index.d.ts","../../../node_modules/@types/geojson/index.d.ts","../../../node_modules/@types/d3-contour/index.d.ts","../../../node_modules/@types/d3-delaunay/index.d.ts","../../../node_modules/@types/d3-dispatch/index.d.ts","../../../node_modules/@types/d3-drag/index.d.ts","../../../node_modules/@types/d3-dsv/index.d.ts","../../../node_modules/@types/d3-ease/index.d.ts","../../../node_modules/@types/d3-fetch/index.d.ts","../../../node_modules/@types/d3-force/index.d.ts","../../../node_modules/@types/d3-format/index.d.ts","../../../node_modules/@types/d3-geo/index.d.ts","../../../node_modules/@types/d3-hierarchy/index.d.ts","../../../node_modules/@types/d3-interpolate/index.d.ts","../../../node_modules/@types/d3-path/index.d.ts","../../../node_modules/@types/d3-polygon/index.d.ts","../../../node_modules/@types/d3-quadtree/index.d.ts","../../../node_modules/@types/d3-random/index.d.ts","../../../node_modules/@types/d3-time/index.d.ts","../../../node_modules/@types/d3-scale/index.d.ts","../../../node_modules/@types/d3-scale-chromatic/index.d.ts","../../../node_modules/@types/d3-shape/index.d.ts","../../../node_modules/@types/d3-time-format/index.d.ts","../../../node_modules/@types/d3-timer/index.d.ts","../../../node_modules/@types/d3-transition/index.d.ts","../../../node_modules/@types/d3-zoom/index.d.ts","../../../node_modules/@types/d3/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/estree-jsx/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/katex/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/mdx/types.d.ts","../../../node_modules/@types/mdx/index.d.ts","../../../node_modules/@types/nlcst/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/@types/trusted-types/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[166,208,258,264,265,266,267,269,275,277,278,279,280],[166,208,264,265,266,267,269,275,277,278,279,280],[166,208,264,265,266,267,269,275,277,278,279,280,328],[166,208,258,259,260,261,262,264,265,266,267,269,275,277,278,279,280],[166,208,258,260,264,265,266,267,269,275,277,278,279,280],[166,208,264,265,266,267,269,275,277,278,279,280,282],[166,208,264,265,266,267,269,275,277,278,279,280,285,313],[166,208,264,265,266,267,269,275,277,278,279,280,284,290],[166,208,264,265,266,267,269,275,277,278,279,280,295],[166,208,264,265,266,267,269,275,277,278,279,280,290],[166,208,264,265,266,267,269,275,277,278,279,280,289],[166,208,264,265,266,267,269,275,277,278,279,280,307],[166,208,264,265,266,267,269,275,277,278,279,280,303],[166,208,264,265,266,267,269,275,277,278,279,280,285,302,313],[166,208,264,265,266,267,269,275,277,278,279,280,284,285,286,287,288,289,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314],[166,208,264,265,266,267,269,275,277,278,279,280,316],[166,208,264,265,266,267,269,275,277,278,279,280,318,319],[166,208,221,257,264,265,266,267,269,275,277,278,279,280],[166,208,264,265,266,267,269,275,277,278,279,280,321],[166,208,264,265,266,267,269,275,277,278,279,280,323],[166,208,264,265,266,267,269,275,277,278,279,280,324],[166,208,264,265,266,267,269,275,277,278,279,280,330,333],[166,208,264,265,266,267,269,275,277,278,279,280,339,340],[83,166,208,264,265,266,267,269,275,277,278,279,280],[81,82,166,208,264,265,266,267,269,275,277,278,279,280],[166,208,264,265,266,267,269,275,277,278,279,280,344],[166,208,264,265,266,267,269,275,277,278,279,280,346],[166,203,208,213,221,223,247,251,255,264,265,266,269,270,275,276,277,278,279,280],[166,208,264,265,266,267,269,275,278,279,280],[166,208,264,265,266,267,275,277,278,279,280],[166,208,264,265,266,267,269,275,277,278,279],[166,203,208,264,265,267,269,275,277,278,279,280],[166,208,213,231,239,242,247,251,255,265,266,267,269,275,277,278,279,280],[166,208,257,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281],[166,208,213,221,222,229,247,256,264,265,266,267,269,275,277,278,279,280],[166,208,264,265,266,267,269,275,277,279,280],[166,208,221,264,266,267,269,275,277,278,279,280],[166,208,264,265,266,267,269,275,277,278,280],[166,208,264,265,266,267,269,277,278,279,280],[166,208,264,265,266,267,269,275,277,278,279,280,326,332],[166,208,264,265,266,267,269,275,277,278,279,280,330],[166,208,264,265,266,267,269,275,277,278,279,280,327,331],[166,208,264,265,266,267,269,275,277,278,279,280,329],[166,175,179,208,250,264,265,266,267,269,275,277,278,279,280],[166,175,208,239,250,264,265,266,267,269,275,277,278,279,280],[166,170,208,264,265,266,267,269,275,277,278,279,280],[166,172,175,208,247,250,264,265,266,267,269,275,276,277,278,279,280],[166,208,228,247,264,265,266,267,269,275,276,277,278,279,280],[166,208,257,264,265,266,267,269,275,277,278,279,280],[166,170,208,257,264,265,266,267,269,275,277,278,279,280],[166,172,175,208,228,250,264,265,266,267,269,275,277,278,279,280],[166,167,168,171,174,208,220,239,250,264,265,266,267,269,275,277,278,279,280],[166,175,182,208,264,265,266,267,269,275,277,278,279,280],[166,167,173,208,264,265,266,267,269,275,277,278,279,280],[166,175,196,197,208,264,265,266,267,269,275,277,278,279,280],[166,171,175,208,242,250,257,264,265,266,267,269,275,277,278,279,280],[166,196,208,257,264,265,266,267,269,275,277,278,279,280],[166,169,170,208,257,264,265,266,267,269,275,277,278,279,280],[166,175,208,264,265,266,267,269,275,277,278,279,280],[166,169,170,171,172,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,197,198,199,200,201,202,208,264,265,266,267,269,275,277,278,279,280],[166,175,190,208,264,265,266,267,269,275,277,278,279,280],[166,175,182,183,208,264,265,266,267,269,275,277,278,279,280],[166,173,175,183,184,208,264,265,266,267,269,275,277,278,279,280],[166,174,208,264,265,266,267,269,275,277,278,279,280],[166,167,170,175,208,264,265,266,267,269,275,277,278,279,280],[166,175,179,183,184,208,264,265,266,267,269,275,277,278,279,280],[166,179,208,264,265,266,267,269,275,277,278,279,280],[166,173,175,178,208,250,264,265,266,267,269,275,277,278,279,280],[166,167,172,175,182,208,264,265,266,267,269,275,277,278,279,280],[166,208,239,264,265,266,267,269,275,277,278,279,280],[166,170,175,196,208,255,257,264,265,266,267,269,275,277,278,279,280],[150,166,208,264,265,266,267,269,275,277,278,279,280],[150,151,166,208,264,265,266,267,269,275,277,278,279,280],[128,166,208,264,265,266,267,269,275,277,278,279,280],[128,132,135,136,137,138,139,166,208,264,265,266,267,269,275,277,278,279,280],[127,128,133,166,208,264,265,266,267,269,275,277,278,279,280],[128,134,166,208,264,265,266,267,269,275,277,278,279,280],[128,133,134,135,136,137,138,139,140,149,153,166,208,264,265,266,267,269,275,277,278,279,280],[127,166,208,264,265,266,267,269,275,277,278,279,280],[131,140,148,149,152,166,208,264,265,266,267,269,275,277,278,279,280],[129,131,166,208,264,265,266,267,269,275,277,278,279,280],[127,129,131,143,166,208,264,265,266,267,269,275,277,278,279,280],[127,129,131,166,208,264,265,266,267,269,275,277,278,279,280],[129,131,132,141,142,144,145,146,147,166,208,264,265,266,267,269,275,277,278,279,280],[129,130,166,208,264,265,266,267,269,275,277,278,279,280],[166,205,208,264,265,266,267,269,275,277,278,279,280],[166,207,208,264,265,266,267,269,275,277,278,279,280],[208,264,265,266,267,269,275,277,278,279,280],[166,208,213,242,264,265,266,267,269,275,277,278,279,280],[166,208,209,214,220,221,228,239,250,264,265,266,267,269,275,277,278,279,280],[166,208,209,210,220,228,264,265,266,267,269,275,277,278,279,280],[161,162,163,166,208,264,265,266,267,269,275,277,278,279,280],[166,208,211,251,264,265,266,267,269,275,277,278,279,280],[166,208,212,213,221,229,264,265,266,267,269,275,277,278,279,280],[166,208,213,239,247,264,265,266,267,269,275,277,278,279,280],[166,208,214,216,220,228,264,265,266,267,269,275,277,278,279,280],[166,207,208,215,264,265,266,267,269,275,277,278,279,280],[166,208,216,217,264,265,266,267,269,275,277,278,279,280],[166,208,218,220,264,265,266,267,269,275,277,278,279,280],[166,207,208,220,264,265,266,267,269,275,277,278,279,280],[166,208,220,221,222,239,250,264,265,266,267,269,275,277,278,279,280],[166,208,220,221,222,235,239,242,264,265,266,267,269,275,276,277,278,279,280],[166,203,208,264,265,266,267,269,275,277,278,279,280],[166,208,216,220,223,228,239,250,264,265,266,267,269,275,277,278,279,280],[166,208,220,221,223,224,228,239,247,250,264,265,266,267,269,275,277,278,279,280],[166,208,223,225,239,247,250,264,265,266,267,269,275,277,278,279,280],[164,165,166,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,264,265,266,267,269,275,277,278,279,280],[166,208,220,226,264,265,266,267,269,275,277,278,279,280],[166,208,227,250,255,264,265,266,267,269,275,277,278,279,280],[166,208,216,220,228,239,264,265,266,267,269,275,277,278,279,280],[166,208,229,264,265,266,267,269,275,277,278,279,280],[166,208,230,264,265,266,267,269,275,277,278,279,280],[166,207,208,231,264,265,266,267,269,275,277,278,279,280],[166,205,206,207,208,209,210,211,212,213,214,215,216,217,218,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,264,265,266,267,269,275,276,277,278,279,280],[166,208,233,264,265,266,267,269,275,277,278,279,280],[166,208,234,264,265,266,267,269,275,277,278,279,280],[166,208,220,235,236,264,265,266,267,269,275,277,278,279,280],[166,208,235,237,251,253,264,265,266,267,269,275,277,278,279,280],[166,208,220,239,240,242,264,265,266,267,269,275,277,278,279,280],[166,208,241,242,264,265,266,267,269,275,277,278,279,280],[166,208,239,240,264,265,266,267,269,275,277,278,279,280],[166,208,242,264,265,266,267,269,275,277,278,279,280],[166,208,243,264,265,266,267,269,275,277,278,279,280],[166,205,208,239,244,264,265,266,267,269,275,277,278,279,280],[166,208,220,245,246,264,265,266,267,269,275,277,278,279,280],[166,208,245,246,264,265,266,267,269,275,277,278,279,280],[166,208,213,228,239,247,264,265,266,267,269,275,276,277,278,279,280],[166,208,248,264,265,266,267,269,275,277,278,279,280],[166,208,228,249,264,265,266,267,269,275,277,278,279,280],[166,208,223,234,250,264,265,266,267,269,275,277,278,279,280],[166,208,213,251,264,265,266,267,269,275,277,278,279,280],[166,208,239,252,264,265,266,267,269,275,277,278,279,280],[166,208,227,253,264,265,266,267,269,275,277,278,279,280],[166,208,254,264,265,266,267,269,275,277,278,279,280],[166,208,220,222,231,239,242,250,253,255,264,265,266,267,269,275,277,278,279,280],[166,208,239,256,264,265,266,267,269,275,277,278,279,280],[83,84,155,166,208,264,265,266,267,269,275,277,278,279,280],[83,84,166,208,264,265,266,267,269,275,277,278,279,280],[83,84,153,154,156,166,208,264,265,266,267,269,275,277,278,279,280],[83,84,153,166,208,264,265,266,267,269,275,277,278,279,280],[83,84,154,166,208,264,265,266,267,269,275,277,278,279,280],[84,154,155,156,157,158,159,166,208,264,265,266,267,269,275,277,278,279,280],[85,119,166,208,264,265,266,267,269,275,277,278,279,280],[85,166,208,264,265,266,267,269,275,277,278,279,280],[120,121,122,123,124,125,166,208,264,265,266,267,269,275,277,278,279,280],[85,119,126,166,208,264,265,266,267,269,275,277,278,279,280],[97,166,208,264,265,266,267,269,275,277,278,279,280],[96,166,208,264,265,266,267,269,275,277,278,279,280],[86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,166,208,264,265,266,267,269,275,277,278,279,280]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"d4d7d3f832882a4b2d611a7eaaa80c780c3342b5732090130fa9af4a40bd051e","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},"7586f27650ec0a9c2d72d9a6d650ecb3a80d3e1b475256c68caff7591fb056a7","e81629532efcfbffa14b192de192272ad57657c9cb21862957ab06860ea221b6","9c74aed260e1d7d3a81d18940d2b458264f868a0a57551fba398a1e6fb56b0f4","3a2180e93599a7c71fe29d2fd6f2caec499c26aa6c4c8335f113a78557f68a80","6f4f83003feaf2671a190a150dbb6959302314d171953ceec750ae0571a9ec0e","d497c80bf0fd4b76efbc31b894fecb81e73db7cac8c8d0744150ba076ff9fd26","70e4ba111ad7ac9556c32d369808f4614c7abb5fe2c6739cb93a9fa7d0549974","ab5e53a3cc85f354793a4b1814e8bff7145d7872fea7f3511ab71b991411e5e7","83cbc8bc9729ac2706911bbe5836b08675c34f277240f58e34fb90d2e33dfd42","55f89ee6f472cfb2216b8b226a36c09dd708eb153ad36b7ebfe033449d544a18","40b38b7ab3317151224c535322ab349c7b5e5bdafce3b931a62719560a7c3b8d","7fe5b6ae6ecab9640593bb93130004745791bb4645882fc34c770d0c088af7c5","fc4bb001776f6d8c385dcc6c64fbca1b19658ba63a549d8c1d2f22b154c926b5","cd682ab1639f899b3cbacb1293e4878fe38f4ed282ce42a806de1d8b303975d8","61cff6445d2af851f8f28870bafcb6deef875cf2459a3785a5aa0b922cea7ab8","cd17a21a98bf6aca1f64930e4697c146dc1cdf008e261d3528b3703cf8da8e40","7168a2fb2f0d3e93b25499245fae5cb6813724e10c0df98ec7a4945675bf7ea2","15f99703f6965952b439245aeb02cfe3dc3f7c26d7a8def720852bc60326283a","54fd878bef89a490f42f58a2e7d1a0039fcc36010242ed557964303b5427bcaa","60ba33da5779265b2e50ecfb4383e21d159c10dc25ff67b95d87467629e9e719","260a808e29c146ae17e6c25ce5c92d81f726da41a14a8542be32a64029713a2f","c622578492c4a4f98ec3e02e43a1aae6ea675addce793c801c0c19d377f5c94c","9cbac830b963e025b1dcf5678fa673f9a3240cdeaf0c43cf423de1741b2da4b0","3dfb12a36b09dadb60ca819d19731f9661101c15b1c2e144cea6cc79adea6b3e","e76b21cb432a81d736b1439236a1b0d9845d1ac6955ee52c433330fa91127b11","6ef057a02663ed97ed8e50749d0ed3d8872c79fb7aeb6adff8076acbfdeb45a5","83f53659a7dfd45c7cdd3d91262e93390deb8bcd9e6f10420a6b415c13f81307","aa232c6c12819ef2e33d9b2d3d496641bab0781bbedf02c4b664188b8374de62","72c7bd29d3c4b42dcc01c212d712f21816a6a6e4c4fac51298ffa71defa6508d","e61ffd12cbb91b1b47e5f21420b40e0cbbb35e282721c92c1b44ca495e4645ee","87323f0eab270f0fdd959be478571f5435fd668f2d451d307e16553d88f9fcf2","fdc7bba431146a2c2f4b410a25a2a42c22a7f3f968713229bb20f66591ffa562","a1a4101c3216c770dfb412ea954dbe2e3cb3d4a278a74e940ce82e0fa882c05e","c4069e3b8e22783f773884f40be13ad4df18f001f7e64e9bf58e54e39074e9cd","f95410bdb9d6ca5afd411b2b19a02841cbf3ccdae3b15ec5337d3b8364de1e1b","de27a347d8d6e030c0d3f614663150c02d063eaeaeb200b8d9f1db81a352098d","05629c0a9e4e6e43123cdd097e2f7a0c093567f0d5dac31b47ae5d54eb36e15e","71b1e9f820bab16d6095a25df3a66391791a02ade8846af9d976178aa3cf3400","333567d7fd8c574ffa632e8007922e1ebe68c65277a3afe2dc65b3e142e10dc6","322265ad8287c6bb74d91db2dd34805da5c7a5f3be01b94af21aef8298275690","fa86ebbe875a42112192750074d8600b4fdf7b8b11599fa7392ca3fb8030583a","967e49f8ec88b182546f8b8e0dd456a7d230ade65b3302a93d441bbe80570558","a659139f8aae1311d0c66071603ffd7af0f78a0cb32444f9c915aba612c7e84a","ee12da152e5ab058e261f4d508c82d89d0adda698deb6ec77bec50382011c3ba","f7e24c75c2ebf791dfab692e4de6b85914cf882460eb9445e57231a1bfc7559d","a8529288a77f38309e85544d0ff9e602195202267b456ea5c5e3d9a6af31cc43","5a8783b96090cdf8349cee0ef16d1852e51958a43b1f8e30b1b0f9abf209b47b","3bdf4140fff362886127f4a17ab95ed62c4303e43161ffae142e286997a48e77","7487642bcf3147d98763b15d3e7ed28ad02b76def3de6393935e54b027180b17","9deb6f6dd549dd34db086f13e4a6674161fa54d28861bb6130174cdd4eb53671","1b534526032138b6a9c32b0f5716a82f4700c7abf84e689e27ab4ca41e7aa61f","98b3aa18138b147512c6e5de3f124ef176f02bd29a4a6b6669d67c04a4689b39","e5e041d3d88f8b4d926a2be22628c373031836d9407fb7a8c826f973fe2caaa4","95a469582afdb1df4bbc42f25dfc700ce133363caf5fdb98f2d75028d88e0b81","10a7311bff9a9d4b0ce15cd1041160c8d6080f379c2e6e35f10e9e22d5500bdb","fed9dca8461f59bda51a6903f39e466a90ce9a56c8d02e755efb43b810e230d8","e44e68af13169a8a6dd804f5d918ba08c5a44d913222d6d13823b243c56e3ae5","b3f18649561052294ac292b4f41b325597801f3f426e6f7ed0c3439e90d583fb","eb0fd706774922edf3b25c36fb58f78964e230d5a71dd4b691dcc98f29377291","3e246b3ba8673bca511722f409f3ef5add0b4d2f61f328f51a3b7d8d490c1aef","fd349a72edd8bce38e9d45cb5963b3d223fae4dee167ae71ec76e503ebabf002","f89b65d61c832633cc19560dd78f3256984af60636a5a9c7264f3978ec8526fc","c7f926304677dfe94d655b49902de55ba304ad903b76b4a1388a4787bd835878","9e7139f5ec6a4158a98d7c1b7e77439b874f8639a601380e1ced6abd2bb1cfd2","b83ea9473c42efd7882c40aecd74fbc49b597646c7202f568e7ad5d30ad2f9b1","1213e93e87418d00286e61b9bccfde4319bd30836d5efa3236100a575706abe3","cd05ee4cd96a9bcee43192e70edc2a28d75fcf1669fbec2e20179af43be7ba22","d83f2bccbb54eaa8df7902a7f067e07807a3c4842d6c50fa2de35f28e5716b2d","247e70c78def69d15c3ad9838204a9697a5f156ed69bc616e57247e1d395b5fe",{"version":"9a8b24d309f3aa66d677cfa6e628691a11dd079618d7739e1cc2cfcda04f0a87","signature":"63fc631065540d4f0b71011fa9ed4dc47c4af920fd4666b9bd0e9f2190b303fc"},{"version":"8c52ada4b24bd439ffdd6039073c9367ab9961954dec126ecf28fc9ef033412e","signature":"c2176c4889fc2258b80ea78fbe1d333fb9f5a149791649904d04eb1be7cd9695"},{"version":"189b172bfda403ac1d2933d813a37e39dc3ac625fdabf6d5c73f90d9df6bef06","signature":"bb826e6df9807c78507962efefbfce88d6f90a2a4cec442904d1feef95099b24"},{"version":"d7e1a499f77f8d76648c8177dc95f974f01d2ad13589f95f44fc73dac1546491","signature":"882275953c5b4bb3546677e9dead2e6b94f97ad33650bb9eeb548e5e51c8d4fb"},{"version":"034b262cead201b7fc2ba7ae0ebdbe2ab159be75a510e3b16bbec1815698e924","signature":"602c6f5577e4a6c64f1abf3af1f0efc06ef5fa7702b82c147015a5e3b2ed99d4"},{"version":"fae0055c97db4130535ce08c0c86e9c52f879d1229837885c17bf67ced659c7b","signature":"19f9a6082aefa69b1b4233a9b3b597669b02346bdfda248273a28f254c8e45d2"},"42b5ede94b5e63f49cd0b7902bda93a4f1a495f734b6c8c159ffef1ee38d74dd",{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"49a5a44f2e68241a1d2bd9ec894535797998841c09729e506a7cbfcaa40f2180","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"1ca84b44ad1d8e4576f24904d8b95dd23b94ea67e1575f89614ac90062fc67f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d586db0a09a9495ebb5dece28f54df9684bfbd6e1f568426ca153126dac4a40","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"567b7f607f400873151d7bc63a049514b53c3c00f5f56e9e95695d93b66a138e","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e58c4c18a031cbb17abec7a4ad0bd5ae9fc70c1f4ba1e7fb921ad87c504aca","impliedFormat":1},{"version":"84c1930e33d1bb12ad01bcbe11d656f9646bd21b2fb2afd96e8e10615a021aef","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4b87f767c7bc841511113c876a6b8bf1fd0cb0b718c888ad84478b372ec486b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d04e3640dd9eb67f7f1e5bd3d0bf96c784666f7aefc8ac1537af6f2d38d4c29","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"2bf469abae4cc9c0f340d4e05d9d26e37f936f9c8ca8f007a6534f109dcc77e4","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ada07543808f3b967624645a8e1ccd446f8b01ade47842acf1328aec899fed0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4c21aaa8257d7950a5b75a251d9075b6a371208fc948c9c8402f6690ef3b5b55","impliedFormat":1},{"version":"b5895e6353a5d708f55d8685c38a235c3a6d8138e374dee8ceb8ffde5aa8002a","impliedFormat":1},{"version":"4ec3c48b7d89091aafb4e0452e4c971f34cf1615b490b5201044f31ac07f4b16","impliedFormat":1},{"version":"de735eca2c51dd8b860254e9fdb6d9ec19fe402dfe597c23090841ce3937cfc5","impliedFormat":1},{"version":"4ff41188773cbf465807dd2f7059c7494cbee5115608efc297383832a1150c43","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"5155da3047ef977944d791a2188ff6e6c225f6975cc1910ab7bb6838ab84cede","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"afbe24ab0d74694372baa632ecb28bb375be53f3be53f9b07ecd7fc994907de5","impliedFormat":1},{"version":"e16d218a30f6a6810b57f7e968124eaa08c7bb366133ea34bbf01e7cd6b8c0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb8692dea24c27821f77e397272d9ed2eda0b95e4a75beb0fdda31081d15a8ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"5b6844ad931dcc1d3aca53268f4bd671428421464b1286746027aede398094f2","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"0dbcebe2126d03936c70545e96a6e41007cf065be38a1ce4d32a39fcedefead4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"461e54289e6287e8494a0178ba18182acce51a02bca8dea219149bf2cf96f105","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"e31e51c55800014d926e3f74208af49cb7352803619855c89296074d1ecbb524","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"dfb96ba5177b68003deec9e773c47257da5c4c8a74053d8956389d832df72002","affectsGlobalScope":true,"impliedFormat":1},{"version":"92d3070580cf72b4bb80959b7f16ede9a3f39e6f4ef2ac87cfa4561844fdc69f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3dffd70e6375b872f0b4e152de4ae682d762c61a24881ecc5eb9f04c5caf76f","impliedFormat":1},{"version":"613deebaec53731ff6b74fe1a89f094b708033db6396b601df3e6d5ab0ec0a47","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"e56eb632f0281c9f8210eb8c86cc4839a427a4ffffcfd2a5e40b956050b3e042","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"cac793cc47c29e26e4ac3601dcb00b4435ebed26203485790e44f2ad8b6ad847","impliedFormat":1},{"version":"7468ce3ef8243a51ee69aeb3b050f01f34c1e84cd4766fedd1b3594c03e30bbe","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"82e5a50e17833a10eb091923b7e429dc846d42f1c6161eb6beeb964288d98a15","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"81df92841a7a12d551fcbc7e4e83dbb7d54e0c73f33a82162d13e9ae89700079","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"309f3a357cc08760a602bd9b1177d4474426e6e2897a7295c898920198d968fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"ee31fab138939ef1903831933d524de9944511759778eedaaed56d6eb7f8697d","impliedFormat":1},{"version":"e45cc72cc9e7ad726ec83141fa4cd221d432062de34586ff107a0442ae28bf19","impliedFormat":1},{"version":"e24ee8b47c634d66662923650caa3d1510803debcd210085ca883f85cbecce4e","impliedFormat":1},{"version":"6d7ec38e96b4ad4d977e7376d9a92253927c1342ed6c102bd4dc4950deed1dd1","impliedFormat":1},{"version":"34810cb47e6bee7cd4bad2f174793f5926ba5889c5d180e29b02c1871a820476","affectsGlobalScope":true,"impliedFormat":1},{"version":"7115f1157a00937d712e042a011eb85e9d80b13eff78bac5f210ee852f96879d","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"56c685ea062afe11fd775c31dc33acc449f780b17ba392ac154799323ebc9647","impliedFormat":1},{"version":"a21a5564fa4fc44ea813ce3055030b0060df12acca6a183d77b2090429be618a","impliedFormat":1},{"version":"b05b9ef20d18697e468c3ae9cecfff3f47e8976f9522d067047e3f236db06a41","affectsGlobalScope":true,"impliedFormat":1},{"version":"eec5e9a5629f6740aac21e49783a373a3767770ad559cd41285ebbb0db39a4a2","affectsGlobalScope":true,"impliedFormat":1},{"version":"1745f0b1ab53f414b4f8ebb2c6a902fda28d40f454edac8e92b4d7c974a2051c","affectsGlobalScope":true,"impliedFormat":1},{"version":"f7f5d83fe8eff2f1910e8b0437527041e5cc45aa15cda443f27dbadc3d5805e7","impliedFormat":1},{"version":"1a7a729938558fe198d979d3f53dece9c9112124b7b081a7fa0adcc98bf15fd8","impliedFormat":1},{"version":"c61c37176b7a6c043df76f437e402ea9abc9f19e9652a0d37629dfc8b7e83497","impliedFormat":1},{"version":"067f76ab5254b1bdfc94154730b7a30c12e3aad8b9d04ec62c0d6b7a1f40ea0e","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f95bf00d9d01de72cddbeabe5bdcb019248c209df4976a814756504afdb9291","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1},{"version":"e0c868a08451c879984ccf4d4e3c1240b3be15af8988d230214977a3a3dad4ce","impliedFormat":1},{"version":"469532350a366536390c6eb3bde6839ec5c81fe1227a6b7b6a70202954d70c40","impliedFormat":1},{"version":"17c9f569be89b4c3c17dc17a9fb7909b6bab34f73da5a9a02d160f502624e2e8","impliedFormat":1},{"version":"003df7b9a77eaeb7a524b795caeeb0576e624e78dea5e362b053cb96ae89132a","impliedFormat":1},{"version":"7ba17571f91993b87c12b5e4ecafe66b1a1e2467ac26fcb5b8cee900f6cf8ff4","impliedFormat":1},{"version":"6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","impliedFormat":1},{"version":"d30e67059f5c545c5f8f0cc328a36d2e03b8c4a091b4301bc1d6afb2b1491a3a","impliedFormat":1},{"version":"8b219399c6a743b7c526d4267800bd7c84cf8e27f51884c86ad032d662218a9d","impliedFormat":1},{"version":"bad6d83a581dbd97677b96ee3270a5e7d91b692d220b87aab53d63649e47b9ad","impliedFormat":1},{"version":"7f15c8d21ca2c062f4760ff3408e1e0ec235bad2ca4e2842d1da7fc76bb0b12f","impliedFormat":1},{"version":"54e79224429e911b5d6aeb3cf9097ec9fd0f140d5a1461bbdece3066b17c232c","impliedFormat":1},{"version":"e1b666b145865bc8d0d843134b21cf589c13beba05d333c7568e7c30309d933a","impliedFormat":1},{"version":"ff09b6fbdcf74d8af4e131b8866925c5e18d225540b9b19ce9485ca93e574d84","impliedFormat":1},{"version":"c836b5d8d84d990419548574fc037c923284df05803b098fe5ddaa49f88b898a","impliedFormat":1},{"version":"3a2b8ed9d6b687ab3e1eac3350c40b1624632f9e837afe8a4b5da295acf491cb","impliedFormat":1},{"version":"189266dd5f90a981910c70d7dfa05e2bca901a4f8a2680d7030c3abbfb5b1e23","impliedFormat":1},{"version":"5ec8dcf94c99d8f1ed7bb042cdfa4ef6a9810ca2f61d959be33bcaf3f309debe","impliedFormat":1},{"version":"a80e02af710bdac31f2d8308890ac4de4b6a221aafcbce808123bfc2903c5dc2","impliedFormat":1},{"version":"d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","impliedFormat":1},{"version":"2c378d9368abcd2eba8c29b294d40909845f68557bc0b38117e4f04fc56e5f9c","impliedFormat":1},{"version":"0f345151cece7be8d10df068b58983ea8bcbfead1b216f0734037a6c63d8af87","impliedFormat":1},{"version":"37fd7bde9c88aa142756d15aeba872498f45ad149e0d1e56f3bccc1af405c520","impliedFormat":1},{"version":"2a920fd01157f819cf0213edfb801c3fb970549228c316ce0a4b1885020bad35","impliedFormat":1},{"version":"56208c500dcb5f42be7e18e8cb578f257a1a89b94b3280c506818fed06391805","impliedFormat":1},{"version":"0c94c2e497e1b9bcfda66aea239d5d36cd980d12a6d9d59e66f4be1fa3da5d5a","impliedFormat":1},{"version":"a67774ceb500c681e1129b50a631fa210872bd4438fae55e5e8698bac7036b19","impliedFormat":1},{"version":"bb220eaac1677e2ad82ac4e7fd3e609a0c7b6f2d6d9c673a35068c97f9fcd5cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"dd8936160e41420264a9d5fade0ff95cc92cab56032a84c74a46b4c38e43121e","impliedFormat":1},{"version":"1f366bde16e0513fa7b64f87f86689c4d36efd85afce7eb24753e9c99b91c319","impliedFormat":1},{"version":"421c3f008f6ef4a5db2194d58a7b960ef6f33e94b033415649cd557be09ef619","impliedFormat":1},{"version":"57568ff84b8ba1a4f8c817141644b49252cc39ec7b899e4bfba0ec0557c910a0","impliedFormat":1},{"version":"e6f10f9a770dedf552ca0946eef3a3386b9bfb41509233a30fc8ca47c49db71c","impliedFormat":1},{"version":"fb893a0dfc3c9fb0f9ca93d0648694dd95f33cbad2c0f2c629f842981dfd4e2e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"5d08a179b846f5ee674624b349ebebe2121c455e3a265dc93da4e8d9e89722b4","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"8cbbb12bfb321de8bd58ba74329f683d82e4e0abb56d998c7f1eef2e764a74c8","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"f8a6bb79327f4a6afc63d28624654522fc80f7536efa7a617ef48200b7a5f673","impliedFormat":1},{"version":"8e0733c50eaac49b4e84954106acc144ec1a8019922d6afcde3762523a3634af","impliedFormat":1},{"version":"20e87d239740059866b5245e6ef6ae92e2d63cd0b63d39af3464b9e260dddce1","impliedFormat":1},{"version":"a0acca63c9e39580f32a10945df231815f0fe554c074da96ba6564010ffbd2d8","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[[154,160]],"options":{"allowJs":true,"composite":false,"declaration":true,"declarationMap":true,"esModuleInterop":true,"jsx":4,"module":99,"noFallthroughCasesInSwitch":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedSideEffectImports":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"verbatimModuleSyntax":true},"referencedMap":[[260,1],[258,2],[326,2],[329,3],[328,2],[263,4],[259,1],[261,5],[262,1],[283,6],[284,2],[286,7],[287,7],[288,2],[289,2],[291,8],[292,2],[293,2],[294,7],[295,2],[296,2],[297,9],[298,2],[299,2],[300,10],[301,2],[302,11],[303,2],[304,2],[305,2],[306,2],[309,2],[308,12],[285,2],[310,13],[311,2],[307,2],[312,2],[313,7],[314,14],[315,15],[317,16],[319,17],[318,2],[290,2],[320,18],[322,19],[323,2],[324,20],[325,21],[334,22],[335,2],[336,2],[337,2],[338,19],[340,23],[339,2],[316,2],[341,19],[342,24],[81,2],[83,25],[84,24],[343,2],[345,26],[344,2],[321,2],[346,2],[347,27],[267,28],[281,2],[277,29],[269,30],[280,31],[268,2],[266,32],[270,2],[264,33],[271,2],[282,34],[272,2],[276,35],[278,36],[265,37],[279,38],[273,2],[274,2],[275,39],[327,2],[82,2],[333,40],[331,41],[332,42],[330,43],[79,2],[80,2],[13,2],[14,2],[16,2],[15,2],[2,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[3,2],[25,2],[26,2],[4,2],[27,2],[31,2],[28,2],[29,2],[30,2],[32,2],[33,2],[34,2],[5,2],[35,2],[36,2],[37,2],[38,2],[6,2],[42,2],[39,2],[40,2],[41,2],[43,2],[7,2],[44,2],[49,2],[50,2],[45,2],[46,2],[47,2],[48,2],[8,2],[54,2],[51,2],[52,2],[53,2],[55,2],[9,2],[56,2],[57,2],[58,2],[60,2],[59,2],[61,2],[62,2],[10,2],[63,2],[64,2],[65,2],[11,2],[66,2],[67,2],[68,2],[69,2],[70,2],[1,2],[71,2],[72,2],[12,2],[76,2],[74,2],[78,2],[73,2],[77,2],[75,2],[182,44],[192,45],[181,44],[202,46],[173,47],[172,48],[201,49],[195,50],[200,51],[175,52],[189,53],[174,54],[198,55],[170,56],[169,49],[199,57],[171,58],[176,59],[177,2],[180,59],[167,2],[203,60],[193,61],[184,62],[185,63],[187,64],[183,65],[186,66],[196,49],[178,67],[179,68],[188,69],[168,70],[191,61],[190,59],[194,2],[197,71],[151,72],[152,73],[150,74],[140,75],[133,2],[134,76],[136,77],[138,77],[137,77],[135,77],[139,77],[149,78],[128,79],[153,80],[132,81],[141,2],[144,82],[143,83],[147,82],[146,82],[145,82],[148,84],[130,2],[131,85],[129,2],[142,2],[205,86],[206,86],[207,87],[166,88],[208,89],[209,90],[210,91],[161,2],[164,92],[162,2],[163,2],[211,93],[212,94],[213,95],[214,96],[215,97],[216,98],[217,98],[219,2],[218,99],[220,100],[221,101],[222,102],[204,103],[165,2],[223,104],[224,105],[225,106],[257,107],[226,108],[227,109],[228,110],[229,111],[230,112],[231,113],[232,114],[233,115],[234,116],[235,117],[236,117],[237,118],[238,2],[239,119],[241,120],[240,121],[242,122],[243,123],[244,124],[245,125],[246,126],[247,127],[248,128],[249,129],[250,130],[251,131],[252,132],[253,133],[254,134],[255,135],[256,136],[159,137],[156,138],[157,139],[158,137],[154,140],[155,141],[160,142],[120,143],[121,143],[122,143],[123,144],[124,144],[125,144],[126,145],[127,146],[86,2],[87,2],[88,2],[89,2],[90,2],[91,2],[92,2],[93,2],[94,2],[95,2],[98,147],[99,2],[100,2],[101,2],[102,2],[103,2],[104,2],[105,2],[106,2],[107,2],[108,2],[109,2],[110,2],[111,2],[112,2],[113,2],[114,2],[115,2],[116,2],[97,148],[96,2],[117,2],[118,2],[119,149],[85,2]],"version":"5.8.3"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@binoauth/react",
|
3
|
-
"version": "0.8.
|
3
|
+
"version": "0.8.22",
|
4
4
|
"type": "module",
|
5
5
|
"main": "./dist/index.js",
|
6
6
|
"module": "./dist/index.js",
|
@@ -25,6 +25,7 @@
|
|
25
25
|
"react-dom": "^18.0.0 || ^19.0.0"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
|
+
"binoauth": "workspace:*",
|
28
29
|
"@types/node": "^20",
|
29
30
|
"@types/react": "^19",
|
30
31
|
"typescript": "^5",
|