@event-chat/rpc 0.1.9 → 0.1.11

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.
Files changed (61) hide show
  1. package/dist/core/RPCAction.d.ts.map +1 -1
  2. package/dist/core/RPCAction.js +3 -2
  3. package/dist/core/RPCDecorator.d.ts +2 -4
  4. package/dist/core/RPCDecorator.d.ts.map +1 -1
  5. package/dist/core/RPCDecorator.js +10 -6
  6. package/dist/core/registry.d.ts +4 -2
  7. package/dist/core/registry.d.ts.map +1 -1
  8. package/dist/entry/broadcastChannel.d.ts +4 -2
  9. package/dist/entry/broadcastChannel.d.ts.map +1 -1
  10. package/dist/entry/dedicatedWorkerGlobalScope.d.ts +4 -2
  11. package/dist/entry/dedicatedWorkerGlobalScope.d.ts.map +1 -1
  12. package/dist/entry/serviceWorkerGlobalScope.d.ts +4 -2
  13. package/dist/entry/serviceWorkerGlobalScope.d.ts.map +1 -1
  14. package/dist/entry/serviceWorkerRegistration.d.ts +4 -2
  15. package/dist/entry/serviceWorkerRegistration.d.ts.map +1 -1
  16. package/dist/entry/sharedWorker.d.ts +4 -2
  17. package/dist/entry/sharedWorker.d.ts.map +1 -1
  18. package/dist/entry/sharedWorkerGlobalScope.d.ts +4 -2
  19. package/dist/entry/sharedWorkerGlobalScope.d.ts.map +1 -1
  20. package/dist/entry/webSocket.d.ts +4 -2
  21. package/dist/entry/webSocket.d.ts.map +1 -1
  22. package/dist/entry/window.d.ts +4 -2
  23. package/dist/entry/window.d.ts.map +1 -1
  24. package/dist/entry/worker.d.ts +4 -2
  25. package/dist/entry/worker.d.ts.map +1 -1
  26. package/dist/fields.d.ts +7 -3
  27. package/dist/fields.d.ts.map +1 -1
  28. package/dist/react/hooks.d.ts +5 -2
  29. package/dist/react/hooks.d.ts.map +1 -1
  30. package/dist/react/hooks.js +16 -21
  31. package/dist/transports/BaseTransport.d.ts +4 -4
  32. package/dist/transports/BaseTransport.d.ts.map +1 -1
  33. package/dist/transports/BaseTransport.js +1 -1
  34. package/dist/transports/BroadcastChannelTransport.d.ts +4 -3
  35. package/dist/transports/BroadcastChannelTransport.d.ts.map +1 -1
  36. package/dist/transports/BroadcastChannelTransport.js +1 -1
  37. package/dist/transports/DedicatedWorkerGlobalScopeTransport.d.ts +4 -4
  38. package/dist/transports/DedicatedWorkerGlobalScopeTransport.d.ts.map +1 -1
  39. package/dist/transports/DedicatedWorkerGlobalScopeTransport.js +1 -1
  40. package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts +4 -3
  41. package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts.map +1 -1
  42. package/dist/transports/ServiceWorkerGlobalScopeTransport.js +16 -14
  43. package/dist/transports/ServiceWorkerRegistrationTransport.d.ts +4 -4
  44. package/dist/transports/ServiceWorkerRegistrationTransport.d.ts.map +1 -1
  45. package/dist/transports/ServiceWorkerRegistrationTransport.js +3 -1
  46. package/dist/transports/SharedWorkerGlobalScopeTransport.d.ts +4 -4
  47. package/dist/transports/SharedWorkerGlobalScopeTransport.d.ts.map +1 -1
  48. package/dist/transports/SharedWorkerGlobalScopeTransport.js +1 -1
  49. package/dist/transports/SharedWorkerTransport.d.ts +4 -4
  50. package/dist/transports/SharedWorkerTransport.d.ts.map +1 -1
  51. package/dist/transports/SharedWorkerTransport.js +1 -1
  52. package/dist/transports/WebSocketTransport.d.ts +3 -3
  53. package/dist/transports/WebSocketTransport.d.ts.map +1 -1
  54. package/dist/transports/WebSocketTransport.js +1 -1
  55. package/dist/transports/WindowTransport.d.ts +5 -4
  56. package/dist/transports/WindowTransport.d.ts.map +1 -1
  57. package/dist/transports/WindowTransport.js +4 -1
  58. package/dist/transports/WorkerTransport.d.ts +4 -4
  59. package/dist/transports/WorkerTransport.d.ts.map +1 -1
  60. package/dist/transports/WorkerTransport.js +1 -1
  61. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RPCAction.d.ts","sourceRoot":"","sources":["../../src/core/RPCAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAI7D,QAAA,MAAM,WAAW,oBAAoB,CAAA;AAarC,cAAM,SAAS;IAWX,OAAO,CAAC,OAAO;IAVjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAA8B;IACrD,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,EAC1B,OAAO,CAAC,EAAE,cAAc;IAc1B,OAAO;IAUP,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IASvD,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;IA6CnE,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,eAAe;IAwEvB,OAAO,CAAC,eAAe;CAsBxB;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,eAAe,SAAS,CAAA;AAExB,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAID,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,GAAG,CAAA;AAElD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAEpE,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,sBAAsB,GAAG;IACjE,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
1
+ {"version":3,"file":"RPCAction.d.ts","sourceRoot":"","sources":["../../src/core/RPCAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAI7D,QAAA,MAAM,WAAW,oBAAoB,CAAA;AAarC,cAAM,SAAS;IAWX,OAAO,CAAC,OAAO;IAVjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAA8B;IACrD,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,EAC1B,OAAO,CAAC,EAAE,cAAc;IAc1B,OAAO;IAUP,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IASvD,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;IA6CnE,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,eAAe;IA8EvB,OAAO,CAAC,eAAe;CAsBxB;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,eAAe,SAAS,CAAA;AAExB,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAID,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,GAAG,CAAA;AAElD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAEpE,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,sBAAsB,GAAG;IACjE,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
@@ -119,7 +119,7 @@ class RPCAction {
119
119
  return this._options?.allowedOrigins?.some((item)=>'*' === item || getOrigin(item) === getOrigin(origin)) ?? false;
120
120
  }
121
121
  _messageHandler(event) {
122
- const { data, origin, source } = event;
122
+ const { data, origin, source, wait } = event;
123
123
  const { __RPC__, broadcast, channel, error, heartbeat, kind, payload, requestId, type } = data ?? {};
124
124
  if (__RPC__ !== RPC_SIGN) return;
125
125
  if (this._options?.channel !== channel) return;
@@ -155,6 +155,7 @@ class RPCAction {
155
155
  }, {
156
156
  targetOrigin: origin
157
157
  });
158
+ return result;
158
159
  }).catch((err)=>{
159
160
  const message = err instanceof Error ? err.message : '[RPC] 处理消息时发生错误';
160
161
  this._target.postMessage({
@@ -167,7 +168,7 @@ class RPCAction {
167
168
  }, {
168
169
  targetOrigin: origin
169
170
  });
170
- });
171
+ }).finally(()=>wait?.());
171
172
  }
