@adminide-stack/extension-api 0.0.2-alpha.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/LICENSE +39 -0
- package/README.md +9 -0
- package/lib/connections/jsonrpc2/connection.d.ts +55 -0
- package/lib/connections/jsonrpc2/connection.js +575 -0
- package/lib/connections/jsonrpc2/connection.js.map +1 -0
- package/lib/connections/jsonrpc2/connection.test.d.ts +1 -0
- package/lib/connections/jsonrpc2/connection.test.js +443 -0
- package/lib/connections/jsonrpc2/connection.test.js.map +1 -0
- package/lib/connections/jsonrpc2/events.d.ts +24 -0
- package/lib/connections/jsonrpc2/events.js +117 -0
- package/lib/connections/jsonrpc2/events.js.map +1 -0
- package/lib/connections/jsonrpc2/index.d.ts +5 -0
- package/lib/connections/jsonrpc2/index.js +24 -0
- package/lib/connections/jsonrpc2/index.js.map +1 -0
- package/lib/connections/jsonrpc2/linkedMap.d.ts +29 -0
- package/lib/connections/jsonrpc2/linkedMap.js +254 -0
- package/lib/connections/jsonrpc2/linkedMap.js.map +1 -0
- package/lib/connections/jsonrpc2/linkedMap.test.d.ts +1 -0
- package/lib/connections/jsonrpc2/linkedMap.test.js +62 -0
- package/lib/connections/jsonrpc2/linkedMap.test.js.map +1 -0
- package/lib/connections/jsonrpc2/messages.d.ts +117 -0
- package/lib/connections/jsonrpc2/messages.js +72 -0
- package/lib/connections/jsonrpc2/messages.js.map +1 -0
- package/lib/connections/jsonrpc2/test-helper.d.ts +8 -0
- package/lib/connections/jsonrpc2/test-helper.js +36 -0
- package/lib/connections/jsonrpc2/test-helper.js.map +1 -0
- package/lib/connections/jsonrpc2/trace.d.ts +30 -0
- package/lib/connections/jsonrpc2/trace.js +96 -0
- package/lib/connections/jsonrpc2/trace.js.map +1 -0
- package/lib/connections/jsonrpc2/transport.d.ts +36 -0
- package/lib/connections/jsonrpc2/transport.js +66 -0
- package/lib/connections/jsonrpc2/transport.js.map +1 -0
- package/lib/connections/jsonrpc2/transports/browser-websocket.d.ts +0 -0
- package/lib/connections/jsonrpc2/transports/browser-websocket.js +189 -0
- package/lib/connections/jsonrpc2/transports/browser-websocket.js.map +1 -0
- package/lib/connections/jsonrpc2/transports/merged.d.ts +0 -0
- package/lib/connections/jsonrpc2/transports/merged.js +239 -0
- package/lib/connections/jsonrpc2/transports/merged.js.map +1 -0
- package/lib/connections/jsonrpc2/transports/webSocket.d.ts +0 -0
- package/lib/connections/jsonrpc2/transports/webSocket.js +138 -0
- package/lib/connections/jsonrpc2/transports/webSocket.js.map +1 -0
- package/lib/connections/jsonrpc2/transports/webWorker.d.ts +22 -0
- package/lib/connections/jsonrpc2/transports/webWorker.js +111 -0
- package/lib/connections/jsonrpc2/transports/webWorker.js.map +1 -0
- package/lib/connections/proxy/index.d.ts +1 -0
- package/lib/connections/proxy/index.js +18 -0
- package/lib/connections/proxy/index.js.map +1 -0
- package/lib/connections/proxy/proxy.d.ts +49 -0
- package/lib/connections/proxy/proxy.js +108 -0
- package/lib/connections/proxy/proxy.js.map +1 -0
- package/lib/connections/proxy/proxy.test.d.ts +1 -0
- package/lib/connections/proxy/proxy.test.js +55 -0
- package/lib/connections/proxy/proxy.test.js.map +1 -0
- package/lib/connections/remote-rpc/browser-remote-rpc.d.ts +12 -0
- package/lib/connections/remote-rpc/browser-remote-rpc.js +62 -0
- package/lib/connections/remote-rpc/browser-remote-rpc.js.map +1 -0
- package/lib/connections/remote-rpc/browser-server-rpc.test.d.ts +0 -0
- package/lib/connections/remote-rpc/browser-server-rpc.test.js +317 -0
- package/lib/connections/remote-rpc/browser-server-rpc.test.js.map +1 -0
- package/lib/connections/remote-rpc/index.d.ts +1 -0
- package/lib/connections/remote-rpc/index.js +18 -0
- package/lib/connections/remote-rpc/index.js.map +1 -0
- package/lib/connections/remote-rpc/old-browser-remote-rpc.d.ts +12 -0
- package/lib/connections/remote-rpc/old-browser-remote-rpc.js +41 -0
- package/lib/connections/remote-rpc/old-browser-remote-rpc.js.map +1 -0
- package/lib/connections/remote-rpc/rxjs-websockets.d.ts +18 -0
- package/lib/connections/remote-rpc/rxjs-websockets.js +80 -0
- package/lib/connections/remote-rpc/rxjs-websockets.js.map +1 -0
- package/lib/constants/action-types.d.ts +30 -0
- package/lib/constants/action-types.js +38 -0
- package/lib/constants/action-types.js.map +1 -0
- package/lib/constants/index.d.ts +2 -0
- package/lib/constants/index.js +19 -0
- package/lib/constants/index.js.map +1 -0
- package/lib/constants/types.d.ts +8 -0
- package/lib/constants/types.js +12 -0
- package/lib/constants/types.js.map +1 -0
- package/lib/core/expr/evaluator.d.ts +27 -0
- package/lib/core/expr/evaluator.js +144 -0
- package/lib/core/expr/evaluator.js.map +1 -0
- package/lib/core/expr/evaluator.test.d.ts +1 -0
- package/lib/core/expr/evaluator.test.js +52 -0
- package/lib/core/expr/evaluator.test.js.map +1 -0
- package/lib/core/expr/index.d.ts +3 -0
- package/lib/core/expr/index.js +20 -0
- package/lib/core/expr/index.js.map +1 -0
- package/lib/core/expr/lexer.d.ts +114 -0
- package/lib/core/expr/lexer.js +418 -0
- package/lib/core/expr/lexer.js.map +1 -0
- package/lib/core/expr/parser.d.ts +52 -0
- package/lib/core/expr/parser.js +242 -0
- package/lib/core/expr/parser.js.map +1 -0
- package/lib/core/index.d.ts +2 -0
- package/lib/core/index.js +19 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/types/ext-host-types-bk.d.ts +0 -0
- package/lib/core/types/ext-host-types-bk.js +1275 -0
- package/lib/core/types/ext-host-types-bk.js.map +1 -0
- package/lib/core/types/ext-host-types.d.ts +32 -0
- package/lib/core/types/ext-host-types.js +71 -0
- package/lib/core/types/ext-host-types.js.map +1 -0
- package/lib/core/types/index.d.ts +1 -0
- package/lib/core/types/index.js +18 -0
- package/lib/core/types/index.js.map +1 -0
- package/lib/errors/errors.d.ts +1 -0
- package/lib/errors/errors.js +13 -0
- package/lib/errors/errors.js.map +1 -0
- package/lib/errors/index.d.ts +1 -0
- package/lib/errors/index.js +18 -0
- package/lib/errors/index.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +24 -0
- package/lib/index.js.map +1 -0
- package/lib/interfaces/command.d.ts +28 -0
- package/lib/interfaces/command.js +3 -0
- package/lib/interfaces/command.js.map +1 -0
- package/lib/interfaces/configuration.d.ts +36 -0
- package/lib/interfaces/configuration.js +3 -0
- package/lib/interfaces/configuration.js.map +1 -0
- package/lib/interfaces/connection.d.ts +12 -0
- package/lib/interfaces/connection.js +3 -0
- package/lib/interfaces/connection.js.map +1 -0
- package/lib/interfaces/context.d.ts +12 -0
- package/lib/interfaces/context.js +3 -0
- package/lib/interfaces/context.js.map +1 -0
- package/lib/interfaces/contributions/contribution-service.d.ts +20 -0
- package/lib/interfaces/contributions/contribution-service.js +3 -0
- package/lib/interfaces/contributions/contribution-service.js.map +1 -0
- package/lib/interfaces/contributions/contribution.d.ts +383 -0
- package/lib/interfaces/contributions/contribution.js +49 -0
- package/lib/interfaces/contributions/contribution.js.map +1 -0
- package/lib/interfaces/contributions/index.d.ts +2 -0
- package/lib/interfaces/contributions/index.js +19 -0
- package/lib/interfaces/contributions/index.js.map +1 -0
- package/lib/interfaces/controller.d.ts +30 -0
- package/lib/interfaces/controller.js +3 -0
- package/lib/interfaces/controller.js.map +1 -0
- package/lib/interfaces/errors.d.ts +5 -0
- package/lib/interfaces/errors.js +3 -0
- package/lib/interfaces/errors.js.map +1 -0
- package/lib/interfaces/ext-services/contributon-registry.d.ts +45 -0
- package/lib/interfaces/ext-services/contributon-registry.js +3 -0
- package/lib/interfaces/ext-services/contributon-registry.js.map +1 -0
- package/lib/interfaces/ext-services/ext-services.d.ts +23 -0
- package/lib/interfaces/ext-services/ext-services.js +3 -0
- package/lib/interfaces/ext-services/ext-services.js.map +1 -0
- package/lib/interfaces/ext-services/extension-service.d.ts +8 -0
- package/lib/interfaces/ext-services/extension-service.js +3 -0
- package/lib/interfaces/ext-services/extension-service.js.map +1 -0
- package/lib/interfaces/ext-services/index.d.ts +8 -0
- package/lib/interfaces/ext-services/index.js +25 -0
- package/lib/interfaces/ext-services/index.js.map +1 -0
- package/lib/interfaces/ext-services/model-service.d.ts +89 -0
- package/lib/interfaces/ext-services/model-service.js +3 -0
- package/lib/interfaces/ext-services/model-service.js.map +1 -0
- package/lib/interfaces/ext-services/panel-view-registry.d.ts +21 -0
- package/lib/interfaces/ext-services/panel-view-registry.js +3 -0
- package/lib/interfaces/ext-services/panel-view-registry.js.map +1 -0
- package/lib/interfaces/ext-services/settings-service.d.ts +18 -0
- package/lib/interfaces/ext-services/settings-service.js +3 -0
- package/lib/interfaces/ext-services/settings-service.js.map +1 -0
- package/lib/interfaces/ext-services/view-service.d.ts +65 -0
- package/lib/interfaces/ext-services/view-service.js +4 -0
- package/lib/interfaces/ext-services/view-service.js.map +1 -0
- package/lib/interfaces/ext-services/viewer-service.d.ts +125 -0
- package/lib/interfaces/ext-services/viewer-service.js +5 -0
- package/lib/interfaces/ext-services/viewer-service.js.map +1 -0
- package/lib/interfaces/extension-manifest.d.ts +8 -0
- package/lib/interfaces/extension-manifest.js +3 -0
- package/lib/interfaces/extension-manifest.js.map +1 -0
- package/lib/interfaces/extension.d.ts +72 -0
- package/lib/interfaces/extension.js +3 -0
- package/lib/interfaces/extension.js.map +1 -0
- package/lib/interfaces/generated-models.d.ts +3716 -0
- package/lib/interfaces/generated-models.js +648 -0
- package/lib/interfaces/generated-models.js.map +1 -0
- package/lib/interfaces/graphql.d.ts +17 -0
- package/lib/interfaces/graphql.js +5 -0
- package/lib/interfaces/graphql.js.map +1 -0
- package/lib/interfaces/index.d.ts +21 -0
- package/lib/interfaces/index.js +38 -0
- package/lib/interfaces/index.js.map +1 -0
- package/lib/interfaces/languages-types.d.ts +65 -0
- package/lib/interfaces/languages-types.js +3 -0
- package/lib/interfaces/languages-types.js.map +1 -0
- package/lib/interfaces/model.d.ts +51 -0
- package/lib/interfaces/model.js +9 -0
- package/lib/interfaces/model.js.map +1 -0
- package/lib/interfaces/plain-types.d.ts +4 -0
- package/lib/interfaces/plain-types.js +6 -0
- package/lib/interfaces/plain-types.js.map +1 -0
- package/lib/interfaces/plainTypes.d.ts +68 -0
- package/lib/interfaces/plainTypes.js +3 -0
- package/lib/interfaces/plainTypes.js.map +1 -0
- package/lib/interfaces/platform-context.d.ts +82 -0
- package/lib/interfaces/platform-context.js +3 -0
- package/lib/interfaces/platform-context.js.map +1 -0
- package/lib/interfaces/react-props/action-item.d.ts +20 -0
- package/lib/interfaces/react-props/action-item.js +3 -0
- package/lib/interfaces/react-props/action-item.js.map +1 -0
- package/lib/interfaces/react-props/extension-controller.d.ts +11 -0
- package/lib/interfaces/react-props/extension-controller.js +3 -0
- package/lib/interfaces/react-props/extension-controller.js.map +1 -0
- package/lib/interfaces/react-props/index.d.ts +3 -0
- package/lib/interfaces/react-props/index.js +20 -0
- package/lib/interfaces/react-props/index.js.map +1 -0
- package/lib/interfaces/react-props/platform-context.d.ts +7 -0
- package/lib/interfaces/react-props/platform-context.js +3 -0
- package/lib/interfaces/react-props/platform-context.js.map +1 -0
- package/lib/interfaces/registry-extension.d.ts +21 -0
- package/lib/interfaces/registry-extension.js +3 -0
- package/lib/interfaces/registry-extension.js.map +1 -0
- package/lib/interfaces/settings.d.ts +51 -0
- package/lib/interfaces/settings.js +3 -0
- package/lib/interfaces/settings.js.map +1 -0
- package/lib/interfaces/text-document.d.ts +57 -0
- package/lib/interfaces/text-document.js +119 -0
- package/lib/interfaces/text-document.js.map +1 -0
- package/lib/interfaces/webview/index.d.ts +3 -0
- package/lib/interfaces/webview/index.js +20 -0
- package/lib/interfaces/webview/index.js.map +1 -0
- package/lib/interfaces/webview/webview-manager-service.d.ts +22 -0
- package/lib/interfaces/webview/webview-manager-service.js +3 -0
- package/lib/interfaces/webview/webview-manager-service.js.map +1 -0
- package/lib/interfaces/webview/webview-port-mapping.d.ts +4 -0
- package/lib/interfaces/webview/webview-port-mapping.js +3 -0
- package/lib/interfaces/webview/webview-port-mapping.js.map +1 -0
- package/lib/interfaces/webview/webview.d.ts +99 -0
- package/lib/interfaces/webview/webview.js +9 -0
- package/lib/interfaces/webview/webview.js.map +1 -0
- package/lib/main.d.ts +0 -0
- package/lib/main.js +3 -0
- package/lib/main.js.map +1 -0
- package/lib/protocol/client.protocol.d.ts +99 -0
- package/lib/protocol/client.protocol.js +8 -0
- package/lib/protocol/client.protocol.js.map +1 -0
- package/lib/protocol/common.protocol.d.ts +289 -0
- package/lib/protocol/common.protocol.js +68 -0
- package/lib/protocol/common.protocol.js.map +1 -0
- package/lib/protocol/editor-missing-types.d.ts +87 -0
- package/lib/protocol/editor-missing-types.js +10 -0
- package/lib/protocol/editor-missing-types.js.map +1 -0
- package/lib/protocol/index.d.ts +6 -0
- package/lib/protocol/index.js +24 -0
- package/lib/protocol/index.js.map +1 -0
- package/lib/protocol/proxy-identifier.d.ts +51 -0
- package/lib/protocol/proxy-identifier.js +59 -0
- package/lib/protocol/proxy-identifier.js.map +1 -0
- package/lib/protocol/rpc-logger.d.ts +8 -0
- package/lib/protocol/rpc-logger.js +60 -0
- package/lib/protocol/rpc-logger.js.map +1 -0
- package/lib/protocol/rpc-protocol.d.ts +148 -0
- package/lib/protocol/rpc-protocol.js +750 -0
- package/lib/protocol/rpc-protocol.js.map +1 -0
- package/lib/protocol/rpc-protocol.test.d.ts +1 -0
- package/lib/protocol/rpc-protocol.test.js +171 -0
- package/lib/protocol/rpc-protocol.test.js.map +1 -0
- package/lib/protocol/server.protocol-bk.d.ts +0 -0
- package/lib/protocol/server.protocol-bk.js +719 -0
- package/lib/protocol/server.protocol-bk.js.map +1 -0
- package/lib/protocol/server.protocol.d.ts +91 -0
- package/lib/protocol/server.protocol.js +31 -0
- package/lib/protocol/server.protocol.js.map +1 -0
- package/lib/protocol/shared/editor.d.ts +4 -0
- package/lib/protocol/shared/editor.js +28 -0
- package/lib/protocol/shared/editor.js.map +1 -0
- package/lib/protocol/shared/tasks.d.ts +104 -0
- package/lib/protocol/shared/tasks.js +4 -0
- package/lib/protocol/shared/tasks.js.map +1 -0
- package/lib/protocol/temporary-types.d.ts +198 -0
- package/lib/protocol/temporary-types.js +30 -0
- package/lib/protocol/temporary-types.js.map +1 -0
- package/lib/protocol/utils/index.d.ts +1 -0
- package/lib/protocol/utils/index.js +18 -0
- package/lib/protocol/utils/index.js.map +1 -0
- package/lib/protocol/utils/lazy-promise.d.ts +18 -0
- package/lib/protocol/utils/lazy-promise.js +69 -0
- package/lib/protocol/utils/lazy-promise.js.map +1 -0
- package/lib/utils/errors.d.ts +6 -0
- package/lib/utils/errors.js +19 -0
- package/lib/utils/errors.js.map +1 -0
- package/lib/utils/extensions.d.ts +9 -0
- package/lib/utils/extensions.js +25 -0
- package/lib/utils/extensions.js.map +1 -0
- package/lib/utils/helper.test.d.ts +9 -0
- package/lib/utils/helper.test.js +15 -0
- package/lib/utils/helper.test.js.map +1 -0
- package/lib/utils/index.d.ts +7 -0
- package/lib/utils/index.js +25 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/paths-util.d.ts +27 -0
- package/lib/utils/paths-util.js +127 -0
- package/lib/utils/paths-util.js.map +1 -0
- package/lib/utils/rxjs/combineLatestOrDefault.d.ts +28 -0
- package/lib/utils/rxjs/combineLatestOrDefault.js +111 -0
- package/lib/utils/rxjs/combineLatestOrDefault.js.map +1 -0
- package/lib/utils/rxjs/combineLatestOrDefault.test.d.ts +1 -0
- package/lib/utils/rxjs/combineLatestOrDefault.test.js +52 -0
- package/lib/utils/rxjs/combineLatestOrDefault.test.js.map +1 -0
- package/lib/utils/rxjs/index.d.ts +1 -0
- package/lib/utils/rxjs/index.js +18 -0
- package/lib/utils/rxjs/index.js.map +1 -0
- package/lib/utils/util.d.ts +19 -0
- package/lib/utils/util.js +57 -0
- package/lib/utils/util.js.map +1 -0
- package/lib/worker-lib/MessageTypes.d.ts +5 -0
- package/lib/worker-lib/MessageTypes.js +9 -0
- package/lib/worker-lib/MessageTypes.js.map +1 -0
- package/lib/worker-lib/index.d.ts +2 -0
- package/lib/worker-lib/index.js +19 -0
- package/lib/worker-lib/index.js.map +1 -0
- package/lib/worker-lib/webWorkerLink.d.ts +12 -0
- package/lib/worker-lib/webWorkerLink.js +96 -0
- package/lib/worker-lib/webWorkerLink.js.map +1 -0
- package/lib/worker-lib/workerUtils.d.ts +11 -0
- package/lib/worker-lib/workerUtils.js +178 -0
- package/lib/worker-lib/workerUtils.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BrowserRemoteRPC = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const event_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/event");
|
|
6
|
+
const buffer_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/buffer");
|
|
7
|
+
class BrowserRemoteRPC {
|
|
8
|
+
constructor(hostId = 2 /* HostIdentifier.BrowserExtHost */) {
|
|
9
|
+
this._$queue = new rxjs_1.ReplaySubject();
|
|
10
|
+
this._onMessage = new event_1.Emitter();
|
|
11
|
+
this._localHostId = hostId;
|
|
12
|
+
}
|
|
13
|
+
onMessage(event) {
|
|
14
|
+
return this._onMessage.event(event);
|
|
15
|
+
}
|
|
16
|
+
connect(socket) {
|
|
17
|
+
const subscription = this._$queue.subscribe(msg => socket.send(msg));
|
|
18
|
+
socket.onmessage = (msg) => {
|
|
19
|
+
const buff = new Uint8Array(msg.data);
|
|
20
|
+
// @sri in future version of @vscode-alt/monaco-editor we don't need to do add `Buffer.from`
|
|
21
|
+
// noticed `Buffer` in browser will be polyfilled by webpack
|
|
22
|
+
const vsBuffer = buffer_1.VSBuffer.wrap(Buffer.from(buff.buffer));
|
|
23
|
+
this._onMessage.fire(vsBuffer);
|
|
24
|
+
};
|
|
25
|
+
socket.onclose = event => {
|
|
26
|
+
subscription.unsubscribe();
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
send(buffer, hostIdentifier) {
|
|
30
|
+
const headerBuf = buffer_1.VSBuffer.alloc(2);
|
|
31
|
+
// add destination host id
|
|
32
|
+
headerBuf.writeUInt8(hostIdentifier, 0);
|
|
33
|
+
// add sender host id
|
|
34
|
+
headerBuf.writeUInt8(this._localHostId, 1);
|
|
35
|
+
const cocatBuf = buffer_1.VSBuffer.concat([headerBuf, buffer]);
|
|
36
|
+
// converts to ArrayBuffer and sends data
|
|
37
|
+
this._$queue.next(cocatBuf.buffer);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.BrowserRemoteRPC = BrowserRemoteRPC;
|
|
41
|
+
//# sourceMappingURL=old-browser-remote-rpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"old-browser-remote-rpc.js","sourceRoot":"","sources":["../../../src/connections/remote-rpc/old-browser-remote-rpc.ts"],"names":[],"mappings":";;;AACA,+BAA8C;AAC9C,8EAA6E;AAG7E,gFAA+E;AAE/E,MAAa,gBAAgB;IAKzB,YAAY,8CAAsD;QAJ1D,YAAO,GAAiB,IAAI,oBAAa,EAAO,CAAC;QAEjD,eAAU,GAAG,IAAI,eAAO,EAAY,CAAC;QAGzC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAEM,SAAS,CAAC,KAAK;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEM,OAAO,CAAC,MAAiB;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,SAAS,GAAG,CAAC,GAAiB,EAAE,EAAE;YACrC,MAAM,IAAI,GAAI,IAAI,UAAU,CAAc,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,6FAA6F;YAC7F,4DAA4D;YAC5D,MAAM,QAAQ,GAAG,iBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;YACrB,YAAY,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC;IACN,CAAC;IAEM,IAAI,CAAC,MAAgB,EAAE,cAAc;QACxC,MAAM,SAAS,GAAG,iBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,0BAA0B;QAC1B,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACxC,qBAAqB;QACrB,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,iBAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,yCAAyC;QACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACJ;AArCD,4CAqCC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Observable } from 'rxjs/Observable';
|
|
2
|
+
export declare type WebSocketPayload = string | ArrayBuffer | Blob;
|
|
3
|
+
export interface WebSocketLike {
|
|
4
|
+
close(): any;
|
|
5
|
+
send(data: WebSocketPayload): any;
|
|
6
|
+
onopen: ((event: any) => any) | null;
|
|
7
|
+
onclose: ((event: any) => any) | null;
|
|
8
|
+
onmessage: ((event: any) => any) | null;
|
|
9
|
+
onerror: ((event: any) => any) | null;
|
|
10
|
+
}
|
|
11
|
+
export declare type WebSocketFactory = (url: string, protocols: string | string[]) => WebSocketLike;
|
|
12
|
+
export declare type GetWebSocketResponses<T = WebSocketPayload> = (input: Observable<WebSocketPayload>) => Observable<T>;
|
|
13
|
+
export interface WebSocketOptions {
|
|
14
|
+
protocols: string | string[];
|
|
15
|
+
makeWebSocket: WebSocketFactory;
|
|
16
|
+
}
|
|
17
|
+
export declare const normalClosureMessage = "Normal closure";
|
|
18
|
+
export default function makeWebSocketObservable<T extends WebSocketPayload = WebSocketPayload>(url: string, { protocols, makeWebSocket }?: WebSocketOptions): Observable<GetWebSocketResponses<T>>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalClosureMessage = void 0;
|
|
4
|
+
const Observable_1 = require("rxjs/Observable");
|
|
5
|
+
const Subject_1 = require("rxjs/Subject");
|
|
6
|
+
const WebSocket = require("ws");
|
|
7
|
+
const defaultProtocols = [];
|
|
8
|
+
const defaultWebsocketFactory = (url, protocols) => new WebSocket(url, protocols);
|
|
9
|
+
exports.normalClosureMessage = 'Normal closure';
|
|
10
|
+
function makeWebSocketObservable(url, { protocols = defaultProtocols, makeWebSocket = defaultWebsocketFactory } = {
|
|
11
|
+
protocols: defaultProtocols,
|
|
12
|
+
makeWebSocket: defaultWebsocketFactory,
|
|
13
|
+
}) {
|
|
14
|
+
return new Observable_1.Observable(observer => {
|
|
15
|
+
let inputSubscription;
|
|
16
|
+
const messages = new Subject_1.Subject();
|
|
17
|
+
const socket = makeWebSocket(url, protocols);
|
|
18
|
+
let isSocketClosed = false;
|
|
19
|
+
let forcedClose = false;
|
|
20
|
+
const setClosedStatus = () => {
|
|
21
|
+
isSocketClosed = true;
|
|
22
|
+
};
|
|
23
|
+
const getWebSocketResponses = (input) => {
|
|
24
|
+
if (inputSubscription) {
|
|
25
|
+
setClosedStatus();
|
|
26
|
+
const error = new Error('Web socket message factory function called more than once');
|
|
27
|
+
observer.error(error);
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
inputSubscription = input.subscribe(data => {
|
|
32
|
+
socket.send(data);
|
|
33
|
+
});
|
|
34
|
+
return messages;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
socket.onopen = () => {
|
|
38
|
+
if (forcedClose) {
|
|
39
|
+
isSocketClosed = true;
|
|
40
|
+
socket.close();
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
observer.next(getWebSocketResponses);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
socket.onmessage = (message) => {
|
|
47
|
+
messages.next(message.data);
|
|
48
|
+
};
|
|
49
|
+
socket.onerror = (error) => {
|
|
50
|
+
setClosedStatus();
|
|
51
|
+
observer.error(new Error(error.message));
|
|
52
|
+
};
|
|
53
|
+
socket.onclose = (event) => {
|
|
54
|
+
// prevent observer.complete() being called after observer.error(...)
|
|
55
|
+
if (isSocketClosed) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
setClosedStatus();
|
|
59
|
+
if (forcedClose) {
|
|
60
|
+
observer.complete();
|
|
61
|
+
messages.complete();
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
observer.error(new Error(event.code === 1000 ? exports.normalClosureMessage : event.reason));
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
return () => {
|
|
68
|
+
forcedClose = true;
|
|
69
|
+
if (inputSubscription) {
|
|
70
|
+
inputSubscription.unsubscribe();
|
|
71
|
+
}
|
|
72
|
+
if (!isSocketClosed) {
|
|
73
|
+
setClosedStatus();
|
|
74
|
+
socket.close();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
exports.default = makeWebSocketObservable;
|
|
80
|
+
//# sourceMappingURL=rxjs-websockets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rxjs-websockets.js","sourceRoot":"","sources":["../../../src/connections/remote-rpc/rxjs-websockets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const CONTRIBUTION_ACTION_TYPES: {
|
|
2
|
+
GET_CONTRIBUTIONS: string;
|
|
3
|
+
REGISTER_CONTRIBUTIONS: string;
|
|
4
|
+
DEREGISTER_CONTRIBUTIONS: string;
|
|
5
|
+
REPLACE_CONTRIBUTIONS: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const COMMAND_ACTION_TYPES: {
|
|
8
|
+
REGISTER_COMMAND: string;
|
|
9
|
+
DEREGISTER_COMMAND: string;
|
|
10
|
+
EXECUTE_COMMAND: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const EXTENSION_ACTION_TYPES: {
|
|
13
|
+
GET_EXECUTABLE_EXTENIONS: string;
|
|
14
|
+
GET_CONFIGURED_EXTENSION: string;
|
|
15
|
+
GET_ENABLED_EXTENSION: string;
|
|
16
|
+
FETCH_ACTIVE_EXTENSIONS: string;
|
|
17
|
+
ACTIVE_EXTENSIONS: string;
|
|
18
|
+
FETCH_ENABLED_EXTENIONS: string;
|
|
19
|
+
ENABLED_EXTENSIONS: string;
|
|
20
|
+
FETCH_CONFIGURED_EXTENSIONS: string;
|
|
21
|
+
CONFIGURED_EXTENSIONS: string;
|
|
22
|
+
REGISTER_PROVIDERS: string;
|
|
23
|
+
OPEN_DOCUMENT: string;
|
|
24
|
+
OPEN_DOCUMENT_EPIC: string;
|
|
25
|
+
TEXT_POSITION: string;
|
|
26
|
+
};
|
|
27
|
+
export declare const SETTINGS_ACTION_TYPES: {
|
|
28
|
+
GET_SETTINGS: string;
|
|
29
|
+
UPDATE_SETTINGS: string;
|
|
30
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SETTINGS_ACTION_TYPES = exports.EXTENSION_ACTION_TYPES = exports.COMMAND_ACTION_TYPES = exports.CONTRIBUTION_ACTION_TYPES = void 0;
|
|
4
|
+
exports.CONTRIBUTION_ACTION_TYPES = {
|
|
5
|
+
GET_CONTRIBUTIONS: 'contribution/GET_CONTRIBUTIONS',
|
|
6
|
+
REGISTER_CONTRIBUTIONS: 'contribution/REGISTER_CONTRIBUTIONS',
|
|
7
|
+
DEREGISTER_CONTRIBUTIONS: 'contribution/DEREGISTER_CONTRIBUTIONS',
|
|
8
|
+
REPLACE_CONTRIBUTIONS: 'contribution/REPLACE_CONTRIBUTIONS',
|
|
9
|
+
};
|
|
10
|
+
exports.COMMAND_ACTION_TYPES = {
|
|
11
|
+
REGISTER_COMMAND: 'command/REGISTER_COMMAND',
|
|
12
|
+
DEREGISTER_COMMAND: 'command/DEREGISTER_COMMAND',
|
|
13
|
+
EXECUTE_COMMAND: 'command/EXECUTE_COMMAND',
|
|
14
|
+
};
|
|
15
|
+
exports.EXTENSION_ACTION_TYPES = {
|
|
16
|
+
// extensions
|
|
17
|
+
GET_EXECUTABLE_EXTENIONS: 'extension/GET_EXECUTABLE_EXTENIONS',
|
|
18
|
+
GET_CONFIGURED_EXTENSION: 'extension/GET_CONFIGURED_EXTENSION',
|
|
19
|
+
GET_ENABLED_EXTENSION: 'extension/GET_ENABLED_EXTENSION',
|
|
20
|
+
FETCH_ACTIVE_EXTENSIONS: 'extension/FETCH_ACTIVE_EXTENSIONS',
|
|
21
|
+
ACTIVE_EXTENSIONS: 'extension/ACTIVE_EXTENSIONS',
|
|
22
|
+
FETCH_ENABLED_EXTENIONS: 'extension/FETCH_ENABLED_EXTENIONS',
|
|
23
|
+
ENABLED_EXTENSIONS: 'extension/ENABLED_EXTENSIONS',
|
|
24
|
+
FETCH_CONFIGURED_EXTENSIONS: 'extension/FETCH_CONFIGURED_EXTENSIONS',
|
|
25
|
+
CONFIGURED_EXTENSIONS: 'extension/CONFIGURED_EXTENSIONS',
|
|
26
|
+
// registry
|
|
27
|
+
REGISTER_PROVIDERS: 'extension/REGISTER_PROVIDERS',
|
|
28
|
+
OPEN_DOCUMENT: 'extension/OPEN_DOCUMENT',
|
|
29
|
+
OPEN_DOCUMENT_EPIC: 'extension/OPEN_DOCUMENT_EPIC',
|
|
30
|
+
// Document
|
|
31
|
+
TEXT_POSITION: 'extension/TEXT_POSITION',
|
|
32
|
+
};
|
|
33
|
+
exports.SETTINGS_ACTION_TYPES = {
|
|
34
|
+
// settings
|
|
35
|
+
GET_SETTINGS: 'settings/GET_SETTINGS',
|
|
36
|
+
UPDATE_SETTINGS: 'settings/UPDATE_SETTINGS',
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=action-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-types.js","sourceRoot":"","sources":["../../src/constants/action-types.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAAG;IACrC,iBAAiB,EAAE,gCAAgC;IACnD,sBAAsB,EAAE,qCAAqC;IAC7D,wBAAwB,EAAE,uCAAuC;IACjE,qBAAqB,EAAE,oCAAoC;CAC9D,CAAA;AAEY,QAAA,oBAAoB,GAAG;IAChC,gBAAgB,EAAE,0BAA0B;IAC5C,kBAAkB,EAAE,4BAA4B;IAChD,eAAe,EAAE,yBAAyB;CAC7C,CAAA;AAEY,QAAA,sBAAsB,GAAG;IAClC,aAAa;IACb,wBAAwB,EAAE,oCAAoC;IAC9D,wBAAwB,EAAE,oCAAoC;IAC9D,qBAAqB,EAAE,iCAAiC;IACxD,uBAAuB,EAAE,mCAAmC;IAC5D,iBAAiB,EAAE,6BAA6B;IAChD,uBAAuB,EAAE,mCAAmC;IAC5D,kBAAkB,EAAE,8BAA8B;IAClD,2BAA2B,EAAE,uCAAuC;IACpE,qBAAqB,EAAE,iCAAiC;IACxD,WAAW;IACX,kBAAkB,EAAE,8BAA8B;IAElD,aAAa,EAAE,yBAAyB;IACxC,kBAAkB,EAAE,8BAA8B;IAElD,WAAW;IACX,aAAa,EAAE,yBAAyB;CAC3C,CAAC;AAGW,QAAA,qBAAqB,GAAG;IACjC,WAAW;IACX,YAAY,EAAE,uBAAuB;IACrC,eAAe,EAAE,0BAA0B;CAC9C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./action-types"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,iDAA+B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientTypes = void 0;
|
|
4
|
+
exports.ClientTypes = {
|
|
5
|
+
ICommandRegistry: Symbol.for('ICommandRegistry'),
|
|
6
|
+
IContributionRegistry: Symbol.for('IContributionRegistry'),
|
|
7
|
+
IExtensionService: Symbol.for('IExtensionService'),
|
|
8
|
+
IModelService: Symbol.for('IModelService'),
|
|
9
|
+
IViewerService: Symbol.for('IViewerService'),
|
|
10
|
+
IWindowsService: Symbol.for('IWindowsService'),
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/constants/types.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAG;IAEvB,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChD,qBAAqB,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC1D,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;IAC1C,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;CAEjD,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ExpressionNode } from './parser';
|
|
2
|
+
import { IContext } from '@adminide-stack/core';
|
|
3
|
+
/**
|
|
4
|
+
* A parsed context expression (that can evaluate to anything)
|
|
5
|
+
*/
|
|
6
|
+
export declare class Expression<T> {
|
|
7
|
+
private root;
|
|
8
|
+
constructor(root: ExpressionNode);
|
|
9
|
+
exec<C>(context: IContext): T;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A parsed template string that can contain `${contextKey}` interpolations.
|
|
13
|
+
* Always evaluates to a string.
|
|
14
|
+
*/
|
|
15
|
+
export declare class TemplateExpression<S extends string = string> extends Expression<S> {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Evaluates an expression with the given context and returns the result.
|
|
19
|
+
*/
|
|
20
|
+
export declare function parse<T>(expression: string): Expression<T>;
|
|
21
|
+
/**
|
|
22
|
+
* Evaluates a template with the given context and returns the result.
|
|
23
|
+
*
|
|
24
|
+
* A template is a string that interpolates expressions in ${...}. It uses the same syntax as
|
|
25
|
+
* JavaScript templates.
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseTemplate(template: string): TemplateExpression;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseTemplate = exports.parse = exports.TemplateExpression = exports.Expression = void 0;
|
|
4
|
+
const lexer_1 = require("./lexer");
|
|
5
|
+
const parser_1 = require("./parser");
|
|
6
|
+
/**
|
|
7
|
+
* A parsed context expression (that can evaluate to anything)
|
|
8
|
+
*/
|
|
9
|
+
class Expression {
|
|
10
|
+
constructor(root) {
|
|
11
|
+
this.root = root;
|
|
12
|
+
}
|
|
13
|
+
exec(context) {
|
|
14
|
+
return exec(this.root, context);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.Expression = Expression;
|
|
18
|
+
/**
|
|
19
|
+
* A parsed template string that can contain `${contextKey}` interpolations.
|
|
20
|
+
* Always evaluates to a string.
|
|
21
|
+
*/
|
|
22
|
+
class TemplateExpression extends Expression {
|
|
23
|
+
}
|
|
24
|
+
exports.TemplateExpression = TemplateExpression;
|
|
25
|
+
/**
|
|
26
|
+
* Evaluates an expression with the given context and returns the result.
|
|
27
|
+
*/
|
|
28
|
+
function parse(expression) {
|
|
29
|
+
return new Expression(new parser_1.Parser().parse(expression));
|
|
30
|
+
}
|
|
31
|
+
exports.parse = parse;
|
|
32
|
+
/**
|
|
33
|
+
* Evaluates a template with the given context and returns the result.
|
|
34
|
+
*
|
|
35
|
+
* A template is a string that interpolates expressions in ${...}. It uses the same syntax as
|
|
36
|
+
* JavaScript templates.
|
|
37
|
+
*/
|
|
38
|
+
function parseTemplate(template) {
|
|
39
|
+
return new TemplateExpression(new parser_1.TemplateParser().parse(template));
|
|
40
|
+
}
|
|
41
|
+
exports.parseTemplate = parseTemplate;
|
|
42
|
+
const FUNCS = {
|
|
43
|
+
get: (object, key) => { var _a; return (_a = object === null || object === void 0 ? void 0 : object[key]) !== null && _a !== void 0 ? _a : undefined; },
|
|
44
|
+
json: (object) => JSON.stringify(object),
|
|
45
|
+
};
|
|
46
|
+
function exec(node, context) {
|
|
47
|
+
if ('Literal' in node) {
|
|
48
|
+
switch (node.Literal.type) {
|
|
49
|
+
case lexer_1.TokenType.String:
|
|
50
|
+
return node.Literal.value;
|
|
51
|
+
case lexer_1.TokenType.Number:
|
|
52
|
+
return parseFloat(node.Literal.value);
|
|
53
|
+
default:
|
|
54
|
+
throw new SyntaxError(`Unrecognized literal of type ${lexer_1.TokenType[node.Literal.type]}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if ('Template' in node) {
|
|
58
|
+
const parts = [];
|
|
59
|
+
for (const expression of node.Template.parts) {
|
|
60
|
+
parts.push(exec(expression, context));
|
|
61
|
+
}
|
|
62
|
+
return parts.join('');
|
|
63
|
+
}
|
|
64
|
+
if ('Binary' in node) {
|
|
65
|
+
const left = exec(node.Binary.left, context);
|
|
66
|
+
const right = () => exec(node.Binary.right, context); // lazy evaluation
|
|
67
|
+
switch (node.Binary.operator) {
|
|
68
|
+
case '&&':
|
|
69
|
+
return left && right();
|
|
70
|
+
case '||':
|
|
71
|
+
return left || right();
|
|
72
|
+
case '==':
|
|
73
|
+
// eslint-disable-next-line eqeqeq
|
|
74
|
+
return left == right();
|
|
75
|
+
case '!=':
|
|
76
|
+
// eslint-disable-next-line eqeqeq
|
|
77
|
+
return left != right();
|
|
78
|
+
case '===':
|
|
79
|
+
return left === right();
|
|
80
|
+
case '!==':
|
|
81
|
+
return left !== right();
|
|
82
|
+
case '<':
|
|
83
|
+
return left < right();
|
|
84
|
+
case '>':
|
|
85
|
+
return left > right();
|
|
86
|
+
case '<=':
|
|
87
|
+
return left <= right();
|
|
88
|
+
case '>=':
|
|
89
|
+
return left >= right();
|
|
90
|
+
case '+':
|
|
91
|
+
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
|
92
|
+
return left + right();
|
|
93
|
+
case '-':
|
|
94
|
+
return left - right();
|
|
95
|
+
case '*':
|
|
96
|
+
return left * right();
|
|
97
|
+
case '/':
|
|
98
|
+
return left / right();
|
|
99
|
+
case '^':
|
|
100
|
+
return left ^ right();
|
|
101
|
+
case '%':
|
|
102
|
+
return left % right();
|
|
103
|
+
default:
|
|
104
|
+
throw new SyntaxError(`Invalid operator: ${node.Binary.operator}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if ('Unary' in node) {
|
|
108
|
+
const expression = exec(node.Unary.expression, context);
|
|
109
|
+
switch (node.Unary.operator) {
|
|
110
|
+
case '!':
|
|
111
|
+
return !expression;
|
|
112
|
+
case '+':
|
|
113
|
+
return expression;
|
|
114
|
+
case '-':
|
|
115
|
+
return -expression;
|
|
116
|
+
default:
|
|
117
|
+
throw new SyntaxError(`Invalid operator: ${node.Unary.operator}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if ('Identifier' in node) {
|
|
121
|
+
switch (node.Identifier) {
|
|
122
|
+
case 'true':
|
|
123
|
+
return true;
|
|
124
|
+
case 'false':
|
|
125
|
+
return false;
|
|
126
|
+
case 'undefined':
|
|
127
|
+
return undefined;
|
|
128
|
+
case 'null':
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
return context[node.Identifier];
|
|
132
|
+
}
|
|
133
|
+
if ('FunctionCall' in node) {
|
|
134
|
+
const expression = node.FunctionCall;
|
|
135
|
+
const func = FUNCS[expression.name];
|
|
136
|
+
if (typeof func === 'function') {
|
|
137
|
+
const args = expression.args.map(argument => exec(argument, context));
|
|
138
|
+
return func(...args);
|
|
139
|
+
}
|
|
140
|
+
throw new SyntaxError(`Undefined function: ${expression.name}`);
|
|
141
|
+
}
|
|
142
|
+
throw new SyntaxError('Unrecognized syntax node');
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=evaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/core/expr/evaluator.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,qCAAiE;AAIjE;;GAEG;AACH,MAAa,UAAU;IACnB,YAAoB,IAAoB;QAApB,SAAI,GAAJ,IAAI,CAAgB;IAAG,CAAC;IAErC,IAAI,CAAI,OAAiB;QAC5B,OAAO,IAAI,CAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACtC,CAAC;CACJ;AAND,gCAMC;AAED;;;GAGG;AACH,MAAa,kBAA8C,SAAQ,UAAa;CAAG;AAAnF,gDAAmF;AAEnF;;GAEG;AACH,SAAgB,KAAK,CAAI,UAAkB;IACvC,OAAO,IAAI,UAAU,CAAI,IAAI,eAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;AAC5D,CAAC;AAFD,sBAEC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,QAAgB;IAC1C,OAAO,IAAI,kBAAkB,CAAC,IAAI,uBAAc,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AACvE,CAAC;AAFD,sCAEC;AAED,MAAM,KAAK,GAAgD;IACvD,GAAG,EAAE,CAAC,MAAW,EAAE,GAAW,EAAO,EAAE,WAAC,OAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,CAAC,mCAAI,SAAS,CAAA,EAAA;IAClE,IAAI,EAAE,CAAC,MAAW,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;CACxD,CAAA;AAED,SAAS,IAAI,CAAI,IAAoB,EAAE,OAAiB;IACpD,IAAI,SAAS,IAAI,IAAI,EAAE;QACnB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACvB,KAAK,iBAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;YAC7B,KAAK,iBAAS,CAAC,MAAM;gBACjB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACzC;gBACI,MAAM,IAAI,WAAW,CAAC,gCAAgC,iBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SAC5F;KACJ;IAED,IAAI,UAAU,IAAI,IAAI,EAAE;QACpB,MAAM,KAAK,GAAU,EAAE,CAAA;QACvB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;SACxC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KACxB;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,GAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA,CAAC,kBAAkB;QAC5E,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC1B,KAAK,IAAI;gBACL,OAAO,IAAI,IAAI,KAAK,EAAE,CAAA;YAC1B,KAAK,IAAI;gBACL,OAAO,IAAI,IAAI,KAAK,EAAE,CAAA;YAC1B,KAAK,IAAI;gBACL,kCAAkC;gBAClC,OAAO,IAAI,IAAI,KAAK,EAAE,CAAA;YAC1B,KAAK,IAAI;gBACL,kCAAkC;gBAClC,OAAO,IAAI,IAAI,KAAK,EAAE,CAAA;YAC1B,KAAK,KAAK;gBACN,OAAO,IAAI,KAAK,KAAK,EAAE,CAAA;YAC3B,KAAK,KAAK;gBACN,OAAO,IAAI,KAAK,KAAK,EAAE,CAAA;YAC3B,KAAK,GAAG;gBACJ,OAAO,IAAI,GAAG,KAAK,EAAE,CAAA;YACzB,KAAK,GAAG;gBACJ,OAAO,IAAI,GAAG,KAAK,EAAE,CAAA;YACzB,KAAK,IAAI;gBACL,OAAO,IAAI,IAAI,KAAK,EAAE,CAAA;YAC1B,KAAK,IAAI;gBACL,OAAO,IAAI,IAAI,KAAK,EAAE,CAAA;YAC1B,KAAK,GAAG;gBACJ,qEAAqE;gBACrE,OAAO,IAAI,GAAG,KAAK,EAAE,CAAA;YACzB,KAAK,GAAG;gBACJ,OAAO,IAAI,GAAG,KAAK,EAAE,CAAA;YACzB,KAAK,GAAG;gBACJ,OAAO,IAAI,GAAG,KAAK,EAAE,CAAA;YACzB,KAAK,GAAG;gBACJ,OAAO,IAAI,GAAG,KAAK,EAAE,CAAA;YACzB,KAAK,GAAG;gBACJ,OAAO,IAAI,GAAG,KAAK,EAAE,CAAA;YACzB,KAAK,GAAG;gBACJ,OAAO,IAAI,GAAG,KAAK,EAAE,CAAA;YACzB;gBACI,MAAM,IAAI,WAAW,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;SACzE;KACJ;IAED,IAAI,OAAO,IAAI,IAAI,EAAE;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACvD,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACzB,KAAK,GAAG;gBACJ,OAAO,CAAC,UAAU,CAAA;YACtB,KAAK,GAAG;gBACJ,OAAO,UAAU,CAAA;YACrB,KAAK,GAAG;gBACJ,OAAO,CAAC,UAAU,CAAA;YACtB;gBACI,MAAM,IAAI,WAAW,CAAC,qBAAqB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;SACxE;KACJ;IAED,IAAI,YAAY,IAAI,IAAI,EAAE;QACtB,QAAQ,IAAI,CAAC,UAAU,EAAE;YACrB,KAAK,MAAM;gBACP,OAAO,IAAI,CAAA;YACf,KAAK,OAAO;gBACR,OAAO,KAAK,CAAA;YAChB,KAAK,WAAW;gBACZ,OAAO,SAAS,CAAA;YACpB,KAAK,MAAM;gBACP,OAAO,IAAI,CAAA;SAClB;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KAClC;IAED,IAAI,cAAc,IAAI,IAAI,EAAE;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;YACrE,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;SACvB;QACD,MAAM,IAAI,WAAW,CAAC,uBAAuB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;KAClE;IAED,MAAM,IAAI,WAAW,CAAC,0BAA0B,CAAC,CAAA;AACrD,CAAC"}
|
|
@@ -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 = (0, 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,IAAA,iBAAK,EAAU,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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./evaluator"), exports);
|
|
18
|
+
__exportStar(require("./lexer"), exports);
|
|
19
|
+
__exportStar(require("./parser"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/expr/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB"}
|