@adminide-stack/extension-api 11.0.1-alpha.0 → 11.0.1-alpha.12
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/connections/jsonrpc2/connection.js +507 -525
- package/lib/connections/jsonrpc2/connection.js.map +1 -0
- package/lib/connections/jsonrpc2/events.js +100 -100
- package/lib/connections/jsonrpc2/events.js.map +1 -0
- package/lib/connections/jsonrpc2/linkedMap.js +248 -246
- package/lib/connections/jsonrpc2/linkedMap.js.map +1 -0
- package/lib/connections/jsonrpc2/messages.js +36 -40
- package/lib/connections/jsonrpc2/messages.js.map +1 -0
- package/lib/connections/jsonrpc2/test-helper.js +35 -21
- package/lib/connections/jsonrpc2/test-helper.js.map +1 -0
- package/lib/connections/jsonrpc2/trace.js +70 -82
- package/lib/connections/jsonrpc2/trace.js.map +1 -0
- package/lib/connections/jsonrpc2/transport.js +56 -56
- package/lib/connections/jsonrpc2/transport.js.map +1 -0
- package/lib/connections/jsonrpc2/transports/webWorker.js +80 -88
- package/lib/connections/jsonrpc2/transports/webWorker.js.map +1 -0
- package/lib/connections/proxy/proxy.js +46 -47
- package/lib/connections/proxy/proxy.js.map +1 -0
- package/lib/connections/remote-rpc/browser-remote-rpc.js +55 -54
- package/lib/connections/remote-rpc/browser-remote-rpc.js.map +1 -0
- package/lib/connections/remote-rpc/rxjs-websockets.js +68 -68
- package/lib/connections/remote-rpc/rxjs-websockets.js.map +1 -0
- package/lib/constants/action-types.js +27 -27
- package/lib/constants/action-types.js.map +1 -0
- package/lib/constants/types.js +7 -7
- package/lib/constants/types.js.map +1 -0
- package/lib/core/expr/evaluator.js +103 -104
- package/lib/core/expr/evaluator.js.map +1 -0
- package/lib/core/expr/lexer.js +366 -361
- package/lib/core/expr/lexer.js.map +1 -0
- package/lib/core/expr/parser.js +228 -217
- package/lib/core/expr/parser.js.map +1 -0
- package/lib/core/types/ext-host-types.js +53 -54
- package/lib/core/types/ext-host-types.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -0
- package/lib/interfaces/contributions/contribution.js +40 -40
- package/lib/interfaces/contributions/contribution.js.map +1 -0
- package/lib/interfaces/ext-services/ext-services.d.ts +2 -2
- package/lib/interfaces/extension-manifest.d.ts +1 -1
- package/lib/interfaces/graphql.js +1 -1
- package/lib/interfaces/graphql.js.map +1 -0
- package/lib/interfaces/model.js +3 -3
- package/lib/interfaces/model.js.map +1 -0
- package/lib/interfaces/text-document.js +76 -77
- package/lib/interfaces/text-document.js.map +1 -0
- package/lib/interfaces/webview/webview.d.ts +1 -1
- package/lib/interfaces/webview/webview.js +3 -3
- package/lib/interfaces/webview/webview.js.map +1 -0
- package/lib/middlewares/extensionController.js +9 -5
- package/lib/middlewares/extensionController.js.map +1 -0
- package/lib/protocol/client.protocol.js +2 -2
- package/lib/protocol/client.protocol.js.map +1 -0
- package/lib/protocol/common.protocol.d.ts +1 -2
- package/lib/protocol/common.protocol.js +50 -48
- package/lib/protocol/common.protocol.js.map +1 -0
- package/lib/protocol/editor-missing-types.js +4 -4
- package/lib/protocol/editor-missing-types.js.map +1 -0
- package/lib/protocol/proxy-identifier.js +39 -39
- package/lib/protocol/proxy-identifier.js.map +1 -0
- package/lib/protocol/rpc-logger.js +39 -43
- package/lib/protocol/rpc-logger.js.map +1 -0
- package/lib/protocol/rpc-protocol.js +736 -724
- package/lib/protocol/rpc-protocol.js.map +1 -0
- package/lib/protocol/server.protocol.js +22 -22
- package/lib/protocol/server.protocol.js.map +1 -0
- package/lib/protocol/shared/editor.js +17 -17
- package/lib/protocol/shared/editor.js.map +1 -0
- package/lib/protocol/temporary-types.js +16 -16
- package/lib/protocol/temporary-types.js.map +1 -0
- package/lib/protocol/utils/lazy-promise.js +60 -61
- package/lib/protocol/utils/lazy-promise.js.map +1 -0
- package/lib/react/components/view-component/ViewComponent.js +31 -26
- package/lib/react/components/view-component/ViewComponent.js.map +1 -0
- package/lib/react/index.js +1 -1
- package/lib/react/index.js.map +1 -0
- package/lib/react/useExtensionController.js +13 -11
- package/lib/react/useExtensionController.js.map +1 -0
- package/lib/utils/abortable-rx.js +73 -70
- package/lib/utils/abortable-rx.js.map +1 -0
- package/lib/utils/errors.js +10 -10
- package/lib/utils/errors.js.map +1 -0
- package/lib/utils/extensions.js +11 -11
- package/lib/utils/extensions.js.map +1 -0
- package/lib/utils/helper.test.js +7 -4
- package/lib/utils/helper.test.js.map +1 -0
- package/lib/utils/paths-util.js +79 -82
- package/lib/utils/paths-util.js.map +1 -0
- package/lib/utils/rxjs/combineLatestOrDefault.js +72 -70
- package/lib/utils/rxjs/combineLatestOrDefault.js.map +1 -0
- package/lib/utils/util.js +24 -25
- package/lib/utils/util.js.map +1 -0
- package/package.json +5 -5
@@ -6,22 +6,22 @@
|
|
6
6
|
* @return A proxy that translates method calls on itself to requests sent on the {@link connection}.
|
7
7
|
*/
|
8
8
|
function createProxyAndHandleRequests(prefix, connection, handler) {
|
9
|
-
|
10
|
-
|
9
|
+
handleRequests(connection, prefix, handler);
|
10
|
+
return createProxy(connection, prefix);
|
11
11
|
}
|
12
12
|
function createExtensionProxy(connection, rpcId) {
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
13
|
+
let handler = {
|
14
|
+
get: (target, name) => {
|
15
|
+
if (!target[name] && name[0] === '$') {
|
16
|
+
const method = `${rpcId}/${name}`;
|
17
|
+
target[name] = (...myArgs) => {
|
18
|
+
return connection.sendRequest(method, myArgs);
|
19
|
+
};
|
20
|
+
}
|
21
|
+
return target[name];
|
22
|
+
}
|
23
|
+
};
|
24
|
+
return new Proxy(Object.create(null), handler);
|
25
25
|
}
|
26
26
|
/**
|
27
27
|
* Creates a Proxy that translates method calls (whose name begins with "$") on the returned object to messages
|
@@ -31,20 +31,19 @@ function createExtensionProxy(connection, rpcId) {
|
|
31
31
|
* @param prefix - The name prefix for connection methods.
|
32
32
|
*/
|
33
33
|
function createProxy(connection, prefix) {
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
});
|
34
|
+
return new Proxy(Object.create(null), {
|
35
|
+
get: (target, name) => {
|
36
|
+
if (!target[name] && name[0] === '$') {
|
37
|
+
const method = `${prefix}/${name}`;
|
38
|
+
if (name.startsWith('$observe')) {
|
39
|
+
target[name] = (...args) => connection.observeRequest(method, args);
|
40
|
+
} else {
|
41
|
+
target[name] = (...args) => connection.sendRequest(method, args, null);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
return target[name];
|
45
|
+
}
|
46
|
+
});
|
48
47
|
}
|
49
48
|
/**
|
50
49
|
* Forwards all requests received on the connection to the corresponding method on the handler object. The
|
@@ -58,14 +57,14 @@ function createProxy(connection, prefix) {
|
|
58
57
|
* prototype) whose properties contain functions to be called.
|
59
58
|
*/
|
60
59
|
function handleRequests(connection, prefix, handler) {
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
}
|
60
|
+
// A class instance's methods are own, non-enumerable properties of its prototype.
|
61
|
+
const proto = Object.getPrototypeOf(handler) || handler;
|
62
|
+
for (const name of Object.getOwnPropertyNames(proto)) {
|
63
|
+
const value = proto[name];
|
64
|
+
if (name[0] === '$' && typeof value === 'function') {
|
65
|
+
connection.onRequest(`${prefix}/${name}`, args => value.apply(handler, args));
|
68
66
|
}
|
67
|
+
}
|
69
68
|
}
|
70
69
|
/**
|
71
70
|
* Forwards all requests received on the connection to the corresponding method on the server side.
|
@@ -75,14 +74,14 @@ function handleRequests(connection, prefix, handler) {
|
|
75
74
|
* @param identifier - Remote Actor Identifier.
|
76
75
|
*/
|
77
76
|
function handleServerProxyRequest(connection, remoteProtocol, identifier) {
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
77
|
+
const aProxy = remoteProtocol.getProxy(identifier);
|
78
|
+
connection.onRequest(`${identifier.sid}/*`, (args, signal, method) => {
|
79
|
+
const methodName = method.split('/')[1];
|
80
|
+
if (!methodName) {
|
81
|
+
throw new Error('method is not defined');
|
82
|
+
}
|
83
|
+
return aProxy[methodName](...args, signal);
|
84
|
+
});
|
86
85
|
}
|
87
86
|
/**
|
88
87
|
* Forwards all requests received on the connection to the corresponding method on the server side.
|
@@ -92,7 +91,7 @@ function handleServerProxyRequest(connection, remoteProtocol, identifier) {
|
|
92
91
|
* @param identifier - Remote Actor Identifier.
|
93
92
|
*/
|
94
93
|
function handleServerProxyRequests(connection, remoteProtocol, identifiers) {
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
}export{createExtensionProxy,createProxy,createProxyAndHandleRequests,handleRequests,handleServerProxyRequest,handleServerProxyRequests}
|
94
|
+
for (let i in identifiers) {
|
95
|
+
handleServerProxyRequest(connection, remoteProtocol, identifiers[i]);
|
96
|
+
}
|
97
|
+
}export{createExtensionProxy,createProxy,createProxyAndHandleRequests,handleRequests,handleServerProxyRequest,handleServerProxyRequests};//# sourceMappingURL=proxy.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"proxy.js","sources":["../../../src/connections/proxy/proxy.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
@@ -1,55 +1,56 @@
|
|
1
1
|
import {QueueingSubject}from'queueing-subject';import {VSBuffer}from'@vscode-alt/monaco-editor/esm/vs/base/common/buffer.js';import {Emitter}from'@vscode-alt/monaco-editor/esm/vs/base/common/event.js';import {switchMap,share}from'rxjs';import makeWebSocketObservable,{normalClosureMessage}from'./rxjs-websockets.js';class BrowserRemoteRPC {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
}
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
}
|
2
|
+
// this subject queues as necessary to ensure every message is delivered
|
3
|
+
input$;
|
4
|
+
_localHostId;
|
5
|
+
_onMessage = new Emitter();
|
6
|
+
constructor(hostId = 2 /* HostIdentifier.BrowserExtHost */) {
|
7
|
+
this._localHostId = hostId;
|
8
|
+
console.clear();
|
9
|
+
this.input$ = new QueueingSubject();
|
10
|
+
}
|
11
|
+
onMessage(event) {
|
12
|
+
return this._onMessage.event(event);
|
13
|
+
}
|
14
|
+
connect(url, makeWebSocket) {
|
15
|
+
const socket$ = makeWebSocketObservable(url, {
|
16
|
+
protocols: '',
|
17
|
+
makeWebSocket
|
18
|
+
});
|
19
|
+
const messages$ = socket$.pipe(
|
20
|
+
// the observable produces a value once the websocket has been opened
|
21
|
+
switchMap(getResponses => {
|
22
|
+
console.log('websocket opened');
|
23
|
+
return getResponses(this.input$);
|
24
|
+
}), share());
|
25
|
+
messages$.subscribe(message => {
|
26
|
+
const buff = new Uint8Array(message);
|
27
|
+
// @sri in future version of @vscode-alt/monaco-editor we don't need to do add `Buffer.from`
|
28
|
+
// noticed `Buffer` in browser will be polyfilled by webpack
|
29
|
+
const vsBuffer = VSBuffer.wrap(Buffer.from(buff.buffer));
|
30
|
+
this._onMessage.fire(vsBuffer);
|
31
|
+
}, error => {
|
32
|
+
const {
|
33
|
+
message
|
34
|
+
} = error;
|
35
|
+
if (message === normalClosureMessage) {
|
36
|
+
console.log('server closed the websocket connection normally');
|
37
|
+
} else {
|
38
|
+
console.log('socket was disconnected due to error:', message);
|
39
|
+
}
|
40
|
+
});
|
41
|
+
}
|
42
|
+
send(buffer, hostIdentifier) {
|
43
|
+
// If the websocket is not connected then the QueueingSubject will ensure
|
44
|
+
// that messages are queued and delivered when the websocket reconnects.
|
45
|
+
// A regular Subject can be used to discard messages sent when the websocket
|
46
|
+
// is disconnected.
|
47
|
+
const headerBuf = VSBuffer.alloc(2);
|
48
|
+
// add destination host id
|
49
|
+
headerBuf.writeUInt8(hostIdentifier, 0);
|
50
|
+
// add sender host id
|
51
|
+
headerBuf.writeUInt8(this._localHostId, 1);
|
52
|
+
const cocnatBuf = VSBuffer.concat([headerBuf, buffer]);
|
53
|
+
// converts to ArrayBuffer and sends data
|
54
|
+
this.input$.next(cocnatBuf.buffer);
|
55
|
+
}
|
56
|
+
}export{BrowserRemoteRPC};//# sourceMappingURL=browser-remote-rpc.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"browser-remote-rpc.js","sources":["../../../src/connections/remote-rpc/browser-remote-rpc.ts"],"sourcesContent":[null],"names":["websocketConnect"],"mappings":"kUAOa,gBAAgB,CAAA;;AAEjB,EAAA,MAAA;AAES,EAAA,YAAA;AAET,EAAA,UAAA,GAAa,IAAA,OAAW,EAAA;AAEhC,EAAA,WAAA,CAAA,MAAkE,GAAA,CAAA,sCAAA;AAC9D,IAAA,IAAA,CAAA,YAAK,GAAA,MAAe;WACb,CAAA,KAAM,EAAA;AACb,IAAA,IAAA,CAAA,MAAW,GAAA,IAAG,eAAI,EAAA;;AAGf,EAAA,SAAA,CAAA,KAAe,EAAA;WACX,IAAA,CAAA,UAAe,CAAA,WAAO,CAAA;;SAGnB,CAAA,GAAY,EAAA,aAAe,EAAA;AACrC,IAAA,MAAA,OAAa,GAAAA,uBAAmB,CAAA,GAAA;AAC5B,MAAA,SAAA,EAAA,EAAA;;AAEH,KAAA,CAAA;AAED,IAAA,MAAA,SAAe,GAAA,OAAwC,CAAA,IAAC;;AAEpD,IAAA,SAAA,CAAA,YAA8C,IAAA;AAC1C,MAAA,OAAA,CAAA,GAAA,CAAA,kBAAY,CAAA;AACZ,MAAA,OAAA,kBAAmB,MAAM,CAAA;AAC7B,KAAA,CAAA,EAAA,KACK,EAAA,CAAA;AAGT,IAAA,SAAA,CAAA,SAAmB,CAAA,OACd,IAAA;AACG,MAAA,MAAA,IAAA,OAAa,kBAAe,CAAA;;;AAG5B,MAAA,MAAA,QAAc,GAAA,QAAW,CAAA,IAAA,CAAA,MAAM,CAAA,IAAA,CAAM,IAAC,CAAI,MAAM,CAAM,CAAA;AACtD,MAAA,IAAA,CAAA,UAAe,CAAA,IAAA,CAAA,QAAM,CAAA;AACzB,KAAA,EAAA,KACC,IAAY;AACT,MAAA,MAAA;AACA,QAAA;AACI,OAAA,GAAA,KAAA;iBACH,KAAA,oBAAA,EAAA;mBAAO,CAAA,iDAAA,CAAA;AACJ,OAAA,MAAA;eACH,CAAA,GAAA,CAAA,uCAAA,EAAA,OAAA,CAAA;AACL;KAEP,CAAA;;aAG4E,EAAA,cAAA,EAAA;;;;;UAK/C,SAAA,GAAA,QAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAC1B;aACqB,CAAA,UAAA,CAAA,cAAA,EAAA,CAAA,CAAA;;AAErB,IAAA,SAAA,CAAM,UAAS,CAAA,IAAW,CAAA,YAAQ,EAAC,CAAA,CAAA;UACM,SAAA,GAAA,QAAA,CAAA,MAAA,CAAA,CAAA,SAAA,EAAA,MAAA,CAAA,CAAA;;IAE7C,IAAC,CAAA,MAAA,CAAA,IAAA,CAAA,SAAA,CAAA,MAAA,CAAA;AACJ;"}
|
@@ -1,72 +1,72 @@
|
|
1
1
|
import {Observable,Subject}from'rxjs';import WebSocket from'ws';const defaultProtocols = [];
|
2
2
|
const defaultWebsocketFactory = (url, protocols) => new WebSocket(url, protocols);
|
3
3
|
const normalClosureMessage = 'Normal closure';
|
4
|
-
function makeWebSocketObservable(url, {
|
5
|
-
|
6
|
-
|
4
|
+
function makeWebSocketObservable(url, {
|
5
|
+
protocols = defaultProtocols,
|
6
|
+
makeWebSocket = defaultWebsocketFactory
|
7
|
+
} = {
|
8
|
+
protocols: defaultProtocols,
|
9
|
+
makeWebSocket: defaultWebsocketFactory
|
7
10
|
}) {
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
};
|
71
|
-
});
|
72
|
-
}export{makeWebSocketObservable as default,normalClosureMessage};
|
11
|
+
return new Observable(observer => {
|
12
|
+
let inputSubscription;
|
13
|
+
const messages = new Subject();
|
14
|
+
const socket = makeWebSocket(url, protocols);
|
15
|
+
let isSocketClosed = false;
|
16
|
+
let forcedClose = false;
|
17
|
+
const setClosedStatus = () => {
|
18
|
+
isSocketClosed = true;
|
19
|
+
};
|
20
|
+
const getWebSocketResponses = input => {
|
21
|
+
if (inputSubscription) {
|
22
|
+
setClosedStatus();
|
23
|
+
const error = new Error('Web socket message factory function called more than once');
|
24
|
+
observer.error(error);
|
25
|
+
throw error;
|
26
|
+
} else {
|
27
|
+
inputSubscription = input.subscribe(data => {
|
28
|
+
socket.send(data);
|
29
|
+
});
|
30
|
+
return messages;
|
31
|
+
}
|
32
|
+
};
|
33
|
+
socket.onopen = () => {
|
34
|
+
if (forcedClose) {
|
35
|
+
isSocketClosed = true;
|
36
|
+
socket.close();
|
37
|
+
} else {
|
38
|
+
observer.next(getWebSocketResponses);
|
39
|
+
}
|
40
|
+
};
|
41
|
+
socket.onmessage = message => {
|
42
|
+
messages.next(message.data);
|
43
|
+
};
|
44
|
+
socket.onerror = error => {
|
45
|
+
setClosedStatus();
|
46
|
+
observer.error(new Error(error.message));
|
47
|
+
};
|
48
|
+
socket.onclose = event => {
|
49
|
+
// prevent observer.complete() being called after observer.error(...)
|
50
|
+
if (isSocketClosed) {
|
51
|
+
return;
|
52
|
+
}
|
53
|
+
setClosedStatus();
|
54
|
+
if (forcedClose) {
|
55
|
+
observer.complete();
|
56
|
+
messages.complete();
|
57
|
+
} else {
|
58
|
+
observer.error(new Error(event.code === 1000 ? normalClosureMessage : event.reason));
|
59
|
+
}
|
60
|
+
};
|
61
|
+
return () => {
|
62
|
+
forcedClose = true;
|
63
|
+
if (inputSubscription) {
|
64
|
+
inputSubscription.unsubscribe();
|
65
|
+
}
|
66
|
+
if (!isSocketClosed) {
|
67
|
+
setClosedStatus();
|
68
|
+
socket.close();
|
69
|
+
}
|
70
|
+
};
|
71
|
+
});
|
72
|
+
}export{makeWebSocketObservable as default,normalClosureMessage};//# sourceMappingURL=rxjs-websockets.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rxjs-websockets.js","sources":["../../../src/connections/remote-rpc/rxjs-websockets.ts"],"sourcesContent":[null],"names":[],"mappings":"gEAiCA,MAAM,gBAAgB,GAAa,EAAE;AAErC,MAAM,uBAAuB,GAAqB,CAC9C,GAAW,EACX,SAA4B,KACZ,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,CAAQ;AAOjD,MAAM,oBAAoB,GAAG;AAEZ,SAAA,uBAAuB,CAC3C,GAAW,EACX;AACI,EAAA,SAAA,mBAA2B;AAC3B,EAAA,aAAA;AACH,CAAA,GAAA;AAED,EAAA,SAAO,EAAI,gBAAqC;AAC5C,EAAA;AACA,CAAA,EAAA;SAEM,IAAA,UAAS,CAAa,QAAA,IAAA;QAE5B,iBAAI;UACA,QAAA,GAAA,IAAc,OAAM,EAAA;UAElB,MAAA,GAAA,aAAkB,CAAA,GAAW,EAAA,SAAA,CAAA;sBACjB,GAAA;AAClB,IAAA,IAAA,WAAE,GAAA,KAAA;AAEF,IAAA,MAAA,eAA2B,GAAA,MAAA;oBAGnB,GAAA,IAAA;AACA,KAAA;AACA,IAAA,MAAA,qBAAc,GAAI,KAAK,IAAC;AACxB,MAAA,IAAA,iBAAS,EAAA;AACT,QAAA;cACH,KAAA,GAAA,IAAA,KAAA,CAAA,2DAAA,CAAA;iBAAM,KAAC,CAAA,KAAA,CAAA;AACJ,QAAA,MAAA,KAAA;AACI,OAAA,MAAA;AACJ,QAAA,iBAAG,GAAA,KAAA,CAAA,SAAA,CAAA,IAAA,IAAA;AACH,UAAA,MAAA,CAAA,IAAA,CAAA;;AAER,QAAA,OAAE,QAAA;AAEF;;iBAEsB,GAAA,MAAA;qBACR,EAAC;sBACV,GAAA,IAAA;oBAAO,EAAA;AACJ,OAAA,MAAA;gBACH,CAAA,IAAA,CAAA,qBAAA,CAAA;AACL;AAEA,KAAA;AACI,IAAA,MAAA,CAAA,SAAQ,GAAK,WAAS;AAC1B,MAAA,QAAE,CAAA,IAAA,CAAA,OAAA,CAAA,IAAA,CAAA;AAEF,KAAA;AACI,IAAA,MAAA,CAAA,OAAA,GAAA,KAAA,IAAkB;qBACT,EAAK;AAClB,MAAA,QAAE,CAAA,KAAA,CAAA,IAAA,KAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AAEF,KAAA;kBACyE,GAAA,KAAA,IAAA;;wBAE1D,EAAA;;AAGX;qBACI,EAAA;qBACQ,EAAA;gBACR,CAAQ,QAAC,EAAQ;gBACpB,CAAA,QAAA,EAAA;;gBACG,CAAQ,KAAA,CAAA,SAAO,CAAA,UAAU,KAAM,IAAS,GAAA,oBAA2B,GAAA,KAAA,CAAC,OAAO,CAAC;;AAEpF,KAAA;AAEA,IAAA,OAAA;iBACe,GAAA,IAAA;2BACP,EAAA;yBACiB,CAAA,WAAY,EAAA;;yBAGd,EAAA;AACf,QAAA,eAAA,EAAA;oBACM,EAAA;;AAEd,KAAA;AACJ,GAAA,CAAA;AACJ"}
|
@@ -1,34 +1,34 @@
|
|
1
1
|
const CONTRIBUTION_ACTION_TYPES = {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
GET_CONTRIBUTIONS: 'contribution/GET_CONTRIBUTIONS',
|
3
|
+
REGISTER_CONTRIBUTIONS: 'contribution/REGISTER_CONTRIBUTIONS',
|
4
|
+
DEREGISTER_CONTRIBUTIONS: 'contribution/DEREGISTER_CONTRIBUTIONS',
|
5
|
+
REPLACE_CONTRIBUTIONS: 'contribution/REPLACE_CONTRIBUTIONS'
|
6
6
|
};
|
7
7
|
const COMMAND_ACTION_TYPES = {
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
REGISTER_COMMAND: 'command/REGISTER_COMMAND',
|
9
|
+
DEREGISTER_COMMAND: 'command/DEREGISTER_COMMAND',
|
10
|
+
EXECUTE_COMMAND: 'command/EXECUTE_COMMAND'
|
11
11
|
};
|
12
12
|
const EXTENSION_ACTION_TYPES = {
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
13
|
+
// extensions
|
14
|
+
GET_EXECUTABLE_EXTENIONS: 'extension/GET_EXECUTABLE_EXTENIONS',
|
15
|
+
GET_CONFIGURED_EXTENSION: 'extension/GET_CONFIGURED_EXTENSION',
|
16
|
+
GET_ENABLED_EXTENSION: 'extension/GET_ENABLED_EXTENSION',
|
17
|
+
FETCH_ACTIVE_EXTENSIONS: 'extension/FETCH_ACTIVE_EXTENSIONS',
|
18
|
+
ACTIVE_EXTENSIONS: 'extension/ACTIVE_EXTENSIONS',
|
19
|
+
FETCH_ENABLED_EXTENIONS: 'extension/FETCH_ENABLED_EXTENIONS',
|
20
|
+
ENABLED_EXTENSIONS: 'extension/ENABLED_EXTENSIONS',
|
21
|
+
FETCH_CONFIGURED_EXTENSIONS: 'extension/FETCH_CONFIGURED_EXTENSIONS',
|
22
|
+
CONFIGURED_EXTENSIONS: 'extension/CONFIGURED_EXTENSIONS',
|
23
|
+
// registry
|
24
|
+
REGISTER_PROVIDERS: 'extension/REGISTER_PROVIDERS',
|
25
|
+
OPEN_DOCUMENT: 'extension/OPEN_DOCUMENT',
|
26
|
+
OPEN_DOCUMENT_EPIC: 'extension/OPEN_DOCUMENT_EPIC',
|
27
|
+
// Document
|
28
|
+
TEXT_POSITION: 'extension/TEXT_POSITION'
|
29
29
|
};
|
30
30
|
const SETTINGS_ACTION_TYPES = {
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
};export{COMMAND_ACTION_TYPES,CONTRIBUTION_ACTION_TYPES,EXTENSION_ACTION_TYPES,SETTINGS_ACTION_TYPES}
|
31
|
+
// settings
|
32
|
+
GET_SETTINGS: 'settings/GET_SETTINGS',
|
33
|
+
UPDATE_SETTINGS: 'settings/UPDATE_SETTINGS'
|
34
|
+
};export{COMMAND_ACTION_TYPES,CONTRIBUTION_ACTION_TYPES,EXTENSION_ACTION_TYPES,SETTINGS_ACTION_TYPES};//# sourceMappingURL=action-types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"action-types.js","sources":["../../src/constants/action-types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEa,MAAA,yBAAyB,GAAG;AACrC,EAAA,iBAAA,EAAiB,gCAAkC;AACnD,EAAA,sBAAA,EAAsB,qCAAuC;AAC7D,EAAA,wBAAA,EAAwB,uCAAyC;AACjE,EAAA,qBAAA,EAAqB;;AAGZ,MAAA,oBAAoB,GAAG;AAChC,EAAA,gBAAA,EAAgB,0BAA4B;AAC5C,EAAA,kBAAA,EAAkB,4BAA8B;AAChD,EAAA,eAAA,EAAe;;AAGN,MAAA,sBAAsB,GAAG;;AAElC,EAAA,wBAAA,EAAwB,oCAAsC;AAC9D,EAAA,wBAAA,EAAwB,oCAAsC;AAC9D,EAAA,qBAAA,EAAqB,iCAAmC;AACxD,EAAA,uBAAA,EAAuB,mCAAqC;AAC5D,EAAA,iBAAA,EAAiB,6BAA+B;AAChD,EAAA,uBAAA,EAAuB,mCAAqC;AAC5D,EAAA,kBAAA,EAAkB,8BAAgC;AAClD,EAAA,2BAAA,EAA2B,uCAAyC;AACpE,EAAA,qBAAA,EAAqB,iCAAmC;;AAExD,EAAA,kBAAA,EAAkB,8BAAgC;AAElD,EAAA,aAAA,EAAa,yBAA2B;AACxC,EAAA,kBAAA,EAAkB,8BAAgC;;AAGlD,EAAA,aAAA,EAAa;;AAIJ,MAAA,qBAAqB,GAAG;;AAEjC,EAAA,YAAA,EAAY,uBAAyB;AACrC,EAAA,eAAA,EAAe;"}
|
package/lib/constants/types.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
const ClientTypes = {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
};export{ClientTypes}
|
2
|
+
ICommandRegistry: Symbol.for('ICommandRegistry'),
|
3
|
+
IContributionRegistry: Symbol.for('IContributionRegistry'),
|
4
|
+
IExtensionService: Symbol.for('IExtensionService'),
|
5
|
+
IModelService: Symbol.for('IModelService'),
|
6
|
+
IViewerService: Symbol.for('IViewerService'),
|
7
|
+
IWindowsService: Symbol.for('IWindowsService')
|
8
|
+
};export{ClientTypes};//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../src/constants/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEa,MAAA,WAAW,GAAG;AAEvB,EAAA,gBAAA,EAAgB,MAAQ,CAAA,GAAI,CAAA;AAC5B,EAAA,qBAAA,EAAqB,MAAQ,CAAA,GAAI,CAAA;AACjC,EAAA,iBAAA,EAAiB,MAAQ,CAAA,GAAI,CAAA;AAC7B,EAAA,aAAA,EAAa,MAAQ,CAAA,GAAI,CAAA;AACzB,EAAA,cAAA,EAAc,MAAQ,CAAA,GAAI,CAAA;AAC1B,EAAA,eAAA,EAAe,MAAQ,CAAA,GAAI,CAAA;"}
|