172
173
  _startHeartbeat() {
173
174
  const { channel, heartbeatInterval = defaultOptions.heartbeatInterval, heartbeatTimeout = defaultOptions.heartbeatTimeout } = this._options;
@@ -1,10 +1,8 @@
1
1
  import { Transport } from '../fields';
2
2
  import RPCAction, { ActionFunType, BrodcastItem, RPCOptionsType, RequestOptions } from './RPCAction';
3
- declare const factoryKey: readonly ["getType", "upset"];
4
- declare const disabledKey: readonly ["on", "onBrodcast"];
5
- declare function RPCDecorator<EVENT extends ActionRecord, CONSUME extends ActionRecord>(factory: Transport | null, context?: DecoratorContext<EVENT, CONSUME>): Readonly<Omit<RPCAction, (typeof disabledKey)[number] | "request"> & Pick<Transport, (typeof factoryKey)[number]> & {
3
+ declare function RPCDecorator<EVENT extends ActionRecord, CONSUME extends ActionRecord>(factory: Transport | null, context?: DecoratorContext<EVENT, CONSUME>): readonly [Readonly<Omit<RPCAction, "destroy" | "on" | "onBrodcast" | "request"> & Pick<Transport, "getType" | "upset"> & {
6
4
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: RequestOptionsByAction<CONSUME[K]>] : [keyname: K, reqops: RequestOptionsByAction<CONSUME[K]>]) => Promise<ReturnType<CONSUME[K]>>;
7
- }>;
5
+ }>, () => void];
8
6
  export default RPCDecorator;
9
7
  export interface DecoratorContext<EVENT extends ActionRecord, CONSUME extends ActionRecord> {
10
8
  brodcast?: Record<string, BrodcastItem>;
@@ -1 +1 @@
1
- {"version":3,"file":"RPCDecorator.d.ts","sourceRoot":"","sources":["../../src/core/RPCDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,SAAS,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEpG,QAAA,MAAM,UAAU,+BAAgC,CAAA;AAChD,QAAA,MAAM,WAAW,+BAAgC,CAAA;AAUjD,iBAAS,YAAY,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAC5E,OAAO,EAAE,SAAS,GAAG,IAAI,EACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAiDrC,QAAQ,CACX,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,WAAW,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,GACvD,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,UAAU,EAAE,MAAM,CAAC,CAAC,GAAG;IAC7C,OAAO,GA/CI,CAAC,SAAS,MAAM,OAAO,WAC7B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GACtC,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GACzD,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAGjB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAyC/C;CACxB,CACJ,CACF;AAED,eAAe,YAAY,CAAA;AAE3B,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAExD,KAAK,sBAAsB,CAAC,CAAC,SAAS,aAAa,IACjD,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,GACpB,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,GACrD,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"RPCDecorator.d.ts","sourceRoot":"","sources":["../../src/core/RPCDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,SAAS,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAapG,iBAAS,YAAY,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAC5E,OAAO,EAAE,SAAS,GAAG,IAAI,EACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;cAKzB,CAAC,SAAS,MAAM,OAAO,WAC7B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GACtC,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GACzD,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAGjB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBA8C7E;AAED,eAAe,YAAY,CAAA;AAE3B,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAExD,KAAK,sBAAsB,CAAC,CAAC,SAAS,aAAa,IACjD,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,GACpB,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,GACrD,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAA"}
@@ -4,6 +4,7 @@ const factoryKey = [
4
4
  'upset'
5
5
  ];
6
6
  const disabledKey = [
7
+ 'destroy',
7
8
  'on',
8
9
  'onBrodcast'
9
10
  ];
@@ -20,17 +21,16 @@ function RPCDecorator(factory, context) {
20
21
  const [keyname, reqops] = args;
21
22
  return action?.request(keyname, reqops);
22
23
  };
24
+ const destroy = ()=>{
25
+ action?.destroy();
26
+ factory?.destroy();
27
+ };
23
28
  Object.entries(event ?? {}).forEach(([keyname, handle])=>action?.on(keyname, handle));
24
29
  Object.values(brodcast ?? {}).forEach((handle)=>action?.onBrodcast(handle));
25
- return new Proxy({}, {
30
+ const rpcInsc = new Proxy({}, {
26
31
  get (_, key) {
27
32
  const keyname = key.toString();
28
33
  switch(key){
29
- case 'destroy':
30
- return ()=>{
31
- action?.destroy();
32
- factory?.destory();
33
- };
34
34
  case 'request':
35
35
  return request;
36
36
  default:
@@ -52,6 +52,10 @@ function RPCDecorator(factory, context) {
52
52
  throw new Error('decorator is readonly');
53
53
  }
54
54
  });
55
+ return [
56
+ rpcInsc,
57
+ destroy
58
+ ];
55
59
  }
56
60
  const core_RPCDecorator = RPCDecorator;
57
61
  export { core_RPCDecorator as default };
@@ -5,11 +5,12 @@ import { ActionRecord } from './RPCDecorator';
5
5
  export declare function cacheImport(item?: TransportItem): Promise<{
6
6
  default: new (target: any, options?: FactoryOptions) => Transport;
7
7
  } | undefined>;
8
- export declare function createRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: unknown, config?: EntryOptions<EVENT, CONSUME>): Promise<Readonly<Omit<import("./RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<Transport, "getType" | "upset"> & {
8
+ export declare function createRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: unknown, config?: EntryOptions<EVENT, CONSUME>): Promise<readonly [Readonly<Omit<import("./RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<Transport, "getType" | "upset"> & {
9
9
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("./RPCAction").RequestOptions, "payload"> & {
10
10
  payload?: never;
11
11
  } : StructuredSerializeOptions & {
12
12
  targetOrigin?: string;
13
+ transmit?: Promise<readonly WindowClient[]>;
13
14
  } & {
14
15
  payload?: Parameters<CONSUME[K]>[0] | undefined;
15
16
  retry?: number;
@@ -19,13 +20,14 @@ export declare function createRPC<EVENT extends ActionRecord, CONSUME extends Ac
19
20
  payload?: never;
20
21
  } : StructuredSerializeOptions & {
21
22
  targetOrigin?: string;
23
+ transmit?: Promise<readonly WindowClient[]>;
22
24
  } & {
23
25
  payload?: Parameters<CONSUME[K]>[0] | undefined;
24
26
  retry?: number;
25
27
  } & {
26
28
  payload: Parameters<CONSUME[K]>[0];
27
29
  }]) => Promise<ReturnType<CONSUME[K]>>;
28
- }>>;
30
+ }>, () => void]>;
29
31
  export declare function registerTransport<T extends TargetType>(resolver: TransportResolver<T>): void;
30
32
  export declare function resolveTransport(target: unknown, options?: FactoryOptions): Promise<Transport | null>;
31
33
  export type TransportResolver<T extends TargetType = TargetType> = {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK3D,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa;yCAoCW,cAAc,KAAK,SAAS;eA7BtF;AAED,wBAAgB,SAAS,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAChF,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;IAItC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,UAAU,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAErF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,6BASzE;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI;IACjE,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,OAAO,CAAA;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC,CAAA;IACvC,IAAI,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,SAAS,CAAA;KAAE,CAAC,CAAA;CACzF,CAAA;AAID,KAAK,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK3D,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa;yCAoCW,cAAc,KAAK,SAAS;eA7BtF;AAED,wBAAgB,SAAS,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAChF,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;iBAItC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,UAAU,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAErF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,6BASzE;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI;IACjE,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,OAAO,CAAA;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC,CAAA;IACvC,IAAI,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,SAAS,CAAA;KAAE,CAAC,CAAA;CACzF,CAAA;AAID,KAAK,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA"}
@@ -1,10 +1,11 @@
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<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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 & {
7
7
  targetOrigin?: string;
8
+ transmit?: Promise<readonly WindowClient[]>;
8
9
  } & {
9
10
  payload?: Parameters<CONSUME[K]>[0] | undefined;
10
11
  retry?: number;
@@ -14,11 +15,12 @@ export declare function createBroadcastChannelRPC<EVENT extends ActionRecord, CO
14
15
  payload?: never;
15
16
  } : StructuredSerializeOptions & {
16
17
  targetOrigin?: string;
18
+ transmit?: Promise<readonly WindowClient[]>;
17
19
  } & {
18
20
  payload?: Parameters<CONSUME[K]>[0] | undefined;
19
21
  retry?: number;
20
22
  } & {
21
23
  payload: Parameters<CONSUME[K]>[0];
22
24
  }]) => Promise<ReturnType<CONSUME[K]>>;
23
- }>;
25
+ }>, () => void];
24
26
  //# sourceMappingURL=broadcastChannel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"broadcastChannel.d.ts","sourceRoot":"","sources":["../../src/entry/broadcastChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAChG,MAAM,EAAE,gBAAgB,EACxB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAItC"}
