react-native-nitro-auth 0.5.8 → 0.5.10
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/CHANGELOG.md +48 -0
- package/README.md +69 -50
- package/cpp/HybridAuth.cpp +135 -50
- package/cpp/HybridAuth.hpp +1 -0
- package/ios/AuthAdapter.swift +28 -9
- package/lib/commonjs/Auth.web.js +141 -73
- package/lib/commonjs/Auth.web.js.map +1 -1
- package/lib/commonjs/create-auth-service.js +71 -0
- package/lib/commonjs/create-auth-service.js.map +1 -0
- package/lib/commonjs/service.js +2 -79
- package/lib/commonjs/service.js.map +1 -1
- package/lib/commonjs/service.web.js +2 -79
- package/lib/commonjs/service.web.js.map +1 -1
- package/lib/commonjs/use-auth.js +6 -3
- package/lib/commonjs/use-auth.js.map +1 -1
- package/lib/module/Auth.web.js +141 -73
- package/lib/module/Auth.web.js.map +1 -1
- package/lib/module/create-auth-service.js +67 -0
- package/lib/module/create-auth-service.js.map +1 -0
- package/lib/module/service.js +2 -79
- package/lib/module/service.js.map +1 -1
- package/lib/module/service.web.js +2 -79
- package/lib/module/service.web.js.map +1 -1
- package/lib/module/use-auth.js +6 -3
- package/lib/module/use-auth.js.map +1 -1
- package/lib/typescript/commonjs/Auth.web.d.ts +4 -2
- package/lib/typescript/commonjs/Auth.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/create-auth-service.d.ts +5 -0
- package/lib/typescript/commonjs/create-auth-service.d.ts.map +1 -0
- package/lib/typescript/commonjs/service.d.ts.map +1 -1
- package/lib/typescript/commonjs/service.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-auth.d.ts.map +1 -1
- package/lib/typescript/module/Auth.web.d.ts +4 -2
- package/lib/typescript/module/Auth.web.d.ts.map +1 -1
- package/lib/typescript/module/create-auth-service.d.ts +5 -0
- package/lib/typescript/module/create-auth-service.d.ts.map +1 -0
- package/lib/typescript/module/service.d.ts.map +1 -1
- package/lib/typescript/module/service.web.d.ts.map +1 -1
- package/lib/typescript/module/use-auth.d.ts.map +1 -1
- package/package.json +7 -5
- package/react-native-nitro-auth.podspec +1 -0
- package/src/Auth.web.ts +261 -102
- package/src/create-auth-service.ts +97 -0
- package/src/service.ts +3 -101
- package/src/service.web.ts +3 -101
- package/src/use-auth.ts +7 -3
package/lib/commonjs/Auth.web.js
CHANGED
|
@@ -16,6 +16,8 @@ const STORAGE_MODE_MEMORY = "memory";
|
|
|
16
16
|
const POPUP_POLL_INTERVAL_MS = 100;
|
|
17
17
|
const POPUP_TIMEOUT_MS = 120000;
|
|
18
18
|
const WEB_STORAGE_MODES = new Set([STORAGE_MODE_SESSION, STORAGE_MODE_LOCAL, STORAGE_MODE_MEMORY]);
|
|
19
|
+
const WEB_AUTH_ERROR_CODES = new Set(["cancelled", "timeout", "popup_blocked", "network_error", "configuration_error", "not_signed_in", "operation_in_progress", "unsupported_provider", "invalid_state", "invalid_nonce", "token_error", "no_id_token", "parse_error", "refresh_failed", "unknown"]);
|
|
20
|
+
const JWT_BASE64_URL_RE = /^[A-Za-z0-9_-]+$/;
|
|
19
21
|
const inMemoryWebStorage = new Map();
|
|
20
22
|
let _appleSdkLoadPromise;
|
|
21
23
|
class AuthWebError extends Error {
|
|
@@ -33,7 +35,14 @@ const getOptionalString = (source, key) => {
|
|
|
33
35
|
};
|
|
34
36
|
const getOptionalNumber = (source, key) => {
|
|
35
37
|
const candidate = source[key];
|
|
36
|
-
return typeof candidate === "number" ? candidate : undefined;
|
|
38
|
+
return typeof candidate === "number" && Number.isFinite(candidate) ? candidate : undefined;
|
|
39
|
+
};
|
|
40
|
+
const parseExpiresInSeconds = value => {
|
|
41
|
+
const candidate = typeof value === "number" ? value : typeof value === "string" && value.trim().length > 0 ? Number(value) : undefined;
|
|
42
|
+
if (typeof candidate !== "number" || !Number.isFinite(candidate) || candidate < 0) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
return candidate;
|
|
37
46
|
};
|
|
38
47
|
const parseAuthUser = value => {
|
|
39
48
|
if (!isJsonObject(value) || !isAuthProvider(value.provider)) {
|
|
@@ -61,6 +70,7 @@ const parseScopes = value => {
|
|
|
61
70
|
}
|
|
62
71
|
return value.filter(scope => typeof scope === "string");
|
|
63
72
|
};
|
|
73
|
+
const isAuthErrorCode = value => WEB_AUTH_ERROR_CODES.has(value);
|
|
64
74
|
const parseAuthWebExtraConfig = value => {
|
|
65
75
|
if (!isJsonObject(value)) {
|
|
66
76
|
return {};
|
|
@@ -317,9 +327,25 @@ class AuthWeb {
|
|
|
317
327
|
};
|
|
318
328
|
}
|
|
319
329
|
notify() {
|
|
320
|
-
this._listeners
|
|
321
|
-
|
|
322
|
-
}
|
|
330
|
+
for (const listener of [...this._listeners]) {
|
|
331
|
+
listener(this._currentUser);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
notifyTokenListeners(tokens) {
|
|
335
|
+
for (const listener of [...this._tokenListeners]) {
|
|
336
|
+
listener(tokens);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
async runLoginOperation(operation) {
|
|
340
|
+
if (this._loginInFlight) {
|
|
341
|
+
throw new AuthWebError("operation_in_progress", "Another login is already in progress");
|
|
342
|
+
}
|
|
343
|
+
this._loginInFlight = true;
|
|
344
|
+
try {
|
|
345
|
+
await operation();
|
|
346
|
+
} finally {
|
|
347
|
+
this._loginInFlight = false;
|
|
348
|
+
}
|
|
323
349
|
}
|
|
324
350
|
async login(provider, options) {
|
|
325
351
|
const loginHint = options?.loginHint;
|
|
@@ -327,15 +353,23 @@ class AuthWeb {
|
|
|
327
353
|
scopes: options?.scopes
|
|
328
354
|
});
|
|
329
355
|
try {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
356
|
+
await this.runLoginOperation(async () => {
|
|
357
|
+
if (provider === "google") {
|
|
358
|
+
const scopes = options?.scopes ?? DEFAULT_SCOPES;
|
|
359
|
+
await this.loginGoogle(scopes, loginHint);
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
362
|
+
if (provider === "microsoft") {
|
|
363
|
+
const scopes = options?.scopes ?? MS_DEFAULT_SCOPES;
|
|
364
|
+
await this.loginMicrosoft(scopes, loginHint, options?.tenant, options?.prompt);
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
if (provider === "apple") {
|
|
368
|
+
await this.loginApple();
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
throw new AuthWebError("unsupported_provider", `Unsupported auth provider: ${provider}`);
|
|
372
|
+
});
|
|
339
373
|
_logger.logger.log(`Login successful with ${provider}`);
|
|
340
374
|
} catch (e) {
|
|
341
375
|
const error = this.mapError(e);
|
|
@@ -354,11 +388,13 @@ class AuthWeb {
|
|
|
354
388
|
_logger.logger.log("Requesting additional scopes:", scopes);
|
|
355
389
|
const newScopes = [...new Set([...this._grantedScopes, ...scopes])];
|
|
356
390
|
try {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
391
|
+
await this.runLoginOperation(async () => {
|
|
392
|
+
if (provider === "google") {
|
|
393
|
+
await this.loginGoogle(newScopes);
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
360
396
|
await this.loginMicrosoft(newScopes);
|
|
361
|
-
}
|
|
397
|
+
});
|
|
362
398
|
} catch (e) {
|
|
363
399
|
const error = this.mapError(e);
|
|
364
400
|
_logger.logger.error("Requesting scopes failed:", error.message);
|
|
@@ -430,16 +466,15 @@ class AuthWeb {
|
|
|
430
466
|
});
|
|
431
467
|
const json = await this.parseResponseObject(response);
|
|
432
468
|
if (!response.ok) {
|
|
433
|
-
throw new
|
|
469
|
+
throw new AuthWebError("refresh_failed", getOptionalString(json, "error_description") ?? getOptionalString(json, "error") ?? "Token refresh failed");
|
|
434
470
|
}
|
|
435
471
|
const idToken = getOptionalString(json, "id_token");
|
|
436
472
|
const accessToken = getOptionalString(json, "access_token");
|
|
437
473
|
const newRefreshToken = getOptionalString(json, "refresh_token");
|
|
438
|
-
const expiresInSeconds = getOptionalNumber(json, "expires_in");
|
|
439
474
|
if (newRefreshToken) {
|
|
440
475
|
this.saveRefreshToken(newRefreshToken);
|
|
441
476
|
}
|
|
442
|
-
const expirationTime =
|
|
477
|
+
const expirationTime = this.getExpirationTime(json["expires_in"]);
|
|
443
478
|
const effectiveIdToken = idToken ?? this._currentUser.idToken;
|
|
444
479
|
const claims = effectiveIdToken ? this.decodeMicrosoftJwt(effectiveIdToken) : {};
|
|
445
480
|
const user = {
|
|
@@ -457,9 +492,7 @@ class AuthWeb {
|
|
|
457
492
|
refreshToken: newRefreshToken ?? undefined,
|
|
458
493
|
expirationTime
|
|
459
494
|
};
|
|
460
|
-
this.
|
|
461
|
-
l(tokens);
|
|
462
|
-
});
|
|
495
|
+
this.notifyTokenListeners(tokens);
|
|
463
496
|
return tokens;
|
|
464
497
|
}
|
|
465
498
|
if (this._currentUser.provider !== "google") {
|
|
@@ -473,16 +506,19 @@ class AuthWeb {
|
|
|
473
506
|
refreshToken: this._currentUser.refreshToken,
|
|
474
507
|
expirationTime: this._currentUser.expirationTime
|
|
475
508
|
};
|
|
476
|
-
this.
|
|
477
|
-
l(tokens);
|
|
478
|
-
});
|
|
509
|
+
this.notifyTokenListeners(tokens);
|
|
479
510
|
return tokens;
|
|
480
511
|
}
|
|
481
512
|
mapError(error) {
|
|
513
|
+
if (error instanceof AuthWebError) {
|
|
514
|
+
return error;
|
|
515
|
+
}
|
|
482
516
|
const rawMessage = error instanceof Error ? error.message : String(error);
|
|
483
517
|
const msg = rawMessage.toLowerCase();
|
|
484
|
-
let mappedMsg =
|
|
485
|
-
if (
|
|
518
|
+
let mappedMsg = "unknown";
|
|
519
|
+
if (isAuthErrorCode(rawMessage)) {
|
|
520
|
+
mappedMsg = rawMessage;
|
|
521
|
+
} else if (msg.includes("cancel") || msg.includes("popup_closed")) {
|
|
486
522
|
mappedMsg = "cancelled";
|
|
487
523
|
} else if (msg.includes("access_denied")) {
|
|
488
524
|
mappedMsg = "cancelled";
|
|
@@ -490,6 +526,18 @@ class AuthWeb {
|
|
|
490
526
|
mappedMsg = "timeout";
|
|
491
527
|
} else if (msg.includes("popup blocked")) {
|
|
492
528
|
mappedMsg = "popup_blocked";
|
|
529
|
+
} else if (msg.includes("login is already in progress")) {
|
|
530
|
+
mappedMsg = "operation_in_progress";
|
|
531
|
+
} else if (msg.includes("state mismatch")) {
|
|
532
|
+
mappedMsg = "invalid_state";
|
|
533
|
+
} else if (msg.includes("nonce mismatch")) {
|
|
534
|
+
mappedMsg = "invalid_nonce";
|
|
535
|
+
} else if (msg.includes("no id_token") || msg.includes("no_id_token")) {
|
|
536
|
+
mappedMsg = "no_id_token";
|
|
537
|
+
} else if (msg.includes("invalid jwt") || msg.includes("json")) {
|
|
538
|
+
mappedMsg = "parse_error";
|
|
539
|
+
} else if (msg.includes("no user logged in") || msg.includes("not signed in")) {
|
|
540
|
+
mappedMsg = "not_signed_in";
|
|
493
541
|
} else if (msg.includes("network") || msg.includes("server_error") || msg.includes("temporarily_unavailable")) {
|
|
494
542
|
mappedMsg = "network_error";
|
|
495
543
|
} else if (msg.includes("invalid_grant") || msg.includes("invalid_token")) {
|
|
@@ -500,24 +548,62 @@ class AuthWeb {
|
|
|
500
548
|
return new AuthWebError(mappedMsg, rawMessage);
|
|
501
549
|
}
|
|
502
550
|
async parseResponseObject(response) {
|
|
503
|
-
|
|
551
|
+
let parsed;
|
|
552
|
+
try {
|
|
553
|
+
parsed = await response.json();
|
|
554
|
+
} catch (error) {
|
|
555
|
+
throw new AuthWebError("parse_error", String(error));
|
|
556
|
+
}
|
|
504
557
|
if (!isJsonObject(parsed)) {
|
|
505
|
-
throw new
|
|
558
|
+
throw new AuthWebError("parse_error", "Expected JSON object response from auth provider");
|
|
506
559
|
}
|
|
507
560
|
return parsed;
|
|
508
561
|
}
|
|
509
562
|
parseJwtPayload(token) {
|
|
510
|
-
const
|
|
511
|
-
|
|
512
|
-
|
|
563
|
+
const parts = token.split(".");
|
|
564
|
+
const payload = parts[1];
|
|
565
|
+
if (parts.length < 2 || !payload || payload.length % 4 === 1 || !JWT_BASE64_URL_RE.test(payload)) {
|
|
566
|
+
throw new AuthWebError("parse_error", "Invalid JWT payload");
|
|
567
|
+
}
|
|
568
|
+
try {
|
|
569
|
+
const normalizedPayload = payload.replace(/-/g, "+").replace(/_/g, "/");
|
|
570
|
+
const padding = "=".repeat((4 - normalizedPayload.length % 4) % 4);
|
|
571
|
+
const binary = atob(`${normalizedPayload}${padding}`);
|
|
572
|
+
const decodedText = typeof TextDecoder === "function" ? new TextDecoder().decode(Uint8Array.from(binary, char => char.charCodeAt(0))) : decodeURIComponent(Array.from(binary, char => `%${char.charCodeAt(0).toString(16).padStart(2, "0")}`).join(""));
|
|
573
|
+
const decoded = JSON.parse(decodedText);
|
|
574
|
+
if (!isJsonObject(decoded)) {
|
|
575
|
+
throw new Error("Expected JWT payload to be an object");
|
|
576
|
+
}
|
|
577
|
+
return decoded;
|
|
578
|
+
} catch (error) {
|
|
579
|
+
if (error instanceof AuthWebError) {
|
|
580
|
+
throw error;
|
|
581
|
+
}
|
|
582
|
+
throw new AuthWebError("parse_error", String(error));
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
mapOAuthErrorCode(error) {
|
|
586
|
+
const normalizedError = error.trim().toLowerCase();
|
|
587
|
+
if (normalizedError === "access_denied" || normalizedError === "popup_closed_by_user" || normalizedError === "user_cancelled") {
|
|
588
|
+
return "cancelled";
|
|
513
589
|
}
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
const decoded = JSON.parse(atob(`${normalizedPayload}${padding}`));
|
|
517
|
-
if (!isJsonObject(decoded)) {
|
|
518
|
-
throw new Error("Expected JWT payload to be an object");
|
|
590
|
+
if (normalizedError === "server_error" || normalizedError === "temporarily_unavailable") {
|
|
591
|
+
return "network_error";
|
|
519
592
|
}
|
|
520
|
-
|
|
593
|
+
if (normalizedError === "invalid_client" || normalizedError === "invalid_scope" || normalizedError === "unauthorized_client") {
|
|
594
|
+
return "configuration_error";
|
|
595
|
+
}
|
|
596
|
+
if (normalizedError === "invalid_grant" || normalizedError === "invalid_token") {
|
|
597
|
+
return "token_error";
|
|
598
|
+
}
|
|
599
|
+
return "unknown";
|
|
600
|
+
}
|
|
601
|
+
getExpirationTime(expiresIn) {
|
|
602
|
+
const expiresInSeconds = parseExpiresInSeconds(expiresIn);
|
|
603
|
+
if (expiresInSeconds === undefined) {
|
|
604
|
+
return undefined;
|
|
605
|
+
}
|
|
606
|
+
return Date.now() + expiresInSeconds * 1000;
|
|
521
607
|
}
|
|
522
608
|
waitForPopupRedirect(popup, redirectUri, provider, onRedirect) {
|
|
523
609
|
return new Promise((resolve, reject) => {
|
|
@@ -555,7 +641,7 @@ class AuthWeb {
|
|
|
555
641
|
return;
|
|
556
642
|
}
|
|
557
643
|
cleanup(intervalId, timeoutId, true);
|
|
558
|
-
void Promise.resolve(onRedirect(url)).then(() => {
|
|
644
|
+
void Promise.resolve().then(() => onRedirect(url)).then(() => {
|
|
559
645
|
resolve();
|
|
560
646
|
}).catch(error => {
|
|
561
647
|
reject(error);
|
|
@@ -564,17 +650,6 @@ class AuthWeb {
|
|
|
564
650
|
});
|
|
565
651
|
}
|
|
566
652
|
async loginGoogle(scopes, loginHint) {
|
|
567
|
-
if (this._loginInFlight) {
|
|
568
|
-
throw new AuthWebError("cancelled", "Another login is already in progress");
|
|
569
|
-
}
|
|
570
|
-
this._loginInFlight = true;
|
|
571
|
-
try {
|
|
572
|
-
await this._loginGoogleInner(scopes, loginHint);
|
|
573
|
-
} finally {
|
|
574
|
-
this._loginInFlight = false;
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
async _loginGoogleInner(scopes, loginHint) {
|
|
578
653
|
const clientId = this._config.googleWebClientId;
|
|
579
654
|
if (!clientId) {
|
|
580
655
|
throw new Error("Google Web Client ID not configured. Add 'GOOGLE_WEB_CLIENT_ID' to your .env file.");
|
|
@@ -610,13 +685,18 @@ class AuthWeb {
|
|
|
610
685
|
const accessToken = params.get("access_token");
|
|
611
686
|
const expiresIn = params.get("expires_in");
|
|
612
687
|
const code = params.get("code");
|
|
688
|
+
const error = params.get("error");
|
|
689
|
+
const errorDescription = params.get("error_description");
|
|
690
|
+
if (error) {
|
|
691
|
+
throw new AuthWebError(this.mapOAuthErrorCode(error), errorDescription ?? error);
|
|
692
|
+
}
|
|
613
693
|
if (!idToken) {
|
|
614
|
-
throw new
|
|
694
|
+
throw new AuthWebError("no_id_token", "No id_token in response");
|
|
615
695
|
}
|
|
616
696
|
const decoded = this.parseJwtPayload(idToken);
|
|
617
697
|
if (decoded["nonce"] !== this._pendingGoogleNonce) {
|
|
618
698
|
this._pendingGoogleNonce = undefined;
|
|
619
|
-
throw new
|
|
699
|
+
throw new AuthWebError("invalid_nonce", "Nonce mismatch - possible replay attack");
|
|
620
700
|
}
|
|
621
701
|
this._pendingGoogleNonce = undefined;
|
|
622
702
|
this._grantedScopes = scopes;
|
|
@@ -627,7 +707,7 @@ class AuthWeb {
|
|
|
627
707
|
accessToken: accessToken ?? undefined,
|
|
628
708
|
serverAuthCode: code ?? undefined,
|
|
629
709
|
scopes,
|
|
630
|
-
expirationTime:
|
|
710
|
+
expirationTime: this.getExpirationTime(expiresIn),
|
|
631
711
|
...this.decodeGoogleJwt(idToken)
|
|
632
712
|
};
|
|
633
713
|
this.updateUser(user);
|
|
@@ -654,17 +734,6 @@ class AuthWeb {
|
|
|
654
734
|
}
|
|
655
735
|
}
|
|
656
736
|
async loginMicrosoft(scopes, loginHint, tenant, prompt) {
|
|
657
|
-
if (this._loginInFlight) {
|
|
658
|
-
throw new AuthWebError("cancelled", "Another login is already in progress");
|
|
659
|
-
}
|
|
660
|
-
this._loginInFlight = true;
|
|
661
|
-
try {
|
|
662
|
-
await this._loginMicrosoftInner(scopes, loginHint, tenant, prompt);
|
|
663
|
-
} finally {
|
|
664
|
-
this._loginInFlight = false;
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
async _loginMicrosoftInner(scopes, loginHint, tenant, prompt) {
|
|
668
737
|
const clientId = this._config.microsoftClientId;
|
|
669
738
|
if (!clientId) {
|
|
670
739
|
throw new Error("Microsoft Client ID not configured. Add 'microsoftClientId' to expo.extra in your app.config.js");
|
|
@@ -709,13 +778,13 @@ class AuthWeb {
|
|
|
709
778
|
const error = urlObj.searchParams.get("error");
|
|
710
779
|
const errorDescription = urlObj.searchParams.get("error_description");
|
|
711
780
|
if (error) {
|
|
712
|
-
throw new
|
|
781
|
+
throw new AuthWebError(this.mapOAuthErrorCode(error), errorDescription ?? error);
|
|
713
782
|
}
|
|
714
783
|
if (returnedState !== state) {
|
|
715
|
-
throw new
|
|
784
|
+
throw new AuthWebError("invalid_state", "State mismatch - possible CSRF attack");
|
|
716
785
|
}
|
|
717
786
|
if (!code) {
|
|
718
|
-
throw new
|
|
787
|
+
throw new AuthWebError("token_error", "No authorization code in response");
|
|
719
788
|
}
|
|
720
789
|
await this.exchangeMicrosoftCodeForTokens(code, codeVerifier, clientId, redirectUri, effectiveTenant, nonce, effectiveScopes);
|
|
721
790
|
}).then(() => {
|
|
@@ -759,20 +828,19 @@ class AuthWeb {
|
|
|
759
828
|
});
|
|
760
829
|
const json = await this.parseResponseObject(response);
|
|
761
830
|
if (!response.ok) {
|
|
762
|
-
throw new
|
|
831
|
+
throw new AuthWebError("token_error", getOptionalString(json, "error_description") ?? getOptionalString(json, "error") ?? "Token exchange failed");
|
|
763
832
|
}
|
|
764
833
|
const idToken = getOptionalString(json, "id_token");
|
|
765
834
|
if (!idToken) {
|
|
766
|
-
throw new
|
|
835
|
+
throw new AuthWebError("no_id_token", "No id_token in token response");
|
|
767
836
|
}
|
|
768
837
|
const claims = this.decodeMicrosoftJwt(idToken);
|
|
769
838
|
const payload = this.parseJwtPayload(idToken);
|
|
770
839
|
if (getOptionalString(payload, "nonce") !== expectedNonce) {
|
|
771
|
-
throw new
|
|
840
|
+
throw new AuthWebError("invalid_nonce", "Nonce mismatch - token may be replayed");
|
|
772
841
|
}
|
|
773
842
|
const accessToken = getOptionalString(json, "access_token");
|
|
774
843
|
const refreshToken = getOptionalString(json, "refresh_token");
|
|
775
|
-
const expiresInSeconds = getOptionalNumber(json, "expires_in");
|
|
776
844
|
if (refreshToken) {
|
|
777
845
|
this.saveRefreshToken(refreshToken);
|
|
778
846
|
}
|
|
@@ -784,7 +852,7 @@ class AuthWeb {
|
|
|
784
852
|
accessToken: accessToken ?? undefined,
|
|
785
853
|
refreshToken: refreshToken ?? undefined,
|
|
786
854
|
scopes,
|
|
787
|
-
expirationTime:
|
|
855
|
+
expirationTime: this.getExpirationTime(json["expires_in"]),
|
|
788
856
|
...claims
|
|
789
857
|
};
|
|
790
858
|
this.updateUser(user);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_logger","require","CACHE_KEY","SCOPES_KEY","MS_REFRESH_TOKEN_KEY","DEFAULT_SCOPES","MS_DEFAULT_SCOPES","STORAGE_MODE_SESSION","STORAGE_MODE_LOCAL","STORAGE_MODE_MEMORY","POPUP_POLL_INTERVAL_MS","POPUP_TIMEOUT_MS","WEB_STORAGE_MODES","Set","inMemoryWebStorage","Map","_appleSdkLoadPromise","AuthWebError","Error","constructor","message","underlyingError","name","isJsonObject","value","isAuthProvider","getOptionalString","source","key","candidate","undefined","getOptionalNumber","parseAuthUser","provider","scopesCandidate","scopes","Array","isArray","filter","scope","email","photo","idToken","accessToken","refreshToken","serverAuthCode","expirationTime","parseScopes","parseAuthWebExtraConfig","nitroAuthWebStorageCandidate","nitroAuthWebStorage","googleWebClientId","microsoftClientId","microsoftTenant","microsoftB2cDomain","appleWebClientId","nitroAuthPersistTokensOnWeb","getConfig","Constants","default","expoConfig","extra","error","logger","debug","String","AuthWeb","_grantedScopes","_listeners","_tokenListeners","_browserStorageResolved","_loginInFlight","_config","loadFromCache","isPromiseLike","then","createWebStorageDriver","adapter","save","result","load","remove","shouldPersistTokensInStorage","_storageAdapter","getWebStorageMode","configuredMode","has","getBrowserStorage","_browserStorageCache","window","mode","storage","localStorage","sessionStorage","testKey","setItem","removeItem","warn","saveValue","set","loadValue","getItem","get","removeValue","delete","removePersistedBrowserValue","sanitizeUserForPersistence","user","safeUser","saveRefreshToken","loadRefreshToken","cached","parsedUser","JSON","parse","_currentUser","removeFromCache","parsedScopes","currentUser","grantedScopes","hasPlayServices","onAuthStateChanged","callback","push","l","onTokensRefreshed","notify","forEach","login","options","loginHint","log","loginGoogle","loginMicrosoft","tenant","prompt","loginApple","e","mapError","requestScopes","newScopes","revokeScopes","s","includes","stringify","updateUser","getAccessToken","now","Date","_refreshPromise","refreshPromise","performRefreshToken","clientId","b2cDomain","authBaseUrl","getMicrosoftAuthBaseUrl","tokenUrl","body","URLSearchParams","client_id","grant_type","refresh_token","response","fetch","method","headers","toString","json","parseResponseObject","ok","newRefreshToken","expiresInSeconds","effectiveIdToken","claims","decodeMicrosoftJwt","tokens","length","rawMessage","msg","toLowerCase","mappedMsg","parsed","parseJwtPayload","token","payload","split","normalizedPayload","replace","padding","repeat","decoded","atob","waitForPopupRedirect","popup","redirectUri","onRedirect","Promise","resolve","reject","crossOriginLogShown","cleanup","intervalId","timeoutId","shouldClosePopup","clearInterval","clearTimeout","closed","close","setTimeout","setInterval","url","location","href","startsWith","catch","_loginGoogleInner","nonce","crypto","randomUUID","_pendingGoogleNonce","origin","authUrl","URL","searchParams","join","width","height","left","screenX","outerWidth","top","screenY","outerHeight","open","hash","slice","params","expiresIn","code","parseInt","decodeGoogleJwt","_loginMicrosoftInner","effectiveTenant","effectiveScopes","codeVerifier","generateCodeVerifier","codeChallenge","generateCodeChallenge","state","urlObj","returnedState","errorDescription","exchangeMicrosoftCodeForTokens","array","Uint8Array","getRandomValues","base64UrlEncode","verifier","encoder","TextEncoder","data","encode","subtle","digest","bytes","base64","btoa","fromCharCode","expectedNonce","redirect_uri","code_verifier","endsWith","ensureAppleSdkLoaded","AppleID","scriptId","existingScript","document","getElementById","addEventListener","once","script","createElement","id","src","async","onload","onerror","head","appendChild","auth","init","redirectURI","usePopup","signIn","authorization","id_token","firstName","lastName","trim","silentRestore","logout","userToPersist","setLoggingEnabled","enabled","setEnabled","setWebStorageAdapter","dispose","equals","other","AuthModule","exports"],"sourceRoot":"../../src","sources":["Auth.web.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_logger","require","CACHE_KEY","SCOPES_KEY","MS_REFRESH_TOKEN_KEY","DEFAULT_SCOPES","MS_DEFAULT_SCOPES","STORAGE_MODE_SESSION","STORAGE_MODE_LOCAL","STORAGE_MODE_MEMORY","POPUP_POLL_INTERVAL_MS","POPUP_TIMEOUT_MS","WEB_STORAGE_MODES","Set","WEB_AUTH_ERROR_CODES","JWT_BASE64_URL_RE","inMemoryWebStorage","Map","_appleSdkLoadPromise","AuthWebError","Error","constructor","message","underlyingError","name","isJsonObject","value","isAuthProvider","getOptionalString","source","key","candidate","undefined","getOptionalNumber","Number","isFinite","parseExpiresInSeconds","trim","length","parseAuthUser","provider","scopesCandidate","scopes","Array","isArray","filter","scope","email","photo","idToken","accessToken","refreshToken","serverAuthCode","expirationTime","parseScopes","isAuthErrorCode","has","parseAuthWebExtraConfig","nitroAuthWebStorageCandidate","nitroAuthWebStorage","googleWebClientId","microsoftClientId","microsoftTenant","microsoftB2cDomain","appleWebClientId","nitroAuthPersistTokensOnWeb","getConfig","Constants","default","expoConfig","extra","error","logger","debug","String","AuthWeb","_grantedScopes","_listeners","_tokenListeners","_browserStorageResolved","_loginInFlight","_config","loadFromCache","isPromiseLike","then","createWebStorageDriver","adapter","save","result","load","remove","shouldPersistTokensInStorage","_storageAdapter","getWebStorageMode","configuredMode","getBrowserStorage","_browserStorageCache","window","mode","storage","localStorage","sessionStorage","testKey","setItem","removeItem","warn","saveValue","set","loadValue","getItem","get","removeValue","delete","removePersistedBrowserValue","sanitizeUserForPersistence","user","safeUser","saveRefreshToken","loadRefreshToken","cached","parsedUser","JSON","parse","_currentUser","removeFromCache","parsedScopes","currentUser","grantedScopes","hasPlayServices","onAuthStateChanged","callback","push","l","onTokensRefreshed","notify","listener","notifyTokenListeners","tokens","runLoginOperation","operation","login","options","loginHint","log","loginGoogle","loginMicrosoft","tenant","prompt","loginApple","e","mapError","requestScopes","newScopes","revokeScopes","s","includes","stringify","updateUser","getAccessToken","now","Date","_refreshPromise","refreshPromise","performRefreshToken","clientId","b2cDomain","authBaseUrl","getMicrosoftAuthBaseUrl","tokenUrl","body","URLSearchParams","client_id","grant_type","refresh_token","response","fetch","method","headers","toString","json","parseResponseObject","ok","newRefreshToken","getExpirationTime","effectiveIdToken","claims","decodeMicrosoftJwt","rawMessage","msg","toLowerCase","mappedMsg","parsed","parseJwtPayload","token","parts","split","payload","test","normalizedPayload","replace","padding","repeat","binary","atob","decodedText","TextDecoder","decode","Uint8Array","from","char","charCodeAt","decodeURIComponent","padStart","join","decoded","mapOAuthErrorCode","normalizedError","expiresIn","expiresInSeconds","waitForPopupRedirect","popup","redirectUri","onRedirect","Promise","resolve","reject","crossOriginLogShown","cleanup","intervalId","timeoutId","shouldClosePopup","clearInterval","clearTimeout","closed","close","setTimeout","setInterval","url","location","href","startsWith","catch","nonce","crypto","randomUUID","_pendingGoogleNonce","origin","authUrl","URL","searchParams","width","height","left","screenX","outerWidth","top","screenY","outerHeight","open","hash","slice","params","code","errorDescription","decodeGoogleJwt","effectiveTenant","effectiveScopes","codeVerifier","generateCodeVerifier","codeChallenge","generateCodeChallenge","state","urlObj","returnedState","exchangeMicrosoftCodeForTokens","array","getRandomValues","base64UrlEncode","verifier","encoder","TextEncoder","data","encode","subtle","digest","bytes","base64","btoa","fromCharCode","expectedNonce","redirect_uri","code_verifier","endsWith","ensureAppleSdkLoaded","AppleID","scriptId","existingScript","document","getElementById","addEventListener","once","script","createElement","id","src","async","onload","onerror","head","appendChild","auth","init","redirectURI","usePopup","signIn","authorization","id_token","firstName","lastName","silentRestore","logout","userToPersist","setLoggingEnabled","enabled","setEnabled","setWebStorageAdapter","dispose","equals","other","AuthModule","exports"],"sourceRoot":"../../src","sources":["Auth.web.ts"],"mappings":";;;;;;AASA,IAAAA,OAAA,GAAAC,OAAA;AAEA,MAAMC,SAAS,GAAG,iBAAiB;AACnC,MAAMC,UAAU,GAAG,mBAAmB;AACtC,MAAMC,oBAAoB,GAAG,oCAAoC;AACjE,MAAMC,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;AACrD,MAAMC,iBAAiB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC;AACrE,MAAMC,oBAAoB,GAAG,SAAS;AACtC,MAAMC,kBAAkB,GAAG,OAAO;AAClC,MAAMC,mBAAmB,GAAG,QAAQ;AACpC,MAAMC,sBAAsB,GAAG,GAAG;AAClC,MAAMC,gBAAgB,GAAG,MAAM;AAC/B,MAAMC,iBAAiB,GAAG,IAAIC,GAAG,CAAC,CAChCN,oBAAoB,EACpBC,kBAAkB,EAClBC,mBAAmB,CACX,CAAC;AACX,MAAMK,oBAAyC,GAAG,IAAID,GAAG,CAAgB,CACvE,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,CACV,CAAC;AACF,MAAME,iBAAiB,GAAG,kBAAkB;AAC5C,MAAMC,kBAAkB,GAAG,IAAIC,GAAG,CAAiB,CAAC;AACpD,IAAIC,oBAA+C;AAiCnD,MAAMC,YAAY,SAASC,KAAK,CAAC;EAG/BC,WAAWA,CAACC,OAAsB,EAAEC,eAAwB,EAAE;IAC5D,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACE,IAAI,GAAG,cAAc;IAC1B,IAAI,CAACD,eAAe,GAAGA,eAAe;EACxC;AACF;AAEA,MAAME,YAAY,GAAIC,KAAc,IAClC,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI;AAE7C,MAAMC,cAAc,GAAID,KAAc,IACpCA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,WAAW;AAElE,MAAME,iBAAiB,GAAGA,CACxBC,MAAkB,EAClBC,GAAW,KACY;EACvB,MAAMC,SAAS,GAAGF,MAAM,CAACC,GAAG,CAAC;EAC7B,OAAO,OAAOC,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAGC,SAAS;AAC9D,CAAC;AAED,MAAMC,iBAAiB,GAAGA,CACxBJ,MAAkB,EAClBC,GAAW,KACY;EACvB,MAAMC,SAAS,GAAGF,MAAM,CAACC,GAAG,CAAC;EAC7B,OAAO,OAAOC,SAAS,KAAK,QAAQ,IAAIG,MAAM,CAACC,QAAQ,CAACJ,SAAS,CAAC,GAC9DA,SAAS,GACTC,SAAS;AACf,CAAC;AAED,MAAMI,qBAAqB,GAAIV,KAAc,IAAyB;EACpE,MAAMK,SAAS,GACb,OAAOL,KAAK,KAAK,QAAQ,GACrBA,KAAK,GACL,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACW,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC,GAClDJ,MAAM,CAACR,KAAK,CAAC,GACbM,SAAS;EAEjB,IACE,OAAOD,SAAS,KAAK,QAAQ,IAC7B,CAACG,MAAM,CAACC,QAAQ,CAACJ,SAAS,CAAC,IAC3BA,SAAS,GAAG,CAAC,EACb;IACA,OAAOC,SAAS;EAClB;EAEA,OAAOD,SAAS;AAClB,CAAC;AAED,MAAMQ,aAAa,GAAIb,KAAc,IAA2B;EAC9D,IAAI,CAACD,YAAY,CAACC,KAAK,CAAC,IAAI,CAACC,cAAc,CAACD,KAAK,CAACc,QAAQ,CAAC,EAAE;IAC3D,OAAOR,SAAS;EAClB;EAEA,MAAMS,eAAe,GAAGf,KAAK,CAACgB,MAAM;EACpC,MAAMA,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACH,eAAe,CAAC,GACzCA,eAAe,CAACI,MAAM,CACnBC,KAAK,IAAsB,OAAOA,KAAK,KAAK,QAC/C,CAAC,GACDd,SAAS;EAEb,OAAO;IACLQ,QAAQ,EAAEd,KAAK,CAACc,QAAQ;IACxBO,KAAK,EAAEnB,iBAAiB,CAACF,KAAK,EAAE,OAAO,CAAC;IACxCF,IAAI,EAAEI,iBAAiB,CAACF,KAAK,EAAE,MAAM,CAAC;IACtCsB,KAAK,EAAEpB,iBAAiB,CAACF,KAAK,EAAE,OAAO,CAAC;IACxCuB,OAAO,EAAErB,iBAAiB,CAACF,KAAK,EAAE,SAAS,CAAC;IAC5CwB,WAAW,EAAEtB,iBAAiB,CAACF,KAAK,EAAE,aAAa,CAAC;IACpDyB,YAAY,EAAEvB,iBAAiB,CAACF,KAAK,EAAE,cAAc,CAAC;IACtD0B,cAAc,EAAExB,iBAAiB,CAACF,KAAK,EAAE,gBAAgB,CAAC;IAC1DgB,MAAM;IACNW,cAAc,EAAEpB,iBAAiB,CAACP,KAAK,EAAE,gBAAgB,CAAC;IAC1DH,eAAe,EAAEK,iBAAiB,CAACF,KAAK,EAAE,iBAAiB;EAC7D,CAAC;AACH,CAAC;AAED,MAAM4B,WAAW,GAAI5B,KAAc,IAA2B;EAC5D,IAAI,CAACiB,KAAK,CAACC,OAAO,CAAClB,KAAK,CAAC,EAAE;IACzB,OAAOM,SAAS;EAClB;EAEA,OAAON,KAAK,CAACmB,MAAM,CAAEC,KAAK,IAAsB,OAAOA,KAAK,KAAK,QAAQ,CAAC;AAC5E,CAAC;AAED,MAAMS,eAAe,GAAI7B,KAAa,IACpCZ,oBAAoB,CAAC0C,GAAG,CAAC9B,KAAK,CAAC;AAEjC,MAAM+B,uBAAuB,GAAI/B,KAAc,IAAyB;EACtE,IAAI,CAACD,YAAY,CAACC,KAAK,CAAC,EAAE;IACxB,OAAO,CAAC,CAAC;EACX;EAEA,MAAMgC,4BAA4B,GAAGhC,KAAK,CAACiC,mBAAmB;EAC9D,MAAMA,mBAAmB,GACvBD,4BAA4B,KAAKnD,oBAAoB,IACrDmD,4BAA4B,KAAKlD,kBAAkB,IACnDkD,4BAA4B,KAAKjD,mBAAmB,GAChDiD,4BAA4B,GAC5B1B,SAAS;EAEf,OAAO;IACL4B,iBAAiB,EAAEhC,iBAAiB,CAACF,KAAK,EAAE,mBAAmB,CAAC;IAChEmC,iBAAiB,EAAEjC,iBAAiB,CAACF,KAAK,EAAE,mBAAmB,CAAC;IAChEoC,eAAe,EAAElC,iBAAiB,CAACF,KAAK,EAAE,iBAAiB,CAAC;IAC5DqC,kBAAkB,EAAEnC,iBAAiB,CAACF,KAAK,EAAE,oBAAoB,CAAC;IAClEsC,gBAAgB,EAAEpC,iBAAiB,CAACF,KAAK,EAAE,kBAAkB,CAAC;IAC9DiC,mBAAmB;IACnBM,2BAA2B,EACzB,OAAOvC,KAAK,CAACuC,2BAA2B,KAAK,SAAS,GAClDvC,KAAK,CAACuC,2BAA2B,GACjCjC;EACR,CAAC;AACH,CAAC;AAED,MAAMkC,SAAS,GAAGA,CAAA,KAA0B;EAC1C,IAAI;IACF;IACA,MAAMC,SAAS,GAAGlE,OAAO,CAAC,gBAAgB,CAAC,CAACmE,OAAO;IACnD,OAAOX,uBAAuB,CAACU,SAAS,CAACE,UAAU,EAAEC,KAAK,CAAC;EAC7D,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdC,cAAM,CAACC,KAAK,CACV,6DAA6D,EAC7D;MACEF,KAAK,EAAEG,MAAM,CAACH,KAAK;IACrB,CACF,CAAC;IACD,OAAO,CAAC,CAAC;EACX;AACF,CAAC;AAED,MAAMI,OAAO,CAAiB;EAGpBC,cAAc,GAAa,EAAE;EAC7BC,UAAU,GAA6C,EAAE;EACzDC,eAAe,GAAqC,EAAE;EAEtDC,uBAAuB,GAAG,KAAK;EAI/BC,cAAc,GAAY,KAAK;EAEvC3D,WAAWA,CAAA,EAAG;IACZ,IAAI,CAAC4D,OAAO,GAAGf,SAAS,CAAC,CAAC;IAC1B,IAAI,CAACgB,aAAa,CAAC,CAAC;EACtB;EAEQC,aAAaA,CAACzD,KAAc,EAAiC;IACnE,IAAI,CAACD,YAAY,CAACC,KAAK,CAAC,EAAE;MACxB,OAAO,KAAK;IACd;IACA,OAAO,OAAOA,KAAK,CAAC0D,IAAI,KAAK,UAAU;EACzC;EAEQC,sBAAsBA,CAACC,OAAyB,EAAoB;IAC1E,OAAO;MACLC,IAAI,EAAEA,CAACzD,GAAG,EAAEJ,KAAK,KAAK;QACpB,MAAM8D,MAAM,GAAGF,OAAO,CAACC,IAAI,CAACzD,GAAG,EAAEJ,KAAK,CAAC;QACvC,IAAI,IAAI,CAACyD,aAAa,CAACK,MAAM,CAAC,EAAE;UAC9B,MAAM,IAAIpE,KAAK,CAAC,oDAAoD,CAAC;QACvE;MACF,CAAC;MACDqE,IAAI,EAAG3D,GAAG,IAAK;QACb,MAAM0D,MAAM,GAAGF,OAAO,CAACG,IAAI,CAAC3D,GAAG,CAAC;QAChC,IAAI,IAAI,CAACqD,aAAa,CAACK,MAAM,CAAC,EAAE;UAC9B,MAAM,IAAIpE,KAAK,CAAC,oDAAoD,CAAC;QACvE;QACA,OAAOoE,MAAM;MACf,CAAC;MACDE,MAAM,EAAG5D,GAAG,IAAK;QACf,MAAM0D,MAAM,GAAGF,OAAO,CAACI,MAAM,CAAC5D,GAAG,CAAC;QAClC,IAAI,IAAI,CAACqD,aAAa,CAACK,MAAM,CAAC,EAAE;UAC9B,MAAM,IAAIpE,KAAK,CACb,sDACF,CAAC;QACH;MACF;IACF,CAAC;EACH;EAEQuE,4BAA4BA,CAAA,EAAY;IAC9C,IAAI,IAAI,CAACC,eAAe,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OAAO,IAAI,CAACX,OAAO,CAAChB,2BAA2B,KAAK,IAAI;EAC1D;EAEQ4B,iBAAiBA,CAAA,EAAmC;IAC1D,MAAMC,cAAc,GAAG,IAAI,CAACb,OAAO,CAACtB,mBAAmB;IACvD,IAAImC,cAAc,IAAIlF,iBAAiB,CAAC4C,GAAG,CAACsC,cAAc,CAAC,EAAE;MAC3D,OAAOA,cAAc;IACvB;IACA,OAAOvF,oBAAoB;EAC7B;EAEQwF,iBAAiBA,CAAA,EAAwB;IAC/C,IAAI,IAAI,CAAChB,uBAAuB,EAAE;MAChC,OAAO,IAAI,CAACiB,oBAAoB;IAClC;IAEA,IAAI,CAACjB,uBAAuB,GAAG,IAAI;IACnC,IAAI,OAAOkB,MAAM,KAAK,WAAW,EAAE;MACjC,IAAI,CAACD,oBAAoB,GAAGhE,SAAS;MACrC,OAAOA,SAAS;IAClB;IAEA,MAAMkE,IAAI,GAAG,IAAI,CAACL,iBAAiB,CAAC,CAAC;IACrC,IAAIK,IAAI,KAAKzF,mBAAmB,EAAE;MAChC,IAAI,CAACuF,oBAAoB,GAAGhE,SAAS;MACrC,OAAOA,SAAS;IAClB;IAEA,MAAMmE,OAAO,GACXD,IAAI,KAAK1F,kBAAkB,GAAGyF,MAAM,CAACG,YAAY,GAAGH,MAAM,CAACI,cAAc;IAC3E,IAAI;MACF,MAAMC,OAAO,GAAG,8BAA8B;MAC9CH,OAAO,CAACI,OAAO,CAACD,OAAO,EAAE,GAAG,CAAC;MAC7BH,OAAO,CAACK,UAAU,CAACF,OAAO,CAAC;MAC3B,IAAI,CAACN,oBAAoB,GAAGG,OAAO;MACnC,OAAOA,OAAO;IAChB,CAAC,CAAC,OAAO5B,KAAK,EAAE;MACdC,cAAM,CAACiC,IAAI,CACT,iEAAiE,EACjE;QACEP,IAAI;QACJ3B,KAAK,EAAEG,MAAM,CAACH,KAAK;MACrB,CACF,CAAC;MACD,IAAI,CAACyB,oBAAoB,GAAGhE,SAAS;MACrC,OAAOA,SAAS;IAClB;EACF;EAEQ0E,SAASA,CAAC5E,GAAW,EAAEJ,KAAa,EAAQ;IAClD,IAAI,IAAI,CAACkE,eAAe,EAAE;MACxB,IAAI,CAACA,eAAe,CAACL,IAAI,CAACzD,GAAG,EAAEJ,KAAK,CAAC;MACrC;IACF;IAEA,MAAMyE,OAAO,GAAG,IAAI,CAACJ,iBAAiB,CAAC,CAAC;IACxC,IAAII,OAAO,EAAE;MACXA,OAAO,CAACI,OAAO,CAACzE,GAAG,EAAEJ,KAAK,CAAC;MAC3B;IACF;IACAV,kBAAkB,CAAC2F,GAAG,CAAC7E,GAAG,EAAEJ,KAAK,CAAC;EACpC;EAEQkF,SAASA,CAAC9E,GAAW,EAAsB;IACjD,IAAI,IAAI,CAAC8D,eAAe,EAAE;MACxB,OAAO,IAAI,CAACA,eAAe,CAACH,IAAI,CAAC3D,GAAG,CAAC;IACvC;IAEA,MAAMqE,OAAO,GAAG,IAAI,CAACJ,iBAAiB,CAAC,CAAC;IACxC,IAAII,OAAO,EAAE;MACX,OAAOA,OAAO,CAACU,OAAO,CAAC/E,GAAG,CAAC,IAAIE,SAAS;IAC1C;IACA,OAAOhB,kBAAkB,CAAC8F,GAAG,CAAChF,GAAG,CAAC;EACpC;EAEQiF,WAAWA,CAACjF,GAAW,EAAQ;IACrC,IAAI,IAAI,CAAC8D,eAAe,EAAE;MACxB,IAAI,CAACA,eAAe,CAACF,MAAM,CAAC5D,GAAG,CAAC;MAChC;IACF;IAEA,MAAMqE,OAAO,GAAG,IAAI,CAACJ,iBAAiB,CAAC,CAAC;IACxC,IAAII,OAAO,EAAE;MACXA,OAAO,CAACK,UAAU,CAAC1E,GAAG,CAAC;MACvB;IACF;IACAd,kBAAkB,CAACgG,MAAM,CAAClF,GAAG,CAAC;EAChC;EAEQmF,2BAA2BA,CAACnF,GAAW,EAAQ;IACrD,IAAI,OAAOmE,MAAM,KAAK,WAAW,EAAE;MACjC;IACF;IAEA,IAAI;MACFA,MAAM,CAACG,YAAY,CAACI,UAAU,CAAC1E,GAAG,CAAC;MACnCmE,MAAM,CAACI,cAAc,CAACG,UAAU,CAAC1E,GAAG,CAAC;IACvC,CAAC,CAAC,OAAOyC,KAAK,EAAE;MACdC,cAAM,CAACC,KAAK,CAAC,yCAAyC,EAAE;QACtD3C,GAAG;QACHyC,KAAK,EAAEG,MAAM,CAACH,KAAK;MACrB,CAAC,CAAC;IACJ;EACF;EAEQ2C,0BAA0BA,CAACC,IAAc,EAAY;IAC3D,IAAI,IAAI,CAACxB,4BAA4B,CAAC,CAAC,EAAE;MACvC,OAAOwB,IAAI;IACb;IAEA,MAAMC,QAAQ,GAAG;MAAE,GAAGD;IAAK,CAAC;IAC5B,OAAOC,QAAQ,CAAClE,WAAW;IAC3B,OAAOkE,QAAQ,CAACnE,OAAO;IACvB,OAAOmE,QAAQ,CAAChE,cAAc;IAC9B,OAAOgE,QAAQ;EACjB;EAEQC,gBAAgBA,CAAClE,YAAoB,EAAQ;IACnD,IAAI,IAAI,CAACyC,eAAe,IAAI,IAAI,CAACD,4BAA4B,CAAC,CAAC,EAAE;MAC/D,IAAI,CAACe,SAAS,CAACtG,oBAAoB,EAAE+C,YAAY,CAAC;MAClD;IACF;;IAEA;IACAnC,kBAAkB,CAAC2F,GAAG,CAACvG,oBAAoB,EAAE+C,YAAY,CAAC;EAC5D;EAEQmE,gBAAgBA,CAAA,EAAuB;IAC7C,IAAI,IAAI,CAAC1B,eAAe,IAAI,IAAI,CAACD,4BAA4B,CAAC,CAAC,EAAE;MAC/D,OAAO,IAAI,CAACiB,SAAS,CAACxG,oBAAoB,CAAC;IAC7C;IACA,OAAOY,kBAAkB,CAAC8F,GAAG,CAAC1G,oBAAoB,CAAC;EACrD;EAEQ8E,aAAaA,CAAA,EAAG;IACtB,MAAMqC,MAAM,GAAG,IAAI,CAACX,SAAS,CAAC1G,SAAS,CAAC;IAExC,IAAIqH,MAAM,EAAE;MACV,IAAI;QACF,MAAMC,UAAU,GAAGjF,aAAa,CAACkF,IAAI,CAACC,KAAK,CAACH,MAAM,CAAC,CAAC;QACpD,IAAI,CAACC,UAAU,EAAE;UACf,MAAM,IAAIpG,KAAK,CAAC,kDAAkD,CAAC;QACrE;QACA,IAAI,IAAI,CAACuE,4BAA4B,CAAC,CAAC,EAAE;UACvC,IAAI,CAACgC,YAAY,GAAGH,UAAU;QAChC,CAAC,MAAM;UACL,MAAMJ,QAAQ,GAAG;YAAE,GAAGI;UAAW,CAAC;UAClC,OAAOJ,QAAQ,CAAClE,WAAW;UAC3B,OAAOkE,QAAQ,CAACnE,OAAO;UACvB,OAAOmE,QAAQ,CAAChE,cAAc;UAC9B,IAAI,CAACuE,YAAY,GAAGP,QAAQ;QAC9B;MACF,CAAC,CAAC,OAAO7C,KAAK,EAAE;QACdC,cAAM,CAACiC,IAAI,CAAC,kDAAkD,EAAE;UAC9DlC,KAAK,EAAEG,MAAM,CAACH,KAAK;QACrB,CAAC,CAAC;QACF,IAAI,CAACqD,eAAe,CAAC1H,SAAS,CAAC;MACjC;IACF;IAEA,MAAMwC,MAAM,GAAG,IAAI,CAACkE,SAAS,CAACzG,UAAU,CAAC;IAEzC,IAAIuC,MAAM,EAAE;MACV,IAAI;QACF,MAAMmF,YAAY,GAAGvE,WAAW,CAACmE,IAAI,CAACC,KAAK,CAAChF,MAAM,CAAC,CAAC;QACpD,IAAI,CAACmF,YAAY,EAAE;UACjB,MAAM,IAAIzG,KAAK,CAAC,uCAAuC,CAAC;QAC1D;QACA,IAAI,CAACwD,cAAc,GAAGiD,YAAY;MACpC,CAAC,CAAC,OAAOtD,KAAK,EAAE;QACdC,cAAM,CAACiC,IAAI,CAAC,+CAA+C,EAAE;UAC3DlC,KAAK,EAAEG,MAAM,CAACH,KAAK;QACrB,CAAC,CAAC;QACF,IAAI,CAACqD,eAAe,CAACzH,UAAU,CAAC;MAClC;IACF;IAEA,IAAI,CAAC,IAAI,CAACwF,4BAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,CAACC,eAAe,EAAE;MACjE,IAAI,CAACqB,2BAA2B,CAAC7G,oBAAoB,CAAC;IACxD;EACF;EAEQwH,eAAeA,CAAC9F,GAAW,EAAE;IACnC,IAAI,CAACiF,WAAW,CAACjF,GAAG,CAAC;EACvB;EAEA,IAAIgG,WAAWA,CAAA,EAAyB;IACtC,OAAO,IAAI,CAACH,YAAY;EAC1B;EAEA,IAAII,aAAaA,CAAA,EAAa;IAC5B,OAAO,IAAI,CAACnD,cAAc;EAC5B;EAEA,IAAIoD,eAAeA,CAAA,EAAY;IAC7B,OAAO,IAAI;EACb;EAEAC,kBAAkBA,CAChBC,QAA8C,EAClC;IACZ,IAAI,CAACrD,UAAU,CAACsD,IAAI,CAACD,QAAQ,CAAC;IAC9BA,QAAQ,CAAC,IAAI,CAACP,YAAY,CAAC;IAC3B,OAAO,MAAM;MACX,IAAI,CAAC9C,UAAU,GAAG,IAAI,CAACA,UAAU,CAAChC,MAAM,CAAEuF,CAAC,IAAKA,CAAC,KAAKF,QAAQ,CAAC;IACjE,CAAC;EACH;EAEAG,iBAAiBA,CAACH,QAAsC,EAAc;IACpE,IAAI,CAACpD,eAAe,CAACqD,IAAI,CAACD,QAAQ,CAAC;IACnC,OAAO,MAAM;MACX,IAAI,CAACpD,eAAe,GAAG,IAAI,CAACA,eAAe,CAACjC,MAAM,CAAEuF,CAAC,IAAKA,CAAC,KAAKF,QAAQ,CAAC;IAC3E,CAAC;EACH;EAEQI,MAAMA,CAAA,EAAG;IACf,KAAK,MAAMC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC1D,UAAU,CAAC,EAAE;MAC3C0D,QAAQ,CAAC,IAAI,CAACZ,YAAY,CAAC;IAC7B;EACF;EAEQa,oBAAoBA,CAACC,MAAkB,EAAQ;IACrD,KAAK,MAAMF,QAAQ,IAAI,CAAC,GAAG,IAAI,CAACzD,eAAe,CAAC,EAAE;MAChDyD,QAAQ,CAACE,MAAM,CAAC;IAClB;EACF;EAEA,MAAcC,iBAAiBA,CAC7BC,SAA8B,EACf;IACf,IAAI,IAAI,CAAC3D,cAAc,EAAE;MACvB,MAAM,IAAI7D,YAAY,CACpB,uBAAuB,EACvB,sCACF,CAAC;IACH;IAEA,IAAI,CAAC6D,cAAc,GAAG,IAAI;IAC1B,IAAI;MACF,MAAM2D,SAAS,CAAC,CAAC;IACnB,CAAC,SAAS;MACR,IAAI,CAAC3D,cAAc,GAAG,KAAK;IAC7B;EACF;EAEA,MAAM4D,KAAKA,CAACpG,QAAsB,EAAEqG,OAAsB,EAAiB;IACzE,MAAMC,SAAS,GAAGD,OAAO,EAAEC,SAAS;IACpCtE,cAAM,CAACuE,GAAG,CAAC,uBAAuBvG,QAAQ,EAAE,EAAE;MAAEE,MAAM,EAAEmG,OAAO,EAAEnG;IAAO,CAAC,CAAC;IAC1E,IAAI;MACF,MAAM,IAAI,CAACgG,iBAAiB,CAAC,YAAY;QACvC,IAAIlG,QAAQ,KAAK,QAAQ,EAAE;UACzB,MAAME,MAAM,GAAGmG,OAAO,EAAEnG,MAAM,IAAIrC,cAAc;UAChD,MAAM,IAAI,CAAC2I,WAAW,CAACtG,MAAM,EAAEoG,SAAS,CAAC;UACzC;QACF;QAEA,IAAItG,QAAQ,KAAK,WAAW,EAAE;UAC5B,MAAME,MAAM,GAAGmG,OAAO,EAAEnG,MAAM,IAAIpC,iBAAiB;UACnD,MAAM,IAAI,CAAC2I,cAAc,CACvBvG,MAAM,EACNoG,SAAS,EACTD,OAAO,EAAEK,MAAM,EACfL,OAAO,EAAEM,MACX,CAAC;UACD;QACF;QAEA,IAAI3G,QAAQ,KAAK,OAAO,EAAE;UACxB,MAAM,IAAI,CAAC4G,UAAU,CAAC,CAAC;UACvB;QACF;QAEA,MAAM,IAAIjI,YAAY,CACpB,sBAAsB,EACtB,8BAA8BqB,QAAQ,EACxC,CAAC;MACH,CAAC,CAAC;MACFgC,cAAM,CAACuE,GAAG,CAAC,yBAAyBvG,QAAQ,EAAE,CAAC;IACjD,CAAC,CAAC,OAAO6G,CAAU,EAAE;MACnB,MAAM9E,KAAK,GAAG,IAAI,CAAC+E,QAAQ,CAACD,CAAC,CAAC;MAC9B7E,cAAM,CAACD,KAAK,CAAC,oBAAoB/B,QAAQ,GAAG,EAAE+B,KAAK,CAACjD,OAAO,CAAC;MAC5D,MAAMiD,KAAK;IACb;EACF;EAEA,MAAMgF,aAAaA,CAAC7G,MAAgB,EAAiB;IACnD,IAAI,CAAC,IAAI,CAACiF,YAAY,EAAE;MACtB,MAAM,IAAIvG,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,MAAMoB,QAAQ,GAAG,IAAI,CAACmF,YAAY,CAACnF,QAAQ;IAC3C,IAAIA,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,WAAW,EAAE;MACrD,MAAM,IAAIpB,KAAK,CACb,0DACF,CAAC;IACH;IACAoD,cAAM,CAACuE,GAAG,CAAC,+BAA+B,EAAErG,MAAM,CAAC;IACnD,MAAM8G,SAAS,GAAG,CAAC,GAAG,IAAI3I,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC+D,cAAc,EAAE,GAAGlC,MAAM,CAAC,CAAC,CAAC;IACnE,IAAI;MACF,MAAM,IAAI,CAACgG,iBAAiB,CAAC,YAAY;QACvC,IAAIlG,QAAQ,KAAK,QAAQ,EAAE;UACzB,MAAM,IAAI,CAACwG,WAAW,CAACQ,SAAS,CAAC;UACjC;QACF;QAEA,MAAM,IAAI,CAACP,cAAc,CAACO,SAAS,CAAC;MACtC,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOH,CAAC,EAAE;MACV,MAAM9E,KAAK,GAAG,IAAI,CAAC+E,QAAQ,CAACD,CAAC,CAAC;MAC9B7E,cAAM,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAACjD,OAAO,CAAC;MACxD,MAAMiD,KAAK;IACb;EACF;EAEA,MAAMkF,YAAYA,CAAC/G,MAAgB,EAAiB;IAClD8B,cAAM,CAACuE,GAAG,CAAC,kBAAkB,EAAErG,MAAM,CAAC;IACtC,IAAI,CAACkC,cAAc,GAAG,IAAI,CAACA,cAAc,CAAC/B,MAAM,CAC7C6G,CAAC,IAAK,CAAChH,MAAM,CAACiH,QAAQ,CAACD,CAAC,CAC3B,CAAC;IACD,IAAI,CAAChD,SAAS,CAACvG,UAAU,EAAEsH,IAAI,CAACmC,SAAS,CAAC,IAAI,CAAChF,cAAc,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC+C,YAAY,EAAE;MACrB,IAAI,CAACA,YAAY,CAACjF,MAAM,GAAG,IAAI,CAACkC,cAAc;MAC9C,IAAI,CAACiF,UAAU,CAAC,IAAI,CAAClC,YAAY,CAAC;IACpC;EACF;EAEA,MAAMmC,cAAcA,CAAA,EAAgC;IAClD,IAAI,IAAI,CAACnC,YAAY,EAAEtE,cAAc,EAAE;MACrC,MAAM0G,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;MACtB,IAAIA,GAAG,GAAG,MAAM,GAAG,IAAI,CAACpC,YAAY,CAACtE,cAAc,EAAE;QACnDmB,cAAM,CAACuE,GAAG,CAAC,sCAAsC,CAAC;QAClD,MAAM,IAAI,CAAC5F,YAAY,CAAC,CAAC;MAC3B;IACF;IACA,OAAO,IAAI,CAACwE,YAAY,EAAEzE,WAAW;EACvC;EAEA,MAAMC,YAAYA,CAAA,EAAwB;IACxC,IAAI,IAAI,CAAC8G,eAAe,EAAE;MACxB,OAAO,IAAI,CAACA,eAAe;IAC7B;IAEA,MAAMC,cAAc,GAAG,IAAI,CAACC,mBAAmB,CAAC,CAAC;IACjD,IAAI,CAACF,eAAe,GAAGC,cAAc;IACrC,IAAI;MACF,OAAO,MAAMA,cAAc;IAC7B,CAAC,SAAS;MACR,IAAI,IAAI,CAACD,eAAe,KAAKC,cAAc,EAAE;QAC3C,IAAI,CAACD,eAAe,GAAGjI,SAAS;MAClC;IACF;EACF;EAEA,MAAcmI,mBAAmBA,CAAA,EAAwB;IACvD,IAAI,CAAC,IAAI,CAACxC,YAAY,EAAE;MACtB,MAAM,IAAIvG,KAAK,CAAC,mBAAmB,CAAC;IACtC;IAEA,IAAI,IAAI,CAACuG,YAAY,CAACnF,QAAQ,KAAK,WAAW,EAAE;MAC9CgC,cAAM,CAACuE,GAAG,CAAC,gCAAgC,CAAC;MAC5C,MAAM5F,YAAY,GAAG,IAAI,CAACmE,gBAAgB,CAAC,CAAC;MAE5C,IAAI,CAACnE,YAAY,EAAE;QACjB,MAAM,IAAIhC,YAAY,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;MACxE;MAEA,MAAMiJ,QAAQ,GAAG,IAAI,CAACnF,OAAO,CAACpB,iBAAiB;MAC/C,IAAI,CAACuG,QAAQ,EAAE;QACb,MAAM,IAAIhJ,KAAK,CACb,iGACF,CAAC;MACH;MACA,MAAM8H,MAAM,GAAG,IAAI,CAACjE,OAAO,CAACnB,eAAe,IAAI,QAAQ;MACvD,MAAMuG,SAAS,GAAG,IAAI,CAACpF,OAAO,CAAClB,kBAAkB;MAEjD,MAAMuG,WAAW,GAAG,IAAI,CAACC,uBAAuB,CAACrB,MAAM,EAAEmB,SAAS,CAAC;MACnE,MAAMG,QAAQ,GAAG,GAAGF,WAAW,mBAAmB;MAClD,MAAMG,IAAI,GAAG,IAAIC,eAAe,CAAC;QAC/BC,SAAS,EAAEP,QAAQ;QACnBQ,UAAU,EAAE,eAAe;QAC3BC,aAAa,EAAE1H;MACjB,CAAC,CAAC;MAEF,MAAM2H,QAAQ,GAAG,MAAMC,KAAK,CAACP,QAAQ,EAAE;QACrCQ,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACP,cAAc,EAAE;QAClB,CAAC;QACDR,IAAI,EAAEA,IAAI,CAACS,QAAQ,CAAC;MACtB,CAAC,CAAC;MAEF,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACC,mBAAmB,CAACN,QAAQ,CAAC;MACrD,IAAI,CAACA,QAAQ,CAACO,EAAE,EAAE;QAChB,MAAM,IAAIlK,YAAY,CACpB,gBAAgB,EAChBS,iBAAiB,CAACuJ,IAAI,EAAE,mBAAmB,CAAC,IAC1CvJ,iBAAiB,CAACuJ,IAAI,EAAE,OAAO,CAAC,IAChC,sBACJ,CAAC;MACH;MAEA,MAAMlI,OAAO,GAAGrB,iBAAiB,CAACuJ,IAAI,EAAE,UAAU,CAAC;MACnD,MAAMjI,WAAW,GAAGtB,iBAAiB,CAACuJ,IAAI,EAAE,cAAc,CAAC;MAC3D,MAAMG,eAAe,GAAG1J,iBAAiB,CAACuJ,IAAI,EAAE,eAAe,CAAC;MAEhE,IAAIG,eAAe,EAAE;QACnB,IAAI,CAACjE,gBAAgB,CAACiE,eAAe,CAAC;MACxC;MAEA,MAAMjI,cAAc,GAAG,IAAI,CAACkI,iBAAiB,CAACJ,IAAI,CAAC,YAAY,CAAC,CAAC;MAEjE,MAAMK,gBAAgB,GAAGvI,OAAO,IAAI,IAAI,CAAC0E,YAAY,CAAC1E,OAAO;MAC7D,MAAMwI,MAAM,GAAGD,gBAAgB,GAC3B,IAAI,CAACE,kBAAkB,CAACF,gBAAgB,CAAC,GACzC,CAAC,CAAC;MACN,MAAMrE,IAAc,GAAG;QACrB,GAAG,IAAI,CAACQ,YAAY;QACpB1E,OAAO,EAAEuI,gBAAgB;QACzBtI,WAAW,EAAEA,WAAW,IAAIlB,SAAS;QACrCmB,YAAY,EAAEmI,eAAe,IAAI,IAAI,CAAC3D,YAAY,CAACxE,YAAY;QAC/DE,cAAc;QACd,GAAGoI;MACL,CAAC;MACD,IAAI,CAAC5B,UAAU,CAAC1C,IAAI,CAAC;MAErB,MAAMsB,MAAkB,GAAG;QACzBvF,WAAW,EAAEA,WAAW,IAAIlB,SAAS;QACrCiB,OAAO,EAAEuI,gBAAgB;QACzBrI,YAAY,EAAEmI,eAAe,IAAItJ,SAAS;QAC1CqB;MACF,CAAC;MACD,IAAI,CAACmF,oBAAoB,CAACC,MAAM,CAAC;MACjC,OAAOA,MAAM;IACf;IAEA,IAAI,IAAI,CAACd,YAAY,CAACnF,QAAQ,KAAK,QAAQ,EAAE;MAC3C,MAAM,IAAIpB,KAAK,CACb,mCAAmC,IAAI,CAACuG,YAAY,CAACnF,QAAQ,EAC/D,CAAC;IACH;IAEAgC,cAAM,CAACuE,GAAG,CAAC,sBAAsB,CAAC;IAClC,MAAM,IAAI,CAACC,WAAW,CACpB,IAAI,CAACpE,cAAc,CAACtC,MAAM,GAAG,CAAC,GAAG,IAAI,CAACsC,cAAc,GAAGvE,cACzD,CAAC;IACD,MAAMoI,MAAkB,GAAG;MACzBvF,WAAW,EAAE,IAAI,CAACyE,YAAY,CAACzE,WAAW;MAC1CD,OAAO,EAAE,IAAI,CAAC0E,YAAY,CAAC1E,OAAO;MAClCE,YAAY,EAAE,IAAI,CAACwE,YAAY,CAACxE,YAAY;MAC5CE,cAAc,EAAE,IAAI,CAACsE,YAAY,CAACtE;IACpC,CAAC;IACD,IAAI,CAACmF,oBAAoB,CAACC,MAAM,CAAC;IACjC,OAAOA,MAAM;EACf;EAEQa,QAAQA,CAAC/E,KAAc,EAAS;IACtC,IAAIA,KAAK,YAAYpD,YAAY,EAAE;MACjC,OAAOoD,KAAK;IACd;IAEA,MAAMoH,UAAU,GAAGpH,KAAK,YAAYnD,KAAK,GAAGmD,KAAK,CAACjD,OAAO,GAAGoD,MAAM,CAACH,KAAK,CAAC;IACzE,MAAMqH,GAAG,GAAGD,UAAU,CAACE,WAAW,CAAC,CAAC;IACpC,IAAIC,SAAwB,GAAG,SAAS;IAExC,IAAIvI,eAAe,CAACoI,UAAU,CAAC,EAAE;MAC/BG,SAAS,GAAGH,UAAU;IACxB,CAAC,MAAM,IAAIC,GAAG,CAACjC,QAAQ,CAAC,QAAQ,CAAC,IAAIiC,GAAG,CAACjC,QAAQ,CAAC,cAAc,CAAC,EAAE;MACjEmC,SAAS,GAAG,WAAW;IACzB,CAAC,MAAM,IAAIF,GAAG,CAACjC,QAAQ,CAAC,eAAe,CAAC,EAAE;MACxCmC,SAAS,GAAG,WAAW;IACzB,CAAC,MAAM,IAAIF,GAAG,CAACjC,QAAQ,CAAC,SAAS,CAAC,EAAE;MAClCmC,SAAS,GAAG,SAAS;IACvB,CAAC,MAAM,IAAIF,GAAG,CAACjC,QAAQ,CAAC,eAAe,CAAC,EAAE;MACxCmC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IAAIF,GAAG,CAACjC,QAAQ,CAAC,8BAA8B,CAAC,EAAE;MACvDmC,SAAS,GAAG,uBAAuB;IACrC,CAAC,MAAM,IAAIF,GAAG,CAACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;MACzCmC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IAAIF,GAAG,CAACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;MACzCmC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IAAIF,GAAG,CAACjC,QAAQ,CAAC,aAAa,CAAC,IAAIiC,GAAG,CAACjC,QAAQ,CAAC,aAAa,CAAC,EAAE;MACrEmC,SAAS,GAAG,aAAa;IAC3B,CAAC,MAAM,IAAIF,GAAG,CAACjC,QAAQ,CAAC,aAAa,CAAC,IAAIiC,GAAG,CAACjC,QAAQ,CAAC,MAAM,CAAC,EAAE;MAC9DmC,SAAS,GAAG,aAAa;IAC3B,CAAC,MAAM,IACLF,GAAG,CAACjC,QAAQ,CAAC,mBAAmB,CAAC,IACjCiC,GAAG,CAACjC,QAAQ,CAAC,eAAe,CAAC,EAC7B;MACAmC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IACLF,GAAG,CAACjC,QAAQ,CAAC,SAAS,CAAC,IACvBiC,GAAG,CAACjC,QAAQ,CAAC,cAAc,CAAC,IAC5BiC,GAAG,CAACjC,QAAQ,CAAC,yBAAyB,CAAC,EACvC;MACAmC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IAAIF,GAAG,CAACjC,QAAQ,CAAC,eAAe,CAAC,IAAIiC,GAAG,CAACjC,QAAQ,CAAC,eAAe,CAAC,EAAE;MACzEmC,SAAS,GAAG,gBAAgB;IAC9B,CAAC,MAAM,IACLF,GAAG,CAACjC,QAAQ,CAAC,eAAe,CAAC,IAC7BiC,GAAG,CAACjC,QAAQ,CAAC,qBAAqB,CAAC,IACnCiC,GAAG,CAACjC,QAAQ,CAAC,gBAAgB,CAAC,IAC9BiC,GAAG,CAACjC,QAAQ,CAAC,WAAW,CAAC,IACzBiC,GAAG,CAACjC,QAAQ,CAAC,QAAQ,CAAC,EACtB;MACAmC,SAAS,GAAG,qBAAqB;IACnC;IAEA,OAAO,IAAI3K,YAAY,CAAC2K,SAAS,EAAEH,UAAU,CAAC;EAChD;EAEA,MAAcP,mBAAmBA,CAACN,QAAkB,EAAuB;IACzE,IAAIiB,MAAe;IACnB,IAAI;MACFA,MAAM,GAAG,MAAMjB,QAAQ,CAACK,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,OAAO5G,KAAK,EAAE;MACd,MAAM,IAAIpD,YAAY,CAAC,aAAa,EAAEuD,MAAM,CAACH,KAAK,CAAC,CAAC;IACtD;IAEA,IAAI,CAAC9C,YAAY,CAACsK,MAAM,CAAC,EAAE;MACzB,MAAM,IAAI5K,YAAY,CACpB,aAAa,EACb,kDACF,CAAC;IACH;IACA,OAAO4K,MAAM;EACf;EAEQC,eAAeA,CAACC,KAAa,EAAc;IACjD,MAAMC,KAAK,GAAGD,KAAK,CAACE,KAAK,CAAC,GAAG,CAAC;IAC9B,MAAMC,OAAO,GAAGF,KAAK,CAAC,CAAC,CAAC;IACxB,IACEA,KAAK,CAAC5J,MAAM,GAAG,CAAC,IAChB,CAAC8J,OAAO,IACRA,OAAO,CAAC9J,MAAM,GAAG,CAAC,KAAK,CAAC,IACxB,CAACvB,iBAAiB,CAACsL,IAAI,CAACD,OAAO,CAAC,EAChC;MACA,MAAM,IAAIjL,YAAY,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9D;IAEA,IAAI;MACF,MAAMmL,iBAAiB,GAAGF,OAAO,CAACG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;MACvE,MAAMC,OAAO,GAAG,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC,GAAIH,iBAAiB,CAAChK,MAAM,GAAG,CAAE,IAAI,CAAC,CAAC;MACpE,MAAMoK,MAAM,GAAGC,IAAI,CAAC,GAAGL,iBAAiB,GAAGE,OAAO,EAAE,CAAC;MACrD,MAAMI,WAAW,GACf,OAAOC,WAAW,KAAK,UAAU,GAC7B,IAAIA,WAAW,CAAC,CAAC,CAACC,MAAM,CACtBC,UAAU,CAACC,IAAI,CAACN,MAAM,EAAGO,IAAI,IAAKA,IAAI,CAACC,UAAU,CAAC,CAAC,CAAC,CACtD,CAAC,GACDC,kBAAkB,CAChBxK,KAAK,CAACqK,IAAI,CACRN,MAAM,EACLO,IAAI,IACH,IAAIA,IAAI,CAACC,UAAU,CAAC,CAAC,CAAC,CAAChC,QAAQ,CAAC,EAAE,CAAC,CAACkC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EACxD,CAAC,CAACC,IAAI,CAAC,EAAE,CACX,CAAC;MACP,MAAMC,OAAgB,GAAG7F,IAAI,CAACC,KAAK,CAACkF,WAAW,CAAC;MAChD,IAAI,CAACnL,YAAY,CAAC6L,OAAO,CAAC,EAAE;QAC1B,MAAM,IAAIlM,KAAK,CAAC,sCAAsC,CAAC;MACzD;MACA,OAAOkM,OAAO;IAChB,CAAC,CAAC,OAAO/I,KAAK,EAAE;MACd,IAAIA,KAAK,YAAYpD,YAAY,EAAE;QACjC,MAAMoD,KAAK;MACb;MACA,MAAM,IAAIpD,YAAY,CAAC,aAAa,EAAEuD,MAAM,CAACH,KAAK,CAAC,CAAC;IACtD;EACF;EAEQgJ,iBAAiBA,CAAChJ,KAAa,EAAiB;IACtD,MAAMiJ,eAAe,GAAGjJ,KAAK,CAAClC,IAAI,CAAC,CAAC,CAACwJ,WAAW,CAAC,CAAC;IAClD,IACE2B,eAAe,KAAK,eAAe,IACnCA,eAAe,KAAK,sBAAsB,IAC1CA,eAAe,KAAK,gBAAgB,EACpC;MACA,OAAO,WAAW;IACpB;IAEA,IACEA,eAAe,KAAK,cAAc,IAClCA,eAAe,KAAK,yBAAyB,EAC7C;MACA,OAAO,eAAe;IACxB;IAEA,IACEA,eAAe,KAAK,gBAAgB,IACpCA,eAAe,KAAK,eAAe,IACnCA,eAAe,KAAK,qBAAqB,EACzC;MACA,OAAO,qBAAqB;IAC9B;IAEA,IACEA,eAAe,KAAK,eAAe,IACnCA,eAAe,KAAK,eAAe,EACnC;MACA,OAAO,aAAa;IACtB;IAEA,OAAO,SAAS;EAClB;EAEQjC,iBAAiBA,CAACkC,SAAkB,EAAsB;IAChE,MAAMC,gBAAgB,GAAGtL,qBAAqB,CAACqL,SAAS,CAAC;IACzD,IAAIC,gBAAgB,KAAK1L,SAAS,EAAE;MAClC,OAAOA,SAAS;IAClB;IAEA,OAAOgI,IAAI,CAACD,GAAG,CAAC,CAAC,GAAG2D,gBAAgB,GAAG,IAAI;EAC7C;EAEQC,oBAAoBA,CAC1BC,KAAa,EACbC,WAAmB,EACnBrL,QAAgC,EAChCsL,UAAiD,EAClC;IACf,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,IAAIC,mBAAmB,GAAG,KAAK;MAE/B,MAAMC,OAAO,GAAGA,CACdC,UAAkB,EAClBC,SAAiB,EACjBC,gBAAyB,KACtB;QACHrI,MAAM,CAACsI,aAAa,CAACH,UAAU,CAAC;QAChCnI,MAAM,CAACuI,YAAY,CAACH,SAAS,CAAC;QAC9B,IAAIC,gBAAgB,IAAI,CAACV,KAAK,CAACa,MAAM,EAAE;UACrCb,KAAK,CAACc,KAAK,CAAC,CAAC;QACf;MACF,CAAC;MAED,MAAML,SAAS,GAAGpI,MAAM,CAAC0I,UAAU,CAAC,MAAM;QACxCR,OAAO,CAACC,UAAU,EAAEC,SAAS,EAAE,IAAI,CAAC;QACpCJ,MAAM,CAAC,IAAI7M,KAAK,CAAC,GAAGoB,QAAQ,CAACqJ,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC;MAC7D,CAAC,EAAElL,gBAAgB,CAAC;MAEpB,MAAMyN,UAAU,GAAGnI,MAAM,CAAC2I,WAAW,CAAC,MAAM;QAC1C,IAAIhB,KAAK,CAACa,MAAM,EAAE;UAChBN,OAAO,CAACC,UAAU,EAAEC,SAAS,EAAE,KAAK,CAAC;UACrCJ,MAAM,CAAC,IAAI7M,KAAK,CAAC,WAAW,CAAC,CAAC;UAC9B;QACF;QAEA,IAAIyN,GAAW;QACf,IAAI;UACFA,GAAG,GAAGjB,KAAK,CAACkB,QAAQ,CAACC,IAAI;QAC3B,CAAC,CAAC,OAAOxK,KAAK,EAAE;UACd,IAAI,CAAC2J,mBAAmB,EAAE;YACxB1J,cAAM,CAACC,KAAK,CAAC,eAAejC,QAAQ,gBAAgB,EAAE;cACpD+B,KAAK,EAAEG,MAAM,CAACH,KAAK;YACrB,CAAC,CAAC;YACF2J,mBAAmB,GAAG,IAAI;UAC5B;UACA;QACF;QAEA,IAAI,CAACW,GAAG,CAACG,UAAU,CAACnB,WAAW,CAAC,EAAE;UAChC;QACF;QAEAM,OAAO,CAACC,UAAU,EAAEC,SAAS,EAAE,IAAI,CAAC;QACpC,KAAKN,OAAO,CAACC,OAAO,CAAC,CAAC,CACnB5I,IAAI,CAAC,MAAM0I,UAAU,CAACe,GAAG,CAAC,CAAC,CAC3BzJ,IAAI,CAAC,MAAM;UACV4I,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CACDiB,KAAK,CAAE1K,KAAc,IAAK;UACzB0J,MAAM,CAAC1J,KAAK,CAAC;QACf,CAAC,CAAC;MACN,CAAC,EAAE7D,sBAAsB,CAAC;IAC5B,CAAC,CAAC;EACJ;EAEA,MAAcsI,WAAWA,CACvBtG,MAAgB,EAChBoG,SAAkB,EACH;IACf,MAAMsB,QAAQ,GAAG,IAAI,CAACnF,OAAO,CAACrB,iBAAiB;IAE/C,IAAI,CAACwG,QAAQ,EAAE;MACb,MAAM,IAAIhJ,KAAK,CACb,oFACF,CAAC;IACH;IAEA,MAAM8N,KAAK,GAAGC,MAAM,CAACC,UAAU,CAAC,CAAC;IACjC,IAAI,CAACC,mBAAmB,GAAGH,KAAK;IAChC,OAAO,IAAInB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMJ,WAAW,GAAG5H,MAAM,CAAC6I,QAAQ,CAACQ,MAAM;MAC1C,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAC,8CAA8C,CAAC;MACvED,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,WAAW,EAAEyD,QAAQ,CAAC;MAC/CmF,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,cAAc,EAAEkH,WAAW,CAAC;MACrD0B,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,eAAe,EAAE,qBAAqB,CAAC;MAChE4I,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,OAAO,EAAEjE,MAAM,CAAC2K,IAAI,CAAC,GAAG,CAAC,CAAC;MACnDkC,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,OAAO,EAAEuI,KAAK,CAAC;MACxCK,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC;MAClD4I,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC;MAE7C,IAAImC,SAAS,EAAE;QACbyG,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,YAAY,EAAEmC,SAAS,CAAC;MACnD;MAEA,MAAM4G,KAAK,GAAG,GAAG;MACjB,MAAMC,MAAM,GAAG,GAAG;MAClB,MAAMC,IAAI,GAAG3J,MAAM,CAAC4J,OAAO,GAAG,CAAC5J,MAAM,CAAC6J,UAAU,GAAGJ,KAAK,IAAI,CAAC;MAC7D,MAAMK,GAAG,GAAG9J,MAAM,CAAC+J,OAAO,GAAG,CAAC/J,MAAM,CAACgK,WAAW,GAAGN,MAAM,IAAI,CAAC;MAE9D,MAAM/B,KAAK,GAAG3H,MAAM,CAACiK,IAAI,CACvBX,OAAO,CAACrE,QAAQ,CAAC,CAAC,EAClB,aAAa,EACb,SAASwE,KAAK,WAAWC,MAAM,SAASC,IAAI,QAAQG,GAAG,EACzD,CAAC;MAED,IAAI,CAACnC,KAAK,EAAE;QACVK,MAAM,CAAC,IAAI7M,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACtE;MACF;MAEA,KAAK,IAAI,CAACuM,oBAAoB,CAACC,KAAK,EAAEC,WAAW,EAAE,QAAQ,EAAGgB,GAAG,IAAK;QACpE,MAAMsB,IAAI,GAAG,IAAIX,GAAG,CAACX,GAAG,CAAC,CAACsB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC;QACvC,MAAMC,MAAM,GAAG,IAAI3F,eAAe,CAACyF,IAAI,CAAC;QACxC,MAAMlN,OAAO,GAAGoN,MAAM,CAACvJ,GAAG,CAAC,UAAU,CAAC;QACtC,MAAM5D,WAAW,GAAGmN,MAAM,CAACvJ,GAAG,CAAC,cAAc,CAAC;QAC9C,MAAM2G,SAAS,GAAG4C,MAAM,CAACvJ,GAAG,CAAC,YAAY,CAAC;QAC1C,MAAMwJ,IAAI,GAAGD,MAAM,CAACvJ,GAAG,CAAC,MAAM,CAAC;QAC/B,MAAMvC,KAAK,GAAG8L,MAAM,CAACvJ,GAAG,CAAC,OAAO,CAAC;QACjC,MAAMyJ,gBAAgB,GAAGF,MAAM,CAACvJ,GAAG,CAAC,mBAAmB,CAAC;QAExD,IAAIvC,KAAK,EAAE;UACT,MAAM,IAAIpD,YAAY,CACpB,IAAI,CAACoM,iBAAiB,CAAChJ,KAAK,CAAC,EAC7BgM,gBAAgB,IAAIhM,KACtB,CAAC;QACH;QAEA,IAAI,CAACtB,OAAO,EAAE;UACZ,MAAM,IAAI9B,YAAY,CAAC,aAAa,EAAE,yBAAyB,CAAC;QAClE;QAEA,MAAMmM,OAAO,GAAG,IAAI,CAACtB,eAAe,CAAC/I,OAAO,CAAC;QAC7C,IAAIqK,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC+B,mBAAmB,EAAE;UACjD,IAAI,CAACA,mBAAmB,GAAGrN,SAAS;UACpC,MAAM,IAAIb,YAAY,CACpB,eAAe,EACf,yCACF,CAAC;QACH;QACA,IAAI,CAACkO,mBAAmB,GAAGrN,SAAS;QAEpC,IAAI,CAAC4C,cAAc,GAAGlC,MAAM;QAC5B,IAAI,CAACgE,SAAS,CAACvG,UAAU,EAAEsH,IAAI,CAACmC,SAAS,CAAClH,MAAM,CAAC,CAAC;QAElD,MAAMyE,IAAc,GAAG;UACrB3E,QAAQ,EAAE,QAAQ;UAClBS,OAAO;UACPC,WAAW,EAAEA,WAAW,IAAIlB,SAAS;UACrCoB,cAAc,EAAEkN,IAAI,IAAItO,SAAS;UACjCU,MAAM;UACNW,cAAc,EAAE,IAAI,CAACkI,iBAAiB,CAACkC,SAAS,CAAC;UACjD,GAAG,IAAI,CAAC+C,eAAe,CAACvN,OAAO;QACjC,CAAC;QACD,IAAI,CAAC4G,UAAU,CAAC1C,IAAI,CAAC;MACvB,CAAC,CAAC,CACC/B,IAAI,CAAC,MAAM;QACV4I,OAAO,CAAC,CAAC;MACX,CAAC,CAAC,CACDiB,KAAK,CAAE1K,KAAc,IAAK;QACzB0J,MAAM,CAAC1J,KAAK,CAAC;MACf,CAAC,CAAC;IACN,CAAC,CAAC;EACJ;EAEQiM,eAAeA,CAACvE,KAAa,EAAqB;IACxD,IAAI;MACF,MAAMqB,OAAO,GAAG,IAAI,CAACtB,eAAe,CAACC,KAAK,CAAC;MAC3C,OAAO;QACLlJ,KAAK,EAAEnB,iBAAiB,CAAC0L,OAAO,EAAE,OAAO,CAAC;QAC1C9L,IAAI,EAAEI,iBAAiB,CAAC0L,OAAO,EAAE,MAAM,CAAC;QACxCtK,KAAK,EAAEpB,iBAAiB,CAAC0L,OAAO,EAAE,SAAS;MAC7C,CAAC;IACH,CAAC,CAAC,OAAO/I,KAAK,EAAE;MACdC,cAAM,CAACiC,IAAI,CAAC,kCAAkC,EAAE;QAAElC,KAAK,EAAEG,MAAM,CAACH,KAAK;MAAE,CAAC,CAAC;MACzE,OAAO,CAAC,CAAC;IACX;EACF;EAEA,MAAc0E,cAAcA,CAC1BvG,MAAgB,EAChBoG,SAAkB,EAClBI,MAAe,EACfC,MAAe,EACA;IACf,MAAMiB,QAAQ,GAAG,IAAI,CAACnF,OAAO,CAACpB,iBAAiB;IAE/C,IAAI,CAACuG,QAAQ,EAAE;MACb,MAAM,IAAIhJ,KAAK,CACb,iGACF,CAAC;IACH;IAEA,MAAMqP,eAAe,GAAGvH,MAAM,IAAI,IAAI,CAACjE,OAAO,CAACnB,eAAe,IAAI,QAAQ;IAC1E,MAAMuG,SAAS,GAAG,IAAI,CAACpF,OAAO,CAAClB,kBAAkB;IACjD,MAAMuG,WAAW,GAAG,IAAI,CAACC,uBAAuB,CAC9CkG,eAAe,EACfpG,SACF,CAAC;IAED,MAAMqG,eAAe,GAAGhO,MAAM,CAACJ,MAAM,GACjCI,MAAM,GACN,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,CAAC;IAEjE,MAAMiO,YAAY,GAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAChD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAACH,YAAY,CAAC;IACpE,MAAMI,KAAK,GAAG5B,MAAM,CAACC,UAAU,CAAC,CAAC;IACjC,MAAMF,KAAK,GAAGC,MAAM,CAACC,UAAU,CAAC,CAAC;IAEjC,OAAO,IAAIrB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMJ,WAAW,GAAG5H,MAAM,CAAC6I,QAAQ,CAACQ,MAAM;MAC1C,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAC,GAAGlF,WAAW,uBAAuB,CAAC;MAC9DiF,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,WAAW,EAAEyD,QAAQ,CAAC;MAC/CmF,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,cAAc,EAAEkH,WAAW,CAAC;MACrD0B,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC;MACjD4I,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC;MAClD4I,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,OAAO,EAAE+J,eAAe,CAACrD,IAAI,CAAC,GAAG,CAAC,CAAC;MAC5DkC,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,OAAO,EAAEoK,KAAK,CAAC;MACxCxB,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,OAAO,EAAEuI,KAAK,CAAC;MACxCK,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,gBAAgB,EAAEkK,aAAa,CAAC;MACzDtB,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC;MACzD4I,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,QAAQ,EAAEwC,MAAM,IAAI,gBAAgB,CAAC;MAE9D,IAAIL,SAAS,EAAE;QACbyG,OAAO,CAACE,YAAY,CAAC9I,GAAG,CAAC,YAAY,EAAEmC,SAAS,CAAC;MACnD;MAEA,MAAM4G,KAAK,GAAG,GAAG;MACjB,MAAMC,MAAM,GAAG,GAAG;MAClB,MAAMC,IAAI,GAAG3J,MAAM,CAAC4J,OAAO,GAAG,CAAC5J,MAAM,CAAC6J,UAAU,GAAGJ,KAAK,IAAI,CAAC;MAC7D,MAAMK,GAAG,GAAG9J,MAAM,CAAC+J,OAAO,GAAG,CAAC/J,MAAM,CAACgK,WAAW,GAAGN,MAAM,IAAI,CAAC;MAE9D,MAAM/B,KAAK,GAAG3H,MAAM,CAACiK,IAAI,CACvBX,OAAO,CAACrE,QAAQ,CAAC,CAAC,EAClB,gBAAgB,EAChB,SAASwE,KAAK,WAAWC,MAAM,SAASC,IAAI,QAAQG,GAAG,EACzD,CAAC;MAED,IAAI,CAACnC,KAAK,EAAE;QACVK,MAAM,CAAC,IAAI7M,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACtE;MACF;MAEA,KAAK,IAAI,CAACuM,oBAAoB,CAC5BC,KAAK,EACLC,WAAW,EACX,WAAW,EACX,MAAOgB,GAAG,IAAK;QACb,MAAMmC,MAAM,GAAG,IAAIxB,GAAG,CAACX,GAAG,CAAC;QAC3B,MAAMyB,IAAI,GAAGU,MAAM,CAACvB,YAAY,CAAC3I,GAAG,CAAC,MAAM,CAAC;QAC5C,MAAMmK,aAAa,GAAGD,MAAM,CAACvB,YAAY,CAAC3I,GAAG,CAAC,OAAO,CAAC;QACtD,MAAMvC,KAAK,GAAGyM,MAAM,CAACvB,YAAY,CAAC3I,GAAG,CAAC,OAAO,CAAC;QAC9C,MAAMyJ,gBAAgB,GAAGS,MAAM,CAACvB,YAAY,CAAC3I,GAAG,CAAC,mBAAmB,CAAC;QAErE,IAAIvC,KAAK,EAAE;UACT,MAAM,IAAIpD,YAAY,CACpB,IAAI,CAACoM,iBAAiB,CAAChJ,KAAK,CAAC,EAC7BgM,gBAAgB,IAAIhM,KACtB,CAAC;QACH;QAEA,IAAI0M,aAAa,KAAKF,KAAK,EAAE;UAC3B,MAAM,IAAI5P,YAAY,CACpB,eAAe,EACf,uCACF,CAAC;QACH;QAEA,IAAI,CAACmP,IAAI,EAAE;UACT,MAAM,IAAInP,YAAY,CACpB,aAAa,EACb,mCACF,CAAC;QACH;QAEA,MAAM,IAAI,CAAC+P,8BAA8B,CACvCZ,IAAI,EACJK,YAAY,EACZvG,QAAQ,EACRyD,WAAW,EACX4C,eAAe,EACfvB,KAAK,EACLwB,eACF,CAAC;MACH,CACF,CAAC,CACEtL,IAAI,CAAC,MAAM;QACV4I,OAAO,CAAC,CAAC;MACX,CAAC,CAAC,CACDiB,KAAK,CAAE1K,KAAc,IAAK;QACzB0J,MAAM,CAAC1J,KAAK,CAAC;MACf,CAAC,CAAC;IACN,CAAC,CAAC;EACJ;EAEQqM,oBAAoBA,CAAA,EAAW;IACrC,MAAMO,KAAK,GAAG,IAAIpE,UAAU,CAAC,EAAE,CAAC;IAChCoC,MAAM,CAACiC,eAAe,CAACD,KAAK,CAAC;IAC7B,OAAO,IAAI,CAACE,eAAe,CAACF,KAAK,CAAC;EACpC;EAEA,MAAcL,qBAAqBA,CAACQ,QAAgB,EAAmB;IACrE,MAAMC,OAAO,GAAG,IAAIC,WAAW,CAAC,CAAC;IACjC,MAAMC,IAAI,GAAGF,OAAO,CAACG,MAAM,CAACJ,QAAQ,CAAC;IACrC,MAAMnB,IAAI,GAAG,MAAMhB,MAAM,CAACwC,MAAM,CAACC,MAAM,CAAC,SAAS,EAAEH,IAAI,CAAC;IACxD,OAAO,IAAI,CAACJ,eAAe,CAAC,IAAItE,UAAU,CAACoD,IAAI,CAAC,CAAC;EACnD;EAEQkB,eAAeA,CAACQ,KAAiB,EAAU;IACjD,MAAMC,MAAM,GAAGC,IAAI,CAACrN,MAAM,CAACsN,YAAY,CAAC,GAAGH,KAAK,CAAC,CAAC;IAClD,OAAOC,MAAM,CAACvF,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAC1E;EAEA,MAAc2E,8BAA8BA,CAC1CZ,IAAY,EACZK,YAAoB,EACpBvG,QAAgB,EAChByD,WAAmB,EACnB3E,MAAc,EACd+I,aAAqB,EACrBvP,MAAgB,EACD;IACf,MAAM4H,WAAW,GAAG,IAAI,CAACC,uBAAuB,CAC9CrB,MAAM,EACN,IAAI,CAACjE,OAAO,CAAClB,kBACf,CAAC;IACD,MAAMyG,QAAQ,GAAG,GAAGF,WAAW,mBAAmB;IAElD,MAAMG,IAAI,GAAG,IAAIC,eAAe,CAAC;MAC/BC,SAAS,EAAEP,QAAQ;MACnBkG,IAAI;MACJ4B,YAAY,EAAErE,WAAW;MACzBjD,UAAU,EAAE,oBAAoB;MAChCuH,aAAa,EAAExB;IACjB,CAAC,CAAC;IAEF,MAAM7F,QAAQ,GAAG,MAAMC,KAAK,CAACP,QAAQ,EAAE;MACrCQ,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QACP,cAAc,EAAE;MAClB,CAAC;MACDR,IAAI,EAAEA,IAAI,CAACS,QAAQ,CAAC;IACtB,CAAC,CAAC;IAEF,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACC,mBAAmB,CAACN,QAAQ,CAAC;IAErD,IAAI,CAACA,QAAQ,CAACO,EAAE,EAAE;MAChB,MAAM,IAAIlK,YAAY,CACpB,aAAa,EACbS,iBAAiB,CAACuJ,IAAI,EAAE,mBAAmB,CAAC,IAC1CvJ,iBAAiB,CAACuJ,IAAI,EAAE,OAAO,CAAC,IAChC,uBACJ,CAAC;IACH;IAEA,MAAMlI,OAAO,GAAGrB,iBAAiB,CAACuJ,IAAI,EAAE,UAAU,CAAC;IACnD,IAAI,CAAClI,OAAO,EAAE;MACZ,MAAM,IAAI9B,YAAY,CAAC,aAAa,EAAE,+BAA+B,CAAC;IACxE;IAEA,MAAMsK,MAAM,GAAG,IAAI,CAACC,kBAAkB,CAACzI,OAAO,CAAC;IAC/C,MAAMmJ,OAAO,GAAG,IAAI,CAACJ,eAAe,CAAC/I,OAAO,CAAC;IAC7C,IAAIrB,iBAAiB,CAACwK,OAAO,EAAE,OAAO,CAAC,KAAK6F,aAAa,EAAE;MACzD,MAAM,IAAI9Q,YAAY,CACpB,eAAe,EACf,wCACF,CAAC;IACH;IAEA,MAAM+B,WAAW,GAAGtB,iBAAiB,CAACuJ,IAAI,EAAE,cAAc,CAAC;IAC3D,MAAMhI,YAAY,GAAGvB,iBAAiB,CAACuJ,IAAI,EAAE,eAAe,CAAC;IAE7D,IAAIhI,YAAY,EAAE;MAChB,IAAI,CAACkE,gBAAgB,CAAClE,YAAY,CAAC;IACrC;IAEA,IAAI,CAACyB,cAAc,GAAGlC,MAAM;IAC5B,IAAI,CAACgE,SAAS,CAACvG,UAAU,EAAEsH,IAAI,CAACmC,SAAS,CAAClH,MAAM,CAAC,CAAC;IAElD,MAAMyE,IAAc,GAAG;MACrB3E,QAAQ,EAAE,WAAW;MACrBS,OAAO;MACPC,WAAW,EAAEA,WAAW,IAAIlB,SAAS;MACrCmB,YAAY,EAAEA,YAAY,IAAInB,SAAS;MACvCU,MAAM;MACNW,cAAc,EAAE,IAAI,CAACkI,iBAAiB,CAACJ,IAAI,CAAC,YAAY,CAAC,CAAC;MAC1D,GAAGM;IACL,CAAC;IACD,IAAI,CAAC5B,UAAU,CAAC1C,IAAI,CAAC;EACvB;EAEQoD,uBAAuBA,CAACrB,MAAc,EAAEmB,SAAkB,EAAU;IAC1E,IAAInB,MAAM,CAAC8F,UAAU,CAAC,UAAU,CAAC,EAAE;MACjC,OAAO9F,MAAM,CAACkJ,QAAQ,CAAC,GAAG,CAAC,GAAGlJ,MAAM,GAAG,GAAGA,MAAM,GAAG;IACrD;IAEA,IAAImB,SAAS,EAAE;MACb,OAAO,WAAWA,SAAS,QAAQnB,MAAM,GAAG;IAC9C,CAAC,MAAM;MACL,OAAO,qCAAqCA,MAAM,GAAG;IACvD;EACF;EAEQwC,kBAAkBA,CAACO,KAAa,EAAqB;IAC3D,IAAI;MACF,MAAMqB,OAAO,GAAG,IAAI,CAACtB,eAAe,CAACC,KAAK,CAAC;MAC3C,OAAO;QACLlJ,KAAK,EACHnB,iBAAiB,CAAC0L,OAAO,EAAE,oBAAoB,CAAC,IAChD1L,iBAAiB,CAAC0L,OAAO,EAAE,OAAO,CAAC;QACrC9L,IAAI,EAAEI,iBAAiB,CAAC0L,OAAO,EAAE,MAAM;MACzC,CAAC;IACH,CAAC,CAAC,OAAO/I,KAAK,EAAE;MACdC,cAAM,CAACiC,IAAI,CAAC,qCAAqC,EAAE;QACjDlC,KAAK,EAAEG,MAAM,CAACH,KAAK;MACrB,CAAC,CAAC;MACF,OAAO,CAAC,CAAC;IACX;EACF;EAEA,MAAc8N,oBAAoBA,CAAA,EAAkB;IAClD,IAAIpM,MAAM,CAACqM,OAAO,EAAE;MAClB;IACF;IAEA,IAAIpR,oBAAoB,EAAE;MACxB,OAAOA,oBAAoB;IAC7B;IAEAA,oBAAoB,GAAG,IAAI6M,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC5D,MAAMsE,QAAQ,GAAG,sBAAsB;MACvC,MAAMC,cAAc,GAAGC,QAAQ,CAACC,cAAc,CAC5CH,QACF,CAA6B;MAE7B,IAAIC,cAAc,EAAE;QAClB,IAAIvM,MAAM,CAACqM,OAAO,EAAE;UAClBtE,OAAO,CAAC,CAAC;UACT;QACF;QAEAwE,cAAc,CAACG,gBAAgB,CAC7B,MAAM,EACN,MAAM;UACJ3E,OAAO,CAAC,CAAC;QACX,CAAC,EACD;UACE4E,IAAI,EAAE;QACR,CACF,CAAC;QACDJ,cAAc,CAACG,gBAAgB,CAC7B,OAAO,EACP,MAAM;UACJzR,oBAAoB,GAAGc,SAAS;UAChCiM,MAAM,CAAC,IAAI7M,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC/C,CAAC,EACD;UAAEwR,IAAI,EAAE;QAAK,CACf,CAAC;QACD;MACF;MAEA,MAAMC,MAAM,GAAGJ,QAAQ,CAACK,aAAa,CAAC,QAAQ,CAAC;MAC/CD,MAAM,CAACE,EAAE,GAAGR,QAAQ;MACpBM,MAAM,CAACG,GAAG,GACR,sFAAsF;MACxFH,MAAM,CAACI,KAAK,GAAG,IAAI;MACnBJ,MAAM,CAACK,MAAM,GAAG,MAAM;QACpBlF,OAAO,CAAC,CAAC;MACX,CAAC;MACD6E,MAAM,CAACM,OAAO,GAAG,MAAM;QACrBjS,oBAAoB,GAAGc,SAAS;QAChCiM,MAAM,CAAC,IAAI7M,KAAK,CAAC,0BAA0B,CAAC,CAAC;MAC/C,CAAC;MACDqR,QAAQ,CAACW,IAAI,CAACC,WAAW,CAACR,MAAM,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO3R,oBAAoB;EAC7B;EAEA,MAAckI,UAAUA,CAAA,EAAkB;IACxC,MAAMgB,QAAQ,GAAG,IAAI,CAACnF,OAAO,CAACjB,gBAAgB;IAE9C,IAAI,CAACoG,QAAQ,EAAE;MACb,MAAM,IAAIhJ,KAAK,CACb,kFACF,CAAC;IACH;IAEA,MAAM,IAAI,CAACiR,oBAAoB,CAAC,CAAC;IACjC,IAAI,CAACpM,MAAM,CAACqM,OAAO,EAAE;MACnB,MAAM,IAAIlR,KAAK,CAAC,sBAAsB,CAAC;IACzC;IAEA6E,MAAM,CAACqM,OAAO,CAACgB,IAAI,CAACC,IAAI,CAAC;MACvBnJ,QAAQ;MACRtH,KAAK,EAAE,YAAY;MACnB0Q,WAAW,EAAEvN,MAAM,CAAC6I,QAAQ,CAACQ,MAAM;MACnCmE,QAAQ,EAAE;IACZ,CAAC,CAAC;IAEF,IAAI;MACF,MAAM3I,QAA2B,GAAG,MAAM7E,MAAM,CAACqM,OAAO,CAACgB,IAAI,CAACI,MAAM,CAAC,CAAC;MACtE,MAAMvM,IAAc,GAAG;QACrB3E,QAAQ,EAAE,OAAO;QACjBS,OAAO,EAAE6H,QAAQ,CAAC6I,aAAa,CAACC,QAAQ;QACxC7Q,KAAK,EAAE+H,QAAQ,CAAC3D,IAAI,EAAEpE,KAAK;QAC3BvB,IAAI,EAAEsJ,QAAQ,CAAC3D,IAAI,EAAE3F,IAAI,GACrB,GAAGsJ,QAAQ,CAAC3D,IAAI,CAAC3F,IAAI,CAACqS,SAAS,IAAI/I,QAAQ,CAAC3D,IAAI,CAAC3F,IAAI,CAACsS,QAAQ,EAAE,CAACzR,IAAI,CAAC,CAAC,GACvEL;MACN,CAAC;MACD,IAAI,CAAC6H,UAAU,CAAC1C,IAAI,CAAC;IACvB,CAAC,CAAC,OAAO5C,KAAK,EAAE;MACd,MAAM,IAAI,CAAC+E,QAAQ,CAAC/E,KAAK,CAAC;IAC5B;EACF;EAEA,MAAMwP,aAAaA,CAAA,EAAkB;IACnCvP,cAAM,CAACuE,GAAG,CAAC,8BAA8B,CAAC;IAC1C,IAAI,CAAC7D,aAAa,CAAC,CAAC;IACpB,IAAI,IAAI,CAACyC,YAAY,EAAE;MACrB,IAAI;QACF,MAAM,IAAI,CAACmC,cAAc,CAAC,CAAC;QAC3BtF,cAAM,CAACuE,GAAG,CAAC,6CAA6C,CAAC;MAC3D,CAAC,CAAC,OAAOM,CAAC,EAAE;QACV7E,cAAM,CAACiC,IAAI,CAAC,yCAAyC,EAAE4C,CAAC,CAAC;MAC3D;IACF;IACA,IAAI,CAACf,MAAM,CAAC,CAAC;EACf;EAEA0L,MAAMA,CAAA,EAAS;IACb,IAAI,CAACrM,YAAY,GAAG3F,SAAS;IAC7B,IAAI,CAAC4C,cAAc,GAAG,EAAE;IACxB,IAAI,CAACgD,eAAe,CAAC1H,SAAS,CAAC;IAC/B,IAAI,CAAC0H,eAAe,CAACzH,UAAU,CAAC;IAChC,IAAI,CAACyH,eAAe,CAACxH,oBAAoB,CAAC;IAC1C,IAAI,CAACkI,MAAM,CAAC,CAAC;EACf;EAEQuB,UAAUA,CAAC1C,IAAc,EAAE;IACjC,IAAI,CAACQ,YAAY,GAAGR,IAAI;IACxB,MAAM8M,aAAa,GAAG,IAAI,CAAC/M,0BAA0B,CAACC,IAAI,CAAC;IAC3D,IAAI,CAACT,SAAS,CAACxG,SAAS,EAAEuH,IAAI,CAACmC,SAAS,CAACqK,aAAa,CAAC,CAAC;IACxD,IAAI,CAAC3L,MAAM,CAAC,CAAC;EACf;EAEA4L,iBAAiBA,CAACC,OAAgB,EAAQ;IACxC3P,cAAM,CAAC4P,UAAU,CAACD,OAAO,CAAC;EAC5B;;EAEA;EACAE,oBAAoBA,CAAC/O,OAAqC,EAAQ;IAChE,IAAI,CAACM,eAAe,GAAGN,OAAO,GAC1B,IAAI,CAACD,sBAAsB,CAACC,OAAO,CAAC,GACpCtD,SAAS;IACb,IAAI,CAACkD,aAAa,CAAC,CAAC;IACpB,IAAI,CAACoD,MAAM,CAAC,CAAC;EACf;EAEA9G,IAAI,GAAG,MAAM;EACb8S,OAAOA,CAAA,EAAG,CAAC;EACXC,MAAMA,CAACC,KAAc,EAAE;IACrB,OAAOA,KAAK,KAAK,IAAI;EACvB;AACF;AAEO,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,IAAI9P,OAAO,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createAuthService = createAuthService;
|
|
7
|
+
var _authError = require("./utils/auth-error.js");
|
|
8
|
+
async function wrapAuthOperation(operation) {
|
|
9
|
+
try {
|
|
10
|
+
return await operation();
|
|
11
|
+
} catch (e) {
|
|
12
|
+
throw _authError.AuthError.from(e);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function createAuthService(getAuth) {
|
|
16
|
+
return {
|
|
17
|
+
get name() {
|
|
18
|
+
return getAuth().name;
|
|
19
|
+
},
|
|
20
|
+
get currentUser() {
|
|
21
|
+
return getAuth().currentUser;
|
|
22
|
+
},
|
|
23
|
+
get grantedScopes() {
|
|
24
|
+
const scopes = getAuth().grantedScopes;
|
|
25
|
+
return Array.isArray(scopes) ? scopes : [];
|
|
26
|
+
},
|
|
27
|
+
get hasPlayServices() {
|
|
28
|
+
return getAuth().hasPlayServices;
|
|
29
|
+
},
|
|
30
|
+
login(provider, options) {
|
|
31
|
+
return wrapAuthOperation(() => getAuth().login(provider, options));
|
|
32
|
+
},
|
|
33
|
+
requestScopes(scopes) {
|
|
34
|
+
return wrapAuthOperation(() => getAuth().requestScopes(scopes));
|
|
35
|
+
},
|
|
36
|
+
revokeScopes(scopes) {
|
|
37
|
+
return wrapAuthOperation(() => getAuth().revokeScopes(scopes));
|
|
38
|
+
},
|
|
39
|
+
getAccessToken() {
|
|
40
|
+
return wrapAuthOperation(() => getAuth().getAccessToken());
|
|
41
|
+
},
|
|
42
|
+
refreshToken() {
|
|
43
|
+
return wrapAuthOperation(() => getAuth().refreshToken());
|
|
44
|
+
},
|
|
45
|
+
logout() {
|
|
46
|
+
getAuth().logout();
|
|
47
|
+
},
|
|
48
|
+
silentRestore() {
|
|
49
|
+
return wrapAuthOperation(() => getAuth().silentRestore());
|
|
50
|
+
},
|
|
51
|
+
onAuthStateChanged(callback) {
|
|
52
|
+
const auth = getAuth();
|
|
53
|
+
return auth.onAuthStateChanged?.(callback) ?? (() => {});
|
|
54
|
+
},
|
|
55
|
+
onTokensRefreshed(callback) {
|
|
56
|
+
const auth = getAuth();
|
|
57
|
+
return auth.onTokensRefreshed?.(callback) ?? (() => {});
|
|
58
|
+
},
|
|
59
|
+
setLoggingEnabled(enabled) {
|
|
60
|
+
const auth = getAuth();
|
|
61
|
+
auth.setLoggingEnabled?.(enabled);
|
|
62
|
+
},
|
|
63
|
+
dispose() {
|
|
64
|
+
getAuth().dispose();
|
|
65
|
+
},
|
|
66
|
+
equals(other) {
|
|
67
|
+
return getAuth().equals(other);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=create-auth-service.js.map
|