@casual-simulation/aux-vm-client 3.1.12 → 3.1.14-alpha.3661157217

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.
@@ -1,6 +1,5 @@
1
- import { AuxVM, BaseSimulation, LoginManager, AuxConfig } from '@casual-simulation/aux-vm';
1
+ import { AuxVM, BaseSimulation, LoginManager } from '@casual-simulation/aux-vm';
2
2
  import { RemoteSimulation } from './RemoteSimulation';
3
- import { AuxPartitionConfig } from '@casual-simulation/aux-common';
4
3
  import { PortalManager } from '@casual-simulation/aux-vm/managers';
5
4
  /**
6
5
  * Defines a class that provides an implementation of RemoteSimulation.
@@ -10,7 +9,7 @@ export declare class RemoteSimulationImpl extends BaseSimulation implements Remo
10
9
  private _portals;
11
10
  get login(): LoginManager;
12
11
  get portals(): PortalManager;
13
- constructor(id: string, config: AuxConfig['config'], partitions: AuxPartitionConfig, createVm: (config: AuxConfig) => AuxVM);
12
+ constructor(id: string, vm: AuxVM);
14
13
  protected _beforeVmInit(): void;
15
14
  }
16
15
  //# sourceMappingURL=RemoteSimulationImpl.d.ts.map
@@ -4,8 +4,8 @@ import { PortalManager } from '@casual-simulation/aux-vm/managers';
4
4
  * Defines a class that provides an implementation of RemoteSimulation.
5
5
  */