1
+ {"version":3,"file":"broadcastChannel.d.ts","sourceRoot":"","sources":["../../src/entry/broadcastChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAChG,MAAM,EAAE,gBAAgB,EACxB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAItC"}
@@ -1,10 +1,11 @@
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<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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 & {
7
7
  targetOrigin?: string;
8
+ transmit?: Promise<readonly WindowClient[]>;
8
9
  } & {
9
10
  payload?: Parameters<CONSUME[K]>[0] | undefined;
10
11
  retry?: number;
@@ -14,11 +15,12 @@ export declare function createDedicatedWorkerGlobalScopeRPC<EVENT extends Action
14
15
  payload?: never;
15
16
  } : StructuredSerializeOptions & {
16
17
  targetOrigin?: string;
18
+ transmit?: Promise<readonly WindowClient[]>;
17
19
  } & {
18
20
  payload?: Parameters<CONSUME[K]>[0] | undefined;
19
21
  retry?: number;
20
22
  } & {
21
23
  payload: Parameters<CONSUME[K]>[0];
22
24
  }]) => Promise<ReturnType<CONSUME[K]>>;
23
- }>;
25
+ }>, () => void];
24
26
  //# sourceMappingURL=dedicatedWorkerGlobalScope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dedicatedWorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../src/entry/dedicatedWorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,mCAAmC,CACjD,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,0BAA0B,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAG1E"}
1
+ {"version":3,"file":"dedicatedWorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../src/entry/dedicatedWorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,mCAAmC,CACjD,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,0BAA0B,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAG1E"}
@@ -1,10 +1,11 @@
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<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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 & {
7
7
  targetOrigin?: string;
8
+ transmit?: Promise<readonly WindowClient[]>;
8
9
  } & {
9
10
  payload?: Parameters<CONSUME[K]>[0] | undefined;
10
11
  retry?: number;
@@ -14,11 +15,12 @@ export declare function createServiceWorkerGlobalScopeRPC<EVENT extends ActionRe
14
15
  payload?: never;
15
16
  } : StructuredSerializeOptions & {
16
17
  targetOrigin?: string;
18
+ transmit?: Promise<readonly WindowClient[]>;
17
19
  } & {
18
20
  payload?: Parameters<CONSUME[K]>[0] | undefined;
19
21
  retry?: number;
20
22
  } & {
21
23
  payload: Parameters<CONSUME[K]>[0];
22
24
  }]) => Promise<ReturnType<CONSUME[K]>>;
23
- }>;
25
+ }>, () => void];
24
26
  //# sourceMappingURL=serviceWorkerGlobalScope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serviceWorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../src/entry/serviceWorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,iCAAiC,CAC/C,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAGxE"}
1
+ {"version":3,"file":"serviceWorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../src/entry/serviceWorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,iCAAiC,CAC/C,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAGxE"}
@@ -1,10 +1,11 @@
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<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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 & {
7
7
  targetOrigin?: string;
8
+ transmit?: Promise<readonly WindowClient[]>;
8
9
  } & {
9
10
  payload?: Parameters<CONSUME[K]>[0] | undefined;
10
11
  retry?: number;
@@ -14,11 +15,12 @@ export declare function createServiceWorkerRegistrationRPC<EVENT extends ActionR
14
15
  payload?: never;
15
16
  } : StructuredSerializeOptions & {
16
17
  targetOrigin?: string;
18
+ transmit?: Promise<readonly WindowClient[]>;
17
19
  } & {
18
20
  payload?: Parameters<CONSUME[K]>[0] | undefined;
19
21
  retry?: number;
20
22
  } & {
21
23
  payload: Parameters<CONSUME[K]>[0];
22
24
  }]) => Promise<ReturnType<CONSUME[K]>>;
23
- }>;
25
+ }>, () => void];
24
26
  //# sourceMappingURL=serviceWorkerRegistration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serviceWorkerRegistration.d.ts","sourceRoot":"","sources":["../../src/entry/serviceWorkerRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,kCAAkC,CAChD,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,yBAAyB,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAGzE"}
1
+ {"version":3,"file":"serviceWorkerRegistration.d.ts","sourceRoot":"","sources":["../../src/entry/serviceWorkerRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,kCAAkC,CAChD,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,yBAAyB,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAGzE"}
@@ -1,10 +1,11 @@
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<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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 & {
7
7
  targetOrigin?: string;
8
+ transmit?: Promise<readonly WindowClient[]>;
8
9
  } & {
9
10
  payload?: Parameters<CONSUME[K]>[0] | undefined;
10
11
  retry?: number;
@@ -14,11 +15,12 @@ export declare function createSharedWorkerRPC<EVENT extends ActionRecord, CONSUM
14
15
  payload?: never;
15
16
  } : StructuredSerializeOptions & {
16
17
  targetOrigin?: string;
18
+ transmit?: Promise<readonly WindowClient[]>;
17
19
  } & {
18
20
  payload?: Parameters<CONSUME[K]>[0] | undefined;
19
21
  retry?: number;
20
22
  } & {
21
23
  payload: Parameters<CONSUME[K]>[0];
22
24
  }]) => Promise<ReturnType<CONSUME[K]>>;
