@typescript/native-preview 7.0.0-dev.20260422.1 → 7.0.0-dev.20260423.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/dist/api/async/api.d.ts +241 -0
- package/dist/api/async/api.d.ts.map +1 -0
- package/dist/api/async/api.js +810 -0
- package/dist/api/async/api.js.map +1 -0
- package/dist/api/async/client.d.ts +22 -0
- package/dist/api/async/client.d.ts.map +1 -0
- package/dist/api/async/client.js +140 -0
- package/dist/api/async/client.js.map +1 -0
- package/dist/api/async/types.d.ts +179 -0
- package/dist/api/async/types.d.ts.map +1 -0
- package/dist/api/async/types.js +2 -0
- package/dist/api/async/types.js.map +1 -0
- package/dist/api/fs.d.ts +23 -0
- package/dist/api/fs.d.ts.map +1 -0
- package/dist/api/fs.js +109 -0
- package/dist/api/fs.js.map +1 -0
- package/dist/api/node/encoder.d.ts +15 -0
- package/dist/api/node/encoder.d.ts.map +1 -0
- package/dist/api/node/encoder.generated.d.ts +5 -0
- package/dist/api/node/encoder.generated.d.ts.map +1 -0
- package/dist/api/node/encoder.generated.js +74 -0
- package/dist/api/node/encoder.generated.js.map +1 -0
- package/dist/api/node/encoder.js +304 -0
- package/dist/api/node/encoder.js.map +1 -0
- package/dist/api/node/msgpack.d.ts +32 -0
- package/dist/api/node/msgpack.d.ts.map +1 -0
- package/dist/api/node/msgpack.js +212 -0
- package/dist/api/node/msgpack.js.map +1 -0
- package/dist/api/node/node.d.ts +63 -0
- package/dist/api/node/node.d.ts.map +1 -0
- package/dist/api/node/node.generated.d.ts +172 -0
- package/dist/api/node/node.generated.d.ts.map +1 -0
- package/dist/api/node/node.generated.js +817 -0
- package/dist/api/node/node.generated.js.map +1 -0
- package/dist/api/node/node.infrastructure.d.ts +51 -0
- package/dist/api/node/node.infrastructure.d.ts.map +1 -0
- package/dist/api/node/node.infrastructure.js +122 -0
- package/dist/api/node/node.infrastructure.js.map +1 -0
- package/dist/api/node/node.js +201 -0
- package/dist/api/node/node.js.map +1 -0
- package/dist/api/node/protocol.d.ts +29 -0
- package/dist/api/node/protocol.d.ts.map +1 -0
- package/dist/api/node/protocol.generated.d.ts +4 -0
- package/dist/api/node/protocol.generated.d.ts.map +1 -0
- package/dist/api/node/protocol.generated.js +241 -0
- package/dist/api/node/protocol.generated.js.map +1 -0
- package/dist/api/node/protocol.js +30 -0
- package/dist/api/node/protocol.js.map +1 -0
- package/dist/api/objectRegistry.d.ts +38 -0
- package/dist/api/objectRegistry.d.ts.map +1 -0
- package/dist/api/objectRegistry.js +55 -0
- package/dist/api/objectRegistry.js.map +1 -0
- package/dist/api/options.d.ts +24 -0
- package/dist/api/options.d.ts.map +1 -0
- package/dist/api/options.js +11 -0
- package/dist/api/options.js.map +1 -0
- package/dist/api/path.d.ts +110 -0
- package/dist/api/path.d.ts.map +1 -0
- package/dist/api/path.js +508 -0
- package/dist/api/path.js.map +1 -0
- package/dist/api/proto.d.ts +152 -0
- package/dist/api/proto.d.ts.map +1 -0
- package/dist/api/proto.js +22 -0
- package/dist/api/proto.js.map +1 -0
- package/dist/api/sourceFileCache.d.ts +79 -0
- package/dist/api/sourceFileCache.d.ts.map +1 -0
- package/dist/api/sourceFileCache.js +169 -0
- package/dist/api/sourceFileCache.js.map +1 -0
- package/dist/api/sync/api.d.ts +241 -0
- package/dist/api/sync/api.d.ts.map +1 -0
- package/dist/api/sync/api.js +818 -0
- package/dist/api/sync/api.js.map +1 -0
- package/dist/api/sync/client.d.ts +13 -0
- package/dist/api/sync/client.d.ts.map +1 -0
- package/dist/api/sync/client.js +72 -0
- package/dist/api/sync/client.js.map +1 -0
- package/dist/api/sync/types.d.ts +179 -0
- package/dist/api/sync/types.d.ts.map +1 -0
- package/dist/api/sync/types.js +2 -0
- package/dist/api/sync/types.js.map +1 -0
- package/dist/api/syncChannel.d.ts +111 -0
- package/dist/api/syncChannel.d.ts.map +1 -0
- package/dist/api/syncChannel.js +488 -0
- package/dist/api/syncChannel.js.map +1 -0
- package/dist/ast/ast.d.ts +66 -0
- package/dist/ast/ast.d.ts.map +1 -0
- package/dist/ast/ast.generated.d.ts +1160 -0
- package/dist/ast/ast.generated.d.ts.map +1 -0
- package/dist/ast/ast.generated.js +4 -0
- package/dist/ast/ast.generated.js.map +1 -0
- package/dist/ast/ast.js +7 -0
- package/dist/ast/ast.js.map +1 -0
- package/dist/ast/astnav.d.ts +19 -0
- package/dist/ast/astnav.d.ts.map +1 -0
- package/dist/ast/astnav.js +596 -0
- package/dist/ast/astnav.js.map +1 -0
- package/dist/ast/clone.d.ts +16 -0
- package/dist/ast/clone.d.ts.map +1 -0
- package/dist/ast/clone.js +104 -0
- package/dist/ast/clone.js.map +1 -0
- package/dist/ast/factory.generated.d.ts +513 -0
- package/dist/ast/factory.generated.d.ts.map +1 -0
- package/dist/ast/factory.generated.js +3026 -0
- package/dist/ast/factory.generated.js.map +1 -0
- package/dist/ast/index.d.ts +18 -0
- package/dist/ast/index.d.ts.map +1 -0
- package/dist/ast/index.js +18 -0
- package/dist/ast/index.js.map +1 -0
- package/dist/ast/is.d.ts +34 -0
- package/dist/ast/is.d.ts.map +1 -0
- package/dist/ast/is.generated.d.ts +328 -0
- package/dist/ast/is.generated.d.ts.map +1 -0
- package/dist/ast/is.generated.js +1101 -0
- package/dist/ast/is.generated.js.map +1 -0
- package/dist/ast/is.js +226 -0
- package/dist/ast/is.js.map +1 -0
- package/dist/ast/scanner.d.ts +97 -0
- package/dist/ast/scanner.d.ts.map +1 -0
- package/dist/ast/scanner.js +2230 -0
- package/dist/ast/scanner.js.map +1 -0
- package/dist/ast/utils.d.ts +5 -0
- package/dist/ast/utils.d.ts.map +1 -0
- package/dist/ast/utils.js +27 -0
- package/dist/ast/utils.js.map +1 -0
- package/dist/ast/visitor.d.ts +14 -0
- package/dist/ast/visitor.d.ts.map +1 -0
- package/dist/ast/visitor.generated.d.ts +50 -0
- package/dist/ast/visitor.generated.d.ts.map +1 -0
- package/dist/ast/visitor.generated.js +978 -0
- package/dist/ast/visitor.generated.js.map +1 -0
- package/dist/ast/visitor.js +47 -0
- package/dist/ast/visitor.js.map +1 -0
- package/dist/enums/characterCodes.d.ts +2 -0
- package/dist/enums/characterCodes.d.ts.map +1 -0
- package/dist/enums/characterCodes.enum.d.ts +129 -0
- package/dist/enums/characterCodes.enum.d.ts.map +1 -0
- package/dist/enums/characterCodes.enum.js +132 -0
- package/dist/enums/characterCodes.enum.js.map +1 -0
- package/dist/enums/characterCodes.js +130 -0
- package/dist/enums/characterCodes.js.map +1 -0
- package/dist/enums/commentDirectiveType.d.ts +2 -0
- package/dist/enums/commentDirectiveType.d.ts.map +1 -0
- package/dist/enums/commentDirectiveType.enum.d.ts +5 -0
- package/dist/enums/commentDirectiveType.enum.d.ts.map +1 -0
- package/dist/enums/commentDirectiveType.enum.js +6 -0
- package/dist/enums/commentDirectiveType.enum.js.map +1 -0
- package/dist/enums/commentDirectiveType.js +6 -0
- package/dist/enums/commentDirectiveType.js.map +1 -0
- package/dist/enums/diagnosticCategory.d.ts +2 -0
- package/dist/enums/diagnosticCategory.d.ts.map +1 -0
- package/dist/enums/diagnosticCategory.enum.d.ts +7 -0
- package/dist/enums/diagnosticCategory.enum.d.ts.map +1 -0
- package/dist/enums/diagnosticCategory.enum.js +9 -0
- package/dist/enums/diagnosticCategory.enum.js.map +1 -0
- package/dist/enums/diagnosticCategory.js +9 -0
- package/dist/enums/diagnosticCategory.js.map +1 -0
- package/dist/enums/elementFlags.d.ts +2 -0
- package/dist/enums/elementFlags.d.ts.map +1 -0
- package/dist/enums/elementFlags.enum.d.ts +12 -0
- package/dist/enums/elementFlags.enum.d.ts.map +1 -0
- package/dist/enums/elementFlags.enum.js +14 -0
- package/dist/enums/elementFlags.enum.js.map +1 -0
- package/dist/enums/elementFlags.js +14 -0
- package/dist/enums/elementFlags.js.map +1 -0
- package/dist/enums/languageVariant.d.ts +2 -0
- package/dist/enums/languageVariant.d.ts.map +1 -0
- package/dist/enums/languageVariant.enum.d.ts +5 -0
- package/dist/enums/languageVariant.enum.d.ts.map +1 -0
- package/dist/enums/languageVariant.enum.js +6 -0
- package/dist/enums/languageVariant.enum.js.map +1 -0
- package/dist/enums/languageVariant.js +6 -0
- package/dist/enums/languageVariant.js.map +1 -0
- package/dist/enums/modifierFlags.d.ts +2 -0
- package/dist/enums/modifierFlags.d.ts.map +1 -0
- package/dist/enums/modifierFlags.enum.d.ts +42 -0
- package/dist/enums/modifierFlags.enum.d.ts.map +1 -0
- package/dist/enums/modifierFlags.enum.js +44 -0
- package/dist/enums/modifierFlags.enum.js.map +1 -0
- package/dist/enums/modifierFlags.js +44 -0
- package/dist/enums/modifierFlags.js.map +1 -0
- package/dist/enums/nodeFlags.d.ts +2 -0
- package/dist/enums/nodeFlags.d.ts.map +1 -0
- package/dist/enums/nodeFlags.enum.d.ts +41 -0
- package/dist/enums/nodeFlags.enum.d.ts.map +1 -0
- package/dist/enums/nodeFlags.enum.js +43 -0
- package/dist/enums/nodeFlags.enum.js.map +1 -0
- package/dist/enums/nodeFlags.js +43 -0
- package/dist/enums/nodeFlags.js.map +1 -0
- package/dist/enums/objectFlags.d.ts +2 -0
- package/dist/enums/objectFlags.d.ts.map +1 -0
- package/dist/enums/objectFlags.enum.d.ts +50 -0
- package/dist/enums/objectFlags.enum.d.ts.map +1 -0
- package/dist/enums/objectFlags.enum.js +52 -0
- package/dist/enums/objectFlags.enum.js.map +1 -0
- package/dist/enums/objectFlags.js +52 -0
- package/dist/enums/objectFlags.js.map +1 -0
- package/dist/enums/outerExpressionKinds.d.ts +2 -0
- package/dist/enums/outerExpressionKinds.d.ts.map +1 -0
- package/dist/enums/outerExpressionKinds.enum.d.ts +12 -0
- package/dist/enums/outerExpressionKinds.enum.d.ts.map +1 -0
- package/dist/enums/outerExpressionKinds.enum.js +14 -0
- package/dist/enums/outerExpressionKinds.enum.js.map +1 -0
- package/dist/enums/outerExpressionKinds.js +14 -0
- package/dist/enums/outerExpressionKinds.js.map +1 -0
- package/dist/enums/regularExpressionFlags.d.ts +2 -0
- package/dist/enums/regularExpressionFlags.d.ts.map +1 -0
- package/dist/enums/regularExpressionFlags.enum.d.ts +13 -0
- package/dist/enums/regularExpressionFlags.enum.d.ts.map +1 -0
- package/dist/enums/regularExpressionFlags.enum.js +14 -0
- package/dist/enums/regularExpressionFlags.enum.js.map +1 -0
- package/dist/enums/regularExpressionFlags.js +14 -0
- package/dist/enums/regularExpressionFlags.js.map +1 -0
- package/dist/enums/scriptKind.d.ts +2 -0
- package/dist/enums/scriptKind.d.ts.map +1 -0
- package/dist/enums/scriptKind.enum.d.ts +11 -0
- package/dist/enums/scriptKind.enum.d.ts.map +1 -0
- package/dist/enums/scriptKind.enum.js +12 -0
- package/dist/enums/scriptKind.enum.js.map +1 -0
- package/dist/enums/scriptKind.js +12 -0
- package/dist/enums/scriptKind.js.map +1 -0
- package/dist/enums/scriptTarget.d.ts +2 -0
- package/dist/enums/scriptTarget.d.ts.map +1 -0
- package/dist/enums/scriptTarget.enum.d.ts +17 -0
- package/dist/enums/scriptTarget.enum.d.ts.map +1 -0
- package/dist/enums/scriptTarget.enum.js +18 -0
- package/dist/enums/scriptTarget.enum.js.map +1 -0
- package/dist/enums/scriptTarget.js +18 -0
- package/dist/enums/scriptTarget.js.map +1 -0
- package/dist/enums/signatureFlags.d.ts +2 -0
- package/dist/enums/signatureFlags.d.ts.map +1 -0
- package/dist/enums/signatureFlags.enum.d.ts +15 -0
- package/dist/enums/signatureFlags.enum.d.ts.map +1 -0
- package/dist/enums/signatureFlags.enum.js +17 -0
- package/dist/enums/signatureFlags.enum.js.map +1 -0
- package/dist/enums/signatureFlags.js +17 -0
- package/dist/enums/signatureFlags.js.map +1 -0
- package/dist/enums/signatureKind.d.ts +2 -0
- package/dist/enums/signatureKind.d.ts.map +1 -0
- package/dist/enums/signatureKind.enum.d.ts +5 -0
- package/dist/enums/signatureKind.enum.d.ts.map +1 -0
- package/dist/enums/signatureKind.enum.js +7 -0
- package/dist/enums/signatureKind.enum.js.map +1 -0
- package/dist/enums/signatureKind.js +7 -0
- package/dist/enums/signatureKind.js.map +1 -0
- package/dist/enums/symbolFlags.d.ts +2 -0
- package/dist/enums/symbolFlags.d.ts.map +1 -0
- package/dist/enums/symbolFlags.enum.d.ts +71 -0
- package/dist/enums/symbolFlags.enum.d.ts.map +1 -0
- package/dist/enums/symbolFlags.enum.js +73 -0
- package/dist/enums/symbolFlags.enum.js.map +1 -0
- package/dist/enums/symbolFlags.js +73 -0
- package/dist/enums/symbolFlags.js.map +1 -0
- package/dist/enums/syntaxKind.d.ts +2 -0
- package/dist/enums/syntaxKind.d.ts.map +1 -0
- package/dist/enums/syntaxKind.enum.d.ts +389 -0
- package/dist/enums/syntaxKind.enum.d.ts.map +1 -0
- package/dist/enums/syntaxKind.enum.js +391 -0
- package/dist/enums/syntaxKind.enum.js.map +1 -0
- package/dist/enums/syntaxKind.js +391 -0
- package/dist/enums/syntaxKind.js.map +1 -0
- package/dist/enums/tokenFlags.d.ts +2 -0
- package/dist/enums/tokenFlags.d.ts.map +1 -0
- package/dist/enums/tokenFlags.enum.d.ts +30 -0
- package/dist/enums/tokenFlags.enum.d.ts.map +1 -0
- package/dist/enums/tokenFlags.enum.js +32 -0
- package/dist/enums/tokenFlags.enum.js.map +1 -0
- package/dist/enums/tokenFlags.js +32 -0
- package/dist/enums/tokenFlags.js.map +1 -0
- package/dist/enums/typeFlags.d.ts +2 -0
- package/dist/enums/typeFlags.d.ts.map +1 -0
- package/dist/enums/typeFlags.enum.d.ts +76 -0
- package/dist/enums/typeFlags.enum.d.ts.map +1 -0
- package/dist/enums/typeFlags.enum.js +78 -0
- package/dist/enums/typeFlags.enum.js.map +1 -0
- package/dist/enums/typeFlags.js +78 -0
- package/dist/enums/typeFlags.js.map +1 -0
- package/dist/enums/typePredicateKind.d.ts +2 -0
- package/dist/enums/typePredicateKind.d.ts.map +1 -0
- package/dist/enums/typePredicateKind.enum.d.ts +7 -0
- package/dist/enums/typePredicateKind.enum.d.ts.map +1 -0
- package/dist/enums/typePredicateKind.enum.js +9 -0
- package/dist/enums/typePredicateKind.enum.js.map +1 -0
- package/dist/enums/typePredicateKind.js +9 -0
- package/dist/enums/typePredicateKind.js.map +1 -0
- package/lib/getExePath.d.ts +2 -0
- package/package.json +57 -12
- package/vendor/vscode-jsonrpc/README.md +69 -0
- package/vendor/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
- package/vendor/vscode-jsonrpc/lib/browser/main.js +83 -0
- package/vendor/vscode-jsonrpc/lib/browser/ril.d.ts +22 -0
- package/vendor/vscode-jsonrpc/lib/browser/ril.js +203 -0
- package/vendor/vscode-jsonrpc/lib/common/api.d.ts +14 -0
- package/vendor/vscode-jsonrpc/lib/common/api.js +87 -0
- package/vendor/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
- package/vendor/vscode-jsonrpc/lib/common/cancellation.js +132 -0
- package/vendor/vscode-jsonrpc/lib/common/connection.d.ts +367 -0
- package/vendor/vscode-jsonrpc/lib/common/connection.js +1272 -0
- package/vendor/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
- package/vendor/vscode-jsonrpc/lib/common/disposable.js +16 -0
- package/vendor/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
- package/vendor/vscode-jsonrpc/lib/common/encoding.js +70 -0
- package/vendor/vscode-jsonrpc/lib/common/events.d.ts +39 -0
- package/vendor/vscode-jsonrpc/lib/common/events.js +136 -0
- package/vendor/vscode-jsonrpc/lib/common/is.d.ts +7 -0
- package/vendor/vscode-jsonrpc/lib/common/is.js +34 -0
- package/vendor/vscode-jsonrpc/lib/common/linkedMap.d.ts +55 -0
- package/vendor/vscode-jsonrpc/lib/common/linkedMap.js +412 -0
- package/vendor/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
- package/vendor/vscode-jsonrpc/lib/common/messageBuffer.js +155 -0
- package/vendor/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
- package/vendor/vscode-jsonrpc/lib/common/messageReader.js +246 -0
- package/vendor/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
- package/vendor/vscode-jsonrpc/lib/common/messageWriter.js +157 -0
- package/vendor/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
- package/vendor/vscode-jsonrpc/lib/common/messages.js +436 -0
- package/vendor/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
- package/vendor/vscode-jsonrpc/lib/common/ral.js +23 -0
- package/vendor/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
- package/vendor/vscode-jsonrpc/lib/common/semaphore.js +74 -0
- package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
- package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +77 -0
- package/vendor/vscode-jsonrpc/lib/node/main.d.ts +58 -0
- package/vendor/vscode-jsonrpc/lib/node/main.js +289 -0
- package/vendor/vscode-jsonrpc/lib/node/ril.d.ts +12 -0
- package/vendor/vscode-jsonrpc/lib/node/ril.js +163 -0
- package/vendor/vscode-jsonrpc/package.json +54 -0
- package/vendor/vscode-jsonrpc/typings/thenable.d.ts +5 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* --------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
* ------------------------------------------------------------------------------------------ */
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.SharedArrayReceiverStrategy = exports.SharedArraySenderStrategy = void 0;
|
|
8
|
+
const cancellation_1 = require("./cancellation");
|
|
9
|
+
var CancellationState;
|
|
10
|
+
(function (CancellationState) {
|
|
11
|
+
CancellationState.Continue = 0;
|
|
12
|
+
CancellationState.Cancelled = 1;
|
|
13
|
+
})(CancellationState || (CancellationState = {}));
|
|
14
|
+
class SharedArraySenderStrategy {
|
|
15
|
+
buffers;
|
|
16
|
+
constructor() {
|
|
17
|
+
this.buffers = new Map();
|
|
18
|
+
}
|
|
19
|
+
enableCancellation(request) {
|
|
20
|
+
if (request.id === null) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const buffer = new SharedArrayBuffer(4);
|
|
24
|
+
const data = new Int32Array(buffer, 0, 1);
|
|
25
|
+
data[0] = CancellationState.Continue;
|
|
26
|
+
this.buffers.set(request.id, buffer);
|
|
27
|
+
request.$cancellationData = buffer;
|
|
28
|
+
}
|
|
29
|
+
async sendCancellation(_conn, id) {
|
|
30
|
+
const buffer = this.buffers.get(id);
|
|
31
|
+
if (buffer === undefined) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const data = new Int32Array(buffer, 0, 1);
|
|
35
|
+
Atomics.store(data, 0, CancellationState.Cancelled);
|
|
36
|
+
}
|
|
37
|
+
cleanup(id) {
|
|
38
|
+
this.buffers.delete(id);
|
|
39
|
+
}
|
|
40
|
+
dispose() {
|
|
41
|
+
this.buffers.clear();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.SharedArraySenderStrategy = SharedArraySenderStrategy;
|
|
45
|
+
class SharedArrayBufferCancellationToken {
|
|
46
|
+
data;
|
|
47
|
+
constructor(buffer) {
|
|
48
|
+
this.data = new Int32Array(buffer, 0, 1);
|
|
49
|
+
}
|
|
50
|
+
get isCancellationRequested() {
|
|
51
|
+
return Atomics.load(this.data, 0) === CancellationState.Cancelled;
|
|
52
|
+
}
|
|
53
|
+
get onCancellationRequested() {
|
|
54
|
+
throw new Error(`Cancellation over SharedArrayBuffer doesn't support cancellation events`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
class SharedArrayBufferCancellationTokenSource {
|
|
58
|
+
token;
|
|
59
|
+
constructor(buffer) {
|
|
60
|
+
this.token = new SharedArrayBufferCancellationToken(buffer);
|
|
61
|
+
}
|
|
62
|
+
cancel() {
|
|
63
|
+
}
|
|
64
|
+
dispose() {
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
class SharedArrayReceiverStrategy {
|
|
68
|
+
kind = 'request';
|
|
69
|
+
createCancellationTokenSource(request) {
|
|
70
|
+
const buffer = request.$cancellationData;
|
|
71
|
+
if (buffer === undefined) {
|
|
72
|
+
return new cancellation_1.CancellationTokenSource();
|
|
73
|
+
}
|
|
74
|
+
return new SharedArrayBufferCancellationTokenSource(buffer);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.SharedArrayReceiverStrategy = SharedArrayReceiverStrategy;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ChildProcess } from 'child_process';
|
|
2
|
+
import { Socket } from 'net';
|
|
3
|
+
import { MessagePort, Worker } from 'worker_threads';
|
|
4
|
+
import { RAL, AbstractMessageReader, DataCallback, AbstractMessageWriter, Message, ReadableStreamMessageReader, WriteableStreamMessageWriter, MessageWriterOptions, MessageReaderOptions, MessageReader, MessageWriter, ConnectionStrategy, ConnectionOptions, MessageConnection, Logger, Disposable } from '../common/api';
|
|
5
|
+
export * from '../common/api';
|
|
6
|
+
export declare class IPCMessageReader extends AbstractMessageReader {
|
|
7
|
+
private process;
|
|
8
|
+
constructor(process: NodeJS.Process | ChildProcess);
|
|
9
|
+
listen(callback: DataCallback): Disposable;
|
|
10
|
+
}
|
|
11
|
+
export declare class IPCMessageWriter extends AbstractMessageWriter implements MessageWriter {
|
|
12
|
+
private readonly process;
|
|
13
|
+
private errorCount;
|
|
14
|
+
constructor(process: NodeJS.Process | ChildProcess);
|
|
15
|
+
write(msg: Message): Promise<void>;
|
|
16
|
+
private handleError;
|
|
17
|
+
end(): void;
|
|
18
|
+
}
|
|
19
|
+
export declare class PortMessageReader extends AbstractMessageReader implements MessageReader {
|
|
20
|
+
private onData;
|
|
21
|
+
constructor(port: MessagePort | Worker);
|
|
22
|
+
listen(callback: DataCallback): Disposable;
|
|
23
|
+
}
|
|
24
|
+
export declare class PortMessageWriter extends AbstractMessageWriter implements MessageWriter {
|
|
25
|
+
private readonly port;
|
|
26
|
+
private errorCount;
|
|
27
|
+
constructor(port: MessagePort | Worker);
|
|
28
|
+
write(msg: Message): Promise<void>;
|
|
29
|
+
private handleError;
|
|
30
|
+
end(): void;
|
|
31
|
+
}
|
|
32
|
+
export declare class SocketMessageReader extends ReadableStreamMessageReader {
|
|
33
|
+
constructor(socket: Socket, encoding?: RAL.MessageBufferEncoding);
|
|
34
|
+
}
|
|
35
|
+
export declare class SocketMessageWriter extends WriteableStreamMessageWriter {
|
|
36
|
+
private socket;
|
|
37
|
+
constructor(socket: Socket, options?: RAL.MessageBufferEncoding | MessageWriterOptions);
|
|
38
|
+
dispose(): void;
|
|
39
|
+
}
|
|
40
|
+
export declare class StreamMessageReader extends ReadableStreamMessageReader {
|
|
41
|
+
constructor(readable: NodeJS.ReadableStream, encoding?: RAL.MessageBufferEncoding | MessageReaderOptions);
|
|
42
|
+
}
|
|
43
|
+
export declare class StreamMessageWriter extends WriteableStreamMessageWriter {
|
|
44
|
+
constructor(writable: NodeJS.WritableStream, options?: RAL.MessageBufferEncoding | MessageWriterOptions);
|
|
45
|
+
}
|
|
46
|
+
export declare function generateRandomPipeName(): string;
|
|
47
|
+
export interface PipeTransport {
|
|
48
|
+
onConnected(): Promise<[MessageReader, MessageWriter]>;
|
|
49
|
+
}
|
|
50
|
+
export declare function createClientPipeTransport(pipeName: string, encoding?: RAL.MessageBufferEncoding): Promise<PipeTransport>;
|
|
51
|
+
export declare function createServerPipeTransport(pipeName: string, encoding?: RAL.MessageBufferEncoding): [MessageReader, MessageWriter];
|
|
52
|
+
export interface SocketTransport {
|
|
53
|
+
onConnected(): Promise<[MessageReader, MessageWriter]>;
|
|
54
|
+
}
|
|
55
|
+
export declare function createClientSocketTransport(port: number, encoding?: RAL.MessageBufferEncoding): Promise<SocketTransport>;
|
|
56
|
+
export declare function createServerSocketTransport(port: number, encoding?: RAL.MessageBufferEncoding): [MessageReader, MessageWriter];
|
|
57
|
+
export declare function createMessageConnection(reader: MessageReader, writer: MessageWriter, logger?: Logger, options?: ConnectionStrategy | ConnectionOptions): MessageConnection;
|
|
58
|
+
export declare function createMessageConnection(inputStream: NodeJS.ReadableStream, outputStream: NodeJS.WritableStream, logger?: Logger, options?: ConnectionStrategy | ConnectionOptions): MessageConnection;
|
|
@@ -0,0 +1,289 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.StreamMessageWriter = exports.StreamMessageReader = exports.SocketMessageWriter = exports.SocketMessageReader = exports.PortMessageWriter = exports.PortMessageReader = exports.IPCMessageWriter = exports.IPCMessageReader = void 0;
|
|
43
|
+
exports.generateRandomPipeName = generateRandomPipeName;
|
|
44
|
+
exports.createClientPipeTransport = createClientPipeTransport;
|
|
45
|
+
exports.createServerPipeTransport = createServerPipeTransport;
|
|
46
|
+
exports.createClientSocketTransport = createClientSocketTransport;
|
|
47
|
+
exports.createServerSocketTransport = createServerSocketTransport;
|
|
48
|
+
exports.createMessageConnection = createMessageConnection;
|
|
49
|
+
/* --------------------------------------------------------------------------------------------
|
|
50
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
51
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
52
|
+
* ----------------------------------------------------------------------------------------- */
|
|
53
|
+
const ril_1 = __importDefault(require("./ril"));
|
|
54
|
+
// Install the node runtime abstract.
|
|
55
|
+
ril_1.default.install();
|
|
56
|
+
const path = __importStar(require("path"));
|
|
57
|
+
const os = __importStar(require("os"));
|
|
58
|
+
const fs = __importStar(require("fs"));
|
|
59
|
+
const crypto_1 = require("crypto");
|
|
60
|
+
const net_1 = require("net");
|
|
61
|
+
const api_1 = require("../common/api");
|
|
62
|
+
__exportStar(require("../common/api"), exports);
|
|
63
|
+
class IPCMessageReader extends api_1.AbstractMessageReader {
|
|
64
|
+
process;
|
|
65
|
+
constructor(process) {
|
|
66
|
+
super();
|
|
67
|
+
this.process = process;
|
|
68
|
+
const eventEmitter = this.process;
|
|
69
|
+
eventEmitter.on('error', (error) => this.fireError(error));
|
|
70
|
+
eventEmitter.on('close', () => this.fireClose());
|
|
71
|
+
}
|
|
72
|
+
listen(callback) {
|
|
73
|
+
this.process.on('message', callback);
|
|
74
|
+
return api_1.Disposable.create(() => this.process.off('message', callback));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.IPCMessageReader = IPCMessageReader;
|
|
78
|
+
class IPCMessageWriter extends api_1.AbstractMessageWriter {
|
|
79
|
+
process;
|
|
80
|
+
errorCount;
|
|
81
|
+
constructor(process) {
|
|
82
|
+
super();
|
|
83
|
+
this.process = process;
|
|
84
|
+
this.errorCount = 0;
|
|
85
|
+
const eventEmitter = this.process;
|
|
86
|
+
eventEmitter.on('error', (error) => this.fireError(error));
|
|
87
|
+
eventEmitter.on('close', () => this.fireClose);
|
|
88
|
+
}
|
|
89
|
+
write(msg) {
|
|
90
|
+
try {
|
|
91
|
+
if (typeof this.process.send === 'function') {
|
|
92
|
+
this.process.send(msg, undefined, undefined, (error) => {
|
|
93
|
+
if (error) {
|
|
94
|
+
this.errorCount++;
|
|
95
|
+
this.handleError(error, msg);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this.errorCount = 0;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return Promise.resolve();
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
this.handleError(error, msg);
|
|
106
|
+
return Promise.reject(error);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
handleError(error, msg) {
|
|
110
|
+
this.errorCount++;
|
|
111
|
+
this.fireError(error, msg, this.errorCount);
|
|
112
|
+
}
|
|
113
|
+
end() {
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.IPCMessageWriter = IPCMessageWriter;
|
|
117
|
+
class PortMessageReader extends api_1.AbstractMessageReader {
|
|
118
|
+
onData;
|
|
119
|
+
constructor(port) {
|
|
120
|
+
super();
|
|
121
|
+
this.onData = new api_1.Emitter;
|
|
122
|
+
port.on('close', () => this.fireClose);
|
|
123
|
+
port.on('error', (error) => this.fireError(error));
|
|
124
|
+
port.on('message', (message) => {
|
|
125
|
+
this.onData.fire(message);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
listen(callback) {
|
|
129
|
+
return this.onData.event(callback);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.PortMessageReader = PortMessageReader;
|
|
133
|
+
class PortMessageWriter extends api_1.AbstractMessageWriter {
|
|
134
|
+
port;
|
|
135
|
+
errorCount;
|
|
136
|
+
constructor(port) {
|
|
137
|
+
super();
|
|
138
|
+
this.port = port;
|
|
139
|
+
this.errorCount = 0;
|
|
140
|
+
port.on('close', () => this.fireClose());
|
|
141
|
+
port.on('error', (error) => this.fireError(error));
|
|
142
|
+
}
|
|
143
|
+
write(msg) {
|
|
144
|
+
try {
|
|
145
|
+
this.port.postMessage(msg);
|
|
146
|
+
return Promise.resolve();
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
this.handleError(error, msg);
|
|
150
|
+
return Promise.reject(error);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
handleError(error, msg) {
|
|
154
|
+
this.errorCount++;
|
|
155
|
+
this.fireError(error, msg, this.errorCount);
|
|
156
|
+
}
|
|
157
|
+
end() {
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.PortMessageWriter = PortMessageWriter;
|
|
161
|
+
class SocketMessageReader extends api_1.ReadableStreamMessageReader {
|
|
162
|
+
constructor(socket, encoding = 'utf-8') {
|
|
163
|
+
super((0, ril_1.default)().stream.asReadableStream(socket), encoding);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.SocketMessageReader = SocketMessageReader;
|
|
167
|
+
class SocketMessageWriter extends api_1.WriteableStreamMessageWriter {
|
|
168
|
+
socket;
|
|
169
|
+
constructor(socket, options) {
|
|
170
|
+
super((0, ril_1.default)().stream.asWritableStream(socket), options);
|
|
171
|
+
this.socket = socket;
|
|
172
|
+
}
|
|
173
|
+
dispose() {
|
|
174
|
+
super.dispose();
|
|
175
|
+
this.socket.destroy();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
exports.SocketMessageWriter = SocketMessageWriter;
|
|
179
|
+
class StreamMessageReader extends api_1.ReadableStreamMessageReader {
|
|
180
|
+
constructor(readable, encoding) {
|
|
181
|
+
super((0, ril_1.default)().stream.asReadableStream(readable), encoding);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
exports.StreamMessageReader = StreamMessageReader;
|
|
185
|
+
class StreamMessageWriter extends api_1.WriteableStreamMessageWriter {
|
|
186
|
+
constructor(writable, options) {
|
|
187
|
+
super((0, ril_1.default)().stream.asWritableStream(writable), options);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
exports.StreamMessageWriter = StreamMessageWriter;
|
|
191
|
+
const XDG_RUNTIME_DIR = process.env['XDG_RUNTIME_DIR'];
|
|
192
|
+
const safeIpcPathLengths = new Map([
|
|
193
|
+
['linux', 107],
|
|
194
|
+
['darwin', 103]
|
|
195
|
+
]);
|
|
196
|
+
function generateRandomPipeName() {
|
|
197
|
+
if (process.platform === 'win32') {
|
|
198
|
+
return `\\\\.\\pipe\\lsp-${(0, crypto_1.randomBytes)(16).toString('hex')}-sock`;
|
|
199
|
+
}
|
|
200
|
+
let randomLength = 32;
|
|
201
|
+
const fixedLength = 'lsp-.sock'.length;
|
|
202
|
+
const tmpDir = fs.realpathSync(XDG_RUNTIME_DIR ?? os.tmpdir());
|
|
203
|
+
const limit = safeIpcPathLengths.get(process.platform);
|
|
204
|
+
if (limit !== undefined) {
|
|
205
|
+
randomLength = Math.min(limit - tmpDir.length - fixedLength, randomLength);
|
|
206
|
+
}
|
|
207
|
+
if (randomLength < 16) {
|
|
208
|
+
throw new Error(`Unable to generate a random pipe name with ${randomLength} characters.`);
|
|
209
|
+
}
|
|
210
|
+
const randomSuffix = (0, crypto_1.randomBytes)(Math.floor(randomLength / 2)).toString('hex');
|
|
211
|
+
return path.join(tmpDir, `lsp-${randomSuffix}.sock`);
|
|
212
|
+
}
|
|
213
|
+
function createClientPipeTransport(pipeName, encoding = 'utf-8') {
|
|
214
|
+
let connectResolve;
|
|
215
|
+
const connected = new Promise((resolve, _reject) => {
|
|
216
|
+
connectResolve = resolve;
|
|
217
|
+
});
|
|
218
|
+
return new Promise((resolve, reject) => {
|
|
219
|
+
const server = (0, net_1.createServer)((socket) => {
|
|
220
|
+
server.close();
|
|
221
|
+
connectResolve([
|
|
222
|
+
new SocketMessageReader(socket, encoding),
|
|
223
|
+
new SocketMessageWriter(socket, encoding)
|
|
224
|
+
]);
|
|
225
|
+
});
|
|
226
|
+
server.on('error', reject);
|
|
227
|
+
server.listen(pipeName, () => {
|
|
228
|
+
server.removeListener('error', reject);
|
|
229
|
+
resolve({
|
|
230
|
+
onConnected: () => { return connected; }
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
function createServerPipeTransport(pipeName, encoding = 'utf-8') {
|
|
236
|
+
const socket = (0, net_1.createConnection)(pipeName);
|
|
237
|
+
return [
|
|
238
|
+
new SocketMessageReader(socket, encoding),
|
|
239
|
+
new SocketMessageWriter(socket, encoding)
|
|
240
|
+
];
|
|
241
|
+
}
|
|
242
|
+
function createClientSocketTransport(port, encoding = 'utf-8') {
|
|
243
|
+
let connectResolve;
|
|
244
|
+
const connected = new Promise((resolve, _reject) => {
|
|
245
|
+
connectResolve = resolve;
|
|
246
|
+
});
|
|
247
|
+
return new Promise((resolve, reject) => {
|
|
248
|
+
const server = (0, net_1.createServer)((socket) => {
|
|
249
|
+
server.close();
|
|
250
|
+
connectResolve([
|
|
251
|
+
new SocketMessageReader(socket, encoding),
|
|
252
|
+
new SocketMessageWriter(socket, encoding)
|
|
253
|
+
]);
|
|
254
|
+
});
|
|
255
|
+
server.on('error', reject);
|
|
256
|
+
server.listen(port, '127.0.0.1', () => {
|
|
257
|
+
server.removeListener('error', reject);
|
|
258
|
+
resolve({
|
|
259
|
+
onConnected: () => { return connected; }
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
function createServerSocketTransport(port, encoding = 'utf-8') {
|
|
265
|
+
const socket = (0, net_1.createConnection)(port, '127.0.0.1');
|
|
266
|
+
return [
|
|
267
|
+
new SocketMessageReader(socket, encoding),
|
|
268
|
+
new SocketMessageWriter(socket, encoding)
|
|
269
|
+
];
|
|
270
|
+
}
|
|
271
|
+
function isReadableStream(value) {
|
|
272
|
+
const candidate = value;
|
|
273
|
+
return candidate.read !== undefined && candidate.addListener !== undefined;
|
|
274
|
+
}
|
|
275
|
+
function isWritableStream(value) {
|
|
276
|
+
const candidate = value;
|
|
277
|
+
return candidate.write !== undefined && candidate.addListener !== undefined;
|
|
278
|
+
}
|
|
279
|
+
function createMessageConnection(input, output, logger, options) {
|
|
280
|
+
if (!logger) {
|
|
281
|
+
logger = api_1.NullLogger;
|
|
282
|
+
}
|
|
283
|
+
const reader = isReadableStream(input) ? new StreamMessageReader(input) : input;
|
|
284
|
+
const writer = isWritableStream(output) ? new StreamMessageWriter(output) : output;
|
|
285
|
+
if (api_1.ConnectionStrategy.is(options)) {
|
|
286
|
+
options = { connectionStrategy: options };
|
|
287
|
+
}
|
|
288
|
+
return (0, api_1.createMessageConnection)(reader, writer, logger, options);
|
|
289
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RAL } from '../common/api';
|
|
2
|
+
interface RIL extends RAL {
|
|
3
|
+
readonly stream: {
|
|
4
|
+
readonly asReadableStream: (stream: NodeJS.ReadableStream) => RAL.ReadableStream;
|
|
5
|
+
readonly asWritableStream: (stream: NodeJS.WritableStream) => RAL.WritableStream;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
declare function RIL(): RIL;
|
|
9
|
+
declare namespace RIL {
|
|
10
|
+
function install(): void;
|
|
11
|
+
}
|
|
12
|
+
export default RIL;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* --------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
* ------------------------------------------------------------------------------------------ */
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const util_1 = require("util");
|
|
8
|
+
const api_1 = require("../common/api");
|
|
9
|
+
class MessageBuffer extends api_1.AbstractMessageBuffer {
|
|
10
|
+
static emptyBuffer = Buffer.allocUnsafe(0);
|
|
11
|
+
constructor(encoding = 'utf-8') {
|
|
12
|
+
super(encoding);
|
|
13
|
+
}
|
|
14
|
+
emptyBuffer() {
|
|
15
|
+
return MessageBuffer.emptyBuffer;
|
|
16
|
+
}
|
|
17
|
+
fromString(value, encoding) {
|
|
18
|
+
return Buffer.from(value, encoding);
|
|
19
|
+
}
|
|
20
|
+
toString(value, encoding) {
|
|
21
|
+
if (value instanceof Buffer) {
|
|
22
|
+
return value.toString(encoding);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return new util_1.TextDecoder(encoding).decode(value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
asNative(buffer, length) {
|
|
29
|
+
if (length === undefined) {
|
|
30
|
+
return buffer instanceof Buffer ? buffer : Buffer.from(buffer);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return buffer instanceof Buffer ? buffer.slice(0, length) : Buffer.from(buffer, 0, length);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
allocNative(length) {
|
|
37
|
+
return Buffer.allocUnsafe(length);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
class ReadableStreamWrapper {
|
|
41
|
+
stream;
|
|
42
|
+
constructor(stream) {
|
|
43
|
+
this.stream = stream;
|
|
44
|
+
}
|
|
45
|
+
onClose(listener) {
|
|
46
|
+
this.stream.on('close', listener);
|
|
47
|
+
return api_1.Disposable.create(() => this.stream.off('close', listener));
|
|
48
|
+
}
|
|
49
|
+
onError(listener) {
|
|
50
|
+
this.stream.on('error', listener);
|
|
51
|
+
return api_1.Disposable.create(() => this.stream.off('error', listener));
|
|
52
|
+
}
|
|
53
|
+
onEnd(listener) {
|
|
54
|
+
this.stream.on('end', listener);
|
|
55
|
+
return api_1.Disposable.create(() => this.stream.off('end', listener));
|
|
56
|
+
}
|
|
57
|
+
onData(listener) {
|
|
58
|
+
this.stream.on('data', listener);
|
|
59
|
+
return api_1.Disposable.create(() => this.stream.off('data', listener));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
class WritableStreamWrapper {
|
|
63
|
+
stream;
|
|
64
|
+
constructor(stream) {
|
|
65
|
+
this.stream = stream;
|
|
66
|
+
}
|
|
67
|
+
onClose(listener) {
|
|
68
|
+
this.stream.on('close', listener);
|
|
69
|
+
return api_1.Disposable.create(() => this.stream.off('close', listener));
|
|
70
|
+
}
|
|
71
|
+
onError(listener) {
|
|
72
|
+
this.stream.on('error', listener);
|
|
73
|
+
return api_1.Disposable.create(() => this.stream.off('error', listener));
|
|
74
|
+
}
|
|
75
|
+
onEnd(listener) {
|
|
76
|
+
this.stream.on('end', listener);
|
|
77
|
+
return api_1.Disposable.create(() => this.stream.off('end', listener));
|
|
78
|
+
}
|
|
79
|
+
write(data, encoding) {
|
|
80
|
+
return new Promise((resolve, reject) => {
|
|
81
|
+
const callback = (error) => {
|
|
82
|
+
if (error === undefined || error === null) {
|
|
83
|
+
resolve();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
reject(error);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
if (typeof data === 'string') {
|
|
90
|
+
this.stream.write(data, encoding, callback);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
this.stream.write(data, callback);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
end() {
|
|
98
|
+
this.stream.end();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const _ril = Object.freeze({
|
|
102
|
+
messageBuffer: Object.freeze({
|
|
103
|
+
create: (encoding) => new MessageBuffer(encoding)
|
|
104
|
+
}),
|
|
105
|
+
applicationJson: Object.freeze({
|
|
106
|
+
encoder: Object.freeze({
|
|
107
|
+
name: 'application/json',
|
|
108
|
+
encode: (msg, options) => {
|
|
109
|
+
try {
|
|
110
|
+
return Promise.resolve(Buffer.from(JSON.stringify(msg, undefined, 0), options.charset));
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
return Promise.reject(err);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}),
|
|
117
|
+
decoder: Object.freeze({
|
|
118
|
+
name: 'application/json',
|
|
119
|
+
decode: (buffer, options) => {
|
|
120
|
+
try {
|
|
121
|
+
if (buffer instanceof Buffer) {
|
|
122
|
+
return Promise.resolve(JSON.parse(buffer.toString(options.charset)));
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
return Promise.resolve(JSON.parse(new util_1.TextDecoder(options.charset).decode(buffer)));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
return Promise.reject(err);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
})
|
|
133
|
+
}),
|
|
134
|
+
stream: Object.freeze({
|
|
135
|
+
asReadableStream: (stream) => new ReadableStreamWrapper(stream),
|
|
136
|
+
asWritableStream: (stream) => new WritableStreamWrapper(stream)
|
|
137
|
+
}),
|
|
138
|
+
console: console,
|
|
139
|
+
timer: Object.freeze({
|
|
140
|
+
setTimeout(callback, ms, ...args) {
|
|
141
|
+
const handle = setTimeout(callback, ms, ...args);
|
|
142
|
+
return { dispose: () => clearTimeout(handle) };
|
|
143
|
+
},
|
|
144
|
+
setImmediate(callback, ...args) {
|
|
145
|
+
const handle = setImmediate(callback, ...args);
|
|
146
|
+
return { dispose: () => clearImmediate(handle) };
|
|
147
|
+
},
|
|
148
|
+
setInterval(callback, ms, ...args) {
|
|
149
|
+
const handle = setInterval(callback, ms, ...args);
|
|
150
|
+
return { dispose: () => clearInterval(handle) };
|
|
151
|
+
}
|
|
152
|
+
})
|
|
153
|
+
});
|
|
154
|
+
function RIL() {
|
|
155
|
+
return _ril;
|
|
156
|
+
}
|
|
157
|
+
(function (RIL) {
|
|
158
|
+
function install() {
|
|
159
|
+
api_1.RAL.install(_ril);
|
|
160
|
+
}
|
|
161
|
+
RIL.install = install;
|
|
162
|
+
})(RIL || (RIL = {}));
|
|
163
|
+
exports.default = RIL;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vscode-jsonrpc",
|
|
3
|
+
"description": "A json rpc implementation over streams",
|
|
4
|
+
"version": "9.0.0-next.11",
|
|
5
|
+
"author": "Microsoft Corporation",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/Microsoft/vscode-languageserver-node.git",
|
|
10
|
+
"directory": "jsonrpc"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/Microsoft/vscode-languageserver-node/issues"
|
|
14
|
+
},
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=14.0.0"
|
|
17
|
+
},
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./lib/common/api.d.ts",
|
|
21
|
+
"default": "./lib/common/api.js"
|
|
22
|
+
},
|
|
23
|
+
"./node": {
|
|
24
|
+
"types": "./lib/node/main.d.ts",
|
|
25
|
+
"node": "./lib/node/main.js"
|
|
26
|
+
},
|
|
27
|
+
"./browser": {
|
|
28
|
+
"types": "./lib/browser/main.d.ts",
|
|
29
|
+
"browser": "./lib/browser/main.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@types/msgpack-lite": "^0.1.11",
|
|
34
|
+
"msgpack-lite": "^0.1.26"
|
|
35
|
+
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"prepublishOnly": "echo \"⛔ Can only publish from a secure pipeline ⛔\" && node ../build/npm/fail",
|
|
38
|
+
"prepack": "npm run all:publish",
|
|
39
|
+
"preversion": "npm test",
|
|
40
|
+
"compile": "tsc -b ./tsconfig.json",
|
|
41
|
+
"watch": "tsc -b ./tsconfig.watch.json -w",
|
|
42
|
+
"clean": "rimraf lib && rimraf dist",
|
|
43
|
+
"lint": "eslint --ext ts src",
|
|
44
|
+
"test": "npm run test:node && npm run test:browser",
|
|
45
|
+
"test:node": "node ../node_modules/mocha/bin/_mocha",
|
|
46
|
+
"test:browser": "npm run webpack:test:silent && node ../build/bin/runBrowserTests.js http://127.0.0.1:8080/jsonrpc/src/browser/test/",
|
|
47
|
+
"webpack": "node ../build/bin/webpack --mode none --config ./webpack.config.js",
|
|
48
|
+
"webpack:test": "node ../build/bin/webpack --mode none --config ./src/browser/test/webpack.config.js",
|
|
49
|
+
"webpack:test:silent": "node ../build/bin/webpack --no-stats --mode none --config ./src/browser/test/webpack.config.js",
|
|
50
|
+
"all": "npm run clean && npm run compile && npm run lint && npm run test",
|
|
51
|
+
"compile:publish": "tsc -b ./tsconfig.publish.json",
|
|
52
|
+
"all:publish": "git clean -xfd . && npm install && npm run compile:publish && npm run lint && npm run test"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* --------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
* ------------------------------------------------------------------------------------------ */
|
|
5
|
+
interface Thenable<T> extends PromiseLike<T> { }
|