+ exports2.createMessageConnection = createMessageConnection;
+});
+
+// node_modules/vscode-jsonrpc/lib/common/api.js
+var require_api = __commonJS((exports2) => {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", {value: true});
+ exports2.CancellationSenderStrategy = exports2.CancellationReceiverStrategy = exports2.ConnectionError = exports2.ConnectionErrors = exports2.LogTraceNotification = exports2.SetTraceNotification = exports2.TraceFormat = exports2.Trace = exports2.ProgressType = exports2.createMessageConnection = exports2.NullLogger = exports2.ConnectionOptions = exports2.ConnectionStrategy = exports2.WriteableStreamMessageWriter = exports2.AbstractMessageWriter = exports2.MessageWriter = exports2.ReadableStreamMessageReader = exports2.AbstractMessageReader = exports2.MessageReader = exports2.CancellationToken = exports2.CancellationTokenSource = exports2.Emitter = exports2.Event = exports2.Disposable = exports2.ParameterStructures = exports2.NotificationType9 = exports2.NotificationType8 = exports2.NotificationType7 = exports2.NotificationType6 = exports2.NotificationType5 = exports2.NotificationType4 = exports2.NotificationType3 = exports2.NotificationType2 = exports2.NotificationType1 = exports2.NotificationType0 = exports2.NotificationType = exports2.ErrorCodes = exports2.ResponseError = exports2.RequestType9 = exports2.RequestType8 = exports2.RequestType7 = exports2.RequestType6 = exports2.RequestType5 = exports2.RequestType4 = exports2.RequestType3 = exports2.RequestType2 = exports2.RequestType1 = exports2.RequestType0 = exports2.RequestType = exports2.RAL = void 0;
+ exports2.CancellationStrategy = void 0;
+ var messages_1 = require_messages();
+ Object.defineProperty(exports2, "RequestType", {enumerable: true, get: function() {
+ return messages_1.RequestType;
+ }});
+ Object.defineProperty(exports2, "RequestType0", {enumerable: true, get: function() {
+ return messages_1.RequestType0;
+ }});
+ Object.defineProperty(exports2, "RequestType1", {enumerable: true, get: function() {
+ return messages_1.RequestType1;
+ }});
+ Object.defineProperty(exports2, "RequestType2", {enumerable: true, get: function() {
+ return messages_1.RequestType2;
+ }});
+ Object.defineProperty(exports2, "RequestType3", {enumerable: true, get: function() {
+ return messages_1.RequestType3;
+ }});
+ Object.defineProperty(exports2, "RequestType4", {enumerable: true, get: function() {
+ return messages_1.RequestType4;
+ }});
+ Object.defineProperty(exports2, "RequestType5", {enumerable: true, get: function() {
+ return messages_1.RequestType5;
+ }});
+ Object.defineProperty(exports2, "RequestType6", {enumerable: true, get: function() {
+ return messages_1.RequestType6;
+ }});
+ Object.defineProperty(exports2, "RequestType7", {enumerable: true, get: function() {
+ return messages_1.RequestType7;
+ }});
+ Object.defineProperty(exports2, "RequestType8", {enumerable: true, get: function() {
+ return messages_1.RequestType8;
+ }});
+ Object.defineProperty(exports2, "RequestType9", {enumerable: true, get: function() {
+ return messages_1.RequestType9;
+ }});
+ Object.defineProperty(exports2, "ResponseError", {enumerable: true, get: function() {
+ return messages_1.ResponseError;
+ }});
+ Object.defineProperty(exports2, "ErrorCodes", {enumerable: true, get: function() {
+ return messages_1.ErrorCodes;
+ }});
+ Object.defineProperty(exports2, "NotificationType", {enumerable: true, get: function() {
+ return messages_1.NotificationType;
+ }});
+ Object.defineProperty(exports2, "NotificationType0", {enumerable: true, get: function() {
+ return messages_1.NotificationType0;
+ }});
+ Object.defineProperty(exports2, "NotificationType1", {enumerable: true, get: function() {
+ return messages_1.NotificationType1;
+ }});
+ Object.defineProperty(exports2, "NotificationType2", {enumerable: true, get: function() {
+ return messages_1.NotificationType2;
+ }});
+ Object.defineProperty(exports2, "NotificationType3", {enumerable: true, get: function() {
+ return messages_1.NotificationType3;
+ }});
+ Object.defineProperty(exports2, "NotificationType4", {enumerable: true, get: function() {
+ return messages_1.NotificationType4;
+ }});
+ Object.defineProperty(exports2, "NotificationType5", {enumerable: true, get: function() {
+ return messages_1.NotificationType5;
+ }});
+ Object.defineProperty(exports2, "NotificationType6", {enumerable: true, get: function() {
+ return messages_1.NotificationType6;
+ }});
+ Object.defineProperty(exports2, "NotificationType7", {enumerable: true, get: function() {
+ return messages_1.NotificationType7;
+ }});
+ Object.defineProperty(exports2, "NotificationType8", {enumerable: true, get: function() {
+ return messages_1.NotificationType8;
+ }});
+ Object.defineProperty(exports2, "NotificationType9", {enumerable: true, get: function() {
+ return messages_1.NotificationType9;
+ }});
+ Object.defineProperty(exports2, "ParameterStructures", {enumerable: true, get: function() {
+ return messages_1.ParameterStructures;
+ }});
+ var disposable_1 = require_disposable();
+ Object.defineProperty(exports2, "Disposable", {enumerable: true, get: function() {
+ return disposable_1.Disposable;
+ }});
+ var events_1 = require_events();
+ Object.defineProperty(exports2, "Event", {enumerable: true, get: function() {
+ return events_1.Event;
+ }});
+ Object.defineProperty(exports2, "Emitter", {enumerable: true, get: function() {
+ return events_1.Emitter;
+ }});
+ var cancellation_1 = require_cancellation();
+ Object.defineProperty(exports2, "CancellationTokenSource", {enumerable: true, get: function() {
+ return cancellation_1.CancellationTokenSource;
+ }});
+ Object.defineProperty(exports2, "CancellationToken", {enumerable: true, get: function() {
+ return cancellation_1.CancellationToken;
+ }});
+ var messageReader_1 = require_messageReader();
+ Object.defineProperty(exports2, "MessageReader", {enumerable: true, get: function() {
+ return messageReader_1.MessageReader;
+ }});
+ Object.defineProperty(exports2, "AbstractMessageReader", {enumerable: true, get: function() {
+ return messageReader_1.AbstractMessageReader;
+ }});
+ Object.defineProperty(exports2, "ReadableStreamMessageReader", {enumerable: true, get: function() {
+ return messageReader_1.ReadableStreamMessageReader;
+ }});
+ var messageWriter_1 = require_messageWriter();
+ Object.defineProperty(exports2, "MessageWriter", {enumerable: true, get: function() {
+ return messageWriter_1.MessageWriter;
+ }});
+ Object.defineProperty(exports2, "AbstractMessageWriter", {enumerable: true, get: function() {
+ return messageWriter_1.AbstractMessageWriter;
+ }});
+ Object.defineProperty(exports2, "WriteableStreamMessageWriter", {enumerable: true, get: function() {
+ return messageWriter_1.WriteableStreamMessageWriter;
+ }});
+ var connection_1 = require_connection();
+ Object.defineProperty(exports2, "ConnectionStrategy", {enumerable: true, get: function() {
+ return connection_1.ConnectionStrategy;
+ }});
+ Object.defineProperty(exports2, "ConnectionOptions", {enumerable: true, get: function() {
+ return connection_1.ConnectionOptions;
+ }});
+ Object.defineProperty(exports2, "NullLogger", {enumerable: true, get: function() {
+ return connection_1.NullLogger;
+ }});
+ Object.defineProperty(exports2, "createMessageConnection", {enumerable: true, get: function() {
+ return connection_1.createMessageConnection;
+ }});
+ Object.defineProperty(exports2, "ProgressType", {enumerable: true, get: function() {
+ return connection_1.ProgressType;
+ }});
+ Object.defineProperty(exports2, "Trace", {enumerable: true, get: function() {
+ return connection_1.Trace;
+ }});
+ Object.defineProperty(exports2, "TraceFormat", {enumerable: true, get: function() {
+ return connection_1.TraceFormat;
+ }});
+ Object.defineProperty(exports2, "SetTraceNotification", {enumerable: true, get: function() {
+ return connection_1.SetTraceNotification;
+ }});
+ Object.defineProperty(exports2, "LogTraceNotification", {enumerable: true, get: function() {
+ return connection_1.LogTraceNotification;
+ }});
+ Object.defineProperty(exports2, "ConnectionErrors", {enumerable: true, get: function() {
+ return connection_1.ConnectionErrors;
+ }});
+ Object.defineProperty(exports2, "ConnectionError", {enumerable: true, get: function() {
+ return connection_1.ConnectionError;
+ }});
+ Object.defineProperty(exports2, "CancellationReceiverStrategy", {enumerable: true, get: function() {
+ return connection_1.CancellationReceiverStrategy;
+ }});
+ Object.defineProperty(exports2, "CancellationSenderStrategy", {enumerable: true, get: function() {
+ return connection_1.CancellationSenderStrategy;
+ }});
+ Object.defineProperty(exports2, "CancellationStrategy", {enumerable: true, get: function() {
+ return connection_1.CancellationStrategy;
+ }});
+ var ral_1 = require_ral();
+ exports2.RAL = ral_1.default;
+});
+
+// node_modules/vscode-jsonrpc/lib/node/main.js
+var require_main = __commonJS((exports2) => {
+ "use strict";
+ var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ Object.defineProperty(o, k2, {enumerable: true, get: function() {
+ return m[k];
+ }});
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) {
+ for (var p in m)
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
+ __createBinding(exports3, m, p);
+ };
+ Object.defineProperty(exports2, "__esModule", {value: true});
+ exports2.createMessageConnection = exports2.createServerSocketTransport = exports2.createClientSocketTransport = exports2.createServerPipeTransport = exports2.createClientPipeTransport = exports2.generateRandomPipeName = exports2.StreamMessageWriter = exports2.StreamMessageReader = exports2.SocketMessageWriter = exports2.SocketMessageReader = exports2.IPCMessageWriter = exports2.IPCMessageReader = void 0;
+ var ril_1 = require_ril();
+ ril_1.default.install();
+ var api_1 = require_api();
+ var path9 = require("path");
+ var os3 = require("os");
+ var crypto_1 = require("crypto");
+ var net_1 = require("net");
+ __exportStar2(require_api(), exports2);
+ var IPCMessageReader = class extends api_1.AbstractMessageReader {
+ constructor(process2) {
+ super();
+ this.process = process2;
+ let eventEmitter = this.process;
+ eventEmitter.on("error", (error) => this.fireError(error));
+ eventEmitter.on("close", () => this.fireClose());
+ }
+ listen(callback) {
+ this.process.on("message", callback);
+ return api_1.Disposable.create(() => this.process.off("message", callback));
+ }
+ };
+ exports2.IPCMessageReader = IPCMessageReader;
+ var IPCMessageWriter = class extends api_1.AbstractMessageWriter {
+ constructor(process2) {
+ super();
+ this.process = process2;
+ this.errorCount = 0;
+ let eventEmitter = this.process;
+ eventEmitter.on("error", (error) => this.fireError(error));
+ eventEmitter.on("close", () => this.fireClose);
+ }
+ write(msg) {
+ try {
+ if (typeof this.process.send === "function") {
+ this.process.send(msg, void 0, void 0, (error) => {
+ if (error) {
+ this.errorCount++;
+ this.handleError(error, msg);
+ } else {
+ this.errorCount = 0;
+ }
+ });
+ }
+ return Promise.resolve();
+ } catch (error) {
+ this.handleError(error, msg);
+ return Promise.reject(error);
+ }
+ }
+ handleError(error, msg) {
+ this.errorCount++;
+ this.fireError(error, msg, this.errorCount);
+ }
+ end() {
+ }
+ };
+ exports2.IPCMessageWriter = IPCMessageWriter;
+ var SocketMessageReader = class extends api_1.ReadableStreamMessageReader {
+ constructor(socket, encoding = "utf-8") {
+ super(ril_1.default().stream.asReadableStream(socket), encoding);
+ }
+ };
+ exports2.SocketMessageReader = SocketMessageReader;
+ var SocketMessageWriter = class extends api_1.WriteableStreamMessageWriter {
+ constructor(socket, options) {
+ super(ril_1.default().stream.asWritableStream(socket), options);
+ this.socket = socket;
+ }
+ dispose() {
+ super.dispose();
+ this.socket.destroy();
+ }
+ };
+ exports2.SocketMessageWriter = SocketMessageWriter;
+ var StreamMessageReader = class extends api_1.ReadableStreamMessageReader {
+ constructor(readble, encoding) {
+ super(ril_1.default().stream.asReadableStream(readble), encoding);
+ }
+ };
+ exports2.StreamMessageReader = StreamMessageReader;
+ var StreamMessageWriter = class extends api_1.WriteableStreamMessageWriter {
+ constructor(writable, options) {
+ super(ril_1.default().stream.asWritableStream(writable), options);
+ }
+ };
+ exports2.StreamMessageWriter = StreamMessageWriter;
+ var XDG_RUNTIME_DIR = process.env["XDG_RUNTIME_DIR"];
+ var safeIpcPathLengths = new Map([
+ ["linux", 107],
+ ["darwin", 103]
+ ]);
+ function generateRandomPipeName() {
+ const randomSuffix = crypto_1.randomBytes(21).toString("hex");
+ if (process.platform === "win32") {
+ return `\\\\.\\pipe\\vscode-jsonrpc-${randomSuffix}-sock`;
+ }
+ let result;
+ if (XDG_RUNTIME_DIR) {
+ result = path9.join(XDG_RUNTIME_DIR, `vscode-ipc-${randomSuffix}.sock`);
+ } else {
+ result = path9.join(os3.tmpdir(), `vscode-${randomSuffix}.sock`);
+ }
+ const limit = safeIpcPathLengths.get(process.platform);
+ if (limit !== void 0 && result.length >= limit) {
+ ril_1.default().console.warn(`WARNING: IPC handle "${result}" is longer than ${limit} characters.`);
+ }
+ return result;
+ }
+ exports2.generateRandomPipeName = generateRandomPipeName;
+ function createClientPipeTransport(pipeName, encoding = "utf-8") {
+ let connectResolve;
+ const connected = new Promise((resolve, _reject) => {
+ connectResolve = resolve;
+ });
+ return new Promise((resolve, reject) => {
+ let server = net_1.createServer((socket) => {
+ server.close();
+ connectResolve([
+ new SocketMessageReader(socket, encoding),
+ new SocketMessageWriter(socket, encoding)
+ ]);
+ });
+ server.on("error", reject);
+ server.listen(pipeName, () => {
+ server.removeListener("error", reject);
+ resolve({
+ onConnected: () => {
+ return connected;
+ }
+ });
+ });
+ });
+ }
+ exports2.createClientPipeTransport = createClientPipeTransport;
+ function createServerPipeTransport(pipeName, encoding = "utf-8") {
+ const socket = net_1.createConnection(pipeName);
+ return [
+ new SocketMessageReader(socket, encoding),
+ new SocketMessageWriter(socket, encoding)
+ ];
+ }
+ exports2.createServerPipeTransport = createServerPipeTransport;
+ function createClientSocketTransport(port, encoding = "utf-8") {
+ let connectResolve;
+ const connected = new Promise((resolve, _reject) => {
+ connectResolve = resolve;
+ });
+ return new Promise((resolve, reject) => {
+ const server = net_1.createServer((socket) => {
+ server.close();
+ connectResolve([
+ new SocketMessageReader(socket, encoding),
+ new SocketMessageWriter(socket, encoding)
+ ]);
+ });
+ server.on("error", reject);
+ server.listen(port, "127.0.0.1", () => {
+ server.removeListener("error", reject);
+ resolve({
+ onConnected: () => {
+ return connected;
+ }
+ });
+ });
+ });
+ }
+ exports2.createClientSocketTransport = createClientSocketTransport;
+ function createServerSocketTransport(port, encoding = "utf-8") {
+ const socket = net_1.createConnection(port, "127.0.0.1");
+ return [
+ new SocketMessageReader(socket, encoding),
+ new SocketMessageWriter(socket, encoding)
+ ];
+ }
+ exports2.createServerSocketTransport = createServerSocketTransport;
+ function isReadableStream(value) {
+ const candidate = value;
+ return candidate.read !== void 0 && candidate.addListener !== void 0;