react-native-nitro-auth 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +105 -454
- package/android/src/main/java/com/auth/AuthAdapter.kt +58 -7
- package/ios/AuthAdapter.swift +52 -6
- package/lib/commonjs/Auth.web.js +37 -6
- package/lib/commonjs/Auth.web.js.map +1 -1
- package/lib/module/Auth.web.js +37 -6
- package/lib/module/Auth.web.js.map +1 -1
- package/lib/typescript/commonjs/Auth.web.d.ts +2 -0
- package/lib/typescript/commonjs/Auth.web.d.ts.map +1 -1
- package/lib/typescript/module/Auth.web.d.ts +2 -0
- package/lib/typescript/module/Auth.web.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/Auth.web.ts +69 -6
|
@@ -260,6 +260,11 @@ object AuthAdapter {
|
|
|
260
260
|
val b2cDomain = getMicrosoftB2cDomainFromResources(ctx)
|
|
261
261
|
pendingMicrosoftB2cDomain = b2cDomain
|
|
262
262
|
val authBaseUrl = getMicrosoftAuthBaseUrl(effectiveTenant, b2cDomain)
|
|
263
|
+
if (authBaseUrl == null) {
|
|
264
|
+
clearPkceState()
|
|
265
|
+
nativeOnLoginError(origin, "configuration_error", "Invalid Microsoft tenant or B2C domain")
|
|
266
|
+
return
|
|
267
|
+
}
|
|
263
268
|
val redirectUri = "msauth://${ctx.packageName}/${clientId}"
|
|
264
269
|
|
|
265
270
|
val authUrl = Uri.parse("${authBaseUrl}oauth2/v2.0/authorize").buildUpon()
|
|
@@ -345,6 +350,11 @@ object AuthAdapter {
|
|
|
345
350
|
|
|
346
351
|
val redirectUri = "msauth://${ctx.packageName}/${clientId}"
|
|
347
352
|
val authBaseUrl = getMicrosoftAuthBaseUrl(tenant, pendingMicrosoftB2cDomain)
|
|
353
|
+
if (authBaseUrl == null) {
|
|
354
|
+
clearPkceState()
|
|
355
|
+
nativeOnLoginError(origin, "configuration_error", "Invalid Microsoft tenant or B2C domain")
|
|
356
|
+
return
|
|
357
|
+
}
|
|
348
358
|
val tokenUrl = "${authBaseUrl}oauth2/v2.0/token"
|
|
349
359
|
|
|
350
360
|
moduleScope.launch {
|
|
@@ -536,17 +546,50 @@ object AuthAdapter {
|
|
|
536
546
|
return if (resId != 0) context.getString(resId) else null
|
|
537
547
|
}
|
|
538
548
|
|
|
539
|
-
private fun getMicrosoftAuthBaseUrl(tenant: String, b2cDomain: String?): String {
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
549
|
+
private fun getMicrosoftAuthBaseUrl(tenant: String, b2cDomain: String?): String? {
|
|
550
|
+
val trimmedTenant = tenant.trim()
|
|
551
|
+
|
|
552
|
+
return if (!b2cDomain.isNullOrBlank()) {
|
|
553
|
+
val trimmedDomain = b2cDomain.trim().lowercase()
|
|
554
|
+
if (!isValidMicrosoftDomain(trimmedDomain)) return null
|
|
555
|
+
val b2cTenantPath = getMicrosoftB2cTenantPath(trimmedTenant, trimmedDomain) ?: return null
|
|
556
|
+
"https://$trimmedDomain/$b2cTenantPath/"
|
|
545
557
|
} else {
|
|
546
|
-
|
|
558
|
+
if (!isValidMicrosoftTenant(trimmedTenant)) return null
|
|
559
|
+
"https://login.microsoftonline.com/$trimmedTenant/"
|
|
547
560
|
}
|
|
548
561
|
}
|
|
549
562
|
|
|
563
|
+
private fun isValidMicrosoftTenant(value: String): Boolean {
|
|
564
|
+
return Regex("^(common|organizations|consumers|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[A-Za-z0-9][A-Za-z0-9._-]{0,127})$").matches(value)
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
private fun getMicrosoftB2cTenantPath(value: String, domain: String): String? {
|
|
568
|
+
if (isValidMicrosoftB2cTenantPath(value)) return value
|
|
569
|
+
if (!isValidMicrosoftB2cPolicy(value)) return null
|
|
570
|
+
val tenantName = getMicrosoftB2cTenantName(domain) ?: return null
|
|
571
|
+
return "$tenantName.onmicrosoft.com/$value"
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
private fun getMicrosoftB2cTenantName(domain: String): String? {
|
|
575
|
+
val suffix = ".b2clogin.com"
|
|
576
|
+
if (!domain.endsWith(suffix)) return null
|
|
577
|
+
val tenantName = domain.removeSuffix(suffix)
|
|
578
|
+
return if (Regex("^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$").matches(tenantName)) tenantName else null
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
private fun isValidMicrosoftB2cTenantPath(value: String): Boolean {
|
|
582
|
+
return Regex("^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[A-Za-z0-9][A-Za-z0-9._-]{0,127})/[A-Za-z0-9][A-Za-z0-9._-]{0,127}$").matches(value)
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
private fun isValidMicrosoftB2cPolicy(value: String): Boolean {
|
|
586
|
+
return Regex("^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$").matches(value)
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
private fun isValidMicrosoftDomain(value: String): Boolean {
|
|
590
|
+
return Regex("^(?=.{1,253}$)(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)+[A-Za-z]{2,63}$").matches(value)
|
|
591
|
+
}
|
|
592
|
+
|
|
550
593
|
private fun loginOneTap(
|
|
551
594
|
context: Context,
|
|
552
595
|
clientId: String,
|
|
@@ -785,6 +828,10 @@ object AuthAdapter {
|
|
|
785
828
|
}
|
|
786
829
|
|
|
787
830
|
val authBaseUrl = getMicrosoftAuthBaseUrl(tenant, b2cDomain)
|
|
831
|
+
if (authBaseUrl == null) {
|
|
832
|
+
nativeOnLoginError("silent", "configuration_error", "Invalid Microsoft tenant or B2C domain")
|
|
833
|
+
return
|
|
834
|
+
}
|
|
788
835
|
val tokenUrl = "${authBaseUrl}oauth2/v2.0/token"
|
|
789
836
|
|
|
790
837
|
moduleScope.launch {
|
|
@@ -869,6 +916,10 @@ object AuthAdapter {
|
|
|
869
916
|
}
|
|
870
917
|
|
|
871
918
|
val authBaseUrl = getMicrosoftAuthBaseUrl(tenant, b2cDomain)
|
|
919
|
+
if (authBaseUrl == null) {
|
|
920
|
+
nativeOnRefreshError("configuration_error", "Invalid Microsoft tenant or B2C domain")
|
|
921
|
+
return
|
|
922
|
+
}
|
|
872
923
|
val tokenUrl = "${authBaseUrl}oauth2/v2.0/token"
|
|
873
924
|
|
|
874
925
|
moduleScope.launch {
|
package/ios/AuthAdapter.swift
CHANGED
|
@@ -742,18 +742,64 @@ public class AuthAdapter: NSObject {
|
|
|
742
742
|
|
|
743
743
|
private static func getMicrosoftAuthBaseUrl(tenant: String, b2cDomain: String?) -> String? {
|
|
744
744
|
let trimmedTenant = tenant.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
745
|
-
guard !trimmedTenant.isEmpty else { return nil }
|
|
746
745
|
|
|
747
|
-
if trimmedTenant.hasPrefix("https://") {
|
|
748
|
-
guard URL(string: trimmedTenant) != nil else { return nil }
|
|
749
|
-
return trimmedTenant.hasSuffix("/") ? trimmedTenant : "\(trimmedTenant)/"
|
|
750
|
-
}
|
|
751
746
|
if let domain = b2cDomain?.trimmingCharacters(in: .whitespacesAndNewlines), !domain.isEmpty {
|
|
752
|
-
|
|
747
|
+
let normalizedDomain = domain.lowercased()
|
|
748
|
+
guard isValidMicrosoftDomain(normalizedDomain) else { return nil }
|
|
749
|
+
guard let b2cTenantPath = getMicrosoftB2cTenantPath(trimmedTenant, domain: normalizedDomain) else { return nil }
|
|
750
|
+
return "https://\(normalizedDomain)/\(b2cTenantPath)/"
|
|
753
751
|
}
|
|
752
|
+
guard isValidMicrosoftTenant(trimmedTenant) else { return nil }
|
|
754
753
|
return "https://login.microsoftonline.com/\(trimmedTenant)/"
|
|
755
754
|
}
|
|
756
755
|
|
|
756
|
+
private static func isValidMicrosoftTenant(_ value: String) -> Bool {
|
|
757
|
+
return value.range(
|
|
758
|
+
of: #"^(common|organizations|consumers|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[A-Za-z0-9][A-Za-z0-9._-]{0,127})$"#,
|
|
759
|
+
options: .regularExpression
|
|
760
|
+
) != nil
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
private static func getMicrosoftB2cTenantPath(_ value: String, domain: String) -> String? {
|
|
764
|
+
if isValidMicrosoftB2cTenantPath(value) {
|
|
765
|
+
return value
|
|
766
|
+
}
|
|
767
|
+
guard isValidMicrosoftB2cPolicy(value),
|
|
768
|
+
let tenantName = getMicrosoftB2cTenantName(domain) else { return nil }
|
|
769
|
+
return "\(tenantName).onmicrosoft.com/\(value)"
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
private static func getMicrosoftB2cTenantName(_ domain: String) -> String? {
|
|
773
|
+
let suffix = ".b2clogin.com"
|
|
774
|
+
guard domain.hasSuffix(suffix) else { return nil }
|
|
775
|
+
let tenantName = String(domain.dropLast(suffix.count))
|
|
776
|
+
return tenantName.range(
|
|
777
|
+
of: #"^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$"#,
|
|
778
|
+
options: .regularExpression
|
|
779
|
+
) != nil ? tenantName : nil
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
private static func isValidMicrosoftB2cTenantPath(_ value: String) -> Bool {
|
|
783
|
+
return value.range(
|
|
784
|
+
of: #"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[A-Za-z0-9][A-Za-z0-9._-]{0,127})/[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"#,
|
|
785
|
+
options: .regularExpression
|
|
786
|
+
) != nil
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
private static func isValidMicrosoftB2cPolicy(_ value: String) -> Bool {
|
|
790
|
+
return value.range(
|
|
791
|
+
of: #"^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"#,
|
|
792
|
+
options: .regularExpression
|
|
793
|
+
) != nil
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
private static func isValidMicrosoftDomain(_ value: String) -> Bool {
|
|
797
|
+
return value.range(
|
|
798
|
+
of: #"^(?=.{1,253}$)(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,63}$"#,
|
|
799
|
+
options: .regularExpression
|
|
800
|
+
) != nil
|
|
801
|
+
}
|
|
802
|
+
|
|
757
803
|
@objc
|
|
758
804
|
public static func logout() {
|
|
759
805
|
GIDSignIn.sharedInstance.signOut()
|
package/lib/commonjs/Auth.web.js
CHANGED
|
@@ -16,6 +16,12 @@ 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 MICROSOFT_TENANT_PATTERN = /^(common|organizations|consumers|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[A-Za-z0-9][A-Za-z0-9._-]{0,127})$/;
|
|
20
|
+
const MICROSOFT_B2C_TENANT_PATH_PATTERN = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[A-Za-z0-9][A-Za-z0-9._-]{0,127})\/[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
|
|
21
|
+
const MICROSOFT_B2C_POLICY_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
|
|
22
|
+
const MICROSOFT_B2CLOGIN_DOMAIN_SUFFIX = ".b2clogin.com";
|
|
23
|
+
const MICROSOFT_B2CLOGIN_TENANT_NAME_PATTERN = /^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/;
|
|
24
|
+
const MICROSOFT_DOMAIN_PATTERN = /^(?=.{1,253}$)(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,63}$/;
|
|
19
25
|
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
26
|
const JWT_BASE64_URL_RE = /^[A-Za-z0-9_-]+$/;
|
|
21
27
|
const inMemoryWebStorage = new Map();
|
|
@@ -897,14 +903,39 @@ class AuthWeb {
|
|
|
897
903
|
this.updateUser(user);
|
|
898
904
|
}
|
|
899
905
|
getMicrosoftAuthBaseUrl(tenant, b2cDomain) {
|
|
900
|
-
|
|
901
|
-
|
|
906
|
+
const trimmedTenant = tenant.trim();
|
|
907
|
+
const trimmedDomain = b2cDomain?.trim().toLowerCase();
|
|
908
|
+
if (trimmedDomain) {
|
|
909
|
+
if (!MICROSOFT_DOMAIN_PATTERN.test(trimmedDomain)) {
|
|
910
|
+
throw new AuthWebError("configuration_error", "Microsoft B2C domain must be a hostname.");
|
|
911
|
+
}
|
|
912
|
+
const b2cTenantPath = this.getMicrosoftB2cTenantPath(trimmedTenant, trimmedDomain);
|
|
913
|
+
return `https://${trimmedDomain}/${b2cTenantPath}/`;
|
|
914
|
+
}
|
|
915
|
+
if (!MICROSOFT_TENANT_PATTERN.test(trimmedTenant)) {
|
|
916
|
+
throw new AuthWebError("configuration_error", "Microsoft tenant must be common, organizations, consumers, a tenant ID, or tenant domain.");
|
|
917
|
+
}
|
|
918
|
+
return `https://login.microsoftonline.com/${trimmedTenant}/`;
|
|
919
|
+
}
|
|
920
|
+
getMicrosoftB2cTenantPath(tenant, domain) {
|
|
921
|
+
if (MICROSOFT_B2C_TENANT_PATH_PATTERN.test(tenant)) {
|
|
922
|
+
return tenant;
|
|
902
923
|
}
|
|
903
|
-
if (
|
|
904
|
-
|
|
905
|
-
}
|
|
906
|
-
|
|
924
|
+
if (!MICROSOFT_B2C_POLICY_PATTERN.test(tenant)) {
|
|
925
|
+
throw new AuthWebError("configuration_error", "Microsoft B2C tenant must be a policy or tenant/policy path.");
|
|
926
|
+
}
|
|
927
|
+
const tenantName = this.getMicrosoftB2cTenantName(domain);
|
|
928
|
+
if (tenantName === undefined) {
|
|
929
|
+
throw new AuthWebError("configuration_error", "Microsoft B2C custom domains require microsoftTenant as a tenant/policy path.");
|
|
930
|
+
}
|
|
931
|
+
return `${tenantName}.onmicrosoft.com/${tenant}`;
|
|
932
|
+
}
|
|
933
|
+
getMicrosoftB2cTenantName(domain) {
|
|
934
|
+
if (!domain.endsWith(MICROSOFT_B2CLOGIN_DOMAIN_SUFFIX)) {
|
|
935
|
+
return undefined;
|
|
907
936
|
}
|
|
937
|
+
const tenantName = domain.slice(0, -MICROSOFT_B2CLOGIN_DOMAIN_SUFFIX.length);
|
|
938
|
+
return MICROSOFT_B2CLOGIN_TENANT_NAME_PATTERN.test(tenantName) ? tenantName : undefined;
|
|
908
939
|
}
|
|
909
940
|
decodeMicrosoftJwt(token) {
|
|
910
941
|
try {
|
|
@@ -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","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","_sessionGeneration","_disposed","_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","authorizationCode","saveRefreshToken","loadRefreshToken","cached","parsedUser","JSON","parse","_currentUser","removeFromCache","parsedScopes","currentUser","grantedScopes","hasPlayServices","onAuthStateChanged","callback","push","l","onTokensRefreshed","notify","listener","notifyTokenListeners","tokens","runLoginOperation","operation","assertActiveGeneration","generation","login","options","loginHint","log","loginGoogle","loginMicrosoft","tenant","prompt","loginApple","e","mapError","requestScopes","newScopes","revokeScopes","s","includes","stringify","updateUser","revokeAccess","logout","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","forceAccountPicker","hostedDomain","openIDRealm","width","height","left","screenX","outerWidth","top","screenY","outerHeight","open","hash","slice","params","code","errorDescription","userId","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","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","MICROSOFT_TENANT_PATTERN","MICROSOFT_B2C_TENANT_PATH_PATTERN","MICROSOFT_B2C_POLICY_PATTERN","MICROSOFT_B2CLOGIN_DOMAIN_SUFFIX","MICROSOFT_B2CLOGIN_TENANT_NAME_PATTERN","MICROSOFT_DOMAIN_PATTERN","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","_sessionGeneration","_disposed","_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","authorizationCode","saveRefreshToken","loadRefreshToken","cached","parsedUser","JSON","parse","_currentUser","removeFromCache","parsedScopes","currentUser","grantedScopes","hasPlayServices","onAuthStateChanged","callback","push","l","onTokensRefreshed","notify","listener","notifyTokenListeners","tokens","runLoginOperation","operation","assertActiveGeneration","generation","login","options","loginHint","log","loginGoogle","loginMicrosoft","tenant","prompt","loginApple","e","mapError","requestScopes","newScopes","revokeScopes","s","includes","stringify","updateUser","revokeAccess","logout","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","forceAccountPicker","hostedDomain","openIDRealm","width","height","left","screenX","outerWidth","top","screenY","outerHeight","open","hash","slice","params","code","errorDescription","userId","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","trimmedTenant","trimmedDomain","b2cTenantPath","getMicrosoftB2cTenantPath","domain","tenantName","getMicrosoftB2cTenantName","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","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,wBAAwB,GAC5B,iJAAiJ;AACnJ,MAAMC,iCAAiC,GACrC,oJAAoJ;AACtJ,MAAMC,4BAA4B,GAAG,oCAAoC;AACzE,MAAMC,gCAAgC,GAAG,eAAe;AACxD,MAAMC,sCAAsC,GAC1C,iDAAiD;AACnD,MAAMC,wBAAwB,GAC5B,mFAAmF;AACrF,MAAMC,oBAAyC,GAAG,IAAIP,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,MAAMQ,iBAAiB,GAAG,kBAAkB;AAC5C,MAAMC,kBAAkB,GAAG,IAAIC,GAAG,CAAiB,CAAC;AACpD,IAAIC,oBAA+C;AAkCnD,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,KAAKzD,oBAAoB,IACrDyD,4BAA4B,KAAKxD,kBAAkB,IACnDwD,4BAA4B,KAAKvD,mBAAmB,GAChDuD,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,GAAGxE,OAAO,CAAC,gBAAgB,CAAC,CAACyE,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;EAC/BC,kBAAkB,GAAG,CAAC;EACtBC,SAAS,GAAG,KAAK;EAEzB7D,WAAWA,CAAA,EAAG;IACZ,IAAI,CAAC8D,OAAO,GAAGjB,SAAS,CAAC,CAAC;IAC1B,IAAI,CAACkB,aAAa,CAAC,CAAC;EACtB;EAEQC,aAAaA,CAAC3D,KAAc,EAAiC;IACnE,IAAI,CAACD,YAAY,CAACC,KAAK,CAAC,EAAE;MACxB,OAAO,KAAK;IACd;IACA,OAAO,OAAOA,KAAK,CAAC4D,IAAI,KAAK,UAAU;EACzC;EAEQC,sBAAsBA,CAACC,OAAyB,EAAoB;IAC1E,OAAO;MACLC,IAAI,EAAEA,CAAC3D,GAAG,EAAEJ,KAAK,KAAK;QACpB,MAAMgE,MAAM,GAAGF,OAAO,CAACC,IAAI,CAAC3D,GAAG,EAAEJ,KAAK,CAAC;QACvC,IAAI,IAAI,CAAC2D,aAAa,CAACK,MAAM,CAAC,EAAE;UAC9B,MAAM,IAAItE,KAAK,CAAC,oDAAoD,CAAC;QACvE;MACF,CAAC;MACDuE,IAAI,EAAG7D,GAAG,IAAK;QACb,MAAM4D,MAAM,GAAGF,OAAO,CAACG,IAAI,CAAC7D,GAAG,CAAC;QAChC,IAAI,IAAI,CAACuD,aAAa,CAACK,MAAM,CAAC,EAAE;UAC9B,MAAM,IAAItE,KAAK,CAAC,oDAAoD,CAAC;QACvE;QACA,OAAOsE,MAAM;MACf,CAAC;MACDE,MAAM,EAAG9D,GAAG,IAAK;QACf,MAAM4D,MAAM,GAAGF,OAAO,CAACI,MAAM,CAAC9D,GAAG,CAAC;QAClC,IAAI,IAAI,CAACuD,aAAa,CAACK,MAAM,CAAC,EAAE;UAC9B,MAAM,IAAItE,KAAK,CACb,sDACF,CAAC;QACH;MACF;IACF,CAAC;EACH;EAEQyE,4BAA4BA,CAAA,EAAY;IAC9C,IAAI,IAAI,CAACC,eAAe,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OAAO,IAAI,CAACX,OAAO,CAAClB,2BAA2B,KAAK,IAAI;EAC1D;EAEQ8B,iBAAiBA,CAAA,EAAmC;IAC1D,MAAMC,cAAc,GAAG,IAAI,CAACb,OAAO,CAACxB,mBAAmB;IACvD,IAAIqC,cAAc,IAAI1F,iBAAiB,CAACkD,GAAG,CAACwC,cAAc,CAAC,EAAE;MAC3D,OAAOA,cAAc;IACvB;IACA,OAAO/F,oBAAoB;EAC7B;EAEQgG,iBAAiBA,CAAA,EAAwB;IAC/C,IAAI,IAAI,CAAClB,uBAAuB,EAAE;MAChC,OAAO,IAAI,CAACmB,oBAAoB;IAClC;IAEA,IAAI,CAACnB,uBAAuB,GAAG,IAAI;IACnC,IAAI,OAAOoB,MAAM,KAAK,WAAW,EAAE;MACjC,IAAI,CAACD,oBAAoB,GAAGlE,SAAS;MACrC,OAAOA,SAAS;IAClB;IAEA,MAAMoE,IAAI,GAAG,IAAI,CAACL,iBAAiB,CAAC,CAAC;IACrC,IAAIK,IAAI,KAAKjG,mBAAmB,EAAE;MAChC,IAAI,CAAC+F,oBAAoB,GAAGlE,SAAS;MACrC,OAAOA,SAAS;IAClB;IAEA,MAAMqE,OAAO,GACXD,IAAI,KAAKlG,kBAAkB,GAAGiG,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,OAAO9B,KAAK,EAAE;MACdC,cAAM,CAACmC,IAAI,CACT,iEAAiE,EACjE;QACEP,IAAI;QACJ7B,KAAK,EAAEG,MAAM,CAACH,KAAK;MACrB,CACF,CAAC;MACD,IAAI,CAAC2B,oBAAoB,GAAGlE,SAAS;MACrC,OAAOA,SAAS;IAClB;EACF;EAEQ4E,SAASA,CAAC9E,GAAW,EAAEJ,KAAa,EAAQ;IAClD,IAAI,IAAI,CAACoE,eAAe,EAAE;MACxB,IAAI,CAACA,eAAe,CAACL,IAAI,CAAC3D,GAAG,EAAEJ,KAAK,CAAC;MACrC;IACF;IAEA,MAAM2E,OAAO,GAAG,IAAI,CAACJ,iBAAiB,CAAC,CAAC;IACxC,IAAII,OAAO,EAAE;MACXA,OAAO,CAACI,OAAO,CAAC3E,GAAG,EAAEJ,KAAK,CAAC;MAC3B;IACF;IACAV,kBAAkB,CAAC6F,GAAG,CAAC/E,GAAG,EAAEJ,KAAK,CAAC;EACpC;EAEQoF,SAASA,CAAChF,GAAW,EAAsB;IACjD,IAAI,IAAI,CAACgE,eAAe,EAAE;MACxB,OAAO,IAAI,CAACA,eAAe,CAACH,IAAI,CAAC7D,GAAG,CAAC;IACvC;IAEA,MAAMuE,OAAO,GAAG,IAAI,CAACJ,iBAAiB,CAAC,CAAC;IACxC,IAAII,OAAO,EAAE;MACX,OAAOA,OAAO,CAACU,OAAO,CAACjF,GAAG,CAAC,IAAIE,SAAS;IAC1C;IACA,OAAOhB,kBAAkB,CAACgG,GAAG,CAAClF,GAAG,CAAC;EACpC;EAEQmF,WAAWA,CAACnF,GAAW,EAAQ;IACrC,IAAI,IAAI,CAACgE,eAAe,EAAE;MACxB,IAAI,CAACA,eAAe,CAACF,MAAM,CAAC9D,GAAG,CAAC;MAChC;IACF;IAEA,MAAMuE,OAAO,GAAG,IAAI,CAACJ,iBAAiB,CAAC,CAAC;IACxC,IAAII,OAAO,EAAE;MACXA,OAAO,CAACK,UAAU,CAAC5E,GAAG,CAAC;MACvB;IACF;IACAd,kBAAkB,CAACkG,MAAM,CAACpF,GAAG,CAAC;EAChC;EAEQqF,2BAA2BA,CAACrF,GAAW,EAAQ;IACrD,IAAI,OAAOqE,MAAM,KAAK,WAAW,EAAE;MACjC;IACF;IAEA,IAAI;MACFA,MAAM,CAACG,YAAY,CAACI,UAAU,CAAC5E,GAAG,CAAC;MACnCqE,MAAM,CAACI,cAAc,CAACG,UAAU,CAAC5E,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;EAEQ6C,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,CAACpE,WAAW;IAC3B,OAAOoE,QAAQ,CAACrE,OAAO;IACvB,OAAOqE,QAAQ,CAAClE,cAAc;IAC9B,OAAOkE,QAAQ,CAACC,iBAAiB;IACjC,OAAOD,QAAQ;EACjB;EAEQE,gBAAgBA,CAACrE,YAAoB,EAAQ;IACnD,IAAI,IAAI,CAAC2C,eAAe,IAAI,IAAI,CAACD,4BAA4B,CAAC,CAAC,EAAE;MAC/D,IAAI,CAACe,SAAS,CAAC9G,oBAAoB,EAAEqD,YAAY,CAAC;MAClD;IACF;;IAEA;IACAnC,kBAAkB,CAAC6F,GAAG,CAAC/G,oBAAoB,EAAEqD,YAAY,CAAC;EAC5D;EAEQsE,gBAAgBA,CAAA,EAAuB;IAC7C,IAAI,IAAI,CAAC3B,eAAe,IAAI,IAAI,CAACD,4BAA4B,CAAC,CAAC,EAAE;MAC/D,OAAO,IAAI,CAACiB,SAAS,CAAChH,oBAAoB,CAAC;IAC7C;IACA,OAAOkB,kBAAkB,CAACgG,GAAG,CAAClH,oBAAoB,CAAC;EACrD;EAEQsF,aAAaA,CAAA,EAAG;IACtB,MAAMsC,MAAM,GAAG,IAAI,CAACZ,SAAS,CAAClH,SAAS,CAAC;IAExC,IAAI8H,MAAM,EAAE;MACV,IAAI;QACF,MAAMC,UAAU,GAAGpF,aAAa,CAACqF,IAAI,CAACC,KAAK,CAACH,MAAM,CAAC,CAAC;QACpD,IAAI,CAACC,UAAU,EAAE;UACf,MAAM,IAAIvG,KAAK,CAAC,kDAAkD,CAAC;QACrE;QACA,IAAI,IAAI,CAACyE,4BAA4B,CAAC,CAAC,EAAE;UACvC,IAAI,CAACiC,YAAY,GAAGH,UAAU;QAChC,CAAC,MAAM;UACL,MAAML,QAAQ,GAAG;YAAE,GAAGK;UAAW,CAAC;UAClC,OAAOL,QAAQ,CAACpE,WAAW;UAC3B,OAAOoE,QAAQ,CAACrE,OAAO;UACvB,OAAOqE,QAAQ,CAAClE,cAAc;UAC9B,OAAOkE,QAAQ,CAACC,iBAAiB;UACjC,IAAI,CAACO,YAAY,GAAGR,QAAQ;QAC9B;MACF,CAAC,CAAC,OAAO/C,KAAK,EAAE;QACdC,cAAM,CAACmC,IAAI,CAAC,kDAAkD,EAAE;UAC9DpC,KAAK,EAAEG,MAAM,CAACH,KAAK;QACrB,CAAC,CAAC;QACF,IAAI,CAACwD,eAAe,CAACnI,SAAS,CAAC;MACjC;IACF;IAEA,MAAM8C,MAAM,GAAG,IAAI,CAACoE,SAAS,CAACjH,UAAU,CAAC;IAEzC,IAAI6C,MAAM,EAAE;MACV,IAAI;QACF,MAAMsF,YAAY,GAAG1E,WAAW,CAACsE,IAAI,CAACC,KAAK,CAACnF,MAAM,CAAC,CAAC;QACpD,IAAI,CAACsF,YAAY,EAAE;UACjB,MAAM,IAAI5G,KAAK,CAAC,uCAAuC,CAAC;QAC1D;QACA,IAAI,CAACwD,cAAc,GAAGoD,YAAY;MACpC,CAAC,CAAC,OAAOzD,KAAK,EAAE;QACdC,cAAM,CAACmC,IAAI,CAAC,+CAA+C,EAAE;UAC3DpC,KAAK,EAAEG,MAAM,CAACH,KAAK;QACrB,CAAC,CAAC;QACF,IAAI,CAACwD,eAAe,CAAClI,UAAU,CAAC;MAClC;IACF;IAEA,IAAI,CAAC,IAAI,CAACgG,4BAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,CAACC,eAAe,EAAE;MACjE,IAAI,CAACqB,2BAA2B,CAACrH,oBAAoB,CAAC;IACxD;EACF;EAEQiI,eAAeA,CAACjG,GAAW,EAAE;IACnC,IAAI,CAACmF,WAAW,CAACnF,GAAG,CAAC;EACvB;EAEA,IAAImG,WAAWA,CAAA,EAAyB;IACtC,OAAO,IAAI,CAACH,YAAY;EAC1B;EAEA,IAAII,aAAaA,CAAA,EAAa;IAC5B,OAAO,IAAI,CAACtD,cAAc;EAC5B;EAEA,IAAIuD,eAAeA,CAAA,EAAY;IAC7B,OAAO,IAAI;EACb;EAEAC,kBAAkBA,CAChBC,QAA8C,EAClC;IACZ,IAAI,CAACxD,UAAU,CAACyD,IAAI,CAACD,QAAQ,CAAC;IAC9BA,QAAQ,CAAC,IAAI,CAACP,YAAY,CAAC;IAC3B,OAAO,MAAM;MACX,IAAI,CAACjD,UAAU,GAAG,IAAI,CAACA,UAAU,CAAChC,MAAM,CAAE0F,CAAC,IAAKA,CAAC,KAAKF,QAAQ,CAAC;IACjE,CAAC;EACH;EAEAG,iBAAiBA,CAACH,QAAsC,EAAc;IACpE,IAAI,CAACvD,eAAe,CAACwD,IAAI,CAACD,QAAQ,CAAC;IACnC,OAAO,MAAM;MACX,IAAI,CAACvD,eAAe,GAAG,IAAI,CAACA,eAAe,CAACjC,MAAM,CAAE0F,CAAC,IAAKA,CAAC,KAAKF,QAAQ,CAAC;IAC3E,CAAC;EACH;EAEQI,MAAMA,CAAA,EAAG;IACf,KAAK,MAAMC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC7D,UAAU,CAAC,EAAE;MAC3C6D,QAAQ,CAAC,IAAI,CAACZ,YAAY,CAAC;IAC7B;EACF;EAEQa,oBAAoBA,CAACC,MAAkB,EAAQ;IACrD,KAAK,MAAMF,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC5D,eAAe,CAAC,EAAE;MAChD4D,QAAQ,CAACE,MAAM,CAAC;IAClB;EACF;EAEA,MAAcC,iBAAiBA,CAC7BC,SAA8B,EACf;IACf,IAAI,IAAI,CAAC5D,SAAS,EAAE;MAClB,MAAM,IAAI/D,YAAY,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7D;IACA,IAAI,IAAI,CAAC6D,cAAc,EAAE;MACvB,MAAM,IAAI7D,YAAY,CACpB,uBAAuB,EACvB,sCACF,CAAC;IACH;IAEA,IAAI,CAAC6D,cAAc,GAAG,IAAI;IAC1B,IAAI;MACF,MAAM8D,SAAS,CAAC,CAAC;IACnB,CAAC,SAAS;MACR,IAAI,CAAC9D,cAAc,GAAG,KAAK;IAC7B;EACF;EAEQ+D,sBAAsBA,CAACC,UAAkB,EAAQ;IACvD,IAAI,IAAI,CAAC9D,SAAS,IAAI,IAAI,CAACD,kBAAkB,KAAK+D,UAAU,EAAE;MAC5D,MAAM,IAAI7H,YAAY,CAAC,WAAW,EAAE,8BAA8B,CAAC;IACrE;EACF;EAEA,MAAM8H,KAAKA,CAACzG,QAAsB,EAAE0G,OAAsB,EAAiB;IACzE,MAAMC,SAAS,GAAGD,OAAO,EAAEC,SAAS;IACpC,MAAMH,UAAU,GAAG,IAAI,CAAC/D,kBAAkB;IAC1CT,cAAM,CAAC4E,GAAG,CAAC,uBAAuB5G,QAAQ,EAAE,EAAE;MAAEE,MAAM,EAAEwG,OAAO,EAAExG;IAAO,CAAC,CAAC;IAC1E,IAAI;MACF,MAAM,IAAI,CAACmG,iBAAiB,CAAC,YAAY;QACvC,IAAIrG,QAAQ,KAAK,QAAQ,EAAE;UACzB,MAAME,MAAM,GAAGwG,OAAO,EAAExG,MAAM,IAAI3C,cAAc;UAChD,MAAM,IAAI,CAACsJ,WAAW,CAAC3G,MAAM,EAAEyG,SAAS,EAAED,OAAO,EAAEF,UAAU,CAAC;UAC9D;QACF;QAEA,IAAIxG,QAAQ,KAAK,WAAW,EAAE;UAC5B,MAAME,MAAM,GAAGwG,OAAO,EAAExG,MAAM,IAAI1C,iBAAiB;UACnD,MAAM,IAAI,CAACsJ,cAAc,CACvB5G,MAAM,EACNyG,SAAS,EACTD,OAAO,EAAEK,MAAM,EACfL,OAAO,EAAEM,MAAM,EACfR,UACF,CAAC;UACD;QACF;QAEA,IAAIxG,QAAQ,KAAK,OAAO,EAAE;UACxB,MAAM,IAAI,CAACiH,UAAU,CAACP,OAAO,EAAEF,UAAU,CAAC;UAC1C;QACF;QAEA,MAAM,IAAI7H,YAAY,CACpB,sBAAsB,EACtB,8BAA8BqB,QAAQ,EACxC,CAAC;MACH,CAAC,CAAC;MACFgC,cAAM,CAAC4E,GAAG,CAAC,yBAAyB5G,QAAQ,EAAE,CAAC;IACjD,CAAC,CAAC,OAAOkH,CAAU,EAAE;MACnB,MAAMnF,KAAK,GAAG,IAAI,CAACoF,QAAQ,CAACD,CAAC,CAAC;MAC9BlF,cAAM,CAACD,KAAK,CAAC,oBAAoB/B,QAAQ,GAAG,EAAE+B,KAAK,CAACjD,OAAO,CAAC;MAC5D,MAAMiD,KAAK;IACb;EACF;EAEA,MAAMqF,aAAaA,CAAClH,MAAgB,EAAiB;IACnD,IAAI,CAAC,IAAI,CAACoF,YAAY,EAAE;MACtB,MAAM,IAAI1G,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,MAAMoB,QAAQ,GAAG,IAAI,CAACsF,YAAY,CAACtF,QAAQ;IAC3C,IAAIA,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,WAAW,EAAE;MACrD,MAAM,IAAIpB,KAAK,CACb,0DACF,CAAC;IACH;IACAoD,cAAM,CAAC4E,GAAG,CAAC,+BAA+B,EAAE1G,MAAM,CAAC;IACnD,MAAMmH,SAAS,GAAG,CAAC,GAAG,IAAItJ,GAAG,CAAC,CAAC,GAAG,IAAI,CAACqE,cAAc,EAAE,GAAGlC,MAAM,CAAC,CAAC,CAAC;IACnE,IAAI;MACF,MAAMsG,UAAU,GAAG,IAAI,CAAC/D,kBAAkB;MAC1C,MAAM,IAAI,CAAC4D,iBAAiB,CAAC,YAAY;QACvC,IAAIrG,QAAQ,KAAK,QAAQ,EAAE;UACzB,MAAM,IAAI,CAAC6G,WAAW,CAACQ,SAAS,EAAE7H,SAAS,EAAEA,SAAS,EAAEgH,UAAU,CAAC;UACnE;QACF;QAEA,MAAM,IAAI,CAACM,cAAc,CACvBO,SAAS,EACT7H,SAAS,EACTA,SAAS,EACTA,SAAS,EACTgH,UACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOU,CAAC,EAAE;MACV,MAAMnF,KAAK,GAAG,IAAI,CAACoF,QAAQ,CAACD,CAAC,CAAC;MAC9BlF,cAAM,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAACjD,OAAO,CAAC;MACxD,MAAMiD,KAAK;IACb;EACF;EAEA,MAAMuF,YAAYA,CAACpH,MAAgB,EAAiB;IAClD8B,cAAM,CAAC4E,GAAG,CAAC,kBAAkB,EAAE1G,MAAM,CAAC;IACtC,IAAI,CAACkC,cAAc,GAAG,IAAI,CAACA,cAAc,CAAC/B,MAAM,CAC7CkH,CAAC,IAAK,CAACrH,MAAM,CAACsH,QAAQ,CAACD,CAAC,CAC3B,CAAC;IACD,IAAI,CAACnD,SAAS,CAAC/G,UAAU,EAAE+H,IAAI,CAACqC,SAAS,CAAC,IAAI,CAACrF,cAAc,CAAC,CAAC;IAC/D,IAAI,IAAI,CAACkD,YAAY,EAAE;MACrB,IAAI,CAACA,YAAY,CAACpF,MAAM,GAAG,IAAI,CAACkC,cAAc;MAC9C,IAAI,CAACsF,UAAU,CAAC,IAAI,CAACpC,YAAY,CAAC;IACpC;EACF;EAEA,MAAMqC,YAAYA,CAAA,EAAkB;IAClC,IAAI,CAACC,MAAM,CAAC,CAAC;EACf;EAEA,MAAMC,cAAcA,CAAA,EAAgC;IAClD,IAAI,IAAI,CAACvC,YAAY,EAAEzE,cAAc,EAAE;MACrC,MAAMiH,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;MACtB,IAAIA,GAAG,GAAG,MAAM,GAAG,IAAI,CAACxC,YAAY,CAACzE,cAAc,EAAE;QACnDmB,cAAM,CAAC4E,GAAG,CAAC,sCAAsC,CAAC;QAClD,MAAM,IAAI,CAACjG,YAAY,CAAC,CAAC;MAC3B;IACF;IACA,OAAO,IAAI,CAAC2E,YAAY,EAAE5E,WAAW;EACvC;EAEA,MAAMC,YAAYA,CAAA,EAAwB;IACxC,IAAI,IAAI,CAACqH,eAAe,EAAE;MACxB,OAAO,IAAI,CAACA,eAAe;IAC7B;IAEA,MAAMC,cAAc,GAAG,IAAI,CAACC,mBAAmB,CAAC,IAAI,CAACzF,kBAAkB,CAAC;IACxE,IAAI,CAACuF,eAAe,GAAGC,cAAc;IACrC,IAAI;MACF,OAAO,MAAMA,cAAc;IAC7B,CAAC,SAAS;MACR,IAAI,IAAI,CAACD,eAAe,KAAKC,cAAc,EAAE;QAC3C,IAAI,CAACD,eAAe,GAAGxI,SAAS;MAClC;IACF;EACF;EAEA,MAAc0I,mBAAmBA,CAAC1B,UAAkB,EAAuB;IACzE,IAAI,CAAC,IAAI,CAAClB,YAAY,EAAE;MACtB,MAAM,IAAI1G,KAAK,CAAC,mBAAmB,CAAC;IACtC;IAEA,IAAI,IAAI,CAAC0G,YAAY,CAACtF,QAAQ,KAAK,WAAW,EAAE;MAC9CgC,cAAM,CAAC4E,GAAG,CAAC,gCAAgC,CAAC;MAC5C,MAAMjG,YAAY,GAAG,IAAI,CAACsE,gBAAgB,CAAC,CAAC;MAE5C,IAAI,CAACtE,YAAY,EAAE;QACjB,MAAM,IAAIhC,YAAY,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;MACxE;MAEA,MAAMwJ,QAAQ,GAAG,IAAI,CAACxF,OAAO,CAACtB,iBAAiB;MAC/C,IAAI,CAAC8G,QAAQ,EAAE;QACb,MAAM,IAAIvJ,KAAK,CACb,iGACF,CAAC;MACH;MACA,MAAMmI,MAAM,GAAG,IAAI,CAACpE,OAAO,CAACrB,eAAe,IAAI,QAAQ;MACvD,MAAM8G,SAAS,GAAG,IAAI,CAACzF,OAAO,CAACpB,kBAAkB;MAEjD,MAAM8G,WAAW,GAAG,IAAI,CAACC,uBAAuB,CAACvB,MAAM,EAAEqB,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,EAAEjI;MACjB,CAAC,CAAC;MAEF,MAAMkI,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,CAACtC,sBAAsB,CAACC,UAAU,CAAC;MACvC,IAAI,CAACqC,QAAQ,CAACO,EAAE,EAAE;QAChB,MAAM,IAAIzK,YAAY,CACpB,gBAAgB,EAChBS,iBAAiB,CAAC8J,IAAI,EAAE,mBAAmB,CAAC,IAC1C9J,iBAAiB,CAAC8J,IAAI,EAAE,OAAO,CAAC,IAChC,sBACJ,CAAC;MACH;MAEA,MAAMzI,OAAO,GAAGrB,iBAAiB,CAAC8J,IAAI,EAAE,UAAU,CAAC;MACnD,MAAMxI,WAAW,GAAGtB,iBAAiB,CAAC8J,IAAI,EAAE,cAAc,CAAC;MAC3D,MAAMG,eAAe,GAAGjK,iBAAiB,CAAC8J,IAAI,EAAE,eAAe,CAAC;MAEhE,IAAIG,eAAe,EAAE;QACnB,IAAI,CAACrE,gBAAgB,CAACqE,eAAe,CAAC;MACxC;MAEA,MAAMxI,cAAc,GAAG,IAAI,CAACyI,iBAAiB,CAACJ,IAAI,CAAC,YAAY,CAAC,CAAC;MAEjE,MAAMzD,WAAW,GAAG,IAAI,CAACH,YAAY;MACrC,IAAI,CAACG,WAAW,EAAE;QAChB,MAAM,IAAI9G,YAAY,CAAC,WAAW,EAAE,8BAA8B,CAAC;MACrE;MACA,MAAM4K,gBAAgB,GAAG9I,OAAO,IAAIgF,WAAW,CAAChF,OAAO;MACvD,MAAM+I,MAAM,GAAGD,gBAAgB,GAC3B,IAAI,CAACE,kBAAkB,CAACF,gBAAgB,CAAC,GACzC,CAAC,CAAC;MACN,MAAM1E,IAAc,GAAG;QACrB,GAAGY,WAAW;QACdhF,OAAO,EAAE8I,gBAAgB;QACzB7I,WAAW,EAAEA,WAAW,IAAIlB,SAAS;QACrCmB,YAAY,EAAE0I,eAAe,IAAI5D,WAAW,CAAC9E,YAAY;QACzDE,cAAc;QACd,GAAG2I;MACL,CAAC;MACD,IAAI,CAAC9B,UAAU,CAAC7C,IAAI,CAAC;MAErB,MAAMuB,MAAkB,GAAG;QACzB1F,WAAW,EAAEA,WAAW,IAAIlB,SAAS;QACrCiB,OAAO,EAAE8I,gBAAgB;QACzB5I,YAAY,EAAE0I,eAAe,IAAI7J,SAAS;QAC1CqB;MACF,CAAC;MACD,IAAI,CAACsF,oBAAoB,CAACC,MAAM,CAAC;MACjC,OAAOA,MAAM;IACf;IAEA,IAAI,IAAI,CAACd,YAAY,CAACtF,QAAQ,KAAK,QAAQ,EAAE;MAC3C,MAAM,IAAIpB,KAAK,CACb,mCAAmC,IAAI,CAAC0G,YAAY,CAACtF,QAAQ,EAC/D,CAAC;IACH;IAEAgC,cAAM,CAAC4E,GAAG,CAAC,sBAAsB,CAAC;IAClC,MAAM,IAAI,CAACP,iBAAiB,CAAC,MAC3B,IAAI,CAACQ,WAAW,CACd,IAAI,CAACzE,cAAc,CAACtC,MAAM,GAAG,CAAC,GAAG,IAAI,CAACsC,cAAc,GAAG7E,cAAc,EACrEiC,SAAS,EACTA,SAAS,EACTgH,UACF,CACF,CAAC;IACD,IAAI,CAACD,sBAAsB,CAACC,UAAU,CAAC;IACvC,MAAMJ,MAAkB,GAAG;MACzB1F,WAAW,EAAE,IAAI,CAAC4E,YAAY,CAAC5E,WAAW;MAC1CD,OAAO,EAAE,IAAI,CAAC6E,YAAY,CAAC7E,OAAO;MAClCE,YAAY,EAAE,IAAI,CAAC2E,YAAY,CAAC3E,YAAY;MAC5CE,cAAc,EAAE,IAAI,CAACyE,YAAY,CAACzE;IACpC,CAAC;IACD,IAAI,CAACsF,oBAAoB,CAACC,MAAM,CAAC;IACjC,OAAOA,MAAM;EACf;EAEQe,QAAQA,CAACpF,KAAc,EAAS;IACtC,IAAIA,KAAK,YAAYpD,YAAY,EAAE;MACjC,OAAOoD,KAAK;IACd;IAEA,MAAM2H,UAAU,GAAG3H,KAAK,YAAYnD,KAAK,GAAGmD,KAAK,CAACjD,OAAO,GAAGoD,MAAM,CAACH,KAAK,CAAC;IACzE,MAAM4H,GAAG,GAAGD,UAAU,CAACE,WAAW,CAAC,CAAC;IACpC,IAAIC,SAAwB,GAAG,SAAS;IAExC,IAAI9I,eAAe,CAAC2I,UAAU,CAAC,EAAE;MAC/BG,SAAS,GAAGH,UAAU;IACxB,CAAC,MAAM,IAAIC,GAAG,CAACnC,QAAQ,CAAC,QAAQ,CAAC,IAAImC,GAAG,CAACnC,QAAQ,CAAC,cAAc,CAAC,EAAE;MACjEqC,SAAS,GAAG,WAAW;IACzB,CAAC,MAAM,IAAIF,GAAG,CAACnC,QAAQ,CAAC,eAAe,CAAC,EAAE;MACxCqC,SAAS,GAAG,WAAW;IACzB,CAAC,MAAM,IAAIF,GAAG,CAACnC,QAAQ,CAAC,SAAS,CAAC,EAAE;MAClCqC,SAAS,GAAG,SAAS;IACvB,CAAC,MAAM,IAAIF,GAAG,CAACnC,QAAQ,CAAC,eAAe,CAAC,EAAE;MACxCqC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IAAIF,GAAG,CAACnC,QAAQ,CAAC,8BAA8B,CAAC,EAAE;MACvDqC,SAAS,GAAG,uBAAuB;IACrC,CAAC,MAAM,IAAIF,GAAG,CAACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;MACzCqC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IAAIF,GAAG,CAACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;MACzCqC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IAAIF,GAAG,CAACnC,QAAQ,CAAC,aAAa,CAAC,IAAImC,GAAG,CAACnC,QAAQ,CAAC,aAAa,CAAC,EAAE;MACrEqC,SAAS,GAAG,aAAa;IAC3B,CAAC,MAAM,IAAIF,GAAG,CAACnC,QAAQ,CAAC,aAAa,CAAC,IAAImC,GAAG,CAACnC,QAAQ,CAAC,MAAM,CAAC,EAAE;MAC9DqC,SAAS,GAAG,aAAa;IAC3B,CAAC,MAAM,IACLF,GAAG,CAACnC,QAAQ,CAAC,mBAAmB,CAAC,IACjCmC,GAAG,CAACnC,QAAQ,CAAC,eAAe,CAAC,EAC7B;MACAqC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IACLF,GAAG,CAACnC,QAAQ,CAAC,SAAS,CAAC,IACvBmC,GAAG,CAACnC,QAAQ,CAAC,cAAc,CAAC,IAC5BmC,GAAG,CAACnC,QAAQ,CAAC,yBAAyB,CAAC,EACvC;MACAqC,SAAS,GAAG,eAAe;IAC7B,CAAC,MAAM,IAAIF,GAAG,CAACnC,QAAQ,CAAC,eAAe,CAAC,IAAImC,GAAG,CAACnC,QAAQ,CAAC,eAAe,CAAC,EAAE;MACzEqC,SAAS,GAAG,gBAAgB;IAC9B,CAAC,MAAM,IACLF,GAAG,CAACnC,QAAQ,CAAC,eAAe,CAAC,IAC7BmC,GAAG,CAACnC,QAAQ,CAAC,qBAAqB,CAAC,IACnCmC,GAAG,CAACnC,QAAQ,CAAC,gBAAgB,CAAC,IAC9BmC,GAAG,CAACnC,QAAQ,CAAC,WAAW,CAAC,IACzBmC,GAAG,CAACnC,QAAQ,CAAC,QAAQ,CAAC,EACtB;MACAqC,SAAS,GAAG,qBAAqB;IACnC;IAEA,OAAO,IAAIlL,YAAY,CAACkL,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,OAAOnH,KAAK,EAAE;MACd,MAAM,IAAIpD,YAAY,CAAC,aAAa,EAAEuD,MAAM,CAACH,KAAK,CAAC,CAAC;IACtD;IAEA,IAAI,CAAC9C,YAAY,CAAC6K,MAAM,CAAC,EAAE;MACzB,MAAM,IAAInL,YAAY,CACpB,aAAa,EACb,kDACF,CAAC;IACH;IACA,OAAOmL,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,CAACnK,MAAM,GAAG,CAAC,IAChB,CAACqK,OAAO,IACRA,OAAO,CAACrK,MAAM,GAAG,CAAC,KAAK,CAAC,IACxB,CAACvB,iBAAiB,CAAC6L,IAAI,CAACD,OAAO,CAAC,EAChC;MACA,MAAM,IAAIxL,YAAY,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9D;IAEA,IAAI;MACF,MAAM0L,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,CAACvK,MAAM,GAAG,CAAE,IAAI,CAAC,CAAC;MACpE,MAAM2K,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,CAChB/K,KAAK,CAAC4K,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,GAAGjG,IAAI,CAACC,KAAK,CAACsF,WAAW,CAAC;MAChD,IAAI,CAAC1L,YAAY,CAACoM,OAAO,CAAC,EAAE;QAC1B,MAAM,IAAIzM,KAAK,CAAC,sCAAsC,CAAC;MACzD;MACA,OAAOyM,OAAO;IAChB,CAAC,CAAC,OAAOtJ,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;EAEQuJ,iBAAiBA,CAACvJ,KAAa,EAAiB;IACtD,MAAMwJ,eAAe,GAAGxJ,KAAK,CAAClC,IAAI,CAAC,CAAC,CAAC+J,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,GAAG7L,qBAAqB,CAAC4L,SAAS,CAAC;IACzD,IAAIC,gBAAgB,KAAKjM,SAAS,EAAE;MAClC,OAAOA,SAAS;IAClB;IAEA,OAAOuI,IAAI,CAACD,GAAG,CAAC,CAAC,GAAG2D,gBAAgB,GAAG,IAAI;EAC7C;EAEQC,oBAAoBA,CAC1BC,KAAa,EACbC,WAAmB,EACnB5L,QAAgC,EAChC6L,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;QACH1I,MAAM,CAAC2I,aAAa,CAACH,UAAU,CAAC;QAChCxI,MAAM,CAAC4I,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,GAAGzI,MAAM,CAAC+I,UAAU,CAAC,MAAM;QACxCR,OAAO,CAACC,UAAU,EAAEC,SAAS,EAAE,IAAI,CAAC;QACpCJ,MAAM,CAAC,IAAIpN,KAAK,CAAC,GAAGoB,QAAQ,CAAC4J,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC;MAC7D,CAAC,EAAE/L,gBAAgB,CAAC;MAEpB,MAAMsO,UAAU,GAAGxI,MAAM,CAACgJ,WAAW,CAAC,MAAM;QAC1C,IAAIhB,KAAK,CAACa,MAAM,EAAE;UAChBN,OAAO,CAACC,UAAU,EAAEC,SAAS,EAAE,KAAK,CAAC;UACrCJ,MAAM,CAAC,IAAIpN,KAAK,CAAC,WAAW,CAAC,CAAC;UAC9B;QACF;QAEA,IAAIgO,GAAW;QACf,IAAI;UACFA,GAAG,GAAGjB,KAAK,CAACkB,QAAQ,CAACC,IAAI;QAC3B,CAAC,CAAC,OAAO/K,KAAK,EAAE;UACd,IAAI,CAACkK,mBAAmB,EAAE;YACxBjK,cAAM,CAACC,KAAK,CAAC,eAAejC,QAAQ,gBAAgB,EAAE;cACpD+B,KAAK,EAAEG,MAAM,CAACH,KAAK;YACrB,CAAC,CAAC;YACFkK,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,CACnBjJ,IAAI,CAAC,MAAM+I,UAAU,CAACe,GAAG,CAAC,CAAC,CAC3B9J,IAAI,CAAC,MAAM;UACViJ,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CACDiB,KAAK,CAAEjL,KAAc,IAAK;UACzBiK,MAAM,CAACjK,KAAK,CAAC;QACf,CAAC,CAAC;MACN,CAAC,EAAEnE,sBAAsB,CAAC;IAC5B,CAAC,CAAC;EACJ;EAEA,MAAciJ,WAAWA,CACvB3G,MAAgB,EAChByG,SAAkB,EAClBD,OAAsB,EACtBF,UAAmB,EACJ;IACf,MAAM2B,QAAQ,GAAG,IAAI,CAACxF,OAAO,CAACvB,iBAAiB;IAE/C,IAAI,CAAC+G,QAAQ,EAAE;MACb,MAAM,IAAIvJ,KAAK,CACb,oFACF,CAAC;IACH;IAEA,MAAMqO,KAAK,GAAGvG,OAAO,EAAEuG,KAAK,IAAIC,MAAM,CAACC,UAAU,CAAC,CAAC;IACnD,IAAI,CAACC,mBAAmB,GAAGH,KAAK;IAChC,OAAO,IAAInB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMJ,WAAW,GAAGjI,MAAM,CAACkJ,QAAQ,CAACQ,MAAM;MAC1C,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAC,8CAA8C,CAAC;MACvED,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,WAAW,EAAE8D,QAAQ,CAAC;MAC/CmF,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,cAAc,EAAEuH,WAAW,CAAC;MACrD0B,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,eAAe,EAAE,qBAAqB,CAAC;MAChEiJ,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,OAAO,EAAEnE,MAAM,CAACkL,IAAI,CAAC,GAAG,CAAC,CAAC;MACnDkC,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,OAAO,EAAE4I,KAAK,CAAC;MACxCK,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC;MAClDiJ,OAAO,CAACE,YAAY,CAACnJ,GAAG,CACtB,QAAQ,EACRqC,OAAO,EAAE+G,kBAAkB,GAAG,wBAAwB,GAAG,SAC3D,CAAC;MAED,IAAI9G,SAAS,EAAE;QACb2G,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,YAAY,EAAEsC,SAAS,CAAC;MACnD;MACA,IAAID,OAAO,EAAEgH,YAAY,EAAE;QACzBJ,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,IAAI,EAAEqC,OAAO,CAACgH,YAAY,CAAC;MACtD;MACA,IAAIhH,OAAO,EAAEiH,WAAW,EAAE;QACxBL,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,cAAc,EAAEqC,OAAO,CAACiH,WAAW,CAAC;MAC/D;MAEA,MAAMC,KAAK,GAAG,GAAG;MACjB,MAAMC,MAAM,GAAG,GAAG;MAClB,MAAMC,IAAI,GAAGnK,MAAM,CAACoK,OAAO,GAAG,CAACpK,MAAM,CAACqK,UAAU,GAAGJ,KAAK,IAAI,CAAC;MAC7D,MAAMK,GAAG,GAAGtK,MAAM,CAACuK,OAAO,GAAG,CAACvK,MAAM,CAACwK,WAAW,GAAGN,MAAM,IAAI,CAAC;MAE9D,MAAMlC,KAAK,GAAGhI,MAAM,CAACyK,IAAI,CACvBd,OAAO,CAACrE,QAAQ,CAAC,CAAC,EAClB,aAAa,EACb,SAAS2E,KAAK,WAAWC,MAAM,SAASC,IAAI,QAAQG,GAAG,EACzD,CAAC;MAED,IAAI,CAACtC,KAAK,EAAE;QACVK,MAAM,CAAC,IAAIpN,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACtE;MACF;MAEA,KAAK,IAAI,CAAC8M,oBAAoB,CAACC,KAAK,EAAEC,WAAW,EAAE,QAAQ,EAAGgB,GAAG,IAAK;QACpE,MAAMyB,IAAI,GAAG,IAAId,GAAG,CAACX,GAAG,CAAC,CAACyB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC;QACvC,MAAMC,MAAM,GAAG,IAAI9F,eAAe,CAAC4F,IAAI,CAAC;QACxC,MAAM5N,OAAO,GAAG8N,MAAM,CAAC/J,GAAG,CAAC,UAAU,CAAC;QACtC,MAAM9D,WAAW,GAAG6N,MAAM,CAAC/J,GAAG,CAAC,cAAc,CAAC;QAC9C,MAAMgH,SAAS,GAAG+C,MAAM,CAAC/J,GAAG,CAAC,YAAY,CAAC;QAC1C,MAAMgK,IAAI,GAAGD,MAAM,CAAC/J,GAAG,CAAC,MAAM,CAAC;QAC/B,MAAMzC,KAAK,GAAGwM,MAAM,CAAC/J,GAAG,CAAC,OAAO,CAAC;QACjC,MAAMiK,gBAAgB,GAAGF,MAAM,CAAC/J,GAAG,CAAC,mBAAmB,CAAC;QAExD,IAAIzC,KAAK,EAAE;UACT,MAAM,IAAIpD,YAAY,CACpB,IAAI,CAAC2M,iBAAiB,CAACvJ,KAAK,CAAC,EAC7B0M,gBAAgB,IAAI1M,KACtB,CAAC;QACH;QAEA,IAAI,CAACtB,OAAO,EAAE;UACZ,MAAM,IAAI9B,YAAY,CAAC,aAAa,EAAE,yBAAyB,CAAC;QAClE;QAEA,MAAM0M,OAAO,GAAG,IAAI,CAACtB,eAAe,CAACtJ,OAAO,CAAC;QAC7C,IAAI4K,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC+B,mBAAmB,EAAE;UACjD,IAAI,CAACA,mBAAmB,GAAG5N,SAAS;UACpC,MAAM,IAAIb,YAAY,CACpB,eAAe,EACf,yCACF,CAAC;QACH;QACA,IAAI,CAACyO,mBAAmB,GAAG5N,SAAS;QAEpC,IAAIgH,UAAU,KAAKhH,SAAS,EAAE;UAC5B,IAAI,CAAC+G,sBAAsB,CAACC,UAAU,CAAC;QACzC;QAEA,IAAI,CAACpE,cAAc,GAAGlC,MAAM;QAC5B,IAAI,CAACkE,SAAS,CAAC/G,UAAU,EAAE+H,IAAI,CAACqC,SAAS,CAACvH,MAAM,CAAC,CAAC;QAElD,MAAM2E,IAAc,GAAG;UACrB7E,QAAQ,EAAE,QAAQ;UAClBS,OAAO;UACPC,WAAW,EAAEA,WAAW,IAAIlB,SAAS;UACrCoB,cAAc,EAAE4N,IAAI,IAAIhP,SAAS;UACjCkP,MAAM,EAAEtP,iBAAiB,CAACiM,OAAO,EAAE,KAAK,CAAC;UACzCqC,YAAY,EAAEtO,iBAAiB,CAACiM,OAAO,EAAE,IAAI,CAAC;UAC9CnL,MAAM;UACNW,cAAc,EAAE,IAAI,CAACyI,iBAAiB,CAACkC,SAAS,CAAC;UACjD,GAAG,IAAI,CAACmD,eAAe,CAAClO,OAAO;QACjC,CAAC;QACD,IAAI,CAACiH,UAAU,CAAC7C,IAAI,CAAC;MACvB,CAAC,CAAC,CACC/B,IAAI,CAAC,MAAM;QACViJ,OAAO,CAAC,CAAC;MACX,CAAC,CAAC,CACDiB,KAAK,CAAEjL,KAAc,IAAK;QACzBiK,MAAM,CAACjK,KAAK,CAAC;MACf,CAAC,CAAC;IACN,CAAC,CAAC;EACJ;EAEQ4M,eAAeA,CAAC3E,KAAa,EAAqB;IACxD,IAAI;MACF,MAAMqB,OAAO,GAAG,IAAI,CAACtB,eAAe,CAACC,KAAK,CAAC;MAC3C,OAAO;QACLzJ,KAAK,EAAEnB,iBAAiB,CAACiM,OAAO,EAAE,OAAO,CAAC;QAC1CrM,IAAI,EAAEI,iBAAiB,CAACiM,OAAO,EAAE,MAAM,CAAC;QACxC7K,KAAK,EAAEpB,iBAAiB,CAACiM,OAAO,EAAE,SAAS,CAAC;QAC5CqD,MAAM,EAAEtP,iBAAiB,CAACiM,OAAO,EAAE,KAAK,CAAC;QACzCqC,YAAY,EAAEtO,iBAAiB,CAACiM,OAAO,EAAE,IAAI;MAC/C,CAAC;IACH,CAAC,CAAC,OAAOtJ,KAAK,EAAE;MACdC,cAAM,CAACmC,IAAI,CAAC,kCAAkC,EAAE;QAAEpC,KAAK,EAAEG,MAAM,CAACH,KAAK;MAAE,CAAC,CAAC;MACzE,OAAO,CAAC,CAAC;IACX;EACF;EAEA,MAAc+E,cAAcA,CAC1B5G,MAAgB,EAChByG,SAAkB,EAClBI,MAAe,EACfC,MAAe,EACfR,UAAmB,EACJ;IACf,MAAM2B,QAAQ,GAAG,IAAI,CAACxF,OAAO,CAACtB,iBAAiB;IAE/C,IAAI,CAAC8G,QAAQ,EAAE;MACb,MAAM,IAAIvJ,KAAK,CACb,iGACF,CAAC;IACH;IAEA,MAAMgQ,eAAe,GAAG7H,MAAM,IAAI,IAAI,CAACpE,OAAO,CAACrB,eAAe,IAAI,QAAQ;IAC1E,MAAM8G,SAAS,GAAG,IAAI,CAACzF,OAAO,CAACpB,kBAAkB;IACjD,MAAM8G,WAAW,GAAG,IAAI,CAACC,uBAAuB,CAC9CsG,eAAe,EACfxG,SACF,CAAC;IAED,MAAMyG,eAAe,GAAG3O,MAAM,CAACJ,MAAM,GACjCI,MAAM,GACN,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,CAAC;IAEjE,MAAM4O,YAAY,GAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAChD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAACH,YAAY,CAAC;IACpE,MAAMI,KAAK,GAAGhC,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,GAAGjI,MAAM,CAACkJ,QAAQ,CAACQ,MAAM;MAC1C,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAC,GAAGlF,WAAW,uBAAuB,CAAC;MAC9DiF,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,WAAW,EAAE8D,QAAQ,CAAC;MAC/CmF,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,cAAc,EAAEuH,WAAW,CAAC;MACrD0B,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC;MACjDiJ,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC;MAClDiJ,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,OAAO,EAAEwK,eAAe,CAACzD,IAAI,CAAC,GAAG,CAAC,CAAC;MAC5DkC,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,OAAO,EAAE6K,KAAK,CAAC;MACxC5B,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,OAAO,EAAE4I,KAAK,CAAC;MACxCK,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,gBAAgB,EAAE2K,aAAa,CAAC;MACzD1B,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC;MACzDiJ,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,QAAQ,EAAE2C,MAAM,IAAI,gBAAgB,CAAC;MAE9D,IAAIL,SAAS,EAAE;QACb2G,OAAO,CAACE,YAAY,CAACnJ,GAAG,CAAC,YAAY,EAAEsC,SAAS,CAAC;MACnD;MAEA,MAAMiH,KAAK,GAAG,GAAG;MACjB,MAAMC,MAAM,GAAG,GAAG;MAClB,MAAMC,IAAI,GAAGnK,MAAM,CAACoK,OAAO,GAAG,CAACpK,MAAM,CAACqK,UAAU,GAAGJ,KAAK,IAAI,CAAC;MAC7D,MAAMK,GAAG,GAAGtK,MAAM,CAACuK,OAAO,GAAG,CAACvK,MAAM,CAACwK,WAAW,GAAGN,MAAM,IAAI,CAAC;MAE9D,MAAMlC,KAAK,GAAGhI,MAAM,CAACyK,IAAI,CACvBd,OAAO,CAACrE,QAAQ,CAAC,CAAC,EAClB,gBAAgB,EAChB,SAAS2E,KAAK,WAAWC,MAAM,SAASC,IAAI,QAAQG,GAAG,EACzD,CAAC;MAED,IAAI,CAACtC,KAAK,EAAE;QACVK,MAAM,CAAC,IAAIpN,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACtE;MACF;MAEA,KAAK,IAAI,CAAC8M,oBAAoB,CAC5BC,KAAK,EACLC,WAAW,EACX,WAAW,EACX,MAAOgB,GAAG,IAAK;QACb,MAAMuC,MAAM,GAAG,IAAI5B,GAAG,CAACX,GAAG,CAAC;QAC3B,MAAM4B,IAAI,GAAGW,MAAM,CAAC3B,YAAY,CAAChJ,GAAG,CAAC,MAAM,CAAC;QAC5C,MAAM4K,aAAa,GAAGD,MAAM,CAAC3B,YAAY,CAAChJ,GAAG,CAAC,OAAO,CAAC;QACtD,MAAMzC,KAAK,GAAGoN,MAAM,CAAC3B,YAAY,CAAChJ,GAAG,CAAC,OAAO,CAAC;QAC9C,MAAMiK,gBAAgB,GAAGU,MAAM,CAAC3B,YAAY,CAAChJ,GAAG,CAAC,mBAAmB,CAAC;QAErE,IAAIzC,KAAK,EAAE;UACT,MAAM,IAAIpD,YAAY,CACpB,IAAI,CAAC2M,iBAAiB,CAACvJ,KAAK,CAAC,EAC7B0M,gBAAgB,IAAI1M,KACtB,CAAC;QACH;QAEA,IAAIqN,aAAa,KAAKF,KAAK,EAAE;UAC3B,MAAM,IAAIvQ,YAAY,CACpB,eAAe,EACf,uCACF,CAAC;QACH;QAEA,IAAI,CAAC6P,IAAI,EAAE;UACT,MAAM,IAAI7P,YAAY,CACpB,aAAa,EACb,mCACF,CAAC;QACH;QAEA,MAAM,IAAI,CAAC0Q,8BAA8B,CACvCb,IAAI,EACJM,YAAY,EACZ3G,QAAQ,EACRyD,WAAW,EACXgD,eAAe,EACf3B,KAAK,EACL4B,eAAe,EACfrI,UACF,CAAC;MACH,CACF,CAAC,CACE1D,IAAI,CAAC,MAAM;QACViJ,OAAO,CAAC,CAAC;MACX,CAAC,CAAC,CACDiB,KAAK,CAAEjL,KAAc,IAAK;QACzBiK,MAAM,CAACjK,KAAK,CAAC;MACf,CAAC,CAAC;IACN,CAAC,CAAC;EACJ;EAEQgN,oBAAoBA,CAAA,EAAW;IACrC,MAAMO,KAAK,GAAG,IAAIxE,UAAU,CAAC,EAAE,CAAC;IAChCoC,MAAM,CAACqC,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,MAAMpB,IAAI,GAAG,MAAMnB,MAAM,CAAC4C,MAAM,CAACC,MAAM,CAAC,SAAS,EAAEH,IAAI,CAAC;IACxD,OAAO,IAAI,CAACJ,eAAe,CAAC,IAAI1E,UAAU,CAACuD,IAAI,CAAC,CAAC;EACnD;EAEQmB,eAAeA,CAACQ,KAAiB,EAAU;IACjD,MAAMC,MAAM,GAAGC,IAAI,CAAChO,MAAM,CAACiO,YAAY,CAAC,GAAGH,KAAK,CAAC,CAAC;IAClD,OAAOC,MAAM,CAAC3F,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAC1E;EAEA,MAAc+E,8BAA8BA,CAC1Cb,IAAY,EACZM,YAAoB,EACpB3G,QAAgB,EAChByD,WAAmB,EACnB7E,MAAc,EACdqJ,aAAqB,EACrBlQ,MAAgB,EAChBsG,UAAmB,EACJ;IACf,MAAM6B,WAAW,GAAG,IAAI,CAACC,uBAAuB,CAC9CvB,MAAM,EACN,IAAI,CAACpE,OAAO,CAACpB,kBACf,CAAC;IACD,MAAMgH,QAAQ,GAAG,GAAGF,WAAW,mBAAmB;IAElD,MAAMG,IAAI,GAAG,IAAIC,eAAe,CAAC;MAC/BC,SAAS,EAAEP,QAAQ;MACnBqG,IAAI;MACJ6B,YAAY,EAAEzE,WAAW;MACzBjD,UAAU,EAAE,oBAAoB;MAChC2H,aAAa,EAAExB;IACjB,CAAC,CAAC;IAEF,MAAMjG,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;IACrD,IAAIrC,UAAU,KAAKhH,SAAS,EAAE;MAC5B,IAAI,CAAC+G,sBAAsB,CAACC,UAAU,CAAC;IACzC;IAEA,IAAI,CAACqC,QAAQ,CAACO,EAAE,EAAE;MAChB,MAAM,IAAIzK,YAAY,CACpB,aAAa,EACbS,iBAAiB,CAAC8J,IAAI,EAAE,mBAAmB,CAAC,IAC1C9J,iBAAiB,CAAC8J,IAAI,EAAE,OAAO,CAAC,IAChC,uBACJ,CAAC;IACH;IAEA,MAAMzI,OAAO,GAAGrB,iBAAiB,CAAC8J,IAAI,EAAE,UAAU,CAAC;IACnD,IAAI,CAACzI,OAAO,EAAE;MACZ,MAAM,IAAI9B,YAAY,CAAC,aAAa,EAAE,+BAA+B,CAAC;IACxE;IAEA,MAAM6K,MAAM,GAAG,IAAI,CAACC,kBAAkB,CAAChJ,OAAO,CAAC;IAC/C,MAAM0J,OAAO,GAAG,IAAI,CAACJ,eAAe,CAACtJ,OAAO,CAAC;IAC7C,IAAIrB,iBAAiB,CAAC+K,OAAO,EAAE,OAAO,CAAC,KAAKiG,aAAa,EAAE;MACzD,MAAM,IAAIzR,YAAY,CACpB,eAAe,EACf,wCACF,CAAC;IACH;IAEA,MAAM+B,WAAW,GAAGtB,iBAAiB,CAAC8J,IAAI,EAAE,cAAc,CAAC;IAC3D,MAAMvI,YAAY,GAAGvB,iBAAiB,CAAC8J,IAAI,EAAE,eAAe,CAAC;IAE7D,IAAIvI,YAAY,EAAE;MAChB,IAAI,CAACqE,gBAAgB,CAACrE,YAAY,CAAC;IACrC;IAEA,IAAI,CAACyB,cAAc,GAAGlC,MAAM;IAC5B,IAAI,CAACkE,SAAS,CAAC/G,UAAU,EAAE+H,IAAI,CAACqC,SAAS,CAACvH,MAAM,CAAC,CAAC;IAElD,MAAM2E,IAAc,GAAG;MACrB7E,QAAQ,EAAE,WAAW;MACrBS,OAAO;MACPC,WAAW,EAAEA,WAAW,IAAIlB,SAAS;MACrCmB,YAAY,EAAEA,YAAY,IAAInB,SAAS;MACvCU,MAAM;MACNW,cAAc,EAAE,IAAI,CAACyI,iBAAiB,CAACJ,IAAI,CAAC,YAAY,CAAC,CAAC;MAC1D,GAAGM;IACL,CAAC;IACD,IAAI,CAAC9B,UAAU,CAAC7C,IAAI,CAAC;EACvB;EAEQyD,uBAAuBA,CAACvB,MAAc,EAAEqB,SAAkB,EAAU;IAC1E,MAAMmI,aAAa,GAAGxJ,MAAM,CAAClH,IAAI,CAAC,CAAC;IAEnC,MAAM2Q,aAAa,GAAGpI,SAAS,EAAEvI,IAAI,CAAC,CAAC,CAAC+J,WAAW,CAAC,CAAC;IACrD,IAAI4G,aAAa,EAAE;MACjB,IAAI,CAACnS,wBAAwB,CAAC+L,IAAI,CAACoG,aAAa,CAAC,EAAE;QACjD,MAAM,IAAI7R,YAAY,CACpB,qBAAqB,EACrB,0CACF,CAAC;MACH;MACA,MAAM8R,aAAa,GAAG,IAAI,CAACC,yBAAyB,CAClDH,aAAa,EACbC,aACF,CAAC;MACD,OAAO,WAAWA,aAAa,IAAIC,aAAa,GAAG;IACrD;IAEA,IAAI,CAACzS,wBAAwB,CAACoM,IAAI,CAACmG,aAAa,CAAC,EAAE;MACjD,MAAM,IAAI5R,YAAY,CACpB,qBAAqB,EACrB,2FACF,CAAC;IACH;IAEA,OAAO,qCAAqC4R,aAAa,GAAG;EAC9D;EAEQG,yBAAyBA,CAAC3J,MAAc,EAAE4J,MAAc,EAAU;IACxE,IAAI1S,iCAAiC,CAACmM,IAAI,CAACrD,MAAM,CAAC,EAAE;MAClD,OAAOA,MAAM;IACf;IAEA,IAAI,CAAC7I,4BAA4B,CAACkM,IAAI,CAACrD,MAAM,CAAC,EAAE;MAC9C,MAAM,IAAIpI,YAAY,CACpB,qBAAqB,EACrB,8DACF,CAAC;IACH;IAEA,MAAMiS,UAAU,GAAG,IAAI,CAACC,yBAAyB,CAACF,MAAM,CAAC;IACzD,IAAIC,UAAU,KAAKpR,SAAS,EAAE;MAC5B,MAAM,IAAIb,YAAY,CACpB,qBAAqB,EACrB,+EACF,CAAC;IACH;IAEA,OAAO,GAAGiS,UAAU,oBAAoB7J,MAAM,EAAE;EAClD;EAEQ8J,yBAAyBA,CAACF,MAAc,EAAsB;IACpE,IAAI,CAACA,MAAM,CAACG,QAAQ,CAAC3S,gCAAgC,CAAC,EAAE;MACtD,OAAOqB,SAAS;IAClB;IAEA,MAAMoR,UAAU,GAAGD,MAAM,CAACrC,KAAK,CAC7B,CAAC,EACD,CAACnQ,gCAAgC,CAAC2B,MACpC,CAAC;IACD,OAAO1B,sCAAsC,CAACgM,IAAI,CAACwG,UAAU,CAAC,GAC1DA,UAAU,GACVpR,SAAS;EACf;EAEQiK,kBAAkBA,CAACO,KAAa,EAAqB;IAC3D,IAAI;MACF,MAAMqB,OAAO,GAAG,IAAI,CAACtB,eAAe,CAACC,KAAK,CAAC;MAC3C,OAAO;QACLzJ,KAAK,EACHnB,iBAAiB,CAACiM,OAAO,EAAE,oBAAoB,CAAC,IAChDjM,iBAAiB,CAACiM,OAAO,EAAE,OAAO,CAAC;QACrCrM,IAAI,EAAEI,iBAAiB,CAACiM,OAAO,EAAE,MAAM;MACzC,CAAC;IACH,CAAC,CAAC,OAAOtJ,KAAK,EAAE;MACdC,cAAM,CAACmC,IAAI,CAAC,qCAAqC,EAAE;QACjDpC,KAAK,EAAEG,MAAM,CAACH,KAAK;MACrB,CAAC,CAAC;MACF,OAAO,CAAC,CAAC;IACX;EACF;EAEA,MAAcgP,oBAAoBA,CAAA,EAAkB;IAClD,IAAIpN,MAAM,CAACqN,OAAO,EAAE;MAClB;IACF;IAEA,IAAItS,oBAAoB,EAAE;MACxB,OAAOA,oBAAoB;IAC7B;IAEAA,oBAAoB,GAAG,IAAIoN,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC5D,MAAMiF,QAAQ,GAAG,sBAAsB;MACvC,MAAMC,cAAc,GAAGC,QAAQ,CAACC,cAAc,CAC5CH,QACF,CAA6B;MAE7B,IAAIC,cAAc,EAAE;QAClB,IAAIvN,MAAM,CAACqN,OAAO,EAAE;UAClBjF,OAAO,CAAC,CAAC;UACT;QACF;QAEAmF,cAAc,CAACG,gBAAgB,CAC7B,MAAM,EACN,MAAM;UACJtF,OAAO,CAAC,CAAC;QACX,CAAC,EACD;UACEuF,IAAI,EAAE;QACR,CACF,CAAC;QACDJ,cAAc,CAACG,gBAAgB,CAC7B,OAAO,EACP,MAAM;UACJ3S,oBAAoB,GAAGc,SAAS;UAChCwM,MAAM,CAAC,IAAIpN,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC/C,CAAC,EACD;UAAE0S,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;QACpB7F,OAAO,CAAC,CAAC;MACX,CAAC;MACDwF,MAAM,CAACM,OAAO,GAAG,MAAM;QACrBnT,oBAAoB,GAAGc,SAAS;QAChCwM,MAAM,CAAC,IAAIpN,KAAK,CAAC,0BAA0B,CAAC,CAAC;MAC/C,CAAC;MACDuS,QAAQ,CAACW,IAAI,CAACC,WAAW,CAACR,MAAM,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO7S,oBAAoB;EAC7B;EAEA,MAAcuI,UAAUA,CACtBP,OAAsB,EACtBF,UAAmB,EACJ;IACf,MAAM2B,QAAQ,GAAG,IAAI,CAACxF,OAAO,CAACnB,gBAAgB;IAE9C,IAAI,CAAC2G,QAAQ,EAAE;MACb,MAAM,IAAIvJ,KAAK,CACb,kFACF,CAAC;IACH;IAEA,MAAM,IAAI,CAACmS,oBAAoB,CAAC,CAAC;IACjC,IAAI,CAACpN,MAAM,CAACqN,OAAO,EAAE;MACnB,MAAM,IAAIpS,KAAK,CAAC,sBAAsB,CAAC;IACzC;IAEA+E,MAAM,CAACqN,OAAO,CAACgB,IAAI,CAACC,IAAI,CAAC;MACvB9J,QAAQ;MACR7H,KAAK,EAAE,CAACoG,OAAO,EAAExG,MAAM,EAAEJ,MAAM,GAC3B4G,OAAO,CAACxG,MAAM,GACd,CAAC,MAAM,EAAE,OAAO,CAAC,EACnBkL,IAAI,CAAC,GAAG,CAAC;MACX8G,WAAW,EAAEvO,MAAM,CAACkJ,QAAQ,CAACQ,MAAM;MACnCJ,KAAK,EAAEvG,OAAO,EAAEuG,KAAK;MACrBkF,QAAQ,EAAE;IACZ,CAAC,CAAC;IAEF,IAAI;MACF,MAAMtJ,QAA2B,GAAG,MAAMlF,MAAM,CAACqN,OAAO,CAACgB,IAAI,CAACI,MAAM,CAAC,CAAC;MACtE,IAAI5L,UAAU,KAAKhH,SAAS,EAAE;QAC5B,IAAI,CAAC+G,sBAAsB,CAACC,UAAU,CAAC;MACzC;MACA,MAAM3B,IAAc,GAAG;QACrB7E,QAAQ,EAAE,OAAO;QACjBS,OAAO,EAAEoI,QAAQ,CAACwJ,aAAa,CAACC,QAAQ;QACxCvN,iBAAiB,EAAE8D,QAAQ,CAACwJ,aAAa,CAAC7D,IAAI;QAC9CjO,KAAK,EAAEsI,QAAQ,CAAChE,IAAI,EAAEtE,KAAK;QAC3BvB,IAAI,EAAE6J,QAAQ,CAAChE,IAAI,EAAE7F,IAAI,GACrB,GAAG6J,QAAQ,CAAChE,IAAI,CAAC7F,IAAI,CAACuT,SAAS,IAAI1J,QAAQ,CAAChE,IAAI,CAAC7F,IAAI,CAACwT,QAAQ,EAAE,CAAC3S,IAAI,CAAC,CAAC,GACvEL;MACN,CAAC;MACD,IAAI,CAACkI,UAAU,CAAC7C,IAAI,CAAC;IACvB,CAAC,CAAC,OAAO9C,KAAK,EAAE;MACd,MAAM,IAAI,CAACoF,QAAQ,CAACpF,KAAK,CAAC;IAC5B;EACF;EAEA,MAAM0Q,aAAaA,CAAA,EAAkB;IACnCzQ,cAAM,CAAC4E,GAAG,CAAC,8BAA8B,CAAC;IAC1C,IAAI,CAAChE,aAAa,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC0C,YAAY,EAAE;MACrB,IAAI;QACF,MAAM,IAAI,CAACuC,cAAc,CAAC,CAAC;QAC3B7F,cAAM,CAAC4E,GAAG,CAAC,6CAA6C,CAAC;MAC3D,CAAC,CAAC,OAAOM,CAAC,EAAE;QACVlF,cAAM,CAACmC,IAAI,CAAC,yCAAyC,EAAE+C,CAAC,CAAC;MAC3D;IACF;IACA,IAAI,CAACjB,MAAM,CAAC,CAAC;EACf;EAEA2B,MAAMA,CAAA,EAAS;IACb,IAAI,CAACnF,kBAAkB,EAAE;IACzB,IAAI,CAAC6C,YAAY,GAAG9F,SAAS;IAC7B,IAAI,CAAC4C,cAAc,GAAG,EAAE;IACxB,IAAI,CAAC4F,eAAe,GAAGxI,SAAS;IAChC,IAAI,CAAC4N,mBAAmB,GAAG5N,SAAS;IACpC,IAAI,CAACgD,cAAc,GAAG,KAAK;IAC3B,IAAI,CAAC+C,eAAe,CAACnI,SAAS,CAAC;IAC/B,IAAI,CAACmI,eAAe,CAAClI,UAAU,CAAC;IAChC,IAAI,CAACkI,eAAe,CAACjI,oBAAoB,CAAC;IAC1C,IAAI,CAAC2I,MAAM,CAAC,CAAC;EACf;EAEQyB,UAAUA,CAAC7C,IAAc,EAAE;IACjC,IAAI,CAACS,YAAY,GAAGT,IAAI;IACxB,MAAM6N,aAAa,GAAG,IAAI,CAAC9N,0BAA0B,CAACC,IAAI,CAAC;IAC3D,IAAI,CAACT,SAAS,CAAChH,SAAS,EAAEgI,IAAI,CAACqC,SAAS,CAACiL,aAAa,CAAC,CAAC;IACxD,IAAI,CAACzM,MAAM,CAAC,CAAC;EACf;EAEA0M,iBAAiBA,CAACC,OAAgB,EAAQ;IACxC5Q,cAAM,CAAC6Q,UAAU,CAACD,OAAO,CAAC;EAC5B;;EAEA;EACAE,oBAAoBA,CAAC9P,OAAqC,EAAQ;IAChE,IAAI,CAACM,eAAe,GAAGN,OAAO,GAC1B,IAAI,CAACD,sBAAsB,CAACC,OAAO,CAAC,GACpCxD,SAAS;IACb,IAAI,CAACoD,aAAa,CAAC,CAAC;IACpB,IAAI,CAACqD,MAAM,CAAC,CAAC;EACf;EAEAjH,IAAI,GAAG,MAAM;EACb+T,OAAOA,CAAA,EAAG;IACR,IAAI,CAACrQ,SAAS,GAAG,IAAI;IACrB,IAAI,CAACkF,MAAM,CAAC,CAAC;IACb,IAAI,CAACvF,UAAU,GAAG,EAAE;IACpB,IAAI,CAACC,eAAe,GAAG,EAAE;EAC3B;EACA0Q,MAAMA,CAACC,KAAc,EAAE;IACrB,OAAOA,KAAK,KAAK,IAAI;EACvB;AACF;AAEO,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,IAAI/Q,OAAO,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/Auth.web.js
CHANGED
|
@@ -12,6 +12,12 @@ const STORAGE_MODE_MEMORY = "memory";
|
|
|
12
12
|
const POPUP_POLL_INTERVAL_MS = 100;
|
|
13
13
|
const POPUP_TIMEOUT_MS = 120000;
|
|
14
14
|
const WEB_STORAGE_MODES = new Set([STORAGE_MODE_SESSION, STORAGE_MODE_LOCAL, STORAGE_MODE_MEMORY]);
|
|
15
|
+
const MICROSOFT_TENANT_PATTERN = /^(common|organizations|consumers|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[A-Za-z0-9][A-Za-z0-9._-]{0,127})$/;
|
|
16
|
+
const MICROSOFT_B2C_TENANT_PATH_PATTERN = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[A-Za-z0-9][A-Za-z0-9._-]{0,127})\/[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
|
|
17
|
+
const MICROSOFT_B2C_POLICY_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
|
|
18
|
+
const MICROSOFT_B2CLOGIN_DOMAIN_SUFFIX = ".b2clogin.com";
|
|
19
|
+
const MICROSOFT_B2CLOGIN_TENANT_NAME_PATTERN = /^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/;
|
|
20
|
+
const MICROSOFT_DOMAIN_PATTERN = /^(?=.{1,253}$)(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,63}$/;
|
|
15
21
|
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"]);
|
|
16
22
|
const JWT_BASE64_URL_RE = /^[A-Za-z0-9_-]+$/;
|
|
17
23
|
const inMemoryWebStorage = new Map();
|
|
@@ -893,14 +899,39 @@ class AuthWeb {
|
|
|
893
899
|
this.updateUser(user);
|
|
894
900
|
}
|
|
895
901
|
getMicrosoftAuthBaseUrl(tenant, b2cDomain) {
|
|
896
|
-
|
|
897
|
-
|
|
902
|
+
const trimmedTenant = tenant.trim();
|
|
903
|
+
const trimmedDomain = b2cDomain?.trim().toLowerCase();
|
|
904
|
+
if (trimmedDomain) {
|
|
905
|
+
if (!MICROSOFT_DOMAIN_PATTERN.test(trimmedDomain)) {
|
|
906
|
+
throw new AuthWebError("configuration_error", "Microsoft B2C domain must be a hostname.");
|
|
907
|
+
}
|
|
908
|
+
const b2cTenantPath = this.getMicrosoftB2cTenantPath(trimmedTenant, trimmedDomain);
|
|
909
|
+
return `https://${trimmedDomain}/${b2cTenantPath}/`;
|
|
910
|
+
}
|
|
911
|
+
if (!MICROSOFT_TENANT_PATTERN.test(trimmedTenant)) {
|
|
912
|
+
throw new AuthWebError("configuration_error", "Microsoft tenant must be common, organizations, consumers, a tenant ID, or tenant domain.");
|
|
913
|
+
}
|
|
914
|
+
return `https://login.microsoftonline.com/${trimmedTenant}/`;
|
|
915
|
+
}
|
|
916
|
+
getMicrosoftB2cTenantPath(tenant, domain) {
|
|
917
|
+
if (MICROSOFT_B2C_TENANT_PATH_PATTERN.test(tenant)) {
|
|
918
|
+
return tenant;
|
|
898
919
|
}
|
|
899
|
-
if (
|
|
900
|
-
|
|
901
|
-
}
|
|
902
|
-
|
|
920
|
+
if (!MICROSOFT_B2C_POLICY_PATTERN.test(tenant)) {
|
|
921
|
+
throw new AuthWebError("configuration_error", "Microsoft B2C tenant must be a policy or tenant/policy path.");
|
|
922
|
+
}
|
|
923
|
+
const tenantName = this.getMicrosoftB2cTenantName(domain);
|
|
924
|
+
if (tenantName === undefined) {
|
|
925
|
+
throw new AuthWebError("configuration_error", "Microsoft B2C custom domains require microsoftTenant as a tenant/policy path.");
|
|
926
|
+
}
|
|
927
|
+
return `${tenantName}.onmicrosoft.com/${tenant}`;
|
|
928
|
+
}
|
|
929
|
+
getMicrosoftB2cTenantName(domain) {
|
|
930
|
+
if (!domain.endsWith(MICROSOFT_B2CLOGIN_DOMAIN_SUFFIX)) {
|
|
931
|
+
return undefined;
|
|
903
932
|
}
|
|
933
|
+
const tenantName = domain.slice(0, -MICROSOFT_B2CLOGIN_DOMAIN_SUFFIX.length);
|
|
934
|
+
return MICROSOFT_B2CLOGIN_TENANT_NAME_PATTERN.test(tenantName) ? tenantName : undefined;
|
|
904
935
|
}
|
|
905
936
|
decodeMicrosoftJwt(token) {
|
|
906
937
|
try {
|