firebase-admin-edge 1.0.22 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -20
- package/dist/auth/cache-types.d.ts +7 -0
- package/dist/auth/cache-types.d.ts.map +1 -0
- package/dist/auth/cache-types.js +2 -0
- package/dist/auth/cache-types.js.map +1 -0
- package/dist/auth/cookie-types.d.ts +4 -0
- package/dist/auth/cookie-types.d.ts.map +1 -1
- package/dist/auth/firebase-admin-auth.d.ts +75 -10
- package/dist/auth/firebase-admin-auth.d.ts.map +1 -1
- package/dist/auth/firebase-admin-auth.js +111 -28
- package/dist/auth/firebase-admin-auth.js.map +1 -1
- package/dist/auth/firebase-admin-auth.test.js +35 -42
- package/dist/auth/firebase-admin-auth.test.js.map +1 -1
- package/dist/auth/firebase-auth-endpoints.d.ts +8 -2
- package/dist/auth/firebase-auth-endpoints.d.ts.map +1 -1
- package/dist/auth/firebase-auth-endpoints.js +8 -4
- package/dist/auth/firebase-auth-endpoints.js.map +1 -1
- package/dist/auth/firebase-auth-endpoints.test.js +8 -8
- package/dist/auth/firebase-auth-endpoints.test.js.map +1 -1
- package/dist/auth/firebase-auth.d.ts +33 -0
- package/dist/auth/firebase-auth.d.ts.map +1 -1
- package/dist/auth/firebase-auth.js +33 -0
- package/dist/auth/firebase-auth.js.map +1 -1
- package/dist/auth/firebase-jwt.d.ts.map +1 -1
- package/dist/auth/firebase-jwt.js +1 -0
- package/dist/auth/firebase-jwt.js.map +1 -1
- package/dist/auth/google-oauth.d.ts +5 -10
- package/dist/auth/google-oauth.d.ts.map +1 -1
- package/dist/auth/google-oauth.js +12 -1
- package/dist/auth/google-oauth.js.map +1 -1
- package/dist/firebase-edge-server.d.ts +18 -12
- package/dist/firebase-edge-server.d.ts.map +1 -1
- package/dist/firebase-edge-server.js +44 -29
- package/dist/firebase-edge-server.js.map +1 -1
- package/dist/firebase-edge-server.test.js +5 -5
- package/dist/firebase-edge-server.test.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/token-cache.d.ts +9 -0
- package/dist/utils/token-cache.d.ts.map +1 -0
- package/dist/utils/token-cache.js +27 -0
- package/dist/utils/token-cache.js.map +1 -0
- package/package.json +1 -1
|
@@ -6,13 +6,13 @@ import { exchangeCodeForGoogleIdToken } from './auth/google-oauth.js';
|
|
|
6
6
|
import { createGitHubOAuthLoginUrl, createGoogleOAuthLoginUrl } from './auth/oauth.js';
|
|
7
7
|
import { FirebaseEdgeError } from './auth/errors.js';
|
|
8
8
|
import { FirebaseEdgeServerErrorInfo } from './firebase-edge-errors.js';
|
|
9
|
-
const
|
|
9
|
+
const COOKIE_LIFETIME_SECONDS = 60 * 60 * 24 * 5; // 5 days
|
|
10
10
|
const COOKIE_OPTIONS = {
|
|
11
11
|
httpOnly: true,
|
|
12
12
|
secure: true,
|
|
13
13
|
sameSite: 'lax',
|
|
14
14
|
path: '/',
|
|
15
|
-
maxAge:
|
|
15
|
+
maxAge: COOKIE_LIFETIME_SECONDS
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
18
|
* Official Firebase OAuth providers
|
|
@@ -34,31 +34,42 @@ export const OFFICIAL_FIREBASE_OAUTH_PROVIDERS = [
|
|
|
34
34
|
* @param config.serviceAccount Firebase service account for admin operations
|
|
35
35
|
* @param config.firebaseConfig Firebase client configuration
|
|
36
36
|
* @param config.providers OAuth provider configurations (Google, GitHub, etc.)
|
|
37
|
-
* @param config.cookies Cookie management functions
|
|
37
|
+
* @param config.cookies Cookie management functions (getSession, saveSession)
|
|
38
|
+
* @param config.redirectUri OAuth callback redirect URI
|
|
39
|
+
* @param config.cache Optional cache implementation for token caching
|
|
40
|
+
* @param config.cacheName Optional cache key name for token storage
|
|
41
|
+
* @param config.cookieName Optional custom session cookie name (defaults to '__session')
|
|
42
|
+
* @param config.cookieOptions Optional cookie configuration overrides
|
|
38
43
|
* @param config.tenantId Optional Firebase Auth tenant ID for multi-tenancy
|
|
44
|
+
* @param config.autoLinkProviders Optional flag to automatically link accounts with same email
|
|
39
45
|
* @param config.fetch Optional custom fetch implementation
|
|
40
|
-
* @returns Object with authentication methods
|
|
46
|
+
* @returns Object with authentication methods (auth, adminAuth, signOut, getUser, getGoogleLoginURL, getGitHubLoginURL, signInWithCallback, getToken)
|
|
41
47
|
*/
|
|
42
|
-
export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, providers, cookies, tenantId, redirectUri, autoLinkProviders, fetch }) {
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
const saveSession = cookies
|
|
48
|
+
export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, providers, cookies, cookieName, cookieOptions, cache, cacheName, tenantId, redirectUri, autoLinkProviders, fetch }) {
|
|
49
|
+
// Cookies
|
|
50
|
+
const _cookieName = cookieName || '__session';
|
|
51
|
+
const { getSession, saveSession } = cookies;
|
|
52
|
+
const _cookieOptions = { ...COOKIE_OPTIONS, ...cookieOptions };
|
|
53
|
+
// Fetch
|
|
46
54
|
const fetchImpl = fetch ?? globalThis.fetch;
|
|
55
|
+
const cacheImpl = cache ?? undefined;
|
|
56
|
+
// Auth instances
|
|
47
57
|
const auth = new FirebaseAuth(firebaseConfig, redirectUri, tenantId, fetchImpl);
|
|
48
|
-
const adminAuth = new FirebaseAdminAuth(serviceAccount, tenantId, fetchImpl);
|
|
58
|
+
const adminAuth = new FirebaseAdminAuth(serviceAccount, tenantId, fetchImpl, cacheImpl, cacheName);
|
|
49
59
|
/**
|
|
50
|
-
* Clears the session cookie
|
|
51
|
-
* @internal
|
|
60
|
+
* Clears the session cookie by setting its maxAge to 0.
|
|
52
61
|
*/
|
|
53
62
|
function deleteSession() {
|
|
54
|
-
saveSession(
|
|
55
|
-
...
|
|
63
|
+
saveSession(_cookieName, '', {
|
|
64
|
+
..._cookieOptions,
|
|
56
65
|
maxAge: 0
|
|
57
66
|
});
|
|
58
67
|
}
|
|
59
68
|
/**
|
|
60
69
|
* Signs out the current user by clearing the session cookie.
|
|
61
70
|
* Note: This only removes the server-side session, not Firebase client tokens.
|
|
71
|
+
*
|
|
72
|
+
* @returns void
|
|
62
73
|
*/
|
|
63
74
|
function signOut() {
|
|
64
75
|
deleteSession();
|
|
@@ -67,11 +78,11 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
|
|
|
67
78
|
/**
|
|
68
79
|
* Gets the current authenticated user from the session cookie.
|
|
69
80
|
*
|
|
70
|
-
* @param checkRevoked Whether to check if the token has been revoked
|
|
71
|
-
* @returns Promise with
|
|
81
|
+
* @param checkRevoked Whether to check if the token has been revoked (defaults to false)
|
|
82
|
+
* @returns Promise resolving to object with decoded token data or null, and error if any
|
|
72
83
|
*/
|
|
73
84
|
async function getUser(checkRevoked = false) {
|
|
74
|
-
const sessionCookie = await getSession(
|
|
85
|
+
const sessionCookie = await getSession(_cookieName);
|
|
75
86
|
if (!sessionCookie) {
|
|
76
87
|
return {
|
|
77
88
|
data: null,
|
|
@@ -101,13 +112,13 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
|
|
|
101
112
|
/**
|
|
102
113
|
* Generates a Google OAuth login URL and clears any existing session.
|
|
103
114
|
*
|
|
104
|
-
* @param next State parameter for the OAuth flow
|
|
115
|
+
* @param next State parameter for the OAuth flow (typically the redirect path after login)
|
|
105
116
|
* @param options Optional configuration object
|
|
106
117
|
* @param options.languageCode ISO 639-1 language code (e.g., 'en', 'es', 'fr')
|
|
107
118
|
* @param options.customParameters Custom OAuth parameters (e.g., { login_hint: 'user@example.com', hd: 'example.com' })
|
|
108
119
|
* @param options.addScopes Additional OAuth scopes (e.g., ['https://www.googleapis.com/auth/calendar.readonly'])
|
|
109
|
-
* @returns Google OAuth login URL
|
|
110
|
-
* @throws
|
|
120
|
+
* @returns Promise resolving to Google OAuth login URL string
|
|
121
|
+
* @throws {FirebaseEdgeError} If Google provider is not configured
|
|
111
122
|
*/
|
|
112
123
|
async function getGoogleLoginURL(next, options) {
|
|
113
124
|
deleteSession();
|
|
@@ -121,12 +132,12 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
|
|
|
121
132
|
* Generates a GitHub OAuth login URL and clears any existing session.
|
|
122
133
|
* Note: GitHub doesn't support language parameters - language is determined by user's browser/account settings.
|
|
123
134
|
*
|
|
124
|
-
* @param next State parameter for the OAuth flow
|
|
135
|
+
* @param next State parameter for the OAuth flow (typically the redirect path after login)
|
|
125
136
|
* @param options Optional configuration object
|
|
126
137
|
* @param options.customParameters Custom OAuth parameters (e.g., { login: 'username', allow_signup: 'false' })
|
|
127
138
|
* @param options.addScopes Additional OAuth scopes (e.g., ['repo', 'gist'])
|
|
128
|
-
* @returns GitHub OAuth login URL
|
|
129
|
-
* @throws
|
|
139
|
+
* @returns Promise resolving to GitHub OAuth login URL string
|
|
140
|
+
* @throws {FirebaseEdgeError} If GitHub provider is not configured
|
|
130
141
|
*/
|
|
131
142
|
async function getGitHubLoginURL(next, options) {
|
|
132
143
|
deleteSession();
|
|
@@ -140,9 +151,10 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
|
|
|
140
151
|
* Completes OAuth flow by exchanging authorization code for a session.
|
|
141
152
|
*
|
|
142
153
|
* @param url URL containing authorization code and state from OAuth callback
|
|
143
|
-
* @
|
|
154
|
+
* @param expiresIn_ms Session cookie expiration time in milliseconds (defaults to 5 days)
|
|
155
|
+
* @returns Promise resolving to object with next redirect path and error if any
|
|
144
156
|
*/
|
|
145
|
-
async function signInWithCallback(url) {
|
|
157
|
+
async function signInWithCallback(url, expiresIn_ms = COOKIE_LIFETIME_SECONDS * 1000) {
|
|
146
158
|
const code = url.searchParams.get('code');
|
|
147
159
|
const state = url.searchParams.get('state');
|
|
148
160
|
if (!code) {
|
|
@@ -215,6 +227,10 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
|
|
|
215
227
|
if (autoLinkProviders) {
|
|
216
228
|
// Implement auto-linking logic here
|
|
217
229
|
}
|
|
230
|
+
// const uid = await admin.getUserByEmail(email)
|
|
231
|
+
// const customToken = await createCustomToken(uid)
|
|
232
|
+
// const firebaseToken = await signInWithCustomToken(customToken)
|
|
233
|
+
// linkWithCredential(firebaseToken, providerToken, providerId)
|
|
218
234
|
return {
|
|
219
235
|
error: new FirebaseEdgeError(FirebaseEdgeServerErrorInfo.EDGE_ACCOUNT_EXISTS_DIFFERENT_METHOD)
|
|
220
236
|
};
|
|
@@ -228,9 +244,7 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
|
|
|
228
244
|
error: new FirebaseEdgeError(FirebaseEdgeServerErrorInfo.EDGE_NO_ID_TOKEN)
|
|
229
245
|
};
|
|
230
246
|
}
|
|
231
|
-
const { data: sessionCookie, error: sessionError } = await adminAuth.createSessionCookie(idToken,
|
|
232
|
-
expiresIn: 60 * 60 * 24 * 5 * 1000
|
|
233
|
-
});
|
|
247
|
+
const { data: sessionCookie, error: sessionError } = await adminAuth.createSessionCookie(idToken, expiresIn_ms);
|
|
234
248
|
if (sessionError) {
|
|
235
249
|
return {
|
|
236
250
|
error: sessionError
|
|
@@ -241,7 +255,7 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
|
|
|
241
255
|
error: new FirebaseEdgeError(FirebaseEdgeServerErrorInfo.EDGE_NO_SESSION_COOKIE)
|
|
242
256
|
};
|
|
243
257
|
}
|
|
244
|
-
saveSession(
|
|
258
|
+
saveSession(_cookieName, sessionCookie, _cookieOptions);
|
|
245
259
|
return {
|
|
246
260
|
data: next,
|
|
247
261
|
error: null
|
|
@@ -249,8 +263,9 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
|
|
|
249
263
|
}
|
|
250
264
|
/**
|
|
251
265
|
* Generates fresh Firebase client tokens for the authenticated user.
|
|
266
|
+
* Creates a custom token and exchanges it for a Firebase ID token and refresh token.
|
|
252
267
|
*
|
|
253
|
-
* @returns Promise with
|
|
268
|
+
* @returns Promise resolving to object with Firebase tokens (idToken, refreshToken, expiresIn) and error if any
|
|
254
269
|
*/
|
|
255
270
|
async function getToken() {
|
|
256
271
|
const { data: verifiedToken, error: verifyError } = await getUser();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-edge-server.js","sourceRoot":"","sources":["../src/firebase-edge-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"firebase-edge-server.js","sourceRoot":"","sources":["../src/firebase-edge-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,16 +72,16 @@ describe('createFirebaseEdgeServer', () => {
|
|
|
72
72
|
expect(server).toHaveProperty('signInWithCallback');
|
|
73
73
|
expect(server).toHaveProperty('getToken');
|
|
74
74
|
});
|
|
75
|
-
it('uses custom
|
|
75
|
+
it('uses custom cookie name when provided', () => {
|
|
76
76
|
const customServer = createFirebaseEdgeServer({
|
|
77
77
|
serviceAccount: mockServiceAccount,
|
|
78
78
|
firebaseConfig: mockFirebaseConfig,
|
|
79
79
|
providers: mockProviders,
|
|
80
80
|
cookies: {
|
|
81
81
|
getSession: mockGetSession,
|
|
82
|
-
saveSession: mockSaveSession
|
|
83
|
-
sessionName: 'custom-session'
|
|
82
|
+
saveSession: mockSaveSession
|
|
84
83
|
},
|
|
84
|
+
cookieName: 'custom-session',
|
|
85
85
|
redirectUri: 'http://localhost'
|
|
86
86
|
});
|
|
87
87
|
customServer.signOut();
|
|
@@ -134,7 +134,7 @@ describe('createFirebaseEdgeServer', () => {
|
|
|
134
134
|
redirectUri: 'http://localhost'
|
|
135
135
|
});
|
|
136
136
|
expect(vi.mocked(FirebaseAuth)).toHaveBeenCalledWith(mockFirebaseConfig, 'http://localhost', 'test-tenant-id', globalThis.fetch);
|
|
137
|
-
expect(vi.mocked(FirebaseAdminAuth)).toHaveBeenCalledWith(mockServiceAccount, 'test-tenant-id', globalThis.fetch);
|
|
137
|
+
expect(vi.mocked(FirebaseAdminAuth)).toHaveBeenCalledWith(mockServiceAccount, 'test-tenant-id', globalThis.fetch, undefined, undefined);
|
|
138
138
|
});
|
|
139
139
|
it('passes undefined tenant ID when not provided', () => {
|
|
140
140
|
vi.clearAllMocks();
|
|
@@ -149,7 +149,7 @@ describe('createFirebaseEdgeServer', () => {
|
|
|
149
149
|
redirectUri: 'http://localhost'
|
|
150
150
|
});
|
|
151
151
|
expect(vi.mocked(FirebaseAuth)).toHaveBeenCalledWith(mockFirebaseConfig, 'http://localhost', undefined, globalThis.fetch);
|
|
152
|
-
expect(vi.mocked(FirebaseAdminAuth)).toHaveBeenCalledWith(mockServiceAccount, undefined, globalThis.fetch);
|
|
152
|
+
expect(vi.mocked(FirebaseAdminAuth)).toHaveBeenCalledWith(mockServiceAccount, undefined, globalThis.fetch, undefined, undefined);
|
|
153
153
|
});
|
|
154
154
|
});
|
|
155
155
|
describe('signOut', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-edge-server.test.js","sourceRoot":"","sources":["../src/firebase-edge-server.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"firebase-edge-server.test.js","sourceRoot":"","sources":["../src/firebase-edge-server.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class TokenCache {
|
|
2
|
+
private store;
|
|
3
|
+
constructor();
|
|
4
|
+
set<T>(key: string, value: T, ttlMs?: number): void;
|
|
5
|
+
get<T>(key: string): T | undefined;
|
|
6
|
+
has(key: string): boolean;
|
|
7
|
+
delete(key: string): boolean;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=token-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-cache.d.ts","sourceRoot":"","sources":["../../src/utils/token-cache.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;IACnB,OAAO,CAAC,KAAK,CAA0D;;IAIvE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,SAAc;IAOjD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAYlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM;CAGrB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export class TokenCache {
|
|
2
|
+
store = new Map();
|
|
3
|
+
constructor() { }
|
|
4
|
+
set(key, value, ttlMs = 3600 * 1000) {
|
|
5
|
+
this.store.set(key, {
|
|
6
|
+
value,
|
|
7
|
+
expires: Date.now() + ttlMs
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
get(key) {
|
|
11
|
+
const entry = this.store.get(key);
|
|
12
|
+
if (!entry)
|
|
13
|
+
return undefined;
|
|
14
|
+
if (Date.now() > entry.expires) {
|
|
15
|
+
this.store.delete(key);
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
return entry.value;
|
|
19
|
+
}
|
|
20
|
+
has(key) {
|
|
21
|
+
return this.get(key) !== undefined;
|
|
22
|
+
}
|
|
23
|
+
delete(key) {
|
|
24
|
+
return this.store.delete(key);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=token-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-cache.js","sourceRoot":"","sources":["../../src/utils/token-cache.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IACX,KAAK,GAAG,IAAI,GAAG,EAA+C,CAAC;IAEvE,gBAAe,CAAC;IAEhB,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;QAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAChB,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,GAAG,CAAI,GAAW;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,KAAU,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,GAAW;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;CACJ"}
|