23
- }>;
25
+ }>, () => void];
24
26
  //# sourceMappingURL=sharedWorker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sharedWorker.d.ts","sourceRoot":"","sources":["../../src/entry/sharedWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAC5F,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAItC"}
1
+ {"version":3,"file":"sharedWorker.d.ts","sourceRoot":"","sources":["../../src/entry/sharedWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAC5F,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAItC"}
@@ -1,10 +1,11 @@
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<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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 & {
7
7
  targetOrigin?: string;
8
+ transmit?: Promise<readonly WindowClient[]>;
8
9
  } & {
9
10
  payload?: Parameters<CONSUME[K]>[0] | undefined;
10
11
  retry?: number;
@@ -14,11 +15,12 @@ export declare function createSharedWorkerGlobalScopeRPC<EVENT extends ActionRec
14
15
  payload?: never;
15
16
  } : StructuredSerializeOptions & {
16
17
  targetOrigin?: string;
18
+ transmit?: Promise<readonly WindowClient[]>;
17
19
  } & {
18
20
  payload?: Parameters<CONSUME[K]>[0] | undefined;
19
21
  retry?: number;
20
22
  } & {
21
23
  payload: Parameters<CONSUME[K]>[0];
22
24
  }]) => Promise<ReturnType<CONSUME[K]>>;
23
- }>;
25
+ }>, () => void];
24
26
  //# sourceMappingURL=sharedWorkerGlobalScope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sharedWorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../src/entry/sharedWorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,gCAAgC,CAC9C,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAGvE"}
1
+ {"version":3,"file":"sharedWorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../src/entry/sharedWorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,gCAAgC,CAC9C,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAGvE"}
@@ -1,10 +1,11 @@
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<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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 & {
7
7
  targetOrigin?: string;
8
+ transmit?: Promise<readonly WindowClient[]>;
8
9
  } & {
9
10
  payload?: Parameters<CONSUME[K]>[0] | undefined;
10
11
  retry?: number;
@@ -14,11 +15,12 @@ export declare function createWebSocketRPC<EVENT extends ActionRecord, CONSUME e
14
15
  payload?: never;
15
16
  } : StructuredSerializeOptions & {
16
17
  targetOrigin?: string;
18
+ transmit?: Promise<readonly WindowClient[]>;
17
19
  } & {
18
20
  payload?: Parameters<CONSUME[K]>[0] | undefined;
19
21
  retry?: number;
20
22
  } & {
21
23
  payload: Parameters<CONSUME[K]>[0];
22
24
  }]) => Promise<ReturnType<CONSUME[K]>>;
23
- }>;
25
+ }>, () => void];
24
26
  //# sourceMappingURL=webSocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../src/entry/webSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EACzF,MAAM,EAAE,SAAS,EACjB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAItC"}
1
+ {"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../src/entry/webSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EACzF,MAAM,EAAE,SAAS,EACjB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAItC"}
@@ -1,10 +1,11 @@
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<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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 & {
7
7
  targetOrigin?: string;
8
+ transmit?: Promise<readonly WindowClient[]>;
8
9
  } & {
9
10
  payload?: Parameters<CONSUME[K]>[0] | undefined;
10
11
  retry?: number;
@@ -14,11 +15,12 @@ export declare function createWindowRPC<EVENT extends ActionRecord, CONSUME exte
14
15
  payload?: never;
15
16
  } : StructuredSerializeOptions & {
16
17
  targetOrigin?: string;
18
+ transmit?: Promise<readonly WindowClient[]>;
17
19
  } & {
18
20
  payload?: Parameters<CONSUME[K]>[0] | undefined;
19
21
  retry?: number;
20
22
  } & {
21
23
  payload: Parameters<CONSUME[K]>[0];
22
24
  }]) => Promise<ReturnType<CONSUME[K]>>;
23
- }>;
25
+ }>, () => void];
24
26
  //# sourceMappingURL=window.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../src/entry/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EACtF,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAClC,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAMtC"}
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../src/entry/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EACtF,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAClC,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAMtC"}
@@ -1,10 +1,11 @@
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<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "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 & {
7
7
  targetOrigin?: string;
8
+ transmit?: Promise<readonly WindowClient[]>;
8
9
  } & {
9
10
  payload?: Parameters<CONSUME[K]>[0] | undefined;
10
11
  retry?: number;
@@ -14,11 +15,12 @@ export declare function createWorkerRPC<EVENT extends ActionRecord, CONSUME exte
14
15
  payload?: never;
15
16
  } : StructuredSerializeOptions & {
16
17
  targetOrigin?: string;
18
+ transmit?: Promise<readonly WindowClient[]>;
17
19
  } & {
18
20
  payload?: Parameters<CONSUME[K]>[0] | undefined;
19
21
  retry?: number;
20
22
  } & {
21
23
  payload: Parameters<CONSUME[K]>[0];
22
24
  }]) => Promise<ReturnType<CONSUME[K]>>;
23
- }>;
25
+ }>, () => void];
24
26
  //# sourceMappingURL=worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/entry/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EACtF,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAItC"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/entry/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EACtF,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAItC"}
package/dist/fields.d.ts CHANGED
@@ -21,17 +21,21 @@ export interface RPCInstanceContextIns {
21
21
  mount?: (item: RPCItem, name?: string) => void;
22
22
  }
23
23
  export interface Transport {
24
- destory: () => void;
24
+ destroy: () => void;
25
25
  getType: () => string;
26
26
  is: (source: MessageEventSource | null) => boolean;
27
- onmessage: (listener: (ev: MessageEvent) => unknown) => void;
28
- onremove: (listener: (ev: MessageEvent) => unknown) => void;
27
+ onmessage: (listener: ListenerType) => void;
28
+ onremove: (listener: ListenerType) => void;
29
29
  postMessage: (message: unknown, options?: IframeSerializeOptions) => void;
30
30
  upset: (options: FactoryOptions) => void;
31
31
  }
32
32
  export type IframeSerializeOptions = StructuredSerializeOptions & {
33
33
  targetOrigin?: string;
34
+ transmit?: Promise<readonly WindowClient[]>;
34
35
  };
36
+ export type ListenerType = (ev: Pick<MessageEvent, 'data' | 'origin' | 'source'> & {
37
+ wait?: () => void;
38
+ }) => void;
35
39
  export type RPCItem = Pick<RPCAction, 'broadcast'> & Pick<RPCFactory, 'getType'>;
