@adminide-stack/extension-api 10.2.2-alpha.7 → 10.2.3-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.
- 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/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.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.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 +12 -10
- 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
@@ -2,25 +2,24 @@ import {TokenType}from'./lexer.js';import {Parser,TemplateParser}from'./parser.j
|
|
2
2
|
* A parsed context expression (that can evaluate to anything)
|
3
3
|
*/
|
4
4
|
class Expression {
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
5
|
+
root;
|
6
|
+
constructor(root) {
|
7
|
+
this.root = root;
|
8
|
+
}
|
9
|
+
exec(context) {
|
10
|
+
return exec(this.root, context);
|
11
|
+
}
|
12
12
|
}
|
13
13
|
/**
|
14
14
|
* A parsed template string that can contain `${contextKey}` interpolations.
|
15
15
|
* Always evaluates to a string.
|
16
16
|
*/
|
17
|
-
class TemplateExpression extends Expression {
|
18
|
-
}
|
17
|
+
class TemplateExpression extends Expression {}
|
19
18
|
/**
|
20
19
|
* Evaluates an expression with the given context and returns the result.
|
21
20
|
*/
|
22
21
|
function parse(expression) {
|
23
|
-
|
22
|
+
return new Expression(new Parser().parse(expression));
|
24
23
|
}
|
25
24
|
/**
|
26
25
|
* Evaluates a template with the given context and returns the result.
|
@@ -29,107 +28,107 @@ function parse(expression) {
|
|
29
28
|
* JavaScript templates.
|
30
29
|
*/
|
31
30
|
function parseTemplate(template) {
|
32
|
-
|
31
|
+
return new TemplateExpression(new TemplateParser().parse(template));
|
33
32
|
}
|
34
33
|
const FUNCS = {
|
35
|
-
|
36
|
-
|
34
|
+
get: (object, key) => object?.[key] ?? undefined,
|
35
|
+
json: object => JSON.stringify(object)
|
37
36
|
};
|
38
37
|
function exec(node, context) {
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
}
|
38
|
+
if ('Literal' in node) {
|
39
|
+
switch (node.Literal.type) {
|
40
|
+
case TokenType.String:
|
41
|
+
return node.Literal.value;
|
42
|
+
case TokenType.Number:
|
43
|
+
return parseFloat(node.Literal.value);
|
44
|
+
default:
|
45
|
+
throw new SyntaxError(`Unrecognized literal of type ${TokenType[node.Literal.type]}`);
|
48
46
|
}
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
return parts.join('');
|
47
|
+
}
|
48
|
+
if ('Template' in node) {
|
49
|
+
const parts = [];
|
50
|
+
for (const expression of node.Template.parts) {
|
51
|
+
parts.push(exec(expression, context));
|
55
52
|
}
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
53
|
+
return parts.join('');
|
54
|
+
}
|
55
|
+
if ('Binary' in node) {
|
56
|
+
const left = exec(node.Binary.left, context);
|
57
|
+
const right = () => exec(node.Binary.right, context); // lazy evaluation
|
58
|
+
switch (node.Binary.operator) {
|
59
|
+
case '&&':
|
60
|
+
return left && right();
|
61
|
+
case '||':
|
62
|
+
return left || right();
|
63
|
+
case '==':
|
64
|
+
// eslint-disable-next-line eqeqeq
|
65
|
+
return left == right();
|
66
|
+
case '!=':
|
67
|
+
// eslint-disable-next-line eqeqeq
|
68
|
+
return left != right();
|
69
|
+
case '===':
|
70
|
+
return left === right();
|
71
|
+
case '!==':
|
72
|
+
return left !== right();
|
73
|
+
case '<':
|
74
|
+
return left < right();
|
75
|
+
case '>':
|
76
|
+
return left > right();
|
77
|
+
case '<=':
|
78
|
+
return left <= right();
|
79
|
+
case '>=':
|
80
|
+
return left >= right();
|
81
|
+
case '+':
|
82
|
+
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
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
|
+
return left ^ right();
|
92
|
+
case '%':
|
93
|
+
return left % right();
|
94
|
+
default:
|
95
|
+
throw new SyntaxError(`Invalid operator: ${node.Binary.operator}`);
|
98
96
|
}
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
}
|
97
|
+
}
|
98
|
+
if ('Unary' in node) {
|
99
|
+
const expression = exec(node.Unary.expression, context);
|
100
|
+
switch (node.Unary.operator) {
|
101
|
+
case '!':
|
102
|
+
return !expression;
|
103
|
+
case '+':
|
104
|
+
return expression;
|
105
|
+
case '-':
|
106
|
+
return -expression;
|
107
|
+
default:
|
108
|
+
throw new SyntaxError(`Invalid operator: ${node.Unary.operator}`);
|
111
109
|
}
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
return context[node.Identifier];
|
110
|
+
}
|
111
|
+
if ('Identifier' in node) {
|
112
|
+
switch (node.Identifier) {
|
113
|
+
case 'true':
|
114
|
+
return true;
|
115
|
+
case 'false':
|
116
|
+
return false;
|
117
|
+
case 'undefined':
|
118
|
+
return undefined;
|
119
|
+
case 'null':
|
120
|
+
return null;
|
124
121
|
}
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
122
|
+
return context[node.Identifier];
|
123
|
+
}
|
124
|
+
if ('FunctionCall' in node) {
|
125
|
+
const expression = node.FunctionCall;
|
126
|
+
const func = FUNCS[expression.name];
|
127
|
+
if (typeof func === 'function') {
|
128
|
+
const args = expression.args.map(argument => exec(argument, context));
|
129
|
+
return func(...args);
|
133
130
|
}
|
134
|
-
throw new SyntaxError(
|
135
|
-
}
|
131
|
+
throw new SyntaxError(`Undefined function: ${expression.name}`);
|
132
|
+
}
|
133
|
+
throw new SyntaxError('Unrecognized syntax node');
|
134
|
+
}export{Expression,TemplateExpression,parse,parseTemplate};//# sourceMappingURL=evaluator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"evaluator.js","sources":["../../../src/core/expr/evaluator.ts"],"sourcesContent":[null],"names":[],"mappings":"mFAIA;;AAEG;MACU,UAAU,CAAA;AACC,EAAA,IAAA;AAApB,EAAA,WAAA,CAAA,IAAwC,EAAA;QAApB,CAAI,IAAA,GAAA,IAAJ;;AAEb,EAAA,IAAA,CAAA,OAAyB,EAAA;WACrB,IAAA,CAAA,IAAQ,CAAI,IAAC,SAAM,CAAA;;AAEjC;AAED;;;AAGG;AACG,MAAO,kBAA8C,SAAQ,UAAa,CAAA;AAAG;AAEnF;;AAEG,SAAA,KAAA,CAAA,UAAA,EAAA;AACH,EAAM,OAAA,IAAA,UAAqC,CAAA,IAAA,MAAA,EAAA,CAAA,KAAA,CAAA,UAAA,CAAA,CAAA;AACvC;AACJ;AAEA;;;;;AAKG,SAAA,aAAA,CAAA,QAAA,EAAA;AACH,EAAM,OAAA,IAAA,kBAAwC,CAAA,IAAA,cAAA,EAAA,CAAA,KAAA,CAAA,QAAA,CAAA,CAAA;AAC1C;AACJ,MAAC,KAAA,GAAA;AAED,EAAA,GAAA,SAA2D,EAAA,GAAA,KAAA,MAAA,GAAA,GAAA,CAAA,IAAA,SAAA;AACvD,EAAA,IAAA,EAAK,MAAY,IAAE,IAAkB,CAAA,SAAS,CAAE,MAAK;;SAEvD,IAAA,CAAA,IAAA,EAAA,OAAA,EAAA;AAEF,EAAA,IAAA,SAAqC,IAAA,IAAmB,EAAA;AACpD,IAAA,QAAa,IAAA,CAAA,OAAQ,CAAA,IAAG;AACpB,MAAA,KAAA,SAAY,CAAC,MAAA;eACJ,IAAA,CAAA,OAAU,CAAM,KAAA;AACjB,MAAA,KAAA,SAAA,CAAA,MAAW;eACV,UAAA,CAAS,IAAO,CAAA,OAAA,CAAA,KAAA,CAAA;;AAErB,QAAA,MAAA,IAAA,WAAA,CAAA,CAAA,6BAAA,EAAA,SAAA,CAAA,IAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AACI;;MAEX,UAAA,IAAA,IAAA,EAAA;AAED,IAAA,MAAc,KAAA,GAAA,EAAA;SACJ,MAAA,UAAkB,IAAA,IAAA,CAAA,QAAA,CAAA,KAAA,EAAA;WACnB,CAAA,IAAA,CAAA,eAAoB,EAAA,OAAa,CAAA,CAAA;;WAErC,KAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AACD;MACH,QAAA,IAAA,IAAA,EAAA;AAED,IAAA,MAAY,IAAA,GAAA,IAAQ,CAAA,IAAE,CAAC,MAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AACnB,IAAA,MAAA,KAAU,GAAA,MAAO,IAAK,CAAA,IAAO,CAAA,MAAK,CAAA,KAAS,EAAA,OAAE,CAAA,CAAA;AAC7C,IAAA,QAAA,WAAc,CAAA,QAAe;AAC7B,MAAA,KAAA,IAAA;AACI,QAAA,OAAA,IAAS,IAAA,KAAA,EAAA;AACL,MAAA,KAAA,IAAA;AACJ,QAAA,OAAA,IAAS,IAAA,KAAA,EAAA;AACL,MAAA,KAAA,IAAA;AACJ;mBACsC,IAAA,KAAA,EAAA;AAClC,MAAA,KAAA,IAAA;AACJ;mBACsC,IAAA,KAAA,EAAA;AAClC,MAAA,KAAA,KAAA;AACJ,QAAA,OAAA,IAAU,KAAA,KAAA,EAAA;AACN,MAAA,KAAA,KAAA;AACJ,QAAA,OAAA,IAAU,KAAA,KAAA,EAAA;AACN,MAAA,KAAA,GAAA;AACJ,QAAA,OAAA,IAAQ,GAAA,KAAA,EAAA;AACJ,MAAA,KAAA,GAAA;AACJ,QAAA,OAAA,IAAQ,GAAA,KAAA,EAAA;AACJ,MAAA,KAAA,IAAA;AACJ,QAAA,OAAA,IAAS,IAAA,KAAA,EAAA;AACL,MAAA,KAAA,IAAA;AACJ,QAAA,OAAA,IAAS,IAAA,KAAA,EAAA;AACL,MAAA,KAAA,GAAA;AACJ;mBACyE,GAAA,KAAA,EAAA;AACrE,MAAA,KAAA,GAAA;AACJ,QAAA,OAAA,IAAQ,GAAA,KAAA,EAAA;AACJ,MAAA,KAAA,GAAA;AACJ,QAAA,OAAA,IAAQ,GAAA,KAAA,EAAA;AACJ,MAAA,KAAA,GAAA;AACJ,QAAA,OAAA,IAAQ,GAAA,KAAA,EAAA;AACJ,MAAA,KAAA,GAAA;AACJ,QAAA,OAAA,IAAQ,GAAA,KAAA,EAAA;AACJ,MAAA,KAAA,GAAA;AACJ,QAAA,OAAA,IAAQ,GAAA,KAAA,EAAA;AACJ,MAAA;AACJ,QAAA,MAAA,IAAA,WAAA,CAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;;;MAGP,OAAA,IAAA,IAAA,EAAA;AAED,IAAA,MAAW,UAAQ,GAAA,IAAG,CAAA,IAAA,CAAA,KAAA,CAAA,UAAA,EAAA,OAAA,CAAA;AAClB,IAAA,QAAA,IAAgB,CAAA,KAAA,CAAA,QAAO;AACvB,MAAA,KAAA,GAAA;AACI,QAAA,OAAA,CAAA,UAAQ;;AAER,QAAA,OAAA,UAAQ;AACJ,MAAA,KAAA,GAAA;AACJ,QAAA,OAAA,CAAA,UAAQ;;AAER,QAAA,MAAA,IAAA,WAAA,CAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,KAAA,CAAA,QAAA,CAAA,CAAA,CAAA;;;MAGP,YAAA,IAAA,IAAA,EAAA;AAED,IAAA,QAAgB,IAAA,CAAA,UAAQ;AACpB,MAAA,KAAA,MAAY;AACR,QAAA,OAAA,IAAW;AACP,MAAA,KAAA,OAAA;AACJ,QAAA,OAAA,KAAY;AACR,MAAA,KAAA,WAAA;AACJ,QAAA,OAAA,SAAgB;AACZ,MAAA,KAAA,MAAA;AACJ,QAAA,OAAA,IAAW;AACP;WACP,OAAA,CAAA,IAAA,CAAA,UAAA,CAAA;AACD;MACH,cAAA,IAAA,IAAA,EAAA;AAED,IAAA,MAAkB,UAAA,GAAA,IAAQ,CAAA,YAAG;AACzB,IAAA,MAAA,IAAM,GAAU,KAAA,CAAA;QAChB,OAAM,SAAY;AAClB,MAAA,MAAI,IAAO,GAAA,UAAS,CAAA,IAAA,CAAA,GAAU,SAAG,IAAA,IAAA,CAAA,QAAA,EAAA,OAAA,CAAA,CAAA;aACvB,IAAA,CAAA,GAAA,IAAO,CAAU;AACvB;UACH,IAAA,WAAA,CAAA,CAAA,oBAAA,EAAA,UAAA,CAAA,IAAA,CAAA,CAAA,CAAA;;QAEJ,IAAA,WAAA,CAAA,0BAAA,CAAA;AAED"}
|