@authing/guard-shim-react 4.4.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/guard.min.css +2 -0
- package/dist/guard.min.js +20964 -0
- package/dist/typings/example.d.ts +1 -0
- package/dist/typings/shim-antd4/index.d.ts +3 -0
- package/dist/typings/shim-react16/index.d.ts +8 -0
- package/dist/typings/shim-react18/index.d.ts +8 -0
- package/dist/typings/src/AuthClientProvider/AuthClientProvider.d.ts +6 -0
- package/dist/typings/src/AuthClientProvider/context.d.ts +6 -0
- package/dist/typings/src/AuthClientProvider/index.d.ts +1 -0
- package/dist/typings/src/Back/index.d.ts +12 -0
- package/dist/typings/src/BindTotp/businessRequest.d.ts +5 -0
- package/dist/typings/src/BindTotp/core/bindSuccess.d.ts +6 -0
- package/dist/typings/src/BindTotp/core/securityCode.d.ts +8 -0
- package/dist/typings/src/BindTotp/index.d.ts +3 -0
- package/dist/typings/src/BindTotp/interface.d.ts +20 -0
- package/dist/typings/src/ChangeLanguage/index.d.ts +9 -0
- package/dist/typings/src/ChangePassword/businessRequest.d.ts +9 -0
- package/dist/typings/src/ChangePassword/core/PasswordNotSafeReset.d.ts +6 -0
- package/dist/typings/src/ChangePassword/core/completePassword.d.ts +2 -0
- package/dist/typings/src/ChangePassword/core/firstLoginReset.d.ts +6 -0
- package/dist/typings/src/ChangePassword/core/rotateReset.d.ts +6 -0
- package/dist/typings/src/ChangePassword/index.d.ts +11 -0
- package/dist/typings/src/CompleteInfo/businessRequest.d.ts +9 -0
- package/dist/typings/src/CompleteInfo/core/completeInfo.d.ts +11 -0
- package/dist/typings/src/CompleteInfo/index.d.ts +11 -0
- package/dist/typings/src/CompleteInfo/interface.d.ts +103 -0
- package/dist/typings/src/CompleteInfo/utils.d.ts +24 -0
- package/dist/typings/src/CopyAbleText/index.d.ts +5 -0
- package/dist/typings/src/DownloadAuthenticator/index.d.ts +3 -0
- package/dist/typings/src/DownloadAuthenticator/interface.d.ts +12 -0
- package/dist/typings/src/Error/index.d.ts +6 -0
- package/dist/typings/src/Error/interface.d.ts +8 -0
- package/dist/typings/src/ForgetPassword/InputPassword/index.d.ts +3 -0
- package/dist/typings/src/ForgetPassword/core/inputIdentify.d.ts +7 -0
- package/dist/typings/src/ForgetPassword/core/resetPassword.d.ts +15 -0
- package/dist/typings/src/ForgetPassword/index.d.ts +2 -0
- package/dist/typings/src/ForgetPassword/interface.d.ts +19 -0
- package/dist/typings/src/Guard/Guard.d.ts +10 -0
- package/dist/typings/src/Guard/GuardModule/stateMachine.d.ts +38 -0
- package/dist/typings/src/Guard/authClient.d.ts +14 -0
- package/dist/typings/src/Guard/config.d.ts +17 -0
- package/dist/typings/src/Guard/core/hooks/useAgreements.d.ts +14 -0
- package/dist/typings/src/Guard/core/hooks/useGuardView.d.ts +7 -0
- package/dist/typings/src/Guard/core/hooks/useMultipleAccounts.d.ts +322 -0
- package/dist/typings/src/Guard/core/index.d.ts +7 -0
- package/dist/typings/src/Guard/core/renderContext.d.ts +8 -0
- package/dist/typings/src/Guard/core/renderModule.d.ts +11 -0
- package/dist/typings/src/Guard/core/useAppendConfig.d.ts +4 -0
- package/dist/typings/src/Guard/core/usePlugin.d.ts +3 -0
- package/dist/typings/src/Guard/event.d.ts +70 -0
- package/dist/typings/src/Guard/index.d.ts +4 -0
- package/dist/typings/src/Guard/module.d.ts +34 -0
- package/dist/typings/src/Guard/sso.d.ts +19 -0
- package/dist/typings/src/GuardButton/GuardButton.d.ts +6 -0
- package/dist/typings/src/GuardButton/index.d.ts +1 -0
- package/dist/typings/src/GuardFace/index.d.ts +16 -0
- package/dist/typings/src/GuardSelect/index.d.ts +29 -0
- package/dist/typings/src/IconFont/iconfont.d.ts +1 -0
- package/dist/typings/src/IconFont/index.d.ts +8 -0
- package/dist/typings/src/IconFont/useGuardIconfont.d.ts +1 -0
- package/dist/typings/src/IdentityBinding/IdentityBinding.d.ts +5 -0
- package/dist/typings/src/IdentityBinding/businessRequest.d.ts +36 -0
- package/dist/typings/src/IdentityBinding/index.d.ts +2 -0
- package/dist/typings/src/IdentityBinding/interface.d.ts +27 -0
- package/dist/typings/src/IdentityBindingAsk/IdentityBindingAsk.d.ts +3 -0
- package/dist/typings/src/IdentityBindingAsk/index.d.ts +2 -0
- package/dist/typings/src/IdentityBindingAsk/interface.d.ts +21 -0
- package/dist/typings/src/ImagePro/index.d.ts +15 -0
- package/dist/typings/src/InputNumber/index.d.ts +5 -0
- package/dist/typings/src/InputPassword/index.d.ts +1 -0
- package/dist/typings/src/LazyloadImage/index.d.ts +12 -0
- package/dist/typings/src/Login/codemap.d.ts +2 -0
- package/dist/typings/src/Login/core/withAD.d.ts +20 -0
- package/dist/typings/src/Login/core/withAppQrcode.d.ts +8 -0
- package/dist/typings/src/Login/core/withAuthingOtpPush/BeforeLogin.d.ts +17 -0
- package/dist/typings/src/Login/core/withAuthingOtpPush/HowBindClient.d.ts +1 -0
- package/dist/typings/src/Login/core/withAuthingOtpPush/HowGetAppLoginUrl.d.ts +1 -0
- package/dist/typings/src/Login/core/withAuthingOtpPush/HowUsePushLogin.d.ts +1 -0
- package/dist/typings/src/Login/core/withAuthingOtpPush/PendingLogin.d.ts +6 -0
- package/dist/typings/src/Login/core/withAuthingOtpPush/PushLoginGuideModal.d.ts +2 -0
- package/dist/typings/src/Login/core/withAuthingOtpPush/PushLoginGuideSelector.d.ts +8 -0
- package/dist/typings/src/Login/core/withAuthingOtpPush/index.d.ts +2 -0
- package/dist/typings/src/Login/core/withAuthingOtpPush/types.d.ts +28 -0
- package/dist/typings/src/Login/core/withLDAP.d.ts +21 -0
- package/dist/typings/src/Login/core/withPassword/FormItemAccount.d.ts +6 -0
- package/dist/typings/src/Login/core/withPassword/GraphicVerifyCode.d.ts +7 -0
- package/dist/typings/src/Login/core/withPassword/InputAccount.d.ts +7 -0
- package/dist/typings/src/Login/core/withPassword/index.d.ts +27 -0
- package/dist/typings/src/Login/core/withVerifyCode/FormItemIdentify.d.ts +11 -0
- package/dist/typings/src/Login/core/withVerifyCode/InputInternationPhone.d.ts +7 -0
- package/dist/typings/src/Login/core/withVerifyCode/VirtualDropdown.d.ts +12 -0
- package/dist/typings/src/Login/core/withVerifyCode/index.d.ts +3 -0
- package/dist/typings/src/Login/core/withVerifyCode/inputIdentify.d.ts +7 -0
- package/dist/typings/src/Login/core/withWechatMiniQrcode.d.ts +10 -0
- package/dist/typings/src/Login/core/withWechatmpQrcode.d.ts +13 -0
- package/dist/typings/src/Login/hooks/useLoginMultiple.d.ts +64 -0
- package/dist/typings/src/Login/index.d.ts +5 -0
- package/dist/typings/src/Login/interface.d.ts +41 -0
- package/dist/typings/src/Login/multipleAccounts/index.d.ts +22 -0
- package/dist/typings/src/Login/multipleAccounts/panel.d.ts +46 -0
- package/dist/typings/src/Login/resetAccountName/businessRequest.d.ts +6 -0
- package/dist/typings/src/Login/resetAccountName/index.d.ts +3 -0
- package/dist/typings/src/Login/socialLogin/IdpButton/index.d.ts +1 -0
- package/dist/typings/src/Login/socialLogin/index.d.ts +18 -0
- package/dist/typings/src/Login/socialLogin/postMessage.d.ts +7 -0
- package/dist/typings/src/MFA/VerifyCodeInput/VerifyCodeFormItem.d.ts +8 -0
- package/dist/typings/src/MFA/VerifyCodeInput/index.d.ts +14 -0
- package/dist/typings/src/MFA/businessRequest.d.ts +46 -0
- package/dist/typings/src/MFA/codemap.d.ts +2 -0
- package/dist/typings/src/MFA/context.d.ts +7 -0
- package/dist/typings/src/MFA/core/email.d.ts +23 -0
- package/dist/typings/src/MFA/core/face.d.ts +1 -0
- package/dist/typings/src/MFA/core/face_deps.d.ts +11 -0
- package/dist/typings/src/MFA/core/sms.d.ts +28 -0
- package/dist/typings/src/MFA/core/totp.d.ts +20 -0
- package/dist/typings/src/MFA/index.d.ts +3 -0
- package/dist/typings/src/MFA/interface.d.ts +43 -0
- package/dist/typings/src/MFA/mfaMethods/index.d.ts +8 -0
- package/dist/typings/src/NeedHelpView/core/describeQuestions.d.ts +7 -0
- package/dist/typings/src/NeedHelpView/index.d.ts +1 -0
- package/dist/typings/src/NewSubmitSuccess/index.d.ts +2 -0
- package/dist/typings/src/NewSubmitSuccess/interface.d.ts +19 -0
- package/dist/typings/src/Qrcode/UiQrCode.d.ts +51 -0
- package/dist/typings/src/Qrcode/WorkQrCode.d.ts +41 -0
- package/dist/typings/src/Qrcode/hooks/useImage.d.ts +4 -0
- package/dist/typings/src/Qrcode/hooks/usePostQrCode.d.ts +72 -0
- package/dist/typings/src/Qrcode/hooks/usePreQrCode.d.ts +31 -0
- package/dist/typings/src/Qrcode/hooks/useStatus.d.ts +8 -0
- package/dist/typings/src/Qrcode/index.d.ts +7 -0
- package/dist/typings/src/RecoveryCode/businessRequest.d.ts +5 -0
- package/dist/typings/src/RecoveryCode/core/saveCode.d.ts +5 -0
- package/dist/typings/src/RecoveryCode/core/useCode.d.ts +7 -0
- package/dist/typings/src/RecoveryCode/index.d.ts +5 -0
- package/dist/typings/src/RecoveryCode/interface.d.ts +8 -0
- package/dist/typings/src/Register/codemap.d.ts +2 -0
- package/dist/typings/src/Register/components/Agreements/index.d.ts +11 -0
- package/dist/typings/src/Register/core/WithCode.d.ts +17 -0
- package/dist/typings/src/Register/core/WithEmail.d.ts +13 -0
- package/dist/typings/src/Register/core/WithEmailCode.d.ts +11 -0
- package/dist/typings/src/Register/core/WithPhone.d.ts +10 -0
- package/dist/typings/src/Register/index.d.ts +2 -0
- package/dist/typings/src/Register/interface.d.ts +25 -0
- package/dist/typings/src/Register/utils.d.ts +1 -0
- package/dist/typings/src/SelectAccount/index.d.ts +2 -0
- package/dist/typings/src/SelfUnlock/core/selfUnlock.d.ts +8 -0
- package/dist/typings/src/SelfUnlock/index.d.ts +2 -0
- package/dist/typings/src/SelfUnlock/interface.d.ts +15 -0
- package/dist/typings/src/SendCode/SendCodeBtn.d.ts +10 -0
- package/dist/typings/src/SendCode/SendCodeByEmail.d.ts +13 -0
- package/dist/typings/src/SendCode/SendCodeByPhone.d.ts +17 -0
- package/dist/typings/src/SendCode/index.d.ts +9 -0
- package/dist/typings/src/ShieldSpin/index.d.ts +6 -0
- package/dist/typings/src/SingleComponent/SingleComponent.d.ts +2 -0
- package/dist/typings/src/SingleComponent/index.d.ts +3 -0
- package/dist/typings/src/SubmitButton/index.d.ts +10 -0
- package/dist/typings/src/SubmitSuccess/index.d.ts +2 -0
- package/dist/typings/src/SubmitSuccess/interface.d.ts +17 -0
- package/dist/typings/src/TenantPortalSelect/index.d.ts +2 -0
- package/dist/typings/src/TenantPortalSelect/interface.d.ts +32 -0
- package/dist/typings/src/Type/application.d.ts +336 -0
- package/dist/typings/src/Type/index.d.ts +85 -0
- package/dist/typings/src/UploadImage/index.d.ts +5 -0
- package/dist/typings/src/ValidatorRules/PasswordFormItem.d.ts +8 -0
- package/dist/typings/src/ValidatorRules/ValidatorFormItem.d.ts +8 -0
- package/dist/typings/src/ValidatorRules/index.d.ts +33 -0
- package/dist/typings/src/ValidatorRules/useCheckRepeat.d.ts +1 -0
- package/dist/typings/src/VerifyCodeInput/index.d.ts +10 -0
- package/dist/typings/src/_utils/GuardErrorCode.d.ts +11 -0
- package/dist/typings/src/_utils/appendConfig.d.ts +4 -0
- package/dist/typings/src/_utils/clipboard.d.ts +1 -0
- package/dist/typings/src/_utils/compute.d.ts +19 -0
- package/dist/typings/src/_utils/config/index.d.ts +110 -0
- package/dist/typings/src/_utils/context.d.ts +165 -0
- package/dist/typings/src/_utils/corsVerification.d.ts +1 -0
- package/dist/typings/src/_utils/countryList.d.ts +7 -0
- package/dist/typings/src/_utils/errorFace.d.ts +12 -0
- package/dist/typings/src/_utils/facePlugin/index.d.ts +4 -0
- package/dist/typings/src/_utils/facePlugin/interface.d.ts +5 -0
- package/dist/typings/src/_utils/flowHandleStorage.d.ts +4 -0
- package/dist/typings/src/_utils/getCaptchaUrl.d.ts +1 -0
- package/dist/typings/src/_utils/getVersion.d.ts +1 -0
- package/dist/typings/src/_utils/guardDocument.d.ts +3 -0
- package/dist/typings/src/_utils/guardHttp.d.ts +27 -0
- package/dist/typings/src/_utils/hooks/index.d.ts +43 -0
- package/dist/typings/src/_utils/http.d.ts +33 -0
- package/dist/typings/src/_utils/index.d.ts +102 -0
- package/dist/typings/src/_utils/initAppId.d.ts +7 -0
- package/dist/typings/src/_utils/locales/en-us/index.d.ts +4 -0
- package/dist/typings/src/_utils/locales/index.d.ts +9 -0
- package/dist/typings/src/_utils/locales/ja-jp/index.d.ts +4 -0
- package/dist/typings/src/_utils/locales/zh-cn/index.d.ts +4 -0
- package/dist/typings/src/_utils/locales/zh-tw/index.d.ts +4 -0
- package/dist/typings/src/_utils/logger/index.d.ts +15 -0
- package/dist/typings/src/_utils/logger/interface.d.ts +5 -0
- package/dist/typings/src/_utils/popupCenter.d.ts +9 -0
- package/dist/typings/src/_utils/responseManagement/index.d.ts +4 -0
- package/dist/typings/src/_utils/responseManagement/interface.d.ts +25 -0
- package/dist/typings/src/_utils/tenant.d.ts +19 -0
- package/dist/typings/src/_utils/useErrorText.d.ts +5 -0
- package/dist/typings/src/index.d.ts +6 -0
- package/package.json +17 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { React } from 'shim-react';
|
|
2
|
+
import { ButtonProps } from 'shim-antd';
|
|
3
|
+
interface SubmitButtonProps extends ButtonProps {
|
|
4
|
+
text?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
onClick?: any;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<SubmitButtonProps, keyof SubmitButtonProps> & React.RefAttributes<unknown>>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { GuardModuleType } from '../Guard';
|
|
2
|
+
import { IG2Config, IG2Events, IG2FCViewProps } from '../Type';
|
|
3
|
+
export interface SubmitSuccessEvents extends IG2Events {
|
|
4
|
+
}
|
|
5
|
+
export interface SubmitSuccessConfig extends IG2Config {
|
|
6
|
+
}
|
|
7
|
+
export interface SubmitSuccessInitData {
|
|
8
|
+
title?: string;
|
|
9
|
+
message?: string;
|
|
10
|
+
text?: string;
|
|
11
|
+
countDesc?: string;
|
|
12
|
+
changeModule?: GuardModuleType;
|
|
13
|
+
}
|
|
14
|
+
export interface GuardSubmitSuccessViewProps extends IG2FCViewProps, SubmitSuccessEvents {
|
|
15
|
+
config: SubmitSuccessConfig;
|
|
16
|
+
initData?: SubmitSuccessInitData;
|
|
17
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AvatarProps } from 'shim-antd';
|
|
2
|
+
import { AuthenticationClient, IG2Events, User } from '../Type';
|
|
3
|
+
export interface TenantPortalListType {
|
|
4
|
+
tenantName: string;
|
|
5
|
+
tenantId: string;
|
|
6
|
+
tenantLogo: string;
|
|
7
|
+
host: string;
|
|
8
|
+
description: string;
|
|
9
|
+
/** 是否为用户池 */
|
|
10
|
+
isUserPool: boolean;
|
|
11
|
+
userName?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface TenantPortalSelectType extends Omit<TenantPortalListType, 'userName'> {
|
|
14
|
+
}
|
|
15
|
+
/** 租户门户选择状态机返回数据类型 */
|
|
16
|
+
export interface TenantPortalDataType {
|
|
17
|
+
title: string;
|
|
18
|
+
description: string;
|
|
19
|
+
logo: string;
|
|
20
|
+
list: TenantPortalListType[];
|
|
21
|
+
}
|
|
22
|
+
export interface TenantPortalDataItem extends TenantPortalListType {
|
|
23
|
+
avatar?: AvatarProps;
|
|
24
|
+
extra?: React.ReactNode;
|
|
25
|
+
title?: string;
|
|
26
|
+
}
|
|
27
|
+
/** 租户门户相关事件 */
|
|
28
|
+
export interface TenantPortalEvents extends IG2Events {
|
|
29
|
+
onLogin?: (user: User, authClient: AuthenticationClient) => void;
|
|
30
|
+
/** 租户门户选择回调 */
|
|
31
|
+
onTenantSelect?: (data?: TenantPortalSelectType) => void;
|
|
32
|
+
}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
export type Lang = 'zh-CN' | 'en-US' | 'zh-TW' | 'ja-JP';
|
|
2
|
+
import { PasswordStrength } from '../_utils';
|
|
3
|
+
export * from 'authing-js-sdk';
|
|
4
|
+
export declare enum LoginMethods {
|
|
5
|
+
LDAP = "ldap",
|
|
6
|
+
AppQr = "app-qrcode",
|
|
7
|
+
Password = "password",
|
|
8
|
+
PhoneCode = "phone-code",
|
|
9
|
+
WxMinQr = "wechat-miniprogram-qrcode",
|
|
10
|
+
AD = "ad",
|
|
11
|
+
WechatMpQrcode = "wechatmp-qrcode",
|
|
12
|
+
AuthingOtpPush = "authing-otp-push"
|
|
13
|
+
}
|
|
14
|
+
export declare enum OIDCConnectionMode {
|
|
15
|
+
FRONT_CHANNEL = "FRONT_CHANNEL",
|
|
16
|
+
BACK_CHANNEL = "BACK_CHANNEL"
|
|
17
|
+
}
|
|
18
|
+
export declare enum SocialConnectionProvider {
|
|
19
|
+
ALIPAY = "alipay",
|
|
20
|
+
GOOGLE = "google",
|
|
21
|
+
WECHATPC = "wechat:pc",
|
|
22
|
+
WECHATMP = "wechat:webpage-authorization",
|
|
23
|
+
WECHAT_MINIPROGRAM = "wechat:miniprogram:default",
|
|
24
|
+
WECHAT_MINIPROGRAM_QRCODE = "wechat:miniprogram:qrconnect",
|
|
25
|
+
WECHAT_MINIPROGRAM_APPLAUNCH = "wechat:miniprogram:app-launch",
|
|
26
|
+
WECHATMOBILE = "wechat:mobile",
|
|
27
|
+
GITHUB = "github",
|
|
28
|
+
QQ = "qq",
|
|
29
|
+
WECHATWORK_ADDRESS_BOOK = "wechatwork:addressbook",
|
|
30
|
+
WECHATWORK_CORP_QRCONNECT = "wechatwork:corp:qrconnect",
|
|
31
|
+
WECHATWORK_SERVICEPROVIDER_QRCONNECT = "wechatwork:service-provider:qrconnect",
|
|
32
|
+
DINGTALK = "dingtalk",
|
|
33
|
+
WEIBO = "weibo",
|
|
34
|
+
APPLE = "apple",
|
|
35
|
+
APPLE_WEB = "apple:web",
|
|
36
|
+
LARK_PUBLIC = "lark-public",
|
|
37
|
+
LARK_INTERNAL = "lark-internal",
|
|
38
|
+
BAIDU = "baidu",
|
|
39
|
+
LINKEDIN = "linkedin",
|
|
40
|
+
SLACK = "slack",
|
|
41
|
+
YIDUN = "yidun",
|
|
42
|
+
QINGCLOUD = "qingcloud",
|
|
43
|
+
FACEBOOK = "facebook"
|
|
44
|
+
}
|
|
45
|
+
export declare enum Protocol {
|
|
46
|
+
AD = "ad",
|
|
47
|
+
CAS = "cas",
|
|
48
|
+
LDAP = "ldap",
|
|
49
|
+
OIDC = "oidc",
|
|
50
|
+
SAML = "saml",
|
|
51
|
+
OAUTH = "oauth",
|
|
52
|
+
AZURE_AD = "azure-ad",
|
|
53
|
+
AD_KERBEROS = "ad-kerberos"
|
|
54
|
+
}
|
|
55
|
+
export interface IOAuthConnectionConfig {
|
|
56
|
+
authEndPoint: string;
|
|
57
|
+
tokenEndPoint: string;
|
|
58
|
+
scope: string;
|
|
59
|
+
clientId: string;
|
|
60
|
+
clientSecret: string;
|
|
61
|
+
authUrlTemplate: string;
|
|
62
|
+
codeToTokenScript: string;
|
|
63
|
+
tokenToUserInfoScript: string;
|
|
64
|
+
tokenToUserInfoScriptFuncId: string;
|
|
65
|
+
codeToTokenScriptFuncId: string;
|
|
66
|
+
authUrl?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface IAzureAdConnectionConfig {
|
|
69
|
+
microsoftAzureAdDomain: string;
|
|
70
|
+
clientId: string;
|
|
71
|
+
syncUserProfileOnLogin: string;
|
|
72
|
+
emailVerifiedDefault: boolean;
|
|
73
|
+
authorizationUrl: string;
|
|
74
|
+
callbackUrl: string;
|
|
75
|
+
}
|
|
76
|
+
export interface ISamlConnectionConfig {
|
|
77
|
+
signInEndPoint: string;
|
|
78
|
+
samlRequest?: string;
|
|
79
|
+
samlIdpCert: string;
|
|
80
|
+
samlSpCert: string;
|
|
81
|
+
samlSpKey: string;
|
|
82
|
+
signOutEndPoint: string;
|
|
83
|
+
signSamlRequest: boolean;
|
|
84
|
+
signatureAlgorithm: string;
|
|
85
|
+
digestAlgorithm: string;
|
|
86
|
+
protocolBinding: string;
|
|
87
|
+
}
|
|
88
|
+
export interface ICasConnectionConfig {
|
|
89
|
+
casConnectionLoginUrl: string;
|
|
90
|
+
}
|
|
91
|
+
export interface SocialConnectionItem {
|
|
92
|
+
name: string;
|
|
93
|
+
name_en: string;
|
|
94
|
+
displayName: string;
|
|
95
|
+
logo: string;
|
|
96
|
+
description: string;
|
|
97
|
+
identifier: string;
|
|
98
|
+
provider: SocialConnectionProvider;
|
|
99
|
+
authorizationUrl: string;
|
|
100
|
+
tooltip: Record<Lang, string>;
|
|
101
|
+
}
|
|
102
|
+
export declare enum RegisterMethods {
|
|
103
|
+
Email = "email",
|
|
104
|
+
Phone = "phone",
|
|
105
|
+
EmailCode = "emailCode"
|
|
106
|
+
}
|
|
107
|
+
export declare enum RegisterSortMethods {
|
|
108
|
+
Email = "email-password",
|
|
109
|
+
Phone = "phone-code",
|
|
110
|
+
EmailCode = "email-code"
|
|
111
|
+
}
|
|
112
|
+
export interface QrCodeItem {
|
|
113
|
+
id: string;
|
|
114
|
+
title: string;
|
|
115
|
+
isDefault?: boolean;
|
|
116
|
+
}
|
|
117
|
+
export type QrcodeTabsSettings = Record<LoginMethods, Array<QrCodeItem>>;
|
|
118
|
+
export interface OidcClientMetadata {
|
|
119
|
+
grant_types: string[];
|
|
120
|
+
client_id: string;
|
|
121
|
+
redirect_uris: string[];
|
|
122
|
+
scope: string;
|
|
123
|
+
response_types: ResponseType[];
|
|
124
|
+
}
|
|
125
|
+
export interface OIDCConnectionConfig {
|
|
126
|
+
issuerUrl: string;
|
|
127
|
+
authorizationEdpoint: string;
|
|
128
|
+
responseType: string;
|
|
129
|
+
mode: OIDCConnectionMode;
|
|
130
|
+
clientId: string;
|
|
131
|
+
clientSecret: string;
|
|
132
|
+
scopes: string;
|
|
133
|
+
redirectUri: string;
|
|
134
|
+
}
|
|
135
|
+
export interface InternalExtendsField {
|
|
136
|
+
type: 'internal';
|
|
137
|
+
name: string;
|
|
138
|
+
label: string;
|
|
139
|
+
inputType: string;
|
|
140
|
+
required: boolean;
|
|
141
|
+
validateRules: any[];
|
|
142
|
+
}
|
|
143
|
+
export interface UserExtendsField {
|
|
144
|
+
type: 'user';
|
|
145
|
+
id: string;
|
|
146
|
+
name: string;
|
|
147
|
+
label: string;
|
|
148
|
+
inputType: string;
|
|
149
|
+
required: boolean;
|
|
150
|
+
validateRules: any[];
|
|
151
|
+
}
|
|
152
|
+
export type ExtendsField = InternalExtendsField | UserExtendsField;
|
|
153
|
+
export interface ApplicationPasswordTabConfig {
|
|
154
|
+
enabledLoginMethods?: PasswordLoginMethods[];
|
|
155
|
+
validRegisterMethods?: string[];
|
|
156
|
+
validLoginMethods?: string[];
|
|
157
|
+
}
|
|
158
|
+
export interface ApplicationVerifyCodeTabConfig {
|
|
159
|
+
enabledLoginMethods: VerifyLoginMethods[];
|
|
160
|
+
validRegisterMethods?: string[];
|
|
161
|
+
validLoginMethods?: string[];
|
|
162
|
+
}
|
|
163
|
+
export interface Agreement {
|
|
164
|
+
id: number;
|
|
165
|
+
title: string;
|
|
166
|
+
required: boolean;
|
|
167
|
+
lang: Lang;
|
|
168
|
+
availableAt?: number;
|
|
169
|
+
}
|
|
170
|
+
export type PasswordLoginMethods = 'username-password' | 'email-password' | 'phone-password';
|
|
171
|
+
export type VerifyLoginMethods = 'email-code' | 'phone-code';
|
|
172
|
+
export type ComplateFiledsPlace = 'register' | 'login';
|
|
173
|
+
export interface TabFieldsI18nItem {
|
|
174
|
+
key: string;
|
|
175
|
+
label: string;
|
|
176
|
+
labelEn: string;
|
|
177
|
+
i18n: {
|
|
178
|
+
[propName in Lang]?: string;
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
interface LoginTypeI18nProps {
|
|
182
|
+
tab: {
|
|
183
|
+
default: string;
|
|
184
|
+
i18n: {
|
|
185
|
+
[propName: string]: string;
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
export interface ApplicationConfig {
|
|
190
|
+
id: string;
|
|
191
|
+
allowedOrigins: string[];
|
|
192
|
+
corsWhitelist: string[];
|
|
193
|
+
cdnBase: string;
|
|
194
|
+
userPoolId: string;
|
|
195
|
+
rootUserPoolId: string;
|
|
196
|
+
publicKey: string;
|
|
197
|
+
internationalSmsConfig?: {
|
|
198
|
+
enabled: boolean;
|
|
199
|
+
defaultISOType: string;
|
|
200
|
+
};
|
|
201
|
+
css: string;
|
|
202
|
+
customLoading?: string;
|
|
203
|
+
name: string;
|
|
204
|
+
logo: string;
|
|
205
|
+
description?: string;
|
|
206
|
+
redirectUris: string[];
|
|
207
|
+
registerDisabled: boolean;
|
|
208
|
+
mergeAdAndAccountPasswordLogin: boolean;
|
|
209
|
+
registerTabs: {
|
|
210
|
+
list: string[];
|
|
211
|
+
default: string;
|
|
212
|
+
title: {
|
|
213
|
+
[x: string]: string;
|
|
214
|
+
};
|
|
215
|
+
};
|
|
216
|
+
registerTabsConfig: {
|
|
217
|
+
list: string[];
|
|
218
|
+
default: string;
|
|
219
|
+
title: {
|
|
220
|
+
[x: string]: string;
|
|
221
|
+
};
|
|
222
|
+
registerTypeConfig: {
|
|
223
|
+
emailRegisterType?: RegisterMethods[];
|
|
224
|
+
phoneRegisterType?: RegisterMethods[];
|
|
225
|
+
};
|
|
226
|
+
};
|
|
227
|
+
qrcodeTabsSettings: QrcodeTabsSettings;
|
|
228
|
+
qrCodeSortConfig: {
|
|
229
|
+
loginMethodsSort?: string[];
|
|
230
|
+
};
|
|
231
|
+
loginTabs: {
|
|
232
|
+
list: string[];
|
|
233
|
+
default: string;
|
|
234
|
+
defaultV2?: string;
|
|
235
|
+
title: {
|
|
236
|
+
[x: string]: string;
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
socialConnections: SocialConnectionItem[];
|
|
240
|
+
complateFiledsPlace: ComplateFiledsPlace[];
|
|
241
|
+
extendsFieldsEnabled: boolean;
|
|
242
|
+
extendsFields: ExtendsField[];
|
|
243
|
+
extendsFieldsI18n?: {
|
|
244
|
+
[key: string]: Record<Lang, {
|
|
245
|
+
enabled: boolean;
|
|
246
|
+
value: string;
|
|
247
|
+
}>;
|
|
248
|
+
};
|
|
249
|
+
identifier: string;
|
|
250
|
+
requestHostname: string;
|
|
251
|
+
identityProviders: {
|
|
252
|
+
identifier: string;
|
|
253
|
+
protocol: Protocol;
|
|
254
|
+
displayName: string;
|
|
255
|
+
logo: string;
|
|
256
|
+
config: ISamlConnectionConfig | OIDCConnectionConfig | ICasConnectionConfig | IAzureAdConnectionConfig | IOAuthConnectionConfig;
|
|
257
|
+
}[];
|
|
258
|
+
ssoPageComponentDisplay: {
|
|
259
|
+
autoRegisterThenLoginHintInfo: boolean;
|
|
260
|
+
forgetPasswordBtn: boolean;
|
|
261
|
+
idpBtns: boolean;
|
|
262
|
+
loginBtn: boolean;
|
|
263
|
+
loginByPhoneCodeTab: boolean;
|
|
264
|
+
loginByUserPasswordTab: boolean;
|
|
265
|
+
loginMethodNav: boolean;
|
|
266
|
+
phoneCodeInput: boolean;
|
|
267
|
+
registerBtn: boolean;
|
|
268
|
+
registerByEmailTab: boolean;
|
|
269
|
+
registerByPhoneTab: boolean;
|
|
270
|
+
registerMethodNav: boolean;
|
|
271
|
+
socialLoginBtns: boolean;
|
|
272
|
+
userPasswordInput: boolean;
|
|
273
|
+
wxMpScanTab: boolean;
|
|
274
|
+
loginMethodsI18nDisplaySettings: {
|
|
275
|
+
password?: LoginTypeI18nProps;
|
|
276
|
+
verifyCode?: LoginTypeI18nProps;
|
|
277
|
+
ad?: LoginTypeI18nProps;
|
|
278
|
+
ldap?: LoginTypeI18nProps;
|
|
279
|
+
};
|
|
280
|
+
};
|
|
281
|
+
protocol: Protocol;
|
|
282
|
+
oidcConfig: OidcClientMetadata;
|
|
283
|
+
passwordTabConfig: ApplicationPasswordTabConfig;
|
|
284
|
+
verifyCodeTabConfig?: ApplicationVerifyCodeTabConfig;
|
|
285
|
+
agreementEnabled: boolean;
|
|
286
|
+
agreements: Agreement[];
|
|
287
|
+
customPasswordStrength: any;
|
|
288
|
+
passwordStrength: PasswordStrength;
|
|
289
|
+
verifyCodeLength: number;
|
|
290
|
+
websocket: string;
|
|
291
|
+
welcomeMessage: any;
|
|
292
|
+
skipComplateFileds: boolean;
|
|
293
|
+
selfUnlockStrategy: 'captcha' | 'password-captcha';
|
|
294
|
+
defaultLanguageConfig: Lang;
|
|
295
|
+
/**
|
|
296
|
+
* 是否开启账号切换
|
|
297
|
+
*/
|
|
298
|
+
enableLoginAccountSwitch: boolean;
|
|
299
|
+
/**
|
|
300
|
+
* 是否开启注册密码补全
|
|
301
|
+
*/
|
|
302
|
+
enableCompletePassword: boolean;
|
|
303
|
+
/**
|
|
304
|
+
* 登录注册排序
|
|
305
|
+
*/
|
|
306
|
+
tabMethodsSortConfig: {
|
|
307
|
+
loginMethodsSort: string[];
|
|
308
|
+
};
|
|
309
|
+
tabMethodsFields: TabFieldsI18nItem[];
|
|
310
|
+
regexRules?: {
|
|
311
|
+
key: string;
|
|
312
|
+
appLevel: string;
|
|
313
|
+
userpoolLevel: string;
|
|
314
|
+
}[];
|
|
315
|
+
/** 是否为租户控制台应用 */
|
|
316
|
+
isTenantConsole?: boolean;
|
|
317
|
+
/** 是否默认为租户应用面板应用 */
|
|
318
|
+
isTenantDefault?: boolean;
|
|
319
|
+
/** 租户详情 */
|
|
320
|
+
tenantInfo?: Record<string, any>;
|
|
321
|
+
/** mfa 相关 */
|
|
322
|
+
mfa: {
|
|
323
|
+
faceScore: number;
|
|
324
|
+
};
|
|
325
|
+
authingOtpPushTabConfig: {
|
|
326
|
+
enabledLoginMethods: Array<string> | null;
|
|
327
|
+
validLoginMethods: Array<string> | null;
|
|
328
|
+
validRegisterMethods: Array<string> | null;
|
|
329
|
+
};
|
|
330
|
+
/** 是否开启自定义安全规则 */
|
|
331
|
+
customSecurityEnabled: boolean;
|
|
332
|
+
/** 应用的人机验证策略,始终开启、不开启、设置条件触发 */
|
|
333
|
+
appRobotVerify: 'always_enable' | 'disable' | 'condition_set';
|
|
334
|
+
/** 用户池的人机验证策略,始终开启、不开启、设置条件触发 */
|
|
335
|
+
userpoolRobotVerify: 'always_enable' | 'disable' | 'condition_set';
|
|
336
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { React } from 'shim-react';
|
|
2
|
+
import { AuthenticationClient, CommonMessage, User } from 'authing-js-sdk';
|
|
3
|
+
import { GuardModuleType } from '../Guard/module';
|
|
4
|
+
import { FacePlugin } from '../_utils/facePlugin/interface';
|
|
5
|
+
import { ApplicationConfig, Lang } from './application';
|
|
6
|
+
export * from './application';
|
|
7
|
+
export type { CommonMessage, User };
|
|
8
|
+
export declare enum GuardMode {
|
|
9
|
+
Modal = "modal",
|
|
10
|
+
Normal = "normal"
|
|
11
|
+
}
|
|
12
|
+
export interface IG2FCProps extends IG2Events {
|
|
13
|
+
appId?: string;
|
|
14
|
+
tenantId?: string;
|
|
15
|
+
config?: Partial<IG2Config>;
|
|
16
|
+
visible?: boolean;
|
|
17
|
+
initData?: any;
|
|
18
|
+
appendConfig?: GuardAppendConfig;
|
|
19
|
+
facePlugin?: FacePlugin;
|
|
20
|
+
authClient?: AuthenticationClient;
|
|
21
|
+
}
|
|
22
|
+
export interface GuardAppendConfig {
|
|
23
|
+
internalRequest?: boolean;
|
|
24
|
+
singleComponent?: boolean;
|
|
25
|
+
unAuthFlow?: boolean;
|
|
26
|
+
publicConfig?: ApplicationConfig;
|
|
27
|
+
pageConfig?: GuardPageConfig;
|
|
28
|
+
}
|
|
29
|
+
export interface IG2FCViewProps extends IG2FCProps {
|
|
30
|
+
config: IG2Config;
|
|
31
|
+
}
|
|
32
|
+
export interface IG2Config {
|
|
33
|
+
title?: string;
|
|
34
|
+
logo?: string;
|
|
35
|
+
lang?: string;
|
|
36
|
+
langRange?: Lang[];
|
|
37
|
+
host: string;
|
|
38
|
+
isHost?: boolean;
|
|
39
|
+
mode: GuardMode;
|
|
40
|
+
clickCloseable: boolean;
|
|
41
|
+
escCloseable: boolean;
|
|
42
|
+
userpool?: string;
|
|
43
|
+
contentCss?: string;
|
|
44
|
+
target?: HTMLElement | string;
|
|
45
|
+
style?: React.CSSProperties;
|
|
46
|
+
__internalRequest__?: boolean;
|
|
47
|
+
__singleComponent__?: boolean;
|
|
48
|
+
__unAuthFlow__?: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface IG2Events {
|
|
51
|
+
onLoad?: (authClient: AuthenticationClient) => void;
|
|
52
|
+
onLoadError?: (error: any) => void;
|
|
53
|
+
onClose?: () => void;
|
|
54
|
+
onLangChange?: (lang: Lang) => void;
|
|
55
|
+
__changeModule?: (moduleName: GuardModuleType, initData?: any) => void;
|
|
56
|
+
}
|
|
57
|
+
export declare const getDefaultG2Config: () => IG2Config;
|
|
58
|
+
export declare const LanguageMap: any;
|
|
59
|
+
export declare enum InputMethod {
|
|
60
|
+
EmailCode = "email-code",
|
|
61
|
+
PhoneCode = "phone-code"
|
|
62
|
+
}
|
|
63
|
+
export declare enum GuardPageSene {
|
|
64
|
+
Global = "global"
|
|
65
|
+
}
|
|
66
|
+
export interface GuardPageConfig {
|
|
67
|
+
[GuardPageSene.Global]: {
|
|
68
|
+
showChangeLanguage: boolean;
|
|
69
|
+
defaultLanguage: Lang | 'browser';
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export declare enum EmailScene {
|
|
73
|
+
WELCOME_EMAIL = "WELCOME_EMAIL",
|
|
74
|
+
FIRST_CREATED_USER = "FIRST_CREATED_USER",
|
|
75
|
+
REGISTER_VERIFY_CODE = "REGISTER_VERIFY_CODE",
|
|
76
|
+
LOGIN_VERIFY_CODE = "LOGIN_VERIFY_CODE",
|
|
77
|
+
MFA_VERIFY_CODE = "MFA_VERIFY_CODE",
|
|
78
|
+
INFORMATION_COMPLETION_VERIFY_CODE = "INFORMATION_COMPLETION_VERIFY_CODE",
|
|
79
|
+
FIRST_EMAIL_LOGIN_VERIFY = "FIRST_EMAIL_LOGIN_VERIFY",
|
|
80
|
+
CONSOLE_CONDUCTED_VERIFY = "CONSOLE_CONDUCTED_VERIFY",
|
|
81
|
+
RESET_PASSWORD_VERIFY_CODE = "RESET_PASSWORD_VERIFY_CODE",
|
|
82
|
+
EMAIL_BIND_VERIFY_CODE = "EMAIL_BIND_VERIFY_CODE",
|
|
83
|
+
EMAIL_UNBIND_VERIFY_CODE = "EMAIL_UNBIND_VERIFY_CODE",
|
|
84
|
+
SELF_UNLOCKING_VERIFY_CODE = "SELF_UNLOCKING_VERIFY_CODE"
|
|
85
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FormItemProps } from 'shim-antd';
|
|
2
|
+
import { React } from 'shim-react';
|
|
3
|
+
export interface PasswordFormItemProps extends FormItemProps {
|
|
4
|
+
}
|
|
5
|
+
export interface ExPasswordFormItemProps extends PasswordFormItemProps {
|
|
6
|
+
fieldRequiredRuleMessage?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const PasswordFormItem: React.FC<ExPasswordFormItemProps>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { React } from 'shim-react';
|
|
2
|
+
import { ValidatorFormItemProps } from '.';
|
|
3
|
+
export declare const EmailFormItem: React.FC<ValidatorFormItemProps>;
|
|
4
|
+
export declare const PhoneFormItem: React.FC<ValidatorFormItemProps>;
|
|
5
|
+
export declare const UserNameFormItem: React.FC<ValidatorFormItemProps>;
|
|
6
|
+
export declare const CustomNameFormItem: React.FC<ValidatorFormItemProps & {
|
|
7
|
+
method: string;
|
|
8
|
+
}>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { FormInstance } from 'shim-antd/lib/form';
|
|
2
|
+
import { Form, FormItemProps } from 'shim-antd';
|
|
3
|
+
import { PasswordFormItem } from './PasswordFormItem';
|
|
4
|
+
import { EmailFormItem, PhoneFormItem, UserNameFormItem, CustomNameFormItem } from './ValidatorFormItem';
|
|
5
|
+
export * from './PasswordFormItem';
|
|
6
|
+
export * from './ValidatorFormItem';
|
|
7
|
+
export * from './useCheckRepeat';
|
|
8
|
+
export interface ValidatorFormItemProps extends FormItemProps {
|
|
9
|
+
form?: FormInstance;
|
|
10
|
+
checkRepeat?: boolean;
|
|
11
|
+
checkExist?: boolean;
|
|
12
|
+
areaCode?: string;
|
|
13
|
+
/**
|
|
14
|
+
* 控制内部FormItem组件关于pattern的校验规则
|
|
15
|
+
*/
|
|
16
|
+
isCheckPattern?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface ValidatorFormItemMetaProps extends ValidatorFormItemProps {
|
|
19
|
+
method: 'email' | 'phone' | 'username' | string;
|
|
20
|
+
}
|
|
21
|
+
export interface ICheckProps {
|
|
22
|
+
check: (values: any) => void;
|
|
23
|
+
}
|
|
24
|
+
type InternalFormItemType = typeof Form.Item;
|
|
25
|
+
interface FormItemInterface extends InternalFormItemType {
|
|
26
|
+
Password: typeof PasswordFormItem;
|
|
27
|
+
Email: typeof EmailFormItem;
|
|
28
|
+
Phone: typeof PhoneFormItem;
|
|
29
|
+
UserName: typeof UserNameFormItem;
|
|
30
|
+
CustomName: typeof CustomNameFormItem;
|
|
31
|
+
}
|
|
32
|
+
declare const CustomFormItem: FormItemInterface;
|
|
33
|
+
export default CustomFormItem;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useCheckRepeat: (checkFn: (value: any, resolve: (value: unknown) => void, reject: (reason?: any) => void) => void) => (_: any, value: any) => Promise<unknown>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { React } from 'shim-react';
|
|
2
|
+
import './style.less';
|
|
3
|
+
interface VerifyCodeInputProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
verifyCode: string[];
|
|
5
|
+
setVerifyCode: (code: string[]) => void;
|
|
6
|
+
length?: number;
|
|
7
|
+
onEnter?: Function;
|
|
8
|
+
}
|
|
9
|
+
export declare const VerifyCodeInput: React.FC<VerifyCodeInputProps>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum ErrorCode {
|
|
2
|
+
OTP_MFA_CODE = 1635,
|
|
3
|
+
APP_MFA_CODE = 1636,
|
|
4
|
+
INPUT_CAPTCHACODE = 2000,
|
|
5
|
+
USER_EXISTENCE = 2026,
|
|
6
|
+
LOGIN_INVALID = 2021,
|
|
7
|
+
PASSWORD_ERROR = 2333,
|
|
8
|
+
USER_NOT_EXIST = 2004,
|
|
9
|
+
MULTIPLE_ERROR_LOCK = 2057,
|
|
10
|
+
ACCOUNT_LOCK = 2005
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const copyToClipboard: (str: string) => void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { RegisterSortMethods } from '../Type';
|
|
2
|
+
export declare const assembledRequestHost: (requestHostname: string, configHost: string) => string;
|
|
3
|
+
export declare const getHundreds: (num: number) => number;
|
|
4
|
+
export declare const transformSortMethod: (method: RegisterSortMethods | string) => string;
|
|
5
|
+
export declare const isWeChatBrowser: () => boolean | null;
|
|
6
|
+
export declare const isLarkBrowser: () => boolean | null;
|
|
7
|
+
export declare const isQtWebEngine: () => boolean | null;
|
|
8
|
+
export declare const isXiaomiBrowser: () => boolean | null;
|
|
9
|
+
export declare const isDingtalkBrowser: () => boolean | null;
|
|
10
|
+
export declare const isQQBrowser: () => boolean | null;
|
|
11
|
+
export declare const isQQBuiltInBrowser: () => boolean | null;
|
|
12
|
+
export declare const isWeWorkBuiltInBrowser: () => boolean | null;
|
|
13
|
+
export declare const isEdgeBrowser: () => boolean;
|
|
14
|
+
export declare const isWeiboBrowser: () => boolean | null;
|
|
15
|
+
export declare const isAlipayBrowser: () => boolean | null;
|
|
16
|
+
export declare const isBaiduBrowser: () => boolean | null;
|
|
17
|
+
export declare const isWeComeBrowser: () => boolean;
|
|
18
|
+
export declare const isMobile: () => RegExpMatchArray | null;
|
|
19
|
+
export declare const isSpecialBrowser: () => boolean;
|