36
40
  export type ScopeProps = {
37
41
  exclude?: Array<ValueOf<typeof TARGET_TYPE_STRINGS>>;
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,eAAO,MAAM,kBAAkB,gDAA2C,CAAA;AAC1E,eAAO,MAAM,mBAAmB;;;;;;;;;;EAU9B,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,EAAE,MAAM,MAAM,CAAA;IACrB,EAAE,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,KAAK,OAAO,CAAA;IAClD,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,KAAK,IAAI,CAAA;IAC5D,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,KAAK,IAAI,CAAA;IAC3D,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzE,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;CACzC;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAEhF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,eAAO,MAAM,kBAAkB,gDAA2C,CAAA;AAC1E,eAAO,MAAM,mBAAmB;;;;;;;;;;EAU9B,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,EAAE,MAAM,MAAM,CAAA;IACrB,EAAE,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,KAAK,OAAO,CAAA;IAClD,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;IAC3C,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;IAC1C,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzE,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;CACzC;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CACzB,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,KACzE,IAAI,CAAA;AAET,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAEhF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA"}
@@ -1,11 +1,12 @@
1
1
  import RPCDecorator, { ActionRecord, DecoratorContext } from '../core/RPCDecorator';
2
2
  import { EntryOptions, FactoryOptions } from '../transports/fields';
3
3
  declare const useRPC: <EVENT extends ActionRecord, CONSUME extends ActionRecord, TARGET>(ops: RPCHooksOptions<EVENT, CONSUME> | RPCDriveOptions<EVENT, CONSUME, TARGET>) => Readonly<{
4
- rpc: Readonly<Omit<Readonly<Omit<import("../core/RPCAction").default, "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "getType" | "upset"> & {
4
+ rpc: Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport, "getType" | "upset"> & {
5
5
  request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
6
6
  payload?: never;
7
7
  } : StructuredSerializeOptions & {
8
8
  targetOrigin?: string;
9
+ transmit?: Promise<readonly WindowClient[]>;
9
10
  } & {
10
11
  payload?: Parameters<CONSUME[K]>[0] | undefined;
11
12
  retry?: number;
@@ -15,13 +16,14 @@ declare const useRPC: <EVENT extends ActionRecord, CONSUME extends ActionRecord,
15
16
  payload?: never;
16
17
  } : StructuredSerializeOptions & {
17
18
  targetOrigin?: string;
19
+ transmit?: Promise<readonly WindowClient[]>;
18
20
  } & {
19
21
  payload?: Parameters<CONSUME[K]>[0] | undefined;
20
22
  retry?: number;
21
23
  } & {
22
24
  payload: Parameters<CONSUME[K]>[0];
23
25
  }]) => Promise<ReturnType<CONSUME[K]>>;
24
- }>, "destroy">>;
26
+ }>;
25
27
  brodcastScope: <T>(data: import("../core/RPCAction").RequestOptions<T>, options?: import("./fields").ScopeProps) => void;
26
28
  mount: (name: string) => void;
27
29
  connected: boolean;
@@ -30,6 +32,7 @@ export default useRPC;
30
32
  interface RPCBaseOptions {
31
33
  name?: string;
32
34
  options?: FactoryOptions;
35
+ faild?: (error: unknown) => void;
33
36
  }
34
37
  interface RPCDriveOptions<EVENT extends ActionRecord, CONSUME extends ActionRecord, TARGET> extends RPCBaseOptions, DecoratorContext<EVENT, CONSUME> {
35
38
  drive: (target: TARGET, config?: EntryOptions<EVENT, CONSUME>) => RPCResult<EVENT, CONSUME>;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAMnE,QAAA,MAAM,MAAM,GAAI,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAAE,MAAM,EAC9E,KAAK,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;kBAmDrE,MAAM;;EA8DhB,CAAA;AAED,eAAe,MAAM,CAAA;AAErB,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED,UAAU,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAAE,MAAM,CACxF,SAAQ,cAAc,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IACxD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3F,IAAI,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACnD;AAED,UAAU,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,CAChF,SAAQ,cAAc,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IACxD,KAAK,EAAE,CACL,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,KACnC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IACvC,IAAI,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC7C;AAED,KAAK,SAAS,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,IAAI,UAAU,CACnF,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CACpC,CAAA;AAGD,KAAK,UAAU,GACX,gBAAgB,GAChB,yBAAyB,GACzB,YAAY,GACZ,SAAS,GACT,MAAM,GACN,MAAM,GACN,iBAAiB,GACjB,IAAI,CAAA"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAMnE,QAAA,MAAM,MAAM,GAAI,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAAE,MAAM,EAC9E,KAAK,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;kBA+BrE,MAAM;;EAqEhB,CAAA;AAED,eAAe,MAAM,CAAA;AAErB,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACjC;AAED,UAAU,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAAE,MAAM,CACxF,SAAQ,cAAc,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IACxD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3F,IAAI,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACnD;AAED,UAAU,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,CAChF,SAAQ,cAAc,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IACxD,KAAK,EAAE,CACL,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,KACnC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IACvC,IAAI,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC7C;AAED,KAAK,SAAS,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,IAAI,UAAU,CACnF,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CACpC,CAAA;AAGD,KAAK,UAAU,GACX,gBAAgB,GAChB,yBAAyB,GACzB,YAAY,GACZ,SAAS,GACT,MAAM,GACN,MAAM,GACN,iBAAiB,GACjB,IAAI,CAAA"}
@@ -1,9 +1,7 @@
1
1
  import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
2
2
  import RPCDecorator from "../core/RPCDecorator.js";
3
+ import { isKey } from "../utils.js";
3
4
  import { RPCInstanceContext } from "./fields.js";
4
- const disableKey = [
5
- 'destroy'
6
- ];
7
5
  const defaultBrod = ()=>{};
8
6
  const useRPC = (ops)=>{
9
7
  const { brodcastScope, mount } = useContext(RPCInstanceContext);
@@ -11,33 +9,25 @@ const useRPC = (ops)=>{
11
9
  const decoratorRef = useRef(null);
12
10
  const processRef = useRef(Promise.resolve(null));
13
11
  const opsRef = useRef(ops);
14
- const isRPCResult = useCallback((data, key)=>null !== data && key in data, []);
15
12
  const rpcIns = useMemo(()=>new Proxy({}, {
16
- get (_, key) {
17
- const decorator = decoratorRef.current;
18
- const keyname = key.toString();
19
- if (decorator && !disableKey.map(String).includes(keyname) && isRPCResult(decorator, keyname)) return decorator[keyname];
13
+ get (_, key, ref) {
14
+ if (decoratorRef.current && isKey(key, decoratorRef.current)) return Reflect.get(decoratorRef.current, key, ref);
20
15
  throw new Error(`outof decorator: ${key.toString()}`);
21
16
  },
22
17
  has (_, key) {
23
- const decorator = decoratorRef.current;
24
- const keyname = key.toString();
25
- return null !== decorator && !disableKey.map(String).includes(keyname) && isRPCResult(decorator, keyname);
18
+ return null !== decoratorRef.current && key in decoratorRef.current;
26
19
  },
27
20
  set () {
28
21
  throw new Error('decorator is readonly');
29
22
  }
30
- }), [
31
- decoratorRef,
32
- isRPCResult
33
- ]);
23
+ }), []);
34
24
  const mounHandle = useCallback((name)=>{
35
25
  if (decoratorRef.current) mount?.(decoratorRef.current, name);
36
26
  }, [
37
27
  mount
38
28
  ]);
