@web3auth/no-modal 11.0.0-beta.1 → 11.0.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.
Files changed (59) hide show
  1. package/dist/lib.cjs/account-linking/errors.js +111 -0
  2. package/dist/lib.cjs/account-linking/index.js +4 -0
  3. package/dist/lib.cjs/account-linking/rest.js +6 -6
  4. package/dist/lib.cjs/account-linking/vue.js +0 -1
  5. package/dist/lib.cjs/base/connector/constants.js +2 -0
  6. package/dist/lib.cjs/base/errors/index.js +21 -50
  7. package/dist/lib.cjs/base/utils.js +1 -1
  8. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +125 -58
  9. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +40 -31
  10. package/dist/lib.cjs/index.js +24 -19
  11. package/dist/lib.cjs/noModal.js +60 -26
  12. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +8 -4
  13. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +0 -17
  14. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +15 -0
  15. package/dist/lib.cjs/react/context/useWeb3AuthInnerContextValue.js +18 -2
  16. package/dist/lib.cjs/react/solana/provider.js +6 -2
  17. package/dist/lib.cjs/react/wagmi/index.js +6 -0
  18. package/dist/lib.cjs/react/wagmi/provider.js +74 -23
  19. package/dist/lib.cjs/types/account-linking/errors.d.ts +17 -0
  20. package/dist/lib.cjs/types/account-linking/index.d.ts +1 -0
  21. package/dist/lib.cjs/types/base/connector/constants.d.ts +1 -0
  22. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +1 -1
  23. package/dist/lib.cjs/types/base/errors/index.d.ts +2 -13
  24. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +8 -2
  25. package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +1 -1
  26. package/dist/lib.cjs/types/noModal.d.ts +1 -1
  27. package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +1 -0
  28. package/dist/lib.cjs/types/react/wagmi/constants.d.ts +2 -0
  29. package/dist/lib.cjs/types/react/wagmi/provider.d.ts +7 -0
  30. package/dist/lib.cjs/types/vue/wagmi/constants.d.ts +2 -0
  31. package/dist/lib.cjs/types/vue/wagmi/provider.d.ts +7 -1
  32. package/dist/lib.cjs/vue/solana/provider.js +50 -26
  33. package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +13 -6
  34. package/dist/lib.cjs/vue/wagmi/index.js +6 -0
  35. package/dist/lib.cjs/vue/wagmi/provider.js +78 -35
  36. package/dist/lib.esm/account-linking/errors.js +92 -0
  37. package/dist/lib.esm/account-linking/index.js +1 -0
  38. package/dist/lib.esm/account-linking/rest.js +3 -3
  39. package/dist/lib.esm/account-linking/vue.js +0 -1
  40. package/dist/lib.esm/base/connector/constants.js +2 -1
  41. package/dist/lib.esm/base/errors/index.js +21 -50
  42. package/dist/lib.esm/base/utils.js +1 -1
  43. package/dist/lib.esm/connectors/auth-connector/authConnector.js +109 -41
  44. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +1 -1
  45. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +42 -33
  46. package/dist/lib.esm/index.js +3 -2
  47. package/dist/lib.esm/noModal.js +56 -20
  48. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +10 -5
  49. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +0 -3
  50. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +17 -3
  51. package/dist/lib.esm/react/context/useWeb3AuthInnerContextValue.js +18 -2
  52. package/dist/lib.esm/react/solana/provider.js +6 -2
  53. package/dist/lib.esm/react/wagmi/index.js +1 -1
  54. package/dist/lib.esm/react/wagmi/provider.js +74 -25
  55. package/dist/lib.esm/vue/solana/provider.js +51 -28
  56. package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +11 -4
  57. package/dist/lib.esm/vue/wagmi/index.js +1 -1
  58. package/dist/lib.esm/vue/wagmi/provider.js +73 -34
  59. package/package.json +20 -20
