@dynamic-labs-sdk/client 0.1.0-alpha.7 → 0.1.0-alpha.9

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 (97) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/InvalidParamError.cjs.js +2 -2
  3. package/InvalidParamError.esm.js +1 -1
  4. package/{refreshUser.cjs.js → NotWaasWalletAccountError.cjs.js} +16 -16
  5. package/{refreshUser.esm.js → NotWaasWalletAccountError.esm.js} +13 -13
  6. package/core.cjs.js +37 -36
  7. package/core.esm.js +6 -7
  8. package/getNetworkProviderFromNetworkId.cjs.js +106 -24
  9. package/getNetworkProviderFromNetworkId.esm.js +87 -6
  10. package/getSignedSessionId.cjs.js +7 -7
  11. package/getSignedSessionId.esm.js +2 -2
  12. package/getWalletProviderByKey.cjs.js +11 -324
  13. package/getWalletProviderByKey.esm.js +2 -301
  14. package/index.cjs.js +300 -543
  15. package/index.esm.js +90 -336
  16. package/isMfaRequiredForAction.cjs.js +8 -15
  17. package/isMfaRequiredForAction.esm.js +2 -8
  18. package/logout.cjs.js +1086 -0
  19. package/logout.esm.js +1020 -0
  20. package/package.json +5 -5
  21. package/src/client/core/createCore/createCore.d.ts.map +1 -1
  22. package/src/client/core/types/DynamicCoreConfig.d.ts +4 -1
  23. package/src/client/core/types/DynamicCoreConfig.d.ts.map +1 -1
  24. package/src/exports/core.d.ts +1 -0
  25. package/src/exports/core.d.ts.map +1 -1
  26. package/src/exports/index.d.ts +3 -0
  27. package/src/exports/index.d.ts.map +1 -1
  28. package/src/modules/apiClient/createApiClient.d.ts.map +1 -1
  29. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts +2 -0
  30. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts.map +1 -0
  31. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts +4 -0
  32. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts.map +1 -0
  33. package/src/modules/auth/logout/logout.d.ts.map +1 -1
  34. package/src/modules/initializeClient/initializeClient.d.ts.map +1 -1
  35. package/src/modules/initializeClient/waitForClientInitialized/index.d.ts +2 -0
  36. package/src/modules/initializeClient/waitForClientInitialized/index.d.ts.map +1 -0
  37. package/src/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.d.ts +8 -0
  38. package/src/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.d.ts.map +1 -0
  39. package/src/modules/sessionKeys/generateSessionKeys/generateSessionKeys.d.ts.map +1 -1
  40. package/src/modules/wallets/primaryWalletAccount/selectPrimaryWalletAccount/selectPrimaryWalletAccount.d.ts.map +1 -1
  41. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/index.d.ts +2 -0
  42. package/src/modules/wallets/unverifiedWalletAccounts/{addUnverifiedWalletAccounts → setUnverifiedWalletAccounts}/index.d.ts.map +1 -1
  43. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts +11 -0
  44. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts.map +1 -0
  45. package/src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.d.ts +7 -5
  46. package/src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.d.ts.map +1 -1
  47. package/src/modules/wallets/walletProvider/walletProvider.types.d.ts +10 -4
  48. package/src/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
  49. package/src/modules/wallets/walletProviderRegistry/createWalletProviderRegistry/createWalletProviderRegistry.d.ts.map +1 -1
  50. package/src/modules/wallets/walletProviderRegistry/events.d.ts +6 -0
  51. package/src/modules/wallets/walletProviderRegistry/events.d.ts.map +1 -1
  52. package/src/modules/wallets/walletProviderRegistry/walletProviderRegistry.types.d.ts +18 -0
  53. package/src/modules/wallets/walletProviderRegistry/walletProviderRegistry.types.d.ts.map +1 -1
  54. package/src/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.d.ts +6 -0
  55. package/src/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.d.ts.map +1 -0
  56. package/src/services/storage/createLocalStorageAdapter/index.d.ts +2 -0
  57. package/src/services/storage/createLocalStorageAdapter/index.d.ts.map +1 -0
  58. package/src/services/storage/createStorage/createStorage.d.ts +11 -0
  59. package/src/services/storage/createStorage/createStorage.d.ts.map +1 -0
  60. package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/index.d.ts.map +1 -1
  61. package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/isValidDateISOString/index.d.ts.map +1 -1
  62. package/src/services/storage/createStorage/formatForStorage/isValidDateISOString/isValidDateISOString.d.ts.map +1 -0
  63. package/src/services/storage/createStorage/formatForStorage/storageFormat.d.ts.map +1 -0
  64. package/src/services/storage/createStorage/index.d.ts +2 -0
  65. package/src/services/storage/createStorage/index.d.ts.map +1 -0
  66. package/src/services/storage/index.d.ts +3 -1
  67. package/src/services/storage/index.d.ts.map +1 -1
  68. package/src/services/storage/storage.types.d.ts +11 -1
  69. package/src/services/storage/storage.types.d.ts.map +1 -1
  70. package/src/utils/isMobile/index.d.ts +2 -0
  71. package/src/utils/isMobile/index.d.ts.map +1 -0
  72. package/src/utils/isMobile/isMobile.d.ts +20 -0
  73. package/src/utils/isMobile/isMobile.d.ts.map +1 -0
  74. package/src/utils/retryOnFail/retryOnFail.d.ts.map +1 -1
  75. package/waas.cjs.js +28 -27
  76. package/waas.esm.js +4 -3
  77. package/waasCore.cjs.js +9 -8
  78. package/waasCore.esm.js +2 -1
  79. package/getChainFromVerifiedCredentialChain.cjs.js +0 -473
  80. package/getChainFromVerifiedCredentialChain.esm.js +0 -447
  81. package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/addUnverifiedWalletAccounts.d.ts +0 -11
  82. package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/addUnverifiedWalletAccounts.d.ts.map +0 -1
  83. package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/index.d.ts +0 -2
  84. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/index.d.ts +0 -2
  85. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/index.d.ts.map +0 -1
  86. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/setUnverifiedWalletAccount.d.ts +0 -11
  87. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/setUnverifiedWalletAccount.d.ts.map +0 -1
  88. package/src/services/storage/createWebStorage/createWebStorage.d.ts +0 -10
  89. package/src/services/storage/createWebStorage/createWebStorage.d.ts.map +0 -1
  90. package/src/services/storage/createWebStorage/formatForStorage/isValidDateISOString/isValidDateISOString.d.ts.map +0 -1
  91. package/src/services/storage/createWebStorage/formatForStorage/storageFormat.d.ts.map +0 -1
  92. package/src/services/storage/createWebStorage/index.d.ts +0 -3
  93. package/src/services/storage/createWebStorage/index.d.ts.map +0 -1
  94. /package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/index.d.ts +0 -0
  95. /package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/isValidDateISOString/index.d.ts +0 -0
  96. /package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/isValidDateISOString/isValidDateISOString.d.ts +0 -0
  97. /package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/storageFormat.d.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ ## 0.1.0-alpha.9 (2025-09-19)