39
29
  useEffect(()=>{
40
- const { config, options, drive, init, name = '', ...opConfig } = opsRef.current;
30
+ const { config, options, drive, faild, init, name = '', ...opConfig } = opsRef.current;
41
31
  processRef.current = processRef.current.then(()=>init()).then((tar)=>tar instanceof HTMLIFrameElement ? tar.contentWindow : tar).then((tar)=>{
42
32
  const context = {
43
33
  ...opConfig,
@@ -57,17 +47,22 @@ const useRPC = (ops)=>{
57
47
  context,
58
48
  options
59
49
  }) : RPCDecorator(null, context);
60
- }).then((result)=>{
50
+ }).then((target)=>{
51
+ const [result] = target;
61
52
  decoratorRef.current = result;
62
53
  mount?.(result, name);
63
- return result;
54
+ return target;
55
+ }).catch((error)=>{
56
+ faild?.(error);
57
+ return null;
64
58
  });
65
59
  return ()=>{
66
- processRef.current = processRef.current.then((result)=>{
60
+ processRef.current = processRef.current.then((target)=>{
67
61
  setConnected(false);
68
- if (result) {
62
+ if (target) {
63
+ const [result, destroy] = target;
69
64
  mount?.(result);
70
- result.destroy();
65
+ destroy();
71
66
  }
72
67
  decoratorRef.current = null;
73
68
  return null;
@@ -1,4 +1,4 @@
1
- import { IframeSerializeOptions, Transport } from '../fields';
1
+ import { IframeSerializeOptions, ListenerType, Transport } from '../fields';
2
2
  declare abstract class BaseTransport<T extends TargetType = TargetType> implements Transport {
3
3
  protected _target: T;
4
4
  protected _options: FactoryOptions;
@@ -6,9 +6,9 @@ declare abstract class BaseTransport<T extends TargetType = TargetType> implemen
6
6
  getType(): string;
7
7
  is(source: MessageEventSource | null): boolean;
8
8
  upset(options: FactoryOptions): void;
9
- abstract destory(): void;
10
- abstract onmessage(listener: (ev: MessageEvent) => unknown): void;
11
- abstract onremove(listener: (ev: MessageEvent) => unknown): void;
9
+ abstract destroy(): void;
10
+ abstract onmessage(listener: ListenerType): void;
11
+ abstract onremove(listener: ListenerType): void;
12
12
  abstract postMessage(message: unknown, options?: IframeSerializeOptions): void;
13
13
  }
14
14
  export default BaseTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BaseTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAE7D,uBAAe,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,YAAW,SAAS;IAEhF,SAAS,CAAC,OAAO,EAAE,CAAC;IACpB,SAAS,CAAC,QAAQ,EAAE,cAAc;gBADxB,OAAO,EAAE,CAAC,EACV,QAAQ,GAAE,cAAmB;IAGzC,OAAO;IAKP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,KAAK,CAAC,OAAO,EAAE,cAAc;IAM7B,QAAQ,CAAC,OAAO,IAAI,IAAI;IACxB,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAGjE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAChE,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAC/E;AAED,eAAe,aAAa,CAAA;AAE5B,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;CAC5C;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,SAAS,EAAE,MAAM,WAAW,CAAA;AAM3E,uBAAe,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,YAAW,SAAS;IAEhF,SAAS,CAAC,OAAO,EAAE,CAAC;IACpB,SAAS,CAAC,QAAQ,EAAE,cAAc;gBADxB,OAAO,EAAE,CAAC,EACV,QAAQ,GAAE,cAAmB;IAGzC,OAAO;IAKP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,KAAK,CAAC,OAAO,EAAE,cAAc;IAM7B,QAAQ,CAAC,OAAO,IAAI,IAAI;IACxB,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,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAC/E;AAED,eAAe,aAAa,CAAA;AAE5B,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;CAC5C;AAID,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,SAAS,GACT,MAAM,GAEN,yBAAyB,GACzB,wBAAwB,GACxB,YAAY,GACZ,uBAAuB,GACvB,MAAM,GACN,0BAA0B,CAAA"}
@@ -9,7 +9,7 @@ class BaseTransport {
9
9
  return `${Object.prototype.toString.call(this._target)}`;
10
10
  }
11
11
  is(source) {
12
- return null === source || this._target === source;
12
+ return !(source instanceof BaseTransport);
13
13
  }
14
14
  upset(options) {
15
15
  this._options = {
@@ -1,8 +1,9 @@
1
+ import { ListenerType } from '../fields';
1
2
  import BaseTransport from './BaseTransport';
2
3
  declare class BroadcastChannelTransport extends BaseTransport<BroadcastChannel> {
3
- destory(): void;
4
- onmessage(listener: (ev: MessageEvent) => unknown): void;
5
- onremove(listener: (ev: MessageEvent) => unknown): void;
4
+ destroy(): void;
5
+ onmessage(listener: ListenerType): void;
6
+ onremove(listener: ListenerType): void;
6
7
  postMessage(message: unknown): void;
7
8
  }
8
9
  export default BroadcastChannelTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"BroadcastChannelTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BroadcastChannelTransport.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,yBAA0B,SAAQ,aAAa,CAAC,gBAAgB,CAAC;IACrE,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIvD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGpC;AAED,eAAe,yBAAyB,CAAA"}
1
+ {"version":3,"file":"BroadcastChannelTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BroadcastChannelTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,yBAA0B,SAAQ,aAAa,CAAC,gBAAgB,CAAC;IACrE,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGpC;AAED,eAAe,yBAAyB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import BaseTransport from "./BaseTransport.js";
2
2
  class BroadcastChannelTransport extends BaseTransport {
3
- destory() {
3
+ destroy() {
4
4
  this._target.close();
5
5
  }
6
6
  onmessage(listener) {
@@ -1,9 +1,9 @@
1
- import { IframeSerializeOptions } from '../fields';
1
+ import { IframeSerializeOptions, ListenerType } from '../fields';
2
2
  import BaseTransport from './BaseTransport';
3
3
  declare class DedicatedWorkerGlobalScopeTransport extends BaseTransport<DedicatedWorkerGlobalScope> {
4
- destory(): void;
5
- onmessage(listener: (ev: MessageEvent) => unknown): void;
6
- onremove(listener: (ev: MessageEvent) => unknown): void;
4
+ destroy(): void;
5
+ onmessage(listener: ListenerType): void;
6
+ onremove(listener: ListenerType): void;
7
7
  postMessage(message: unknown, options?: IframeSerializeOptions): void;
8
8
  }
9
9
  export default DedicatedWorkerGlobalScopeTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"DedicatedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/DedicatedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,mCAAoC,SAAQ,aAAa,CAAC,0BAA0B,CAAC;IACzF,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIvD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,mCAAmC,CAAA"}
1
+ {"version":3,"file":"DedicatedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/DedicatedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,mCAAoC,SAAQ,aAAa,CAAC,0BAA0B,CAAC;IAEzF,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,mCAAmC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import BaseTransport from "./BaseTransport.js";
2
2
  class DedicatedWorkerGlobalScopeTransport extends BaseTransport {
3
- destory() {}
3
+ destroy() {}
4
4
  onmessage(listener) {
5
5
  this._target.addEventListener('message', listener, this._options.message);
6
6
  }
@@ -1,9 +1,10 @@
1
- import { IframeSerializeOptions } from '../fields';
1
+ import { IframeSerializeOptions, ListenerType } from '../fields';
2
2
  import BaseTransport from './BaseTransport';
3
3
  declare class ServiceWorkerGlobalScopeTransport extends BaseTransport<ServiceWorkerGlobalScope> {
4
4
  private _onconnect;
5
- destory(): void;
6
- onmessage(listener: (ev: MessageEvent) => unknown): void;
5
+ private _source;
6
+ destroy(): void;
7
+ onmessage(listener: ListenerType): void;
7
8
  onremove(): void;
8
9
  postMessage(message: unknown, options?: IframeSerializeOptions): void;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,iCAAkC,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACrF,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAWxD,QAAQ,IAAI,IAAI;IAMhB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAStE;AAED,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,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,iCAAkC,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACrF,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO,CAAC,OAAO,CAA8C;IAI7D,OAAO;IAMP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAuBvC,QAAQ,IAAI,IAAI;IAMhB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAYtE;AAED,eAAe,iCAAiC,CAAA"}
@@ -1,19 +1,20 @@
1
1
  import BaseTransport from "./BaseTransport.js";
2
2
  class ServiceWorkerGlobalScopeTransport extends BaseTransport {
3
3
  _onconnect;
4
- destory() {
4
+ _source;
5
+ destroy() {
5
6
  this._onconnect = void 0;
6
7
  }
7
8
  onmessage(listener) {
8
9
  this._onconnect = (event)=>{
9
- const ports = event.ports.map((i)=>i);
10
- const source = event.source instanceof Client ? null : event.source;
11
- const messageEvent = new MessageEvent('serverWork', {
12
- ...event,
13
- ports,
14
- source
15
- });
16
- listener(messageEvent);
10
+ this._source = event.source;
11
+ event.waitUntil(new Promise((resove)=>{
12
+ listener({
13
+ ...event,
14
+ source: null,
15
+ wait: resove
16
+ });
17
+ }));
17
18
  };
18
19
  this._target.addEventListener('message', this._onconnect, this._options.message);
19
20
  }
@@ -21,12 +22,13 @@ class ServiceWorkerGlobalScopeTransport extends BaseTransport {
21
22
  if (this._onconnect) this._target.removeEventListener('message', this._onconnect, this._options.message);
22
23
  }
23
24
  postMessage(message, options) {
24
- const { transfer } = options ?? {};
25
- this._target.clients.matchAll().then((clients)=>{
26
- clients.forEach((client)=>client.postMessage(message, {
25
+ const { transmit, transfer } = options ?? {};
26
+ if (transmit) transmit.then((clients)=>clients.forEach((client)=>client.postMessage(message, {
27
27
  transfer
28
- }));
29
- }).catch(()=>{});
28
+ }))).catch(()=>{});
29
+ else this._source?.postMessage(message, {
30
+ transfer
31
+ });
30
32
  }
31
33
  }
32
34
  const transports_ServiceWorkerGlobalScopeTransport = ServiceWorkerGlobalScopeTransport;
@@ -1,9 +1,9 @@
1
- import { IframeSerializeOptions } from '../fields';
1
+ import { IframeSerializeOptions, ListenerType } from '../fields';
2
2
  import BaseTransport from './BaseTransport';
3
3
  declare class ServiceWorkerRegistrationTransport extends BaseTransport<ServiceWorkerRegistration> {
4
- destory(): void;
5
- onmessage(listener: (ev: MessageEvent) => unknown): void;
6
- onremove(listener: (ev: MessageEvent) => unknown): void;
4
+ destroy(): void;
5
+ onmessage(listener: ListenerType): void;
6
+ onremove(listener: ListenerType): void;
7
7
  postMessage(message: unknown, options?: IframeSerializeOptions): void;
8
8
  }
9
9
  export default ServiceWorkerRegistrationTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceWorkerRegistrationTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerRegistrationTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAI3C,cAAM,kCAAmC,SAAQ,aAAa,CAAC,yBAAyB,CAAC;IACvF,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIvD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,kCAAkC,CAAA"}
1
+ {"version":3,"file":"ServiceWorkerRegistrationTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerRegistrationTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAI3C,cAAM,kCAAmC,SAAQ,aAAa,CAAC,yBAAyB,CAAC;IAEvF,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,kCAAkC,CAAA"}
@@ -1,6 +1,8 @@
1
1
  import BaseTransport from "./BaseTransport.js";
2
2
  class ServiceWorkerRegistrationTransport extends BaseTransport {
3
- destory() {}
3
+ destroy() {
4
+ this._target.unregister().catch(()=>{});
5
+ }
4
6
  onmessage(listener) {
5
7
  navigator.serviceWorker.addEventListener('message', listener, this._options.message);
6
8
  }
@@ -1,11 +1,11 @@
1
- import { IframeSerializeOptions } from '../fields';
1
+ import { IframeSerializeOptions, ListenerType } from '../fields';
2
2
  import BaseTransport from './BaseTransport';
3
3
  declare class SharedWorkerGlobalScopeTransport extends BaseTransport<SharedWorkerGlobalScope> {
4
4
  private _onconnect;
5
5
  private _message;
6
- destory(): void;
7
- onmessage(listener: (ev: MessageEvent) => unknown): void;
8
- onremove(listener: (ev: MessageEvent) => unknown): void;
6
+ destroy(): void;
7
+ onmessage(listener: ListenerType): void;
8
+ onremove(listener: ListenerType): void;
9
9
  postMessage(message: unknown, options?: IframeSerializeOptions): void;
10
10
  }
11
11
  export default SharedWorkerGlobalScopeTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"SharedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,gCAAiC,SAAQ,aAAa,CAAC,uBAAuB,CAAC;IACnF,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,QAAQ,CAA6C;IAE7D,OAAO;IAOP,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAexD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAQvD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAQtE;AAED,eAAe,gCAAgC,CAAA"}
1
+ {"version":3,"file":"SharedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,gCAAiC,SAAQ,aAAa,CAAC,uBAAuB,CAAC;IACnF,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,QAAQ,CAA6C;IAE7D,OAAO;IAOP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAevC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAQtC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAQtE;AAED,eAAe,gCAAgC,CAAA"}
@@ -2,7 +2,7 @@ import BaseTransport from "./BaseTransport.js";
2
2
  class SharedWorkerGlobalScopeTransport extends BaseTransport {
3
3
  _onconnect = Promise.resolve(null);
4
4
  _message;
5
- destory() {
5
+ destroy() {
6
6
  this._onconnect.then((messagePort)=>messagePort?.close()).catch(()=>{});
7
7
  if (this._message) this._target.removeEventListener('connect', this._message);
8
8
  }
@@ -1,9 +1,9 @@
1
- import { IframeSerializeOptions } from '../fields';
1
+ import { IframeSerializeOptions, ListenerType } from '../fields';
2
2
  import BaseTransport from './BaseTransport';
3
3
  declare class SharedWorkerTransport extends BaseTransport<SharedWorker> {
4
- destory(): void;
5
- onmessage(listener: (ev: MessageEvent) => unknown): void;
6
- onremove(listener: (ev: MessageEvent) => unknown): void;
4
+ destroy(): void;
5
+ onmessage(listener: ListenerType): void;
6
+ onremove(listener: ListenerType): void;
7
7
  postMessage(message: unknown, options?: IframeSerializeOptions): void;
8
8
  }
9
9
  export default SharedWorkerTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"SharedWorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,qBAAsB,SAAQ,aAAa,CAAC,YAAY,CAAC;IAC7D,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAKxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIvD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"SharedWorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,qBAAsB,SAAQ,aAAa,CAAC,YAAY,CAAC;IAC7D,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAKvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,qBAAqB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import BaseTransport from "./BaseTransport.js";
2
2
  class SharedWorkerTransport extends BaseTransport {
3
- destory() {
3
+ destroy() {
4
4
  this._target.port.close();
5
5
  }
6
6
  onmessage(listener) {
@@ -1,12 +1,12 @@
1
- import { FactoryOptions } from '../fields';
1
+ import { FactoryOptions, ListenerType } from '../fields';
2
2
  import BaseTransport from './BaseTransport';
3
3
  declare class WebSocketTransport extends BaseTransport<WebSocket> {
4
4
  protected _target: WebSocket;
5
5
  protected _options: FactoryOptions;
6
6
  private _onconnect;
7
7
  constructor(_target: WebSocket, _options?: FactoryOptions);
8
- destory(): void;
9
- onmessage(listener: (ev: MessageEvent) => unknown): void;
8
+ destroy(): void;
9
+ onmessage(listener: ListenerType): void;
10
10
  onremove(): void;
11
11
  postMessage(message: unknown): void;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WebSocketTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAS3C,cAAM,kBAAmB,SAAQ,aAAa,CAAC,SAAS,CAAC;IAIrD,SAAS,CAAC,OAAO,EAAE,SAAS;IAC5B,SAAS,CAAC,QAAQ,EAAE,cAAc;IAJpC,OAAO,CAAC,UAAU,CAAyB;gBAG/B,OAAO,EAAE,SAAS,EAClB,QAAQ,GAAE,cAAmB;IAczC,OAAO;IAOP,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIxD,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAWpC;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WebSocketTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAS3C,cAAM,kBAAmB,SAAQ,aAAa,CAAC,SAAS,CAAC;IAIrD,SAAS,CAAC,OAAO,EAAE,SAAS;IAC5B,SAAS,CAAC,QAAQ,EAAE,cAAc;IAJpC,OAAO,CAAC,UAAU,CAAyB;gBAG/B,OAAO,EAAE,SAAS,EAClB,QAAQ,GAAE,cAAmB;IAczC,OAAO;IAOP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAWpC;AAED,eAAe,kBAAkB,CAAA"}
@@ -17,7 +17,7 @@ class WebSocketTransport extends BaseTransport {
17
17
  };
18
18
  });
19
19
  }
20
- destory() {
20
+ destroy() {
21
21
  this._target.onclose = null;
22
22
  this._target.onopen = null;
23
23
  if (this._target.readyState === WebSocket.OPEN) this._target.close();
@@ -1,9 +1,10 @@
1
- import { IframeSerializeOptions } from '../fields';
1
+ import { IframeSerializeOptions, ListenerType } from '../fields';
2
2
  import BaseTransport from './BaseTransport';
3
3
  declare class WindowTransport extends BaseTransport<Window> {
4
- destory(): void;
5
- onmessage(listener: (ev: MessageEvent) => unknown): void;
6
- onremove(listener: (ev: MessageEvent) => unknown): void;
4
+ destroy(): void;
5
+ is(source: MessageEventSource | null): boolean;
6
+ onmessage(listener: ListenerType): void;
7
+ onremove(listener: ListenerType): void;
7
8
  postMessage(message: unknown, options?: IframeSerializeOptions): void;
8
9
  }
9
10
  export default WindowTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"WindowTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WindowTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IACjD,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIvD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAOtE;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"WindowTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WindowTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IAEjD,OAAO;IAKP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAOtE;AAED,eAAe,eAAe,CAAA"}
@@ -1,6 +1,9 @@
1
1
  import BaseTransport from "./BaseTransport.js";
2
2
  class WindowTransport extends BaseTransport {
3
- destory() {}
3
+ destroy() {}
4
+ is(source) {
5
+ return Object.is(this._target, source);
6
+ }
4
7
  onmessage(listener) {
5
8
  window.addEventListener('message', listener, this._options.message);
6
9
  }
@@ -1,9 +1,9 @@
1
- import { IframeSerializeOptions } from '../fields';
1
+ import { IframeSerializeOptions, ListenerType } from '../fields';
2
2
  import BaseTransport from './BaseTransport';
3
3
  declare class WorkerTransport extends BaseTransport<Worker> {
4
- destory(): void;
5
- onmessage(listener: (ev: MessageEvent) => unknown): void;
6
- onremove(listener: (ev: MessageEvent) => unknown): void;
4
+ destroy(): void;
5
+ onmessage(listener: ListenerType): void;
6
+ onremove(listener: ListenerType): void;
7
7
  postMessage(message: unknown, options?: IframeSerializeOptions): void;
8
8
  }
9
9
  export default WorkerTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IACjD,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI;IAIvD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"WorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IAEjD,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,eAAe,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import BaseTransport from "./BaseTransport.js";
2
2
  class WorkerTransport extends BaseTransport {
3
- destory() {
3
+ destroy() {
4
4
  this._target.terminate();
5
5
  }
6
6
  onmessage(listener) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@event-chat/rpc",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {