@event-chat/rpc 0.1.21 → 0.1.23

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.
@@ -32,17 +32,19 @@ export type RPCOptionsType = Pick<MessageItem, 'channel'> & {
32
32
  retryTimes?: number;
33
33
  debug?: (arg: {
34
34
  data: MessageItem;
35
+ handlers: string[];
35
36
  info: MessageInfo;
36
37
  options: Omit<RPCOptionsType, 'debug' | 'onConnect' | 'onDisconnect'>;
38
+ pending: string[];
37
39
  }) => void;
38
40
  onConnect?: () => void;
39
41
  onDisconnect?: (destroy?: boolean) => void;
40
42
  };
41
43
  export type ActionFunType = (payload?: any, info?: MessageInfo) => any;
42
44
  export type BrodcastItem = (value: unknown, info?: MessageInfo & Pick<MessageItem, 'requestId' | 'sign'>) => void;
45
+ export type MessageInfo = Pick<MessageEvent, 'origin' | 'ports' | 'source'>;
43
46
  export type RequestOptions<T = unknown> = IframeSerializeOptions & Pick<MessageItem, 'requestId' | 'sign'> & {
44
47
  payload?: T;
45
48
  retry?: number;
46
49
  };
47
- type MessageInfo = Pick<MessageEvent, 'origin' | 'ports' | 'source'>;
48
50
  //# sourceMappingURL=RPCAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RPCAction.d.ts","sourceRoot":"","sources":["../../src/core/RPCAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAa1E,cAAM,SAAS;IAaX,OAAO,CAAC,OAAO;IAZjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,oBAAoB,CAAkC;gBAGpD,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EACnC,OAAO,CAAC,EAAE,cAAc;IAa1B,OAAO;IAkBP,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IAmBvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,cAAc,CAAC;IAIlE,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IAIzD,UAAU,CAAC,QAAQ,EAAE,YAAY;IAIjC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IA8CnE,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;IA2FvB,OAAO,CAAC,eAAe;CAuBxB;AAED,eAAe,SAAS,CAAA;AAExB,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;IAC1D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE;QACZ,IAAI,EAAE,WAAW,CAAA;QACjB,IAAI,EAAE,WAAW,CAAA;QACjB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,WAAW,GAAG,cAAc,CAAC,CAAA;KACtE,KAAK,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CAC3C,CAAA;AAID,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,GAAG,CAAA;AAGtE,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,KACzD,IAAI,CAAA;AAET,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,sBAAsB,GAC9D,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG;IACxC,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAIH,KAAK,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA"}
