@univerjs/rpc 1.0.0-alpha.7 → 1.0.0-beta.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 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.137.0/helpers/esm/decorateParam.js
30
+ //#region \0@oxc-project+runtime@0.140.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.137.0/helpers/esm/decorate.js
38
+ //#region \0@oxc-project+runtime@0.140.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);
@@ -125,7 +125,7 @@ WebWorkerRemoteInstanceService = __decorate([
125
125
  ], WebWorkerRemoteInstanceService);
126
126
 
127
127
  //#endregion
128
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/typeof.js
128
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
129
129
  function _typeof(o) {
130
130
  "@babel/helpers - typeof";
131
131
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -136,7 +136,7 @@ function _typeof(o) {
136
136
  }
137
137
 
138
138
  //#endregion
139
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPrimitive.js
139
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
140
140
  function toPrimitive(t, r) {
141
141
  if ("object" != _typeof(t) || !t) return t;
142
142
  var e = t[Symbol.toPrimitive];
@@ -149,14 +149,14 @@ function toPrimitive(t, r) {
149
149
  }
150
150
 
151
151
  //#endregion
152
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPropertyKey.js
152
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
153
153
  function toPropertyKey(t) {
154
154
  var i = toPrimitive(t, "string");
155
155
  return "symbol" == _typeof(i) ? i : i + "";
156
156
  }
157
157
 
158
158
  //#endregion
159
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/defineProperty.js
159
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
160
160
  function _defineProperty(e, r, t) {
161
161
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
162
162
  value: t,
@@ -523,10 +523,9 @@ let DataSyncPrimaryController = class DataSyncPrimaryController extends _univerj
523
523
  * sync other types of documents, you should manually call this method with that document's id.
524
524
  */
525
525
  syncUnit(unitId) {
526
- var _this$_univerInstance;
527
526
  const alreadySyncing = this._syncingUnits.has(unitId);
528
527
  this._syncingUnits.add(unitId);
529
- const unit = (_this$_univerInstance = this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_SHEET)) !== null && _this$_univerInstance !== void 0 ? _this$_univerInstance : this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_BASE);
528
+ const unit = this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_SHEET) ?? this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_BASE);
530
529
  if (!alreadySyncing && unit) this._remoteInstanceService.createInstance({
531
530
  unitID: unit.getUnitId(),
532
531
  type: unit.type,
@@ -537,6 +536,14 @@ let DataSyncPrimaryController = class DataSyncPrimaryController extends _univerj
537
536
  if (!alreadySyncing && unit) this._remoteInstanceService.disposeInstance({ unitID: unit.getUnitId() });
538
537
  });
539
538
  }
