@dynamic-labs/sdk-react-core 1.1.0-alpha.2 → 1.1.0-alpha.4
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 +24 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +11 -11
- package/src/index.cjs +2 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/lib/context/DynamicContext/DynamicContext.cjs +3 -2
- package/src/lib/context/DynamicContext/DynamicContext.js +3 -2
- package/src/lib/context/DynamicContext/useDynamicContext.cjs +2 -1
- package/src/lib/context/DynamicContext/useDynamicContext.d.ts +1 -1
- package/src/lib/context/DynamicContext/useDynamicContext.js +2 -1
- package/src/lib/data/api.cjs +0 -13
- package/src/lib/data/api.d.ts +1 -2
- package/src/lib/data/api.js +2 -14
- package/src/lib/shared/consts/index.cjs +1 -0
- package/src/lib/shared/consts/index.js +1 -0
- package/src/lib/shared/types/index.d.ts +2 -1
- package/src/lib/utils/functions/getVerifyArgs/getVerifyArgs.d.ts +1 -1
- package/src/lib/utils/functions/index.d.ts +1 -0
- package/src/lib/utils/functions/isEmailValid/index.d.ts +1 -0
- package/src/lib/utils/functions/isEmailValid/isEmailValid.cjs +8 -0
- package/src/lib/utils/functions/isEmailValid/isEmailValid.d.ts +1 -0
- package/src/lib/utils/functions/isEmailValid/isEmailValid.js +4 -0
- package/src/lib/utils/functions/isProviderEnabled/isProviderEnabled.cjs +9 -1
- package/src/lib/utils/functions/isProviderEnabled/isProviderEnabled.js +9 -1
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +2 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.d.ts +1 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +2 -0
- package/src/lib/utils/hooks/useConnectWithEmailOtp/index.d.ts +1 -0
- package/src/lib/utils/hooks/useConnectWithEmailOtp/useConnectWithEmailOtp.cjs +150 -0
- package/src/lib/utils/hooks/useConnectWithEmailOtp/useConnectWithEmailOtp.d.ts +32 -0
- package/src/lib/utils/hooks/useConnectWithEmailOtp/useConnectWithEmailOtp.js +146 -0
- package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.cjs +3 -3
- package/src/lib/utils/hooks/useEmailProvider/useEmailProvider.js +3 -3
- package/src/lib/utils/hooks/useProcessNetworkConfigurations/index.d.ts +1 -0
- package/src/lib/utils/hooks/{useFetchNetworkConfigurations/useFetchNetworkConfigurations.cjs → useProcessNetworkConfigurations/useProcessNetworkConfigurations.cjs} +53 -67
- package/src/lib/utils/hooks/{useFetchNetworkConfigurations/useFetchNetworkConfigurations.d.ts → useProcessNetworkConfigurations/useProcessNetworkConfigurations.d.ts} +3 -2
- package/src/lib/utils/hooks/{useFetchNetworkConfigurations/useFetchNetworkConfigurations.js → useProcessNetworkConfigurations/useProcessNetworkConfigurations.js} +53 -67
- package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.cjs +2 -3
- package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.d.ts +0 -1
- package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.js +3 -3
- package/src/lib/views/WalletList/WalletList.cjs +5 -8
- package/src/lib/views/WalletList/WalletList.js +5 -8
- package/src/lib/views/WalletList/data.d.ts +1 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +4 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +4 -1
- package/src/lib/utils/hooks/useFetchNetworkConfigurations/index.d.ts +0 -1
- /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/index.d.ts +0 -0
- /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/mergeCustomerEvmNetworksWithServerNetworks/index.d.ts +0 -0
- /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.cjs +0 -0
- /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.d.ts +0 -0
- /package/src/lib/utils/hooks/{useFetchNetworkConfigurations → useProcessNetworkConfigurations}/utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,28 @@
|
|
|
1
1
|
|
|
2
|
+
## [1.1.0-alpha.4](https://github.com/dynamic-labs/DynamicAuth/compare/v1.1.0-alpha.3...v1.1.0-alpha.4) (2023-12-21)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* add bitcoin integration ([#4216](https://github.com/dynamic-labs/DynamicAuth/issues/4216)) ([9584f1c](https://github.com/dynamic-labs/DynamicAuth/commit/9584f1cc3133835049ad1c53da980192263b8f21))
|
|
8
|
+
* add default footer to wallet list when tos and pp not enabled ([#4224](https://github.com/dynamic-labs/DynamicAuth/issues/4224)) ([0ad81c4](https://github.com/dynamic-labs/DynamicAuth/commit/0ad81c409bcb4aafb0dc565685525d620a95efce))
|
|
9
|
+
* adds useConnectWithEmailOtp ([#4234](https://github.com/dynamic-labs/DynamicAuth/issues/4234)) ([4a4e50a](https://github.com/dynamic-labs/DynamicAuth/commit/4a4e50ac8651c2a249d5125ae6bcf49aaf49be8c))
|
|
10
|
+
|
|
11
|
+
## [1.1.0-alpha.3](https://github.com/dynamic-labs/DynamicAuth/compare/v1.1.0-alpha.2...v1.1.0-alpha.3) (2023-12-19)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* add Flow support in magic wallet connector ([#4158](https://github.com/dynamic-labs/DynamicAuth/issues/4158)) ([fbbaea7](https://github.com/dynamic-labs/DynamicAuth/commit/fbbaea76b36ceb693f6bd4f2404dfa1204e61492))
|
|
17
|
+
* add showDynamicUserProfile to DynamicContext ([#4214](https://github.com/dynamic-labs/DynamicAuth/issues/4214)) ([2aeb8e3](https://github.com/dynamic-labs/DynamicAuth/commit/2aeb8e3c45a3d9f87bd9196ea9b46927e02eb633))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* add shortname to braveevm to allow for lookups by name as well as key ([#4213](https://github.com/dynamic-labs/DynamicAuth/issues/4213)) ([969b089](https://github.com/dynamic-labs/DynamicAuth/commit/969b089be516fb57fcdc941f908c078998eb4ec0))
|
|
23
|
+
* solflare connect ([#4215](https://github.com/dynamic-labs/DynamicAuth/issues/4215)) ([9a4164e](https://github.com/dynamic-labs/DynamicAuth/commit/9a4164e53198f33ef7201cd4e1eff745a09e9701))
|
|
24
|
+
* wagmi attempt to connect to primary wallet first ([#4206](https://github.com/dynamic-labs/DynamicAuth/issues/4206)) ([9e5fc8e](https://github.com/dynamic-labs/DynamicAuth/commit/9e5fc8ef026628935ac32d3bb0c22bda35057e5d))
|
|
25
|
+
|
|
2
26
|
## [1.1.0-alpha.2](https://github.com/dynamic-labs/DynamicAuth/compare/v1.1.0-alpha.1...v1.1.0-alpha.2) (2023-12-18)
|
|
3
27
|
|
|
4
28
|
|
package/package.cjs
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var version = "1.1.0-alpha.
|
|
5
|
+
var version = "1.1.0-alpha.4";
|
|
6
6
|
var dependencies = {
|
|
7
7
|
"@dynamic-labs/iconic": "0.1.47",
|
|
8
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
8
|
+
"@dynamic-labs/sdk-api": "0.0.333",
|
|
9
9
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
10
10
|
"country-list": "2.3.0",
|
|
11
11
|
formik: "2.2.9",
|
package/package.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var version = "1.1.0-alpha.
|
|
1
|
+
var version = "1.1.0-alpha.4";
|
|
2
2
|
var dependencies = {
|
|
3
3
|
"@dynamic-labs/iconic": "0.1.47",
|
|
4
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
4
|
+
"@dynamic-labs/sdk-api": "0.0.333",
|
|
5
5
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
6
6
|
"country-list": "2.3.0",
|
|
7
7
|
formik: "2.2.9",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "1.1.0-alpha.
|
|
3
|
+
"version": "1.1.0-alpha.4",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@dynamic-labs/iconic": "0.1.47",
|
|
11
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
11
|
+
"@dynamic-labs/sdk-api": "0.0.333",
|
|
12
12
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
13
13
|
"country-list": "2.3.0",
|
|
14
14
|
"formik": "2.2.9",
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
"react-focus-lock": "2.9.2",
|
|
18
18
|
"react-i18next": "^13.2.0",
|
|
19
19
|
"yup": "0.32.11",
|
|
20
|
-
"@dynamic-labs/ethereum": "1.1.0-alpha.
|
|
21
|
-
"@dynamic-labs/logger": "1.1.0-alpha.
|
|
22
|
-
"@dynamic-labs/multi-wallet": "1.1.0-alpha.
|
|
23
|
-
"@dynamic-labs/rpc-providers": "1.1.0-alpha.
|
|
24
|
-
"@dynamic-labs/types": "1.1.0-alpha.
|
|
25
|
-
"@dynamic-labs/utils": "1.1.0-alpha.
|
|
26
|
-
"@dynamic-labs/viem-utils": "1.1.0-alpha.
|
|
27
|
-
"@dynamic-labs/wallet-book": "1.1.0-alpha.
|
|
28
|
-
"@dynamic-labs/wallet-connector-core": "1.1.0-alpha.
|
|
20
|
+
"@dynamic-labs/ethereum": "1.1.0-alpha.4",
|
|
21
|
+
"@dynamic-labs/logger": "1.1.0-alpha.4",
|
|
22
|
+
"@dynamic-labs/multi-wallet": "1.1.0-alpha.4",
|
|
23
|
+
"@dynamic-labs/rpc-providers": "1.1.0-alpha.4",
|
|
24
|
+
"@dynamic-labs/types": "1.1.0-alpha.4",
|
|
25
|
+
"@dynamic-labs/utils": "1.1.0-alpha.4",
|
|
26
|
+
"@dynamic-labs/viem-utils": "1.1.0-alpha.4",
|
|
27
|
+
"@dynamic-labs/wallet-book": "1.1.0-alpha.4",
|
|
28
|
+
"@dynamic-labs/wallet-connector-core": "1.1.0-alpha.4",
|
|
29
29
|
"eventemitter3": "5.0.1"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
package/src/index.cjs
CHANGED
|
@@ -181,6 +181,7 @@ var index$3 = require('./lib/utils/functions/walletFilters/index.cjs');
|
|
|
181
181
|
var SendBalanceContext = require('./lib/context/SendBalanceContext/SendBalanceContext.cjs');
|
|
182
182
|
require('./lib/context/FundingContext/FundingContext.cjs');
|
|
183
183
|
var useFunding = require('./lib/context/FundingContext/useFunding/useFunding.cjs');
|
|
184
|
+
var useConnectWithEmailOtp = require('./lib/utils/hooks/useConnectWithEmailOtp/useConnectWithEmailOtp.cjs');
|
|
184
185
|
|
|
185
186
|
|
|
186
187
|
|
|
@@ -342,3 +343,4 @@ exports.SortWallets = index$3.SortWallets;
|
|
|
342
343
|
exports.UniswapFilter = index$3.UniswapFilter;
|
|
343
344
|
exports.useSendBalance = SendBalanceContext.useSendBalance;
|
|
344
345
|
exports.useFunding = useFunding.useFunding;
|
|
346
|
+
exports.useConnectWithEmailOtp = useConnectWithEmailOtp.useConnectWithEmailOtp;
|
package/src/index.d.ts
CHANGED
|
@@ -32,3 +32,4 @@ export { type DynamicJwt, DynamicJwtFromJSON } from '@dynamic-labs/sdk-api';
|
|
|
32
32
|
export { useSendBalance } from './lib/context/SendBalanceContext';
|
|
33
33
|
export type { LocaleResource } from './lib/locale';
|
|
34
34
|
export { useFunding } from './lib/context/FundingContext';
|
|
35
|
+
export { useConnectWithEmailOtp } from './lib/utils/hooks/useConnectWithEmailOtp';
|
package/src/index.js
CHANGED
|
@@ -177,3 +177,4 @@ export { FilterAndSortWallets, FilterBridgeChainsName, FilterWallets, RemoveWall
|
|
|
177
177
|
export { useSendBalance } from './lib/context/SendBalanceContext/SendBalanceContext.js';
|
|
178
178
|
import './lib/context/FundingContext/FundingContext.js';
|
|
179
179
|
export { useFunding } from './lib/context/FundingContext/useFunding/useFunding.js';
|
|
180
|
+
export { useConnectWithEmailOtp } from './lib/utils/hooks/useConnectWithEmailOtp/useConnectWithEmailOtp.js';
|
|
@@ -72,7 +72,7 @@ var useMultiWalletWidgetState = require('../../utils/hooks/multiWallet/useMultiW
|
|
|
72
72
|
var useMultiWallet = require('../../utils/hooks/multiWallet/useMultiWallet/useMultiWallet.cjs');
|
|
73
73
|
var useClearWalletConnectSessions = require('../../utils/hooks/useClearWalletConnectSessions/useClearWalletConnectSessions.cjs');
|
|
74
74
|
var useConnectWallet = require('../../utils/hooks/useConnectWallet/useConnectWallet.cjs');
|
|
75
|
-
var
|
|
75
|
+
var useProcessNetworkConfigurations = require('../../utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.cjs');
|
|
76
76
|
var useFetchWalletsForChainsMap = require('../../utils/hooks/useFetchWalletsForChainsMap/useFetchWalletsForChainsMap.cjs');
|
|
77
77
|
var useHandleUnlinkWallet = require('../../utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs');
|
|
78
78
|
var usePrimaryWalletId = require('../../utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs');
|
|
@@ -178,10 +178,11 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale: locale
|
|
|
178
178
|
// Set to true when a customer starts any auth verification process and set to false when it ends
|
|
179
179
|
const [isVerificationInProgress, setIsVerificationInProgress] = useVerificationInProgress.useVerificationInProgress();
|
|
180
180
|
const walletBook$1 = walletBook.useWalletBookCdn();
|
|
181
|
-
const { configurations: serverNetworkConfigurations, handleRemoveLsNetworks, } =
|
|
181
|
+
const { configurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations.useProcessNetworkConfigurations({
|
|
182
182
|
authToken: getAuthToken.getAuthToken(),
|
|
183
183
|
environmentId,
|
|
184
184
|
evmNetworks,
|
|
185
|
+
projectSettings,
|
|
185
186
|
});
|
|
186
187
|
const { imageUserInAccessList, imageUserNotInAccessList, displayName, appLogo, } = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general) || {};
|
|
187
188
|
appLogoUrl = appLogo || appLogoUrl;
|
|
@@ -68,7 +68,7 @@ import { useMultiWalletWidgetState } from '../../utils/hooks/multiWallet/useMult
|
|
|
68
68
|
import { useMultiWallet } from '../../utils/hooks/multiWallet/useMultiWallet/useMultiWallet.js';
|
|
69
69
|
import { useClearWalletConnectSessions } from '../../utils/hooks/useClearWalletConnectSessions/useClearWalletConnectSessions.js';
|
|
70
70
|
import { useConnectWallet } from '../../utils/hooks/useConnectWallet/useConnectWallet.js';
|
|
71
|
-
import {
|
|
71
|
+
import { useProcessNetworkConfigurations } from '../../utils/hooks/useProcessNetworkConfigurations/useProcessNetworkConfigurations.js';
|
|
72
72
|
import { useFetchWalletsForChainsMap } from '../../utils/hooks/useFetchWalletsForChainsMap/useFetchWalletsForChainsMap.js';
|
|
73
73
|
import { useHandleUnlinkWallet } from '../../utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js';
|
|
74
74
|
import { usePrimaryWalletId } from '../../utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js';
|
|
@@ -174,10 +174,11 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
|
|
|
174
174
|
// Set to true when a customer starts any auth verification process and set to false when it ends
|
|
175
175
|
const [isVerificationInProgress, setIsVerificationInProgress] = useVerificationInProgress();
|
|
176
176
|
const walletBook = useWalletBookCdn();
|
|
177
|
-
const { configurations: serverNetworkConfigurations, handleRemoveLsNetworks, } =
|
|
177
|
+
const { configurations: serverNetworkConfigurations, handleRemoveLsNetworks, } = useProcessNetworkConfigurations({
|
|
178
178
|
authToken: getAuthToken(),
|
|
179
179
|
environmentId,
|
|
180
180
|
evmNetworks,
|
|
181
|
+
projectSettings,
|
|
181
182
|
});
|
|
182
183
|
const { imageUserInAccessList, imageUserNotInAccessList, displayName, appLogo, } = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.general) || {};
|
|
183
184
|
appLogoUrl = appLogo || appLogoUrl;
|
|
@@ -11,7 +11,7 @@ const useDynamicContext = () => {
|
|
|
11
11
|
if (context === undefined) {
|
|
12
12
|
throw new Error('useDynamicContext must be used within a DynamicContextProvider');
|
|
13
13
|
}
|
|
14
|
-
const { accountSwitchState, authMode, authToken, awaitingSignatureState, getNameService, handleLogOut, handleUnlinkWallet, isAuthenticated, isFullyConnected, isVerificationInProgress, loadingNetwork, locale, loginWithEmail, multiWalletWidgetState, network, networkConfigurations, qrcodeUri, rpcProviders, sdkHasLoaded, setLogInWithEmail, setMultiWalletWidgetState, setNetwork, setPrimaryWallet, setShowAuthFlow, setShowDynamicUserProfile, setShowQrcodeModal, shadowDOMEnabled, showAuthFlow, showQrcodeModal, user, walletConnector, walletConnectorOptions, bridgeChains, bridgeChainsToConnect, primaryWallet, setShowBridgeWidget, sendWagmiSettings, } = context;
|
|
14
|
+
const { accountSwitchState, authMode, authToken, awaitingSignatureState, getNameService, handleLogOut, handleUnlinkWallet, isAuthenticated, isFullyConnected, isVerificationInProgress, loadingNetwork, locale, loginWithEmail, multiWalletWidgetState, network, networkConfigurations, qrcodeUri, rpcProviders, sdkHasLoaded, setLogInWithEmail, setMultiWalletWidgetState, setNetwork, setPrimaryWallet, setShowAuthFlow, setShowDynamicUserProfile, setShowQrcodeModal, shadowDOMEnabled, showAuthFlow, showQrcodeModal, user, walletConnector, walletConnectorOptions, bridgeChains, bridgeChainsToConnect, primaryWallet, setShowBridgeWidget, sendWagmiSettings, showDynamicUserProfile, } = context;
|
|
15
15
|
return {
|
|
16
16
|
accountSwitchState,
|
|
17
17
|
authMode,
|
|
@@ -46,6 +46,7 @@ const useDynamicContext = () => {
|
|
|
46
46
|
setShowQrcodeModal,
|
|
47
47
|
shadowDOMEnabled,
|
|
48
48
|
showAuthFlow,
|
|
49
|
+
showDynamicUserProfile,
|
|
49
50
|
showQrcodeModal,
|
|
50
51
|
user,
|
|
51
52
|
walletConnector,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { IDynamicContext } from './types';
|
|
2
|
-
export type UseDynamicContext = Pick<IDynamicContext, 'accountSwitchState' | 'authMode' | 'authToken' | 'awaitingSignatureState' | 'getNameService' | 'handleLogOut' | 'handleUnlinkWallet' | 'isAuthenticated' | 'isFullyConnected' | 'isVerificationInProgress' | 'loadingNetwork' | 'locale' | 'loginWithEmail' | 'multiWalletWidgetState' | 'network' | 'networkConfigurations' | 'primaryWallet' | 'qrcodeUri' | 'rpcProviders' | 'sdkHasLoaded' | 'setLogInWithEmail' | 'setMultiWalletWidgetState' | 'setNetwork' | 'setPrimaryWallet' | 'setShowAuthFlow' | 'setShowDynamicUserProfile' | 'setShowQrcodeModal' | 'shadowDOMEnabled' | 'showAuthFlow' | 'showQrcodeModal' | 'user' | 'walletConnector' | 'walletConnectorOptions' | 'bridgeChains' | 'bridgeChainsToConnect' | 'setShowBridgeWidget' | 'sendWagmiSettings'>;
|
|
2
|
+
export type UseDynamicContext = Pick<IDynamicContext, 'accountSwitchState' | 'authMode' | 'authToken' | 'awaitingSignatureState' | 'getNameService' | 'handleLogOut' | 'handleUnlinkWallet' | 'isAuthenticated' | 'isFullyConnected' | 'isVerificationInProgress' | 'loadingNetwork' | 'locale' | 'loginWithEmail' | 'multiWalletWidgetState' | 'network' | 'networkConfigurations' | 'primaryWallet' | 'qrcodeUri' | 'rpcProviders' | 'sdkHasLoaded' | 'setLogInWithEmail' | 'setMultiWalletWidgetState' | 'setNetwork' | 'setPrimaryWallet' | 'setShowAuthFlow' | 'setShowDynamicUserProfile' | 'setShowQrcodeModal' | 'shadowDOMEnabled' | 'showAuthFlow' | 'showQrcodeModal' | 'user' | 'walletConnector' | 'walletConnectorOptions' | 'bridgeChains' | 'bridgeChainsToConnect' | 'setShowBridgeWidget' | 'sendWagmiSettings' | 'showDynamicUserProfile'>;
|
|
3
3
|
export declare const useDynamicContext: () => UseDynamicContext;
|
|
@@ -7,7 +7,7 @@ const useDynamicContext = () => {
|
|
|
7
7
|
if (context === undefined) {
|
|
8
8
|
throw new Error('useDynamicContext must be used within a DynamicContextProvider');
|
|
9
9
|
}
|
|
10
|
-
const { accountSwitchState, authMode, authToken, awaitingSignatureState, getNameService, handleLogOut, handleUnlinkWallet, isAuthenticated, isFullyConnected, isVerificationInProgress, loadingNetwork, locale, loginWithEmail, multiWalletWidgetState, network, networkConfigurations, qrcodeUri, rpcProviders, sdkHasLoaded, setLogInWithEmail, setMultiWalletWidgetState, setNetwork, setPrimaryWallet, setShowAuthFlow, setShowDynamicUserProfile, setShowQrcodeModal, shadowDOMEnabled, showAuthFlow, showQrcodeModal, user, walletConnector, walletConnectorOptions, bridgeChains, bridgeChainsToConnect, primaryWallet, setShowBridgeWidget, sendWagmiSettings, } = context;
|
|
10
|
+
const { accountSwitchState, authMode, authToken, awaitingSignatureState, getNameService, handleLogOut, handleUnlinkWallet, isAuthenticated, isFullyConnected, isVerificationInProgress, loadingNetwork, locale, loginWithEmail, multiWalletWidgetState, network, networkConfigurations, qrcodeUri, rpcProviders, sdkHasLoaded, setLogInWithEmail, setMultiWalletWidgetState, setNetwork, setPrimaryWallet, setShowAuthFlow, setShowDynamicUserProfile, setShowQrcodeModal, shadowDOMEnabled, showAuthFlow, showQrcodeModal, user, walletConnector, walletConnectorOptions, bridgeChains, bridgeChainsToConnect, primaryWallet, setShowBridgeWidget, sendWagmiSettings, showDynamicUserProfile, } = context;
|
|
11
11
|
return {
|
|
12
12
|
accountSwitchState,
|
|
13
13
|
authMode,
|
|
@@ -42,6 +42,7 @@ const useDynamicContext = () => {
|
|
|
42
42
|
setShowQrcodeModal,
|
|
43
43
|
shadowDOMEnabled,
|
|
44
44
|
showAuthFlow,
|
|
45
|
+
showDynamicUserProfile,
|
|
45
46
|
showQrcodeModal,
|
|
46
47
|
user,
|
|
47
48
|
walletConnector,
|
package/src/lib/data/api.cjs
CHANGED
|
@@ -295,18 +295,6 @@ const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalle
|
|
|
295
295
|
return undefined;
|
|
296
296
|
}
|
|
297
297
|
});
|
|
298
|
-
const fetchNetworkSettings = (environmentId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
299
|
-
try {
|
|
300
|
-
const res = yield sdkApi().getNetworksConfigurationByEnvId({
|
|
301
|
-
environmentId,
|
|
302
|
-
});
|
|
303
|
-
return res;
|
|
304
|
-
}
|
|
305
|
-
catch (e) {
|
|
306
|
-
logger.logger.error(e);
|
|
307
|
-
return undefined;
|
|
308
|
-
}
|
|
309
|
-
});
|
|
310
298
|
const fetchProjectSettings = (environmentId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
311
299
|
try {
|
|
312
300
|
const res = yield sdkApi().getEnvironmentSettings({
|
|
@@ -534,7 +522,6 @@ exports.completePasskeyRecovery = completePasskeyRecovery;
|
|
|
534
522
|
exports.createEmailVerification = createEmailVerification;
|
|
535
523
|
exports.createTurnkeyEvmEmbeddedWallet = createTurnkeyEvmEmbeddedWallet;
|
|
536
524
|
exports.createVisit = createVisit;
|
|
537
|
-
exports.fetchNetworkSettings = fetchNetworkSettings;
|
|
538
525
|
exports.fetchNonce = fetchNonce;
|
|
539
526
|
exports.fetchProjectSettings = fetchProjectSettings;
|
|
540
527
|
exports.getEmailProvider = getEmailProvider;
|
package/src/lib/data/api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProjectSettings, UserFields,
|
|
1
|
+
import { ProjectSettings, UserFields, ChainEnum, UpdateSelfResponse, WalletProviderEnum, AuthModeEnum, EmailVerificationCreateResponse, VerifyResponse, OauthRequest, OauthResultRequest, ProviderEnum, OnrampConfiguration, EmailProviderResponse, OauthResultResponse, PasskeyRegistrationCredential } from '@dynamic-labs/sdk-api';
|
|
2
2
|
import { AuthModeType, VerifyWallet } from '../shared/types';
|
|
3
3
|
export declare const fetchNonce: (environmentId: string) => Promise<string | undefined>;
|
|
4
4
|
export declare const getEmailProvider: ({ email, environmentId, }: {
|
|
@@ -49,7 +49,6 @@ export declare const createVisit: ({ authMode, chain, environmentId, walletProvi
|
|
|
49
49
|
walletProvider: string;
|
|
50
50
|
}) => Promise<void | undefined>;
|
|
51
51
|
export declare const verifyWallet: (environmentId: string, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, oauth, }: VerifyWallet) => Promise<string | undefined>;
|
|
52
|
-
export declare const fetchNetworkSettings: (environmentId: string) => Promise<NetworkConfigurationResponse[] | undefined>;
|
|
53
52
|
export declare const fetchProjectSettings: (environmentId: string) => Promise<ProjectSettings | undefined>;
|
|
54
53
|
export declare const updateUserProfileFields: (jwt: string | undefined, environmentId: string, fields: UserFields) => Promise<UpdateSelfResponse>;
|
|
55
54
|
export declare const getOauthLoginUrl: (environmentId: string, providerType: ProviderEnum, userJwt: string) => Promise<string | undefined>;
|
package/src/lib/data/api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from '../../../_virtual/_tslib.js';
|
|
2
|
-
import { NoAccessError, AccountExistsError,
|
|
2
|
+
import { EmailVerificationError, NoAccessError, AccountExistsError, UserHasAccountWithEmailError, DynamicError, EmailAlreadyExistsError, UsernameAlreadyExistsError, EmailProviderError, WalletUsedError, WalletNotDeployedError, ChainalysisError, GateBlockedError, SocialAccountAlreadyExistsError } from '@dynamic-labs/utils';
|
|
3
3
|
import { UnprocessableEntityErrorCode, SDKApi, Configuration, VerifyRequestFromJSON, ChainEnum, WalletProviderEnum, AuthModeEnum, EmbeddedWalletProviderEnum } from '@dynamic-labs/sdk-api';
|
|
4
4
|
import { VERSION, API_VERSION } from '../../version.js';
|
|
5
5
|
import ApiEndpoint from '../config/ApiEndpoint.js';
|
|
@@ -291,18 +291,6 @@ const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalle
|
|
|
291
291
|
return undefined;
|
|
292
292
|
}
|
|
293
293
|
});
|
|
294
|
-
const fetchNetworkSettings = (environmentId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
295
|
-
try {
|
|
296
|
-
const res = yield sdkApi().getNetworksConfigurationByEnvId({
|
|
297
|
-
environmentId,
|
|
298
|
-
});
|
|
299
|
-
return res;
|
|
300
|
-
}
|
|
301
|
-
catch (e) {
|
|
302
|
-
logger.error(e);
|
|
303
|
-
return undefined;
|
|
304
|
-
}
|
|
305
|
-
});
|
|
306
294
|
const fetchProjectSettings = (environmentId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
307
295
|
try {
|
|
308
296
|
const res = yield sdkApi().getEnvironmentSettings({
|
|
@@ -526,4 +514,4 @@ const getUserPasskeys = ({ userJwt, environmentId, }) => __awaiter(void 0, void
|
|
|
526
514
|
}
|
|
527
515
|
});
|
|
528
516
|
|
|
529
|
-
export { completePasskeyRecovery, createEmailVerification, createTurnkeyEvmEmbeddedWallet, createVisit,
|
|
517
|
+
export { completePasskeyRecovery, createEmailVerification, createTurnkeyEvmEmbeddedWallet, createVisit, fetchNonce, fetchProjectSettings, getEmailProvider, getOAuthResult, getOnrampProviders, getUserPasskeys, initPasskeyRecovery, linkWallet, mapAuthModeTypeToEnum, mapChainToChainEnum, mapProviderToProviderEnum, mergeUserAccounts, retryEmailVerification, revokeSession, sendDynamicProps, signInOAuth, signInWithEmailVerification, transferWallet, unlinkOAuth, unlinkWallet, updateUserProfileFields, verifyEmail, verifyOAuth, verifyWallet };
|
|
@@ -44,7 +44,7 @@ export type Icon = React.FunctionComponent<React.SVGProps<SVGSVGElement> & {
|
|
|
44
44
|
title?: string | undefined;
|
|
45
45
|
}>;
|
|
46
46
|
export type WalletNamesUnion = 'Coinbase Wallet' | 'Coinbase Wallet (Solana)' | 'MetaMask' | 'Phantom' | 'Phantom (EVM)' | 'Phantom (Ledger)' | 'Venly' | 'Rainbow' | 'Solflare' | 'Glow' | 'Slope' | 'Blocto (Flow)' | 'Blocto (EVM)' | 'Blocto (App)' | 'Brave Wallet (EVM)' | 'Brave Wallet (Solana)' | 'Braavos' | 'Argent X' | 'Dapper' | 'Opera Wallet' | 'Injected Wallet' | 'Exodus Wallet (EVM)' | 'Exodus Wallet (Solana)' | 'ZenGo' | 'Lilico';
|
|
47
|
-
export type ChainNamesUnion = 'Solana' | 'Ethereum' | 'Flow' | 'EVM' | 'Algorand' | 'Starknet' | 'Cosmos' | 'Axelar' | 'Osmosis';
|
|
47
|
+
export type ChainNamesUnion = 'Solana' | 'Ethereum' | 'Flow' | 'EVM' | 'Algorand' | 'Starknet' | 'Cosmos' | 'Axelar' | 'Osmosis' | 'Bitcoin';
|
|
48
48
|
export interface WalletOption {
|
|
49
49
|
isInstalledOnBrowser: boolean;
|
|
50
50
|
key: string;
|
|
@@ -157,6 +157,7 @@ export type ChainToWalletMap = {
|
|
|
157
157
|
primary_chain: string;
|
|
158
158
|
wallets: {
|
|
159
159
|
algorand?: string;
|
|
160
|
+
bitcoin?: string;
|
|
160
161
|
cosmos?: string;
|
|
161
162
|
evm?: string;
|
|
162
163
|
flow?: string;
|
|
@@ -13,7 +13,7 @@ type Props = {
|
|
|
13
13
|
walletProvider: WalletProvider;
|
|
14
14
|
};
|
|
15
15
|
export declare const getVerifyArgs: ({ walletConnector, nonce, walletProvider, environmentId, displaySiweStatement, skipEmptyAccountCheck, siweStatement, publicWalletAddress, }: Props) => Promise<{
|
|
16
|
-
chain: "ETH" | "FLOW" | "SOL" | "EVM" | "ALGO" | "STARK" | "ATOM" | "COSMOS" |
|
|
16
|
+
chain: "ETH" | "FLOW" | "SOL" | "EVM" | "ALGO" | "STARK" | "ATOM" | "COSMOS" | "BTC";
|
|
17
17
|
messageToSign: string;
|
|
18
18
|
network: string;
|
|
19
19
|
publicWalletAddress: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { isEmailValid } from './isEmailValid';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isEmailValid: (email: string) => boolean;
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var sdkApi = require('@dynamic-labs/sdk-api');
|
|
6
|
+
|
|
7
|
+
const isProviderEnabled = (providers, provider) => providers.some((providerItem) => {
|
|
8
|
+
const providerEnabled = providerItem.provider === provider && Boolean(providerItem.enabledAt);
|
|
9
|
+
if (providerItem.provider === sdkApi.ProviderEnum.MagicLink) {
|
|
10
|
+
return providerEnabled && Boolean(providerItem.providerProjectId);
|
|
11
|
+
}
|
|
12
|
+
return providerEnabled;
|
|
13
|
+
});
|
|
6
14
|
|
|
7
15
|
exports.isProviderEnabled = isProviderEnabled;
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { ProviderEnum } from '@dynamic-labs/sdk-api';
|
|
2
|
+
|
|
3
|
+
const isProviderEnabled = (providers, provider) => providers.some((providerItem) => {
|
|
4
|
+
const providerEnabled = providerItem.provider === provider && Boolean(providerItem.enabledAt);
|
|
5
|
+
if (providerItem.provider === ProviderEnum.MagicLink) {
|
|
6
|
+
return providerEnabled && Boolean(providerItem.providerProjectId);
|
|
7
|
+
}
|
|
8
|
+
return providerEnabled;
|
|
9
|
+
});
|
|
2
10
|
|
|
3
11
|
export { isProviderEnabled };
|
|
@@ -94,12 +94,14 @@ const useAuthLayoutChecks = (walletConnector) => {
|
|
|
94
94
|
view === 'passkey-intro' ||
|
|
95
95
|
(view === 'merge-user-accounts' && !user);
|
|
96
96
|
const showQrCodePreHeader = view === 'qr-code' && showQrCodeMessage && !showQrCodeImage;
|
|
97
|
+
const showDefaultFooter = !showDynamicFooter && !showToSFooter;
|
|
97
98
|
return {
|
|
98
99
|
displayBorderBelowHeader,
|
|
99
100
|
isWalletListTypeView,
|
|
100
101
|
showBackButton,
|
|
101
102
|
showCloseButton,
|
|
102
103
|
showConnectedWalletProgress,
|
|
104
|
+
showDefaultFooter,
|
|
103
105
|
showDynamicFooter,
|
|
104
106
|
showHeader,
|
|
105
107
|
showHelpContent,
|
|
@@ -5,6 +5,7 @@ export declare const useAuthLayoutChecks: (walletConnector?: WalletConnector | n
|
|
|
5
5
|
showBackButton: boolean;
|
|
6
6
|
showCloseButton: boolean;
|
|
7
7
|
showConnectedWalletProgress: boolean;
|
|
8
|
+
showDefaultFooter: boolean;
|
|
8
9
|
showDynamicFooter: boolean;
|
|
9
10
|
showHeader: boolean;
|
|
10
11
|
showHelpContent: boolean;
|
|
@@ -90,12 +90,14 @@ const useAuthLayoutChecks = (walletConnector) => {
|
|
|
90
90
|
view === 'passkey-intro' ||
|
|
91
91
|
(view === 'merge-user-accounts' && !user);
|
|
92
92
|
const showQrCodePreHeader = view === 'qr-code' && showQrCodeMessage && !showQrCodeImage;
|
|
93
|
+
const showDefaultFooter = !showDynamicFooter && !showToSFooter;
|
|
93
94
|
return {
|
|
94
95
|
displayBorderBelowHeader,
|
|
95
96
|
isWalletListTypeView,
|
|
96
97
|
showBackButton,
|
|
97
98
|
showCloseButton,
|
|
98
99
|
showConnectedWalletProgress,
|
|
100
|
+
showDefaultFooter,
|
|
99
101
|
showDynamicFooter,
|
|
100
102
|
showHeader,
|
|
101
103
|
showHelpContent,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useConnectWithEmailOtp } from './useConnectWithEmailOtp';
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
|
+
var sdkApi = require('@dynamic-labs/sdk-api');
|
|
9
|
+
var useInternalDynamicContext = require('../../../context/DynamicContext/useInternalDynamicContext.cjs');
|
|
10
|
+
var useWalletItemActions = require('../useWalletItemActions/useWalletItemActions.cjs');
|
|
11
|
+
var dynamicEvents = require('../../../events/dynamicEvents.cjs');
|
|
12
|
+
require('../../../shared/logger.cjs');
|
|
13
|
+
require('@dynamic-labs/iconic');
|
|
14
|
+
require('react/jsx-runtime');
|
|
15
|
+
require('../../../context/ViewContext/ViewContext.cjs');
|
|
16
|
+
require('@dynamic-labs/wallet-book');
|
|
17
|
+
require('../../constants/colors.cjs');
|
|
18
|
+
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
19
|
+
require('viem');
|
|
20
|
+
require('@dynamic-labs/utils');
|
|
21
|
+
require('../../../shared/consts/index.cjs');
|
|
22
|
+
require('@dynamic-labs/multi-wallet');
|
|
23
|
+
var isProviderEnabled = require('../../functions/isProviderEnabled/isProviderEnabled.cjs');
|
|
24
|
+
var isEmailValid = require('../../functions/isEmailValid/isEmailValid.cjs');
|
|
25
|
+
var api = require('../../../data/api.cjs');
|
|
26
|
+
var useCreateUserProfileByJWTCallback = require('../useCreateUserProfileByJWTCallback/useCreateUserProfileByJWTCallback.cjs');
|
|
27
|
+
|
|
28
|
+
const mapEmailProviderToProviderEnum = {
|
|
29
|
+
dynamic: sdkApi.ProviderEnum.Dynamic,
|
|
30
|
+
emailOnly: sdkApi.ProviderEnum.EmailOnly,
|
|
31
|
+
magicLink: sdkApi.ProviderEnum.MagicLink,
|
|
32
|
+
};
|
|
33
|
+
const allSupportedProviders = Object.values(mapEmailProviderToProviderEnum);
|
|
34
|
+
/**
|
|
35
|
+
* Hook to connect and verify an email using a one-time password (OTP) with specified email providers.
|
|
36
|
+
*
|
|
37
|
+
* @param props - The properties for the hook. Includes an optional 'provider' to specify the email provider.
|
|
38
|
+
* @returns An object containing two functions:
|
|
39
|
+
* - connectWithEmail: A function to initiate the OTP process with the provided email.
|
|
40
|
+
* - verifyOneTimePassword: A function to verify the provided OTP.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* const { connectWithEmail, verifyOneTimePassword } = useConnectWithEmailOtp({ provider: ProviderEnum.MagicLink });
|
|
44
|
+
*
|
|
45
|
+
* // To initiate the OTP process
|
|
46
|
+
* connectWithEmail('user@example.com').then(() => {
|
|
47
|
+
* // OTP sent to the email
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* // To verify the OTP
|
|
51
|
+
* verifyOneTimePassword('123456').then(() => {
|
|
52
|
+
* // OTP verification successful
|
|
53
|
+
* }).catch((error) => {
|
|
54
|
+
* // Error handling
|
|
55
|
+
* });
|
|
56
|
+
*/
|
|
57
|
+
const useConnectWithEmailOtp = ({ provider, } = {}) => {
|
|
58
|
+
const { walletConnectorOptions, environmentId, projectSettings, setCallback, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
59
|
+
const { createUserProfileByJWT } = useCreateUserProfileByJWTCallback.useCreateUserProfileByJWTCallback();
|
|
60
|
+
const { handleInstalledExtensionClick } = useWalletItemActions.useWalletItemActions();
|
|
61
|
+
const lastVerificationHandlerRef = React.useRef(null);
|
|
62
|
+
const providers = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) || [];
|
|
63
|
+
const emailOtpWalletConnector = walletConnectorOptions
|
|
64
|
+
.map(({ walletConnector }) => walletConnector)
|
|
65
|
+
.find(walletConnectorCore.isEmailOTPWalletConnector);
|
|
66
|
+
const mapProviderToEnabled = {
|
|
67
|
+
dynamic: isProviderEnabled.isProviderEnabled(providers, sdkApi.ProviderEnum.Dynamic),
|
|
68
|
+
emailOnly: isProviderEnabled.isProviderEnabled(providers, sdkApi.ProviderEnum.EmailOnly),
|
|
69
|
+
magicLink: isProviderEnabled.isProviderEnabled(providers, sdkApi.ProviderEnum.MagicLink),
|
|
70
|
+
};
|
|
71
|
+
const emailHandler = (email) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
72
|
+
const { verificationUUID } = yield api.createEmailVerification({
|
|
73
|
+
email,
|
|
74
|
+
environmentId,
|
|
75
|
+
});
|
|
76
|
+
return (oneTimePassword) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
77
|
+
const { jwt } = yield api.signInWithEmailVerification({
|
|
78
|
+
environmentId,
|
|
79
|
+
verificationToken: oneTimePassword,
|
|
80
|
+
verificationUUID,
|
|
81
|
+
});
|
|
82
|
+
yield createUserProfileByJWT(jwt);
|
|
83
|
+
return {
|
|
84
|
+
email,
|
|
85
|
+
verified: Boolean(jwt),
|
|
86
|
+
};
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
const magicHandler = (email) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
+
if (!emailOtpWalletConnector) {
|
|
91
|
+
throw new Error('OTP wallet connector was not found');
|
|
92
|
+
}
|
|
93
|
+
emailOtpWalletConnector.setEmail(email);
|
|
94
|
+
handleInstalledExtensionClick(emailOtpWalletConnector);
|
|
95
|
+
return (oneTimePassword) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
96
|
+
return ({
|
|
97
|
+
email,
|
|
98
|
+
verified: yield emailOtpWalletConnector.verifyOneTimePassword(oneTimePassword),
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
const mapProviderToHandler = {
|
|
103
|
+
[sdkApi.ProviderEnum.Dynamic]: emailHandler,
|
|
104
|
+
[sdkApi.ProviderEnum.EmailOnly]: emailHandler,
|
|
105
|
+
[sdkApi.ProviderEnum.MagicLink]: magicHandler,
|
|
106
|
+
};
|
|
107
|
+
const getEffectiveEmailProvider = (email) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
108
|
+
if (provider) {
|
|
109
|
+
return provider;
|
|
110
|
+
}
|
|
111
|
+
const { emailProvider } = yield api.getEmailProvider({
|
|
112
|
+
email,
|
|
113
|
+
environmentId,
|
|
114
|
+
});
|
|
115
|
+
if (!allSupportedProviders.includes(emailProvider)) {
|
|
116
|
+
throw new Error('Email provider is not supported');
|
|
117
|
+
}
|
|
118
|
+
return emailProvider;
|
|
119
|
+
});
|
|
120
|
+
const connectWithEmail = (email) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
121
|
+
if (!isEmailValid.isEmailValid(email)) {
|
|
122
|
+
throw new Error('Email is not valid');
|
|
123
|
+
}
|
|
124
|
+
const effectiveEmailProvider = yield getEffectiveEmailProvider(email);
|
|
125
|
+
if (!mapProviderToEnabled[effectiveEmailProvider]) {
|
|
126
|
+
throw new Error('Email provider is not enabled');
|
|
127
|
+
}
|
|
128
|
+
const verificationHandler = yield mapProviderToHandler[effectiveEmailProvider](email);
|
|
129
|
+
lastVerificationHandlerRef.current = verificationHandler;
|
|
130
|
+
});
|
|
131
|
+
const verifyOneTimePassword = (oneTimePassword) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
132
|
+
if (!lastVerificationHandlerRef.current) {
|
|
133
|
+
throw new Error('Verification have not started, use connectWithEmail before verifying');
|
|
134
|
+
}
|
|
135
|
+
const { email, verified } = yield lastVerificationHandlerRef.current(oneTimePassword);
|
|
136
|
+
dynamicEvents.dynamicEvents.emit('emailVerificationResult', verified, email);
|
|
137
|
+
if (verified) {
|
|
138
|
+
setCallback('authSuccess');
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
throw new Error('Email verification failed');
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
return {
|
|
145
|
+
connectWithEmail,
|
|
146
|
+
verifyOneTimePassword,
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
exports.useConnectWithEmailOtp = useConnectWithEmailOtp;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
type EmailProviders = 'magicLink' | 'dynamic' | 'emailOnly';
|
|
2
|
+
type UseConnectWithEmailOtpProps = {
|
|
3
|
+
provider?: EmailProviders;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Hook to connect and verify an email using a one-time password (OTP) with specified email providers.
|
|
7
|
+
*
|
|
8
|
+
* @param props - The properties for the hook. Includes an optional 'provider' to specify the email provider.
|
|
9
|
+
* @returns An object containing two functions:
|
|
10
|
+
* - connectWithEmail: A function to initiate the OTP process with the provided email.
|
|
11
|
+
* - verifyOneTimePassword: A function to verify the provided OTP.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const { connectWithEmail, verifyOneTimePassword } = useConnectWithEmailOtp({ provider: ProviderEnum.MagicLink });
|
|
15
|
+
*
|
|
16
|
+
* // To initiate the OTP process
|
|
17
|
+
* connectWithEmail('user@example.com').then(() => {
|
|
18
|
+
* // OTP sent to the email
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // To verify the OTP
|
|
22
|
+
* verifyOneTimePassword('123456').then(() => {
|
|
23
|
+
* // OTP verification successful
|
|
24
|
+
* }).catch((error) => {
|
|
25
|
+
* // Error handling
|
|
26
|
+
* });
|
|
27
|
+
*/
|
|
28
|
+
export declare const useConnectWithEmailOtp: ({ provider, }?: UseConnectWithEmailOtpProps) => {
|
|
29
|
+
connectWithEmail: (email: string) => Promise<void>;
|
|
30
|
+
verifyOneTimePassword: (oneTimePassword: string) => Promise<void>;
|
|
31
|
+
};
|
|
32
|
+
export {};
|