@dynamic-labs/sdk-react-core 0.17.1 → 0.17.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 CHANGED
@@ -1,4 +1,6 @@
1
1
 
2
+ ### [0.17.2](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.1...v0.17.2) (2023-06-14)
3
+
2
4
  ### [0.17.1](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0...v0.17.1) (2023-06-14)
3
5
 
4
6
 
package/package.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "0.17.1";
5
+ var version = "0.17.2";
6
6
  var dependencies = {
7
7
  "react-focus-lock": "2.9.2",
8
8
  "@dynamic-labs/iconic": "0.1.23",
9
- "@dynamic-labs/sdk-api": "0.0.198",
9
+ "@dynamic-labs/sdk-api": "0.0.218",
10
10
  "@hcaptcha/react-hcaptcha": "1.4.4",
11
11
  "country-list": "2.3.0",
12
12
  yup: "0.32.11",
package/package.js CHANGED
@@ -1,8 +1,8 @@
1
- var version = "0.17.1";
1
+ var version = "0.17.2";
2
2
  var dependencies = {
3
3
  "react-focus-lock": "2.9.2",
4
4
  "@dynamic-labs/iconic": "0.1.23",
5
- "@dynamic-labs/sdk-api": "0.0.198",
5
+ "@dynamic-labs/sdk-api": "0.0.218",
6
6
  "@hcaptcha/react-hcaptcha": "1.4.4",
7
7
  "country-list": "2.3.0",
8
8
  yup: "0.32.11",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "0.17.1",
3
+ "version": "0.17.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -9,20 +9,20 @@
9
9
  "dependencies": {
10
10
  "react-focus-lock": "2.9.2",
11
11
  "@dynamic-labs/iconic": "0.1.23",
12
- "@dynamic-labs/sdk-api": "0.0.198",
12
+ "@dynamic-labs/sdk-api": "0.0.218",
13
13
  "@hcaptcha/react-hcaptcha": "1.4.4",
14
14
  "country-list": "2.3.0",
15
15
  "yup": "0.32.11",
16
16
  "formik": "2.2.9",
17
17
  "qrcode": "1.5.1",
18
18
  "ethers": "5.7.2",
19
- "@dynamic-labs/logger": "0.17.1",
20
- "@dynamic-labs/multi-wallet": "0.17.1",
21
- "@dynamic-labs/rpc-providers": "0.17.1",
22
- "@dynamic-labs/types": "0.17.1",
23
- "@dynamic-labs/utils": "0.17.1",
24
- "@dynamic-labs/wallet-book": "0.17.1",
25
- "@dynamic-labs/wallet-connector-core": "0.17.1"
19
+ "@dynamic-labs/logger": "0.17.2",
20
+ "@dynamic-labs/multi-wallet": "0.17.2",
21
+ "@dynamic-labs/rpc-providers": "0.17.2",
22
+ "@dynamic-labs/types": "0.17.2",
23
+ "@dynamic-labs/utils": "0.17.2",
24
+ "@dynamic-labs/wallet-book": "0.17.2",
25
+ "@dynamic-labs/wallet-connector-core": "0.17.2"
26
26
  },
27
27
  "devDependencies": {
28
28
  "semver": "7.3.8"
@@ -43,6 +43,20 @@ const fetchNonce = (environmentId) => _tslib.__awaiter(void 0, void 0, void 0, f
43
43
  return undefined;
44
44
  }
45
45
  });
46
+ const getEmailProvider = ({ email, environmentId, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
47
+ try {
48
+ const res = yield sdkApi().getEmailProvider({
49
+ email,
50
+ environmentId,
51
+ });
52
+ return res;
53
+ }
54
+ catch (e) {
55
+ const data = yield e.json();
56
+ logger.logger.error(data.error);
57
+ throw new utils.EmailProviderError(data.code);
58
+ }
59
+ });
46
60
  const createEmailVerification = ({ email, environmentId, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
47
61
  try {
48
62
  const res = yield sdkApi().createEmailVerification({
@@ -362,6 +376,7 @@ exports.createVisit = createVisit;
362
376
  exports.fetchNetworkSettings = fetchNetworkSettings;
363
377
  exports.fetchNonce = fetchNonce;
364
378
  exports.fetchProjectSettings = fetchProjectSettings;
379
+ exports.getEmailProvider = getEmailProvider;
365
380
  exports.getOnrampProviders = getOnrampProviders;
366
381
  exports.linkWallet = linkWallet;
367
382
  exports.mapAuthModeTypeToEnum = mapAuthModeTypeToEnum;
@@ -1,6 +1,10 @@
1
- import { ProjectSettings, UserFields, NetworkConfigurationResponse, ChainEnum, UpdateSelfResponse, WalletProviderEnum, AuthModeEnum, EmailVerificationCreateResponse, VerifyResponse, OauthRequest, ProviderEnum, OnrampConfiguration } from '@dynamic-labs/sdk-api';
1
+ import { ProjectSettings, UserFields, NetworkConfigurationResponse, ChainEnum, UpdateSelfResponse, WalletProviderEnum, AuthModeEnum, EmailVerificationCreateResponse, VerifyResponse, OauthRequest, ProviderEnum, OnrampConfiguration, EmailProviderResponse } 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
+ export declare const getEmailProvider: ({ email, environmentId, }: {
5
+ email: string;
6
+ environmentId: string;
7
+ }) => Promise<EmailProviderResponse>;
4
8
  export declare const createEmailVerification: ({ email, environmentId, }: {
5
9
  email: string;
6
10
  environmentId: string;
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from '../../../_virtual/_tslib.js';
2
- import { NoAccessError, EmailVerificationError, DynamicError, EmailAlreadyExistsError, UsernameAlreadyExistsError, WalletUsedError, WalletNotDeployedError, ChainalysisError } from '@dynamic-labs/utils';
2
+ import { NoAccessError, EmailVerificationError, DynamicError, EmailAlreadyExistsError, UsernameAlreadyExistsError, EmailProviderError, WalletUsedError, WalletNotDeployedError, ChainalysisError } from '@dynamic-labs/utils';
3
3
  import { SDKApi, Configuration, VerifyRequestFromJSON, ChainEnum, WalletProviderEnum, AuthModeEnum } from '@dynamic-labs/sdk-api';
4
4
  import { VERSION, API_VERSION } from '../../version.js';
5
5
  import ApiEndpoint from '../config/ApiEndpoint.js';
@@ -39,6 +39,20 @@ const fetchNonce = (environmentId) => __awaiter(void 0, void 0, void 0, function
39
39
  return undefined;
40
40
  }
41
41
  });
42
+ const getEmailProvider = ({ email, environmentId, }) => __awaiter(void 0, void 0, void 0, function* () {
43
+ try {
44
+ const res = yield sdkApi().getEmailProvider({
45
+ email,
46
+ environmentId,
47
+ });
48
+ return res;
49
+ }
50
+ catch (e) {
51
+ const data = yield e.json();
52
+ logger.error(data.error);
53
+ throw new EmailProviderError(data.code);
54
+ }
55
+ });
42
56
  const createEmailVerification = ({ email, environmentId, }) => __awaiter(void 0, void 0, void 0, function* () {
43
57
  try {
44
58
  const res = yield sdkApi().createEmailVerification({
@@ -353,4 +367,4 @@ const getOnrampProviders = ({ chain, environmentId, networkId, token, walletAddr
353
367
  return onramps;
354
368
  });
355
369
 
356
- export { createEmailVerification, createVisit, fetchNetworkSettings, fetchNonce, fetchProjectSettings, getOnrampProviders, linkWallet, mapAuthModeTypeToEnum, mapChainToChainEnum, mapProviderToProviderEnum, retryEmailVerification, revokeSession, signInWithEmailVerification, transferWallet, unlinkOAuth, unlinkWallet, updateUserProfileFields, verifyEmail, verifyOAuth, verifyWallet };
370
+ export { createEmailVerification, createVisit, fetchNetworkSettings, fetchNonce, fetchProjectSettings, getEmailProvider, getOnrampProviders, linkWallet, mapAuthModeTypeToEnum, mapChainToChainEnum, mapProviderToProviderEnum, retryEmailVerification, revokeSession, signInWithEmailVerification, transferWallet, unlinkOAuth, unlinkWallet, updateUserProfileFields, verifyEmail, verifyOAuth, verifyWallet };
@@ -6,9 +6,9 @@ var _tslib = require('../../../../../../_virtual/_tslib.cjs');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
  var React = require('react');
8
8
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
+ var sdkApi = require('@dynamic-labs/sdk-api');
9
10
  require('@dynamic-labs/utils');
10
11
  var api = require('../../../../data/api.cjs');
11
- require('@dynamic-labs/sdk-api');
12
12
  require('../../../../shared/logger.cjs');
13
13
  require('../../../../config/LSSuffix.cjs');
14
14
  require('@dynamic-labs/iconic');
@@ -45,7 +45,7 @@ var LoadingContext = require('../../../../context/LoadingContext/LoadingContext.
45
45
 
46
46
  const EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i;
47
47
  const LoginWithEmailForm = () => {
48
- const { environmentId, wallets } = useInternalDynamicContext.useInternalDynamicContext();
48
+ const { environmentId, wallets, projectSettings } = useInternalDynamicContext.useInternalDynamicContext();
49
49
  const { setView } = ViewContext.useViewContext();
50
50
  const { loading, setLoading } = LoadingContext.useLoadingContext();
51
51
  const { setErrorMessage } = ErrorContext.useErrorContext();
@@ -97,6 +97,19 @@ const LoginWithEmailForm = () => {
97
97
  }
98
98
  try {
99
99
  setLoading(true);
100
+ if (magicLinkEnabled && (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.confirmWalletTransfers)) {
101
+ // see: https://linear.app/dynamic-labs/issue/DYN-2517
102
+ // if confirmWalletTransfers setting is true, check api first to confirm emailProvider
103
+ const { emailProvider } = yield api.getEmailProvider({
104
+ email: emailValue,
105
+ environmentId,
106
+ });
107
+ if (emailProvider === sdkApi.ProviderEnum.EmailOnly) {
108
+ setEmailInput(emailValue);
109
+ yield handleEmailLoginSubmit();
110
+ return;
111
+ }
112
+ }
100
113
  yield submitHandler();
101
114
  }
102
115
  catch (error) {
@@ -2,9 +2,9 @@ import { __awaiter } from '../../../../../../_virtual/_tslib.js';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { useState, useMemo } from 'react';
4
4
  import { isEmailWalletConnector } from '@dynamic-labs/wallet-connector-core';
5
+ import { ProviderEnum } from '@dynamic-labs/sdk-api';
5
6
  import '@dynamic-labs/utils';
6
- import { createEmailVerification } from '../../../../data/api.js';
7
- import '@dynamic-labs/sdk-api';
7
+ import { getEmailProvider, createEmailVerification } from '../../../../data/api.js';
8
8
  import '../../../../shared/logger.js';
9
9
  import '../../../../config/LSSuffix.js';
10
10
  import '@dynamic-labs/iconic';
@@ -41,7 +41,7 @@ import { useLoadingContext } from '../../../../context/LoadingContext/LoadingCon
41
41
 
42
42
  const EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i;
43
43
  const LoginWithEmailForm = () => {
44
- const { environmentId, wallets } = useInternalDynamicContext();
44
+ const { environmentId, wallets, projectSettings } = useInternalDynamicContext();
45
45
  const { setView } = useViewContext();
46
46
  const { loading, setLoading } = useLoadingContext();
47
47
  const { setErrorMessage } = useErrorContext();
@@ -93,6 +93,19 @@ const LoginWithEmailForm = () => {
93
93
  }
94
94
  try {
95
95
  setLoading(true);
96
+ if (magicLinkEnabled && (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.confirmWalletTransfers)) {
97
+ // see: https://linear.app/dynamic-labs/issue/DYN-2517
98
+ // if confirmWalletTransfers setting is true, check api first to confirm emailProvider
99
+ const { emailProvider } = yield getEmailProvider({
100
+ email: emailValue,
101
+ environmentId,
102
+ });
103
+ if (emailProvider === ProviderEnum.EmailOnly) {
104
+ setEmailInput(emailValue);
105
+ yield handleEmailLoginSubmit();
106
+ return;
107
+ }
108
+ }
96
109
  yield submitHandler();
97
110
  }
98
111
  catch (error) {