@adminide-stack/extension-api 0.0.20-alpha.97 → 1.0.201-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/connections/jsonrpc2/connection.test.d.ts +1 -0
  2. package/lib/connections/jsonrpc2/connection.test.js +452 -0
  3. package/lib/connections/jsonrpc2/connection.test.js.map +1 -0
  4. package/lib/connections/jsonrpc2/linkedMap.test.d.ts +1 -0
  5. package/lib/connections/jsonrpc2/linkedMap.test.js +62 -0
  6. package/lib/connections/jsonrpc2/linkedMap.test.js.map +1 -0
  7. package/lib/connections/proxy/proxy.js +0 -1
  8. package/lib/connections/proxy/proxy.js.map +1 -1
  9. package/lib/connections/proxy/proxy.test.d.ts +1 -0
  10. package/lib/connections/proxy/proxy.test.js +64 -0
  11. package/lib/connections/proxy/proxy.test.js.map +1 -0
  12. package/lib/connections/remote-rpc/browser-server-rpc.test.d.ts +1 -0
  13. package/lib/connections/remote-rpc/browser-server-rpc.test.js +323 -0
  14. package/lib/connections/remote-rpc/browser-server-rpc.test.js.map +1 -0
  15. package/lib/core/expr/evaluator.test.d.ts +1 -0
  16. package/lib/core/expr/evaluator.test.js +52 -0
  17. package/lib/core/expr/evaluator.test.js.map +1 -0
  18. package/lib/interfaces/context.d.ts +1 -1
  19. package/lib/interfaces/ext-services/panel-view-registry.d.ts +1 -0
  20. package/lib/interfaces/generated-models.d.ts +636 -255
  21. package/lib/interfaces/generated-models.js +356 -16
  22. package/lib/interfaces/generated-models.js.map +1 -1
  23. package/lib/interfaces/graphql.d.ts +1 -1
  24. package/lib/interfaces/platform-context.d.ts +1 -1
  25. package/lib/protocol/rpc-protocol.test.d.ts +1 -0
  26. package/lib/protocol/rpc-protocol.test.js +171 -0
  27. package/lib/protocol/rpc-protocol.test.js.map +1 -0
  28. package/lib/utils/rxjs/combineLatestOrDefault.js +4 -4
  29. package/lib/utils/rxjs/combineLatestOrDefault.js.map +1 -1
  30. package/lib/utils/rxjs/combineLatestOrDefault.test.d.ts +1 -0
  31. package/lib/utils/rxjs/combineLatestOrDefault.test.js +52 -0
  32. package/lib/utils/rxjs/combineLatestOrDefault.test.js.map +1 -0
  33. package/lib/worker-lib/webWorkerLink.d.ts +2 -1
  34. package/lib/worker-lib/webWorkerLink.js +4 -4
  35. package/lib/worker-lib/webWorkerLink.js.map +1 -1
  36. package/package.json +28 -24
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const assert = require("assert");
13
+ const rxjs_1 = require("rxjs");
14
+ const operators_1 = require("rxjs/operators");
15
+ const connection_1 = require("../jsonrpc2/connection");
16
+ const test_helper_1 = require("../jsonrpc2/test-helper");
17
+ const proxy_1 = require("./proxy");
18
+ // import 'jest';
19
+ function createTestProxy(handler) {
20
+ Object.setPrototypeOf(handler, null);
21
+ const [clientTransports, serverTransports] = test_helper_1.createMessageTransports();
22
+ const client = connection_1.createConnection(clientTransports);
23
+ const server = connection_1.createConnection(serverTransports);
24
+ const proxy = proxy_1.createProxy(client, 'prefix');
25
+ proxy_1.handleRequests(server, 'prefix', handler);
26
+ client.listen();
27
+ server.listen();
28
+ return proxy;
29
+ }
30
+ describe('Proxy', () => {
31
+ describe('proxies calls', () => {
32
+ const proxy = createTestProxy({
33
+ $a: (n) => n + 1,
34
+ $b: (n) => Promise.resolve(n + 2),
35
+ $c: (m, n) => m + n,
36
+ $d: (...args) => args.reduce((sum, n) => sum + n, 0),
37
+ $e: () => Promise.reject('e'),
38
+ $f: () => {
39
+ throw new Error('f');
40
+ },
41
+ });
42
+ it('to functions', () => __awaiter(void 0, void 0, void 0, function* () { return assert.strictEqual(yield proxy.$a(1), 2); }));
43
+ it('to async functions', () => __awaiter(void 0, void 0, void 0, function* () { return assert.strictEqual(yield proxy.$b(1), 3); }));
44
+ it('with multiple arguments ', () => __awaiter(void 0, void 0, void 0, function* () { return assert.strictEqual(yield proxy.$c(2, 3), 5); }));
45
+ it('with variadic arguments ', () => __awaiter(void 0, void 0, void 0, function* () { return assert.strictEqual(yield proxy.$d(...[2, 3, 4]), 9); }));
46
+ it('to functions returning a rejected promise', () => __awaiter(void 0, void 0, void 0, function* () { return assert.rejects(() => proxy.$e()); }));
47
+ it('to functions throwing an error', () => __awaiter(void 0, void 0, void 0, function* () { return assert.rejects(() => proxy.$f()); }));
48
+ });
49
+ it('proxies Observables', () => __awaiter(void 0, void 0, void 0, function* () {
50
+ const proxy = createTestProxy({
51
+ $observe: (...args) => new rxjs_1.Observable(observer => {
52
+ for (const arg of args) {
53
+ observer.next(arg + 1);
54
+ }
55
+ observer.complete();
56
+ }),
57
+ });
58
+ assert.deepStrictEqual(yield proxy
59
+ .$observe(1, 2, 3, 4)
60
+ .pipe(operators_1.bufferCount(4))
61
+ .toPromise(), [2, 3, 4, 5]);
62
+ }));
63
+ });
64
+ //# sourceMappingURL=proxy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.test.js","sourceRoot":"","sources":["../../../src/connections/proxy/proxy.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ require("reflect-metadata");
13
+ const abort_controller_1 = require("abort-controller");
14
+ const mock_socket_1 = require("mock-socket");
15
+ const connection_1 = require("../jsonrpc2/connection");
16
+ const assert = require("assert");
17
+ const browser_remote_rpc_1 = require("./browser-remote-rpc");
18
+ const utils_1 = require("../../utils");
19
+ const extension_module_server_1 = require("@workbench-stack/extension-module-server");
20
+ const rpc_protocol_1 = require("../../protocol/rpc-protocol");
21
+ const event_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/event");
22
+ const rpc_logger_1 = require("../../protocol/rpc-logger");
23
+ const test_helper_1 = require("../jsonrpc2/test-helper");
24
+ const proxy_1 = require("../proxy/proxy");
25
+ // import 'jest';
26
+ const protocol_1 = require("../../protocol");
27
+ const buffer_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/buffer");
28
+ const consoleLogger = {
29
+ error(message) {
30
+ console.error(message);
31
+ },
32
+ warn(message) {
33
+ console.warn(message);
34
+ },
35
+ info(message) {
36
+ // tslint:disable-next-line:no-console
37
+ console.info(message);
38
+ },
39
+ log(message) {
40
+ // tslint:disable-next-line:no-console
41
+ console.log(message);
42
+ },
43
+ };
44
+ class MessagePassingProtocol {
45
+ constructor(hostId = 0 /* ServerExtHost */) {
46
+ this._onNativeMessage = new event_1.Emitter();
47
+ this.onMessage = this._onNativeMessage.event;
48
+ this._localHostId = hostId;
49
+ }
50
+ setPair(other) {
51
+ this._pair = other;
52
+ }
53
+ send(buffer, hostIdentifier) {
54
+ console.log('--send From Ext', hostIdentifier);
55
+ const headerBuf = buffer_1.VSBuffer.alloc(2);
56
+ // add destination host id
57
+ headerBuf.writeUInt8(hostIdentifier, 0);
58
+ // add sender host id
59
+ headerBuf.writeUInt8(this._localHostId, 1);
60
+ const cocatBuf = buffer_1.VSBuffer.concat([headerBuf, buffer]);
61
+ process.nextTick(() => {
62
+ this._pair._onNativeMessage.fire(cocatBuf);
63
+ });
64
+ }
65
+ }
66
+ class MultiMessagePassingProtocol {
67
+ constructor(hostId = 1 /* ServerMainThread */) {
68
+ this._wsProtocol = new extension_module_server_1.WsProtocol();
69
+ this._onNativeMessage = new event_1.Emitter();
70
+ this._onMessage = new event_1.EventMultiplexer();
71
+ this.onMessage = this._onMessage.event;
72
+ this._localHostId = hostId;
73
+ this._onMessage.add(this._onNativeMessage.event);
74
+ this._onMessage.add(this._wsProtocol.onMessage);
75
+ }
76
+ connect(socket) {
77
+ this._wsProtocol.connect(socket);
78
+ }
79
+ setPair(other) {
80
+ this._pair = other;
81
+ }
82
+ send(buffer, hostIdentifier) {
83
+ const transportType = this.getRequestTypeRouting(hostIdentifier);
84
+ const headerBuf = buffer_1.VSBuffer.alloc(2);
85
+ // add destination host id
86
+ headerBuf.writeUInt8(hostIdentifier, 0);
87
+ // add sender host id
88
+ headerBuf.writeUInt8(this._localHostId, 1);
89
+ const cocatBuf = buffer_1.VSBuffer.concat([headerBuf, buffer]);
90
+ this._send(cocatBuf, transportType);
91
+ }
92
+ _send(buffer, transportType) {
93
+ console.log('---_send fromMulitp transportType websocket', transportType === 1 /* WebSocket */);
94
+ if (transportType === 1 /* WebSocket */) {
95
+ this.webSend(buffer);
96
+ }
97
+ else {
98
+ this.nativeSend(buffer);
99
+ }
100
+ }
101
+ forward(buffer, hostIdentifier) {
102
+ console.log('---forward the request to hostId', hostIdentifier);
103
+ const transportType = this.getRequestTypeRouting(hostIdentifier);
104
+ if (transportType === 1 /* WebSocket */) {
105
+ this._send(buffer, 1 /* WebSocket */);
106
+ }
107
+ else {
108
+ this._send(buffer, 0 /* Socket */);
109
+ }
110
+ }
111
+ webSend(buffer) {
112
+ return this._wsProtocol.send(buffer);
113
+ }
114
+ nativeSend(buffer) {
115
+ process.nextTick(() => {
116
+ this._pair._onNativeMessage.fire(buffer);
117
+ });
118
+ }
119
+ getRequestTypeRouting(hostIdentifier) {
120
+ if (hostIdentifier === 0 /* ServerExtHost */) {
121
+ return 0 /* Socket */;
122
+ }
123
+ else if (hostIdentifier === 2 /* BrowserExtHost */) {
124
+ return 1 /* WebSocket */;
125
+ }
126
+ else {
127
+ return 0 /* Socket */;
128
+ }
129
+ }
130
+ }
131
+ describe('Websocket RPC', () => {
132
+ let fakeURL;
133
+ let mockServer;
134
+ let socket1;
135
+ let delegate;
136
+ let bProxyFromA;
137
+ let bProdyFromC;
138
+ let aProxyFromB;
139
+ let aProxyFromC;
140
+ let cProxyFromA;
141
+ class AClass {
142
+ $m(a1, a2) {
143
+ return Promise.resolve(delegate.call(null, a1, a2));
144
+ }
145
+ }
146
+ class BClass {
147
+ $n(a1, a2) {
148
+ return Promise.resolve(delegate.call(null, a1, a2));
149
+ }
150
+ }
151
+ class CClass {
152
+ $o(a1, a2) {
153
+ return Promise.resolve(delegate.call(null, a1, a2));
154
+ }
155
+ }
156
+ beforeEach((done) => {
157
+ fakeURL = 'ws://localhost:8080';
158
+ mockServer = new mock_socket_1.Server(fakeURL);
159
+ let b_protocol = new browser_remote_rpc_1.BrowserRemoteRPC();
160
+ b_protocol.connect(fakeURL, () => {
161
+ socket1 = new mock_socket_1.WebSocket(fakeURL);
162
+ socket1.binaryType = 'arraybuffer';
163
+ return socket1;
164
+ });
165
+ mockServer.on('connection', socket => {
166
+ console.log('---SOCKET MOCK SErver', socket);
167
+ let a_protocol = new MultiMessagePassingProtocol();
168
+ a_protocol.connect(socket);
169
+ let c_protocol = new MessagePassingProtocol();
170
+ c_protocol.setPair(a_protocol);
171
+ a_protocol.setPair(c_protocol);
172
+ let A = new rpc_protocol_1.RPCProtocol(a_protocol, 1 /* ServerMainThread */, new rpc_logger_1.RPCLogger(), null);
173
+ let B = new rpc_protocol_1.RPCProtocol(b_protocol, 2 /* BrowserExtHost */, new rpc_logger_1.RPCLogger(), null);
174
+ let C = new rpc_protocol_1.RPCProtocol(c_protocol, 0 /* ServerExtHost */, new rpc_logger_1.RPCLogger(), null);
175
+ const bIdentifier = new protocol_1.ProxyIdentifier(false, 'bb', 2 /* BrowserExtHost */);
176
+ const bInstance = new BClass();
177
+ const aIdentifier = new protocol_1.ProxyIdentifier(false, 'aa', 1 /* ServerMainThread */);
178
+ const aInstance = new AClass();
179
+ const cIdentifer = new protocol_1.ProxyIdentifier(false, 'cc', 0 /* ServerExtHost */);
180
+ const cInstance = new CClass();
181
+ B.set(bIdentifier, bInstance);
182
+ A.set(aIdentifier, aInstance);
183
+ C.set(cIdentifer, cInstance);
184
+ bProxyFromA = A.getProxy(bIdentifier);
185
+ aProxyFromC = C.getProxy(aIdentifier);
186
+ aProxyFromB = B.getProxy(aIdentifier);
187
+ cProxyFromA = A.getProxy(cIdentifer);
188
+ bProdyFromC = C.getProxy(bIdentifier);
189
+ cProxyFromA = A.getProxy(cIdentifer);
190
+ done();
191
+ });
192
+ });
193
+ afterEach(() => {
194
+ socket1.close();
195
+ mockServer.close();
196
+ });
197
+ test('simple call C -> A', function (done) {
198
+ delegate = (a1, a2) => a1 + a2;
199
+ aProxyFromC.$m(4, 1).then((res) => {
200
+ assert.equal(res, 5);
201
+ done();
202
+ }, done.fail);
203
+ });
204
+ test('simple call B -> A', function (done) {
205
+ delegate = (a1, a2) => a1 + a2;
206
+ aProxyFromB.$m(4, 1).then((res) => {
207
+ assert.equal(res, 5);
208
+ done();
209
+ }, done.fail);
210
+ });
211
+ test('simple call C -> B', function (done) {
212
+ delegate = (a1, a2) => a1 + a2;
213
+ bProdyFromC.$n(4, 1).then((res) => {
214
+ assert.equal(res, 5);
215
+ done();
216
+ }, done.fail);
217
+ });
218
+ test('simple call A -> C', function (done) {
219
+ delegate = (a1, a2) => a1 + a2;
220
+ cProxyFromA.$o(4, 1).then((res) => {
221
+ assert.equal(res, 5);
222
+ done();
223
+ }, done.fail);
224
+ });
225
+ test('test buffer', function () {
226
+ const b1 = Buffer.allocUnsafe(2);
227
+ const b2 = Buffer.allocUnsafe(1);
228
+ b1.writeUInt8(10, 0);
229
+ b1.writeUInt8(99, 1);
230
+ b2.writeUInt8(20, 0);
231
+ const buf = Buffer.concat([b1, b2]);
232
+ const a1 = buf.readUInt8(0);
233
+ // const bufNew = buf.slice(3);
234
+ const a2 = buf.readUInt8(2);
235
+ console.log('---a1', a1);
236
+ console.log('---a2', a2);
237
+ });
238
+ test('simple call A->C', function (done) {
239
+ delegate = (a1, a2) => a1 + a2;
240
+ cProxyFromA.$o(6, 1).then((res) => {
241
+ assert.equal(res, 7);
242
+ done();
243
+ }, done.fail);
244
+ });
245
+ test('works', () => {
246
+ const result = [];
247
+ const m = new event_1.EventMultiplexer();
248
+ m.event(r => result.push(r));
249
+ const e1 = new event_1.Emitter();
250
+ m.add(e1.event);
251
+ assert.deepEqual(result, []);
252
+ e1.fire(0);
253
+ assert.deepEqual(result, [0]);
254
+ });
255
+ });
256
+ xdescribe('Connection', () => {
257
+ let delegate;
258
+ let aProxy;
259
+ class AClass {
260
+ $m(a1, a2) {
261
+ return Promise.resolve(delegate.call(null, a1, a2));
262
+ }
263
+ }
264
+ class BClass {
265
+ $m(b1, b2) {
266
+ return Promise.resolve(delegate.call(null, b1, b2));
267
+ }
268
+ }
269
+ // Polyfill
270
+ ;
271
+ global.AbortController = abort_controller_1.default;
272
+ let mockServer, socket1;
273
+ const aIdentifier = new protocol_1.ProxyIdentifier(false, 'aa');
274
+ let A, B;
275
+ beforeEach((done) => {
276
+ });
277
+ afterEach(() => {
278
+ socket1.close();
279
+ mockServer.close();
280
+ });
281
+ xtest('handle single request', (done) => __awaiter(void 0, void 0, void 0, function* () {
282
+ const [serverTransports, clientTransports] = test_helper_1.createMessageTransports();
283
+ delegate = (a1, a2) => a1 + a2;
284
+ const server = connection_1.createConnection(serverTransports, consoleLogger);
285
+ proxy_1.handleServerProxyRequest(server, B, aIdentifier);
286
+ server.listen();
287
+ server.onClose(event => done());
288
+ const client = connection_1.createConnection(clientTransports);
289
+ client.listen();
290
+ const signal = new abort_controller_1.default().signal;
291
+ const result = yield client.sendRequest('aa/$m', [4, 1], signal);
292
+ expect(result).toBe(5);
293
+ done();
294
+ }));
295
+ xit('abort undispatched request', (done) => __awaiter(void 0, void 0, void 0, function* () {
296
+ const [serverTransports, clientTransports] = test_helper_1.createMessageTransports();
297
+ const b1 = utils_1.createBarrier();
298
+ const b2 = utils_1.createBarrier();
299
+ delegate = (a1, a2) => a1 + a2;
300
+ const server = connection_1.createConnection(serverTransports, consoleLogger);
301
+ server.onRequest('block', () => __awaiter(void 0, void 0, void 0, function* () {
302
+ b2.done();
303
+ yield b1.wait;
304
+ }));
305
+ // server.onRequest('undispatched', () => {
306
+ // throw new Error('handler should not be called')
307
+ // })
308
+ proxy_1.handleServerProxyRequest(server, B, aIdentifier);
309
+ server.listen();
310
+ const client = connection_1.createConnection(clientTransports);
311
+ client.listen();
312
+ server.onClose(event => done());
313
+ client.sendRequest('block').catch(null);
314
+ yield b2.wait;
315
+ const abortController = new abort_controller_1.default();
316
+ // const result = client.sendRequest('undispatched', ['foo'], abortController.signal)
317
+ const result = client.sendRequest('aa/$m', [4, 1], abortController.signal);
318
+ abortController.abort();
319
+ b1.done();
320
+ yield assert.rejects(result, (err /** : AbortError*/) => err.name === 'AbortError');
321
+ }));
322
+ });
323
+ //# sourceMappingURL=browser-server-rpc.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-server-rpc.test.js","sourceRoot":"","sources":["../../../src/connections/remote-rpc/browser-server-rpc.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const evaluator_1 = require("./evaluator");
4
+ const FIXTURE_CONTEXT = {
5
+ a: 1,
6
+ b: 1,
7
+ c: 2,
8
+ x: 'y',
9
+ o: { k: 'v' },
10
+ array: [7],
11
+ };
12
+ describe('Expression', () => {
13
+ const TESTS = {
14
+ a: 1,
15
+ 'a + b': 2,
16
+ 'a == b': true,
17
+ 'a != b': false,
18
+ 'a + b == c': true,
19
+ x: 'y',
20
+ 'd === false': false,
21
+ 'd !== false': true,
22
+ '!a': false,
23
+ '!!a': true,
24
+ 'a && c': 2,
25
+ 'a || b': 1,
26
+ '(a + b) * 2': 4,
27
+ 'x == "y"': true,
28
+ 'json(o)': '{"k":"v"}',
29
+ // TODO: Support operator precedence. See ./parser.test.ts for a commented-out precedence test case.
30
+ //
31
+ // 'x == "y" || x == "z"': true,
32
+ 'x == "y" && x == "z"': false,
33
+ 'x == "y" && x != "z"': true,
34
+ '`a`': 'a',
35
+ '`${x}`': 'y',
36
+ '`a${x}b`': 'ayb',
37
+ '`_${x}_${a}_${a+b}`': '_y_1_2',
38
+ '`_${`-${x}-`}_`': '_-y-_',
39
+ 'a || isnotdefined': 1,
40
+ 'get(array, 0)': 7,
41
+ 'get(array, 1)': undefined,
42
+ 'get(context, "c")': 2,
43
+ };
44
+ for (const [expression, want] of Object.entries(TESTS)) {
45
+ test(expression, () => {
46
+ const value = evaluator_1.parse(expression).exec(FIXTURE_CONTEXT);
47
+ console.log('--Value---', value, expression, want);
48
+ expect(value).toBe(want);
49
+ });
50
+ }
51
+ });
52
+ //# sourceMappingURL=evaluator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.test.js","sourceRoot":"","sources":["../../../src/core/expr/evaluator.test.ts"],"names":[],"mappings":";;AACA,2CAAmD;AAEnD,MAAM,eAAe,GAAmB;IACpC,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,CAAC;CACb,CAAC;AAGF,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,MAAM,KAAK,GAAG;QACV,CAAC,EAAE,CAAC;QACJ,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,CAAC,EAAE,GAAG;QACN,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,WAAW;QACtB,oGAAoG;QACpG,EAAE;QACF,gCAAgC;QAChC,sBAAsB,EAAE,KAAK;QAC7B,sBAAsB,EAAE,IAAI;QAC5B,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,KAAK;QACjB,qBAAqB,EAAE,QAAQ;QAC/B,iBAAiB,EAAE,OAAO;QAC1B,mBAAmB,EAAE,CAAC;QACtB,eAAe,EAAE,CAAC;QAClB,eAAe,EAAE,SAAS;QAC1B,mBAAmB,EAAE,CAAC;KACzB,CAAC;IACF,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACpD,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;YAClB,MAAM,KAAK,GAAG,iBAAK,CAAU,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAA;KACL;AACL,CAAC,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { DataProxy } from 'apollo-cache';
2
- import { ApolloClient } from 'apollo-client';
2
+ import { ApolloClient } from '@apollo/client';
3
3
  export interface MyContext {
4
4
  cache: DataProxy;
5
5
  getCacheKey: (options: {
@@ -15,6 +15,7 @@ export interface IPanelViewProviderRegistry {
15
15
  readonly providers: Observable<ProvidePanelViewSignature[]>;
16
16
  registerProvider(registrationOptions: PanelViewProviderRegistrationOptions, provider: ProvidePanelViewSignature): Subscription;
17
17
  registerProviders(entries: Entry<PanelViewProviderRegistrationOptions, ProvidePanelViewSignature>[]): Subscription;
18
+ deregisterProvider(deregistrationOptions: PanelViewProviderRegistrationOptions): Subscription;
18
19
  getPanelView(id: string): Observable<(PanelViewWithComponent & PanelViewProviderRegistrationOptions) | null>;
19
20
  getPanelViews(container: typeof ContributableViewContainer): Observable<(PanelViewWithComponent & PanelViewProviderRegistrationOptions)[]>;
20
21
  }