@@ -0,0 +1,111 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ require('@babel/runtime/helpers/objectSpread2');
5
+ require('@segment/analytics-next');
6
+ require('../base/loglevel.js');
7
+ require('@toruslabs/base-controllers');
8
+ require('@toruslabs/session-manager');
9
+ require('@web3auth/auth');
10
+ var index = require('../base/errors/index.js');
11
+ require('@toruslabs/constants');
12
+ require('@toruslabs/http-helpers');
13
+ require('../base/constants.js');
14
+ require('../base/wallet/index.js');
15
+ require('../base/connector/connectorStatus.js');
16
+ require('../base/connector/constants.js');
17
+ require('jwt-decode');
18
+ require('../base/plugin/errors.js');
19
+ require('../base/plugin/IPlugin.js');
20
+
21
+ class AccountLinkingError extends index.Web3AuthError {
22
+ constructor(code, message, cause) {
23
+ super(code, message, cause);
24
+ Object.defineProperty(this, "name", {
25
+ value: "AccountLinkingError",
26
+ configurable: true
27
+ });
28
+ }
29
+ static fromCode(code, extraMessage = "", cause) {
30
+ return new AccountLinkingError(code, `${AccountLinkingError.messages[code]}. ${extraMessage}`, cause);
31
+ }
32
+ static requestFailed(extraMessage = "", cause) {
33
+ return AccountLinkingError.fromCode(5401, extraMessage, cause);
34
+ }
35
+ static serverNotConfigured(extraMessage = "", cause) {
36
+ return AccountLinkingError.fromCode(5402, extraMessage, cause);
37
+ }
38
+ static primaryTokenNotAvailable(extraMessage = "", cause) {
39
+ return AccountLinkingError.fromCode(5403, extraMessage, cause);
40
+ }
41
+ static walletProofFailed(extraMessage = "", cause) {
42
+ return AccountLinkingError.fromCode(5404, extraMessage, cause);
43
+ }
44
+ static unsupportedConnector(extraMessage = "", cause) {
45
+ return AccountLinkingError.fromCode(5405, extraMessage, cause);
46
+ }
47
+ static cannotUnlinkActiveAccount() {
48
+ return AccountLinkingError.fromCode(5406);
49
+ }
50
+ static accountNotLinked(message = "", cause) {
51
+ return AccountLinkingError.fromCode(5407, message, cause);
52
+ }
53
+ static cannotUnlinkPrimaryAccount() {
54
+ return AccountLinkingError.fromCode(5408);
55
+ }
56
+ toString() {
57
+ return `[${this.code}] ${this.message}`;
58
+ }
59
+ }
60
+ _defineProperty(AccountLinkingError, "messages", {
61
+ 5000: "Custom",
62
+ 5401: "Account linking request failed",
63
+ 5402: "Citadel server URL is not configured",
64
+ 5403: "Primary identity token is not available",
65
+ 5404: "Failed to obtain wallet proof token",
66
+ 5405: "Connector is not supported for wallet linking",
67
+ 5406: "Cannot unlink active account",
68
+ 5407: "Account not linked",
69
+ 5408: "Cannot unlink primary account"
70
+ });
71
+ async function getAccountLinkingRequestError(error) {
72
+ if (error instanceof AccountLinkingError) {
73
+ return error;
74
+ }
75
+ if (error instanceof Response) {
76
+ if (error.status === 409) {
77
+ return AccountLinkingError.requestFailed("This wallet address is already registered on this dApp");
78
+ }
79
+ if (error.json && typeof error.json === "function") {
80
+ try {
81
+ var _json$message;
82
+ const json = await error.json();
83
+ return AccountLinkingError.requestFailed((_json$message = json.message) !== null && _json$message !== void 0 ? _json$message : "Failed to link account");
84
+ } catch {
85
+ // continue
86
+ }
87
+ }
88
+ }
89
+ return AccountLinkingError.requestFailed(error instanceof Error ? error.message : JSON.stringify(error), error);
90
+ }
91
+ function formatAccountLinkingErrorMessage(error, fallbackMessage = "Unknown error during the operation.") {
92
+ if (error instanceof AccountLinkingError) {
93
+ return error.toString();
94
+ }
95
+ if (error instanceof index.Web3AuthError) {
96
+ return `[${error.code}] Account linking error: ${error.message || fallbackMessage}`;
97
+ }
98
+ if (error instanceof Error) {
99
+ return `Account linking error: ${error.message || fallbackMessage}`;
100
+ }
101
+ try {
102
+ const stringifiedError = JSON.stringify(error);
103
+ return stringifiedError;
104
+ } catch {
105
+ return fallbackMessage;
106
+ }
107
+ }
108
+
109
+ exports.AccountLinkingError = AccountLinkingError;
110
+ exports.formatAccountLinkingErrorMessage = formatAccountLinkingErrorMessage;
111
+ exports.getAccountLinkingRequestError = getAccountLinkingRequestError;
@@ -1,8 +1,12 @@
1
1
  'use strict';
2
2
 
3
+ var errors = require('./errors.js');
3
4
  var rest = require('./rest.js');
4
5
 
5
6
 
6
7
 
