⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.45
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
invoice
/
node_modules
/
vls
/
dist
/
View File Name :
vueServerMain.js.map
{"version":3,"file":"vueServerMain.js","sources":["../node_modules/vscode-languageserver/lib/common/utils/is.js","../node_modules/vscode-jsonrpc/lib/common/ral.js","../node_modules/vscode-jsonrpc/lib/common/disposable.js","../node_modules/vscode-jsonrpc/lib/common/messageBuffer.js","../node_modules/vscode-jsonrpc/lib/node/ril.js","../node_modules/vscode-jsonrpc/lib/common/is.js","../node_modules/vscode-jsonrpc/lib/common/messages.js","../node_modules/vscode-jsonrpc/lib/common/events.js","../node_modules/vscode-jsonrpc/lib/common/cancellation.js","../node_modules/vscode-jsonrpc/lib/common/messageWriter.js","../node_modules/vscode-jsonrpc/lib/common/semaphore.js","../node_modules/vscode-jsonrpc/lib/common/connection.js","../node_modules/vscode-jsonrpc/lib/common/linkedMap.js","../node_modules/vscode-jsonrpc/lib/common/api.js","../node_modules/vscode-jsonrpc/lib/common/messageReader.js","../node_modules/vscode-jsonrpc/lib/node/main.js","../node_modules/vscode-jsonrpc/node.js","../node_modules/vscode-languageserver-types/lib/esm/main.js","../node_modules/vscode-languageserver-protocol/lib/common/messages.js","../node_modules/vscode-languageserver-protocol/lib/common/utils/is.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolders.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js","../node_modules/vscode-languageserver-protocol/lib/common/protocol.js","../node_modules/vscode-languageserver-protocol/lib/common/connection.js","../node_modules/vscode-languageserver-protocol/lib/common/api.js","../node_modules/vscode-languageserver-protocol/lib/node/main.js","../node_modules/vscode-languageserver/lib/common/utils/uuid.js","../node_modules/vscode-languageserver/lib/common/progress.js","../node_modules/vscode-languageserver/lib/common/configuration.js","../node_modules/vscode-languageserver/lib/common/workspaceFolders.js","../node_modules/vscode-languageserver/lib/common/callHierarchy.js","../node_modules/vscode-languageserver/lib/common/semanticTokens.js","../node_modules/vscode-languageserver/lib/common/showDocument.js","../node_modules/vscode-languageserver/lib/common/fileOperations.js","../node_modules/vscode-languageserver/lib/common/linkedEditingRange.js","../node_modules/vscode-languageserver/lib/common/moniker.js","../node_modules/vscode-languageserver/lib/common/server.js","../node_modules/vscode-languageserver/lib/node/files.js","../node_modules/vscode-languageserver-protocol/node.js","../node_modules/vscode-languageserver/lib/common/api.js","../node_modules/vscode-languageserver/lib/node/main.js","../node_modules/vscode-languageserver/node.js","../src/vueServerMain.ts"],"sourcesContent":["\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.thenable = exports.typedArray = exports.stringArray = exports.array = exports.func = exports.error = exports.number = exports.string = exports.boolean = void 0;\nfunction boolean(value) {\n return value === true || value === false;\n}\nexports.boolean = boolean;\nfunction string(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexports.string = string;\nfunction number(value) {\n return typeof value === 'number' || value instanceof Number;\n}\nexports.number = number;\nfunction error(value) {\n return value instanceof Error;\n}\nexports.error = error;\nfunction func(value) {\n return typeof value === 'function';\n}\nexports.func = func;\nfunction array(value) {\n return Array.isArray(value);\n}\nexports.array = array;\nfunction stringArray(value) {\n return array(value) && value.every(elem => string(elem));\n}\nexports.stringArray = stringArray;\nfunction typedArray(value, check) {\n return Array.isArray(value) && value.every(check);\n}\nexports.typedArray = typedArray;\nfunction thenable(value) {\n return value && func(value.then);\n}\nexports.thenable = thenable;\n//# sourceMappingURL=is.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet _ral;\nfunction RAL() {\n if (_ral === undefined) {\n throw new Error(`No runtime abstraction layer installed`);\n }\n return _ral;\n}\n(function (RAL) {\n function install(ral) {\n if (ral === undefined) {\n throw new Error(`No runtime abstraction layer provided`);\n }\n _ral = ral;\n }\n RAL.install = install;\n})(RAL || (RAL = {}));\nexports.default = RAL;\n//# sourceMappingURL=ral.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Disposable = void 0;\nvar Disposable;\n(function (Disposable) {\n function create(func) {\n return {\n dispose: func\n };\n }\n Disposable.create = create;\n})(Disposable = exports.Disposable || (exports.Disposable = {}));\n//# sourceMappingURL=disposable.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractMessageBuffer = void 0;\nconst CR = 13;\nconst LF = 10;\nconst CRLF = '\\r\\n';\nclass AbstractMessageBuffer {\n constructor(encoding = 'utf-8') {\n this._encoding = encoding;\n this._chunks = [];\n this._totalLength = 0;\n }\n get encoding() {\n return this._encoding;\n }\n append(chunk) {\n const toAppend = typeof chunk === 'string' ? this.fromString(chunk, this._encoding) : chunk;\n this._chunks.push(toAppend);\n this._totalLength += toAppend.byteLength;\n }\n tryReadHeaders() {\n if (this._chunks.length === 0) {\n return undefined;\n }\n let state = 0;\n let chunkIndex = 0;\n let offset = 0;\n let chunkBytesRead = 0;\n row: while (chunkIndex < this._chunks.length) {\n const chunk = this._chunks[chunkIndex];\n offset = 0;\n column: while (offset < chunk.length) {\n const value = chunk[offset];\n switch (value) {\n case CR:\n switch (state) {\n case 0:\n state = 1;\n break;\n case 2:\n state = 3;\n break;\n default:\n state = 0;\n }\n break;\n case LF:\n switch (state) {\n case 1:\n state = 2;\n break;\n case 3:\n state = 4;\n offset++;\n break row;\n default:\n state = 0;\n }\n break;\n default:\n state = 0;\n }\n offset++;\n }\n chunkBytesRead += chunk.byteLength;\n chunkIndex++;\n }\n if (state !== 4) {\n return undefined;\n }\n // The buffer contains the two CRLF at the end. So we will\n // have two empty lines after the split at the end as well.\n const buffer = this._read(chunkBytesRead + offset);\n const result = new Map();\n const headers = this.toString(buffer, 'ascii').split(CRLF);\n if (headers.length < 2) {\n return result;\n }\n for (let i = 0; i < headers.length - 2; i++) {\n const header = headers[i];\n const index = header.indexOf(':');\n if (index === -1) {\n throw new Error('Message header must separate key and value using :');\n }\n const key = header.substr(0, index);\n const value = header.substr(index + 1).trim();\n result.set(key, value);\n }\n return result;\n }\n tryReadBody(length) {\n if (this._totalLength < length) {\n return undefined;\n }\n return this._read(length);\n }\n get numberOfBytes() {\n return this._totalLength;\n }\n _read(byteCount) {\n if (byteCount === 0) {\n return this.emptyBuffer();\n }\n if (byteCount > this._totalLength) {\n throw new Error(`Cannot read so many bytes!`);\n }\n if (this._chunks[0].byteLength === byteCount) {\n // super fast path, precisely first chunk must be returned\n const chunk = this._chunks[0];\n this._chunks.shift();\n this._totalLength -= byteCount;\n return this.asNative(chunk);\n }\n if (this._chunks[0].byteLength > byteCount) {\n // fast path, the reading is entirely within the first chunk\n const chunk = this._chunks[0];\n const result = this.asNative(chunk, byteCount);\n this._chunks[0] = chunk.slice(byteCount);\n this._totalLength -= byteCount;\n return result;\n }\n const result = this.allocNative(byteCount);\n let resultOffset = 0;\n let chunkIndex = 0;\n while (byteCount > 0) {\n const chunk = this._chunks[chunkIndex];\n if (chunk.byteLength > byteCount) {\n // this chunk will survive\n const chunkPart = chunk.slice(0, byteCount);\n result.set(chunkPart, resultOffset);\n resultOffset += byteCount;\n this._chunks[chunkIndex] = chunk.slice(byteCount);\n this._totalLength -= byteCount;\n byteCount -= byteCount;\n }\n else {\n // this chunk will be entirely read\n result.set(chunk, resultOffset);\n resultOffset += chunk.byteLength;\n this._chunks.shift();\n this._totalLength -= chunk.byteLength;\n byteCount -= chunk.byteLength;\n }\n }\n return result;\n }\n}\nexports.AbstractMessageBuffer = AbstractMessageBuffer;\n//# sourceMappingURL=messageBuffer.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst ral_1 = require(\"../common/ral\");\nconst util_1 = require(\"util\");\nconst disposable_1 = require(\"../common/disposable\");\nconst messageBuffer_1 = require(\"../common/messageBuffer\");\nclass MessageBuffer extends messageBuffer_1.AbstractMessageBuffer {\n constructor(encoding = 'utf-8') {\n super(encoding);\n }\n emptyBuffer() {\n return MessageBuffer.emptyBuffer;\n }\n fromString(value, encoding) {\n return Buffer.from(value, encoding);\n }\n toString(value, encoding) {\n if (value instanceof Buffer) {\n return value.toString(encoding);\n }\n else {\n return new util_1.TextDecoder(encoding).decode(value);\n }\n }\n asNative(buffer, length) {\n if (length === undefined) {\n return buffer instanceof Buffer ? buffer : Buffer.from(buffer);\n }\n else {\n return buffer instanceof Buffer ? buffer.slice(0, length) : Buffer.from(buffer, 0, length);\n }\n }\n allocNative(length) {\n return Buffer.allocUnsafe(length);\n }\n}\nMessageBuffer.emptyBuffer = Buffer.allocUnsafe(0);\nclass ReadableStreamWrapper {\n constructor(stream) {\n this.stream = stream;\n }\n onClose(listener) {\n this.stream.on('close', listener);\n return disposable_1.Disposable.create(() => this.stream.off('close', listener));\n }\n onError(listener) {\n this.stream.on('error', listener);\n return disposable_1.Disposable.create(() => this.stream.off('error', listener));\n }\n onEnd(listener) {\n this.stream.on('end', listener);\n return disposable_1.Disposable.create(() => this.stream.off('end', listener));\n }\n onData(listener) {\n this.stream.on('data', listener);\n return disposable_1.Disposable.create(() => this.stream.off('data', listener));\n }\n}\nclass WritableStreamWrapper {\n constructor(stream) {\n this.stream = stream;\n }\n onClose(listener) {\n this.stream.on('close', listener);\n return disposable_1.Disposable.create(() => this.stream.off('close', listener));\n }\n onError(listener) {\n this.stream.on('error', listener);\n return disposable_1.Disposable.create(() => this.stream.off('error', listener));\n }\n onEnd(listener) {\n this.stream.on('end', listener);\n return disposable_1.Disposable.create(() => this.stream.off('end', listener));\n }\n write(data, encoding) {\n return new Promise((resolve, reject) => {\n const callback = (error) => {\n if (error === undefined || error === null) {\n resolve();\n }\n else {\n reject(error);\n }\n };\n if (typeof data === 'string') {\n this.stream.write(data, encoding, callback);\n }\n else {\n this.stream.write(data, callback);\n }\n });\n }\n end() {\n this.stream.end();\n }\n}\nconst _ril = Object.freeze({\n messageBuffer: Object.freeze({\n create: (encoding) => new MessageBuffer(encoding)\n }),\n applicationJson: Object.freeze({\n encoder: Object.freeze({\n name: 'application/json',\n encode: (msg, options) => {\n try {\n return Promise.resolve(Buffer.from(JSON.stringify(msg, undefined, 0), options.charset));\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n }),\n decoder: Object.freeze({\n name: 'application/json',\n decode: (buffer, options) => {\n try {\n if (buffer instanceof Buffer) {\n return Promise.resolve(JSON.parse(buffer.toString(options.charset)));\n }\n else {\n return Promise.resolve(JSON.parse(new util_1.TextDecoder(options.charset).decode(buffer)));\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n })\n }),\n stream: Object.freeze({\n asReadableStream: (stream) => new ReadableStreamWrapper(stream),\n asWritableStream: (stream) => new WritableStreamWrapper(stream)\n }),\n console: console,\n timer: Object.freeze({\n setTimeout(callback, ms, ...args) {\n return setTimeout(callback, ms, ...args);\n },\n clearTimeout(handle) {\n clearTimeout(handle);\n },\n setImmediate(callback, ...args) {\n return setImmediate(callback, ...args);\n },\n clearImmediate(handle) {\n clearImmediate(handle);\n }\n })\n});\nfunction RIL() {\n return _ril;\n}\n(function (RIL) {\n function install() {\n ral_1.default.install(_ril);\n }\n RIL.install = install;\n})(RIL || (RIL = {}));\nexports.default = RIL;\n//# sourceMappingURL=ril.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringArray = exports.array = exports.func = exports.error = exports.number = exports.string = exports.boolean = void 0;\nfunction boolean(value) {\n return value === true || value === false;\n}\nexports.boolean = boolean;\nfunction string(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexports.string = string;\nfunction number(value) {\n return typeof value === 'number' || value instanceof Number;\n}\nexports.number = number;\nfunction error(value) {\n return value instanceof Error;\n}\nexports.error = error;\nfunction func(value) {\n return typeof value === 'function';\n}\nexports.func = func;\nfunction array(value) {\n return Array.isArray(value);\n}\nexports.array = array;\nfunction stringArray(value) {\n return array(value) && value.every(elem => string(elem));\n}\nexports.stringArray = stringArray;\n//# sourceMappingURL=is.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isResponseMessage = exports.isNotificationMessage = exports.isRequestMessage = exports.NotificationType9 = exports.NotificationType8 = exports.NotificationType7 = exports.NotificationType6 = exports.NotificationType5 = exports.NotificationType4 = exports.NotificationType3 = exports.NotificationType2 = exports.NotificationType1 = exports.NotificationType0 = exports.NotificationType = exports.RequestType9 = exports.RequestType8 = exports.RequestType7 = exports.RequestType6 = exports.RequestType5 = exports.RequestType4 = exports.RequestType3 = exports.RequestType2 = exports.RequestType1 = exports.RequestType = exports.RequestType0 = exports.AbstractMessageSignature = exports.ParameterStructures = exports.ResponseError = exports.ErrorCodes = void 0;\nconst is = require(\"./is\");\n/**\n * Predefined error codes.\n */\nvar ErrorCodes;\n(function (ErrorCodes) {\n // Defined by JSON RPC\n ErrorCodes.ParseError = -32700;\n ErrorCodes.InvalidRequest = -32600;\n ErrorCodes.MethodNotFound = -32601;\n ErrorCodes.InvalidParams = -32602;\n ErrorCodes.InternalError = -32603;\n /**\n * This is the start range of JSON RPC reserved error codes.\n * It doesn't denote a real error code. No application error codes should\n * be defined between the start and end range. For backwards\n * compatibility the `ServerNotInitialized` and the `UnknownErrorCode`\n * are left in the range.\n *\n * @since 3.16.0\n */\n ErrorCodes.jsonrpcReservedErrorRangeStart = -32099;\n /** @deprecated use jsonrpcReservedErrorRangeStart */\n ErrorCodes.serverErrorStart = ErrorCodes.jsonrpcReservedErrorRangeStart;\n ErrorCodes.MessageWriteError = -32099;\n ErrorCodes.MessageReadError = -32098;\n ErrorCodes.ServerNotInitialized = -32002;\n ErrorCodes.UnknownErrorCode = -32001;\n /**\n * This is the end range of JSON RPC reserved error codes.\n * It doesn't denote a real error code.\n *\n * @since 3.16.0\n */\n ErrorCodes.jsonrpcReservedErrorRangeEnd = -32000;\n /** @deprecated use jsonrpcReservedErrorRangeEnd */\n ErrorCodes.serverErrorEnd = ErrorCodes.jsonrpcReservedErrorRangeEnd;\n})(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {}));\n/**\n * An error object return in a response in case a request\n * has failed.\n */\nclass ResponseError extends Error {\n constructor(code, message, data) {\n super(message);\n this.code = is.number(code) ? code : ErrorCodes.UnknownErrorCode;\n this.data = data;\n Object.setPrototypeOf(this, ResponseError.prototype);\n }\n toJson() {\n return {\n code: this.code,\n message: this.message,\n data: this.data,\n };\n }\n}\nexports.ResponseError = ResponseError;\nclass ParameterStructures {\n constructor(kind) {\n this.kind = kind;\n }\n static is(value) {\n return value === ParameterStructures.auto || value === ParameterStructures.byName || value === ParameterStructures.byPosition;\n }\n toString() {\n return this.kind;\n }\n}\nexports.ParameterStructures = ParameterStructures;\n/**\n * The parameter structure is automatically inferred on the number of parameters\n * and the parameter type in case of a single param.\n */\nParameterStructures.auto = new ParameterStructures('auto');\n/**\n * Forces `byPosition` parameter structure. This is useful if you have a single\n * parameter which has a literal type.\n */\nParameterStructures.byPosition = new ParameterStructures('byPosition');\n/**\n * Forces `byName` parameter structure. This is only useful when having a single\n * parameter. The library will report errors if used with a different number of\n * parameters.\n */\nParameterStructures.byName = new ParameterStructures('byName');\n/**\n * An abstract implementation of a MessageType.\n */\nclass AbstractMessageSignature {\n constructor(method, numberOfParams) {\n this.method = method;\n this.numberOfParams = numberOfParams;\n }\n get parameterStructures() {\n return ParameterStructures.auto;\n }\n}\nexports.AbstractMessageSignature = AbstractMessageSignature;\n/**\n * Classes to type request response pairs\n */\nclass RequestType0 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 0);\n }\n}\nexports.RequestType0 = RequestType0;\nclass RequestType extends AbstractMessageSignature {\n constructor(method, _parameterStructures = ParameterStructures.auto) {\n super(method, 1);\n this._parameterStructures = _parameterStructures;\n }\n get parameterStructures() {\n return this._parameterStructures;\n }\n}\nexports.RequestType = RequestType;\nclass RequestType1 extends AbstractMessageSignature {\n constructor(method, _parameterStructures = ParameterStructures.auto) {\n super(method, 1);\n this._parameterStructures = _parameterStructures;\n }\n get parameterStructures() {\n return this._parameterStructures;\n }\n}\nexports.RequestType1 = RequestType1;\nclass RequestType2 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 2);\n }\n}\nexports.RequestType2 = RequestType2;\nclass RequestType3 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 3);\n }\n}\nexports.RequestType3 = RequestType3;\nclass RequestType4 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 4);\n }\n}\nexports.RequestType4 = RequestType4;\nclass RequestType5 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 5);\n }\n}\nexports.RequestType5 = RequestType5;\nclass RequestType6 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 6);\n }\n}\nexports.RequestType6 = RequestType6;\nclass RequestType7 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 7);\n }\n}\nexports.RequestType7 = RequestType7;\nclass RequestType8 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 8);\n }\n}\nexports.RequestType8 = RequestType8;\nclass RequestType9 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 9);\n }\n}\nexports.RequestType9 = RequestType9;\nclass NotificationType extends AbstractMessageSignature {\n constructor(method, _parameterStructures = ParameterStructures.auto) {\n super(method, 1);\n this._parameterStructures = _parameterStructures;\n }\n get parameterStructures() {\n return this._parameterStructures;\n }\n}\nexports.NotificationType = NotificationType;\nclass NotificationType0 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 0);\n }\n}\nexports.NotificationType0 = NotificationType0;\nclass NotificationType1 extends AbstractMessageSignature {\n constructor(method, _parameterStructures = ParameterStructures.auto) {\n super(method, 1);\n this._parameterStructures = _parameterStructures;\n }\n get parameterStructures() {\n return this._parameterStructures;\n }\n}\nexports.NotificationType1 = NotificationType1;\nclass NotificationType2 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 2);\n }\n}\nexports.NotificationType2 = NotificationType2;\nclass NotificationType3 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 3);\n }\n}\nexports.NotificationType3 = NotificationType3;\nclass NotificationType4 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 4);\n }\n}\nexports.NotificationType4 = NotificationType4;\nclass NotificationType5 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 5);\n }\n}\nexports.NotificationType5 = NotificationType5;\nclass NotificationType6 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 6);\n }\n}\nexports.NotificationType6 = NotificationType6;\nclass NotificationType7 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 7);\n }\n}\nexports.NotificationType7 = NotificationType7;\nclass NotificationType8 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 8);\n }\n}\nexports.NotificationType8 = NotificationType8;\nclass NotificationType9 extends AbstractMessageSignature {\n constructor(method) {\n super(method, 9);\n }\n}\nexports.NotificationType9 = NotificationType9;\n/**\n * Tests if the given message is a request message\n */\nfunction isRequestMessage(message) {\n const candidate = message;\n return candidate && is.string(candidate.method) && (is.string(candidate.id) || is.number(candidate.id));\n}\nexports.isRequestMessage = isRequestMessage;\n/**\n * Tests if the given message is a notification message\n */\nfunction isNotificationMessage(message) {\n const candidate = message;\n return candidate && is.string(candidate.method) && message.id === void 0;\n}\nexports.isNotificationMessage = isNotificationMessage;\n/**\n * Tests if the given message is a response message\n */\nfunction isResponseMessage(message) {\n const candidate = message;\n return candidate && (candidate.result !== void 0 || !!candidate.error) && (is.string(candidate.id) || is.number(candidate.id) || candidate.id === null);\n}\nexports.isResponseMessage = isResponseMessage;\n//# sourceMappingURL=messages.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = exports.Event = void 0;\nconst ral_1 = require(\"./ral\");\nvar Event;\n(function (Event) {\n const _disposable = { dispose() { } };\n Event.None = function () { return _disposable; };\n})(Event = exports.Event || (exports.Event = {}));\nclass CallbackList {\n add(callback, context = null, bucket) {\n if (!this._callbacks) {\n this._callbacks = [];\n this._contexts = [];\n }\n this._callbacks.push(callback);\n this._contexts.push(context);\n if (Array.isArray(bucket)) {\n bucket.push({ dispose: () => this.remove(callback, context) });\n }\n }\n remove(callback, context = null) {\n if (!this._callbacks) {\n return;\n }\n let foundCallbackWithDifferentContext = false;\n for (let i = 0, len = this._callbacks.length; i < len; i++) {\n if (this._callbacks[i] === callback) {\n if (this._contexts[i] === context) {\n // callback & context match => remove it\n this._callbacks.splice(i, 1);\n this._contexts.splice(i, 1);\n return;\n }\n else {\n foundCallbackWithDifferentContext = true;\n }\n }\n }\n if (foundCallbackWithDifferentContext) {\n throw new Error('When adding a listener with a context, you should remove it with the same context');\n }\n }\n invoke(...args) {\n if (!this._callbacks) {\n return [];\n }\n const ret = [], callbacks = this._callbacks.slice(0), contexts = this._contexts.slice(0);\n for (let i = 0, len = callbacks.length; i < len; i++) {\n try {\n ret.push(callbacks[i].apply(contexts[i], args));\n }\n catch (e) {\n // eslint-disable-next-line no-console\n ral_1.default().console.error(e);\n }\n }\n return ret;\n }\n isEmpty() {\n return !this._callbacks || this._callbacks.length === 0;\n }\n dispose() {\n this._callbacks = undefined;\n this._contexts = undefined;\n }\n}\nclass Emitter {\n constructor(_options) {\n this._options = _options;\n }\n /**\n * For the public to allow to subscribe\n * to events from this Emitter\n */\n get event() {\n if (!this._event) {\n this._event = (listener, thisArgs, disposables) => {\n if (!this._callbacks) {\n this._callbacks = new CallbackList();\n }\n if (this._options && this._options.onFirstListenerAdd && this._callbacks.isEmpty()) {\n this._options.onFirstListenerAdd(this);\n }\n this._callbacks.add(listener, thisArgs);\n const result = {\n dispose: () => {\n if (!this._callbacks) {\n // disposable is disposed after emitter is disposed.\n return;\n }\n this._callbacks.remove(listener, thisArgs);\n result.dispose = Emitter._noop;\n if (this._options && this._options.onLastListenerRemove && this._callbacks.isEmpty()) {\n this._options.onLastListenerRemove(this);\n }\n }\n };\n if (Array.isArray(disposables)) {\n disposables.push(result);\n }\n return result;\n };\n }\n return this._event;\n }\n /**\n * To be kept private to fire an event to\n * subscribers\n */\n fire(event) {\n if (this._callbacks) {\n this._callbacks.invoke.call(this._callbacks, event);\n }\n }\n dispose() {\n if (this._callbacks) {\n this._callbacks.dispose();\n this._callbacks = undefined;\n }\n }\n}\nexports.Emitter = Emitter;\nEmitter._noop = function () { };\n//# sourceMappingURL=events.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancellationTokenSource = exports.CancellationToken = void 0;\nconst ral_1 = require(\"./ral\");\nconst Is = require(\"./is\");\nconst events_1 = require(\"./events\");\nvar CancellationToken;\n(function (CancellationToken) {\n CancellationToken.None = Object.freeze({\n isCancellationRequested: false,\n onCancellationRequested: events_1.Event.None\n });\n CancellationToken.Cancelled = Object.freeze({\n isCancellationRequested: true,\n onCancellationRequested: events_1.Event.None\n });\n function is(value) {\n const candidate = value;\n return candidate && (candidate === CancellationToken.None\n || candidate === CancellationToken.Cancelled\n || (Is.boolean(candidate.isCancellationRequested) && !!candidate.onCancellationRequested));\n }\n CancellationToken.is = is;\n})(CancellationToken = exports.CancellationToken || (exports.CancellationToken = {}));\nconst shortcutEvent = Object.freeze(function (callback, context) {\n const handle = ral_1.default().timer.setTimeout(callback.bind(context), 0);\n return { dispose() { ral_1.default().timer.clearTimeout(handle); } };\n});\nclass MutableToken {\n constructor() {\n this._isCancelled = false;\n }\n cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true;\n if (this._emitter) {\n this._emitter.fire(undefined);\n this.dispose();\n }\n }\n }\n get isCancellationRequested() {\n return this._isCancelled;\n }\n get onCancellationRequested() {\n if (this._isCancelled) {\n return shortcutEvent;\n }\n if (!this._emitter) {\n this._emitter = new events_1.Emitter();\n }\n return this._emitter.event;\n }\n dispose() {\n if (this._emitter) {\n this._emitter.dispose();\n this._emitter = undefined;\n }\n }\n}\nclass CancellationTokenSource {\n get token() {\n if (!this._token) {\n // be lazy and create the token only when\n // actually needed\n this._token = new MutableToken();\n }\n return this._token;\n }\n cancel() {\n if (!this._token) {\n // save an object by returning the default\n // cancelled token when cancellation happens\n // before someone asks for the token\n this._token = CancellationToken.Cancelled;\n }\n else {\n this._token.cancel();\n }\n }\n dispose() {\n if (!this._token) {\n // ensure to initialize with an empty token if we had none\n this._token = CancellationToken.None;\n }\n else if (this._token instanceof MutableToken) {\n // actually dispose\n this._token.dispose();\n }\n }\n}\nexports.CancellationTokenSource = CancellationTokenSource;\n//# sourceMappingURL=cancellation.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WriteableStreamMessageWriter = exports.AbstractMessageWriter = exports.MessageWriter = void 0;\nconst ral_1 = require(\"./ral\");\nconst Is = require(\"./is\");\nconst semaphore_1 = require(\"./semaphore\");\nconst events_1 = require(\"./events\");\nconst ContentLength = 'Content-Length: ';\nconst CRLF = '\\r\\n';\nvar MessageWriter;\n(function (MessageWriter) {\n function is(value) {\n let candidate = value;\n return candidate && Is.func(candidate.dispose) && Is.func(candidate.onClose) &&\n Is.func(candidate.onError) && Is.func(candidate.write);\n }\n MessageWriter.is = is;\n})(MessageWriter = exports.MessageWriter || (exports.MessageWriter = {}));\nclass AbstractMessageWriter {\n constructor() {\n this.errorEmitter = new events_1.Emitter();\n this.closeEmitter = new events_1.Emitter();\n }\n dispose() {\n this.errorEmitter.dispose();\n this.closeEmitter.dispose();\n }\n get onError() {\n return this.errorEmitter.event;\n }\n fireError(error, message, count) {\n this.errorEmitter.fire([this.asError(error), message, count]);\n }\n get onClose() {\n return this.closeEmitter.event;\n }\n fireClose() {\n this.closeEmitter.fire(undefined);\n }\n asError(error) {\n if (error instanceof Error) {\n return error;\n }\n else {\n return new Error(`Writer received error. Reason: ${Is.string(error.message) ? error.message : 'unknown'}`);\n }\n }\n}\nexports.AbstractMessageWriter = AbstractMessageWriter;\nvar ResolvedMessageWriterOptions;\n(function (ResolvedMessageWriterOptions) {\n function fromOptions(options) {\n var _a, _b;\n if (options === undefined || typeof options === 'string') {\n return { charset: options !== null && options !== void 0 ? options : 'utf-8', contentTypeEncoder: ral_1.default().applicationJson.encoder };\n }\n else {\n return { charset: (_a = options.charset) !== null && _a !== void 0 ? _a : 'utf-8', contentEncoder: options.contentEncoder, contentTypeEncoder: (_b = options.contentTypeEncoder) !== null && _b !== void 0 ? _b : ral_1.default().applicationJson.encoder };\n }\n }\n ResolvedMessageWriterOptions.fromOptions = fromOptions;\n})(ResolvedMessageWriterOptions || (ResolvedMessageWriterOptions = {}));\nclass WriteableStreamMessageWriter extends AbstractMessageWriter {\n constructor(writable, options) {\n super();\n this.writable = writable;\n this.options = ResolvedMessageWriterOptions.fromOptions(options);\n this.errorCount = 0;\n this.writeSemaphore = new semaphore_1.Semaphore(1);\n this.writable.onError((error) => this.fireError(error));\n this.writable.onClose(() => this.fireClose());\n }\n async write(msg) {\n return this.writeSemaphore.lock(async () => {\n const payload = this.options.contentTypeEncoder.encode(msg, this.options).then((buffer) => {\n if (this.options.contentEncoder !== undefined) {\n return this.options.contentEncoder.encode(buffer);\n }\n else {\n return buffer;\n }\n });\n return payload.then((buffer) => {\n const headers = [];\n headers.push(ContentLength, buffer.byteLength.toString(), CRLF);\n headers.push(CRLF);\n return this.doWrite(msg, headers, buffer);\n }, (error) => {\n this.fireError(error);\n throw error;\n });\n });\n }\n async doWrite(msg, headers, data) {\n try {\n await this.writable.write(headers.join(''), 'ascii');\n return this.writable.write(data);\n }\n catch (error) {\n this.handleError(error, msg);\n return Promise.reject(error);\n }\n }\n handleError(error, msg) {\n this.errorCount++;\n this.fireError(error, msg, this.errorCount);\n }\n end() {\n this.writable.end();\n }\n}\nexports.WriteableStreamMessageWriter = WriteableStreamMessageWriter;\n//# sourceMappingURL=messageWriter.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Semaphore = void 0;\nconst ral_1 = require(\"./ral\");\nclass Semaphore {\n constructor(capacity = 1) {\n if (capacity <= 0) {\n throw new Error('Capacity must be greater than 0');\n }\n this._capacity = capacity;\n this._active = 0;\n this._waiting = [];\n }\n lock(thunk) {\n return new Promise((resolve, reject) => {\n this._waiting.push({ thunk, resolve, reject });\n this.runNext();\n });\n }\n get active() {\n return this._active;\n }\n runNext() {\n if (this._waiting.length === 0 || this._active === this._capacity) {\n return;\n }\n ral_1.default().timer.setImmediate(() => this.doRunNext());\n }\n doRunNext() {\n if (this._waiting.length === 0 || this._active === this._capacity) {\n return;\n }\n const next = this._waiting.shift();\n this._active++;\n if (this._active > this._capacity) {\n throw new Error(`To many thunks active`);\n }\n try {\n const result = next.thunk();\n if (result instanceof Promise) {\n result.then((value) => {\n this._active--;\n next.resolve(value);\n this.runNext();\n }, (err) => {\n this._active--;\n next.reject(err);\n this.runNext();\n });\n }\n else {\n this._active--;\n next.resolve(result);\n this.runNext();\n }\n }\n catch (err) {\n this._active--;\n next.reject(err);\n this.runNext();\n }\n }\n}\nexports.Semaphore = Semaphore;\n//# sourceMappingURL=semaphore.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMessageConnection = exports.ConnectionOptions = exports.CancellationStrategy = exports.CancellationSenderStrategy = exports.CancellationReceiverStrategy = exports.ConnectionStrategy = exports.ConnectionError = exports.ConnectionErrors = exports.LogTraceNotification = exports.SetTraceNotification = exports.TraceFormat = exports.Trace = exports.NullLogger = exports.ProgressType = void 0;\nconst ral_1 = require(\"./ral\");\nconst Is = require(\"./is\");\nconst messages_1 = require(\"./messages\");\nconst linkedMap_1 = require(\"./linkedMap\");\nconst events_1 = require(\"./events\");\nconst cancellation_1 = require(\"./cancellation\");\nvar CancelNotification;\n(function (CancelNotification) {\n CancelNotification.type = new messages_1.NotificationType('$/cancelRequest');\n})(CancelNotification || (CancelNotification = {}));\nvar ProgressNotification;\n(function (ProgressNotification) {\n ProgressNotification.type = new messages_1.NotificationType('$/progress');\n})(ProgressNotification || (ProgressNotification = {}));\nclass ProgressType {\n constructor() {\n }\n}\nexports.ProgressType = ProgressType;\nvar StarRequestHandler;\n(function (StarRequestHandler) {\n function is(value) {\n return Is.func(value);\n }\n StarRequestHandler.is = is;\n})(StarRequestHandler || (StarRequestHandler = {}));\nexports.NullLogger = Object.freeze({\n error: () => { },\n warn: () => { },\n info: () => { },\n log: () => { }\n});\nvar Trace;\n(function (Trace) {\n Trace[Trace[\"Off\"] = 0] = \"Off\";\n Trace[Trace[\"Messages\"] = 1] = \"Messages\";\n Trace[Trace[\"Verbose\"] = 2] = \"Verbose\";\n})(Trace = exports.Trace || (exports.Trace = {}));\n(function (Trace) {\n function fromString(value) {\n if (!Is.string(value)) {\n return Trace.Off;\n }\n value = value.toLowerCase();\n switch (value) {\n case 'off':\n return Trace.Off;\n case 'messages':\n return Trace.Messages;\n case 'verbose':\n return Trace.Verbose;\n default:\n return Trace.Off;\n }\n }\n Trace.fromString = fromString;\n function toString(value) {\n switch (value) {\n case Trace.Off:\n return 'off';\n case Trace.Messages:\n return 'messages';\n case Trace.Verbose:\n return 'verbose';\n default:\n return 'off';\n }\n }\n Trace.toString = toString;\n})(Trace = exports.Trace || (exports.Trace = {}));\nvar TraceFormat;\n(function (TraceFormat) {\n TraceFormat[\"Text\"] = \"text\";\n TraceFormat[\"JSON\"] = \"json\";\n})(TraceFormat = exports.TraceFormat || (exports.TraceFormat = {}));\n(function (TraceFormat) {\n function fromString(value) {\n value = value.toLowerCase();\n if (value === 'json') {\n return TraceFormat.JSON;\n }\n else {\n return TraceFormat.Text;\n }\n }\n TraceFormat.fromString = fromString;\n})(TraceFormat = exports.TraceFormat || (exports.TraceFormat = {}));\nvar SetTraceNotification;\n(function (SetTraceNotification) {\n SetTraceNotification.type = new messages_1.NotificationType('$/setTrace');\n})(SetTraceNotification = exports.SetTraceNotification || (exports.SetTraceNotification = {}));\nvar LogTraceNotification;\n(function (LogTraceNotification) {\n LogTraceNotification.type = new messages_1.NotificationType('$/logTrace');\n})(LogTraceNotification = exports.LogTraceNotification || (exports.LogTraceNotification = {}));\nvar ConnectionErrors;\n(function (ConnectionErrors) {\n /**\n * The connection is closed.\n */\n ConnectionErrors[ConnectionErrors[\"Closed\"] = 1] = \"Closed\";\n /**\n * The connection got disposed.\n */\n ConnectionErrors[ConnectionErrors[\"Disposed\"] = 2] = \"Disposed\";\n /**\n * The connection is already in listening mode.\n */\n ConnectionErrors[ConnectionErrors[\"AlreadyListening\"] = 3] = \"AlreadyListening\";\n})(ConnectionErrors = exports.ConnectionErrors || (exports.ConnectionErrors = {}));\nclass ConnectionError extends Error {\n constructor(code, message) {\n super(message);\n this.code = code;\n Object.setPrototypeOf(this, ConnectionError.prototype);\n }\n}\nexports.ConnectionError = ConnectionError;\nvar ConnectionStrategy;\n(function (ConnectionStrategy) {\n function is(value) {\n const candidate = value;\n return candidate && Is.func(candidate.cancelUndispatched);\n }\n ConnectionStrategy.is = is;\n})(ConnectionStrategy = exports.ConnectionStrategy || (exports.ConnectionStrategy = {}));\nvar CancellationReceiverStrategy;\n(function (CancellationReceiverStrategy) {\n CancellationReceiverStrategy.Message = Object.freeze({\n createCancellationTokenSource(_) {\n return new cancellation_1.CancellationTokenSource();\n }\n });\n function is(value) {\n const candidate = value;\n return candidate && Is.func(candidate.createCancellationTokenSource);\n }\n CancellationReceiverStrategy.is = is;\n})(CancellationReceiverStrategy = exports.CancellationReceiverStrategy || (exports.CancellationReceiverStrategy = {}));\nvar CancellationSenderStrategy;\n(function (CancellationSenderStrategy) {\n CancellationSenderStrategy.Message = Object.freeze({\n sendCancellation(conn, id) {\n conn.sendNotification(CancelNotification.type, { id });\n },\n cleanup(_) { }\n });\n function is(value) {\n const candidate = value;\n return candidate && Is.func(candidate.sendCancellation) && Is.func(candidate.cleanup);\n }\n CancellationSenderStrategy.is = is;\n})(CancellationSenderStrategy = exports.CancellationSenderStrategy || (exports.CancellationSenderStrategy = {}));\nvar CancellationStrategy;\n(function (CancellationStrategy) {\n CancellationStrategy.Message = Object.freeze({\n receiver: CancellationReceiverStrategy.Message,\n sender: CancellationSenderStrategy.Message\n });\n function is(value) {\n const candidate = value;\n return candidate && CancellationReceiverStrategy.is(candidate.receiver) && CancellationSenderStrategy.is(candidate.sender);\n }\n CancellationStrategy.is = is;\n})(CancellationStrategy = exports.CancellationStrategy || (exports.CancellationStrategy = {}));\nvar ConnectionOptions;\n(function (ConnectionOptions) {\n function is(value) {\n const candidate = value;\n return candidate && (CancellationStrategy.is(candidate.cancellationStrategy) || ConnectionStrategy.is(candidate.connectionStrategy));\n }\n ConnectionOptions.is = is;\n})(ConnectionOptions = exports.ConnectionOptions || (exports.ConnectionOptions = {}));\nvar ConnectionState;\n(function (ConnectionState) {\n ConnectionState[ConnectionState[\"New\"] = 1] = \"New\";\n ConnectionState[ConnectionState[\"Listening\"] = 2] = \"Listening\";\n ConnectionState[ConnectionState[\"Closed\"] = 3] = \"Closed\";\n ConnectionState[ConnectionState[\"Disposed\"] = 4] = \"Disposed\";\n})(ConnectionState || (ConnectionState = {}));\nfunction createMessageConnection(messageReader, messageWriter, _logger, options) {\n const logger = _logger !== undefined ? _logger : exports.NullLogger;\n let sequenceNumber = 0;\n let notificationSquenceNumber = 0;\n let unknownResponseSquenceNumber = 0;\n const version = '2.0';\n let starRequestHandler = undefined;\n const requestHandlers = Object.create(null);\n let starNotificationHandler = undefined;\n const notificationHandlers = Object.create(null);\n const progressHandlers = new Map();\n let timer;\n let messageQueue = new linkedMap_1.LinkedMap();\n let responsePromises = Object.create(null);\n let requestTokens = Object.create(null);\n let trace = Trace.Off;\n let traceFormat = TraceFormat.Text;\n let tracer;\n let state = ConnectionState.New;\n const errorEmitter = new events_1.Emitter();\n const closeEmitter = new events_1.Emitter();\n const unhandledNotificationEmitter = new events_1.Emitter();\n const unhandledProgressEmitter = new events_1.Emitter();\n const disposeEmitter = new events_1.Emitter();\n const cancellationStrategy = (options && options.cancellationStrategy) ? options.cancellationStrategy : CancellationStrategy.Message;\n function createRequestQueueKey(id) {\n if (id === null) {\n throw new Error(`Can't send requests with id null since the response can't be correlated.`);\n }\n return 'req-' + id.toString();\n }\n function createResponseQueueKey(id) {\n if (id === null) {\n return 'res-unknown-' + (++unknownResponseSquenceNumber).toString();\n }\n else {\n return 'res-' + id.toString();\n }\n }\n function createNotificationQueueKey() {\n return 'not-' + (++notificationSquenceNumber).toString();\n }\n function addMessageToQueue(queue, message) {\n if (messages_1.isRequestMessage(message)) {\n queue.set(createRequestQueueKey(message.id), message);\n }\n else if (messages_1.isResponseMessage(message)) {\n queue.set(createResponseQueueKey(message.id), message);\n }\n else {\n queue.set(createNotificationQueueKey(), message);\n }\n }\n function cancelUndispatched(_message) {\n return undefined;\n }\n function isListening() {\n return state === ConnectionState.Listening;\n }\n function isClosed() {\n return state === ConnectionState.Closed;\n }\n function isDisposed() {\n return state === ConnectionState.Disposed;\n }\n function closeHandler() {\n if (state === ConnectionState.New || state === ConnectionState.Listening) {\n state = ConnectionState.Closed;\n closeEmitter.fire(undefined);\n }\n // If the connection is disposed don't sent close events.\n }\n function readErrorHandler(error) {\n errorEmitter.fire([error, undefined, undefined]);\n }\n function writeErrorHandler(data) {\n errorEmitter.fire(data);\n }\n messageReader.onClose(closeHandler);\n messageReader.onError(readErrorHandler);\n messageWriter.onClose(closeHandler);\n messageWriter.onError(writeErrorHandler);\n function triggerMessageQueue() {\n if (timer || messageQueue.size === 0) {\n return;\n }\n timer = ral_1.default().timer.setImmediate(() => {\n timer = undefined;\n processMessageQueue();\n });\n }\n function processMessageQueue() {\n if (messageQueue.size === 0) {\n return;\n }\n const message = messageQueue.shift();\n try {\n if (messages_1.isRequestMessage(message)) {\n handleRequest(message);\n }\n else if (messages_1.isNotificationMessage(message)) {\n handleNotification(message);\n }\n else if (messages_1.isResponseMessage(message)) {\n handleResponse(message);\n }\n else {\n handleInvalidMessage(message);\n }\n }\n finally {\n triggerMessageQueue();\n }\n }\n const callback = (message) => {\n try {\n // We have received a cancellation message. Check if the message is still in the queue\n // and cancel it if allowed to do so.\n if (messages_1.isNotificationMessage(message) && message.method === CancelNotification.type.method) {\n const key = createRequestQueueKey(message.params.id);\n const toCancel = messageQueue.get(key);\n if (messages_1.isRequestMessage(toCancel)) {\n const strategy = options === null || options === void 0 ? void 0 : options.connectionStrategy;\n const response = (strategy && strategy.cancelUndispatched) ? strategy.cancelUndispatched(toCancel, cancelUndispatched) : cancelUndispatched(toCancel);\n if (response && (response.error !== undefined || response.result !== undefined)) {\n messageQueue.delete(key);\n response.id = toCancel.id;\n traceSendingResponse(response, message.method, Date.now());\n messageWriter.write(response);\n return;\n }\n }\n }\n addMessageToQueue(messageQueue, message);\n }\n finally {\n triggerMessageQueue();\n }\n };\n function handleRequest(requestMessage) {\n if (isDisposed()) {\n // we return here silently since we fired an event when the\n // connection got disposed.\n return;\n }\n function reply(resultOrError, method, startTime) {\n const message = {\n jsonrpc: version,\n id: requestMessage.id\n };\n if (resultOrError instanceof messages_1.ResponseError) {\n message.error = resultOrError.toJson();\n }\n else {\n message.result = resultOrError === undefined ? null : resultOrError;\n }\n traceSendingResponse(message, method, startTime);\n messageWriter.write(message);\n }\n function replyError(error, method, startTime) {\n const message = {\n jsonrpc: version,\n id: requestMessage.id,\n error: error.toJson()\n };\n traceSendingResponse(message, method, startTime);\n messageWriter.write(message);\n }\n function replySuccess(result, method, startTime) {\n // The JSON RPC defines that a response must either have a result or an error\n // So we can't treat undefined as a valid response result.\n if (result === undefined) {\n result = null;\n }\n const message = {\n jsonrpc: version,\n id: requestMessage.id,\n result: result\n };\n traceSendingResponse(message, method, startTime);\n messageWriter.write(message);\n }\n traceReceivedRequest(requestMessage);\n const element = requestHandlers[requestMessage.method];\n let type;\n let requestHandler;\n if (element) {\n type = element.type;\n requestHandler = element.handler;\n }\n const startTime = Date.now();\n if (requestHandler || starRequestHandler) {\n const tokenKey = String(requestMessage.id);\n const cancellationSource = cancellationStrategy.receiver.createCancellationTokenSource(tokenKey);\n requestTokens[tokenKey] = cancellationSource;\n try {\n let handlerResult;\n if (requestHandler) {\n if (requestMessage.params === undefined) {\n if (type !== undefined && type.numberOfParams !== 0) {\n replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams, `Request ${requestMessage.method} defines ${type.numberOfParams} params but recevied none.`), requestMessage.method, startTime);\n return;\n }\n handlerResult = requestHandler(cancellationSource.token);\n }\n else if (Array.isArray(requestMessage.params)) {\n if (type !== undefined && type.parameterStructures === messages_1.ParameterStructures.byName) {\n replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams, `Request ${requestMessage.method} defines parameters by name but received parameters by position`), requestMessage.method, startTime);\n return;\n }\n handlerResult = requestHandler(...requestMessage.params, cancellationSource.token);\n }\n else {\n if (type !== undefined && type.parameterStructures === messages_1.ParameterStructures.byPosition) {\n replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams, `Request ${requestMessage.method} defines parameters by position but received parameters by name`), requestMessage.method, startTime);\n return;\n }\n handlerResult = requestHandler(requestMessage.params, cancellationSource.token);\n }\n }\n else if (starRequestHandler) {\n handlerResult = starRequestHandler(requestMessage.method, requestMessage.params, cancellationSource.token);\n }\n const promise = handlerResult;\n if (!handlerResult) {\n delete requestTokens[tokenKey];\n replySuccess(handlerResult, requestMessage.method, startTime);\n }\n else if (promise.then) {\n promise.then((resultOrError) => {\n delete requestTokens[tokenKey];\n reply(resultOrError, requestMessage.method, startTime);\n }, error => {\n delete requestTokens[tokenKey];\n if (error instanceof messages_1.ResponseError) {\n replyError(error, requestMessage.method, startTime);\n }\n else if (error && Is.string(error.message)) {\n replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed with message: ${error.message}`), requestMessage.method, startTime);\n }\n else {\n replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed unexpectedly without providing any details.`), requestMessage.method, startTime);\n }\n });\n }\n else {\n delete requestTokens[tokenKey];\n reply(handlerResult, requestMessage.method, startTime);\n }\n }\n catch (error) {\n delete requestTokens[tokenKey];\n if (error instanceof messages_1.ResponseError) {\n reply(error, requestMessage.method, startTime);\n }\n else if (error && Is.string(error.message)) {\n replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed with message: ${error.message}`), requestMessage.method, startTime);\n }\n else {\n replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed unexpectedly without providing any details.`), requestMessage.method, startTime);\n }\n }\n }\n else {\n replyError(new messages_1.ResponseError(messages_1.ErrorCodes.MethodNotFound, `Unhandled method ${requestMessage.method}`), requestMessage.method, startTime);\n }\n }\n function handleResponse(responseMessage) {\n if (isDisposed()) {\n // See handle request.\n return;\n }\n if (responseMessage.id === null) {\n if (responseMessage.error) {\n logger.error(`Received response message without id: Error is: \\n${JSON.stringify(responseMessage.error, undefined, 4)}`);\n }\n else {\n logger.error(`Received response message without id. No further error information provided.`);\n }\n }\n else {\n const key = String(responseMessage.id);\n const responsePromise = responsePromises[key];\n traceReceivedResponse(responseMessage, responsePromise);\n if (responsePromise) {\n delete responsePromises[key];\n try {\n if (responseMessage.error) {\n const error = responseMessage.error;\n responsePromise.reject(new messages_1.ResponseError(error.code, error.message, error.data));\n }\n else if (responseMessage.result !== undefined) {\n responsePromise.resolve(responseMessage.result);\n }\n else {\n throw new Error('Should never happen.');\n }\n }\n catch (error) {\n if (error.message) {\n logger.error(`Response handler '${responsePromise.method}' failed with message: ${error.message}`);\n }\n else {\n logger.error(`Response handler '${responsePromise.method}' failed unexpectedly.`);\n }\n }\n }\n }\n }\n function handleNotification(message) {\n if (isDisposed()) {\n // See handle request.\n return;\n }\n let type = undefined;\n let notificationHandler;\n if (message.method === CancelNotification.type.method) {\n notificationHandler = (params) => {\n const id = params.id;\n const source = requestTokens[String(id)];\n if (source) {\n source.cancel();\n }\n };\n }\n else {\n const element = notificationHandlers[message.method];\n if (element) {\n notificationHandler = element.handler;\n type = element.type;\n }\n }\n if (notificationHandler || starNotificationHandler) {\n try {\n traceReceivedNotification(message);\n if (notificationHandler) {\n if (message.params === undefined) {\n if (type !== undefined) {\n if (type.numberOfParams !== 0 && type.parameterStructures !== messages_1.ParameterStructures.byName) {\n logger.error(`Notification ${message.method} defines ${type.numberOfParams} params but recevied none.`);\n }\n }\n notificationHandler();\n }\n else if (Array.isArray(message.params)) {\n if (type !== undefined) {\n if (type.parameterStructures === messages_1.ParameterStructures.byName) {\n logger.error(`Notification ${message.method} defines parameters by name but received parameters by position`);\n }\n if (type.numberOfParams !== message.params.length) {\n logger.error(`Notification ${message.method} defines ${type.numberOfParams} params but received ${message.params.length} argumennts`);\n }\n }\n notificationHandler(...message.params);\n }\n else {\n if (type !== undefined && type.parameterStructures === messages_1.ParameterStructures.byPosition) {\n logger.error(`Notification ${message.method} defines parameters by position but received parameters by name`);\n }\n notificationHandler(message.params);\n }\n }\n else if (starNotificationHandler) {\n starNotificationHandler(message.method, message.params);\n }\n }\n catch (error) {\n if (error.message) {\n logger.error(`Notification handler '${message.method}' failed with message: ${error.message}`);\n }\n else {\n logger.error(`Notification handler '${message.method}' failed unexpectedly.`);\n }\n }\n }\n else {\n unhandledNotificationEmitter.fire(message);\n }\n }\n function handleInvalidMessage(message) {\n if (!message) {\n logger.error('Received empty message.');\n return;\n }\n logger.error(`Received message which is neither a response nor a notification message:\\n${JSON.stringify(message, null, 4)}`);\n // Test whether we find an id to reject the promise\n const responseMessage = message;\n if (Is.string(responseMessage.id) || Is.number(responseMessage.id)) {\n const key = String(responseMessage.id);\n const responseHandler = responsePromises[key];\n if (responseHandler) {\n responseHandler.reject(new Error('The received response has neither a result nor an error property.'));\n }\n }\n }\n function traceSendingRequest(message) {\n if (trace === Trace.Off || !tracer) {\n return;\n }\n if (traceFormat === TraceFormat.Text) {\n let data = undefined;\n if (trace === Trace.Verbose && message.params) {\n data = `Params: ${JSON.stringify(message.params, null, 4)}\\n\\n`;\n }\n tracer.log(`Sending request '${message.method} - (${message.id})'.`, data);\n }\n else {\n logLSPMessage('send-request', message);\n }\n }\n function traceSendingNotification(message) {\n if (trace === Trace.Off || !tracer) {\n return;\n }\n if (traceFormat === TraceFormat.Text) {\n let data = undefined;\n if (trace === Trace.Verbose) {\n if (message.params) {\n data = `Params: ${JSON.stringify(message.params, null, 4)}\\n\\n`;\n }\n else {\n data = 'No parameters provided.\\n\\n';\n }\n }\n tracer.log(`Sending notification '${message.method}'.`, data);\n }\n else {\n logLSPMessage('send-notification', message);\n }\n }\n function traceSendingResponse(message, method, startTime) {\n if (trace === Trace.Off || !tracer) {\n return;\n }\n if (traceFormat === TraceFormat.Text) {\n let data = undefined;\n if (trace === Trace.Verbose) {\n if (message.error && message.error.data) {\n data = `Error data: ${JSON.stringify(message.error.data, null, 4)}\\n\\n`;\n }\n else {\n if (message.result) {\n data = `Result: ${JSON.stringify(message.result, null, 4)}\\n\\n`;\n }\n else if (message.error === undefined) {\n data = 'No result returned.\\n\\n';\n }\n }\n }\n tracer.log(`Sending response '${method} - (${message.id})'. Processing request took ${Date.now() - startTime}ms`, data);\n }\n else {\n logLSPMessage('send-response', message);\n }\n }\n function traceReceivedRequest(message) {\n if (trace === Trace.Off || !tracer) {\n return;\n }\n if (traceFormat === TraceFormat.Text) {\n let data = undefined;\n if (trace === Trace.Verbose && message.params) {\n data = `Params: ${JSON.stringify(message.params, null, 4)}\\n\\n`;\n }\n tracer.log(`Received request '${message.method} - (${message.id})'.`, data);\n }\n else {\n logLSPMessage('receive-request', message);\n }\n }\n function traceReceivedNotification(message) {\n if (trace === Trace.Off || !tracer || message.method === LogTraceNotification.type.method) {\n return;\n }\n if (traceFormat === TraceFormat.Text) {\n let data = undefined;\n if (trace === Trace.Verbose) {\n if (message.params) {\n data = `Params: ${JSON.stringify(message.params, null, 4)}\\n\\n`;\n }\n else {\n data = 'No parameters provided.\\n\\n';\n }\n }\n tracer.log(`Received notification '${message.method}'.`, data);\n }\n else {\n logLSPMessage('receive-notification', message);\n }\n }\n function traceReceivedResponse(message, responsePromise) {\n if (trace === Trace.Off || !tracer) {\n return;\n }\n if (traceFormat === TraceFormat.Text) {\n let data = undefined;\n if (trace === Trace.Verbose) {\n if (message.error && message.error.data) {\n data = `Error data: ${JSON.stringify(message.error.data, null, 4)}\\n\\n`;\n }\n else {\n if (message.result) {\n data = `Result: ${JSON.stringify(message.result, null, 4)}\\n\\n`;\n }\n else if (message.error === undefined) {\n data = 'No result returned.\\n\\n';\n }\n }\n }\n if (responsePromise) {\n const error = message.error ? ` Request failed: ${message.error.message} (${message.error.code}).` : '';\n tracer.log(`Received response '${responsePromise.method} - (${message.id})' in ${Date.now() - responsePromise.timerStart}ms.${error}`, data);\n }\n else {\n tracer.log(`Received response ${message.id} without active response promise.`, data);\n }\n }\n else {\n logLSPMessage('receive-response', message);\n }\n }\n function logLSPMessage(type, message) {\n if (!tracer || trace === Trace.Off) {\n return;\n }\n const lspMessage = {\n isLSPMessage: true,\n type,\n message,\n timestamp: Date.now()\n };\n tracer.log(lspMessage);\n }\n function throwIfClosedOrDisposed() {\n if (isClosed()) {\n throw new ConnectionError(ConnectionErrors.Closed, 'Connection is closed.');\n }\n if (isDisposed()) {\n throw new ConnectionError(ConnectionErrors.Disposed, 'Connection is disposed.');\n }\n }\n function throwIfListening() {\n if (isListening()) {\n throw new ConnectionError(ConnectionErrors.AlreadyListening, 'Connection is already listening');\n }\n }\n function throwIfNotListening() {\n if (!isListening()) {\n throw new Error('Call listen() first.');\n }\n }\n function undefinedToNull(param) {\n if (param === undefined) {\n return null;\n }\n else {\n return param;\n }\n }\n function nullToUndefined(param) {\n if (param === null) {\n return undefined;\n }\n else {\n return param;\n }\n }\n function isNamedParam(param) {\n return param !== undefined && param !== null && !Array.isArray(param) && typeof param === 'object';\n }\n function computeSingleParam(parameterStructures, param) {\n switch (parameterStructures) {\n case messages_1.ParameterStructures.auto:\n if (isNamedParam(param)) {\n return nullToUndefined(param);\n }\n else {\n return [undefinedToNull(param)];\n }\n break;\n case messages_1.ParameterStructures.byName:\n if (!isNamedParam(param)) {\n throw new Error(`Recevied parameters by name but param is not an object literal.`);\n }\n return nullToUndefined(param);\n case messages_1.ParameterStructures.byPosition:\n return [undefinedToNull(param)];\n default:\n throw new Error(`Unknown parameter structure ${parameterStructures.toString()}`);\n }\n }\n function computeMessageParams(type, params) {\n let result;\n const numberOfParams = type.numberOfParams;\n switch (numberOfParams) {\n case 0:\n result = undefined;\n break;\n case 1:\n result = computeSingleParam(type.parameterStructures, params[0]);\n break;\n default:\n result = [];\n for (let i = 0; i < params.length && i < numberOfParams; i++) {\n result.push(undefinedToNull(params[i]));\n }\n if (params.length < numberOfParams) {\n for (let i = params.length; i < numberOfParams; i++) {\n result.push(null);\n }\n }\n break;\n }\n return result;\n }\n const connection = {\n sendNotification: (type, ...args) => {\n throwIfClosedOrDisposed();\n let method;\n let messageParams;\n if (Is.string(type)) {\n method = type;\n const first = args[0];\n let paramStart = 0;\n let parameterStructures = messages_1.ParameterStructures.auto;\n if (messages_1.ParameterStructures.is(first)) {\n paramStart = 1;\n parameterStructures = first;\n }\n let paramEnd = args.length;\n const numberOfParams = paramEnd - paramStart;\n switch (numberOfParams) {\n case 0:\n messageParams = undefined;\n break;\n case 1:\n messageParams = computeSingleParam(parameterStructures, args[paramStart]);\n break;\n default:\n if (parameterStructures === messages_1.ParameterStructures.byName) {\n throw new Error(`Recevied ${numberOfParams} parameters for 'by Name' notification parameter structure.`);\n }\n messageParams = args.slice(paramStart, paramEnd).map(value => undefinedToNull(value));\n break;\n }\n }\n else {\n const params = args;\n method = type.method;\n messageParams = computeMessageParams(type, params);\n }\n const notificationMessage = {\n jsonrpc: version,\n method: method,\n params: messageParams\n };\n traceSendingNotification(notificationMessage);\n messageWriter.write(notificationMessage);\n },\n onNotification: (type, handler) => {\n throwIfClosedOrDisposed();\n let method;\n if (Is.func(type)) {\n starNotificationHandler = type;\n }\n else if (handler) {\n if (Is.string(type)) {\n method = type;\n notificationHandlers[type] = { type: undefined, handler };\n }\n else {\n method = type.method;\n notificationHandlers[type.method] = { type, handler };\n }\n }\n return {\n dispose: () => {\n if (method !== undefined) {\n delete notificationHandlers[method];\n }\n else {\n starNotificationHandler = undefined;\n }\n }\n };\n },\n onProgress: (_type, token, handler) => {\n if (progressHandlers.has(token)) {\n throw new Error(`Progress handler for token ${token} already registered`);\n }\n progressHandlers.set(token, handler);\n return {\n dispose: () => {\n progressHandlers.delete(token);\n }\n };\n },\n sendProgress: (_type, token, value) => {\n connection.sendNotification(ProgressNotification.type, { token, value });\n },\n onUnhandledProgress: unhandledProgressEmitter.event,\n sendRequest: (type, ...args) => {\n throwIfClosedOrDisposed();\n throwIfNotListening();\n let method;\n let messageParams;\n let token = undefined;\n if (Is.string(type)) {\n method = type;\n const first = args[0];\n const last = args[args.length - 1];\n let paramStart = 0;\n let parameterStructures = messages_1.ParameterStructures.auto;\n if (messages_1.ParameterStructures.is(first)) {\n paramStart = 1;\n parameterStructures = first;\n }\n let paramEnd = args.length;\n if (cancellation_1.CancellationToken.is(last)) {\n paramEnd = paramEnd - 1;\n token = last;\n }\n const numberOfParams = paramEnd - paramStart;\n switch (numberOfParams) {\n case 0:\n messageParams = undefined;\n break;\n case 1:\n messageParams = computeSingleParam(parameterStructures, args[paramStart]);\n break;\n default:\n if (parameterStructures === messages_1.ParameterStructures.byName) {\n throw new Error(`Recevied ${numberOfParams} parameters for 'by Name' request parameter structure.`);\n }\n messageParams = args.slice(paramStart, paramEnd).map(value => undefinedToNull(value));\n break;\n }\n }\n else {\n const params = args;\n method = type.method;\n messageParams = computeMessageParams(type, params);\n const numberOfParams = type.numberOfParams;\n token = cancellation_1.CancellationToken.is(params[numberOfParams]) ? params[numberOfParams] : undefined;\n }\n const id = sequenceNumber++;\n let disposable;\n if (token) {\n disposable = token.onCancellationRequested(() => {\n cancellationStrategy.sender.sendCancellation(connection, id);\n });\n }\n const result = new Promise((resolve, reject) => {\n const requestMessage = {\n jsonrpc: version,\n id: id,\n method: method,\n params: messageParams\n };\n const resolveWithCleanup = (r) => {\n resolve(r);\n cancellationStrategy.sender.cleanup(id);\n disposable === null || disposable === void 0 ? void 0 : disposable.dispose();\n };\n const rejectWithCleanup = (r) => {\n reject(r);\n cancellationStrategy.sender.cleanup(id);\n disposable === null || disposable === void 0 ? void 0 : disposable.dispose();\n };\n let responsePromise = { method: method, timerStart: Date.now(), resolve: resolveWithCleanup, reject: rejectWithCleanup };\n traceSendingRequest(requestMessage);\n try {\n messageWriter.write(requestMessage);\n }\n catch (e) {\n // Writing the message failed. So we need to reject the promise.\n responsePromise.reject(new messages_1.ResponseError(messages_1.ErrorCodes.MessageWriteError, e.message ? e.message : 'Unknown reason'));\n responsePromise = null;\n }\n if (responsePromise) {\n responsePromises[String(id)] = responsePromise;\n }\n });\n return result;\n },\n onRequest: (type, handler) => {\n throwIfClosedOrDisposed();\n let method = null;\n if (StarRequestHandler.is(type)) {\n method = undefined;\n starRequestHandler = type;\n }\n else if (Is.string(type)) {\n method = null;\n if (handler !== undefined) {\n method = type;\n requestHandlers[type] = { handler: handler, type: undefined };\n }\n }\n else {\n if (handler !== undefined) {\n method = type.method;\n requestHandlers[type.method] = { type, handler };\n }\n }\n return {\n dispose: () => {\n if (method === null) {\n return;\n }\n if (method !== undefined) {\n delete requestHandlers[method];\n }\n else {\n starRequestHandler = undefined;\n }\n }\n };\n },\n trace: (_value, _tracer, sendNotificationOrTraceOptions) => {\n let _sendNotification = false;\n let _traceFormat = TraceFormat.Text;\n if (sendNotificationOrTraceOptions !== undefined) {\n if (Is.boolean(sendNotificationOrTraceOptions)) {\n _sendNotification = sendNotificationOrTraceOptions;\n }\n else {\n _sendNotification = sendNotificationOrTraceOptions.sendNotification || false;\n _traceFormat = sendNotificationOrTraceOptions.traceFormat || TraceFormat.Text;\n }\n }\n trace = _value;\n traceFormat = _traceFormat;\n if (trace === Trace.Off) {\n tracer = undefined;\n }\n else {\n tracer = _tracer;\n }\n if (_sendNotification && !isClosed() && !isDisposed()) {\n connection.sendNotification(SetTraceNotification.type, { value: Trace.toString(_value) });\n }\n },\n onError: errorEmitter.event,\n onClose: closeEmitter.event,\n onUnhandledNotification: unhandledNotificationEmitter.event,\n onDispose: disposeEmitter.event,\n end: () => {\n messageWriter.end();\n },\n dispose: () => {\n if (isDisposed()) {\n return;\n }\n state = ConnectionState.Disposed;\n disposeEmitter.fire(undefined);\n const error = new Error('Connection got disposed.');\n Object.keys(responsePromises).forEach((key) => {\n responsePromises[key].reject(error);\n });\n responsePromises = Object.create(null);\n requestTokens = Object.create(null);\n messageQueue = new linkedMap_1.LinkedMap();\n // Test for backwards compatibility\n if (Is.func(messageWriter.dispose)) {\n messageWriter.dispose();\n }\n if (Is.func(messageReader.dispose)) {\n messageReader.dispose();\n }\n },\n listen: () => {\n throwIfClosedOrDisposed();\n throwIfListening();\n state = ConnectionState.Listening;\n messageReader.listen(callback);\n },\n inspect: () => {\n // eslint-disable-next-line no-console\n ral_1.default().console.log('inspect');\n }\n };\n connection.onNotification(LogTraceNotification.type, (params) => {\n if (trace === Trace.Off || !tracer) {\n return;\n }\n tracer.log(params.message, trace === Trace.Verbose ? params.verbose : undefined);\n });\n connection.onNotification(ProgressNotification.type, (params) => {\n const handler = progressHandlers.get(params.token);\n if (handler) {\n handler(params.value);\n }\n else {\n unhandledProgressEmitter.fire(params);\n }\n });\n return connection;\n}\nexports.createMessageConnection = createMessageConnection;\n//# sourceMappingURL=connection.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LRUCache = exports.LinkedMap = exports.Touch = void 0;\nvar Touch;\n(function (Touch) {\n Touch.None = 0;\n Touch.First = 1;\n Touch.AsOld = Touch.First;\n Touch.Last = 2;\n Touch.AsNew = Touch.Last;\n})(Touch = exports.Touch || (exports.Touch = {}));\nclass LinkedMap {\n constructor() {\n this[Symbol.toStringTag] = 'LinkedMap';\n this._map = new Map();\n this._head = undefined;\n this._tail = undefined;\n this._size = 0;\n this._state = 0;\n }\n clear() {\n this._map.clear();\n this._head = undefined;\n this._tail = undefined;\n this._size = 0;\n this._state++;\n }\n isEmpty() {\n return !this._head && !this._tail;\n }\n get size() {\n return this._size;\n }\n get first() {\n var _a;\n return (_a = this._head) === null || _a === void 0 ? void 0 : _a.value;\n }\n get last() {\n var _a;\n return (_a = this._tail) === null || _a === void 0 ? void 0 : _a.value;\n }\n has(key) {\n return this._map.has(key);\n }\n get(key, touch = Touch.None) {\n const item = this._map.get(key);\n if (!item) {\n return undefined;\n }\n if (touch !== Touch.None) {\n this.touch(item, touch);\n }\n return item.value;\n }\n set(key, value, touch = Touch.None) {\n let item = this._map.get(key);\n if (item) {\n item.value = value;\n if (touch !== Touch.None) {\n this.touch(item, touch);\n }\n }\n else {\n item = { key, value, next: undefined, previous: undefined };\n switch (touch) {\n case Touch.None:\n this.addItemLast(item);\n break;\n case Touch.First:\n this.addItemFirst(item);\n break;\n case Touch.Last:\n this.addItemLast(item);\n break;\n default:\n this.addItemLast(item);\n break;\n }\n this._map.set(key, item);\n this._size++;\n }\n return this;\n }\n delete(key) {\n return !!this.remove(key);\n }\n remove(key) {\n const item = this._map.get(key);\n if (!item) {\n return undefined;\n }\n this._map.delete(key);\n this.removeItem(item);\n this._size--;\n return item.value;\n }\n shift() {\n if (!this._head && !this._tail) {\n return undefined;\n }\n if (!this._head || !this._tail) {\n throw new Error('Invalid list');\n }\n const item = this._head;\n this._map.delete(item.key);\n this.removeItem(item);\n this._size--;\n return item.value;\n }\n forEach(callbackfn, thisArg) {\n const state = this._state;\n let current = this._head;\n while (current) {\n if (thisArg) {\n callbackfn.bind(thisArg)(current.value, current.key, this);\n }\n else {\n callbackfn(current.value, current.key, this);\n }\n if (this._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n current = current.next;\n }\n }\n keys() {\n const map = this;\n const state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]() {\n return iterator;\n },\n next() {\n if (map._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n if (current) {\n const result = { value: current.key, done: false };\n current = current.next;\n return result;\n }\n else {\n return { value: undefined, done: true };\n }\n }\n };\n return iterator;\n }\n values() {\n const map = this;\n const state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]() {\n return iterator;\n },\n next() {\n if (map._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n if (current) {\n const result = { value: current.value, done: false };\n current = current.next;\n return result;\n }\n else {\n return { value: undefined, done: true };\n }\n }\n };\n return iterator;\n }\n entries() {\n const map = this;\n const state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]() {\n return iterator;\n },\n next() {\n if (map._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n if (current) {\n const result = { value: [current.key, current.value], done: false };\n current = current.next;\n return result;\n }\n else {\n return { value: undefined, done: true };\n }\n }\n };\n return iterator;\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n trimOld(newSize) {\n if (newSize >= this.size) {\n return;\n }\n if (newSize === 0) {\n this.clear();\n return;\n }\n let current = this._head;\n let currentSize = this.size;\n while (current && currentSize > newSize) {\n this._map.delete(current.key);\n current = current.next;\n currentSize--;\n }\n this._head = current;\n this._size = currentSize;\n if (current) {\n current.previous = undefined;\n }\n this._state++;\n }\n addItemFirst(item) {\n // First time Insert\n if (!this._head && !this._tail) {\n this._tail = item;\n }\n else if (!this._head) {\n throw new Error('Invalid list');\n }\n else {\n item.next = this._head;\n this._head.previous = item;\n }\n this._head = item;\n this._state++;\n }\n addItemLast(item) {\n // First time Insert\n if (!this._head && !this._tail) {\n this._head = item;\n }\n else if (!this._tail) {\n throw new Error('Invalid list');\n }\n else {\n item.previous = this._tail;\n this._tail.next = item;\n }\n this._tail = item;\n this._state++;\n }\n removeItem(item) {\n if (item === this._head && item === this._tail) {\n this._head = undefined;\n this._tail = undefined;\n }\n else if (item === this._head) {\n // This can only happend if size === 1 which is handle\n // by the case above.\n if (!item.next) {\n throw new Error('Invalid list');\n }\n item.next.previous = undefined;\n this._head = item.next;\n }\n else if (item === this._tail) {\n // This can only happend if size === 1 which is handle\n // by the case above.\n if (!item.previous) {\n throw new Error('Invalid list');\n }\n item.previous.next = undefined;\n this._tail = item.previous;\n }\n else {\n const next = item.next;\n const previous = item.previous;\n if (!next || !previous) {\n throw new Error('Invalid list');\n }\n next.previous = previous;\n previous.next = next;\n }\n item.next = undefined;\n item.previous = undefined;\n this._state++;\n }\n touch(item, touch) {\n if (!this._head || !this._tail) {\n throw new Error('Invalid list');\n }\n if ((touch !== Touch.First && touch !== Touch.Last)) {\n return;\n }\n if (touch === Touch.First) {\n if (item === this._head) {\n return;\n }\n const next = item.next;\n const previous = item.previous;\n // Unlink the item\n if (item === this._tail) {\n // previous must be defined since item was not head but is tail\n // So there are more than on item in the map\n previous.next = undefined;\n this._tail = previous;\n }\n else {\n // Both next and previous are not undefined since item was neither head nor tail.\n next.previous = previous;\n previous.next = next;\n }\n // Insert the node at head\n item.previous = undefined;\n item.next = this._head;\n this._head.previous = item;\n this._head = item;\n this._state++;\n }\n else if (touch === Touch.Last) {\n if (item === this._tail) {\n return;\n }\n const next = item.next;\n const previous = item.previous;\n // Unlink the item.\n if (item === this._head) {\n // next must be defined since item was not tail but is head\n // So there are more than on item in the map\n next.previous = undefined;\n this._head = next;\n }\n else {\n // Both next and previous are not undefined since item was neither head nor tail.\n next.previous = previous;\n previous.next = next;\n }\n item.next = undefined;\n item.previous = this._tail;\n this._tail.next = item;\n this._tail = item;\n this._state++;\n }\n }\n toJSON() {\n const data = [];\n this.forEach((value, key) => {\n data.push([key, value]);\n });\n return data;\n }\n fromJSON(data) {\n this.clear();\n for (const [key, value] of data) {\n this.set(key, value);\n }\n }\n}\nexports.LinkedMap = LinkedMap;\nclass LRUCache extends LinkedMap {\n constructor(limit, ratio = 1) {\n super();\n this._limit = limit;\n this._ratio = Math.min(Math.max(0, ratio), 1);\n }\n get limit() {\n return this._limit;\n }\n set limit(limit) {\n this._limit = limit;\n this.checkTrim();\n }\n get ratio() {\n return this._ratio;\n }\n set ratio(ratio) {\n this._ratio = Math.min(Math.max(0, ratio), 1);\n this.checkTrim();\n }\n get(key, touch = Touch.AsNew) {\n return super.get(key, touch);\n }\n peek(key) {\n return super.get(key, Touch.None);\n }\n set(key, value) {\n super.set(key, value, Touch.Last);\n this.checkTrim();\n return this;\n }\n checkTrim() {\n if (this.size > this._limit) {\n this.trimOld(Math.round(this._limit * this._ratio));\n }\n }\n}\nexports.LRUCache = LRUCache;\n//# sourceMappingURL=linkedMap.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n/// <reference path=\"../../typings/thenable.d.ts\" />\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancellationSenderStrategy = exports.CancellationReceiverStrategy = exports.ConnectionError = exports.ConnectionErrors = exports.LogTraceNotification = exports.SetTraceNotification = exports.TraceFormat = exports.Trace = exports.ProgressType = exports.createMessageConnection = exports.NullLogger = exports.ConnectionOptions = exports.ConnectionStrategy = exports.WriteableStreamMessageWriter = exports.AbstractMessageWriter = exports.MessageWriter = exports.ReadableStreamMessageReader = exports.AbstractMessageReader = exports.MessageReader = exports.CancellationToken = exports.CancellationTokenSource = exports.Emitter = exports.Event = exports.Disposable = exports.ParameterStructures = exports.NotificationType9 = exports.NotificationType8 = exports.NotificationType7 = exports.NotificationType6 = exports.NotificationType5 = exports.NotificationType4 = exports.NotificationType3 = exports.NotificationType2 = exports.NotificationType1 = exports.NotificationType0 = exports.NotificationType = exports.ErrorCodes = exports.ResponseError = exports.RequestType9 = exports.RequestType8 = exports.RequestType7 = exports.RequestType6 = exports.RequestType5 = exports.RequestType4 = exports.RequestType3 = exports.RequestType2 = exports.RequestType1 = exports.RequestType0 = exports.RequestType = exports.RAL = void 0;\nexports.CancellationStrategy = void 0;\nconst messages_1 = require(\"../common/messages\");\nObject.defineProperty(exports, \"RequestType\", { enumerable: true, get: function () { return messages_1.RequestType; } });\nObject.defineProperty(exports, \"RequestType0\", { enumerable: true, get: function () { return messages_1.RequestType0; } });\nObject.defineProperty(exports, \"RequestType1\", { enumerable: true, get: function () { return messages_1.RequestType1; } });\nObject.defineProperty(exports, \"RequestType2\", { enumerable: true, get: function () { return messages_1.RequestType2; } });\nObject.defineProperty(exports, \"RequestType3\", { enumerable: true, get: function () { return messages_1.RequestType3; } });\nObject.defineProperty(exports, \"RequestType4\", { enumerable: true, get: function () { return messages_1.RequestType4; } });\nObject.defineProperty(exports, \"RequestType5\", { enumerable: true, get: function () { return messages_1.RequestType5; } });\nObject.defineProperty(exports, \"RequestType6\", { enumerable: true, get: function () { return messages_1.RequestType6; } });\nObject.defineProperty(exports, \"RequestType7\", { enumerable: true, get: function () { return messages_1.RequestType7; } });\nObject.defineProperty(exports, \"RequestType8\", { enumerable: true, get: function () { return messages_1.RequestType8; } });\nObject.defineProperty(exports, \"RequestType9\", { enumerable: true, get: function () { return messages_1.RequestType9; } });\nObject.defineProperty(exports, \"ResponseError\", { enumerable: true, get: function () { return messages_1.ResponseError; } });\nObject.defineProperty(exports, \"ErrorCodes\", { enumerable: true, get: function () { return messages_1.ErrorCodes; } });\nObject.defineProperty(exports, \"NotificationType\", { enumerable: true, get: function () { return messages_1.NotificationType; } });\nObject.defineProperty(exports, \"NotificationType0\", { enumerable: true, get: function () { return messages_1.NotificationType0; } });\nObject.defineProperty(exports, \"NotificationType1\", { enumerable: true, get: function () { return messages_1.NotificationType1; } });\nObject.defineProperty(exports, \"NotificationType2\", { enumerable: true, get: function () { return messages_1.NotificationType2; } });\nObject.defineProperty(exports, \"NotificationType3\", { enumerable: true, get: function () { return messages_1.NotificationType3; } });\nObject.defineProperty(exports, \"NotificationType4\", { enumerable: true, get: function () { return messages_1.NotificationType4; } });\nObject.defineProperty(exports, \"NotificationType5\", { enumerable: true, get: function () { return messages_1.NotificationType5; } });\nObject.defineProperty(exports, \"NotificationType6\", { enumerable: true, get: function () { return messages_1.NotificationType6; } });\nObject.defineProperty(exports, \"NotificationType7\", { enumerable: true, get: function () { return messages_1.NotificationType7; } });\nObject.defineProperty(exports, \"NotificationType8\", { enumerable: true, get: function () { return messages_1.NotificationType8; } });\nObject.defineProperty(exports, \"NotificationType9\", { enumerable: true, get: function () { return messages_1.NotificationType9; } });\nObject.defineProperty(exports, \"ParameterStructures\", { enumerable: true, get: function () { return messages_1.ParameterStructures; } });\nconst disposable_1 = require(\"../common/disposable\");\nObject.defineProperty(exports, \"Disposable\", { enumerable: true, get: function () { return disposable_1.Disposable; } });\nconst events_1 = require(\"../common/events\");\nObject.defineProperty(exports, \"Event\", { enumerable: true, get: function () { return events_1.Event; } });\nObject.defineProperty(exports, \"Emitter\", { enumerable: true, get: function () { return events_1.Emitter; } });\nconst cancellation_1 = require(\"../common/cancellation\");\nObject.defineProperty(exports, \"CancellationTokenSource\", { enumerable: true, get: function () { return cancellation_1.CancellationTokenSource; } });\nObject.defineProperty(exports, \"CancellationToken\", { enumerable: true, get: function () { return cancellation_1.CancellationToken; } });\nconst messageReader_1 = require(\"../common/messageReader\");\nObject.defineProperty(exports, \"MessageReader\", { enumerable: true, get: function () { return messageReader_1.MessageReader; } });\nObject.defineProperty(exports, \"AbstractMessageReader\", { enumerable: true, get: function () { return messageReader_1.AbstractMessageReader; } });\nObject.defineProperty(exports, \"ReadableStreamMessageReader\", { enumerable: true, get: function () { return messageReader_1.ReadableStreamMessageReader; } });\nconst messageWriter_1 = require(\"../common/messageWriter\");\nObject.defineProperty(exports, \"MessageWriter\", { enumerable: true, get: function () { return messageWriter_1.MessageWriter; } });\nObject.defineProperty(exports, \"AbstractMessageWriter\", { enumerable: true, get: function () { return messageWriter_1.AbstractMessageWriter; } });\nObject.defineProperty(exports, \"WriteableStreamMessageWriter\", { enumerable: true, get: function () { return messageWriter_1.WriteableStreamMessageWriter; } });\nconst connection_1 = require(\"../common/connection\");\nObject.defineProperty(exports, \"ConnectionStrategy\", { enumerable: true, get: function () { return connection_1.ConnectionStrategy; } });\nObject.defineProperty(exports, \"ConnectionOptions\", { enumerable: true, get: function () { return connection_1.ConnectionOptions; } });\nObject.defineProperty(exports, \"NullLogger\", { enumerable: true, get: function () { return connection_1.NullLogger; } });\nObject.defineProperty(exports, \"createMessageConnection\", { enumerable: true, get: function () { return connection_1.createMessageConnection; } });\nObject.defineProperty(exports, \"ProgressType\", { enumerable: true, get: function () { return connection_1.ProgressType; } });\nObject.defineProperty(exports, \"Trace\", { enumerable: true, get: function () { return connection_1.Trace; } });\nObject.defineProperty(exports, \"TraceFormat\", { enumerable: true, get: function () { return connection_1.TraceFormat; } });\nObject.defineProperty(exports, \"SetTraceNotification\", { enumerable: true, get: function () { return connection_1.SetTraceNotification; } });\nObject.defineProperty(exports, \"LogTraceNotification\", { enumerable: true, get: function () { return connection_1.LogTraceNotification; } });\nObject.defineProperty(exports, \"ConnectionErrors\", { enumerable: true, get: function () { return connection_1.ConnectionErrors; } });\nObject.defineProperty(exports, \"ConnectionError\", { enumerable: true, get: function () { return connection_1.ConnectionError; } });\nObject.defineProperty(exports, \"CancellationReceiverStrategy\", { enumerable: true, get: function () { return connection_1.CancellationReceiverStrategy; } });\nObject.defineProperty(exports, \"CancellationSenderStrategy\", { enumerable: true, get: function () { return connection_1.CancellationSenderStrategy; } });\nObject.defineProperty(exports, \"CancellationStrategy\", { enumerable: true, get: function () { return connection_1.CancellationStrategy; } });\nconst ral_1 = require(\"./ral\");\nexports.RAL = ral_1.default;\n//# sourceMappingURL=api.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReadableStreamMessageReader = exports.AbstractMessageReader = exports.MessageReader = void 0;\nconst ral_1 = require(\"./ral\");\nconst Is = require(\"./is\");\nconst events_1 = require(\"./events\");\nvar MessageReader;\n(function (MessageReader) {\n function is(value) {\n let candidate = value;\n return candidate && Is.func(candidate.listen) && Is.func(candidate.dispose) &&\n Is.func(candidate.onError) && Is.func(candidate.onClose) && Is.func(candidate.onPartialMessage);\n }\n MessageReader.is = is;\n})(MessageReader = exports.MessageReader || (exports.MessageReader = {}));\nclass AbstractMessageReader {\n constructor() {\n this.errorEmitter = new events_1.Emitter();\n this.closeEmitter = new events_1.Emitter();\n this.partialMessageEmitter = new events_1.Emitter();\n }\n dispose() {\n this.errorEmitter.dispose();\n this.closeEmitter.dispose();\n }\n get onError() {\n return this.errorEmitter.event;\n }\n fireError(error) {\n this.errorEmitter.fire(this.asError(error));\n }\n get onClose() {\n return this.closeEmitter.event;\n }\n fireClose() {\n this.closeEmitter.fire(undefined);\n }\n get onPartialMessage() {\n return this.partialMessageEmitter.event;\n }\n firePartialMessage(info) {\n this.partialMessageEmitter.fire(info);\n }\n asError(error) {\n if (error instanceof Error) {\n return error;\n }\n else {\n return new Error(`Reader received error. Reason: ${Is.string(error.message) ? error.message : 'unknown'}`);\n }\n }\n}\nexports.AbstractMessageReader = AbstractMessageReader;\nvar ResolvedMessageReaderOptions;\n(function (ResolvedMessageReaderOptions) {\n function fromOptions(options) {\n var _a;\n let charset;\n let result;\n let contentDecoder;\n const contentDecoders = new Map();\n let contentTypeDecoder;\n const contentTypeDecoders = new Map();\n if (options === undefined || typeof options === 'string') {\n charset = options !== null && options !== void 0 ? options : 'utf-8';\n }\n else {\n charset = (_a = options.charset) !== null && _a !== void 0 ? _a : 'utf-8';\n if (options.contentDecoder !== undefined) {\n contentDecoder = options.contentDecoder;\n contentDecoders.set(contentDecoder.name, contentDecoder);\n }\n if (options.contentDecoders !== undefined) {\n for (const decoder of options.contentDecoders) {\n contentDecoders.set(decoder.name, decoder);\n }\n }\n if (options.contentTypeDecoder !== undefined) {\n contentTypeDecoder = options.contentTypeDecoder;\n contentTypeDecoders.set(contentTypeDecoder.name, contentTypeDecoder);\n }\n if (options.contentTypeDecoders !== undefined) {\n for (const decoder of options.contentTypeDecoders) {\n contentTypeDecoders.set(decoder.name, decoder);\n }\n }\n }\n if (contentTypeDecoder === undefined) {\n contentTypeDecoder = ral_1.default().applicationJson.decoder;\n contentTypeDecoders.set(contentTypeDecoder.name, contentTypeDecoder);\n }\n return { charset, contentDecoder, contentDecoders, contentTypeDecoder, contentTypeDecoders };\n }\n ResolvedMessageReaderOptions.fromOptions = fromOptions;\n})(ResolvedMessageReaderOptions || (ResolvedMessageReaderOptions = {}));\nclass ReadableStreamMessageReader extends AbstractMessageReader {\n constructor(readable, options) {\n super();\n this.readable = readable;\n this.options = ResolvedMessageReaderOptions.fromOptions(options);\n this.buffer = ral_1.default().messageBuffer.create(this.options.charset);\n this._partialMessageTimeout = 10000;\n this.nextMessageLength = -1;\n this.messageToken = 0;\n }\n set partialMessageTimeout(timeout) {\n this._partialMessageTimeout = timeout;\n }\n get partialMessageTimeout() {\n return this._partialMessageTimeout;\n }\n listen(callback) {\n this.nextMessageLength = -1;\n this.messageToken = 0;\n this.partialMessageTimer = undefined;\n this.callback = callback;\n const result = this.readable.onData((data) => {\n this.onData(data);\n });\n this.readable.onError((error) => this.fireError(error));\n this.readable.onClose(() => this.fireClose());\n return result;\n }\n onData(data) {\n this.buffer.append(data);\n while (true) {\n if (this.nextMessageLength === -1) {\n const headers = this.buffer.tryReadHeaders();\n if (!headers) {\n return;\n }\n const contentLength = headers.get('Content-Length');\n if (!contentLength) {\n throw new Error('Header must provide a Content-Length property.');\n }\n const length = parseInt(contentLength);\n if (isNaN(length)) {\n throw new Error('Content-Length value must be a number.');\n }\n this.nextMessageLength = length;\n }\n const body = this.buffer.tryReadBody(this.nextMessageLength);\n if (body === undefined) {\n /** We haven't received the full message yet. */\n this.setPartialMessageTimer();\n return;\n }\n this.clearPartialMessageTimer();\n this.nextMessageLength = -1;\n let p;\n if (this.options.contentDecoder !== undefined) {\n p = this.options.contentDecoder.decode(body);\n }\n else {\n p = Promise.resolve(body);\n }\n p.then((value) => {\n this.options.contentTypeDecoder.decode(value, this.options).then((msg) => {\n this.callback(msg);\n }, (error) => {\n this.fireError(error);\n });\n }, (error) => {\n this.fireError(error);\n });\n }\n }\n clearPartialMessageTimer() {\n if (this.partialMessageTimer) {\n ral_1.default().timer.clearTimeout(this.partialMessageTimer);\n this.partialMessageTimer = undefined;\n }\n }\n setPartialMessageTimer() {\n this.clearPartialMessageTimer();\n if (this._partialMessageTimeout <= 0) {\n return;\n }\n this.partialMessageTimer = ral_1.default().timer.setTimeout((token, timeout) => {\n this.partialMessageTimer = undefined;\n if (token === this.messageToken) {\n this.firePartialMessage({ messageToken: token, waitingTime: timeout });\n this.setPartialMessageTimer();\n }\n }, this._partialMessageTimeout, this.messageToken, this._partialMessageTimeout);\n }\n}\nexports.ReadableStreamMessageReader = ReadableStreamMessageReader;\n//# sourceMappingURL=messageReader.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMessageConnection = exports.createServerSocketTransport = exports.createClientSocketTransport = exports.createServerPipeTransport = exports.createClientPipeTransport = exports.generateRandomPipeName = exports.StreamMessageWriter = exports.StreamMessageReader = exports.SocketMessageWriter = exports.SocketMessageReader = exports.IPCMessageWriter = exports.IPCMessageReader = void 0;\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ----------------------------------------------------------------------------------------- */\nconst ril_1 = require(\"./ril\");\n// Install the node runtime abstract.\nril_1.default.install();\nconst api_1 = require(\"../common/api\");\nconst path = require(\"path\");\nconst os = require(\"os\");\nconst crypto_1 = require(\"crypto\");\nconst net_1 = require(\"net\");\n__exportStar(require(\"../common/api\"), exports);\nclass IPCMessageReader extends api_1.AbstractMessageReader {\n constructor(process) {\n super();\n this.process = process;\n let eventEmitter = this.process;\n eventEmitter.on('error', (error) => this.fireError(error));\n eventEmitter.on('close', () => this.fireClose());\n }\n listen(callback) {\n this.process.on('message', callback);\n return api_1.Disposable.create(() => this.process.off('message', callback));\n }\n}\nexports.IPCMessageReader = IPCMessageReader;\nclass IPCMessageWriter extends api_1.AbstractMessageWriter {\n constructor(process) {\n super();\n this.process = process;\n this.errorCount = 0;\n let eventEmitter = this.process;\n eventEmitter.on('error', (error) => this.fireError(error));\n eventEmitter.on('close', () => this.fireClose);\n }\n write(msg) {\n try {\n if (typeof this.process.send === 'function') {\n this.process.send(msg, undefined, undefined, (error) => {\n if (error) {\n this.errorCount++;\n this.handleError(error, msg);\n }\n else {\n this.errorCount = 0;\n }\n });\n }\n return Promise.resolve();\n }\n catch (error) {\n this.handleError(error, msg);\n return Promise.reject(error);\n }\n }\n handleError(error, msg) {\n this.errorCount++;\n this.fireError(error, msg, this.errorCount);\n }\n end() {\n }\n}\nexports.IPCMessageWriter = IPCMessageWriter;\nclass SocketMessageReader extends api_1.ReadableStreamMessageReader {\n constructor(socket, encoding = 'utf-8') {\n super(ril_1.default().stream.asReadableStream(socket), encoding);\n }\n}\nexports.SocketMessageReader = SocketMessageReader;\nclass SocketMessageWriter extends api_1.WriteableStreamMessageWriter {\n constructor(socket, options) {\n super(ril_1.default().stream.asWritableStream(socket), options);\n this.socket = socket;\n }\n dispose() {\n super.dispose();\n this.socket.destroy();\n }\n}\nexports.SocketMessageWriter = SocketMessageWriter;\nclass StreamMessageReader extends api_1.ReadableStreamMessageReader {\n constructor(readble, encoding) {\n super(ril_1.default().stream.asReadableStream(readble), encoding);\n }\n}\nexports.StreamMessageReader = StreamMessageReader;\nclass StreamMessageWriter extends api_1.WriteableStreamMessageWriter {\n constructor(writable, options) {\n super(ril_1.default().stream.asWritableStream(writable), options);\n }\n}\nexports.StreamMessageWriter = StreamMessageWriter;\nconst XDG_RUNTIME_DIR = process.env['XDG_RUNTIME_DIR'];\nconst safeIpcPathLengths = new Map([\n ['linux', 107],\n ['darwin', 103]\n]);\nfunction generateRandomPipeName() {\n const randomSuffix = crypto_1.randomBytes(21).toString('hex');\n if (process.platform === 'win32') {\n return `\\\\\\\\.\\\\pipe\\\\vscode-jsonrpc-${randomSuffix}-sock`;\n }\n let result;\n if (XDG_RUNTIME_DIR) {\n result = path.join(XDG_RUNTIME_DIR, `vscode-ipc-${randomSuffix}.sock`);\n }\n else {\n result = path.join(os.tmpdir(), `vscode-${randomSuffix}.sock`);\n }\n const limit = safeIpcPathLengths.get(process.platform);\n if (limit !== undefined && result.length >= limit) {\n ril_1.default().console.warn(`WARNING: IPC handle \"${result}\" is longer than ${limit} characters.`);\n }\n return result;\n}\nexports.generateRandomPipeName = generateRandomPipeName;\nfunction createClientPipeTransport(pipeName, encoding = 'utf-8') {\n let connectResolve;\n const connected = new Promise((resolve, _reject) => {\n connectResolve = resolve;\n });\n return new Promise((resolve, reject) => {\n let server = net_1.createServer((socket) => {\n server.close();\n connectResolve([\n new SocketMessageReader(socket, encoding),\n new SocketMessageWriter(socket, encoding)\n ]);\n });\n server.on('error', reject);\n server.listen(pipeName, () => {\n server.removeListener('error', reject);\n resolve({\n onConnected: () => { return connected; }\n });\n });\n });\n}\nexports.createClientPipeTransport = createClientPipeTransport;\nfunction createServerPipeTransport(pipeName, encoding = 'utf-8') {\n const socket = net_1.createConnection(pipeName);\n return [\n new SocketMessageReader(socket, encoding),\n new SocketMessageWriter(socket, encoding)\n ];\n}\nexports.createServerPipeTransport = createServerPipeTransport;\nfunction createClientSocketTransport(port, encoding = 'utf-8') {\n let connectResolve;\n const connected = new Promise((resolve, _reject) => {\n connectResolve = resolve;\n });\n return new Promise((resolve, reject) => {\n const server = net_1.createServer((socket) => {\n server.close();\n connectResolve([\n new SocketMessageReader(socket, encoding),\n new SocketMessageWriter(socket, encoding)\n ]);\n });\n server.on('error', reject);\n server.listen(port, '127.0.0.1', () => {\n server.removeListener('error', reject);\n resolve({\n onConnected: () => { return connected; }\n });\n });\n });\n}\nexports.createClientSocketTransport = createClientSocketTransport;\nfunction createServerSocketTransport(port, encoding = 'utf-8') {\n const socket = net_1.createConnection(port, '127.0.0.1');\n return [\n new SocketMessageReader(socket, encoding),\n new SocketMessageWriter(socket, encoding)\n ];\n}\nexports.createServerSocketTransport = createServerSocketTransport;\nfunction isReadableStream(value) {\n const candidate = value;\n return candidate.read !== undefined && candidate.addListener !== undefined;\n}\nfunction isWritableStream(value) {\n const candidate = value;\n return candidate.write !== undefined && candidate.addListener !== undefined;\n}\nfunction createMessageConnection(input, output, logger, options) {\n if (!logger) {\n logger = api_1.NullLogger;\n }\n const reader = isReadableStream(input) ? new StreamMessageReader(input) : input;\n const writer = isWritableStream(output) ? new StreamMessageWriter(output) : output;\n if (api_1.ConnectionStrategy.is(options)) {\n options = { connectionStrategy: options };\n }\n return api_1.createMessageConnection(reader, writer, logger, options);\n}\nexports.createMessageConnection = createMessageConnection;\n//# sourceMappingURL=main.js.map","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ----------------------------------------------------------------------------------------- */\n'use strict';\n\nmodule.exports = require('./lib/node/main');","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nexport var integer;\n(function (integer) {\n integer.MIN_VALUE = -2147483648;\n integer.MAX_VALUE = 2147483647;\n})(integer || (integer = {}));\nexport var uinteger;\n(function (uinteger) {\n uinteger.MIN_VALUE = 0;\n uinteger.MAX_VALUE = 2147483647;\n})(uinteger || (uinteger = {}));\n/**\n * The Position namespace provides helper functions to work with\n * [Position](#Position) literals.\n */\nexport var Position;\n(function (Position) {\n /**\n * Creates a new Position literal from the given line and character.\n * @param line The position's line.\n * @param character The position's character.\n */\n function create(line, character) {\n if (line === Number.MAX_VALUE) {\n line = uinteger.MAX_VALUE;\n }\n if (character === Number.MAX_VALUE) {\n character = uinteger.MAX_VALUE;\n }\n return { line: line, character: character };\n }\n Position.create = create;\n /**\n * Checks whether the given literal conforms to the [Position](#Position) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n }\n Position.is = is;\n})(Position || (Position = {}));\n/**\n * The Range namespace provides helper functions to work with\n * [Range](#Range) literals.\n */\nexport var Range;\n(function (Range) {\n function create(one, two, three, four) {\n if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n return { start: Position.create(one, two), end: Position.create(three, four) };\n }\n else if (Position.is(one) && Position.is(two)) {\n return { start: one, end: two };\n }\n else {\n throw new Error(\"Range#create called with invalid arguments[\" + one + \", \" + two + \", \" + three + \", \" + four + \"]\");\n }\n }\n Range.create = create;\n /**\n * Checks whether the given literal conforms to the [Range](#Range) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n }\n Range.is = is;\n})(Range || (Range = {}));\n/**\n * The Location namespace provides helper functions to work with\n * [Location](#Location) literals.\n */\nexport var Location;\n(function (Location) {\n /**\n * Creates a Location literal.\n * @param uri The location's uri.\n * @param range The location's range.\n */\n function create(uri, range) {\n return { uri: uri, range: range };\n }\n Location.create = create;\n /**\n * Checks whether the given literal conforms to the [Location](#Location) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n }\n Location.is = is;\n})(Location || (Location = {}));\n/**\n * The LocationLink namespace provides helper functions to work with\n * [LocationLink](#LocationLink) literals.\n */\nexport var LocationLink;\n(function (LocationLink) {\n /**\n * Creates a LocationLink literal.\n * @param targetUri The definition's uri.\n * @param targetRange The full range of the definition.\n * @param targetSelectionRange The span of the symbol definition at the target.\n * @param originSelectionRange The span of the symbol being defined in the originating source file.\n */\n function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n return { targetUri: targetUri, targetRange: targetRange, targetSelectionRange: targetSelectionRange, originSelectionRange: originSelectionRange };\n }\n LocationLink.create = create;\n /**\n * Checks whether the given literal conforms to the [LocationLink](#LocationLink) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri)\n && (Range.is(candidate.targetSelectionRange) || Is.undefined(candidate.targetSelectionRange))\n && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n }\n LocationLink.is = is;\n})(LocationLink || (LocationLink = {}));\n/**\n * The Color namespace provides helper functions to work with\n * [Color](#Color) literals.\n */\nexport var Color;\n(function (Color) {\n /**\n * Creates a new Color literal.\n */\n function create(red, green, blue, alpha) {\n return {\n red: red,\n green: green,\n blue: blue,\n alpha: alpha,\n };\n }\n Color.create = create;\n /**\n * Checks whether the given literal conforms to the [Color](#Color) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.numberRange(candidate.red, 0, 1)\n && Is.numberRange(candidate.green, 0, 1)\n && Is.numberRange(candidate.blue, 0, 1)\n && Is.numberRange(candidate.alpha, 0, 1);\n }\n Color.is = is;\n})(Color || (Color = {}));\n/**\n * The ColorInformation namespace provides helper functions to work with\n * [ColorInformation](#ColorInformation) literals.\n */\nexport var ColorInformation;\n(function (ColorInformation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(range, color) {\n return {\n range: range,\n color: color,\n };\n }\n ColorInformation.create = create;\n /**\n * Checks whether the given literal conforms to the [ColorInformation](#ColorInformation) interface.\n */\n function is(value) {\n var candidate = value;\n return Range.is(candidate.range) && Color.is(candidate.color);\n }\n ColorInformation.is = is;\n})(ColorInformation || (ColorInformation = {}));\n/**\n * The Color namespace provides helper functions to work with\n * [ColorPresentation](#ColorPresentation) literals.\n */\nexport var ColorPresentation;\n(function (ColorPresentation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(label, textEdit, additionalTextEdits) {\n return {\n label: label,\n textEdit: textEdit,\n additionalTextEdits: additionalTextEdits,\n };\n }\n ColorPresentation.create = create;\n /**\n * Checks whether the given literal conforms to the [ColorInformation](#ColorInformation) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.string(candidate.label)\n && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate))\n && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\n }\n ColorPresentation.is = is;\n})(ColorPresentation || (ColorPresentation = {}));\n/**\n * Enum of known range kinds\n */\nexport var FoldingRangeKind;\n(function (FoldingRangeKind) {\n /**\n * Folding range for a comment\n */\n FoldingRangeKind[\"Comment\"] = \"comment\";\n /**\n * Folding range for a imports or includes\n */\n FoldingRangeKind[\"Imports\"] = \"imports\";\n /**\n * Folding range for a region (e.g. `#region`)\n */\n FoldingRangeKind[\"Region\"] = \"region\";\n})(FoldingRangeKind || (FoldingRangeKind = {}));\n/**\n * The folding range namespace provides helper functions to work with\n * [FoldingRange](#FoldingRange) literals.\n */\nexport var FoldingRange;\n(function (FoldingRange) {\n /**\n * Creates a new FoldingRange literal.\n */\n function create(startLine, endLine, startCharacter, endCharacter, kind) {\n var result = {\n startLine: startLine,\n endLine: endLine\n };\n if (Is.defined(startCharacter)) {\n result.startCharacter = startCharacter;\n }\n if (Is.defined(endCharacter)) {\n result.endCharacter = endCharacter;\n }\n if (Is.defined(kind)) {\n result.kind = kind;\n }\n return result;\n }\n FoldingRange.create = create;\n /**\n * Checks whether the given literal conforms to the [FoldingRange](#FoldingRange) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine)\n && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter))\n && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter))\n && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\n }\n FoldingRange.is = is;\n})(FoldingRange || (FoldingRange = {}));\n/**\n * The DiagnosticRelatedInformation namespace provides helper functions to work with\n * [DiagnosticRelatedInformation](#DiagnosticRelatedInformation) literals.\n */\nexport var DiagnosticRelatedInformation;\n(function (DiagnosticRelatedInformation) {\n /**\n * Creates a new DiagnosticRelatedInformation literal.\n */\n function create(location, message) {\n return {\n location: location,\n message: message\n };\n }\n DiagnosticRelatedInformation.create = create;\n /**\n * Checks whether the given literal conforms to the [DiagnosticRelatedInformation](#DiagnosticRelatedInformation) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n }\n DiagnosticRelatedInformation.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\n/**\n * The diagnostic's severity.\n */\nexport var DiagnosticSeverity;\n(function (DiagnosticSeverity) {\n /**\n * Reports an error.\n */\n DiagnosticSeverity.Error = 1;\n /**\n * Reports a warning.\n */\n DiagnosticSeverity.Warning = 2;\n /**\n * Reports an information.\n */\n DiagnosticSeverity.Information = 3;\n /**\n * Reports a hint.\n */\n DiagnosticSeverity.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\n/**\n * The diagnostic tags.\n *\n * @since 3.15.0\n */\nexport var DiagnosticTag;\n(function (DiagnosticTag) {\n /**\n * Unused or unnecessary code.\n *\n * Clients are allowed to render diagnostics with this tag faded out instead of having\n * an error squiggle.\n */\n DiagnosticTag.Unnecessary = 1;\n /**\n * Deprecated or obsolete code.\n *\n * Clients are allowed to rendered diagnostics with this tag strike through.\n */\n DiagnosticTag.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\n/**\n * The CodeDescription namespace provides functions to deal with descriptions for diagnostic codes.\n *\n * @since 3.16.0\n */\nexport var CodeDescription;\n(function (CodeDescription) {\n function is(value) {\n var candidate = value;\n return candidate !== undefined && candidate !== null && Is.string(candidate.href);\n }\n CodeDescription.is = is;\n})(CodeDescription || (CodeDescription = {}));\n/**\n * The Diagnostic namespace provides helper functions to work with\n * [Diagnostic](#Diagnostic) literals.\n */\nexport var Diagnostic;\n(function (Diagnostic) {\n /**\n * Creates a new Diagnostic literal.\n */\n function create(range, message, severity, code, source, relatedInformation) {\n var result = { range: range, message: message };\n if (Is.defined(severity)) {\n result.severity = severity;\n }\n if (Is.defined(code)) {\n result.code = code;\n }\n if (Is.defined(source)) {\n result.source = source;\n }\n if (Is.defined(relatedInformation)) {\n result.relatedInformation = relatedInformation;\n }\n return result;\n }\n Diagnostic.create = create;\n /**\n * Checks whether the given literal conforms to the [Diagnostic](#Diagnostic) interface.\n */\n function is(value) {\n var _a;\n var candidate = value;\n return Is.defined(candidate)\n && Range.is(candidate.range)\n && Is.string(candidate.message)\n && (Is.number(candidate.severity) || Is.undefined(candidate.severity))\n && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code))\n && (Is.undefined(candidate.codeDescription) || (Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)))\n && (Is.string(candidate.source) || Is.undefined(candidate.source))\n && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n }\n Diagnostic.is = is;\n})(Diagnostic || (Diagnostic = {}));\n/**\n * The Command namespace provides helper functions to work with\n * [Command](#Command) literals.\n */\nexport var Command;\n(function (Command) {\n /**\n * Creates a new Command literal.\n */\n function create(title, command) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var result = { title: title, command: command };\n if (Is.defined(args) && args.length > 0) {\n result.arguments = args;\n }\n return result;\n }\n Command.create = create;\n /**\n * Checks whether the given literal conforms to the [Command](#Command) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n }\n Command.is = is;\n})(Command || (Command = {}));\n/**\n * The TextEdit namespace provides helper function to create replace,\n * insert and delete edits more easily.\n */\nexport var TextEdit;\n(function (TextEdit) {\n /**\n * Creates a replace text edit.\n * @param range The range of text to be replaced.\n * @param newText The new text.\n */\n function replace(range, newText) {\n return { range: range, newText: newText };\n }\n TextEdit.replace = replace;\n /**\n * Creates a insert text edit.\n * @param position The position to insert the text at.\n * @param newText The text to be inserted.\n */\n function insert(position, newText) {\n return { range: { start: position, end: position }, newText: newText };\n }\n TextEdit.insert = insert;\n /**\n * Creates a delete text edit.\n * @param range The range of text to be deleted.\n */\n function del(range) {\n return { range: range, newText: '' };\n }\n TextEdit.del = del;\n function is(value) {\n var candidate = value;\n return Is.objectLiteral(candidate)\n && Is.string(candidate.newText)\n && Range.is(candidate.range);\n }\n TextEdit.is = is;\n})(TextEdit || (TextEdit = {}));\nexport var ChangeAnnotation;\n(function (ChangeAnnotation) {\n function create(label, needsConfirmation, description) {\n var result = { label: label };\n if (needsConfirmation !== undefined) {\n result.needsConfirmation = needsConfirmation;\n }\n if (description !== undefined) {\n result.description = description;\n }\n return result;\n }\n ChangeAnnotation.create = create;\n function is(value) {\n var candidate = value;\n return candidate !== undefined && Is.objectLiteral(candidate) && Is.string(candidate.label) &&\n (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === undefined) &&\n (Is.string(candidate.description) || candidate.description === undefined);\n }\n ChangeAnnotation.is = is;\n})(ChangeAnnotation || (ChangeAnnotation = {}));\nexport var ChangeAnnotationIdentifier;\n(function (ChangeAnnotationIdentifier) {\n function is(value) {\n var candidate = value;\n return typeof candidate === 'string';\n }\n ChangeAnnotationIdentifier.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nexport var AnnotatedTextEdit;\n(function (AnnotatedTextEdit) {\n /**\n * Creates an annotated replace text edit.\n *\n * @param range The range of text to be replaced.\n * @param newText The new text.\n * @param annotation The annotation.\n */\n function replace(range, newText, annotation) {\n return { range: range, newText: newText, annotationId: annotation };\n }\n AnnotatedTextEdit.replace = replace;\n /**\n * Creates an annotated insert text edit.\n *\n * @param position The position to insert the text at.\n * @param newText The text to be inserted.\n * @param annotation The annotation.\n */\n function insert(position, newText, annotation) {\n return { range: { start: position, end: position }, newText: newText, annotationId: annotation };\n }\n AnnotatedTextEdit.insert = insert;\n /**\n * Creates an annotated delete text edit.\n *\n * @param range The range of text to be deleted.\n * @param annotation The annotation.\n */\n function del(range, annotation) {\n return { range: range, newText: '', annotationId: annotation };\n }\n AnnotatedTextEdit.del = del;\n function is(value) {\n var candidate = value;\n return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n AnnotatedTextEdit.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\n/**\n * The TextDocumentEdit namespace provides helper function to create\n * an edit that manipulates a text document.\n */\nexport var TextDocumentEdit;\n(function (TextDocumentEdit) {\n /**\n * Creates a new `TextDocumentEdit`\n */\n function create(textDocument, edits) {\n return { textDocument: textDocument, edits: edits };\n }\n TextDocumentEdit.create = create;\n function is(value) {\n var candidate = value;\n return Is.defined(candidate)\n && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument)\n && Array.isArray(candidate.edits);\n }\n TextDocumentEdit.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nexport var CreateFile;\n(function (CreateFile) {\n function create(uri, options, annotation) {\n var result = {\n kind: 'create',\n uri: uri\n };\n if (options !== undefined && (options.overwrite !== undefined || options.ignoreIfExists !== undefined)) {\n result.options = options;\n }\n if (annotation !== undefined) {\n result.annotationId = annotation;\n }\n return result;\n }\n CreateFile.create = create;\n function is(value) {\n var candidate = value;\n return candidate && candidate.kind === 'create' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n CreateFile.is = is;\n})(CreateFile || (CreateFile = {}));\nexport var RenameFile;\n(function (RenameFile) {\n function create(oldUri, newUri, options, annotation) {\n var result = {\n kind: 'rename',\n oldUri: oldUri,\n newUri: newUri\n };\n if (options !== undefined && (options.overwrite !== undefined || options.ignoreIfExists !== undefined)) {\n result.options = options;\n }\n if (annotation !== undefined) {\n result.annotationId = annotation;\n }\n return result;\n }\n RenameFile.create = create;\n function is(value) {\n var candidate = value;\n return candidate && candidate.kind === 'rename' && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n RenameFile.is = is;\n})(RenameFile || (RenameFile = {}));\nexport var DeleteFile;\n(function (DeleteFile) {\n function create(uri, options, annotation) {\n var result = {\n kind: 'delete',\n uri: uri\n };\n if (options !== undefined && (options.recursive !== undefined || options.ignoreIfNotExists !== undefined)) {\n result.options = options;\n }\n if (annotation !== undefined) {\n result.annotationId = annotation;\n }\n return result;\n }\n DeleteFile.create = create;\n function is(value) {\n var candidate = value;\n return candidate && candidate.kind === 'delete' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.recursive === undefined || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === undefined || Is.boolean(candidate.options.ignoreIfNotExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n DeleteFile.is = is;\n})(DeleteFile || (DeleteFile = {}));\nexport var WorkspaceEdit;\n(function (WorkspaceEdit) {\n function is(value) {\n var candidate = value;\n return candidate &&\n (candidate.changes !== undefined || candidate.documentChanges !== undefined) &&\n (candidate.documentChanges === undefined || candidate.documentChanges.every(function (change) {\n if (Is.string(change.kind)) {\n return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n }\n else {\n return TextDocumentEdit.is(change);\n }\n }));\n }\n WorkspaceEdit.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nvar TextEditChangeImpl = /** @class */ (function () {\n function TextEditChangeImpl(edits, changeAnnotations) {\n this.edits = edits;\n this.changeAnnotations = changeAnnotations;\n }\n TextEditChangeImpl.prototype.insert = function (position, newText, annotation) {\n var edit;\n var id;\n if (annotation === undefined) {\n edit = TextEdit.insert(position, newText);\n }\n else if (ChangeAnnotationIdentifier.is(annotation)) {\n id = annotation;\n edit = AnnotatedTextEdit.insert(position, newText, annotation);\n }\n else {\n this.assertChangeAnnotations(this.changeAnnotations);\n id = this.changeAnnotations.manage(annotation);\n edit = AnnotatedTextEdit.insert(position, newText, id);\n }\n this.edits.push(edit);\n if (id !== undefined) {\n return id;\n }\n };\n TextEditChangeImpl.prototype.replace = function (range, newText, annotation) {\n var edit;\n var id;\n if (annotation === undefined) {\n edit = TextEdit.replace(range, newText);\n }\n else if (ChangeAnnotationIdentifier.is(annotation)) {\n id = annotation;\n edit = AnnotatedTextEdit.replace(range, newText, annotation);\n }\n else {\n this.assertChangeAnnotations(this.changeAnnotations);\n id = this.changeAnnotations.manage(annotation);\n edit = AnnotatedTextEdit.replace(range, newText, id);\n }\n this.edits.push(edit);\n if (id !== undefined) {\n return id;\n }\n };\n TextEditChangeImpl.prototype.delete = function (range, annotation) {\n var edit;\n var id;\n if (annotation === undefined) {\n edit = TextEdit.del(range);\n }\n else if (ChangeAnnotationIdentifier.is(annotation)) {\n id = annotation;\n edit = AnnotatedTextEdit.del(range, annotation);\n }\n else {\n this.assertChangeAnnotations(this.changeAnnotations);\n id = this.changeAnnotations.manage(annotation);\n edit = AnnotatedTextEdit.del(range, id);\n }\n this.edits.push(edit);\n if (id !== undefined) {\n return id;\n }\n };\n TextEditChangeImpl.prototype.add = function (edit) {\n this.edits.push(edit);\n };\n TextEditChangeImpl.prototype.all = function () {\n return this.edits;\n };\n TextEditChangeImpl.prototype.clear = function () {\n this.edits.splice(0, this.edits.length);\n };\n TextEditChangeImpl.prototype.assertChangeAnnotations = function (value) {\n if (value === undefined) {\n throw new Error(\"Text edit change is not configured to manage change annotations.\");\n }\n };\n return TextEditChangeImpl;\n}());\n/**\n * A helper class\n */\nvar ChangeAnnotations = /** @class */ (function () {\n function ChangeAnnotations(annotations) {\n this._annotations = annotations === undefined ? Object.create(null) : annotations;\n this._counter = 0;\n this._size = 0;\n }\n ChangeAnnotations.prototype.all = function () {\n return this._annotations;\n };\n Object.defineProperty(ChangeAnnotations.prototype, \"size\", {\n get: function () {\n return this._size;\n },\n enumerable: false,\n configurable: true\n });\n ChangeAnnotations.prototype.manage = function (idOrAnnotation, annotation) {\n var id;\n if (ChangeAnnotationIdentifier.is(idOrAnnotation)) {\n id = idOrAnnotation;\n }\n else {\n id = this.nextId();\n annotation = idOrAnnotation;\n }\n if (this._annotations[id] !== undefined) {\n throw new Error(\"Id \" + id + \" is already in use.\");\n }\n if (annotation === undefined) {\n throw new Error(\"No annotation provided for id \" + id);\n }\n this._annotations[id] = annotation;\n this._size++;\n return id;\n };\n ChangeAnnotations.prototype.nextId = function () {\n this._counter++;\n return this._counter.toString();\n };\n return ChangeAnnotations;\n}());\n/**\n * A workspace change helps constructing changes to a workspace.\n */\nvar WorkspaceChange = /** @class */ (function () {\n function WorkspaceChange(workspaceEdit) {\n var _this = this;\n this._textEditChanges = Object.create(null);\n if (workspaceEdit !== undefined) {\n this._workspaceEdit = workspaceEdit;\n if (workspaceEdit.documentChanges) {\n this._changeAnnotations = new ChangeAnnotations(workspaceEdit.changeAnnotations);\n workspaceEdit.changeAnnotations = this._changeAnnotations.all();\n workspaceEdit.documentChanges.forEach(function (change) {\n if (TextDocumentEdit.is(change)) {\n var textEditChange = new TextEditChangeImpl(change.edits, _this._changeAnnotations);\n _this._textEditChanges[change.textDocument.uri] = textEditChange;\n }\n });\n }\n else if (workspaceEdit.changes) {\n Object.keys(workspaceEdit.changes).forEach(function (key) {\n var textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]);\n _this._textEditChanges[key] = textEditChange;\n });\n }\n }\n else {\n this._workspaceEdit = {};\n }\n }\n Object.defineProperty(WorkspaceChange.prototype, \"edit\", {\n /**\n * Returns the underlying [WorkspaceEdit](#WorkspaceEdit) literal\n * use to be returned from a workspace edit operation like rename.\n */\n get: function () {\n this.initDocumentChanges();\n if (this._changeAnnotations !== undefined) {\n if (this._changeAnnotations.size === 0) {\n this._workspaceEdit.changeAnnotations = undefined;\n }\n else {\n this._workspaceEdit.changeAnnotations = this._changeAnnotations.all();\n }\n }\n return this._workspaceEdit;\n },\n enumerable: false,\n configurable: true\n });\n WorkspaceChange.prototype.getTextEditChange = function (key) {\n if (OptionalVersionedTextDocumentIdentifier.is(key)) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n var textDocument = { uri: key.uri, version: key.version };\n var result = this._textEditChanges[textDocument.uri];\n if (!result) {\n var edits = [];\n var textDocumentEdit = {\n textDocument: textDocument,\n edits: edits\n };\n this._workspaceEdit.documentChanges.push(textDocumentEdit);\n result = new TextEditChangeImpl(edits, this._changeAnnotations);\n this._textEditChanges[textDocument.uri] = result;\n }\n return result;\n }\n else {\n this.initChanges();\n if (this._workspaceEdit.changes === undefined) {\n throw new Error('Workspace edit is not configured for normal text edit changes.');\n }\n var result = this._textEditChanges[key];\n if (!result) {\n var edits = [];\n this._workspaceEdit.changes[key] = edits;\n result = new TextEditChangeImpl(edits);\n this._textEditChanges[key] = result;\n }\n return result;\n }\n };\n WorkspaceChange.prototype.initDocumentChanges = function () {\n if (this._workspaceEdit.documentChanges === undefined && this._workspaceEdit.changes === undefined) {\n this._changeAnnotations = new ChangeAnnotations();\n this._workspaceEdit.documentChanges = [];\n this._workspaceEdit.changeAnnotations = this._changeAnnotations.all();\n }\n };\n WorkspaceChange.prototype.initChanges = function () {\n if (this._workspaceEdit.documentChanges === undefined && this._workspaceEdit.changes === undefined) {\n this._workspaceEdit.changes = Object.create(null);\n }\n };\n WorkspaceChange.prototype.createFile = function (uri, optionsOrAnnotation, options) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n var annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n var operation;\n var id;\n if (annotation === undefined) {\n operation = CreateFile.create(uri, options);\n }\n else {\n id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation);\n operation = CreateFile.create(uri, options, id);\n }\n this._workspaceEdit.documentChanges.push(operation);\n if (id !== undefined) {\n return id;\n }\n };\n WorkspaceChange.prototype.renameFile = function (oldUri, newUri, optionsOrAnnotation, options) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n var annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n var operation;\n var id;\n if (annotation === undefined) {\n operation = RenameFile.create(oldUri, newUri, options);\n }\n else {\n id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation);\n operation = RenameFile.create(oldUri, newUri, options, id);\n }\n this._workspaceEdit.documentChanges.push(operation);\n if (id !== undefined) {\n return id;\n }\n };\n WorkspaceChange.prototype.deleteFile = function (uri, optionsOrAnnotation, options) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n var annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n var operation;\n var id;\n if (annotation === undefined) {\n operation = DeleteFile.create(uri, options);\n }\n else {\n id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation);\n operation = DeleteFile.create(uri, options, id);\n }\n this._workspaceEdit.documentChanges.push(operation);\n if (id !== undefined) {\n return id;\n }\n };\n return WorkspaceChange;\n}());\nexport { WorkspaceChange };\n/**\n * The TextDocumentIdentifier namespace provides helper functions to work with\n * [TextDocumentIdentifier](#TextDocumentIdentifier) literals.\n */\nexport var TextDocumentIdentifier;\n(function (TextDocumentIdentifier) {\n /**\n * Creates a new TextDocumentIdentifier literal.\n * @param uri The document's uri.\n */\n function create(uri) {\n return { uri: uri };\n }\n TextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the [TextDocumentIdentifier](#TextDocumentIdentifier) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri);\n }\n TextDocumentIdentifier.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\n/**\n * The VersionedTextDocumentIdentifier namespace provides helper functions to work with\n * [VersionedTextDocumentIdentifier](#VersionedTextDocumentIdentifier) literals.\n */\nexport var VersionedTextDocumentIdentifier;\n(function (VersionedTextDocumentIdentifier) {\n /**\n * Creates a new VersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param uri The document's text.\n */\n function create(uri, version) {\n return { uri: uri, version: version };\n }\n VersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the [VersionedTextDocumentIdentifier](#VersionedTextDocumentIdentifier) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n }\n VersionedTextDocumentIdentifier.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\n/**\n * The OptionalVersionedTextDocumentIdentifier namespace provides helper functions to work with\n * [OptionalVersionedTextDocumentIdentifier](#OptionalVersionedTextDocumentIdentifier) literals.\n */\nexport var OptionalVersionedTextDocumentIdentifier;\n(function (OptionalVersionedTextDocumentIdentifier) {\n /**\n * Creates a new OptionalVersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param uri The document's text.\n */\n function create(uri, version) {\n return { uri: uri, version: version };\n }\n OptionalVersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the [OptionalVersionedTextDocumentIdentifier](#OptionalVersionedTextDocumentIdentifier) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n }\n OptionalVersionedTextDocumentIdentifier.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\n/**\n * The TextDocumentItem namespace provides helper functions to work with\n * [TextDocumentItem](#TextDocumentItem) literals.\n */\nexport var TextDocumentItem;\n(function (TextDocumentItem) {\n /**\n * Creates a new TextDocumentItem literal.\n * @param uri The document's uri.\n * @param languageId The document's language identifier.\n * @param version The document's version number.\n * @param text The document's text.\n */\n function create(uri, languageId, version, text) {\n return { uri: uri, languageId: languageId, version: version, text: text };\n }\n TextDocumentItem.create = create;\n /**\n * Checks whether the given literal conforms to the [TextDocumentItem](#TextDocumentItem) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n }\n TextDocumentItem.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\n/**\n * Describes the content type that a client supports in various\n * result literals like `Hover`, `ParameterInfo` or `CompletionItem`.\n *\n * Please note that `MarkupKinds` must not start with a `$`. This kinds\n * are reserved for internal usage.\n */\nexport var MarkupKind;\n(function (MarkupKind) {\n /**\n * Plain text is supported as a content format\n */\n MarkupKind.PlainText = 'plaintext';\n /**\n * Markdown is supported as a content format\n */\n MarkupKind.Markdown = 'markdown';\n})(MarkupKind || (MarkupKind = {}));\n(function (MarkupKind) {\n /**\n * Checks whether the given value is a value of the [MarkupKind](#MarkupKind) type.\n */\n function is(value) {\n var candidate = value;\n return candidate === MarkupKind.PlainText || candidate === MarkupKind.Markdown;\n }\n MarkupKind.is = is;\n})(MarkupKind || (MarkupKind = {}));\nexport var MarkupContent;\n(function (MarkupContent) {\n /**\n * Checks whether the given value conforms to the [MarkupContent](#MarkupContent) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n }\n MarkupContent.is = is;\n})(MarkupContent || (MarkupContent = {}));\n/**\n * The kind of a completion entry.\n */\nexport var CompletionItemKind;\n(function (CompletionItemKind) {\n CompletionItemKind.Text = 1;\n CompletionItemKind.Method = 2;\n CompletionItemKind.Function = 3;\n CompletionItemKind.Constructor = 4;\n CompletionItemKind.Field = 5;\n CompletionItemKind.Variable = 6;\n CompletionItemKind.Class = 7;\n CompletionItemKind.Interface = 8;\n CompletionItemKind.Module = 9;\n CompletionItemKind.Property = 10;\n CompletionItemKind.Unit = 11;\n CompletionItemKind.Value = 12;\n CompletionItemKind.Enum = 13;\n CompletionItemKind.Keyword = 14;\n CompletionItemKind.Snippet = 15;\n CompletionItemKind.Color = 16;\n CompletionItemKind.File = 17;\n CompletionItemKind.Reference = 18;\n CompletionItemKind.Folder = 19;\n CompletionItemKind.EnumMember = 20;\n CompletionItemKind.Constant = 21;\n CompletionItemKind.Struct = 22;\n CompletionItemKind.Event = 23;\n CompletionItemKind.Operator = 24;\n CompletionItemKind.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\n/**\n * Defines whether the insert text in a completion item should be interpreted as\n * plain text or a snippet.\n */\nexport var InsertTextFormat;\n(function (InsertTextFormat) {\n /**\n * The primary text to be inserted is treated as a plain string.\n */\n InsertTextFormat.PlainText = 1;\n /**\n * The primary text to be inserted is treated as a snippet.\n *\n * A snippet can define tab stops and placeholders with `$1`, `$2`\n * and `${3:foo}`. `$0` defines the final tab stop, it defaults to\n * the end of the snippet. Placeholders with equal identifiers are linked,\n * that is typing in one will update others too.\n *\n * See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#snippet_syntax\n */\n InsertTextFormat.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\n/**\n * Completion item tags are extra annotations that tweak the rendering of a completion\n * item.\n *\n * @since 3.15.0\n */\nexport var CompletionItemTag;\n(function (CompletionItemTag) {\n /**\n * Render a completion as obsolete, usually using a strike-out.\n */\n CompletionItemTag.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\n/**\n * The InsertReplaceEdit namespace provides functions to deal with insert / replace edits.\n *\n * @since 3.16.0\n */\nexport var InsertReplaceEdit;\n(function (InsertReplaceEdit) {\n /**\n * Creates a new insert / replace edit\n */\n function create(newText, insert, replace) {\n return { newText: newText, insert: insert, replace: replace };\n }\n InsertReplaceEdit.create = create;\n /**\n * Checks whether the given literal conforms to the [InsertReplaceEdit](#InsertReplaceEdit) interface.\n */\n function is(value) {\n var candidate = value;\n return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n }\n InsertReplaceEdit.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\n/**\n * How whitespace and indentation is handled during completion\n * item insertion.\n *\n * @since 3.16.0\n */\nexport var InsertTextMode;\n(function (InsertTextMode) {\n /**\n * The insertion or replace strings is taken as it is. If the\n * value is multi line the lines below the cursor will be\n * inserted using the indentation defined in the string value.\n * The client will not apply any kind of adjustments to the\n * string.\n */\n InsertTextMode.asIs = 1;\n /**\n * The editor adjusts leading whitespace of new lines so that\n * they match the indentation up to the cursor of the line for\n * which the item is accepted.\n *\n * Consider a line like this: <2tabs><cursor><3tabs>foo. Accepting a\n * multi line completion item is indented using 2 tabs and all\n * following lines inserted will be indented using 2 tabs as well.\n */\n InsertTextMode.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\n/**\n * The CompletionItem namespace provides functions to deal with\n * completion items.\n */\nexport var CompletionItem;\n(function (CompletionItem) {\n /**\n * Create a completion item and seed it with a label.\n * @param label The completion item's label\n */\n function create(label) {\n return { label: label };\n }\n CompletionItem.create = create;\n})(CompletionItem || (CompletionItem = {}));\n/**\n * The CompletionList namespace provides functions to deal with\n * completion lists.\n */\nexport var CompletionList;\n(function (CompletionList) {\n /**\n * Creates a new completion list.\n *\n * @param items The completion items.\n * @param isIncomplete The list is not complete.\n */\n function create(items, isIncomplete) {\n return { items: items ? items : [], isIncomplete: !!isIncomplete };\n }\n CompletionList.create = create;\n})(CompletionList || (CompletionList = {}));\nexport var MarkedString;\n(function (MarkedString) {\n /**\n * Creates a marked string from plain text.\n *\n * @param plainText The plain text.\n */\n function fromPlainText(plainText) {\n return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, '\\\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\n }\n MarkedString.fromPlainText = fromPlainText;\n /**\n * Checks whether the given value conforms to the [MarkedString](#MarkedString) type.\n */\n function is(value) {\n var candidate = value;\n return Is.string(candidate) || (Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value));\n }\n MarkedString.is = is;\n})(MarkedString || (MarkedString = {}));\nexport var Hover;\n(function (Hover) {\n /**\n * Checks whether the given value conforms to the [Hover](#Hover) interface.\n */\n function is(value) {\n var candidate = value;\n return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) ||\n MarkedString.is(candidate.contents) ||\n Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === undefined || Range.is(value.range));\n }\n Hover.is = is;\n})(Hover || (Hover = {}));\n/**\n * The ParameterInformation namespace provides helper functions to work with\n * [ParameterInformation](#ParameterInformation) literals.\n */\nexport var ParameterInformation;\n(function (ParameterInformation) {\n /**\n * Creates a new parameter information literal.\n *\n * @param label A label string.\n * @param documentation A doc string.\n */\n function create(label, documentation) {\n return documentation ? { label: label, documentation: documentation } : { label: label };\n }\n ParameterInformation.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\n/**\n * The SignatureInformation namespace provides helper functions to work with\n * [SignatureInformation](#SignatureInformation) literals.\n */\nexport var SignatureInformation;\n(function (SignatureInformation) {\n function create(label, documentation) {\n var parameters = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n parameters[_i - 2] = arguments[_i];\n }\n var result = { label: label };\n if (Is.defined(documentation)) {\n result.documentation = documentation;\n }\n if (Is.defined(parameters)) {\n result.parameters = parameters;\n }\n else {\n result.parameters = [];\n }\n return result;\n }\n SignatureInformation.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n /**\n * A textual occurrence.\n */\n DocumentHighlightKind.Text = 1;\n /**\n * Read-access of a symbol, like reading a variable.\n */\n DocumentHighlightKind.Read = 2;\n /**\n * Write-access of a symbol, like writing to a variable.\n */\n DocumentHighlightKind.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * DocumentHighlight namespace to provide helper functions to work with\n * [DocumentHighlight](#DocumentHighlight) literals.\n */\nexport var DocumentHighlight;\n(function (DocumentHighlight) {\n /**\n * Create a DocumentHighlight object.\n * @param range The range the highlight applies to.\n */\n function create(range, kind) {\n var result = { range: range };\n if (Is.number(kind)) {\n result.kind = kind;\n }\n return result;\n }\n DocumentHighlight.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\n/**\n * A symbol kind.\n */\nexport var SymbolKind;\n(function (SymbolKind) {\n SymbolKind.File = 1;\n SymbolKind.Module = 2;\n SymbolKind.Namespace = 3;\n SymbolKind.Package = 4;\n SymbolKind.Class = 5;\n SymbolKind.Method = 6;\n SymbolKind.Property = 7;\n SymbolKind.Field = 8;\n SymbolKind.Constructor = 9;\n SymbolKind.Enum = 10;\n SymbolKind.Interface = 11;\n SymbolKind.Function = 12;\n SymbolKind.Variable = 13;\n SymbolKind.Constant = 14;\n SymbolKind.String = 15;\n SymbolKind.Number = 16;\n SymbolKind.Boolean = 17;\n SymbolKind.Array = 18;\n SymbolKind.Object = 19;\n SymbolKind.Key = 20;\n SymbolKind.Null = 21;\n SymbolKind.EnumMember = 22;\n SymbolKind.Struct = 23;\n SymbolKind.Event = 24;\n SymbolKind.Operator = 25;\n SymbolKind.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\n/**\n * Symbol tags are extra annotations that tweak the rendering of a symbol.\n * @since 3.16\n */\nexport var SymbolTag;\n(function (SymbolTag) {\n /**\n * Render a symbol as obsolete, usually using a strike-out.\n */\n SymbolTag.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nexport var SymbolInformation;\n(function (SymbolInformation) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the location of the symbol.\n * @param uri The resource of the location of symbol, defaults to the current document.\n * @param containerName The name of the symbol containing the symbol.\n */\n function create(name, kind, range, uri, containerName) {\n var result = {\n name: name,\n kind: kind,\n location: { uri: uri, range: range }\n };\n if (containerName) {\n result.containerName = containerName;\n }\n return result;\n }\n SymbolInformation.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nexport var DocumentSymbol;\n(function (DocumentSymbol) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param detail The detail of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the symbol.\n * @param selectionRange The selectionRange of the symbol.\n * @param children Children of the symbol.\n */\n function create(name, detail, kind, range, selectionRange, children) {\n var result = {\n name: name,\n detail: detail,\n kind: kind,\n range: range,\n selectionRange: selectionRange\n };\n if (children !== undefined) {\n result.children = children;\n }\n return result;\n }\n DocumentSymbol.create = create;\n /**\n * Checks whether the given literal conforms to the [DocumentSymbol](#DocumentSymbol) interface.\n */\n function is(value) {\n var candidate = value;\n return candidate &&\n Is.string(candidate.name) && Is.number(candidate.kind) &&\n Range.is(candidate.range) && Range.is(candidate.selectionRange) &&\n (candidate.detail === undefined || Is.string(candidate.detail)) &&\n (candidate.deprecated === undefined || Is.boolean(candidate.deprecated)) &&\n (candidate.children === undefined || Array.isArray(candidate.children)) &&\n (candidate.tags === undefined || Array.isArray(candidate.tags));\n }\n DocumentSymbol.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\n/**\n * A set of predefined code action kinds\n */\nexport var CodeActionKind;\n(function (CodeActionKind) {\n /**\n * Empty kind.\n */\n CodeActionKind.Empty = '';\n /**\n * Base kind for quickfix actions: 'quickfix'\n */\n CodeActionKind.QuickFix = 'quickfix';\n /**\n * Base kind for refactoring actions: 'refactor'\n */\n CodeActionKind.Refactor = 'refactor';\n /**\n * Base kind for refactoring extraction actions: 'refactor.extract'\n *\n * Example extract actions:\n *\n * - Extract method\n * - Extract function\n * - Extract variable\n * - Extract interface from class\n * - ...\n */\n CodeActionKind.RefactorExtract = 'refactor.extract';\n /**\n * Base kind for refactoring inline actions: 'refactor.inline'\n *\n * Example inline actions:\n *\n * - Inline function\n * - Inline variable\n * - Inline constant\n * - ...\n */\n CodeActionKind.RefactorInline = 'refactor.inline';\n /**\n * Base kind for refactoring rewrite actions: 'refactor.rewrite'\n *\n * Example rewrite actions:\n *\n * - Convert JavaScript function to class\n * - Add or remove parameter\n * - Encapsulate field\n * - Make method static\n * - Move method to base class\n * - ...\n */\n CodeActionKind.RefactorRewrite = 'refactor.rewrite';\n /**\n * Base kind for source actions: `source`\n *\n * Source code actions apply to the entire file.\n */\n CodeActionKind.Source = 'source';\n /**\n * Base kind for an organize imports source action: `source.organizeImports`\n */\n CodeActionKind.SourceOrganizeImports = 'source.organizeImports';\n /**\n * Base kind for auto-fix source actions: `source.fixAll`.\n *\n * Fix all actions automatically fix errors that have a clear fix that do not require user input.\n * They should not suppress errors or perform unsafe fixes such as generating new types or classes.\n *\n * @since 3.15.0\n */\n CodeActionKind.SourceFixAll = 'source.fixAll';\n})(CodeActionKind || (CodeActionKind = {}));\n/**\n * The CodeActionContext namespace provides helper functions to work with\n * [CodeActionContext](#CodeActionContext) literals.\n */\nexport var CodeActionContext;\n(function (CodeActionContext) {\n /**\n * Creates a new CodeActionContext literal.\n */\n function create(diagnostics, only) {\n var result = { diagnostics: diagnostics };\n if (only !== undefined && only !== null) {\n result.only = only;\n }\n return result;\n }\n CodeActionContext.create = create;\n /**\n * Checks whether the given literal conforms to the [CodeActionContext](#CodeActionContext) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === undefined || Is.typedArray(candidate.only, Is.string));\n }\n CodeActionContext.is = is;\n})(CodeActionContext || (CodeActionContext = {}));\nexport var CodeAction;\n(function (CodeAction) {\n function create(title, kindOrCommandOrEdit, kind) {\n var result = { title: title };\n var checkKind = true;\n if (typeof kindOrCommandOrEdit === 'string') {\n checkKind = false;\n result.kind = kindOrCommandOrEdit;\n }\n else if (Command.is(kindOrCommandOrEdit)) {\n result.command = kindOrCommandOrEdit;\n }\n else {\n result.edit = kindOrCommandOrEdit;\n }\n if (checkKind && kind !== undefined) {\n result.kind = kind;\n }\n return result;\n }\n CodeAction.create = create;\n function is(value) {\n var candidate = value;\n return candidate && Is.string(candidate.title) &&\n (candidate.diagnostics === undefined || Is.typedArray(candidate.diagnostics, Diagnostic.is)) &&\n (candidate.kind === undefined || Is.string(candidate.kind)) &&\n (candidate.edit !== undefined || candidate.command !== undefined) &&\n (candidate.command === undefined || Command.is(candidate.command)) &&\n (candidate.isPreferred === undefined || Is.boolean(candidate.isPreferred)) &&\n (candidate.edit === undefined || WorkspaceEdit.is(candidate.edit));\n }\n CodeAction.is = is;\n})(CodeAction || (CodeAction = {}));\n/**\n * The CodeLens namespace provides helper functions to work with\n * [CodeLens](#CodeLens) literals.\n */\nexport var CodeLens;\n(function (CodeLens) {\n /**\n * Creates a new CodeLens literal.\n */\n function create(range, data) {\n var result = { range: range };\n if (Is.defined(data)) {\n result.data = data;\n }\n return result;\n }\n CodeLens.create = create;\n /**\n * Checks whether the given literal conforms to the [CodeLens](#CodeLens) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n }\n CodeLens.is = is;\n})(CodeLens || (CodeLens = {}));\n/**\n * The FormattingOptions namespace provides helper functions to work with\n * [FormattingOptions](#FormattingOptions) literals.\n */\nexport var FormattingOptions;\n(function (FormattingOptions) {\n /**\n * Creates a new FormattingOptions literal.\n */\n function create(tabSize, insertSpaces) {\n return { tabSize: tabSize, insertSpaces: insertSpaces };\n }\n FormattingOptions.create = create;\n /**\n * Checks whether the given literal conforms to the [FormattingOptions](#FormattingOptions) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n }\n FormattingOptions.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\n/**\n * The DocumentLink namespace provides helper functions to work with\n * [DocumentLink](#DocumentLink) literals.\n */\nexport var DocumentLink;\n(function (DocumentLink) {\n /**\n * Creates a new DocumentLink literal.\n */\n function create(range, target, data) {\n return { range: range, target: target, data: data };\n }\n DocumentLink.create = create;\n /**\n * Checks whether the given literal conforms to the [DocumentLink](#DocumentLink) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n }\n DocumentLink.is = is;\n})(DocumentLink || (DocumentLink = {}));\n/**\n * The SelectionRange namespace provides helper function to work with\n * SelectionRange literals.\n */\nexport var SelectionRange;\n(function (SelectionRange) {\n /**\n * Creates a new SelectionRange\n * @param range the range.\n * @param parent an optional parent.\n */\n function create(range, parent) {\n return { range: range, parent: parent };\n }\n SelectionRange.create = create;\n function is(value) {\n var candidate = value;\n return candidate !== undefined && Range.is(candidate.range) && (candidate.parent === undefined || SelectionRange.is(candidate.parent));\n }\n SelectionRange.is = is;\n})(SelectionRange || (SelectionRange = {}));\nexport var EOL = ['\\n', '\\r\\n', '\\r'];\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nexport var TextDocument;\n(function (TextDocument) {\n /**\n * Creates a new ITextDocument literal from the given uri and content.\n * @param uri The document's uri.\n * @param languageId The document's language Id.\n * @param content The document's content.\n */\n function create(uri, languageId, version, content) {\n return new FullTextDocument(uri, languageId, version, content);\n }\n TextDocument.create = create;\n /**\n * Checks whether the given literal conforms to the [ITextDocument](#ITextDocument) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount)\n && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\n }\n TextDocument.is = is;\n function applyEdits(document, edits) {\n var text = document.getText();\n var sortedEdits = mergeSort(edits, function (a, b) {\n var diff = a.range.start.line - b.range.start.line;\n if (diff === 0) {\n return a.range.start.character - b.range.start.character;\n }\n return diff;\n });\n var lastModifiedOffset = text.length;\n for (var i = sortedEdits.length - 1; i >= 0; i--) {\n var e = sortedEdits[i];\n var startOffset = document.offsetAt(e.range.start);\n var endOffset = document.offsetAt(e.range.end);\n if (endOffset <= lastModifiedOffset) {\n text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\n }\n else {\n throw new Error('Overlapping edit');\n }\n lastModifiedOffset = startOffset;\n }\n return text;\n }\n TextDocument.applyEdits = applyEdits;\n function mergeSort(data, compare) {\n if (data.length <= 1) {\n // sorted\n return data;\n }\n var p = (data.length / 2) | 0;\n var left = data.slice(0, p);\n var right = data.slice(p);\n mergeSort(left, compare);\n mergeSort(right, compare);\n var leftIdx = 0;\n var rightIdx = 0;\n var i = 0;\n while (leftIdx < left.length && rightIdx < right.length) {\n var ret = compare(left[leftIdx], right[rightIdx]);\n if (ret <= 0) {\n // smaller_equal -> take left to preserve order\n data[i++] = left[leftIdx++];\n }\n else {\n // greater -> take right\n data[i++] = right[rightIdx++];\n }\n }\n while (leftIdx < left.length) {\n data[i++] = left[leftIdx++];\n }\n while (rightIdx < right.length) {\n data[i++] = right[rightIdx++];\n }\n return data;\n }\n})(TextDocument || (TextDocument = {}));\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nvar FullTextDocument = /** @class */ (function () {\n function FullTextDocument(uri, languageId, version, content) {\n this._uri = uri;\n this._languageId = languageId;\n this._version = version;\n this._content = content;\n this._lineOffsets = undefined;\n }\n Object.defineProperty(FullTextDocument.prototype, \"uri\", {\n get: function () {\n return this._uri;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FullTextDocument.prototype, \"languageId\", {\n get: function () {\n return this._languageId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FullTextDocument.prototype, \"version\", {\n get: function () {\n return this._version;\n },\n enumerable: false,\n configurable: true\n });\n FullTextDocument.prototype.getText = function (range) {\n if (range) {\n var start = this.offsetAt(range.start);\n var end = this.offsetAt(range.end);\n return this._content.substring(start, end);\n }\n return this._content;\n };\n FullTextDocument.prototype.update = function (event, version) {\n this._content = event.text;\n this._version = version;\n this._lineOffsets = undefined;\n };\n FullTextDocument.prototype.getLineOffsets = function () {\n if (this._lineOffsets === undefined) {\n var lineOffsets = [];\n var text = this._content;\n var isLineStart = true;\n for (var i = 0; i < text.length; i++) {\n if (isLineStart) {\n lineOffsets.push(i);\n isLineStart = false;\n }\n var ch = text.charAt(i);\n isLineStart = (ch === '\\r' || ch === '\\n');\n if (ch === '\\r' && i + 1 < text.length && text.charAt(i + 1) === '\\n') {\n i++;\n }\n }\n if (isLineStart && text.length > 0) {\n lineOffsets.push(text.length);\n }\n this._lineOffsets = lineOffsets;\n }\n return this._lineOffsets;\n };\n FullTextDocument.prototype.positionAt = function (offset) {\n offset = Math.max(Math.min(offset, this._content.length), 0);\n var lineOffsets = this.getLineOffsets();\n var low = 0, high = lineOffsets.length;\n if (high === 0) {\n return Position.create(0, offset);\n }\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (lineOffsets[mid] > offset) {\n high = mid;\n }\n else {\n low = mid + 1;\n }\n }\n // low is the least x for which the line offset is larger than the current offset\n // or array.length if no line offset is larger than the current offset\n var line = low - 1;\n return Position.create(line, offset - lineOffsets[line]);\n };\n FullTextDocument.prototype.offsetAt = function (position) {\n var lineOffsets = this.getLineOffsets();\n if (position.line >= lineOffsets.length) {\n return this._content.length;\n }\n else if (position.line < 0) {\n return 0;\n }\n var lineOffset = lineOffsets[position.line];\n var nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;\n return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n };\n Object.defineProperty(FullTextDocument.prototype, \"lineCount\", {\n get: function () {\n return this.getLineOffsets().length;\n },\n enumerable: false,\n configurable: true\n });\n return FullTextDocument;\n}());\nvar Is;\n(function (Is) {\n var toString = Object.prototype.toString;\n function defined(value) {\n return typeof value !== 'undefined';\n }\n Is.defined = defined;\n function undefined(value) {\n return typeof value === 'undefined';\n }\n Is.undefined = undefined;\n function boolean(value) {\n return value === true || value === false;\n }\n Is.boolean = boolean;\n function string(value) {\n return toString.call(value) === '[object String]';\n }\n Is.string = string;\n function number(value) {\n return toString.call(value) === '[object Number]';\n }\n Is.number = number;\n function numberRange(value, min, max) {\n return toString.call(value) === '[object Number]' && min <= value && value <= max;\n }\n Is.numberRange = numberRange;\n function integer(value) {\n return toString.call(value) === '[object Number]' && -2147483648 <= value && value <= 2147483647;\n }\n Is.integer = integer;\n function uinteger(value) {\n return toString.call(value) === '[object Number]' && 0 <= value && value <= 2147483647;\n }\n Is.uinteger = uinteger;\n function func(value) {\n return toString.call(value) === '[object Function]';\n }\n Is.func = func;\n function objectLiteral(value) {\n // Strictly speaking class instances pass this check as well. Since the LSP\n // doesn't use classes we ignore this for now. If we do we need to add something\n // like this: `Object.getPrototypeOf(Object.getPrototypeOf(x)) === null`\n return value !== null && typeof value === 'object';\n }\n Is.objectLiteral = objectLiteral;\n function typedArray(value, check) {\n return Array.isArray(value) && value.every(check);\n }\n Is.typedArray = typedArray;\n})(Is || (Is = {}));\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProtocolNotificationType = exports.ProtocolNotificationType0 = exports.ProtocolRequestType = exports.ProtocolRequestType0 = exports.RegistrationType = void 0;\nconst vscode_jsonrpc_1 = require(\"vscode-jsonrpc\");\nclass RegistrationType {\n constructor(method) {\n this.method = method;\n }\n}\nexports.RegistrationType = RegistrationType;\nclass ProtocolRequestType0 extends vscode_jsonrpc_1.RequestType0 {\n constructor(method) {\n super(method);\n }\n}\nexports.ProtocolRequestType0 = ProtocolRequestType0;\nclass ProtocolRequestType extends vscode_jsonrpc_1.RequestType {\n constructor(method) {\n super(method, vscode_jsonrpc_1.ParameterStructures.byName);\n }\n}\nexports.ProtocolRequestType = ProtocolRequestType;\nclass ProtocolNotificationType0 extends vscode_jsonrpc_1.NotificationType0 {\n constructor(method) {\n super(method);\n }\n}\nexports.ProtocolNotificationType0 = ProtocolNotificationType0;\nclass ProtocolNotificationType extends vscode_jsonrpc_1.NotificationType {\n constructor(method) {\n super(method, vscode_jsonrpc_1.ParameterStructures.byName);\n }\n}\nexports.ProtocolNotificationType = ProtocolNotificationType;\n// let x: ProtocolNotificationType<number, { value: number}>;\n// let y: ProtocolNotificationType<string, { value: number}>;\n// x = y;\n//# sourceMappingURL=messages.js.map","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.objectLiteral = exports.typedArray = exports.stringArray = exports.array = exports.func = exports.error = exports.number = exports.string = exports.boolean = void 0;\nfunction boolean(value) {\n return value === true || value === false;\n}\nexports.boolean = boolean;\nfunction string(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexports.string = string;\nfunction number(value) {\n return typeof value === 'number' || value instanceof Number;\n}\nexports.number = number;\nfunction error(value) {\n return value instanceof Error;\n}\nexports.error = error;\nfunction func(value) {\n return typeof value === 'function';\n}\nexports.func = func;\nfunction array(value) {\n return Array.isArray(value);\n}\nexports.array = array;\nfunction stringArray(value) {\n return array(value) && value.every(elem => string(elem));\n}\nexports.stringArray = stringArray;\nfunction typedArray(value, check) {\n return Array.isArray(value) && value.every(check);\n}\nexports.typedArray = typedArray;\nfunction objectLiteral(value) {\n // Strictly speaking class instances pass this check as well. Since the LSP\n // doesn't use classes we ignore this for now. If we do we need to add something\n // like this: `Object.getPrototypeOf(Object.getPrototypeOf(x)) === null`\n return value !== null && typeof value === 'object';\n}\nexports.objectLiteral = objectLiteral;\n//# sourceMappingURL=is.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImplementationRequest = void 0;\nconst messages_1 = require(\"./messages\");\n// @ts-ignore: to avoid inlining LocatioLink as dynamic import\nlet __noDynamicImport;\n/**\n * A request to resolve the implementation locations of a symbol at a given text\n * document position. The request's parameter is of type [TextDocumentPositioParams]\n * (#TextDocumentPositionParams) the response is of type [Definition](#Definition) or a\n * Thenable that resolves to such.\n */\nvar ImplementationRequest;\n(function (ImplementationRequest) {\n ImplementationRequest.method = 'textDocument/implementation';\n ImplementationRequest.type = new messages_1.ProtocolRequestType(ImplementationRequest.method);\n})(ImplementationRequest = exports.ImplementationRequest || (exports.ImplementationRequest = {}));\n//# sourceMappingURL=protocol.implementation.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeDefinitionRequest = void 0;\nconst messages_1 = require(\"./messages\");\n// @ts-ignore: to avoid inlining LocatioLink as dynamic import\nlet __noDynamicImport;\n/**\n * A request to resolve the type definition locations of a symbol at a given text\n * document position. The request's parameter is of type [TextDocumentPositioParams]\n * (#TextDocumentPositionParams) the response is of type [Definition](#Definition) or a\n * Thenable that resolves to such.\n */\nvar TypeDefinitionRequest;\n(function (TypeDefinitionRequest) {\n TypeDefinitionRequest.method = 'textDocument/typeDefinition';\n TypeDefinitionRequest.type = new messages_1.ProtocolRequestType(TypeDefinitionRequest.method);\n})(TypeDefinitionRequest = exports.TypeDefinitionRequest || (exports.TypeDefinitionRequest = {}));\n//# sourceMappingURL=protocol.typeDefinition.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DidChangeWorkspaceFoldersNotification = exports.WorkspaceFoldersRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * The `workspace/workspaceFolders` is sent from the server to the client to fetch the open workspace folders.\n */\nvar WorkspaceFoldersRequest;\n(function (WorkspaceFoldersRequest) {\n WorkspaceFoldersRequest.type = new messages_1.ProtocolRequestType0('workspace/workspaceFolders');\n})(WorkspaceFoldersRequest = exports.WorkspaceFoldersRequest || (exports.WorkspaceFoldersRequest = {}));\n/**\n * The `workspace/didChangeWorkspaceFolders` notification is sent from the client to the server when the workspace\n * folder configuration changes.\n */\nvar DidChangeWorkspaceFoldersNotification;\n(function (DidChangeWorkspaceFoldersNotification) {\n DidChangeWorkspaceFoldersNotification.type = new messages_1.ProtocolNotificationType('workspace/didChangeWorkspaceFolders');\n})(DidChangeWorkspaceFoldersNotification = exports.DidChangeWorkspaceFoldersNotification || (exports.DidChangeWorkspaceFoldersNotification = {}));\n//# sourceMappingURL=protocol.workspaceFolders.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigurationRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * The 'workspace/configuration' request is sent from the server to the client to fetch a certain\n * configuration setting.\n *\n * This pull model replaces the old push model were the client signaled configuration change via an\n * event. If the server still needs to react to configuration changes (since the server caches the\n * result of `workspace/configuration` requests) the server should register for an empty configuration\n * change event and empty the cache if such an event is received.\n */\nvar ConfigurationRequest;\n(function (ConfigurationRequest) {\n ConfigurationRequest.type = new messages_1.ProtocolRequestType('workspace/configuration');\n})(ConfigurationRequest = exports.ConfigurationRequest || (exports.ConfigurationRequest = {}));\n//# sourceMappingURL=protocol.configuration.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ColorPresentationRequest = exports.DocumentColorRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A request to list all color symbols found in a given text document. The request's\n * parameter is of type [DocumentColorParams](#DocumentColorParams) the\n * response is of type [ColorInformation[]](#ColorInformation) or a Thenable\n * that resolves to such.\n */\nvar DocumentColorRequest;\n(function (DocumentColorRequest) {\n DocumentColorRequest.method = 'textDocument/documentColor';\n DocumentColorRequest.type = new messages_1.ProtocolRequestType(DocumentColorRequest.method);\n})(DocumentColorRequest = exports.DocumentColorRequest || (exports.DocumentColorRequest = {}));\n/**\n * A request to list all presentation for a color. The request's\n * parameter is of type [ColorPresentationParams](#ColorPresentationParams) the\n * response is of type [ColorInformation[]](#ColorInformation) or a Thenable\n * that resolves to such.\n */\nvar ColorPresentationRequest;\n(function (ColorPresentationRequest) {\n ColorPresentationRequest.type = new messages_1.ProtocolRequestType('textDocument/colorPresentation');\n})(ColorPresentationRequest = exports.ColorPresentationRequest || (exports.ColorPresentationRequest = {}));\n//# sourceMappingURL=protocol.colorProvider.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FoldingRangeRequest = exports.FoldingRangeKind = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * Enum of known range kinds\n */\nvar FoldingRangeKind;\n(function (FoldingRangeKind) {\n /**\n * Folding range for a comment\n */\n FoldingRangeKind[\"Comment\"] = \"comment\";\n /**\n * Folding range for a imports or includes\n */\n FoldingRangeKind[\"Imports\"] = \"imports\";\n /**\n * Folding range for a region (e.g. `#region`)\n */\n FoldingRangeKind[\"Region\"] = \"region\";\n})(FoldingRangeKind = exports.FoldingRangeKind || (exports.FoldingRangeKind = {}));\n/**\n * A request to provide folding ranges in a document. The request's\n * parameter is of type [FoldingRangeParams](#FoldingRangeParams), the\n * response is of type [FoldingRangeList](#FoldingRangeList) or a Thenable\n * that resolves to such.\n */\nvar FoldingRangeRequest;\n(function (FoldingRangeRequest) {\n FoldingRangeRequest.method = 'textDocument/foldingRange';\n FoldingRangeRequest.type = new messages_1.ProtocolRequestType(FoldingRangeRequest.method);\n})(FoldingRangeRequest = exports.FoldingRangeRequest || (exports.FoldingRangeRequest = {}));\n//# sourceMappingURL=protocol.foldingRange.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeclarationRequest = void 0;\nconst messages_1 = require(\"./messages\");\n// @ts-ignore: to avoid inlining LocatioLink as dynamic import\nlet __noDynamicImport;\n/**\n * A request to resolve the type definition locations of a symbol at a given text\n * document position. The request's parameter is of type [TextDocumentPositioParams]\n * (#TextDocumentPositionParams) the response is of type [Declaration](#Declaration)\n * or a typed array of [DeclarationLink](#DeclarationLink) or a Thenable that resolves\n * to such.\n */\nvar DeclarationRequest;\n(function (DeclarationRequest) {\n DeclarationRequest.method = 'textDocument/declaration';\n DeclarationRequest.type = new messages_1.ProtocolRequestType(DeclarationRequest.method);\n})(DeclarationRequest = exports.DeclarationRequest || (exports.DeclarationRequest = {}));\n//# sourceMappingURL=protocol.declaration.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionRangeRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A request to provide selection ranges in a document. The request's\n * parameter is of type [SelectionRangeParams](#SelectionRangeParams), the\n * response is of type [SelectionRange[]](#SelectionRange[]) or a Thenable\n * that resolves to such.\n */\nvar SelectionRangeRequest;\n(function (SelectionRangeRequest) {\n SelectionRangeRequest.method = 'textDocument/selectionRange';\n SelectionRangeRequest.type = new messages_1.ProtocolRequestType(SelectionRangeRequest.method);\n})(SelectionRangeRequest = exports.SelectionRangeRequest || (exports.SelectionRangeRequest = {}));\n//# sourceMappingURL=protocol.selectionRange.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkDoneProgressCancelNotification = exports.WorkDoneProgressCreateRequest = exports.WorkDoneProgress = void 0;\nconst vscode_jsonrpc_1 = require(\"vscode-jsonrpc\");\nconst messages_1 = require(\"./messages\");\nvar WorkDoneProgress;\n(function (WorkDoneProgress) {\n WorkDoneProgress.type = new vscode_jsonrpc_1.ProgressType();\n function is(value) {\n return value === WorkDoneProgress.type;\n }\n WorkDoneProgress.is = is;\n})(WorkDoneProgress = exports.WorkDoneProgress || (exports.WorkDoneProgress = {}));\n/**\n * The `window/workDoneProgress/create` request is sent from the server to the client to initiate progress\n * reporting from the server.\n */\nvar WorkDoneProgressCreateRequest;\n(function (WorkDoneProgressCreateRequest) {\n WorkDoneProgressCreateRequest.type = new messages_1.ProtocolRequestType('window/workDoneProgress/create');\n})(WorkDoneProgressCreateRequest = exports.WorkDoneProgressCreateRequest || (exports.WorkDoneProgressCreateRequest = {}));\n/**\n * The `window/workDoneProgress/cancel` notification is sent from the client to the server to cancel a progress\n * initiated on the server side.\n */\nvar WorkDoneProgressCancelNotification;\n(function (WorkDoneProgressCancelNotification) {\n WorkDoneProgressCancelNotification.type = new messages_1.ProtocolNotificationType('window/workDoneProgress/cancel');\n})(WorkDoneProgressCancelNotification = exports.WorkDoneProgressCancelNotification || (exports.WorkDoneProgressCancelNotification = {}));\n//# sourceMappingURL=protocol.progress.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) TypeFox and others. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallHierarchyOutgoingCallsRequest = exports.CallHierarchyIncomingCallsRequest = exports.CallHierarchyPrepareRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A request to result a `CallHierarchyItem` in a document at a given position.\n * Can be used as an input to a incoming or outgoing call hierarchy.\n *\n * @since 3.16.0\n */\nvar CallHierarchyPrepareRequest;\n(function (CallHierarchyPrepareRequest) {\n CallHierarchyPrepareRequest.method = 'textDocument/prepareCallHierarchy';\n CallHierarchyPrepareRequest.type = new messages_1.ProtocolRequestType(CallHierarchyPrepareRequest.method);\n})(CallHierarchyPrepareRequest = exports.CallHierarchyPrepareRequest || (exports.CallHierarchyPrepareRequest = {}));\n/**\n * A request to resolve the incoming calls for a given `CallHierarchyItem`.\n *\n * @since 3.16.0\n */\nvar CallHierarchyIncomingCallsRequest;\n(function (CallHierarchyIncomingCallsRequest) {\n CallHierarchyIncomingCallsRequest.method = 'callHierarchy/incomingCalls';\n CallHierarchyIncomingCallsRequest.type = new messages_1.ProtocolRequestType(CallHierarchyIncomingCallsRequest.method);\n})(CallHierarchyIncomingCallsRequest = exports.CallHierarchyIncomingCallsRequest || (exports.CallHierarchyIncomingCallsRequest = {}));\n/**\n * A request to resolve the outgoing calls for a given `CallHierarchyItem`.\n *\n * @since 3.16.0\n */\nvar CallHierarchyOutgoingCallsRequest;\n(function (CallHierarchyOutgoingCallsRequest) {\n CallHierarchyOutgoingCallsRequest.method = 'callHierarchy/outgoingCalls';\n CallHierarchyOutgoingCallsRequest.type = new messages_1.ProtocolRequestType(CallHierarchyOutgoingCallsRequest.method);\n})(CallHierarchyOutgoingCallsRequest = exports.CallHierarchyOutgoingCallsRequest || (exports.CallHierarchyOutgoingCallsRequest = {}));\n//# sourceMappingURL=protocol.callHierarchy.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticTokensRefreshRequest = exports.SemanticTokensRangeRequest = exports.SemanticTokensDeltaRequest = exports.SemanticTokensRequest = exports.SemanticTokensRegistrationType = exports.TokenFormat = exports.SemanticTokens = exports.SemanticTokenModifiers = exports.SemanticTokenTypes = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A set of predefined token types. This set is not fixed\n * an clients can specify additional token types via the\n * corresponding client capabilities.\n *\n * @since 3.16.0\n */\nvar SemanticTokenTypes;\n(function (SemanticTokenTypes) {\n SemanticTokenTypes[\"namespace\"] = \"namespace\";\n /**\n * Represents a generic type. Acts as a fallback for types which can't be mapped to\n * a specific type like class or enum.\n */\n SemanticTokenTypes[\"type\"] = \"type\";\n SemanticTokenTypes[\"class\"] = \"class\";\n SemanticTokenTypes[\"enum\"] = \"enum\";\n SemanticTokenTypes[\"interface\"] = \"interface\";\n SemanticTokenTypes[\"struct\"] = \"struct\";\n SemanticTokenTypes[\"typeParameter\"] = \"typeParameter\";\n SemanticTokenTypes[\"parameter\"] = \"parameter\";\n SemanticTokenTypes[\"variable\"] = \"variable\";\n SemanticTokenTypes[\"property\"] = \"property\";\n SemanticTokenTypes[\"enumMember\"] = \"enumMember\";\n SemanticTokenTypes[\"event\"] = \"event\";\n SemanticTokenTypes[\"function\"] = \"function\";\n SemanticTokenTypes[\"method\"] = \"method\";\n SemanticTokenTypes[\"macro\"] = \"macro\";\n SemanticTokenTypes[\"keyword\"] = \"keyword\";\n SemanticTokenTypes[\"modifier\"] = \"modifier\";\n SemanticTokenTypes[\"comment\"] = \"comment\";\n SemanticTokenTypes[\"string\"] = \"string\";\n SemanticTokenTypes[\"number\"] = \"number\";\n SemanticTokenTypes[\"regexp\"] = \"regexp\";\n SemanticTokenTypes[\"operator\"] = \"operator\";\n})(SemanticTokenTypes = exports.SemanticTokenTypes || (exports.SemanticTokenTypes = {}));\n/**\n * A set of predefined token modifiers. This set is not fixed\n * an clients can specify additional token types via the\n * corresponding client capabilities.\n *\n * @since 3.16.0\n */\nvar SemanticTokenModifiers;\n(function (SemanticTokenModifiers) {\n SemanticTokenModifiers[\"declaration\"] = \"declaration\";\n SemanticTokenModifiers[\"definition\"] = \"definition\";\n SemanticTokenModifiers[\"readonly\"] = \"readonly\";\n SemanticTokenModifiers[\"static\"] = \"static\";\n SemanticTokenModifiers[\"deprecated\"] = \"deprecated\";\n SemanticTokenModifiers[\"abstract\"] = \"abstract\";\n SemanticTokenModifiers[\"async\"] = \"async\";\n SemanticTokenModifiers[\"modification\"] = \"modification\";\n SemanticTokenModifiers[\"documentation\"] = \"documentation\";\n SemanticTokenModifiers[\"defaultLibrary\"] = \"defaultLibrary\";\n})(SemanticTokenModifiers = exports.SemanticTokenModifiers || (exports.SemanticTokenModifiers = {}));\n/**\n * @since 3.16.0\n */\nvar SemanticTokens;\n(function (SemanticTokens) {\n function is(value) {\n const candidate = value;\n return candidate !== undefined && (candidate.resultId === undefined || typeof candidate.resultId === 'string') &&\n Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === 'number');\n }\n SemanticTokens.is = is;\n})(SemanticTokens = exports.SemanticTokens || (exports.SemanticTokens = {}));\n//------- 'textDocument/semanticTokens' -----\nvar TokenFormat;\n(function (TokenFormat) {\n TokenFormat.Relative = 'relative';\n})(TokenFormat = exports.TokenFormat || (exports.TokenFormat = {}));\nvar SemanticTokensRegistrationType;\n(function (SemanticTokensRegistrationType) {\n SemanticTokensRegistrationType.method = 'textDocument/semanticTokens';\n SemanticTokensRegistrationType.type = new messages_1.RegistrationType(SemanticTokensRegistrationType.method);\n})(SemanticTokensRegistrationType = exports.SemanticTokensRegistrationType || (exports.SemanticTokensRegistrationType = {}));\n/**\n * @since 3.16.0\n */\nvar SemanticTokensRequest;\n(function (SemanticTokensRequest) {\n SemanticTokensRequest.method = 'textDocument/semanticTokens/full';\n SemanticTokensRequest.type = new messages_1.ProtocolRequestType(SemanticTokensRequest.method);\n})(SemanticTokensRequest = exports.SemanticTokensRequest || (exports.SemanticTokensRequest = {}));\n/**\n * @since 3.16.0\n */\nvar SemanticTokensDeltaRequest;\n(function (SemanticTokensDeltaRequest) {\n SemanticTokensDeltaRequest.method = 'textDocument/semanticTokens/full/delta';\n SemanticTokensDeltaRequest.type = new messages_1.ProtocolRequestType(SemanticTokensDeltaRequest.method);\n})(SemanticTokensDeltaRequest = exports.SemanticTokensDeltaRequest || (exports.SemanticTokensDeltaRequest = {}));\n/**\n * @since 3.16.0\n */\nvar SemanticTokensRangeRequest;\n(function (SemanticTokensRangeRequest) {\n SemanticTokensRangeRequest.method = 'textDocument/semanticTokens/range';\n SemanticTokensRangeRequest.type = new messages_1.ProtocolRequestType(SemanticTokensRangeRequest.method);\n})(SemanticTokensRangeRequest = exports.SemanticTokensRangeRequest || (exports.SemanticTokensRangeRequest = {}));\n/**\n * @since 3.16.0\n */\nvar SemanticTokensRefreshRequest;\n(function (SemanticTokensRefreshRequest) {\n SemanticTokensRefreshRequest.method = `workspace/semanticTokens/refresh`;\n SemanticTokensRefreshRequest.type = new messages_1.ProtocolRequestType0(SemanticTokensRefreshRequest.method);\n})(SemanticTokensRefreshRequest = exports.SemanticTokensRefreshRequest || (exports.SemanticTokensRefreshRequest = {}));\n//# sourceMappingURL=protocol.semanticTokens.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShowDocumentRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A request to show a document. This request might open an\n * external program depending on the value of the URI to open.\n * For example a request to open `https://code.visualstudio.com/`\n * will very likely open the URI in a WEB browser.\n *\n * @since 3.16.0\n*/\nvar ShowDocumentRequest;\n(function (ShowDocumentRequest) {\n ShowDocumentRequest.method = 'window/showDocument';\n ShowDocumentRequest.type = new messages_1.ProtocolRequestType(ShowDocumentRequest.method);\n})(ShowDocumentRequest = exports.ShowDocumentRequest || (exports.ShowDocumentRequest = {}));\n//# sourceMappingURL=protocol.showDocument.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkedEditingRangeRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A request to provide ranges that can be edited together.\n *\n * @since 3.16.0\n */\nvar LinkedEditingRangeRequest;\n(function (LinkedEditingRangeRequest) {\n LinkedEditingRangeRequest.method = 'textDocument/linkedEditingRange';\n LinkedEditingRangeRequest.type = new messages_1.ProtocolRequestType(LinkedEditingRangeRequest.method);\n})(LinkedEditingRangeRequest = exports.LinkedEditingRangeRequest || (exports.LinkedEditingRangeRequest = {}));\n//# sourceMappingURL=protocol.linkedEditingRange.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WillDeleteFilesRequest = exports.DidDeleteFilesNotification = exports.DidRenameFilesNotification = exports.WillRenameFilesRequest = exports.DidCreateFilesNotification = exports.WillCreateFilesRequest = exports.FileOperationPatternKind = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A pattern kind describing if a glob pattern matches a file a folder or\n * both.\n *\n * @since 3.16.0\n */\nvar FileOperationPatternKind;\n(function (FileOperationPatternKind) {\n /**\n * The pattern matches a file only.\n */\n FileOperationPatternKind.file = 'file';\n /**\n * The pattern matches a folder only.\n */\n FileOperationPatternKind.folder = 'folder';\n})(FileOperationPatternKind = exports.FileOperationPatternKind || (exports.FileOperationPatternKind = {}));\n/**\n * The will create files request is sent from the client to the server before files are actually\n * created as long as the creation is triggered from within the client.\n *\n * @since 3.16.0\n */\nvar WillCreateFilesRequest;\n(function (WillCreateFilesRequest) {\n WillCreateFilesRequest.method = 'workspace/willCreateFiles';\n WillCreateFilesRequest.type = new messages_1.ProtocolRequestType(WillCreateFilesRequest.method);\n})(WillCreateFilesRequest = exports.WillCreateFilesRequest || (exports.WillCreateFilesRequest = {}));\n/**\n * The did create files notification is sent from the client to the server when\n * files were created from within the client.\n *\n * @since 3.16.0\n */\nvar DidCreateFilesNotification;\n(function (DidCreateFilesNotification) {\n DidCreateFilesNotification.method = 'workspace/didCreateFiles';\n DidCreateFilesNotification.type = new messages_1.ProtocolNotificationType(DidCreateFilesNotification.method);\n})(DidCreateFilesNotification = exports.DidCreateFilesNotification || (exports.DidCreateFilesNotification = {}));\n/**\n * The will rename files request is sent from the client to the server before files are actually\n * renamed as long as the rename is triggered from within the client.\n *\n * @since 3.16.0\n */\nvar WillRenameFilesRequest;\n(function (WillRenameFilesRequest) {\n WillRenameFilesRequest.method = 'workspace/willRenameFiles';\n WillRenameFilesRequest.type = new messages_1.ProtocolRequestType(WillRenameFilesRequest.method);\n})(WillRenameFilesRequest = exports.WillRenameFilesRequest || (exports.WillRenameFilesRequest = {}));\n/**\n * The did rename files notification is sent from the client to the server when\n * files were renamed from within the client.\n *\n * @since 3.16.0\n */\nvar DidRenameFilesNotification;\n(function (DidRenameFilesNotification) {\n DidRenameFilesNotification.method = 'workspace/didRenameFiles';\n DidRenameFilesNotification.type = new messages_1.ProtocolNotificationType(DidRenameFilesNotification.method);\n})(DidRenameFilesNotification = exports.DidRenameFilesNotification || (exports.DidRenameFilesNotification = {}));\n/**\n * The will delete files request is sent from the client to the server before files are actually\n * deleted as long as the deletion is triggered from within the client.\n *\n * @since 3.16.0\n */\nvar DidDeleteFilesNotification;\n(function (DidDeleteFilesNotification) {\n DidDeleteFilesNotification.method = 'workspace/didDeleteFiles';\n DidDeleteFilesNotification.type = new messages_1.ProtocolNotificationType(DidDeleteFilesNotification.method);\n})(DidDeleteFilesNotification = exports.DidDeleteFilesNotification || (exports.DidDeleteFilesNotification = {}));\n/**\n * The did delete files notification is sent from the client to the server when\n * files were deleted from within the client.\n *\n * @since 3.16.0\n */\nvar WillDeleteFilesRequest;\n(function (WillDeleteFilesRequest) {\n WillDeleteFilesRequest.method = 'workspace/willDeleteFiles';\n WillDeleteFilesRequest.type = new messages_1.ProtocolRequestType(WillDeleteFilesRequest.method);\n})(WillDeleteFilesRequest = exports.WillDeleteFilesRequest || (exports.WillDeleteFilesRequest = {}));\n//# sourceMappingURL=protocol.fileOperations.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MonikerRequest = exports.MonikerKind = exports.UniquenessLevel = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * Moniker uniqueness level to define scope of the moniker.\n *\n * @since 3.16.0\n */\nvar UniquenessLevel;\n(function (UniquenessLevel) {\n /**\n * The moniker is only unique inside a document\n */\n UniquenessLevel[\"document\"] = \"document\";\n /**\n * The moniker is unique inside a project for which a dump got created\n */\n UniquenessLevel[\"project\"] = \"project\";\n /**\n * The moniker is unique inside the group to which a project belongs\n */\n UniquenessLevel[\"group\"] = \"group\";\n /**\n * The moniker is unique inside the moniker scheme.\n */\n UniquenessLevel[\"scheme\"] = \"scheme\";\n /**\n * The moniker is globally unique\n */\n UniquenessLevel[\"global\"] = \"global\";\n})(UniquenessLevel = exports.UniquenessLevel || (exports.UniquenessLevel = {}));\n/**\n * The moniker kind.\n *\n * @since 3.16.0\n */\nvar MonikerKind;\n(function (MonikerKind) {\n /**\n * The moniker represent a symbol that is imported into a project\n */\n MonikerKind[\"import\"] = \"import\";\n /**\n * The moniker represents a symbol that is exported from a project\n */\n MonikerKind[\"export\"] = \"export\";\n /**\n * The moniker represents a symbol that is local to a project (e.g. a local\n * variable of a function, a class not visible outside the project, ...)\n */\n MonikerKind[\"local\"] = \"local\";\n})(MonikerKind = exports.MonikerKind || (exports.MonikerKind = {}));\n/**\n * A request to get the moniker of a symbol at a given text document position.\n * The request parameter is of type [TextDocumentPositionParams](#TextDocumentPositionParams).\n * The response is of type [Moniker[]](#Moniker[]) or `null`.\n */\nvar MonikerRequest;\n(function (MonikerRequest) {\n MonikerRequest.method = 'textDocument/moniker';\n MonikerRequest.type = new messages_1.ProtocolRequestType(MonikerRequest.method);\n})(MonikerRequest = exports.MonikerRequest || (exports.MonikerRequest = {}));\n//# sourceMappingURL=protocol.moniker.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DocumentLinkRequest = exports.CodeLensRefreshRequest = exports.CodeLensResolveRequest = exports.CodeLensRequest = exports.WorkspaceSymbolRequest = exports.CodeActionResolveRequest = exports.CodeActionRequest = exports.DocumentSymbolRequest = exports.DocumentHighlightRequest = exports.ReferencesRequest = exports.DefinitionRequest = exports.SignatureHelpRequest = exports.SignatureHelpTriggerKind = exports.HoverRequest = exports.CompletionResolveRequest = exports.CompletionRequest = exports.CompletionTriggerKind = exports.PublishDiagnosticsNotification = exports.WatchKind = exports.FileChangeType = exports.DidChangeWatchedFilesNotification = exports.WillSaveTextDocumentWaitUntilRequest = exports.WillSaveTextDocumentNotification = exports.TextDocumentSaveReason = exports.DidSaveTextDocumentNotification = exports.DidCloseTextDocumentNotification = exports.DidChangeTextDocumentNotification = exports.TextDocumentContentChangeEvent = exports.DidOpenTextDocumentNotification = exports.TextDocumentSyncKind = exports.TelemetryEventNotification = exports.LogMessageNotification = exports.ShowMessageRequest = exports.ShowMessageNotification = exports.MessageType = exports.DidChangeConfigurationNotification = exports.ExitNotification = exports.ShutdownRequest = exports.InitializedNotification = exports.InitializeError = exports.InitializeRequest = exports.WorkDoneProgressOptions = exports.TextDocumentRegistrationOptions = exports.StaticRegistrationOptions = exports.FailureHandlingKind = exports.ResourceOperationKind = exports.UnregistrationRequest = exports.RegistrationRequest = exports.DocumentSelector = exports.DocumentFilter = void 0;\nexports.MonikerRequest = exports.MonikerKind = exports.UniquenessLevel = exports.WillDeleteFilesRequest = exports.DidDeleteFilesNotification = exports.WillRenameFilesRequest = exports.DidRenameFilesNotification = exports.WillCreateFilesRequest = exports.DidCreateFilesNotification = exports.FileOperationPatternKind = exports.LinkedEditingRangeRequest = exports.ShowDocumentRequest = exports.SemanticTokensRegistrationType = exports.SemanticTokensRefreshRequest = exports.SemanticTokensRangeRequest = exports.SemanticTokensDeltaRequest = exports.SemanticTokensRequest = exports.TokenFormat = exports.SemanticTokens = exports.SemanticTokenModifiers = exports.SemanticTokenTypes = exports.CallHierarchyPrepareRequest = exports.CallHierarchyOutgoingCallsRequest = exports.CallHierarchyIncomingCallsRequest = exports.WorkDoneProgressCancelNotification = exports.WorkDoneProgressCreateRequest = exports.WorkDoneProgress = exports.SelectionRangeRequest = exports.DeclarationRequest = exports.FoldingRangeRequest = exports.ColorPresentationRequest = exports.DocumentColorRequest = exports.ConfigurationRequest = exports.DidChangeWorkspaceFoldersNotification = exports.WorkspaceFoldersRequest = exports.TypeDefinitionRequest = exports.ImplementationRequest = exports.ApplyWorkspaceEditRequest = exports.ExecuteCommandRequest = exports.PrepareRenameRequest = exports.RenameRequest = exports.PrepareSupportDefaultBehavior = exports.DocumentOnTypeFormattingRequest = exports.DocumentRangeFormattingRequest = exports.DocumentFormattingRequest = exports.DocumentLinkResolveRequest = void 0;\nconst Is = require(\"./utils/is\");\nconst messages_1 = require(\"./messages\");\nconst protocol_implementation_1 = require(\"./protocol.implementation\");\nObject.defineProperty(exports, \"ImplementationRequest\", { enumerable: true, get: function () { return protocol_implementation_1.ImplementationRequest; } });\nconst protocol_typeDefinition_1 = require(\"./protocol.typeDefinition\");\nObject.defineProperty(exports, \"TypeDefinitionRequest\", { enumerable: true, get: function () { return protocol_typeDefinition_1.TypeDefinitionRequest; } });\nconst protocol_workspaceFolders_1 = require(\"./protocol.workspaceFolders\");\nObject.defineProperty(exports, \"WorkspaceFoldersRequest\", { enumerable: true, get: function () { return protocol_workspaceFolders_1.WorkspaceFoldersRequest; } });\nObject.defineProperty(exports, \"DidChangeWorkspaceFoldersNotification\", { enumerable: true, get: function () { return protocol_workspaceFolders_1.DidChangeWorkspaceFoldersNotification; } });\nconst protocol_configuration_1 = require(\"./protocol.configuration\");\nObject.defineProperty(exports, \"ConfigurationRequest\", { enumerable: true, get: function () { return protocol_configuration_1.ConfigurationRequest; } });\nconst protocol_colorProvider_1 = require(\"./protocol.colorProvider\");\nObject.defineProperty(exports, \"DocumentColorRequest\", { enumerable: true, get: function () { return protocol_colorProvider_1.DocumentColorRequest; } });\nObject.defineProperty(exports, \"ColorPresentationRequest\", { enumerable: true, get: function () { return protocol_colorProvider_1.ColorPresentationRequest; } });\nconst protocol_foldingRange_1 = require(\"./protocol.foldingRange\");\nObject.defineProperty(exports, \"FoldingRangeRequest\", { enumerable: true, get: function () { return protocol_foldingRange_1.FoldingRangeRequest; } });\nconst protocol_declaration_1 = require(\"./protocol.declaration\");\nObject.defineProperty(exports, \"DeclarationRequest\", { enumerable: true, get: function () { return protocol_declaration_1.DeclarationRequest; } });\nconst protocol_selectionRange_1 = require(\"./protocol.selectionRange\");\nObject.defineProperty(exports, \"SelectionRangeRequest\", { enumerable: true, get: function () { return protocol_selectionRange_1.SelectionRangeRequest; } });\nconst protocol_progress_1 = require(\"./protocol.progress\");\nObject.defineProperty(exports, \"WorkDoneProgress\", { enumerable: true, get: function () { return protocol_progress_1.WorkDoneProgress; } });\nObject.defineProperty(exports, \"WorkDoneProgressCreateRequest\", { enumerable: true, get: function () { return protocol_progress_1.WorkDoneProgressCreateRequest; } });\nObject.defineProperty(exports, \"WorkDoneProgressCancelNotification\", { enumerable: true, get: function () { return protocol_progress_1.WorkDoneProgressCancelNotification; } });\nconst protocol_callHierarchy_1 = require(\"./protocol.callHierarchy\");\nObject.defineProperty(exports, \"CallHierarchyIncomingCallsRequest\", { enumerable: true, get: function () { return protocol_callHierarchy_1.CallHierarchyIncomingCallsRequest; } });\nObject.defineProperty(exports, \"CallHierarchyOutgoingCallsRequest\", { enumerable: true, get: function () { return protocol_callHierarchy_1.CallHierarchyOutgoingCallsRequest; } });\nObject.defineProperty(exports, \"CallHierarchyPrepareRequest\", { enumerable: true, get: function () { return protocol_callHierarchy_1.CallHierarchyPrepareRequest; } });\nconst protocol_semanticTokens_1 = require(\"./protocol.semanticTokens\");\nObject.defineProperty(exports, \"SemanticTokenTypes\", { enumerable: true, get: function () { return protocol_semanticTokens_1.SemanticTokenTypes; } });\nObject.defineProperty(exports, \"SemanticTokenModifiers\", { enumerable: true, get: function () { return protocol_semanticTokens_1.SemanticTokenModifiers; } });\nObject.defineProperty(exports, \"SemanticTokens\", { enumerable: true, get: function () { return protocol_semanticTokens_1.SemanticTokens; } });\nObject.defineProperty(exports, \"TokenFormat\", { enumerable: true, get: function () { return protocol_semanticTokens_1.TokenFormat; } });\nObject.defineProperty(exports, \"SemanticTokensRequest\", { enumerable: true, get: function () { return protocol_semanticTokens_1.SemanticTokensRequest; } });\nObject.defineProperty(exports, \"SemanticTokensDeltaRequest\", { enumerable: true, get: function () { return protocol_semanticTokens_1.SemanticTokensDeltaRequest; } });\nObject.defineProperty(exports, \"SemanticTokensRangeRequest\", { enumerable: true, get: function () { return protocol_semanticTokens_1.SemanticTokensRangeRequest; } });\nObject.defineProperty(exports, \"SemanticTokensRefreshRequest\", { enumerable: true, get: function () { return protocol_semanticTokens_1.SemanticTokensRefreshRequest; } });\nObject.defineProperty(exports, \"SemanticTokensRegistrationType\", { enumerable: true, get: function () { return protocol_semanticTokens_1.SemanticTokensRegistrationType; } });\nconst protocol_showDocument_1 = require(\"./protocol.showDocument\");\nObject.defineProperty(exports, \"ShowDocumentRequest\", { enumerable: true, get: function () { return protocol_showDocument_1.ShowDocumentRequest; } });\nconst protocol_linkedEditingRange_1 = require(\"./protocol.linkedEditingRange\");\nObject.defineProperty(exports, \"LinkedEditingRangeRequest\", { enumerable: true, get: function () { return protocol_linkedEditingRange_1.LinkedEditingRangeRequest; } });\nconst protocol_fileOperations_1 = require(\"./protocol.fileOperations\");\nObject.defineProperty(exports, \"FileOperationPatternKind\", { enumerable: true, get: function () { return protocol_fileOperations_1.FileOperationPatternKind; } });\nObject.defineProperty(exports, \"DidCreateFilesNotification\", { enumerable: true, get: function () { return protocol_fileOperations_1.DidCreateFilesNotification; } });\nObject.defineProperty(exports, \"WillCreateFilesRequest\", { enumerable: true, get: function () { return protocol_fileOperations_1.WillCreateFilesRequest; } });\nObject.defineProperty(exports, \"DidRenameFilesNotification\", { enumerable: true, get: function () { return protocol_fileOperations_1.DidRenameFilesNotification; } });\nObject.defineProperty(exports, \"WillRenameFilesRequest\", { enumerable: true, get: function () { return protocol_fileOperations_1.WillRenameFilesRequest; } });\nObject.defineProperty(exports, \"DidDeleteFilesNotification\", { enumerable: true, get: function () { return protocol_fileOperations_1.DidDeleteFilesNotification; } });\nObject.defineProperty(exports, \"WillDeleteFilesRequest\", { enumerable: true, get: function () { return protocol_fileOperations_1.WillDeleteFilesRequest; } });\nconst protocol_moniker_1 = require(\"./protocol.moniker\");\nObject.defineProperty(exports, \"UniquenessLevel\", { enumerable: true, get: function () { return protocol_moniker_1.UniquenessLevel; } });\nObject.defineProperty(exports, \"MonikerKind\", { enumerable: true, get: function () { return protocol_moniker_1.MonikerKind; } });\nObject.defineProperty(exports, \"MonikerRequest\", { enumerable: true, get: function () { return protocol_moniker_1.MonikerRequest; } });\n// @ts-ignore: to avoid inlining LocationLink as dynamic import\nlet __noDynamicImport;\n/**\n * The DocumentFilter namespace provides helper functions to work with\n * [DocumentFilter](#DocumentFilter) literals.\n */\nvar DocumentFilter;\n(function (DocumentFilter) {\n function is(value) {\n const candidate = value;\n return Is.string(candidate.language) || Is.string(candidate.scheme) || Is.string(candidate.pattern);\n }\n DocumentFilter.is = is;\n})(DocumentFilter = exports.DocumentFilter || (exports.DocumentFilter = {}));\n/**\n * The DocumentSelector namespace provides helper functions to work with\n * [DocumentSelector](#DocumentSelector)s.\n */\nvar DocumentSelector;\n(function (DocumentSelector) {\n function is(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n for (let elem of value) {\n if (!Is.string(elem) && !DocumentFilter.is(elem)) {\n return false;\n }\n }\n return true;\n }\n DocumentSelector.is = is;\n})(DocumentSelector = exports.DocumentSelector || (exports.DocumentSelector = {}));\n/**\n * The `client/registerCapability` request is sent from the server to the client to register a new capability\n * handler on the client side.\n */\nvar RegistrationRequest;\n(function (RegistrationRequest) {\n RegistrationRequest.type = new messages_1.ProtocolRequestType('client/registerCapability');\n})(RegistrationRequest = exports.RegistrationRequest || (exports.RegistrationRequest = {}));\n/**\n * The `client/unregisterCapability` request is sent from the server to the client to unregister a previously registered capability\n * handler on the client side.\n */\nvar UnregistrationRequest;\n(function (UnregistrationRequest) {\n UnregistrationRequest.type = new messages_1.ProtocolRequestType('client/unregisterCapability');\n})(UnregistrationRequest = exports.UnregistrationRequest || (exports.UnregistrationRequest = {}));\nvar ResourceOperationKind;\n(function (ResourceOperationKind) {\n /**\n * Supports creating new files and folders.\n */\n ResourceOperationKind.Create = 'create';\n /**\n * Supports renaming existing files and folders.\n */\n ResourceOperationKind.Rename = 'rename';\n /**\n * Supports deleting existing files and folders.\n */\n ResourceOperationKind.Delete = 'delete';\n})(ResourceOperationKind = exports.ResourceOperationKind || (exports.ResourceOperationKind = {}));\nvar FailureHandlingKind;\n(function (FailureHandlingKind) {\n /**\n * Applying the workspace change is simply aborted if one of the changes provided\n * fails. All operations executed before the failing operation stay executed.\n */\n FailureHandlingKind.Abort = 'abort';\n /**\n * All operations are executed transactional. That means they either all\n * succeed or no changes at all are applied to the workspace.\n */\n FailureHandlingKind.Transactional = 'transactional';\n /**\n * If the workspace edit contains only textual file changes they are executed transactional.\n * If resource changes (create, rename or delete file) are part of the change the failure\n * handling strategy is abort.\n */\n FailureHandlingKind.TextOnlyTransactional = 'textOnlyTransactional';\n /**\n * The client tries to undo the operations already executed. But there is no\n * guarantee that this is succeeding.\n */\n FailureHandlingKind.Undo = 'undo';\n})(FailureHandlingKind = exports.FailureHandlingKind || (exports.FailureHandlingKind = {}));\n/**\n * The StaticRegistrationOptions namespace provides helper functions to work with\n * [StaticRegistrationOptions](#StaticRegistrationOptions) literals.\n */\nvar StaticRegistrationOptions;\n(function (StaticRegistrationOptions) {\n function hasId(value) {\n const candidate = value;\n return candidate && Is.string(candidate.id) && candidate.id.length > 0;\n }\n StaticRegistrationOptions.hasId = hasId;\n})(StaticRegistrationOptions = exports.StaticRegistrationOptions || (exports.StaticRegistrationOptions = {}));\n/**\n * The TextDocumentRegistrationOptions namespace provides helper functions to work with\n * [TextDocumentRegistrationOptions](#TextDocumentRegistrationOptions) literals.\n */\nvar TextDocumentRegistrationOptions;\n(function (TextDocumentRegistrationOptions) {\n function is(value) {\n const candidate = value;\n return candidate && (candidate.documentSelector === null || DocumentSelector.is(candidate.documentSelector));\n }\n TextDocumentRegistrationOptions.is = is;\n})(TextDocumentRegistrationOptions = exports.TextDocumentRegistrationOptions || (exports.TextDocumentRegistrationOptions = {}));\n/**\n * The WorkDoneProgressOptions namespace provides helper functions to work with\n * [WorkDoneProgressOptions](#WorkDoneProgressOptions) literals.\n */\nvar WorkDoneProgressOptions;\n(function (WorkDoneProgressOptions) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && (candidate.workDoneProgress === undefined || Is.boolean(candidate.workDoneProgress));\n }\n WorkDoneProgressOptions.is = is;\n function hasWorkDoneProgress(value) {\n const candidate = value;\n return candidate && Is.boolean(candidate.workDoneProgress);\n }\n WorkDoneProgressOptions.hasWorkDoneProgress = hasWorkDoneProgress;\n})(WorkDoneProgressOptions = exports.WorkDoneProgressOptions || (exports.WorkDoneProgressOptions = {}));\n/**\n * The initialize request is sent from the client to the server.\n * It is sent once as the request after starting up the server.\n * The requests parameter is of type [InitializeParams](#InitializeParams)\n * the response if of type [InitializeResult](#InitializeResult) of a Thenable that\n * resolves to such.\n */\nvar InitializeRequest;\n(function (InitializeRequest) {\n InitializeRequest.type = new messages_1.ProtocolRequestType('initialize');\n})(InitializeRequest = exports.InitializeRequest || (exports.InitializeRequest = {}));\n/**\n * Known error codes for an `InitializeError`;\n */\nvar InitializeError;\n(function (InitializeError) {\n /**\n * If the protocol version provided by the client can't be handled by the server.\n * @deprecated This initialize error got replaced by client capabilities. There is\n * no version handshake in version 3.0x\n */\n InitializeError.unknownProtocolVersion = 1;\n})(InitializeError = exports.InitializeError || (exports.InitializeError = {}));\n/**\n * The initialized notification is sent from the client to the\n * server after the client is fully initialized and the server\n * is allowed to send requests from the server to the client.\n */\nvar InitializedNotification;\n(function (InitializedNotification) {\n InitializedNotification.type = new messages_1.ProtocolNotificationType('initialized');\n})(InitializedNotification = exports.InitializedNotification || (exports.InitializedNotification = {}));\n//---- Shutdown Method ----\n/**\n * A shutdown request is sent from the client to the server.\n * It is sent once when the client decides to shutdown the\n * server. The only notification that is sent after a shutdown request\n * is the exit event.\n */\nvar ShutdownRequest;\n(function (ShutdownRequest) {\n ShutdownRequest.type = new messages_1.ProtocolRequestType0('shutdown');\n})(ShutdownRequest = exports.ShutdownRequest || (exports.ShutdownRequest = {}));\n//---- Exit Notification ----\n/**\n * The exit event is sent from the client to the server to\n * ask the server to exit its process.\n */\nvar ExitNotification;\n(function (ExitNotification) {\n ExitNotification.type = new messages_1.ProtocolNotificationType0('exit');\n})(ExitNotification = exports.ExitNotification || (exports.ExitNotification = {}));\n/**\n * The configuration change notification is sent from the client to the server\n * when the client's configuration has changed. The notification contains\n * the changed configuration as defined by the language client.\n */\nvar DidChangeConfigurationNotification;\n(function (DidChangeConfigurationNotification) {\n DidChangeConfigurationNotification.type = new messages_1.ProtocolNotificationType('workspace/didChangeConfiguration');\n})(DidChangeConfigurationNotification = exports.DidChangeConfigurationNotification || (exports.DidChangeConfigurationNotification = {}));\n//---- Message show and log notifications ----\n/**\n * The message type\n */\nvar MessageType;\n(function (MessageType) {\n /**\n * An error message.\n */\n MessageType.Error = 1;\n /**\n * A warning message.\n */\n MessageType.Warning = 2;\n /**\n * An information message.\n */\n MessageType.Info = 3;\n /**\n * A log message.\n */\n MessageType.Log = 4;\n})(MessageType = exports.MessageType || (exports.MessageType = {}));\n/**\n * The show message notification is sent from a server to a client to ask\n * the client to display a particular message in the user interface.\n */\nvar ShowMessageNotification;\n(function (ShowMessageNotification) {\n ShowMessageNotification.type = new messages_1.ProtocolNotificationType('window/showMessage');\n})(ShowMessageNotification = exports.ShowMessageNotification || (exports.ShowMessageNotification = {}));\n/**\n * The show message request is sent from the server to the client to show a message\n * and a set of options actions to the user.\n */\nvar ShowMessageRequest;\n(function (ShowMessageRequest) {\n ShowMessageRequest.type = new messages_1.ProtocolRequestType('window/showMessageRequest');\n})(ShowMessageRequest = exports.ShowMessageRequest || (exports.ShowMessageRequest = {}));\n/**\n * The log message notification is sent from the server to the client to ask\n * the client to log a particular message.\n */\nvar LogMessageNotification;\n(function (LogMessageNotification) {\n LogMessageNotification.type = new messages_1.ProtocolNotificationType('window/logMessage');\n})(LogMessageNotification = exports.LogMessageNotification || (exports.LogMessageNotification = {}));\n//---- Telemetry notification\n/**\n * The telemetry event notification is sent from the server to the client to ask\n * the client to log telemetry data.\n */\nvar TelemetryEventNotification;\n(function (TelemetryEventNotification) {\n TelemetryEventNotification.type = new messages_1.ProtocolNotificationType('telemetry/event');\n})(TelemetryEventNotification = exports.TelemetryEventNotification || (exports.TelemetryEventNotification = {}));\n/**\n * Defines how the host (editor) should sync\n * document changes to the language server.\n */\nvar TextDocumentSyncKind;\n(function (TextDocumentSyncKind) {\n /**\n * Documents should not be synced at all.\n */\n TextDocumentSyncKind.None = 0;\n /**\n * Documents are synced by always sending the full content\n * of the document.\n */\n TextDocumentSyncKind.Full = 1;\n /**\n * Documents are synced by sending the full content on open.\n * After that only incremental updates to the document are\n * send.\n */\n TextDocumentSyncKind.Incremental = 2;\n})(TextDocumentSyncKind = exports.TextDocumentSyncKind || (exports.TextDocumentSyncKind = {}));\n/**\n * The document open notification is sent from the client to the server to signal\n * newly opened text documents. The document's truth is now managed by the client\n * and the server must not try to read the document's truth using the document's\n * uri. Open in this sense means it is managed by the client. It doesn't necessarily\n * mean that its content is presented in an editor. An open notification must not\n * be sent more than once without a corresponding close notification send before.\n * This means open and close notification must be balanced and the max open count\n * is one.\n */\nvar DidOpenTextDocumentNotification;\n(function (DidOpenTextDocumentNotification) {\n DidOpenTextDocumentNotification.method = 'textDocument/didOpen';\n DidOpenTextDocumentNotification.type = new messages_1.ProtocolNotificationType(DidOpenTextDocumentNotification.method);\n})(DidOpenTextDocumentNotification = exports.DidOpenTextDocumentNotification || (exports.DidOpenTextDocumentNotification = {}));\nvar TextDocumentContentChangeEvent;\n(function (TextDocumentContentChangeEvent) {\n /**\n * Checks whether the information describes a delta event.\n */\n function isIncremental(event) {\n let candidate = event;\n return candidate !== undefined && candidate !== null &&\n typeof candidate.text === 'string' && candidate.range !== undefined &&\n (candidate.rangeLength === undefined || typeof candidate.rangeLength === 'number');\n }\n TextDocumentContentChangeEvent.isIncremental = isIncremental;\n /**\n * Checks whether the information describes a full replacement event.\n */\n function isFull(event) {\n let candidate = event;\n return candidate !== undefined && candidate !== null &&\n typeof candidate.text === 'string' && candidate.range === undefined && candidate.rangeLength === undefined;\n }\n TextDocumentContentChangeEvent.isFull = isFull;\n})(TextDocumentContentChangeEvent = exports.TextDocumentContentChangeEvent || (exports.TextDocumentContentChangeEvent = {}));\n/**\n * The document change notification is sent from the client to the server to signal\n * changes to a text document.\n */\nvar DidChangeTextDocumentNotification;\n(function (DidChangeTextDocumentNotification) {\n DidChangeTextDocumentNotification.method = 'textDocument/didChange';\n DidChangeTextDocumentNotification.type = new messages_1.ProtocolNotificationType(DidChangeTextDocumentNotification.method);\n})(DidChangeTextDocumentNotification = exports.DidChangeTextDocumentNotification || (exports.DidChangeTextDocumentNotification = {}));\n/**\n * The document close notification is sent from the client to the server when\n * the document got closed in the client. The document's truth now exists where\n * the document's uri points to (e.g. if the document's uri is a file uri the\n * truth now exists on disk). As with the open notification the close notification\n * is about managing the document's content. Receiving a close notification\n * doesn't mean that the document was open in an editor before. A close\n * notification requires a previous open notification to be sent.\n */\nvar DidCloseTextDocumentNotification;\n(function (DidCloseTextDocumentNotification) {\n DidCloseTextDocumentNotification.method = 'textDocument/didClose';\n DidCloseTextDocumentNotification.type = new messages_1.ProtocolNotificationType(DidCloseTextDocumentNotification.method);\n})(DidCloseTextDocumentNotification = exports.DidCloseTextDocumentNotification || (exports.DidCloseTextDocumentNotification = {}));\n/**\n * The document save notification is sent from the client to the server when\n * the document got saved in the client.\n */\nvar DidSaveTextDocumentNotification;\n(function (DidSaveTextDocumentNotification) {\n DidSaveTextDocumentNotification.method = 'textDocument/didSave';\n DidSaveTextDocumentNotification.type = new messages_1.ProtocolNotificationType(DidSaveTextDocumentNotification.method);\n})(DidSaveTextDocumentNotification = exports.DidSaveTextDocumentNotification || (exports.DidSaveTextDocumentNotification = {}));\n/**\n * Represents reasons why a text document is saved.\n */\nvar TextDocumentSaveReason;\n(function (TextDocumentSaveReason) {\n /**\n * Manually triggered, e.g. by the user pressing save, by starting debugging,\n * or by an API call.\n */\n TextDocumentSaveReason.Manual = 1;\n /**\n * Automatic after a delay.\n */\n TextDocumentSaveReason.AfterDelay = 2;\n /**\n * When the editor lost focus.\n */\n TextDocumentSaveReason.FocusOut = 3;\n})(TextDocumentSaveReason = exports.TextDocumentSaveReason || (exports.TextDocumentSaveReason = {}));\n/**\n * A document will save notification is sent from the client to the server before\n * the document is actually saved.\n */\nvar WillSaveTextDocumentNotification;\n(function (WillSaveTextDocumentNotification) {\n WillSaveTextDocumentNotification.method = 'textDocument/willSave';\n WillSaveTextDocumentNotification.type = new messages_1.ProtocolNotificationType(WillSaveTextDocumentNotification.method);\n})(WillSaveTextDocumentNotification = exports.WillSaveTextDocumentNotification || (exports.WillSaveTextDocumentNotification = {}));\n/**\n * A document will save request is sent from the client to the server before\n * the document is actually saved. The request can return an array of TextEdits\n * which will be applied to the text document before it is saved. Please note that\n * clients might drop results if computing the text edits took too long or if a\n * server constantly fails on this request. This is done to keep the save fast and\n * reliable.\n */\nvar WillSaveTextDocumentWaitUntilRequest;\n(function (WillSaveTextDocumentWaitUntilRequest) {\n WillSaveTextDocumentWaitUntilRequest.method = 'textDocument/willSaveWaitUntil';\n WillSaveTextDocumentWaitUntilRequest.type = new messages_1.ProtocolRequestType(WillSaveTextDocumentWaitUntilRequest.method);\n})(WillSaveTextDocumentWaitUntilRequest = exports.WillSaveTextDocumentWaitUntilRequest || (exports.WillSaveTextDocumentWaitUntilRequest = {}));\n/**\n * The watched files notification is sent from the client to the server when\n * the client detects changes to file watched by the language client.\n */\nvar DidChangeWatchedFilesNotification;\n(function (DidChangeWatchedFilesNotification) {\n DidChangeWatchedFilesNotification.type = new messages_1.ProtocolNotificationType('workspace/didChangeWatchedFiles');\n})(DidChangeWatchedFilesNotification = exports.DidChangeWatchedFilesNotification || (exports.DidChangeWatchedFilesNotification = {}));\n/**\n * The file event type\n */\nvar FileChangeType;\n(function (FileChangeType) {\n /**\n * The file got created.\n */\n FileChangeType.Created = 1;\n /**\n * The file got changed.\n */\n FileChangeType.Changed = 2;\n /**\n * The file got deleted.\n */\n FileChangeType.Deleted = 3;\n})(FileChangeType = exports.FileChangeType || (exports.FileChangeType = {}));\nvar WatchKind;\n(function (WatchKind) {\n /**\n * Interested in create events.\n */\n WatchKind.Create = 1;\n /**\n * Interested in change events\n */\n WatchKind.Change = 2;\n /**\n * Interested in delete events\n */\n WatchKind.Delete = 4;\n})(WatchKind = exports.WatchKind || (exports.WatchKind = {}));\n/**\n * Diagnostics notification are sent from the server to the client to signal\n * results of validation runs.\n */\nvar PublishDiagnosticsNotification;\n(function (PublishDiagnosticsNotification) {\n PublishDiagnosticsNotification.type = new messages_1.ProtocolNotificationType('textDocument/publishDiagnostics');\n})(PublishDiagnosticsNotification = exports.PublishDiagnosticsNotification || (exports.PublishDiagnosticsNotification = {}));\n/**\n * How a completion was triggered\n */\nvar CompletionTriggerKind;\n(function (CompletionTriggerKind) {\n /**\n * Completion was triggered by typing an identifier (24x7 code\n * complete), manual invocation (e.g Ctrl+Space) or via API.\n */\n CompletionTriggerKind.Invoked = 1;\n /**\n * Completion was triggered by a trigger character specified by\n * the `triggerCharacters` properties of the `CompletionRegistrationOptions`.\n */\n CompletionTriggerKind.TriggerCharacter = 2;\n /**\n * Completion was re-triggered as current completion list is incomplete\n */\n CompletionTriggerKind.TriggerForIncompleteCompletions = 3;\n})(CompletionTriggerKind = exports.CompletionTriggerKind || (exports.CompletionTriggerKind = {}));\n/**\n * Request to request completion at a given text document position. The request's\n * parameter is of type [TextDocumentPosition](#TextDocumentPosition) the response\n * is of type [CompletionItem[]](#CompletionItem) or [CompletionList](#CompletionList)\n * or a Thenable that resolves to such.\n *\n * The request can delay the computation of the [`detail`](#CompletionItem.detail)\n * and [`documentation`](#CompletionItem.documentation) properties to the `completionItem/resolve`\n * request. However, properties that are needed for the initial sorting and filtering, like `sortText`,\n * `filterText`, `insertText`, and `textEdit`, must not be changed during resolve.\n */\nvar CompletionRequest;\n(function (CompletionRequest) {\n CompletionRequest.method = 'textDocument/completion';\n CompletionRequest.type = new messages_1.ProtocolRequestType(CompletionRequest.method);\n})(CompletionRequest = exports.CompletionRequest || (exports.CompletionRequest = {}));\n/**\n * Request to resolve additional information for a given completion item.The request's\n * parameter is of type [CompletionItem](#CompletionItem) the response\n * is of type [CompletionItem](#CompletionItem) or a Thenable that resolves to such.\n */\nvar CompletionResolveRequest;\n(function (CompletionResolveRequest) {\n CompletionResolveRequest.method = 'completionItem/resolve';\n CompletionResolveRequest.type = new messages_1.ProtocolRequestType(CompletionResolveRequest.method);\n})(CompletionResolveRequest = exports.CompletionResolveRequest || (exports.CompletionResolveRequest = {}));\n/**\n * Request to request hover information at a given text document position. The request's\n * parameter is of type [TextDocumentPosition](#TextDocumentPosition) the response is of\n * type [Hover](#Hover) or a Thenable that resolves to such.\n */\nvar HoverRequest;\n(function (HoverRequest) {\n HoverRequest.method = 'textDocument/hover';\n HoverRequest.type = new messages_1.ProtocolRequestType(HoverRequest.method);\n})(HoverRequest = exports.HoverRequest || (exports.HoverRequest = {}));\n/**\n * How a signature help was triggered.\n *\n * @since 3.15.0\n */\nvar SignatureHelpTriggerKind;\n(function (SignatureHelpTriggerKind) {\n /**\n * Signature help was invoked manually by the user or by a command.\n */\n SignatureHelpTriggerKind.Invoked = 1;\n /**\n * Signature help was triggered by a trigger character.\n */\n SignatureHelpTriggerKind.TriggerCharacter = 2;\n /**\n * Signature help was triggered by the cursor moving or by the document content changing.\n */\n SignatureHelpTriggerKind.ContentChange = 3;\n})(SignatureHelpTriggerKind = exports.SignatureHelpTriggerKind || (exports.SignatureHelpTriggerKind = {}));\nvar SignatureHelpRequest;\n(function (SignatureHelpRequest) {\n SignatureHelpRequest.method = 'textDocument/signatureHelp';\n SignatureHelpRequest.type = new messages_1.ProtocolRequestType(SignatureHelpRequest.method);\n})(SignatureHelpRequest = exports.SignatureHelpRequest || (exports.SignatureHelpRequest = {}));\n/**\n * A request to resolve the definition location of a symbol at a given text\n * document position. The request's parameter is of type [TextDocumentPosition]\n * (#TextDocumentPosition) the response is of either type [Definition](#Definition)\n * or a typed array of [DefinitionLink](#DefinitionLink) or a Thenable that resolves\n * to such.\n */\nvar DefinitionRequest;\n(function (DefinitionRequest) {\n DefinitionRequest.method = 'textDocument/definition';\n DefinitionRequest.type = new messages_1.ProtocolRequestType(DefinitionRequest.method);\n})(DefinitionRequest = exports.DefinitionRequest || (exports.DefinitionRequest = {}));\n/**\n * A request to resolve project-wide references for the symbol denoted\n * by the given text document position. The request's parameter is of\n * type [ReferenceParams](#ReferenceParams) the response is of type\n * [Location[]](#Location) or a Thenable that resolves to such.\n */\nvar ReferencesRequest;\n(function (ReferencesRequest) {\n ReferencesRequest.method = 'textDocument/references';\n ReferencesRequest.type = new messages_1.ProtocolRequestType(ReferencesRequest.method);\n})(ReferencesRequest = exports.ReferencesRequest || (exports.ReferencesRequest = {}));\n/**\n * Request to resolve a [DocumentHighlight](#DocumentHighlight) for a given\n * text document position. The request's parameter is of type [TextDocumentPosition]\n * (#TextDocumentPosition) the request response is of type [DocumentHighlight[]]\n * (#DocumentHighlight) or a Thenable that resolves to such.\n */\nvar DocumentHighlightRequest;\n(function (DocumentHighlightRequest) {\n DocumentHighlightRequest.method = 'textDocument/documentHighlight';\n DocumentHighlightRequest.type = new messages_1.ProtocolRequestType(DocumentHighlightRequest.method);\n})(DocumentHighlightRequest = exports.DocumentHighlightRequest || (exports.DocumentHighlightRequest = {}));\n/**\n * A request to list all symbols found in a given text document. The request's\n * parameter is of type [TextDocumentIdentifier](#TextDocumentIdentifier) the\n * response is of type [SymbolInformation[]](#SymbolInformation) or a Thenable\n * that resolves to such.\n */\nvar DocumentSymbolRequest;\n(function (DocumentSymbolRequest) {\n DocumentSymbolRequest.method = 'textDocument/documentSymbol';\n DocumentSymbolRequest.type = new messages_1.ProtocolRequestType(DocumentSymbolRequest.method);\n})(DocumentSymbolRequest = exports.DocumentSymbolRequest || (exports.DocumentSymbolRequest = {}));\n/**\n * A request to provide commands for the given text document and range.\n */\nvar CodeActionRequest;\n(function (CodeActionRequest) {\n CodeActionRequest.method = 'textDocument/codeAction';\n CodeActionRequest.type = new messages_1.ProtocolRequestType(CodeActionRequest.method);\n})(CodeActionRequest = exports.CodeActionRequest || (exports.CodeActionRequest = {}));\n/**\n * Request to resolve additional information for a given code action.The request's\n * parameter is of type [CodeAction](#CodeAction) the response\n * is of type [CodeAction](#CodeAction) or a Thenable that resolves to such.\n */\nvar CodeActionResolveRequest;\n(function (CodeActionResolveRequest) {\n CodeActionResolveRequest.method = 'codeAction/resolve';\n CodeActionResolveRequest.type = new messages_1.ProtocolRequestType(CodeActionResolveRequest.method);\n})(CodeActionResolveRequest = exports.CodeActionResolveRequest || (exports.CodeActionResolveRequest = {}));\n/**\n * A request to list project-wide symbols matching the query string given\n * by the [WorkspaceSymbolParams](#WorkspaceSymbolParams). The response is\n * of type [SymbolInformation[]](#SymbolInformation) or a Thenable that\n * resolves to such.\n */\nvar WorkspaceSymbolRequest;\n(function (WorkspaceSymbolRequest) {\n WorkspaceSymbolRequest.method = 'workspace/symbol';\n WorkspaceSymbolRequest.type = new messages_1.ProtocolRequestType(WorkspaceSymbolRequest.method);\n})(WorkspaceSymbolRequest = exports.WorkspaceSymbolRequest || (exports.WorkspaceSymbolRequest = {}));\n/**\n * A request to provide code lens for the given text document.\n */\nvar CodeLensRequest;\n(function (CodeLensRequest) {\n CodeLensRequest.method = 'textDocument/codeLens';\n CodeLensRequest.type = new messages_1.ProtocolRequestType(CodeLensRequest.method);\n})(CodeLensRequest = exports.CodeLensRequest || (exports.CodeLensRequest = {}));\n/**\n * A request to resolve a command for a given code lens.\n */\nvar CodeLensResolveRequest;\n(function (CodeLensResolveRequest) {\n CodeLensResolveRequest.method = 'codeLens/resolve';\n CodeLensResolveRequest.type = new messages_1.ProtocolRequestType(CodeLensResolveRequest.method);\n})(CodeLensResolveRequest = exports.CodeLensResolveRequest || (exports.CodeLensResolveRequest = {}));\n/**\n * A request to refresh all code actions\n *\n * @since 3.16.0\n */\nvar CodeLensRefreshRequest;\n(function (CodeLensRefreshRequest) {\n CodeLensRefreshRequest.method = `workspace/codeLens/refresh`;\n CodeLensRefreshRequest.type = new messages_1.ProtocolRequestType0(CodeLensRefreshRequest.method);\n})(CodeLensRefreshRequest = exports.CodeLensRefreshRequest || (exports.CodeLensRefreshRequest = {}));\n/**\n * A request to provide document links\n */\nvar DocumentLinkRequest;\n(function (DocumentLinkRequest) {\n DocumentLinkRequest.method = 'textDocument/documentLink';\n DocumentLinkRequest.type = new messages_1.ProtocolRequestType(DocumentLinkRequest.method);\n})(DocumentLinkRequest = exports.DocumentLinkRequest || (exports.DocumentLinkRequest = {}));\n/**\n * Request to resolve additional information for a given document link. The request's\n * parameter is of type [DocumentLink](#DocumentLink) the response\n * is of type [DocumentLink](#DocumentLink) or a Thenable that resolves to such.\n */\nvar DocumentLinkResolveRequest;\n(function (DocumentLinkResolveRequest) {\n DocumentLinkResolveRequest.method = 'documentLink/resolve';\n DocumentLinkResolveRequest.type = new messages_1.ProtocolRequestType(DocumentLinkResolveRequest.method);\n})(DocumentLinkResolveRequest = exports.DocumentLinkResolveRequest || (exports.DocumentLinkResolveRequest = {}));\n/**\n * A request to to format a whole document.\n */\nvar DocumentFormattingRequest;\n(function (DocumentFormattingRequest) {\n DocumentFormattingRequest.method = 'textDocument/formatting';\n DocumentFormattingRequest.type = new messages_1.ProtocolRequestType(DocumentFormattingRequest.method);\n})(DocumentFormattingRequest = exports.DocumentFormattingRequest || (exports.DocumentFormattingRequest = {}));\n/**\n * A request to to format a range in a document.\n */\nvar DocumentRangeFormattingRequest;\n(function (DocumentRangeFormattingRequest) {\n DocumentRangeFormattingRequest.method = 'textDocument/rangeFormatting';\n DocumentRangeFormattingRequest.type = new messages_1.ProtocolRequestType(DocumentRangeFormattingRequest.method);\n})(DocumentRangeFormattingRequest = exports.DocumentRangeFormattingRequest || (exports.DocumentRangeFormattingRequest = {}));\n/**\n * A request to format a document on type.\n */\nvar DocumentOnTypeFormattingRequest;\n(function (DocumentOnTypeFormattingRequest) {\n DocumentOnTypeFormattingRequest.method = 'textDocument/onTypeFormatting';\n DocumentOnTypeFormattingRequest.type = new messages_1.ProtocolRequestType(DocumentOnTypeFormattingRequest.method);\n})(DocumentOnTypeFormattingRequest = exports.DocumentOnTypeFormattingRequest || (exports.DocumentOnTypeFormattingRequest = {}));\n//---- Rename ----------------------------------------------\nvar PrepareSupportDefaultBehavior;\n(function (PrepareSupportDefaultBehavior) {\n /**\n * The client's default behavior is to select the identifier\n * according the to language's syntax rule.\n */\n PrepareSupportDefaultBehavior.Identifier = 1;\n})(PrepareSupportDefaultBehavior = exports.PrepareSupportDefaultBehavior || (exports.PrepareSupportDefaultBehavior = {}));\n/**\n * A request to rename a symbol.\n */\nvar RenameRequest;\n(function (RenameRequest) {\n RenameRequest.method = 'textDocument/rename';\n RenameRequest.type = new messages_1.ProtocolRequestType(RenameRequest.method);\n})(RenameRequest = exports.RenameRequest || (exports.RenameRequest = {}));\n/**\n * A request to test and perform the setup necessary for a rename.\n *\n * @since 3.16 - support for default behavior\n */\nvar PrepareRenameRequest;\n(function (PrepareRenameRequest) {\n PrepareRenameRequest.method = 'textDocument/prepareRename';\n PrepareRenameRequest.type = new messages_1.ProtocolRequestType(PrepareRenameRequest.method);\n})(PrepareRenameRequest = exports.PrepareRenameRequest || (exports.PrepareRenameRequest = {}));\n/**\n * A request send from the client to the server to execute a command. The request might return\n * a workspace edit which the client will apply to the workspace.\n */\nvar ExecuteCommandRequest;\n(function (ExecuteCommandRequest) {\n ExecuteCommandRequest.type = new messages_1.ProtocolRequestType('workspace/executeCommand');\n})(ExecuteCommandRequest = exports.ExecuteCommandRequest || (exports.ExecuteCommandRequest = {}));\n/**\n * A request sent from the server to the client to modified certain resources.\n */\nvar ApplyWorkspaceEditRequest;\n(function (ApplyWorkspaceEditRequest) {\n ApplyWorkspaceEditRequest.type = new messages_1.ProtocolRequestType('workspace/applyEdit');\n})(ApplyWorkspaceEditRequest = exports.ApplyWorkspaceEditRequest || (exports.ApplyWorkspaceEditRequest = {}));\n//# sourceMappingURL=protocol.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createProtocolConnection = void 0;\nconst vscode_jsonrpc_1 = require(\"vscode-jsonrpc\");\nfunction createProtocolConnection(input, output, logger, options) {\n if (vscode_jsonrpc_1.ConnectionStrategy.is(options)) {\n options = { connectionStrategy: options };\n }\n return vscode_jsonrpc_1.createMessageConnection(input, output, logger, options);\n}\nexports.createProtocolConnection = createProtocolConnection;\n//# sourceMappingURL=connection.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LSPErrorCodes = exports.createProtocolConnection = void 0;\n__exportStar(require(\"vscode-jsonrpc\"), exports);\n__exportStar(require(\"vscode-languageserver-types\"), exports);\n__exportStar(require(\"./messages\"), exports);\n__exportStar(require(\"./protocol\"), exports);\nvar connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"createProtocolConnection\", { enumerable: true, get: function () { return connection_1.createProtocolConnection; } });\nvar LSPErrorCodes;\n(function (LSPErrorCodes) {\n /**\n * This is the start range of LSP reserved error codes.\n * It doesn't denote a real error code.\n *\n * @since 3.16.0\n */\n LSPErrorCodes.lspReservedErrorRangeStart = -32899;\n LSPErrorCodes.ContentModified = -32801;\n LSPErrorCodes.RequestCancelled = -32800;\n /**\n * This is the end range of LSP reserved error codes.\n * It doesn't denote a real error code.\n *\n * @since 3.16.0\n */\n LSPErrorCodes.lspReservedErrorRangeEnd = -32800;\n})(LSPErrorCodes = exports.LSPErrorCodes || (exports.LSPErrorCodes = {}));\n//# sourceMappingURL=api.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createProtocolConnection = void 0;\nconst node_1 = require(\"vscode-jsonrpc/node\");\n__exportStar(require(\"vscode-jsonrpc/node\"), exports);\n__exportStar(require(\"../common/api\"), exports);\nfunction createProtocolConnection(input, output, logger, options) {\n return node_1.createMessageConnection(input, output, logger, options);\n}\nexports.createProtocolConnection = createProtocolConnection;\n//# sourceMappingURL=main.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateUuid = exports.parse = exports.isUUID = exports.v4 = exports.empty = void 0;\nclass ValueUUID {\n constructor(_value) {\n this._value = _value;\n // empty\n }\n asHex() {\n return this._value;\n }\n equals(other) {\n return this.asHex() === other.asHex();\n }\n}\nclass V4UUID extends ValueUUID {\n constructor() {\n super([\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n '-',\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n '-',\n '4',\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n '-',\n V4UUID._oneOf(V4UUID._timeHighBits),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n '-',\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n V4UUID._randomHex(),\n ].join(''));\n }\n static _oneOf(array) {\n return array[Math.floor(array.length * Math.random())];\n }\n static _randomHex() {\n return V4UUID._oneOf(V4UUID._chars);\n }\n}\nV4UUID._chars = ['0', '1', '2', '3', '4', '5', '6', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\nV4UUID._timeHighBits = ['8', '9', 'a', 'b'];\n/**\n * An empty UUID that contains only zeros.\n */\nexports.empty = new ValueUUID('00000000-0000-0000-0000-000000000000');\nfunction v4() {\n return new V4UUID();\n}\nexports.v4 = v4;\nconst _UUIDPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\nfunction isUUID(value) {\n return _UUIDPattern.test(value);\n}\nexports.isUUID = isUUID;\n/**\n * Parses a UUID that is of the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.\n * @param value A uuid string.\n */\nfunction parse(value) {\n if (!isUUID(value)) {\n throw new Error('invalid uuid');\n }\n return new ValueUUID(value);\n}\nexports.parse = parse;\nfunction generateUuid() {\n return v4().asHex();\n}\nexports.generateUuid = generateUuid;\n//# sourceMappingURL=uuid.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attachPartialResult = exports.ProgressFeature = exports.attachWorkDone = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst uuid_1 = require(\"./utils/uuid\");\nclass WorkDoneProgressReporterImpl {\n constructor(_connection, _token) {\n this._connection = _connection;\n this._token = _token;\n WorkDoneProgressReporterImpl.Instances.set(this._token, this);\n }\n begin(title, percentage, message, cancellable) {\n let param = {\n kind: 'begin',\n title,\n percentage,\n message,\n cancellable\n };\n this._connection.sendProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, param);\n }\n report(arg0, arg1) {\n let param = {\n kind: 'report'\n };\n if (typeof arg0 === 'number') {\n param.percentage = arg0;\n if (arg1 !== undefined) {\n param.message = arg1;\n }\n }\n else {\n param.message = arg0;\n }\n this._connection.sendProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, param);\n }\n done() {\n WorkDoneProgressReporterImpl.Instances.delete(this._token);\n this._connection.sendProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, { kind: 'end' });\n }\n}\nWorkDoneProgressReporterImpl.Instances = new Map();\nclass WorkDoneProgressServerReporterImpl extends WorkDoneProgressReporterImpl {\n constructor(connection, token) {\n super(connection, token);\n this._source = new vscode_languageserver_protocol_1.CancellationTokenSource();\n }\n get token() {\n return this._source.token;\n }\n done() {\n this._source.dispose();\n super.done();\n }\n cancel() {\n this._source.cancel();\n }\n}\nclass NullProgressReporter {\n constructor() {\n }\n begin() {\n }\n report() {\n }\n done() {\n }\n}\nclass NullProgressServerReporter extends NullProgressReporter {\n constructor() {\n super();\n this._source = new vscode_languageserver_protocol_1.CancellationTokenSource();\n }\n get token() {\n return this._source.token;\n }\n done() {\n this._source.dispose();\n }\n cancel() {\n this._source.cancel();\n }\n}\nfunction attachWorkDone(connection, params) {\n if (params === undefined || params.workDoneToken === undefined) {\n return new NullProgressReporter();\n }\n const token = params.workDoneToken;\n delete params.workDoneToken;\n return new WorkDoneProgressReporterImpl(connection, token);\n}\nexports.attachWorkDone = attachWorkDone;\nconst ProgressFeature = (Base) => {\n return class extends Base {\n constructor() {\n super();\n this._progressSupported = false;\n }\n initialize(capabilities) {\n var _a;\n if (((_a = capabilities === null || capabilities === void 0 ? void 0 : capabilities.window) === null || _a === void 0 ? void 0 : _a.workDoneProgress) === true) {\n this._progressSupported = true;\n this.connection.onNotification(vscode_languageserver_protocol_1.WorkDoneProgressCancelNotification.type, (params) => {\n let progress = WorkDoneProgressReporterImpl.Instances.get(params.token);\n if (progress instanceof WorkDoneProgressServerReporterImpl || progress instanceof NullProgressServerReporter) {\n progress.cancel();\n }\n });\n }\n }\n attachWorkDoneProgress(token) {\n if (token === undefined) {\n return new NullProgressReporter();\n }\n else {\n return new WorkDoneProgressReporterImpl(this.connection, token);\n }\n }\n createWorkDoneProgress() {\n if (this._progressSupported) {\n const token = uuid_1.generateUuid();\n return this.connection.sendRequest(vscode_languageserver_protocol_1.WorkDoneProgressCreateRequest.type, { token }).then(() => {\n const result = new WorkDoneProgressServerReporterImpl(this.connection, token);\n return result;\n });\n }\n else {\n return Promise.resolve(new NullProgressServerReporter());\n }\n }\n };\n};\nexports.ProgressFeature = ProgressFeature;\nvar ResultProgress;\n(function (ResultProgress) {\n ResultProgress.type = new vscode_languageserver_protocol_1.ProgressType();\n})(ResultProgress || (ResultProgress = {}));\nclass ResultProgressReporterImpl {\n constructor(_connection, _token) {\n this._connection = _connection;\n this._token = _token;\n }\n report(data) {\n this._connection.sendProgress(ResultProgress.type, this._token, data);\n }\n}\nfunction attachPartialResult(connection, params) {\n if (params === undefined || params.partialResultToken === undefined) {\n return undefined;\n }\n const token = params.partialResultToken;\n delete params.partialResultToken;\n return new ResultProgressReporterImpl(connection, token);\n}\nexports.attachPartialResult = attachPartialResult;\n//# sourceMappingURL=progress.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigurationFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst Is = require(\"./utils/is\");\nconst ConfigurationFeature = (Base) => {\n return class extends Base {\n getConfiguration(arg) {\n if (!arg) {\n return this._getConfiguration({});\n }\n else if (Is.string(arg)) {\n return this._getConfiguration({ section: arg });\n }\n else {\n return this._getConfiguration(arg);\n }\n }\n _getConfiguration(arg) {\n let params = {\n items: Array.isArray(arg) ? arg : [arg]\n };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ConfigurationRequest.type, params).then((result) => {\n return Array.isArray(arg) ? result : result[0];\n });\n }\n };\n};\nexports.ConfigurationFeature = ConfigurationFeature;\n//# sourceMappingURL=configuration.js.map","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkspaceFoldersFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst WorkspaceFoldersFeature = (Base) => {\n return class extends Base {\n initialize(capabilities) {\n let workspaceCapabilities = capabilities.workspace;\n if (workspaceCapabilities && workspaceCapabilities.workspaceFolders) {\n this._onDidChangeWorkspaceFolders = new vscode_languageserver_protocol_1.Emitter();\n this.connection.onNotification(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type, (params) => {\n this._onDidChangeWorkspaceFolders.fire(params.event);\n });\n }\n }\n getWorkspaceFolders() {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.WorkspaceFoldersRequest.type);\n }\n get onDidChangeWorkspaceFolders() {\n if (!this._onDidChangeWorkspaceFolders) {\n throw new Error('Client doesn\\'t support sending workspace folder change events.');\n }\n if (!this._unregistration) {\n this._unregistration = this.connection.client.register(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type);\n }\n return this._onDidChangeWorkspaceFolders.event;\n }\n };\n};\nexports.WorkspaceFoldersFeature = WorkspaceFoldersFeature;\n//# sourceMappingURL=workspaceFolders.js.map","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallHierarchyFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst CallHierarchyFeature = (Base) => {\n return class extends Base {\n get callHierarchy() {\n return {\n onPrepare: (handler) => {\n this.connection.onRequest(vscode_languageserver_protocol_1.CallHierarchyPrepareRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), undefined);\n });\n },\n onIncomingCalls: (handler) => {\n const type = vscode_languageserver_protocol_1.CallHierarchyIncomingCallsRequest.type;\n this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n onOutgoingCalls: (handler) => {\n const type = vscode_languageserver_protocol_1.CallHierarchyOutgoingCallsRequest.type;\n this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n }\n };\n }\n };\n};\nexports.CallHierarchyFeature = CallHierarchyFeature;\n//# sourceMappingURL=callHierarchy.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticTokensBuilder = exports.SemanticTokensFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst SemanticTokensFeature = (Base) => {\n return class extends Base {\n get semanticTokens() {\n return {\n on: (handler) => {\n const type = vscode_languageserver_protocol_1.SemanticTokensRequest.type;\n this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n onDelta: (handler) => {\n const type = vscode_languageserver_protocol_1.SemanticTokensDeltaRequest.type;\n this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n onRange: (handler) => {\n const type = vscode_languageserver_protocol_1.SemanticTokensRangeRequest.type;\n this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n }\n };\n }\n };\n};\nexports.SemanticTokensFeature = SemanticTokensFeature;\nclass SemanticTokensBuilder {\n constructor() {\n this._prevData = undefined;\n this.initialize();\n }\n initialize() {\n this._id = Date.now();\n this._prevLine = 0;\n this._prevChar = 0;\n this._data = [];\n this._dataLen = 0;\n }\n push(line, char, length, tokenType, tokenModifiers) {\n let pushLine = line;\n let pushChar = char;\n if (this._dataLen > 0) {\n pushLine -= this._prevLine;\n if (pushLine === 0) {\n pushChar -= this._prevChar;\n }\n }\n this._data[this._dataLen++] = pushLine;\n this._data[this._dataLen++] = pushChar;\n this._data[this._dataLen++] = length;\n this._data[this._dataLen++] = tokenType;\n this._data[this._dataLen++] = tokenModifiers;\n this._prevLine = line;\n this._prevChar = char;\n }\n get id() {\n return this._id.toString();\n }\n previousResult(id) {\n if (this.id === id) {\n this._prevData = this._data;\n }\n this.initialize();\n }\n build() {\n this._prevData = undefined;\n return {\n resultId: this.id,\n data: this._data\n };\n }\n canBuildEdits() {\n return this._prevData !== undefined;\n }\n buildEdits() {\n if (this._prevData !== undefined) {\n const prevDataLength = this._prevData.length;\n const dataLength = this._data.length;\n let startIndex = 0;\n while (startIndex < dataLength && startIndex < prevDataLength && this._prevData[startIndex] === this._data[startIndex]) {\n startIndex++;\n }\n if (startIndex < dataLength && startIndex < prevDataLength) {\n // Find end index\n let endIndex = 0;\n while (endIndex < dataLength && endIndex < prevDataLength && this._prevData[prevDataLength - 1 - endIndex] === this._data[dataLength - 1 - endIndex]) {\n endIndex++;\n }\n const newData = this._data.slice(startIndex, dataLength - endIndex);\n const result = {\n resultId: this.id,\n edits: [\n { start: startIndex, deleteCount: prevDataLength - endIndex - startIndex, data: newData }\n ]\n };\n return result;\n }\n else if (startIndex < dataLength) {\n return { resultId: this.id, edits: [\n { start: startIndex, deleteCount: 0, data: this._data.slice(startIndex) }\n ] };\n }\n else if (startIndex < prevDataLength) {\n return { resultId: this.id, edits: [\n { start: startIndex, deleteCount: prevDataLength - startIndex }\n ] };\n }\n else {\n return { resultId: this.id, edits: [] };\n }\n }\n else {\n return this.build();\n }\n }\n}\nexports.SemanticTokensBuilder = SemanticTokensBuilder;\n//# sourceMappingURL=semanticTokens.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShowDocumentFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst ShowDocumentFeature = (Base) => {\n return class extends Base {\n showDocument(params) {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowDocumentRequest.type, params);\n }\n };\n};\nexports.ShowDocumentFeature = ShowDocumentFeature;\n//# sourceMappingURL=showDocument.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileOperationsFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst FileOperationsFeature = (Base) => {\n return class extends Base {\n onDidCreateFiles(handler) {\n this.connection.onNotification(vscode_languageserver_protocol_1.DidCreateFilesNotification.type, (params) => {\n handler(params);\n });\n }\n onDidRenameFiles(handler) {\n this.connection.onNotification(vscode_languageserver_protocol_1.DidRenameFilesNotification.type, (params) => {\n handler(params);\n });\n }\n onDidDeleteFiles(handler) {\n this.connection.onNotification(vscode_languageserver_protocol_1.DidDeleteFilesNotification.type, (params) => {\n handler(params);\n });\n }\n onWillCreateFiles(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WillCreateFilesRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n onWillRenameFiles(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WillRenameFilesRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n onWillDeleteFiles(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WillDeleteFilesRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n };\n};\nexports.FileOperationsFeature = FileOperationsFeature;\n//# sourceMappingURL=fileOperations.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkedEditingRangeFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst LinkedEditingRangeFeature = (Base) => {\n return class extends Base {\n onLinkedEditingRange(handler) {\n this.connection.onRequest(vscode_languageserver_protocol_1.LinkedEditingRangeRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), undefined);\n });\n }\n };\n};\nexports.LinkedEditingRangeFeature = LinkedEditingRangeFeature;\n//# sourceMappingURL=linkedEditingRange.js.map","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MonikerFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst MonikerFeature = (Base) => {\n return class extends Base {\n get moniker() {\n return {\n on: (handler) => {\n const type = vscode_languageserver_protocol_1.MonikerRequest.type;\n this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n };\n }\n };\n};\nexports.MonikerFeature = MonikerFeature;\n//# sourceMappingURL=moniker.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConnection = exports.combineFeatures = exports.combineLanguagesFeatures = exports.combineWorkspaceFeatures = exports.combineWindowFeatures = exports.combineClientFeatures = exports.combineTracerFeatures = exports.combineTelemetryFeatures = exports.combineConsoleFeatures = exports._LanguagesImpl = exports.BulkUnregistration = exports.BulkRegistration = exports.ErrorMessageTracker = exports.TextDocuments = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst Is = require(\"./utils/is\");\nconst UUID = require(\"./utils/uuid\");\nconst progress_1 = require(\"./progress\");\nconst configuration_1 = require(\"./configuration\");\nconst workspaceFolders_1 = require(\"./workspaceFolders\");\nconst callHierarchy_1 = require(\"./callHierarchy\");\nconst semanticTokens_1 = require(\"./semanticTokens\");\nconst showDocument_1 = require(\"./showDocument\");\nconst fileOperations_1 = require(\"./fileOperations\");\nconst linkedEditingRange_1 = require(\"./linkedEditingRange\");\nconst moniker_1 = require(\"./moniker\");\nfunction null2Undefined(value) {\n if (value === null) {\n return undefined;\n }\n return value;\n}\n/**\n * A manager for simple text documents\n */\nclass TextDocuments {\n /**\n * Create a new text document manager.\n */\n constructor(configuration) {\n this._documents = Object.create(null);\n this._configuration = configuration;\n this._onDidChangeContent = new vscode_languageserver_protocol_1.Emitter();\n this._onDidOpen = new vscode_languageserver_protocol_1.Emitter();\n this._onDidClose = new vscode_languageserver_protocol_1.Emitter();\n this._onDidSave = new vscode_languageserver_protocol_1.Emitter();\n this._onWillSave = new vscode_languageserver_protocol_1.Emitter();\n }\n /**\n * An event that fires when a text document managed by this manager\n * has been opened or the content changes.\n */\n get onDidChangeContent() {\n return this._onDidChangeContent.event;\n }\n /**\n * An event that fires when a text document managed by this manager\n * has been opened.\n */\n get onDidOpen() {\n return this._onDidOpen.event;\n }\n /**\n * An event that fires when a text document managed by this manager\n * will be saved.\n */\n get onWillSave() {\n return this._onWillSave.event;\n }\n /**\n * Sets a handler that will be called if a participant wants to provide\n * edits during a text document save.\n */\n onWillSaveWaitUntil(handler) {\n this._willSaveWaitUntil = handler;\n }\n /**\n * An event that fires when a text document managed by this manager\n * has been saved.\n */\n get onDidSave() {\n return this._onDidSave.event;\n }\n /**\n * An event that fires when a text document managed by this manager\n * has been closed.\n */\n get onDidClose() {\n return this._onDidClose.event;\n }\n /**\n * Returns the document for the given URI. Returns undefined if\n * the document is not managed by this instance.\n *\n * @param uri The text document's URI to retrieve.\n * @return the text document or `undefined`.\n */\n get(uri) {\n return this._documents[uri];\n }\n /**\n * Returns all text documents managed by this instance.\n *\n * @return all text documents.\n */\n all() {\n return Object.keys(this._documents).map(key => this._documents[key]);\n }\n /**\n * Returns the URIs of all text documents managed by this instance.\n *\n * @return the URI's of all text documents.\n */\n keys() {\n return Object.keys(this._documents);\n }\n /**\n * Listens for `low level` notification on the given connection to\n * update the text documents managed by this instance.\n *\n * Please note that the connection only provides handlers not an event model. Therefore\n * listening on a connection will overwrite the following handlers on a connection:\n * `onDidOpenTextDocument`, `onDidChangeTextDocument`, `onDidCloseTextDocument`,\n * `onWillSaveTextDocument`, `onWillSaveTextDocumentWaitUntil` and `onDidSaveTextDocument`.\n *\n * Use the corresponding events on the TextDocuments instance instead.\n *\n * @param connection The connection to listen on.\n */\n listen(connection) {\n connection.__textDocumentSync = vscode_languageserver_protocol_1.TextDocumentSyncKind.Full;\n connection.onDidOpenTextDocument((event) => {\n let td = event.textDocument;\n let document = this._configuration.create(td.uri, td.languageId, td.version, td.text);\n this._documents[td.uri] = document;\n let toFire = Object.freeze({ document });\n this._onDidOpen.fire(toFire);\n this._onDidChangeContent.fire(toFire);\n });\n connection.onDidChangeTextDocument((event) => {\n let td = event.textDocument;\n let changes = event.contentChanges;\n if (changes.length === 0) {\n return;\n }\n let document = this._documents[td.uri];\n const { version } = td;\n if (version === null || version === undefined) {\n throw new Error(`Received document change event for ${td.uri} without valid version identifier`);\n }\n document = this._configuration.update(document, changes, version);\n this._documents[td.uri] = document;\n this._onDidChangeContent.fire(Object.freeze({ document }));\n });\n connection.onDidCloseTextDocument((event) => {\n let document = this._documents[event.textDocument.uri];\n if (document) {\n delete this._documents[event.textDocument.uri];\n this._onDidClose.fire(Object.freeze({ document }));\n }\n });\n connection.onWillSaveTextDocument((event) => {\n let document = this._documents[event.textDocument.uri];\n if (document) {\n this._onWillSave.fire(Object.freeze({ document, reason: event.reason }));\n }\n });\n connection.onWillSaveTextDocumentWaitUntil((event, token) => {\n let document = this._documents[event.textDocument.uri];\n if (document && this._willSaveWaitUntil) {\n return this._willSaveWaitUntil(Object.freeze({ document, reason: event.reason }), token);\n }\n else {\n return [];\n }\n });\n connection.onDidSaveTextDocument((event) => {\n let document = this._documents[event.textDocument.uri];\n if (document) {\n this._onDidSave.fire(Object.freeze({ document }));\n }\n });\n }\n}\nexports.TextDocuments = TextDocuments;\n/**\n * Helps tracking error message. Equal occurrences of the same\n * message are only stored once. This class is for example\n * useful if text documents are validated in a loop and equal\n * error message should be folded into one.\n */\nclass ErrorMessageTracker {\n constructor() {\n this._messages = Object.create(null);\n }\n /**\n * Add a message to the tracker.\n *\n * @param message The message to add.\n */\n add(message) {\n let count = this._messages[message];\n if (!count) {\n count = 0;\n }\n count++;\n this._messages[message] = count;\n }\n /**\n * Send all tracked messages to the connection's window.\n *\n * @param connection The connection established between client and server.\n */\n sendErrors(connection) {\n Object.keys(this._messages).forEach(message => {\n connection.window.showErrorMessage(message);\n });\n }\n}\nexports.ErrorMessageTracker = ErrorMessageTracker;\nclass RemoteConsoleImpl {\n constructor() {\n }\n rawAttach(connection) {\n this._rawConnection = connection;\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n fillServerCapabilities(_capabilities) {\n }\n initialize(_capabilities) {\n }\n error(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Error, message);\n }\n warn(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Warning, message);\n }\n info(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Info, message);\n }\n log(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Log, message);\n }\n send(type, message) {\n if (this._rawConnection) {\n this._rawConnection.sendNotification(vscode_languageserver_protocol_1.LogMessageNotification.type, { type, message });\n }\n }\n}\nclass _RemoteWindowImpl {\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n showErrorMessage(message, ...actions) {\n let params = { type: vscode_languageserver_protocol_1.MessageType.Error, message, actions };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, params).then(null2Undefined);\n }\n showWarningMessage(message, ...actions) {\n let params = { type: vscode_languageserver_protocol_1.MessageType.Warning, message, actions };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, params).then(null2Undefined);\n }\n showInformationMessage(message, ...actions) {\n let params = { type: vscode_languageserver_protocol_1.MessageType.Info, message, actions };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, params).then(null2Undefined);\n }\n}\nconst RemoteWindowImpl = showDocument_1.ShowDocumentFeature(progress_1.ProgressFeature(_RemoteWindowImpl));\nvar BulkRegistration;\n(function (BulkRegistration) {\n /**\n * Creates a new bulk registration.\n * @return an empty bulk registration.\n */\n function create() {\n return new BulkRegistrationImpl();\n }\n BulkRegistration.create = create;\n})(BulkRegistration = exports.BulkRegistration || (exports.BulkRegistration = {}));\nclass BulkRegistrationImpl {\n constructor() {\n this._registrations = [];\n this._registered = new Set();\n }\n add(type, registerOptions) {\n const method = Is.string(type) ? type : type.method;\n if (this._registered.has(method)) {\n throw new Error(`${method} is already added to this registration`);\n }\n const id = UUID.generateUuid();\n this._registrations.push({\n id: id,\n method: method,\n registerOptions: registerOptions || {}\n });\n this._registered.add(method);\n }\n asRegistrationParams() {\n return {\n registrations: this._registrations\n };\n }\n}\nvar BulkUnregistration;\n(function (BulkUnregistration) {\n function create() {\n return new BulkUnregistrationImpl(undefined, []);\n }\n BulkUnregistration.create = create;\n})(BulkUnregistration = exports.BulkUnregistration || (exports.BulkUnregistration = {}));\nclass BulkUnregistrationImpl {\n constructor(_connection, unregistrations) {\n this._connection = _connection;\n this._unregistrations = new Map();\n unregistrations.forEach(unregistration => {\n this._unregistrations.set(unregistration.method, unregistration);\n });\n }\n get isAttached() {\n return !!this._connection;\n }\n attach(connection) {\n this._connection = connection;\n }\n add(unregistration) {\n this._unregistrations.set(unregistration.method, unregistration);\n }\n dispose() {\n let unregistrations = [];\n for (let unregistration of this._unregistrations.values()) {\n unregistrations.push(unregistration);\n }\n let params = {\n unregisterations: unregistrations\n };\n this._connection.sendRequest(vscode_languageserver_protocol_1.UnregistrationRequest.type, params).then(undefined, (_error) => {\n this._connection.console.info(`Bulk unregistration failed.`);\n });\n }\n disposeSingle(arg) {\n const method = Is.string(arg) ? arg : arg.method;\n const unregistration = this._unregistrations.get(method);\n if (!unregistration) {\n return false;\n }\n let params = {\n unregisterations: [unregistration]\n };\n this._connection.sendRequest(vscode_languageserver_protocol_1.UnregistrationRequest.type, params).then(() => {\n this._unregistrations.delete(method);\n }, (_error) => {\n this._connection.console.info(`Un-registering request handler for ${unregistration.id} failed.`);\n });\n return true;\n }\n}\nclass RemoteClientImpl {\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n register(typeOrRegistrations, registerOptionsOrType, registerOptions) {\n if (typeOrRegistrations instanceof BulkRegistrationImpl) {\n return this.registerMany(typeOrRegistrations);\n }\n else if (typeOrRegistrations instanceof BulkUnregistrationImpl) {\n return this.registerSingle1(typeOrRegistrations, registerOptionsOrType, registerOptions);\n }\n else {\n return this.registerSingle2(typeOrRegistrations, registerOptionsOrType);\n }\n }\n registerSingle1(unregistration, type, registerOptions) {\n const method = Is.string(type) ? type : type.method;\n const id = UUID.generateUuid();\n let params = {\n registrations: [{ id, method, registerOptions: registerOptions || {} }]\n };\n if (!unregistration.isAttached) {\n unregistration.attach(this.connection);\n }\n return this.connection.sendRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params).then((_result) => {\n unregistration.add({ id: id, method: method });\n return unregistration;\n }, (_error) => {\n this.connection.console.info(`Registering request handler for ${method} failed.`);\n return Promise.reject(_error);\n });\n }\n registerSingle2(type, registerOptions) {\n const method = Is.string(type) ? type : type.method;\n const id = UUID.generateUuid();\n let params = {\n registrations: [{ id, method, registerOptions: registerOptions || {} }]\n };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params).then((_result) => {\n return vscode_languageserver_protocol_1.Disposable.create(() => {\n this.unregisterSingle(id, method);\n });\n }, (_error) => {\n this.connection.console.info(`Registering request handler for ${method} failed.`);\n return Promise.reject(_error);\n });\n }\n unregisterSingle(id, method) {\n let params = {\n unregisterations: [{ id, method }]\n };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.UnregistrationRequest.type, params).then(undefined, (_error) => {\n this.connection.console.info(`Un-registering request handler for ${id} failed.`);\n });\n }\n registerMany(registrations) {\n let params = registrations.asRegistrationParams();\n return this.connection.sendRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params).then(() => {\n return new BulkUnregistrationImpl(this._connection, params.registrations.map(registration => { return { id: registration.id, method: registration.method }; }));\n }, (_error) => {\n this.connection.console.info(`Bulk registration failed.`);\n return Promise.reject(_error);\n });\n }\n}\nclass _RemoteWorkspaceImpl {\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n applyEdit(paramOrEdit) {\n function isApplyWorkspaceEditParams(value) {\n return value && !!value.edit;\n }\n let params = isApplyWorkspaceEditParams(paramOrEdit) ? paramOrEdit : { edit: paramOrEdit };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ApplyWorkspaceEditRequest.type, params);\n }\n}\nconst RemoteWorkspaceImpl = fileOperations_1.FileOperationsFeature(workspaceFolders_1.WorkspaceFoldersFeature(configuration_1.ConfigurationFeature(_RemoteWorkspaceImpl)));\nclass TracerImpl {\n constructor() {\n this._trace = vscode_languageserver_protocol_1.Trace.Off;\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n set trace(value) {\n this._trace = value;\n }\n log(message, verbose) {\n if (this._trace === vscode_languageserver_protocol_1.Trace.Off) {\n return;\n }\n this.connection.sendNotification(vscode_languageserver_protocol_1.LogTraceNotification.type, {\n message: message,\n verbose: this._trace === vscode_languageserver_protocol_1.Trace.Verbose ? verbose : undefined\n });\n }\n}\nclass TelemetryImpl {\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n logEvent(data) {\n this.connection.sendNotification(vscode_languageserver_protocol_1.TelemetryEventNotification.type, data);\n }\n}\nclass _LanguagesImpl {\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n attachWorkDoneProgress(params) {\n return progress_1.attachWorkDone(this.connection, params);\n }\n attachPartialResultProgress(_type, params) {\n return progress_1.attachPartialResult(this.connection, params);\n }\n}\nexports._LanguagesImpl = _LanguagesImpl;\nconst LanguagesImpl = moniker_1.MonikerFeature(linkedEditingRange_1.LinkedEditingRangeFeature(semanticTokens_1.SemanticTokensFeature(callHierarchy_1.CallHierarchyFeature(_LanguagesImpl))));\nfunction combineConsoleFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineConsoleFeatures = combineConsoleFeatures;\nfunction combineTelemetryFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineTelemetryFeatures = combineTelemetryFeatures;\nfunction combineTracerFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineTracerFeatures = combineTracerFeatures;\nfunction combineClientFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineClientFeatures = combineClientFeatures;\nfunction combineWindowFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineWindowFeatures = combineWindowFeatures;\nfunction combineWorkspaceFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineWorkspaceFeatures = combineWorkspaceFeatures;\nfunction combineLanguagesFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineLanguagesFeatures = combineLanguagesFeatures;\nfunction combineFeatures(one, two) {\n function combine(one, two, func) {\n if (one && two) {\n return func(one, two);\n }\n else if (one) {\n return one;\n }\n else {\n return two;\n }\n }\n let result = {\n __brand: 'features',\n console: combine(one.console, two.console, combineConsoleFeatures),\n tracer: combine(one.tracer, two.tracer, combineTracerFeatures),\n telemetry: combine(one.telemetry, two.telemetry, combineTelemetryFeatures),\n client: combine(one.client, two.client, combineClientFeatures),\n window: combine(one.window, two.window, combineWindowFeatures),\n workspace: combine(one.workspace, two.workspace, combineWorkspaceFeatures)\n };\n return result;\n}\nexports.combineFeatures = combineFeatures;\nfunction createConnection(connectionFactory, watchDog, factories) {\n const logger = (factories && factories.console ? new (factories.console(RemoteConsoleImpl))() : new RemoteConsoleImpl());\n const connection = connectionFactory(logger);\n logger.rawAttach(connection);\n const tracer = (factories && factories.tracer ? new (factories.tracer(TracerImpl))() : new TracerImpl());\n const telemetry = (factories && factories.telemetry ? new (factories.telemetry(TelemetryImpl))() : new TelemetryImpl());\n const client = (factories && factories.client ? new (factories.client(RemoteClientImpl))() : new RemoteClientImpl());\n const remoteWindow = (factories && factories.window ? new (factories.window(RemoteWindowImpl))() : new RemoteWindowImpl());\n const workspace = (factories && factories.workspace ? new (factories.workspace(RemoteWorkspaceImpl))() : new RemoteWorkspaceImpl());\n const languages = (factories && factories.languages ? new (factories.languages(LanguagesImpl))() : new LanguagesImpl());\n const allRemotes = [logger, tracer, telemetry, client, remoteWindow, workspace, languages];\n function asPromise(value) {\n if (value instanceof Promise) {\n return value;\n }\n else if (Is.thenable(value)) {\n return new Promise((resolve, reject) => {\n value.then((resolved) => resolve(resolved), (error) => reject(error));\n });\n }\n else {\n return Promise.resolve(value);\n }\n }\n let shutdownHandler = undefined;\n let initializeHandler = undefined;\n let exitHandler = undefined;\n let protocolConnection = {\n listen: () => connection.listen(),\n sendRequest: (type, ...params) => connection.sendRequest(Is.string(type) ? type : type.method, ...params),\n onRequest: (type, handler) => connection.onRequest(type, handler),\n sendNotification: (type, param) => {\n const method = Is.string(type) ? type : type.method;\n if (arguments.length === 1) {\n connection.sendNotification(method);\n }\n else {\n connection.sendNotification(method, param);\n }\n },\n onNotification: (type, handler) => connection.onNotification(type, handler),\n onProgress: connection.onProgress,\n sendProgress: connection.sendProgress,\n onInitialize: (handler) => initializeHandler = handler,\n onInitialized: (handler) => connection.onNotification(vscode_languageserver_protocol_1.InitializedNotification.type, handler),\n onShutdown: (handler) => shutdownHandler = handler,\n onExit: (handler) => exitHandler = handler,\n get console() { return logger; },\n get telemetry() { return telemetry; },\n get tracer() { return tracer; },\n get client() { return client; },\n get window() { return remoteWindow; },\n get workspace() { return workspace; },\n get languages() { return languages; },\n onDidChangeConfiguration: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidChangeConfigurationNotification.type, handler),\n onDidChangeWatchedFiles: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidChangeWatchedFilesNotification.type, handler),\n __textDocumentSync: undefined,\n onDidOpenTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidOpenTextDocumentNotification.type, handler),\n onDidChangeTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.type, handler),\n onDidCloseTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidCloseTextDocumentNotification.type, handler),\n onWillSaveTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.WillSaveTextDocumentNotification.type, handler),\n onWillSaveTextDocumentWaitUntil: (handler) => connection.onRequest(vscode_languageserver_protocol_1.WillSaveTextDocumentWaitUntilRequest.type, handler),\n onDidSaveTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidSaveTextDocumentNotification.type, handler),\n sendDiagnostics: (params) => connection.sendNotification(vscode_languageserver_protocol_1.PublishDiagnosticsNotification.type, params),\n onHover: (handler) => connection.onRequest(vscode_languageserver_protocol_1.HoverRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), undefined);\n }),\n onCompletion: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CompletionRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onCompletionResolve: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CompletionResolveRequest.type, handler),\n onSignatureHelp: (handler) => connection.onRequest(vscode_languageserver_protocol_1.SignatureHelpRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), undefined);\n }),\n onDeclaration: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DeclarationRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onDefinition: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DefinitionRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onTypeDefinition: (handler) => connection.onRequest(vscode_languageserver_protocol_1.TypeDefinitionRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onImplementation: (handler) => connection.onRequest(vscode_languageserver_protocol_1.ImplementationRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onReferences: (handler) => connection.onRequest(vscode_languageserver_protocol_1.ReferencesRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onDocumentHighlight: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentHighlightRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onDocumentSymbol: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentSymbolRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onWorkspaceSymbol: (handler) => connection.onRequest(vscode_languageserver_protocol_1.WorkspaceSymbolRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onCodeAction: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CodeActionRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onCodeActionResolve: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CodeActionResolveRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onCodeLens: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CodeLensRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onCodeLensResolve: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CodeLensResolveRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onDocumentFormatting: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentFormattingRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), undefined);\n }),\n onDocumentRangeFormatting: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentRangeFormattingRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), undefined);\n }),\n onDocumentOnTypeFormatting: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentOnTypeFormattingRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onRenameRequest: (handler) => connection.onRequest(vscode_languageserver_protocol_1.RenameRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), undefined);\n }),\n onPrepareRename: (handler) => connection.onRequest(vscode_languageserver_protocol_1.PrepareRenameRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onDocumentLinks: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentLinkRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onDocumentLinkResolve: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentLinkResolveRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onDocumentColor: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentColorRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onColorPresentation: (handler) => connection.onRequest(vscode_languageserver_protocol_1.ColorPresentationRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onFoldingRanges: (handler) => connection.onRequest(vscode_languageserver_protocol_1.FoldingRangeRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onSelectionRanges: (handler) => connection.onRequest(vscode_languageserver_protocol_1.SelectionRangeRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), progress_1.attachPartialResult(connection, params));\n }),\n onExecuteCommand: (handler) => connection.onRequest(vscode_languageserver_protocol_1.ExecuteCommandRequest.type, (params, cancel) => {\n return handler(params, cancel, progress_1.attachWorkDone(connection, params), undefined);\n }),\n dispose: () => connection.dispose()\n };\n for (let remote of allRemotes) {\n remote.attach(protocolConnection);\n }\n connection.onRequest(vscode_languageserver_protocol_1.InitializeRequest.type, (params) => {\n watchDog.initialize(params);\n if (Is.string(params.trace)) {\n tracer.trace = vscode_languageserver_protocol_1.Trace.fromString(params.trace);\n }\n for (let remote of allRemotes) {\n remote.initialize(params.capabilities);\n }\n if (initializeHandler) {\n let result = initializeHandler(params, new vscode_languageserver_protocol_1.CancellationTokenSource().token, progress_1.attachWorkDone(connection, params), undefined);\n return asPromise(result).then((value) => {\n if (value instanceof vscode_languageserver_protocol_1.ResponseError) {\n return value;\n }\n let result = value;\n if (!result) {\n result = { capabilities: {} };\n }\n let capabilities = result.capabilities;\n if (!capabilities) {\n capabilities = {};\n result.capabilities = capabilities;\n }\n if (capabilities.textDocumentSync === undefined || capabilities.textDocumentSync === null) {\n capabilities.textDocumentSync = Is.number(protocolConnection.__textDocumentSync) ? protocolConnection.__textDocumentSync : vscode_languageserver_protocol_1.TextDocumentSyncKind.None;\n }\n else if (!Is.number(capabilities.textDocumentSync) && !Is.number(capabilities.textDocumentSync.change)) {\n capabilities.textDocumentSync.change = Is.number(protocolConnection.__textDocumentSync) ? protocolConnection.__textDocumentSync : vscode_languageserver_protocol_1.TextDocumentSyncKind.None;\n }\n for (let remote of allRemotes) {\n remote.fillServerCapabilities(capabilities);\n }\n return result;\n });\n }\n else {\n let result = { capabilities: { textDocumentSync: vscode_languageserver_protocol_1.TextDocumentSyncKind.None } };\n for (let remote of allRemotes) {\n remote.fillServerCapabilities(result.capabilities);\n }\n return result;\n }\n });\n connection.onRequest(vscode_languageserver_protocol_1.ShutdownRequest.type, () => {\n watchDog.shutdownReceived = true;\n if (shutdownHandler) {\n return shutdownHandler(new vscode_languageserver_protocol_1.CancellationTokenSource().token);\n }\n else {\n return undefined;\n }\n });\n connection.onNotification(vscode_languageserver_protocol_1.ExitNotification.type, () => {\n try {\n if (exitHandler) {\n exitHandler();\n }\n }\n finally {\n if (watchDog.shutdownReceived) {\n watchDog.exit(0);\n }\n else {\n watchDog.exit(1);\n }\n }\n });\n connection.onNotification(vscode_languageserver_protocol_1.SetTraceNotification.type, (params) => {\n tracer.trace = vscode_languageserver_protocol_1.Trace.fromString(params.value);\n });\n return protocolConnection;\n}\nexports.createConnection = createConnection;\n//# sourceMappingURL=server.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveModulePath = exports.FileSystem = exports.resolveGlobalYarnPath = exports.resolveGlobalNodePath = exports.resolve = exports.uriToFilePath = void 0;\nconst url = require(\"url\");\nconst path = require(\"path\");\nconst fs = require(\"fs\");\nconst child_process_1 = require(\"child_process\");\n/**\n * @deprecated Use the `vscode-uri` npm module which provides a more\n * complete implementation of handling VS Code URIs.\n */\nfunction uriToFilePath(uri) {\n let parsed = url.parse(uri);\n if (parsed.protocol !== 'file:' || !parsed.path) {\n return undefined;\n }\n let segments = parsed.path.split('/');\n for (var i = 0, len = segments.length; i < len; i++) {\n segments[i] = decodeURIComponent(segments[i]);\n }\n if (process.platform === 'win32' && segments.length > 1) {\n let first = segments[0];\n let second = segments[1];\n // Do we have a drive letter and we started with a / which is the\n // case if the first segement is empty (see split above)\n if (first.length === 0 && second.length > 1 && second[1] === ':') {\n // Remove first slash\n segments.shift();\n }\n }\n return path.normalize(segments.join('/'));\n}\nexports.uriToFilePath = uriToFilePath;\nfunction isWindows() {\n return process.platform === 'win32';\n}\nfunction resolve(moduleName, nodePath, cwd, tracer) {\n const nodePathKey = 'NODE_PATH';\n const app = [\n 'var p = process;',\n 'p.on(\\'message\\',function(m){',\n 'if(m.c===\\'e\\'){',\n 'p.exit(0);',\n '}',\n 'else if(m.c===\\'rs\\'){',\n 'try{',\n 'var r=require.resolve(m.a);',\n 'p.send({c:\\'r\\',s:true,r:r});',\n '}',\n 'catch(err){',\n 'p.send({c:\\'r\\',s:false});',\n '}',\n '}',\n '});'\n ].join('');\n return new Promise((resolve, reject) => {\n let env = process.env;\n let newEnv = Object.create(null);\n Object.keys(env).forEach(key => newEnv[key] = env[key]);\n if (nodePath && fs.existsSync(nodePath) /* see issue 545 */) {\n if (newEnv[nodePathKey]) {\n newEnv[nodePathKey] = nodePath + path.delimiter + newEnv[nodePathKey];\n }\n else {\n newEnv[nodePathKey] = nodePath;\n }\n if (tracer) {\n tracer(`NODE_PATH value is: ${newEnv[nodePathKey]}`);\n }\n }\n newEnv['ELECTRON_RUN_AS_NODE'] = '1';\n try {\n let cp = child_process_1.fork('', [], {\n cwd: cwd,\n env: newEnv,\n execArgv: ['-e', app]\n });\n if (cp.pid === void 0) {\n reject(new Error(`Starting process to resolve node module ${moduleName} failed`));\n return;\n }\n cp.on('error', (error) => {\n reject(error);\n });\n cp.on('message', (message) => {\n if (message.c === 'r') {\n cp.send({ c: 'e' });\n if (message.s) {\n resolve(message.r);\n }\n else {\n reject(new Error(`Failed to resolve module: ${moduleName}`));\n }\n }\n });\n let message = {\n c: 'rs',\n a: moduleName\n };\n cp.send(message);\n }\n catch (error) {\n reject(error);\n }\n });\n}\nexports.resolve = resolve;\n/**\n * Resolve the global npm package path.\n * @deprecated Since this depends on the used package manager and their version the best is that servers\n * implement this themselves since they know best what kind of package managers to support.\n * @param tracer the tracer to use\n */\nfunction resolveGlobalNodePath(tracer) {\n let npmCommand = 'npm';\n const env = Object.create(null);\n Object.keys(process.env).forEach(key => env[key] = process.env[key]);\n env['NO_UPDATE_NOTIFIER'] = 'true';\n const options = {\n encoding: 'utf8',\n env\n };\n if (isWindows()) {\n npmCommand = 'npm.cmd';\n options.shell = true;\n }\n let handler = () => { };\n try {\n process.on('SIGPIPE', handler);\n let stdout = child_process_1.spawnSync(npmCommand, ['config', 'get', 'prefix'], options).stdout;\n if (!stdout) {\n if (tracer) {\n tracer(`'npm config get prefix' didn't return a value.`);\n }\n return undefined;\n }\n let prefix = stdout.trim();\n if (tracer) {\n tracer(`'npm config get prefix' value is: ${prefix}`);\n }\n if (prefix.length > 0) {\n if (isWindows()) {\n return path.join(prefix, 'node_modules');\n }\n else {\n return path.join(prefix, 'lib', 'node_modules');\n }\n }\n return undefined;\n }\n catch (err) {\n return undefined;\n }\n finally {\n process.removeListener('SIGPIPE', handler);\n }\n}\nexports.resolveGlobalNodePath = resolveGlobalNodePath;\n/*\n * Resolve the global yarn pakage path.\n * @deprecated Since this depends on the used package manager and their version the best is that servers\n * implement this themselves since they know best what kind of package managers to support.\n * @param tracer the tracer to use\n */\nfunction resolveGlobalYarnPath(tracer) {\n let yarnCommand = 'yarn';\n let options = {\n encoding: 'utf8'\n };\n if (isWindows()) {\n yarnCommand = 'yarn.cmd';\n options.shell = true;\n }\n let handler = () => { };\n try {\n process.on('SIGPIPE', handler);\n let results = child_process_1.spawnSync(yarnCommand, ['global', 'dir', '--json'], options);\n let stdout = results.stdout;\n if (!stdout) {\n if (tracer) {\n tracer(`'yarn global dir' didn't return a value.`);\n if (results.stderr) {\n tracer(results.stderr);\n }\n }\n return undefined;\n }\n let lines = stdout.trim().split(/\\r?\\n/);\n for (let line of lines) {\n try {\n let yarn = JSON.parse(line);\n if (yarn.type === 'log') {\n return path.join(yarn.data, 'node_modules');\n }\n }\n catch (e) {\n // Do nothing. Ignore the line\n }\n }\n return undefined;\n }\n catch (err) {\n return undefined;\n }\n finally {\n process.removeListener('SIGPIPE', handler);\n }\n}\nexports.resolveGlobalYarnPath = resolveGlobalYarnPath;\nvar FileSystem;\n(function (FileSystem) {\n let _isCaseSensitive = undefined;\n function isCaseSensitive() {\n if (_isCaseSensitive !== void 0) {\n return _isCaseSensitive;\n }\n if (process.platform === 'win32') {\n _isCaseSensitive = false;\n }\n else {\n // convert current file name to upper case / lower case and check if file exists\n // (guards against cases when name is already all uppercase or lowercase)\n _isCaseSensitive = !fs.existsSync(__filename.toUpperCase()) || !fs.existsSync(__filename.toLowerCase());\n }\n return _isCaseSensitive;\n }\n FileSystem.isCaseSensitive = isCaseSensitive;\n function isParent(parent, child) {\n if (isCaseSensitive()) {\n return path.normalize(child).indexOf(path.normalize(parent)) === 0;\n }\n else {\n return path.normalize(child).toLowerCase().indexOf(path.normalize(parent).toLowerCase()) === 0;\n }\n }\n FileSystem.isParent = isParent;\n})(FileSystem = exports.FileSystem || (exports.FileSystem = {}));\nfunction resolveModulePath(workspaceRoot, moduleName, nodePath, tracer) {\n if (nodePath) {\n if (!path.isAbsolute(nodePath)) {\n nodePath = path.join(workspaceRoot, nodePath);\n }\n return resolve(moduleName, nodePath, nodePath, tracer).then((value) => {\n if (FileSystem.isParent(nodePath, value)) {\n return value;\n }\n else {\n return Promise.reject(new Error(`Failed to load ${moduleName} from node path location.`));\n }\n }).then(undefined, (_error) => {\n return resolve(moduleName, resolveGlobalNodePath(tracer), workspaceRoot, tracer);\n });\n }\n else {\n return resolve(moduleName, resolveGlobalNodePath(tracer), workspaceRoot, tracer);\n }\n}\nexports.resolveModulePath = resolveModulePath;\n//# sourceMappingURL=files.js.map","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ----------------------------------------------------------------------------------------- */\n'use strict';\n\nmodule.exports = require('./lib/node/main');","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProposedFeatures = exports.SemanticTokensBuilder = void 0;\nconst semanticTokens_1 = require(\"./semanticTokens\");\nObject.defineProperty(exports, \"SemanticTokensBuilder\", { enumerable: true, get: function () { return semanticTokens_1.SemanticTokensBuilder; } });\n__exportStar(require(\"vscode-languageserver-protocol/\"), exports);\n__exportStar(require(\"./server\"), exports);\nvar ProposedFeatures;\n(function (ProposedFeatures) {\n ProposedFeatures.all = {\n __brand: 'features'\n };\n})(ProposedFeatures = exports.ProposedFeatures || (exports.ProposedFeatures = {}));\n//# sourceMappingURL=api.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n/// <reference path=\"../../typings/thenable.d.ts\" />\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConnection = exports.Files = void 0;\nconst Is = require(\"../common/utils/is\");\nconst server_1 = require(\"../common/server\");\nconst fm = require(\"./files\");\nconst node_1 = require(\"vscode-languageserver-protocol/node\");\n__exportStar(require(\"vscode-languageserver-protocol/node\"), exports);\n__exportStar(require(\"../common/api\"), exports);\nvar Files;\n(function (Files) {\n Files.uriToFilePath = fm.uriToFilePath;\n Files.resolveGlobalNodePath = fm.resolveGlobalNodePath;\n Files.resolveGlobalYarnPath = fm.resolveGlobalYarnPath;\n Files.resolve = fm.resolve;\n Files.resolveModulePath = fm.resolveModulePath;\n})(Files = exports.Files || (exports.Files = {}));\nlet _protocolConnection;\nfunction endProtocolConnection() {\n if (_protocolConnection === undefined) {\n return;\n }\n try {\n _protocolConnection.end();\n }\n catch (_err) {\n // Ignore. The client process could have already\n // did and we can't send an end into the connection.\n }\n}\nlet _shutdownReceived = false;\nlet exitTimer = undefined;\nfunction setupExitTimer() {\n const argName = '--clientProcessId';\n function runTimer(value) {\n try {\n let processId = parseInt(value);\n if (!isNaN(processId)) {\n exitTimer = setInterval(() => {\n try {\n process.kill(processId, 0);\n }\n catch (ex) {\n // Parent process doesn't exist anymore. Exit the server.\n endProtocolConnection();\n process.exit(_shutdownReceived ? 0 : 1);\n }\n }, 3000);\n }\n }\n catch (e) {\n // Ignore errors;\n }\n }\n for (let i = 2; i < process.argv.length; i++) {\n let arg = process.argv[i];\n if (arg === argName && i + 1 < process.argv.length) {\n runTimer(process.argv[i + 1]);\n return;\n }\n else {\n let args = arg.split('=');\n if (args[0] === argName) {\n runTimer(args[1]);\n }\n }\n }\n}\nsetupExitTimer();\nconst watchDog = {\n initialize: (params) => {\n const processId = params.processId;\n if (Is.number(processId) && exitTimer === undefined) {\n // We received a parent process id. Set up a timer to periodically check\n // if the parent is still alive.\n setInterval(() => {\n try {\n process.kill(processId, 0);\n }\n catch (ex) {\n // Parent process doesn't exist anymore. Exit the server.\n process.exit(_shutdownReceived ? 0 : 1);\n }\n }, 3000);\n }\n },\n get shutdownReceived() {\n return _shutdownReceived;\n },\n set shutdownReceived(value) {\n _shutdownReceived = value;\n },\n exit: (code) => {\n endProtocolConnection();\n process.exit(code);\n }\n};\nfunction createConnection(arg1, arg2, arg3, arg4) {\n let factories;\n let input;\n let output;\n let options;\n if (arg1 !== void 0 && arg1.__brand === 'features') {\n factories = arg1;\n arg1 = arg2;\n arg2 = arg3;\n arg3 = arg4;\n }\n if (node_1.ConnectionStrategy.is(arg1) || node_1.ConnectionOptions.is(arg1)) {\n options = arg1;\n }\n else {\n input = arg1;\n output = arg2;\n options = arg3;\n }\n return _createConnection(input, output, options, factories);\n}\nexports.createConnection = createConnection;\nfunction _createConnection(input, output, options, factories) {\n if (!input && !output && process.argv.length > 2) {\n let port = void 0;\n let pipeName = void 0;\n let argv = process.argv.slice(2);\n for (let i = 0; i < argv.length; i++) {\n let arg = argv[i];\n if (arg === '--node-ipc') {\n input = new node_1.IPCMessageReader(process);\n output = new node_1.IPCMessageWriter(process);\n break;\n }\n else if (arg === '--stdio') {\n input = process.stdin;\n output = process.stdout;\n break;\n }\n else if (arg === '--socket') {\n port = parseInt(argv[i + 1]);\n break;\n }\n else if (arg === '--pipe') {\n pipeName = argv[i + 1];\n break;\n }\n else {\n var args = arg.split('=');\n if (args[0] === '--socket') {\n port = parseInt(args[1]);\n break;\n }\n else if (args[0] === '--pipe') {\n pipeName = args[1];\n break;\n }\n }\n }\n if (port) {\n let transport = node_1.createServerSocketTransport(port);\n input = transport[0];\n output = transport[1];\n }\n else if (pipeName) {\n let transport = node_1.createServerPipeTransport(pipeName);\n input = transport[0];\n output = transport[1];\n }\n }\n var commandLineMessage = 'Use arguments of createConnection or set command line parameters: \\'--node-ipc\\', \\'--stdio\\' or \\'--socket={number}\\'';\n if (!input) {\n throw new Error('Connection input stream is not set. ' + commandLineMessage);\n }\n if (!output) {\n throw new Error('Connection output stream is not set. ' + commandLineMessage);\n }\n // Backwards compatibility\n if (Is.func(input.read) && Is.func(input.on)) {\n let inputStream = input;\n inputStream.on('end', () => {\n endProtocolConnection();\n process.exit(_shutdownReceived ? 0 : 1);\n });\n inputStream.on('close', () => {\n endProtocolConnection();\n process.exit(_shutdownReceived ? 0 : 1);\n });\n }\n const connectionFactory = (logger) => {\n const result = node_1.createProtocolConnection(input, output, logger, options);\n return result;\n };\n return server_1.createConnection(connectionFactory, watchDog, factories);\n}\n//# sourceMappingURL=main.js.map","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ----------------------------------------------------------------------------------------- */\n'use strict';\n\nmodule.exports = require('./lib/node/main');","import { createConnection, InitializeParams, InitializeResult } from 'vscode-languageserver/node';\nimport { VLS } from './services/vls';\n\nconst connection = process.argv.length <= 2 ? createConnection(process.stdin, process.stdout) : createConnection();\n\nconsole.log = (...args: any[]) => connection.console.log(args.join(' '));\nconsole.error = (...args: any[]) => connection.console.error(args.join(' '));\n\nconst vls = new VLS(connection);\nconnection.onInitialize(\n async (params: InitializeParams): Promise<InitializeResult> => {\n await vls.init(params);\n\n console.log('Vetur initialized');\n\n return {\n capabilities: vls.capabilities\n };\n }\n);\n\nvls.listen();\n"],"names":["string","value","String","func","array","Array","isArray","Object","defineProperty","is","thenable","typedArray","number","boolean","Number","error","Error","stringArray","every","elem","check","then","_ral","RAL","undefined","ral","install","default","exports","Disposable","create","dispose","messageBuffer","AbstractMessageBuffer","constructor","encoding","this","_encoding","_chunks","_totalLength","append","chunk","toAppend","fromString","push","byteLength","tryReadHeaders","length","state","chunkIndex","offset","chunkBytesRead","row","buffer","_read","result","Map","headers","toString","split","i","header","index","indexOf","key","substr","trim","set","tryReadBody","numberOfBytes","byteCount","emptyBuffer","shift","asNative","slice","allocNative","resultOffset","chunkPart","ril","ral_1","require$$0","util_1","require$$1","disposable_1","require$$2","messageBuffer_1","require$$3","MessageBuffer","super","Buffer","from","TextDecoder","decode","allocUnsafe","ReadableStreamWrapper","stream","onClose","listener","on","off","onError","onEnd","onData","WritableStreamWrapper","write","data","Promise","resolve","reject","callback","end","_ril","freeze","applicationJson","encoder","name","encode","msg","options","JSON","stringify","charset","err","decoder","parse","asReadableStream","asWritableStream","console","timer","setTimeout","ms","args","clearTimeout","handle","setImmediate","clearImmediate","RIL","isResponseMessage","isNotificationMessage","isRequestMessage","NotificationType9","NotificationType8","NotificationType7","NotificationType6","NotificationType5","NotificationType4","NotificationType3","NotificationType2","NotificationType1","NotificationType0","RequestType9","RequestType8","RequestType7","RequestType6","RequestType5","RequestType4","RequestType3","RequestType2","RequestType1","RequestType","RequestType0","AbstractMessageSignature","ParameterStructures","ResponseError","ErrorCodes","ParseError","InvalidRequest","MethodNotFound","InvalidParams","InternalError","jsonrpcReservedErrorRangeStart","serverErrorStart","MessageWriteError","MessageReadError","ServerNotInitialized","UnknownErrorCode","jsonrpcReservedErrorRangeEnd","serverErrorEnd","code","message","setPrototypeOf","prototype","toJson","kind","static","auto","byName","byPosition","method","numberOfParams","parameterStructures","_parameterStructures","NotificationType","candidate","id","Emitter","Event","_disposable","None","CallbackList","add","context","bucket","_callbacks","_contexts","remove","foundCallbackWithDifferentContext","len","splice","invoke","ret","callbacks","contexts","apply","e","isEmpty","_options","event","_event","thisArgs","disposables","onFirstListenerAdd","_noop","onLastListenerRemove","fire","call","CancellationTokenSource","CancellationToken","Is","events_1","isCancellationRequested","onCancellationRequested","Cancelled","shortcutEvent","bind","MutableToken","_isCancelled","cancel","_emitter","token","_token","WriteableStreamMessageWriter","AbstractMessageWriter","MessageWriter","semaphore_1","semaphore","Semaphore","capacity","_capacity","_active","_waiting","lock","thunk","runNext","active","doRunNext","next","ResolvedMessageWriterOptions","errorEmitter","closeEmitter","fireError","count","asError","fireClose","fromOptions","_a","_b","contentTypeEncoder","contentEncoder","writable","errorCount","writeSemaphore","async","doWrite","join","handleError","createMessageConnection","ConnectionOptions","CancellationStrategy","CancellationSenderStrategy","CancellationReceiverStrategy","ConnectionError","ConnectionErrors","LogTraceNotification","SetTraceNotification","Trace","NullLogger","ProgressType","messages_1","linkedMap_1","Touch","LRUCache","LinkedMap","First","AsOld","Last","AsNew","Symbol","toStringTag","_map","_head","_tail","_size","_state","clear","size","first","last","has","get","touch","item","previous","addItemLast","addItemFirst","delete","removeItem","forEach","callbackfn","thisArg","current","keys","map","iterator","done","values","entries","trimOld","newSize","currentSize","toJSON","fromJSON","limit","ratio","_limit","_ratio","Math","min","max","checkTrim","peek","round","require$$4","cancellation_1","require$$5","CancelNotification","ProgressNotification","StarRequestHandler","TraceFormat","ConnectionStrategy","ConnectionState","type","warn","info","log","Off","toLowerCase","Messages","Verbose","Text","cancelUndispatched","Message","createCancellationTokenSource","_","sendCancellation","conn","sendNotification","cleanup","receiver","sender","cancellationStrategy","connectionStrategy","messageReader","messageWriter","_logger","logger","sequenceNumber","notificationSquenceNumber","unknownResponseSquenceNumber","version","starRequestHandler","requestHandlers","starNotificationHandler","notificationHandlers","progressHandlers","tracer","messageQueue","responsePromises","requestTokens","trace","traceFormat","New","unhandledNotificationEmitter","unhandledProgressEmitter","disposeEmitter","createRequestQueueKey","addMessageToQueue","queue","_message","isListening","Listening","isClosed","Closed","isDisposed","Disposed","closeHandler","triggerMessageQueue","requestMessage","reply","resultOrError","startTime","jsonrpc","traceSendingResponse","replyError","replySuccess","params","logLSPMessage","traceReceivedRequest","element","requestHandler","handler","Date","now","tokenKey","cancellationSource","handlerResult","promise","handleRequest","notificationHandler","source","traceReceivedNotification","handleNotification","responseMessage","responsePromise","timerStart","traceReceivedResponse","handleResponse","responseHandler","handleInvalidMessage","processMessageQueue","toCancel","strategy","response","lspMessage","isLSPMessage","timestamp","throwIfClosedOrDisposed","undefinedToNull","param","nullToUndefined","isNamedParam","computeSingleParam","computeMessageParams","connection","messageParams","paramStart","paramEnd","notificationMessage","traceSendingNotification","onNotification","onProgress","_type","sendProgress","onUnhandledProgress","sendRequest","throwIfNotListening","disposable","r","traceSendingRequest","onRequest","_value","_tracer","sendNotificationOrTraceOptions","_sendNotification","_traceFormat","onUnhandledNotification","onDispose","listen","AlreadyListening","throwIfListening","inspect","verbose","ReadableStreamMessageReader","AbstractMessageReader","MessageReader","enumerable","messageReader_1","ResolvedMessageReaderOptions","onPartialMessage","partialMessageEmitter","firePartialMessage","contentDecoder","contentDecoders","contentTypeDecoder","contentTypeDecoders","readable","_partialMessageTimeout","nextMessageLength","messageToken","partialMessageTimeout","timeout","partialMessageTimer","contentLength","parseInt","isNaN","body","setPartialMessageTimer","p","clearPartialMessageTimer","waitingTime","messageWriter_1","connection_1","require$$6","require$$7","__createBinding","o","m","k","k2","__exportStar","hasOwnProperty","createServerSocketTransport","createClientSocketTransport","createServerPipeTransport","createClientPipeTransport","generateRandomPipeName","StreamMessageWriter","StreamMessageReader","SocketMessageWriter","SocketMessageReader","IPCMessageWriter","IPCMessageReader","ril_1","api_1","path","os","crypto_1","net_1","process","eventEmitter","send","socket","destroy","readble","XDG_RUNTIME_DIR","env","safeIpcPathLengths","randomSuffix","randomBytes","platform","tmpdir","pipeName","connectResolve","connected","_reject","server","createServer","close","removeListener","onConnected","createConnection","port","input","output","reader","read","addListener","isReadableStream","writer","isWritableStream","integer","uinteger","Position","Range","Location","LocationLink","Color","ColorInformation","ColorPresentation","FoldingRangeKind","FoldingRange","DiagnosticRelatedInformation","DiagnosticSeverity","DiagnosticTag","CodeDescription","Diagnostic","Command","TextEdit","ChangeAnnotation","ChangeAnnotationIdentifier","AnnotatedTextEdit","TextDocumentEdit","CreateFile","RenameFile","DeleteFile","WorkspaceEdit","MIN_VALUE","MAX_VALUE","line","character","objectLiteral","one","two","three","four","start","uri","range","defined","targetUri","targetRange","targetSelectionRange","originSelectionRange","red","green","blue","alpha","numberRange","color","label","textEdit","additionalTextEdits","startLine","endLine","startCharacter","endCharacter","location","Warning","Information","Hint","Unnecessary","Deprecated","href","severity","relatedInformation","codeDescription","title","command","_i","arguments","replace","newText","insert","position","del","needsConfirmation","description","annotation","annotationId","textDocument","edits","OptionalVersionedTextDocumentIdentifier","overwrite","ignoreIfExists","oldUri","newUri","recursive","ignoreIfNotExists","changes","documentChanges","change","TextDocumentIdentifier","VersionedTextDocumentIdentifier","TextDocumentItem","MarkupKind","MarkupContent","CompletionItemKind","InsertTextFormat","CompletionItemTag","InsertReplaceEdit","InsertTextMode","CompletionItem","CompletionList","MarkedString","Hover","ParameterInformation","SignatureInformation","DocumentHighlightKind","DocumentHighlight","SymbolKind","SymbolTag","SymbolInformation","DocumentSymbol","CodeActionKind","CodeActionContext","CodeAction","CodeLens","FormattingOptions","DocumentLink","SelectionRange","TextEditChangeImpl","changeAnnotations","edit","assertChangeAnnotations","manage","all","ChangeAnnotations","annotations","_annotations","_counter","configurable","idOrAnnotation","nextId","WorkspaceChange","workspaceEdit","_this","_textEditChanges","_workspaceEdit","_changeAnnotations","textEditChange","initDocumentChanges","getTextEditChange","textDocumentEdit","initChanges","createFile","optionsOrAnnotation","operation","renameFile","deleteFile","languageId","text","PlainText","Markdown","Method","Function","Constructor","Field","Variable","Class","Interface","Module","Property","Unit","Value","Enum","Keyword","Snippet","File","Reference","Folder","EnumMember","Constant","Struct","Operator","TypeParameter","asIs","adjustIndentation","items","isIncomplete","fromPlainText","plainText","language","contents","documentation","parameters","Read","Write","Namespace","Package","Boolean","Key","Null","containerName","detail","selectionRange","children","deprecated","tags","Empty","QuickFix","Refactor","RefactorExtract","RefactorInline","RefactorRewrite","Source","SourceOrganizeImports","SourceFixAll","diagnostics","only","kindOrCommandOrEdit","checkKind","isPreferred","tabSize","insertSpaces","target","parent","TextDocument","mergeSort","compare","left","right","leftIdx","rightIdx","content","FullTextDocument","lineCount","getText","positionAt","offsetAt","applyEdits","document","sortedEdits","a","b","diff","lastModifiedOffset","startOffset","endOffset","substring","_uri","_languageId","_version","_content","_lineOffsets","update","getLineOffsets","lineOffsets","isLineStart","ch","charAt","low","high","mid","floor","lineOffset","nextLineOffset","messages","ProtocolNotificationType","ProtocolNotificationType0","ProtocolRequestType","ProtocolRequestType0","RegistrationType","vscode_jsonrpc_1","ImplementationRequest","TypeDefinitionRequest","DidChangeWorkspaceFoldersNotification","WorkspaceFoldersRequest","ConfigurationRequest","ColorPresentationRequest","DocumentColorRequest","FoldingRangeRequest","DeclarationRequest","SelectionRangeRequest","WorkDoneProgressCancelNotification","WorkDoneProgressCreateRequest","WorkDoneProgress","CallHierarchyOutgoingCallsRequest","CallHierarchyIncomingCallsRequest","CallHierarchyPrepareRequest","SemanticTokensRefreshRequest","SemanticTokensRangeRequest","SemanticTokensDeltaRequest","SemanticTokensRequest","SemanticTokensRegistrationType","TokenFormat","SemanticTokenModifiers","SemanticTokenTypes","SemanticTokens","resultId","Relative","ShowDocumentRequest","LinkedEditingRangeRequest","WillDeleteFilesRequest","DidDeleteFilesNotification","WillRenameFilesRequest","DidCreateFilesNotification","FileOperationPatternKind","WillCreateFilesRequest","DidRenameFilesNotification","file","folder","MonikerRequest","MonikerKind","UniquenessLevel","DocumentLinkRequest","CodeLensRefreshRequest","CodeLensRequest","WorkspaceSymbolRequest","CodeActionRequest","DocumentSymbolRequest","DocumentHighlightRequest","ReferencesRequest","DefinitionRequest","SignatureHelpRequest","HoverRequest","CompletionResolveRequest","CompletionRequest","CompletionTriggerKind","PublishDiagnosticsNotification","WatchKind","DidChangeWatchedFilesNotification","WillSaveTextDocumentWaitUntilRequest","WillSaveTextDocumentNotification","TextDocumentSaveReason","DidSaveTextDocumentNotification","DidCloseTextDocumentNotification","TextDocumentContentChangeEvent","DidOpenTextDocumentNotification","TextDocumentSyncKind","TelemetryEventNotification","LogMessageNotification","ShowMessageRequest","MessageType","DidChangeConfigurationNotification","ExitNotification","ShutdownRequest","InitializedNotification","InitializeError","WorkDoneProgressOptions","TextDocumentRegistrationOptions","StaticRegistrationOptions","FailureHandlingKind","ResourceOperationKind","UnregistrationRequest","DocumentSelector","DocumentFilter","ExecuteCommandRequest","PrepareRenameRequest","PrepareSupportDefaultBehavior","DocumentOnTypeFormattingRequest","DocumentFormattingRequest","DocumentLinkResolveRequest","protocol_implementation_1","protocol_typeDefinition_1","protocol_workspaceFolders_1","protocol_configuration_1","protocol_colorProvider_1","protocol_foldingRange_1","protocol_declaration_1","require$$8","protocol_selectionRange_1","require$$9","protocol_progress_1","require$$10","protocol_callHierarchy_1","require$$11","protocol_semanticTokens_1","require$$12","protocol_showDocument_1","require$$13","protocol_linkedEditingRange_1","require$$14","protocol_fileOperations_1","require$$15","protocol_moniker_1","require$$16","DidChangeTextDocumentNotification","FileChangeType","SignatureHelpTriggerKind","CodeActionResolveRequest","CodeLensResolveRequest","DocumentRangeFormattingRequest","RenameRequest","scheme","pattern","RegistrationRequest","Create","Rename","Delete","Abort","Transactional","TextOnlyTransactional","Undo","hasId","documentSelector","workDoneProgress","hasWorkDoneProgress","InitializeRequest","unknownProtocolVersion","Info","Log","ShowMessageNotification","Full","Incremental","isIncremental","rangeLength","isFull","Manual","AfterDelay","FocusOut","Created","Changed","Deleted","Change","Invoked","TriggerCharacter","TriggerForIncompleteCompletions","ContentChange","Identifier","ApplyWorkspaceEditRequest","createProtocolConnection","LSPErrorCodes","lspReservedErrorRangeStart","ContentModified","RequestCancelled","lspReservedErrorRangeEnd","node_1","uuid","generateUuid","isUUID","v4","empty","ValueUUID","asHex","equals","other","V4UUID","_randomHex","_oneOf","_timeHighBits","random","_chars","_UUIDPattern","test","progress","attachPartialResult","ProgressFeature","vscode_languageserver_protocol_1","uuid_1","WorkDoneProgressReporterImpl","_connection","Instances","begin","percentage","cancellable","report","arg0","arg1","WorkDoneProgressServerReporterImpl","_source","NullProgressReporter","NullProgressServerReporter","attachWorkDone","workDoneToken","ResultProgress","Base","_progressSupported","initialize","capabilities","window","attachWorkDoneProgress","createWorkDoneProgress","ResultProgressReporterImpl","partialResultToken","configuration","ConfigurationFeature","getConfiguration","arg","_getConfiguration","section","workspaceFolders","WorkspaceFoldersFeature","workspaceCapabilities","workspace","_onDidChangeWorkspaceFolders","getWorkspaceFolders","onDidChangeWorkspaceFolders","_unregistration","client","register","callHierarchy","CallHierarchyFeature","onPrepare","onIncomingCalls","attachPartialResultProgress","onOutgoingCalls","semanticTokens","SemanticTokensBuilder","SemanticTokensFeature","onDelta","onRange","_prevData","_id","_prevLine","_prevChar","_data","_dataLen","char","tokenType","tokenModifiers","pushLine","pushChar","previousResult","build","canBuildEdits","buildEdits","prevDataLength","dataLength","startIndex","endIndex","newData","deleteCount","showDocument","ShowDocumentFeature","fileOperations","FileOperationsFeature","onDidCreateFiles","onDidRenameFiles","onDidDeleteFiles","onWillCreateFiles","onWillRenameFiles","onWillDeleteFiles","linkedEditingRange","LinkedEditingRangeFeature","onLinkedEditingRange","moniker","MonikerFeature","combineFeatures","combineLanguagesFeatures","combineWorkspaceFeatures","combineWindowFeatures","combineTracerFeatures","combineTelemetryFeatures","combineConsoleFeatures","_LanguagesImpl","BulkRegistration","ErrorMessageTracker","TextDocuments","UUID","progress_1","configuration_1","workspaceFolders_1","callHierarchy_1","semanticTokens_1","showDocument_1","fileOperations_1","linkedEditingRange_1","moniker_1","null2Undefined","_documents","_configuration","_onDidChangeContent","_onDidOpen","_onDidClose","_onDidSave","_onWillSave","onDidChangeContent","onDidOpen","onWillSave","onWillSaveWaitUntil","_willSaveWaitUntil","onDidSave","onDidClose","__textDocumentSync","onDidOpenTextDocument","td","toFire","onDidChangeTextDocument","contentChanges","onDidCloseTextDocument","onWillSaveTextDocument","reason","onWillSaveTextDocumentWaitUntil","onDidSaveTextDocument","_messages","sendErrors","showErrorMessage","RemoteConsoleImpl","rawAttach","_rawConnection","attach","fillServerCapabilities","_capabilities","RemoteWindowImpl","actions","showWarningMessage","showInformationMessage","BulkRegistrationImpl","_registrations","_registered","Set","registerOptions","asRegistrationParams","registrations","BulkUnregistration","BulkUnregistrationImpl","unregistrations","_unregistrations","unregistration","isAttached","unregisterations","_error","disposeSingle","RemoteClientImpl","typeOrRegistrations","registerOptionsOrType","registerMany","registerSingle1","registerSingle2","_result","unregisterSingle","registration","RemoteWorkspaceImpl","applyEdit","paramOrEdit","TracerImpl","_trace","TelemetryImpl","logEvent","LanguagesImpl","combineClientFeatures","combine","__brand","telemetry","connectionFactory","watchDog","factories","remoteWindow","languages","allRemotes","asPromise","resolved","shutdownHandler","initializeHandler","exitHandler","protocolConnection","onInitialize","onInitialized","onShutdown","onExit","onDidChangeConfiguration","onDidChangeWatchedFiles","sendDiagnostics","onHover","onCompletion","onCompletionResolve","onSignatureHelp","onDeclaration","onDefinition","onTypeDefinition","onImplementation","onReferences","onDocumentHighlight","onDocumentSymbol","onWorkspaceSymbol","onCodeAction","onCodeActionResolve","onCodeLens","onCodeLensResolve","onDocumentFormatting","onDocumentRangeFormatting","onDocumentOnTypeFormatting","onRenameRequest","onPrepareRename","onDocumentLinks","onDocumentLinkResolve","onDocumentColor","onColorPresentation","onFoldingRanges","onSelectionRanges","onExecuteCommand","remote","textDocumentSync","shutdownReceived","exit","resolveModulePath","resolveGlobalYarnPath","resolveGlobalNodePath","uriToFilePath","url","fs","child_process_1","isWindows","moduleName","nodePath","cwd","nodePathKey","app","newEnv","existsSync","delimiter","cp","fork","execArgv","pid","c","s","npmCommand","shell","stdout","spawnSync","prefix","FileSystem","parsed","protocol","segments","decodeURIComponent","second","normalize","yarnCommand","results","stderr","lines","yarn","_isCaseSensitive","isCaseSensitive","__filename","toUpperCase","isParent","child","workspaceRoot","isAbsolute","ProposedFeatures","Files","server_1","fm","exitTimer","_shutdownReceived","argName","runTimer","processId","setInterval","kill","ex","argv","setupExitTimer","arg2","arg3","arg4","stdin","transport","commandLineMessage","inputStream","_createConnection","vls","VLS","init"],"mappings":"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"}