2
+
3
+ ### 🚀 Features
4
+
5
+ - refresh user when cookies are enabled ([#430](https://github.com/dynamic-labs/dynamic-sdk/pull/430))
6
+ - introduce waitForClientInitialized ([#436](https://github.com/dynamic-labs/dynamic-sdk/pull/436))
7
+ - introduce isMobile helper utility ([#441](https://github.com/dynamic-labs/dynamic-sdk/pull/441))
8
+
9
+ ### 🩹 Fixes
10
+
11
+ - logout user when any api call fails with 401 ([#432](https://github.com/dynamic-labs/dynamic-sdk/pull/432))
12
+ - logout for connected only wallets ([#437](https://github.com/dynamic-labs/dynamic-sdk/pull/437))
13
+
14
+ ### 🔧 Refactors
15
+
16
+ - linter rule for addExtension functions ([#433](https://github.com/dynamic-labs/dynamic-sdk/pull/433))
17
+ - improve demo ui and organization ([#434](https://github.com/dynamic-labs/dynamic-sdk/pull/434))
18
+ - misc improvements ([#438](https://github.com/dynamic-labs/dynamic-sdk/pull/438))
19
+ - add linter rule for unpinned dependencies ([#439](https://github.com/dynamic-labs/dynamic-sdk/pull/439))
20
+
21
+ ## 0.1.0-alpha.8 (2025-09-15)
22
+
23
+ This was a version bump only, there were no code changes.
24
+
1
25
  ## 0.1.0-alpha.7 (2025-09-12)
2
26
 
3
27
  ### 🩹 Fixes
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var getChainFromVerifiedCredentialChain = require('./getChainFromVerifiedCredentialChain.cjs.js');
3
+ var logout = require('./logout.cjs.js');
4
4
 
5
- class InvalidParamError extends getChainFromVerifiedCredentialChain.BaseError {
5
+ class InvalidParamError extends logout.BaseError {
6
6
  constructor(message){
7
7
  super({
8
8
  cause: null,
@@ -1,4 +1,4 @@
1
- import { B as BaseError } from './getChainFromVerifiedCredentialChain.esm.js';
1
+ import { B as BaseError } from './logout.esm.js';
2
2
 
3
3
  class InvalidParamError extends BaseError {
4
4
  constructor(message){
@@ -1,20 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var getChainFromVerifiedCredentialChain = require('./getChainFromVerifiedCredentialChain.cjs.js');
3
+ var logout = require('./logout.cjs.js');
4
4
  var getWalletProviderByKey = require('./getWalletProviderByKey.cjs.js');
5
5
 
6
- class NotWaasWalletAccountError extends getChainFromVerifiedCredentialChain.BaseError {
7
- constructor({ walletAddress }){
8
- super({
9
- cause: null,
10
- code: 'not_waas_wallet_account_error',
11
- docsUrl: null,
12
- name: 'NotWaasWalletAccountError',
13
- shortMessage: `Wallet account ${walletAddress} is not a Dynamic WaaS wallet account`
14
- });
15
- }
16
- }
17
-
18
6
  /**
19
7
  * Refreshes the current user's data from the server.
20
8
  *
@@ -23,9 +11,9 @@ class NotWaasWalletAccountError extends getChainFromVerifiedCredentialChain.Base
23
11
  *
24
12
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
25
13
  * @returns A promise that resolves when the user data is refreshed.
26
- */ const refreshUser = async (client = getChainFromVerifiedCredentialChain.getDefaultClient())=>{
27
- const core = getChainFromVerifiedCredentialChain.getCore(client);
28
- const apiClient = getChainFromVerifiedCredentialChain.createApiClient({}, client);
14
+ */ const refreshUser = async (client = logout.getDefaultClient())=>{
15
+ const core = logout.getCore(client);
16
+ const apiClient = logout.createApiClient({}, client);
29
17
  const response = await apiClient.refreshAuth({
30
18
  environmentId: core.environmentId
31
19
  });
@@ -34,5 +22,17 @@ class NotWaasWalletAccountError extends getChainFromVerifiedCredentialChain.Base
34
22
  }, client);
35
23
  };
36
24
 
25
+ class NotWaasWalletAccountError extends logout.BaseError {
26
+ constructor({ walletAddress }){
27
+ super({
28
+ cause: null,
29
+ code: 'not_waas_wallet_account_error',
30
+ docsUrl: null,
31
+ name: 'NotWaasWalletAccountError',
32
+ shortMessage: `Wallet account ${walletAddress} is not a Dynamic WaaS wallet account`
33
+ });
34
+ }
35
+ }
36
+
37
37
  exports.NotWaasWalletAccountError = NotWaasWalletAccountError;
38
38
  exports.refreshUser = refreshUser;
@@ -1,18 +1,6 @@
1
- import { B as BaseError, g as getDefaultClient, a as getCore, c as createApiClient } from './getChainFromVerifiedCredentialChain.esm.js';
1
+ import { a as getDefaultClient, g as getCore, h as createApiClient, B as BaseError } from './logout.esm.js';
2
2
  import { u as updateAuthFromVerifyResponse } from './getWalletProviderByKey.esm.js';
3
3
 
4
- class NotWaasWalletAccountError extends BaseError {
5
- constructor({ walletAddress }){
6
- super({
7
- cause: null,
8
- code: 'not_waas_wallet_account_error',
9
- docsUrl: null,
10
- name: 'NotWaasWalletAccountError',
11
- shortMessage: `Wallet account ${walletAddress} is not a Dynamic WaaS wallet account`
12
- });
13
- }
14
- }
15
-
16
4
  /**
17
5
  * Refreshes the current user's data from the server.
18
6
  *
@@ -32,4 +20,16 @@ class NotWaasWalletAccountError extends BaseError {
32
20
  }, client);
33
21
  };
34
22
 
23
+ class NotWaasWalletAccountError extends BaseError {
24
+ constructor({ walletAddress }){
25
+ super({
26
+ cause: null,
27
+ code: 'not_waas_wallet_account_error',
28
+ docsUrl: null,
29
+ name: 'NotWaasWalletAccountError',
30
+ shortMessage: `Wallet account ${walletAddress} is not a Dynamic WaaS wallet account`
31
+ });
32
+ }
33
+ }
34
+
35
35
  export { NotWaasWalletAccountError as N, refreshUser as r };
package/core.cjs.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var assertPackageVersion = require('@dynamic-labs-sdk/assert-package-version');
4
- var getChainFromVerifiedCredentialChain = require('./getChainFromVerifiedCredentialChain.cjs.js');
4
+ var logout = require('./logout.cjs.js');
5
5
  var getNetworkProviderFromNetworkId = require('./getNetworkProviderFromNetworkId.cjs.js');
6
6
  var getWalletProviderByKey = require('./getWalletProviderByKey.cjs.js');
7
7
  var getSignedSessionId = require('./getSignedSessionId.cjs.js');
@@ -30,7 +30,7 @@ function _interopNamespaceDefault(e) {
30
30
 
31
31
  var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
32
32
 
33
- class ClientsDoNotMatchError extends getChainFromVerifiedCredentialChain.BaseError {
33
+ class ClientsDoNotMatchError extends logout.BaseError {
34
34
  constructor(){
35
35
  super({
36
36
  cause: null,
@@ -42,7 +42,7 @@ class ClientsDoNotMatchError extends getChainFromVerifiedCredentialChain.BaseErr
42
42
  }
43
43
  }
44
44
 
45
- class MethodNotImplementedError extends getChainFromVerifiedCredentialChain.BaseError {
45
+ class MethodNotImplementedError extends logout.BaseError {
46
46
  constructor(methodName){
47
47
  super({
48
48
  cause: null,
@@ -54,7 +54,7 @@ class MethodNotImplementedError extends getChainFromVerifiedCredentialChain.Base
54
54
  }
55
55
  }
56
56
 
57
- class MultipleClientsFoundError extends getChainFromVerifiedCredentialChain.BaseError {
57
+ class MultipleClientsFoundError extends logout.BaseError {
58
58
  constructor(){
59
59
  super({
60
60
  cause: null,
@@ -76,7 +76,7 @@ class MultipleClientsFoundError extends getChainFromVerifiedCredentialChain.Base
76
76
  * @param extensionKey - The key of the extension to register.
77
77
  * @returns The client instance.
78
78
  */ const registerExtension = ({ extensionKey }, client)=>{
79
- const core = getChainFromVerifiedCredentialChain.getCore(client);
79
+ const core = logout.getCore(client);
80
80
  core.extensions.add(extensionKey);
81
81
  };
82
82
 
@@ -92,7 +92,7 @@ const createBaseNetworkProvider = (chain, networkData)=>({
92
92
  testnet: networkData.testnet
93
93
  });
94
94
 
95
- const networkRegistrySchema = getNetworkProviderFromNetworkId.createStorageKeySchema({
95
+ const networkRegistrySchema = logout.createStorageKeySchema({
96
96
  key: 'lastKnownNetworkRegistry',
97
97
  schema: z__namespace.record(z__namespace.string(), z__namespace.string())
98
98
  });
@@ -104,7 +104,7 @@ const networkRegistrySchema = getNetworkProviderFromNetworkId.createStorageKeySc
104
104
  * Reminder that this will not be used for chains that have an internal way to
105
105
  * switch networks (ex EVM).
106
106
  */ const createLastKnownNetworkRegistry = (client)=>{
107
- const core = getChainFromVerifiedCredentialChain.getCore(client);
107
+ const core = logout.getCore(client);
108
108
  const walletProviderKeyToNetworkId = new Map();
109
109
  const getNetworkId = async ({ walletProviderKey })=>{
110
110
  // Priorities:
@@ -132,7 +132,7 @@ const networkRegistrySchema = getNetworkProviderFromNetworkId.createStorageKeySc
132
132
  throw new getNetworkProviderFromNetworkId.NoNetworkProvidersError();
133
133
  }
134
134
  const defaultNetworkProvider = networkProviders.find((networkProvider)=>networkProvider.chain === walletProvider.chain);
135
- getChainFromVerifiedCredentialChain.assertDefined(defaultNetworkProvider, `No networks found for chain ${walletProvider.chain}`);
135
+ logout.assertDefined(defaultNetworkProvider, `No networks found for chain ${walletProvider.chain}`);
136
136
  walletProviderKeyToNetworkId.set(walletProviderKey, defaultNetworkProvider.networkId);
137
137
  // No need to set in storage, as we're just falling back to the default
138
138
  return {
@@ -149,7 +149,7 @@ const networkRegistrySchema = getNetworkProviderFromNetworkId.createStorageKeySc
149
149
  };
150
150
  };
151
151
 
152
- const getLastKnownNetworkRegistry = getWalletProviderByKey.createRuntimeServiceAccessKey('last-known-network-registry', (client)=>createLastKnownNetworkRegistry(client));
152
+ const getLastKnownNetworkRegistry = logout.createRuntimeServiceAccessKey('last-known-network-registry', (client)=>createLastKnownNetworkRegistry(client));
153
153
 
154
154
  const formatWalletProviderGroupKey = (walletName)=>walletName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
155
155
 
@@ -180,15 +180,15 @@ const switchActiveNetworkInLastKnownRegistry = async ({ client, networkId, walle
180
180
  let eventEmitter;
181
181
  /** Value returned by setupEventListeners */ let setupReturnValue;
182
182
  const handleAccountsChanged = (params)=>{
183
- getChainFromVerifiedCredentialChain.assertDefined(eventEmitter, 'Event emitter not defined');
183
+ logout.assertDefined(eventEmitter, 'Event emitter not defined');
184
184
  eventEmitter.emit('accountsChanged', params);
185
185
  };
186
186
  const handleDisconnected = ()=>{
187
- getChainFromVerifiedCredentialChain.assertDefined(eventEmitter, 'Event emitter not defined');
187
+ logout.assertDefined(eventEmitter, 'Event emitter not defined');
188
188
  eventEmitter.emit('disconnected');
189
189
  };
190
190
  const handleNetworkChanged = (params)=>{
191
- getChainFromVerifiedCredentialChain.assertDefined(eventEmitter, 'Event emitter not defined');
191
+ logout.assertDefined(eventEmitter, 'Event emitter not defined');
192
192
  eventEmitter.emit('networkChanged', params);
193
193
  };
194
194
  const cleanupEventEmitter = ()=>{
@@ -201,7 +201,6 @@ const switchActiveNetworkInLastKnownRegistry = async ({ client, networkId, walle
201
201
  handleNetworkChanged,
202
202
  setupReturnValue
203
203
  });
204
- setupReturnValue = undefined;
205
204
  eventEmitter = undefined;
206
205
  };
207
206
  const getEventEmitter = ()=>{
@@ -225,26 +224,38 @@ const switchActiveNetworkInLastKnownRegistry = async ({ client, networkId, walle
225
224
 
226
225
  const bufferToBase64 = (buf)=>{
227
226
  const binstr = Array.prototype.map.call(buf, (ch)=>String.fromCharCode(ch)).join('');
228
- return getChainFromVerifiedCredentialChain.getBuffer().from(binstr, 'binary').toString('base64');
227
+ return logout.getBuffer().from(binstr, 'binary').toString('base64');
229
228
  };
230
229
 
231
- assertPackageVersion.assertPackageVersion(getChainFromVerifiedCredentialChain.name, getChainFromVerifiedCredentialChain.version);
230
+ assertPackageVersion.assertPackageVersion(logout.name, logout.version);
232
231
 
233
- exports.APIError = getChainFromVerifiedCredentialChain.APIError;
234
- exports.ClientNotFoundError = getChainFromVerifiedCredentialChain.ClientNotFoundError;
235
- exports.DYNAMIC_SDK_API_VERSION = getChainFromVerifiedCredentialChain.DYNAMIC_SDK_API_VERSION;
236
- exports.ValueMustBeDefinedError = getChainFromVerifiedCredentialChain.ValueMustBeDefinedError;
237
- exports.assertDefined = getChainFromVerifiedCredentialChain.assertDefined;
238
- exports.createApiClient = getChainFromVerifiedCredentialChain.createApiClient;
239
- exports.getBuffer = getChainFromVerifiedCredentialChain.getBuffer;
240
- exports.getChainFromVerifiedCredentialChain = getChainFromVerifiedCredentialChain.getChainFromVerifiedCredentialChain;
241
- exports.getCore = getChainFromVerifiedCredentialChain.getCore;
242
- exports.getDefaultClient = getChainFromVerifiedCredentialChain.getDefaultClient;
243
- exports.isCookieEnabled = getChainFromVerifiedCredentialChain.isCookieEnabled;
232
+ exports.APIError = logout.APIError;
233
+ exports.ClientNotFoundError = logout.ClientNotFoundError;
234
+ exports.DYNAMIC_SDK_API_VERSION = logout.DYNAMIC_SDK_API_VERSION;
235
+ exports.NoWalletProviderFoundError = logout.NoWalletProviderFoundError;
236
+ exports.ValueMustBeDefinedError = logout.ValueMustBeDefinedError;
237
+ Object.defineProperty(exports, "WalletProviderPriority", {
238
+ enumerable: true,
239
+ get: function () { return logout.WalletProviderPriority; }
240
+ });
241
+ exports.assertDefined = logout.assertDefined;
242
+ exports.createApiClient = logout.createApiClient;
243
+ exports.createRuntimeServiceAccessKey = logout.createRuntimeServiceAccessKey;
244
+ exports.emitEvent = logout.emitEvent;
245
+ exports.formatWalletProviderKey = logout.formatWalletProviderKey;
246
+ exports.getBuffer = logout.getBuffer;
247
+ exports.getChainFromVerifiedCredentialChain = logout.getChainFromVerifiedCredentialChain;
248
+ exports.getCore = logout.getCore;
249
+ exports.getDefaultClient = logout.getDefaultClient;
250
+ exports.getWalletProviderFromWalletAccount = logout.getWalletProviderFromWalletAccount;
251
+ exports.getWalletProviderRegistry = logout.getWalletProviderRegistry;
252
+ exports.isCookieEnabled = logout.isCookieEnabled;
244
253
  exports.CannotTrackError = getNetworkProviderFromNetworkId.CannotTrackError;
245
254
  exports.InvalidStorageSet = getNetworkProviderFromNetworkId.InvalidStorageSet;
246
255
  exports.consumeCaptchaToken = getNetworkProviderFromNetworkId.consumeCaptchaToken;
256
+ exports.createLocalStorageAdapter = getNetworkProviderFromNetworkId.createLocalStorageAdapter;
247
257
  exports.createLogger = getNetworkProviderFromNetworkId.createLogger;
258
+ exports.createStorage = getNetworkProviderFromNetworkId.createStorage;
248
259
  exports.formatSignInMessage = getNetworkProviderFromNetworkId.formatSignInMessage;
249
260
  exports.getNetworkProviderBuilderRegistry = getNetworkProviderFromNetworkId.getNetworkProviderBuilderRegistry;
250
261
  exports.getNetworkProviderFromNetworkId = getNetworkProviderFromNetworkId.getNetworkProviderFromNetworkId;
@@ -252,16 +263,6 @@ exports.getNetworkProviders = getNetworkProviderFromNetworkId.getNetworkProvider
252
263
  exports.hasExtension = getNetworkProviderFromNetworkId.hasExtension;
253
264
  exports.setCaptchaToken = getNetworkProviderFromNetworkId.setCaptchaToken;
254
265
  exports.subscribeWithSelector = getNetworkProviderFromNetworkId.subscribeWithSelector;
255
- exports.NoWalletProviderFoundError = getWalletProviderByKey.NoWalletProviderFoundError;
256
- Object.defineProperty(exports, "WalletProviderPriority", {
257
- enumerable: true,
258
- get: function () { return getWalletProviderByKey.WalletProviderPriority; }
259
- });
260
- exports.createRuntimeServiceAccessKey = getWalletProviderByKey.createRuntimeServiceAccessKey;
261
- exports.emitEvent = getWalletProviderByKey.emitEvent;
262
- exports.formatWalletProviderKey = getWalletProviderByKey.formatWalletProviderKey;
263
- exports.getWalletProviderFromWalletAccount = getWalletProviderByKey.getWalletProviderFromWalletAccount;
264
- exports.getWalletProviderRegistry = getWalletProviderByKey.getWalletProviderRegistry;
265
266
  exports.getWalletProviders = getWalletProviderByKey.getWalletProviders;
266
267
  exports.updateAuthFromVerifyResponse = getWalletProviderByKey.updateAuthFromVerifyResponse;
267
268
  exports.consumeMfaTokenIfRequiredForAction = getSignedSessionId.consumeMfaTokenIfRequiredForAction;
package/core.esm.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';
2
- import { B as BaseError, a as getCore, e as assertDefined, b as getBuffer, n as name, v as version } from './getChainFromVerifiedCredentialChain.esm.js';
3
- export { A as APIError, j as ClientNotFoundError, D as DYNAMIC_SDK_API_VERSION, V as ValueMustBeDefinedError, c as createApiClient, k as getChainFromVerifiedCredentialChain, g as getDefaultClient, i as isCookieEnabled } from './getChainFromVerifiedCredentialChain.esm.js';
4
- import { c as createStorageKeySchema, k as getNetworkProviders, N as NoNetworkProvidersError } from './getNetworkProviderFromNetworkId.esm.js';
5
- export { C as CannotTrackError, I as InvalidStorageSet, b as consumeCaptchaToken, a as createLogger, f as formatSignInMessage, l as getNetworkProviderBuilderRegistry, d as getNetworkProviderFromNetworkId, j as hasExtension, h as setCaptchaToken, s as subscribeWithSelector } from './getNetworkProviderFromNetworkId.esm.js';
6
- import { b as getWalletProviderByKey, j as createRuntimeServiceAccessKey } from './getWalletProviderByKey.esm.js';
7
- export { N as NoWalletProviderFoundError, W as WalletProviderPriority, e as emitEvent, k as formatWalletProviderKey, a as getWalletProviderFromWalletAccount, l as getWalletProviderRegistry, f as getWalletProviders, u as updateAuthFromVerifyResponse } from './getWalletProviderByKey.esm.js';
2
+ import { B as BaseError, g as getCore, c as createStorageKeySchema, j as assertDefined, y as createRuntimeServiceAccessKey, z as getBuffer, p as name, v as version } from './logout.esm.js';
3
+ export { A as APIError, D as ClientNotFoundError, E as DYNAMIC_SDK_API_VERSION, N as NoWalletProviderFoundError, V as ValueMustBeDefinedError, W as WalletProviderPriority, h as createApiClient, e as emitEvent, F as formatWalletProviderKey, H as getChainFromVerifiedCredentialChain, a as getDefaultClient, k as getWalletProviderFromWalletAccount, G as getWalletProviderRegistry, i as isCookieEnabled } from './logout.esm.js';
4
+ import { l as getNetworkProviders, N as NoNetworkProvidersError } from './getNetworkProviderFromNetworkId.esm.js';
5
+ export { C as CannotTrackError, I as InvalidStorageSet, d as consumeCaptchaToken, b as createLocalStorageAdapter, c as createLogger, a as createStorage, f as formatSignInMessage, m as getNetworkProviderBuilderRegistry, e as getNetworkProviderFromNetworkId, k as hasExtension, j as setCaptchaToken, s as subscribeWithSelector } from './getNetworkProviderFromNetworkId.esm.js';
6
+ import { g as getWalletProviderByKey } from './getWalletProviderByKey.esm.js';
7
+ export { a as getWalletProviders, u as updateAuthFromVerifyResponse } from './getWalletProviderByKey.esm.js';
8
8
  export { c as consumeMfaTokenIfRequiredForAction, g as getSignedSessionId } from './getSignedSessionId.esm.js';
9
9
  import * as z from 'zod/mini';
10
10
  import EventEmitter from 'eventemitter3';
@@ -183,7 +183,6 @@ const switchActiveNetworkInLastKnownRegistry = async ({ client, networkId, walle
183
183
  handleNetworkChanged,
184
184
  setupReturnValue
185
185
  });
186
- setupReturnValue = undefined;
187
186
  eventEmitter = undefined;
188
187
  };
189
188
  const getEventEmitter = ()=>{
@@ -1,8 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var getChainFromVerifiedCredentialChain = require('./getChainFromVerifiedCredentialChain.cjs.js');
3
+ var logout = require('./logout.cjs.js');
4
4
  var EventEmitter = require('eventemitter3');
5
- var getWalletProviderByKey = require('./getWalletProviderByKey.cjs.js');
6
5
 
7
6
  /**
8
7
  * Shallow compare two objects.
@@ -56,11 +55,15 @@ var getWalletProviderByKey = require('./getWalletProviderByKey.cjs.js');
56
55
  });
57
56
  };
58
57
 
59
- const createStorageKeySchema = (params)=>{
60
- return params;
61
- };
58
+ /* eslint-disable no-restricted-globals -- this is the abstraction for localStorage */ /**
59
+ * Creates a localStorage adapter
60
+ */ const createLocalStorageAdapter = ()=>({
61
+ getItem: async (key)=>localStorage.getItem(key),
62
+ removeItem: async (key)=>localStorage.removeItem(key),
63
+ setItem: async (key, value)=>localStorage.setItem(key, value)
64
+ });
62
65
 
63
- class InvalidStorageSet extends getChainFromVerifiedCredentialChain.BaseError {
66
+ class InvalidStorageSet extends logout.BaseError {
64
67
  constructor({ key, value }){
65
68
  super({
66
69
  cause: null,
@@ -76,7 +79,85 @@ class InvalidStorageSet extends getChainFromVerifiedCredentialChain.BaseError {
76
79
  }
77
80
  }
78
81
 
79
- class CannotTrackError extends getChainFromVerifiedCredentialChain.BaseError {
82
+ /**
83
+ * Returns whether the given string is a valid ISO date string.
84
+ *
85
+ * Does not support timezone offsets.
86
+ */ const isValidDateISOString = (value)=>{
87
+ const date = new Date(value);
88
+ return !isNaN(date.getTime()) && date.toISOString() === value;
89
+ };
90
+
91
+ const DATE_PREFIX = '__DATE__';
92
+ const formatForStorage = (value)=>{
93
+ const item = {
94
+ value
95
+ };
96
+ return JSON.stringify(item, (_, entry)=>{
97
+ // You might think that entry here would be a Date and one could simply do "entry instanceof Date",
98
+ // but actually it will be a string already (no idea why JSON.stringify does this)
99
+ if (isValidDateISOString(entry)) {
100
+ return `${DATE_PREFIX}${entry}`;
101
+ }
102
+ return entry;
103
+ });
104
+ };
105
+ const parseFromStorage = (value)=>{
106
+ try {
107
+ const parsed = JSON.parse(value, (_, entry)=>{
108
+ if (typeof entry === 'string' && entry.startsWith(DATE_PREFIX)) {
109
+ return new Date(entry.slice(DATE_PREFIX.length));
110
+ }
111
+ return entry;
112
+ });
113
+ return parsed;
114
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
115
+ } catch (error) {
116
+ return null;
117
+ }
118
+ };
119
+
120
+ /**
121
+ * Creates a Storage service to interact with storage adapter
122
+ */ const createStorage = ({ prefix = '', storageAdapter })=>{
123
+ const getPrefixedKey = (key)=>prefix ? `${prefix}_${key}` : key;
124
+ return {
125
+ getItem: async (storageKeySchema)=>{
126
+ const rawItem = await storageAdapter.getItem(getPrefixedKey(storageKeySchema.key));
127
+ const parsedItem = rawItem ? parseFromStorage(rawItem) : null;
128
+ /**
129
+ * The item saved to localStorage may be malformed.
130
+ * In this case, we remove it and return null.
131
+ */ if (parsedItem !== null) {
132
+ const parsed = storageKeySchema.schema.safeParse(parsedItem.value);
133
+ if (parsed.success) {
134
+ return parsed.data;
135
+ }
136
+ }
137
+ /**
138
+ * The item saved to localStorage may be malformed.
139
+ * In this case, we remove it and return null.
140
+ */ await storageAdapter.removeItem(getPrefixedKey(storageKeySchema.key));
141
+ return null;
142
+ },
143
+ removeItem: async (storageKeySchema)=>{
144
+ await storageAdapter.removeItem(getPrefixedKey(storageKeySchema.key));
145
+ },
146
+ setItem: async (storageKeySchema, value)=>{
147
+ const parsed = storageKeySchema.schema.safeParse(value);
148
+ if (!parsed.success) {
149
+ throw new InvalidStorageSet({
150
+ key: storageKeySchema.key,
151
+ value: JSON.stringify(value)
152
+ });
153
+ }
154
+ const item = formatForStorage(parsed.data);
155
+ await storageAdapter.setItem(getPrefixedKey(storageKeySchema.key), item);
156
+ }
157
+ };
158
+ };
159
+
160
+ class CannotTrackError extends logout.BaseError {
80
161
  constructor(){
81
162
  super({
82
163
  cause: null,
@@ -131,7 +212,7 @@ const defaultConsole = console;
131
212
  };
132
213
  };
133
214
 
134
- class NoNetworkProvidersError extends getChainFromVerifiedCredentialChain.BaseError {
215
+ class NoNetworkProvidersError extends logout.BaseError {
135
216
  constructor(){
136
217
  super({
137
218
  cause: null,
@@ -143,10 +224,10 @@ class NoNetworkProvidersError extends getChainFromVerifiedCredentialChain.BaseEr
143
224
  }
144
225
  }
145
226
 
146
- const isCaptchaRequired = (client = getChainFromVerifiedCredentialChain.getDefaultClient())=>{
227
+ const isCaptchaRequired = (client = logout.getDefaultClient())=>{
147
228
  var _projectSettings_security_hCaptcha;
148
229
  const projectSettings = client.projectSettings;
149
- getChainFromVerifiedCredentialChain.assertDefined(projectSettings, 'Project settings are not available');
230
+ logout.assertDefined(projectSettings, 'Project settings are not available');
150
231
  var _projectSettings_security_hCaptcha_enabled;
151
232
  return (_projectSettings_security_hCaptcha_enabled = (_projectSettings_security_hCaptcha = projectSettings.security.hCaptcha) == null ? void 0 : _projectSettings_security_hCaptcha.enabled) != null ? _projectSettings_security_hCaptcha_enabled : false;
152
233
  };
@@ -154,10 +235,10 @@ const isCaptchaRequired = (client = getChainFromVerifiedCredentialChain.getDefau
154
235
  /**
155
236
  * Retrieves the current captcha token from the client state and sets it to null.
156
237
  */ const consumeCaptchaToken = (client)=>{
157
- const core = getChainFromVerifiedCredentialChain.getCore(client);
238
+ const core = logout.getCore(client);
158
239
  const captchaToken = core.state.get().captchaToken;
159
240
  if (isCaptchaRequired(client)) {
160
- getChainFromVerifiedCredentialChain.assertDefined(captchaToken, 'Captcha token is required');
241
+ logout.assertDefined(captchaToken, 'Captcha token is required');
161
242
  }
162
243
  core.state.set({
163
244
  captchaToken: null
@@ -170,8 +251,8 @@ const isCaptchaRequired = (client = getChainFromVerifiedCredentialChain.getDefau
170
251
  *
171
252
  * @param params.captchaToken - The captcha token to set.
172
253
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
173
- */ const setCaptchaToken = ({ captchaToken }, client = getChainFromVerifiedCredentialChain.getDefaultClient())=>{
174
- const core = getChainFromVerifiedCredentialChain.getCore(client);
254
+ */ const setCaptchaToken = ({ captchaToken }, client = logout.getDefaultClient())=>{
255
+ const core = logout.getCore(client);
175
256
  core.state.set({
176
257
  captchaToken
177
258
  });
@@ -186,8 +267,8 @@ const isCaptchaRequired = (client = getChainFromVerifiedCredentialChain.getDefau
186
267
  * @param params.extensionKey - The unique key identifying the extension to check for.
187
268
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
188
269
  * @returns True if the extension is applied, false otherwise.
189
- */ const hasExtension = ({ extensionKey }, client = getChainFromVerifiedCredentialChain.getDefaultClient())=>{
190
- const core = getChainFromVerifiedCredentialChain.getCore(client);
270
+ */ const hasExtension = ({ extensionKey }, client = logout.getDefaultClient())=>{
271
+ const core = logout.getCore(client);
191
272
  return core.extensions.has(extensionKey);
192
273
  };
193
274
 
@@ -234,8 +315,8 @@ const isCaptchaRequired = (client = getChainFromVerifiedCredentialChain.getDefau
234
315
  /**
235
316
  * Maps the chain name from the API to the SDK chain name
236
317
  */ const getSdkChainFromApiChainName = (chainName)=>{
237
- const chains = Object.keys(getChainFromVerifiedCredentialChain.CHAINS_INFO_MAP);
238
- const chain = chains.find((chain)=>getChainFromVerifiedCredentialChain.CHAINS_INFO_MAP[chain].apiChainName === chainName);
318
+ const chains = Object.keys(logout.CHAINS_INFO_MAP);
319
+ const chain = chains.find((chain)=>logout.CHAINS_INFO_MAP[chain].apiChainName === chainName);
239
320
  return chain || null;
240
321
  };
241
322
 
@@ -247,10 +328,10 @@ const isCaptchaRequired = (client = getChainFromVerifiedCredentialChain.getDefau
247
328
  *
248
329
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
249
330
  * @returns An array of network configuration data for all enabled networks.
250
- */ const getNetworksData = (client = getChainFromVerifiedCredentialChain.getDefaultClient())=>{
251
- const { state } = getChainFromVerifiedCredentialChain.getCore(client);
331
+ */ const getNetworksData = (client = logout.getDefaultClient())=>{
332
+ const { state } = logout.getCore(client);
252
333
  const { projectSettings } = state.get();
253
- getChainFromVerifiedCredentialChain.assertDefined(projectSettings, 'projectSettings not found');
334
+ logout.assertDefined(projectSettings, 'projectSettings not found');
254
335
  const networks = projectSettings.networks;
255
336
  if (!networks) {
256
337
  return [];
@@ -299,7 +380,7 @@ const createNetworkProviderBuilderRegistry = ()=>{
299
380
  };
300
381
  };
301
382
 
302
- const getNetworkProviderBuilderRegistry = getWalletProviderByKey.createRuntimeServiceAccessKey('networkProviderBuilderRegistry', createNetworkProviderBuilderRegistry);
383
+ const getNetworkProviderBuilderRegistry = logout.createRuntimeServiceAccessKey('networkProviderBuilderRegistry', createNetworkProviderBuilderRegistry);
303
384
 
304
385
  /**
305
386
  * Retrieves all registered network providers for enabled chains.
@@ -320,7 +401,7 @@ const getNetworkProviderFromNetworkId = ({ networkId, chain }, client)=>{
320
401
  throw new NoNetworkProvidersError();
321
402
  }
322
403
  const networkProvider = networkProviders.find((networkProvider)=>networkProvider.networkId === networkId && networkProvider.chain === chain);
323
- getChainFromVerifiedCredentialChain.assertDefined(networkProvider, `No network provider found for chain ${chain} with network id ${networkId}`);
404
+ logout.assertDefined(networkProvider, `No network provider found for chain ${chain} with network id ${networkId}`);
324
405
  return networkProvider;
325
406
  };
326
407
 
@@ -328,8 +409,9 @@ exports.CannotTrackError = CannotTrackError;
328
409
  exports.InvalidStorageSet = InvalidStorageSet;
329
410
  exports.NoNetworkProvidersError = NoNetworkProvidersError;
330
411
  exports.consumeCaptchaToken = consumeCaptchaToken;
412
+ exports.createLocalStorageAdapter = createLocalStorageAdapter;
331
413
  exports.createLogger = createLogger;
332
- exports.createStorageKeySchema = createStorageKeySchema;
414
+ exports.createStorage = createStorage;
333
415
  exports.formatSignInMessage = formatSignInMessage;
334
416
  exports.getNetworkProviderBuilderRegistry = getNetworkProviderBuilderRegistry;
335
417
  exports.getNetworkProviderFromNetworkId = getNetworkProviderFromNetworkId;