@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.
- package/CHANGELOG.md +24 -0
- package/InvalidParamError.cjs.js +2 -2
- package/InvalidParamError.esm.js +1 -1
- package/{refreshUser.cjs.js → NotWaasWalletAccountError.cjs.js} +16 -16
- package/{refreshUser.esm.js → NotWaasWalletAccountError.esm.js} +13 -13
- package/core.cjs.js +37 -36
- package/core.esm.js +6 -7
- package/getNetworkProviderFromNetworkId.cjs.js +106 -24
- package/getNetworkProviderFromNetworkId.esm.js +87 -6
- package/getSignedSessionId.cjs.js +7 -7
- package/getSignedSessionId.esm.js +2 -2
- package/getWalletProviderByKey.cjs.js +11 -324
- package/getWalletProviderByKey.esm.js +2 -301
- package/index.cjs.js +300 -543
- package/index.esm.js +90 -336
- package/isMfaRequiredForAction.cjs.js +8 -15
- package/isMfaRequiredForAction.esm.js +2 -8
- package/logout.cjs.js +1086 -0
- package/logout.esm.js +1020 -0
- package/package.json +5 -5
- package/src/client/core/createCore/createCore.d.ts.map +1 -1
- package/src/client/core/types/DynamicCoreConfig.d.ts +4 -1
- package/src/client/core/types/DynamicCoreConfig.d.ts.map +1 -1
- package/src/exports/core.d.ts +1 -0
- package/src/exports/core.d.ts.map +1 -1
- package/src/exports/index.d.ts +3 -0
- package/src/exports/index.d.ts.map +1 -1
- package/src/modules/apiClient/createApiClient.d.ts.map +1 -1
- package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts +2 -0
- package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts.map +1 -0
- package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts +4 -0
- package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts.map +1 -0
- package/src/modules/auth/logout/logout.d.ts.map +1 -1
- package/src/modules/initializeClient/initializeClient.d.ts.map +1 -1
- package/src/modules/initializeClient/waitForClientInitialized/index.d.ts +2 -0
- package/src/modules/initializeClient/waitForClientInitialized/index.d.ts.map +1 -0
- package/src/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.d.ts +8 -0
- package/src/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.d.ts.map +1 -0
- package/src/modules/sessionKeys/generateSessionKeys/generateSessionKeys.d.ts.map +1 -1
- package/src/modules/wallets/primaryWalletAccount/selectPrimaryWalletAccount/selectPrimaryWalletAccount.d.ts.map +1 -1
- package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/index.d.ts +2 -0
- package/src/modules/wallets/unverifiedWalletAccounts/{addUnverifiedWalletAccounts → setUnverifiedWalletAccounts}/index.d.ts.map +1 -1
- package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts +11 -0
- package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts.map +1 -0
- package/src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.d.ts +7 -5
- package/src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.d.ts.map +1 -1
- package/src/modules/wallets/walletProvider/walletProvider.types.d.ts +10 -4
- package/src/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
- package/src/modules/wallets/walletProviderRegistry/createWalletProviderRegistry/createWalletProviderRegistry.d.ts.map +1 -1
- package/src/modules/wallets/walletProviderRegistry/events.d.ts +6 -0
- package/src/modules/wallets/walletProviderRegistry/events.d.ts.map +1 -1
- package/src/modules/wallets/walletProviderRegistry/walletProviderRegistry.types.d.ts +18 -0
- package/src/modules/wallets/walletProviderRegistry/walletProviderRegistry.types.d.ts.map +1 -1
- package/src/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.d.ts +6 -0
- package/src/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.d.ts.map +1 -0
- package/src/services/storage/createLocalStorageAdapter/index.d.ts +2 -0
- package/src/services/storage/createLocalStorageAdapter/index.d.ts.map +1 -0
- package/src/services/storage/createStorage/createStorage.d.ts +11 -0
- package/src/services/storage/createStorage/createStorage.d.ts.map +1 -0
- package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/index.d.ts.map +1 -1
- package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/isValidDateISOString/index.d.ts.map +1 -1
- package/src/services/storage/createStorage/formatForStorage/isValidDateISOString/isValidDateISOString.d.ts.map +1 -0
- package/src/services/storage/createStorage/formatForStorage/storageFormat.d.ts.map +1 -0
- package/src/services/storage/createStorage/index.d.ts +2 -0
- package/src/services/storage/createStorage/index.d.ts.map +1 -0
- package/src/services/storage/index.d.ts +3 -1
- package/src/services/storage/index.d.ts.map +1 -1
- package/src/services/storage/storage.types.d.ts +11 -1
- package/src/services/storage/storage.types.d.ts.map +1 -1
- package/src/utils/isMobile/index.d.ts +2 -0
- package/src/utils/isMobile/index.d.ts.map +1 -0
- package/src/utils/isMobile/isMobile.d.ts +20 -0
- package/src/utils/isMobile/isMobile.d.ts.map +1 -0
- package/src/utils/retryOnFail/retryOnFail.d.ts.map +1 -1
- package/waas.cjs.js +28 -27
- package/waas.esm.js +4 -3
- package/waasCore.cjs.js +9 -8
- package/waasCore.esm.js +2 -1
- package/getChainFromVerifiedCredentialChain.cjs.js +0 -473
- package/getChainFromVerifiedCredentialChain.esm.js +0 -447
- package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/addUnverifiedWalletAccounts.d.ts +0 -11
- package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/addUnverifiedWalletAccounts.d.ts.map +0 -1
- package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/index.d.ts +0 -2
- package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/index.d.ts +0 -2
- package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/index.d.ts.map +0 -1
- package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/setUnverifiedWalletAccount.d.ts +0 -11
- package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/setUnverifiedWalletAccount.d.ts.map +0 -1
- package/src/services/storage/createWebStorage/createWebStorage.d.ts +0 -10
- package/src/services/storage/createWebStorage/createWebStorage.d.ts.map +0 -1
- package/src/services/storage/createWebStorage/formatForStorage/isValidDateISOString/isValidDateISOString.d.ts.map +0 -1
- package/src/services/storage/createWebStorage/formatForStorage/storageFormat.d.ts.map +0 -1
- package/src/services/storage/createWebStorage/index.d.ts +0 -3
- package/src/services/storage/createWebStorage/index.d.ts.map +0 -1
- /package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/index.d.ts +0 -0
- /package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/isValidDateISOString/index.d.ts +0 -0
- /package/src/services/storage/{createWebStorage → createStorage}/formatForStorage/isValidDateISOString/isValidDateISOString.d.ts +0 -0
- /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
|
package/InvalidParamError.cjs.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var logout = require('./logout.cjs.js');
|
|
4
4
|
|
|
5
|
-
class InvalidParamError extends
|
|
5
|
+
class InvalidParamError extends logout.BaseError {
|
|
6
6
|
constructor(message){
|
|
7
7
|
super({
|
|
8
8
|
cause: null,
|
package/InvalidParamError.esm.js
CHANGED
|
@@ -1,20 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
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 =
|
|
27
|
-
const core =
|
|
28
|
-
const apiClient =
|
|
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 {
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
183
|
+
logout.assertDefined(eventEmitter, 'Event emitter not defined');
|
|
184
184
|
eventEmitter.emit('accountsChanged', params);
|
|
185
185
|
};
|
|
186
186
|
const handleDisconnected = ()=>{
|
|
187
|
-
|
|
187
|
+
logout.assertDefined(eventEmitter, 'Event emitter not defined');
|
|
188
188
|
eventEmitter.emit('disconnected');
|
|
189
189
|
};
|
|
190
190
|
const handleNetworkChanged = (params)=>{
|
|
191
|
-
|
|
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
|
|
227
|
+
return logout.getBuffer().from(binstr, 'binary').toString('base64');
|
|
229
228
|
};
|
|
230
229
|
|
|
231
|
-
assertPackageVersion.assertPackageVersion(
|
|
230
|
+
assertPackageVersion.assertPackageVersion(logout.name, logout.version);
|
|
232
231
|
|
|
233
|
-
exports.APIError =
|
|
234
|
-
exports.ClientNotFoundError =
|
|
235
|
-
exports.DYNAMIC_SDK_API_VERSION =
|
|
236
|
-
exports.
|
|
237
|
-
exports.
|
|
238
|
-
exports
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
exports.
|
|
243
|
-
exports.
|
|
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,
|
|
3
|
-
export { A as APIError,
|
|
4
|
-
import {
|
|
5
|
-
export { C as CannotTrackError, I as InvalidStorageSet,
|
|
6
|
-
import {
|
|
7
|
-
export {
|
|
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
|
|
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
|
-
|
|
60
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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 =
|
|
227
|
+
const isCaptchaRequired = (client = logout.getDefaultClient())=>{
|
|
147
228
|
var _projectSettings_security_hCaptcha;
|
|
148
229
|
const projectSettings = client.projectSettings;
|
|
149
|
-
|
|
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 =
|
|
238
|
+
const core = logout.getCore(client);
|
|
158
239
|
const captchaToken = core.state.get().captchaToken;
|
|
159
240
|
if (isCaptchaRequired(client)) {
|
|
160
|
-
|
|
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 =
|
|
174
|
-
const core =
|
|
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 =
|
|
190
|
-
const core =
|
|
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(
|
|
238
|
-
const chain = chains.find((chain)=>
|
|
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 =
|
|
251
|
-
const { state } =
|
|
331
|
+
*/ const getNetworksData = (client = logout.getDefaultClient())=>{
|
|
332
|
+
const { state } = logout.getCore(client);
|
|
252
333
|
const { projectSettings } = state.get();
|
|
253
|
-
|
|
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 =
|
|
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
|
-
|
|
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.
|
|
414
|
+
exports.createStorage = createStorage;
|
|
333
415
|
exports.formatSignInMessage = formatSignInMessage;
|
|
334
416
|
exports.getNetworkProviderBuilderRegistry = getNetworkProviderBuilderRegistry;
|
|
335
417
|
exports.getNetworkProviderFromNetworkId = getNetworkProviderFromNetworkId;
|