@univerjs/rpc 1.0.4 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +13 -13
- package/lib/es/index.js +7 -7
- package/lib/index.js +7 -7
- package/lib/umd/index.js +1 -1
- package/package.json +4 -4
package/lib/cjs/index.js
CHANGED
|
@@ -27,7 +27,7 @@ const configSymbolWorkerThread = Symbol(PLUGIN_CONFIG_KEY_WORKER_THREAD);
|
|
|
27
27
|
const defaultPluginWorkerThreadConfig = {};
|
|
28
28
|
|
|
29
29
|
//#endregion
|
|
30
|
-
//#region \0@oxc-project+runtime@0.
|
|
30
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateParam.js
|
|
31
31
|
function __decorateParam(paramIndex, decorator) {
|
|
32
32
|
return function(target, key) {
|
|
33
33
|
decorator(target, key, paramIndex);
|
|
@@ -35,7 +35,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
//#endregion
|
|
38
|
-
//#region \0@oxc-project+runtime@0.
|
|
38
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
|
|
39
39
|
function __decorate(decorators, target, key, desc) {
|
|
40
40
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
41
41
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -128,7 +128,7 @@ WebWorkerRemoteInstanceService = __decorate([
|
|
|
128
128
|
], WebWorkerRemoteInstanceService);
|
|
129
129
|
|
|
130
130
|
//#endregion
|
|
131
|
-
//#region \0@oxc-project+runtime@0.
|
|
131
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
|
|
132
132
|
function _typeof(o) {
|
|
133
133
|
"@babel/helpers - typeof";
|
|
134
134
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -139,7 +139,7 @@ function _typeof(o) {
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
//#endregion
|
|
142
|
-
//#region \0@oxc-project+runtime@0.
|
|
142
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
|
|
143
143
|
function toPrimitive(t, r) {
|
|
144
144
|
if ("object" != _typeof(t) || !t) return t;
|
|
145
145
|
var e = t[Symbol.toPrimitive];
|
|
@@ -152,14 +152,14 @@ function toPrimitive(t, r) {
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
//#endregion
|
|
155
|
-
//#region \0@oxc-project+runtime@0.
|
|
155
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
|
|
156
156
|
function toPropertyKey(t) {
|
|
157
157
|
var i = toPrimitive(t, "string");
|
|
158
158
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
//#endregion
|
|
162
|
-
//#region \0@oxc-project+runtime@0.
|
|
162
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
|
|
163
163
|
function _defineProperty(e, r, t) {
|
|
164
164
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
165
165
|
value: t,
|
|
@@ -655,7 +655,7 @@ DataSyncReplicaController = __decorate([
|
|
|
655
655
|
//#endregion
|
|
656
656
|
//#region package.json
|
|
657
657
|
var name = "@univerjs/rpc";
|
|
658
|
-
var version = "1.0
|
|
658
|
+
var version = "1.1.0";
|
|
659
659
|
|
|
660
660
|
//#endregion
|
|
661
661
|
//#region src/services/rpc/implementations/web-worker-rpc.service.ts
|
|
@@ -767,13 +767,13 @@ UniverRPCWorkerThreadPlugin = __decorate([__decorateParam(1, (0, _univerjs_core.
|
|
|
767
767
|
exports.ChannelClient = ChannelClient;
|
|
768
768
|
exports.ChannelServer = ChannelServer;
|
|
769
769
|
exports.ChannelService = ChannelService;
|
|
770
|
-
Object.defineProperty(exports,
|
|
770
|
+
Object.defineProperty(exports, "DataSyncPrimaryController", {
|
|
771
771
|
enumerable: true,
|
|
772
772
|
get: function () {
|
|
773
773
|
return DataSyncPrimaryController;
|
|
774
774
|
}
|
|
775
775
|
});
|
|
776
|
-
Object.defineProperty(exports,
|
|
776
|
+
Object.defineProperty(exports, "DataSyncReplicaController", {
|
|
777
777
|
enumerable: true,
|
|
778
778
|
get: function () {
|
|
779
779
|
return DataSyncReplicaController;
|
|
@@ -785,26 +785,26 @@ exports.IRemoteSyncService = IRemoteSyncService;
|
|
|
785
785
|
exports.PLUGIN_CONFIG_KEY_MAIN_THREAD = PLUGIN_CONFIG_KEY_MAIN_THREAD;
|
|
786
786
|
exports.PLUGIN_CONFIG_KEY_WORKER_THREAD = PLUGIN_CONFIG_KEY_WORKER_THREAD;
|
|
787
787
|
exports.RemoteInstanceServiceName = RemoteInstanceServiceName;
|
|
788
|
-
Object.defineProperty(exports,
|
|
788
|
+
Object.defineProperty(exports, "RemoteSyncPrimaryService", {
|
|
789
789
|
enumerable: true,
|
|
790
790
|
get: function () {
|
|
791
791
|
return RemoteSyncPrimaryService;
|
|
792
792
|
}
|
|
793
793
|
});
|
|
794
794
|
exports.RemoteSyncServiceName = RemoteSyncServiceName;
|
|
795
|
-
Object.defineProperty(exports,
|
|
795
|
+
Object.defineProperty(exports, "UniverRPCMainThreadPlugin", {
|
|
796
796
|
enumerable: true,
|
|
797
797
|
get: function () {
|
|
798
798
|
return UniverRPCMainThreadPlugin;
|
|
799
799
|
}
|
|
800
800
|
});
|
|
801
|
-
Object.defineProperty(exports,
|
|
801
|
+
Object.defineProperty(exports, "UniverRPCWorkerThreadPlugin", {
|
|
802
802
|
enumerable: true,
|
|
803
803
|
get: function () {
|
|
804
804
|
return UniverRPCWorkerThreadPlugin;
|
|
805
805
|
}
|
|
806
806
|
});
|
|
807
|
-
Object.defineProperty(exports,
|
|
807
|
+
Object.defineProperty(exports, "WebWorkerRemoteInstanceService", {
|
|
808
808
|
enumerable: true,
|
|
809
809
|
get: function () {
|
|
810
810
|
return WebWorkerRemoteInstanceService;
|
package/lib/es/index.js
CHANGED
|
@@ -26,7 +26,7 @@ const configSymbolWorkerThread = Symbol(PLUGIN_CONFIG_KEY_WORKER_THREAD);
|
|
|
26
26
|
const defaultPluginWorkerThreadConfig = {};
|
|
27
27
|
|
|
28
28
|
//#endregion
|
|
29
|
-
//#region \0@oxc-project+runtime@0.
|
|
29
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateParam.js
|
|
30
30
|
function __decorateParam(paramIndex, decorator) {
|
|
31
31
|
return function(target, key) {
|
|
32
32
|
decorator(target, key, paramIndex);
|
|
@@ -34,7 +34,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
//#endregion
|
|
37
|
-
//#region \0@oxc-project+runtime@0.
|
|
37
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
|
|
38
38
|
function __decorate(decorators, target, key, desc) {
|
|
39
39
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
40
40
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -127,7 +127,7 @@ WebWorkerRemoteInstanceService = __decorate([
|
|
|
127
127
|
], WebWorkerRemoteInstanceService);
|
|
128
128
|
|
|
129
129
|
//#endregion
|
|
130
|
-
//#region \0@oxc-project+runtime@0.
|
|
130
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
|
|
131
131
|
function _typeof(o) {
|
|
132
132
|
"@babel/helpers - typeof";
|
|
133
133
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -138,7 +138,7 @@ function _typeof(o) {
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
//#endregion
|
|
141
|
-
//#region \0@oxc-project+runtime@0.
|
|
141
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
|
|
142
142
|
function toPrimitive(t, r) {
|
|
143
143
|
if ("object" != _typeof(t) || !t) return t;
|
|
144
144
|
var e = t[Symbol.toPrimitive];
|
|
@@ -151,14 +151,14 @@ function toPrimitive(t, r) {
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
//#endregion
|
|
154
|
-
//#region \0@oxc-project+runtime@0.
|
|
154
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
|
|
155
155
|
function toPropertyKey(t) {
|
|
156
156
|
var i = toPrimitive(t, "string");
|
|
157
157
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
//#endregion
|
|
161
|
-
//#region \0@oxc-project+runtime@0.
|
|
161
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
|
|
162
162
|
function _defineProperty(e, r, t) {
|
|
163
163
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
164
164
|
value: t,
|
|
@@ -654,7 +654,7 @@ DataSyncReplicaController = __decorate([
|
|
|
654
654
|
//#endregion
|
|
655
655
|
//#region package.json
|
|
656
656
|
var name = "@univerjs/rpc";
|
|
657
|
-
var version = "1.0
|
|
657
|
+
var version = "1.1.0";
|
|
658
658
|
|
|
659
659
|
//#endregion
|
|
660
660
|
//#region src/services/rpc/implementations/web-worker-rpc.service.ts
|
package/lib/index.js
CHANGED
|
@@ -26,7 +26,7 @@ const configSymbolWorkerThread = Symbol(PLUGIN_CONFIG_KEY_WORKER_THREAD);
|
|
|
26
26
|
const defaultPluginWorkerThreadConfig = {};
|
|
27
27
|
|
|
28
28
|
//#endregion
|
|
29
|
-
//#region \0@oxc-project+runtime@0.
|
|
29
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateParam.js
|
|
30
30
|
function __decorateParam(paramIndex, decorator) {
|
|
31
31
|
return function(target, key) {
|
|
32
32
|
decorator(target, key, paramIndex);
|
|
@@ -34,7 +34,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
//#endregion
|
|
37
|
-
//#region \0@oxc-project+runtime@0.
|
|
37
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
|
|
38
38
|
function __decorate(decorators, target, key, desc) {
|
|
39
39
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
40
40
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -127,7 +127,7 @@ WebWorkerRemoteInstanceService = __decorate([
|
|
|
127
127
|
], WebWorkerRemoteInstanceService);
|
|
128
128
|
|
|
129
129
|
//#endregion
|
|
130
|
-
//#region \0@oxc-project+runtime@0.
|
|
130
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
|
|
131
131
|
function _typeof(o) {
|
|
132
132
|
"@babel/helpers - typeof";
|
|
133
133
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -138,7 +138,7 @@ function _typeof(o) {
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
//#endregion
|
|
141
|
-
//#region \0@oxc-project+runtime@0.
|
|
141
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
|
|
142
142
|
function toPrimitive(t, r) {
|
|
143
143
|
if ("object" != _typeof(t) || !t) return t;
|
|
144
144
|
var e = t[Symbol.toPrimitive];
|
|
@@ -151,14 +151,14 @@ function toPrimitive(t, r) {
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
//#endregion
|
|
154
|
-
//#region \0@oxc-project+runtime@0.
|
|
154
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
|
|
155
155
|
function toPropertyKey(t) {
|
|
156
156
|
var i = toPrimitive(t, "string");
|
|
157
157
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
//#endregion
|
|
161
|
-
//#region \0@oxc-project+runtime@0.
|
|
161
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
|
|
162
162
|
function _defineProperty(e, r, t) {
|
|
163
163
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
164
164
|
value: t,
|
|
@@ -654,7 +654,7 @@ DataSyncReplicaController = __decorate([
|
|
|
654
654
|
//#endregion
|
|
655
655
|
//#region package.json
|
|
656
656
|
var name = "@univerjs/rpc";
|
|
657
|
-
var version = "1.0
|
|
657
|
+
var version = "1.1.0";
|
|
658
658
|
|
|
659
659
|
//#endregion
|
|
660
660
|
//#region src/services/rpc/implementations/web-worker-rpc.service.ts
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("rxjs/operators"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`rxjs/operators`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverRpc={},e.UniverCore,e.rxjs.operators,e.rxjs))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i=`rpc.main-thread.config`,a={},o=`rpc.worker-thread.config`,s={};function c(e,t){return function(n,r){t(n,r,e)}}function l(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let u=`rpc.remote-sync.service`,d=(0,t.createIdentifier)(u),f=class{constructor(e){this._commandService=e}async syncMutation(e,t){let{fromCollab:n,...r}=t||{};return this._commandService.syncExecuteCommand(e.mutationInfo.id,e.mutationInfo.params,{...r,onlyLocal:!0,fromSync:!0})}};f=l([c(0,t.ICommandService)],f);let p=`univer.remote-instance-service`,m=(0,t.createIdentifier)(p),h=class{constructor(e,t,n,r){this._univerInstanceService=e,this._commandService=t,this._logService=n,this._lifecycleService=r}whenReady(){return this._lifecycleService.stage>=t.LifecycleStages.Ready?Promise.resolve(!0):this._lifecycleService.onStage(t.LifecycleStages.Ready).then(()=>!0)}async syncMutation(e,t){return this._applyMutation(e.mutationInfo,t)}async createInstance(e){this._logService.debug(`[WebWorkerRemoteInstanceService]: Creating instance with id ${e.unitID}`);let{type:n,snapshot:r}=e;try{switch(n){case t.UniverInstanceType.UNIVER_SHEET:return this._univerInstanceService.createUnit(t.UniverInstanceType.UNIVER_SHEET,r),!0;case t.UniverInstanceType.UNIVER_BASE:return this._univerInstanceService.createUnit(t.UniverInstanceType.UNIVER_BASE,r),!0;default:throw Error(`[WebWorkerRemoteInstanceService]: cannot create replica for document type: ${n}.`)}}catch(e){throw e instanceof Error?e:TypeError(`${e}`)}}async disposeInstance(e){return this._logService.debug(`[WebWorkerRemoteInstanceService]: Disposing instance with id ${e.unitID}`),this._univerInstanceService.disposeUnit(e.unitID)}_applyMutation(e,t){let{id:n,params:r}=e,{fromCollab:i,...a}=t||{};return this._commandService.syncExecuteCommand(n,r,{...a,onlyLocal:!0,fromSync:!0})}};h=l([c(0,t.IUniverInstanceService),c(1,t.ICommandService),c(2,t.ILogService),c(3,(0,t.Inject)(t.LifecycleService))],h);function g(e){"@babel/helpers - typeof";return g=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},g(e)}function _(e,t){if(g(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(g(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function v(e){var t=_(e,`string`);return g(t)==`symbol`?t:t+``}function y(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e){let t=e;return new class{call(e,n){let r=t[e];if(typeof r==`function`){let e=n?r.apply(t,n):r.call(t);return e instanceof Promise||(e=Promise.resolve(e)),e}throw Error(`[RPC]: method not found for ${e}!`)}subscribe(e,n){let i=t[e];if(typeof i==`function`){let e=n?i.apply(t,n):i.call(t);return(0,r.isObservable)(e)?e:(0,r.of)(e)}throw Error(`[RPC]: observable method not found for ${e}!`)}}}function x(e){return new Proxy({},{get(t,n){if(n!==`dispose`)return function(...t){return S(n)?e.subscribe(n,t):e.call(n,t)}}})}function S(e){return e.endsWith(`$`)}var C=class extends Error{constructor(){super(`[ChannelClient]: client is disposed!`),this.name=`ChannelClientDisposedError`}},w=class extends t.RxDisposable{constructor(e){super(),this._protocol=e,y(this,`_initialized`,new r.BehaviorSubject(!1)),y(this,`_lastRequestCounter`,0),y(this,`_pendingRequests`,new Map),this._protocol.send({type:50}),this._protocol.onMessage.pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>this._onMessage(e))}dispose(){if(this._disposed)return;let e=new C;this._initialized.error(e);for(let t of this._pendingRequests.values())t.dispose(e);this._pendingRequests.clear(),super.dispose()}getChannel(e){return{call:(t,n)=>this._disposed?Promise.reject(new C):this._remoteCall(e,t,n),subscribe:(t,n)=>{if(this._disposed)throw new C;return this._remoteSubscribe(e,t,n)}}}_whenReady(){return(0,r.firstValueFrom)(this._initialized.pipe((0,n.filter)(e=>e),(0,n.take)(1)))}_remoteCall(e,t,n){return this._initialized.getValue()?this._doRemoteCall(e,t,n):this._whenReady().then(()=>this._doRemoteCall(e,t,n))}_doRemoteCall(e,t,n){let r=++this._lastRequestCounter,i={seq:r,type:100,channelName:e,method:t,args:n},a=this._pendingRequests;return new Promise((e,t)=>{this._pendingRequests.set(r,{handle(n){switch(n.type){case 201:a.delete(r),e(n.data);break;case 202:a.delete(r),t(n.data);break;default:throw Error(`[ChannelClient]: unknown response type!`)}},dispose(e){t(e)}}),this._sendRequest(i)})}_remoteSubscribe(e,t,n){return new r.Observable(r=>{let i=-1,a=()=>{i=++this._lastRequestCounter;let a={seq:i,type:101,channelName:e,method:t,args:n};this._pendingRequests.set(i,{handle(e){switch(e.type){case 300:r.next(e.data);break;case 301:r.error(e.data);break;case 302:r.complete();break;default:throw Error(`[ChannelClient]: unknown response type!`)}},dispose(e){r.error(e)}}),this._sendRequest(a)};return this._initialized.getValue()?a():this._whenReady().then(a),()=>{if(i===-1)return;let n={type:102,seq:i,channelName:e,method:t};this._sendRequest(n)}})}_sendRequest(e){this._protocol.send(e)}_onMessage(e){let{type:t,seq:n}=e;switch(t){case 0:this._initialized.next(!0);break;case 201:case 202:case 300:case 302:case 301:{var r;let{_pendingRequests:i}=this;(r=i.get(n))==null||r.handle(e),t!==300&&i.delete(n);break}}}},T=class extends t.RxDisposable{constructor(e){super(),this._protocol=e,y(this,`_channels`,new Map),y(this,`_subscriptions`,new Map),this._protocol.onMessage.pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>this._onRequest(e)),this._sendInitialize()}dispose(){super.dispose();for(let e of this._subscriptions.values())e.unsubscribe();this._subscriptions.clear(),this._channels.clear()}registerChannel(e,t){this._channels.set(e,t)}_onRequest(e){switch(e.type){case 50:this._sendInitialize();break;case 100:this._onMethodCall(e);break;case 101:this._onSubscribe(e);break;case 102:this._onUnsubscribe(e)}}_sendInitialize(){this._sendResponse({seq:-1,type:0})}_onMethodCall(e){let{channelName:t,method:n,args:r}=e,i=this._channels.get(t),a;try{if(!i)throw Error(`[ChannelServer]: Channel ${t} not found!`);a=r?i.call(n,r):i.call(n)}catch(e){a=Promise.reject(e instanceof Error?e:Error(String(e)))}a.then(t=>{this._sendResponse({seq:e.seq,type:201,data:t})}).catch(t=>{t instanceof Error?this._sendResponse({seq:e.seq,type:202,data:t.message}):this._sendResponse({seq:e.seq,type:202,data:String(t)})})}_onSubscribe(e){let{channelName:t,seq:n}=e,r=this._channels.get(t);try{if(!r)throw Error(`[ChannelServer]: Channel ${t} not found!`);let i=r.subscribe(e.method,e.args).subscribe({next:e=>{this._sendResponse({seq:n,type:300,data:e})},error:e=>{this._sendResponse({seq:n,type:301,data:e.message}),this._sendResponse({seq:n,type:302})},complete:()=>{this._sendResponse({seq:n,type:302})}});this._subscriptions.set(e.seq,i)}catch(t){t instanceof Error?this._sendResponse({seq:e.seq,type:301,data:t.message}):this._sendResponse({seq:e.seq,type:301,data:String(t)})}}_onUnsubscribe(e){let t=this._subscriptions.get(e.seq);t&&(t.unsubscribe(),this._subscriptions.delete(e.seq))}_sendResponse(e){this._protocol.send(e)}};let E=(0,t.createIdentifier)(`IRPCChannelService`);var D=class{constructor(e){y(this,`_client`,void 0),y(this,`_server`,void 0),this._client=new w(e),this._server=new T(e)}dispose(){this._client.dispose(),this._server.dispose()}requestChannel(e){return this._client.getChannel(e)}registerChannel(e,t){this._server.registerChannel(e,t)}};let O=class extends t.RxDisposable{constructor(e,t,n,r,i,a){super(),this._injector=e,this._commandService=t,this._univerInstanceService=n,this._rpcChannelService=r,this._remoteSyncService=i,this._logService=a,y(this,`_remoteInstanceService`,void 0),y(this,`_syncingUnits`,new Set),y(this,`_syncingMutations`,new Set),y(this,`_syncMutationQueue`,Promise.resolve()),y(this,`_remoteReady`,Promise.resolve(!0)),this._initRPCChannels(),this._init()}registerSyncingMutations(e){this._syncingMutations.add(e.id)}syncUnit(e){let n=this._syncingUnits.has(e);this._syncingUnits.add(e);let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET)??this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_BASE);return!n&&r&&this._handleRemoteRequest(this._remoteInstanceService.createInstance({unitID:r.getUnitId(),type:r.type,snapshot:r.getSnapshot()}),`create the remote unit`),(0,t.toDisposable)(()=>{n||this._syncingUnits.delete(e),!n&&r&&this._handleRemoteRequest(this._remoteInstanceService.disposeInstance({unitID:r.getUnitId()}),`dispose the remote unit`)})}syncUnitMutations(e){let n=this._syncingUnits.has(e);return this._syncingUnits.add(e),(0,t.toDisposable)(()=>{n||this._syncingUnits.delete(e)})}async syncMutation(e,t){let n=()=>this._remoteReady.then(()=>this._remoteInstanceService.syncMutation({mutationInfo:e},t)),r=this._syncMutationQueue.then(n,n);return this._syncMutationQueue=r.catch(()=>!1),r}async waitForPendingMutations(){await this._syncMutationQueue.catch(()=>!1)}_initRPCChannels(){this._rpcChannelService.registerChannel(u,b(this._remoteSyncService)),this._injector.add([m,{useFactory:()=>x(this._rpcChannelService.requestChannel(p))}]),this._remoteInstanceService=this._injector.get(m),this._remoteReady=this._remoteInstanceService.whenReady(),this._handleRemoteRequest(this._remoteReady,`initialize the remote instance service`)}_init(){this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{let{unit:n}=e;this._syncingUnits.add(n.getUnitId()),this._handleRemoteRequest(this._remoteInstanceService.createInstance({unitID:n.getUnitId(),type:t.UniverInstanceType.UNIVER_SHEET,snapshot:n.getSnapshot()}),`create the remote workbook`)}),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{this._syncingUnits.delete(e.getUnitId()),this._handleRemoteRequest(this._remoteInstanceService.disposeInstance({unitID:e.getUnitId()}),`dispose the remote workbook`)}),this.disposeWithMe(this._commandService.onCommandExecuted((e,n)=>{let{type:r,params:i,id:a}=e,o=(i==null?void 0:i.unitId)||``;r===t.CommandType.MUTATION&&(!o||this._syncingUnits.has(o))&&!(n!=null&&n.fromSync)&&this._syncingMutations.has(a)&&this._handleRemoteRequest(this.syncMutation(e,n),`sync mutation ${a}`)}))}_handleRemoteRequest(e,t){e.catch(e=>{e instanceof C||this._logService.error(`[DataSyncPrimaryController]: Failed to ${t}.`,e)})}};O=l([c(0,(0,t.Inject)(t.Injector)),c(1,t.ICommandService),c(2,t.IUniverInstanceService),c(3,E),c(4,d),c(5,t.ILogService)],O);let k=class extends t.Disposable{constructor(e,t,n,r){super(),this._injector=e,this._remoteInstanceService=t,this._commandService=n,this._rpcChannelService=r,y(this,`_remoteSyncService`,void 0),this._initRPCChannels(),this._init()}_initRPCChannels(){this._rpcChannelService.registerChannel(p,b(this._remoteInstanceService)),this._injector.add([d,{useFactory:()=>x(this._rpcChannelService.requestChannel(u))}]),this._remoteSyncService=this._injector.get(d)}_init(){this.disposeWithMe(this._commandService.onCommandExecuted((e,n)=>{e.type===t.CommandType.MUTATION&&!(n!=null&&n.fromSync)&&this._remoteSyncService.syncMutation({mutationInfo:e},n)}))}};k=l([c(0,(0,t.Inject)(t.Injector)),c(1,m),c(2,t.ICommandService),c(3,E)],k);var A=`@univerjs/rpc`,j=`1.0.4`;function M(){return{send(e){postMessage(e)},onMessage:new r.Observable(e=>{let t=t=>{e.next(t.data)};return addEventListener(`message`,t),()=>removeEventListener(`message`,t)}).pipe((0,r.shareReplay)({bufferSize:1,refCount:!0}))}}function N(e){return{send(t){e.postMessage(t)},onMessage:new r.Observable(t=>{let n=e=>{t.next(e.data)};return e.addEventListener(`message`,n),()=>e.removeEventListener(`message`,n)}).pipe((0,r.shareReplay)({bufferSize:1,refCount:!0}))}}let P=class extends t.Plugin{constructor(e=a,n,r){super(),this._config=e,this._injector=n,this._configService=r,y(this,`_internalWorker`,null);let{...o}=(0,t.merge)({},a,this._config);this._configService.setConfig(i,o)}dispose(){super.dispose(),this._internalWorker&&=(this._internalWorker.terminate(),null)}onStarting(){let{workerURL:e}=this._config;if(!e)throw Error(`[UniverRPCMainThreadPlugin]: The workerURL is required for the RPC main thread plugin.`);let t=e instanceof Worker?e:new Worker(e);this._internalWorker=e instanceof Worker?null:t;let n=N(t);[[E,{useFactory:()=>new D(n)}],[O],[d,{useClass:f}]].forEach(e=>this._injector.add(e)),this._injector.get(O)}};y(P,`pluginName`,`UNIVER_RPC_MAIN_THREAD_PLUGIN`),y(P,`packageName`,A),y(P,`version`,j),P=l([c(1,(0,t.Inject)(t.Injector)),c(2,t.IConfigService)],P);let F=class extends t.Plugin{constructor(e=s,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},s,this._config);this._configService.setConfig(o,i)}onStarting(){[[k],[E,{useFactory:()=>new D(M())}],[m,{useClass:h}]].forEach(e=>this._injector.add(e)),this._injector.get(k)}};y(F,`pluginName`,`UNIVER_RPC_WORKER_THREAD_PLUGIN`),y(F,`packageName`,A),y(F,`version`,j),F=l([c(1,(0,t.Inject)(t.Injector)),c(2,t.IConfigService)],F),e.ChannelClient=w,e.ChannelServer=T,e.ChannelService=D,Object.defineProperty(e,"DataSyncPrimaryController",{enumerable:!0,get:function(){return O}}),Object.defineProperty(e,"DataSyncReplicaController",{enumerable:!0,get:function(){return k}}),e.IRPCChannelService=E,e.IRemoteInstanceService=m,e.IRemoteSyncService=d,e.PLUGIN_CONFIG_KEY_MAIN_THREAD=i,e.PLUGIN_CONFIG_KEY_WORKER_THREAD=o,e.RemoteInstanceServiceName=p,Object.defineProperty(e,"RemoteSyncPrimaryService",{enumerable:!0,get:function(){return f}}),e.RemoteSyncServiceName=u,Object.defineProperty(e,"UniverRPCMainThreadPlugin",{enumerable:!0,get:function(){return P}}),Object.defineProperty(e,"UniverRPCWorkerThreadPlugin",{enumerable:!0,get:function(){return F}}),Object.defineProperty(e,"WebWorkerRemoteInstanceService",{enumerable:!0,get:function(){return h}}),e.fromModule=b,e.toModule=x});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("rxjs/operators"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`rxjs/operators`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverRpc={},e.UniverCore,e.rxjs.operators,e.rxjs))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i=`rpc.main-thread.config`,a={},o=`rpc.worker-thread.config`,s={};function c(e,t){return function(n,r){t(n,r,e)}}function l(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let u=`rpc.remote-sync.service`,d=(0,t.createIdentifier)(u),f=class{constructor(e){this._commandService=e}async syncMutation(e,t){let{fromCollab:n,...r}=t||{};return this._commandService.syncExecuteCommand(e.mutationInfo.id,e.mutationInfo.params,{...r,onlyLocal:!0,fromSync:!0})}};f=l([c(0,t.ICommandService)],f);let p=`univer.remote-instance-service`,m=(0,t.createIdentifier)(p),h=class{constructor(e,t,n,r){this._univerInstanceService=e,this._commandService=t,this._logService=n,this._lifecycleService=r}whenReady(){return this._lifecycleService.stage>=t.LifecycleStages.Ready?Promise.resolve(!0):this._lifecycleService.onStage(t.LifecycleStages.Ready).then(()=>!0)}async syncMutation(e,t){return this._applyMutation(e.mutationInfo,t)}async createInstance(e){this._logService.debug(`[WebWorkerRemoteInstanceService]: Creating instance with id ${e.unitID}`);let{type:n,snapshot:r}=e;try{switch(n){case t.UniverInstanceType.UNIVER_SHEET:return this._univerInstanceService.createUnit(t.UniverInstanceType.UNIVER_SHEET,r),!0;case t.UniverInstanceType.UNIVER_BASE:return this._univerInstanceService.createUnit(t.UniverInstanceType.UNIVER_BASE,r),!0;default:throw Error(`[WebWorkerRemoteInstanceService]: cannot create replica for document type: ${n}.`)}}catch(e){throw e instanceof Error?e:TypeError(`${e}`)}}async disposeInstance(e){return this._logService.debug(`[WebWorkerRemoteInstanceService]: Disposing instance with id ${e.unitID}`),this._univerInstanceService.disposeUnit(e.unitID)}_applyMutation(e,t){let{id:n,params:r}=e,{fromCollab:i,...a}=t||{};return this._commandService.syncExecuteCommand(n,r,{...a,onlyLocal:!0,fromSync:!0})}};h=l([c(0,t.IUniverInstanceService),c(1,t.ICommandService),c(2,t.ILogService),c(3,(0,t.Inject)(t.LifecycleService))],h);function g(e){"@babel/helpers - typeof";return g=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},g(e)}function _(e,t){if(g(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(g(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function v(e){var t=_(e,`string`);return g(t)==`symbol`?t:t+``}function y(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e){let t=e;return new class{call(e,n){let r=t[e];if(typeof r==`function`){let e=n?r.apply(t,n):r.call(t);return e instanceof Promise||(e=Promise.resolve(e)),e}throw Error(`[RPC]: method not found for ${e}!`)}subscribe(e,n){let i=t[e];if(typeof i==`function`){let e=n?i.apply(t,n):i.call(t);return(0,r.isObservable)(e)?e:(0,r.of)(e)}throw Error(`[RPC]: observable method not found for ${e}!`)}}}function x(e){return new Proxy({},{get(t,n){if(n!==`dispose`)return function(...t){return S(n)?e.subscribe(n,t):e.call(n,t)}}})}function S(e){return e.endsWith(`$`)}var C=class extends Error{constructor(){super(`[ChannelClient]: client is disposed!`),this.name=`ChannelClientDisposedError`}},w=class extends t.RxDisposable{constructor(e){super(),this._protocol=e,y(this,`_initialized`,new r.BehaviorSubject(!1)),y(this,`_lastRequestCounter`,0),y(this,`_pendingRequests`,/* @__PURE__ */ new Map),this._protocol.send({type:50}),this._protocol.onMessage.pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>this._onMessage(e))}dispose(){if(this._disposed)return;let e=new C;this._initialized.error(e);for(let t of this._pendingRequests.values())t.dispose(e);this._pendingRequests.clear(),super.dispose()}getChannel(e){return{call:(t,n)=>this._disposed?Promise.reject(new C):this._remoteCall(e,t,n),subscribe:(t,n)=>{if(this._disposed)throw new C;return this._remoteSubscribe(e,t,n)}}}_whenReady(){return(0,r.firstValueFrom)(this._initialized.pipe((0,n.filter)(e=>e),(0,n.take)(1)))}_remoteCall(e,t,n){return this._initialized.getValue()?this._doRemoteCall(e,t,n):this._whenReady().then(()=>this._doRemoteCall(e,t,n))}_doRemoteCall(e,t,n){let r=++this._lastRequestCounter,i={seq:r,type:100,channelName:e,method:t,args:n},a=this._pendingRequests;return new Promise((e,t)=>{this._pendingRequests.set(r,{handle(n){switch(n.type){case 201:a.delete(r),e(n.data);break;case 202:a.delete(r),t(n.data);break;default:throw Error(`[ChannelClient]: unknown response type!`)}},dispose(e){t(e)}}),this._sendRequest(i)})}_remoteSubscribe(e,t,n){return new r.Observable(r=>{let i=-1,a=()=>{i=++this._lastRequestCounter;let a={seq:i,type:101,channelName:e,method:t,args:n};this._pendingRequests.set(i,{handle(e){switch(e.type){case 300:r.next(e.data);break;case 301:r.error(e.data);break;case 302:r.complete();break;default:throw Error(`[ChannelClient]: unknown response type!`)}},dispose(e){r.error(e)}}),this._sendRequest(a)};return this._initialized.getValue()?a():this._whenReady().then(a),()=>{if(i===-1)return;let n={type:102,seq:i,channelName:e,method:t};this._sendRequest(n)}})}_sendRequest(e){this._protocol.send(e)}_onMessage(e){let{type:t,seq:n}=e;switch(t){case 0:this._initialized.next(!0);break;case 201:case 202:case 300:case 302:case 301:{var r;let{_pendingRequests:i}=this;(r=i.get(n))==null||r.handle(e),t!==300&&i.delete(n);break}}}},T=class extends t.RxDisposable{constructor(e){super(),this._protocol=e,y(this,`_channels`,/* @__PURE__ */ new Map),y(this,`_subscriptions`,/* @__PURE__ */ new Map),this._protocol.onMessage.pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>this._onRequest(e)),this._sendInitialize()}dispose(){super.dispose();for(let e of this._subscriptions.values())e.unsubscribe();this._subscriptions.clear(),this._channels.clear()}registerChannel(e,t){this._channels.set(e,t)}_onRequest(e){switch(e.type){case 50:this._sendInitialize();break;case 100:this._onMethodCall(e);break;case 101:this._onSubscribe(e);break;case 102:this._onUnsubscribe(e)}}_sendInitialize(){this._sendResponse({seq:-1,type:0})}_onMethodCall(e){let{channelName:t,method:n,args:r}=e,i=this._channels.get(t),a;try{if(!i)throw Error(`[ChannelServer]: Channel ${t} not found!`);a=r?i.call(n,r):i.call(n)}catch(e){a=Promise.reject(e instanceof Error?e:Error(String(e)))}a.then(t=>{this._sendResponse({seq:e.seq,type:201,data:t})}).catch(t=>{t instanceof Error?this._sendResponse({seq:e.seq,type:202,data:t.message}):this._sendResponse({seq:e.seq,type:202,data:String(t)})})}_onSubscribe(e){let{channelName:t,seq:n}=e,r=this._channels.get(t);try{if(!r)throw Error(`[ChannelServer]: Channel ${t} not found!`);let i=r.subscribe(e.method,e.args).subscribe({next:e=>{this._sendResponse({seq:n,type:300,data:e})},error:e=>{this._sendResponse({seq:n,type:301,data:e.message}),this._sendResponse({seq:n,type:302})},complete:()=>{this._sendResponse({seq:n,type:302})}});this._subscriptions.set(e.seq,i)}catch(t){t instanceof Error?this._sendResponse({seq:e.seq,type:301,data:t.message}):this._sendResponse({seq:e.seq,type:301,data:String(t)})}}_onUnsubscribe(e){let t=this._subscriptions.get(e.seq);t&&(t.unsubscribe(),this._subscriptions.delete(e.seq))}_sendResponse(e){this._protocol.send(e)}};let E=(0,t.createIdentifier)(`IRPCChannelService`);var D=class{constructor(e){y(this,`_client`,void 0),y(this,`_server`,void 0),this._client=new w(e),this._server=new T(e)}dispose(){this._client.dispose(),this._server.dispose()}requestChannel(e){return this._client.getChannel(e)}registerChannel(e,t){this._server.registerChannel(e,t)}};let O=class extends t.RxDisposable{constructor(e,t,n,r,i,a){super(),this._injector=e,this._commandService=t,this._univerInstanceService=n,this._rpcChannelService=r,this._remoteSyncService=i,this._logService=a,y(this,`_remoteInstanceService`,void 0),y(this,`_syncingUnits`,/* @__PURE__ */ new Set),y(this,`_syncingMutations`,/* @__PURE__ */ new Set),y(this,`_syncMutationQueue`,Promise.resolve()),y(this,`_remoteReady`,Promise.resolve(!0)),this._initRPCChannels(),this._init()}registerSyncingMutations(e){this._syncingMutations.add(e.id)}syncUnit(e){let n=this._syncingUnits.has(e);this._syncingUnits.add(e);let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET)??this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_BASE);return!n&&r&&this._handleRemoteRequest(this._remoteInstanceService.createInstance({unitID:r.getUnitId(),type:r.type,snapshot:r.getSnapshot()}),`create the remote unit`),(0,t.toDisposable)(()=>{n||this._syncingUnits.delete(e),!n&&r&&this._handleRemoteRequest(this._remoteInstanceService.disposeInstance({unitID:r.getUnitId()}),`dispose the remote unit`)})}syncUnitMutations(e){let n=this._syncingUnits.has(e);return this._syncingUnits.add(e),(0,t.toDisposable)(()=>{n||this._syncingUnits.delete(e)})}async syncMutation(e,t){let n=()=>this._remoteReady.then(()=>this._remoteInstanceService.syncMutation({mutationInfo:e},t)),r=this._syncMutationQueue.then(n,n);return this._syncMutationQueue=r.catch(()=>!1),r}async waitForPendingMutations(){await this._syncMutationQueue.catch(()=>!1)}_initRPCChannels(){this._rpcChannelService.registerChannel(u,b(this._remoteSyncService)),this._injector.add([m,{useFactory:()=>x(this._rpcChannelService.requestChannel(p))}]),this._remoteInstanceService=this._injector.get(m),this._remoteReady=this._remoteInstanceService.whenReady(),this._handleRemoteRequest(this._remoteReady,`initialize the remote instance service`)}_init(){this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{let{unit:n}=e;this._syncingUnits.add(n.getUnitId()),this._handleRemoteRequest(this._remoteInstanceService.createInstance({unitID:n.getUnitId(),type:t.UniverInstanceType.UNIVER_SHEET,snapshot:n.getSnapshot()}),`create the remote workbook`)}),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{this._syncingUnits.delete(e.getUnitId()),this._handleRemoteRequest(this._remoteInstanceService.disposeInstance({unitID:e.getUnitId()}),`dispose the remote workbook`)}),this.disposeWithMe(this._commandService.onCommandExecuted((e,n)=>{let{type:r,params:i,id:a}=e,o=(i==null?void 0:i.unitId)||``;r===t.CommandType.MUTATION&&(!o||this._syncingUnits.has(o))&&!(n!=null&&n.fromSync)&&this._syncingMutations.has(a)&&this._handleRemoteRequest(this.syncMutation(e,n),`sync mutation ${a}`)}))}_handleRemoteRequest(e,t){e.catch(e=>{e instanceof C||this._logService.error(`[DataSyncPrimaryController]: Failed to ${t}.`,e)})}};O=l([c(0,(0,t.Inject)(t.Injector)),c(1,t.ICommandService),c(2,t.IUniverInstanceService),c(3,E),c(4,d),c(5,t.ILogService)],O);let k=class extends t.Disposable{constructor(e,t,n,r){super(),this._injector=e,this._remoteInstanceService=t,this._commandService=n,this._rpcChannelService=r,y(this,`_remoteSyncService`,void 0),this._initRPCChannels(),this._init()}_initRPCChannels(){this._rpcChannelService.registerChannel(p,b(this._remoteInstanceService)),this._injector.add([d,{useFactory:()=>x(this._rpcChannelService.requestChannel(u))}]),this._remoteSyncService=this._injector.get(d)}_init(){this.disposeWithMe(this._commandService.onCommandExecuted((e,n)=>{e.type===t.CommandType.MUTATION&&!(n!=null&&n.fromSync)&&this._remoteSyncService.syncMutation({mutationInfo:e},n)}))}};k=l([c(0,(0,t.Inject)(t.Injector)),c(1,m),c(2,t.ICommandService),c(3,E)],k);var A=`@univerjs/rpc`,j=`1.1.0`;function M(){return{send(e){postMessage(e)},onMessage:new r.Observable(e=>{let t=t=>{e.next(t.data)};return addEventListener(`message`,t),()=>removeEventListener(`message`,t)}).pipe((0,r.shareReplay)({bufferSize:1,refCount:!0}))}}function N(e){return{send(t){e.postMessage(t)},onMessage:new r.Observable(t=>{let n=e=>{t.next(e.data)};return e.addEventListener(`message`,n),()=>e.removeEventListener(`message`,n)}).pipe((0,r.shareReplay)({bufferSize:1,refCount:!0}))}}let P=class extends t.Plugin{constructor(e=a,n,r){super(),this._config=e,this._injector=n,this._configService=r,y(this,`_internalWorker`,null);let{...o}=(0,t.merge)({},a,this._config);this._configService.setConfig(i,o)}dispose(){super.dispose(),this._internalWorker&&=(this._internalWorker.terminate(),null)}onStarting(){let{workerURL:e}=this._config;if(!e)throw Error(`[UniverRPCMainThreadPlugin]: The workerURL is required for the RPC main thread plugin.`);let t=e instanceof Worker?e:new Worker(e);this._internalWorker=e instanceof Worker?null:t;let n=N(t);[[E,{useFactory:()=>new D(n)}],[O],[d,{useClass:f}]].forEach(e=>this._injector.add(e)),this._injector.get(O)}};y(P,`pluginName`,`UNIVER_RPC_MAIN_THREAD_PLUGIN`),y(P,`packageName`,A),y(P,`version`,j),P=l([c(1,(0,t.Inject)(t.Injector)),c(2,t.IConfigService)],P);let F=class extends t.Plugin{constructor(e=s,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},s,this._config);this._configService.setConfig(o,i)}onStarting(){[[k],[E,{useFactory:()=>new D(M())}],[m,{useClass:h}]].forEach(e=>this._injector.add(e)),this._injector.get(k)}};y(F,`pluginName`,`UNIVER_RPC_WORKER_THREAD_PLUGIN`),y(F,`packageName`,A),y(F,`version`,j),F=l([c(1,(0,t.Inject)(t.Injector)),c(2,t.IConfigService)],F),e.ChannelClient=w,e.ChannelServer=T,e.ChannelService=D,Object.defineProperty(e,"DataSyncPrimaryController",{enumerable:!0,get:function(){return O}}),Object.defineProperty(e,"DataSyncReplicaController",{enumerable:!0,get:function(){return k}}),e.IRPCChannelService=E,e.IRemoteInstanceService=m,e.IRemoteSyncService=d,e.PLUGIN_CONFIG_KEY_MAIN_THREAD=i,e.PLUGIN_CONFIG_KEY_WORKER_THREAD=o,e.RemoteInstanceServiceName=p,Object.defineProperty(e,"RemoteSyncPrimaryService",{enumerable:!0,get:function(){return f}}),e.RemoteSyncServiceName=u,Object.defineProperty(e,"UniverRPCMainThreadPlugin",{enumerable:!0,get:function(){return P}}),Object.defineProperty(e,"UniverRPCWorkerThreadPlugin",{enumerable:!0,get:function(){return F}}),Object.defineProperty(e,"WebWorkerRemoteInstanceService",{enumerable:!0,get:function(){return h}}),e.fromModule=b,e.toModule=x});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/rpc",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Browser RPC layer for Univer main-thread and worker communication.",
|
|
6
6
|
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
@@ -52,13 +52,13 @@
|
|
|
52
52
|
"rxjs": ">=7.0.0"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@univerjs/core": "1.0
|
|
55
|
+
"@univerjs/core": "1.1.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@univerjs-infra/shared": "1.0
|
|
58
|
+
"@univerjs-infra/shared": "1.1.0",
|
|
59
59
|
"rxjs": "^7.8.2",
|
|
60
60
|
"typescript": "^6.0.3",
|
|
61
|
-
"vitest": "^5.0.
|
|
61
|
+
"vitest": "^5.0.4"
|
|
62
62
|
},
|
|
63
63
|
"scripts": {
|
|
64
64
|
"test": "vitest run",
|