@zimi/remote 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/LICENSE.md +21 -21
  2. package/README.md +289 -285
  3. package/dist/adaptor.d.mts +33 -0
  4. package/dist/adaptor.d.ts +5 -4
  5. package/dist/adaptor.js +1 -1
  6. package/dist/adaptor.js.map +1 -1
  7. package/dist/adaptor.mjs +1 -0
  8. package/dist/adaptor.mjs.map +1 -0
  9. package/dist/adaptors/dao3/client.d.mts +39 -0
  10. package/dist/adaptors/dao3/client.d.ts +5 -3
  11. package/dist/adaptors/dao3/client.js +1 -44
  12. package/dist/adaptors/dao3/client.js.map +1 -1
  13. package/dist/adaptors/dao3/client.mjs +2 -0
  14. package/dist/adaptors/dao3/client.mjs.map +1 -0
  15. package/dist/adaptors/dao3/server.d.mts +82 -0
  16. package/dist/adaptors/dao3/server.d.ts +5 -3
  17. package/dist/adaptors/dao3/server.js +1 -104
  18. package/dist/adaptors/dao3/server.js.map +1 -1
  19. package/dist/adaptors/dao3/server.mjs +2 -0
  20. package/dist/adaptors/dao3/server.mjs.map +1 -0
  21. package/dist/adaptors/electron/constants.d.mts +5 -0
  22. package/dist/adaptors/electron/constants.d.ts +5 -0
  23. package/dist/adaptors/electron/constants.js +2 -0
  24. package/dist/adaptors/electron/constants.js.map +1 -0
  25. package/dist/adaptors/electron/constants.mjs +2 -0
  26. package/dist/adaptors/electron/constants.mjs.map +1 -0
  27. package/dist/adaptors/electron/main.d.mts +10 -0
  28. package/dist/adaptors/electron/main.d.ts +10 -0
  29. package/dist/adaptors/electron/main.js +2 -0
  30. package/dist/adaptors/electron/main.js.map +1 -0
  31. package/dist/adaptors/electron/main.mjs +2 -0
  32. package/dist/adaptors/electron/main.mjs.map +1 -0
  33. package/dist/adaptors/electron/messenger.d.mts +8 -0
  34. package/dist/adaptors/electron/messenger.d.ts +8 -0
  35. package/dist/adaptors/electron/messenger.js +2 -0
  36. package/dist/adaptors/electron/messenger.js.map +1 -0
  37. package/dist/adaptors/electron/messenger.mjs +2 -0
  38. package/dist/adaptors/electron/messenger.mjs.map +1 -0
  39. package/dist/adaptors/electron/preload.d.mts +6 -0
  40. package/dist/adaptors/electron/preload.d.ts +6 -0
  41. package/dist/adaptors/electron/preload.js +2 -0
  42. package/dist/adaptors/electron/preload.js.map +1 -0
  43. package/dist/adaptors/electron/preload.mjs +2 -0
  44. package/dist/adaptors/electron/preload.mjs.map +1 -0
  45. package/dist/adaptors/electron/renderer.d.mts +9 -0
  46. package/dist/adaptors/electron/renderer.d.ts +9 -0
  47. package/dist/adaptors/electron/renderer.js +2 -0
  48. package/dist/adaptors/electron/renderer.js.map +1 -0
  49. package/dist/adaptors/electron/renderer.mjs +2 -0
  50. package/dist/adaptors/electron/renderer.mjs.map +1 -0
  51. package/dist/adaptors/http.d.mts +15 -0
  52. package/dist/adaptors/http.d.ts +6 -4
  53. package/dist/adaptors/http.js +1 -26
  54. package/dist/adaptors/http.js.map +1 -1
  55. package/dist/adaptors/http.mjs +2 -0
  56. package/dist/adaptors/http.mjs.map +1 -0
  57. package/dist/adaptors/iframe.d.mts +7 -0
  58. package/dist/adaptors/iframe.d.ts +5 -2
  59. package/dist/adaptors/iframe.js +1 -38
  60. package/dist/adaptors/iframe.js.map +1 -1
  61. package/dist/adaptors/iframe.mjs +2 -0
  62. package/dist/adaptors/iframe.mjs.map +1 -0
  63. package/dist/index.d.mts +16 -0
  64. package/dist/index.d.ts +16 -10
  65. package/dist/index.js +1 -9
  66. package/dist/index.js.map +1 -1
  67. package/dist/index.mjs +2 -0
  68. package/dist/index.mjs.map +1 -0
  69. package/dist/remote.d.mts +81 -0
  70. package/dist/remote.d.ts +6 -4
  71. package/dist/remote.js +1 -196
  72. package/dist/remote.js.map +1 -1
  73. package/dist/remote.mjs +2 -0
  74. package/dist/remote.mjs.map +1 -0
  75. package/dist/remoteValue/exposeToRemote.d.mts +43 -0
  76. package/dist/remoteValue/exposeToRemote.d.ts +7 -5
  77. package/dist/remoteValue/exposeToRemote.js +1 -52
  78. package/dist/remoteValue/exposeToRemote.js.map +1 -1
  79. package/dist/remoteValue/exposeToRemote.mjs +2 -0
  80. package/dist/remoteValue/exposeToRemote.mjs.map +1 -0
  81. package/dist/remoteValue/remoteValue.d.mts +29 -0
  82. package/dist/remoteValue/remoteValue.d.ts +6 -4
  83. package/dist/remoteValue/remoteValue.js +1 -67
  84. package/dist/remoteValue/remoteValue.js.map +1 -1
  85. package/dist/remoteValue/remoteValue.mjs +2 -0
  86. package/dist/remoteValue/remoteValue.mjs.map +1 -0
  87. package/dist/remoteValue/type.d.mts +67 -0
  88. package/dist/remoteValue/type.d.ts +20 -19
  89. package/dist/remoteValue/type.js +1 -1
  90. package/dist/remoteValue/type.js.map +1 -1
  91. package/dist/remoteValue/type.mjs +1 -0
  92. package/dist/remoteValue/type.mjs.map +1 -0
  93. package/dist/response.d.mts +105 -0
  94. package/dist/response.d.ts +6 -5
  95. package/dist/response.js +1 -154
  96. package/dist/response.js.map +1 -1
  97. package/dist/response.mjs +2 -0
  98. package/dist/response.mjs.map +1 -0
  99. package/package.json +13 -6
  100. package/src/adaptor.ts +34 -34
  101. package/src/adaptors/dao3/client.ts +53 -53
  102. package/src/adaptors/dao3/server.ts +136 -136
  103. package/src/adaptors/electron/constants.ts +3 -0
  104. package/src/adaptors/electron/main.ts +59 -0
  105. package/src/adaptors/electron/messenger.ts +13 -0
  106. package/src/adaptors/electron/preload.ts +21 -0
  107. package/src/adaptors/electron/renderer.ts +52 -0
  108. package/src/adaptors/http.ts +31 -31
  109. package/src/adaptors/iframe.ts +47 -47
  110. package/src/index.ts +5 -0
  111. package/src/remote.ts +263 -260
  112. package/src/remoteValue/exposeToRemote.ts +102 -102
  113. package/src/remoteValue/remoteValue.ts +94 -94
  114. package/src/remoteValue/type.ts +124 -124
  115. package/src/response.ts +170 -170
