@dynamic-labs/client 4.69.0 → 4.71.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 CHANGED
@@ -1,4 +1,38 @@
1
1
 
2
+ ## [4.71.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.70.0...v4.71.0) (2026-03-24)
3
+
4
+
5
+ ### Features
6
+
7
+ * add Tempo chain connector and core type definitions ([#10672](https://github.com/dynamic-labs/dynamic-auth/issues/10672)) ([0439c15](https://github.com/dynamic-labs/dynamic-auth/commit/0439c153238359083b9f226dcd2ebf6d83e26519))
8
+ * add verifySocial method to demo site step-up auth methods ([#10721](https://github.com/dynamic-labs/dynamic-auth/issues/10721)) ([b9ef517](https://github.com/dynamic-labs/dynamic-auth/commit/b9ef5173df3e3ed08f718de49b036ea899dc1832))
9
+ * **demo:** add Tempo chain support to demo app ([#10674](https://github.com/dynamic-labs/dynamic-auth/issues/10674)) ([a5918fc](https://github.com/dynamic-labs/dynamic-auth/commit/a5918fc2ab0821e7f025aa470573129f71de33cc))
10
+ * repurpose verifyWithExternalJwt for elevated access token requests ([#10743](https://github.com/dynamic-labs/dynamic-auth/issues/10743)) ([d1abda0](https://github.com/dynamic-labs/dynamic-auth/commit/d1abda0111d68c78226d30bd0630e6e341dedad9))
11
+ * **sdk:** add Tempo chain support to UI components ([#10673](https://github.com/dynamic-labs/dynamic-auth/issues/10673)) ([aec9fbb](https://github.com/dynamic-labs/dynamic-auth/commit/aec9fbb20754a2935bffe106e7e8715f46be3de7))
12
+ * support multi-chain wallet creation in createWallet ([#10694](https://github.com/dynamic-labs/dynamic-auth/issues/10694)) ([0b6b57f](https://github.com/dynamic-labs/dynamic-auth/commit/0b6b57f4179c35d1f86d1c8c9c40f52cb307c849))
13
+ * wire up elevatedAccessToken for sign, reshare, and refresh operations ([#10737](https://github.com/dynamic-labs/dynamic-auth/issues/10737)) ([f9d5c76](https://github.com/dynamic-labs/dynamic-auth/commit/f9d5c768037aff4f5d7994b6bc6c338621a6ee6b))
14
+
15
+ ## [4.70.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.69.0...v4.70.0) (2026-03-23)
16
+
17
+
18
+ ### Features
19
+
20
+ * add step-up auth for passkey and TOTP device deletion ([#10688](https://github.com/dynamic-labs/dynamic-auth/issues/10688)) ([aeae325](https://github.com/dynamic-labs/dynamic-auth/commit/aeae32551d3e29c59a1d183984f1d9f00f1df2cb))
21
+ * add stepup authMode to useSocialAuth for OAuth step-up authentication ([#10701](https://github.com/dynamic-labs/dynamic-auth/issues/10701)) ([f8ac0e4](https://github.com/dynamic-labs/dynamic-auth/commit/f8ac0e4a6a039e61d1c83e434e2f678981ff3911))
22
+ * add StepUpReauthSocialView and wire social option in step-up reauth UI ([#10703](https://github.com/dynamic-labs/dynamic-auth/issues/10703)) ([a49393f](https://github.com/dynamic-labs/dynamic-auth/commit/a49393f54a8f210f9cbca892339c3012d38cc5c2))
23
+ * add useStepUpSocial and extend step-up auth for OAuth reauthentication ([#10702](https://github.com/dynamic-labs/dynamic-auth/issues/10702)) ([fb7e21d](https://github.com/dynamic-labs/dynamic-auth/commit/fb7e21d47b3e40659ae3b8ca9321efe1d4401e60))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * aleo defaulting to testnet when connecting ([#10726](https://github.com/dynamic-labs/dynamic-auth/issues/10726)) ([24b0378](https://github.com/dynamic-labs/dynamic-auth/commit/24b0378a25902f5a134940aeeadc9846058d6fb1))
29
+ * override basic-ftp to >=5.2.0 (CVE-2026-27699) ([#10715](https://github.com/dynamic-labs/dynamic-auth/issues/10715)) ([b68a405](https://github.com/dynamic-labs/dynamic-auth/commit/b68a405453f0ea7e04c14492c195b46fbf25b47e))
30
+ * override minimatch to patched versions (CVE-2026-26996) ([#10718](https://github.com/dynamic-labs/dynamic-auth/issues/10718)) ([a69aaee](https://github.com/dynamic-labs/dynamic-auth/commit/a69aaee0859b7e1292a244abde7084f7c4cfdb72))
31
+ * override simple-git to >=3.32.3 (CVE-2026-28292) ([#10717](https://github.com/dynamic-labs/dynamic-auth/issues/10717)) ([8b86545](https://github.com/dynamic-labs/dynamic-auth/commit/8b865453737e4ff0ef9e8d0fbb99ea5f0359af3b))
32
+ * revert session chaining PR to fix IndexedDB webview crash ([#10710](https://github.com/dynamic-labs/dynamic-auth/issues/10710)) ([c4dfe66](https://github.com/dynamic-labs/dynamic-auth/commit/c4dfe66f73e6b9b7115260b06fd90fc0a167e139)), closes [#10706](https://github.com/dynamic-labs/dynamic-auth/issues/10706) [#10423](https://github.com/dynamic-labs/dynamic-auth/issues/10423) [#10423](https://github.com/dynamic-labs/dynamic-auth/issues/10423) [#10706](https://github.com/dynamic-labs/dynamic-auth/issues/10706) [#10423](https://github.com/dynamic-labs/dynamic-auth/issues/10423)
33
+ * update tar, serialize-javascript, svgo overrides ([#10727](https://github.com/dynamic-labs/dynamic-auth/issues/10727)) ([3c764f7](https://github.com/dynamic-labs/dynamic-auth/commit/3c764f71ce2870075eaa800389719a46d8dac233))
34
+ * upgrade rollup to patched versions (CVE-2026-27606) ([#10724](https://github.com/dynamic-labs/dynamic-auth/issues/10724)) ([735133e](https://github.com/dynamic-labs/dynamic-auth/commit/735133e6d4129cad20ae82b86f9507ab9227b36e))
35
+
2
36
  ## [4.69.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.68.0...v4.69.0) (2026-03-19)
3
37
 
4
38
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.69.0";
6
+ var version = "4.71.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.69.0";
2
+ var version = "4.71.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/client",
3
- "version": "4.69.0",
3
+ "version": "4.71.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.907",
23
- "@dynamic-labs/assert-package-version": "4.69.0",
24
- "@dynamic-labs/locale": "4.69.0",
25
- "@dynamic-labs/logger": "4.69.0",
26
- "@dynamic-labs/message-transport": "4.69.0",
27
- "@dynamic-labs/types": "4.69.0",
28
- "@dynamic-labs/wallet-connector-core": "4.69.0",
29
- "@dynamic-labs/webview-messages": "4.69.0",
22
+ "@dynamic-labs/sdk-api-core": "0.0.909",
23
+ "@dynamic-labs/assert-package-version": "4.71.0",
24
+ "@dynamic-labs/locale": "4.71.0",
25
+ "@dynamic-labs/logger": "4.71.0",
26
+ "@dynamic-labs/message-transport": "4.71.0",
27
+ "@dynamic-labs/types": "4.71.0",
28
+ "@dynamic-labs/wallet-connector-core": "4.71.0",
29
+ "@dynamic-labs/webview-messages": "4.71.0",
30
30
  "eventemitter3": "5.0.1"
31
31
  },
32
32
  "peerDependencies": {}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var logger = require('@dynamic-labs/logger');
7
7
  var messageTransport = require('@dynamic-labs/message-transport');
8
8
  var authModule = require('../modules/authModule/authModule.cjs');
9
+ var deviceRegistrationModule = require('../modules/deviceRegistrationModule/deviceRegistrationModule.cjs');
9
10
  var instrumentationModule = require('../modules/instrumentationModule/instrumentationModule.cjs');
10
11
  var localeModule = require('../modules/localeModule/localeModule.cjs');
11
12
  var mfaModule = require('../modules/mfaModule/mfaModule.cjs');
@@ -40,6 +41,8 @@ const createClient = (props) => {
40
41
  return {
41
42
  /** Module that gives access over authentication state, such as the auth token and user */
42
43
  auth: authModule.createAuthModule(core$1),
44
+ /** Module that provides access to device registration features */
45
+ deviceRegistration: deviceRegistrationModule.createDeviceRegistrationModule(core$1),
43
46
  /** Module that provides locale/translation features */
44
47
  locale: localeModule.createLocaleModule(core$1),
45
48
  /** Module that provides access to MFA features */
@@ -37,6 +37,8 @@ export type ClientProps = {
37
37
  export declare const createClient: (props: ClientProps) => {
38
38
  /** Module that gives access over authentication state, such as the auth token and user */
39
39
  auth: import("../modules/authModule").AuthModule;
40
+ /** Module that provides access to device registration features */
41
+ deviceRegistration: import("../modules/deviceRegistrationModule").DeviceRegistrationModule;
40
42
  /** Module that provides locale/translation features */
41
43
  locale: {
42
44
  changeLanguage: (lang: import("dist/packages/locale/src").Lang) => Promise<void>;
@@ -2,6 +2,7 @@
2
2
  import { Logger } from '@dynamic-labs/logger';
3
3
  import { setGlobalDebugEnabled } from '@dynamic-labs/message-transport';
4
4
  import { createAuthModule } from '../modules/authModule/authModule.js';
5
+ import { createDeviceRegistrationModule } from '../modules/deviceRegistrationModule/deviceRegistrationModule.js';
5
6
  import { setupInstrumentationModule } from '../modules/instrumentationModule/instrumentationModule.js';
6
7
  import { createLocaleModule } from '../modules/localeModule/localeModule.js';
7
8
  import { createMfaModule } from '../modules/mfaModule/mfaModule.js';
@@ -36,6 +37,8 @@ const createClient = (props) => {
36
37
  return {
37
38
  /** Module that gives access over authentication state, such as the auth token and user */
38
39
  auth: createAuthModule(core),
40
+ /** Module that provides access to device registration features */
41
+ deviceRegistration: createDeviceRegistrationModule(core),
39
42
  /** Module that provides locale/translation features */
40
43
  locale: createLocaleModule(core),
41
44
  /** Module that provides access to MFA features */
package/src/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
- export type { SocialProvider, UpdateUserReturnPayload, } from '@dynamic-labs/webview-messages';
1
+ export type { RegisteredDevice, SocialProvider, UpdateUserReturnPayload, } from '@dynamic-labs/webview-messages';
2
2
  export { type Core } from './client/core';
3
3
  export type { Wallet } from './types';
4
4
  export { Extendable, type Extension } from './utils/Extendable';
5
5
  export { hasExtension } from './utils/Extendable/hasExtension';
6
6
  export { createClient, type BaseClient, type ClientProps, baseClientExtensionName, } from './client';
7
7
  export type { AuthModule } from './modules/authModule';
8
+ export type { DeviceRegistrationModule } from './modules/deviceRegistrationModule';
8
9
  export type { LocaleModule } from './modules/localeModule';
9
10
  export type { MfaModule } from './modules/mfaModule';
10
11
  export type { SdkModule } from './modules/sdkModule';
@@ -0,0 +1,32 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var messageTransport = require('@dynamic-labs/message-transport');
7
+ var webviewMessages = require('@dynamic-labs/webview-messages');
8
+ var pickListenerActions = require('../../utils/pickListenerActions/pickListenerActions.cjs');
9
+
10
+ const createDeviceRegistrationModule = (core) => {
11
+ const store = messageTransport.createStore({
12
+ initialState: {
13
+ isDeviceRegistrationRequired: false,
14
+ },
15
+ key: 'deviceRegistration',
16
+ messageTransport: core.messageTransport,
17
+ });
18
+ const requestChannel = messageTransport.createRequestChannel(core.messageTransport);
19
+ const messageEvents = messageTransport.createEventEmitterForMessages({
20
+ eventNames: webviewMessages.deviceRegistrationEventNames,
21
+ initialEventEmitter: store.eventEmitter,
22
+ messageTransport: core.messageTransport,
23
+ });
24
+ const publicMethods = {
25
+ getRegisteredDevices: (...args) => requestChannel.request('getRegisteredDevices', ...args),
26
+ revokeAllRegisteredDevices: (...args) => requestChannel.request('revokeAllRegisteredDevices', ...args),
27
+ revokeRegisteredDevice: (...args) => requestChannel.request('revokeRegisteredDevice', ...args),
28
+ };
29
+ return Object.assign(store.getters, pickListenerActions.pickListenerActions(messageEvents), publicMethods);
30
+ };
31
+
32
+ exports.createDeviceRegistrationModule = createDeviceRegistrationModule;
@@ -0,0 +1,12 @@
1
+ import { PickedEventListeners, StoreEventListeners } from '@dynamic-labs/message-transport';
2
+ import { DeviceRegistrationMessages, DeviceRegistrationModuleState, deviceRegistrationEventNames } from '@dynamic-labs/webview-messages';
3
+ import { Core } from '../../client/core';
4
+ type DeviceRegistrationModulePublicMethods = {
5
+ getRegisteredDevices: DeviceRegistrationMessages['getRegisteredDevices'];
6
+ revokeRegisteredDevice: DeviceRegistrationMessages['revokeRegisteredDevice'];
7
+ revokeAllRegisteredDevices: DeviceRegistrationMessages['revokeAllRegisteredDevices'];
8
+ };
9
+ type PublicDeviceRegistrationMessages = Pick<DeviceRegistrationMessages, typeof deviceRegistrationEventNames[number]>;
10
+ export type DeviceRegistrationModule = DeviceRegistrationModuleState & StoreEventListeners<DeviceRegistrationModuleState> & PickedEventListeners<PublicDeviceRegistrationMessages> & DeviceRegistrationModulePublicMethods;
11
+ export declare const createDeviceRegistrationModule: (core: Core) => DeviceRegistrationModule;
12
+ export {};
@@ -0,0 +1,28 @@
1
+ 'use client'
2
+ import { createStore, createRequestChannel, createEventEmitterForMessages } from '@dynamic-labs/message-transport';
3
+ import { deviceRegistrationEventNames } from '@dynamic-labs/webview-messages';
4
+ import { pickListenerActions } from '../../utils/pickListenerActions/pickListenerActions.js';
5
+
6
+ const createDeviceRegistrationModule = (core) => {
7
+ const store = createStore({
8
+ initialState: {
9
+ isDeviceRegistrationRequired: false,
10
+ },
11
+ key: 'deviceRegistration',
12
+ messageTransport: core.messageTransport,
13
+ });
14
+ const requestChannel = createRequestChannel(core.messageTransport);
15
+ const messageEvents = createEventEmitterForMessages({
16
+ eventNames: deviceRegistrationEventNames,
17
+ initialEventEmitter: store.eventEmitter,
18
+ messageTransport: core.messageTransport,
19
+ });
20
+ const publicMethods = {
21
+ getRegisteredDevices: (...args) => requestChannel.request('getRegisteredDevices', ...args),
22
+ revokeAllRegisteredDevices: (...args) => requestChannel.request('revokeAllRegisteredDevices', ...args),
23
+ revokeRegisteredDevice: (...args) => requestChannel.request('revokeRegisteredDevice', ...args),
24
+ };
25
+ return Object.assign(store.getters, pickListenerActions(messageEvents), publicMethods);
26
+ };
27
+
28
+ export { createDeviceRegistrationModule };
@@ -0,0 +1 @@
1
+ export { createDeviceRegistrationModule, type DeviceRegistrationModule, } from './deviceRegistrationModule';
@@ -4,10 +4,20 @@
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var messageTransport = require('@dynamic-labs/message-transport');
7
+ var pickListenerActions = require('../../../utils/pickListenerActions/pickListenerActions.cjs');
7
8
 
8
9
  const createDelegationModule = (core) => {
9
10
  const requestChannel = messageTransport.createRequestChannel(core.messageTransport);
10
- return {
11
+ const store = messageTransport.createStore({
12
+ initialState: {
13
+ delegatedAccessEnabled: undefined,
14
+ requiresDelegation: undefined,
15
+ walletsDelegatedStatus: [],
16
+ },
17
+ key: 'delegatedAccess',
18
+ messageTransport: core.messageTransport,
19
+ });
20
+ return Object.assign(store.getters, pickListenerActions.pickListenerActions(store.eventEmitter), {
11
21
  clearDelegationSessionState: () => requestChannel.request('clearDelegationSessionState'),
12
22
  delegateKeyShares: (params) => requestChannel.request('delegateKeyShares', params),
13
23
  denyWalletDelegation: (params) => requestChannel.request('denyWalletDelegation', params),
@@ -16,7 +26,7 @@ const createDelegationModule = (core) => {
16
26
  initDelegationProcess: (params) => requestChannel.request('initDelegationProcess', params),
17
27
  revokeDelegation: (params) => requestChannel.request('revokeDelegation', params),
18
28
  shouldPromptWalletDelegation: () => requestChannel.request('shouldPromptWalletDelegation'),
19
- };
29
+ });
20
30
  };
21
31
 
22
32
  exports.createDelegationModule = createDelegationModule;
@@ -1,4 +1,5 @@
1
- import { DelegatedAccessMessages } from '@dynamic-labs/webview-messages';
1
+ import { PickedEventListeners, StoreStateEvents, StoreStateGetters } from '@dynamic-labs/message-transport';
2
+ import { DelegatedAccessMessages, DelegatedAccessState } from '@dynamic-labs/webview-messages';
2
3
  import { Core } from '../../../client/core';
3
4
  export type DelegationModule = {
4
5
  initDelegationProcess: DelegatedAccessMessages['initDelegationProcess'];
@@ -9,5 +10,5 @@ export type DelegationModule = {
9
10
  denyWalletDelegation: DelegatedAccessMessages['denyWalletDelegation'];
10
11
  dismissDelegationPrompt: DelegatedAccessMessages['dismissDelegationPrompt'];
11
12
  clearDelegationSessionState: DelegatedAccessMessages['clearDelegationSessionState'];
12
- };
13
+ } & StoreStateGetters<DelegatedAccessState> & PickedEventListeners<StoreStateEvents<DelegatedAccessState>>;
13
14
  export declare const createDelegationModule: (core: Core) => DelegationModule;
@@ -1,9 +1,19 @@
1
1
  'use client'
2
- import { createRequestChannel } from '@dynamic-labs/message-transport';
2
+ import { createRequestChannel, createStore } from '@dynamic-labs/message-transport';
3
+ import { pickListenerActions } from '../../../utils/pickListenerActions/pickListenerActions.js';
3
4
 
4
5
  const createDelegationModule = (core) => {
5
6
  const requestChannel = createRequestChannel(core.messageTransport);
6
- return {
7
+ const store = createStore({
8
+ initialState: {
9
+ delegatedAccessEnabled: undefined,
10
+ requiresDelegation: undefined,
11
+ walletsDelegatedStatus: [],
12
+ },
13
+ key: 'delegatedAccess',
14
+ messageTransport: core.messageTransport,
15
+ });
16
+ return Object.assign(store.getters, pickListenerActions(store.eventEmitter), {
7
17
  clearDelegationSessionState: () => requestChannel.request('clearDelegationSessionState'),
8
18
  delegateKeyShares: (params) => requestChannel.request('delegateKeyShares', params),
9
19
  denyWalletDelegation: (params) => requestChannel.request('denyWalletDelegation', params),
@@ -12,7 +22,7 @@ const createDelegationModule = (core) => {
12
22
  initDelegationProcess: (params) => requestChannel.request('initDelegationProcess', params),
13
23
  revokeDelegation: (params) => requestChannel.request('revokeDelegation', params),
14
24
  shouldPromptWalletDelegation: () => requestChannel.request('shouldPromptWalletDelegation'),
15
- };
25
+ });
16
26
  };
17
27
 
18
28
  export { createDelegationModule };