@dynamic-labs/sdk-react-core 0.17.1 → 0.17.3

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,13 @@
1
1
 
2
+ ### [0.17.3](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.2...v0.17.3) (2023-06-14)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * await setEmailInput in handleSubmit for LoginWithemailForm ([#2336](https://github.com/dynamic-labs/DynamicAuth/issues/2336)) ([#2337](https://github.com/dynamic-labs/DynamicAuth/issues/2337)) ([2e3b3cf](https://github.com/dynamic-labs/DynamicAuth/commit/2e3b3cf1f5dc3a52d1f77b458d1c958908207c2f))
8
+
9
+ ### [0.17.2](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.1...v0.17.2) (2023-06-14)
10
+
2
11
  ### [0.17.1](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0...v0.17.1) (2023-06-14)
3
12
 
4
13
 
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.3";
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.3";
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.3",
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.3",
20
+ "@dynamic-labs/multi-wallet": "0.17.3",
21
+ "@dynamic-labs/rpc-providers": "0.17.3",
22
+ "@dynamic-labs/types": "0.17.3",
23
+ "@dynamic-labs/utils": "0.17.3",
24
+ "@dynamic-labs/wallet-book": "0.17.3",
25
+ "@dynamic-labs/wallet-connector-core": "0.17.3"
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();
@@ -72,9 +72,10 @@ const LoginWithEmailForm = () => {
72
72
  const handleMagicLinkSubmit = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
73
73
  yield connectWithEmail();
74
74
  });
75
- const handleEmailLoginSubmit = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
75
+ const handleEmailLoginSubmit = (emailInputOverride) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
76
+ const emailToVerify = emailInputOverride !== null && emailInputOverride !== void 0 ? emailInputOverride : emailInput;
76
77
  const { email, verificationUUID } = yield api.createEmailVerification({
77
- email: emailInput,
78
+ email: emailToVerify,
78
79
  environmentId,
79
80
  });
80
81
  setView('login-with-email-verification');
@@ -97,6 +98,19 @@ const LoginWithEmailForm = () => {
97
98
  }
98
99
  try {
99
100
  setLoading(true);
101
+ if (magicLinkEnabled &&
102
+ (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.confirmEmailProviderForVerify)) {
103
+ // see: https://linear.app/dynamic-labs/issue/DYN-2517
104
+ // if confirmWalletTransfers setting is true, check api first to confirm emailProvider
105
+ const { emailProvider } = yield api.getEmailProvider({
106
+ email: emailValue,
107
+ environmentId,
108
+ });
109
+ if (emailProvider === sdkApi.ProviderEnum.EmailOnly) {
110
+ yield handleEmailLoginSubmit(emailValue);
111
+ return;
112
+ }
113
+ }
100
114
  yield submitHandler();
101
115
  }
102
116
  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();
@@ -68,9 +68,10 @@ const LoginWithEmailForm = () => {
68
68
  const handleMagicLinkSubmit = () => __awaiter(void 0, void 0, void 0, function* () {
69
69
  yield connectWithEmail();
70
70
  });
71
- const handleEmailLoginSubmit = () => __awaiter(void 0, void 0, void 0, function* () {
71
+ const handleEmailLoginSubmit = (emailInputOverride) => __awaiter(void 0, void 0, void 0, function* () {
72
+ const emailToVerify = emailInputOverride !== null && emailInputOverride !== void 0 ? emailInputOverride : emailInput;
72
73
  const { email, verificationUUID } = yield createEmailVerification({
73
- email: emailInput,
74
+ email: emailToVerify,
74
75
  environmentId,
75
76
  });
76
77
  setView('login-with-email-verification');
@@ -93,6 +94,19 @@ const LoginWithEmailForm = () => {
93
94
  }
94
95
  try {
95
96
  setLoading(true);
97
+ if (magicLinkEnabled &&
98
+ (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.confirmEmailProviderForVerify)) {
99
+ // see: https://linear.app/dynamic-labs/issue/DYN-2517
100
+ // if confirmWalletTransfers setting is true, check api first to confirm emailProvider
101
+ const { emailProvider } = yield getEmailProvider({
102
+ email: emailValue,
103
+ environmentId,
104
+ });
105
+ if (emailProvider === ProviderEnum.EmailOnly) {
106
+ yield handleEmailLoginSubmit(emailValue);
107
+ return;
108
+ }
109
+ }
96
110
  yield submitHandler();
97
111
  }
98
112
  catch (error) {