1
+ {"version":3,"file":"RPCAction.d.ts","sourceRoot":"","sources":["../../src/core/RPCAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAa1E,cAAM,SAAS;IAaX,OAAO,CAAC,OAAO;IAZjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,oBAAoB,CAAkC;gBAGpD,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EACnC,OAAO,CAAC,EAAE,cAAc;IAa1B,OAAO;IAkBP,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IAmBvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,cAAc,CAAC;IAIlE,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IAIzD,UAAU,CAAC,QAAQ,EAAE,YAAY;IAIjC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IA8CnE,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;IA8FvB,OAAO,CAAC,eAAe;CAuBxB;AAED,eAAe,SAAS,CAAA;AAExB,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;IAC1D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE;QACZ,IAAI,EAAE,WAAW,CAAA;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,IAAI,EAAE,WAAW,CAAA;QACjB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,WAAW,GAAG,cAAc,CAAC,CAAA;QACrE,OAAO,EAAE,MAAM,EAAE,CAAA;KAClB,KAAK,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CAC3C,CAAA;AAID,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,GAAG,CAAA;AAGtE,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,KACzD,IAAI,CAAA;AAET,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;AAE3E,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,sBAAsB,GAC9D,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG;IACxC,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
@@ -144,10 +144,14 @@ class RPCAction {
144
144
  if (__RPC__ !== RPC_SIGN) return;
145
145
  if (data) {
146
146
  Reflect.deleteProperty(options, 'onDisconnect');
147
+ const pending = Array.from(this._pending.keys());
148
+ const handlers = Object.keys(this._handlers);
147
149
  debug?.({
148
150
  data,
151
+ handlers,
149
152
  info,
150
- options
153
+ options,
154
+ pending
151
155
  });
152
156
  }
153
157
  if (options?.channel !== channel) return;
@@ -1 +1 @@
1
- {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/entry/auto.ts"],"names":[],"mappings":"AAmEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/entry/auto.ts"],"names":[],"mappings":"AA0EA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA"}
@@ -12,6 +12,12 @@ registerTransport({
12
12
  match: (t)=>t instanceof DedicatedWorkerGlobalScope,
13
13
  load: ()=>import("../transports/DedicatedWorkerGlobalScopeTransport.js")
14
14
  });
15
+ registerTransport({
16
+ name: 'messagePort',
17
+ in: ()=>'undefined' != typeof MessagePort,
18
+ match: (t)=>t instanceof MessagePort,
19
+ load: ()=>import("../transports/MessagePortTransport.js")
20
+ });
15
21
  registerTransport({
16
22
  name: 'serviceWorkerGlobalScope',
17
23
  in: ()=>'undefined' != typeof ServiceWorkerGlobalScope,
@@ -1,6 +1,6 @@
1
1
  import { ActionRecord } from '../RPCDecorator';
2
2
  import { EntryOptions } from '../transports/fields';
3
- export declare function createBroadcastChannelRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: BroadcastChannel, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
3
+ export declare function createBroadcastChannelRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: BroadcastChannel, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
4
  request: never;
5
5
  }>, () => void];
6
6
  //# sourceMappingURL=broadcastChannel.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { ActionRecord } from '../RPCDecorator';
2
2
  import { EntryOptions } from '../transports/fields';
3
- export declare function createDedicatedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: DedicatedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
3
+ export declare function createDedicatedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: DedicatedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
4
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
5
5
  payload?: never;
6
6
  } : StructuredSerializeOptions & {
@@ -0,0 +1,26 @@
1
+ import { ActionRecord } from '../RPCDecorator';
2
+ import { EntryOptions } from '../transports/fields';
3
+ export declare function createMessagePortRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: MessagePort, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
+ request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
5
+ payload?: never;
6
+ } : StructuredSerializeOptions & {
7
+ targetOrigin?: string;
8
+ transmit?: () => Promise<readonly WindowClient[]>;
9
+ } & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
10
+ payload?: Parameters<CONSUME[K]>[0] | undefined;
11
+ retry?: number;
12
+ } & {
13
+ payload: Parameters<CONSUME[K]>[0];
14
+ }) | undefined] : [keyname: K, reqops: Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
15
+ payload?: never;
16
+ } : StructuredSerializeOptions & {
17
+ targetOrigin?: string;
18
+ transmit?: () => Promise<readonly WindowClient[]>;
19
+ } & Pick<import("../fields").MessageItem, "requestId" | "sign"> & {
20
+ payload?: Parameters<CONSUME[K]>[0] | undefined;
21
+ retry?: number;
22
+ } & {
23
+ payload: Parameters<CONSUME[K]>[0];
24
+ }]) => Promise<ReturnType<CONSUME[K]> extends infer T ? T extends ReturnType<CONSUME[K]> ? T extends Promise<infer R> ? R : T : never : never>;
25
+ }>, () => void];
26
+ //# sourceMappingURL=messagePort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messagePort.d.ts","sourceRoot":"","sources":["../../src/entry/messagePort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAC3F,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAItC"}
@@ -0,0 +1,7 @@
1
+ import RPCDecorator from "../core/RPCDecorator.js";
2
+ import MessagePortTransport from "../transports/MessagePortTransport.js";
3
+ function createMessagePortRPC(target, config) {
4
+ const { context, options } = config ?? {};
5
+ return RPCDecorator(new MessagePortTransport(target, options), context);
6
+ }
7
+ export { createMessagePortRPC };
@@ -1,6 +1,6 @@
1
1
  import { ActionRecord } from '../RPCDecorator';
2
2
  import { EntryOptions } from '../transports/fields';
3
- export declare function createServiceWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
3
+ export declare function createServiceWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
4
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
5
5
  payload?: never;
