@dynamic-labs/message-transport 4.0.0-alpha.0 → 4.0.0-alpha.10
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 +132 -0
- package/package.cjs +8 -0
- package/package.js +4 -0
- package/package.json +9 -11
- package/src/index.cjs +14 -1
- package/src/index.d.ts +3 -2
- package/src/index.js +9 -0
- package/src/messageTransport/decorators/makeWaitForInitEvent/makeWaitForInitEvent.d.ts +4 -9
- package/src/messageTransport/decorators/makeWaitForUnblock/makeWaitForUnblock.cjs +23 -15
- package/src/messageTransport/decorators/makeWaitForUnblock/makeWaitForUnblock.d.ts +16 -8
- package/src/messageTransport/decorators/makeWaitForUnblock/makeWaitForUnblock.js +23 -15
- package/src/messageTypes/AccountAbstractionMessages.d.ts +15 -0
- package/src/messageTypes/AuthModuleMessages.cjs +14 -0
- package/src/messageTypes/AuthModuleMessages.d.ts +12 -1
- package/src/messageTypes/AuthModuleMessages.js +10 -0
- package/src/messageTypes/EmbeddedWalletsModuleMessages.cjs +10 -0
- package/src/messageTypes/EmbeddedWalletsModuleMessages.d.ts +9 -1
- package/src/messageTypes/EmbeddedWalletsModuleMessages.js +6 -0
- package/src/messageTypes/ExternalAuthMessages.d.ts +3 -2
- package/src/messageTypes/OtpMessages.cjs +14 -0
- package/src/messageTypes/OtpMessages.d.ts +10 -0
- package/src/messageTypes/OtpMessages.js +9 -0
- package/src/messageTypes/ProjectSettingsMessages.d.ts +6 -0
- package/src/messageTypes/SecureStorageMessages.d.ts +5 -0
- package/src/messageTypes/UserInterfaceModuleMessages.cjs +12 -0
- package/src/messageTypes/UserInterfaceModuleMessages.d.ts +6 -0
- package/src/messageTypes/UserInterfaceModuleMessages.js +8 -0
- package/src/messageTypes/WalletsModuleMessages.cjs +12 -0
- package/src/messageTypes/WalletsModuleMessages.d.ts +29 -0
- package/src/messageTypes/WalletsModuleMessages.js +8 -0
- package/src/messageTypes/ZeroDevExtensionMessages.d.ts +10 -0
- package/src/messageTypes/index.d.ts +4 -0
- package/src/requestChannel/createRequestChannelMessageSender/createRequestChannelMessageSender.cjs +43 -0
- package/src/requestChannel/createRequestChannelMessageSender/createRequestChannelMessageSender.d.ts +18 -0
- package/src/requestChannel/createRequestChannelMessageSender/createRequestChannelMessageSender.js +39 -0
- package/src/requestChannel/createRequestChannelMessageSender/index.d.ts +1 -0
- package/src/requestChannel/index.d.ts +1 -0
- package/src/requestChannel/requestChannel.cjs +58 -31
- package/src/requestChannel/requestChannel.d.ts +3 -36
- package/src/requestChannel/requestChannel.js +55 -26
- package/src/requestChannel/types.d.ts +55 -0
- package/src/requestChannel/utils/index.d.ts +1 -0
- package/src/requestChannel/utils/utils.cjs +33 -0
- package/src/requestChannel/utils/utils.d.ts +16 -0
- package/src/requestChannel/utils/utils.js +25 -0
- package/src/store/createEventEmitterForMessages/createEventEmitterForMessages.cjs +4 -5
- package/src/store/createEventEmitterForMessages/createEventEmitterForMessages.d.ts +5 -8
- package/src/store/createEventEmitterForMessages/createEventEmitterForMessages.js +4 -5
- package/src/store/types.d.ts +3 -11
- package/src/types.d.ts +5 -0
- package/src/utils/logger.cjs +10 -0
- package/src/utils/logger.d.ts +2 -0
- package/src/utils/logger.js +6 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var utils = require('@dynamic-labs/utils');
|
|
7
|
+
var logger = require('../../utils/logger.cjs');
|
|
8
|
+
|
|
9
|
+
/** Given a request event name, returns the event name for its resolve */
|
|
10
|
+
const getResolveMessageType = (type) => `${type}__resolve`;
|
|
11
|
+
/** Given a request event name, returns the event name for its reject */
|
|
12
|
+
const getRejectMessageType = (type) => `${type}__reject`;
|
|
13
|
+
/** Given a request event name, returns the event name for its acknowledgement */
|
|
14
|
+
const getAckMessageType = (type) => `${type}__ack`;
|
|
15
|
+
/** Returns a "no handlers registered" error for a message type */
|
|
16
|
+
const createNoHandlerError = (type) => {
|
|
17
|
+
const message = `No handlers were registered for message of type ${type}`;
|
|
18
|
+
logger.logger.error(message);
|
|
19
|
+
return new utils.RequestChannelNotHandledError(message);
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* When a request is sent, a timer will be started. If it times out before
|
|
23
|
+
* a corresponding ack message is received, we reject the request with NO_HANDLERS_REGISTERED.
|
|
24
|
+
*
|
|
25
|
+
* This controls how many ms we should wait before we time out.
|
|
26
|
+
*/
|
|
27
|
+
const TIMEOUT_DURATION = 3000;
|
|
28
|
+
|
|
29
|
+
exports.TIMEOUT_DURATION = TIMEOUT_DURATION;
|
|
30
|
+
exports.createNoHandlerError = createNoHandlerError;
|
|
31
|
+
exports.getAckMessageType = getAckMessageType;
|
|
32
|
+
exports.getRejectMessageType = getRejectMessageType;
|
|
33
|
+
exports.getResolveMessageType = getResolveMessageType;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RequestChannelNotHandledError } from '@dynamic-labs/utils';
|
|
2
|
+
/** Given a request event name, returns the event name for its resolve */
|
|
3
|
+
export declare const getResolveMessageType: (type: string) => string;
|
|
4
|
+
/** Given a request event name, returns the event name for its reject */
|
|
5
|
+
export declare const getRejectMessageType: (type: string) => string;
|
|
6
|
+
/** Given a request event name, returns the event name for its acknowledgement */
|
|
7
|
+
export declare const getAckMessageType: (type: string) => string;
|
|
8
|
+
/** Returns a "no handlers registered" error for a message type */
|
|
9
|
+
export declare const createNoHandlerError: (type: string) => RequestChannelNotHandledError;
|
|
10
|
+
/**
|
|
11
|
+
* When a request is sent, a timer will be started. If it times out before
|
|
12
|
+
* a corresponding ack message is received, we reject the request with NO_HANDLERS_REGISTERED.
|
|
13
|
+
*
|
|
14
|
+
* This controls how many ms we should wait before we time out.
|
|
15
|
+
*/
|
|
16
|
+
export declare const TIMEOUT_DURATION = 3000;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { RequestChannelNotHandledError } from '@dynamic-labs/utils';
|
|
3
|
+
import { logger } from '../../utils/logger.js';
|
|
4
|
+
|
|
5
|
+
/** Given a request event name, returns the event name for its resolve */
|
|
6
|
+
const getResolveMessageType = (type) => `${type}__resolve`;
|
|
7
|
+
/** Given a request event name, returns the event name for its reject */
|
|
8
|
+
const getRejectMessageType = (type) => `${type}__reject`;
|
|
9
|
+
/** Given a request event name, returns the event name for its acknowledgement */
|
|
10
|
+
const getAckMessageType = (type) => `${type}__ack`;
|
|
11
|
+
/** Returns a "no handlers registered" error for a message type */
|
|
12
|
+
const createNoHandlerError = (type) => {
|
|
13
|
+
const message = `No handlers were registered for message of type ${type}`;
|
|
14
|
+
logger.error(message);
|
|
15
|
+
return new RequestChannelNotHandledError(message);
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* When a request is sent, a timer will be started. If it times out before
|
|
19
|
+
* a corresponding ack message is received, we reject the request with NO_HANDLERS_REGISTERED.
|
|
20
|
+
*
|
|
21
|
+
* This controls how many ms we should wait before we time out.
|
|
22
|
+
*/
|
|
23
|
+
const TIMEOUT_DURATION = 3000;
|
|
24
|
+
|
|
25
|
+
export { TIMEOUT_DURATION, createNoHandlerError, getAckMessageType, getRejectMessageType, getResolveMessageType };
|
|
@@ -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,
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
5
|
+
* messages that have a name inside eventNames
|
|
9
6
|
*/
|
|
10
|
-
export declare function createEventEmitterForMessages<T extends Record<string, (...args: any[]) => any> = never
|
|
7
|
+
export declare function createEventEmitterForMessages<T extends Record<string, (...args: any[]) => any> = never>(params: {
|
|
11
8
|
messageTransport: MessageTransportWithDefaultOrigin;
|
|
12
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
|
package/src/store/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import EventEmitter from 'eventemitter3';
|
|
2
|
-
|
|
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
|
+
};
|