@dynamic-labs/message-transport 4.0.0-alpha.7 → 4.0.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 CHANGED
@@ -1,4 +1,31 @@
1
1
 
2
+ ## [4.0.0-alpha.9](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.8...v4.0.0-alpha.9) (2024-10-11)
3
+
4
+
5
+ ### Features
6
+
7
+ * add support for fordefi wallet ([#7109](https://github.com/dynamic-labs/dynamic-auth/issues/7109)) ([1adb6b1](https://github.com/dynamic-labs/dynamic-auth/commit/1adb6b15b7f8e9156207ac7addf4368d27c1e371))
8
+ * support ability to define additional oauth scopes ([#7105](https://github.com/dynamic-labs/dynamic-auth/issues/7105)) ([b303203](https://github.com/dynamic-labs/dynamic-auth/commit/b303203e8041c0cbf5f8968df0d3cde04ed1b22a))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * add eip6963 for exodus evm ([#7094](https://github.com/dynamic-labs/dynamic-auth/issues/7094)) ([c1ec5ef](https://github.com/dynamic-labs/dynamic-auth/commit/c1ec5ef4b6a531c563be4b690aa5f2bd4e7e6a16))
14
+
15
+ ## [4.0.0-alpha.8](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.7...v4.0.0-alpha.8) (2024-10-07)
16
+
17
+
18
+ ### Features
19
+
20
+ * add support for dynamic event callbacks in rn ([#6997](https://github.com/dynamic-labs/dynamic-auth/issues/6997)) ([f9ac402](https://github.com/dynamic-labs/dynamic-auth/commit/f9ac40259d9168dfe69dafd5fd44478ba0e69505))
21
+ * add support for dynamic handlers in rn ([#7032](https://github.com/dynamic-labs/dynamic-auth/issues/7032)) ([f61f926](https://github.com/dynamic-labs/dynamic-auth/commit/f61f92666b6df8483dde2c47304fd4fb02690f7d))
22
+ * Support for multi-chain AA ([#6829](https://github.com/dynamic-labs/dynamic-auth/issues/6829)) ([b4a0c0a](https://github.com/dynamic-labs/dynamic-auth/commit/b4a0c0a4de48231a3748826600407c25abf6894d))
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * persist isHardwareWalletEnabled on wallet connector ([#7025](https://github.com/dynamic-labs/dynamic-auth/issues/7025)) ([#7034](https://github.com/dynamic-labs/dynamic-auth/issues/7034)) ([4bfc301](https://github.com/dynamic-labs/dynamic-auth/commit/4bfc301d891f10db8c0bd31e5164c489a882c5c3))
28
+
2
29
  ## [4.0.0-alpha.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.6...v4.0.0-alpha.7) (2024-10-03)
3
30
 
4
31
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.0.0-alpha.7";
6
+ var version = "4.0.0-alpha.9";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.0.0-alpha.7";
2
+ var version = "4.0.0-alpha.9";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/message-transport",
3
- "version": "4.0.0-alpha.7",
3
+ "version": "4.0.0-alpha.9",
4
4
  "description": "Defines the interface to communicate with dynamic's webview",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -18,14 +18,14 @@
18
18
  },
19
19
  "homepage": "https://www.dynamic.xyz/",
20
20
  "dependencies": {
21
- "@dynamic-labs/sdk-api-core": "0.0.535",
21
+ "@dynamic-labs/sdk-api-core": "0.0.545",
22
22
  "@vue/reactivity": "3.4.21",
23
- "@dynamic-labs/types": "4.0.0-alpha.7",
23
+ "@dynamic-labs/types": "4.0.0-alpha.9",
24
24
  "eventemitter3": "5.0.1"
25
25
  },
26
26
  "peerDependencies": {
27
- "@dynamic-labs/assert-package-version": "4.0.0-alpha.7",
28
- "@dynamic-labs/logger": "4.0.0-alpha.7",
29
- "@dynamic-labs/utils": "4.0.0-alpha.7"
27
+ "@dynamic-labs/assert-package-version": "4.0.0-alpha.9",
28
+ "@dynamic-labs/logger": "4.0.0-alpha.9",
29
+ "@dynamic-labs/utils": "4.0.0-alpha.9"
30
30
  }
31
31
  }
package/src/index.cjs CHANGED
@@ -16,7 +16,12 @@ var serializeErrorForTransport = require('./utils/serializeErrorForTransport/ser
16
16
  var createEventEmitterForMessages = require('./store/createEventEmitterForMessages/createEventEmitterForMessages.cjs');
17
17
  var store = require('./store/store.cjs');
18
18
  var storeSetter = require('./store/storeSetter/storeSetter.cjs');
19
+ var AuthModuleMessages = require('./messageTypes/AuthModuleMessages.cjs');
20
+ var EmbeddedWalletsModuleMessages = require('./messageTypes/EmbeddedWalletsModuleMessages.cjs');
21
+ var OtpMessages = require('./messageTypes/OtpMessages.cjs');
19
22
  var SdkModuleMessages = require('./messageTypes/SdkModuleMessages.cjs');
23
+ var UserInterfaceModuleMessages = require('./messageTypes/UserInterfaceModuleMessages.cjs');
24
+ var WalletsModuleMessages = require('./messageTypes/WalletsModuleMessages.cjs');
20
25
 
21
26
  assertPackageVersion.assertPackageVersion('@dynamic-labs/message-transport', _package.version);
22
27
 
@@ -31,4 +36,10 @@ exports.serializeErrorForTransport = serializeErrorForTransport.serializeErrorFo
31
36
  exports.createEventEmitterForMessages = createEventEmitterForMessages.createEventEmitterForMessages;
32
37
  exports.createStore = store.createStore;
33
38
  exports.createStoreSetter = storeSetter.createStoreSetter;
39
+ exports.authEventNames = AuthModuleMessages.authEventNames;
40
+ exports.embeddedWalletsEventNames = EmbeddedWalletsModuleMessages.embeddedWalletsEventNames;
41
+ exports.emailEventNames = OtpMessages.emailEventNames;
42
+ exports.smsEventNames = OtpMessages.smsEventNames;
34
43
  exports.sdkHasLoadedEventName = SdkModuleMessages.sdkHasLoadedEventName;
44
+ exports.userInterfaceEventNames = UserInterfaceModuleMessages.userInterfaceEventNames;
45
+ exports.userWalletsEventNames = WalletsModuleMessages.userWalletsEventNames;
package/src/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export { createRequestChannel, type RequestChannel } from './requestChannel';
3
3
  export { parseErrorFromTransport } from './utils/parseErrorFromTransport';
4
4
  export { parseMessageTransportData } from './utils/parseMessageTransportData';
5
5
  export { serializeErrorForTransport } from './utils/serializeErrorForTransport';
6
- export { createEventEmitterForMessages, createStore, createStoreSetter, type CreateStoreProps, type MessagesForEventEmitter, } from './store';
6
+ export { createEventEmitterForMessages, createStore, createStoreSetter, type CreateStoreProps, } from './store';
7
7
  export type { Store, StoreEventListeners, StoreKeys, StoreSetter, StoreStateChangeEvent, StoreStateEvents, StoreStateGetters, } from './store/types';
8
- export { sdkHasLoadedEventName, type AccountAbstractionGetEOAWalletArgs, type AccountAbstractionGetSmartWalletArgs, type AccountAbstractionIsSmartWalletArgs, type AccountAbstractionMessages, type AuthModuleMessages, type AuthModuleState, type ClientManifest, type ConsoleMessages, type CreateEmbeddedWalletArgs, type EmailOtpParams, type EmbeddedWalletsModuleMessages, type EmbeddedWalletsModuleState, type EthMessages, type EthRequestParams, type EthRequestWithAddressParams, type EthRequestWithChainIdParams, type ExternalAuthMessages, type FetchMessages, type KernelAccountSettings, type NetworksModuleState, type OtpData, type OtpMessages, type PasskeyMessages, type PlatformServiceMessages, type ProjectSettingsMessages, type SdkModuleMessages, type SdkModuleState, type SecureStorageMessages, type SignInWithExternalJwtParams, type SmsOtpParams, type SocialAuthModuleMessages, type SocialProvider, type SolanaMessages, type UserInterfaceModuleMessages, type VerifyWithExternalJwtParams, type WalletEvents, type WalletsModuleMessages, type WalletsModuleState, type WebViewVisibilityMessages, type ZeroDevExtensionMessages, } from './messageTypes';
8
+ export type { PickedEventListeners } from './types';
9
+ export { authEventNames, emailEventNames, embeddedWalletsEventNames, sdkHasLoadedEventName, smsEventNames, userInterfaceEventNames, userWalletsEventNames, type AccountAbstractionGetEOAWalletArgs, type AccountAbstractionGetSmartWalletArgs, type AccountAbstractionIsSmartWalletArgs, type AccountAbstractionMessages, type AuthModuleMessages, type AuthModuleState, type ClientManifest, type ConsoleMessages, type CreateEmbeddedWalletArgs, type EmailOtpParams, type EmbeddedWalletsModuleMessages, type EmbeddedWalletsModuleState, type EthMessages, type EthRequestParams, type EthRequestWithAddressParams, type EthRequestWithChainIdParams, type ExternalAuthMessages, type FetchMessages, type KernelAccountSettings, type NetworksModuleState, type OtpData, type OtpMessages, type PasskeyMessages, type PlatformServiceMessages, type ProjectSettingsMessages, type SdkModuleMessages, type SdkModuleState, type SecureStorageMessages, type SignInWithExternalJwtParams, type SmsOtpParams, type SocialAuthModuleMessages, type SocialProvider, type SolanaMessages, type UserInterfaceModuleMessages, type VerifyWithExternalJwtParams, type WalletEvents, type WalletsModuleMessages, type WalletsModuleState, type WebViewVisibilityMessages, type ZeroDevExtensionMessages, } from './messageTypes';
package/src/index.js CHANGED
@@ -12,6 +12,11 @@ export { serializeErrorForTransport } from './utils/serializeErrorForTransport/s
12
12
  export { createEventEmitterForMessages } from './store/createEventEmitterForMessages/createEventEmitterForMessages.js';
13
13
  export { createStore } from './store/store.js';
14
14
  export { createStoreSetter } from './store/storeSetter/storeSetter.js';
15
+ export { authEventNames } from './messageTypes/AuthModuleMessages.js';
16
+ export { embeddedWalletsEventNames } from './messageTypes/EmbeddedWalletsModuleMessages.js';
17
+ export { emailEventNames, smsEventNames } from './messageTypes/OtpMessages.js';
15
18
  export { sdkHasLoadedEventName } from './messageTypes/SdkModuleMessages.js';
19
+ export { userInterfaceEventNames } from './messageTypes/UserInterfaceModuleMessages.js';
20
+ export { userWalletsEventNames } from './messageTypes/WalletsModuleMessages.js';
16
21
 
17
22
  assertPackageVersion('@dynamic-labs/message-transport', version);
@@ -0,0 +1,14 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const authEventNames = [
7
+ 'authSuccess',
8
+ 'authFailed',
9
+ 'authInit',
10
+ 'loggedOut',
11
+ 'userProfileUpdated',
12
+ ];
13
+
14
+ exports.authEventNames = authEventNames;
@@ -1,8 +1,19 @@
1
- import type { UserProfile } from '@dynamic-labs/types';
1
+ import type { AuthEventPayload, UserProfile } from '@dynamic-labs/types';
2
2
  export type AuthModuleState = {
3
3
  token: string | null;
4
4
  authenticatedUser: UserProfile | null;
5
5
  };
6
6
  export type AuthModuleMessages = {
7
7
  logout: () => Promise<void>;
8
+ handleAuthenticatedUser: (params: {
9
+ user: UserProfile;
10
+ }) => Promise<void>;
11
+ authSuccess: (user: UserProfile) => void;
12
+ authFailed: (data: AuthEventPayload, reason: 'user-cancelled' | {
13
+ error: unknown;
14
+ }) => void;
15
+ authInit: (data: AuthEventPayload) => void;
16
+ loggedOut: (user: UserProfile | null) => void;
17
+ userProfileUpdated: (user: UserProfile) => void;
8
18
  };
19
+ export declare const authEventNames: ("authSuccess" | "authFailed" | "authInit" | "loggedOut" | "userProfileUpdated")[];
@@ -0,0 +1,10 @@
1
+ 'use client'
2
+ const authEventNames = [
3
+ 'authSuccess',
4
+ 'authFailed',
5
+ 'authInit',
6
+ 'loggedOut',
7
+ 'userProfileUpdated',
8
+ ];
9
+
10
+ export { authEventNames };
@@ -0,0 +1,10 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const embeddedWalletsEventNames = [
7
+ 'embeddedWalletCreated',
8
+ ];
9
+
10
+ exports.embeddedWalletsEventNames = embeddedWalletsEventNames;
@@ -1,4 +1,4 @@
1
- import { EmbeddedWalletChainEnum } from '@dynamic-labs/sdk-api-core';
1
+ import { EmbeddedWalletChainEnum, JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
2
2
  import { BaseWallet } from '@dynamic-labs/types';
3
3
  export type CreateEmbeddedWalletArgs = {
4
4
  chain?: keyof typeof EmbeddedWalletChainEnum;
@@ -9,4 +9,8 @@ export type EmbeddedWalletsModuleState = {
9
9
  export type EmbeddedWalletsModuleMessages = {
10
10
  getWallet: () => Promise<BaseWallet | null>;
11
11
  createWallet: (args?: CreateEmbeddedWalletArgs) => Promise<BaseWallet>;
12
+ embeddedWalletCreated: (verifiedCredential: JwtVerifiedCredential | null) => void;
12
13
  };
14
+ type EmbeddedWalletsEventNames = 'embeddedWalletCreated';
15
+ export declare const embeddedWalletsEventNames: EmbeddedWalletsEventNames[];
16
+ export {};
@@ -0,0 +1,6 @@
1
+ 'use client'
2
+ const embeddedWalletsEventNames = [
3
+ 'embeddedWalletCreated',
4
+ ];
5
+
6
+ export { embeddedWalletsEventNames };
@@ -0,0 +1,14 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const emailEventNames = [
7
+ 'emailVerificationFinished',
8
+ ];
9
+ const smsEventNames = [
10
+ 'smsVerificationFinished',
11
+ ];
12
+
13
+ exports.emailEventNames = emailEventNames;
14
+ exports.smsEventNames = smsEventNames;
@@ -15,4 +15,14 @@ export type OtpMessages = {
15
15
  verifyOTP: (token: string) => Promise<void>;
16
16
  /** Re-sends the OTP for verification */
17
17
  resendOTP: () => Promise<void>;
18
+ emailVerificationFinished: (params: {
19
+ isSuccess: boolean;
20
+ destination: string;
21
+ }) => void;
22
+ smsVerificationFinished: (params: {
23
+ isSuccess: boolean;
24
+ destination: PhoneData;
25
+ }) => void;
18
26
  };
27
+ export declare const emailEventNames: "emailVerificationFinished"[];
28
+ export declare const smsEventNames: "smsVerificationFinished"[];
@@ -0,0 +1,9 @@
1
+ 'use client'
2
+ const emailEventNames = [
3
+ 'emailVerificationFinished',
4
+ ];
5
+ const smsEventNames = [
6
+ 'smsVerificationFinished',
7
+ ];
8
+
9
+ export { emailEventNames, smsEventNames };
@@ -0,0 +1,12 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const userInterfaceEventNames = [
7
+ 'authFlowCancelled',
8
+ 'authFlowClosed',
9
+ 'authFlowOpened',
10
+ ];
11
+
12
+ exports.userInterfaceEventNames = userInterfaceEventNames;
@@ -7,4 +7,8 @@ export type UserInterfaceModuleMessages = {
7
7
  revealEmbeddedWalletKey: (params: {
8
8
  type: 'recovery-phrase' | 'private-key';
9
9
  }) => void;
10
+ authFlowCancelled: () => void;
11
+ authFlowClosed: () => void;
12
+ authFlowOpened: () => void;
10
13
  };
14
+ export declare const userInterfaceEventNames: ("authFlowCancelled" | "authFlowClosed" | "authFlowOpened")[];
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ const userInterfaceEventNames = [
3
+ 'authFlowCancelled',
4
+ 'authFlowClosed',
5
+ 'authFlowOpened',
6
+ ];
7
+
8
+ export { userInterfaceEventNames };
@@ -0,0 +1,12 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const userWalletsEventNames = [
7
+ 'messageSigned',
8
+ 'walletAdded',
9
+ 'walletRemoved',
10
+ ];
11
+
12
+ exports.userWalletsEventNames = userWalletsEventNames;
@@ -30,6 +30,19 @@ export type WalletsModuleMessages = {
30
30
  onWalletEvent: (params: WalletEventArguments & {
31
31
  walletId: string;
32
32
  }) => void;
33
+ handleConnectedWallet: (wallet: Partial<BaseWallet>) => Promise<boolean>;
34
+ messageSigned: (params: {
35
+ messageToSign: string;
36
+ signedMessage: string;
37
+ }) => void;
38
+ walletAdded: (params: {
39
+ wallet: BaseWallet;
40
+ userWallets: BaseWallet[];
41
+ }) => void;
42
+ walletRemoved: (params: {
43
+ wallet: BaseWallet;
44
+ userWallets: BaseWallet[];
45
+ }) => void;
33
46
  };
34
47
  export type WalletEvents = {
35
48
  chainChange: (props: {
@@ -42,4 +55,5 @@ type WalletEventArguments = {
42
55
  eventParams: Parameters<WalletEvents[E]>;
43
56
  };
44
57
  }[keyof WalletEvents];
58
+ export declare const userWalletsEventNames: ("messageSigned" | "walletAdded" | "walletRemoved")[];
45
59
  export {};
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ const userWalletsEventNames = [
3
+ 'messageSigned',
4
+ 'walletAdded',
5
+ 'walletRemoved',
6
+ ];
7
+
8
+ export { userWalletsEventNames };
@@ -11,13 +11,12 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
11
11
  var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
12
12
 
13
13
  // There are way too many "any"s in this file. They are necessary because otherwise the generics won't work
14
- function createEventEmitterForMessages({ messageTransport, initialEventEmitter, key, }) {
14
+ function createEventEmitterForMessages({ messageTransport, initialEventEmitter, eventNames, }) {
15
15
  const events = initialEventEmitter !== null && initialEventEmitter !== void 0 ? initialEventEmitter : new EventEmitter__default["default"]();
16
16
  const requestChannel$1 = requestChannel.createRequestChannel(messageTransport);
17
- requestChannel$1.handle('eventEmitted', (eventKey, eventName, payload) => {
18
- if (eventKey === key)
19
- events.emit(eventName, ...payload);
20
- });
17
+ for (const eventName of eventNames) {
18
+ requestChannel$1.handle(eventName, (...payload) => events.emit(eventName, ...payload));
19
+ }
21
20
  return events;
22
21
  }
23
22
 
@@ -1,22 +1,19 @@
1
1
  import EventEmitter from 'eventemitter3';
2
2
  import { MessageTransportWithDefaultOrigin } from '../../messageTransport';
3
- export type MessagesForEventEmitter<T extends Record<string, (...args: any[]) => any>, U extends string> = {
4
- eventEmitted: <E extends keyof T>(key: U, eventName: E, payload: Parameters<T[E]>) => void;
5
- };
6
3
  /**
7
4
  * Use this function when you want to get an event emitter that will raise events for
8
- * messages of type MessagesForEventEmitter
5
+ * messages that have a name inside eventNames
9
6
  */
10
- export declare function createEventEmitterForMessages<T extends Record<string, (...args: any[]) => any> = never, U extends string = never>(params: {
7
+ export declare function createEventEmitterForMessages<T extends Record<string, (...args: any[]) => any> = never>(params: {
11
8
  messageTransport: MessageTransportWithDefaultOrigin;
12
- key: U;
9
+ eventNames: string[];
13
10
  }): EventEmitter<T>;
14
11
  /**
15
12
  * Use this function when you want to get an event emitter that will raise events for
16
13
  * messages of type MessagesForEventEmitter
17
14
  */
18
- export declare function createEventEmitterForMessages<T extends Record<string, (...args: any[]) => any> = never, U extends string = never, E extends EventEmitter<any> = never>(params: {
15
+ export declare function createEventEmitterForMessages<T extends Record<string, (...args: any[]) => any> = never, E extends EventEmitter<any> = never>(params: {
19
16
  messageTransport: MessageTransportWithDefaultOrigin;
20
17
  initialEventEmitter: E;
21
- key: U;
18
+ eventNames: string[];
22
19
  }): E extends EventEmitter<infer V> ? EventEmitter<T & V> : never;
@@ -3,13 +3,12 @@ import EventEmitter from 'eventemitter3';
3
3
  import { createRequestChannel } from '../../requestChannel/requestChannel.js';
4
4
 
5
5
  // There are way too many "any"s in this file. They are necessary because otherwise the generics won't work
6
- function createEventEmitterForMessages({ messageTransport, initialEventEmitter, key, }) {
6
+ function createEventEmitterForMessages({ messageTransport, initialEventEmitter, eventNames, }) {
7
7
  const events = initialEventEmitter !== null && initialEventEmitter !== void 0 ? initialEventEmitter : new EventEmitter();
8
8
  const requestChannel = createRequestChannel(messageTransport);
9
- requestChannel.handle('eventEmitted', (eventKey, eventName, payload) => {
10
- if (eventKey === key)
11
- events.emit(eventName, ...payload);
12
- });
9
+ for (const eventName of eventNames) {
10
+ requestChannel.handle(eventName, (...payload) => events.emit(eventName, ...payload));
11
+ }
13
12
  return events;
14
13
  }
15
14
 
@@ -1,5 +1,6 @@
1
1
  import EventEmitter from 'eventemitter3';
2
- export type StoreKeys = 'auth' | 'sdk' | 'wallets' | 'embeddedWallets' | 'platform' | 'networks';
2
+ import { PickedEventListeners } from '../types';
3
+ export type StoreKeys = 'auth' | 'sdk' | 'wallets' | 'embeddedWallets' | 'platform' | 'userInterface' | 'otp' | 'networks';
3
4
  /**
4
5
  * Readonly getters for the store values
5
6
  */
@@ -38,16 +39,7 @@ export type StoreStateChangeEvent<T extends Record<string, unknown>, K extends E
38
39
  export type StoreStateEvents<T extends Record<string, unknown>> = {
39
40
  [K in Extract<keyof T, string> as StoreStateChangeEvent<T, K>]: (value: T[K]) => void;
40
41
  };
41
- /**
42
- * Generates the event listener methods for a StoreState.
43
- * The methods still return the original type of the eventemitter3 class.
44
- * Use StoreEventListeners instead, which hides these return types.
45
- */
46
- type RawStoreEventListeners<T extends Record<string, unknown>> = Pick<EventEmitter<StoreStateEvents<T>>, 'on' | 'off' | 'once'>;
47
42
  /**
48
43
  * The event listener methods for a StoreState
49
44
  */
50
- export type StoreEventListeners<T extends Record<string, unknown>> = {
51
- [M in keyof RawStoreEventListeners<T>]: (...args: Parameters<RawStoreEventListeners<T>[M]>) => void;
52
- };
53
- export {};
45
+ export type StoreEventListeners<T extends Record<string, unknown>> = PickedEventListeners<StoreStateEvents<T>>;
package/src/types.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export type PickedEventListeners<T extends Record<string, unknown>> = {
2
+ on: <K extends keyof T>(eventName: K, listener: T[K]) => void;
3
+ once: <K extends keyof T>(eventName: K, listener: T[K]) => void;
4
+ off: <K extends keyof T>(eventName: K, listener: T[K]) => void;
5
+ };