6
6
  } : StructuredSerializeOptions & {
@@ -1,6 +1,6 @@
1
1
  import { ActionRecord } from '../RPCDecorator';
2
2
  import { EntryOptions } from '../transports/fields';
3
- export declare function createServiceWorkerRegistrationRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerRegistration, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
3
+ export declare function createServiceWorkerRegistrationRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerRegistration, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
4
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
5
5
  payload?: never;
6
6
  } : StructuredSerializeOptions & {
@@ -1,6 +1,6 @@
1
1
  import { ActionRecord } from '../RPCDecorator';
2
2
  import { EntryOptions } from '../transports/fields';
3
- export declare function createSharedWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
3
+ export declare function createSharedWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
4
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
5
5
  payload?: never;
6
6
  } : StructuredSerializeOptions & {
@@ -1,6 +1,6 @@
1
1
  import { ActionRecord } from '../RPCDecorator';
2
2
  import { EntryOptions } from '../transports/fields';
3
- export declare function createSharedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
3
+ export declare function createSharedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
4
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
5
5
  payload?: never;
6
6
  } : StructuredSerializeOptions & {
@@ -1,6 +1,6 @@
1
1
  import { ActionRecord } from '../RPCDecorator';
2
2
  import { EntryOptions } from '../transports/fields';
3
- export declare function createWebSocketRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: WebSocket, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
3
+ export declare function createWebSocketRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: WebSocket, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
4
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
5
5
  payload?: never;
6
6
  } : StructuredSerializeOptions & {
@@ -1,6 +1,6 @@
1
1
  import { ActionRecord } from '../RPCDecorator';
2
2
  import { EntryOptions } from '../transports/fields';
3
- export declare function createWindowRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Window | HTMLIFrameElement, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
3
+ export declare function createWindowRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Window | HTMLIFrameElement, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
4
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
5
5
  payload?: never;
6
6
  } : StructuredSerializeOptions & {
@@ -1,6 +1,6 @@
1
1
  import { ActionRecord } from '../RPCDecorator';
2
2
  import { EntryOptions } from '../transports/fields';
3
- export declare function createWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Worker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
3
+ export declare function createWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Worker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "request" | "destroy" | "on" | "onBrodcast"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
4
4
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
5
5
  payload?: never;
6
6
  } : StructuredSerializeOptions & {
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './createCtx';
2
- export { type RPCInstanceContextIns, TARGET_TYPE_STRINGS } from './fields';
2
+ export { type RPCInstanceContextIns, type Transport, TARGET_TYPE_STRINGS } from './fields';
3
3
  export { default as useRPC } from './hooks';
4
- export { default as RPCDecorator } from './RPCDecorator';
4
+ export { type DecoratorContext, default as RPCDecorator } from './core/RPCDecorator';
5
5
  export { default as RPCProvider } from './RPCProvider';
6
+ export type { MessageInfo } from './core/RPCAction';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,KAAK,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC1F,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { TARGET_TYPE_STRINGS } from "./fields.js";
2
2
  import hooks from "./hooks.js";
3
- import RPCDecorator from "./RPCDecorator.js";
3
+ import RPCDecorator from "./core/RPCDecorator.js";
4
4
  import RPCProvider from "./RPCProvider.js";
5
5
  export * from "./createCtx.js";
6
6
  export { RPCDecorator, RPCProvider, TARGET_TYPE_STRINGS, hooks as useRPC };
@@ -20,5 +20,5 @@ export interface FactoryOptions {
20
20
  message?: boolean | AddEventListenerOptions;
21
21
  observer?: () => unknown;
22
22
  }
23
- export type TargetType = BroadcastChannel | WebSocket | Window | ServiceWorkerRegistration | ServiceWorkerGlobalScope | SharedWorker | SharedWorkerGlobalScope | Worker | DedicatedWorkerGlobalScope;
23
+ export type TargetType = BroadcastChannel | MessagePort | WebSocket | Window | ServiceWorkerRegistration | ServiceWorkerGlobalScope | SharedWorker | SharedWorkerGlobalScope | Worker | DedicatedWorkerGlobalScope;
24
24
  //# sourceMappingURL=BaseTransport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BaseTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAExF,uBAAe,aAAa,CAC1B,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,MAAM,SAAS,OAAO,GAAG,KAAK,CAC9B,YAAW,SAAS,CAAC,MAAM,CAAC;IAG1B,SAAS,CAAC,OAAO,EAAE,CAAC;IACpB,SAAS,CAAC,QAAQ,EAAE,cAAc;IAHpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAEd,OAAO,EAAE,CAAC,EACV,QAAQ,GAAE,cAAmB;IAIzC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;IAIxC,OAAO;IAIP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE;IAI9B,KAAK,CAAC,OAAO,EAAE,cAAc;IAM7B,QAAQ,CAAC,OAAO,IAAI,IAAI;IAIxB,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAC1C,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAGhD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAC/C,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CACnF;AAED,eAAe,aAAa,CAAA;AAE5B,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;IAE3C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;CACzB;AAID,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,SAAS,GACT,MAAM,GAEN,yBAAyB,GACzB,wBAAwB,GACxB,YAAY,GACZ,uBAAuB,GACvB,MAAM,GACN,0BAA0B,CAAA"}
1
+ {"version":3,"file":"BaseTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BaseTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAExF,uBAAe,aAAa,CAC1B,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,MAAM,SAAS,OAAO,GAAG,KAAK,CAC9B,YAAW,SAAS,CAAC,MAAM,CAAC;IAG1B,SAAS,CAAC,OAAO,EAAE,CAAC;IACpB,SAAS,CAAC,QAAQ,EAAE,cAAc;IAHpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAEd,OAAO,EAAE,CAAC,EACV,QAAQ,GAAE,cAAmB;IAIzC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;IAIxC,OAAO;IAIP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE;IAI9B,KAAK,CAAC,OAAO,EAAE,cAAc;IAM7B,QAAQ,CAAC,OAAO,IAAI,IAAI;IAIxB,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAC1C,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAGhD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAC/C,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CACnF;AAED,eAAe,aAAa,CAAA;AAE5B,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;IAE3C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;CACzB;AAID,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,MAAM,GAEN,yBAAyB,GACzB,wBAAwB,GACxB,YAAY,GACZ,uBAAuB,GACvB,MAAM,GACN,0BAA0B,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { IframeSerializeOptions, ListenerType, MessageItem } from '../fields';
2
+ import BaseTransport from './BaseTransport';
3
+ declare class MessagePortTransport extends BaseTransport<MessagePort> {
4
+ destroy(): void;
5
+ observe(): void;
6
+ onmessage(listener: ListenerType): void;
7
+ onremove(listener: ListenerType): void;
8
+ postMessage(message: MessageItem, options?: IframeSerializeOptions): void;
9
+ }
10
+ export default MessagePortTransport;
11
+ //# sourceMappingURL=MessagePortTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessagePortTransport.d.ts","sourceRoot":"","sources":["../../src/transports/MessagePortTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C,cAAM,oBAAqB,SAAQ,aAAa,CAAC,WAAW,CAAC;IAC3D,OAAO;IAKP,OAAO,IAAI,IAAI;IAEf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAKvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAI1E;AAED,eAAe,oBAAoB,CAAA"}
@@ -0,0 +1,22 @@
1
+ import BaseTransport from "./BaseTransport.js";
2
+ class MessagePortTransport extends BaseTransport {
3
+ destroy() {
4
+ this._target.close();
5
+ }
6
+ observe() {}
7
+ onmessage(listener) {
8
+ this._target.addEventListener('message', listener, this._options.message);
9
+ this._target.start();
10
+ }
11
+ onremove(listener) {
12
+ this._target.removeEventListener('message', listener, this._options.message);
13
+ }
14
+ postMessage(message, options) {
15
+ const { transfer } = options ?? {};
16
+ this._target.postMessage(message, {
17
+ transfer
18
+ });
19
+ }
20
+ }
21
+ const transports_MessagePortTransport = MessagePortTransport;
22
+ export { transports_MessagePortTransport as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAK3C,cAAM,iCAAkC,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACrF,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO,CAAC,OAAO,CAA8C;IAI7D,OAAO;IAKP,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAyBvC,QAAQ,IAAI,IAAI;IAKhB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAuB1E;AAED,OAAO,EAAE,CAAA;AAET,eAAe,iCAAiC,CAAA"}
1
+ {"version":3,"file":"ServiceWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAK3C,cAAM,iCAAkC,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACrF,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO,CAAC,OAAO,CAA8C;IAI7D,OAAO;IAKP,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAevC,QAAQ,IAAI,IAAI;IAKhB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAuB1E;AAED,OAAO,EAAE,CAAA;AAET,eAAe,iCAAiC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@event-chat/rpc",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {
@@ -32,6 +32,10 @@
32
32
  "types": "./dist/entry/broadcastChannel.d.ts",
33
33
  "import": "./dist/entry/broadcastChannel.js"
34
34
  },
35
+ "./messagePort": {
36
+ "types": "./dist/entry/messagePort.d.ts",
37
+ "import": "./dist/entry/messagePort.js"
38
+ },
35
39
  "./sharedWorker": {
36
40
  "types": "./dist/entry/sharedWorker.d.ts",
37
41
  "import": "./dist/entry/sharedWorker.js"