@opensumi/ide-connection 2.27.3-rc-1714982362.0 → 2.27.3-rc-1715052394.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/lib/common/protocols/common.d.ts +54 -0
- package/lib/common/protocols/common.d.ts.map +1 -1
- package/lib/common/protocols/common.js +17 -1
- package/lib/common/protocols/common.js.map +1 -1
- package/lib/common/protocols/extensions/ext-host-documents.d.ts +6 -0
- package/lib/common/protocols/extensions/ext-host-documents.d.ts.map +1 -0
- package/lib/common/protocols/extensions/ext-host-documents.js +68 -0
- package/lib/common/protocols/extensions/ext-host-documents.js.map +1 -0
- package/lib/common/rpc/message-io.d.ts.map +1 -1
- package/lib/common/rpc/message-io.js +4 -1
- package/lib/common/rpc/message-io.js.map +1 -1
- package/lib/common/rpc/multiplexer.d.ts +12 -2
- package/lib/common/rpc/multiplexer.d.ts.map +1 -1
- package/lib/common/rpc/multiplexer.js +19 -1
- package/lib/common/rpc/multiplexer.js.map +1 -1
- package/package.json +5 -5
- package/src/common/protocols/common.ts +19 -0
- package/src/common/protocols/extensions/ext-host-documents.ts +69 -0
- package/src/common/rpc/message-io.ts +6 -1
- package/src/common/rpc/multiplexer.ts +33 -2
|
@@ -21,4 +21,58 @@ export declare const UriComponentsProto: {
|
|
|
21
21
|
} | undefined;
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
|
+
export declare const RangeProto: {
|
|
25
|
+
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
26
|
+
options: {
|
|
27
|
+
tag: string;
|
|
28
|
+
props: {
|
|
29
|
+
startLineNumber: {
|
|
30
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
31
|
+
};
|
|
32
|
+
startColumn: {
|
|
33
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
34
|
+
};
|
|
35
|
+
endLineNumber: {
|
|
36
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
37
|
+
};
|
|
38
|
+
endColumn: {
|
|
39
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
40
|
+
};
|
|
41
|
+
} | undefined;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export declare const SelectionProto: {
|
|
45
|
+
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
46
|
+
options: {
|
|
47
|
+
tag: string;
|
|
48
|
+
props: {
|
|
49
|
+
selectionStartLineNumber: {
|
|
50
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
51
|
+
};
|
|
52
|
+
selectionStartColumn: {
|
|
53
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
54
|
+
};
|
|
55
|
+
positionLineNumber: {
|
|
56
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
57
|
+
};
|
|
58
|
+
positionColumn: {
|
|
59
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
60
|
+
};
|
|
61
|
+
} | undefined;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export declare const PositionProto: {
|
|
65
|
+
type: import("@furyjs/fury").InternalSerializerType.FURY_TYPE_TAG;
|
|
66
|
+
options: {
|
|
67
|
+
tag: string;
|
|
68
|
+
props: {
|
|
69
|
+
lineNumber: {
|
|
70
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
71
|
+
};
|
|
72
|
+
column: {
|
|
73
|
+
type: import("@furyjs/fury").InternalSerializerType.UINT32;
|
|
74
|
+
};
|
|
75
|
+
} | undefined;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
24
78
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/common/protocols/common.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;CAM7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/common/protocols/common.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;CAM7B,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;CAKrB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;CAKzB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;CAGxB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UriComponentsProto = void 0;
|
|
3
|
+
exports.PositionProto = exports.SelectionProto = exports.RangeProto = exports.UriComponentsProto = void 0;
|
|
4
4
|
const fury_1 = require("@furyjs/fury");
|
|
5
5
|
exports.UriComponentsProto = fury_1.Type.object('uri-components', {
|
|
6
6
|
scheme: fury_1.Type.string(),
|
|
@@ -9,4 +9,20 @@ exports.UriComponentsProto = fury_1.Type.object('uri-components', {
|
|
|
9
9
|
query: fury_1.Type.string(),
|
|
10
10
|
fragment: fury_1.Type.string(),
|
|
11
11
|
});
|
|
12
|
+
exports.RangeProto = fury_1.Type.object('range', {
|
|
13
|
+
startLineNumber: fury_1.Type.uint32(),
|
|
14
|
+
startColumn: fury_1.Type.uint32(),
|
|
15
|
+
endLineNumber: fury_1.Type.uint32(),
|
|
16
|
+
endColumn: fury_1.Type.uint32(),
|
|
17
|
+
});
|
|
18
|
+
exports.SelectionProto = fury_1.Type.object('selection', {
|
|
19
|
+
selectionStartLineNumber: fury_1.Type.uint32(),
|
|
20
|
+
selectionStartColumn: fury_1.Type.uint32(),
|
|
21
|
+
positionLineNumber: fury_1.Type.uint32(),
|
|
22
|
+
positionColumn: fury_1.Type.uint32(),
|
|
23
|
+
});
|
|
24
|
+
exports.PositionProto = fury_1.Type.object('position', {
|
|
25
|
+
lineNumber: fury_1.Type.uint32(),
|
|
26
|
+
column: fury_1.Type.uint32(),
|
|
27
|
+
});
|
|
12
28
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/common/protocols/common.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAEvB,QAAA,kBAAkB,GAAG,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;IAC9D,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,WAAI,CAAC,MAAM,EAAE;IACxB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,WAAI,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/common/protocols/common.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAEvB,QAAA,kBAAkB,GAAG,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;IAC9D,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,WAAI,CAAC,MAAM,EAAE;IACxB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,WAAI,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG,WAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IAC7C,eAAe,EAAE,WAAI,CAAC,MAAM,EAAE;IAC9B,WAAW,EAAE,WAAI,CAAC,MAAM,EAAE;IAC1B,aAAa,EAAE,WAAI,CAAC,MAAM,EAAE;IAC5B,SAAS,EAAE,WAAI,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,WAAI,CAAC,MAAM,CAAC,WAAW,EAAE;IACrD,wBAAwB,EAAE,WAAI,CAAC,MAAM,EAAE;IACvC,oBAAoB,EAAE,WAAI,CAAC,MAAM,EAAE;IACnC,kBAAkB,EAAE,WAAI,CAAC,MAAM,EAAE;IACjC,cAAc,EAAE,WAAI,CAAC,MAAM,EAAE;CAC9B,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,WAAI,CAAC,MAAM,CAAC,UAAU,EAAE;IACnD,UAAU,EAAE,WAAI,CAAC,MAAM,EAAE;IACzB,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ext-host-documents.d.ts","sourceRoot":"","sources":["../../../../src/common/protocols/extensions/ext-host-documents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,aA4DvC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtensionDocumentProtocol = void 0;
|
|
4
|
+
const fury_1 = require("@furyjs/fury");
|
|
5
|
+
const common_1 = require("../common");
|
|
6
|
+
/**
|
|
7
|
+
* {@link IExtensionHostDocService}
|
|
8
|
+
*/
|
|
9
|
+
exports.ExtensionDocumentProtocol = {
|
|
10
|
+
name: 'ExtHostDocuments',
|
|
11
|
+
methods: [
|
|
12
|
+
{
|
|
13
|
+
method: '$fireModelChangedEvent',
|
|
14
|
+
request: [
|
|
15
|
+
{
|
|
16
|
+
name: 'event',
|
|
17
|
+
type: fury_1.Type.object('model-changed-event', {
|
|
18
|
+
changes: fury_1.Type.array(fury_1.Type.object('model-changed-event-changes', {
|
|
19
|
+
range: common_1.RangeProto,
|
|
20
|
+
rangeLength: fury_1.Type.uint32(),
|
|
21
|
+
rangeOffset: fury_1.Type.uint32(),
|
|
22
|
+
text: fury_1.Type.string(),
|
|
23
|
+
})),
|
|
24
|
+
uri: fury_1.Type.string(),
|
|
25
|
+
versionId: fury_1.Type.uint32(),
|
|
26
|
+
eol: fury_1.Type.string(),
|
|
27
|
+
dirty: fury_1.Type.bool(),
|
|
28
|
+
isRedoing: fury_1.Type.bool(),
|
|
29
|
+
isUndoing: fury_1.Type.bool(),
|
|
30
|
+
}),
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
method: '$fireModelOpenedEvent',
|
|
36
|
+
request: [
|
|
37
|
+
{
|
|
38
|
+
name: 'event',
|
|
39
|
+
type: fury_1.Type.object('model-open-event', {
|
|
40
|
+
uri: fury_1.Type.string(),
|
|
41
|
+
lines: fury_1.Type.array(fury_1.Type.string()),
|
|
42
|
+
eol: fury_1.Type.string(),
|
|
43
|
+
versionId: fury_1.Type.uint32(),
|
|
44
|
+
languageId: fury_1.Type.string(),
|
|
45
|
+
dirty: fury_1.Type.bool(),
|
|
46
|
+
}),
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
method: '$provideTextDocumentContent',
|
|
52
|
+
request: [
|
|
53
|
+
{
|
|
54
|
+
name: 'path',
|
|
55
|
+
type: fury_1.Type.string(),
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'encoding',
|
|
59
|
+
type: fury_1.Type.string(),
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
response: {
|
|
63
|
+
type: fury_1.Type.string(),
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=ext-host-documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ext-host-documents.js","sourceRoot":"","sources":["../../../../src/common/protocols/extensions/ext-host-documents.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAGpC,sCAAuC;AAEvC;;GAEG;AACU,QAAA,yBAAyB,GAAkB;IACtD,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE;QACP;YACE,MAAM,EAAE,wBAAwB;YAChC,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;wBACvC,OAAO,EAAE,WAAI,CAAC,KAAK,CACjB,WAAI,CAAC,MAAM,CAAC,6BAA6B,EAAE;4BACzC,KAAK,EAAE,mBAAU;4BACjB,WAAW,EAAE,WAAI,CAAC,MAAM,EAAE;4BAC1B,WAAW,EAAE,WAAI,CAAC,MAAM,EAAE;4BAC1B,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;yBACpB,CAAC,CACH;wBACD,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;wBAClB,SAAS,EAAE,WAAI,CAAC,MAAM,EAAE;wBACxB,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;wBAClB,KAAK,EAAE,WAAI,CAAC,IAAI,EAAE;wBAClB,SAAS,EAAE,WAAI,CAAC,IAAI,EAAE;wBACtB,SAAS,EAAE,WAAI,CAAC,IAAI,EAAE;qBACvB,CAAC;iBACH;aACF;SACF;QACD;YACE,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;wBACpC,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;wBAClB,KAAK,EAAE,WAAI,CAAC,KAAK,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC;wBAChC,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;wBAClB,SAAS,EAAE,WAAI,CAAC,MAAM,EAAE;wBACxB,UAAU,EAAE,WAAI,CAAC,MAAM,EAAE;wBACzB,KAAK,EAAE,WAAI,CAAC,IAAI,EAAE;qBACnB,CAAC;iBACH;aACF;SACF;QACD;YACE,MAAM,EAAE,6BAA6B;YACrC,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;iBACpB;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;iBACpB;aACF;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;aACpB;SACF;KACF;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-io.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/message-io.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,UAAU,EAAyB,MAAM,cAAc,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAOxE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAGhB,aAAa,EACb,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAIjB,oBAAY,aAAa;IACvB,OAAO,IAAA;IACP,YAAY,IAAA;IACZ,QAAQ,IAAA;IACR,MAAM,IAAA;CACP;AAED,oBAAY,MAAM;IAChB,EAAE,IAAA;IACF,GAAG,IAAA;CACJ;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;CAOf,CAAC;
|
|
1
|
+
{"version":3,"file":"message-io.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/message-io.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,UAAU,EAAyB,MAAM,cAAc,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAOxE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAGhB,aAAa,EACb,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAIjB,oBAAY,aAAa;IACvB,OAAO,IAAA;IACP,YAAY,IAAA;IACZ,QAAQ,IAAA;IACR,MAAM,IAAA;CACP;AAED,oBAAY,MAAM;IAChB,EAAE,IAAA;IACF,GAAG,IAAA;CACJ;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;CAOf,CAAC;AA4DX,qBAAa,SAAS;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IAErB,OAAO,CAAC,aAAa,CAA6C;IAElE,OAAO,CAAC,aAAa,CAAwB;IAE7C,wBAAwB,EAAE,UAAU,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACvE,yBAAyB,EAAE,UAAU,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;;IAczE,GAAG,CAAC,IAAI,EAAE,MAAM;IAIhB,YAAY,CACV,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;KACzC;IASH,kBAAkB,CAChB,cAAc,EAAE,mBAAmB,EACnC,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;KACzC;IASH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAQjD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE;IAcrF,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE;IAchF,MAAM,CAAC,SAAS,EAAE,MAAM;IAUxB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG;IAcrF,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG;CAalF"}
|
|
@@ -35,7 +35,10 @@ class SumiProtocolSerializer {
|
|
|
35
35
|
argsTuple.push(element.type);
|
|
36
36
|
}
|
|
37
37
|
const requestProto = fury_1.Type.tuple(argsTuple);
|
|
38
|
-
|
|
38
|
+
let resultProto = fury_1.Type.any();
|
|
39
|
+
if (methodProtocol.response && methodProtocol.response.type) {
|
|
40
|
+
resultProto = methodProtocol.response.type;
|
|
41
|
+
}
|
|
39
42
|
this.request = this.fury.registerSerializer(requestProto);
|
|
40
43
|
this.result = this.fury.registerSerializer(resultProto);
|
|
41
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-io.js","sourceRoot":"","sources":["../../../src/common/rpc/message-io.ts"],"names":[],"mappings":";;;AAAA,uCAAuE;AACvE,mDAA+D;AAG/D,+DAAqE;AAErE,6CAAoD;AACpD,mDAAqD;AAYrD,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,uDAAO,CAAA;IACP,iEAAY,CAAA;IACZ,yDAAQ,CAAA;IACR,qDAAM,CAAA;AACR,CAAC,EALW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAKxB;AAED,IAAY,MAGX;AAHD,WAAY,MAAM;IAChB,+BAAE,CAAA;IACF,iCAAG,CAAA;AACL,CAAC,EAHW,MAAM,GAAN,cAAM,KAAN,cAAM,QAGjB;AAEY,QAAA,YAAY,GAAG;IAC1B,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC,aAAa,EAAE;QAClC,UAAU,EAAE,WAAI,CAAC,IAAI,EAAE;KACxB,CAAC;IACF,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,cAAc,EAAE;QACpC,OAAO,EAAE,WAAI,CAAC,IAAI,EAAE;KACrB,CAAC;CACM,CAAC;AAEX,MAAM,sBAAsB;IAI1B,YAAY,cAAmC,EAAS,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;QAChE,MAAM,SAAS,GAAG,EAAuB,CAAC;QAE1C,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE;YAC5C,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QAED,MAAM,YAAY,GAAG,WAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"message-io.js","sourceRoot":"","sources":["../../../src/common/rpc/message-io.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseConnection } from '../connection';
|
|
2
2
|
import { ISumiConnectionOptions, SumiConnection } from './connection';
|
|
3
|
+
import { TSumiProtocol } from './types';
|
|
3
4
|
export declare class ProxyIdentifier<T = any> {
|
|
4
5
|
static count: number;
|
|
5
6
|
readonly serviceId: string;
|
|
@@ -7,6 +8,12 @@ export declare class ProxyIdentifier<T = any> {
|
|
|
7
8
|
constructor(serviceId: string);
|
|
8
9
|
static for(serviceId: string): ProxyIdentifier<any>;
|
|
9
10
|
}
|
|
11
|
+
export interface ISumiMultiplexerConnectionOptions extends ISumiConnectionOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Known protocols that will be loaded automatically when a proxy is created.
|
|
14
|
+
*/
|
|
15
|
+
knownProtocols?: Record<string, TSumiProtocol>;
|
|
16
|
+
}
|
|
10
17
|
export declare const IRPCProtocol: unique symbol;
|
|
11
18
|
export interface IRPCProtocol {
|
|
12
19
|
getProxy<T>(proxyId: ProxyIdentifier<T>): T;
|
|
@@ -18,7 +25,7 @@ export interface IRPCProtocol {
|
|
|
18
25
|
*/
|
|
19
26
|
export declare class SumiConnectionMultiplexer extends SumiConnection implements IRPCProtocol {
|
|
20
27
|
protected socket: BaseConnection<Uint8Array>;
|
|
21
|
-
protected options:
|
|
28
|
+
protected options: ISumiMultiplexerConnectionOptions;
|
|
22
29
|
protected static SEP: string;
|
|
23
30
|
protected static SEP_LENGTH: number;
|
|
24
31
|
protected static getRPCName(serviceId: string, methodName: string): string;
|
|
@@ -26,11 +33,14 @@ export declare class SumiConnectionMultiplexer extends SumiConnection implements
|
|
|
26
33
|
protected static normalizeServiceId(serviceId: string): string;
|
|
27
34
|
protected readonly _locals: Map<string, any>;
|
|
28
35
|
protected readonly _proxies: Map<string, any>;
|
|
29
|
-
|
|
36
|
+
protected _knownProtocols: Record<string, TSumiProtocol>;
|
|
37
|
+
constructor(socket: BaseConnection<Uint8Array>, options?: ISumiMultiplexerConnectionOptions);
|
|
30
38
|
set<T>(identifier: ProxyIdentifier<T>, instance: any): any;
|
|
31
39
|
get<T>(identifier: ProxyIdentifier<T>): any;
|
|
40
|
+
protected loadProtocol(rpcId: string, protocol: TSumiProtocol): void;
|
|
32
41
|
getProxy<T>(proxyId: ProxyIdentifier<T>): any;
|
|
33
42
|
protected _createProxy(rpcId: string): any;
|
|
34
43
|
protected _doInvokeHandler(rpcName: string, args: any[]): Promise<any>;
|
|
44
|
+
getSocket(): BaseConnection<Uint8Array>;
|
|
35
45
|
}
|
|
36
46
|
//# sourceMappingURL=multiplexer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiplexer.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/multiplexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"multiplexer.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/multiplexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG;IAClC,OAAc,KAAK,SAAK;IAExB,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;gBACpB,SAAS,EAAE,MAAM;IAK7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM;CAG7B;AAED,MAAM,WAAW,iCAAkC,SAAQ,sBAAsB;IAC/E;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IACvD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,cAAe,YAAW,YAAY;IAqBvE,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAAE,SAAS,CAAC,OAAO,EAAE,iCAAiC;IApB9G,SAAS,CAAC,MAAM,CAAC,GAAG,SAAO;IAC3B,SAAS,CAAC,MAAM,CAAC,UAAU,SAAwC;IAEnE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAIjE,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAKzE,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM;IAIrD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9C,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBAEnC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAAY,OAAO,GAAE,iCAAsC;IAa5G,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG;IAWpD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAI5C,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;IAMtD,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAe9C,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM;cAmBpB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAe5E,SAAS;CAGV"}
|
|
@@ -34,21 +34,36 @@ class SumiConnectionMultiplexer extends connection_1.SumiConnection {
|
|
|
34
34
|
this.options = options;
|
|
35
35
|
this._locals = new Map();
|
|
36
36
|
this._proxies = new Map();
|
|
37
|
+
this._knownProtocols = options.knownProtocols || {};
|
|
37
38
|
this.onRequestNotFound((rpcName, args) => this._doInvokeHandler(rpcName, args));
|
|
38
39
|
// call `listen` implicitly
|
|
39
40
|
// compatible behavior with the RPCProtocol
|
|
40
41
|
this.listen();
|
|
41
42
|
}
|
|
42
43
|
set(identifier, instance) {
|
|
43
|
-
|
|
44
|
+
const id = SumiConnectionMultiplexer.normalizeServiceId(identifier.serviceId);
|
|
45
|
+
this._locals.set(id, instance);
|
|
46
|
+
const protocol = this._knownProtocols[identifier.serviceId];
|
|
47
|
+
if (protocol) {
|
|
48
|
+
this.loadProtocol(id, protocol);
|
|
49
|
+
}
|
|
44
50
|
return instance;
|
|
45
51
|
}
|
|
46
52
|
get(identifier) {
|
|
47
53
|
return this._locals.get(SumiConnectionMultiplexer.normalizeServiceId(identifier.serviceId));
|
|
48
54
|
}
|
|
55
|
+
loadProtocol(rpcId, protocol) {
|
|
56
|
+
this.io.loadProtocol(protocol, {
|
|
57
|
+
nameConverter: (str) => SumiConnectionMultiplexer.getRPCName(rpcId, str),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
49
60
|
getProxy(proxyId) {
|
|
50
61
|
const serviceId = SumiConnectionMultiplexer.normalizeServiceId(proxyId.serviceId);
|
|
51
62
|
if (!this._proxies.has(serviceId)) {
|
|
63
|
+
const protocol = this._knownProtocols[proxyId.serviceId];
|
|
64
|
+
if (protocol) {
|
|
65
|
+
this.loadProtocol(serviceId, protocol);
|
|
66
|
+
}
|
|
52
67
|
this._proxies.set(serviceId, this._createProxy(serviceId));
|
|
53
68
|
}
|
|
54
69
|
return this._proxies.get(serviceId);
|
|
@@ -81,6 +96,9 @@ class SumiConnectionMultiplexer extends connection_1.SumiConnection {
|
|
|
81
96
|
}
|
|
82
97
|
return method.apply(actor, args);
|
|
83
98
|
}
|
|
99
|
+
getSocket() {
|
|
100
|
+
return this.socket;
|
|
101
|
+
}
|
|
84
102
|
}
|
|
85
103
|
exports.SumiConnectionMultiplexer = SumiConnectionMultiplexer;
|
|
86
104
|
SumiConnectionMultiplexer.SEP = '/';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiplexer.js","sourceRoot":"","sources":["../../../src/common/rpc/multiplexer.ts"],"names":[],"mappings":";;;AAEA,6CAAsE;
|
|
1
|
+
{"version":3,"file":"multiplexer.js","sourceRoot":"","sources":["../../../src/common/rpc/multiplexer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-connection",
|
|
3
|
-
"version": "2.27.3-rc-
|
|
3
|
+
"version": "2.27.3-rc-1715052394.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib",
|
|
6
6
|
"src"
|
|
@@ -19,16 +19,16 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@furyjs/fury": "0.5.9-beta",
|
|
21
21
|
"@opensumi/events": "^1.0.0",
|
|
22
|
-
"@opensumi/ide-core-common": "2.27.3-rc-
|
|
22
|
+
"@opensumi/ide-core-common": "2.27.3-rc-1715052394.0",
|
|
23
23
|
"@opensumi/vscode-jsonrpc": "^8.0.0-next.2",
|
|
24
24
|
"path-to-regexp": "^6.2.1",
|
|
25
25
|
"reconnecting-websocket": "^4.4.0",
|
|
26
26
|
"ws": "^8.16.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@opensumi/ide-components": "2.27.3-rc-
|
|
30
|
-
"@opensumi/ide-dev-tool": "2.27.3-rc-
|
|
29
|
+
"@opensumi/ide-components": "2.27.3-rc-1715052394.0",
|
|
30
|
+
"@opensumi/ide-dev-tool": "2.27.3-rc-1715052394.0",
|
|
31
31
|
"@opensumi/mock-socket": "^9.3.1"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "1661727ec181139437ce5627d56172562301500e"
|
|
34
34
|
}
|
|
@@ -7,3 +7,22 @@ export const UriComponentsProto = Type.object('uri-components', {
|
|
|
7
7
|
query: Type.string(),
|
|
8
8
|
fragment: Type.string(),
|
|
9
9
|
});
|
|
10
|
+
|
|
11
|
+
export const RangeProto = Type.object('range', {
|
|
12
|
+
startLineNumber: Type.uint32(),
|
|
13
|
+
startColumn: Type.uint32(),
|
|
14
|
+
endLineNumber: Type.uint32(),
|
|
15
|
+
endColumn: Type.uint32(),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export const SelectionProto = Type.object('selection', {
|
|
19
|
+
selectionStartLineNumber: Type.uint32(),
|
|
20
|
+
selectionStartColumn: Type.uint32(),
|
|
21
|
+
positionLineNumber: Type.uint32(),
|
|
22
|
+
positionColumn: Type.uint32(),
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
export const PositionProto = Type.object('position', {
|
|
26
|
+
lineNumber: Type.uint32(),
|
|
27
|
+
column: Type.uint32(),
|
|
28
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Type } from '@furyjs/fury';
|
|
2
|
+
|
|
3
|
+
import { TSumiProtocol } from '../../rpc';
|
|
4
|
+
import { RangeProto } from '../common';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* {@link IExtensionHostDocService}
|
|
8
|
+
*/
|
|
9
|
+
export const ExtensionDocumentProtocol: TSumiProtocol = {
|
|
10
|
+
name: 'ExtHostDocuments',
|
|
11
|
+
methods: [
|
|
12
|
+
{
|
|
13
|
+
method: '$fireModelChangedEvent',
|
|
14
|
+
request: [
|
|
15
|
+
{
|
|
16
|
+
name: 'event',
|
|
17
|
+
type: Type.object('model-changed-event', {
|
|
18
|
+
changes: Type.array(
|
|
19
|
+
Type.object('model-changed-event-changes', {
|
|
20
|
+
range: RangeProto,
|
|
21
|
+
rangeLength: Type.uint32(),
|
|
22
|
+
rangeOffset: Type.uint32(),
|
|
23
|
+
text: Type.string(),
|
|
24
|
+
}),
|
|
25
|
+
),
|
|
26
|
+
uri: Type.string(),
|
|
27
|
+
versionId: Type.uint32(),
|
|
28
|
+
eol: Type.string(),
|
|
29
|
+
dirty: Type.bool(),
|
|
30
|
+
isRedoing: Type.bool(),
|
|
31
|
+
isUndoing: Type.bool(),
|
|
32
|
+
}),
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
method: '$fireModelOpenedEvent',
|
|
38
|
+
request: [
|
|
39
|
+
{
|
|
40
|
+
name: 'event',
|
|
41
|
+
type: Type.object('model-open-event', {
|
|
42
|
+
uri: Type.string(),
|
|
43
|
+
lines: Type.array(Type.string()),
|
|
44
|
+
eol: Type.string(),
|
|
45
|
+
versionId: Type.uint32(),
|
|
46
|
+
languageId: Type.string(),
|
|
47
|
+
dirty: Type.bool(),
|
|
48
|
+
}),
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
method: '$provideTextDocumentContent',
|
|
54
|
+
request: [
|
|
55
|
+
{
|
|
56
|
+
name: 'path',
|
|
57
|
+
type: Type.string(),
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'encoding',
|
|
61
|
+
type: Type.string(),
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
response: {
|
|
65
|
+
type: Type.string(),
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
@@ -52,7 +52,12 @@ class SumiProtocolSerializer implements IProtocolSerializer {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
const requestProto = Type.tuple(argsTuple);
|
|
55
|
-
|
|
55
|
+
|
|
56
|
+
let resultProto: TypeDescription = Type.any();
|
|
57
|
+
|
|
58
|
+
if (methodProtocol.response && methodProtocol.response.type) {
|
|
59
|
+
resultProto = methodProtocol.response.type;
|
|
60
|
+
}
|
|
56
61
|
|
|
57
62
|
this.request = this.fury.registerSerializer(requestProto);
|
|
58
63
|
this.result = this.fury.registerSerializer(resultProto);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseConnection } from '../connection';
|
|
2
2
|
|
|
3
3
|
import { ISumiConnectionOptions, SumiConnection } from './connection';
|
|
4
|
+
import { TSumiProtocol } from './types';
|
|
4
5
|
|
|
5
6
|
export class ProxyIdentifier<T = any> {
|
|
6
7
|
public static count = 0;
|
|
@@ -17,6 +18,13 @@ export class ProxyIdentifier<T = any> {
|
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
|
|
21
|
+
export interface ISumiMultiplexerConnectionOptions extends ISumiConnectionOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Known protocols that will be loaded automatically when a proxy is created.
|
|
24
|
+
*/
|
|
25
|
+
knownProtocols?: Record<string, TSumiProtocol>;
|
|
26
|
+
}
|
|
27
|
+
|
|
20
28
|
export const IRPCProtocol = Symbol('IRPCProtocol');
|
|
21
29
|
export interface IRPCProtocol {
|
|
22
30
|
getProxy<T>(proxyId: ProxyIdentifier<T>): T;
|
|
@@ -46,11 +54,13 @@ export class SumiConnectionMultiplexer extends SumiConnection implements IRPCPro
|
|
|
46
54
|
|
|
47
55
|
protected readonly _locals: Map<string, any>;
|
|
48
56
|
protected readonly _proxies: Map<string, any>;
|
|
57
|
+
protected _knownProtocols: Record<string, TSumiProtocol>;
|
|
49
58
|
|
|
50
|
-
constructor(protected socket: BaseConnection<Uint8Array>, protected options:
|
|
59
|
+
constructor(protected socket: BaseConnection<Uint8Array>, protected options: ISumiMultiplexerConnectionOptions = {}) {
|
|
51
60
|
super(socket, options);
|
|
52
61
|
this._locals = new Map();
|
|
53
62
|
this._proxies = new Map();
|
|
63
|
+
this._knownProtocols = options.knownProtocols || {};
|
|
54
64
|
|
|
55
65
|
this.onRequestNotFound((rpcName: string, args: any[]) => this._doInvokeHandler(rpcName, args));
|
|
56
66
|
|
|
@@ -60,7 +70,13 @@ export class SumiConnectionMultiplexer extends SumiConnection implements IRPCPro
|
|
|
60
70
|
}
|
|
61
71
|
|
|
62
72
|
public set<T>(identifier: ProxyIdentifier<T>, instance: any) {
|
|
63
|
-
|
|
73
|
+
const id = SumiConnectionMultiplexer.normalizeServiceId(identifier.serviceId);
|
|
74
|
+
this._locals.set(id, instance);
|
|
75
|
+
const protocol = this._knownProtocols[identifier.serviceId];
|
|
76
|
+
if (protocol) {
|
|
77
|
+
this.loadProtocol(id, protocol);
|
|
78
|
+
}
|
|
79
|
+
|
|
64
80
|
return instance;
|
|
65
81
|
}
|
|
66
82
|
|
|
@@ -68,10 +84,21 @@ export class SumiConnectionMultiplexer extends SumiConnection implements IRPCPro
|
|
|
68
84
|
return this._locals.get(SumiConnectionMultiplexer.normalizeServiceId(identifier.serviceId));
|
|
69
85
|
}
|
|
70
86
|
|
|
87
|
+
protected loadProtocol(rpcId: string, protocol: TSumiProtocol) {
|
|
88
|
+
this.io.loadProtocol(protocol, {
|
|
89
|
+
nameConverter: (str: string) => SumiConnectionMultiplexer.getRPCName(rpcId, str),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
71
93
|
public getProxy<T>(proxyId: ProxyIdentifier<T>) {
|
|
72
94
|
const serviceId = SumiConnectionMultiplexer.normalizeServiceId(proxyId.serviceId);
|
|
73
95
|
|
|
74
96
|
if (!this._proxies.has(serviceId)) {
|
|
97
|
+
const protocol = this._knownProtocols[proxyId.serviceId];
|
|
98
|
+
if (protocol) {
|
|
99
|
+
this.loadProtocol(serviceId, protocol);
|
|
100
|
+
}
|
|
101
|
+
|
|
75
102
|
this._proxies.set(serviceId, this._createProxy(serviceId));
|
|
76
103
|
}
|
|
77
104
|
|
|
@@ -111,4 +138,8 @@ export class SumiConnectionMultiplexer extends SumiConnection implements IRPCPro
|
|
|
111
138
|
|
|
112
139
|
return method.apply(actor, args);
|
|
113
140
|
}
|
|
141
|
+
|
|
142
|
+
getSocket() {
|
|
143
|
+
return this.socket;
|
|
144
|
+
}
|
|
114
145
|
}
|