539
+ /** Sync registered mutations for a unit without creating a replica unit. */
540
+ syncUnitMutations(unitId) {
541
+ const alreadySyncing = this._syncingUnits.has(unitId);
542
+ this._syncingUnits.add(unitId);
543
+ return (0, _univerjs_core.toDisposable)(() => {
544
+ if (!alreadySyncing) this._syncingUnits.delete(unitId);
545
+ });
546
+ }
540
547
  _initRPCChannels() {
541
548
  this._rpcChannelService.registerChannel(RemoteSyncServiceName, fromModule(this._remoteSyncService));
542
549
  this._injector.add([IRemoteInstanceService, { useFactory: () => toModule(this._rpcChannelService.requestChannel(RemoteInstanceServiceName)) }]);
@@ -608,7 +615,7 @@ DataSyncReplicaController = __decorate([
608
615
  //#endregion
609
616
  //#region package.json
610
617
  var name = "@univerjs/rpc";
611
- var version = "1.0.0-alpha.7";
618
+ var version = "1.0.0-beta.0";
612
619
 
613
620
  //#endregion
614
621
  //#region src/services/rpc/implementations/web-worker-rpc.service.ts
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.137.0/helpers/esm/decorateParam.js
29
+ //#region \0@oxc-project+runtime@0.140.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.137.0/helpers/esm/decorate.js
37
+ //#region \0@oxc-project+runtime@0.140.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);
@@ -124,7 +124,7 @@ WebWorkerRemoteInstanceService = __decorate([
124
124
  ], WebWorkerRemoteInstanceService);
125
125
 
126
126
  //#endregion
127
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/typeof.js
127
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
128
128
  function _typeof(o) {
129
129
  "@babel/helpers - typeof";
130
130
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -135,7 +135,7 @@ function _typeof(o) {
135
135
  }
136
136
 
137
137
  //#endregion
138
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPrimitive.js
138
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
139
139
  function toPrimitive(t, r) {
140
140
  if ("object" != _typeof(t) || !t) return t;
141
141
  var e = t[Symbol.toPrimitive];
@@ -148,14 +148,14 @@ function toPrimitive(t, r) {
148
148
  }
149
149
 
150
150
  //#endregion
151
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPropertyKey.js
151
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
152
152
  function toPropertyKey(t) {
153
153
  var i = toPrimitive(t, "string");
154
154
  return "symbol" == _typeof(i) ? i : i + "";
155
155
  }
156
156
 
157
157
  //#endregion
158
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/defineProperty.js
158
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
159
159
  function _defineProperty(e, r, t) {
160
160
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
161
161
  value: t,
@@ -522,10 +522,9 @@ let DataSyncPrimaryController = class DataSyncPrimaryController extends RxDispos
522
522
  * sync other types of documents, you should manually call this method with that document's id.
523
523
  */
524
524
  syncUnit(unitId) {
525
- var _this$_univerInstance;
526
525
  const alreadySyncing = this._syncingUnits.has(unitId);
527
526
  this._syncingUnits.add(unitId);
528
- const unit = (_this$_univerInstance = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET)) !== null && _this$_univerInstance !== void 0 ? _this$_univerInstance : this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_BASE);
527
+ const unit = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET) ?? this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_BASE);
529
528
  if (!alreadySyncing && unit) this._remoteInstanceService.createInstance({
530
529
  unitID: unit.getUnitId(),
531
530
  type: unit.type,
@@ -536,6 +535,14 @@ let DataSyncPrimaryController = class DataSyncPrimaryController extends RxDispos
536
535
  if (!alreadySyncing && unit) this._remoteInstanceService.disposeInstance({ unitID: unit.getUnitId() });
537
536
  });
538
537
  }
538
+ /** Sync registered mutations for a unit without creating a replica unit. */
539
+ syncUnitMutations(unitId) {
540
+ const alreadySyncing = this._syncingUnits.has(unitId);
541
+ this._syncingUnits.add(unitId);
542
+ return toDisposable(() => {
543
+ if (!alreadySyncing) this._syncingUnits.delete(unitId);
544
+ });
545
+ }
539
546
  _initRPCChannels() {
540
547
  this._rpcChannelService.registerChannel(RemoteSyncServiceName, fromModule(this._remoteSyncService));
541
548
  this._injector.add([IRemoteInstanceService, { useFactory: () => toModule(this._rpcChannelService.requestChannel(RemoteInstanceServiceName)) }]);
@@ -607,7 +614,7 @@ DataSyncReplicaController = __decorate([
607
614
  //#endregion
608
615
  //#region package.json
609
616
  var name = "@univerjs/rpc";
610
- var version = "1.0.0-alpha.7";
617
+ var version = "1.0.0-beta.0";
611
618
 
612
619
  //#endregion
613
620
  //#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.137.0/helpers/esm/decorateParam.js
29
+ //#region \0@oxc-project+runtime@0.140.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.137.0/helpers/esm/decorate.js
37
+ //#region \0@oxc-project+runtime@0.140.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);
@@ -124,7 +124,7 @@ WebWorkerRemoteInstanceService = __decorate([
124
124
  ], WebWorkerRemoteInstanceService);
125
125
 
126
126
  //#endregion
127
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/typeof.js
127
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
128
128
  function _typeof(o) {
129
129
  "@babel/helpers - typeof";
130
130
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -135,7 +135,7 @@ function _typeof(o) {
135
135
  }
136
136
 
137
137
  //#endregion
138
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPrimitive.js
138
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
139
139
  function toPrimitive(t, r) {
140
140
  if ("object" != _typeof(t) || !t) return t;
141
141
  var e = t[Symbol.toPrimitive];
@@ -148,14 +148,14 @@ function toPrimitive(t, r) {
148
148
  }
149
149
 
150
150
  //#endregion
151
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPropertyKey.js
151
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
152
152
  function toPropertyKey(t) {
153
153
  var i = toPrimitive(t, "string");
154
154
  return "symbol" == _typeof(i) ? i : i + "";
155
155
  }
156
156
 
157
157
  //#endregion
158
- //#region \0@oxc-project+runtime@0.137.0/helpers/esm/defineProperty.js
158
+ //#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
159
159
  function _defineProperty(e, r, t) {
160
160
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
161
161
  value: t,
@@ -522,10 +522,9 @@ let DataSyncPrimaryController = class DataSyncPrimaryController extends RxDispos
522
522
  * sync other types of documents, you should manually call this method with that document's id.
523
523
  */
524
524
  syncUnit(unitId) {
525
- var _this$_univerInstance;
526
525
  const alreadySyncing = this._syncingUnits.has(unitId);
527
526
  this._syncingUnits.add(unitId);
528
- const unit = (_this$_univerInstance = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET)) !== null && _this$_univerInstance !== void 0 ? _this$_univerInstance : this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_BASE);
527
+ const unit = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET) ?? this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_BASE);
529
528
  if (!alreadySyncing && unit) this._remoteInstanceService.createInstance({
530
529
  unitID: unit.getUnitId(),
531
530
  type: unit.type,
@@ -536,6 +535,14 @@ let DataSyncPrimaryController = class DataSyncPrimaryController extends RxDispos
536
535
  if (!alreadySyncing && unit) this._remoteInstanceService.disposeInstance({ unitID: unit.getUnitId() });
537
536
  });
538
537
  }
538
+ /** Sync registered mutations for a unit without creating a replica unit. */
539
+ syncUnitMutations(unitId) {
540
+ const alreadySyncing = this._syncingUnits.has(unitId);
541
+ this._syncingUnits.add(unitId);
542
+ return toDisposable(() => {
543
+ if (!alreadySyncing) this._syncingUnits.delete(unitId);
544
+ });
545
+ }
539
546
  _initRPCChannels() {
540
547
  this._rpcChannelService.registerChannel(RemoteSyncServiceName, fromModule(this._remoteSyncService));
541
548
  this._injector.add([IRemoteInstanceService, { useFactory: () => toModule(this._rpcChannelService.requestChannel(RemoteInstanceServiceName)) }]);
@@ -607,7 +614,7 @@ DataSyncReplicaController = __decorate([
607
614
  //#endregion
608
615
  //#region package.json
609
616
  var name = "@univerjs/rpc";
610
- var version = "1.0.0-alpha.7";
617
+ var version = "1.0.0-beta.0";
611
618
 
612
619
  //#endregion
613
620
  //#region src/services/rpc/implementations/web-worker-rpc.service.ts
@@ -40,6 +40,8 @@ export declare class DataSyncPrimaryController extends RxDisposable {
40
40
  * sync other types of documents, you should manually call this method with that document's id.
41
41
  */
42
42
  syncUnit(unitId: string): IDisposable;
43
+ /** Sync registered mutations for a unit without creating a replica unit. */
44
+ syncUnitMutations(unitId: string): IDisposable;
43
45
  private _initRPCChannels;
44
46
  private _init;
45
47
  }
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){this._univerInstanceService=e,this._commandService=t,this._logService=n}whenReady(){return Promise.resolve(!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)],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 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(){this._pendingRequests.clear()}getChannel(e){return{call:(t,n)=>this._disposed?Promise.reject(Error(`[ChannelClient]: client is disposed!`)):this._remoteCall(e,t,n),subscribe:(t,n)=>{if(this._disposed)throw Error(`[ChannelClient]: client is disposed!`);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!`)}}}),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!`)}}}),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}}}},w=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(),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);break;default:break}}_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 T=(0,t.createIdentifier)(`IRPCChannelService`);var E=class{constructor(e){y(this,`_client`,void 0),y(this,`_server`,void 0),this._client=new C(e),this._server=new w(e)}dispose(){this._client.dispose(),this._server.dispose()}requestChannel(e){return this._client.getChannel(e)}registerChannel(e,t){this._server.registerChannel(e,t)}};let D=class extends t.RxDisposable{constructor(e,t,n,r,i){super(),this._injector=e,this._commandService=t,this._univerInstanceService=n,this._rpcChannelService=r,this._remoteSyncService=i,y(this,`_remoteInstanceService`,void 0),y(this,`_syncingUnits`,new Set),y(this,`_syncingMutations`,new Set),y(this,`_syncMutationQueue`,Promise.resolve()),this._initRPCChannels(),this._init()}registerSyncingMutations(e){this._syncingMutations.add(e.id)}syncUnit(e){var n;let r=this._syncingUnits.has(e);this._syncingUnits.add(e);let i=(n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET))==null?this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_BASE):n;return!r&&i&&this._remoteInstanceService.createInstance({unitID:i.getUnitId(),type:i.type,snapshot:i.getSnapshot()}),(0,t.toDisposable)(()=>{r||this._syncingUnits.delete(e),!r&&i&&this._remoteInstanceService.disposeInstance({unitID:i.getUnitId()})})}_initRPCChannels(){this._rpcChannelService.registerChannel(u,b(this._remoteSyncService)),this._injector.add([m,{useFactory:()=>x(this._rpcChannelService.requestChannel(p))}]),this._remoteInstanceService=this._injector.get(m)}_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._remoteInstanceService.createInstance({unitID:n.getUnitId(),type:t.UniverInstanceType.UNIVER_SHEET,snapshot:n.getSnapshot()})}),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{this._syncingUnits.delete(e.getUnitId()),this._remoteInstanceService.disposeInstance({unitID:e.getUnitId()})}),this.disposeWithMe(this._commandService.onCommandExecuted((e,n)=>{let{type:r,params:i,id:a}=e,o=(i==null?void 0:i.unitId)||``;if(r===t.CommandType.MUTATION&&(!o||this._syncingUnits.has(o))&&!(n!=null&&n.fromSync)&&this._syncingMutations.has(a)){let t=()=>this._remoteInstanceService.syncMutation({mutationInfo:e},n);this._syncMutationQueue=this._syncMutationQueue.then(t,t).catch(()=>!1)}}))}};D=l([c(0,(0,t.Inject)(t.Injector)),c(1,t.ICommandService),c(2,t.IUniverInstanceService),c(3,T),c(4,d)],D);let O=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)}))}};O=l([c(0,(0,t.Inject)(t.Injector)),c(1,m),c(2,t.ICommandService),c(3,T)],O);var k=`@univerjs/rpc`,A=`1.0.0-alpha.7`;function j(){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 M(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 N=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(),this._internalWorker=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=M(t);[[T,{useFactory:()=>new E(n)}],[D],[d,{useClass:f}]].forEach(e=>this._injector.add(e)),this._injector.get(D)}};y(N,`pluginName`,`UNIVER_RPC_MAIN_THREAD_PLUGIN`),y(N,`packageName`,k),y(N,`version`,A),N=l([c(1,(0,t.Inject)(t.Injector)),c(2,t.IConfigService)],N);let P=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(){[[O],[T,{useFactory:()=>new E(j())}],[m,{useClass:h}]].forEach(e=>this._injector.add(e)),this._injector.get(O)}};y(P,`pluginName`,`UNIVER_RPC_WORKER_THREAD_PLUGIN`),y(P,`packageName`,k),y(P,`version`,A),P=l([c(1,(0,t.Inject)(t.Injector)),c(2,t.IConfigService)],P),e.ChannelClient=C,e.ChannelServer=w,e.ChannelService=E,Object.defineProperty(e,"DataSyncPrimaryController",{enumerable:!0,get:function(){return D}}),Object.defineProperty(e,"DataSyncReplicaController",{enumerable:!0,get:function(){return O}}),e.IRPCChannelService=T,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 N}}),Object.defineProperty(e,"UniverRPCWorkerThreadPlugin",{enumerable:!0,get:function(){return P}}),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){this._univerInstanceService=e,this._commandService=t,this._logService=n}whenReady(){return Promise.resolve(!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)],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 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(){this._pendingRequests.clear()}getChannel(e){return{call:(t,n)=>this._disposed?Promise.reject(Error(`[ChannelClient]: client is disposed!`)):this._remoteCall(e,t,n),subscribe:(t,n)=>{if(this._disposed)throw Error(`[ChannelClient]: client is disposed!`);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!`)}}}),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!`)}}}),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}}}},w=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(),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);break;default:break}}_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 T=(0,t.createIdentifier)(`IRPCChannelService`);var E=class{constructor(e){y(this,`_client`,void 0),y(this,`_server`,void 0),this._client=new C(e),this._server=new w(e)}dispose(){this._client.dispose(),this._server.dispose()}requestChannel(e){return this._client.getChannel(e)}registerChannel(e,t){this._server.registerChannel(e,t)}};let D=class extends t.RxDisposable{constructor(e,t,n,r,i){super(),this._injector=e,this._commandService=t,this._univerInstanceService=n,this._rpcChannelService=r,this._remoteSyncService=i,y(this,`_remoteInstanceService`,void 0),y(this,`_syncingUnits`,new Set),y(this,`_syncingMutations`,new Set),y(this,`_syncMutationQueue`,Promise.resolve()),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._remoteInstanceService.createInstance({unitID:r.getUnitId(),type:r.type,snapshot:r.getSnapshot()}),(0,t.toDisposable)(()=>{n||this._syncingUnits.delete(e),!n&&r&&this._remoteInstanceService.disposeInstance({unitID:r.getUnitId()})})}syncUnitMutations(e){let n=this._syncingUnits.has(e);return this._syncingUnits.add(e),(0,t.toDisposable)(()=>{n||this._syncingUnits.delete(e)})}_initRPCChannels(){this._rpcChannelService.registerChannel(u,b(this._remoteSyncService)),this._injector.add([m,{useFactory:()=>x(this._rpcChannelService.requestChannel(p))}]),this._remoteInstanceService=this._injector.get(m)}_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._remoteInstanceService.createInstance({unitID:n.getUnitId(),type:t.UniverInstanceType.UNIVER_SHEET,snapshot:n.getSnapshot()})}),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{this._syncingUnits.delete(e.getUnitId()),this._remoteInstanceService.disposeInstance({unitID:e.getUnitId()})}),this.disposeWithMe(this._commandService.onCommandExecuted((e,n)=>{let{type:r,params:i,id:a}=e,o=(i==null?void 0:i.unitId)||``;if(r===t.CommandType.MUTATION&&(!o||this._syncingUnits.has(o))&&!(n!=null&&n.fromSync)&&this._syncingMutations.has(a)){let t=()=>this._remoteInstanceService.syncMutation({mutationInfo:e},n);this._syncMutationQueue=this._syncMutationQueue.then(t,t).catch(()=>!1)}}))}};D=l([c(0,(0,t.Inject)(t.Injector)),c(1,t.ICommandService),c(2,t.IUniverInstanceService),c(3,T),c(4,d)],D);let O=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)}))}};O=l([c(0,(0,t.Inject)(t.Injector)),c(1,m),c(2,t.ICommandService),c(3,T)],O);var k=`@univerjs/rpc`,A=`1.0.0-beta.0`;function j(){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 M(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 N=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=M(t);[[T,{useFactory:()=>new E(n)}],[D],[d,{useClass:f}]].forEach(e=>this._injector.add(e)),this._injector.get(D)}};y(N,`pluginName`,`UNIVER_RPC_MAIN_THREAD_PLUGIN`),y(N,`packageName`,k),y(N,`version`,A),N=l([c(1,(0,t.Inject)(t.Injector)),c(2,t.IConfigService)],N);let P=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(){[[O],[T,{useFactory:()=>new E(j())}],[m,{useClass:h}]].forEach(e=>this._injector.add(e)),this._injector.get(O)}};y(P,`pluginName`,`UNIVER_RPC_WORKER_THREAD_PLUGIN`),y(P,`packageName`,k),y(P,`version`,A),P=l([c(1,(0,t.Inject)(t.Injector)),c(2,t.IConfigService)],P),e.ChannelClient=C,e.ChannelServer=w,e.ChannelService=E,Object.defineProperty(e,"DataSyncPrimaryController",{enumerable:!0,get:function(){return D}}),Object.defineProperty(e,"DataSyncReplicaController",{enumerable:!0,get:function(){return O}}),e.IRPCChannelService=T,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 N}}),Object.defineProperty(e,"UniverRPCWorkerThreadPlugin",{enumerable:!0,get:function(){return P}}),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.0-alpha.7",
3
+ "version": "1.0.0-beta.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.0-alpha.7"
55
+ "@univerjs/core": "1.0.0-beta.0"
56
56
  },
57
57
  "devDependencies": {
58
58
  "rxjs": "^7.8.2",
59
59
  "typescript": "^6.0.3",
60
60
  "vitest": "^4.1.10",
61
- "@univerjs-infra/shared": "1.0.0-alpha.7"
61
+ "@univerjs-infra/shared": "1.0.0-beta.0"
62
62
  },
63
63
  "scripts": {
64
64
  "test": "vitest run",