8
+ exports.AccountLinkingError = errors.AccountLinkingError;
9
+ exports.formatAccountLinkingErrorMessage = errors.formatAccountLinkingErrorMessage;
10
+ exports.getAccountLinkingRequestError = errors.getAccountLinkingRequestError;
7
11
  exports.makeAccountLinkingRequest = rest.makeAccountLinkingRequest;
8
12
  exports.makeAccountUnlinkingRequest = rest.makeAccountUnlinkingRequest;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var httpHelpers = require('@toruslabs/http-helpers');
4
- var index = require('../base/errors/index.js');
4
+ var errors = require('./errors.js');
5
5
 
6
6
  /**
7
7
  * Send both identity proofs to the Citadel account-linking endpoint and
@@ -19,13 +19,13 @@ async function makeAccountLinkingRequest(authServerUrl, accessToken, payload) {
19
19
  }
20
20
  });
21
21
  } catch (cause) {
22
- const message = cause instanceof Error ? cause.message : String(cause);
23
- throw index.AccountLinkingError.requestFailed(message, cause);
22
+ const accountLinkingError = await errors.getAccountLinkingRequestError(cause);
23
+ throw accountLinkingError;
24
24
  }
25
25
  if (!result.success) {
26
26
  var _result$message;
27
27
  const errMessage = (_result$message = result.message) !== null && _result$message !== void 0 ? _result$message : "Failed to link account";
28
- throw index.AccountLinkingError.requestFailed(errMessage);
28
+ throw errors.AccountLinkingError.requestFailed(errMessage);
29
29
  }
30
30
  return result;
31
31
  }
@@ -40,12 +40,12 @@ async function makeAccountUnlinkingRequest(authServerUrl, accessToken, payload)
40
40
  });
41
41
  } catch (cause) {
42
42
  const message = cause instanceof Error ? cause.message : String(cause);
43
- throw index.AccountLinkingError.requestFailed(message, cause);
43
+ throw errors.AccountLinkingError.requestFailed(message, cause);
44
44
  }
45
45
  if (!result.success) {
46
46
  var _result$message2;
47
47
  const errMessage = (_result$message2 = result.message) !== null && _result$message2 !== void 0 ? _result$message2 : "Failed to unlink account";
48
- throw index.AccountLinkingError.requestFailed(errMessage);
48
+ throw errors.AccountLinkingError.requestFailed(errMessage);
49
49
  }
50
50
  return result;
51
51
  }
@@ -37,7 +37,6 @@ const useLinkAccount = () => {
37
37
  linkedAccounts.value = result.linkedAccounts;
38
38
  return result;
39
39
  } catch (err) {
40
- loglevel.log.error("Error linking account", err);
41
40
  error.value = err;
42
41
  } finally {
43
42
  loading.value = false;
@@ -2,6 +2,7 @@
2
2
 
3
3
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
4
 
5
+ const WEB3AUTH_CONNECTOR_ID = "web3auth";
5
6
  const CONNECTOR_STATUS = {
6
7
  NOT_READY: "not_ready",
7
8
  READY: "ready",
@@ -37,3 +38,4 @@ exports.CONNECTOR_CATEGORY = CONNECTOR_CATEGORY;
37
38
  exports.CONNECTOR_EVENTS = CONNECTOR_EVENTS;
38
39
  exports.CONNECTOR_INITIAL_AUTHENTICATION_MODE = CONNECTOR_INITIAL_AUTHENTICATION_MODE;
39
40
  exports.CONNECTOR_STATUS = CONNECTOR_STATUS;
41
+ exports.WEB3AUTH_CONNECTOR_ID = WEB3AUTH_CONNECTOR_ID;
@@ -183,7 +183,11 @@ class WalletOperationsError extends Web3AuthError {
183
183
  });
184
184
  }
185
185
  static fromCode(code, extraMessage = "", cause) {
186
- return new WalletOperationsError(code, `${WalletOperationsError.messages[code]}, ${extraMessage}`, cause);
186
+ let message = WalletOperationsError.messages[code];
187
+ if (extraMessage) {
188
+ message = `${message}, ${extraMessage}`;
189
+ }
190
+ return new WalletOperationsError(code, message, cause);
187
191
  }
188
192
  // Custom methods
189
193
  static chainIDNotAllowed(extraMessage = "", cause) {
@@ -195,58 +199,16 @@ class WalletOperationsError extends Web3AuthError {
195
199
  static chainNamespaceNotAllowed(extraMessage = "", cause) {
196
200
  return WalletOperationsError.fromCode(5203, extraMessage, cause);
197
201
  }
202
+ static userRejected(extraMessage = "", cause) {
203
+ return WalletOperationsError.fromCode(5204, extraMessage, cause);
204
+ }
198
205
  }
199
206
  _defineProperty(WalletOperationsError, "messages", {
200
207
  5000: "Custom",
201
208
  5201: "Provided chainId is not allowed",
202
- 5202: "This operation is not allowed"
203
- });
204
- class AccountLinkingError extends Web3AuthError {
205
- constructor(code, message, cause) {
206
- super(code, message, cause);
207
- Object.defineProperty(this, "name", {
208
- value: "AccountLinkingError",
209
- configurable: true
210
- });
211
- }
212
- static fromCode(code, extraMessage = "", cause) {
213
- return new AccountLinkingError(code, `${AccountLinkingError.messages[code]}. ${extraMessage}`, cause);
214
- }
215
- static requestFailed(extraMessage = "", cause) {
216
- return AccountLinkingError.fromCode(5401, extraMessage, cause);
217
- }
218
- static serverNotConfigured(extraMessage = "", cause) {
219
- return AccountLinkingError.fromCode(5402, extraMessage, cause);
220
- }
221
- static primaryTokenNotAvailable(extraMessage = "", cause) {
222
- return AccountLinkingError.fromCode(5403, extraMessage, cause);
223
- }
224
- static walletProofFailed(extraMessage = "", cause) {
225
- return AccountLinkingError.fromCode(5404, extraMessage, cause);
226
- }
227
- static unsupportedConnector(extraMessage = "", cause) {
228
- return AccountLinkingError.fromCode(5405, extraMessage, cause);
229
- }
230
- static cannotUnlinkActiveAccount() {
231
- return AccountLinkingError.fromCode(5406);
232
- }
233
- static accountNotLinked(message = "", cause) {
234
- return AccountLinkingError.fromCode(5407, message, cause);
235
- }
236
- static cannotUnlinkPrimaryAccount() {
237
- return AccountLinkingError.fromCode(5408);
238
- }
239
- }
240
- _defineProperty(AccountLinkingError, "messages", {
241
- 5000: "Custom",
242
- 5401: "Account linking request failed",
243
- 5402: "Citadel server URL is not configured",
244
- 5403: "Primary identity token is not available",
245
- 5404: "Failed to obtain wallet proof token",
246
- 5405: "Connector is not supported for wallet linking",
247
- 5406: "Cannot unlink active account",
248
- 5407: "Account not linked",
249
- 5408: "Cannot unlink primary account"
209
+ 5202: "This operation is not allowed",
210
+ 5203: "Chain namespace is not allowed",
211
+ 5204: "User rejected the request"
250
212
  });
251
213
  class WalletProviderError extends Web3AuthError {
252
214
  constructor(code, message, cause) {
@@ -278,10 +240,19 @@ _defineProperty(WalletProviderError, "messages", {
278
240
  5302: "'args.method' must be a non-empty string.",
279
241
  5303: "'args.params' must be an object or array if provided."
280
242
  });
243
+ function isUserRejectedError(error) {
244
+ if (error instanceof Web3AuthError && error.code === 5203) return true;
245
+ if (error instanceof Error) {
246
+ var _error$message;
247
+ const normalizedMessage = ((_error$message = error.message) === null || _error$message === void 0 ? void 0 : _error$message.toLowerCase()) || "";
248
+ return normalizedMessage.includes("user rejected the request");
249
+ }
250
+ return false;
251
+ }
281
252
 
282
- exports.AccountLinkingError = AccountLinkingError;
283
253
  exports.WalletInitializationError = WalletInitializationError;
284
254
  exports.WalletLoginError = WalletLoginError;
285
255
  exports.WalletOperationsError = WalletOperationsError;
286
256
  exports.WalletProviderError = WalletProviderError;
287
257
  exports.Web3AuthError = Web3AuthError;
258
+ exports.isUserRejectedError = isUserRejectedError;
@@ -145,7 +145,7 @@ const getWalletServicesAnalyticsProperties = walletServicesConfig => {
145
145
  ws_default_portfolio: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig10 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig10 === void 0 ? void 0 : _walletServicesConfig10.defaultPortfolio
146
146
  };
147
147
  };
148
- const sdkVersion = "11.0.0-beta.1";
148
+ const sdkVersion = "11.0.0";
149
149
  const getErrorAnalyticsProperties = error => {
150
150
  try {
151
151
  const code = error instanceof index.Web3AuthError ? error.code : error === null || error === void 0 ? void 0 : error.code;