@@ -0,0 +1,9 @@
1
+ import { AdaptorPackageData, Adaptor } from '../../adaptor.mjs';
2
+
3
+ declare function onElectronRendererEmit(data: AdaptorPackageData): void;
4
+ interface Options {
5
+ onEmit?: (data: AdaptorPackageData) => void;
6
+ }
7
+ declare function createElectronRendererAdaptor(options?: Options): Adaptor;
8
+
9
+ export { createElectronRendererAdaptor, onElectronRendererEmit };
@@ -0,0 +1,9 @@
1
+ import { AdaptorPackageData, Adaptor } from '../../adaptor.js';
2
+
3
+ declare function onElectronRendererEmit(data: AdaptorPackageData): void;
4
+ interface Options {
5
+ onEmit?: (data: AdaptorPackageData) => void;
6
+ }
7
+ declare function createElectronRendererAdaptor(options?: Options): Adaptor;
8
+
9
+ export { createElectronRendererAdaptor, onElectronRendererEmit };
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.create;var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var v=(e,t)=>{for(var o in t)a(e,o,{get:t[o],enumerable:!0})},i=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of A(t))!g.call(e,r)&&r!==o&&a(e,r,{get:()=>t[r],enumerable:!(n=f(t,r))||n.enumerable});return e};var M=(e,t,o)=>(o=e!=null?s(_(e)):{},i(t||!e||!e.__esModule?a(o,"default",{value:e,enumerable:!0}):o,e)),N=e=>i(a({},"__esModule",{value:!0}),e);var V={};v(V,{createElectronRendererAdaptor:()=>u,onElectronRendererEmit:()=>p});module.exports=N(V);var m=M(require("eventemitter3")),d=require("../../remote"),E=require("./messenger"),c=require("./constants");class R extends m.default{EVERY_EVENT_NAME="__remote_every__";constructor(){super(),!(typeof window>"u")&&(0,E.getMessenger)().on(c.MESSENGER_EVENT_NAME,t=>{(0,d.isRemoteAdaptorData)(t)&&(this.emit(t.name,t),this.emit(this.EVERY_EVENT_NAME,t))})}onEvery(t){this.on(this.EVERY_EVENT_NAME,t)}}function p(e){(0,E.getMessenger)().postMessage(e)}function u(e){const t=(e==null?void 0:e.onEmit)??p,o=new R;return{every:o.onEvery.bind(o),on:o.on.bind(o),once:o.once.bind(o),off:o.off.bind(o),emit:t}}0&&(module.exports={createElectronRendererAdaptor,onElectronRendererEmit});
2
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adaptors/electron/renderer.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\nimport { Adaptor, AdaptorPackageData } from '../../adaptor'\r\nimport { isRemoteAdaptorData } from '../../remote'\r\nimport { getMessenger } from './messenger'\r\nimport { MESSENGER_EVENT_NAME } from './constants'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n constructor() {\r\n super()\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n getMessenger().on(MESSENGER_EVENT_NAME, (data) => {\r\n if (isRemoteAdaptorData(data)) {\r\n this.emit(data.name, data)\r\n // 一定要抛出 every 事件,remote 包基于此处理远端的响应\r\n this.emit(this.EVERY_EVENT_NAME, data)\r\n }\r\n })\r\n }\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport function onElectronRendererEmit(data: AdaptorPackageData) {\r\n getMessenger().postMessage(data)\r\n}\r\n\r\ninterface Options {\r\n onEmit?: (data: AdaptorPackageData) => void\r\n}\r\n\r\nexport function createElectronRendererAdaptor(options?: Options) {\r\n const onEmit = options?.onEmit ?? onElectronRendererEmit\r\n const remoteEventManager = new RemoteEventManager()\r\n\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,EAAA,2BAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAyB,4BAEzBC,EAAoC,wBACpCC,EAA6B,uBAC7BC,EAAqC,uBAErC,MAAMC,UAA2B,EAAAC,OAE9B,CACD,iBAAmB,mBAEnB,aAAc,CACZ,MAAM,EACF,SAAO,OAAW,SAGtB,gBAAa,EAAE,GAAG,uBAAuBC,GAAS,IAC5C,uBAAoBA,CAAI,IAC1B,KAAK,KAAKA,EAAK,KAAMA,CAAI,EAEzB,KAAK,KAAK,KAAK,iBAAkBA,CAAI,EAEzC,CAAC,CACH,CAEA,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,SAAST,EAAuBQ,EAA0B,IAC/D,gBAAa,EAAE,YAAYA,CAAI,CACjC,CAMO,SAAST,EAA8BW,EAAmB,CAC/D,MAAMC,GAASD,GAAA,YAAAA,EAAS,SAAUV,EAC5BY,EAAqB,IAAIN,EAU/B,MARyB,CACvB,MAAOM,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMD,CACR,CAGF","names":["renderer_exports","__export","createElectronRendererAdaptor","onElectronRendererEmit","__toCommonJS","import_eventemitter3","import_remote","import_messenger","import_constants","RemoteEventManager","EventEmitter","data","fn","options","onEmit","remoteEventManager"]}
@@ -0,0 +1,2 @@
1
+ import a from"eventemitter3";import{isRemoteAdaptorData as n}from"../../remote";import{getMessenger as r}from"./messenger";import{MESSENGER_EVENT_NAME as E}from"./constants";class i extends a{EVERY_EVENT_NAME="__remote_every__";constructor(){super(),!(typeof window>"u")&&r().on(E,e=>{n(e)&&(this.emit(e.name,e),this.emit(this.EVERY_EVENT_NAME,e))})}onEvery(e){this.on(this.EVERY_EVENT_NAME,e)}}function m(o){r().postMessage(o)}function v(o){const e=(o==null?void 0:o.onEmit)??m,t=new i;return{every:t.onEvery.bind(t),on:t.on.bind(t),once:t.once.bind(t),off:t.off.bind(t),emit:e}}export{v as createElectronRendererAdaptor,m as onElectronRendererEmit};
2
+ //# sourceMappingURL=renderer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adaptors/electron/renderer.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\nimport { Adaptor, AdaptorPackageData } from '../../adaptor'\r\nimport { isRemoteAdaptorData } from '../../remote'\r\nimport { getMessenger } from './messenger'\r\nimport { MESSENGER_EVENT_NAME } from './constants'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n constructor() {\r\n super()\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n getMessenger().on(MESSENGER_EVENT_NAME, (data) => {\r\n if (isRemoteAdaptorData(data)) {\r\n this.emit(data.name, data)\r\n // 一定要抛出 every 事件,remote 包基于此处理远端的响应\r\n this.emit(this.EVERY_EVENT_NAME, data)\r\n }\r\n })\r\n }\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport function onElectronRendererEmit(data: AdaptorPackageData) {\r\n getMessenger().postMessage(data)\r\n}\r\n\r\ninterface Options {\r\n onEmit?: (data: AdaptorPackageData) => void\r\n}\r\n\r\nexport function createElectronRendererAdaptor(options?: Options) {\r\n const onEmit = options?.onEmit ?? onElectronRendererEmit\r\n const remoteEventManager = new RemoteEventManager()\r\n\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"AAAA,OAAOA,MAAkB,gBAEzB,OAAS,uBAAAC,MAA2B,eACpC,OAAS,gBAAAC,MAAoB,cAC7B,OAAS,wBAAAC,MAA4B,cAErC,MAAMC,UAA2BJ,CAE9B,CACD,iBAAmB,mBAEnB,aAAc,CACZ,MAAM,EACF,SAAO,OAAW,MAGtBE,EAAa,EAAE,GAAGC,EAAuBE,GAAS,CAC5CJ,EAAoBI,CAAI,IAC1B,KAAK,KAAKA,EAAK,KAAMA,CAAI,EAEzB,KAAK,KAAK,KAAK,iBAAkBA,CAAI,EAEzC,CAAC,CACH,CAEA,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,SAASC,EAAuBF,EAA0B,CAC/DH,EAAa,EAAE,YAAYG,CAAI,CACjC,CAMO,SAASG,EAA8BC,EAAmB,CAC/D,MAAMC,GAASD,GAAA,YAAAA,EAAS,SAAUF,EAC5BI,EAAqB,IAAIP,EAU/B,MARyB,CACvB,MAAOO,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMD,CACR,CAGF","names":["EventEmitter","isRemoteAdaptorData","getMessenger","MESSENGER_EVENT_NAME","RemoteEventManager","data","fn","onElectronRendererEmit","createElectronRendererAdaptor","options","onEmit","remoteEventManager"]}
@@ -0,0 +1,15 @@
1
+ import EventEmitter from 'eventemitter3';
2
+ import { AdaptorPackageData, Adaptor } from '../adaptor.mjs';
3
+
4
+ declare class RemoteEventManager extends EventEmitter<{
5
+ [key: string]: [AdaptorPackageData];
6
+ }> {
7
+ EVERY_EVENT_NAME: string;
8
+ onEvery(fn: (data: AdaptorPackageData) => void): void;
9
+ }
10
+ declare const remoteEventManager: RemoteEventManager;
11
+ declare function createHttpAdaptor({ onEmit, }: {
12
+ onEmit: (data: AdaptorPackageData) => void;
13
+ }): Adaptor;
14
+
15
+ export { createHttpAdaptor, remoteEventManager };
@@ -1,13 +1,15 @@
1
1
  import EventEmitter from 'eventemitter3';
2
- import type { Adaptor, AdaptorPackageData } from '../adaptor';
2
+ import { AdaptorPackageData, Adaptor } from '../adaptor.js';
3
+
3
4
  declare class RemoteEventManager extends EventEmitter<{
4
5
  [key: string]: [AdaptorPackageData];
5
6
  }> {
6
7
  EVERY_EVENT_NAME: string;
7
8
  onEvery(fn: (data: AdaptorPackageData) => void): void;
8
9
  }
9
- export declare const remoteEventManager: RemoteEventManager;
10
- export declare function createHttpAdaptor({ onEmit, }: {
10
+ declare const remoteEventManager: RemoteEventManager;
11
+ declare function createHttpAdaptor({ onEmit, }: {
11
12
  onEmit: (data: AdaptorPackageData) => void;
12
13
  }): Adaptor;
13
- export {};
14
+
15
+ export { createHttpAdaptor, remoteEventManager };
@@ -1,27 +1,2 @@
1
- import EventEmitter from 'eventemitter3';
2
- class RemoteEventManager extends EventEmitter {
3
- constructor() {
4
- super(...arguments);
5
- Object.defineProperty(this, "EVERY_EVENT_NAME", {
6
- enumerable: true,
7
- configurable: true,
8
- writable: true,
9
- value: '__remote_every__'
10
- });
11
- }
12
- onEvery(fn) {
13
- this.on(this.EVERY_EVENT_NAME, fn);
14
- }
15
- }
16
- export const remoteEventManager = new RemoteEventManager();
17
- export function createHttpAdaptor({ onEmit, }) {
18
- const adaptor = {
19
- every: remoteEventManager.onEvery.bind(remoteEventManager),
20
- on: remoteEventManager.on.bind(remoteEventManager),
21
- once: remoteEventManager.once.bind(remoteEventManager),
22
- off: remoteEventManager.off.bind(remoteEventManager),
23
- emit: onEmit,
24
- };
25
- return adaptor;
26
- }
1
+ "use strict";var i=Object.create;var n=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var _=(t,a)=>{for(var o in a)n(t,o,{get:a[o],enumerable:!0})},E=(t,a,o,d)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of m(a))!A.call(t,r)&&r!==o&&n(t,r,{get:()=>a[r],enumerable:!(d=c(a,r))||d.enumerable});return t};var s=(t,a,o)=>(o=t!=null?i(v(t)):{},E(a||!t||!t.__esModule?n(o,"default",{value:t,enumerable:!0}):o,t)),f=t=>E(n({},"__esModule",{value:!0}),t);var k={};_(k,{createHttpAdaptor:()=>y,remoteEventManager:()=>e});module.exports=f(k);var p=s(require("eventemitter3"));class g extends p.default{EVERY_EVENT_NAME="__remote_every__";onEvery(a){this.on(this.EVERY_EVENT_NAME,a)}}const e=new g;function y({onEmit:t}){return{every:e.onEvery.bind(e),on:e.on.bind(e),once:e.once.bind(e),off:e.off.bind(e),emit:t}}0&&(module.exports={createHttpAdaptor,remoteEventManager});
27
2
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/adaptors/http.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AAIxC,MAAM,kBAAmB,SAAQ,YAE/B;IAFF;;QAGE;;;;mBAAmB,kBAAkB;WAAA;IAKvC,CAAC;IAHC,OAAO,CAAC,EAAsC;QAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;IACpC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAA;AAE1D,MAAM,UAAU,iBAAiB,CAAC,EAChC,MAAM,GAGP;IACC,MAAM,OAAO,GAAY;QACvB,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC1D,EAAE,EAAE,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACtD,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACpD,IAAI,EAAE,MAAM;KACb,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"sources":["../../src/adaptors/http.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\n\r\nimport type { Adaptor, AdaptorPackageData } from '../adaptor'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport const remoteEventManager = new RemoteEventManager()\r\n\r\nexport function createHttpAdaptor({\r\n onEmit,\r\n}: {\r\n onEmit: (data: AdaptorPackageData) => void\r\n}) {\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,EAAA,uBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAyB,4BAIzB,MAAMC,UAA2B,EAAAC,OAE9B,CACD,iBAAmB,mBAEnB,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,MAAML,EAAqB,IAAIG,EAE/B,SAASJ,EAAkB,CAChC,OAAAO,CACF,EAEG,CASD,MARyB,CACvB,MAAON,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMM,CACR,CAGF","names":["http_exports","__export","createHttpAdaptor","remoteEventManager","__toCommonJS","import_eventemitter3","RemoteEventManager","EventEmitter","fn","onEmit"]}
@@ -0,0 +1,2 @@
1
+ import o from"eventemitter3";class r extends o{EVERY_EVENT_NAME="__remote_every__";onEvery(e){this.on(this.EVERY_EVENT_NAME,e)}}const t=new r;function d({onEmit:a}){return{every:t.onEvery.bind(t),on:t.on.bind(t),once:t.once.bind(t),off:t.off.bind(t),emit:a}}export{d as createHttpAdaptor,t as remoteEventManager};
2
+ //# sourceMappingURL=http.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/adaptors/http.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\n\r\nimport type { Adaptor, AdaptorPackageData } from '../adaptor'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport const remoteEventManager = new RemoteEventManager()\r\n\r\nexport function createHttpAdaptor({\r\n onEmit,\r\n}: {\r\n onEmit: (data: AdaptorPackageData) => void\r\n}) {\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"AAAA,OAAOA,MAAkB,gBAIzB,MAAMC,UAA2BD,CAE9B,CACD,iBAAmB,mBAEnB,QAAQE,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,MAAMC,EAAqB,IAAIF,EAE/B,SAASG,EAAkB,CAChC,OAAAC,CACF,EAEG,CASD,MARyB,CACvB,MAAOF,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAME,CACR,CAGF","names":["EventEmitter","RemoteEventManager","fn","remoteEventManager","createHttpAdaptor","onEmit"]}
@@ -0,0 +1,7 @@
1
+ import { AdaptorPackageData, Adaptor } from '../adaptor.mjs';
2
+
3
+ declare function createIframeAdaptor({ onEmit, }: {
4
+ onEmit: (data: AdaptorPackageData) => void;
5
+ }): Adaptor;
6
+
7
+ export { createIframeAdaptor };
@@ -1,4 +1,7 @@
1
- import type { Adaptor, AdaptorPackageData } from '../adaptor';
2
- export declare function createIframeAdaptor({ onEmit, }: {
1
+ import { AdaptorPackageData, Adaptor } from '../adaptor.js';
2
+
3
+ declare function createIframeAdaptor({ onEmit, }: {
3
4
  onEmit: (data: AdaptorPackageData) => void;
4
5
  }): Adaptor;
6
+
7
+ export { createIframeAdaptor };
@@ -1,39 +1,2 @@
1
- import EventEmitter from 'eventemitter3';
2
- import { isRemoteAdaptorData } from '../remote';
3
- class RemoteEventManager extends EventEmitter {
4
- constructor() {
5
- super();
6
- Object.defineProperty(this, "EVERY_EVENT_NAME", {
7
- enumerable: true,
8
- configurable: true,
9
- writable: true,
10
- value: '__remote_every__'
11
- });
12
- if (typeof window === 'undefined') {
13
- return;
14
- }
15
- window.addEventListener('message', (event) => {
16
- const { data } = event;
17
- if (isRemoteAdaptorData(data)) {
18
- this.emit(data.name, data);
19
- // 一定要抛出 every 事件,remote 包基于此处理远端的响应
20
- this.emit(this.EVERY_EVENT_NAME, data);
21
- }
22
- });
23
- }
24
- onEvery(fn) {
25
- this.on(this.EVERY_EVENT_NAME, fn);
26
- }
27
- }
28
- export function createIframeAdaptor({ onEmit, }) {
29
- const remoteEventManager = new RemoteEventManager();
30
- const adaptor = {
31
- every: remoteEventManager.onEvery.bind(remoteEventManager),
32
- on: remoteEventManager.on.bind(remoteEventManager),
33
- once: remoteEventManager.once.bind(remoteEventManager),
34
- off: remoteEventManager.off.bind(remoteEventManager),
35
- emit: onEmit,
36
- };
37
- return adaptor;
38
- }
1
+ "use strict";var m=Object.create;var r=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var A=(e,t)=>{for(var a in t)r(e,a,{get:t[a],enumerable:!0})},i=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of s(t))!f.call(e,o)&&o!==a&&r(e,o,{get:()=>t[o],enumerable:!(n=p(t,o))||n.enumerable});return e};var _=(e,t,a)=>(a=e!=null?m(c(e)):{},i(t||!e||!e.__esModule?r(a,"default",{value:e,enumerable:!0}):a,e)),v=e=>i(r({},"__esModule",{value:!0}),e);var u={};A(u,{createIframeAdaptor:()=>y});module.exports=v(u);var d=_(require("eventemitter3")),E=require("../remote");class g extends d.default{EVERY_EVENT_NAME="__remote_every__";constructor(){super(),!(typeof window>"u")&&window.addEventListener("message",t=>{const{data:a}=t;(0,E.isRemoteAdaptorData)(a)&&(this.emit(a.name,a),this.emit(this.EVERY_EVENT_NAME,a))})}onEvery(t){this.on(this.EVERY_EVENT_NAME,t)}}function y({onEmit:e}){const t=new g;return{every:t.onEvery.bind(t),on:t.on.bind(t),once:t.once.bind(t),off:t.off.bind(t),emit:e}}0&&(module.exports={createIframeAdaptor});
39
2
  //# sourceMappingURL=iframe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iframe.js","sourceRoot":"","sources":["../../src/adaptors/iframe.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAI/C,MAAM,kBAAmB,SAAQ,YAE/B;IAGA;QACE,KAAK,EAAE,CAAA;QAHT;;;;mBAAmB,kBAAkB;WAAA;QAInC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAM;QACR,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;YACtB,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAC1B,oCAAoC;gBACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;YACxC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,CAAC,EAAsC;QAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;IACpC,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,EAClC,MAAM,GAGP;IACC,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAA;IAEnD,MAAM,OAAO,GAAY;QACvB,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC1D,EAAE,EAAE,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACtD,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACpD,IAAI,EAAE,MAAM;KACb,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"sources":["../../src/adaptors/iframe.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\nimport { isRemoteAdaptorData } from '../remote'\r\n\r\nimport type { Adaptor, AdaptorPackageData } from '../adaptor'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n constructor() {\r\n super()\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n window.addEventListener('message', (event) => {\r\n const { data } = event\r\n if (isRemoteAdaptorData(data)) {\r\n this.emit(data.name, data)\r\n // 一定要抛出 every 事件,remote 包基于此处理远端的响应\r\n this.emit(this.EVERY_EVENT_NAME, data)\r\n }\r\n })\r\n }\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport function createIframeAdaptor({\r\n onEmit,\r\n}: {\r\n onEmit: (data: AdaptorPackageData) => void\r\n}) {\r\n const remoteEventManager = new RemoteEventManager()\r\n\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyB,4BACzBC,EAAoC,qBAIpC,MAAMC,UAA2B,EAAAC,OAE9B,CACD,iBAAmB,mBAEnB,aAAc,CACZ,MAAM,EACF,SAAO,OAAW,MAGtB,OAAO,iBAAiB,UAAYC,GAAU,CAC5C,KAAM,CAAE,KAAAC,CAAK,EAAID,KACb,uBAAoBC,CAAI,IAC1B,KAAK,KAAKA,EAAK,KAAMA,CAAI,EAEzB,KAAK,KAAK,KAAK,iBAAkBA,CAAI,EAEzC,CAAC,CACH,CAEA,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,SAASR,EAAoB,CAClC,OAAAS,CACF,EAEG,CACD,MAAMC,EAAqB,IAAIN,EAU/B,MARyB,CACvB,MAAOM,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMD,CACR,CAGF","names":["iframe_exports","__export","createIframeAdaptor","__toCommonJS","import_eventemitter3","import_remote","RemoteEventManager","EventEmitter","event","data","fn","onEmit","remoteEventManager"]}
@@ -0,0 +1,2 @@
1
+ import o from"eventemitter3";import{isRemoteAdaptorData as r}from"../remote";class n extends o{EVERY_EVENT_NAME="__remote_every__";constructor(){super(),!(typeof window>"u")&&window.addEventListener("message",t=>{const{data:e}=t;r(e)&&(this.emit(e.name,e),this.emit(this.EVERY_EVENT_NAME,e))})}onEvery(t){this.on(this.EVERY_EVENT_NAME,t)}}function E({onEmit:a}){const t=new n;return{every:t.onEvery.bind(t),on:t.on.bind(t),once:t.once.bind(t),off:t.off.bind(t),emit:a}}export{E as createIframeAdaptor};
2
+ //# sourceMappingURL=iframe.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/adaptors/iframe.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\nimport { isRemoteAdaptorData } from '../remote'\r\n\r\nimport type { Adaptor, AdaptorPackageData } from '../adaptor'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n constructor() {\r\n super()\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n window.addEventListener('message', (event) => {\r\n const { data } = event\r\n if (isRemoteAdaptorData(data)) {\r\n this.emit(data.name, data)\r\n // 一定要抛出 every 事件,remote 包基于此处理远端的响应\r\n this.emit(this.EVERY_EVENT_NAME, data)\r\n }\r\n })\r\n }\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport function createIframeAdaptor({\r\n onEmit,\r\n}: {\r\n onEmit: (data: AdaptorPackageData) => void\r\n}) {\r\n const remoteEventManager = new RemoteEventManager()\r\n\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"AAAA,OAAOA,MAAkB,gBACzB,OAAS,uBAAAC,MAA2B,YAIpC,MAAMC,UAA2BF,CAE9B,CACD,iBAAmB,mBAEnB,aAAc,CACZ,MAAM,EACF,SAAO,OAAW,MAGtB,OAAO,iBAAiB,UAAYG,GAAU,CAC5C,KAAM,CAAE,KAAAC,CAAK,EAAID,EACbF,EAAoBG,CAAI,IAC1B,KAAK,KAAKA,EAAK,KAAMA,CAAI,EAEzB,KAAK,KAAK,KAAK,iBAAkBA,CAAI,EAEzC,CAAC,CACH,CAEA,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,SAASC,EAAoB,CAClC,OAAAC,CACF,EAEG,CACD,MAAMC,EAAqB,IAAIN,EAU/B,MARyB,CACvB,MAAOM,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMD,CACR,CAGF","names":["EventEmitter","isRemoteAdaptorData","RemoteEventManager","event","data","fn","createIframeAdaptor","onEmit","remoteEventManager"]}
@@ -0,0 +1,16 @@
1
+ export { Remote, isRemoteAdaptorData } from './remote.mjs';
2
+ export { Adaptor, AdaptorCallback, AdaptorPackageData } from './adaptor.mjs';
3
+ export { RemoteError, RemoteNotFoundError, RemoteTimeoutError, response } from './response.mjs';
4
+ export { remoteValue } from './remoteValue/remoteValue.mjs';
5
+ export { exposeToRemote, isRemoteValueEvent } from './remoteValue/exposeToRemote.mjs';
6
+ export { RemoteCallData, ToFunc } from './remoteValue/type.mjs';
7
+ export { createIframeAdaptor } from './adaptors/iframe.mjs';
8
+ export { createHttpAdaptor, remoteEventManager } from './adaptors/http.mjs';
9
+ export { ClientSideRemoteChannelEventManager } from './adaptors/dao3/client.mjs';
10
+ export { ServerSideRemoteChannelEventManager } from './adaptors/dao3/server.mjs';
11
+ export { KEYOF_GET_ID, MESSENGER_EVENT_NAME, MESSENGER_KEY } from './adaptors/electron/constants.mjs';
12
+ export { getMessenger } from './adaptors/electron/messenger.mjs';
13
+ export { createElectronMainAdaptor, initMessengerInMain, onElectronMainEmit } from './adaptors/electron/main.mjs';
14
+ export { initMessengerInPreload } from './adaptors/electron/preload.mjs';
15
+ export { createElectronRendererAdaptor, onElectronRendererEmit } from './adaptors/electron/renderer.mjs';
16
+ import 'eventemitter3';
package/dist/index.d.ts CHANGED
@@ -1,10 +1,16 @@
1
- export * from './remote';
2
- export * from './adaptor';
3
- export * from './response';
4
- export * from './remoteValue/remoteValue';
5
- export * from './remoteValue/exposeToRemote';
6
- export type { ToFunc, RemoteCallData } from './remoteValue/type';
7
- export * from './adaptors/iframe';
8
- export * from './adaptors/http';
9
- export * from './adaptors/dao3/client';
10
- export * from './adaptors/dao3/server';
1
+ export { Remote, isRemoteAdaptorData } from './remote.js';
2
+ export { Adaptor, AdaptorCallback, AdaptorPackageData } from './adaptor.js';
3
+ export { RemoteError, RemoteNotFoundError, RemoteTimeoutError, response } from './response.js';
4
+ export { remoteValue } from './remoteValue/remoteValue.js';
5
+ export { exposeToRemote, isRemoteValueEvent } from './remoteValue/exposeToRemote.js';
6
+ export { RemoteCallData, ToFunc } from './remoteValue/type.js';
7
+ export { createIframeAdaptor } from './adaptors/iframe.js';
8
+ export { createHttpAdaptor, remoteEventManager } from './adaptors/http.js';
9
+ export { ClientSideRemoteChannelEventManager } from './adaptors/dao3/client.js';
10
+ export { ServerSideRemoteChannelEventManager } from './adaptors/dao3/server.js';
11
+ export { KEYOF_GET_ID, MESSENGER_EVENT_NAME, MESSENGER_KEY } from './adaptors/electron/constants.js';
12
+ export { getMessenger } from './adaptors/electron/messenger.js';
13
+ export { createElectronMainAdaptor, initMessengerInMain, onElectronMainEmit } from './adaptors/electron/main.js';
14
+ export { initMessengerInPreload } from './adaptors/electron/preload.js';
15
+ export { createElectronRendererAdaptor, onElectronRendererEmit } from './adaptors/electron/renderer.js';
16
+ import 'eventemitter3';
package/dist/index.js CHANGED
@@ -1,10 +1,2 @@
1
- export * from './remote';
2
- export * from './adaptor';
3
- export * from './response';
4
- export * from './remoteValue/remoteValue';
5
- export * from './remoteValue/exposeToRemote';
6
- export * from './adaptors/iframe';
7
- export * from './adaptors/http';
8
- export * from './adaptors/dao3/client';
9
- export * from './adaptors/dao3/server';
1
+ "use strict";var a=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var f=(t,e,p,x)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of u(e))!y.call(t,m)&&m!==p&&a(t,m,{get:()=>e[m],enumerable:!(x=l(e,m))||x.enumerable});return t},r=(t,e,p)=>(f(t,e,"default"),p&&f(p,e,"default"));var c=t=>f(a({},"__esModule",{value:!0}),t);var o={};module.exports=c(o);r(o,require("./remote"),module.exports);r(o,require("./adaptor"),module.exports);r(o,require("./response"),module.exports);r(o,require("./remoteValue/remoteValue"),module.exports);r(o,require("./remoteValue/exposeToRemote"),module.exports);r(o,require("./adaptors/iframe"),module.exports);r(o,require("./adaptors/http"),module.exports);r(o,require("./adaptors/dao3/client"),module.exports);r(o,require("./adaptors/dao3/server"),module.exports);r(o,require("./adaptors/electron/constants"),module.exports);r(o,require("./adaptors/electron/messenger"),module.exports);r(o,require("./adaptors/electron/main"),module.exports);r(o,require("./adaptors/electron/preload"),module.exports);r(o,require("./adaptors/electron/renderer"),module.exports);0&&(module.exports={...require("./remote"),...require("./adaptor"),...require("./response"),...require("./remoteValue/remoteValue"),...require("./remoteValue/exposeToRemote"),...require("./adaptors/iframe"),...require("./adaptors/http"),...require("./adaptors/dao3/client"),...require("./adaptors/dao3/server"),...require("./adaptors/electron/constants"),...require("./adaptors/electron/messenger"),...require("./adaptors/electron/main"),...require("./adaptors/electron/preload"),...require("./adaptors/electron/renderer")});
10
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAE1B,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAG5C,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './remote'\r\nexport * from './adaptor'\r\nexport * from './response'\r\n\r\nexport * from './remoteValue/remoteValue'\r\nexport * from './remoteValue/exposeToRemote'\r\nexport type { ToFunc, RemoteCallData } from './remoteValue/type'\r\n\r\nexport * from './adaptors/iframe'\r\nexport * from './adaptors/http'\r\nexport * from './adaptors/dao3/client'\r\nexport * from './adaptors/dao3/server'\r\nexport * from './adaptors/electron/constants'\r\nexport * from './adaptors/electron/messenger'\r\nexport * from './adaptors/electron/main'\r\nexport * from './adaptors/electron/preload'\r\nexport * from './adaptors/electron/renderer'\r\n"],"mappings":"iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,oBAAd,gBACAE,EAAAF,EAAc,qBADd,gBAEAE,EAAAF,EAAc,sBAFd,gBAIAE,EAAAF,EAAc,qCAJd,gBAKAE,EAAAF,EAAc,wCALd,gBAQAE,EAAAF,EAAc,6BARd,gBASAE,EAAAF,EAAc,2BATd,gBAUAE,EAAAF,EAAc,kCAVd,gBAWAE,EAAAF,EAAc,kCAXd,gBAYAE,EAAAF,EAAc,yCAZd,gBAaAE,EAAAF,EAAc,yCAbd,gBAcAE,EAAAF,EAAc,oCAdd,gBAeAE,EAAAF,EAAc,uCAfd,gBAgBAE,EAAAF,EAAc,wCAhBd","names":["index_exports","__toCommonJS","__reExport"]}
package/dist/index.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export*from"./remote";export*from"./adaptor";export*from"./response";export*from"./remoteValue/remoteValue";export*from"./remoteValue/exposeToRemote";export*from"./adaptors/iframe";export*from"./adaptors/http";export*from"./adaptors/dao3/client";export*from"./adaptors/dao3/server";export*from"./adaptors/electron/constants";export*from"./adaptors/electron/messenger";export*from"./adaptors/electron/main";export*from"./adaptors/electron/preload";export*from"./adaptors/electron/renderer";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './remote'\r\nexport * from './adaptor'\r\nexport * from './response'\r\n\r\nexport * from './remoteValue/remoteValue'\r\nexport * from './remoteValue/exposeToRemote'\r\nexport type { ToFunc, RemoteCallData } from './remoteValue/type'\r\n\r\nexport * from './adaptors/iframe'\r\nexport * from './adaptors/http'\r\nexport * from './adaptors/dao3/client'\r\nexport * from './adaptors/dao3/server'\r\nexport * from './adaptors/electron/constants'\r\nexport * from './adaptors/electron/messenger'\r\nexport * from './adaptors/electron/main'\r\nexport * from './adaptors/electron/preload'\r\nexport * from './adaptors/electron/renderer'\r\n"],"mappings":"AAAA,WAAc,WACd,WAAc,YACd,WAAc,aAEd,WAAc,4BACd,WAAc,+BAGd,WAAc,oBACd,WAAc,kBACd,WAAc,yBACd,WAAc,yBACd,WAAc,gCACd,WAAc,gCACd,WAAc,2BACd,WAAc,8BACd,WAAc","names":[]}
@@ -0,0 +1,81 @@
1
+ import { Adaptor, AdaptorPackageData } from './adaptor.mjs';
2
+
3
+ type LogFunc = (...data: unknown[]) => void;
4
+ type RemoteCallableFunc = (data: any) => Promise<any>;
5
+ interface RemoteFuncRecords {
6
+ [key: string]: RemoteCallableFunc;
7
+ }
8
+ type FuncMapWithConfig<T extends RemoteFuncRecords> = {
9
+ [K in keyof T]: T[K] extends (data: infer Arg) => Promise<infer Ret> ? (data: Arg, config?: {
10
+ timeoutMs?: number;
11
+ targetDeviceId?: string;
12
+ }) => Promise<Ret> : never;
13
+ };
14
+ type RegisteredFunc<T extends RemoteCallableFunc> = T extends (data: infer Arg) => infer Ret ? (data: Arg, ctx: {
15
+ /**
16
+ * 对方的设备 id
17
+ */
18
+ deviceId: string;
19
+ }) => Ret : never;
20
+ declare class Remote<
21
+ /**
22
+ * MF means my functions
23
+ */
24
+ MF extends RemoteFuncRecords,
25
+ /**
26
+ * OF means others functions
27
+ */
28
+ OF extends RemoteFuncRecords> {
29
+ private adaptor;
30
+ debug: boolean;
31
+ private log;
32
+ /**
33
+ * (调用对方函数时的)默认超时时间,单位 ms
34
+ * @default 30000
35
+ */
36
+ private defaultTimeoutMs;
37
+ private map;
38
+ private deviceIdValue;
39
+ /**
40
+ * 设备 id 应该唯一,用于区分不同设备。
41
+ * 你可以在任何时候修改(更新)它。
42
+ * @default ''
43
+ */
44
+ get deviceId(): string;
45
+ set deviceId(deviceId: string);
46
+ constructor(adaptor: Adaptor, config?: {
47
+ /**
48
+ * 设备 id 应该唯一,用于区分不同设备。
49
+ * 你可以在任何时候修改(更新)它。
50
+ * @default ''
51
+ */
52
+ deviceId?: string;
53
+ /**
54
+ * (调用对方函数时的)默认超时时间,单位 ms
55
+ * @default 30000
56
+ */
57
+ defaultTimeoutMs?: number;
58
+ debug?: boolean;
59
+ /**
60
+ * 格式化 AdaptorPackageData 的函数,
61
+ * 用于调试时输出日志。
62
+ * @default JSON.stringify
63
+ */
64
+ log?: LogFunc;
65
+ });
66
+ /**
67
+ * 调用其他端的方法;会等待对方响应。
68
+ * 不能直接使用该方法,应该使用 proxy。
69
+ * @WARNING 不能用于响应其他端。
70
+ */
71
+ private callAsync;
72
+ /**
73
+ * 注册方法,供对方调用;
74
+ */
75
+ register<K extends keyof MF>(name: K, callback: RegisteredFunc<MF[K]>): void;
76
+ _: FuncMapWithConfig<OF>;
77
+ self: MF;
78
+ }
79
+ declare function isRemoteAdaptorData(data: unknown): data is AdaptorPackageData;
80
+
81
+ export { Remote, isRemoteAdaptorData };
package/dist/remote.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { Adaptor, AdaptorPackageData } from './adaptor';
1
+ import { Adaptor, AdaptorPackageData } from './adaptor.js';
2
+
2
3
  type LogFunc = (...data: unknown[]) => void;
3
4
  type RemoteCallableFunc = (data: any) => Promise<any>;
4
5
  interface RemoteFuncRecords {
@@ -16,7 +17,7 @@ type RegisteredFunc<T extends RemoteCallableFunc> = T extends (data: infer Arg)
16
17
  */
17
18
  deviceId: string;
18
19
  }) => Ret : never;
19
- export declare class Remote<
20
+ declare class Remote<
20
21
  /**
21
22
  * MF means my functions
22
23
  */
@@ -75,5 +76,6 @@ OF extends RemoteFuncRecords> {
75
76
  _: FuncMapWithConfig<OF>;
76
77
  self: MF;
77
78
  }
78
- export declare function isRemoteAdaptorData(data: unknown): data is AdaptorPackageData;
79
- export {};
79
+ declare function isRemoteAdaptorData(data: unknown): data is AdaptorPackageData;
80
+
81
+ export { Remote, isRemoteAdaptorData };
package/dist/remote.js CHANGED
@@ -1,197 +1,2 @@
1
- import { RemoteError, RemoteNotFoundError, RemoteTimeoutError, response, } from './response';
2
- const RESPONSE_PREFIX = '_response_';
3
- function defaultLog(...data) {
4
- if (!this.debug) {
5
- return;
6
- }
7
- console.log(`[remote of ${this.deviceId}]`, ...data);
8
- }
9
- export class Remote {
10
- /**
11
- * 设备 id 应该唯一,用于区分不同设备。
12
- * 你可以在任何时候修改(更新)它。
13
- * @default ''
14
- */
15
- get deviceId() {
16
- return this.deviceIdValue;
17
- }
18
- set deviceId(deviceId) {
19
- this.log(`deviceId set: from "${this.deviceIdValue}" to "${deviceId}"`);
20
- this.deviceIdValue = deviceId;
21
- }
22
- constructor(adaptor, config) {
23
- var _a, _b, _c, _d;
24
- Object.defineProperty(this, "adaptor", {
25
- enumerable: true,
26
- configurable: true,
27
- writable: true,
28
- value: adaptor
29
- });
30
- Object.defineProperty(this, "debug", {
31
- enumerable: true,
32
- configurable: true,
33
- writable: true,
34
- value: false
35
- });
36
- Object.defineProperty(this, "log", {
37
- enumerable: true,
38
- configurable: true,
39
- writable: true,
40
- value: void 0
41
- });
42
- /**
43
- * (调用对方函数时的)默认超时时间,单位 ms
44
- * @default 30000
45
- */
46
- Object.defineProperty(this, "defaultTimeoutMs", {
47
- enumerable: true,
48
- configurable: true,
49
- writable: true,
50
- value: 30000
51
- });
52
- Object.defineProperty(this, "map", {
53
- enumerable: true,
54
- configurable: true,
55
- writable: true,
56
- value: {}
57
- });
58
- Object.defineProperty(this, "deviceIdValue", {
59
- enumerable: true,
60
- configurable: true,
61
- writable: true,
62
- value: ''
63
- });
64
- Object.defineProperty(this, "_", {
65
- enumerable: true,
66
- configurable: true,
67
- writable: true,
68
- value: new Proxy({}, {
69
- get: (_, k) => this.callAsync.bind(this, k),
70
- })
71
- });
72
- Object.defineProperty(this, "self", {
73
- enumerable: true,
74
- configurable: true,
75
- writable: true,
76
- value: new Proxy({}, {
77
- get: (_, k) => (data) => {
78
- var _a;
79
- return (_a = this.map[k]) === null || _a === void 0 ? void 0 : _a.callback(data, {
80
- deviceId: this.deviceId,
81
- });
82
- },
83
- })
84
- });
85
- this.debug = (_a = config === null || config === void 0 ? void 0 : config.debug) !== null && _a !== void 0 ? _a : this.debug;
86
- this.defaultTimeoutMs = (_b = config === null || config === void 0 ? void 0 : config.defaultTimeoutMs) !== null && _b !== void 0 ? _b : this.defaultTimeoutMs;
87
- this.log = (_c = config === null || config === void 0 ? void 0 : config.log) !== null && _c !== void 0 ? _c : defaultLog.bind(this);
88
- this.deviceId = (_d = config === null || config === void 0 ? void 0 : config.deviceId) !== null && _d !== void 0 ? _d : this.deviceId;
89
- adaptor.every(async (e) => {
90
- var _a;
91
- const { deviceId: selfDeviceId } = this;
92
- const { name, data, deviceId: targetDeviceId, callbackName } = e;
93
- const callback = (_a = this.map[name]) === null || _a === void 0 ? void 0 : _a.callback;
94
- if (!callback) {
95
- if (name.startsWith(RESPONSE_PREFIX)) {
96
- // 这是响应,会在 callAsync once 中处理,这儿不用处理
97
- this.log('[every] response received: ', e);
98
- return;
99
- }
100
- this.log('callback not found: ', name);
101
- if (callbackName) {
102
- adaptor.emit({
103
- deviceId: selfDeviceId,
104
- targetDeviceId,
105
- name: callbackName,
106
- data: response.error(new RemoteNotFoundError(`callback not found: ${name}`)),
107
- });
108
- }
109
- return;
110
- }
111
- if (!callbackName) {
112
- this.log('should not respond: ', e);
113
- void callback(data, { deviceId: targetDeviceId });
114
- return;
115
- }
116
- this.log(`callback: ${name}; respondName: ${callbackName}; data: `, data);
117
- try {
118
- const ret = await callback(data, { deviceId: targetDeviceId });
119
- this.log('callback return: ', ret);
120
- adaptor.emit({
121
- deviceId: selfDeviceId,
122
- targetDeviceId,
123
- name: callbackName,
124
- data: response.success(ret),
125
- });
126
- }
127
- catch (error) {
128
- this.log('callback error: ', error);
129
- adaptor.emit({
130
- deviceId: selfDeviceId,
131
- targetDeviceId,
132
- name: callbackName,
133
- data: response.error(RemoteError.fromError(error)),
134
- });
135
- }
136
- });
137
- }
138
- /**
139
- * 调用其他端的方法;会等待对方响应。
140
- * 不能直接使用该方法,应该使用 proxy。
141
- * @WARNING 不能用于响应其他端。
142
- */
143
- callAsync(name, data, config) {
144
- var _a;
145
- const timeoutMs = (_a = config === null || config === void 0 ? void 0 : config.timeoutMs) !== null && _a !== void 0 ? _a : this.defaultTimeoutMs;
146
- const { deviceId } = this;
147
- const randomStr = Math.random().toString(36).slice(2);
148
- // 本条消息的响应名
149
- const responseName = `${RESPONSE_PREFIX}-${name}-${deviceId}-${randomStr}`;
150
- return new Promise((resolve, reject) => {
151
- var _a;
152
- let timer;
153
- this.log(`callAsync ${name}: waiting for response: ${responseName}`);
154
- const callback = (e) => {
155
- var _a;
156
- clearTimeout(timer);
157
- this.log(`response received: ${responseName}`, e);
158
- if (RemoteError.isRemoteError(e.data)) {
159
- reject(RemoteError.fromError(e.data));
160
- }
161
- else {
162
- resolve((_a = e.data) === null || _a === void 0 ? void 0 : _a.data);
163
- }
164
- };
165
- this.adaptor.once(responseName, callback);
166
- timer = setTimeout(() => {
167
- this.log(`timeout: ${responseName}`);
168
- this.adaptor.off(responseName, callback);
169
- reject(new RemoteTimeoutError(`timeout: ${name}`));
170
- }, timeoutMs);
171
- this.adaptor.emit({
172
- deviceId,
173
- targetDeviceId: (_a = config === null || config === void 0 ? void 0 : config.targetDeviceId) !== null && _a !== void 0 ? _a : '',
174
- name,
175
- data,
176
- callbackName: responseName,
177
- });
178
- });
179
- }
180
- /**
181
- * 注册方法,供对方调用;
182
- */
183
- register(name, callback) {
184
- this.map[name] = { callback };
185
- }
186
- }
187
- export function isRemoteAdaptorData(data) {
188
- return (!!data &&
189
- typeof data === 'object' &&
190
- 'deviceId' in data &&
191
- 'name' in data &&
192
- typeof data.deviceId === 'string' &&
193
- typeof data.name === 'string' &&
194
- !!data.deviceId &&
195
- !!data.name);
196
- }
1
+ "use strict";var v=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var F=(r,e)=>{for(var t in e)v(r,t,{get:e[t],enumerable:!0})},y=(r,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of I(e))!R.call(r,s)&&s!==t&&v(r,s,{get:()=>e[s],enumerable:!(a=b(e,s))||a.enumerable});return r};var k=r=>y(v({},"__esModule",{value:!0}),r);var $={};F($,{Remote:()=>f,isRemoteAdaptorData:()=>T});module.exports=k($);var o=require("./response");const g="_response_";function M(...r){this.debug&&console.log(`[remote of ${this.deviceId}]`,...r)}class f{constructor(e,t){this.adaptor=e;this.debug=(t==null?void 0:t.debug)??this.debug,this.defaultTimeoutMs=(t==null?void 0:t.defaultTimeoutMs)??this.defaultTimeoutMs,this.log=(t==null?void 0:t.log)??M.bind(this),this.deviceId=(t==null?void 0:t.deviceId)??this.deviceId,e.every(async a=>{var m;const{deviceId:s}=this,{name:d,data:u,deviceId:i,callbackName:n}=a,c=(m=this.map[d])==null?void 0:m.callback;if(!c){if(d.startsWith(g)){this.log("[every] response received: ",a);return}this.log("callback not found: ",d),n&&e.emit({deviceId:s,targetDeviceId:i,name:n,data:o.response.error(new o.RemoteNotFoundError(`callback not found: ${d}`))});return}if(!n){this.log("should not respond: ",a),c(u,{deviceId:i});return}this.log(`callback: ${d}; respondName: ${n}; data: `,u);try{const l=await c(u,{deviceId:i});this.log("callback return: ",l),e.emit({deviceId:s,targetDeviceId:i,name:n,data:o.response.success(l)})}catch(l){this.log("callback error: ",l),e.emit({deviceId:s,targetDeviceId:i,name:n,data:o.response.error(o.RemoteError.fromError(l))})}})}debug=!1;log;defaultTimeoutMs=3e4;map={};deviceIdValue="";get deviceId(){return this.deviceIdValue}set deviceId(e){this.log(`deviceId set: from "${this.deviceIdValue}" to "${e}"`),this.deviceIdValue=e}callAsync(e,t,a){const s=(a==null?void 0:a.timeoutMs)??this.defaultTimeoutMs,{deviceId:d}=this,u=Math.random().toString(36).slice(2),i=`${g}-${e}-${d}-${u}`;return new Promise((n,c)=>{let m;this.log(`callAsync ${e}: waiting for response: ${i}`);const l=p=>{var h;clearTimeout(m),this.log(`response received: ${i}`,p),o.RemoteError.isRemoteError(p.data)?c(o.RemoteError.fromError(p.data)):n((h=p.data)==null?void 0:h.data)};this.adaptor.once(i,l),m=setTimeout(()=>{this.log(`timeout: ${i}`),this.adaptor.off(i,l),c(new o.RemoteTimeoutError(`timeout: ${e}`))},s),this.adaptor.emit({deviceId:d,targetDeviceId:(a==null?void 0:a.targetDeviceId)??"",name:e,data:t,callbackName:i})})}register(e,t){this.map[e]={callback:t}}_=new Proxy({},{get:(e,t)=>this.callAsync.bind(this,t)});self=new Proxy({},{get:(e,t)=>a=>{var s;return(s=this.map[t])==null?void 0:s.callback.apply(null,[a,{deviceId:this.deviceId}])}})}function T(r){return!!r&&typeof r=="object"&&"deviceId"in r&&"name"in r&&typeof r.deviceId=="string"&&typeof r.name=="string"&&!!r.deviceId&&!!r.name}0&&(module.exports={Remote,isRemoteAdaptorData});
197
2
  //# sourceMappingURL=remote.js.map