6
6
  export class RemoteSimulationImpl extends BaseSimulation {
7
- constructor(id, config, partitions, createVm) {
8
- super(id, config, partitions, createVm);
7
+ constructor(id, vm) {
8
+ super(id, vm);
9
9
  this._login = new LoginManager(this._vm);
10
10
  }
11
11
  get login() {
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteSimulationImpl.js","sourceRoot":"","sources":["RemoteSimulationImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,cAAc,EACd,YAAY,GAEf,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,oBACT,SAAQ,cAAc;IActB,YACI,EAAU,EACV,MAA2B,EAC3B,UAA8B,EAC9B,QAAsC;QAEtC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAhBD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAYS,aAAa;QACnB,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;CACJ"}
1
+ {"version":3,"file":"RemoteSimulationImpl.js","sourceRoot":"","sources":["RemoteSimulationImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,cAAc,EACd,YAAY,GAEf,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,oBACT,SAAQ,cAAc;IActB,YAAY,EAAU,EAAE,EAAS;QAC7B,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAXD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAOS,aAAa;QACnB,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/aux-vm-client",
3
- "version": "3.1.12",
3
+ "version": "3.1.14-alpha.3661157217",
4
4
  "description": "A set of utilities required to securely run an AUX as a client.",
5
5
  "keywords": [
6
6
  "aux"
@@ -39,18 +39,19 @@
39
39
  "url": "https://github.com/casual-simulation/casualos/issues"
40
40
  },
41
41
  "dependencies": {
42
- "@casual-simulation/aux-common": "^3.1.12",
43
- "@casual-simulation/aux-vm": "^3.1.12",
44
- "@casual-simulation/causal-tree-client-apiary": "^3.1.11",
45
- "@casual-simulation/causal-tree-client-websocket": "^3.1.11",
46
- "@casual-simulation/causal-trees": "^3.1.11",
47
- "@casual-simulation/crypto": "^3.1.11",
48
- "@casual-simulation/timesync": "^3.1.11",
49
- "@casual-simulation/websocket": "^3.1.11",
42
+ "@casual-simulation/aux-common": "^3.1.14-alpha.3661157217",
43
+ "@casual-simulation/aux-vm": "^3.1.14-alpha.3661157217",
44
+ "@casual-simulation/causal-tree-client-apiary": "^3.1.14-alpha.3661157217",
45
+ "@casual-simulation/causal-tree-client-websocket": "^3.1.14-alpha.3661157217",
46
+ "@casual-simulation/causal-trees": "^3.1.14-alpha.3661157217",
47
+ "@casual-simulation/crypto": "^3.1.14-alpha.3661157217",
48
+ "@casual-simulation/timesync": "^3.1.14-alpha.3661157217",
49
+ "@casual-simulation/websocket": "^3.1.14-alpha.3661157217",
50
50
  "axios": "0.25.0",
51
+ "comlink": "^4.0.1",
51
52
  "lodash": "4.17.21",
52
53
  "rxjs": "7.5.7",
53
54
  "uuid": "^8.3.2"
54
55
  },
55
- "gitHead": "1f60da8b2c3916df7491d3f234736572453b7ec1"
56
+ "gitHead": "1a4688a5c80f36121fd0458346f944ea81fec2dd"
56
57
  }
@@ -1,4 +1,4 @@
1
- import { LocalActions, PartitionConfig, AuxPartition } from '@casual-simulation/aux-common';
1
+ import { LocalActions, PartitionConfig, AuxPartition, AuxRuntime } from '@casual-simulation/aux-common';
2
2
  import { AuxConfig, BaseAuxChannel, AuxUser, AuxChannelOptions } from '@casual-simulation/aux-vm';
3
3
  import { TimeSyncController } from '@casual-simulation/timesync';
4
4
  export interface RemoteAuxChannelOptions extends AuxChannelOptions {
@@ -9,5 +9,6 @@ export declare class RemoteAuxChannel extends BaseAuxChannel {
9
9
  protected _createTimeSyncController(): TimeSyncController;
10
10
  protected _handleError(error: any): void;
11
11
  protected _handleLocalEvents(e: LocalActions[]): void;
12
+ protected _createSubChannel(user: AuxUser, runtime: AuxRuntime, config: AuxConfig): BaseAuxChannel;
12
13
  }
13
14
  //# sourceMappingURL=RemoteAuxChannel.d.ts.map
@@ -49,5 +49,10 @@ export class RemoteAuxChannel extends BaseAuxChannel {
49
49
  }
50
50
  super._handleLocalEvents(e);
51
51
  }
52
+ _createSubChannel(user, runtime, config) {
53
+ const channel = new RemoteAuxChannel(user, config, this._options);
54
+ channel._runtime = runtime;
55
+ return channel;
56
+ }
52
57
  }
53
58
  //# sourceMappingURL=RemoteAuxChannel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteAuxChannel.js","sourceRoot":"","sources":["RemoteAuxChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteAuxChannel.js","sourceRoot":"","sources":["RemoteAuxChannel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAIH,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,+BAA+B,EAC/B,sCAAsC,EACtC,wBAAwB,EACxB,iBAAiB,EACjB,iCAAiC,EACjC,kBAAkB,EAClB,8BAA8B,GAEjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEH,cAAc,GAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,kBAAkB,EAClB,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,wBAAwB,GAC3B,MAAM,eAAe,CAAC;AAMvB,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAChD,YACI,IAAa,EACb,MAAiB,EACjB,OAAgC;QAEhC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAEe,gBAAgB,CAC5B,MAAuB;;YAEvB,OAAO,MAAM,kBAAkB,CAC3B,MAAM,EACN,qBAAqB,EACrB,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EACxD,CAAC,MAAM,EAAE,EAAE,CAAC,+BAA+B,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAC9D,CAAC,MAAM,EAAE,EAAE,CAAC,+BAA+B,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAC9D,CAAC,MAAM,EAAE,EAAE,CACP,sCAAsC,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAC7D,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACtC,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAC5C,CAAC,MAAM,EAAE,EAAE,CAAC,iCAAiC,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAChE,CAAC,MAAM,EAAE,EAAE,CAAC,+BAA+B,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAC9D,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACtC,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EACvD,CAAC,MAAM,EAAE,EAAE,CAAC,8BAA8B,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAChE,CAAC;QACN,CAAC;KAAA;IAES,yBAAyB;;QAC/B,IAAI,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,0CAAE,QAAQ,EAAE;YAChC,OAAO,CACH,MAAA,wBAAwB,CACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAC5B,IAAI,CAAC,IAAI,CACZ,mCAAI,KAAK,CAAC,yBAAyB,EAAE,CACzC,CAAC;SACL;QACD,OAAO,KAAK,CAAC,yBAAyB,EAAE,CAAC;IAC7C,CAAC;IAES,YAAY,CAAC,KAAU;QAC7B,IAAI,KAAK,YAAY,KAAK,EAAE;YACxB,KAAK,CAAC,YAAY,CAAC;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;aAC5B,CAAC,CAAC;SACN;aAAM;YACH,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC7B;IACL,CAAC;IAES,kBAAkB,CAAC,CAAiB;QAC1C,KAAK,IAAI,KAAK,IAAI,CAAC,EAAE;YACjB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;gBACpC,KAAK,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,iBAAiB,CAC1C,IAAI,CAAC,WAAW,CACnB,EAAE;oBACC,IAAI,eAAe,IAAI,SAAS,EAAE;wBAC9B,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;qBAC3C;iBACJ;aACJ;SACJ;QACD,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAES,iBAAiB,CACvB,IAAa,EACb,OAAmB,EACnB,MAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC3B,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
@@ -0,0 +1,84 @@
1
+ import { LocalActions, StateUpdatedEvent, RuntimeStateVersion, BotAction } from '@casual-simulation/aux-common';
2
+ import { AuxUser } from '@casual-simulation/aux-vm/AuxUser';
3
+ import { AuxChannel, AuxChannelErrorType, AuxSubVM, AuxVM, ChannelActionResult } from '@casual-simulation/aux-vm/vm';
4
+ import { DeviceAction, StatusUpdate } from '@casual-simulation/causal-trees';
5
+ import { Observable } from 'rxjs';
6
+ import { Remote } from 'comlink';
7
+ import { StoredAux } from '@casual-simulation/aux-vm/StoredAux';
8
+ /**
9
+ * Defines a VM that is able to wrap a remote aux channel.
10
+ */
11
+ export declare class RemoteAuxVM implements AuxVM {
12
+ private _localEvents;
13
+ private _deviceEvents;
14
+ private _connectionStateChanged;
15
+ private _stateUpdated;
16
+ private _versionUpdated;
17
+ private _onError;
18
+ private _subVMAdded;
19
+ private _subVMRemoved;
20
+ private _subVMMap;
21
+ private _proxy;
22
+ closed: boolean;
23
+ /**
24
+ * The ID of the simulation.
25
+ */
26
+ id: string;
27
+ /**
28
+ * Creates a new Simulation VM.
29
+ */
30
+ constructor(channel: Remote<AuxChannel>);
31
+ get subVMAdded(): Observable<AuxSubVM>;
32
+ get subVMRemoved(): Observable<AuxSubVM>;
33
+ get connectionStateChanged(): Observable<StatusUpdate>;
34
+ get onError(): Observable<AuxChannelErrorType>;
35
+ /**
36
+ * Initaializes the VM.
37
+ */
38
+ init(): Promise<void>;
39
+ private _init;
40
+ /**
41
+ * The observable list of events that should be produced locally.
42
+ */
43
+ get localEvents(): Observable<LocalActions[]>;
44
+ get deviceEvents(): Observable<DeviceAction[]>;
45
+ /**
46
+ * The observable list of bot state updates from this simulation.
47
+ */
48
+ get stateUpdated(): Observable<StateUpdatedEvent>;
49
+ get versionUpdated(): Observable<RuntimeStateVersion>;
50
+ setUser(user: AuxUser): Promise<void>;
51
+ setGrant(grant: string): Promise<void>;
52
+ /**
53
+ * Sends the given list of events to the simulation.
54
+ * @param events The events to send to the simulation.
55
+ */
56
+ sendEvents(events: BotAction[]): Promise<void>;
57
+ /**
58
+ * Executes a shout with the given event name on the given bot IDs with the given argument.
59
+ * Also dispatches any actions and errors that occur.
60
+ * Returns the results from the event.
61
+ * @param eventName The name of the event.
62
+ * @param botIds The IDs of the bots that the shout is being sent to.
63
+ * @param arg The argument to include in the shout.
64
+ */
65
+ shout(eventName: string, botIds?: string[], arg?: any): Promise<ChannelActionResult>;
66
+ formulaBatch(formulas: string[]): Promise<void>;
67
+ forkAux(newId: string): Promise<void>;
68
+ exportBots(botIds: string[]): Promise<StoredAux>;
69
+ /**
70
+ * Exports the causal tree for the simulation.
71
+ */
72
+ export(): Promise<StoredAux>;
73
+ getTags(): Promise<string[]>;
74
+ /**
75
+ * Gets a new endpoint for the aux channel.
76
+ * Can then be used with a ConnectableAuxVM.
77
+ */
78
+ createEndpoint(): Promise<MessagePort>;
79
+ unsubscribe(): void;
80
+ protected _createSubVM(channel: Remote<AuxChannel>): AuxVM;
81
+ private _handleAddedSubChannel;
82
+ private _handleRemovedSubChannel;
83
+ }
84
+ //# sourceMappingURL=RemoteAuxVM.d.ts.map
@@ -0,0 +1,199 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { remapProgressPercent, } from '@casual-simulation/causal-trees';
11
+ import { Subject } from 'rxjs';
12
+ import { proxy, createEndpoint } from 'comlink';
13
+ /**
14
+ * Defines a VM that is able to wrap a remote aux channel.
15
+ */
16
+ export class RemoteAuxVM {
17
+ /**
18
+ * Creates a new Simulation VM.
19
+ */
20
+ constructor(channel) {
21
+ this._localEvents = new Subject();
22
+ this._deviceEvents = new Subject();
23
+ this._stateUpdated = new Subject();
24
+ this._versionUpdated = new Subject();
25
+ this._connectionStateChanged = new Subject();
26
+ this._onError = new Subject();
27
+ this._subVMAdded = new Subject();
28
+ this._subVMRemoved = new Subject();
29
+ this._subVMMap = new Map();
30
+ this._proxy = channel;
31
+ }
32
+ get subVMAdded() {
33
+ return this._subVMAdded;
34
+ }
35
+ get subVMRemoved() {
36
+ return this._subVMRemoved;
37
+ }
38
+ get connectionStateChanged() {
39
+ return this._connectionStateChanged;
40
+ }
41
+ get onError() {
42
+ return this._onError;
43
+ }
44
+ /**
45
+ * Initaializes the VM.
46
+ */
47
+ init() {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ return yield this._init();
50
+ });
51
+ }
52
+ _init() {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ let statusMapper = remapProgressPercent(0.2, 1);
55
+ return yield this._proxy.init(proxy((events) => this._localEvents.next(events)), proxy((events) => this._deviceEvents.next(events)), proxy((state) => this._stateUpdated.next(state)), proxy((version) => this._versionUpdated.next(version)), proxy((state) => this._connectionStateChanged.next(statusMapper(state))), proxy((err) => this._onError.next(err)), proxy((channel) => this._handleAddedSubChannel(channel)), proxy((id) => this._handleRemovedSubChannel(id)));
56
+ });
57
+ }
58
+ /**
59
+ * The observable list of events that should be produced locally.
60
+ */
61
+ get localEvents() {
62
+ return this._localEvents;
63
+ }
64
+ get deviceEvents() {
65
+ return this._deviceEvents;
66
+ }
67
+ /**
68
+ * The observable list of bot state updates from this simulation.
69
+ */
70
+ get stateUpdated() {
71
+ return this._stateUpdated;
72
+ }
73
+ get versionUpdated() {
74
+ return this._versionUpdated;
75
+ }
76
+ setUser(user) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ if (!this._proxy)
79
+ return null;
80
+ return yield this._proxy.setUser(user);
81
+ });
82
+ }
83
+ setGrant(grant) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ if (!this._proxy)
86
+ return null;
87
+ return yield this._proxy.setGrant(grant);
88
+ });
89
+ }
90
+ /**
91
+ * Sends the given list of events to the simulation.
92
+ * @param events The events to send to the simulation.
93
+ */
94
+ sendEvents(events) {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ if (!this._proxy)
97
+ return null;
98
+ return yield this._proxy.sendEvents(events);
99
+ });
100
+ }
101
+ /**
102
+ * Executes a shout with the given event name on the given bot IDs with the given argument.
103
+ * Also dispatches any actions and errors that occur.
104
+ * Returns the results from the event.
105
+ * @param eventName The name of the event.
106
+ * @param botIds The IDs of the bots that the shout is being sent to.
107
+ * @param arg The argument to include in the shout.
108
+ */
109
+ shout(eventName, botIds, arg) {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ if (!this._proxy)
112
+ return null;
113
+ return yield this._proxy.shout(eventName, botIds, arg);
114
+ });
115
+ }
116
+ formulaBatch(formulas) {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ if (!this._proxy)
119
+ return null;
120
+ return yield this._proxy.formulaBatch(formulas);
121
+ });
122
+ }
123
+ forkAux(newId) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ if (!this._proxy)
126
+ return null;
127
+ return yield this._proxy.forkAux(newId);
128
+ });
129
+ }
130
+ exportBots(botIds) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ if (!this._proxy)
133
+ return null;
134
+ return yield this._proxy.exportBots(botIds);
135
+ });
136
+ }
137
+ /**
138
+ * Exports the causal tree for the simulation.
139
+ */
140
+ export() {
141
+ return __awaiter(this, void 0, void 0, function* () {
142
+ if (!this._proxy)
143
+ return null;
144
+ return yield this._proxy.export();
145
+ });
146
+ }
147
+ getTags() {
148
+ return __awaiter(this, void 0, void 0, function* () {
149
+ if (!this._proxy)
150
+ return null;
151
+ return yield this._proxy.getTags();
152
+ });
153
+ }
154
+ /**
155
+ * Gets a new endpoint for the aux channel.
156
+ * Can then be used with a ConnectableAuxVM.
157
+ */
158
+ createEndpoint() {
159
+ return this._proxy[createEndpoint]();
160
+ }
161
+ unsubscribe() {
162
+ if (this.closed) {
163
+ return;
164
+ }
165
+ this.closed = true;
166
+ this._proxy = null;
167
+ this._connectionStateChanged.unsubscribe();
168
+ this._connectionStateChanged = null;
169
+ this._localEvents.unsubscribe();
170
+ this._localEvents = null;
171
+ }
172
+ _createSubVM(channel) {
173
+ return new RemoteAuxVM(channel);
174
+ }
175
+ _handleAddedSubChannel(subChannel) {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ const { id, user } = yield subChannel.getInfo();
178
+ const channel = (yield subChannel.getChannel());
179
+ const subVM = {
180
+ id,
181
+ user,
182
+ vm: this._createSubVM(channel),
183
+ channel,
184
+ };
185
+ this._subVMMap.set(id, subVM);
186
+ this._subVMAdded.next(subVM);
187
+ });
188
+ }
189
+ _handleRemovedSubChannel(channelId) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ const vm = this._subVMMap.get(channelId);
192
+ if (vm) {
193
+ this._subVMMap.delete(channelId);
194
+ this._subVMRemoved.next(vm);
195
+ }
196
+ });
197
+ }
198
+ }
199
+ //# sourceMappingURL=RemoteAuxVM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteAuxVM.js","sourceRoot":"","sources":["RemoteAuxVM.ts"],"names":[],"mappings":";;;;;;;;;AAgBA,OAAO,EAEH,oBAAoB,GAEvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAU,cAAc,EAAE,MAAM,SAAS,CAAC;AAGxD;;GAEG;AACH,MAAM,OAAO,WAAW;IAyBpB;;OAEG;IACH,YAAY,OAA2B;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAkB,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAkB,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAqB,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,EAAuB,CAAC;QAC1D,IAAI,CAAC,uBAAuB,GAAG,IAAI,OAAO,EAAgB,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAuB,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,sBAAsB;QACtB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACG,IAAI;;YACN,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;KAAA;IAEa,KAAK;;YACf,IAAI,YAAY,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACzB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EACjD,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAClD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAChD,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACtD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CACzD,EACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,EACxD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CACnD,CAAC;QACN,CAAC;KAAA;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEK,OAAO,CAAC,IAAa;;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEK,QAAQ,CAAC,KAAa;;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;KAAA;IAED;;;OAGG;IACG,UAAU,CAAC,MAAmB;;YAChC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;KAAA;IAED;;;;;;;OAOG;IACG,KAAK,CACP,SAAiB,EACjB,MAAiB,EACjB,GAAS;;YAET,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;KAAA;IAEK,YAAY,CAAC,QAAkB;;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;KAAA;IAEK,OAAO,CAAC,KAAa;;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;KAAA;IAEK,UAAU,CAAC,MAAgB;;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;KAAA;IAED;;OAEG;IACG,MAAM;;YACR,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,CAAC;KAAA;IAEK,OAAO;;YACT,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvC,CAAC;KAAA;IAED;;;OAGG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;IACzC,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO;SACV;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAES,YAAY,CAAC,OAA2B;QAC9C,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEa,sBAAsB,CAAC,UAAyB;;YAC1D,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,OAAO,GACT,CAAC,MAAM,UAAU,CAAC,UAAU,EAAE,CAAkC,CAAC;YAErE,MAAM,KAAK,GAAG;gBACV,EAAE;gBACF,IAAI;gBACJ,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;gBAC9B,OAAO;aACV,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;KAAA;IAEa,wBAAwB,CAAC,SAAiB;;YACpD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,EAAE,EAAE;gBACJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC/B;QACL,CAAC;KAAA;CACJ"}
package/vm/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './RemoteAuxChannel';
2
+ export * from './RemoteAuxVM';
2
3
  //# sourceMappingURL=index.d.ts.map
package/vm/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './RemoteAuxChannel';
2
+ export * from './RemoteAuxVM';
2
3
  //# sourceMappingURL=index.js.map
package/vm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}