@exodus/hardware-wallets 3.6.1 → 3.6.3

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
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.6.3](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/hardware-wallets@3.6.2...@exodus/hardware-wallets@3.6.3) (2026-05-11)
7
+
8
+ ### Bug Fixes
9
+
10
+ - fix(hardware-wallets): rename restoreProgressTracker dep to restoreAssetsTracker (#16366)
11
+
12
+ ## [3.6.2](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/hardware-wallets@3.6.1...@exodus/hardware-wallets@3.6.2) (2026-02-22)
13
+
14
+ ### Bug Fixes
15
+
16
+ - fix: always pass walletAccount for ensureDevice (#15327)
17
+
6
18
  ## [3.6.1](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/hardware-wallets@3.6.0...@exodus/hardware-wallets@3.6.1) (2026-02-09)
7
19
 
8
20
  ### Bug Fixes
@@ -2,24 +2,24 @@ import type { HardwareWallets } from '../module/hardware-wallets.js';
2
2
  declare const hardwareWalletsApiDefinition: {
3
3
  readonly id: "hardwareWalletsApi";
4
4
  readonly type: "api";
5
- readonly factory: ({ hardwareWallets, restoreProgressTracker, txLogMonitors, }: {
5
+ readonly factory: ({ hardwareWallets, restoreAssetsTracker, txLogMonitors, }: {
6
6
  hardwareWallets: HardwareWallets;
7
7
  txLogMonitors: any;
8
- restoreProgressTracker: any;
8
+ restoreAssetsTracker: any;
9
9
  }) => {
10
10
  hardwareWallets: {
11
11
  isDeviceConnected: () => Promise<boolean>;
12
12
  getAvailableDevices: () => Promise<{
13
- model: import("libraries/hw-common/lib/types.js").HardwareWalletDeviceModels;
13
+ model: import("@exodus/hw-common").HardwareWalletDeviceModels;
14
14
  name: string;
15
15
  }[]>;
16
16
  listUseableAssetNames: () => Promise<string[]>;
17
- scanForDevices: (deviceType?: import("libraries/hw-common/lib/types.js").HardwareWalletManufacturer) => Promise<void>;
17
+ scanForDevices: (deviceType?: import("@exodus/hw-common").HardwareWalletManufacturer) => Promise<void>;
18
18
  canAccessAsset: ({ assetName }: import("../module/interfaces.js").CanAccessAssetParams) => Promise<boolean>;
19
19
  scan: ({ assetName, accountIndexes, addressLimit, addressOffset, }: import("../module/interfaces.js").ScanParams) => Promise<import("../module/interfaces.js").ScanResult>;
20
20
  sync: ({ accountIndex: index, isMultisig }?: import("../module/interfaces.js").SyncParams) => Promise<import("../module/interfaces.js").SyncedKeysId>;
21
21
  addPublicKeysToWalletAccount: ({ walletAccount, syncedKeysId }: import("../module/interfaces.js").StoreSyncedKeysParams) => Promise<void>;
22
- create: ({ syncedKeysId, isMultisig }: import("../module/interfaces.js").CreateParams) => Promise<import("libraries/models/lib/index.js").WalletAccount>;
22
+ create: ({ syncedKeysId, isMultisig }: import("../module/interfaces.js").CreateParams) => Promise<import("@exodus/models").WalletAccount>;
23
23
  retrySigningRequest: (id: string) => Promise<void>;
24
24
  cancelSigningRequest: (id: string, fromUI: boolean) => Promise<void>;
25
25
  submitPairingCode: ({ code }: import("../module/interfaces.js").ProcessPairingCodeParams) => Promise<any>;
@@ -27,6 +27,6 @@ declare const hardwareWalletsApiDefinition: {
27
27
  setPassphraseMode: ({ enabled }: import("../module/interfaces.js").SetPassphraseModeParams) => Promise<void>;
28
28
  };
29
29
  };
30
- readonly dependencies: readonly ["hardwareWallets", "txLogMonitors", "restoreProgressTracker"];
30
+ readonly dependencies: readonly ["hardwareWallets", "txLogMonitors", "restoreAssetsTracker"];
31
31
  };
32
32
  export default hardwareWalletsApiDefinition;
package/lib/api/index.js CHANGED
@@ -1,17 +1,17 @@
1
- const createHardwareWalletsApi = ({ hardwareWallets, restoreProgressTracker, txLogMonitors, }) => {
1
+ const createHardwareWalletsApi = ({ hardwareWallets, restoreAssetsTracker, txLogMonitors, }) => {
2
2
  hardwareWallets.events.subscribe(({ type, payload }) => {
3
3
  if (type !== 'syncAssets')
4
4
  return;
5
5
  const { assetNames } = payload;
6
6
  for (const assetName of assetNames) {
7
7
  if (assetName === 'ethereum' || assetName === 'matic') {
8
- restoreProgressTracker.restoreAsset('ethereum');
9
- restoreProgressTracker.restoreAsset('matic');
8
+ restoreAssetsTracker.restoreAsset('ethereum');
9
+ restoreAssetsTracker.restoreAsset('matic');
10
10
  txLogMonitors.update({ assetName: 'ethereum', refresh: true });
11
11
  txLogMonitors.update({ assetName: 'matic', refresh: true });
12
12
  }
13
13
  else {
14
- restoreProgressTracker.restoreAsset(assetName);
14
+ restoreAssetsTracker.restoreAsset(assetName);
15
15
  txLogMonitors.update({ assetName, refresh: true });
16
16
  }
17
17
  }
@@ -39,6 +39,6 @@ const hardwareWalletsApiDefinition = {
39
39
  id: 'hardwareWalletsApi',
40
40
  type: 'api',
41
41
  factory: createHardwareWalletsApi,
42
- dependencies: ['hardwareWallets', 'txLogMonitors', 'restoreProgressTracker'],
42
+ dependencies: ['hardwareWallets', 'txLogMonitors', 'restoreAssetsTracker'],
43
43
  };
44
44
  export default hardwareWalletsApiDefinition;
@@ -2,10 +2,10 @@ export { hardwareWalletSigningRequestsAtomDefinition } from './hardwareWalletSig
2
2
  type WalletAccountName = string;
3
3
  type AssetName = string;
4
4
  export type WalletAccountNameToConnectedAssetNamesMap = Record<WalletAccountName, AssetName[]>;
5
- export declare const createHardwareWalletConnectedAssetNamesAtom: ({ hardwareWalletPublicKeysAtom, assetsModule, walletAccountsAtom, availableAssetNamesAtom, }: any) => import("@exodus/atoms").ReadonlyAtom<unknown>;
5
+ export declare const createHardwareWalletConnectedAssetNamesAtom: ({ hardwareWalletPublicKeysAtom, assetsModule, walletAccountsAtom, availableAssetNamesAtom, }: any) => import("@exodus/atoms").ReadonlyAtom<WalletAccountNameToConnectedAssetNamesMap>;
6
6
  export declare const hardwareWalletConnectedAssetNamesAtomDefinition: {
7
7
  readonly id: "hardwareWalletConnectedAssetNamesAtom";
8
8
  readonly type: "atom";
9
- readonly factory: ({ hardwareWalletPublicKeysAtom, assetsModule, walletAccountsAtom, availableAssetNamesAtom, }: any) => import("@exodus/atoms").ReadonlyAtom<unknown>;
9
+ readonly factory: ({ hardwareWalletPublicKeysAtom, assetsModule, walletAccountsAtom, availableAssetNamesAtom, }: any) => import("@exodus/atoms").ReadonlyAtom<WalletAccountNameToConnectedAssetNamesMap>;
10
10
  readonly dependencies: readonly ["hardwareWalletPublicKeysAtom", "assetsModule", "walletAccountsAtom", "availableAssetNamesAtom"];
11
11
  };
package/lib/index.d.ts CHANGED
@@ -5,24 +5,24 @@ declare const hardwareWallets: () => {
5
5
  readonly definition: {
6
6
  readonly id: "hardwareWalletsApi";
7
7
  readonly type: "api";
8
- readonly factory: ({ hardwareWallets, restoreProgressTracker, txLogMonitors, }: {
8
+ readonly factory: ({ hardwareWallets, restoreAssetsTracker, txLogMonitors, }: {
9
9
  hardwareWallets: import("./module/hardware-wallets.js").HardwareWallets;
10
10
  txLogMonitors: any;
11
- restoreProgressTracker: any;
11
+ restoreAssetsTracker: any;
12
12
  }) => {
13
13
  hardwareWallets: {
14
14
  isDeviceConnected: () => Promise<boolean>;
15
15
  getAvailableDevices: () => Promise<{
16
- model: import("libraries/hw-common/lib/types.js").HardwareWalletDeviceModels;
16
+ model: import("@exodus/hw-common").HardwareWalletDeviceModels;
17
17
  name: string;
18
18
  }[]>;
19
19
  listUseableAssetNames: () => Promise<string[]>;
20
- scanForDevices: (deviceType?: import("libraries/hw-common/lib/types.js").HardwareWalletManufacturer) => Promise<void>;
20
+ scanForDevices: (deviceType?: import("@exodus/hw-common").HardwareWalletManufacturer) => Promise<void>;
21
21
  canAccessAsset: ({ assetName }: import("./module/interfaces.js").CanAccessAssetParams) => Promise<boolean>;
22
22
  scan: ({ assetName, accountIndexes, addressLimit, addressOffset, }: import("./module/interfaces.js").ScanParams) => Promise<import("./module/interfaces.js").ScanResult>;
23
23
  sync: ({ accountIndex: index, isMultisig }?: import("./module/interfaces.js").SyncParams) => Promise<import("./module/interfaces.js").SyncedKeysId>;
24
24
  addPublicKeysToWalletAccount: ({ walletAccount, syncedKeysId }: import("./module/interfaces.js").StoreSyncedKeysParams) => Promise<void>;
25
- create: ({ syncedKeysId, isMultisig }: import("./module/interfaces.js").CreateParams) => Promise<import("libraries/models/lib/index.js").WalletAccount>;
25
+ create: ({ syncedKeysId, isMultisig }: import("./module/interfaces.js").CreateParams) => Promise<import("@exodus/models").WalletAccount>;
26
26
  retrySigningRequest: (id: string) => Promise<void>;
27
27
  cancelSigningRequest: (id: string, fromUI: boolean) => Promise<void>;
28
28
  submitPairingCode: ({ code }: import("./module/interfaces.js").ProcessPairingCodeParams) => Promise<any>;
@@ -30,7 +30,7 @@ declare const hardwareWallets: () => {
30
30
  setPassphraseMode: ({ enabled }: import("./module/interfaces.js").SetPassphraseModeParams) => Promise<void>;
31
31
  };
32
32
  };
33
- readonly dependencies: readonly ["hardwareWallets", "txLogMonitors", "restoreProgressTracker"];
33
+ readonly dependencies: readonly ["hardwareWallets", "txLogMonitors", "restoreAssetsTracker"];
34
34
  };
35
35
  }, {
36
36
  readonly definition: {
@@ -44,7 +44,7 @@ declare const hardwareWallets: () => {
44
44
  readonly definition: {
45
45
  readonly id: "hardwareWalletConnectedAssetNamesAtom";
46
46
  readonly type: "atom";
47
- readonly factory: ({ hardwareWalletPublicKeysAtom, assetsModule, walletAccountsAtom, availableAssetNamesAtom, }: any) => import("@exodus/atoms").ReadonlyAtom<unknown>;
47
+ readonly factory: ({ hardwareWalletPublicKeysAtom, assetsModule, walletAccountsAtom, availableAssetNamesAtom, }: any) => import("@exodus/atoms").ReadonlyAtom<import("./atoms/index.js").WalletAccountNameToConnectedAssetNamesMap>;
48
48
  readonly dependencies: readonly ["hardwareWalletPublicKeysAtom", "assetsModule", "walletAccountsAtom", "availableAssetNamesAtom"];
49
49
  };
50
50
  }, {
@@ -1,7 +1,7 @@
1
1
  import { WalletAccount } from '@exodus/models';
2
2
  import Emitter from '@exodus/wild-emitter';
3
- import type { HardwareSignerProvider, CanAccessAssetParams, CreateParams, StoreSyncedKeysParams, ScanParams, SyncParams, SignTransactionParams, ScanResult, SyncedKeysId, GetAddressParams, RequireDeviceForParams, ProcessPairingCodeParams, SigningRequestState, SetPassphraseModeParams } from './interfaces.js';
4
- import type { HardwareWalletDiscovery, HardwareWalletManufacturer, SignMessageParams } from '@exodus/hw-common';
3
+ import type { HardwareSignerProvider, CanAccessAssetParams, CreateParams, StoreSyncedKeysParams, ScanParams, SyncParams, SignTransactionParams, ScanResult, SyncedKeysId, GetAddressParams, SignMessageParams, ProcessPairingCodeParams, SigningRequestState, SetPassphraseModeParams } from './interfaces.js';
4
+ import type { HardwareWalletDiscovery, HardwareWalletManufacturer } from '@exodus/hw-common';
5
5
  import type { Atom } from '@exodus/atoms';
6
6
  import type { IPublicKeyStore } from '@exodus/public-key-provider/lib/module/store/types';
7
7
  import type { Logger } from '@exodus/logger';
@@ -31,7 +31,7 @@ export declare class HardwareWallets implements HardwareSignerProvider {
31
31
  retrySigningRequest: (id: string) => Promise<void>;
32
32
  cancelSigningRequest: (id: string, fromUI: boolean) => Promise<void>;
33
33
  signTransaction: ({ baseAssetName, unsignedTx, walletAccount, multisigData, }: SignTransactionParams) => Promise<any>;
34
- signMessage: ({ assetName, derivationPath, message }: SignMessageParams) => Promise<any>;
34
+ signMessage: ({ assetName, derivationPath, message, walletAccount, }: SignMessageParams) => Promise<any>;
35
35
  isDeviceConnected: () => Promise<boolean>;
36
36
  scanForDevices: (deviceType?: HardwareWalletManufacturer) => Promise<void>;
37
37
  getAvailableDevices: () => Promise<{
@@ -48,9 +48,11 @@ export declare class HardwareWallets implements HardwareSignerProvider {
48
48
  clearPairingRequest: () => Promise<void>;
49
49
  submitPairingCode: ({ code }: ProcessPairingCodeParams) => Promise<any>;
50
50
  setPassphraseMode: ({ enabled }: SetPassphraseModeParams) => Promise<void>;
51
- requireDeviceFor: ({ walletAccount }: RequireDeviceForParams) => Promise<{
52
- signTransaction: ({ baseAssetName, unsignedTx, walletAccount, multisigData, }: SignTransactionParams) => Promise<any>;
53
- signMessage: ({ assetName, derivationPath, message }: SignMessageParams) => Promise<any>;
51
+ requireDeviceFor: (walletAccount: WalletAccount) => Promise<{
52
+ signTransaction: ({ baseAssetName, unsignedTx, multisigData, }: Omit<SignTransactionParams, "walletAccount"> & {
53
+ walletAccount?: WalletAccount;
54
+ }) => Promise<any>;
55
+ signMessage: ({ assetName, derivationPath, message, }: Omit<SignMessageParams, "walletAccount">) => Promise<any>;
54
56
  }>;
55
57
  }
56
58
  declare const hardwareWalletsModuleDefinition: {
@@ -208,7 +208,7 @@ export class HardwareWallets {
208
208
  walletAccount,
209
209
  });
210
210
  };
211
- signMessage = async ({ assetName, derivationPath, message }) => {
211
+ signMessage = async ({ assetName, derivationPath, message, walletAccount, }) => {
212
212
  const baseAssetName = this.#assetsModule.getAsset(assetName).baseAsset.name;
213
213
  const sign = async ({ device }) => {
214
214
  return device.signMessage({
@@ -217,7 +217,7 @@ export class HardwareWallets {
217
217
  message,
218
218
  });
219
219
  };
220
- return this.#signGeneric({ baseAssetName, scenario: 'signMessage', sign });
220
+ return this.#signGeneric({ baseAssetName, scenario: 'signMessage', sign, walletAccount });
221
221
  };
222
222
  isDeviceConnected = async () => {
223
223
  try {
@@ -458,10 +458,10 @@ export class HardwareWallets {
458
458
  const trezorDevice = this.#requireTrezorDevice(device);
459
459
  trezorDevice.setPassphraseMode(enabled ? 'hidden' : 'standard');
460
460
  };
461
- requireDeviceFor = async ({ walletAccount }) => {
461
+ requireDeviceFor = async (walletAccount) => {
462
462
  return {
463
- signTransaction: this.signTransaction,
464
- signMessage: this.signMessage,
463
+ signTransaction: ({ baseAssetName, unsignedTx, multisigData, }) => this.signTransaction({ baseAssetName, unsignedTx, multisigData, walletAccount }),
464
+ signMessage: ({ assetName, derivationPath, message, }) => this.signMessage({ assetName, derivationPath, message, walletAccount }),
465
465
  };
466
466
  };
467
467
  }
@@ -1,5 +1,5 @@
1
1
  import type { WalletAccount } from '@exodus/models';
2
- import type { HardwareWalletDeviceModels, HardwareWalletDevice, HardwareWalletManufacturer, MultisigData, SignMessageParams } from '@exodus/hw-common';
2
+ import type { HardwareWalletDeviceModels, HardwareWalletDevice, HardwareWalletManufacturer, MultisigData, SignMessageParams as HwSignMessageParams } from '@exodus/hw-common';
3
3
  import type KeyIdentifier from '@exodus/key-identifier';
4
4
  export interface HardwareSignerProvider {
5
5
  isDeviceConnected: () => Promise<boolean>;
@@ -11,7 +11,7 @@ export interface HardwareSignerProvider {
11
11
  addPublicKeysToWalletAccount: ({ walletAccount, syncedKeysId, }: StoreSyncedKeysParams) => Promise<void>;
12
12
  create: ({ syncedKeysId, isMultisig }: CreateParams) => Promise<WalletAccount>;
13
13
  signTransaction: ({ baseAssetName, unsignedTx, walletAccount, }: SignTransactionParams) => Promise<any>;
14
- signMessage: ({ assetName, derivationPath, message }: SignMessageParams) => Promise<any>;
14
+ signMessage: ({ assetName, derivationPath, message, walletAccount, }: SignMessageParams) => Promise<any>;
15
15
  submitPairingCode: ({ code }: ProcessPairingCodeParams) => Promise<any>;
16
16
  setPassphraseMode: ({ enabled }: SetPassphraseModeParams) => Promise<void>;
17
17
  }
@@ -85,7 +85,7 @@ export interface GenericSignParams {
85
85
  baseAssetName: string;
86
86
  scenario: 'signTransaction' | 'signMessage';
87
87
  sign: GenericSignCallback;
88
- walletAccount?: WalletAccount;
88
+ walletAccount: WalletAccount;
89
89
  }
90
90
  export interface SigningRequestState {
91
91
  id: string;
@@ -96,7 +96,7 @@ export interface SigningRequestState {
96
96
  export interface SigningRequest {
97
97
  id: string;
98
98
  baseAssetName?: string;
99
- walletAccount?: WalletAccount;
99
+ walletAccount: WalletAccount;
100
100
  sign: GenericSignCallback;
101
101
  resolve: (result: any) => void;
102
102
  reject: (error: Error) => void;
@@ -146,6 +146,9 @@ export type FetchBalanceResult = any | null;
146
146
  export interface RequireDeviceForParams {
147
147
  walletAccount: WalletAccount;
148
148
  }
149
+ export interface SignMessageParams extends HwSignMessageParams {
150
+ walletAccount: WalletAccount;
151
+ }
149
152
  export interface ProcessPairingCodeParams {
150
153
  code: string;
151
154
  }
@@ -23,9 +23,12 @@ declare const hardwareWalletsReduxDefinition: {
23
23
  };
24
24
  readonly selectorDefinitions: {
25
25
  readonly id: "isAssetNameConnectedForWalletAccount";
26
- readonly selectorFactory: (selfSelector: any) => any;
26
+ readonly selectorFactory: (selfSelector: any) => import("@exodus/basic-utils/lib/memoize.js").MemoizedFunction<({ walletAccountName, assetName }: {
27
+ walletAccountName: string;
28
+ assetName: string;
29
+ }) => import("reselect").OutputSelector<unknown, boolean, (res: HardwareWalletsState) => boolean>>;
27
30
  readonly dependencies: readonly [{
28
- readonly selector: string;
31
+ readonly selector: "$state";
29
32
  }];
30
33
  }[];
31
34
  };
@@ -1,8 +1,11 @@
1
1
  declare const hardwareWalletsSelectors: {
2
2
  readonly id: "isAssetNameConnectedForWalletAccount";
3
- readonly selectorFactory: (selfSelector: any) => any;
3
+ readonly selectorFactory: (selfSelector: any) => import("@exodus/basic-utils/lib/memoize.js").MemoizedFunction<({ walletAccountName, assetName }: {
4
+ walletAccountName: string;
5
+ assetName: string;
6
+ }) => import("reselect").OutputSelector<unknown, boolean, (res: import("../initial-state.js").HardwareWalletsState) => boolean>>;
4
7
  readonly dependencies: readonly [{
5
- readonly selector: string;
8
+ readonly selector: "$state";
6
9
  }];
7
10
  }[];
8
11
  export default hardwareWalletsSelectors;
@@ -1,8 +1,13 @@
1
+ import type { HardwareWalletsState } from '../initial-state.js';
2
+ type isAssetNameConnectedForWalletAccountParams = {
3
+ walletAccountName: string;
4
+ assetName: string;
5
+ };
1
6
  declare const isAssetNameConnectedForWalletAccountSelectorDefinition: {
2
7
  readonly id: "isAssetNameConnectedForWalletAccount";
3
- readonly selectorFactory: (selfSelector: any) => any;
8
+ readonly selectorFactory: (selfSelector: any) => import("@exodus/basic-utils/lib/memoize.js").MemoizedFunction<({ walletAccountName, assetName }: isAssetNameConnectedForWalletAccountParams) => import("reselect").OutputSelector<unknown, boolean, (res: HardwareWalletsState) => boolean>>;
4
9
  readonly dependencies: readonly [{
5
- readonly selector: string;
10
+ readonly selector: "$state";
6
11
  }];
7
12
  };
8
13
  export default isAssetNameConnectedForWalletAccountSelectorDefinition;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/hardware-wallets",
3
- "version": "3.6.1",
3
+ "version": "3.6.3",
4
4
  "description": "An Exodus SDK feature that provides a high level abstraction for interacting with hardware wallet devices",
5
5
  "author": "Exodus Movement, Inc.",
6
6
  "repository": {
@@ -14,8 +14,14 @@
14
14
  },
15
15
  "main": "lib/index.js",
16
16
  "type": "module",
17
+ "exports": {
18
+ ".": "./lib/index.js",
19
+ "./redux": "./lib/redux/index.js",
20
+ "./lib/redux": "./lib/redux/index.js"
21
+ },
17
22
  "files": [
18
23
  "lib/",
24
+ "redux.js",
19
25
  "CHANGELOG.md",
20
26
  "!**/__tests__/**"
21
27
  ],
@@ -25,15 +31,16 @@
25
31
  "lint": "run -T eslint .",
26
32
  "lint:fix": "yarn lint --fix",
27
33
  "test": "run -T exodus-test --jest --esbuild",
34
+ "typecheck": "run -T tsc -p tsconfig.json --noEmit",
28
35
  "prepublishOnly": "yarn run -T build --scope @exodus/hardware-wallets"
29
36
  },
30
37
  "dependencies": {
31
- "@exodus/atoms": "^9.0.0",
32
- "@exodus/basic-utils": "^3.2.0",
38
+ "@exodus/atoms": "^10.3.3",
39
+ "@exodus/basic-utils": "^5.0.0",
33
40
  "@exodus/bip32": "^4.0.2",
34
41
  "@exodus/crypto": "^1.0.0-rc.14",
35
- "@exodus/hw-common": "^3.4.0",
36
- "@exodus/models": "^12.18.0",
42
+ "@exodus/hw-common": "^3.4.1",
43
+ "@exodus/models": "^13.0.0",
37
44
  "@exodus/redux-dependency-injection": "^4.0.0",
38
45
  "@exodus/wild-emitter": "^1.1.0",
39
46
  "delay": "^5.0.0",
@@ -53,5 +60,5 @@
53
60
  "access": "public",
54
61
  "provenance": false
55
62
  },
56
- "gitHead": "e0cdf475edecde771229c25e2e0b1eb61ad52030"
63
+ "gitHead": "18de1b01bc21f5620900ecb3e576c5923e21cdde"
57
64
  }
package/redux.js ADDED
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line import/no-unresolved -- shim re-exports built artifact
2
+ export { default } from './lib/redux/index.js'