@dynamic-labs/client 4.72.0 → 4.76.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.
- package/CHANGELOG.md +69 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +9 -9
- package/src/client/core/core.cjs +5 -0
- package/src/client/core/core.d.ts +4 -0
- package/src/client/core/core.js +5 -0
- package/src/modules/sdkModule/sdkModule.cjs +15 -2
- package/src/modules/sdkModule/sdkModule.d.ts +1 -0
- package/src/modules/sdkModule/sdkModule.js +15 -2
- package/src/utils/randomString/index.d.ts +1 -0
- package/src/utils/randomString/randomString.cjs +18 -0
- package/src/utils/randomString/randomString.d.ts +7 -0
- package/src/utils/randomString/randomString.js +14 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,73 @@
|
|
|
1
1
|
|
|
2
|
+
## [4.76.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.75.0...v4.76.0) (2026-04-06)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* handle credential_not_enabled_for_sign_in error across all sign-in methods ([#10819](https://github.com/dynamic-labs/dynamic-auth/issues/10819)) ([f694b85](https://github.com/dynamic-labs/dynamic-auth/commit/f694b857eab9d377626078d290473ca369652331))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* modal transition race condition (opacity stuck at 0) ([#10857](https://github.com/dynamic-labs/dynamic-auth/issues/10857)) ([6e9ec68](https://github.com/dynamic-labs/dynamic-auth/commit/6e9ec68040776cc5be333ad20ad0096374947b74))
|
|
13
|
+
* **react-native:** ensure session is correctly mapped ([#10860](https://github.com/dynamic-labs/dynamic-auth/issues/10860)) ([117b013](https://github.com/dynamic-labs/dynamic-auth/commit/117b013faf9a0d4bc6b8429a36d8e88dba546889))
|
|
14
|
+
|
|
15
|
+
## [4.75.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.74.1...v4.75.0) (2026-04-03)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **midnight:** add midnight base package scaffolding ([#10850](https://github.com/dynamic-labs/dynamic-auth/issues/10850)) ([5844849](https://github.com/dynamic-labs/dynamic-auth/commit/584484916cf49d7ec46ec5cf862e2e6b8308d90f))
|
|
21
|
+
* **tempo:** add FeeTokenSelector component for fee token selection ([#10842](https://github.com/dynamic-labs/dynamic-auth/issues/10842)) ([18bc637](https://github.com/dynamic-labs/dynamic-auth/commit/18bc6374bea6eeff6656edaa725b0620bc8b36dd))
|
|
22
|
+
|
|
23
|
+
### [4.74.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.74.0...v4.74.1) (2026-04-02)
|
|
24
|
+
|
|
25
|
+
This was a version bump only, there were no code changes.
|
|
26
|
+
|
|
27
|
+
## [4.74.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.73.2...v4.74.0) (2026-04-02)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
* **client:** expose waitForReady() on SdkModule ([#10771](https://github.com/dynamic-labs/dynamic-auth/issues/10771)) ([8d94615](https://github.com/dynamic-labs/dynamic-auth/commit/8d946158ab284fe338c78cfba38504b1bca91cd7))
|
|
33
|
+
* **waas:** wire up signed session ID reverse channel ([#10577](https://github.com/dynamic-labs/dynamic-auth/issues/10577)) ([e07815f](https://github.com/dynamic-labs/dynamic-auth/commit/e07815ff370634c8a5a674cbf27bc79782a27f1a))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Bug Fixes
|
|
37
|
+
|
|
38
|
+
* **react-native:** keep WebView ref valid during URL reloads ([#10769](https://github.com/dynamic-labs/dynamic-auth/issues/10769)) ([691bef2](https://github.com/dynamic-labs/dynamic-auth/commit/691bef277c5190b7cd88d12f95e2b6fbfa827b64))
|
|
39
|
+
* require device registration before sdk is in logged in state ([#10831](https://github.com/dynamic-labs/dynamic-auth/issues/10831)) ([7ebae17](https://github.com/dynamic-labs/dynamic-auth/commit/7ebae17f01b9db59b88dd997d511ff84bd6b2d1a))
|
|
40
|
+
* **waas:** always prompt for password on cloud backup/export operations [DYNT-269] ([#10829](https://github.com/dynamic-labs/dynamic-auth/issues/10829)) ([5d2898b](https://github.com/dynamic-labs/dynamic-auth/commit/5d2898b9e6e06bbf13813b912b366f522fb66b70))
|
|
41
|
+
* **webview:** preserve secure storage key map during recovery clear ([#10770](https://github.com/dynamic-labs/dynamic-auth/issues/10770)) ([888bfe9](https://github.com/dynamic-labs/dynamic-auth/commit/888bfe9f27dd3b4751dddf2027a3e4d219130860))
|
|
42
|
+
|
|
43
|
+
### [4.73.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.73.1...v4.73.2) (2026-03-31)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Bug Fixes
|
|
47
|
+
|
|
48
|
+
* use initial URL for device registration redirect detection ([#10821](https://github.com/dynamic-labs/dynamic-auth/issues/10821)) ([dbec178](https://github.com/dynamic-labs/dynamic-auth/commit/dbec178e0bad9a7e99c529b79cb0fbe0fd347904))
|
|
49
|
+
|
|
50
|
+
### [4.73.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.73.0...v4.73.1) (2026-03-30)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
### Features
|
|
54
|
+
|
|
55
|
+
* **tempo:** add isTempoWallet type guard and TempoWallet class ([#10814](https://github.com/dynamic-labs/dynamic-auth/issues/10814)) ([1f2ec94](https://github.com/dynamic-labs/dynamic-auth/commit/1f2ec949bcfd25b2c460e07214041d06b172f12d))
|
|
56
|
+
|
|
57
|
+
## [4.73.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.72.0...v4.73.0) (2026-03-30)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Features
|
|
61
|
+
|
|
62
|
+
* allow passing credentialId at call time for step-up auth methods ([#10795](https://github.com/dynamic-labs/dynamic-auth/issues/10795)) ([9746667](https://github.com/dynamic-labs/dynamic-auth/commit/974666758ad8b01584cf30efbf2cb64dbde63986))
|
|
63
|
+
* **waas:** preserve WaaS key shares on session expiry using LogoutReason ([#10714](https://github.com/dynamic-labs/dynamic-auth/issues/10714)) ([26f40f7](https://github.com/dynamic-labs/dynamic-auth/commit/26f40f722302b8cf4cc035886d4408393a785283))
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### Bug Fixes
|
|
67
|
+
|
|
68
|
+
* override handlebars to >=4.7.9 (CVE-2026-33937) ([#10805](https://github.com/dynamic-labs/dynamic-auth/issues/10805)) ([7aa40b8](https://github.com/dynamic-labs/dynamic-auth/commit/7aa40b8472487694b438ae3a64b14524c9c726e4))
|
|
69
|
+
* use currentColor in settings icons for dark mode support ([#10811](https://github.com/dynamic-labs/dynamic-auth/issues/10811)) ([8653e97](https://github.com/dynamic-labs/dynamic-auth/commit/8653e97759f0ea5126258c1ced36ae26af3a405c)), closes [#383C48](https://github.com/dynamic-labs/dynamic-auth/issues/383C48) [#ABACB2](https://github.com/dynamic-labs/dynamic-auth/issues/ABACB2)
|
|
70
|
+
|
|
2
71
|
## [4.72.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.71.0...v4.72.0) (2026-03-26)
|
|
3
72
|
|
|
4
73
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/client",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.76.0",
|
|
4
4
|
"description": "Core package for utilizing Dynamic's sdk",
|
|
5
5
|
"author": "Dynamic Labs, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
"homepage": "https://www.dynamic.xyz/",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@vue/reactivity": "^3.4.21",
|
|
22
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
23
|
-
"@dynamic-labs/assert-package-version": "4.
|
|
24
|
-
"@dynamic-labs/locale": "4.
|
|
25
|
-
"@dynamic-labs/logger": "4.
|
|
26
|
-
"@dynamic-labs/message-transport": "4.
|
|
27
|
-
"@dynamic-labs/types": "4.
|
|
28
|
-
"@dynamic-labs/wallet-connector-core": "4.
|
|
29
|
-
"@dynamic-labs/webview-messages": "4.
|
|
22
|
+
"@dynamic-labs/sdk-api-core": "0.0.923",
|
|
23
|
+
"@dynamic-labs/assert-package-version": "4.76.0",
|
|
24
|
+
"@dynamic-labs/locale": "4.76.0",
|
|
25
|
+
"@dynamic-labs/logger": "4.76.0",
|
|
26
|
+
"@dynamic-labs/message-transport": "4.76.0",
|
|
27
|
+
"@dynamic-labs/types": "4.76.0",
|
|
28
|
+
"@dynamic-labs/wallet-connector-core": "4.76.0",
|
|
29
|
+
"@dynamic-labs/webview-messages": "4.76.0",
|
|
30
30
|
"eventemitter3": "5.0.1"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {}
|
package/src/client/core/core.cjs
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var reactivity = require('@vue/reactivity');
|
|
7
7
|
var messageTransport = require('@dynamic-labs/message-transport');
|
|
8
8
|
var webviewMessages = require('@dynamic-labs/webview-messages');
|
|
9
|
+
var randomString = require('../../utils/randomString/randomString.cjs');
|
|
9
10
|
var initializationModule = require('./modules/initializationModule/initializationModule.cjs');
|
|
10
11
|
var manifestModule = require('./modules/manifestModule/manifestModule.cjs');
|
|
11
12
|
|
|
@@ -42,6 +43,10 @@ const createCore = (props) => {
|
|
|
42
43
|
* The environment ID of the client
|
|
43
44
|
*/
|
|
44
45
|
environmentId: props.environmentId,
|
|
46
|
+
/**
|
|
47
|
+
* SDK session ID
|
|
48
|
+
*/
|
|
49
|
+
hostSdkSessionId: randomString.randomString({ length: 8 }),
|
|
45
50
|
/**
|
|
46
51
|
* SDK initialization module handles the initialization error
|
|
47
52
|
*/
|
|
@@ -25,6 +25,10 @@ export declare const createCore: (props: ClientProps) => {
|
|
|
25
25
|
* The environment ID of the client
|
|
26
26
|
*/
|
|
27
27
|
environmentId: string;
|
|
28
|
+
/**
|
|
29
|
+
* SDK session ID
|
|
30
|
+
*/
|
|
31
|
+
hostSdkSessionId: string;
|
|
28
32
|
/**
|
|
29
33
|
* SDK initialization module handles the initialization error
|
|
30
34
|
*/
|
package/src/client/core/core.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { reactive } from '@vue/reactivity';
|
|
3
3
|
import { applyRecoveryManager, applyDefaultMessageOrigin, makeWaitForInitEvent, applyTransportStamps, createMessageTransport } from '@dynamic-labs/message-transport';
|
|
4
4
|
import { sdkHasLoadedEventName } from '@dynamic-labs/webview-messages';
|
|
5
|
+
import { randomString } from '../../utils/randomString/randomString.js';
|
|
5
6
|
import { createInitializationModule } from './modules/initializationModule/initializationModule.js';
|
|
6
7
|
import { createManifestModule } from './modules/manifestModule/manifestModule.js';
|
|
7
8
|
|
|
@@ -38,6 +39,10 @@ const createCore = (props) => {
|
|
|
38
39
|
* The environment ID of the client
|
|
39
40
|
*/
|
|
40
41
|
environmentId: props.environmentId,
|
|
42
|
+
/**
|
|
43
|
+
* SDK session ID
|
|
44
|
+
*/
|
|
45
|
+
hostSdkSessionId: randomString({ length: 8 }),
|
|
41
46
|
/**
|
|
42
47
|
* SDK initialization module handles the initialization error
|
|
43
48
|
*/
|
|
@@ -21,9 +21,22 @@ const createSdkModule = (core) => {
|
|
|
21
21
|
reactivity.effect(() => core.initialization.error, {
|
|
22
22
|
scheduler: () => eventEmitter.emit('error', core.initialization.error),
|
|
23
23
|
});
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
const waitForReady = () => new Promise((resolve) => {
|
|
25
|
+
if (store.getters.loaded) {
|
|
26
|
+
resolve();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const listener = (loaded) => {
|
|
30
|
+
if (loaded) {
|
|
31
|
+
baseModule.off('loadedChanged', listener);
|
|
32
|
+
resolve();
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
baseModule.on('loadedChanged', listener);
|
|
26
36
|
});
|
|
37
|
+
return Object.assign(addProperty.addProperty(baseModule, 'error', {
|
|
38
|
+
get: () => core.initialization.error,
|
|
39
|
+
}), { waitForReady });
|
|
27
40
|
};
|
|
28
41
|
|
|
29
42
|
exports.createSdkModule = createSdkModule;
|
|
@@ -6,6 +6,7 @@ type ErrorEvent = {
|
|
|
6
6
|
};
|
|
7
7
|
export type SdkModule = SdkModuleState & StoreEventListeners<SdkModuleState> & PickedEventListeners<ErrorEvent> & {
|
|
8
8
|
readonly error: Error | null;
|
|
9
|
+
waitForReady: () => Promise<void>;
|
|
9
10
|
};
|
|
10
11
|
export declare const createSdkModule: (core: Core) => SdkModule;
|
|
11
12
|
export {};
|
|
@@ -17,9 +17,22 @@ const createSdkModule = (core) => {
|
|
|
17
17
|
effect(() => core.initialization.error, {
|
|
18
18
|
scheduler: () => eventEmitter.emit('error', core.initialization.error),
|
|
19
19
|
});
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const waitForReady = () => new Promise((resolve) => {
|
|
21
|
+
if (store.getters.loaded) {
|
|
22
|
+
resolve();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const listener = (loaded) => {
|
|
26
|
+
if (loaded) {
|
|
27
|
+
baseModule.off('loadedChanged', listener);
|
|
28
|
+
resolve();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
baseModule.on('loadedChanged', listener);
|
|
22
32
|
});
|
|
33
|
+
return Object.assign(addProperty(baseModule, 'error', {
|
|
34
|
+
get: () => core.initialization.error,
|
|
35
|
+
}), { waitForReady });
|
|
23
36
|
};
|
|
24
37
|
|
|
25
38
|
export { createSdkModule };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { randomString } from './randomString';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
const DEFAULT_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
7
|
+
/** @not-instrumented */
|
|
8
|
+
const randomString = ({ chars = DEFAULT_CHARS, length, }) => {
|
|
9
|
+
const bytes = new Uint8Array(length);
|
|
10
|
+
crypto.getRandomValues(bytes);
|
|
11
|
+
let result = '';
|
|
12
|
+
for (let i = 0; i < length; i++) {
|
|
13
|
+
result += chars[bytes[i] % chars.length];
|
|
14
|
+
}
|
|
15
|
+
return result;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports.randomString = randomString;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
const DEFAULT_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
3
|
+
/** @not-instrumented */
|
|
4
|
+
const randomString = ({ chars = DEFAULT_CHARS, length, }) => {
|
|
5
|
+
const bytes = new Uint8Array(length);
|
|
6
|
+
crypto.getRandomValues(bytes);
|
|
7
|
+
let result = '';
|
|
8
|
+
for (let i = 0; i < length; i++) {
|
|
9
|
+
result += chars[bytes[i] % chars.length];
|
|
10
|
+
}
|
|
11
|
+
return result;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { randomString };
|