zenstack 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/utils/is.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/ral.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/disposable.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/node/ril.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/is.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/messages.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/linkedMap.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/events.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/cancellation.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/messageReader.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/semaphore.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/messageWriter.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/connection.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/common/api.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/lib/node/main.js", "../../../node_modules/.pnpm/vscode-jsonrpc@8.0.2/node_modules/vscode-jsonrpc/node.js", "../../../node_modules/.pnpm/vscode-languageserver-types@3.17.2/node_modules/vscode-languageserver-types/lib/umd/main.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/messages.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/protocol.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/connection.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/common/api.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/lib/node/main.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/utils/async.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolCodeLens.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolCodeAction.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolInlayHint.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/codeConverter.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/protocolConverter.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/utils/uuid.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/progressPart.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/features.js", "../../../node_modules/.pnpm/concat-map@0.0.1/node_modules/concat-map/index.js", "../../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js", "../../../node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/index.js", "../../../node_modules/.pnpm/minimatch@3.1.2/node_modules/minimatch/minimatch.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/diagnostic.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/notebook.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/configuration.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/textSynchronization.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/completion.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/hover.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/definition.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/signatureHelp.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/documentHighlight.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/documentSymbol.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/workspaceSymbol.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/reference.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/codeAction.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/codeLens.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/formatting.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/rename.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/documentLink.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/executeCommand.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/colorProvider.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/implementation.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/typeDefinition.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/workspaceFolder.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/foldingRange.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/declaration.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/selectionRange.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/progress.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/callHierarchy.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/semanticTokens.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/fileOperations.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/linkedEditingRange.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/typeHierarchy.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/inlineValue.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/inlayHint.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/client.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/node/processes.js", "../../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.2/node_modules/vscode-languageserver-protocol/node.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/internal/constants.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/internal/debug.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/internal/re.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/internal/parse-options.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/internal/identifiers.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/classes/semver.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/parse.js", "../../../node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/iterator.js", "../../../node_modules/.pnpm/yallist@4.0.0/node_modules/yallist/yallist.js", "../../../node_modules/.pnpm/lru-cache@6.0.0/node_modules/lru-cache/index.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/compare.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/eq.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/neq.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/gt.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/gte.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/lt.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/lte.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/cmp.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/classes/comparator.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/classes/range.js", "../../../node_modules/.pnpm/semver@7.3.8/node_modules/semver/functions/satisfies.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/common/api.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/lib/node/main.js", "../../../node_modules/.pnpm/vscode-languageclient@8.0.2/node_modules/vscode-languageclient/node.js", "../src/extension.ts"],
|
|
4
|
+
"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.asPromise = exports.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;\nfunction asPromise(value) {\n if (value instanceof Promise) {\n return value;\n }\n else if (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}\nexports.asPromise = asPromise;\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 const handle = setTimeout(callback, ms, ...args);\n return { dispose: () => clearTimeout(handle) };\n },\n setImmediate(callback, ...args) {\n const handle = setImmediate(callback, ...args);\n return { dispose: () => clearImmediate(handle) };\n },\n setInterval(callback, ms, ...args) {\n const handle = setInterval(callback, ms, ...args);\n return { dispose: () => clearInterval(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.Message = 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 = -32099;\n /**\n * An error occurred when write a message to the transport layer.\n */\n ErrorCodes.MessageWriteError = -32099;\n /**\n * An error occurred when reading a message from the transport layer.\n */\n ErrorCodes.MessageReadError = -32098;\n /**\n * The connection got disposed or lost and all pending responses got\n * rejected.\n */\n ErrorCodes.PendingResponseRejected = -32097;\n /**\n * The connection is inactive and a use of it failed.\n */\n ErrorCodes.ConnectionInactive = -32096;\n /**\n * Error code indicating that a server received a notification or\n * request before the server has received the `initialize` request.\n */\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 = -32000;\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 const result = {\n code: this.code,\n message: this.message\n };\n if (this.data !== undefined) {\n result.data = this.data;\n }\n return result;\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;\nvar Message;\n(function (Message) {\n /**\n * Tests if the given message is a request message\n */\n function isRequest(message) {\n const candidate = message;\n return candidate && is.string(candidate.method) && (is.string(candidate.id) || is.number(candidate.id));\n }\n Message.isRequest = isRequest;\n /**\n * Tests if the given message is a notification message\n */\n function isNotification(message) {\n const candidate = message;\n return candidate && is.string(candidate.method) && message.id === void 0;\n }\n Message.isNotification = isNotification;\n /**\n * Tests if the given message is a response message\n */\n function isResponse(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 }\n Message.isResponse = isResponse;\n})(Message = exports.Message || (exports.Message = {}));\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 *--------------------------------------------------------------------------------------------*/\nvar _a;\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[_a] = '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 return this._head?.value;\n }\n get last() {\n return this._tail?.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 state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]: () => {\n return iterator;\n },\n next: () => {\n if (this._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 state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]: () => {\n return iterator;\n },\n next: () => {\n if (this._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 state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]: () => {\n return iterator;\n },\n next: () => {\n if (this._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 [(_a = Symbol.toStringTag, 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 happened 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 happened 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 * ------------------------------------------------------------------------------------------ */\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 (0, 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 = (0, ral_1.default)().timer.setTimeout(callback.bind(context), 0);\n return { dispose() { handle.dispose(); } };\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.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 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 ?? 'utf-8';\n }\n else {\n charset = options.charset ?? '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 = (0, 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 = (0, 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 this.partialMessageTimer.dispose();\n this.partialMessageTimer = undefined;\n }\n }\n setPartialMessageTimer() {\n this.clearPartialMessageTimer();\n if (this._partialMessageTimeout <= 0) {\n return;\n }\n this.partialMessageTimer = (0, 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\";\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 (0, 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.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 if (options === undefined || typeof options === 'string') {\n return { charset: options ?? 'utf-8', contentTypeEncoder: (0, ral_1.default)().applicationJson.encoder };\n }\n else {\n return { charset: options.charset ?? 'utf-8', contentEncoder: options.contentEncoder, contentTypeEncoder: options.contentTypeEncoder ?? (0, 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.createMessageConnection = exports.ConnectionOptions = exports.CancellationStrategy = exports.CancellationSenderStrategy = exports.CancellationReceiverStrategy = exports.ConnectionStrategy = exports.ConnectionError = exports.ConnectionErrors = exports.LogTraceNotification = exports.SetTraceNotification = exports.TraceFormat = exports.TraceValues = exports.Trace = exports.NullLogger = exports.ProgressType = exports.ProgressToken = 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 ProgressToken;\n(function (ProgressToken) {\n function is(value) {\n return typeof value === 'string' || typeof value === 'number';\n }\n ProgressToken.is = is;\n})(ProgressToken = exports.ProgressToken || (exports.ProgressToken = {}));\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[\"Compact\"] = 2] = \"Compact\";\n Trace[Trace[\"Verbose\"] = 3] = \"Verbose\";\n})(Trace = exports.Trace || (exports.Trace = {}));\nvar TraceValues;\n(function (TraceValues) {\n /**\n * Turn tracing off.\n */\n TraceValues.Off = 'off';\n /**\n * Trace messages only.\n */\n TraceValues.Messages = 'messages';\n /**\n * Compact message tracing.\n */\n TraceValues.Compact = 'compact';\n /**\n * Verbose message tracing.\n */\n TraceValues.Verbose = 'verbose';\n})(TraceValues = exports.TraceValues || (exports.TraceValues = {}));\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 'compact':\n return Trace.Compact;\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.Compact:\n return 'compact';\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 if (!Is.string(value)) {\n return TraceFormat.Text;\n }\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 return 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 notificationSequenceNumber = 0;\n let unknownResponseSequenceNumber = 0;\n const version = '2.0';\n let starRequestHandler = undefined;\n const requestHandlers = new Map();\n let starNotificationHandler = undefined;\n const notificationHandlers = new Map();\n const progressHandlers = new Map();\n let timer;\n let messageQueue = new linkedMap_1.LinkedMap();\n let responsePromises = new Map();\n let knownCanceledRequests = new Set();\n let requestTokens = new Map();\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-' + (++unknownResponseSequenceNumber).toString();\n }\n else {\n return 'res-' + id.toString();\n }\n }\n function createNotificationQueueKey() {\n return 'not-' + (++notificationSequenceNumber).toString();\n }\n function addMessageToQueue(queue, message) {\n if (messages_1.Message.isRequest(message)) {\n queue.set(createRequestQueueKey(message.id), message);\n }\n else if (messages_1.Message.isResponse(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 = (0, 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.Message.isRequest(message)) {\n handleRequest(message);\n }\n else if (messages_1.Message.isNotification(message)) {\n handleNotification(message);\n }\n else if (messages_1.Message.isResponse(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.Message.isNotification(message) && message.method === CancelNotification.type.method) {\n const cancelId = message.params.id;\n const key = createRequestQueueKey(cancelId);\n const toCancel = messageQueue.get(key);\n if (messages_1.Message.isRequest(toCancel)) {\n const strategy = 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 requestTokens.delete(cancelId);\n response.id = toCancel.id;\n traceSendingResponse(response, message.method, Date.now());\n messageWriter.write(response).catch(() => logger.error(`Sending response for canceled message failed.`));\n return;\n }\n }\n const cancellationToken = requestTokens.get(cancelId);\n // The request is already running. Cancel the token\n if (cancellationToken !== undefined) {\n cancellationToken.cancel();\n traceReceivedNotification(message);\n return;\n }\n else {\n // Remember the cancel but still queue the message to\n // clean up state in process message.\n knownCanceledRequests.add(cancelId);\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).catch(() => logger.error(`Sending response failed.`));\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).catch(() => logger.error(`Sending response failed.`));\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).catch(() => logger.error(`Sending response failed.`));\n }\n traceReceivedRequest(requestMessage);\n const element = requestHandlers.get(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 = requestMessage.id ?? String(Date.now()); //\n const cancellationSource = cancellationStrategy.receiver.createCancellationTokenSource(tokenKey);\n if (requestMessage.id !== null && knownCanceledRequests.has(requestMessage.id)) {\n cancellationSource.cancel();\n }\n if (requestMessage.id !== null) {\n requestTokens.set(tokenKey, cancellationSource);\n }\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 received 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 requestTokens.delete(tokenKey);\n replySuccess(handlerResult, requestMessage.method, startTime);\n }\n else if (promise.then) {\n promise.then((resultOrError) => {\n requestTokens.delete(tokenKey);\n reply(resultOrError, requestMessage.method, startTime);\n }, error => {\n requestTokens.delete(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 requestTokens.delete(tokenKey);\n reply(handlerResult, requestMessage.method, startTime);\n }\n }\n catch (error) {\n requestTokens.delete(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 = responseMessage.id;\n const responsePromise = responsePromises.get(key);\n traceReceivedResponse(responseMessage, responsePromise);\n if (responsePromise !== undefined) {\n responsePromises.delete(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 const cancelId = message.params.id;\n knownCanceledRequests.delete(cancelId);\n traceReceivedNotification(message);\n return;\n }\n else {\n const element = notificationHandlers.get(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 received none.`);\n }\n }\n notificationHandler();\n }\n else if (Array.isArray(message.params)) {\n // There are JSON-RPC libraries that send progress message as positional params although\n // specified as named. So convert them if this is the case.\n const params = message.params;\n if (message.method === ProgressNotification.type.method && params.length === 2 && ProgressToken.is(params[0])) {\n notificationHandler({ token: params[0], value: params[1] });\n }\n else {\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 ${params.length} arguments`);\n }\n }\n notificationHandler(...params);\n }\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 = responseMessage.id;\n const responseHandler = responsePromises.get(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 stringifyTrace(params) {\n if (params === undefined || params === null) {\n return undefined;\n }\n switch (trace) {\n case Trace.Verbose:\n return JSON.stringify(params, null, 4);\n case Trace.Compact:\n return JSON.stringify(params);\n default:\n return undefined;\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 || trace === Trace.Compact) && message.params) {\n data = `Params: ${stringifyTrace(message.params)}\\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 || trace === Trace.Compact) {\n if (message.params) {\n data = `Params: ${stringifyTrace(message.params)}\\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 || trace === Trace.Compact) {\n if (message.error && message.error.data) {\n data = `Error data: ${stringifyTrace(message.error.data)}\\n\\n`;\n }\n else {\n if (message.result) {\n data = `Result: ${stringifyTrace(message.result)}\\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 || trace === Trace.Compact) && message.params) {\n data = `Params: ${stringifyTrace(message.params)}\\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 || trace === Trace.Compact) {\n if (message.params) {\n data = `Params: ${stringifyTrace(message.params)}\\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 || trace === Trace.Compact) {\n if (message.error && message.error.data) {\n data = `Error data: ${stringifyTrace(message.error.data)}\\n\\n`;\n }\n else {\n if (message.result) {\n data = `Result: ${stringifyTrace(message.result)}\\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 case messages_1.ParameterStructures.byName:\n if (!isNamedParam(param)) {\n throw new Error(`Received 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(`Received ${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 return messageWriter.write(notificationMessage).catch(() => logger.error(`Sending notification failed.`));\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.set(type, { type: undefined, handler });\n }\n else {\n method = type.method;\n notificationHandlers.set(type.method, { type, handler });\n }\n }\n return {\n dispose: () => {\n if (method !== undefined) {\n notificationHandlers.delete(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 return 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(`Received ${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 const p = cancellationStrategy.sender.sendCancellation(connection, id);\n if (p === undefined) {\n logger.log(`Received no promise from cancellation strategy when cancelling id ${id}`);\n return Promise.resolve();\n }\n else {\n return p.catch(() => {\n logger.log(`Sending cancellation messages for id ${id} failed`);\n });\n }\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?.dispose();\n };\n const rejectWithCleanup = (r) => {\n reject(r);\n cancellationStrategy.sender.cleanup(id);\n disposable?.dispose();\n };\n let responsePromise = { method: method, timerStart: Date.now(), resolve: resolveWithCleanup, reject: rejectWithCleanup };\n traceSendingRequest(requestMessage);\n try {\n messageWriter.write(requestMessage).catch(() => logger.error(`Sending request failed.`));\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.set(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.set(type, { handler: handler, type: undefined });\n }\n }\n else {\n if (handler !== undefined) {\n method = type.method;\n requestHandlers.set(type.method, { type, handler });\n }\n }\n return {\n dispose: () => {\n if (method === null) {\n return;\n }\n if (method !== undefined) {\n requestHandlers.delete(method);\n }\n else {\n starRequestHandler = undefined;\n }\n }\n };\n },\n hasPendingResponse: () => {\n return responsePromises.size > 0;\n },\n trace: async (_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 await 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 messages_1.ResponseError(messages_1.ErrorCodes.PendingResponseRejected, 'Pending response rejected since connection got disposed');\n for (const promise of responsePromises.values()) {\n promise.reject(error);\n }\n responsePromises = new Map();\n requestTokens = new Map();\n knownCanceledRequests = new Set();\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 (0, ral_1.default)().console.log('inspect');\n }\n };\n connection.onNotification(LogTraceNotification.type, (params) => {\n if (trace === Trace.Off || !tracer) {\n return;\n }\n const verbose = trace === Trace.Verbose || trace === Trace.Compact;\n tracer.log(params.message, 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 * ------------------------------------------------------------------------------------------ */\n/// <reference path=\"../../typings/thenable.d.ts\" />\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TraceFormat = exports.TraceValues = exports.Trace = exports.ProgressType = exports.ProgressToken = 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.LRUCache = exports.Touch = exports.LinkedMap = 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.Message = exports.RAL = void 0;\nexports.CancellationStrategy = exports.CancellationSenderStrategy = exports.CancellationReceiverStrategy = exports.ConnectionError = exports.ConnectionErrors = exports.LogTraceNotification = exports.SetTraceNotification = void 0;\nconst messages_1 = require(\"./messages\");\nObject.defineProperty(exports, \"Message\", { enumerable: true, get: function () { return messages_1.Message; } });\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 linkedMap_1 = require(\"./linkedMap\");\nObject.defineProperty(exports, \"LinkedMap\", { enumerable: true, get: function () { return linkedMap_1.LinkedMap; } });\nObject.defineProperty(exports, \"LRUCache\", { enumerable: true, get: function () { return linkedMap_1.LRUCache; } });\nObject.defineProperty(exports, \"Touch\", { enumerable: true, get: function () { return linkedMap_1.Touch; } });\nconst disposable_1 = require(\"./disposable\");\nObject.defineProperty(exports, \"Disposable\", { enumerable: true, get: function () { return disposable_1.Disposable; } });\nconst events_1 = require(\"./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(\"./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(\"./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(\"./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(\"./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, \"ProgressToken\", { enumerable: true, get: function () { return connection_1.ProgressToken; } });\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, \"TraceValues\", { enumerable: true, get: function () { return connection_1.TraceValues; } });\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\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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((0, ril_1.default)().stream.asReadableStream(socket), encoding);\n }\n}\nexports.SocketMessageReader = SocketMessageReader;\nclass SocketMessageWriter extends api_1.WriteableStreamMessageWriter {\n constructor(socket, options) {\n super((0, 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((0, ril_1.default)().stream.asReadableStream(readble), encoding);\n }\n}\nexports.StreamMessageReader = StreamMessageReader;\nclass StreamMessageWriter extends api_1.WriteableStreamMessageWriter {\n constructor(writable, options) {\n super((0, 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 = (0, 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 (0, 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 = (0, 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 = (0, 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 = (0, 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 = (0, 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 (0, 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');", "(function (factory) {\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n var v = factory(require, exports);\n if (v !== undefined) module.exports = v;\n }\n else if (typeof define === \"function\" && define.amd) {\n define([\"require\", \"exports\"], factory);\n }\n})(function (require, exports) {\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 'use strict';\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.TextDocument = exports.EOL = exports.WorkspaceFolder = exports.InlayHint = exports.InlayHintLabelPart = exports.InlayHintKind = exports.InlineValueContext = exports.InlineValueEvaluatableExpression = exports.InlineValueVariableLookup = exports.InlineValueText = exports.SemanticTokens = exports.SemanticTokenModifiers = exports.SemanticTokenTypes = exports.SelectionRange = exports.DocumentLink = exports.FormattingOptions = exports.CodeLens = exports.CodeAction = exports.CodeActionContext = exports.CodeActionTriggerKind = exports.CodeActionKind = exports.DocumentSymbol = exports.WorkspaceSymbol = exports.SymbolInformation = exports.SymbolTag = exports.SymbolKind = exports.DocumentHighlight = exports.DocumentHighlightKind = exports.SignatureInformation = exports.ParameterInformation = exports.Hover = exports.MarkedString = exports.CompletionList = exports.CompletionItem = exports.CompletionItemLabelDetails = exports.InsertTextMode = exports.InsertReplaceEdit = exports.CompletionItemTag = exports.InsertTextFormat = exports.CompletionItemKind = exports.MarkupContent = exports.MarkupKind = exports.TextDocumentItem = exports.OptionalVersionedTextDocumentIdentifier = exports.VersionedTextDocumentIdentifier = exports.TextDocumentIdentifier = exports.WorkspaceChange = exports.WorkspaceEdit = exports.DeleteFile = exports.RenameFile = exports.CreateFile = exports.TextDocumentEdit = exports.AnnotatedTextEdit = exports.ChangeAnnotationIdentifier = exports.ChangeAnnotation = exports.TextEdit = exports.Command = exports.Diagnostic = exports.CodeDescription = exports.DiagnosticTag = exports.DiagnosticSeverity = exports.DiagnosticRelatedInformation = exports.FoldingRange = exports.FoldingRangeKind = exports.ColorPresentation = exports.ColorInformation = exports.Color = exports.LocationLink = exports.Location = exports.Range = exports.Position = exports.uinteger = exports.integer = exports.URI = exports.DocumentUri = void 0;\n var DocumentUri;\n (function (DocumentUri) {\n function is(value) {\n return typeof value === 'string';\n }\n DocumentUri.is = is;\n })(DocumentUri = exports.DocumentUri || (exports.DocumentUri = {}));\n var URI;\n (function (URI) {\n function is(value) {\n return typeof value === 'string';\n }\n URI.is = is;\n })(URI = exports.URI || (exports.URI = {}));\n var integer;\n (function (integer) {\n integer.MIN_VALUE = -2147483648;\n integer.MAX_VALUE = 2147483647;\n function is(value) {\n return typeof value === 'number' && integer.MIN_VALUE <= value && value <= integer.MAX_VALUE;\n }\n integer.is = is;\n })(integer = exports.integer || (exports.integer = {}));\n var uinteger;\n (function (uinteger) {\n uinteger.MIN_VALUE = 0;\n uinteger.MAX_VALUE = 2147483647;\n function is(value) {\n return typeof value === 'number' && uinteger.MIN_VALUE <= value && value <= uinteger.MAX_VALUE;\n }\n uinteger.is = is;\n })(uinteger = exports.uinteger || (exports.uinteger = {}));\n /**\n * The Position namespace provides helper functions to work with\n * [Position](#Position) literals.\n */\n 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 = exports.Position || (exports.Position = {}));\n /**\n * The Range namespace provides helper functions to work with\n * [Range](#Range) literals.\n */\n 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[\".concat(one, \", \").concat(two, \", \").concat(three, \", \").concat(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 = exports.Range || (exports.Range = {}));\n /**\n * The Location namespace provides helper functions to work with\n * [Location](#Location) literals.\n */\n 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.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n }\n Location.is = is;\n })(Location = exports.Location || (exports.Location = {}));\n /**\n * The LocationLink namespace provides helper functions to work with\n * [LocationLink](#LocationLink) literals.\n */\n 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.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri)\n && Range.is(candidate.targetSelectionRange)\n && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n }\n LocationLink.is = is;\n })(LocationLink = exports.LocationLink || (exports.LocationLink = {}));\n /**\n * The Color namespace provides helper functions to work with\n * [Color](#Color) literals.\n */\n 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.objectLiteral(candidate) && 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 = exports.Color || (exports.Color = {}));\n /**\n * The ColorInformation namespace provides helper functions to work with\n * [ColorInformation](#ColorInformation) literals.\n */\n 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 Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n }\n ColorInformation.is = is;\n })(ColorInformation = exports.ColorInformation || (exports.ColorInformation = {}));\n /**\n * The Color namespace provides helper functions to work with\n * [ColorPresentation](#ColorPresentation) literals.\n */\n 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.objectLiteral(candidate) && 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 = exports.ColorPresentation || (exports.ColorPresentation = {}));\n /**\n * A set of predefined range kinds.\n */\n var FoldingRangeKind;\n (function (FoldingRangeKind) {\n /**\n * Folding range for a comment\n */\n FoldingRangeKind.Comment = 'comment';\n /**\n * Folding range for an import or include\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 * The folding range namespace provides helper functions to work with\n * [FoldingRange](#FoldingRange) literals.\n */\n var FoldingRange;\n (function (FoldingRange) {\n /**\n * Creates a new FoldingRange literal.\n */\n function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\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 if (Is.defined(collapsedText)) {\n result.collapsedText = collapsedText;\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.objectLiteral(candidate) && 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 = exports.FoldingRange || (exports.FoldingRange = {}));\n /**\n * The DiagnosticRelatedInformation namespace provides helper functions to work with\n * [DiagnosticRelatedInformation](#DiagnosticRelatedInformation) literals.\n */\n 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 = exports.DiagnosticRelatedInformation || (exports.DiagnosticRelatedInformation = {}));\n /**\n * The diagnostic's severity.\n */\n 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 = exports.DiagnosticSeverity || (exports.DiagnosticSeverity = {}));\n /**\n * The diagnostic tags.\n *\n * @since 3.15.0\n */\n 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 = exports.DiagnosticTag || (exports.DiagnosticTag = {}));\n /**\n * The CodeDescription namespace provides functions to deal with descriptions for diagnostic codes.\n *\n * @since 3.16.0\n */\n var CodeDescription;\n (function (CodeDescription) {\n function is(value) {\n var candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.href);\n }\n CodeDescription.is = is;\n })(CodeDescription = exports.CodeDescription || (exports.CodeDescription = {}));\n /**\n * The Diagnostic namespace provides helper functions to work with\n * [Diagnostic](#Diagnostic) literals.\n */\n 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 = exports.Diagnostic || (exports.Diagnostic = {}));\n /**\n * The Command namespace provides helper functions to work with\n * [Command](#Command) literals.\n */\n 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 = exports.Command || (exports.Command = {}));\n /**\n * The TextEdit namespace provides helper function to create replace,\n * insert and delete edits more easily.\n */\n 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 an 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 = exports.TextEdit || (exports.TextEdit = {}));\n 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 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 = exports.ChangeAnnotation || (exports.ChangeAnnotation = {}));\n var ChangeAnnotationIdentifier;\n (function (ChangeAnnotationIdentifier) {\n function is(value) {\n var candidate = value;\n return Is.string(candidate);\n }\n ChangeAnnotationIdentifier.is = is;\n })(ChangeAnnotationIdentifier = exports.ChangeAnnotationIdentifier || (exports.ChangeAnnotationIdentifier = {}));\n 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 = exports.AnnotatedTextEdit || (exports.AnnotatedTextEdit = {}));\n /**\n * The TextDocumentEdit namespace provides helper function to create\n * an edit that manipulates a text document.\n */\n 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 = exports.TextDocumentEdit || (exports.TextDocumentEdit = {}));\n 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 = exports.CreateFile || (exports.CreateFile = {}));\n 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 = exports.RenameFile || (exports.RenameFile = {}));\n 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 = exports.DeleteFile || (exports.DeleteFile = {}));\n 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 = exports.WorkspaceEdit || (exports.WorkspaceEdit = {}));\n var 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 */\n var 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 \".concat(id, \" is already in use.\"));\n }\n if (annotation === undefined) {\n throw new Error(\"No annotation provided for id \".concat(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 */\n var 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 }());\n exports.WorkspaceChange = WorkspaceChange;\n /**\n * The TextDocumentIdentifier namespace provides helper functions to work with\n * [TextDocumentIdentifier](#TextDocumentIdentifier) literals.\n */\n 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 = exports.TextDocumentIdentifier || (exports.TextDocumentIdentifier = {}));\n /**\n * The VersionedTextDocumentIdentifier namespace provides helper functions to work with\n * [VersionedTextDocumentIdentifier](#VersionedTextDocumentIdentifier) literals.\n */\n var VersionedTextDocumentIdentifier;\n (function (VersionedTextDocumentIdentifier) {\n /**\n * Creates a new VersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\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 = exports.VersionedTextDocumentIdentifier || (exports.VersionedTextDocumentIdentifier = {}));\n /**\n * The OptionalVersionedTextDocumentIdentifier namespace provides helper functions to work with\n * [OptionalVersionedTextDocumentIdentifier](#OptionalVersionedTextDocumentIdentifier) literals.\n */\n var OptionalVersionedTextDocumentIdentifier;\n (function (OptionalVersionedTextDocumentIdentifier) {\n /**\n * Creates a new OptionalVersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\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 = exports.OptionalVersionedTextDocumentIdentifier || (exports.OptionalVersionedTextDocumentIdentifier = {}));\n /**\n * The TextDocumentItem namespace provides helper functions to work with\n * [TextDocumentItem](#TextDocumentItem) literals.\n */\n 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 = exports.TextDocumentItem || (exports.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 */\n 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 /**\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 = exports.MarkupKind || (exports.MarkupKind = {}));\n 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 = exports.MarkupContent || (exports.MarkupContent = {}));\n /**\n * The kind of a completion entry.\n */\n 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 = exports.CompletionItemKind || (exports.CompletionItemKind = {}));\n /**\n * Defines whether the insert text in a completion item should be interpreted as\n * plain text or a snippet.\n */\n 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 = exports.InsertTextFormat || (exports.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 */\n var CompletionItemTag;\n (function (CompletionItemTag) {\n /**\n * Render a completion as obsolete, usually using a strike-out.\n */\n CompletionItemTag.Deprecated = 1;\n })(CompletionItemTag = exports.CompletionItemTag || (exports.CompletionItemTag = {}));\n /**\n * The InsertReplaceEdit namespace provides functions to deal with insert / replace edits.\n *\n * @since 3.16.0\n */\n 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 = exports.InsertReplaceEdit || (exports.InsertReplaceEdit = {}));\n /**\n * How whitespace and indentation is handled during completion\n * item insertion.\n *\n * @since 3.16.0\n */\n 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 = exports.InsertTextMode || (exports.InsertTextMode = {}));\n var CompletionItemLabelDetails;\n (function (CompletionItemLabelDetails) {\n function is(value) {\n var candidate = value;\n return candidate && (Is.string(candidate.detail) || candidate.detail === undefined) &&\n (Is.string(candidate.description) || candidate.description === undefined);\n }\n CompletionItemLabelDetails.is = is;\n })(CompletionItemLabelDetails = exports.CompletionItemLabelDetails || (exports.CompletionItemLabelDetails = {}));\n /**\n * The CompletionItem namespace provides functions to deal with\n * completion items.\n */\n 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 = exports.CompletionItem || (exports.CompletionItem = {}));\n /**\n * The CompletionList namespace provides functions to deal with\n * completion lists.\n */\n 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 = exports.CompletionList || (exports.CompletionList = {}));\n 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 = exports.MarkedString || (exports.MarkedString = {}));\n 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 = exports.Hover || (exports.Hover = {}));\n /**\n * The ParameterInformation namespace provides helper functions to work with\n * [ParameterInformation](#ParameterInformation) literals.\n */\n 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 = exports.ParameterInformation || (exports.ParameterInformation = {}));\n /**\n * The SignatureInformation namespace provides helper functions to work with\n * [SignatureInformation](#SignatureInformation) literals.\n */\n 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 = exports.SignatureInformation || (exports.SignatureInformation = {}));\n /**\n * A document highlight kind.\n */\n 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 = exports.DocumentHighlightKind || (exports.DocumentHighlightKind = {}));\n /**\n * DocumentHighlight namespace to provide helper functions to work with\n * [DocumentHighlight](#DocumentHighlight) literals.\n */\n var DocumentHighlight;\n (function (DocumentHighlight) {\n /**\n * Create a DocumentHighlight object.\n * @param range The range the highlight applies to.\n * @param kind The highlight kind\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 = exports.DocumentHighlight || (exports.DocumentHighlight = {}));\n /**\n * A symbol kind.\n */\n 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 = exports.SymbolKind || (exports.SymbolKind = {}));\n /**\n * Symbol tags are extra annotations that tweak the rendering of a symbol.\n *\n * @since 3.16\n */\n var SymbolTag;\n (function (SymbolTag) {\n /**\n * Render a symbol as obsolete, usually using a strike-out.\n */\n SymbolTag.Deprecated = 1;\n })(SymbolTag = exports.SymbolTag || (exports.SymbolTag = {}));\n 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.\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 = exports.SymbolInformation || (exports.SymbolInformation = {}));\n var WorkspaceSymbol;\n (function (WorkspaceSymbol) {\n /**\n * Create a new workspace symbol.\n *\n * @param name The name of the symbol.\n * @param kind The kind of the symbol.\n * @param uri The resource of the location of the symbol.\n * @param range An options range of the location.\n * @returns A WorkspaceSymbol.\n */\n function create(name, kind, uri, range) {\n return range !== undefined\n ? { name: name, kind: kind, location: { uri: uri, range: range } }\n : { name: name, kind: kind, location: { uri: uri } };\n }\n WorkspaceSymbol.create = create;\n })(WorkspaceSymbol = exports.WorkspaceSymbol || (exports.WorkspaceSymbol = {}));\n 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 = exports.DocumentSymbol || (exports.DocumentSymbol = {}));\n /**\n * A set of predefined code action kinds\n */\n 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 = exports.CodeActionKind || (exports.CodeActionKind = {}));\n /**\n * The reason why code actions were requested.\n *\n * @since 3.17.0\n */\n var CodeActionTriggerKind;\n (function (CodeActionTriggerKind) {\n /**\n * Code actions were explicitly requested by the user or by an extension.\n */\n CodeActionTriggerKind.Invoked = 1;\n /**\n * Code actions were requested automatically.\n *\n * This typically happens when current selection in a file changes, but can\n * also be triggered when file content changes.\n */\n CodeActionTriggerKind.Automatic = 2;\n })(CodeActionTriggerKind = exports.CodeActionTriggerKind || (exports.CodeActionTriggerKind = {}));\n /**\n * The CodeActionContext namespace provides helper functions to work with\n * [CodeActionContext](#CodeActionContext) literals.\n */\n var CodeActionContext;\n (function (CodeActionContext) {\n /**\n * Creates a new CodeActionContext literal.\n */\n function create(diagnostics, only, triggerKind) {\n var result = { diagnostics: diagnostics };\n if (only !== undefined && only !== null) {\n result.only = only;\n }\n if (triggerKind !== undefined && triggerKind !== null) {\n result.triggerKind = triggerKind;\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)\n && (candidate.only === undefined || Is.typedArray(candidate.only, Is.string))\n && (candidate.triggerKind === undefined || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);\n }\n CodeActionContext.is = is;\n })(CodeActionContext = exports.CodeActionContext || (exports.CodeActionContext = {}));\n 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 = exports.CodeAction || (exports.CodeAction = {}));\n /**\n * The CodeLens namespace provides helper functions to work with\n * [CodeLens](#CodeLens) literals.\n */\n 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 = exports.CodeLens || (exports.CodeLens = {}));\n /**\n * The FormattingOptions namespace provides helper functions to work with\n * [FormattingOptions](#FormattingOptions) literals.\n */\n 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 = exports.FormattingOptions || (exports.FormattingOptions = {}));\n /**\n * The DocumentLink namespace provides helper functions to work with\n * [DocumentLink](#DocumentLink) literals.\n */\n 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 = exports.DocumentLink || (exports.DocumentLink = {}));\n /**\n * The SelectionRange namespace provides helper function to work with\n * SelectionRange literals.\n */\n 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 Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === undefined || SelectionRange.is(candidate.parent));\n }\n SelectionRange.is = is;\n })(SelectionRange = exports.SelectionRange || (exports.SelectionRange = {}));\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 */\n var 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 /**\n * @since 3.17.0\n */\n SemanticTokenTypes[\"decorator\"] = \"decorator\";\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 */\n var 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 */\n var SemanticTokens;\n (function (SemanticTokens) {\n function is(value) {\n var candidate = value;\n return Is.objectLiteral(candidate) && (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 /**\n * The InlineValueText namespace provides functions to deal with InlineValueTexts.\n *\n * @since 3.17.0\n */\n var InlineValueText;\n (function (InlineValueText) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, text) {\n return { range: range, text: text };\n }\n InlineValueText.create = create;\n function is(value) {\n var candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n }\n InlineValueText.is = is;\n })(InlineValueText = exports.InlineValueText || (exports.InlineValueText = {}));\n /**\n * The InlineValueVariableLookup namespace provides functions to deal with InlineValueVariableLookups.\n *\n * @since 3.17.0\n */\n var InlineValueVariableLookup;\n (function (InlineValueVariableLookup) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, variableName, caseSensitiveLookup) {\n return { range: range, variableName: variableName, caseSensitiveLookup: caseSensitiveLookup };\n }\n InlineValueVariableLookup.create = create;\n function is(value) {\n var candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup)\n && (Is.string(candidate.variableName) || candidate.variableName === undefined);\n }\n InlineValueVariableLookup.is = is;\n })(InlineValueVariableLookup = exports.InlineValueVariableLookup || (exports.InlineValueVariableLookup = {}));\n /**\n * The InlineValueEvaluatableExpression namespace provides functions to deal with InlineValueEvaluatableExpression.\n *\n * @since 3.17.0\n */\n var InlineValueEvaluatableExpression;\n (function (InlineValueEvaluatableExpression) {\n /**\n * Creates a new InlineValueEvaluatableExpression literal.\n */\n function create(range, expression) {\n return { range: range, expression: expression };\n }\n InlineValueEvaluatableExpression.create = create;\n function is(value) {\n var candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range)\n && (Is.string(candidate.expression) || candidate.expression === undefined);\n }\n InlineValueEvaluatableExpression.is = is;\n })(InlineValueEvaluatableExpression = exports.InlineValueEvaluatableExpression || (exports.InlineValueEvaluatableExpression = {}));\n /**\n * The InlineValueContext namespace provides helper functions to work with\n * [InlineValueContext](#InlineValueContext) literals.\n *\n * @since 3.17.0\n */\n var InlineValueContext;\n (function (InlineValueContext) {\n /**\n * Creates a new InlineValueContext literal.\n */\n function create(frameId, stoppedLocation) {\n return { frameId: frameId, stoppedLocation: stoppedLocation };\n }\n InlineValueContext.create = create;\n /**\n * Checks whether the given literal conforms to the [InlineValueContext](#InlineValueContext) interface.\n */\n function is(value) {\n var candidate = value;\n return Is.defined(candidate) && Range.is(value.stoppedLocation);\n }\n InlineValueContext.is = is;\n })(InlineValueContext = exports.InlineValueContext || (exports.InlineValueContext = {}));\n /**\n * Inlay hint kinds.\n *\n * @since 3.17.0\n */\n var InlayHintKind;\n (function (InlayHintKind) {\n /**\n * An inlay hint that for a type annotation.\n */\n InlayHintKind.Type = 1;\n /**\n * An inlay hint that is for a parameter.\n */\n InlayHintKind.Parameter = 2;\n function is(value) {\n return value === 1 || value === 2;\n }\n InlayHintKind.is = is;\n })(InlayHintKind = exports.InlayHintKind || (exports.InlayHintKind = {}));\n var InlayHintLabelPart;\n (function (InlayHintLabelPart) {\n function create(value) {\n return { value: value };\n }\n InlayHintLabelPart.create = create;\n function is(value) {\n var candidate = value;\n return Is.objectLiteral(candidate)\n && (candidate.tooltip === undefined || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip))\n && (candidate.location === undefined || Location.is(candidate.location))\n && (candidate.command === undefined || Command.is(candidate.command));\n }\n InlayHintLabelPart.is = is;\n })(InlayHintLabelPart = exports.InlayHintLabelPart || (exports.InlayHintLabelPart = {}));\n var InlayHint;\n (function (InlayHint) {\n function create(position, label, kind) {\n var result = { position: position, label: label };\n if (kind !== undefined) {\n result.kind = kind;\n }\n return result;\n }\n InlayHint.create = create;\n function is(value) {\n var candidate = value;\n return Is.objectLiteral(candidate) && Position.is(candidate.position)\n && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is))\n && (candidate.kind === undefined || InlayHintKind.is(candidate.kind))\n && (candidate.textEdits === undefined) || Is.typedArray(candidate.textEdits, TextEdit.is)\n && (candidate.tooltip === undefined || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip))\n && (candidate.paddingLeft === undefined || Is.boolean(candidate.paddingLeft))\n && (candidate.paddingRight === undefined || Is.boolean(candidate.paddingRight));\n }\n InlayHint.is = is;\n })(InlayHint = exports.InlayHint || (exports.InlayHint = {}));\n var WorkspaceFolder;\n (function (WorkspaceFolder) {\n function is(value) {\n var candidate = value;\n return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n }\n WorkspaceFolder.is = is;\n })(WorkspaceFolder = exports.WorkspaceFolder || (exports.WorkspaceFolder = {}));\n exports.EOL = ['\\n', '\\r\\n', '\\r'];\n /**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\n 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 version The document's version.\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 = exports.TextDocument || (exports.TextDocument = {}));\n /**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\n var 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 }());\n var 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});\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.ProtocolNotificationType = exports.ProtocolNotificationType0 = exports.ProtocolRequestType = exports.ProtocolRequestType0 = exports.RegistrationType = exports.MessageDirection = void 0;\nconst vscode_jsonrpc_1 = require(\"vscode-jsonrpc\");\nvar MessageDirection;\n(function (MessageDirection) {\n MessageDirection[\"clientToServer\"] = \"clientToServer\";\n MessageDirection[\"serverToClient\"] = \"serverToClient\";\n MessageDirection[\"both\"] = \"both\";\n})(MessageDirection = exports.MessageDirection || (exports.MessageDirection = {}));\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//# 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 LocationLink 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 [TextDocumentPositionParams]\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.method = 'workspace/workspaceFolders';\n WorkspaceFoldersRequest.messageDirection = messages_1.MessageDirection.serverToClient;\n WorkspaceFoldersRequest.type = new messages_1.ProtocolRequestType0(WorkspaceFoldersRequest.method);\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.method = 'workspace/didChangeWorkspaceFolders';\n DidChangeWorkspaceFoldersNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n DidChangeWorkspaceFoldersNotification.type = new messages_1.ProtocolNotificationType(DidChangeWorkspaceFoldersNotification.method);\n})(DidChangeWorkspaceFoldersNotification = exports.DidChangeWorkspaceFoldersNotification || (exports.DidChangeWorkspaceFoldersNotification = {}));\n//# sourceMappingURL=protocol.workspaceFolder.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//---- Get Configuration request ----\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.method = 'workspace/configuration';\n ConfigurationRequest.messageDirection = messages_1.MessageDirection.serverToClient;\n ConfigurationRequest.type = new messages_1.ProtocolRequestType(ConfigurationRequest.method);\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.method = 'textDocument/colorPresentation';\n ColorPresentationRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n ColorPresentationRequest.type = new messages_1.ProtocolRequestType(ColorPresentationRequest.method);\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 = void 0;\nconst messages_1 = require(\"./messages\");\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.messageDirection = messages_1.MessageDirection.clientToServer;\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 LocationLink 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 [TextDocumentPositionParams]\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.method = 'window/workDoneProgress/create';\n WorkDoneProgressCreateRequest.messageDirection = messages_1.MessageDirection.serverToClient;\n WorkDoneProgressCreateRequest.type = new messages_1.ProtocolRequestType(WorkDoneProgressCreateRequest.method);\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.method = 'window/workDoneProgress/cancel';\n WorkDoneProgressCancelNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n WorkDoneProgressCancelNotification.type = new messages_1.ProtocolNotificationType(WorkDoneProgressCancelNotification.method);\n})(WorkDoneProgressCancelNotification = exports.WorkDoneProgressCancelNotification || (exports.WorkDoneProgressCancelNotification = {}));\n//# sourceMappingURL=protocol.progress.js.map", "\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) TypeFox, Microsoft 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 an incoming or outgoing call hierarchy.\n *\n * @since 3.16.0\n */\nvar CallHierarchyPrepareRequest;\n(function (CallHierarchyPrepareRequest) {\n CallHierarchyPrepareRequest.method = 'textDocument/prepareCallHierarchy';\n CallHierarchyPrepareRequest.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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 = void 0;\nconst messages_1 = require(\"./messages\");\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.messageDirection = messages_1.MessageDirection.clientToServer;\n SemanticTokensRequest.type = new messages_1.ProtocolRequestType(SemanticTokensRequest.method);\n SemanticTokensRequest.registrationMethod = SemanticTokensRegistrationType.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.messageDirection = messages_1.MessageDirection.clientToServer;\n SemanticTokensDeltaRequest.type = new messages_1.ProtocolRequestType(SemanticTokensDeltaRequest.method);\n SemanticTokensDeltaRequest.registrationMethod = SemanticTokensRegistrationType.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.messageDirection = messages_1.MessageDirection.clientToServer;\n SemanticTokensRangeRequest.type = new messages_1.ProtocolRequestType(SemanticTokensRangeRequest.method);\n SemanticTokensRangeRequest.registrationMethod = SemanticTokensRegistrationType.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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.serverToClient;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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) TypeFox, Microsoft 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.TypeHierarchySubtypesRequest = exports.TypeHierarchySupertypesRequest = exports.TypeHierarchyPrepareRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A request to result a `TypeHierarchyItem` in a document at a given position.\n * Can be used as an input to a subtypes or supertypes type hierarchy.\n *\n * @since 3.17.0\n */\nvar TypeHierarchyPrepareRequest;\n(function (TypeHierarchyPrepareRequest) {\n TypeHierarchyPrepareRequest.method = 'textDocument/prepareTypeHierarchy';\n TypeHierarchyPrepareRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n TypeHierarchyPrepareRequest.type = new messages_1.ProtocolRequestType(TypeHierarchyPrepareRequest.method);\n})(TypeHierarchyPrepareRequest = exports.TypeHierarchyPrepareRequest || (exports.TypeHierarchyPrepareRequest = {}));\n/**\n * A request to resolve the supertypes for a given `TypeHierarchyItem`.\n *\n * @since 3.17.0\n */\nvar TypeHierarchySupertypesRequest;\n(function (TypeHierarchySupertypesRequest) {\n TypeHierarchySupertypesRequest.method = 'typeHierarchy/supertypes';\n TypeHierarchySupertypesRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n TypeHierarchySupertypesRequest.type = new messages_1.ProtocolRequestType(TypeHierarchySupertypesRequest.method);\n})(TypeHierarchySupertypesRequest = exports.TypeHierarchySupertypesRequest || (exports.TypeHierarchySupertypesRequest = {}));\n/**\n * A request to resolve the subtypes for a given `TypeHierarchyItem`.\n *\n * @since 3.17.0\n */\nvar TypeHierarchySubtypesRequest;\n(function (TypeHierarchySubtypesRequest) {\n TypeHierarchySubtypesRequest.method = 'typeHierarchy/subtypes';\n TypeHierarchySubtypesRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n TypeHierarchySubtypesRequest.type = new messages_1.ProtocolRequestType(TypeHierarchySubtypesRequest.method);\n})(TypeHierarchySubtypesRequest = exports.TypeHierarchySubtypesRequest || (exports.TypeHierarchySubtypesRequest = {}));\n//# sourceMappingURL=protocol.typeHierarchy.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.InlineValueRefreshRequest = exports.InlineValueRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A request to provide inline values in a document. The request's parameter is of\n * type [InlineValueParams](#InlineValueParams), the response is of type\n * [InlineValue[]](#InlineValue[]) or a Thenable that resolves to such.\n *\n * @since 3.17.0\n */\nvar InlineValueRequest;\n(function (InlineValueRequest) {\n InlineValueRequest.method = 'textDocument/inlineValue';\n InlineValueRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n InlineValueRequest.type = new messages_1.ProtocolRequestType(InlineValueRequest.method);\n})(InlineValueRequest = exports.InlineValueRequest || (exports.InlineValueRequest = {}));\n/**\n * @since 3.17.0\n */\nvar InlineValueRefreshRequest;\n(function (InlineValueRefreshRequest) {\n InlineValueRefreshRequest.method = `workspace/inlineValue/refresh`;\n InlineValueRefreshRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n InlineValueRefreshRequest.type = new messages_1.ProtocolRequestType0(InlineValueRefreshRequest.method);\n})(InlineValueRefreshRequest = exports.InlineValueRefreshRequest || (exports.InlineValueRefreshRequest = {}));\n//# sourceMappingURL=protocol.inlineValue.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.InlayHintRefreshRequest = exports.InlayHintResolveRequest = exports.InlayHintRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A request to provide inlay hints in a document. The request's parameter is of\n * type [InlayHintsParams](#InlayHintsParams), the response is of type\n * [InlayHint[]](#InlayHint[]) or a Thenable that resolves to such.\n *\n * @since 3.17.0\n */\nvar InlayHintRequest;\n(function (InlayHintRequest) {\n InlayHintRequest.method = 'textDocument/inlayHint';\n InlayHintRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n InlayHintRequest.type = new messages_1.ProtocolRequestType(InlayHintRequest.method);\n})(InlayHintRequest = exports.InlayHintRequest || (exports.InlayHintRequest = {}));\n/**\n * A request to resolve additional properties for an inlay hint.\n * The request's parameter is of type [InlayHint](#InlayHint), the response is\n * of type [InlayHint](#InlayHint) or a Thenable that resolves to such.\n *\n * @since 3.17.0\n */\nvar InlayHintResolveRequest;\n(function (InlayHintResolveRequest) {\n InlayHintResolveRequest.method = 'inlayHint/resolve';\n InlayHintResolveRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n InlayHintResolveRequest.type = new messages_1.ProtocolRequestType(InlayHintResolveRequest.method);\n})(InlayHintResolveRequest = exports.InlayHintResolveRequest || (exports.InlayHintResolveRequest = {}));\n/**\n * @since 3.17.0\n */\nvar InlayHintRefreshRequest;\n(function (InlayHintRefreshRequest) {\n InlayHintRefreshRequest.method = `workspace/inlayHint/refresh`;\n InlayHintRefreshRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n InlayHintRefreshRequest.type = new messages_1.ProtocolRequestType0(InlayHintRefreshRequest.method);\n})(InlayHintRefreshRequest = exports.InlayHintRefreshRequest || (exports.InlayHintRefreshRequest = {}));\n//# sourceMappingURL=protocol.inlayHint.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.DiagnosticRefreshRequest = exports.WorkspaceDiagnosticRequest = exports.DocumentDiagnosticRequest = exports.DocumentDiagnosticReportKind = exports.DiagnosticServerCancellationData = void 0;\nconst vscode_jsonrpc_1 = require(\"vscode-jsonrpc\");\nconst Is = require(\"./utils/is\");\nconst messages_1 = require(\"./messages\");\n/**\n * @since 3.17.0\n */\nvar DiagnosticServerCancellationData;\n(function (DiagnosticServerCancellationData) {\n function is(value) {\n const candidate = value;\n return candidate && Is.boolean(candidate.retriggerRequest);\n }\n DiagnosticServerCancellationData.is = is;\n})(DiagnosticServerCancellationData = exports.DiagnosticServerCancellationData || (exports.DiagnosticServerCancellationData = {}));\n/**\n * The document diagnostic report kinds.\n *\n * @since 3.17.0\n */\nvar DocumentDiagnosticReportKind;\n(function (DocumentDiagnosticReportKind) {\n /**\n * A diagnostic report with a full\n * set of problems.\n */\n DocumentDiagnosticReportKind.Full = 'full';\n /**\n * A report indicating that the last\n * returned report is still accurate.\n */\n DocumentDiagnosticReportKind.Unchanged = 'unchanged';\n})(DocumentDiagnosticReportKind = exports.DocumentDiagnosticReportKind || (exports.DocumentDiagnosticReportKind = {}));\n/**\n * The document diagnostic request definition.\n *\n * @since 3.17.0\n */\nvar DocumentDiagnosticRequest;\n(function (DocumentDiagnosticRequest) {\n DocumentDiagnosticRequest.method = 'textDocument/diagnostic';\n DocumentDiagnosticRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n DocumentDiagnosticRequest.type = new messages_1.ProtocolRequestType(DocumentDiagnosticRequest.method);\n DocumentDiagnosticRequest.partialResult = new vscode_jsonrpc_1.ProgressType();\n})(DocumentDiagnosticRequest = exports.DocumentDiagnosticRequest || (exports.DocumentDiagnosticRequest = {}));\n/**\n * The workspace diagnostic request definition.\n *\n * @since 3.17.0\n */\nvar WorkspaceDiagnosticRequest;\n(function (WorkspaceDiagnosticRequest) {\n WorkspaceDiagnosticRequest.method = 'workspace/diagnostic';\n WorkspaceDiagnosticRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n WorkspaceDiagnosticRequest.type = new messages_1.ProtocolRequestType(WorkspaceDiagnosticRequest.method);\n WorkspaceDiagnosticRequest.partialResult = new vscode_jsonrpc_1.ProgressType();\n})(WorkspaceDiagnosticRequest = exports.WorkspaceDiagnosticRequest || (exports.WorkspaceDiagnosticRequest = {}));\n/**\n * The diagnostic refresh request definition.\n *\n * @since 3.17.0\n */\nvar DiagnosticRefreshRequest;\n(function (DiagnosticRefreshRequest) {\n DiagnosticRefreshRequest.method = `workspace/diagnostic/refresh`;\n DiagnosticRefreshRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n DiagnosticRefreshRequest.type = new messages_1.ProtocolRequestType0(DiagnosticRefreshRequest.method);\n})(DiagnosticRefreshRequest = exports.DiagnosticRefreshRequest || (exports.DiagnosticRefreshRequest = {}));\n//# sourceMappingURL=protocol.diagnostic.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.DidCloseNotebookDocumentNotification = exports.DidSaveNotebookDocumentNotification = exports.DidChangeNotebookDocumentNotification = exports.NotebookCellArrayChange = exports.DidOpenNotebookDocumentNotification = exports.NotebookDocumentSyncRegistrationType = exports.NotebookDocument = exports.NotebookCell = exports.ExecutionSummary = exports.NotebookCellKind = void 0;\nconst vscode_languageserver_types_1 = require(\"vscode-languageserver-types\");\nconst Is = require(\"./utils/is\");\nconst messages_1 = require(\"./messages\");\n/**\n * A notebook cell kind.\n *\n * @since 3.17.0\n */\nvar NotebookCellKind;\n(function (NotebookCellKind) {\n /**\n * A markup-cell is formatted source that is used for display.\n */\n NotebookCellKind.Markup = 1;\n /**\n * A code-cell is source code.\n */\n NotebookCellKind.Code = 2;\n function is(value) {\n return value === 1 || value === 2;\n }\n NotebookCellKind.is = is;\n})(NotebookCellKind = exports.NotebookCellKind || (exports.NotebookCellKind = {}));\nvar ExecutionSummary;\n(function (ExecutionSummary) {\n function create(executionOrder, success) {\n const result = { executionOrder };\n if (success === true || success === false) {\n result.success = success;\n }\n return result;\n }\n ExecutionSummary.create = create;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && vscode_languageserver_types_1.uinteger.is(candidate.executionOrder) && (candidate.success === undefined || Is.boolean(candidate.success));\n }\n ExecutionSummary.is = is;\n function equals(one, other) {\n if (one === other) {\n return true;\n }\n if (one === null || one === undefined || other === null || other === undefined) {\n return false;\n }\n return one.executionOrder === other.executionOrder && one.success === other.success;\n }\n ExecutionSummary.equals = equals;\n})(ExecutionSummary = exports.ExecutionSummary || (exports.ExecutionSummary = {}));\nvar NotebookCell;\n(function (NotebookCell) {\n function create(kind, document) {\n return { kind, document };\n }\n NotebookCell.create = create;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && NotebookCellKind.is(candidate.kind) && vscode_languageserver_types_1.DocumentUri.is(candidate.document) &&\n (candidate.metadata === undefined || Is.objectLiteral(candidate.metadata));\n }\n NotebookCell.is = is;\n function diff(one, two) {\n const result = new Set();\n if (one.document !== two.document) {\n result.add('document');\n }\n if (one.kind !== two.kind) {\n result.add('kind');\n }\n if (one.executionSummary !== two.executionSummary) {\n result.add('executionSummary');\n }\n if ((one.metadata !== undefined || two.metadata !== undefined) && !equalsMetadata(one.metadata, two.metadata)) {\n result.add('metadata');\n }\n if ((one.executionSummary !== undefined || two.executionSummary !== undefined) && !ExecutionSummary.equals(one.executionSummary, two.executionSummary)) {\n result.add('executionSummary');\n }\n return result;\n }\n NotebookCell.diff = diff;\n function equalsMetadata(one, other) {\n if (one === other) {\n return true;\n }\n if (one === null || one === undefined || other === null || other === undefined) {\n return false;\n }\n if (typeof one !== typeof other) {\n return false;\n }\n if (typeof one !== 'object') {\n return false;\n }\n const oneArray = Array.isArray(one);\n const otherArray = Array.isArray(other);\n if (oneArray !== otherArray) {\n return false;\n }\n if (oneArray && otherArray) {\n if (one.length !== other.length) {\n return false;\n }\n for (let i = 0; i < one.length; i++) {\n if (!equalsMetadata(one[i], other[i])) {\n return false;\n }\n }\n }\n if (Is.objectLiteral(one) && Is.objectLiteral(other)) {\n const oneKeys = Object.keys(one);\n const otherKeys = Object.keys(other);\n if (oneKeys.length !== otherKeys.length) {\n return false;\n }\n oneKeys.sort();\n otherKeys.sort();\n if (!equalsMetadata(oneKeys, otherKeys)) {\n return false;\n }\n for (let i = 0; i < oneKeys.length; i++) {\n const prop = oneKeys[i];\n if (!equalsMetadata(one[prop], other[prop])) {\n return false;\n }\n }\n }\n return true;\n }\n})(NotebookCell = exports.NotebookCell || (exports.NotebookCell = {}));\nvar NotebookDocument;\n(function (NotebookDocument) {\n function create(uri, notebookType, version, cells) {\n return { uri, notebookType, version, cells };\n }\n NotebookDocument.create = create;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.uri) && vscode_languageserver_types_1.integer.is(candidate.version) && Is.typedArray(candidate.cells, NotebookCell.is);\n }\n NotebookDocument.is = is;\n})(NotebookDocument = exports.NotebookDocument || (exports.NotebookDocument = {}));\nvar NotebookDocumentSyncRegistrationType;\n(function (NotebookDocumentSyncRegistrationType) {\n NotebookDocumentSyncRegistrationType.method = 'notebookDocument/sync';\n NotebookDocumentSyncRegistrationType.messageDirection = messages_1.MessageDirection.clientToServer;\n NotebookDocumentSyncRegistrationType.type = new messages_1.RegistrationType(NotebookDocumentSyncRegistrationType.method);\n})(NotebookDocumentSyncRegistrationType = exports.NotebookDocumentSyncRegistrationType || (exports.NotebookDocumentSyncRegistrationType = {}));\n/**\n * A notification sent when a notebook opens.\n *\n * @since 3.17.0\n */\nvar DidOpenNotebookDocumentNotification;\n(function (DidOpenNotebookDocumentNotification) {\n DidOpenNotebookDocumentNotification.method = 'notebookDocument/didOpen';\n DidOpenNotebookDocumentNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n DidOpenNotebookDocumentNotification.type = new messages_1.ProtocolNotificationType(DidOpenNotebookDocumentNotification.method);\n DidOpenNotebookDocumentNotification.registrationMethod = NotebookDocumentSyncRegistrationType.method;\n})(DidOpenNotebookDocumentNotification = exports.DidOpenNotebookDocumentNotification || (exports.DidOpenNotebookDocumentNotification = {}));\nvar NotebookCellArrayChange;\n(function (NotebookCellArrayChange) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && vscode_languageserver_types_1.uinteger.is(candidate.start) && vscode_languageserver_types_1.uinteger.is(candidate.deleteCount) && (candidate.cells === undefined || Is.typedArray(candidate.cells, NotebookCell.is));\n }\n NotebookCellArrayChange.is = is;\n function create(start, deleteCount, cells) {\n const result = { start, deleteCount };\n if (cells !== undefined) {\n result.cells = cells;\n }\n return result;\n }\n NotebookCellArrayChange.create = create;\n})(NotebookCellArrayChange = exports.NotebookCellArrayChange || (exports.NotebookCellArrayChange = {}));\nvar DidChangeNotebookDocumentNotification;\n(function (DidChangeNotebookDocumentNotification) {\n DidChangeNotebookDocumentNotification.method = 'notebookDocument/didChange';\n DidChangeNotebookDocumentNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n DidChangeNotebookDocumentNotification.type = new messages_1.ProtocolNotificationType(DidChangeNotebookDocumentNotification.method);\n DidChangeNotebookDocumentNotification.registrationMethod = NotebookDocumentSyncRegistrationType.method;\n})(DidChangeNotebookDocumentNotification = exports.DidChangeNotebookDocumentNotification || (exports.DidChangeNotebookDocumentNotification = {}));\n/**\n * A notification sent when a notebook document is saved.\n *\n * @since 3.17.0\n */\nvar DidSaveNotebookDocumentNotification;\n(function (DidSaveNotebookDocumentNotification) {\n DidSaveNotebookDocumentNotification.method = 'notebookDocument/didSave';\n DidSaveNotebookDocumentNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n DidSaveNotebookDocumentNotification.type = new messages_1.ProtocolNotificationType(DidSaveNotebookDocumentNotification.method);\n DidSaveNotebookDocumentNotification.registrationMethod = NotebookDocumentSyncRegistrationType.method;\n})(DidSaveNotebookDocumentNotification = exports.DidSaveNotebookDocumentNotification || (exports.DidSaveNotebookDocumentNotification = {}));\n/**\n * A notification sent when a notebook closes.\n *\n * @since 3.17.0\n */\nvar DidCloseNotebookDocumentNotification;\n(function (DidCloseNotebookDocumentNotification) {\n DidCloseNotebookDocumentNotification.method = 'notebookDocument/didClose';\n DidCloseNotebookDocumentNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n DidCloseNotebookDocumentNotification.type = new messages_1.ProtocolNotificationType(DidCloseNotebookDocumentNotification.method);\n DidCloseNotebookDocumentNotification.registrationMethod = NotebookDocumentSyncRegistrationType.method;\n})(DidCloseNotebookDocumentNotification = exports.DidCloseNotebookDocumentNotification || (exports.DidCloseNotebookDocumentNotification = {}));\n//# sourceMappingURL=protocol.notebook.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.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.RelativePattern = 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.InitializeErrorCodes = exports.InitializeRequest = exports.WorkDoneProgressOptions = exports.TextDocumentRegistrationOptions = exports.StaticRegistrationOptions = exports.PositionEncodingKind = exports.FailureHandlingKind = exports.ResourceOperationKind = exports.UnregistrationRequest = exports.RegistrationRequest = exports.DocumentSelector = exports.NotebookCellTextDocumentFilter = exports.NotebookDocumentFilter = exports.TextDocumentFilter = void 0;\nexports.TypeHierarchySubtypesRequest = exports.TypeHierarchyPrepareRequest = exports.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.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 = exports.DocumentLinkRequest = exports.CodeLensRefreshRequest = exports.CodeLensResolveRequest = exports.CodeLensRequest = exports.WorkspaceSymbolResolveRequest = void 0;\nexports.DidCloseNotebookDocumentNotification = exports.DidSaveNotebookDocumentNotification = exports.DidChangeNotebookDocumentNotification = exports.NotebookCellArrayChange = exports.DidOpenNotebookDocumentNotification = exports.NotebookDocumentSyncRegistrationType = exports.NotebookDocument = exports.NotebookCell = exports.ExecutionSummary = exports.NotebookCellKind = exports.DiagnosticRefreshRequest = exports.WorkspaceDiagnosticRequest = exports.DocumentDiagnosticRequest = exports.DocumentDiagnosticReportKind = exports.DiagnosticServerCancellationData = exports.InlayHintRefreshRequest = exports.InlayHintResolveRequest = exports.InlayHintRequest = exports.InlineValueRefreshRequest = exports.InlineValueRequest = exports.TypeHierarchySupertypesRequest = void 0;\nconst messages_1 = require(\"./messages\");\nconst vscode_languageserver_types_1 = require(\"vscode-languageserver-types\");\nconst Is = require(\"./utils/is\");\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_workspaceFolder_1 = require(\"./protocol.workspaceFolder\");\nObject.defineProperty(exports, \"WorkspaceFoldersRequest\", { enumerable: true, get: function () { return protocol_workspaceFolder_1.WorkspaceFoldersRequest; } });\nObject.defineProperty(exports, \"DidChangeWorkspaceFoldersNotification\", { enumerable: true, get: function () { return protocol_workspaceFolder_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, \"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; } });\nconst protocol_typeHierarchy_1 = require(\"./protocol.typeHierarchy\");\nObject.defineProperty(exports, \"TypeHierarchyPrepareRequest\", { enumerable: true, get: function () { return protocol_typeHierarchy_1.TypeHierarchyPrepareRequest; } });\nObject.defineProperty(exports, \"TypeHierarchySubtypesRequest\", { enumerable: true, get: function () { return protocol_typeHierarchy_1.TypeHierarchySubtypesRequest; } });\nObject.defineProperty(exports, \"TypeHierarchySupertypesRequest\", { enumerable: true, get: function () { return protocol_typeHierarchy_1.TypeHierarchySupertypesRequest; } });\nconst protocol_inlineValue_1 = require(\"./protocol.inlineValue\");\nObject.defineProperty(exports, \"InlineValueRequest\", { enumerable: true, get: function () { return protocol_inlineValue_1.InlineValueRequest; } });\nObject.defineProperty(exports, \"InlineValueRefreshRequest\", { enumerable: true, get: function () { return protocol_inlineValue_1.InlineValueRefreshRequest; } });\nconst protocol_inlayHint_1 = require(\"./protocol.inlayHint\");\nObject.defineProperty(exports, \"InlayHintRequest\", { enumerable: true, get: function () { return protocol_inlayHint_1.InlayHintRequest; } });\nObject.defineProperty(exports, \"InlayHintResolveRequest\", { enumerable: true, get: function () { return protocol_inlayHint_1.InlayHintResolveRequest; } });\nObject.defineProperty(exports, \"InlayHintRefreshRequest\", { enumerable: true, get: function () { return protocol_inlayHint_1.InlayHintRefreshRequest; } });\nconst protocol_diagnostic_1 = require(\"./protocol.diagnostic\");\nObject.defineProperty(exports, \"DiagnosticServerCancellationData\", { enumerable: true, get: function () { return protocol_diagnostic_1.DiagnosticServerCancellationData; } });\nObject.defineProperty(exports, \"DocumentDiagnosticReportKind\", { enumerable: true, get: function () { return protocol_diagnostic_1.DocumentDiagnosticReportKind; } });\nObject.defineProperty(exports, \"DocumentDiagnosticRequest\", { enumerable: true, get: function () { return protocol_diagnostic_1.DocumentDiagnosticRequest; } });\nObject.defineProperty(exports, \"WorkspaceDiagnosticRequest\", { enumerable: true, get: function () { return protocol_diagnostic_1.WorkspaceDiagnosticRequest; } });\nObject.defineProperty(exports, \"DiagnosticRefreshRequest\", { enumerable: true, get: function () { return protocol_diagnostic_1.DiagnosticRefreshRequest; } });\nconst protocol_notebook_1 = require(\"./protocol.notebook\");\nObject.defineProperty(exports, \"NotebookCellKind\", { enumerable: true, get: function () { return protocol_notebook_1.NotebookCellKind; } });\nObject.defineProperty(exports, \"ExecutionSummary\", { enumerable: true, get: function () { return protocol_notebook_1.ExecutionSummary; } });\nObject.defineProperty(exports, \"NotebookCell\", { enumerable: true, get: function () { return protocol_notebook_1.NotebookCell; } });\nObject.defineProperty(exports, \"NotebookDocument\", { enumerable: true, get: function () { return protocol_notebook_1.NotebookDocument; } });\nObject.defineProperty(exports, \"NotebookDocumentSyncRegistrationType\", { enumerable: true, get: function () { return protocol_notebook_1.NotebookDocumentSyncRegistrationType; } });\nObject.defineProperty(exports, \"DidOpenNotebookDocumentNotification\", { enumerable: true, get: function () { return protocol_notebook_1.DidOpenNotebookDocumentNotification; } });\nObject.defineProperty(exports, \"NotebookCellArrayChange\", { enumerable: true, get: function () { return protocol_notebook_1.NotebookCellArrayChange; } });\nObject.defineProperty(exports, \"DidChangeNotebookDocumentNotification\", { enumerable: true, get: function () { return protocol_notebook_1.DidChangeNotebookDocumentNotification; } });\nObject.defineProperty(exports, \"DidSaveNotebookDocumentNotification\", { enumerable: true, get: function () { return protocol_notebook_1.DidSaveNotebookDocumentNotification; } });\nObject.defineProperty(exports, \"DidCloseNotebookDocumentNotification\", { enumerable: true, get: function () { return protocol_notebook_1.DidCloseNotebookDocumentNotification; } });\n// @ts-ignore: to avoid inlining LocationLink as dynamic import\nlet __noDynamicImport;\n/**\n * The TextDocumentFilter namespace provides helper functions to work with\n * [TextDocumentFilter](#TextDocumentFilter) literals.\n *\n * @since 3.17.0\n */\nvar TextDocumentFilter;\n(function (TextDocumentFilter) {\n function is(value) {\n const candidate = value;\n return Is.string(candidate.language) || Is.string(candidate.scheme) || Is.string(candidate.pattern);\n }\n TextDocumentFilter.is = is;\n})(TextDocumentFilter = exports.TextDocumentFilter || (exports.TextDocumentFilter = {}));\n/**\n * The NotebookDocumentFilter namespace provides helper functions to work with\n * [NotebookDocumentFilter](#NotebookDocumentFilter) literals.\n *\n * @since 3.17.0\n */\nvar NotebookDocumentFilter;\n(function (NotebookDocumentFilter) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && (Is.string(candidate.notebookType) || Is.string(candidate.scheme) || Is.string(candidate.pattern));\n }\n NotebookDocumentFilter.is = is;\n})(NotebookDocumentFilter = exports.NotebookDocumentFilter || (exports.NotebookDocumentFilter = {}));\n/**\n * The NotebookCellTextDocumentFilter namespace provides helper functions to work with\n * [NotebookCellTextDocumentFilter](#NotebookCellTextDocumentFilter) literals.\n *\n * @since 3.17.0\n */\nvar NotebookCellTextDocumentFilter;\n(function (NotebookCellTextDocumentFilter) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate)\n && (Is.string(candidate.notebook) || NotebookDocumentFilter.is(candidate.notebook))\n && (candidate.language === undefined || Is.string(candidate.language));\n }\n NotebookCellTextDocumentFilter.is = is;\n})(NotebookCellTextDocumentFilter = exports.NotebookCellTextDocumentFilter || (exports.NotebookCellTextDocumentFilter = {}));\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) && !TextDocumentFilter.is(elem) && !NotebookCellTextDocumentFilter.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.method = 'client/registerCapability';\n RegistrationRequest.messageDirection = messages_1.MessageDirection.serverToClient;\n RegistrationRequest.type = new messages_1.ProtocolRequestType(RegistrationRequest.method);\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.method = 'client/unregisterCapability';\n UnregistrationRequest.messageDirection = messages_1.MessageDirection.serverToClient;\n UnregistrationRequest.type = new messages_1.ProtocolRequestType(UnregistrationRequest.method);\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 * A set of predefined position encoding kinds.\n *\n * @since 3.17.0\n */\nvar PositionEncodingKind;\n(function (PositionEncodingKind) {\n /**\n * Character offsets count UTF-8 code units.\n */\n PositionEncodingKind.UTF8 = 'utf-8';\n /**\n * Character offsets count UTF-16 code units.\n *\n * This is the default and must always be supported\n * by servers\n */\n PositionEncodingKind.UTF16 = 'utf-16';\n /**\n * Character offsets count UTF-32 code units.\n *\n * Implementation note: these are the same as Unicode code points,\n * so this `PositionEncodingKind` may also be used for an\n * encoding-agnostic representation of character offsets.\n */\n PositionEncodingKind.UTF32 = 'utf-32';\n})(PositionEncodingKind = exports.PositionEncodingKind || (exports.PositionEncodingKind = {}));\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.method = 'initialize';\n InitializeRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n InitializeRequest.type = new messages_1.ProtocolRequestType(InitializeRequest.method);\n})(InitializeRequest = exports.InitializeRequest || (exports.InitializeRequest = {}));\n/**\n * Known error codes for an `InitializeErrorCodes`;\n */\nvar InitializeErrorCodes;\n(function (InitializeErrorCodes) {\n /**\n * If the protocol version provided by the client can't be handled by the server.\n *\n * @deprecated This initialize error got replaced by client capabilities. There is\n * no version handshake in version 3.0x\n */\n InitializeErrorCodes.unknownProtocolVersion = 1;\n})(InitializeErrorCodes = exports.InitializeErrorCodes || (exports.InitializeErrorCodes = {}));\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.method = 'initialized';\n InitializedNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n InitializedNotification.type = new messages_1.ProtocolNotificationType(InitializedNotification.method);\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.method = 'shutdown';\n ShutdownRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n ShutdownRequest.type = new messages_1.ProtocolRequestType0(ShutdownRequest.method);\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.method = 'exit';\n ExitNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n ExitNotification.type = new messages_1.ProtocolNotificationType0(ExitNotification.method);\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.method = 'workspace/didChangeConfiguration';\n DidChangeConfigurationNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n DidChangeConfigurationNotification.type = new messages_1.ProtocolNotificationType(DidChangeConfigurationNotification.method);\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.method = 'window/showMessage';\n ShowMessageNotification.messageDirection = messages_1.MessageDirection.serverToClient;\n ShowMessageNotification.type = new messages_1.ProtocolNotificationType(ShowMessageNotification.method);\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.method = 'window/showMessageRequest';\n ShowMessageRequest.messageDirection = messages_1.MessageDirection.serverToClient;\n ShowMessageRequest.type = new messages_1.ProtocolRequestType(ShowMessageRequest.method);\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.method = 'window/logMessage';\n LogMessageNotification.messageDirection = messages_1.MessageDirection.serverToClient;\n LogMessageNotification.type = new messages_1.ProtocolNotificationType(LogMessageNotification.method);\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.method = 'telemetry/event';\n TelemetryEventNotification.messageDirection = messages_1.MessageDirection.serverToClient;\n TelemetryEventNotification.type = new messages_1.ProtocolNotificationType(TelemetryEventNotification.method);\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.method = 'workspace/didChangeWatchedFiles';\n DidChangeWatchedFilesNotification.messageDirection = messages_1.MessageDirection.clientToServer;\n DidChangeWatchedFilesNotification.type = new messages_1.ProtocolNotificationType(DidChangeWatchedFilesNotification.method);\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 RelativePattern;\n(function (RelativePattern) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && (vscode_languageserver_types_1.URI.is(candidate.baseUri) || vscode_languageserver_types_1.WorkspaceFolder.is(candidate.baseUri)) && Is.string(candidate.pattern);\n }\n RelativePattern.is = is;\n})(RelativePattern = exports.RelativePattern || (exports.RelativePattern = {}));\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.method = 'textDocument/publishDiagnostics';\n PublishDiagnosticsNotification.messageDirection = messages_1.MessageDirection.serverToClient;\n PublishDiagnosticsNotification.type = new messages_1.ProtocolNotificationType(PublishDiagnosticsNotification.method);\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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 *\n * @since 3.17.0 - support for WorkspaceSymbol in the returned data. Clients\n * need to advertise support for WorkspaceSymbols via the client capability\n * `workspace.symbol.resolveSupport`.\n *\n */\nvar WorkspaceSymbolRequest;\n(function (WorkspaceSymbolRequest) {\n WorkspaceSymbolRequest.method = 'workspace/symbol';\n WorkspaceSymbolRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n WorkspaceSymbolRequest.type = new messages_1.ProtocolRequestType(WorkspaceSymbolRequest.method);\n})(WorkspaceSymbolRequest = exports.WorkspaceSymbolRequest || (exports.WorkspaceSymbolRequest = {}));\n/**\n * A request to resolve the range inside the workspace\n * symbol's location.\n *\n * @since 3.17.0\n */\nvar WorkspaceSymbolResolveRequest;\n(function (WorkspaceSymbolResolveRequest) {\n WorkspaceSymbolResolveRequest.method = 'workspaceSymbol/resolve';\n WorkspaceSymbolResolveRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n WorkspaceSymbolResolveRequest.type = new messages_1.ProtocolRequestType(WorkspaceSymbolResolveRequest.method);\n})(WorkspaceSymbolResolveRequest = exports.WorkspaceSymbolResolveRequest || (exports.WorkspaceSymbolResolveRequest = {}));\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.serverToClient;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.messageDirection = messages_1.MessageDirection.clientToServer;\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.method = 'workspace/executeCommand';\n ExecuteCommandRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n ExecuteCommandRequest.type = new messages_1.ProtocolRequestType(ExecuteCommandRequest.method);\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.method = 'workspace/applyEdit';\n ApplyWorkspaceEditRequest.messageDirection = messages_1.MessageDirection.serverToClient;\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 (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 /**\n * A request failed but it was syntactically correct, e.g the\n * method name was known and the parameters were valid. The error\n * message should contain human readable information about why\n * the request failed.\n *\n * @since 3.17.0\n */\n LSPErrorCodes.RequestFailed = -32803;\n /**\n * The server cancelled the request. This error code should\n * only be used for requests that explicitly support being\n * server cancellable.\n *\n * @since 3.17.0\n */\n LSPErrorCodes.ServerCancelled = -32802;\n /**\n * The server detected that the content of a document got\n * modified outside normal conditions. A server should\n * NOT send this error code if it detects a content change\n * in it unprocessed messages. The result even computed\n * on an older state might still be useful for the client.\n *\n * If a client decides that a result is not of any use anymore\n * the client should cancel the request.\n */\n LSPErrorCodes.ContentModified = -32801;\n /**\n * The client has canceled a request and a server as detected\n * the cancel.\n */\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 var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 (0, 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.forEach = exports.mapAsync = exports.map = exports.clearTestMode = exports.setTestMode = exports.Semaphore = exports.Delayer = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nclass Delayer {\n constructor(defaultDelay) {\n this.defaultDelay = defaultDelay;\n this.timeout = undefined;\n this.completionPromise = undefined;\n this.onSuccess = undefined;\n this.task = undefined;\n }\n trigger(task, delay = this.defaultDelay) {\n this.task = task;\n if (delay >= 0) {\n this.cancelTimeout();\n }\n if (!this.completionPromise) {\n this.completionPromise = new Promise((resolve) => {\n this.onSuccess = resolve;\n }).then(() => {\n this.completionPromise = undefined;\n this.onSuccess = undefined;\n var result = this.task();\n this.task = undefined;\n return result;\n });\n }\n if (delay >= 0 || this.timeout === void 0) {\n this.timeout = (0, vscode_languageserver_protocol_1.RAL)().timer.setTimeout(() => {\n this.timeout = undefined;\n this.onSuccess(undefined);\n }, delay >= 0 ? delay : this.defaultDelay);\n }\n return this.completionPromise;\n }\n forceDelivery() {\n if (!this.completionPromise) {\n return undefined;\n }\n this.cancelTimeout();\n let result = this.task();\n this.completionPromise = undefined;\n this.onSuccess = undefined;\n this.task = undefined;\n return result;\n }\n isTriggered() {\n return this.timeout !== undefined;\n }\n cancel() {\n this.cancelTimeout();\n this.completionPromise = undefined;\n }\n cancelTimeout() {\n if (this.timeout !== undefined) {\n this.timeout.dispose();\n this.timeout = undefined;\n }\n }\n}\nexports.Delayer = Delayer;\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 (0, vscode_languageserver_protocol_1.RAL)().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;\nlet $test = false;\nfunction setTestMode() {\n $test = true;\n}\nexports.setTestMode = setTestMode;\nfunction clearTestMode() {\n $test = false;\n}\nexports.clearTestMode = clearTestMode;\nconst defaultYieldTimeout = 15 /*ms*/;\nclass Timer {\n constructor(yieldAfter = defaultYieldTimeout) {\n this.yieldAfter = $test === true ? Math.max(yieldAfter, 2) : Math.max(yieldAfter, defaultYieldTimeout);\n this.startTime = Date.now();\n this.counter = 0;\n this.total = 0;\n // start with a counter interval of 1.\n this.counterInterval = 1;\n }\n start() {\n this.counter = 0;\n this.total = 0;\n this.counterInterval = 1;\n this.startTime = Date.now();\n }\n shouldYield() {\n if (++this.counter >= this.counterInterval) {\n const timeTaken = Date.now() - this.startTime;\n const timeLeft = Math.max(0, this.yieldAfter - timeTaken);\n this.total += this.counter;\n this.counter = 0;\n if (timeTaken >= this.yieldAfter || timeLeft <= 1) {\n // Yield also if time left <= 1 since we compute the counter\n // for max < 2 ms.\n // Start with interval 1 again. We could do some calculation\n // with using 80% of the last counter however other things (GC)\n // affect the timing heavily since we have small timings (1 - 15ms).\n this.counterInterval = 1;\n this.total = 0;\n return true;\n }\n else {\n // Only increase the counter until we have spent <= 2 ms. Increasing\n // the counter further is very fragile since timing is influenced\n // by other things and can increase the counter too much. This will result\n // that we yield in average after [14 - 16]ms.\n switch (timeTaken) {\n case 0:\n case 1:\n this.counterInterval = this.total * 2;\n break;\n }\n }\n }\n return false;\n }\n}\nasync function map(items, func, token, options) {\n if (items.length === 0) {\n return [];\n }\n const result = new Array(items.length);\n const timer = new Timer(options?.yieldAfter);\n function convertBatch(start) {\n timer.start();\n for (let i = start; i < items.length; i++) {\n result[i] = func(items[i]);\n if (timer.shouldYield()) {\n options?.yieldCallback && options.yieldCallback();\n return i + 1;\n }\n }\n return -1;\n }\n // Convert the first batch sync on the same frame.\n let index = convertBatch(0);\n while (index !== -1) {\n if (token !== undefined && token.isCancellationRequested) {\n break;\n }\n index = await new Promise((resolve) => {\n (0, vscode_languageserver_protocol_1.RAL)().timer.setImmediate(() => {\n resolve(convertBatch(index));\n });\n });\n }\n return result;\n}\nexports.map = map;\nasync function mapAsync(items, func, token, options) {\n if (items.length === 0) {\n return [];\n }\n const result = new Array(items.length);\n const timer = new Timer(options?.yieldAfter);\n async function convertBatch(start) {\n timer.start();\n for (let i = start; i < items.length; i++) {\n result[i] = await func(items[i], token);\n if (timer.shouldYield()) {\n options?.yieldCallback && options.yieldCallback();\n return i + 1;\n }\n }\n return -1;\n }\n let index = await convertBatch(0);\n while (index !== -1) {\n if (token !== undefined && token.isCancellationRequested) {\n break;\n }\n index = await new Promise((resolve) => {\n (0, vscode_languageserver_protocol_1.RAL)().timer.setImmediate(() => {\n resolve(convertBatch(index));\n });\n });\n }\n return result;\n}\nexports.mapAsync = mapAsync;\nasync function forEach(items, func, token, options) {\n if (items.length === 0) {\n return;\n }\n const timer = new Timer(options?.yieldAfter);\n function runBatch(start) {\n timer.start();\n for (let i = start; i < items.length; i++) {\n func(items[i]);\n if (timer.shouldYield()) {\n options?.yieldCallback && options.yieldCallback();\n return i + 1;\n }\n }\n return -1;\n }\n // Convert the first batch sync on the same frame.\n let index = runBatch(0);\n while (index !== -1) {\n if (token !== undefined && token.isCancellationRequested) {\n break;\n }\n index = await new Promise((resolve) => {\n (0, vscode_languageserver_protocol_1.RAL)().timer.setImmediate(() => {\n resolve(runBatch(index));\n });\n });\n }\n}\nexports.forEach = forEach;\n//# sourceMappingURL=async.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 code = require(\"vscode\");\nclass ProtocolCompletionItem extends code.CompletionItem {\n constructor(label) {\n super(label);\n }\n}\nexports.default = ProtocolCompletionItem;\n//# sourceMappingURL=protocolCompletionItem.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 code = require(\"vscode\");\nclass ProtocolCodeLens extends code.CodeLens {\n constructor(range) {\n super(range);\n }\n}\nexports.default = ProtocolCodeLens;\n//# sourceMappingURL=protocolCodeLens.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 code = require(\"vscode\");\nclass ProtocolDocumentLink extends code.DocumentLink {\n constructor(range, target) {\n super(range, target);\n }\n}\nexports.default = ProtocolDocumentLink;\n//# sourceMappingURL=protocolDocumentLink.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 vscode = require(\"vscode\");\nclass ProtocolCodeAction extends vscode.CodeAction {\n constructor(title, data) {\n super(title);\n this.data = data;\n }\n}\nexports.default = ProtocolCodeAction;\n//# sourceMappingURL=protocolCodeAction.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.ProtocolDiagnostic = exports.DiagnosticCode = void 0;\nconst vscode = require(\"vscode\");\nconst Is = require(\"./utils/is\");\nvar DiagnosticCode;\n(function (DiagnosticCode) {\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null && (Is.number(candidate.value) || Is.string(candidate.value)) && Is.string(candidate.target);\n }\n DiagnosticCode.is = is;\n})(DiagnosticCode = exports.DiagnosticCode || (exports.DiagnosticCode = {}));\nclass ProtocolDiagnostic extends vscode.Diagnostic {\n constructor(range, message, severity, data) {\n super(range, message, severity);\n this.data = data;\n this.hasDiagnosticCode = false;\n }\n}\nexports.ProtocolDiagnostic = ProtocolDiagnostic;\n//# sourceMappingURL=protocolDiagnostic.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 code = require(\"vscode\");\nclass ProtocolCallHierarchyItem extends code.CallHierarchyItem {\n constructor(kind, name, detail, uri, range, selectionRange, data) {\n super(kind, name, detail, uri, range, selectionRange);\n if (data !== undefined) {\n this.data = data;\n }\n }\n}\nexports.default = ProtocolCallHierarchyItem;\n//# sourceMappingURL=protocolCallHierarchyItem.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 code = require(\"vscode\");\nclass ProtocolTypeHierarchyItem extends code.TypeHierarchyItem {\n constructor(kind, name, detail, uri, range, selectionRange, data) {\n super(kind, name, detail, uri, range, selectionRange);\n if (data !== undefined) {\n this.data = data;\n }\n }\n}\nexports.default = ProtocolTypeHierarchyItem;\n//# sourceMappingURL=protocolTypeHierarchyItem.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 code = require(\"vscode\");\nclass WorkspaceSymbol extends code.SymbolInformation {\n constructor(name, kind, containerName, locationOrUri, data) {\n const hasRange = !(locationOrUri instanceof code.Uri);\n super(name, kind, containerName, hasRange ? locationOrUri : new code.Location(locationOrUri, new code.Range(0, 0, 0, 0)));\n this.hasRange = hasRange;\n if (data !== undefined) {\n this.data = data;\n }\n }\n}\nexports.default = WorkspaceSymbol;\n//# sourceMappingURL=protocolWorkspaceSymbol.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 code = require(\"vscode\");\nclass ProtocolInlayHint extends code.InlayHint {\n constructor(position, label, kind) {\n super(position, label, kind);\n }\n}\nexports.default = ProtocolInlayHint;\n//# sourceMappingURL=protocolInlayHint.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.createConverter = void 0;\nconst code = require(\"vscode\");\nconst proto = require(\"vscode-languageserver-protocol\");\nconst Is = require(\"./utils/is\");\nconst async = require(\"./utils/async\");\nconst protocolCompletionItem_1 = require(\"./protocolCompletionItem\");\nconst protocolCodeLens_1 = require(\"./protocolCodeLens\");\nconst protocolDocumentLink_1 = require(\"./protocolDocumentLink\");\nconst protocolCodeAction_1 = require(\"./protocolCodeAction\");\nconst protocolDiagnostic_1 = require(\"./protocolDiagnostic\");\nconst protocolCallHierarchyItem_1 = require(\"./protocolCallHierarchyItem\");\nconst protocolTypeHierarchyItem_1 = require(\"./protocolTypeHierarchyItem\");\nconst protocolWorkspaceSymbol_1 = require(\"./protocolWorkspaceSymbol\");\nconst protocolInlayHint_1 = require(\"./protocolInlayHint\");\nvar InsertReplaceRange;\n(function (InsertReplaceRange) {\n function is(value) {\n const candidate = value;\n return candidate && !!candidate.inserting && !!candidate.replacing;\n }\n InsertReplaceRange.is = is;\n})(InsertReplaceRange || (InsertReplaceRange = {}));\nfunction createConverter(uriConverter) {\n const nullConverter = (value) => value.toString();\n const _uriConverter = uriConverter || nullConverter;\n function asUri(value) {\n return _uriConverter(value);\n }\n function asTextDocumentIdentifier(textDocument) {\n return {\n uri: _uriConverter(textDocument.uri)\n };\n }\n function asTextDocumentItem(textDocument) {\n return {\n uri: _uriConverter(textDocument.uri),\n languageId: textDocument.languageId,\n version: textDocument.version,\n text: textDocument.getText()\n };\n }\n function asVersionedTextDocumentIdentifier(textDocument) {\n return {\n uri: _uriConverter(textDocument.uri),\n version: textDocument.version\n };\n }\n function asOpenTextDocumentParams(textDocument) {\n return {\n textDocument: asTextDocumentItem(textDocument)\n };\n }\n function isTextDocumentChangeEvent(value) {\n let candidate = value;\n return !!candidate.document && !!candidate.contentChanges;\n }\n function isTextDocument(value) {\n let candidate = value;\n return !!candidate.uri && !!candidate.version;\n }\n function asChangeTextDocumentParams(arg) {\n if (isTextDocument(arg)) {\n let result = {\n textDocument: {\n uri: _uriConverter(arg.uri),\n version: arg.version\n },\n contentChanges: [{ text: arg.getText() }]\n };\n return result;\n }\n else if (isTextDocumentChangeEvent(arg)) {\n let document = arg.document;\n let result = {\n textDocument: {\n uri: _uriConverter(document.uri),\n version: document.version\n },\n contentChanges: arg.contentChanges.map((change) => {\n let range = change.range;\n return {\n range: {\n start: { line: range.start.line, character: range.start.character },\n end: { line: range.end.line, character: range.end.character }\n },\n rangeLength: change.rangeLength,\n text: change.text\n };\n })\n };\n return result;\n }\n else {\n throw Error('Unsupported text document change parameter');\n }\n }\n function asCloseTextDocumentParams(textDocument) {\n return {\n textDocument: asTextDocumentIdentifier(textDocument)\n };\n }\n function asSaveTextDocumentParams(textDocument, includeContent = false) {\n let result = {\n textDocument: asTextDocumentIdentifier(textDocument)\n };\n if (includeContent) {\n result.text = textDocument.getText();\n }\n return result;\n }\n function asTextDocumentSaveReason(reason) {\n switch (reason) {\n case code.TextDocumentSaveReason.Manual:\n return proto.TextDocumentSaveReason.Manual;\n case code.TextDocumentSaveReason.AfterDelay:\n return proto.TextDocumentSaveReason.AfterDelay;\n case code.TextDocumentSaveReason.FocusOut:\n return proto.TextDocumentSaveReason.FocusOut;\n }\n return proto.TextDocumentSaveReason.Manual;\n }\n function asWillSaveTextDocumentParams(event) {\n return {\n textDocument: asTextDocumentIdentifier(event.document),\n reason: asTextDocumentSaveReason(event.reason)\n };\n }\n function asDidCreateFilesParams(event) {\n return {\n files: event.files.map((fileUri) => ({\n uri: _uriConverter(fileUri),\n })),\n };\n }\n function asDidRenameFilesParams(event) {\n return {\n files: event.files.map((file) => ({\n oldUri: _uriConverter(file.oldUri),\n newUri: _uriConverter(file.newUri),\n })),\n };\n }\n function asDidDeleteFilesParams(event) {\n return {\n files: event.files.map((fileUri) => ({\n uri: _uriConverter(fileUri),\n })),\n };\n }\n function asWillCreateFilesParams(event) {\n return {\n files: event.files.map((fileUri) => ({\n uri: _uriConverter(fileUri),\n })),\n };\n }\n function asWillRenameFilesParams(event) {\n return {\n files: event.files.map((file) => ({\n oldUri: _uriConverter(file.oldUri),\n newUri: _uriConverter(file.newUri),\n })),\n };\n }\n function asWillDeleteFilesParams(event) {\n return {\n files: event.files.map((fileUri) => ({\n uri: _uriConverter(fileUri),\n })),\n };\n }\n function asTextDocumentPositionParams(textDocument, position) {\n return {\n textDocument: asTextDocumentIdentifier(textDocument),\n position: asWorkerPosition(position)\n };\n }\n function asCompletionTriggerKind(triggerKind) {\n switch (triggerKind) {\n case code.CompletionTriggerKind.TriggerCharacter:\n return proto.CompletionTriggerKind.TriggerCharacter;\n case code.CompletionTriggerKind.TriggerForIncompleteCompletions:\n return proto.CompletionTriggerKind.TriggerForIncompleteCompletions;\n default:\n return proto.CompletionTriggerKind.Invoked;\n }\n }\n function asCompletionParams(textDocument, position, context) {\n return {\n textDocument: asTextDocumentIdentifier(textDocument),\n position: asWorkerPosition(position),\n context: {\n triggerKind: asCompletionTriggerKind(context.triggerKind),\n triggerCharacter: context.triggerCharacter\n }\n };\n }\n function asSignatureHelpTriggerKind(triggerKind) {\n switch (triggerKind) {\n case code.SignatureHelpTriggerKind.Invoke:\n return proto.SignatureHelpTriggerKind.Invoked;\n case code.SignatureHelpTriggerKind.TriggerCharacter:\n return proto.SignatureHelpTriggerKind.TriggerCharacter;\n case code.SignatureHelpTriggerKind.ContentChange:\n return proto.SignatureHelpTriggerKind.ContentChange;\n }\n }\n function asParameterInformation(value) {\n // We leave the documentation out on purpose since it usually adds no\n // value for the server.\n return {\n label: value.label\n };\n }\n function asParameterInformations(values) {\n return values.map(asParameterInformation);\n }\n function asSignatureInformation(value) {\n // We leave the documentation out on purpose since it usually adds no\n // value for the server.\n return {\n label: value.label,\n parameters: asParameterInformations(value.parameters)\n };\n }\n function asSignatureInformations(values) {\n return values.map(asSignatureInformation);\n }\n function asSignatureHelp(value) {\n if (value === undefined) {\n return value;\n }\n return {\n signatures: asSignatureInformations(value.signatures),\n activeSignature: value.activeSignature,\n activeParameter: value.activeParameter\n };\n }\n function asSignatureHelpParams(textDocument, position, context) {\n return {\n textDocument: asTextDocumentIdentifier(textDocument),\n position: asWorkerPosition(position),\n context: {\n isRetrigger: context.isRetrigger,\n triggerCharacter: context.triggerCharacter,\n triggerKind: asSignatureHelpTriggerKind(context.triggerKind),\n activeSignatureHelp: asSignatureHelp(context.activeSignatureHelp)\n }\n };\n }\n function asWorkerPosition(position) {\n return { line: position.line, character: position.character };\n }\n function asPosition(value) {\n if (value === undefined || value === null) {\n return value;\n }\n return { line: value.line > proto.uinteger.MAX_VALUE ? proto.uinteger.MAX_VALUE : value.line, character: value.character > proto.uinteger.MAX_VALUE ? proto.uinteger.MAX_VALUE : value.character };\n }\n function asPositions(value, token) {\n return async.map(value, asPosition, token);\n }\n function asRange(value) {\n if (value === undefined || value === null) {\n return value;\n }\n return { start: asPosition(value.start), end: asPosition(value.end) };\n }\n function asLocation(value) {\n if (value === undefined || value === null) {\n return value;\n }\n return proto.Location.create(asUri(value.uri), asRange(value.range));\n }\n function asDiagnosticSeverity(value) {\n switch (value) {\n case code.DiagnosticSeverity.Error:\n return proto.DiagnosticSeverity.Error;\n case code.DiagnosticSeverity.Warning:\n return proto.DiagnosticSeverity.Warning;\n case code.DiagnosticSeverity.Information:\n return proto.DiagnosticSeverity.Information;\n case code.DiagnosticSeverity.Hint:\n return proto.DiagnosticSeverity.Hint;\n }\n }\n function asDiagnosticTags(tags) {\n if (!tags) {\n return undefined;\n }\n let result = [];\n for (let tag of tags) {\n let converted = asDiagnosticTag(tag);\n if (converted !== undefined) {\n result.push(converted);\n }\n }\n return result.length > 0 ? result : undefined;\n }\n function asDiagnosticTag(tag) {\n switch (tag) {\n case code.DiagnosticTag.Unnecessary:\n return proto.DiagnosticTag.Unnecessary;\n case code.DiagnosticTag.Deprecated:\n return proto.DiagnosticTag.Deprecated;\n default:\n return undefined;\n }\n }\n function asRelatedInformation(item) {\n return {\n message: item.message,\n location: asLocation(item.location)\n };\n }\n function asRelatedInformations(items) {\n return items.map(asRelatedInformation);\n }\n function asDiagnosticCode(value) {\n if (value === undefined || value === null) {\n return undefined;\n }\n if (Is.number(value) || Is.string(value)) {\n return value;\n }\n return { value: value.value, target: asUri(value.target) };\n }\n function asDiagnostic(item) {\n const result = proto.Diagnostic.create(asRange(item.range), item.message);\n const protocolDiagnostic = item instanceof protocolDiagnostic_1.ProtocolDiagnostic ? item : undefined;\n if (protocolDiagnostic !== undefined && protocolDiagnostic.data !== undefined) {\n result.data = protocolDiagnostic.data;\n }\n const code = asDiagnosticCode(item.code);\n if (protocolDiagnostic_1.DiagnosticCode.is(code)) {\n if (protocolDiagnostic !== undefined && protocolDiagnostic.hasDiagnosticCode) {\n result.code = code;\n }\n else {\n result.code = code.value;\n result.codeDescription = { href: code.target };\n }\n }\n else {\n result.code = code;\n }\n if (Is.number(item.severity)) {\n result.severity = asDiagnosticSeverity(item.severity);\n }\n if (Array.isArray(item.tags)) {\n result.tags = asDiagnosticTags(item.tags);\n }\n if (item.relatedInformation) {\n result.relatedInformation = asRelatedInformations(item.relatedInformation);\n }\n if (item.source) {\n result.source = item.source;\n }\n return result;\n }\n function asDiagnostics(items, token) {\n if (items === undefined || items === null) {\n return items;\n }\n return async.map(items, asDiagnostic, token);\n }\n function asDocumentation(format, documentation) {\n switch (format) {\n case '$string':\n return documentation;\n case proto.MarkupKind.PlainText:\n return { kind: format, value: documentation };\n case proto.MarkupKind.Markdown:\n return { kind: format, value: documentation.value };\n default:\n return `Unsupported Markup content received. Kind is: ${format}`;\n }\n }\n function asCompletionItemTag(tag) {\n switch (tag) {\n case code.CompletionItemTag.Deprecated:\n return proto.CompletionItemTag.Deprecated;\n }\n return undefined;\n }\n function asCompletionItemTags(tags) {\n if (tags === undefined) {\n return tags;\n }\n const result = [];\n for (let tag of tags) {\n const converted = asCompletionItemTag(tag);\n if (converted !== undefined) {\n result.push(converted);\n }\n }\n return result;\n }\n function asCompletionItemKind(value, original) {\n if (original !== undefined) {\n return original;\n }\n return value + 1;\n }\n function asCompletionItem(item, labelDetailsSupport = false) {\n let label;\n let labelDetails;\n if (Is.string(item.label)) {\n label = item.label;\n }\n else {\n label = item.label.label;\n if (labelDetailsSupport && (item.label.detail !== undefined || item.label.description !== undefined)) {\n labelDetails = { detail: item.label.detail, description: item.label.description };\n }\n }\n let result = { label: label };\n if (labelDetails !== undefined) {\n result.labelDetails = labelDetails;\n }\n let protocolItem = item instanceof protocolCompletionItem_1.default ? item : undefined;\n if (item.detail) {\n result.detail = item.detail;\n }\n // We only send items back we created. So this can't be something else than\n // a string right now.\n if (item.documentation) {\n if (!protocolItem || protocolItem.documentationFormat === '$string') {\n result.documentation = item.documentation;\n }\n else {\n result.documentation = asDocumentation(protocolItem.documentationFormat, item.documentation);\n }\n }\n if (item.filterText) {\n result.filterText = item.filterText;\n }\n fillPrimaryInsertText(result, item);\n if (Is.number(item.kind)) {\n result.kind = asCompletionItemKind(item.kind, protocolItem && protocolItem.originalItemKind);\n }\n if (item.sortText) {\n result.sortText = item.sortText;\n }\n if (item.additionalTextEdits) {\n result.additionalTextEdits = asTextEdits(item.additionalTextEdits);\n }\n if (item.commitCharacters) {\n result.commitCharacters = item.commitCharacters.slice();\n }\n if (item.command) {\n result.command = asCommand(item.command);\n }\n if (item.preselect === true || item.preselect === false) {\n result.preselect = item.preselect;\n }\n const tags = asCompletionItemTags(item.tags);\n if (protocolItem) {\n if (protocolItem.data !== undefined) {\n result.data = protocolItem.data;\n }\n if (protocolItem.deprecated === true || protocolItem.deprecated === false) {\n if (protocolItem.deprecated === true && tags !== undefined && tags.length > 0) {\n const index = tags.indexOf(code.CompletionItemTag.Deprecated);\n if (index !== -1) {\n tags.splice(index, 1);\n }\n }\n result.deprecated = protocolItem.deprecated;\n }\n if (protocolItem.insertTextMode !== undefined) {\n result.insertTextMode = protocolItem.insertTextMode;\n }\n }\n if (tags !== undefined && tags.length > 0) {\n result.tags = tags;\n }\n if (result.insertTextMode === undefined && item.keepWhitespace === true) {\n result.insertTextMode = proto.InsertTextMode.adjustIndentation;\n }\n return result;\n }\n function fillPrimaryInsertText(target, source) {\n let format = proto.InsertTextFormat.PlainText;\n let text = undefined;\n let range = undefined;\n if (source.textEdit) {\n text = source.textEdit.newText;\n range = source.textEdit.range;\n }\n else if (source.insertText instanceof code.SnippetString) {\n format = proto.InsertTextFormat.Snippet;\n text = source.insertText.value;\n }\n else {\n text = source.insertText;\n }\n if (source.range) {\n range = source.range;\n }\n target.insertTextFormat = format;\n if (source.fromEdit && text !== undefined && range !== undefined) {\n target.textEdit = asCompletionTextEdit(text, range);\n }\n else {\n target.insertText = text;\n }\n }\n function asCompletionTextEdit(newText, range) {\n if (InsertReplaceRange.is(range)) {\n return proto.InsertReplaceEdit.create(newText, asRange(range.inserting), asRange(range.replacing));\n }\n else {\n return { newText, range: asRange(range) };\n }\n }\n function asTextEdit(edit) {\n return { range: asRange(edit.range), newText: edit.newText };\n }\n function asTextEdits(edits) {\n if (edits === undefined || edits === null) {\n return edits;\n }\n return edits.map(asTextEdit);\n }\n function asSymbolKind(item) {\n if (item <= code.SymbolKind.TypeParameter) {\n // Symbol kind is one based in the protocol and zero based in code.\n return (item + 1);\n }\n return proto.SymbolKind.Property;\n }\n function asSymbolTag(item) {\n return item;\n }\n function asSymbolTags(items) {\n return items.map(asSymbolTag);\n }\n function asReferenceParams(textDocument, position, options) {\n return {\n textDocument: asTextDocumentIdentifier(textDocument),\n position: asWorkerPosition(position),\n context: { includeDeclaration: options.includeDeclaration }\n };\n }\n async function asCodeAction(item, token) {\n let result = proto.CodeAction.create(item.title);\n if (item instanceof protocolCodeAction_1.default && item.data !== undefined) {\n result.data = item.data;\n }\n if (item.kind !== undefined) {\n result.kind = asCodeActionKind(item.kind);\n }\n if (item.diagnostics !== undefined) {\n result.diagnostics = await asDiagnostics(item.diagnostics, token);\n }\n if (item.edit !== undefined) {\n throw new Error(`VS Code code actions can only be converted to a protocol code action without an edit.`);\n }\n if (item.command !== undefined) {\n result.command = asCommand(item.command);\n }\n if (item.isPreferred !== undefined) {\n result.isPreferred = item.isPreferred;\n }\n if (item.disabled !== undefined) {\n result.disabled = { reason: item.disabled.reason };\n }\n return result;\n }\n async function asCodeActionContext(context, token) {\n if (context === undefined || context === null) {\n return context;\n }\n let only;\n if (context.only && Is.string(context.only.value)) {\n only = [context.only.value];\n }\n return proto.CodeActionContext.create(await asDiagnostics(context.diagnostics, token), only, asCodeActionTriggerKind(context.triggerKind));\n }\n function asCodeActionTriggerKind(kind) {\n switch (kind) {\n case code.CodeActionTriggerKind.Invoke:\n return proto.CodeActionTriggerKind.Invoked;\n case code.CodeActionTriggerKind.Automatic:\n return proto.CodeActionTriggerKind.Automatic;\n default:\n return undefined;\n }\n }\n function asCodeActionKind(item) {\n if (item === undefined || item === null) {\n return undefined;\n }\n return item.value;\n }\n function asInlineValueContext(context) {\n if (context === undefined || context === null) {\n return context;\n }\n return proto.InlineValueContext.create(context.frameId, asRange(context.stoppedLocation));\n }\n function asCommand(item) {\n let result = proto.Command.create(item.title, item.command);\n if (item.arguments) {\n result.arguments = item.arguments;\n }\n return result;\n }\n function asCodeLens(item) {\n let result = proto.CodeLens.create(asRange(item.range));\n if (item.command) {\n result.command = asCommand(item.command);\n }\n if (item instanceof protocolCodeLens_1.default) {\n if (item.data) {\n result.data = item.data;\n }\n }\n return result;\n }\n function asFormattingOptions(options, fileOptions) {\n const result = { tabSize: options.tabSize, insertSpaces: options.insertSpaces };\n if (fileOptions.trimTrailingWhitespace) {\n result.trimTrailingWhitespace = true;\n }\n if (fileOptions.trimFinalNewlines) {\n result.trimFinalNewlines = true;\n }\n if (fileOptions.insertFinalNewline) {\n result.insertFinalNewline = true;\n }\n return result;\n }\n function asDocumentSymbolParams(textDocument) {\n return {\n textDocument: asTextDocumentIdentifier(textDocument)\n };\n }\n function asCodeLensParams(textDocument) {\n return {\n textDocument: asTextDocumentIdentifier(textDocument)\n };\n }\n function asDocumentLink(item) {\n let result = proto.DocumentLink.create(asRange(item.range));\n if (item.target) {\n result.target = asUri(item.target);\n }\n if (item.tooltip !== undefined) {\n result.tooltip = item.tooltip;\n }\n let protocolItem = item instanceof protocolDocumentLink_1.default ? item : undefined;\n if (protocolItem && protocolItem.data) {\n result.data = protocolItem.data;\n }\n return result;\n }\n function asDocumentLinkParams(textDocument) {\n return {\n textDocument: asTextDocumentIdentifier(textDocument)\n };\n }\n function asCallHierarchyItem(value) {\n const result = {\n name: value.name,\n kind: asSymbolKind(value.kind),\n uri: asUri(value.uri),\n range: asRange(value.range),\n selectionRange: asRange(value.selectionRange)\n };\n if (value.detail !== undefined && value.detail.length > 0) {\n result.detail = value.detail;\n }\n if (value.tags !== undefined) {\n result.tags = asSymbolTags(value.tags);\n }\n if (value instanceof protocolCallHierarchyItem_1.default && value.data !== undefined) {\n result.data = value.data;\n }\n return result;\n }\n function asTypeHierarchyItem(value) {\n const result = {\n name: value.name,\n kind: asSymbolKind(value.kind),\n uri: asUri(value.uri),\n range: asRange(value.range),\n selectionRange: asRange(value.selectionRange),\n };\n if (value.detail !== undefined && value.detail.length > 0) {\n result.detail = value.detail;\n }\n if (value.tags !== undefined) {\n result.tags = asSymbolTags(value.tags);\n }\n if (value instanceof protocolTypeHierarchyItem_1.default && value.data !== undefined) {\n result.data = value.data;\n }\n return result;\n }\n function asWorkspaceSymbol(item) {\n const result = item instanceof protocolWorkspaceSymbol_1.default\n ? { name: item.name, kind: asSymbolKind(item.kind), location: item.hasRange ? asLocation(item.location) : { uri: _uriConverter(item.location.uri) }, data: item.data }\n : { name: item.name, kind: asSymbolKind(item.kind), location: asLocation(item.location) };\n if (item.tags !== undefined) {\n result.tags = asSymbolTags(item.tags);\n }\n if (item.containerName !== '') {\n result.containerName = item.containerName;\n }\n return result;\n }\n function asInlayHint(item) {\n const label = typeof item.label === 'string'\n ? item.label\n : item.label.map(asInlayHintLabelPart);\n const result = proto.InlayHint.create(asPosition(item.position), label);\n if (item.kind !== undefined) {\n result.kind = item.kind;\n }\n if (item.textEdits !== undefined) {\n result.textEdits = asTextEdits(item.textEdits);\n }\n if (item.tooltip !== undefined) {\n result.tooltip = asTooltip(item.tooltip);\n }\n if (item.paddingLeft !== undefined) {\n result.paddingLeft = item.paddingLeft;\n }\n if (item.paddingRight !== undefined) {\n result.paddingRight = item.paddingRight;\n }\n if (item instanceof protocolInlayHint_1.default && item.data !== undefined) {\n result.data = item.data;\n }\n return result;\n }\n function asInlayHintLabelPart(item) {\n const result = proto.InlayHintLabelPart.create(item.value);\n if (item.location !== undefined) {\n result.location = asLocation(item.location);\n }\n if (item.command !== undefined) {\n result.command = asCommand(item.command);\n }\n if (item.tooltip !== undefined) {\n result.tooltip = asTooltip(item.tooltip);\n }\n return result;\n }\n function asTooltip(value) {\n if (typeof value === 'string') {\n return value;\n }\n const result = {\n kind: proto.MarkupKind.Markdown,\n value: value.value\n };\n return result;\n }\n return {\n asUri,\n asTextDocumentIdentifier,\n asTextDocumentItem,\n asVersionedTextDocumentIdentifier,\n asOpenTextDocumentParams,\n asChangeTextDocumentParams,\n asCloseTextDocumentParams,\n asSaveTextDocumentParams,\n asWillSaveTextDocumentParams,\n asDidCreateFilesParams,\n asDidRenameFilesParams,\n asDidDeleteFilesParams,\n asWillCreateFilesParams,\n asWillRenameFilesParams,\n asWillDeleteFilesParams,\n asTextDocumentPositionParams,\n asCompletionParams,\n asSignatureHelpParams,\n asWorkerPosition,\n asRange,\n asPosition,\n asPositions,\n asLocation,\n asDiagnosticSeverity,\n asDiagnosticTag,\n asDiagnostic,\n asDiagnostics,\n asCompletionItem,\n asTextEdit,\n asSymbolKind,\n asSymbolTag,\n asSymbolTags,\n asReferenceParams,\n asCodeAction,\n asCodeActionContext,\n asInlineValueContext,\n asCommand,\n asCodeLens,\n asFormattingOptions,\n asDocumentSymbolParams,\n asCodeLensParams,\n asDocumentLink,\n asDocumentLinkParams,\n asCallHierarchyItem,\n asTypeHierarchyItem,\n asInlayHint,\n asWorkspaceSymbol\n };\n}\nexports.createConverter = createConverter;\n//# sourceMappingURL=codeConverter.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.createConverter = void 0;\nconst code = require(\"vscode\");\nconst ls = require(\"vscode-languageserver-protocol\");\nconst Is = require(\"./utils/is\");\nconst async = require(\"./utils/async\");\nconst protocolCompletionItem_1 = require(\"./protocolCompletionItem\");\nconst protocolCodeLens_1 = require(\"./protocolCodeLens\");\nconst protocolDocumentLink_1 = require(\"./protocolDocumentLink\");\nconst protocolCodeAction_1 = require(\"./protocolCodeAction\");\nconst protocolDiagnostic_1 = require(\"./protocolDiagnostic\");\nconst protocolCallHierarchyItem_1 = require(\"./protocolCallHierarchyItem\");\nconst protocolTypeHierarchyItem_1 = require(\"./protocolTypeHierarchyItem\");\nconst protocolWorkspaceSymbol_1 = require(\"./protocolWorkspaceSymbol\");\nconst protocolInlayHint_1 = require(\"./protocolInlayHint\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nvar CodeBlock;\n(function (CodeBlock) {\n function is(value) {\n let candidate = value;\n return candidate && Is.string(candidate.language) && Is.string(candidate.value);\n }\n CodeBlock.is = is;\n})(CodeBlock || (CodeBlock = {}));\nfunction createConverter(uriConverter, trustMarkdown, supportHtml) {\n const nullConverter = (value) => code.Uri.parse(value);\n const _uriConverter = uriConverter || nullConverter;\n function asUri(value) {\n return _uriConverter(value);\n }\n function asDocumentSelector(selector) {\n const result = [];\n for (const filter of selector) {\n if (typeof filter === 'string') {\n result.push(filter);\n }\n else if (vscode_languageserver_protocol_1.NotebookCellTextDocumentFilter.is(filter)) {\n // We first need to check for the notebook cell filter since a TextDocumentFilter would\n // match both (e.g. the notebook is optional).\n if (typeof filter.notebook === 'string') {\n result.push({ notebookType: filter.notebook, language: filter.language });\n }\n else {\n const notebookType = filter.notebook.notebookType ?? '*';\n result.push({ notebookType: notebookType, scheme: filter.notebook.scheme, pattern: filter.notebook.pattern, language: filter.language });\n }\n }\n else if (vscode_languageserver_protocol_1.TextDocumentFilter.is(filter)) {\n result.push({ language: filter.language, scheme: filter.scheme, pattern: filter.pattern });\n }\n }\n return result;\n }\n async function asDiagnostics(diagnostics, token) {\n return async.map(diagnostics, asDiagnostic, token);\n }\n function asDiagnosticsSync(diagnostics) {\n const result = new Array(diagnostics.length);\n for (let i = 0; i < diagnostics.length; i++) {\n result[i] = asDiagnostic(diagnostics[i]);\n }\n return result;\n }\n function asDiagnostic(diagnostic) {\n let result = new protocolDiagnostic_1.ProtocolDiagnostic(asRange(diagnostic.range), diagnostic.message, asDiagnosticSeverity(diagnostic.severity), diagnostic.data);\n if (diagnostic.code !== undefined) {\n if (typeof diagnostic.code === 'string' || typeof diagnostic.code === 'number') {\n if (ls.CodeDescription.is(diagnostic.codeDescription)) {\n result.code = {\n value: diagnostic.code,\n target: asUri(diagnostic.codeDescription.href)\n };\n }\n else {\n result.code = diagnostic.code;\n }\n }\n else if (protocolDiagnostic_1.DiagnosticCode.is(diagnostic.code)) {\n // This is for backwards compatibility of a proposed API.\n // We should remove this at some point.\n result.hasDiagnosticCode = true;\n const diagnosticCode = diagnostic.code;\n result.code = {\n value: diagnosticCode.value,\n target: asUri(diagnosticCode.target)\n };\n }\n }\n if (diagnostic.source) {\n result.source = diagnostic.source;\n }\n if (diagnostic.relatedInformation) {\n result.relatedInformation = asRelatedInformation(diagnostic.relatedInformation);\n }\n if (Array.isArray(diagnostic.tags)) {\n result.tags = asDiagnosticTags(diagnostic.tags);\n }\n return result;\n }\n function asRelatedInformation(relatedInformation) {\n const result = new Array(relatedInformation.length);\n for (let i = 0; i < relatedInformation.length; i++) {\n const info = relatedInformation[i];\n result[i] = new code.DiagnosticRelatedInformation(asLocation(info.location), info.message);\n }\n return result;\n }\n function asDiagnosticTags(tags) {\n if (!tags) {\n return undefined;\n }\n let result = [];\n for (let tag of tags) {\n let converted = asDiagnosticTag(tag);\n if (converted !== undefined) {\n result.push(converted);\n }\n }\n return result.length > 0 ? result : undefined;\n }\n function asDiagnosticTag(tag) {\n switch (tag) {\n case ls.DiagnosticTag.Unnecessary:\n return code.DiagnosticTag.Unnecessary;\n case ls.DiagnosticTag.Deprecated:\n return code.DiagnosticTag.Deprecated;\n default:\n return undefined;\n }\n }\n function asPosition(value) {\n return value ? new code.Position(value.line, value.character) : undefined;\n }\n function asRange(value) {\n return value ? new code.Range(value.start.line, value.start.character, value.end.line, value.end.character) : undefined;\n }\n async function asRanges(items, token) {\n return async.map(items, (range) => {\n return new code.Range(range.start.line, range.start.character, range.end.line, range.end.character);\n }, token);\n }\n function asDiagnosticSeverity(value) {\n if (value === undefined || value === null) {\n return code.DiagnosticSeverity.Error;\n }\n switch (value) {\n case ls.DiagnosticSeverity.Error:\n return code.DiagnosticSeverity.Error;\n case ls.DiagnosticSeverity.Warning:\n return code.DiagnosticSeverity.Warning;\n case ls.DiagnosticSeverity.Information:\n return code.DiagnosticSeverity.Information;\n case ls.DiagnosticSeverity.Hint:\n return code.DiagnosticSeverity.Hint;\n }\n return code.DiagnosticSeverity.Error;\n }\n function asHoverContent(value) {\n if (Is.string(value)) {\n return asMarkdownString(value);\n }\n else if (CodeBlock.is(value)) {\n let result = asMarkdownString();\n return result.appendCodeblock(value.value, value.language);\n }\n else if (Array.isArray(value)) {\n let result = [];\n for (let element of value) {\n let item = asMarkdownString();\n if (CodeBlock.is(element)) {\n item.appendCodeblock(element.value, element.language);\n }\n else {\n item.appendMarkdown(element);\n }\n result.push(item);\n }\n return result;\n }\n else {\n return asMarkdownString(value);\n }\n }\n function asDocumentation(value) {\n if (Is.string(value)) {\n return value;\n }\n else {\n switch (value.kind) {\n case ls.MarkupKind.Markdown:\n return asMarkdownString(value.value);\n case ls.MarkupKind.PlainText:\n return value.value;\n default:\n return `Unsupported Markup content received. Kind is: ${value.kind}`;\n }\n }\n }\n function asMarkdownString(value) {\n let result;\n if (value === undefined || typeof value === 'string') {\n result = new code.MarkdownString(value);\n }\n else {\n switch (value.kind) {\n case ls.MarkupKind.Markdown:\n result = new code.MarkdownString(value.value);\n break;\n case ls.MarkupKind.PlainText:\n result = new code.MarkdownString();\n result.appendText(value.value);\n break;\n default:\n result = new code.MarkdownString();\n result.appendText(`Unsupported Markup content received. Kind is: ${value.kind}`);\n break;\n }\n }\n result.isTrusted = trustMarkdown;\n result.supportHtml = supportHtml;\n return result;\n }\n function asHover(hover) {\n if (!hover) {\n return undefined;\n }\n return new code.Hover(asHoverContent(hover.contents), asRange(hover.range));\n }\n async function asCompletionResult(value, allCommitCharacters, token) {\n if (!value) {\n return undefined;\n }\n if (Array.isArray(value)) {\n return async.map(value, (item) => asCompletionItem(item, allCommitCharacters), token);\n }\n const list = value;\n const { defaultRange, commitCharacters } = getCompletionItemDefaults(list, allCommitCharacters);\n const converted = await async.map(list.items, (item) => {\n return asCompletionItem(item, commitCharacters, defaultRange, list.itemDefaults?.insertTextMode, list.itemDefaults?.insertTextFormat, list.itemDefaults?.data);\n }, token);\n return new code.CompletionList(converted, list.isIncomplete);\n }\n function getCompletionItemDefaults(list, allCommitCharacters) {\n const rangeDefaults = list.itemDefaults?.editRange;\n const commitCharacters = list.itemDefaults?.commitCharacters ?? allCommitCharacters;\n return ls.Range.is(rangeDefaults)\n ? { defaultRange: asRange(rangeDefaults), commitCharacters }\n : rangeDefaults !== undefined\n ? { defaultRange: { inserting: asRange(rangeDefaults.insert), replacing: asRange(rangeDefaults.replace) }, commitCharacters }\n : { defaultRange: undefined, commitCharacters };\n }\n function asCompletionItemKind(value) {\n // Protocol item kind is 1 based, codes item kind is zero based.\n if (ls.CompletionItemKind.Text <= value && value <= ls.CompletionItemKind.TypeParameter) {\n return [value - 1, undefined];\n }\n return [code.CompletionItemKind.Text, value];\n }\n function asCompletionItemTag(tag) {\n switch (tag) {\n case ls.CompletionItemTag.Deprecated:\n return code.CompletionItemTag.Deprecated;\n }\n return undefined;\n }\n function asCompletionItemTags(tags) {\n if (tags === undefined || tags === null) {\n return [];\n }\n const result = [];\n for (const tag of tags) {\n const converted = asCompletionItemTag(tag);\n if (converted !== undefined) {\n result.push(converted);\n }\n }\n return result;\n }\n function asCompletionItem(item, defaultCommitCharacters, defaultRange, defaultInsertTextMode, defaultInsertTextFormat, defaultData) {\n const tags = asCompletionItemTags(item.tags);\n const label = asCompletionItemLabel(item);\n const result = new protocolCompletionItem_1.default(label);\n if (item.detail) {\n result.detail = item.detail;\n }\n if (item.documentation) {\n result.documentation = asDocumentation(item.documentation);\n result.documentationFormat = Is.string(item.documentation) ? '$string' : item.documentation.kind;\n }\n if (item.filterText) {\n result.filterText = item.filterText;\n }\n const insertText = asCompletionInsertText(item, defaultRange, defaultInsertTextFormat);\n if (insertText) {\n result.insertText = insertText.text;\n result.range = insertText.range;\n result.fromEdit = insertText.fromEdit;\n }\n if (Is.number(item.kind)) {\n let [itemKind, original] = asCompletionItemKind(item.kind);\n result.kind = itemKind;\n if (original) {\n result.originalItemKind = original;\n }\n }\n if (item.sortText) {\n result.sortText = item.sortText;\n }\n if (item.additionalTextEdits) {\n result.additionalTextEdits = asTextEditsSync(item.additionalTextEdits);\n }\n const commitCharacters = item.commitCharacters !== undefined\n ? Is.stringArray(item.commitCharacters) ? item.commitCharacters : undefined\n : defaultCommitCharacters;\n if (commitCharacters) {\n result.commitCharacters = commitCharacters.slice();\n }\n if (item.command) {\n result.command = asCommand(item.command);\n }\n if (item.deprecated === true || item.deprecated === false) {\n result.deprecated = item.deprecated;\n if (item.deprecated === true) {\n tags.push(code.CompletionItemTag.Deprecated);\n }\n }\n if (item.preselect === true || item.preselect === false) {\n result.preselect = item.preselect;\n }\n const data = item.data ?? defaultData;\n if (data !== undefined) {\n result.data = data;\n }\n if (tags.length > 0) {\n result.tags = tags;\n }\n const insertTextMode = item.insertTextMode ?? defaultInsertTextMode;\n if (insertTextMode !== undefined) {\n result.insertTextMode = insertTextMode;\n if (insertTextMode === ls.InsertTextMode.asIs) {\n result.keepWhitespace = true;\n }\n }\n return result;\n }\n function asCompletionItemLabel(item) {\n if (ls.CompletionItemLabelDetails.is(item.labelDetails)) {\n return {\n label: item.label,\n detail: item.labelDetails.detail,\n description: item.labelDetails.description\n };\n }\n else {\n return item.label;\n }\n }\n function asCompletionInsertText(item, defaultRange, defaultInsertTextFormat) {\n const insertTextFormat = item.insertTextFormat ?? defaultInsertTextFormat;\n if (item.textEdit !== undefined || defaultRange !== undefined) {\n const [range, newText] = item.textEdit !== undefined\n ? getCompletionRangeAndText(item.textEdit)\n : [defaultRange, item.textEditText ?? item.label];\n if (insertTextFormat === ls.InsertTextFormat.Snippet) {\n return { text: new code.SnippetString(newText), range: range, fromEdit: true };\n }\n else {\n return { text: newText, range: range, fromEdit: true };\n }\n }\n else if (item.insertText) {\n if (insertTextFormat === ls.InsertTextFormat.Snippet) {\n return { text: new code.SnippetString(item.insertText), fromEdit: false };\n }\n else {\n return { text: item.insertText, fromEdit: false };\n }\n }\n else {\n return undefined;\n }\n }\n function getCompletionRangeAndText(value) {\n if (ls.InsertReplaceEdit.is(value)) {\n return [{ inserting: asRange(value.insert), replacing: asRange(value.replace) }, value.newText];\n }\n else {\n return [asRange(value.range), value.newText];\n }\n }\n function asTextEdit(edit) {\n if (!edit) {\n return undefined;\n }\n return new code.TextEdit(asRange(edit.range), edit.newText);\n }\n async function asTextEdits(items, token) {\n if (!items) {\n return undefined;\n }\n return async.map(items, asTextEdit, token);\n }\n function asTextEditsSync(items) {\n if (!items) {\n return undefined;\n }\n const result = new Array(items.length);\n for (let i = 0; i < items.length; i++) {\n result[i] = asTextEdit(items[i]);\n }\n return result;\n }\n async function asSignatureHelp(item, token) {\n if (!item) {\n return undefined;\n }\n let result = new code.SignatureHelp();\n if (Is.number(item.activeSignature)) {\n result.activeSignature = item.activeSignature;\n }\n else {\n // activeSignature was optional in the past\n result.activeSignature = 0;\n }\n if (Is.number(item.activeParameter)) {\n result.activeParameter = item.activeParameter;\n }\n else {\n // activeParameter was optional in the past\n result.activeParameter = 0;\n }\n if (item.signatures) {\n result.signatures = await asSignatureInformations(item.signatures, token);\n }\n return result;\n }\n async function asSignatureInformations(items, token) {\n return async.mapAsync(items, asSignatureInformation, token);\n }\n async function asSignatureInformation(item, token) {\n let result = new code.SignatureInformation(item.label);\n if (item.documentation !== undefined) {\n result.documentation = asDocumentation(item.documentation);\n }\n if (item.parameters !== undefined) {\n result.parameters = await asParameterInformations(item.parameters, token);\n }\n if (item.activeParameter !== undefined) {\n result.activeParameter = item.activeParameter;\n }\n {\n return result;\n }\n }\n function asParameterInformations(items, token) {\n return async.map(items, asParameterInformation, token);\n }\n function asParameterInformation(item) {\n let result = new code.ParameterInformation(item.label);\n if (item.documentation) {\n result.documentation = asDocumentation(item.documentation);\n }\n return result;\n }\n function asLocation(item) {\n return item ? new code.Location(_uriConverter(item.uri), asRange(item.range)) : undefined;\n }\n async function asDeclarationResult(item, token) {\n if (!item) {\n return undefined;\n }\n return asLocationResult(item, token);\n }\n async function asDefinitionResult(item, token) {\n if (!item) {\n return undefined;\n }\n return asLocationResult(item, token);\n }\n function asLocationLink(item) {\n if (!item) {\n return undefined;\n }\n let result = {\n targetUri: _uriConverter(item.targetUri),\n targetRange: asRange(item.targetRange),\n originSelectionRange: asRange(item.originSelectionRange),\n targetSelectionRange: asRange(item.targetSelectionRange)\n };\n if (!result.targetSelectionRange) {\n throw new Error(`targetSelectionRange must not be undefined or null`);\n }\n return result;\n }\n async function asLocationResult(item, token) {\n if (!item) {\n return undefined;\n }\n if (Is.array(item)) {\n if (item.length === 0) {\n return [];\n }\n else if (ls.LocationLink.is(item[0])) {\n const links = item;\n return async.map(links, asLocationLink, token);\n }\n else {\n const locations = item;\n return async.map(locations, asLocation, token);\n }\n }\n else if (ls.LocationLink.is(item)) {\n return [asLocationLink(item)];\n }\n else {\n return asLocation(item);\n }\n }\n async function asReferences(values, token) {\n if (!values) {\n return undefined;\n }\n return async.map(values, asLocation, token);\n }\n async function asDocumentHighlights(values, token) {\n if (!values) {\n return undefined;\n }\n return async.map(values, asDocumentHighlight, token);\n }\n function asDocumentHighlight(item) {\n let result = new code.DocumentHighlight(asRange(item.range));\n if (Is.number(item.kind)) {\n result.kind = asDocumentHighlightKind(item.kind);\n }\n return result;\n }\n function asDocumentHighlightKind(item) {\n switch (item) {\n case ls.DocumentHighlightKind.Text:\n return code.DocumentHighlightKind.Text;\n case ls.DocumentHighlightKind.Read:\n return code.DocumentHighlightKind.Read;\n case ls.DocumentHighlightKind.Write:\n return code.DocumentHighlightKind.Write;\n }\n return code.DocumentHighlightKind.Text;\n }\n async function asSymbolInformations(values, token) {\n if (!values) {\n return undefined;\n }\n return async.map(values, asSymbolInformation, token);\n }\n function asSymbolKind(item) {\n if (item <= ls.SymbolKind.TypeParameter) {\n // Symbol kind is one based in the protocol and zero based in code.\n return item - 1;\n }\n return code.SymbolKind.Property;\n }\n function asSymbolTag(value) {\n switch (value) {\n case ls.SymbolTag.Deprecated:\n return code.SymbolTag.Deprecated;\n default:\n return undefined;\n }\n }\n function asSymbolTags(items) {\n if (items === undefined || items === null) {\n return undefined;\n }\n const result = [];\n for (const item of items) {\n const converted = asSymbolTag(item);\n if (converted !== undefined) {\n result.push(converted);\n }\n }\n return result.length === 0 ? undefined : result;\n }\n function asSymbolInformation(item) {\n const data = item.data;\n const location = item.location;\n const result = location.range === undefined || data !== undefined\n ? new protocolWorkspaceSymbol_1.default(item.name, asSymbolKind(item.kind), item.containerName ?? '', location.range === undefined ? _uriConverter(location.uri) : new code.Location(_uriConverter(item.location.uri), asRange(location.range)), data)\n : new code.SymbolInformation(item.name, asSymbolKind(item.kind), item.containerName ?? '', new code.Location(_uriConverter(item.location.uri), asRange(location.range)));\n fillTags(result, item);\n return result;\n }\n async function asDocumentSymbols(values, token) {\n if (values === undefined || values === null) {\n return undefined;\n }\n return async.map(values, asDocumentSymbol, token);\n }\n function asDocumentSymbol(value) {\n let result = new code.DocumentSymbol(value.name, value.detail || '', asSymbolKind(value.kind), asRange(value.range), asRange(value.selectionRange));\n fillTags(result, value);\n if (value.children !== undefined && value.children.length > 0) {\n let children = [];\n for (let child of value.children) {\n children.push(asDocumentSymbol(child));\n }\n result.children = children;\n }\n return result;\n }\n function fillTags(result, value) {\n result.tags = asSymbolTags(value.tags);\n if (value.deprecated) {\n if (!result.tags) {\n result.tags = [code.SymbolTag.Deprecated];\n }\n else {\n if (!result.tags.includes(code.SymbolTag.Deprecated)) {\n result.tags = result.tags.concat(code.SymbolTag.Deprecated);\n }\n }\n }\n }\n function asCommand(item) {\n let result = { title: item.title, command: item.command };\n if (item.arguments) {\n result.arguments = item.arguments;\n }\n return result;\n }\n async function asCommands(items, token) {\n if (!items) {\n return undefined;\n }\n return async.map(items, asCommand, token);\n }\n const kindMapping = new Map();\n kindMapping.set(ls.CodeActionKind.Empty, code.CodeActionKind.Empty);\n kindMapping.set(ls.CodeActionKind.QuickFix, code.CodeActionKind.QuickFix);\n kindMapping.set(ls.CodeActionKind.Refactor, code.CodeActionKind.Refactor);\n kindMapping.set(ls.CodeActionKind.RefactorExtract, code.CodeActionKind.RefactorExtract);\n kindMapping.set(ls.CodeActionKind.RefactorInline, code.CodeActionKind.RefactorInline);\n kindMapping.set(ls.CodeActionKind.RefactorRewrite, code.CodeActionKind.RefactorRewrite);\n kindMapping.set(ls.CodeActionKind.Source, code.CodeActionKind.Source);\n kindMapping.set(ls.CodeActionKind.SourceOrganizeImports, code.CodeActionKind.SourceOrganizeImports);\n function asCodeActionKind(item) {\n if (item === undefined || item === null) {\n return undefined;\n }\n let result = kindMapping.get(item);\n if (result) {\n return result;\n }\n let parts = item.split('.');\n result = code.CodeActionKind.Empty;\n for (let part of parts) {\n result = result.append(part);\n }\n return result;\n }\n function asCodeActionKinds(items) {\n if (items === undefined || items === null) {\n return undefined;\n }\n return items.map(kind => asCodeActionKind(kind));\n }\n async function asCodeAction(item, token) {\n if (item === undefined || item === null) {\n return undefined;\n }\n let result = new protocolCodeAction_1.default(item.title, item.data);\n if (item.kind !== undefined) {\n result.kind = asCodeActionKind(item.kind);\n }\n if (item.diagnostics !== undefined) {\n result.diagnostics = asDiagnosticsSync(item.diagnostics);\n }\n if (item.edit !== undefined) {\n result.edit = await asWorkspaceEdit(item.edit, token);\n }\n if (item.command !== undefined) {\n result.command = asCommand(item.command);\n }\n if (item.isPreferred !== undefined) {\n result.isPreferred = item.isPreferred;\n }\n if (item.disabled !== undefined) {\n result.disabled = { reason: item.disabled.reason };\n }\n return result;\n }\n function asCodeActionResult(items, token) {\n return async.mapAsync(items, async (item) => {\n if (ls.Command.is(item)) {\n return asCommand(item);\n }\n else {\n return asCodeAction(item, token);\n }\n }, token);\n }\n function asCodeLens(item) {\n if (!item) {\n return undefined;\n }\n let result = new protocolCodeLens_1.default(asRange(item.range));\n if (item.command) {\n result.command = asCommand(item.command);\n }\n if (item.data !== undefined && item.data !== null) {\n result.data = item.data;\n }\n return result;\n }\n async function asCodeLenses(items, token) {\n if (!items) {\n return undefined;\n }\n return async.map(items, asCodeLens, token);\n }\n async function asWorkspaceEdit(item, token) {\n if (!item) {\n return undefined;\n }\n const sharedMetadata = new Map();\n if (item.changeAnnotations !== undefined) {\n const changeAnnotations = item.changeAnnotations;\n await async.forEach(Object.keys(changeAnnotations), (key) => {\n const metaData = asWorkspaceEditEntryMetadata(changeAnnotations[key]);\n sharedMetadata.set(key, metaData);\n }, token);\n }\n const asMetadata = (annotation) => {\n if (annotation === undefined) {\n return undefined;\n }\n else {\n return sharedMetadata.get(annotation);\n }\n };\n const result = new code.WorkspaceEdit();\n if (item.documentChanges) {\n const documentChanges = item.documentChanges;\n await async.forEach(documentChanges, (change) => {\n if (ls.CreateFile.is(change)) {\n result.createFile(_uriConverter(change.uri), change.options, asMetadata(change.annotationId));\n }\n else if (ls.RenameFile.is(change)) {\n result.renameFile(_uriConverter(change.oldUri), _uriConverter(change.newUri), change.options, asMetadata(change.annotationId));\n }\n else if (ls.DeleteFile.is(change)) {\n result.deleteFile(_uriConverter(change.uri), change.options, asMetadata(change.annotationId));\n }\n else if (ls.TextDocumentEdit.is(change)) {\n const uri = _uriConverter(change.textDocument.uri);\n for (const edit of change.edits) {\n if (ls.AnnotatedTextEdit.is(edit)) {\n result.replace(uri, asRange(edit.range), edit.newText, asMetadata(edit.annotationId));\n }\n else {\n result.replace(uri, asRange(edit.range), edit.newText);\n }\n }\n }\n else {\n throw new Error(`Unknown workspace edit change received:\\n${JSON.stringify(change, undefined, 4)}`);\n }\n }, token);\n }\n else if (item.changes) {\n const changes = item.changes;\n await async.forEach(Object.keys(changes), (key) => {\n result.set(_uriConverter(key), asTextEditsSync(changes[key]));\n }, token);\n }\n return result;\n }\n function asWorkspaceEditEntryMetadata(annotation) {\n if (annotation === undefined) {\n return undefined;\n }\n return { label: annotation.label, needsConfirmation: !!annotation.needsConfirmation, description: annotation.description };\n }\n function asDocumentLink(item) {\n let range = asRange(item.range);\n let target = item.target ? asUri(item.target) : undefined;\n // target must be optional in DocumentLink\n let link = new protocolDocumentLink_1.default(range, target);\n if (item.tooltip !== undefined) {\n link.tooltip = item.tooltip;\n }\n if (item.data !== undefined && item.data !== null) {\n link.data = item.data;\n }\n return link;\n }\n async function asDocumentLinks(items, token) {\n if (!items) {\n return undefined;\n }\n return async.map(items, asDocumentLink, token);\n }\n function asColor(color) {\n return new code.Color(color.red, color.green, color.blue, color.alpha);\n }\n function asColorInformation(ci) {\n return new code.ColorInformation(asRange(ci.range), asColor(ci.color));\n }\n async function asColorInformations(colorInformation, token) {\n if (!colorInformation) {\n return undefined;\n }\n return async.map(colorInformation, asColorInformation, token);\n }\n function asColorPresentation(cp) {\n let presentation = new code.ColorPresentation(cp.label);\n presentation.additionalTextEdits = asTextEditsSync(cp.additionalTextEdits);\n if (cp.textEdit) {\n presentation.textEdit = asTextEdit(cp.textEdit);\n }\n return presentation;\n }\n async function asColorPresentations(colorPresentations, token) {\n if (!colorPresentations) {\n return undefined;\n }\n return async.map(colorPresentations, asColorPresentation, token);\n }\n function asFoldingRangeKind(kind) {\n if (kind) {\n switch (kind) {\n case ls.FoldingRangeKind.Comment:\n return code.FoldingRangeKind.Comment;\n case ls.FoldingRangeKind.Imports:\n return code.FoldingRangeKind.Imports;\n case ls.FoldingRangeKind.Region:\n return code.FoldingRangeKind.Region;\n }\n }\n return undefined;\n }\n function asFoldingRange(r) {\n return new code.FoldingRange(r.startLine, r.endLine, asFoldingRangeKind(r.kind));\n }\n async function asFoldingRanges(foldingRanges, token) {\n if (!foldingRanges) {\n return undefined;\n }\n return async.map(foldingRanges, asFoldingRange, token);\n }\n function asSelectionRange(selectionRange) {\n return new code.SelectionRange(asRange(selectionRange.range), selectionRange.parent ? asSelectionRange(selectionRange.parent) : undefined);\n }\n async function asSelectionRanges(selectionRanges, token) {\n if (!Array.isArray(selectionRanges)) {\n return [];\n }\n return async.map(selectionRanges, asSelectionRange, token);\n }\n function asInlineValue(inlineValue) {\n if (ls.InlineValueText.is(inlineValue)) {\n return new code.InlineValueText(asRange(inlineValue.range), inlineValue.text);\n }\n else if (ls.InlineValueVariableLookup.is(inlineValue)) {\n return new code.InlineValueVariableLookup(asRange(inlineValue.range), inlineValue.variableName, inlineValue.caseSensitiveLookup);\n }\n else {\n return new code.InlineValueEvaluatableExpression(asRange(inlineValue.range), inlineValue.expression);\n }\n }\n async function asInlineValues(inlineValues, token) {\n if (!Array.isArray(inlineValues)) {\n return [];\n }\n return async.map(inlineValues, asInlineValue, token);\n }\n async function asInlayHint(value, token) {\n const label = typeof value.label === 'string'\n ? value.label\n : await async.map(value.label, asInlayHintLabelPart, token);\n const result = new protocolInlayHint_1.default(asPosition(value.position), label);\n if (value.kind !== undefined) {\n result.kind = value.kind;\n }\n if (value.textEdits !== undefined) {\n result.textEdits = await asTextEdits(value.textEdits, token);\n }\n if (value.tooltip !== undefined) {\n result.tooltip = asTooltip(value.tooltip);\n }\n if (value.paddingLeft !== undefined) {\n result.paddingLeft = value.paddingLeft;\n }\n if (value.paddingRight !== undefined) {\n result.paddingRight = value.paddingRight;\n }\n if (value.data !== undefined) {\n result.data = value.data;\n }\n return result;\n }\n function asInlayHintLabelPart(part) {\n const result = new code.InlayHintLabelPart(part.value);\n if (part.location !== undefined) {\n result.location = asLocation(part.location);\n }\n if (part.tooltip !== undefined) {\n result.tooltip = asTooltip(part.tooltip);\n }\n if (part.command !== undefined) {\n result.command = asCommand(part.command);\n }\n return result;\n }\n function asTooltip(value) {\n if (typeof value === 'string') {\n return value;\n }\n return asMarkdownString(value);\n }\n async function asInlayHints(values, token) {\n if (!Array.isArray(values)) {\n return undefined;\n }\n return async.mapAsync(values, asInlayHint, token);\n }\n function asCallHierarchyItem(item) {\n if (item === null) {\n return undefined;\n }\n const result = new protocolCallHierarchyItem_1.default(asSymbolKind(item.kind), item.name, item.detail || '', asUri(item.uri), asRange(item.range), asRange(item.selectionRange), item.data);\n if (item.tags !== undefined) {\n result.tags = asSymbolTags(item.tags);\n }\n return result;\n }\n async function asCallHierarchyItems(items, token) {\n if (items === null) {\n return undefined;\n }\n return async.map(items, asCallHierarchyItem, token);\n }\n async function asCallHierarchyIncomingCall(item, token) {\n return new code.CallHierarchyIncomingCall(asCallHierarchyItem(item.from), await asRanges(item.fromRanges, token));\n }\n async function asCallHierarchyIncomingCalls(items, token) {\n if (items === null) {\n return undefined;\n }\n return async.mapAsync(items, asCallHierarchyIncomingCall, token);\n }\n async function asCallHierarchyOutgoingCall(item, token) {\n return new code.CallHierarchyOutgoingCall(asCallHierarchyItem(item.to), await asRanges(item.fromRanges, token));\n }\n async function asCallHierarchyOutgoingCalls(items, token) {\n if (items === null) {\n return undefined;\n }\n return async.mapAsync(items, asCallHierarchyOutgoingCall, token);\n }\n async function asSemanticTokens(value, _token) {\n if (value === undefined || value === null) {\n return undefined;\n }\n return new code.SemanticTokens(new Uint32Array(value.data), value.resultId);\n }\n function asSemanticTokensEdit(value) {\n return new code.SemanticTokensEdit(value.start, value.deleteCount, value.data !== undefined ? new Uint32Array(value.data) : undefined);\n }\n async function asSemanticTokensEdits(value, _token) {\n if (value === undefined || value === null) {\n return undefined;\n }\n return new code.SemanticTokensEdits(value.edits.map(asSemanticTokensEdit), value.resultId);\n }\n function asSemanticTokensLegend(value) {\n return value;\n }\n async function asLinkedEditingRanges(value, token) {\n if (value === null || value === undefined) {\n return undefined;\n }\n return new code.LinkedEditingRanges(await asRanges(value.ranges, token), asRegularExpression(value.wordPattern));\n }\n function asRegularExpression(value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n return new RegExp(value);\n }\n function asTypeHierarchyItem(item) {\n if (item === null) {\n return undefined;\n }\n let result = new protocolTypeHierarchyItem_1.default(asSymbolKind(item.kind), item.name, item.detail || '', asUri(item.uri), asRange(item.range), asRange(item.selectionRange), item.data);\n if (item.tags !== undefined) {\n result.tags = asSymbolTags(item.tags);\n }\n return result;\n }\n async function asTypeHierarchyItems(items, token) {\n if (items === null) {\n return undefined;\n }\n return async.map(items, asTypeHierarchyItem, token);\n }\n function asGlobPattern(pattern) {\n if (Is.string(pattern)) {\n return pattern;\n }\n if (ls.RelativePattern.is(pattern)) {\n if (ls.URI.is(pattern.baseUri)) {\n return new code.RelativePattern(asUri(pattern.baseUri), pattern.pattern);\n }\n else if (ls.WorkspaceFolder.is(pattern.baseUri)) {\n const workspaceFolder = code.workspace.getWorkspaceFolder(asUri(pattern.baseUri.uri));\n return workspaceFolder !== undefined ? new code.RelativePattern(workspaceFolder, pattern.pattern) : undefined;\n }\n }\n return undefined;\n }\n return {\n asUri,\n asDocumentSelector,\n asDiagnostics,\n asDiagnostic,\n asRange,\n asRanges,\n asPosition,\n asDiagnosticSeverity,\n asDiagnosticTag,\n asHover,\n asCompletionResult,\n asCompletionItem,\n asTextEdit,\n asTextEdits,\n asSignatureHelp,\n asSignatureInformations,\n asSignatureInformation,\n asParameterInformations,\n asParameterInformation,\n asDeclarationResult,\n asDefinitionResult,\n asLocation,\n asReferences,\n asDocumentHighlights,\n asDocumentHighlight,\n asDocumentHighlightKind,\n asSymbolKind,\n asSymbolTag,\n asSymbolTags,\n asSymbolInformations,\n asSymbolInformation,\n asDocumentSymbols,\n asDocumentSymbol,\n asCommand,\n asCommands,\n asCodeAction,\n asCodeActionKind,\n asCodeActionKinds,\n asCodeActionResult,\n asCodeLens,\n asCodeLenses,\n asWorkspaceEdit,\n asDocumentLink,\n asDocumentLinks,\n asFoldingRangeKind,\n asFoldingRange,\n asFoldingRanges,\n asColor,\n asColorInformation,\n asColorInformations,\n asColorPresentation,\n asColorPresentations,\n asSelectionRange,\n asSelectionRanges,\n asInlineValue,\n asInlineValues,\n asInlayHint,\n asInlayHints,\n asSemanticTokensLegend,\n asSemanticTokens,\n asSemanticTokensEdit,\n asSemanticTokensEdits,\n asCallHierarchyItem,\n asCallHierarchyItems,\n asCallHierarchyIncomingCall,\n asCallHierarchyIncomingCalls,\n asCallHierarchyOutgoingCall,\n asCallHierarchyOutgoingCalls,\n asLinkedEditingRanges: asLinkedEditingRanges,\n asTypeHierarchyItem,\n asTypeHierarchyItems,\n asGlobPattern\n };\n}\nexports.createConverter = createConverter;\n//# sourceMappingURL=protocolConverter.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.ProgressPart = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst Is = require(\"./utils/is\");\nclass ProgressPart {\n constructor(_client, _token, done) {\n this._client = _client;\n this._token = _token;\n this._reported = 0;\n this._infinite = false;\n this._lspProgressDisposable = this._client.onProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, (value) => {\n switch (value.kind) {\n case 'begin':\n this.begin(value);\n break;\n case 'report':\n this.report(value);\n break;\n case 'end':\n this.done();\n done && done(this);\n break;\n }\n });\n }\n begin(params) {\n this._infinite = params.percentage === undefined;\n // the progress as already been marked as done / canceled. Ignore begin call\n if (this._lspProgressDisposable === undefined) {\n return;\n }\n // Since we don't use commands this will be a silent window progress with a hidden notification.\n void vscode_1.window.withProgress({ location: vscode_1.ProgressLocation.Window, cancellable: params.cancellable, title: params.title }, async (progress, cancellationToken) => {\n // the progress as already been marked as done / canceled. Ignore begin call\n if (this._lspProgressDisposable === undefined) {\n return;\n }\n this._progress = progress;\n this._cancellationToken = cancellationToken;\n this._tokenDisposable = this._cancellationToken.onCancellationRequested(() => {\n this._client.sendNotification(vscode_languageserver_protocol_1.WorkDoneProgressCancelNotification.type, { token: this._token });\n });\n this.report(params);\n return new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n });\n }\n report(params) {\n if (this._infinite && Is.string(params.message)) {\n this._progress !== undefined && this._progress.report({ message: params.message });\n }\n else if (Is.number(params.percentage)) {\n const percentage = Math.max(0, Math.min(params.percentage, 100));\n const delta = Math.max(0, percentage - this._reported);\n this._reported += delta;\n this._progress !== undefined && this._progress.report({ message: params.message, increment: delta });\n }\n }\n cancel() {\n this.cleanup();\n if (this._reject !== undefined) {\n this._reject();\n this._resolve = undefined;\n this._reject = undefined;\n }\n }\n done() {\n this.cleanup();\n if (this._resolve !== undefined) {\n this._resolve();\n this._resolve = undefined;\n this._reject = undefined;\n }\n }\n cleanup() {\n if (this._lspProgressDisposable !== undefined) {\n this._lspProgressDisposable.dispose();\n this._lspProgressDisposable = undefined;\n }\n if (this._tokenDisposable !== undefined) {\n this._tokenDisposable.dispose();\n this._tokenDisposable = undefined;\n }\n this._progress = undefined;\n this._cancellationToken = undefined;\n }\n}\nexports.ProgressPart = ProgressPart;\n//# sourceMappingURL=progressPart.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.WorkspaceFeature = exports.TextDocumentLanguageFeature = exports.TextDocumentEventFeature = exports.DynamicDocumentFeature = exports.DynamicFeature = exports.StaticFeature = exports.ensure = exports.LSPCancellationError = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst Is = require(\"./utils/is\");\nconst UUID = require(\"./utils/uuid\");\nclass LSPCancellationError extends vscode_1.CancellationError {\n constructor(data) {\n super();\n this.data = data;\n }\n}\nexports.LSPCancellationError = LSPCancellationError;\nfunction ensure(target, key) {\n if (target[key] === undefined) {\n target[key] = {};\n }\n return target[key];\n}\nexports.ensure = ensure;\nvar StaticFeature;\n(function (StaticFeature) {\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null &&\n Is.func(candidate.fillClientCapabilities) && Is.func(candidate.initialize) && Is.func(candidate.getState) && Is.func(candidate.dispose) &&\n (candidate.fillInitializeParams === undefined || Is.func(candidate.fillInitializeParams));\n }\n StaticFeature.is = is;\n})(StaticFeature = exports.StaticFeature || (exports.StaticFeature = {}));\nvar DynamicFeature;\n(function (DynamicFeature) {\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null &&\n Is.func(candidate.fillClientCapabilities) && Is.func(candidate.initialize) && Is.func(candidate.getState) && Is.func(candidate.dispose) &&\n (candidate.fillInitializeParams === undefined || Is.func(candidate.fillInitializeParams)) && Is.func(candidate.register) &&\n Is.func(candidate.unregister) && candidate.registrationType !== undefined;\n }\n DynamicFeature.is = is;\n})(DynamicFeature = exports.DynamicFeature || (exports.DynamicFeature = {}));\n/**\n * An abstract dynamic feature implementation that operates on documents (e.g. text\n * documents or notebooks).\n */\nclass DynamicDocumentFeature {\n constructor(client) {\n this._client = client;\n }\n /**\n * Returns the state the feature is in.\n */\n getState() {\n const selectors = this.getDocumentSelectors();\n let count = 0;\n for (const selector of selectors) {\n count++;\n for (const document of vscode_1.workspace.textDocuments) {\n if (vscode_1.languages.match(selector, document) > 0) {\n return { kind: 'document', id: this.registrationType.method, registrations: true, matches: true };\n }\n }\n }\n const registrations = count > 0;\n return { kind: 'document', id: this.registrationType.method, registrations, matches: false };\n }\n}\nexports.DynamicDocumentFeature = DynamicDocumentFeature;\n/**\n * An abstract base class to implement features that react to events\n * emitted from text documents.\n */\nclass TextDocumentEventFeature extends DynamicDocumentFeature {\n constructor(client, event, type, middleware, createParams, textDocument, selectorFilter) {\n super(client);\n this._event = event;\n this._type = type;\n this._middleware = middleware;\n this._createParams = createParams;\n this._textDocument = textDocument;\n this._selectorFilter = selectorFilter;\n this._selectors = new Map();\n this._onNotificationSent = new vscode_1.EventEmitter();\n }\n static textDocumentFilter(selectors, textDocument) {\n for (const selector of selectors) {\n if (vscode_1.languages.match(selector, textDocument) > 0) {\n return true;\n }\n }\n return false;\n }\n getStateInfo() {\n return [this._selectors.values(), false];\n }\n getDocumentSelectors() {\n return this._selectors.values();\n }\n register(data) {\n if (!data.registerOptions.documentSelector) {\n return;\n }\n if (!this._listener) {\n this._listener = this._event((data) => {\n this.callback(data).catch((error) => {\n this._client.error(`Sending document notification ${this._type.method} failed.`, error);\n });\n });\n }\n this._selectors.set(data.id, this._client.protocol2CodeConverter.asDocumentSelector(data.registerOptions.documentSelector));\n }\n async callback(data) {\n const doSend = async (data) => {\n const params = this._createParams(data);\n await this._client.sendNotification(this._type, params).catch();\n this.notificationSent(data, this._type, params);\n };\n if (this.matches(data)) {\n const middleware = this._middleware();\n return middleware ? middleware(data, (data) => doSend(data)) : doSend(data);\n }\n }\n matches(data) {\n if (this._client.hasDedicatedTextSynchronizationFeature(this._textDocument(data))) {\n return false;\n }\n return !this._selectorFilter || this._selectorFilter(this._selectors.values(), data);\n }\n get onNotificationSent() {\n return this._onNotificationSent.event;\n }\n notificationSent(data, type, params) {\n this._onNotificationSent.fire({ original: data, type, params });\n }\n unregister(id) {\n this._selectors.delete(id);\n if (this._selectors.size === 0 && this._listener) {\n this._listener.dispose();\n this._listener = undefined;\n }\n }\n dispose() {\n this._selectors.clear();\n this._onNotificationSent.dispose();\n if (this._listener) {\n this._listener.dispose();\n this._listener = undefined;\n }\n }\n getProvider(document) {\n for (const selector of this._selectors.values()) {\n if (vscode_1.languages.match(selector, document) > 0) {\n return {\n send: (data) => {\n return this.callback(data);\n }\n };\n }\n }\n return undefined;\n }\n}\nexports.TextDocumentEventFeature = TextDocumentEventFeature;\n/**\n * A abstract feature implementation that registers language providers\n * for text documents using a given document selector.\n */\nclass TextDocumentLanguageFeature extends DynamicDocumentFeature {\n constructor(client, registrationType) {\n super(client);\n this._registrationType = registrationType;\n this._registrations = new Map();\n }\n *getDocumentSelectors() {\n for (const registration of this._registrations.values()) {\n const selector = registration.data.registerOptions.documentSelector;\n if (selector === null) {\n continue;\n }\n yield this._client.protocol2CodeConverter.asDocumentSelector(selector);\n }\n }\n get registrationType() {\n return this._registrationType;\n }\n register(data) {\n if (!data.registerOptions.documentSelector) {\n return;\n }\n let registration = this.registerLanguageProvider(data.registerOptions, data.id);\n this._registrations.set(data.id, { disposable: registration[0], data, provider: registration[1] });\n }\n unregister(id) {\n let registration = this._registrations.get(id);\n if (registration !== undefined) {\n registration.disposable.dispose();\n }\n }\n dispose() {\n this._registrations.forEach((value) => {\n value.disposable.dispose();\n });\n this._registrations.clear();\n }\n getRegistration(documentSelector, capability) {\n if (!capability) {\n return [undefined, undefined];\n }\n else if (vscode_languageserver_protocol_1.TextDocumentRegistrationOptions.is(capability)) {\n const id = vscode_languageserver_protocol_1.StaticRegistrationOptions.hasId(capability) ? capability.id : UUID.generateUuid();\n const selector = capability.documentSelector || documentSelector;\n if (selector) {\n return [id, Object.assign({}, capability, { documentSelector: selector })];\n }\n }\n else if (Is.boolean(capability) && capability === true || vscode_languageserver_protocol_1.WorkDoneProgressOptions.is(capability)) {\n if (!documentSelector) {\n return [undefined, undefined];\n }\n let options = (Is.boolean(capability) && capability === true ? { documentSelector } : Object.assign({}, capability, { documentSelector }));\n return [UUID.generateUuid(), options];\n }\n return [undefined, undefined];\n }\n getRegistrationOptions(documentSelector, capability) {\n if (!documentSelector || !capability) {\n return undefined;\n }\n return (Is.boolean(capability) && capability === true ? { documentSelector } : Object.assign({}, capability, { documentSelector }));\n }\n getProvider(textDocument) {\n for (const registration of this._registrations.values()) {\n let selector = registration.data.registerOptions.documentSelector;\n if (selector !== null && vscode_1.languages.match(this._client.protocol2CodeConverter.asDocumentSelector(selector), textDocument) > 0) {\n return registration.provider;\n }\n }\n return undefined;\n }\n getAllProviders() {\n const result = [];\n for (const item of this._registrations.values()) {\n result.push(item.provider);\n }\n return result;\n }\n}\nexports.TextDocumentLanguageFeature = TextDocumentLanguageFeature;\nclass WorkspaceFeature {\n constructor(client, registrationType) {\n this._client = client;\n this._registrationType = registrationType;\n this._registrations = new Map();\n }\n getState() {\n const registrations = this._registrations.size > 0;\n return { kind: 'workspace', id: this._registrationType.method, registrations };\n }\n get registrationType() {\n return this._registrationType;\n }\n register(data) {\n const registration = this.registerLanguageProvider(data.registerOptions);\n this._registrations.set(data.id, { disposable: registration[0], provider: registration[1] });\n }\n unregister(id) {\n let registration = this._registrations.get(id);\n if (registration !== undefined) {\n registration.disposable.dispose();\n }\n }\n dispose() {\n this._registrations.forEach((registration) => {\n registration.disposable.dispose();\n });\n this._registrations.clear();\n }\n getProviders() {\n const result = [];\n for (const registration of this._registrations.values()) {\n result.push(registration.provider);\n }\n return result;\n }\n}\nexports.WorkspaceFeature = WorkspaceFeature;\n//# sourceMappingURL=features.js.map", "module.exports = function (xs, fn) {\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n var x = fn(xs[i], i);\n if (isArray(x)) res.push.apply(res, x);\n else res.push(x);\n }\n return res;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n", "'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n", "var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = concatMap(n, function(el) { return expand(el, false) });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n", "module.exports = minimatch\nminimatch.Minimatch = Minimatch\n\nvar path = (function () { try { return require('path') } catch (e) {}}()) || {\n sep: '/'\n}\nminimatch.sep = path.sep\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}\nvar expand = require('brace-expansion')\n\nvar plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nvar qmark = '[^/]'\n\n// * => any number of characters\nvar star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// characters that need to be escaped in RegExp.\nvar reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// \"abc\" -> { a:true, b:true, c:true }\nfunction charSet (s) {\n return s.split('').reduce(function (set, c) {\n set[c] = true\n return set\n }, {})\n}\n\n// normalizes slashes.\nvar slashSplit = /\\/+/\n\nminimatch.filter = filter\nfunction filter (pattern, options) {\n options = options || {}\n return function (p, i, list) {\n return minimatch(p, pattern, options)\n }\n}\n\nfunction ext (a, b) {\n b = b || {}\n var t = {}\n Object.keys(a).forEach(function (k) {\n t[k] = a[k]\n })\n Object.keys(b).forEach(function (k) {\n t[k] = b[k]\n })\n return t\n}\n\nminimatch.defaults = function (def) {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n var orig = minimatch\n\n var m = function minimatch (p, pattern, options) {\n return orig(p, pattern, ext(def, options))\n }\n\n m.Minimatch = function Minimatch (pattern, options) {\n return new orig.Minimatch(pattern, ext(def, options))\n }\n m.Minimatch.defaults = function defaults (options) {\n return orig.defaults(ext(def, options)).Minimatch\n }\n\n m.filter = function filter (pattern, options) {\n return orig.filter(pattern, ext(def, options))\n }\n\n m.defaults = function defaults (options) {\n return orig.defaults(ext(def, options))\n }\n\n m.makeRe = function makeRe (pattern, options) {\n return orig.makeRe(pattern, ext(def, options))\n }\n\n m.braceExpand = function braceExpand (pattern, options) {\n return orig.braceExpand(pattern, ext(def, options))\n }\n\n m.match = function (list, pattern, options) {\n return orig.match(list, pattern, ext(def, options))\n }\n\n return m\n}\n\nMinimatch.defaults = function (def) {\n return minimatch.defaults(def).Minimatch\n}\n\nfunction minimatch (p, pattern, options) {\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\nfunction Minimatch (pattern, options) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options)\n }\n\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n pattern = pattern.trim()\n\n // windows support: need to use /, not \\\n if (!options.allowWindowsEscape && path.sep !== '/') {\n pattern = pattern.split(path.sep).join('/')\n }\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n\n // make the set of regexps etc.\n this.make()\n}\n\nMinimatch.prototype.debug = function () {}\n\nMinimatch.prototype.make = make\nfunction make () {\n var pattern = this.pattern\n var options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n var set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(function (s) {\n return s.split(slashSplit)\n })\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map(function (s, si, set) {\n return s.map(this.parse, this)\n }, this)\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(function (s) {\n return s.indexOf(false) === -1\n })\n\n this.debug(this.pattern, set)\n\n this.set = set\n}\n\nMinimatch.prototype.parseNegate = parseNegate\nfunction parseNegate () {\n var pattern = this.pattern\n var negate = false\n var options = this.options\n var negateOffset = 0\n\n if (options.nonegate) return\n\n for (var i = 0, l = pattern.length\n ; i < l && pattern.charAt(i) === '!'\n ; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.substr(negateOffset)\n this.negate = negate\n}\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = function (pattern, options) {\n return braceExpand(pattern, options)\n}\n\nMinimatch.prototype.braceExpand = braceExpand\n\nfunction braceExpand (pattern, options) {\n if (!options) {\n if (this instanceof Minimatch) {\n options = this.options\n } else {\n options = {}\n }\n }\n\n pattern = typeof pattern === 'undefined'\n ? this.pattern : pattern\n\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li <https://github.com/yetingli> for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\nvar MAX_PATTERN_LENGTH = 1024 * 64\nvar assertValidPattern = function (pattern) {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nMinimatch.prototype.parse = parse\nvar SUBPARSE = {}\nfunction parse (pattern, isSub) {\n assertValidPattern(pattern)\n\n var options = this.options\n\n // shortcuts\n if (pattern === '**') {\n if (!options.noglobstar)\n return GLOBSTAR\n else\n pattern = '*'\n }\n if (pattern === '') return ''\n\n var re = ''\n var hasMagic = !!options.nocase\n var escaping = false\n // ? => one single character\n var patternListStack = []\n var negativeLists = []\n var stateChar\n var inClass = false\n var reClassStart = -1\n var classStart = -1\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set.\n var patternStart = pattern.charAt(0) === '.' ? '' // anything\n // not (start or / followed by . or .. followed by / or end)\n : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))'\n : '(?!\\\\.)'\n var self = this\n\n function clearStateChar () {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n self.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (var i = 0, len = pattern.length, c\n ; (i < len) && (c = pattern.charAt(i))\n ; i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping && reSpecials[c]) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n switch (c) {\n /* istanbul ignore next */\n case '/': {\n // completely not allowed, even escaped.\n // Should already be path-split by now.\n return false\n }\n\n case '\\\\':\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n self.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(':\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n patternListStack.push({\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close\n })\n // negation is (?:(?!js)[^/]*)\n re += stateChar === '!' ? '(?:(?!(?:' : '(?:'\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n\n case ')':\n if (inClass || !patternListStack.length) {\n re += '\\\\)'\n continue\n }\n\n clearStateChar()\n hasMagic = true\n var pl = patternListStack.pop()\n // negation is (?:(?!js)[^/]*)\n // The others are (?:<pattern>)<type>\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(pl)\n }\n pl.reEnd = re.length\n continue\n\n case '|':\n if (inClass || !patternListStack.length || escaping) {\n re += '\\\\|'\n escaping = false\n continue\n }\n\n clearStateChar()\n re += '|'\n continue\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n // handle the case where we left a class open.\n // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n var cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + cs + ']')\n } catch (er) {\n // not a valid class!\n var sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]'\n hasMagic = hasMagic || sp[1]\n inClass = false\n continue\n }\n\n // finish up the class.\n hasMagic = true\n inClass = false\n re += c\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (escaping) {\n // no need\n escaping = false\n } else if (reSpecials[c]\n && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.substr(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n var t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n var addPatternStart = false\n switch (re.charAt(0)) {\n case '[': case '.': case '(': addPatternStart = true\n }\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (var n = negativeLists.length - 1; n > -1; n--) {\n var nl = negativeLists[n]\n\n var nlBefore = re.slice(0, nl.reStart)\n var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)\n var nlAfter = re.slice(nl.reEnd)\n\n nlLast += nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n var openParensBefore = nlBefore.split('(').length - 1\n var cleanAfter = nlAfter\n for (i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n var dollar = ''\n if (nlAfter === '' && isSub !== SUBPARSE) {\n dollar = '$'\n }\n var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast\n re = newRe\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n var flags = options.nocase ? 'i' : ''\n try {\n var regExp = new RegExp('^' + re + '$', flags)\n } catch (er) /* istanbul ignore next - should be impossible */ {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n\n regExp._glob = pattern\n regExp._src = re\n\n return regExp\n}\n\nminimatch.makeRe = function (pattern, options) {\n return new Minimatch(pattern, options || {}).makeRe()\n}\n\nMinimatch.prototype.makeRe = makeRe\nfunction makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n var set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n var options = this.options\n\n var twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n var flags = options.nocase ? 'i' : ''\n\n var re = set.map(function (pattern) {\n return pattern.map(function (p) {\n return (p === GLOBSTAR) ? twoStar\n : (typeof p === 'string') ? regExpEscape(p)\n : p._src\n }).join('\\\\\\/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) /* istanbul ignore next - should be impossible */ {\n this.regexp = false\n }\n return this.regexp\n}\n\nminimatch.match = function (list, pattern, options) {\n options = options || {}\n var mm = new Minimatch(pattern, options)\n list = list.filter(function (f) {\n return mm.match(f)\n })\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\nMinimatch.prototype.match = function match (f, partial) {\n if (typeof partial === 'undefined') partial = this.partial\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n var options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n var set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n var filename\n var i\n for (i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (i = 0; i < set.length; i++) {\n var pattern = set[i]\n var file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n var hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n}\n\n// set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n /* istanbul ignore if */\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n /* istanbul ignore if */\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n hit = f === p\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else /* istanbul ignore else */ if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n return (fi === fl - 1) && (file[fi] === '')\n }\n\n // should be unreachable.\n /* istanbul ignore next */\n throw new Error('wtf?')\n}\n\n// replace stuff like \\* with *\nfunction globUnescape (s) {\n return s.replace(/\\\\(.)/g, '$1')\n}\n\nfunction regExpEscape (s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\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.DiagnosticFeature = exports.DiagnosticPullMode = exports.vsdiag = void 0;\nconst minimatch = require(\"minimatch\");\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst uuid_1 = require(\"./utils/uuid\");\nconst features_1 = require(\"./features\");\nfunction ensure(target, key) {\n if (target[key] === void 0) {\n target[key] = {};\n }\n return target[key];\n}\nvar vsdiag;\n(function (vsdiag) {\n let DocumentDiagnosticReportKind;\n (function (DocumentDiagnosticReportKind) {\n DocumentDiagnosticReportKind[\"full\"] = \"full\";\n DocumentDiagnosticReportKind[\"unChanged\"] = \"unChanged\";\n })(DocumentDiagnosticReportKind = vsdiag.DocumentDiagnosticReportKind || (vsdiag.DocumentDiagnosticReportKind = {}));\n})(vsdiag = exports.vsdiag || (exports.vsdiag = {}));\nvar DiagnosticPullMode;\n(function (DiagnosticPullMode) {\n DiagnosticPullMode[\"onType\"] = \"onType\";\n DiagnosticPullMode[\"onSave\"] = \"onSave\";\n})(DiagnosticPullMode = exports.DiagnosticPullMode || (exports.DiagnosticPullMode = {}));\nvar RequestStateKind;\n(function (RequestStateKind) {\n RequestStateKind[\"active\"] = \"open\";\n RequestStateKind[\"reschedule\"] = \"reschedule\";\n RequestStateKind[\"outDated\"] = \"drop\";\n})(RequestStateKind || (RequestStateKind = {}));\n/**\n * Manages the open tabs. We don't directly use the tab API since for\n * diagnostics we need to de-dupe tabs that show the same resources since\n * we pull on the model not the UI.\n */\nclass Tabs {\n constructor() {\n this.open = new Set();\n this._onOpen = new vscode_1.EventEmitter();\n this._onClose = new vscode_1.EventEmitter();\n Tabs.fillTabResources(this.open);\n const openTabsHandler = (event) => {\n if (event.closed.length === 0 && event.opened.length === 0) {\n return;\n }\n const oldTabs = this.open;\n const currentTabs = new Set();\n Tabs.fillTabResources(currentTabs);\n const closed = new Set();\n const opened = new Set(currentTabs);\n for (const tab of oldTabs.values()) {\n if (currentTabs.has(tab)) {\n opened.delete(tab);\n }\n else {\n closed.add(tab);\n }\n }\n this.open = currentTabs;\n if (closed.size > 0) {\n const toFire = new Set();\n for (const item of closed) {\n toFire.add(vscode_1.Uri.parse(item));\n }\n this._onClose.fire(toFire);\n }\n if (opened.size > 0) {\n const toFire = new Set();\n for (const item of opened) {\n toFire.add(vscode_1.Uri.parse(item));\n }\n this._onOpen.fire(toFire);\n }\n };\n if (vscode_1.window.tabGroups.onDidChangeTabs !== undefined) {\n this.disposable = vscode_1.window.tabGroups.onDidChangeTabs(openTabsHandler);\n }\n else {\n this.disposable = { dispose: () => { } };\n }\n }\n get onClose() {\n return this._onClose.event;\n }\n get onOpen() {\n return this._onOpen.event;\n }\n dispose() {\n this.disposable.dispose();\n }\n isActive(document) {\n return document instanceof vscode_1.Uri\n ? vscode_1.window.activeTextEditor?.document.uri === document\n : vscode_1.window.activeTextEditor?.document === document;\n }\n isVisible(document) {\n const uri = document instanceof vscode_1.Uri ? document : document.uri;\n return this.open.has(uri.toString());\n }\n getTabResources() {\n const result = new Set();\n Tabs.fillTabResources(new Set(), result);\n return result;\n }\n static fillTabResources(strings, uris) {\n const seen = strings ?? new Set();\n for (const group of vscode_1.window.tabGroups.all) {\n for (const tab of group.tabs) {\n const input = tab.input;\n let uri;\n if (input instanceof vscode_1.TabInputText) {\n uri = input.uri;\n }\n else if (input instanceof vscode_1.TabInputTextDiff) {\n uri = input.modified;\n }\n if (uri !== undefined && !seen.has(uri.toString())) {\n seen.add(uri.toString());\n uris !== undefined && uris.add(uri);\n }\n }\n }\n }\n}\nvar PullState;\n(function (PullState) {\n PullState[PullState[\"document\"] = 1] = \"document\";\n PullState[PullState[\"workspace\"] = 2] = \"workspace\";\n})(PullState || (PullState = {}));\nclass DocumentPullStateTracker {\n constructor() {\n this.documentPullStates = new Map();\n this.workspacePullStates = new Map();\n }\n track(kind, document, arg1) {\n const states = kind === PullState.document ? this.documentPullStates : this.workspacePullStates;\n const [key, uri, version] = document instanceof vscode_1.Uri\n ? [document.toString(), document, arg1]\n : [document.uri.toString(), document.uri, document.version];\n let state = states.get(key);\n if (state === undefined) {\n state = { document: uri, pulledVersion: version, resultId: undefined };\n states.set(key, state);\n }\n return state;\n }\n update(kind, document, arg1, arg2) {\n const states = kind === PullState.document ? this.documentPullStates : this.workspacePullStates;\n const [key, uri, version, resultId] = document instanceof vscode_1.Uri\n ? [document.toString(), document, arg1, arg2]\n : [document.uri.toString(), document.uri, document.version, arg1];\n let state = states.get(key);\n if (state === undefined) {\n state = { document: uri, pulledVersion: version, resultId };\n states.set(key, state);\n }\n else {\n state.pulledVersion = version;\n state.resultId = resultId;\n }\n }\n unTrack(kind, document) {\n const key = document instanceof vscode_1.Uri ? document.toString() : document.uri.toString();\n const states = kind === PullState.document ? this.documentPullStates : this.workspacePullStates;\n states.delete(key);\n }\n tracks(kind, document) {\n const key = document instanceof vscode_1.Uri ? document.toString() : document.uri.toString();\n const states = kind === PullState.document ? this.documentPullStates : this.workspacePullStates;\n return states.has(key);\n }\n getResultId(kind, document) {\n const key = document instanceof vscode_1.Uri ? document.toString() : document.uri.toString();\n const states = kind === PullState.document ? this.documentPullStates : this.workspacePullStates;\n return states.get(key)?.resultId;\n }\n getAllResultIds() {\n const result = [];\n for (let [uri, value] of this.workspacePullStates) {\n if (this.documentPullStates.has(uri)) {\n value = this.documentPullStates.get(uri);\n }\n if (value.resultId !== undefined) {\n result.push({ uri, value: value.resultId });\n }\n }\n return result;\n }\n}\nclass DiagnosticRequestor {\n constructor(client, tabs, options) {\n this.client = client;\n this.tabs = tabs;\n this.options = options;\n this.isDisposed = false;\n this.onDidChangeDiagnosticsEmitter = new vscode_1.EventEmitter();\n this.provider = this.createProvider();\n this.diagnostics = vscode_1.languages.createDiagnosticCollection(options.identifier);\n this.openRequests = new Map();\n this.documentStates = new DocumentPullStateTracker();\n this.workspaceErrorCounter = 0;\n }\n knows(kind, document) {\n return this.documentStates.tracks(kind, document);\n }\n forget(kind, document) {\n this.documentStates.unTrack(kind, document);\n }\n pull(document, cb) {\n if (this.isDisposed) {\n return;\n }\n const uri = document instanceof vscode_1.Uri ? document : document.uri;\n this.pullAsync(document).then(() => {\n if (cb) {\n cb();\n }\n }, (error) => {\n this.client.error(`Document pull failed for text document ${uri.toString()}`, error, false);\n });\n }\n async pullAsync(document, version) {\n if (this.isDisposed) {\n return;\n }\n const isUri = document instanceof vscode_1.Uri;\n const uri = isUri ? document : document.uri;\n const key = uri.toString();\n version = isUri ? version : document.version;\n const currentRequestState = this.openRequests.get(key);\n const documentState = isUri\n ? this.documentStates.track(PullState.document, document, version)\n : this.documentStates.track(PullState.document, document);\n if (currentRequestState === undefined) {\n const tokenSource = new vscode_1.CancellationTokenSource();\n this.openRequests.set(key, { state: RequestStateKind.active, document: document, version: version, tokenSource });\n let report;\n let afterState;\n try {\n report = await this.provider.provideDiagnostics(document, documentState.resultId, tokenSource.token) ?? { kind: vsdiag.DocumentDiagnosticReportKind.full, items: [] };\n }\n catch (error) {\n if (error instanceof features_1.LSPCancellationError && vscode_languageserver_protocol_1.DiagnosticServerCancellationData.is(error.data) && error.data.retriggerRequest === false) {\n afterState = { state: RequestStateKind.outDated, document };\n }\n if (afterState === undefined && error instanceof vscode_1.CancellationError) {\n afterState = { state: RequestStateKind.reschedule, document };\n }\n else {\n throw error;\n }\n }\n afterState = afterState ?? this.openRequests.get(key);\n if (afterState === undefined) {\n // This shouldn't happen. Log it\n this.client.error(`Lost request state in diagnostic pull model. Clearing diagnostics for ${key}`);\n this.diagnostics.delete(uri);\n return;\n }\n this.openRequests.delete(key);\n if (!this.tabs.isVisible(document)) {\n this.documentStates.unTrack(PullState.document, document);\n return;\n }\n if (afterState.state === RequestStateKind.outDated) {\n return;\n }\n // report is only undefined if the request has thrown.\n if (report !== undefined) {\n if (report.kind === vsdiag.DocumentDiagnosticReportKind.full) {\n this.diagnostics.set(uri, report.items);\n }\n documentState.pulledVersion = version;\n documentState.resultId = report.resultId;\n }\n if (afterState.state === RequestStateKind.reschedule) {\n this.pull(document);\n }\n }\n else {\n if (currentRequestState.state === RequestStateKind.active) {\n // Cancel the current request and reschedule a new one when the old one returned.\n currentRequestState.tokenSource.cancel();\n this.openRequests.set(key, { state: RequestStateKind.reschedule, document: currentRequestState.document });\n }\n else if (currentRequestState.state === RequestStateKind.outDated) {\n this.openRequests.set(key, { state: RequestStateKind.reschedule, document: currentRequestState.document });\n }\n }\n }\n forgetDocument(document) {\n const uri = document instanceof vscode_1.Uri ? document : document.uri;\n const key = uri.toString();\n const request = this.openRequests.get(key);\n if (this.options.workspaceDiagnostics) {\n // If we run workspace diagnostic pull a last time for the diagnostics\n // and the rely on getting them from the workspace result.\n if (request !== undefined) {\n this.openRequests.set(key, { state: RequestStateKind.reschedule, document: document });\n }\n else {\n this.pull(document, () => {\n this.forget(PullState.document, document);\n });\n }\n }\n else {\n // We have normal pull or inter file dependencies. In this case we\n // clear the diagnostics (to have the same start as after startup).\n // We also cancel outstanding requests.\n if (request !== undefined) {\n if (request.state === RequestStateKind.active) {\n request.tokenSource.cancel();\n }\n this.openRequests.set(key, { state: RequestStateKind.outDated, document: document });\n }\n this.diagnostics.delete(uri);\n this.forget(PullState.document, document);\n }\n }\n pullWorkspace() {\n if (this.isDisposed) {\n return;\n }\n this.pullWorkspaceAsync().then(() => {\n this.workspaceTimeout = (0, vscode_languageserver_protocol_1.RAL)().timer.setTimeout(() => {\n this.pullWorkspace();\n }, 2000);\n }, (error) => {\n if (!(error instanceof features_1.LSPCancellationError) && !vscode_languageserver_protocol_1.DiagnosticServerCancellationData.is(error.data)) {\n this.client.error(`Workspace diagnostic pull failed.`, error, false);\n this.workspaceErrorCounter++;\n }\n if (this.workspaceErrorCounter <= 5) {\n this.workspaceTimeout = (0, vscode_languageserver_protocol_1.RAL)().timer.setTimeout(() => {\n this.pullWorkspace();\n }, 2000);\n }\n });\n }\n async pullWorkspaceAsync() {\n if (!this.provider.provideWorkspaceDiagnostics || this.isDisposed) {\n return;\n }\n if (this.workspaceCancellation !== undefined) {\n this.workspaceCancellation.cancel();\n this.workspaceCancellation = undefined;\n }\n this.workspaceCancellation = new vscode_1.CancellationTokenSource();\n const previousResultIds = this.documentStates.getAllResultIds().map((item) => {\n return {\n uri: this.client.protocol2CodeConverter.asUri(item.uri),\n value: item.value\n };\n });\n await this.provider.provideWorkspaceDiagnostics(previousResultIds, this.workspaceCancellation.token, (chunk) => {\n if (!chunk || this.isDisposed) {\n return;\n }\n for (const item of chunk.items) {\n if (item.kind === vsdiag.DocumentDiagnosticReportKind.full) {\n // Favour document pull result over workspace results. So skip if it is tracked\n // as a document result.\n if (!this.documentStates.tracks(PullState.document, item.uri)) {\n this.diagnostics.set(item.uri, item.items);\n }\n }\n this.documentStates.update(PullState.workspace, item.uri, item.version ?? undefined, item.resultId);\n }\n });\n }\n createProvider() {\n const result = {\n onDidChangeDiagnostics: this.onDidChangeDiagnosticsEmitter.event,\n provideDiagnostics: (document, previousResultId, token) => {\n const provideDiagnostics = (document, previousResultId, token) => {\n const params = {\n identifier: this.options.identifier,\n textDocument: { uri: this.client.code2ProtocolConverter.asUri(document instanceof vscode_1.Uri ? document : document.uri) },\n previousResultId: previousResultId\n };\n if (this.isDisposed === true || !this.client.isRunning()) {\n return { kind: vsdiag.DocumentDiagnosticReportKind.full, items: [] };\n }\n return this.client.sendRequest(vscode_languageserver_protocol_1.DocumentDiagnosticRequest.type, params, token).then(async (result) => {\n if (result === undefined || result === null || this.isDisposed || token.isCancellationRequested) {\n return { kind: vsdiag.DocumentDiagnosticReportKind.full, items: [] };\n }\n if (result.kind === vscode_languageserver_protocol_1.DocumentDiagnosticReportKind.Full) {\n return { kind: vsdiag.DocumentDiagnosticReportKind.full, resultId: result.resultId, items: await this.client.protocol2CodeConverter.asDiagnostics(result.items, token) };\n }\n else {\n return { kind: vsdiag.DocumentDiagnosticReportKind.unChanged, resultId: result.resultId };\n }\n }, (error) => {\n return this.client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentDiagnosticRequest.type, token, error, { kind: vsdiag.DocumentDiagnosticReportKind.full, items: [] });\n });\n };\n const middleware = this.client.middleware;\n return middleware.provideDiagnostics\n ? middleware.provideDiagnostics(document, previousResultId, token, provideDiagnostics)\n : provideDiagnostics(document, previousResultId, token);\n }\n };\n if (this.options.workspaceDiagnostics) {\n result.provideWorkspaceDiagnostics = (resultIds, token, resultReporter) => {\n const convertReport = async (report) => {\n if (report.kind === vscode_languageserver_protocol_1.DocumentDiagnosticReportKind.Full) {\n return {\n kind: vsdiag.DocumentDiagnosticReportKind.full,\n uri: this.client.protocol2CodeConverter.asUri(report.uri),\n resultId: report.resultId,\n version: report.version,\n items: await this.client.protocol2CodeConverter.asDiagnostics(report.items, token)\n };\n }\n else {\n return {\n kind: vsdiag.DocumentDiagnosticReportKind.unChanged,\n uri: this.client.protocol2CodeConverter.asUri(report.uri),\n resultId: report.resultId,\n version: report.version\n };\n }\n };\n const convertPreviousResultIds = (resultIds) => {\n const converted = [];\n for (const item of resultIds) {\n converted.push({ uri: this.client.code2ProtocolConverter.asUri(item.uri), value: item.value });\n }\n return converted;\n };\n const provideDiagnostics = (resultIds, token) => {\n const partialResultToken = (0, uuid_1.generateUuid)();\n const disposable = this.client.onProgress(vscode_languageserver_protocol_1.WorkspaceDiagnosticRequest.partialResult, partialResultToken, async (partialResult) => {\n if (partialResult === undefined || partialResult === null) {\n resultReporter(null);\n return;\n }\n const converted = {\n items: []\n };\n for (const item of partialResult.items) {\n try {\n converted.items.push(await convertReport(item));\n }\n catch (error) {\n this.client.error(`Converting workspace diagnostics failed.`, error);\n }\n }\n resultReporter(converted);\n });\n const params = {\n identifier: this.options.identifier,\n previousResultIds: convertPreviousResultIds(resultIds),\n partialResultToken: partialResultToken\n };\n if (this.isDisposed === true || !this.client.isRunning()) {\n return { items: [] };\n }\n return this.client.sendRequest(vscode_languageserver_protocol_1.WorkspaceDiagnosticRequest.type, params, token).then(async (result) => {\n if (token.isCancellationRequested) {\n return { items: [] };\n }\n const converted = {\n items: []\n };\n for (const item of result.items) {\n converted.items.push(await convertReport(item));\n }\n disposable.dispose();\n resultReporter(converted);\n return { items: [] };\n }, (error) => {\n disposable.dispose();\n return this.client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentDiagnosticRequest.type, token, error, { items: [] });\n });\n };\n const middleware = this.client.middleware;\n return middleware.provideWorkspaceDiagnostics\n ? middleware.provideWorkspaceDiagnostics(resultIds, token, resultReporter, provideDiagnostics)\n : provideDiagnostics(resultIds, token, resultReporter);\n };\n }\n return result;\n }\n dispose() {\n this.isDisposed = true;\n // Cancel and clear workspace pull if present.\n this.workspaceCancellation?.cancel();\n this.workspaceTimeout?.dispose();\n // Cancel all request and mark open requests as outdated.\n for (const [key, request] of this.openRequests) {\n if (request.state === RequestStateKind.active) {\n request.tokenSource.cancel();\n }\n this.openRequests.set(key, { state: RequestStateKind.outDated, document: request.document });\n }\n // cleanup old diagnostics\n this.diagnostics.dispose();\n }\n}\nclass BackgroundScheduler {\n constructor(diagnosticRequestor) {\n this.diagnosticRequestor = diagnosticRequestor;\n this.documents = new vscode_languageserver_protocol_1.LinkedMap();\n this.isDisposed = false;\n }\n add(document) {\n if (this.isDisposed === true) {\n return;\n }\n const key = document instanceof vscode_1.Uri ? document.toString() : document.uri.toString();\n if (this.documents.has(key)) {\n return;\n }\n this.documents.set(key, document, vscode_languageserver_protocol_1.Touch.Last);\n this.trigger();\n }\n remove(document) {\n const key = document instanceof vscode_1.Uri ? document.toString() : document.uri.toString();\n if (this.documents.has(key)) {\n this.documents.delete(key);\n // Do a last pull\n this.diagnosticRequestor.pull(document);\n }\n // No more documents. Stop background activity.\n if (this.documents.size === 0) {\n this.stop();\n }\n else if (document === this.endDocument) {\n // Make sure we have a correct last document. It could have\n this.endDocument = this.documents.last;\n }\n }\n trigger() {\n if (this.isDisposed === true) {\n return;\n }\n // We have a round running. So simply make sure we run up to the\n // last document\n if (this.intervalHandle !== undefined) {\n this.endDocument = this.documents.last;\n return;\n }\n this.endDocument = this.documents.last;\n this.intervalHandle = (0, vscode_languageserver_protocol_1.RAL)().timer.setInterval(() => {\n const document = this.documents.first;\n if (document !== undefined) {\n const key = document instanceof vscode_1.Uri ? document.toString() : document.uri.toString();\n this.diagnosticRequestor.pull(document);\n this.documents.set(key, document, vscode_languageserver_protocol_1.Touch.Last);\n if (document === this.endDocument) {\n this.stop();\n }\n }\n }, 200);\n }\n dispose() {\n this.isDisposed = true;\n this.stop();\n this.documents.clear();\n }\n stop() {\n this.intervalHandle?.dispose();\n this.intervalHandle = undefined;\n this.endDocument = undefined;\n }\n}\nclass DiagnosticFeatureProviderImpl {\n constructor(client, tabs, options) {\n const diagnosticPullOptions = client.clientOptions.diagnosticPullOptions ?? { onChange: true, onSave: false };\n const documentSelector = client.protocol2CodeConverter.asDocumentSelector(options.documentSelector);\n const disposables = [];\n const matchResource = (resource) => {\n const selector = options.documentSelector;\n if (diagnosticPullOptions.match !== undefined) {\n return diagnosticPullOptions.match(selector, resource);\n }\n for (const filter of selector) {\n if (!vscode_languageserver_protocol_1.TextDocumentFilter.is(filter)) {\n continue;\n }\n // The filter is a language id. We can't determine if it matches\n // so we return false.\n if (typeof filter === 'string') {\n return false;\n }\n if (filter.language !== undefined && filter.language !== '*') {\n return false;\n }\n if (filter.scheme !== undefined && filter.scheme !== '*' && filter.scheme !== resource.scheme) {\n return false;\n }\n if (filter.pattern !== undefined) {\n const matcher = new minimatch.Minimatch(filter.pattern, { noext: true });\n if (!matcher.makeRe()) {\n return false;\n }\n if (!matcher.match(resource.fsPath)) {\n return false;\n }\n }\n }\n return true;\n };\n const matches = (document) => {\n return document instanceof vscode_1.Uri\n ? matchResource(document)\n : vscode_1.languages.match(documentSelector, document) > 0 && tabs.isVisible(document);\n };\n const isActiveDocument = (document) => {\n return document instanceof vscode_1.Uri\n ? this.activeTextDocument?.uri.toString() === document.toString()\n : this.activeTextDocument === document;\n };\n this.diagnosticRequestor = new DiagnosticRequestor(client, tabs, options);\n this.backgroundScheduler = new BackgroundScheduler(this.diagnosticRequestor);\n const addToBackgroundIfNeeded = (document) => {\n if (!matches(document) || !options.interFileDependencies || isActiveDocument(document)) {\n return;\n }\n this.backgroundScheduler.add(document);\n };\n this.activeTextDocument = vscode_1.window.activeTextEditor?.document;\n vscode_1.window.onDidChangeActiveTextEditor((editor) => {\n const oldActive = this.activeTextDocument;\n this.activeTextDocument = editor?.document;\n if (oldActive !== undefined) {\n addToBackgroundIfNeeded(oldActive);\n }\n if (this.activeTextDocument !== undefined) {\n this.backgroundScheduler.remove(this.activeTextDocument);\n }\n });\n // For pull model diagnostics we pull for documents visible in the UI.\n // From an eventing point of view we still rely on open document events\n // and filter the documents that are not visible in the UI instead of\n // listening to Tab events. Major reason is event timing since we need\n // to ensure that the pull is send after the document open has reached\n // the server.\n // We always pull on open.\n const openFeature = client.getFeature(vscode_languageserver_protocol_1.DidOpenTextDocumentNotification.method);\n disposables.push(openFeature.onNotificationSent((event) => {\n const textDocument = event.original;\n if (matches(textDocument)) {\n this.diagnosticRequestor.pull(textDocument, () => { addToBackgroundIfNeeded(textDocument); });\n }\n }));\n // Pull all diagnostics for documents that are already open\n const pulledTextDocuments = new Set();\n for (const textDocument of vscode_1.workspace.textDocuments) {\n if (matches(textDocument)) {\n this.diagnosticRequestor.pull(textDocument, () => { addToBackgroundIfNeeded(textDocument); });\n pulledTextDocuments.add(textDocument.uri.toString());\n }\n }\n // Pull all tabs if not already pulled as text document\n if (diagnosticPullOptions.onTabs === true) {\n for (const resource of tabs.getTabResources()) {\n if (!pulledTextDocuments.has(resource.toString()) && matches(resource)) {\n this.diagnosticRequestor.pull(resource, () => { addToBackgroundIfNeeded(resource); });\n }\n }\n }\n tabs.onOpen((opened) => {\n for (const document of opened) {\n if (matches(document) && !this.diagnosticRequestor.knows(PullState.document, document)) {\n this.diagnosticRequestor.pull(document, () => { addToBackgroundIfNeeded(document); });\n }\n }\n });\n if (diagnosticPullOptions.onChange === true) {\n const changeFeature = client.getFeature(vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.method);\n disposables.push(changeFeature.onNotificationSent(async (event) => {\n const textDocument = event.original.document;\n if ((diagnosticPullOptions.filter === undefined || !diagnosticPullOptions.filter(textDocument, DiagnosticPullMode.onType)) && this.diagnosticRequestor.knows(PullState.document, textDocument) && event.original.contentChanges.length > 0) {\n this.diagnosticRequestor.pull(textDocument, () => { this.backgroundScheduler.trigger(); });\n }\n }));\n }\n if (diagnosticPullOptions.onSave === true) {\n const saveFeature = client.getFeature(vscode_languageserver_protocol_1.DidSaveTextDocumentNotification.method);\n disposables.push(saveFeature.onNotificationSent((event) => {\n const textDocument = event.original;\n if ((diagnosticPullOptions.filter === undefined || !diagnosticPullOptions.filter(textDocument, DiagnosticPullMode.onSave)) && this.diagnosticRequestor.knows(PullState.document, textDocument)) {\n this.diagnosticRequestor.pull(event.original, () => { this.backgroundScheduler.trigger(); });\n }\n }));\n }\n // When the document closes clear things up\n const closeFeature = client.getFeature(vscode_languageserver_protocol_1.DidCloseTextDocumentNotification.method);\n disposables.push(closeFeature.onNotificationSent((event) => {\n this.cleanUpDocument(event.original);\n }));\n // Same when a tabs closes.\n tabs.onClose((closed) => {\n for (const document of closed) {\n this.cleanUpDocument(document);\n }\n });\n // We received a did change from the server.\n this.diagnosticRequestor.onDidChangeDiagnosticsEmitter.event(() => {\n for (const textDocument of vscode_1.workspace.textDocuments) {\n if (matches(textDocument)) {\n this.diagnosticRequestor.pull(textDocument);\n }\n }\n });\n // da348dc5-c30a-4515-9d98-31ff3be38d14 is the test UUID to test the middle ware. So don't auto trigger pulls.\n if (options.workspaceDiagnostics === true && options.identifier !== 'da348dc5-c30a-4515-9d98-31ff3be38d14') {\n this.diagnosticRequestor.pullWorkspace();\n }\n this.disposable = vscode_1.Disposable.from(...disposables, this.backgroundScheduler, this.diagnosticRequestor);\n }\n get onDidChangeDiagnosticsEmitter() {\n return this.diagnosticRequestor.onDidChangeDiagnosticsEmitter;\n }\n get diagnostics() {\n return this.diagnosticRequestor.provider;\n }\n cleanUpDocument(document) {\n if (this.diagnosticRequestor.knows(PullState.document, document)) {\n this.diagnosticRequestor.forgetDocument(document);\n this.backgroundScheduler.remove(document);\n }\n }\n}\nclass DiagnosticFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DocumentDiagnosticRequest.type);\n }\n fillClientCapabilities(capabilities) {\n let capability = ensure(ensure(capabilities, 'textDocument'), 'diagnostic');\n capability.dynamicRegistration = true;\n // We first need to decide how a UI will look with related documents.\n // An easy implementation would be to only show related diagnostics for\n // the active editor.\n capability.relatedDocumentSupport = false;\n ensure(ensure(capabilities, 'workspace'), 'diagnostics').refreshSupport = true;\n }\n initialize(capabilities, documentSelector) {\n const client = this._client;\n client.onRequest(vscode_languageserver_protocol_1.DiagnosticRefreshRequest.type, async () => {\n for (const provider of this.getAllProviders()) {\n provider.onDidChangeDiagnosticsEmitter.fire();\n }\n });\n let [id, options] = this.getRegistration(documentSelector, capabilities.diagnosticProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n dispose() {\n if (this.tabs !== undefined) {\n this.tabs.dispose();\n this.tabs = undefined;\n }\n super.dispose();\n }\n registerLanguageProvider(options) {\n if (this.tabs === undefined) {\n this.tabs = new Tabs();\n }\n const provider = new DiagnosticFeatureProviderImpl(this._client, this.tabs, options);\n return [provider.disposable, provider];\n }\n}\nexports.DiagnosticFeature = DiagnosticFeature;\n//# sourceMappingURL=diagnostic.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.NotebookDocumentSyncFeature = void 0;\nconst vscode = require(\"vscode\");\nconst minimatch = require(\"minimatch\");\nconst proto = require(\"vscode-languageserver-protocol\");\nconst UUID = require(\"./utils/uuid\");\nconst Is = require(\"./utils/is\");\nfunction ensure(target, key) {\n if (target[key] === void 0) {\n target[key] = {};\n }\n return target[key];\n}\nvar Converter;\n(function (Converter) {\n let c2p;\n (function (c2p) {\n function asVersionedNotebookDocumentIdentifier(notebookDocument, base) {\n return {\n version: notebookDocument.version,\n uri: base.asUri(notebookDocument.uri)\n };\n }\n c2p.asVersionedNotebookDocumentIdentifier = asVersionedNotebookDocumentIdentifier;\n function asNotebookDocument(notebookDocument, cells, base) {\n const result = proto.NotebookDocument.create(base.asUri(notebookDocument.uri), notebookDocument.notebookType, notebookDocument.version, asNotebookCells(cells, base));\n if (Object.keys(notebookDocument.metadata).length > 0) {\n result.metadata = asMetadata(notebookDocument.metadata);\n }\n return result;\n }\n c2p.asNotebookDocument = asNotebookDocument;\n function asNotebookCells(cells, base) {\n return cells.map(cell => asNotebookCell(cell, base));\n }\n c2p.asNotebookCells = asNotebookCells;\n function asMetadata(metadata) {\n const seen = new Set();\n return deepCopy(seen, metadata);\n }\n c2p.asMetadata = asMetadata;\n function asNotebookCell(cell, base) {\n const result = proto.NotebookCell.create(asNotebookCellKind(cell.kind), base.asUri(cell.document.uri));\n if (Object.keys(cell.metadata).length > 0) {\n result.metadata = asMetadata(cell.metadata);\n }\n if (cell.executionSummary !== undefined && (Is.number(cell.executionSummary.executionOrder) && Is.boolean(cell.executionSummary.success))) {\n result.executionSummary = {\n executionOrder: cell.executionSummary.executionOrder,\n success: cell.executionSummary.success\n };\n }\n return result;\n }\n c2p.asNotebookCell = asNotebookCell;\n function asNotebookCellKind(kind) {\n switch (kind) {\n case vscode.NotebookCellKind.Markup:\n return proto.NotebookCellKind.Markup;\n case vscode.NotebookCellKind.Code:\n return proto.NotebookCellKind.Code;\n }\n }\n function deepCopy(seen, value) {\n if (seen.has(value)) {\n throw new Error(`Can't deep copy cyclic structures.`);\n }\n if (Array.isArray(value)) {\n const result = [];\n for (const elem of value) {\n if (elem !== null && typeof elem === 'object' || Array.isArray(elem)) {\n result.push(deepCopy(seen, elem));\n }\n else {\n if (elem instanceof RegExp) {\n throw new Error(`Can't transfer regular expressions to the server`);\n }\n result.push(elem);\n }\n }\n return result;\n }\n else {\n const props = Object.keys(value);\n const result = Object.create(null);\n for (const prop of props) {\n const elem = value[prop];\n if (elem !== null && typeof elem === 'object' || Array.isArray(elem)) {\n result[prop] = deepCopy(seen, elem);\n }\n else {\n if (elem instanceof RegExp) {\n throw new Error(`Can't transfer regular expressions to the server`);\n }\n result[prop] = elem;\n }\n }\n return result;\n }\n }\n function asTextContentChange(event, base) {\n const params = base.asChangeTextDocumentParams(event);\n return { document: params.textDocument, changes: params.contentChanges };\n }\n c2p.asTextContentChange = asTextContentChange;\n function asNotebookDocumentChangeEvent(event, base) {\n const result = Object.create(null);\n if (event.metadata) {\n result.metadata = Converter.c2p.asMetadata(event.metadata);\n }\n if (event.cells !== undefined) {\n const cells = Object.create(null);\n const changedCells = event.cells;\n if (changedCells.structure) {\n cells.structure = {\n array: {\n start: changedCells.structure.array.start,\n deleteCount: changedCells.structure.array.deleteCount,\n cells: changedCells.structure.array.cells !== undefined ? changedCells.structure.array.cells.map(cell => Converter.c2p.asNotebookCell(cell, base)) : undefined\n },\n didOpen: changedCells.structure.didOpen !== undefined\n ? changedCells.structure.didOpen.map(cell => base.asOpenTextDocumentParams(cell.document).textDocument)\n : undefined,\n didClose: changedCells.structure.didClose !== undefined\n ? changedCells.structure.didClose.map(cell => base.asCloseTextDocumentParams(cell.document).textDocument)\n : undefined\n };\n }\n if (changedCells.data !== undefined) {\n cells.data = changedCells.data.map(cell => Converter.c2p.asNotebookCell(cell, base));\n }\n if (changedCells.textContent !== undefined) {\n cells.textContent = changedCells.textContent.map(event => Converter.c2p.asTextContentChange(event, base));\n }\n if (Object.keys(cells).length > 0) {\n result.cells = cells;\n }\n }\n return result;\n }\n c2p.asNotebookDocumentChangeEvent = asNotebookDocumentChangeEvent;\n })(c2p = Converter.c2p || (Converter.c2p = {}));\n})(Converter || (Converter = {}));\nvar $NotebookCell;\n(function ($NotebookCell) {\n function computeDiff(originalCells, modifiedCells, compareMetadata) {\n const originalLength = originalCells.length;\n const modifiedLength = modifiedCells.length;\n let startIndex = 0;\n while (startIndex < modifiedLength && startIndex < originalLength && equals(originalCells[startIndex], modifiedCells[startIndex], compareMetadata)) {\n startIndex++;\n }\n if (startIndex < modifiedLength && startIndex < originalLength) {\n let originalEndIndex = originalLength - 1;\n let modifiedEndIndex = modifiedLength - 1;\n while (originalEndIndex >= 0 && modifiedEndIndex >= 0 && equals(originalCells[originalEndIndex], modifiedCells[modifiedEndIndex], compareMetadata)) {\n originalEndIndex--;\n modifiedEndIndex--;\n }\n const deleteCount = (originalEndIndex + 1) - startIndex;\n const newCells = startIndex === modifiedEndIndex + 1 ? undefined : modifiedCells.slice(startIndex, modifiedEndIndex + 1);\n return newCells !== undefined ? { start: startIndex, deleteCount, cells: newCells } : { start: startIndex, deleteCount };\n }\n else if (startIndex < modifiedLength) {\n return { start: startIndex, deleteCount: 0, cells: modifiedCells.slice(startIndex) };\n }\n else if (startIndex < originalLength) {\n return { start: startIndex, deleteCount: originalLength - startIndex };\n }\n else {\n // The two arrays are the same.\n return undefined;\n }\n }\n $NotebookCell.computeDiff = computeDiff;\n /**\n * We only sync kind, document, execution and metadata to the server. So we only need to compare those.\n */\n function equals(one, other, compareMetaData = true) {\n if (one.kind !== other.kind || one.document.uri.toString() !== other.document.uri.toString() || one.document.languageId !== other.document.languageId ||\n !equalsExecution(one.executionSummary, other.executionSummary)) {\n return false;\n }\n return !compareMetaData || (compareMetaData && equalsMetadata(one.metadata, other.metadata));\n }\n function equalsExecution(one, other) {\n if (one === other) {\n return true;\n }\n if (one === undefined || other === undefined) {\n return false;\n }\n return one.executionOrder === other.executionOrder && one.success === other.success && equalsTiming(one.timing, other.timing);\n }\n function equalsTiming(one, other) {\n if (one === other) {\n return true;\n }\n if (one === undefined || other === undefined) {\n return false;\n }\n return one.startTime === other.startTime && one.endTime === other.endTime;\n }\n function equalsMetadata(one, other) {\n if (one === other) {\n return true;\n }\n if (one === null || one === undefined || other === null || other === undefined) {\n return false;\n }\n if (typeof one !== typeof other) {\n return false;\n }\n if (typeof one !== 'object') {\n return false;\n }\n const oneArray = Array.isArray(one);\n const otherArray = Array.isArray(other);\n if (oneArray !== otherArray) {\n return false;\n }\n if (oneArray && otherArray) {\n if (one.length !== other.length) {\n return false;\n }\n for (let i = 0; i < one.length; i++) {\n if (!equalsMetadata(one[i], other[i])) {\n return false;\n }\n }\n }\n if (isObjectLiteral(one) && isObjectLiteral(other)) {\n const oneKeys = Object.keys(one);\n const otherKeys = Object.keys(other);\n if (oneKeys.length !== otherKeys.length) {\n return false;\n }\n oneKeys.sort();\n otherKeys.sort();\n if (!equalsMetadata(oneKeys, otherKeys)) {\n return false;\n }\n for (let i = 0; i < oneKeys.length; i++) {\n const prop = oneKeys[i];\n if (!equalsMetadata(one[prop], other[prop])) {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n function isObjectLiteral(value) {\n return value !== null && typeof value === 'object';\n }\n $NotebookCell.isObjectLiteral = isObjectLiteral;\n})($NotebookCell || ($NotebookCell = {}));\nvar $NotebookDocumentFilter;\n(function ($NotebookDocumentFilter) {\n function matchNotebook(filter, notebookDocument) {\n if (typeof filter === 'string') {\n return filter === '*' || notebookDocument.notebookType === filter;\n }\n if (filter.notebookType !== undefined && filter.notebookType !== '*' && notebookDocument.notebookType !== filter.notebookType) {\n return false;\n }\n const uri = notebookDocument.uri;\n if (filter.scheme !== undefined && filter.scheme !== '*' && uri.scheme !== filter.scheme) {\n return false;\n }\n if (filter.pattern !== undefined) {\n const matcher = new minimatch.Minimatch(filter.pattern, { noext: true });\n if (!matcher.makeRe()) {\n return false;\n }\n if (!matcher.match(uri.fsPath)) {\n return false;\n }\n }\n return true;\n }\n $NotebookDocumentFilter.matchNotebook = matchNotebook;\n})($NotebookDocumentFilter || ($NotebookDocumentFilter = {}));\nvar $NotebookDocumentSyncOptions;\n(function ($NotebookDocumentSyncOptions) {\n function asDocumentSelector(options) {\n const selector = options.notebookSelector;\n const result = [];\n for (const element of selector) {\n const notebookType = (typeof element.notebook === 'string' ? element.notebook : element.notebook?.notebookType) ?? '*';\n const scheme = (typeof element.notebook === 'string') ? undefined : element.notebook?.scheme;\n const pattern = (typeof element.notebook === 'string') ? undefined : element.notebook?.pattern;\n if (element.cells !== undefined) {\n for (const cell of element.cells) {\n result.push(asDocumentFilter(notebookType, scheme, pattern, cell.language));\n }\n }\n else {\n result.push(asDocumentFilter(notebookType, scheme, pattern, undefined));\n }\n }\n return result;\n }\n $NotebookDocumentSyncOptions.asDocumentSelector = asDocumentSelector;\n function asDocumentFilter(notebookType, scheme, pattern, language) {\n return scheme === undefined && pattern === undefined\n ? { notebook: notebookType, language }\n : { notebook: { notebookType, scheme, pattern }, language };\n }\n})($NotebookDocumentSyncOptions || ($NotebookDocumentSyncOptions = {}));\nvar SyncInfo;\n(function (SyncInfo) {\n function create(cells) {\n return {\n cells,\n uris: new Set(cells.map(cell => cell.document.uri.toString()))\n };\n }\n SyncInfo.create = create;\n})(SyncInfo || (SyncInfo = {}));\nclass NotebookDocumentSyncFeatureProvider {\n constructor(client, options) {\n this.client = client;\n this.options = options;\n this.notebookSyncInfo = new Map();\n this.notebookDidOpen = new Set();\n this.disposables = [];\n this.selector = client.protocol2CodeConverter.asDocumentSelector($NotebookDocumentSyncOptions.asDocumentSelector(options));\n // open\n vscode.workspace.onDidOpenNotebookDocument((notebookDocument) => {\n this.notebookDidOpen.add(notebookDocument.uri.toString());\n this.didOpen(notebookDocument);\n }, undefined, this.disposables);\n for (const notebookDocument of vscode.workspace.notebookDocuments) {\n this.notebookDidOpen.add(notebookDocument.uri.toString());\n this.didOpen(notebookDocument);\n }\n // Notebook document changed.\n vscode.workspace.onDidChangeNotebookDocument(event => this.didChangeNotebookDocument(event), undefined, this.disposables);\n //save\n if (this.options.save === true) {\n vscode.workspace.onDidSaveNotebookDocument(notebookDocument => this.didSave(notebookDocument), undefined, this.disposables);\n }\n // close\n vscode.workspace.onDidCloseNotebookDocument((notebookDocument) => {\n this.didClose(notebookDocument);\n this.notebookDidOpen.delete(notebookDocument.uri.toString());\n }, undefined, this.disposables);\n }\n getState() {\n for (const notebook of vscode.workspace.notebookDocuments) {\n const matchingCells = this.getMatchingCells(notebook);\n if (matchingCells !== undefined) {\n return { kind: 'document', id: '$internal', registrations: true, matches: true };\n }\n }\n return { kind: 'document', id: '$internal', registrations: true, matches: false };\n }\n get mode() {\n return 'notebook';\n }\n handles(textDocument) {\n return vscode.languages.match(this.selector, textDocument) > 0;\n }\n didOpenNotebookCellTextDocument(notebookDocument, cell) {\n if (vscode.languages.match(this.selector, cell.document) === 0) {\n return;\n }\n if (!this.notebookDidOpen.has(notebookDocument.uri.toString())) {\n // We have never received an open notification for the notebook document.\n // VS Code guarantees that we first get cell document open and then\n // notebook open. So simply wait for the notebook open.\n return;\n }\n const syncInfo = this.notebookSyncInfo.get(notebookDocument.uri.toString());\n // In VS Code we receive a notebook open before a cell document open.\n // The document and the cell is synced.\n const cellMatches = this.cellMatches(notebookDocument, cell);\n if (syncInfo !== undefined) {\n const cellIsSynced = syncInfo.uris.has(cell.document.uri.toString());\n if ((cellMatches && cellIsSynced) || (!cellMatches && !cellIsSynced)) {\n // The cell doesn't match and was not synced or it matches and is synced.\n // In both cases nothing to do.\n //\n // Note that if the language mode of a document changes we remove the\n // cell and add it back to update the language mode on the server side.\n return;\n }\n if (cellMatches) {\n // don't use cells from above since there might be more matching cells in the notebook\n // Since we had a matching cell above we will have matching cells now.\n const matchingCells = this.getMatchingCells(notebookDocument);\n if (matchingCells !== undefined) {\n const event = this.asNotebookDocumentChangeEvent(notebookDocument, undefined, syncInfo, matchingCells);\n if (event !== undefined) {\n this.doSendChange(event, matchingCells).catch(() => { });\n }\n }\n }\n }\n else {\n // No sync info. But we have a open event for the notebook document\n // itself. If the cell matches then we need to send an open with\n // exactly that cell.\n if (cellMatches) {\n this.doSendOpen(notebookDocument, [cell]).catch(() => { });\n }\n }\n }\n didChangeNotebookCellTextDocument(notebookDocument, event) {\n // No match with the selector\n if (vscode.languages.match(this.selector, event.document) === 0) {\n return;\n }\n this.doSendChange({\n notebook: notebookDocument,\n cells: { textContent: [event] }\n }, undefined).catch(() => { });\n }\n didCloseNotebookCellTextDocument(notebookDocument, cell) {\n const syncInfo = this.notebookSyncInfo.get(notebookDocument.uri.toString());\n if (syncInfo === undefined) {\n // The notebook document got never synced. So it doesn't matter if a cell\n // document closes.\n return;\n }\n const cellUri = cell.document.uri;\n const index = syncInfo.cells.findIndex((item) => item.document.uri.toString() === cellUri.toString());\n if (index === -1) {\n // The cell never got synced or it got deleted and we now received the document\n // close event.\n return;\n }\n if (index === 0 && syncInfo.cells.length === 1) {\n // The last cell. Close the notebook document in the server.\n this.doSendClose(notebookDocument, syncInfo.cells).catch(() => { });\n }\n else {\n const newCells = syncInfo.cells.slice();\n const deleted = newCells.splice(index, 1);\n this.doSendChange({\n notebook: notebookDocument,\n cells: {\n structure: {\n array: { start: index, deleteCount: 1 },\n didClose: deleted\n }\n }\n }, newCells).catch(() => { });\n }\n }\n dispose() {\n for (const disposable of this.disposables) {\n disposable.dispose();\n }\n }\n didOpen(notebookDocument, matchingCells = this.getMatchingCells(notebookDocument), syncInfo = this.notebookSyncInfo.get(notebookDocument.uri.toString())) {\n if (syncInfo !== undefined) {\n if (matchingCells !== undefined) {\n const event = this.asNotebookDocumentChangeEvent(notebookDocument, undefined, syncInfo, matchingCells);\n if (event !== undefined) {\n this.doSendChange(event, matchingCells).catch(() => { });\n }\n }\n else {\n this.doSendClose(notebookDocument, []).catch(() => { });\n }\n }\n else {\n // Check if we need to sync the notebook document.\n if (matchingCells === undefined) {\n return;\n }\n this.doSendOpen(notebookDocument, matchingCells).catch(() => { });\n }\n }\n didChangeNotebookDocument(event) {\n const notebookDocument = event.notebook;\n const syncInfo = this.notebookSyncInfo.get(notebookDocument.uri.toString());\n if (syncInfo === undefined) {\n // We have no changes to the cells. Since the notebook wasn't synced\n // it will not be synced now.\n if (event.contentChanges.length === 0) {\n return;\n }\n // Check if we have new matching cells.\n const cells = this.getMatchingCells(notebookDocument);\n // No matching cells and the notebook never synced. So still no need\n // to sync it.\n if (cells === undefined) {\n return;\n }\n // Open the notebook document and ignore the rest of the changes\n // this the notebooks will be synced with the correct settings.\n this.didOpen(notebookDocument, cells, syncInfo);\n }\n else {\n // The notebook is synced. First check if we have no matching\n // cells anymore and if so close the notebook\n const cells = this.getMatchingCells(notebookDocument);\n if (cells === undefined) {\n this.didClose(notebookDocument, syncInfo);\n return;\n }\n const newEvent = this.asNotebookDocumentChangeEvent(event.notebook, event, syncInfo, cells);\n if (newEvent !== undefined) {\n this.doSendChange(newEvent, cells).catch(() => { });\n }\n }\n }\n didSave(notebookDocument) {\n const syncInfo = this.notebookSyncInfo.get(notebookDocument.uri.toString());\n if (syncInfo === undefined) {\n return;\n }\n this.doSendSave(notebookDocument).catch(() => { });\n }\n didClose(notebookDocument, syncInfo = this.notebookSyncInfo.get(notebookDocument.uri.toString())) {\n if (syncInfo === undefined) {\n return;\n }\n const syncedCells = notebookDocument.getCells().filter(cell => syncInfo.uris.has(cell.document.uri.toString()));\n this.doSendClose(notebookDocument, syncedCells).catch(() => { });\n }\n async sendDidOpenNotebookDocument(notebookDocument) {\n const cells = this.getMatchingCells(notebookDocument);\n if (cells === undefined) {\n return;\n }\n return this.doSendOpen(notebookDocument, cells);\n }\n async doSendOpen(notebookDocument, cells) {\n const send = async (notebookDocument, cells) => {\n const nb = Converter.c2p.asNotebookDocument(notebookDocument, cells, this.client.code2ProtocolConverter);\n const cellDocuments = cells.map(cell => this.client.code2ProtocolConverter.asTextDocumentItem(cell.document));\n try {\n await this.client.sendNotification(proto.DidOpenNotebookDocumentNotification.type, {\n notebookDocument: nb,\n cellTextDocuments: cellDocuments\n });\n }\n catch (error) {\n this.client.error('Sending DidOpenNotebookDocumentNotification failed', error);\n throw error;\n }\n };\n const middleware = this.client.middleware?.notebooks;\n this.notebookSyncInfo.set(notebookDocument.uri.toString(), SyncInfo.create(cells));\n return middleware?.didOpen !== undefined ? middleware.didOpen(notebookDocument, cells, send) : send(notebookDocument, cells);\n }\n async sendDidChangeNotebookDocument(event) {\n return this.doSendChange(event, undefined);\n }\n async doSendChange(event, cells = this.getMatchingCells(event.notebook)) {\n const send = async (event) => {\n try {\n await this.client.sendNotification(proto.DidChangeNotebookDocumentNotification.type, {\n notebookDocument: Converter.c2p.asVersionedNotebookDocumentIdentifier(event.notebook, this.client.code2ProtocolConverter),\n change: Converter.c2p.asNotebookDocumentChangeEvent(event, this.client.code2ProtocolConverter)\n });\n }\n catch (error) {\n this.client.error('Sending DidChangeNotebookDocumentNotification failed', error);\n throw error;\n }\n };\n const middleware = this.client.middleware?.notebooks;\n if (event.cells?.structure !== undefined) {\n this.notebookSyncInfo.set(event.notebook.uri.toString(), SyncInfo.create(cells ?? []));\n }\n return middleware?.didChange !== undefined ? middleware?.didChange(event, send) : send(event);\n }\n async sendDidSaveNotebookDocument(notebookDocument) {\n return this.doSendSave(notebookDocument);\n }\n async doSendSave(notebookDocument) {\n const send = async (notebookDocument) => {\n try {\n await this.client.sendNotification(proto.DidSaveNotebookDocumentNotification.type, {\n notebookDocument: { uri: this.client.code2ProtocolConverter.asUri(notebookDocument.uri) }\n });\n }\n catch (error) {\n this.client.error('Sending DidSaveNotebookDocumentNotification failed', error);\n throw error;\n }\n };\n const middleware = this.client.middleware?.notebooks;\n return middleware?.didSave !== undefined ? middleware.didSave(notebookDocument, send) : send(notebookDocument);\n }\n async sendDidCloseNotebookDocument(notebookDocument) {\n return this.doSendClose(notebookDocument, this.getMatchingCells(notebookDocument) ?? []);\n }\n async doSendClose(notebookDocument, cells) {\n const send = async (notebookDocument, cells) => {\n try {\n await this.client.sendNotification(proto.DidCloseNotebookDocumentNotification.type, {\n notebookDocument: { uri: this.client.code2ProtocolConverter.asUri(notebookDocument.uri) },\n cellTextDocuments: cells.map(cell => this.client.code2ProtocolConverter.asTextDocumentIdentifier(cell.document))\n });\n }\n catch (error) {\n this.client.error('Sending DidCloseNotebookDocumentNotification failed', error);\n throw error;\n }\n };\n const middleware = this.client.middleware?.notebooks;\n this.notebookSyncInfo.delete(notebookDocument.uri.toString());\n return middleware?.didClose !== undefined ? middleware.didClose(notebookDocument, cells, send) : send(notebookDocument, cells);\n }\n asNotebookDocumentChangeEvent(notebook, event, syncInfo, matchingCells) {\n if (event !== undefined && event.notebook !== notebook) {\n throw new Error('Notebook must be identical');\n }\n const result = {\n notebook: notebook\n };\n if (event?.metadata !== undefined) {\n result.metadata = Converter.c2p.asMetadata(event.metadata);\n }\n let matchingCellsSet;\n if (event?.cellChanges !== undefined && event.cellChanges.length > 0) {\n const data = [];\n // Only consider the new matching cells.\n matchingCellsSet = new Set(matchingCells.map(cell => cell.document.uri.toString()));\n for (const cellChange of event.cellChanges) {\n if (matchingCellsSet.has(cellChange.cell.document.uri.toString()) && (cellChange.executionSummary !== undefined || cellChange.metadata !== undefined)) {\n data.push(cellChange.cell);\n }\n }\n if (data.length > 0) {\n result.cells = result.cells ?? {};\n result.cells.data = data;\n }\n }\n if (((event?.contentChanges !== undefined && event.contentChanges.length > 0) || event === undefined) && syncInfo !== undefined && matchingCells !== undefined) {\n // We still have matching cells. Check if the cell changes\n // affect the notebook on the server side.\n const oldCells = syncInfo.cells;\n const newCells = matchingCells;\n // meta data changes are reported using on the cell itself. So we can ignore comparing\n // it which has a positive effect on performance.\n const diff = $NotebookCell.computeDiff(oldCells, newCells, false);\n let addedCells;\n let removedCells;\n if (diff !== undefined) {\n addedCells = diff.cells === undefined\n ? new Map()\n : new Map(diff.cells.map(cell => [cell.document.uri.toString(), cell]));\n removedCells = diff.deleteCount === 0\n ? new Map()\n : new Map(oldCells.slice(diff.start, diff.start + diff.deleteCount).map(cell => [cell.document.uri.toString(), cell]));\n // Remove the onces that got deleted and inserted again.\n for (const key of Array.from(removedCells.keys())) {\n if (addedCells.has(key)) {\n removedCells.delete(key);\n addedCells.delete(key);\n }\n }\n result.cells = result.cells ?? {};\n const didOpen = [];\n const didClose = [];\n if (addedCells.size > 0 || removedCells.size > 0) {\n for (const cell of addedCells.values()) {\n didOpen.push(cell);\n }\n for (const cell of removedCells.values()) {\n didClose.push(cell);\n }\n }\n result.cells.structure = {\n array: diff,\n didOpen,\n didClose\n };\n }\n }\n // The notebook is a property as well.\n return Object.keys(result).length > 1 ? result : undefined;\n }\n getMatchingCells(notebookDocument, cells = notebookDocument.getCells()) {\n if (this.options.notebookSelector === undefined) {\n return undefined;\n }\n for (const item of this.options.notebookSelector) {\n if (item.notebook === undefined || $NotebookDocumentFilter.matchNotebook(item.notebook, notebookDocument)) {\n const filtered = this.filterCells(notebookDocument, cells, item.cells);\n return filtered.length === 0 ? undefined : filtered;\n }\n }\n return undefined;\n }\n cellMatches(notebookDocument, cell) {\n const cells = this.getMatchingCells(notebookDocument, [cell]);\n return cells !== undefined && cells[0] === cell;\n }\n filterCells(notebookDocument, cells, cellSelector) {\n const filtered = cellSelector !== undefined ? cells.filter((cell) => {\n const cellLanguage = cell.document.languageId;\n return cellSelector.some((filter => (filter.language === '*' || cellLanguage === filter.language)));\n }) : cells;\n return typeof this.client.clientOptions.notebookDocumentOptions?.filterCells === 'function'\n ? this.client.clientOptions.notebookDocumentOptions.filterCells(notebookDocument, filtered)\n : filtered;\n }\n}\nclass NotebookDocumentSyncFeature {\n constructor(client) {\n this.client = client;\n this.registrations = new Map();\n this.registrationType = proto.NotebookDocumentSyncRegistrationType.type;\n // We don't receive an event for cells where the document changes its language mode\n // Since we allow servers to filter on the language mode we fire such an event ourselves.\n vscode.workspace.onDidOpenTextDocument((textDocument) => {\n if (textDocument.uri.scheme !== NotebookDocumentSyncFeature.CellScheme) {\n return;\n }\n const [notebookDocument, notebookCell] = this.findNotebookDocumentAndCell(textDocument);\n if (notebookDocument === undefined || notebookCell === undefined) {\n return;\n }\n for (const provider of this.registrations.values()) {\n if (provider instanceof NotebookDocumentSyncFeatureProvider) {\n provider.didOpenNotebookCellTextDocument(notebookDocument, notebookCell);\n }\n }\n });\n vscode.workspace.onDidChangeTextDocument((event) => {\n if (event.contentChanges.length === 0) {\n return;\n }\n const textDocument = event.document;\n if (textDocument.uri.scheme !== NotebookDocumentSyncFeature.CellScheme) {\n return;\n }\n const [notebookDocument,] = this.findNotebookDocumentAndCell(textDocument);\n if (notebookDocument === undefined) {\n return;\n }\n for (const provider of this.registrations.values()) {\n if (provider instanceof NotebookDocumentSyncFeatureProvider) {\n provider.didChangeNotebookCellTextDocument(notebookDocument, event);\n }\n }\n });\n vscode.workspace.onDidCloseTextDocument((textDocument) => {\n if (textDocument.uri.scheme !== NotebookDocumentSyncFeature.CellScheme) {\n return;\n }\n // There are two cases when we receive a close for a text document\n // 1: the cell got removed. This is handled in `onDidChangeNotebookCells`\n // 2: the language mode of a cell changed. This keeps the URI stable so\n // we will still find the cell and the notebook document.\n const [notebookDocument, notebookCell] = this.findNotebookDocumentAndCell(textDocument);\n if (notebookDocument === undefined || notebookCell === undefined) {\n return;\n }\n for (const provider of this.registrations.values()) {\n if (provider instanceof NotebookDocumentSyncFeatureProvider) {\n provider.didCloseNotebookCellTextDocument(notebookDocument, notebookCell);\n }\n }\n });\n }\n getState() {\n if (this.registrations.size === 0) {\n return { kind: 'document', id: this.registrationType.method, registrations: false, matches: false };\n }\n for (const provider of this.registrations.values()) {\n const state = provider.getState();\n if (state.kind === 'document' && state.registrations === true && state.matches === true) {\n return { kind: 'document', id: this.registrationType.method, registrations: true, matches: true };\n }\n }\n return { kind: 'document', id: this.registrationType.method, registrations: true, matches: false };\n }\n fillClientCapabilities(capabilities) {\n const synchronization = ensure(ensure(capabilities, 'notebookDocument'), 'synchronization');\n synchronization.dynamicRegistration = true;\n synchronization.executionSummarySupport = true;\n }\n preInitialize(capabilities) {\n const options = capabilities.notebookDocumentSync;\n if (options === undefined) {\n return;\n }\n this.dedicatedChannel = this.client.protocol2CodeConverter.asDocumentSelector($NotebookDocumentSyncOptions.asDocumentSelector(options));\n }\n initialize(capabilities) {\n const options = capabilities.notebookDocumentSync;\n if (options === undefined) {\n return;\n }\n const id = options.id ?? UUID.generateUuid();\n this.register({ id, registerOptions: options });\n }\n register(data) {\n const provider = new NotebookDocumentSyncFeatureProvider(this.client, data.registerOptions);\n this.registrations.set(data.id, provider);\n }\n unregister(id) {\n const provider = this.registrations.get(id);\n provider && provider.dispose();\n }\n dispose() {\n for (const provider of this.registrations.values()) {\n provider.dispose();\n }\n this.registrations.clear();\n }\n handles(textDocument) {\n if (textDocument.uri.scheme !== NotebookDocumentSyncFeature.CellScheme) {\n return false;\n }\n if (this.dedicatedChannel !== undefined && vscode.languages.match(this.dedicatedChannel, textDocument) > 0) {\n return true;\n }\n for (const provider of this.registrations.values()) {\n if (provider.handles(textDocument)) {\n return true;\n }\n }\n return false;\n }\n getProvider(notebookCell) {\n for (const provider of this.registrations.values()) {\n if (provider.handles(notebookCell.document)) {\n return provider;\n }\n }\n return undefined;\n }\n findNotebookDocumentAndCell(textDocument) {\n const uri = textDocument.uri.toString();\n for (const notebookDocument of vscode.workspace.notebookDocuments) {\n for (const cell of notebookDocument.getCells()) {\n if (cell.document.uri.toString() === uri) {\n return [notebookDocument, cell];\n }\n }\n }\n return [undefined, undefined];\n }\n}\nexports.NotebookDocumentSyncFeature = NotebookDocumentSyncFeature;\nNotebookDocumentSyncFeature.CellScheme = 'vscode-notebook-cell';\n//# sourceMappingURL=notebook.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.SyncConfigurationFeature = exports.toJSONObject = exports.ConfigurationFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst Is = require(\"./utils/is\");\nconst UUID = require(\"./utils/uuid\");\nconst features_1 = require(\"./features\");\n/**\n * Configuration pull model. From server to client.\n */\nclass ConfigurationFeature {\n constructor(client) {\n this._client = client;\n }\n getState() {\n return { kind: 'static' };\n }\n fillClientCapabilities(capabilities) {\n capabilities.workspace = capabilities.workspace || {};\n capabilities.workspace.configuration = true;\n }\n initialize() {\n let client = this._client;\n client.onRequest(vscode_languageserver_protocol_1.ConfigurationRequest.type, (params, token) => {\n let configuration = (params) => {\n let result = [];\n for (let item of params.items) {\n let resource = item.scopeUri !== void 0 && item.scopeUri !== null ? this._client.protocol2CodeConverter.asUri(item.scopeUri) : undefined;\n result.push(this.getConfiguration(resource, item.section !== null ? item.section : undefined));\n }\n return result;\n };\n let middleware = client.middleware.workspace;\n return middleware && middleware.configuration\n ? middleware.configuration(params, token, configuration)\n : configuration(params, token);\n });\n }\n getConfiguration(resource, section) {\n let result = null;\n if (section) {\n let index = section.lastIndexOf('.');\n if (index === -1) {\n result = toJSONObject(vscode_1.workspace.getConfiguration(undefined, resource).get(section));\n }\n else {\n let config = vscode_1.workspace.getConfiguration(section.substr(0, index), resource);\n if (config) {\n result = toJSONObject(config.get(section.substr(index + 1)));\n }\n }\n }\n else {\n let config = vscode_1.workspace.getConfiguration(undefined, resource);\n result = {};\n for (let key of Object.keys(config)) {\n if (config.has(key)) {\n result[key] = toJSONObject(config.get(key));\n }\n }\n }\n if (result === undefined) {\n result = null;\n }\n return result;\n }\n dispose() {\n }\n}\nexports.ConfigurationFeature = ConfigurationFeature;\nfunction toJSONObject(obj) {\n if (obj) {\n if (Array.isArray(obj)) {\n return obj.map(toJSONObject);\n }\n else if (typeof obj === 'object') {\n const res = Object.create(null);\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = toJSONObject(obj[key]);\n }\n }\n return res;\n }\n }\n return obj;\n}\nexports.toJSONObject = toJSONObject;\nclass SyncConfigurationFeature {\n constructor(_client) {\n this._client = _client;\n this._listeners = new Map();\n }\n getState() {\n return { kind: 'workspace', id: this.registrationType.method, registrations: this._listeners.size > 0 };\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.DidChangeConfigurationNotification.type;\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'workspace'), 'didChangeConfiguration').dynamicRegistration = true;\n }\n initialize() {\n let section = this._client.clientOptions.synchronize?.configurationSection;\n if (section !== undefined) {\n this.register({\n id: UUID.generateUuid(),\n registerOptions: {\n section: section\n }\n });\n }\n }\n register(data) {\n let disposable = vscode_1.workspace.onDidChangeConfiguration((event) => {\n this.onDidChangeConfiguration(data.registerOptions.section, event);\n });\n this._listeners.set(data.id, disposable);\n if (data.registerOptions.section !== undefined) {\n this.onDidChangeConfiguration(data.registerOptions.section, undefined);\n }\n }\n unregister(id) {\n let disposable = this._listeners.get(id);\n if (disposable) {\n this._listeners.delete(id);\n disposable.dispose();\n }\n }\n dispose() {\n for (const disposable of this._listeners.values()) {\n disposable.dispose();\n }\n this._listeners.clear();\n }\n onDidChangeConfiguration(configurationSection, event) {\n let sections;\n if (Is.string(configurationSection)) {\n sections = [configurationSection];\n }\n else {\n sections = configurationSection;\n }\n if (sections !== undefined && event !== undefined) {\n let affected = sections.some((section) => event.affectsConfiguration(section));\n if (!affected) {\n return;\n }\n }\n const didChangeConfiguration = async (sections) => {\n if (sections === undefined) {\n return this._client.sendNotification(vscode_languageserver_protocol_1.DidChangeConfigurationNotification.type, { settings: null });\n }\n else {\n return this._client.sendNotification(vscode_languageserver_protocol_1.DidChangeConfigurationNotification.type, { settings: this.extractSettingsInformation(sections) });\n }\n };\n let middleware = this._client.middleware.workspace?.didChangeConfiguration;\n (middleware ? middleware(sections, didChangeConfiguration) : didChangeConfiguration(sections)).catch((error) => {\n this._client.error(`Sending notification ${vscode_languageserver_protocol_1.DidChangeConfigurationNotification.type.method} failed`, error);\n });\n }\n extractSettingsInformation(keys) {\n function ensurePath(config, path) {\n let current = config;\n for (let i = 0; i < path.length - 1; i++) {\n let obj = current[path[i]];\n if (!obj) {\n obj = Object.create(null);\n current[path[i]] = obj;\n }\n current = obj;\n }\n return current;\n }\n let resource = this._client.clientOptions.workspaceFolder\n ? this._client.clientOptions.workspaceFolder.uri\n : undefined;\n let result = Object.create(null);\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n let index = key.indexOf('.');\n let config = null;\n if (index >= 0) {\n config = vscode_1.workspace.getConfiguration(key.substr(0, index), resource).get(key.substr(index + 1));\n }\n else {\n config = vscode_1.workspace.getConfiguration(undefined, resource).get(key);\n }\n if (config) {\n let path = keys[i].split('.');\n ensurePath(result, path)[path[path.length - 1]] = toJSONObject(config);\n }\n }\n return result;\n }\n}\nexports.SyncConfigurationFeature = SyncConfigurationFeature;\n//# sourceMappingURL=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.DidSaveTextDocumentFeature = exports.WillSaveWaitUntilFeature = exports.WillSaveFeature = exports.DidChangeTextDocumentFeature = exports.DidCloseTextDocumentFeature = exports.DidOpenTextDocumentFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst async_1 = require(\"./utils/async\");\nconst UUID = require(\"./utils/uuid\");\nclass DidOpenTextDocumentFeature extends features_1.TextDocumentEventFeature {\n constructor(client, syncedDocuments) {\n super(client, vscode_1.workspace.onDidOpenTextDocument, vscode_languageserver_protocol_1.DidOpenTextDocumentNotification.type, () => client.middleware.didOpen, (textDocument) => client.code2ProtocolConverter.asOpenTextDocumentParams(textDocument), (data) => data, features_1.TextDocumentEventFeature.textDocumentFilter);\n this._syncedDocuments = syncedDocuments;\n }\n get openDocuments() {\n return this._syncedDocuments.values();\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'synchronization').dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n const textDocumentSyncOptions = capabilities.resolvedTextDocumentSync;\n if (documentSelector && textDocumentSyncOptions && textDocumentSyncOptions.openClose) {\n this.register({ id: UUID.generateUuid(), registerOptions: { documentSelector: documentSelector } });\n }\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.DidOpenTextDocumentNotification.type;\n }\n register(data) {\n super.register(data);\n if (!data.registerOptions.documentSelector) {\n return;\n }\n const documentSelector = this._client.protocol2CodeConverter.asDocumentSelector(data.registerOptions.documentSelector);\n vscode_1.workspace.textDocuments.forEach((textDocument) => {\n const uri = textDocument.uri.toString();\n if (this._syncedDocuments.has(uri)) {\n return;\n }\n if (vscode_1.languages.match(documentSelector, textDocument) > 0 && !this._client.hasDedicatedTextSynchronizationFeature(textDocument)) {\n const middleware = this._client.middleware;\n const didOpen = (textDocument) => {\n return this._client.sendNotification(this._type, this._createParams(textDocument));\n };\n (middleware.didOpen ? middleware.didOpen(textDocument, didOpen) : didOpen(textDocument)).catch((error) => {\n this._client.error(`Sending document notification ${this._type.method} failed`, error);\n });\n this._syncedDocuments.set(uri, textDocument);\n }\n });\n }\n notificationSent(textDocument, type, params) {\n super.notificationSent(textDocument, type, params);\n this._syncedDocuments.set(textDocument.uri.toString(), textDocument);\n }\n}\nexports.DidOpenTextDocumentFeature = DidOpenTextDocumentFeature;\nclass DidCloseTextDocumentFeature extends features_1.TextDocumentEventFeature {\n constructor(client, syncedDocuments) {\n super(client, vscode_1.workspace.onDidCloseTextDocument, vscode_languageserver_protocol_1.DidCloseTextDocumentNotification.type, () => client.middleware.didClose, (textDocument) => client.code2ProtocolConverter.asCloseTextDocumentParams(textDocument), (data) => data, features_1.TextDocumentEventFeature.textDocumentFilter);\n this._syncedDocuments = syncedDocuments;\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.DidCloseTextDocumentNotification.type;\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'synchronization').dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n let textDocumentSyncOptions = capabilities.resolvedTextDocumentSync;\n if (documentSelector && textDocumentSyncOptions && textDocumentSyncOptions.openClose) {\n this.register({ id: UUID.generateUuid(), registerOptions: { documentSelector: documentSelector } });\n }\n }\n notificationSent(textDocument, type, params) {\n super.notificationSent(textDocument, type, params);\n this._syncedDocuments.delete(textDocument.uri.toString());\n }\n unregister(id) {\n const selector = this._selectors.get(id);\n // The super call removed the selector from the map\n // of selectors.\n super.unregister(id);\n const selectors = this._selectors.values();\n this._syncedDocuments.forEach((textDocument) => {\n if (vscode_1.languages.match(selector, textDocument) > 0 && !this._selectorFilter(selectors, textDocument) && !this._client.hasDedicatedTextSynchronizationFeature(textDocument)) {\n let middleware = this._client.middleware;\n let didClose = (textDocument) => {\n return this._client.sendNotification(this._type, this._createParams(textDocument));\n };\n this._syncedDocuments.delete(textDocument.uri.toString());\n (middleware.didClose ? middleware.didClose(textDocument, didClose) : didClose(textDocument)).catch((error) => {\n this._client.error(`Sending document notification ${this._type.method} failed`, error);\n });\n }\n });\n }\n}\nexports.DidCloseTextDocumentFeature = DidCloseTextDocumentFeature;\nclass DidChangeTextDocumentFeature extends features_1.DynamicDocumentFeature {\n constructor(client) {\n super(client);\n this._forcingDelivery = false;\n this._changeData = new Map();\n this._onNotificationSent = new vscode_1.EventEmitter();\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.type;\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'synchronization').dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n let textDocumentSyncOptions = capabilities.resolvedTextDocumentSync;\n if (documentSelector && textDocumentSyncOptions && textDocumentSyncOptions.change !== undefined && textDocumentSyncOptions.change !== vscode_languageserver_protocol_1.TextDocumentSyncKind.None) {\n this.register({\n id: UUID.generateUuid(),\n registerOptions: Object.assign({}, { documentSelector: documentSelector }, { syncKind: textDocumentSyncOptions.change })\n });\n }\n }\n register(data) {\n if (!data.registerOptions.documentSelector) {\n return;\n }\n if (!this._listener) {\n this._listener = vscode_1.workspace.onDidChangeTextDocument(this.callback, this);\n }\n this._changeData.set(data.id, {\n syncKind: data.registerOptions.syncKind,\n documentSelector: this._client.protocol2CodeConverter.asDocumentSelector(data.registerOptions.documentSelector),\n });\n }\n *getDocumentSelectors() {\n for (const data of this._changeData.values()) {\n yield data.documentSelector;\n }\n }\n async callback(event) {\n // Text document changes are send for dirty changes as well. We don't\n // have dirty / un-dirty events in the LSP so we ignore content changes\n // with length zero.\n if (event.contentChanges.length === 0) {\n return;\n }\n const promises = [];\n for (const changeData of this._changeData.values()) {\n if (vscode_1.languages.match(changeData.documentSelector, event.document) > 0 && !this._client.hasDedicatedTextSynchronizationFeature(event.document)) {\n const middleware = this._client.middleware;\n if (changeData.syncKind === vscode_languageserver_protocol_1.TextDocumentSyncKind.Incremental) {\n const didChange = async (event) => {\n const params = this._client.code2ProtocolConverter.asChangeTextDocumentParams(event);\n await this._client.sendNotification(vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.type, params);\n this.notificationSent(event, vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.type, params);\n };\n promises.push(middleware.didChange ? middleware.didChange(event, event => didChange(event)) : didChange(event));\n }\n else if (changeData.syncKind === vscode_languageserver_protocol_1.TextDocumentSyncKind.Full) {\n const didChange = async (event) => {\n const doSend = async (event) => {\n const params = this._client.code2ProtocolConverter.asChangeTextDocumentParams(event.document);\n await this._client.sendNotification(vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.type, params);\n this.notificationSent(event, vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.type, params);\n };\n if (this._changeDelayer) {\n if (this._changeDelayer.uri !== event.document.uri.toString()) {\n // Use this force delivery to track boolean state. Otherwise we might call two times.\n await this.forceDelivery();\n this._changeDelayer.uri = event.document.uri.toString();\n }\n // Usually we return the promise that signals that the data has been\n // handed of to the network. With delayed change notification we can't\n // do that since it would make the sendNotification call wait until the\n // change delayer resolves and would therefore defeat the purpose. We\n // instead return the change delayer and ensure via forceDocumentSync\n // that before sending other notification / request the document sync\n // has actually happened.\n return this._changeDelayer.delayer.trigger(() => doSend(event));\n }\n else {\n this._changeDelayer = {\n uri: event.document.uri.toString(),\n delayer: new async_1.Delayer(200)\n };\n // See comment above.\n return this._changeDelayer.delayer.trigger(() => doSend(event), -1);\n }\n };\n promises.push(middleware.didChange ? middleware.didChange(event, event => didChange(event)) : didChange(event));\n }\n }\n }\n return Promise.all(promises).then(undefined, (error) => {\n this._client.error(`Sending document notification ${vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.type.method} failed`, error);\n throw error;\n });\n }\n get onNotificationSent() {\n return this._onNotificationSent.event;\n }\n notificationSent(changeEvent, type, params) {\n this._onNotificationSent.fire({ original: changeEvent, type, params });\n }\n unregister(id) {\n this._changeData.delete(id);\n if (this._changeData.size === 0 && this._listener) {\n this._listener.dispose();\n this._listener = undefined;\n }\n }\n dispose() {\n if (this._changeDelayer !== undefined) {\n this._changeDelayer.delayer.cancel();\n }\n this._changeDelayer = undefined;\n this._forcingDelivery = false;\n this._changeData.clear();\n if (this._listener) {\n this._listener.dispose();\n this._listener = undefined;\n }\n }\n async forceDelivery() {\n if (this._forcingDelivery || !this._changeDelayer) {\n return;\n }\n try {\n this._forcingDelivery = true;\n return this._changeDelayer.delayer.forceDelivery();\n }\n finally {\n this._forcingDelivery = false;\n }\n }\n getProvider(document) {\n for (const changeData of this._changeData.values()) {\n if (vscode_1.languages.match(changeData.documentSelector, document) > 0) {\n return {\n send: (event) => {\n return this.callback(event);\n }\n };\n }\n }\n return undefined;\n }\n}\nexports.DidChangeTextDocumentFeature = DidChangeTextDocumentFeature;\nclass WillSaveFeature extends features_1.TextDocumentEventFeature {\n constructor(client) {\n super(client, vscode_1.workspace.onWillSaveTextDocument, vscode_languageserver_protocol_1.WillSaveTextDocumentNotification.type, () => client.middleware.willSave, (willSaveEvent) => client.code2ProtocolConverter.asWillSaveTextDocumentParams(willSaveEvent), (event) => event.document, (selectors, willSaveEvent) => features_1.TextDocumentEventFeature.textDocumentFilter(selectors, willSaveEvent.document));\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.WillSaveTextDocumentNotification.type;\n }\n fillClientCapabilities(capabilities) {\n let value = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'synchronization');\n value.willSave = true;\n }\n initialize(capabilities, documentSelector) {\n let textDocumentSyncOptions = capabilities.resolvedTextDocumentSync;\n if (documentSelector && textDocumentSyncOptions && textDocumentSyncOptions.willSave) {\n this.register({\n id: UUID.generateUuid(),\n registerOptions: { documentSelector: documentSelector }\n });\n }\n }\n}\nexports.WillSaveFeature = WillSaveFeature;\nclass WillSaveWaitUntilFeature extends features_1.DynamicDocumentFeature {\n constructor(client) {\n super(client);\n this._selectors = new Map();\n }\n getDocumentSelectors() {\n return this._selectors.values();\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.WillSaveTextDocumentWaitUntilRequest.type;\n }\n fillClientCapabilities(capabilities) {\n let value = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'synchronization');\n value.willSaveWaitUntil = true;\n }\n initialize(capabilities, documentSelector) {\n let textDocumentSyncOptions = capabilities.resolvedTextDocumentSync;\n if (documentSelector && textDocumentSyncOptions && textDocumentSyncOptions.willSaveWaitUntil) {\n this.register({\n id: UUID.generateUuid(),\n registerOptions: { documentSelector: documentSelector }\n });\n }\n }\n register(data) {\n if (!data.registerOptions.documentSelector) {\n return;\n }\n if (!this._listener) {\n this._listener = vscode_1.workspace.onWillSaveTextDocument(this.callback, this);\n }\n this._selectors.set(data.id, this._client.protocol2CodeConverter.asDocumentSelector(data.registerOptions.documentSelector));\n }\n callback(event) {\n if (features_1.TextDocumentEventFeature.textDocumentFilter(this._selectors.values(), event.document) && !this._client.hasDedicatedTextSynchronizationFeature(event.document)) {\n let middleware = this._client.middleware;\n let willSaveWaitUntil = (event) => {\n return this._client.sendRequest(vscode_languageserver_protocol_1.WillSaveTextDocumentWaitUntilRequest.type, this._client.code2ProtocolConverter.asWillSaveTextDocumentParams(event)).then(async (edits) => {\n let vEdits = await this._client.protocol2CodeConverter.asTextEdits(edits);\n return vEdits === undefined ? [] : vEdits;\n });\n };\n event.waitUntil(middleware.willSaveWaitUntil\n ? middleware.willSaveWaitUntil(event, willSaveWaitUntil)\n : willSaveWaitUntil(event));\n }\n }\n unregister(id) {\n this._selectors.delete(id);\n if (this._selectors.size === 0 && this._listener) {\n this._listener.dispose();\n this._listener = undefined;\n }\n }\n dispose() {\n this._selectors.clear();\n if (this._listener) {\n this._listener.dispose();\n this._listener = undefined;\n }\n }\n}\nexports.WillSaveWaitUntilFeature = WillSaveWaitUntilFeature;\nclass DidSaveTextDocumentFeature extends features_1.TextDocumentEventFeature {\n constructor(client) {\n super(client, vscode_1.workspace.onDidSaveTextDocument, vscode_languageserver_protocol_1.DidSaveTextDocumentNotification.type, () => client.middleware.didSave, (textDocument) => client.code2ProtocolConverter.asSaveTextDocumentParams(textDocument, this._includeText), (data) => data, features_1.TextDocumentEventFeature.textDocumentFilter);\n this._includeText = false;\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.DidSaveTextDocumentNotification.type;\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'synchronization').didSave = true;\n }\n initialize(capabilities, documentSelector) {\n const textDocumentSyncOptions = capabilities.resolvedTextDocumentSync;\n if (documentSelector && textDocumentSyncOptions && textDocumentSyncOptions.save) {\n const saveOptions = typeof textDocumentSyncOptions.save === 'boolean'\n ? { includeText: false }\n : { includeText: !!textDocumentSyncOptions.save.includeText };\n this.register({\n id: UUID.generateUuid(),\n registerOptions: Object.assign({}, { documentSelector: documentSelector }, saveOptions)\n });\n }\n }\n register(data) {\n this._includeText = !!data.registerOptions.includeText;\n super.register(data);\n }\n}\nexports.DidSaveTextDocumentFeature = DidSaveTextDocumentFeature;\n//# sourceMappingURL=textSynchronization.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.CompletionItemFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst UUID = require(\"./utils/uuid\");\nconst SupportedCompletionItemKinds = [\n vscode_languageserver_protocol_1.CompletionItemKind.Text,\n vscode_languageserver_protocol_1.CompletionItemKind.Method,\n vscode_languageserver_protocol_1.CompletionItemKind.Function,\n vscode_languageserver_protocol_1.CompletionItemKind.Constructor,\n vscode_languageserver_protocol_1.CompletionItemKind.Field,\n vscode_languageserver_protocol_1.CompletionItemKind.Variable,\n vscode_languageserver_protocol_1.CompletionItemKind.Class,\n vscode_languageserver_protocol_1.CompletionItemKind.Interface,\n vscode_languageserver_protocol_1.CompletionItemKind.Module,\n vscode_languageserver_protocol_1.CompletionItemKind.Property,\n vscode_languageserver_protocol_1.CompletionItemKind.Unit,\n vscode_languageserver_protocol_1.CompletionItemKind.Value,\n vscode_languageserver_protocol_1.CompletionItemKind.Enum,\n vscode_languageserver_protocol_1.CompletionItemKind.Keyword,\n vscode_languageserver_protocol_1.CompletionItemKind.Snippet,\n vscode_languageserver_protocol_1.CompletionItemKind.Color,\n vscode_languageserver_protocol_1.CompletionItemKind.File,\n vscode_languageserver_protocol_1.CompletionItemKind.Reference,\n vscode_languageserver_protocol_1.CompletionItemKind.Folder,\n vscode_languageserver_protocol_1.CompletionItemKind.EnumMember,\n vscode_languageserver_protocol_1.CompletionItemKind.Constant,\n vscode_languageserver_protocol_1.CompletionItemKind.Struct,\n vscode_languageserver_protocol_1.CompletionItemKind.Event,\n vscode_languageserver_protocol_1.CompletionItemKind.Operator,\n vscode_languageserver_protocol_1.CompletionItemKind.TypeParameter\n];\nclass CompletionItemFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.CompletionRequest.type);\n this.labelDetailsSupport = new Map();\n }\n fillClientCapabilities(capabilities) {\n let completion = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'completion');\n completion.dynamicRegistration = true;\n completion.contextSupport = true;\n completion.completionItem = {\n snippetSupport: true,\n commitCharactersSupport: true,\n documentationFormat: [vscode_languageserver_protocol_1.MarkupKind.Markdown, vscode_languageserver_protocol_1.MarkupKind.PlainText],\n deprecatedSupport: true,\n preselectSupport: true,\n tagSupport: { valueSet: [vscode_languageserver_protocol_1.CompletionItemTag.Deprecated] },\n insertReplaceSupport: true,\n resolveSupport: {\n properties: ['documentation', 'detail', 'additionalTextEdits']\n },\n insertTextModeSupport: { valueSet: [vscode_languageserver_protocol_1.InsertTextMode.asIs, vscode_languageserver_protocol_1.InsertTextMode.adjustIndentation] },\n labelDetailsSupport: true\n };\n completion.insertTextMode = vscode_languageserver_protocol_1.InsertTextMode.adjustIndentation;\n completion.completionItemKind = { valueSet: SupportedCompletionItemKinds };\n completion.completionList = {\n itemDefaults: [\n 'commitCharacters', 'editRange', 'insertTextFormat', 'insertTextMode'\n ]\n };\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.completionProvider);\n if (!options) {\n return;\n }\n this.register({\n id: UUID.generateUuid(),\n registerOptions: options\n });\n }\n registerLanguageProvider(options, id) {\n this.labelDetailsSupport.set(id, !!options.completionItem?.labelDetailsSupport);\n const triggerCharacters = options.triggerCharacters ?? [];\n const defaultCommitCharacters = options.allCommitCharacters;\n const selector = options.documentSelector;\n const provider = {\n provideCompletionItems: (document, position, token, context) => {\n const client = this._client;\n const middleware = this._client.middleware;\n const provideCompletionItems = (document, position, context, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.CompletionRequest.type, client.code2ProtocolConverter.asCompletionParams(document, position, context), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asCompletionResult(result, defaultCommitCharacters, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.CompletionRequest.type, token, error, null);\n });\n };\n return middleware.provideCompletionItem\n ? middleware.provideCompletionItem(document, position, context, token, provideCompletionItems)\n : provideCompletionItems(document, position, context, token);\n },\n resolveCompletionItem: options.resolveProvider\n ? (item, token) => {\n const client = this._client;\n const middleware = this._client.middleware;\n const resolveCompletionItem = (item, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.CompletionResolveRequest.type, client.code2ProtocolConverter.asCompletionItem(item, !!this.labelDetailsSupport.get(id)), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asCompletionItem(result);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.CompletionResolveRequest.type, token, error, item);\n });\n };\n return middleware.resolveCompletionItem\n ? middleware.resolveCompletionItem(item, token, resolveCompletionItem)\n : resolveCompletionItem(item, token);\n }\n : undefined\n };\n return [vscode_1.languages.registerCompletionItemProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider, ...triggerCharacters), provider];\n }\n}\nexports.CompletionItemFeature = CompletionItemFeature;\n//# sourceMappingURL=completion.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.HoverFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst UUID = require(\"./utils/uuid\");\nclass HoverFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.HoverRequest.type);\n }\n fillClientCapabilities(capabilities) {\n const hoverCapability = ((0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'hover'));\n hoverCapability.dynamicRegistration = true;\n hoverCapability.contentFormat = [vscode_languageserver_protocol_1.MarkupKind.Markdown, vscode_languageserver_protocol_1.MarkupKind.PlainText];\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.hoverProvider);\n if (!options) {\n return;\n }\n this.register({\n id: UUID.generateUuid(),\n registerOptions: options\n });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideHover: (document, position, token) => {\n const client = this._client;\n const provideHover = (document, position, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.HoverRequest.type, client.code2ProtocolConverter.asTextDocumentPositionParams(document, position), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asHover(result);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.HoverRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideHover\n ? middleware.provideHover(document, position, token, provideHover)\n : provideHover(document, position, token);\n }\n };\n return [this.registerProvider(selector, provider), provider];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerHoverProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.HoverFeature = HoverFeature;\n//# sourceMappingURL=hover.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.DefinitionFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst UUID = require(\"./utils/uuid\");\nclass DefinitionFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DefinitionRequest.type);\n }\n fillClientCapabilities(capabilities) {\n let definitionSupport = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'definition');\n definitionSupport.dynamicRegistration = true;\n definitionSupport.linkSupport = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.definitionProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideDefinition: (document, position, token) => {\n const client = this._client;\n const provideDefinition = (document, position, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.DefinitionRequest.type, client.code2ProtocolConverter.asTextDocumentPositionParams(document, position), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asDefinitionResult(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DefinitionRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideDefinition\n ? middleware.provideDefinition(document, position, token, provideDefinition)\n : provideDefinition(document, position, token);\n }\n };\n return [this.registerProvider(selector, provider), provider];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerDefinitionProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.DefinitionFeature = DefinitionFeature;\n//# sourceMappingURL=definition.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.SignatureHelpFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst UUID = require(\"./utils/uuid\");\nclass SignatureHelpFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.SignatureHelpRequest.type);\n }\n fillClientCapabilities(capabilities) {\n let config = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'signatureHelp');\n config.dynamicRegistration = true;\n config.signatureInformation = { documentationFormat: [vscode_languageserver_protocol_1.MarkupKind.Markdown, vscode_languageserver_protocol_1.MarkupKind.PlainText] };\n config.signatureInformation.parameterInformation = { labelOffsetSupport: true };\n config.signatureInformation.activeParameterSupport = true;\n config.contextSupport = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.signatureHelpProvider);\n if (!options) {\n return;\n }\n this.register({\n id: UUID.generateUuid(),\n registerOptions: options\n });\n }\n registerLanguageProvider(options) {\n const provider = {\n provideSignatureHelp: (document, position, token, context) => {\n const client = this._client;\n const providerSignatureHelp = (document, position, context, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.SignatureHelpRequest.type, client.code2ProtocolConverter.asSignatureHelpParams(document, position, context), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asSignatureHelp(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.SignatureHelpRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideSignatureHelp\n ? middleware.provideSignatureHelp(document, position, context, token, providerSignatureHelp)\n : providerSignatureHelp(document, position, context, token);\n }\n };\n return [this.registerProvider(options, provider), provider];\n }\n registerProvider(options, provider) {\n const selector = this._client.protocol2CodeConverter.asDocumentSelector(options.documentSelector);\n if (options.retriggerCharacters === undefined) {\n const triggerCharacters = options.triggerCharacters || [];\n return vscode_1.languages.registerSignatureHelpProvider(selector, provider, ...triggerCharacters);\n }\n else {\n const metaData = {\n triggerCharacters: options.triggerCharacters || [],\n retriggerCharacters: options.retriggerCharacters || []\n };\n return vscode_1.languages.registerSignatureHelpProvider(selector, provider, metaData);\n }\n }\n}\nexports.SignatureHelpFeature = SignatureHelpFeature;\n//# sourceMappingURL=signatureHelp.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.DocumentHighlightFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst UUID = require(\"./utils/uuid\");\nclass DocumentHighlightFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DocumentHighlightRequest.type);\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'documentHighlight').dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.documentHighlightProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideDocumentHighlights: (document, position, token) => {\n const client = this._client;\n const _provideDocumentHighlights = (document, position, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.DocumentHighlightRequest.type, client.code2ProtocolConverter.asTextDocumentPositionParams(document, position), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asDocumentHighlights(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentHighlightRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideDocumentHighlights\n ? middleware.provideDocumentHighlights(document, position, token, _provideDocumentHighlights)\n : _provideDocumentHighlights(document, position, token);\n }\n };\n return [vscode_1.languages.registerDocumentHighlightProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider), provider];\n }\n}\nexports.DocumentHighlightFeature = DocumentHighlightFeature;\n//# sourceMappingURL=documentHighlight.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.DocumentSymbolFeature = exports.SupportedSymbolTags = exports.SupportedSymbolKinds = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst UUID = require(\"./utils/uuid\");\nexports.SupportedSymbolKinds = [\n vscode_languageserver_protocol_1.SymbolKind.File,\n vscode_languageserver_protocol_1.SymbolKind.Module,\n vscode_languageserver_protocol_1.SymbolKind.Namespace,\n vscode_languageserver_protocol_1.SymbolKind.Package,\n vscode_languageserver_protocol_1.SymbolKind.Class,\n vscode_languageserver_protocol_1.SymbolKind.Method,\n vscode_languageserver_protocol_1.SymbolKind.Property,\n vscode_languageserver_protocol_1.SymbolKind.Field,\n vscode_languageserver_protocol_1.SymbolKind.Constructor,\n vscode_languageserver_protocol_1.SymbolKind.Enum,\n vscode_languageserver_protocol_1.SymbolKind.Interface,\n vscode_languageserver_protocol_1.SymbolKind.Function,\n vscode_languageserver_protocol_1.SymbolKind.Variable,\n vscode_languageserver_protocol_1.SymbolKind.Constant,\n vscode_languageserver_protocol_1.SymbolKind.String,\n vscode_languageserver_protocol_1.SymbolKind.Number,\n vscode_languageserver_protocol_1.SymbolKind.Boolean,\n vscode_languageserver_protocol_1.SymbolKind.Array,\n vscode_languageserver_protocol_1.SymbolKind.Object,\n vscode_languageserver_protocol_1.SymbolKind.Key,\n vscode_languageserver_protocol_1.SymbolKind.Null,\n vscode_languageserver_protocol_1.SymbolKind.EnumMember,\n vscode_languageserver_protocol_1.SymbolKind.Struct,\n vscode_languageserver_protocol_1.SymbolKind.Event,\n vscode_languageserver_protocol_1.SymbolKind.Operator,\n vscode_languageserver_protocol_1.SymbolKind.TypeParameter\n];\nexports.SupportedSymbolTags = [\n vscode_languageserver_protocol_1.SymbolTag.Deprecated\n];\nclass DocumentSymbolFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DocumentSymbolRequest.type);\n }\n fillClientCapabilities(capabilities) {\n let symbolCapabilities = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'documentSymbol');\n symbolCapabilities.dynamicRegistration = true;\n symbolCapabilities.symbolKind = {\n valueSet: exports.SupportedSymbolKinds\n };\n symbolCapabilities.hierarchicalDocumentSymbolSupport = true;\n symbolCapabilities.tagSupport = {\n valueSet: exports.SupportedSymbolTags\n };\n symbolCapabilities.labelSupport = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.documentSymbolProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideDocumentSymbols: (document, token) => {\n const client = this._client;\n const _provideDocumentSymbols = (document, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.DocumentSymbolRequest.type, client.code2ProtocolConverter.asDocumentSymbolParams(document), token).then(async (data) => {\n if (token.isCancellationRequested || data === undefined || data === null) {\n return null;\n }\n if (data.length === 0) {\n return [];\n }\n else {\n const first = data[0];\n if (vscode_languageserver_protocol_1.DocumentSymbol.is(first)) {\n return await client.protocol2CodeConverter.asDocumentSymbols(data, token);\n }\n else {\n return await client.protocol2CodeConverter.asSymbolInformations(data, token);\n }\n }\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentSymbolRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideDocumentSymbols\n ? middleware.provideDocumentSymbols(document, token, _provideDocumentSymbols)\n : _provideDocumentSymbols(document, token);\n }\n };\n const metaData = options.label !== undefined ? { label: options.label } : undefined;\n return [vscode_1.languages.registerDocumentSymbolProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider, metaData), provider];\n }\n}\nexports.DocumentSymbolFeature = DocumentSymbolFeature;\n//# sourceMappingURL=documentSymbol.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.WorkspaceSymbolFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst documentSymbol_1 = require(\"./documentSymbol\");\nconst UUID = require(\"./utils/uuid\");\nclass WorkspaceSymbolFeature extends features_1.WorkspaceFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.WorkspaceSymbolRequest.type);\n }\n fillClientCapabilities(capabilities) {\n let symbolCapabilities = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'workspace'), 'symbol');\n symbolCapabilities.dynamicRegistration = true;\n symbolCapabilities.symbolKind = {\n valueSet: documentSymbol_1.SupportedSymbolKinds\n };\n symbolCapabilities.tagSupport = {\n valueSet: documentSymbol_1.SupportedSymbolTags\n };\n symbolCapabilities.resolveSupport = { properties: ['location.range'] };\n }\n initialize(capabilities) {\n if (!capabilities.workspaceSymbolProvider) {\n return;\n }\n this.register({\n id: UUID.generateUuid(),\n registerOptions: capabilities.workspaceSymbolProvider === true ? { workDoneProgress: false } : capabilities.workspaceSymbolProvider\n });\n }\n registerLanguageProvider(options) {\n const provider = {\n provideWorkspaceSymbols: (query, token) => {\n const client = this._client;\n const provideWorkspaceSymbols = (query, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.WorkspaceSymbolRequest.type, { query }, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asSymbolInformations(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.WorkspaceSymbolRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideWorkspaceSymbols\n ? middleware.provideWorkspaceSymbols(query, token, provideWorkspaceSymbols)\n : provideWorkspaceSymbols(query, token);\n },\n resolveWorkspaceSymbol: options.resolveProvider === true\n ? (item, token) => {\n const client = this._client;\n const resolveWorkspaceSymbol = (item, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.WorkspaceSymbolResolveRequest.type, client.code2ProtocolConverter.asWorkspaceSymbol(item), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asSymbolInformation(result);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.WorkspaceSymbolResolveRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.resolveWorkspaceSymbol\n ? middleware.resolveWorkspaceSymbol(item, token, resolveWorkspaceSymbol)\n : resolveWorkspaceSymbol(item, token);\n }\n : undefined\n };\n return [vscode_1.languages.registerWorkspaceSymbolProvider(provider), provider];\n }\n}\nexports.WorkspaceSymbolFeature = WorkspaceSymbolFeature;\n//# sourceMappingURL=workspaceSymbol.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.ReferencesFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst UUID = require(\"./utils/uuid\");\nclass ReferencesFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.ReferencesRequest.type);\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'references').dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.referencesProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideReferences: (document, position, options, token) => {\n const client = this._client;\n const _providerReferences = (document, position, options, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.ReferencesRequest.type, client.code2ProtocolConverter.asReferenceParams(document, position, options), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asReferences(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.ReferencesRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideReferences\n ? middleware.provideReferences(document, position, options, token, _providerReferences)\n : _providerReferences(document, position, options, token);\n }\n };\n return [this.registerProvider(selector, provider), provider];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerReferenceProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.ReferencesFeature = ReferencesFeature;\n//# sourceMappingURL=reference.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.CodeActionFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst UUID = require(\"./utils/uuid\");\nconst features_1 = require(\"./features\");\nclass CodeActionFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.CodeActionRequest.type);\n }\n fillClientCapabilities(capabilities) {\n const cap = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'codeAction');\n cap.dynamicRegistration = true;\n cap.isPreferredSupport = true;\n cap.disabledSupport = true;\n cap.dataSupport = true;\n // We can only resolve the edit property.\n cap.resolveSupport = {\n properties: ['edit']\n };\n cap.codeActionLiteralSupport = {\n codeActionKind: {\n valueSet: [\n vscode_languageserver_protocol_1.CodeActionKind.Empty,\n vscode_languageserver_protocol_1.CodeActionKind.QuickFix,\n vscode_languageserver_protocol_1.CodeActionKind.Refactor,\n vscode_languageserver_protocol_1.CodeActionKind.RefactorExtract,\n vscode_languageserver_protocol_1.CodeActionKind.RefactorInline,\n vscode_languageserver_protocol_1.CodeActionKind.RefactorRewrite,\n vscode_languageserver_protocol_1.CodeActionKind.Source,\n vscode_languageserver_protocol_1.CodeActionKind.SourceOrganizeImports\n ]\n }\n };\n cap.honorsChangeAnnotations = false;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.codeActionProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideCodeActions: (document, range, context, token) => {\n const client = this._client;\n const _provideCodeActions = async (document, range, context, token) => {\n const params = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n range: client.code2ProtocolConverter.asRange(range),\n context: await client.code2ProtocolConverter.asCodeActionContext(context, token)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.CodeActionRequest.type, params, token).then((values) => {\n if (token.isCancellationRequested || values === null || values === undefined) {\n return null;\n }\n return client.protocol2CodeConverter.asCodeActionResult(values, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.CodeActionRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideCodeActions\n ? middleware.provideCodeActions(document, range, context, token, _provideCodeActions)\n : _provideCodeActions(document, range, context, token);\n },\n resolveCodeAction: options.resolveProvider\n ? (item, token) => {\n const client = this._client;\n const middleware = this._client.middleware;\n const resolveCodeAction = async (item, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.CodeActionResolveRequest.type, await client.code2ProtocolConverter.asCodeAction(item, token), token).then((result) => {\n if (token.isCancellationRequested) {\n return item;\n }\n return client.protocol2CodeConverter.asCodeAction(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.CodeActionResolveRequest.type, token, error, item);\n });\n };\n return middleware.resolveCodeAction\n ? middleware.resolveCodeAction(item, token, resolveCodeAction)\n : resolveCodeAction(item, token);\n }\n : undefined\n };\n return [vscode_1.languages.registerCodeActionsProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider, (options.codeActionKinds\n ? { providedCodeActionKinds: this._client.protocol2CodeConverter.asCodeActionKinds(options.codeActionKinds) }\n : undefined)), provider];\n }\n}\nexports.CodeActionFeature = CodeActionFeature;\n//# sourceMappingURL=codeAction.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.CodeLensFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst UUID = require(\"./utils/uuid\");\nconst features_1 = require(\"./features\");\nclass CodeLensFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.CodeLensRequest.type);\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'codeLens').dynamicRegistration = true;\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'workspace'), 'codeLens').refreshSupport = true;\n }\n initialize(capabilities, documentSelector) {\n const client = this._client;\n client.onRequest(vscode_languageserver_protocol_1.CodeLensRefreshRequest.type, async () => {\n for (const provider of this.getAllProviders()) {\n provider.onDidChangeCodeLensEmitter.fire();\n }\n });\n const options = this.getRegistrationOptions(documentSelector, capabilities.codeLensProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const eventEmitter = new vscode_1.EventEmitter();\n const provider = {\n onDidChangeCodeLenses: eventEmitter.event,\n provideCodeLenses: (document, token) => {\n const client = this._client;\n const provideCodeLenses = (document, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.CodeLensRequest.type, client.code2ProtocolConverter.asCodeLensParams(document), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asCodeLenses(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.CodeLensRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideCodeLenses\n ? middleware.provideCodeLenses(document, token, provideCodeLenses)\n : provideCodeLenses(document, token);\n },\n resolveCodeLens: (options.resolveProvider)\n ? (codeLens, token) => {\n const client = this._client;\n const resolveCodeLens = (codeLens, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.CodeLensResolveRequest.type, client.code2ProtocolConverter.asCodeLens(codeLens), token).then((result) => {\n if (token.isCancellationRequested) {\n return codeLens;\n }\n return client.protocol2CodeConverter.asCodeLens(result);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.CodeLensResolveRequest.type, token, error, codeLens);\n });\n };\n const middleware = client.middleware;\n return middleware.resolveCodeLens\n ? middleware.resolveCodeLens(codeLens, token, resolveCodeLens)\n : resolveCodeLens(codeLens, token);\n }\n : undefined\n };\n return [vscode_1.languages.registerCodeLensProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider), { provider, onDidChangeCodeLensEmitter: eventEmitter }];\n }\n}\nexports.CodeLensFeature = CodeLensFeature;\n//# sourceMappingURL=codeLens.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.DocumentOnTypeFormattingFeature = exports.DocumentRangeFormattingFeature = exports.DocumentFormattingFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst UUID = require(\"./utils/uuid\");\nconst features_1 = require(\"./features\");\nvar FileFormattingOptions;\n(function (FileFormattingOptions) {\n function fromConfiguration(document) {\n const filesConfig = vscode_1.workspace.getConfiguration('files', document);\n return {\n trimTrailingWhitespace: filesConfig.get('trimTrailingWhitespace'),\n trimFinalNewlines: filesConfig.get('trimFinalNewlines'),\n insertFinalNewline: filesConfig.get('insertFinalNewline'),\n };\n }\n FileFormattingOptions.fromConfiguration = fromConfiguration;\n})(FileFormattingOptions || (FileFormattingOptions = {}));\nclass DocumentFormattingFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DocumentFormattingRequest.type);\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'formatting').dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.documentFormattingProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideDocumentFormattingEdits: (document, options, token) => {\n const client = this._client;\n const provideDocumentFormattingEdits = (document, options, token) => {\n const params = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n options: client.code2ProtocolConverter.asFormattingOptions(options, FileFormattingOptions.fromConfiguration(document))\n };\n return client.sendRequest(vscode_languageserver_protocol_1.DocumentFormattingRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asTextEdits(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentFormattingRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideDocumentFormattingEdits\n ? middleware.provideDocumentFormattingEdits(document, options, token, provideDocumentFormattingEdits)\n : provideDocumentFormattingEdits(document, options, token);\n }\n };\n return [vscode_1.languages.registerDocumentFormattingEditProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider), provider];\n }\n}\nexports.DocumentFormattingFeature = DocumentFormattingFeature;\nclass DocumentRangeFormattingFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DocumentRangeFormattingRequest.type);\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'rangeFormatting').dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.documentRangeFormattingProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideDocumentRangeFormattingEdits: (document, range, options, token) => {\n const client = this._client;\n const provideDocumentRangeFormattingEdits = (document, range, options, token) => {\n const params = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n range: client.code2ProtocolConverter.asRange(range),\n options: client.code2ProtocolConverter.asFormattingOptions(options, FileFormattingOptions.fromConfiguration(document))\n };\n return client.sendRequest(vscode_languageserver_protocol_1.DocumentRangeFormattingRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asTextEdits(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentRangeFormattingRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideDocumentRangeFormattingEdits\n ? middleware.provideDocumentRangeFormattingEdits(document, range, options, token, provideDocumentRangeFormattingEdits)\n : provideDocumentRangeFormattingEdits(document, range, options, token);\n }\n };\n return [vscode_1.languages.registerDocumentRangeFormattingEditProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider), provider];\n }\n}\nexports.DocumentRangeFormattingFeature = DocumentRangeFormattingFeature;\nclass DocumentOnTypeFormattingFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DocumentOnTypeFormattingRequest.type);\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'onTypeFormatting').dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.documentOnTypeFormattingProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideOnTypeFormattingEdits: (document, position, ch, options, token) => {\n const client = this._client;\n const provideOnTypeFormattingEdits = (document, position, ch, options, token) => {\n let params = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n position: client.code2ProtocolConverter.asPosition(position),\n ch: ch,\n options: client.code2ProtocolConverter.asFormattingOptions(options, FileFormattingOptions.fromConfiguration(document))\n };\n return client.sendRequest(vscode_languageserver_protocol_1.DocumentOnTypeFormattingRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asTextEdits(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentOnTypeFormattingRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideOnTypeFormattingEdits\n ? middleware.provideOnTypeFormattingEdits(document, position, ch, options, token, provideOnTypeFormattingEdits)\n : provideOnTypeFormattingEdits(document, position, ch, options, token);\n }\n };\n const moreTriggerCharacter = options.moreTriggerCharacter || [];\n return [vscode_1.languages.registerOnTypeFormattingEditProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider, options.firstTriggerCharacter, ...moreTriggerCharacter), provider];\n }\n}\nexports.DocumentOnTypeFormattingFeature = DocumentOnTypeFormattingFeature;\n//# sourceMappingURL=formatting.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.RenameFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst UUID = require(\"./utils/uuid\");\nconst Is = require(\"./utils/is\");\nconst features_1 = require(\"./features\");\nclass RenameFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.RenameRequest.type);\n }\n fillClientCapabilities(capabilities) {\n let rename = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'rename');\n rename.dynamicRegistration = true;\n rename.prepareSupport = true;\n rename.prepareSupportDefaultBehavior = vscode_languageserver_protocol_1.PrepareSupportDefaultBehavior.Identifier;\n rename.honorsChangeAnnotations = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.renameProvider);\n if (!options) {\n return;\n }\n if (Is.boolean(capabilities.renameProvider)) {\n options.prepareProvider = false;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideRenameEdits: (document, position, newName, token) => {\n const client = this._client;\n const provideRenameEdits = (document, position, newName, token) => {\n let params = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n position: client.code2ProtocolConverter.asPosition(position),\n newName: newName\n };\n return client.sendRequest(vscode_languageserver_protocol_1.RenameRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asWorkspaceEdit(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.RenameRequest.type, token, error, null, false);\n });\n };\n const middleware = client.middleware;\n return middleware.provideRenameEdits\n ? middleware.provideRenameEdits(document, position, newName, token, provideRenameEdits)\n : provideRenameEdits(document, position, newName, token);\n },\n prepareRename: options.prepareProvider\n ? (document, position, token) => {\n const client = this._client;\n const prepareRename = (document, position, token) => {\n let params = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n position: client.code2ProtocolConverter.asPosition(position),\n };\n return client.sendRequest(vscode_languageserver_protocol_1.PrepareRenameRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n if (vscode_languageserver_protocol_1.Range.is(result)) {\n return client.protocol2CodeConverter.asRange(result);\n }\n else if (this.isDefaultBehavior(result)) {\n return result.defaultBehavior === true\n ? null\n : Promise.reject(new Error(`The element can't be renamed.`));\n }\n else if (result && vscode_languageserver_protocol_1.Range.is(result.range)) {\n return {\n range: client.protocol2CodeConverter.asRange(result.range),\n placeholder: result.placeholder\n };\n }\n // To cancel the rename vscode API expects a rejected promise.\n return Promise.reject(new Error(`The element can't be renamed.`));\n }, (error) => {\n if (typeof error.message === 'string') {\n throw new Error(error.message);\n }\n else {\n throw new Error(`The element can't be renamed.`);\n }\n });\n };\n const middleware = client.middleware;\n return middleware.prepareRename\n ? middleware.prepareRename(document, position, token, prepareRename)\n : prepareRename(document, position, token);\n }\n : undefined\n };\n return [this.registerProvider(selector, provider), provider];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerRenameProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n isDefaultBehavior(value) {\n const candidate = value;\n return candidate && Is.boolean(candidate.defaultBehavior);\n }\n}\nexports.RenameFeature = RenameFeature;\n//# sourceMappingURL=rename.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.DocumentLinkFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst UUID = require(\"./utils/uuid\");\nclass DocumentLinkFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DocumentLinkRequest.type);\n }\n fillClientCapabilities(capabilities) {\n const documentLinkCapabilities = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'documentLink');\n documentLinkCapabilities.dynamicRegistration = true;\n documentLinkCapabilities.tooltipSupport = true;\n }\n initialize(capabilities, documentSelector) {\n const options = this.getRegistrationOptions(documentSelector, capabilities.documentLinkProvider);\n if (!options) {\n return;\n }\n this.register({ id: UUID.generateUuid(), registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideDocumentLinks: (document, token) => {\n const client = this._client;\n const provideDocumentLinks = (document, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.DocumentLinkRequest.type, client.code2ProtocolConverter.asDocumentLinkParams(document), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asDocumentLinks(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentLinkRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideDocumentLinks\n ? middleware.provideDocumentLinks(document, token, provideDocumentLinks)\n : provideDocumentLinks(document, token);\n },\n resolveDocumentLink: options.resolveProvider\n ? (link, token) => {\n const client = this._client;\n let resolveDocumentLink = (link, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.DocumentLinkResolveRequest.type, client.code2ProtocolConverter.asDocumentLink(link), token).then((result) => {\n if (token.isCancellationRequested) {\n return link;\n }\n return client.protocol2CodeConverter.asDocumentLink(result);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentLinkResolveRequest.type, token, error, link);\n });\n };\n const middleware = client.middleware;\n return middleware.resolveDocumentLink\n ? middleware.resolveDocumentLink(link, token, resolveDocumentLink)\n : resolveDocumentLink(link, token);\n }\n : undefined\n };\n return [vscode_1.languages.registerDocumentLinkProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider), provider];\n }\n}\nexports.DocumentLinkFeature = DocumentLinkFeature;\n//# sourceMappingURL=documentLink.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.ExecuteCommandFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst UUID = require(\"./utils/uuid\");\nconst features_1 = require(\"./features\");\nclass ExecuteCommandFeature {\n constructor(client) {\n this._client = client;\n this._commands = new Map();\n }\n getState() {\n return { kind: 'workspace', id: this.registrationType.method, registrations: this._commands.size > 0 };\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.ExecuteCommandRequest.type;\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'workspace'), 'executeCommand').dynamicRegistration = true;\n }\n initialize(capabilities) {\n if (!capabilities.executeCommandProvider) {\n return;\n }\n this.register({\n id: UUID.generateUuid(),\n registerOptions: Object.assign({}, capabilities.executeCommandProvider)\n });\n }\n register(data) {\n const client = this._client;\n const middleware = client.middleware;\n const executeCommand = (command, args) => {\n let params = {\n command,\n arguments: args\n };\n return client.sendRequest(vscode_languageserver_protocol_1.ExecuteCommandRequest.type, params).then(undefined, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.ExecuteCommandRequest.type, undefined, error, undefined);\n });\n };\n if (data.registerOptions.commands) {\n const disposables = [];\n for (const command of data.registerOptions.commands) {\n disposables.push(vscode_1.commands.registerCommand(command, (...args) => {\n return middleware.executeCommand\n ? middleware.executeCommand(command, args, executeCommand)\n : executeCommand(command, args);\n }));\n }\n this._commands.set(data.id, disposables);\n }\n }\n unregister(id) {\n let disposables = this._commands.get(id);\n if (disposables) {\n disposables.forEach(disposable => disposable.dispose());\n }\n }\n dispose() {\n this._commands.forEach((value) => {\n value.forEach(disposable => disposable.dispose());\n });\n this._commands.clear();\n }\n}\nexports.ExecuteCommandFeature = ExecuteCommandFeature;\n//# sourceMappingURL=executeCommand.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.FileSystemWatcherFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass FileSystemWatcherFeature {\n constructor(client, notifyFileEvent) {\n this._client = client;\n this._notifyFileEvent = notifyFileEvent;\n this._watchers = new Map();\n }\n getState() {\n return { kind: 'workspace', id: this.registrationType.method, registrations: this._watchers.size > 0 };\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.DidChangeWatchedFilesNotification.type;\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'workspace'), 'didChangeWatchedFiles').dynamicRegistration = true;\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'workspace'), 'didChangeWatchedFiles').relativePatternSupport = true;\n }\n initialize(_capabilities, _documentSelector) {\n }\n register(data) {\n if (!Array.isArray(data.registerOptions.watchers)) {\n return;\n }\n const disposables = [];\n for (const watcher of data.registerOptions.watchers) {\n const globPattern = this._client.protocol2CodeConverter.asGlobPattern(watcher.globPattern);\n if (globPattern === undefined) {\n continue;\n }\n let watchCreate = true, watchChange = true, watchDelete = true;\n if (watcher.kind !== undefined && watcher.kind !== null) {\n watchCreate = (watcher.kind & vscode_languageserver_protocol_1.WatchKind.Create) !== 0;\n watchChange = (watcher.kind & vscode_languageserver_protocol_1.WatchKind.Change) !== 0;\n watchDelete = (watcher.kind & vscode_languageserver_protocol_1.WatchKind.Delete) !== 0;\n }\n const fileSystemWatcher = vscode_1.workspace.createFileSystemWatcher(globPattern, !watchCreate, !watchChange, !watchDelete);\n this.hookListeners(fileSystemWatcher, watchCreate, watchChange, watchDelete, disposables);\n disposables.push(fileSystemWatcher);\n }\n this._watchers.set(data.id, disposables);\n }\n registerRaw(id, fileSystemWatchers) {\n let disposables = [];\n for (let fileSystemWatcher of fileSystemWatchers) {\n this.hookListeners(fileSystemWatcher, true, true, true, disposables);\n }\n this._watchers.set(id, disposables);\n }\n hookListeners(fileSystemWatcher, watchCreate, watchChange, watchDelete, listeners) {\n if (watchCreate) {\n fileSystemWatcher.onDidCreate((resource) => this._notifyFileEvent({\n uri: this._client.code2ProtocolConverter.asUri(resource),\n type: vscode_languageserver_protocol_1.FileChangeType.Created\n }), null, listeners);\n }\n if (watchChange) {\n fileSystemWatcher.onDidChange((resource) => this._notifyFileEvent({\n uri: this._client.code2ProtocolConverter.asUri(resource),\n type: vscode_languageserver_protocol_1.FileChangeType.Changed\n }), null, listeners);\n }\n if (watchDelete) {\n fileSystemWatcher.onDidDelete((resource) => this._notifyFileEvent({\n uri: this._client.code2ProtocolConverter.asUri(resource),\n type: vscode_languageserver_protocol_1.FileChangeType.Deleted\n }), null, listeners);\n }\n }\n unregister(id) {\n let disposables = this._watchers.get(id);\n if (disposables) {\n for (let disposable of disposables) {\n disposable.dispose();\n }\n }\n }\n dispose() {\n this._watchers.forEach((disposables) => {\n for (let disposable of disposables) {\n disposable.dispose();\n }\n });\n this._watchers.clear();\n }\n}\nexports.FileSystemWatcherFeature = FileSystemWatcherFeature;\n//# sourceMappingURL=fileSystemWatcher.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.ColorProviderFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass ColorProviderFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DocumentColorRequest.type);\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'colorProvider').dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n let [id, options] = this.getRegistration(documentSelector, capabilities.colorProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideColorPresentations: (color, context, token) => {\n const client = this._client;\n const provideColorPresentations = (color, context, token) => {\n const requestParams = {\n color,\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(context.document),\n range: client.code2ProtocolConverter.asRange(context.range)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.ColorPresentationRequest.type, requestParams, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return this._client.protocol2CodeConverter.asColorPresentations(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.ColorPresentationRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideColorPresentations\n ? middleware.provideColorPresentations(color, context, token, provideColorPresentations)\n : provideColorPresentations(color, context, token);\n },\n provideDocumentColors: (document, token) => {\n const client = this._client;\n const provideDocumentColors = (document, token) => {\n const requestParams = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.DocumentColorRequest.type, requestParams, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return this._client.protocol2CodeConverter.asColorInformations(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DocumentColorRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideDocumentColors\n ? middleware.provideDocumentColors(document, token, provideDocumentColors)\n : provideDocumentColors(document, token);\n }\n };\n return [vscode_1.languages.registerColorProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider), provider];\n }\n}\nexports.ColorProviderFeature = ColorProviderFeature;\n//# sourceMappingURL=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.ImplementationFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass ImplementationFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.ImplementationRequest.type);\n }\n fillClientCapabilities(capabilities) {\n let implementationSupport = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'implementation');\n implementationSupport.dynamicRegistration = true;\n implementationSupport.linkSupport = true;\n }\n initialize(capabilities, documentSelector) {\n let [id, options] = this.getRegistration(documentSelector, capabilities.implementationProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideImplementation: (document, position, token) => {\n const client = this._client;\n const provideImplementation = (document, position, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.ImplementationRequest.type, client.code2ProtocolConverter.asTextDocumentPositionParams(document, position), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asDefinitionResult(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.ImplementationRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideImplementation\n ? middleware.provideImplementation(document, position, token, provideImplementation)\n : provideImplementation(document, position, token);\n }\n };\n return [this.registerProvider(selector, provider), provider];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerImplementationProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.ImplementationFeature = ImplementationFeature;\n//# sourceMappingURL=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.TypeDefinitionFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass TypeDefinitionFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.TypeDefinitionRequest.type);\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'typeDefinition').dynamicRegistration = true;\n let typeDefinitionSupport = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'typeDefinition');\n typeDefinitionSupport.dynamicRegistration = true;\n typeDefinitionSupport.linkSupport = true;\n }\n initialize(capabilities, documentSelector) {\n let [id, options] = this.getRegistration(documentSelector, capabilities.typeDefinitionProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideTypeDefinition: (document, position, token) => {\n const client = this._client;\n const provideTypeDefinition = (document, position, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.TypeDefinitionRequest.type, client.code2ProtocolConverter.asTextDocumentPositionParams(document, position), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asDefinitionResult(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.TypeDefinitionRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideTypeDefinition\n ? middleware.provideTypeDefinition(document, position, token, provideTypeDefinition)\n : provideTypeDefinition(document, position, token);\n }\n };\n return [this.registerProvider(selector, provider), provider];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerTypeDefinitionProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.TypeDefinitionFeature = TypeDefinitionFeature;\n//# sourceMappingURL=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.WorkspaceFoldersFeature = exports.arrayDiff = void 0;\nconst UUID = require(\"./utils/uuid\");\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nfunction access(target, key) {\n if (target === void 0) {\n return undefined;\n }\n return target[key];\n}\nfunction arrayDiff(left, right) {\n return left.filter(element => right.indexOf(element) < 0);\n}\nexports.arrayDiff = arrayDiff;\nclass WorkspaceFoldersFeature {\n constructor(client) {\n this._client = client;\n this._listeners = new Map();\n }\n getState() {\n return { kind: 'workspace', id: this.registrationType.method, registrations: this._listeners.size > 0 };\n }\n get registrationType() {\n return vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type;\n }\n fillInitializeParams(params) {\n const folders = vscode_1.workspace.workspaceFolders;\n this.initializeWithFolders(folders);\n if (folders === void 0) {\n params.workspaceFolders = null;\n }\n else {\n params.workspaceFolders = folders.map(folder => this.asProtocol(folder));\n }\n }\n initializeWithFolders(currentWorkspaceFolders) {\n this._initialFolders = currentWorkspaceFolders;\n }\n fillClientCapabilities(capabilities) {\n capabilities.workspace = capabilities.workspace || {};\n capabilities.workspace.workspaceFolders = true;\n }\n initialize(capabilities) {\n const client = this._client;\n client.onRequest(vscode_languageserver_protocol_1.WorkspaceFoldersRequest.type, (token) => {\n const workspaceFolders = () => {\n const folders = vscode_1.workspace.workspaceFolders;\n if (folders === undefined) {\n return null;\n }\n const result = folders.map((folder) => {\n return this.asProtocol(folder);\n });\n return result;\n };\n const middleware = client.middleware.workspace;\n return middleware && middleware.workspaceFolders\n ? middleware.workspaceFolders(token, workspaceFolders)\n : workspaceFolders(token);\n });\n const value = access(access(access(capabilities, 'workspace'), 'workspaceFolders'), 'changeNotifications');\n let id;\n if (typeof value === 'string') {\n id = value;\n }\n else if (value === true) {\n id = UUID.generateUuid();\n }\n if (id) {\n this.register({ id: id, registerOptions: undefined });\n }\n }\n sendInitialEvent(currentWorkspaceFolders) {\n let promise;\n if (this._initialFolders && currentWorkspaceFolders) {\n const removed = arrayDiff(this._initialFolders, currentWorkspaceFolders);\n const added = arrayDiff(currentWorkspaceFolders, this._initialFolders);\n if (added.length > 0 || removed.length > 0) {\n promise = this.doSendEvent(added, removed);\n }\n }\n else if (this._initialFolders) {\n promise = this.doSendEvent([], this._initialFolders);\n }\n else if (currentWorkspaceFolders) {\n promise = this.doSendEvent(currentWorkspaceFolders, []);\n }\n if (promise !== undefined) {\n promise.catch((error) => {\n this._client.error(`Sending notification ${vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type.method} failed`, error);\n });\n }\n }\n doSendEvent(addedFolders, removedFolders) {\n let params = {\n event: {\n added: addedFolders.map(folder => this.asProtocol(folder)),\n removed: removedFolders.map(folder => this.asProtocol(folder))\n }\n };\n return this._client.sendNotification(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type, params);\n }\n register(data) {\n let id = data.id;\n let client = this._client;\n let disposable = vscode_1.workspace.onDidChangeWorkspaceFolders((event) => {\n let didChangeWorkspaceFolders = (event) => {\n return this.doSendEvent(event.added, event.removed);\n };\n let middleware = client.middleware.workspace;\n const promise = middleware && middleware.didChangeWorkspaceFolders\n ? middleware.didChangeWorkspaceFolders(event, didChangeWorkspaceFolders)\n : didChangeWorkspaceFolders(event);\n promise.catch((error) => {\n this._client.error(`Sending notification ${vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type.method} failed`, error);\n });\n });\n this._listeners.set(id, disposable);\n this.sendInitialEvent(vscode_1.workspace.workspaceFolders);\n }\n unregister(id) {\n let disposable = this._listeners.get(id);\n if (disposable === void 0) {\n return;\n }\n this._listeners.delete(id);\n disposable.dispose();\n }\n dispose() {\n for (let disposable of this._listeners.values()) {\n disposable.dispose();\n }\n this._listeners.clear();\n }\n asProtocol(workspaceFolder) {\n if (workspaceFolder === void 0) {\n return null;\n }\n return { uri: this._client.code2ProtocolConverter.asUri(workspaceFolder.uri), name: workspaceFolder.name };\n }\n}\nexports.WorkspaceFoldersFeature = WorkspaceFoldersFeature;\n//# sourceMappingURL=workspaceFolder.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.FoldingRangeFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass FoldingRangeFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.FoldingRangeRequest.type);\n }\n fillClientCapabilities(capabilities) {\n let capability = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'foldingRange');\n capability.dynamicRegistration = true;\n capability.rangeLimit = 5000;\n capability.lineFoldingOnly = true;\n capability.foldingRangeKind = { valueSet: [vscode_languageserver_protocol_1.FoldingRangeKind.Comment, vscode_languageserver_protocol_1.FoldingRangeKind.Imports, vscode_languageserver_protocol_1.FoldingRangeKind.Region] };\n capability.foldingRange = { collapsedText: false };\n }\n initialize(capabilities, documentSelector) {\n let [id, options] = this.getRegistration(documentSelector, capabilities.foldingRangeProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideFoldingRanges: (document, context, token) => {\n const client = this._client;\n const provideFoldingRanges = (document, _, token) => {\n const requestParams = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.FoldingRangeRequest.type, requestParams, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asFoldingRanges(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.FoldingRangeRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideFoldingRanges\n ? middleware.provideFoldingRanges(document, context, token, provideFoldingRanges)\n : provideFoldingRanges(document, context, token);\n }\n };\n return [vscode_1.languages.registerFoldingRangeProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider), provider];\n }\n}\nexports.FoldingRangeFeature = FoldingRangeFeature;\n//# sourceMappingURL=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.DeclarationFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass DeclarationFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.DeclarationRequest.type);\n }\n fillClientCapabilities(capabilities) {\n const declarationSupport = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'declaration');\n declarationSupport.dynamicRegistration = true;\n declarationSupport.linkSupport = true;\n }\n initialize(capabilities, documentSelector) {\n const [id, options] = this.getRegistration(documentSelector, capabilities.declarationProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideDeclaration: (document, position, token) => {\n const client = this._client;\n const provideDeclaration = (document, position, token) => {\n return client.sendRequest(vscode_languageserver_protocol_1.DeclarationRequest.type, client.code2ProtocolConverter.asTextDocumentPositionParams(document, position), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asDeclarationResult(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.DeclarationRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideDeclaration\n ? middleware.provideDeclaration(document, position, token, provideDeclaration)\n : provideDeclaration(document, position, token);\n }\n };\n return [this.registerProvider(selector, provider), provider];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerDeclarationProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.DeclarationFeature = DeclarationFeature;\n//# sourceMappingURL=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.SelectionRangeFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass SelectionRangeFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.SelectionRangeRequest.type);\n }\n fillClientCapabilities(capabilities) {\n const capability = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'selectionRange');\n capability.dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n const [id, options] = this.getRegistration(documentSelector, capabilities.selectionRangeProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideSelectionRanges: (document, positions, token) => {\n const client = this._client;\n const provideSelectionRanges = async (document, positions, token) => {\n const requestParams = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n positions: await client.code2ProtocolConverter.asPositions(positions, token)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.SelectionRangeRequest.type, requestParams, token).then((ranges) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asSelectionRanges(ranges, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.SelectionRangeRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideSelectionRanges\n ? middleware.provideSelectionRanges(document, positions, token, provideSelectionRanges)\n : provideSelectionRanges(document, positions, token);\n }\n };\n return [this.registerProvider(selector, provider), provider];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerSelectionRangeProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.SelectionRangeFeature = SelectionRangeFeature;\n//# sourceMappingURL=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.ProgressFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst progressPart_1 = require(\"./progressPart\");\nfunction ensure(target, key) {\n if (target[key] === void 0) {\n target[key] = Object.create(null);\n }\n return target[key];\n}\nclass ProgressFeature {\n constructor(_client) {\n this._client = _client;\n this.activeParts = new Set();\n }\n getState() {\n return { kind: 'window', id: vscode_languageserver_protocol_1.WorkDoneProgressCreateRequest.method, registrations: this.activeParts.size > 0 };\n }\n fillClientCapabilities(capabilities) {\n ensure(capabilities, 'window').workDoneProgress = true;\n }\n initialize() {\n const client = this._client;\n const deleteHandler = (part) => {\n this.activeParts.delete(part);\n };\n const createHandler = (params) => {\n this.activeParts.add(new progressPart_1.ProgressPart(this._client, params.token, deleteHandler));\n };\n client.onRequest(vscode_languageserver_protocol_1.WorkDoneProgressCreateRequest.type, createHandler);\n }\n dispose() {\n for (const part of this.activeParts) {\n part.done();\n }\n this.activeParts.clear();\n }\n}\nexports.ProgressFeature = ProgressFeature;\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.CallHierarchyFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass CallHierarchyProvider {\n constructor(client) {\n this.client = client;\n this.middleware = client.middleware;\n }\n prepareCallHierarchy(document, position, token) {\n const client = this.client;\n const middleware = this.middleware;\n const prepareCallHierarchy = (document, position, token) => {\n const params = client.code2ProtocolConverter.asTextDocumentPositionParams(document, position);\n return client.sendRequest(vscode_languageserver_protocol_1.CallHierarchyPrepareRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asCallHierarchyItems(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.CallHierarchyPrepareRequest.type, token, error, null);\n });\n };\n return middleware.prepareCallHierarchy\n ? middleware.prepareCallHierarchy(document, position, token, prepareCallHierarchy)\n : prepareCallHierarchy(document, position, token);\n }\n provideCallHierarchyIncomingCalls(item, token) {\n const client = this.client;\n const middleware = this.middleware;\n const provideCallHierarchyIncomingCalls = (item, token) => {\n const params = {\n item: client.code2ProtocolConverter.asCallHierarchyItem(item)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.CallHierarchyIncomingCallsRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asCallHierarchyIncomingCalls(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.CallHierarchyIncomingCallsRequest.type, token, error, null);\n });\n };\n return middleware.provideCallHierarchyIncomingCalls\n ? middleware.provideCallHierarchyIncomingCalls(item, token, provideCallHierarchyIncomingCalls)\n : provideCallHierarchyIncomingCalls(item, token);\n }\n provideCallHierarchyOutgoingCalls(item, token) {\n const client = this.client;\n const middleware = this.middleware;\n const provideCallHierarchyOutgoingCalls = (item, token) => {\n const params = {\n item: client.code2ProtocolConverter.asCallHierarchyItem(item)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.CallHierarchyOutgoingCallsRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asCallHierarchyOutgoingCalls(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.CallHierarchyOutgoingCallsRequest.type, token, error, null);\n });\n };\n return middleware.provideCallHierarchyOutgoingCalls\n ? middleware.provideCallHierarchyOutgoingCalls(item, token, provideCallHierarchyOutgoingCalls)\n : provideCallHierarchyOutgoingCalls(item, token);\n }\n}\nclass CallHierarchyFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.CallHierarchyPrepareRequest.type);\n }\n fillClientCapabilities(cap) {\n const capabilities = cap;\n const capability = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'callHierarchy');\n capability.dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n const [id, options] = this.getRegistration(documentSelector, capabilities.callHierarchyProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const client = this._client;\n const provider = new CallHierarchyProvider(client);\n return [vscode_1.languages.registerCallHierarchyProvider(this._client.protocol2CodeConverter.asDocumentSelector(options.documentSelector), provider), provider];\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.SemanticTokensFeature = void 0;\nconst vscode = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nconst Is = require(\"./utils/is\");\nclass SemanticTokensFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.SemanticTokensRegistrationType.type);\n }\n fillClientCapabilities(capabilities) {\n const capability = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'semanticTokens');\n capability.dynamicRegistration = true;\n capability.tokenTypes = [\n vscode_languageserver_protocol_1.SemanticTokenTypes.namespace,\n vscode_languageserver_protocol_1.SemanticTokenTypes.type,\n vscode_languageserver_protocol_1.SemanticTokenTypes.class,\n vscode_languageserver_protocol_1.SemanticTokenTypes.enum,\n vscode_languageserver_protocol_1.SemanticTokenTypes.interface,\n vscode_languageserver_protocol_1.SemanticTokenTypes.struct,\n vscode_languageserver_protocol_1.SemanticTokenTypes.typeParameter,\n vscode_languageserver_protocol_1.SemanticTokenTypes.parameter,\n vscode_languageserver_protocol_1.SemanticTokenTypes.variable,\n vscode_languageserver_protocol_1.SemanticTokenTypes.property,\n vscode_languageserver_protocol_1.SemanticTokenTypes.enumMember,\n vscode_languageserver_protocol_1.SemanticTokenTypes.event,\n vscode_languageserver_protocol_1.SemanticTokenTypes.function,\n vscode_languageserver_protocol_1.SemanticTokenTypes.method,\n vscode_languageserver_protocol_1.SemanticTokenTypes.macro,\n vscode_languageserver_protocol_1.SemanticTokenTypes.keyword,\n vscode_languageserver_protocol_1.SemanticTokenTypes.modifier,\n vscode_languageserver_protocol_1.SemanticTokenTypes.comment,\n vscode_languageserver_protocol_1.SemanticTokenTypes.string,\n vscode_languageserver_protocol_1.SemanticTokenTypes.number,\n vscode_languageserver_protocol_1.SemanticTokenTypes.regexp,\n vscode_languageserver_protocol_1.SemanticTokenTypes.operator,\n vscode_languageserver_protocol_1.SemanticTokenTypes.decorator\n ];\n capability.tokenModifiers = [\n vscode_languageserver_protocol_1.SemanticTokenModifiers.declaration,\n vscode_languageserver_protocol_1.SemanticTokenModifiers.definition,\n vscode_languageserver_protocol_1.SemanticTokenModifiers.readonly,\n vscode_languageserver_protocol_1.SemanticTokenModifiers.static,\n vscode_languageserver_protocol_1.SemanticTokenModifiers.deprecated,\n vscode_languageserver_protocol_1.SemanticTokenModifiers.abstract,\n vscode_languageserver_protocol_1.SemanticTokenModifiers.async,\n vscode_languageserver_protocol_1.SemanticTokenModifiers.modification,\n vscode_languageserver_protocol_1.SemanticTokenModifiers.documentation,\n vscode_languageserver_protocol_1.SemanticTokenModifiers.defaultLibrary\n ];\n capability.formats = [vscode_languageserver_protocol_1.TokenFormat.Relative];\n capability.requests = {\n range: true,\n full: {\n delta: true\n }\n };\n capability.multilineTokenSupport = false;\n capability.overlappingTokenSupport = false;\n capability.serverCancelSupport = true;\n capability.augmentsSyntaxTokens = true;\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'workspace'), 'semanticTokens').refreshSupport = true;\n }\n initialize(capabilities, documentSelector) {\n const client = this._client;\n client.onRequest(vscode_languageserver_protocol_1.SemanticTokensRefreshRequest.type, async () => {\n for (const provider of this.getAllProviders()) {\n provider.onDidChangeSemanticTokensEmitter.fire();\n }\n });\n const [id, options] = this.getRegistration(documentSelector, capabilities.semanticTokensProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const fullProvider = Is.boolean(options.full) ? options.full : options.full !== undefined;\n const hasEditProvider = options.full !== undefined && typeof options.full !== 'boolean' && options.full.delta === true;\n const eventEmitter = new vscode.EventEmitter();\n const documentProvider = fullProvider\n ? {\n onDidChangeSemanticTokens: eventEmitter.event,\n provideDocumentSemanticTokens: (document, token) => {\n const client = this._client;\n const middleware = client.middleware;\n const provideDocumentSemanticTokens = (document, token) => {\n const params = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.SemanticTokensRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asSemanticTokens(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.SemanticTokensRequest.type, token, error, null);\n });\n };\n return middleware.provideDocumentSemanticTokens\n ? middleware.provideDocumentSemanticTokens(document, token, provideDocumentSemanticTokens)\n : provideDocumentSemanticTokens(document, token);\n },\n provideDocumentSemanticTokensEdits: hasEditProvider\n ? (document, previousResultId, token) => {\n const client = this._client;\n const middleware = client.middleware;\n const provideDocumentSemanticTokensEdits = (document, previousResultId, token) => {\n const params = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n previousResultId\n };\n return client.sendRequest(vscode_languageserver_protocol_1.SemanticTokensDeltaRequest.type, params, token).then(async (result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n if (vscode_languageserver_protocol_1.SemanticTokens.is(result)) {\n return await client.protocol2CodeConverter.asSemanticTokens(result, token);\n }\n else {\n return await client.protocol2CodeConverter.asSemanticTokensEdits(result, token);\n }\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.SemanticTokensDeltaRequest.type, token, error, null);\n });\n };\n return middleware.provideDocumentSemanticTokensEdits\n ? middleware.provideDocumentSemanticTokensEdits(document, previousResultId, token, provideDocumentSemanticTokensEdits)\n : provideDocumentSemanticTokensEdits(document, previousResultId, token);\n }\n : undefined\n }\n : undefined;\n const hasRangeProvider = options.range === true;\n const rangeProvider = hasRangeProvider\n ? {\n provideDocumentRangeSemanticTokens: (document, range, token) => {\n const client = this._client;\n const middleware = client.middleware;\n const provideDocumentRangeSemanticTokens = (document, range, token) => {\n const params = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n range: client.code2ProtocolConverter.asRange(range)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.SemanticTokensRangeRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asSemanticTokens(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.SemanticTokensRangeRequest.type, token, error, null);\n });\n };\n return middleware.provideDocumentRangeSemanticTokens\n ? middleware.provideDocumentRangeSemanticTokens(document, range, token, provideDocumentRangeSemanticTokens)\n : provideDocumentRangeSemanticTokens(document, range, token);\n }\n }\n : undefined;\n const disposables = [];\n const client = this._client;\n const legend = client.protocol2CodeConverter.asSemanticTokensLegend(options.legend);\n const documentSelector = client.protocol2CodeConverter.asDocumentSelector(selector);\n if (documentProvider !== undefined) {\n disposables.push(vscode.languages.registerDocumentSemanticTokensProvider(documentSelector, documentProvider, legend));\n }\n if (rangeProvider !== undefined) {\n disposables.push(vscode.languages.registerDocumentRangeSemanticTokensProvider(documentSelector, rangeProvider, legend));\n }\n return [new vscode.Disposable(() => disposables.forEach(item => item.dispose())), { range: rangeProvider, full: documentProvider, onDidChangeSemanticTokensEmitter: eventEmitter }];\n }\n}\nexports.SemanticTokensFeature = SemanticTokensFeature;\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.WillDeleteFilesFeature = exports.WillRenameFilesFeature = exports.WillCreateFilesFeature = exports.DidDeleteFilesFeature = exports.DidRenameFilesFeature = exports.DidCreateFilesFeature = void 0;\nconst code = require(\"vscode\");\nconst minimatch = require(\"minimatch\");\nconst proto = require(\"vscode-languageserver-protocol\");\nconst UUID = require(\"./utils/uuid\");\nfunction ensure(target, key) {\n if (target[key] === void 0) {\n target[key] = {};\n }\n return target[key];\n}\nfunction access(target, key) {\n return target[key];\n}\nfunction assign(target, key, value) {\n target[key] = value;\n}\nclass FileOperationFeature {\n constructor(client, event, registrationType, clientCapability, serverCapability) {\n this._client = client;\n this._event = event;\n this._registrationType = registrationType;\n this._clientCapability = clientCapability;\n this._serverCapability = serverCapability;\n this._filters = new Map();\n }\n getState() {\n return { kind: 'workspace', id: this._registrationType.method, registrations: this._filters.size > 0 };\n }\n filterSize() {\n return this._filters.size;\n }\n get registrationType() {\n return this._registrationType;\n }\n fillClientCapabilities(capabilities) {\n const value = ensure(ensure(capabilities, 'workspace'), 'fileOperations');\n // this happens n times but it is the same value so we tolerate this.\n assign(value, 'dynamicRegistration', true);\n assign(value, this._clientCapability, true);\n }\n initialize(capabilities) {\n const options = capabilities.workspace?.fileOperations;\n const capability = options !== undefined ? access(options, this._serverCapability) : undefined;\n if (capability?.filters !== undefined) {\n try {\n this.register({\n id: UUID.generateUuid(),\n registerOptions: { filters: capability.filters }\n });\n }\n catch (e) {\n this._client.warn(`Ignoring invalid glob pattern for ${this._serverCapability} registration: ${e}`);\n }\n }\n }\n register(data) {\n if (!this._listener) {\n this._listener = this._event(this.send, this);\n }\n const minimatchFilter = data.registerOptions.filters.map((filter) => {\n const matcher = new minimatch.Minimatch(filter.pattern.glob, FileOperationFeature.asMinimatchOptions(filter.pattern.options));\n if (!matcher.makeRe()) {\n throw new Error(`Invalid pattern ${filter.pattern.glob}!`);\n }\n return { scheme: filter.scheme, matcher, kind: filter.pattern.matches };\n });\n this._filters.set(data.id, minimatchFilter);\n }\n unregister(id) {\n this._filters.delete(id);\n if (this._filters.size === 0 && this._listener) {\n this._listener.dispose();\n this._listener = undefined;\n }\n }\n dispose() {\n this._filters.clear();\n if (this._listener) {\n this._listener.dispose();\n this._listener = undefined;\n }\n }\n getFileType(uri) {\n return FileOperationFeature.getFileType(uri);\n }\n async filter(event, prop) {\n // (Asynchronously) map each file onto a boolean of whether it matches\n // any of the globs.\n const fileMatches = await Promise.all(event.files.map(async (item) => {\n const uri = prop(item);\n // Use fsPath to make this consistent with file system watchers but help\n // minimatch to use '/' instead of `\\\\` if present.\n const path = uri.fsPath.replace(/\\\\/g, '/');\n for (const filters of this._filters.values()) {\n for (const filter of filters) {\n if (filter.scheme !== undefined && filter.scheme !== uri.scheme) {\n continue;\n }\n if (filter.matcher.match(path)) {\n // The pattern matches. If kind is undefined then everything is ok\n if (filter.kind === undefined) {\n return true;\n }\n const fileType = await this.getFileType(uri);\n // If we can't determine the file type than we treat it as a match.\n // Dropping it would be another alternative.\n if (fileType === undefined) {\n this._client.error(`Failed to determine file type for ${uri.toString()}.`);\n return true;\n }\n if ((fileType === code.FileType.File && filter.kind === proto.FileOperationPatternKind.file) || (fileType === code.FileType.Directory && filter.kind === proto.FileOperationPatternKind.folder)) {\n return true;\n }\n }\n else if (filter.kind === proto.FileOperationPatternKind.folder) {\n const fileType = await FileOperationFeature.getFileType(uri);\n if (fileType === code.FileType.Directory && filter.matcher.match(`${path}/`)) {\n return true;\n }\n }\n }\n }\n return false;\n }));\n // Filter the files to those that matched.\n const files = event.files.filter((_, index) => fileMatches[index]);\n return { ...event, files };\n }\n static async getFileType(uri) {\n try {\n return (await code.workspace.fs.stat(uri)).type;\n }\n catch (e) {\n return undefined;\n }\n }\n static asMinimatchOptions(options) {\n if (options === undefined) {\n return undefined;\n }\n if (options.ignoreCase === true) {\n return { nocase: true };\n }\n return undefined;\n }\n}\nclass NotificationFileOperationFeature extends FileOperationFeature {\n constructor(client, event, notificationType, clientCapability, serverCapability, accessUri, createParams) {\n super(client, event, notificationType, clientCapability, serverCapability);\n this._notificationType = notificationType;\n this._accessUri = accessUri;\n this._createParams = createParams;\n }\n async send(originalEvent) {\n // Create a copy of the event that has the files filtered to match what the\n // server wants.\n const filteredEvent = await this.filter(originalEvent, this._accessUri);\n if (filteredEvent.files.length) {\n const next = async (event) => {\n return this._client.sendNotification(this._notificationType, this._createParams(event));\n };\n return this.doSend(filteredEvent, next);\n }\n }\n}\nclass CachingNotificationFileOperationFeature extends NotificationFileOperationFeature {\n constructor() {\n super(...arguments);\n this._fsPathFileTypes = new Map();\n }\n async getFileType(uri) {\n const fsPath = uri.fsPath;\n if (this._fsPathFileTypes.has(fsPath)) {\n return this._fsPathFileTypes.get(fsPath);\n }\n const type = await FileOperationFeature.getFileType(uri);\n if (type) {\n this._fsPathFileTypes.set(fsPath, type);\n }\n return type;\n }\n async cacheFileTypes(event, prop) {\n // Calling filter will force the matching logic to run. For any item\n // that requires a getFileType lookup, the overriden getFileType will\n // be called that will cache the result so that when onDidRename fires,\n // it can still be checked even though the item no longer exists on disk\n // in its original location.\n await this.filter(event, prop);\n }\n clearFileTypeCache() {\n this._fsPathFileTypes.clear();\n }\n unregister(id) {\n super.unregister(id);\n if (this.filterSize() === 0 && this._willListener) {\n this._willListener.dispose();\n this._willListener = undefined;\n }\n }\n dispose() {\n super.dispose();\n if (this._willListener) {\n this._willListener.dispose();\n this._willListener = undefined;\n }\n }\n}\nclass DidCreateFilesFeature extends NotificationFileOperationFeature {\n constructor(client) {\n super(client, code.workspace.onDidCreateFiles, proto.DidCreateFilesNotification.type, 'didCreate', 'didCreate', (i) => i, client.code2ProtocolConverter.asDidCreateFilesParams);\n }\n doSend(event, next) {\n const middleware = this._client.middleware.workspace;\n return middleware?.didCreateFiles\n ? middleware.didCreateFiles(event, next)\n : next(event);\n }\n}\nexports.DidCreateFilesFeature = DidCreateFilesFeature;\nclass DidRenameFilesFeature extends CachingNotificationFileOperationFeature {\n constructor(client) {\n super(client, code.workspace.onDidRenameFiles, proto.DidRenameFilesNotification.type, 'didRename', 'didRename', (i) => i.oldUri, client.code2ProtocolConverter.asDidRenameFilesParams);\n }\n register(data) {\n if (!this._willListener) {\n this._willListener = code.workspace.onWillRenameFiles(this.willRename, this);\n }\n super.register(data);\n }\n willRename(e) {\n e.waitUntil(this.cacheFileTypes(e, (i) => i.oldUri));\n }\n doSend(event, next) {\n this.clearFileTypeCache();\n const middleware = this._client.middleware.workspace;\n return middleware?.didRenameFiles\n ? middleware.didRenameFiles(event, next)\n : next(event);\n }\n}\nexports.DidRenameFilesFeature = DidRenameFilesFeature;\nclass DidDeleteFilesFeature extends CachingNotificationFileOperationFeature {\n constructor(client) {\n super(client, code.workspace.onDidDeleteFiles, proto.DidDeleteFilesNotification.type, 'didDelete', 'didDelete', (i) => i, client.code2ProtocolConverter.asDidDeleteFilesParams);\n }\n register(data) {\n if (!this._willListener) {\n this._willListener = code.workspace.onWillDeleteFiles(this.willDelete, this);\n }\n super.register(data);\n }\n willDelete(e) {\n e.waitUntil(this.cacheFileTypes(e, (i) => i));\n }\n doSend(event, next) {\n this.clearFileTypeCache();\n const middleware = this._client.middleware.workspace;\n return middleware?.didDeleteFiles\n ? middleware.didDeleteFiles(event, next)\n : next(event);\n }\n}\nexports.DidDeleteFilesFeature = DidDeleteFilesFeature;\nclass RequestFileOperationFeature extends FileOperationFeature {\n constructor(client, event, requestType, clientCapability, serverCapability, accessUri, createParams) {\n super(client, event, requestType, clientCapability, serverCapability);\n this._requestType = requestType;\n this._accessUri = accessUri;\n this._createParams = createParams;\n }\n async send(originalEvent) {\n const waitUntil = this.waitUntil(originalEvent);\n originalEvent.waitUntil(waitUntil);\n }\n async waitUntil(originalEvent) {\n // Create a copy of the event that has the files filtered to match what the\n // server wants.\n const filteredEvent = await this.filter(originalEvent, this._accessUri);\n if (filteredEvent.files.length) {\n const next = (event) => {\n return this._client.sendRequest(this._requestType, this._createParams(event), event.token)\n .then(this._client.protocol2CodeConverter.asWorkspaceEdit);\n };\n return this.doSend(filteredEvent, next);\n }\n else {\n return undefined;\n }\n }\n}\nclass WillCreateFilesFeature extends RequestFileOperationFeature {\n constructor(client) {\n super(client, code.workspace.onWillCreateFiles, proto.WillCreateFilesRequest.type, 'willCreate', 'willCreate', (i) => i, client.code2ProtocolConverter.asWillCreateFilesParams);\n }\n doSend(event, next) {\n const middleware = this._client.middleware.workspace;\n return middleware?.willCreateFiles\n ? middleware.willCreateFiles(event, next)\n : next(event);\n }\n}\nexports.WillCreateFilesFeature = WillCreateFilesFeature;\nclass WillRenameFilesFeature extends RequestFileOperationFeature {\n constructor(client) {\n super(client, code.workspace.onWillRenameFiles, proto.WillRenameFilesRequest.type, 'willRename', 'willRename', (i) => i.oldUri, client.code2ProtocolConverter.asWillRenameFilesParams);\n }\n doSend(event, next) {\n const middleware = this._client.middleware.workspace;\n return middleware?.willRenameFiles\n ? middleware.willRenameFiles(event, next)\n : next(event);\n }\n}\nexports.WillRenameFilesFeature = WillRenameFilesFeature;\nclass WillDeleteFilesFeature extends RequestFileOperationFeature {\n constructor(client) {\n super(client, code.workspace.onWillDeleteFiles, proto.WillDeleteFilesRequest.type, 'willDelete', 'willDelete', (i) => i, client.code2ProtocolConverter.asWillDeleteFilesParams);\n }\n doSend(event, next) {\n const middleware = this._client.middleware.workspace;\n return middleware?.willDeleteFiles\n ? middleware.willDeleteFiles(event, next)\n : next(event);\n }\n}\nexports.WillDeleteFilesFeature = WillDeleteFilesFeature;\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.LinkedEditingFeature = void 0;\nconst code = require(\"vscode\");\nconst proto = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass LinkedEditingFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, proto.LinkedEditingRangeRequest.type);\n }\n fillClientCapabilities(capabilities) {\n const linkedEditingSupport = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'linkedEditingRange');\n linkedEditingSupport.dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n let [id, options] = this.getRegistration(documentSelector, capabilities.linkedEditingRangeProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const provider = {\n provideLinkedEditingRanges: (document, position, token) => {\n const client = this._client;\n const provideLinkedEditing = (document, position, token) => {\n return client.sendRequest(proto.LinkedEditingRangeRequest.type, client.code2ProtocolConverter.asTextDocumentPositionParams(document, position), token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asLinkedEditingRanges(result, token);\n }, (error) => {\n return client.handleFailedRequest(proto.LinkedEditingRangeRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideLinkedEditingRange\n ? middleware.provideLinkedEditingRange(document, position, token, provideLinkedEditing)\n : provideLinkedEditing(document, position, token);\n }\n };\n return [this.registerProvider(selector, provider), provider];\n }\n registerProvider(selector, provider) {\n return code.languages.registerLinkedEditingRangeProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.LinkedEditingFeature = LinkedEditingFeature;\n//# sourceMappingURL=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.TypeHierarchyFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass TypeHierarchyProvider {\n constructor(client) {\n this.client = client;\n this.middleware = client.middleware;\n }\n prepareTypeHierarchy(document, position, token) {\n const client = this.client;\n const middleware = this.middleware;\n const prepareTypeHierarchy = (document, position, token) => {\n const params = client.code2ProtocolConverter.asTextDocumentPositionParams(document, position);\n return client.sendRequest(vscode_languageserver_protocol_1.TypeHierarchyPrepareRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asTypeHierarchyItems(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.TypeHierarchyPrepareRequest.type, token, error, null);\n });\n };\n return middleware.prepareTypeHierarchy\n ? middleware.prepareTypeHierarchy(document, position, token, prepareTypeHierarchy)\n : prepareTypeHierarchy(document, position, token);\n }\n provideTypeHierarchySupertypes(item, token) {\n const client = this.client;\n const middleware = this.middleware;\n const provideTypeHierarchySupertypes = (item, token) => {\n const params = {\n item: client.code2ProtocolConverter.asTypeHierarchyItem(item)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.TypeHierarchySupertypesRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asTypeHierarchyItems(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.TypeHierarchySupertypesRequest.type, token, error, null);\n });\n };\n return middleware.provideTypeHierarchySupertypes\n ? middleware.provideTypeHierarchySupertypes(item, token, provideTypeHierarchySupertypes)\n : provideTypeHierarchySupertypes(item, token);\n }\n provideTypeHierarchySubtypes(item, token) {\n const client = this.client;\n const middleware = this.middleware;\n const provideTypeHierarchySubtypes = (item, token) => {\n const params = {\n item: client.code2ProtocolConverter.asTypeHierarchyItem(item)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.TypeHierarchySubtypesRequest.type, params, token).then((result) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asTypeHierarchyItems(result, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.TypeHierarchySubtypesRequest.type, token, error, null);\n });\n };\n return middleware.provideTypeHierarchySubtypes\n ? middleware.provideTypeHierarchySubtypes(item, token, provideTypeHierarchySubtypes)\n : provideTypeHierarchySubtypes(item, token);\n }\n}\nclass TypeHierarchyFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.TypeHierarchyPrepareRequest.type);\n }\n fillClientCapabilities(capabilities) {\n const capability = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'typeHierarchy');\n capability.dynamicRegistration = true;\n }\n initialize(capabilities, documentSelector) {\n const [id, options] = this.getRegistration(documentSelector, capabilities.typeHierarchyProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const client = this._client;\n const provider = new TypeHierarchyProvider(client);\n return [vscode_1.languages.registerTypeHierarchyProvider(client.protocol2CodeConverter.asDocumentSelector(options.documentSelector), provider), provider];\n }\n}\nexports.TypeHierarchyFeature = TypeHierarchyFeature;\n//# sourceMappingURL=typeHierarchy.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.InlineValueFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass InlineValueFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.InlineValueRequest.type);\n }\n fillClientCapabilities(capabilities) {\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'inlineValue').dynamicRegistration = true;\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'workspace'), 'inlineValue').refreshSupport = true;\n }\n initialize(capabilities, documentSelector) {\n this._client.onRequest(vscode_languageserver_protocol_1.InlineValueRefreshRequest.type, async () => {\n for (const provider of this.getAllProviders()) {\n provider.onDidChangeInlineValues.fire();\n }\n });\n const [id, options] = this.getRegistration(documentSelector, capabilities.inlineValueProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const eventEmitter = new vscode_1.EventEmitter();\n const provider = {\n onDidChangeInlineValues: eventEmitter.event,\n provideInlineValues: (document, viewPort, context, token) => {\n const client = this._client;\n const provideInlineValues = (document, viewPort, context, token) => {\n const requestParams = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n range: client.code2ProtocolConverter.asRange(viewPort),\n context: client.code2ProtocolConverter.asInlineValueContext(context)\n };\n return client.sendRequest(vscode_languageserver_protocol_1.InlineValueRequest.type, requestParams, token).then((values) => {\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asInlineValues(values, token);\n }, (error) => {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.InlineValueRequest.type, token, error, null);\n });\n };\n const middleware = client.middleware;\n return middleware.provideInlineValues\n ? middleware.provideInlineValues(document, viewPort, context, token, provideInlineValues)\n : provideInlineValues(document, viewPort, context, token);\n }\n };\n return [this.registerProvider(selector, provider), { provider: provider, onDidChangeInlineValues: eventEmitter }];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerInlineValuesProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.InlineValueFeature = InlineValueFeature;\n//# sourceMappingURL=inlineValue.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.InlayHintsFeature = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst features_1 = require(\"./features\");\nclass InlayHintsFeature extends features_1.TextDocumentLanguageFeature {\n constructor(client) {\n super(client, vscode_languageserver_protocol_1.InlayHintRequest.type);\n }\n fillClientCapabilities(capabilities) {\n const inlayHint = (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'textDocument'), 'inlayHint');\n inlayHint.dynamicRegistration = true;\n inlayHint.resolveSupport = {\n properties: ['tooltip', 'textEdits', 'label.tooltip', 'label.location', 'label.command']\n };\n (0, features_1.ensure)((0, features_1.ensure)(capabilities, 'workspace'), 'inlayHint').refreshSupport = true;\n }\n initialize(capabilities, documentSelector) {\n this._client.onRequest(vscode_languageserver_protocol_1.InlayHintRefreshRequest.type, async () => {\n for (const provider of this.getAllProviders()) {\n provider.onDidChangeInlayHints.fire();\n }\n });\n const [id, options] = this.getRegistration(documentSelector, capabilities.inlayHintProvider);\n if (!id || !options) {\n return;\n }\n this.register({ id: id, registerOptions: options });\n }\n registerLanguageProvider(options) {\n const selector = options.documentSelector;\n const eventEmitter = new vscode_1.EventEmitter();\n const provider = {\n onDidChangeInlayHints: eventEmitter.event,\n provideInlayHints: (document, viewPort, token) => {\n const client = this._client;\n const provideInlayHints = async (document, viewPort, token) => {\n const requestParams = {\n textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),\n range: client.code2ProtocolConverter.asRange(viewPort)\n };\n try {\n const values = await client.sendRequest(vscode_languageserver_protocol_1.InlayHintRequest.type, requestParams, token);\n if (token.isCancellationRequested) {\n return null;\n }\n return client.protocol2CodeConverter.asInlayHints(values, token);\n }\n catch (error) {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.InlayHintRequest.type, token, error, null);\n }\n };\n const middleware = client.middleware;\n return middleware.provideInlayHints\n ? middleware.provideInlayHints(document, viewPort, token, provideInlayHints)\n : provideInlayHints(document, viewPort, token);\n }\n };\n provider.resolveInlayHint = options.resolveProvider === true\n ? (hint, token) => {\n const client = this._client;\n const resolveInlayHint = async (item, token) => {\n try {\n const value = await client.sendRequest(vscode_languageserver_protocol_1.InlayHintResolveRequest.type, client.code2ProtocolConverter.asInlayHint(item), token);\n if (token.isCancellationRequested) {\n return null;\n }\n const result = client.protocol2CodeConverter.asInlayHint(value, token);\n return token.isCancellationRequested ? null : result;\n }\n catch (error) {\n return client.handleFailedRequest(vscode_languageserver_protocol_1.InlayHintResolveRequest.type, token, error, null);\n }\n };\n const middleware = client.middleware;\n return middleware.resolveInlayHint\n ? middleware.resolveInlayHint(hint, token, resolveInlayHint)\n : resolveInlayHint(hint, token);\n }\n : undefined;\n return [this.registerProvider(selector, provider), { provider: provider, onDidChangeInlayHints: eventEmitter }];\n }\n registerProvider(selector, provider) {\n return vscode_1.languages.registerInlayHintsProvider(this._client.protocol2CodeConverter.asDocumentSelector(selector), provider);\n }\n}\nexports.InlayHintsFeature = InlayHintsFeature;\n//# sourceMappingURL=inlayHint.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.ProposedFeatures = exports.BaseLanguageClient = exports.MessageTransports = exports.SuspendMode = exports.State = exports.CloseAction = exports.ErrorAction = exports.RevealOutputChannelOn = void 0;\nconst vscode_1 = require(\"vscode\");\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst c2p = require(\"./codeConverter\");\nconst p2c = require(\"./protocolConverter\");\nconst Is = require(\"./utils/is\");\nconst async_1 = require(\"./utils/async\");\nconst UUID = require(\"./utils/uuid\");\nconst progressPart_1 = require(\"./progressPart\");\nconst features_1 = require(\"./features\");\nconst diagnostic_1 = require(\"./diagnostic\");\nconst notebook_1 = require(\"./notebook\");\nconst configuration_1 = require(\"./configuration\");\nconst textSynchronization_1 = require(\"./textSynchronization\");\nconst completion_1 = require(\"./completion\");\nconst hover_1 = require(\"./hover\");\nconst definition_1 = require(\"./definition\");\nconst signatureHelp_1 = require(\"./signatureHelp\");\nconst documentHighlight_1 = require(\"./documentHighlight\");\nconst documentSymbol_1 = require(\"./documentSymbol\");\nconst workspaceSymbol_1 = require(\"./workspaceSymbol\");\nconst reference_1 = require(\"./reference\");\nconst codeAction_1 = require(\"./codeAction\");\nconst codeLens_1 = require(\"./codeLens\");\nconst formatting_1 = require(\"./formatting\");\nconst rename_1 = require(\"./rename\");\nconst documentLink_1 = require(\"./documentLink\");\nconst executeCommand_1 = require(\"./executeCommand\");\nconst fileSystemWatcher_1 = require(\"./fileSystemWatcher\");\nconst colorProvider_1 = require(\"./colorProvider\");\nconst implementation_1 = require(\"./implementation\");\nconst typeDefinition_1 = require(\"./typeDefinition\");\nconst workspaceFolder_1 = require(\"./workspaceFolder\");\nconst foldingRange_1 = require(\"./foldingRange\");\nconst declaration_1 = require(\"./declaration\");\nconst selectionRange_1 = require(\"./selectionRange\");\nconst progress_1 = require(\"./progress\");\nconst callHierarchy_1 = require(\"./callHierarchy\");\nconst semanticTokens_1 = require(\"./semanticTokens\");\nconst fileOperations_1 = require(\"./fileOperations\");\nconst linkedEditingRange_1 = require(\"./linkedEditingRange\");\nconst typeHierarchy_1 = require(\"./typeHierarchy\");\nconst inlineValue_1 = require(\"./inlineValue\");\nconst inlayHint_1 = require(\"./inlayHint\");\n/**\n * Controls when the output channel is revealed.\n */\nvar RevealOutputChannelOn;\n(function (RevealOutputChannelOn) {\n RevealOutputChannelOn[RevealOutputChannelOn[\"Info\"] = 1] = \"Info\";\n RevealOutputChannelOn[RevealOutputChannelOn[\"Warn\"] = 2] = \"Warn\";\n RevealOutputChannelOn[RevealOutputChannelOn[\"Error\"] = 3] = \"Error\";\n RevealOutputChannelOn[RevealOutputChannelOn[\"Never\"] = 4] = \"Never\";\n})(RevealOutputChannelOn = exports.RevealOutputChannelOn || (exports.RevealOutputChannelOn = {}));\n/**\n * An action to be performed when the connection is producing errors.\n */\nvar ErrorAction;\n(function (ErrorAction) {\n /**\n * Continue running the server.\n */\n ErrorAction[ErrorAction[\"Continue\"] = 1] = \"Continue\";\n /**\n * Shutdown the server.\n */\n ErrorAction[ErrorAction[\"Shutdown\"] = 2] = \"Shutdown\";\n})(ErrorAction = exports.ErrorAction || (exports.ErrorAction = {}));\n/**\n * An action to be performed when the connection to a server got closed.\n */\nvar CloseAction;\n(function (CloseAction) {\n /**\n * Don't restart the server. The connection stays closed.\n */\n CloseAction[CloseAction[\"DoNotRestart\"] = 1] = \"DoNotRestart\";\n /**\n * Restart the server.\n */\n CloseAction[CloseAction[\"Restart\"] = 2] = \"Restart\";\n})(CloseAction = exports.CloseAction || (exports.CloseAction = {}));\n/**\n * Signals in which state the language client is in.\n */\nvar State;\n(function (State) {\n /**\n * The client is stopped or got never started.\n */\n State[State[\"Stopped\"] = 1] = \"Stopped\";\n /**\n * The client is starting but not ready yet.\n */\n State[State[\"Starting\"] = 3] = \"Starting\";\n /**\n * The client is running and ready.\n */\n State[State[\"Running\"] = 2] = \"Running\";\n})(State = exports.State || (exports.State = {}));\nvar SuspendMode;\n(function (SuspendMode) {\n /**\n * Don't allow suspend mode.\n */\n SuspendMode[\"off\"] = \"off\";\n /**\n * Support suspend mode even if not all\n * registered providers have a corresponding\n * activation listener.\n */\n SuspendMode[\"on\"] = \"on\";\n})(SuspendMode = exports.SuspendMode || (exports.SuspendMode = {}));\nclass DefaultErrorHandler {\n constructor(client, maxRestartCount) {\n this.client = client;\n this.maxRestartCount = maxRestartCount;\n this.restarts = [];\n }\n error(_error, _message, count) {\n if (count && count <= 3) {\n return { action: ErrorAction.Continue };\n }\n return { action: ErrorAction.Shutdown };\n }\n closed() {\n this.restarts.push(Date.now());\n if (this.restarts.length <= this.maxRestartCount) {\n return { action: CloseAction.Restart };\n }\n else {\n let diff = this.restarts[this.restarts.length - 1] - this.restarts[0];\n if (diff <= 3 * 60 * 1000) {\n return { action: CloseAction.DoNotRestart, message: `The ${this.client.name} server crashed ${this.maxRestartCount + 1} times in the last 3 minutes. The server will not be restarted. See the output for more information.` };\n }\n else {\n this.restarts.shift();\n return { action: CloseAction.Restart };\n }\n }\n }\n}\nvar ClientState;\n(function (ClientState) {\n ClientState[\"Initial\"] = \"initial\";\n ClientState[\"Starting\"] = \"starting\";\n ClientState[\"StartFailed\"] = \"startFailed\";\n ClientState[\"Running\"] = \"running\";\n ClientState[\"Stopping\"] = \"stopping\";\n ClientState[\"Stopped\"] = \"stopped\";\n})(ClientState || (ClientState = {}));\nvar MessageTransports;\n(function (MessageTransports) {\n function is(value) {\n let candidate = value;\n return candidate && vscode_languageserver_protocol_1.MessageReader.is(value.reader) && vscode_languageserver_protocol_1.MessageWriter.is(value.writer);\n }\n MessageTransports.is = is;\n})(MessageTransports = exports.MessageTransports || (exports.MessageTransports = {}));\nclass BaseLanguageClient {\n constructor(id, name, clientOptions) {\n this._traceFormat = vscode_languageserver_protocol_1.TraceFormat.Text;\n this._diagnosticQueue = new Map();\n this._diagnosticQueueState = { state: 'idle' };\n this._features = [];\n this._dynamicFeatures = new Map();\n this.workspaceEditLock = new async_1.Semaphore(1);\n this._id = id;\n this._name = name;\n clientOptions = clientOptions || {};\n const markdown = { isTrusted: false, supportHtml: false };\n if (clientOptions.markdown !== undefined) {\n markdown.isTrusted = clientOptions.markdown.isTrusted === true;\n markdown.supportHtml = clientOptions.markdown.supportHtml === true;\n }\n // const defaultInterval = (clientOptions as TestOptions).$testMode ? 50 : 60000;\n this._clientOptions = {\n documentSelector: clientOptions.documentSelector ?? [],\n synchronize: clientOptions.synchronize ?? {},\n diagnosticCollectionName: clientOptions.diagnosticCollectionName,\n outputChannelName: clientOptions.outputChannelName ?? this._name,\n revealOutputChannelOn: clientOptions.revealOutputChannelOn ?? RevealOutputChannelOn.Error,\n stdioEncoding: clientOptions.stdioEncoding ?? 'utf8',\n initializationOptions: clientOptions.initializationOptions,\n initializationFailedHandler: clientOptions.initializationFailedHandler,\n progressOnInitialization: !!clientOptions.progressOnInitialization,\n errorHandler: clientOptions.errorHandler ?? this.createDefaultErrorHandler(clientOptions.connectionOptions?.maxRestartCount),\n middleware: clientOptions.middleware ?? {},\n uriConverters: clientOptions.uriConverters,\n workspaceFolder: clientOptions.workspaceFolder,\n connectionOptions: clientOptions.connectionOptions,\n markdown,\n // suspend: {\n // \tmode: clientOptions.suspend?.mode ?? SuspendMode.off,\n // \tcallback: clientOptions.suspend?.callback ?? (() => Promise.resolve(true)),\n // \tinterval: clientOptions.suspend?.interval ? Math.max(clientOptions.suspend.interval, defaultInterval) : defaultInterval\n // },\n diagnosticPullOptions: clientOptions.diagnosticPullOptions ?? { onChange: true, onSave: false },\n notebookDocumentOptions: clientOptions.notebookDocumentOptions ?? {}\n };\n this._clientOptions.synchronize = this._clientOptions.synchronize || {};\n this._state = ClientState.Initial;\n this._ignoredRegistrations = new Set();\n this._listeners = [];\n this._notificationHandlers = new Map();\n this._pendingNotificationHandlers = new Map();\n this._notificationDisposables = new Map();\n this._requestHandlers = new Map();\n this._pendingRequestHandlers = new Map();\n this._requestDisposables = new Map();\n this._progressHandlers = new Map();\n this._pendingProgressHandlers = new Map();\n this._progressDisposables = new Map();\n this._connection = undefined;\n // this._idleStart = undefined;\n this._initializeResult = undefined;\n if (clientOptions.outputChannel) {\n this._outputChannel = clientOptions.outputChannel;\n this._disposeOutputChannel = false;\n }\n else {\n this._outputChannel = undefined;\n this._disposeOutputChannel = true;\n }\n this._traceOutputChannel = clientOptions.traceOutputChannel;\n this._diagnostics = undefined;\n this._fileEvents = [];\n this._fileEventDelayer = new async_1.Delayer(250);\n this._onStop = undefined;\n this._telemetryEmitter = new vscode_languageserver_protocol_1.Emitter();\n this._stateChangeEmitter = new vscode_languageserver_protocol_1.Emitter();\n this._trace = vscode_languageserver_protocol_1.Trace.Off;\n this._tracer = {\n log: (messageOrDataObject, data) => {\n if (Is.string(messageOrDataObject)) {\n this.logTrace(messageOrDataObject, data);\n }\n else {\n this.logObjectTrace(messageOrDataObject);\n }\n },\n };\n this._c2p = c2p.createConverter(clientOptions.uriConverters ? clientOptions.uriConverters.code2Protocol : undefined);\n this._p2c = p2c.createConverter(clientOptions.uriConverters ? clientOptions.uriConverters.protocol2Code : undefined, this._clientOptions.markdown.isTrusted, this._clientOptions.markdown.supportHtml);\n this._syncedDocuments = new Map();\n this.registerBuiltinFeatures();\n }\n get name() {\n return this._name;\n }\n get middleware() {\n return this._clientOptions.middleware ?? Object.create(null);\n }\n get clientOptions() {\n return this._clientOptions;\n }\n get protocol2CodeConverter() {\n return this._p2c;\n }\n get code2ProtocolConverter() {\n return this._c2p;\n }\n get onTelemetry() {\n return this._telemetryEmitter.event;\n }\n get onDidChangeState() {\n return this._stateChangeEmitter.event;\n }\n get outputChannel() {\n if (!this._outputChannel) {\n this._outputChannel = vscode_1.window.createOutputChannel(this._clientOptions.outputChannelName ? this._clientOptions.outputChannelName : this._name);\n }\n return this._outputChannel;\n }\n get traceOutputChannel() {\n if (this._traceOutputChannel) {\n return this._traceOutputChannel;\n }\n return this.outputChannel;\n }\n get diagnostics() {\n return this._diagnostics;\n }\n get state() {\n return this.getPublicState();\n }\n get $state() {\n return this._state;\n }\n set $state(value) {\n let oldState = this.getPublicState();\n this._state = value;\n let newState = this.getPublicState();\n if (newState !== oldState) {\n this._stateChangeEmitter.fire({ oldState, newState });\n }\n }\n getPublicState() {\n switch (this.$state) {\n case ClientState.Starting:\n return State.Starting;\n case ClientState.Running:\n return State.Running;\n default:\n return State.Stopped;\n }\n }\n get initializeResult() {\n return this._initializeResult;\n }\n async sendRequest(type, ...params) {\n if (this.$state === ClientState.StartFailed || this.$state === ClientState.Stopping || this.$state === ClientState.Stopped) {\n return Promise.reject(new vscode_languageserver_protocol_1.ResponseError(vscode_languageserver_protocol_1.ErrorCodes.ConnectionInactive, `Client is not running`));\n }\n try {\n // Ensure we have a connection before we force the document sync.\n const connection = await this.$start();\n await this.forceDocumentSync();\n return connection.sendRequest(type, ...params);\n }\n catch (error) {\n this.error(`Sending request ${Is.string(type) ? type : type.method} failed.`, error);\n throw error;\n }\n }\n onRequest(type, handler) {\n const method = typeof type === 'string' ? type : type.method;\n this._requestHandlers.set(method, handler);\n const connection = this.activeConnection();\n let disposable;\n if (connection !== undefined) {\n this._requestDisposables.set(method, connection.onRequest(type, handler));\n disposable = {\n dispose: () => {\n const disposable = this._requestDisposables.get(method);\n if (disposable !== undefined) {\n disposable.dispose();\n this._requestDisposables.delete(method);\n }\n }\n };\n }\n else {\n this._pendingRequestHandlers.set(method, handler);\n disposable = {\n dispose: () => {\n this._pendingRequestHandlers.delete(method);\n const disposable = this._requestDisposables.get(method);\n if (disposable !== undefined) {\n disposable.dispose();\n this._requestDisposables.delete(method);\n }\n }\n };\n }\n return {\n dispose: () => {\n this._requestHandlers.delete(method);\n disposable.dispose();\n }\n };\n }\n async sendNotification(type, params) {\n if (this.$state === ClientState.StartFailed || this.$state === ClientState.Stopping || this.$state === ClientState.Stopped) {\n return Promise.reject(new vscode_languageserver_protocol_1.ResponseError(vscode_languageserver_protocol_1.ErrorCodes.ConnectionInactive, `Client is not running`));\n }\n try {\n // Ensure we have a connection before we force the document sync.\n const connection = await this.$start();\n await this.forceDocumentSync();\n return connection.sendNotification(type, params);\n }\n catch (error) {\n this.error(`Sending notification ${Is.string(type) ? type : type.method} failed.`, error);\n throw error;\n }\n }\n onNotification(type, handler) {\n const method = typeof type === 'string' ? type : type.method;\n this._notificationHandlers.set(method, handler);\n const connection = this.activeConnection();\n let disposable;\n if (connection !== undefined) {\n this._notificationDisposables.set(method, connection.onNotification(type, handler));\n disposable = {\n dispose: () => {\n const disposable = this._notificationDisposables.get(method);\n if (disposable !== undefined) {\n disposable.dispose();\n this._notificationDisposables.delete(method);\n }\n }\n };\n }\n else {\n this._pendingNotificationHandlers.set(method, handler);\n disposable = {\n dispose: () => {\n this._pendingNotificationHandlers.delete(method);\n const disposable = this._notificationDisposables.get(method);\n if (disposable !== undefined) {\n disposable.dispose();\n this._notificationDisposables.delete(method);\n }\n }\n };\n }\n return {\n dispose: () => {\n this._notificationHandlers.delete(method);\n disposable.dispose();\n }\n };\n }\n async sendProgress(type, token, value) {\n if (this.$state === ClientState.StartFailed || this.$state === ClientState.Stopping || this.$state === ClientState.Stopped) {\n return Promise.reject(new vscode_languageserver_protocol_1.ResponseError(vscode_languageserver_protocol_1.ErrorCodes.ConnectionInactive, `Client is not running`));\n }\n try {\n // Ensure we have a connection before we force the document sync.\n const connection = await this.$start();\n return connection.sendProgress(type, token, value);\n }\n catch (error) {\n this.error(`Sending progress for token ${token} failed.`, error);\n throw error;\n }\n }\n onProgress(type, token, handler) {\n this._progressHandlers.set(token, { type, handler });\n const connection = this.activeConnection();\n let disposable;\n const handleWorkDoneProgress = this._clientOptions.middleware?.handleWorkDoneProgress;\n const realHandler = vscode_languageserver_protocol_1.WorkDoneProgress.is(type) && handleWorkDoneProgress !== undefined\n ? (params) => {\n handleWorkDoneProgress(token, params, () => handler(params));\n }\n : handler;\n if (connection !== undefined) {\n this._progressDisposables.set(token, connection.onProgress(type, token, realHandler));\n disposable = {\n dispose: () => {\n const disposable = this._progressDisposables.get(token);\n if (disposable !== undefined) {\n disposable.dispose();\n this._progressDisposables.delete(token);\n }\n }\n };\n }\n else {\n this._pendingProgressHandlers.set(token, { type, handler });\n disposable = {\n dispose: () => {\n this._pendingProgressHandlers.delete(token);\n const disposable = this._progressDisposables.get(token);\n if (disposable !== undefined) {\n disposable.dispose();\n this._progressDisposables.delete(token);\n }\n }\n };\n }\n return {\n dispose: () => {\n this._progressHandlers.delete(token);\n disposable.dispose();\n }\n };\n }\n createDefaultErrorHandler(maxRestartCount) {\n if (maxRestartCount !== undefined && maxRestartCount < 0) {\n throw new Error(`Invalid maxRestartCount: ${maxRestartCount}`);\n }\n return new DefaultErrorHandler(this, maxRestartCount ?? 4);\n }\n async setTrace(value) {\n this._trace = value;\n const connection = this.activeConnection();\n if (connection !== undefined) {\n await connection.trace(this._trace, this._tracer, {\n sendNotification: false,\n traceFormat: this._traceFormat\n });\n }\n }\n data2String(data) {\n if (data instanceof vscode_languageserver_protocol_1.ResponseError) {\n const responseError = data;\n return ` Message: ${responseError.message}\\n Code: ${responseError.code} ${responseError.data ? '\\n' + responseError.data.toString() : ''}`;\n }\n if (data instanceof Error) {\n if (Is.string(data.stack)) {\n return data.stack;\n }\n return data.message;\n }\n if (Is.string(data)) {\n return data;\n }\n return data.toString();\n }\n info(message, data, showNotification = true) {\n this.outputChannel.appendLine(`[Info - ${(new Date().toLocaleTimeString())}] ${message}`);\n if (data !== null && data !== undefined) {\n this.outputChannel.appendLine(this.data2String(data));\n }\n if (showNotification && this._clientOptions.revealOutputChannelOn <= RevealOutputChannelOn.Info) {\n this.showNotificationMessage(vscode_languageserver_protocol_1.MessageType.Info, message);\n }\n }\n warn(message, data, showNotification = true) {\n this.outputChannel.appendLine(`[Warn - ${(new Date().toLocaleTimeString())}] ${message}`);\n if (data !== null && data !== undefined) {\n this.outputChannel.appendLine(this.data2String(data));\n }\n if (showNotification && this._clientOptions.revealOutputChannelOn <= RevealOutputChannelOn.Warn) {\n this.showNotificationMessage(vscode_languageserver_protocol_1.MessageType.Warning, message);\n }\n }\n error(message, data, showNotification = true) {\n this.outputChannel.appendLine(`[Error - ${(new Date().toLocaleTimeString())}] ${message}`);\n if (data !== null && data !== undefined) {\n this.outputChannel.appendLine(this.data2String(data));\n }\n if (showNotification === 'force' || (showNotification && this._clientOptions.revealOutputChannelOn <= RevealOutputChannelOn.Error)) {\n this.showNotificationMessage(vscode_languageserver_protocol_1.MessageType.Error, message);\n }\n }\n showNotificationMessage(type, message) {\n message = message ?? 'A request has failed. See the output for more information.';\n const messageFunc = type === vscode_languageserver_protocol_1.MessageType.Error\n ? vscode_1.window.showErrorMessage\n : type === vscode_languageserver_protocol_1.MessageType.Warning\n ? vscode_1.window.showWarningMessage\n : vscode_1.window.showInformationMessage;\n void messageFunc(message, 'Go to output').then((selection) => {\n if (selection !== undefined) {\n this.outputChannel.show(true);\n }\n });\n }\n logTrace(message, data) {\n this.traceOutputChannel.appendLine(`[Trace - ${(new Date().toLocaleTimeString())}] ${message}`);\n if (data) {\n this.traceOutputChannel.appendLine(this.data2String(data));\n }\n }\n logObjectTrace(data) {\n if (data.isLSPMessage && data.type) {\n this.traceOutputChannel.append(`[LSP - ${(new Date().toLocaleTimeString())}] `);\n }\n else {\n this.traceOutputChannel.append(`[Trace - ${(new Date().toLocaleTimeString())}] `);\n }\n if (data) {\n this.traceOutputChannel.appendLine(`${JSON.stringify(data)}`);\n }\n }\n needsStart() {\n return this.$state === ClientState.Initial || this.$state === ClientState.Stopping || this.$state === ClientState.Stopped;\n }\n needsStop() {\n return this.$state === ClientState.Starting || this.$state === ClientState.Running;\n }\n activeConnection() {\n return this.$state === ClientState.Running && this._connection !== undefined ? this._connection : undefined;\n }\n isRunning() {\n return this.$state === ClientState.Running;\n }\n async start() {\n if (this._disposed === 'disposing' || this._disposed === 'disposed') {\n throw new Error(`Client got disposed and can't be restarted.`);\n }\n if (this.$state === ClientState.Stopping) {\n throw new Error(`Client is currently stopping. Can only restart a full stopped client`);\n }\n // We are already running or are in the process of getting up\n // to speed.\n if (this._onStart !== undefined) {\n return this._onStart;\n }\n const [promise, resolve, reject] = this.createOnStartPromise();\n this._onStart = promise;\n // If we restart then the diagnostics collection is reused.\n if (this._diagnostics === undefined) {\n this._diagnostics = this._clientOptions.diagnosticCollectionName\n ? vscode_1.languages.createDiagnosticCollection(this._clientOptions.diagnosticCollectionName)\n : vscode_1.languages.createDiagnosticCollection();\n }\n // When we start make all buffer handlers pending so that they\n // get added.\n for (const [method, handler] of this._notificationHandlers) {\n if (!this._pendingNotificationHandlers.has(method)) {\n this._pendingNotificationHandlers.set(method, handler);\n }\n }\n for (const [method, handler] of this._requestHandlers) {\n if (!this._pendingRequestHandlers.has(method)) {\n this._pendingRequestHandlers.set(method, handler);\n }\n }\n for (const [token, data] of this._progressHandlers) {\n if (!this._pendingProgressHandlers.has(token)) {\n this._pendingProgressHandlers.set(token, data);\n }\n }\n this.$state = ClientState.Starting;\n try {\n const connection = await this.createConnection();\n connection.onNotification(vscode_languageserver_protocol_1.LogMessageNotification.type, (message) => {\n switch (message.type) {\n case vscode_languageserver_protocol_1.MessageType.Error:\n this.error(message.message, undefined, false);\n break;\n case vscode_languageserver_protocol_1.MessageType.Warning:\n this.warn(message.message, undefined, false);\n break;\n case vscode_languageserver_protocol_1.MessageType.Info:\n this.info(message.message, undefined, false);\n break;\n default:\n this.outputChannel.appendLine(message.message);\n }\n });\n connection.onNotification(vscode_languageserver_protocol_1.ShowMessageNotification.type, (message) => {\n switch (message.type) {\n case vscode_languageserver_protocol_1.MessageType.Error:\n void vscode_1.window.showErrorMessage(message.message);\n break;\n case vscode_languageserver_protocol_1.MessageType.Warning:\n void vscode_1.window.showWarningMessage(message.message);\n break;\n case vscode_languageserver_protocol_1.MessageType.Info:\n void vscode_1.window.showInformationMessage(message.message);\n break;\n default:\n void vscode_1.window.showInformationMessage(message.message);\n }\n });\n connection.onRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, (params) => {\n let messageFunc;\n switch (params.type) {\n case vscode_languageserver_protocol_1.MessageType.Error:\n messageFunc = vscode_1.window.showErrorMessage;\n break;\n case vscode_languageserver_protocol_1.MessageType.Warning:\n messageFunc = vscode_1.window.showWarningMessage;\n break;\n case vscode_languageserver_protocol_1.MessageType.Info:\n messageFunc = vscode_1.window.showInformationMessage;\n break;\n default:\n messageFunc = vscode_1.window.showInformationMessage;\n }\n let actions = params.actions || [];\n return messageFunc(params.message, ...actions);\n });\n connection.onNotification(vscode_languageserver_protocol_1.TelemetryEventNotification.type, (data) => {\n this._telemetryEmitter.fire(data);\n });\n connection.onRequest(vscode_languageserver_protocol_1.ShowDocumentRequest.type, async (params) => {\n const showDocument = async (params) => {\n const uri = this.protocol2CodeConverter.asUri(params.uri);\n try {\n if (params.external === true) {\n const success = await vscode_1.env.openExternal(uri);\n return { success };\n }\n else {\n const options = {};\n if (params.selection !== undefined) {\n options.selection = this.protocol2CodeConverter.asRange(params.selection);\n }\n if (params.takeFocus === undefined || params.takeFocus === false) {\n options.preserveFocus = true;\n }\n else if (params.takeFocus === true) {\n options.preserveFocus = false;\n }\n await vscode_1.window.showTextDocument(uri, options);\n return { success: true };\n }\n }\n catch (error) {\n return { success: false };\n }\n };\n const middleware = this._clientOptions.middleware.window?.showDocument;\n if (middleware !== undefined) {\n return middleware(params, showDocument);\n }\n else {\n return showDocument(params);\n }\n });\n connection.listen();\n await this.initialize(connection);\n resolve();\n }\n catch (error) {\n this.$state = ClientState.StartFailed;\n this.error(`${this._name} client: couldn't create connection to server.`, error, 'force');\n reject(error);\n }\n return this._onStart;\n }\n createOnStartPromise() {\n let resolve;\n let reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n return [promise, resolve, reject];\n }\n async initialize(connection) {\n this.refreshTrace(connection, false);\n const initOption = this._clientOptions.initializationOptions;\n // If the client is locked to a workspace folder use it. In this case the workspace folder\n // feature is not registered and we need to initialize the value here.\n const [rootPath, workspaceFolders] = this._clientOptions.workspaceFolder !== undefined\n ? [this._clientOptions.workspaceFolder.uri.fsPath, [{ uri: this._c2p.asUri(this._clientOptions.workspaceFolder.uri), name: this._clientOptions.workspaceFolder.name }]]\n : [this._clientGetRootPath(), null];\n const initParams = {\n processId: null,\n clientInfo: {\n name: vscode_1.env.appName,\n version: vscode_1.version\n },\n locale: this.getLocale(),\n rootPath: rootPath ? rootPath : null,\n rootUri: rootPath ? this._c2p.asUri(vscode_1.Uri.file(rootPath)) : null,\n capabilities: this.computeClientCapabilities(),\n initializationOptions: Is.func(initOption) ? initOption() : initOption,\n trace: vscode_languageserver_protocol_1.Trace.toString(this._trace),\n workspaceFolders: workspaceFolders\n };\n this.fillInitializeParams(initParams);\n if (this._clientOptions.progressOnInitialization) {\n const token = UUID.generateUuid();\n const part = new progressPart_1.ProgressPart(connection, token);\n initParams.workDoneToken = token;\n try {\n const result = await this.doInitialize(connection, initParams);\n part.done();\n return result;\n }\n catch (error) {\n part.cancel();\n throw error;\n }\n }\n else {\n return this.doInitialize(connection, initParams);\n }\n }\n async doInitialize(connection, initParams) {\n try {\n const result = await connection.initialize(initParams);\n if (result.capabilities.positionEncoding !== undefined && result.capabilities.positionEncoding !== vscode_languageserver_protocol_1.PositionEncodingKind.UTF16) {\n throw new Error(`Unsupported position encoding (${result.capabilities.positionEncoding}) received from server ${this.name}`);\n }\n this._initializeResult = result;\n this.$state = ClientState.Running;\n let textDocumentSyncOptions = undefined;\n if (Is.number(result.capabilities.textDocumentSync)) {\n if (result.capabilities.textDocumentSync === vscode_languageserver_protocol_1.TextDocumentSyncKind.None) {\n textDocumentSyncOptions = {\n openClose: false,\n change: vscode_languageserver_protocol_1.TextDocumentSyncKind.None,\n save: undefined\n };\n }\n else {\n textDocumentSyncOptions = {\n openClose: true,\n change: result.capabilities.textDocumentSync,\n save: {\n includeText: false\n }\n };\n }\n }\n else if (result.capabilities.textDocumentSync !== undefined && result.capabilities.textDocumentSync !== null) {\n textDocumentSyncOptions = result.capabilities.textDocumentSync;\n }\n this._capabilities = Object.assign({}, result.capabilities, { resolvedTextDocumentSync: textDocumentSyncOptions });\n connection.onNotification(vscode_languageserver_protocol_1.PublishDiagnosticsNotification.type, params => this.handleDiagnostics(params));\n connection.onRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params => this.handleRegistrationRequest(params));\n // See https://github.com/Microsoft/vscode-languageserver-node/issues/199\n connection.onRequest('client/registerFeature', params => this.handleRegistrationRequest(params));\n connection.onRequest(vscode_languageserver_protocol_1.UnregistrationRequest.type, params => this.handleUnregistrationRequest(params));\n // See https://github.com/Microsoft/vscode-languageserver-node/issues/199\n connection.onRequest('client/unregisterFeature', params => this.handleUnregistrationRequest(params));\n connection.onRequest(vscode_languageserver_protocol_1.ApplyWorkspaceEditRequest.type, params => this.handleApplyWorkspaceEdit(params));\n // Add pending notification, request and progress handlers.\n for (const [method, handler] of this._pendingNotificationHandlers) {\n this._notificationDisposables.set(method, connection.onNotification(method, handler));\n }\n this._pendingNotificationHandlers.clear();\n for (const [method, handler] of this._pendingRequestHandlers) {\n this._requestDisposables.set(method, connection.onRequest(method, handler));\n }\n this._pendingRequestHandlers.clear();\n for (const [token, data] of this._pendingProgressHandlers) {\n this._progressDisposables.set(token, connection.onProgress(data.type, token, data.handler));\n }\n this._pendingProgressHandlers.clear();\n // if (this._clientOptions.suspend.mode !== SuspendMode.off) {\n // \tthis._idleInterval = RAL().timer.setInterval(() => this.checkSuspend(), this._clientOptions.suspend.interval);\n // }\n await connection.sendNotification(vscode_languageserver_protocol_1.InitializedNotification.type, {});\n this.hookFileEvents(connection);\n this.hookConfigurationChanged(connection);\n this.initializeFeatures(connection);\n return result;\n }\n catch (error) {\n if (this._clientOptions.initializationFailedHandler) {\n if (this._clientOptions.initializationFailedHandler(error)) {\n void this.initialize(connection);\n }\n else {\n void this.stop();\n }\n }\n else if (error instanceof vscode_languageserver_protocol_1.ResponseError && error.data && error.data.retry) {\n void vscode_1.window.showErrorMessage(error.message, { title: 'Retry', id: 'retry' }).then(item => {\n if (item && item.id === 'retry') {\n void this.initialize(connection);\n }\n else {\n void this.stop();\n }\n });\n }\n else {\n if (error && error.message) {\n void vscode_1.window.showErrorMessage(error.message);\n }\n this.error('Server initialization failed.', error);\n void this.stop();\n }\n throw error;\n }\n }\n _clientGetRootPath() {\n let folders = vscode_1.workspace.workspaceFolders;\n if (!folders || folders.length === 0) {\n return undefined;\n }\n let folder = folders[0];\n if (folder.uri.scheme === 'file') {\n return folder.uri.fsPath;\n }\n return undefined;\n }\n stop(timeout = 2000) {\n // Wait 2 seconds on stop\n return this.shutdown('stop', timeout);\n }\n dispose(timeout = 2000) {\n try {\n this._disposed = 'disposing';\n return this.stop(timeout);\n }\n finally {\n this._disposed = 'disposed';\n }\n }\n async shutdown(mode, timeout) {\n // If the client is stopped or in its initial state return.\n if (this.$state === ClientState.Stopped || this.$state === ClientState.Initial) {\n return;\n }\n // If we are stopping the client and have a stop promise return it.\n if (this.$state === ClientState.Stopping) {\n if (this._onStop !== undefined) {\n return this._onStop;\n }\n else {\n throw new Error(`Client is stopping but no stop promise available.`);\n }\n }\n const connection = this.activeConnection();\n // We can't stop a client that is not running (e.g. has no connection). Especially not\n // on that us starting since it can't be correctly synchronized.\n if (connection === undefined || this.$state !== ClientState.Running) {\n throw new Error(`Client is not running and can't be stopped. It's current state is: ${this.$state}`);\n }\n this._initializeResult = undefined;\n this.$state = ClientState.Stopping;\n this.cleanUp(mode);\n const tp = new Promise(c => { (0, vscode_languageserver_protocol_1.RAL)().timer.setTimeout(c, timeout); });\n const shutdown = (async (connection) => {\n await connection.shutdown();\n await connection.exit();\n return connection;\n })(connection);\n return this._onStop = Promise.race([tp, shutdown]).then((connection) => {\n // The connection won the race with the timeout.\n if (connection !== undefined) {\n connection.end();\n connection.dispose();\n }\n else {\n this.error(`Stopping server timed out`, undefined, false);\n throw new Error(`Stopping the server timed out`);\n }\n }, (error) => {\n this.error(`Stopping server failed`, error, false);\n throw error;\n }).finally(() => {\n this.$state = ClientState.Stopped;\n mode === 'stop' && this.cleanUpChannel();\n this._onStart = undefined;\n this._onStop = undefined;\n this._connection = undefined;\n this._ignoredRegistrations.clear();\n });\n }\n cleanUp(mode) {\n // purge outstanding file events.\n this._fileEvents = [];\n this._fileEventDelayer.cancel();\n const disposables = this._listeners.splice(0, this._listeners.length);\n for (const disposable of disposables) {\n disposable.dispose();\n }\n if (this._syncedDocuments) {\n this._syncedDocuments.clear();\n }\n // Dispose features in reverse order;\n for (const feature of Array.from(this._features.entries()).map(entry => entry[1]).reverse()) {\n feature.dispose();\n }\n if (mode === 'stop' && this._diagnostics !== undefined) {\n this._diagnostics.dispose();\n this._diagnostics = undefined;\n }\n if (this._idleInterval !== undefined) {\n this._idleInterval.dispose();\n this._idleInterval = undefined;\n }\n // this._idleStart = undefined;\n }\n cleanUpChannel() {\n if (this._outputChannel !== undefined && this._disposeOutputChannel) {\n this._outputChannel.dispose();\n this._outputChannel = undefined;\n }\n }\n notifyFileEvent(event) {\n const client = this;\n async function didChangeWatchedFile(event) {\n client._fileEvents.push(event);\n return client._fileEventDelayer.trigger(async () => {\n const connection = await client.$start();\n await client.forceDocumentSync();\n const result = connection.sendNotification(vscode_languageserver_protocol_1.DidChangeWatchedFilesNotification.type, { changes: client._fileEvents });\n client._fileEvents = [];\n return result;\n });\n }\n const workSpaceMiddleware = this.clientOptions.middleware?.workspace;\n (workSpaceMiddleware?.didChangeWatchedFile ? workSpaceMiddleware.didChangeWatchedFile(event, didChangeWatchedFile) : didChangeWatchedFile(event)).catch((error) => {\n client.error(`Notify file events failed.`, error);\n });\n }\n async forceDocumentSync() {\n if (this._didChangeTextDocumentFeature === undefined) {\n this._didChangeTextDocumentFeature = this._dynamicFeatures.get(vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.type.method);\n }\n return this._didChangeTextDocumentFeature.forceDelivery();\n }\n handleDiagnostics(params) {\n if (!this._diagnostics) {\n return;\n }\n const key = params.uri;\n if (this._diagnosticQueueState.state === 'busy' && this._diagnosticQueueState.document === key) {\n // Cancel the active run;\n this._diagnosticQueueState.tokenSource.cancel();\n }\n this._diagnosticQueue.set(params.uri, params.diagnostics);\n this.triggerDiagnosticQueue();\n }\n triggerDiagnosticQueue() {\n (0, vscode_languageserver_protocol_1.RAL)().timer.setImmediate(() => { this.workDiagnosticQueue(); });\n }\n workDiagnosticQueue() {\n if (this._diagnosticQueueState.state === 'busy') {\n return;\n }\n const next = this._diagnosticQueue.entries().next();\n if (next.done === true) {\n // Nothing in the queue\n return;\n }\n const [document, diagnostics] = next.value;\n this._diagnosticQueue.delete(document);\n const tokenSource = new vscode_1.CancellationTokenSource();\n this._diagnosticQueueState = { state: 'busy', document: document, tokenSource };\n this._p2c.asDiagnostics(diagnostics, tokenSource.token).then((converted) => {\n if (!tokenSource.token.isCancellationRequested) {\n const uri = this._p2c.asUri(document);\n const middleware = this.clientOptions.middleware;\n if (middleware.handleDiagnostics) {\n middleware.handleDiagnostics(uri, converted, (uri, diagnostics) => this.setDiagnostics(uri, diagnostics));\n }\n else {\n this.setDiagnostics(uri, converted);\n }\n }\n }).finally(() => {\n this._diagnosticQueueState = { state: 'idle' };\n this.triggerDiagnosticQueue();\n });\n }\n setDiagnostics(uri, diagnostics) {\n if (!this._diagnostics) {\n return;\n }\n this._diagnostics.set(uri, diagnostics);\n }\n async $start() {\n if (this.$state === ClientState.StartFailed) {\n throw new Error(`Previous start failed. Can't restart server.`);\n }\n await this.start();\n const connection = this.activeConnection();\n if (connection === undefined) {\n throw new Error(`Starting server failed`);\n }\n return connection;\n }\n async createConnection() {\n let errorHandler = (error, message, count) => {\n this.handleConnectionError(error, message, count);\n };\n let closeHandler = () => {\n this.handleConnectionClosed();\n };\n const transports = await this.createMessageTransports(this._clientOptions.stdioEncoding || 'utf8');\n this._connection = createConnection(transports.reader, transports.writer, errorHandler, closeHandler, this._clientOptions.connectionOptions);\n return this._connection;\n }\n handleConnectionClosed() {\n // Check whether this is a normal shutdown in progress or the client stopped normally.\n if (this.$state === ClientState.Stopped) {\n return;\n }\n try {\n if (this._connection !== undefined) {\n this._connection.dispose();\n }\n }\n catch (error) {\n // Disposing a connection could fail if error cases.\n }\n let handlerResult = { action: CloseAction.DoNotRestart };\n if (this.$state !== ClientState.Stopping) {\n try {\n handlerResult = this._clientOptions.errorHandler.closed();\n }\n catch (error) {\n // Ignore errors coming from the error handler.\n }\n }\n this._connection = undefined;\n if (handlerResult.action === CloseAction.DoNotRestart) {\n this.error(handlerResult.message ?? 'Connection to server got closed. Server will not be restarted.', undefined, 'force');\n this.cleanUp('stop');\n if (this.$state === ClientState.Starting) {\n this.$state = ClientState.StartFailed;\n }\n else {\n this.$state = ClientState.Stopped;\n }\n this._onStop = Promise.resolve();\n this._onStart = undefined;\n }\n else if (handlerResult.action === CloseAction.Restart) {\n this.info(handlerResult.message ?? 'Connection to server got closed. Server will restart.');\n this.cleanUp('restart');\n this.$state = ClientState.Initial;\n this._onStop = Promise.resolve();\n this._onStart = undefined;\n this.start().catch((error) => this.error(`Restarting server failed`, error, 'force'));\n }\n }\n handleConnectionError(error, message, count) {\n const handlerResult = this._clientOptions.errorHandler.error(error, message, count);\n if (handlerResult.action === ErrorAction.Shutdown) {\n this.error(handlerResult.message ?? `Client ${this._name}: connection to server is erroring. Shutting down server.`, undefined, 'force');\n this.stop().catch((error) => {\n this.error(`Stopping server failed`, error, false);\n });\n }\n }\n hookConfigurationChanged(connection) {\n this._listeners.push(vscode_1.workspace.onDidChangeConfiguration(() => {\n this.refreshTrace(connection, true);\n }));\n }\n refreshTrace(connection, sendNotification = false) {\n const config = vscode_1.workspace.getConfiguration(this._id);\n let trace = vscode_languageserver_protocol_1.Trace.Off;\n let traceFormat = vscode_languageserver_protocol_1.TraceFormat.Text;\n if (config) {\n const traceConfig = config.get('trace.server', 'off');\n if (typeof traceConfig === 'string') {\n trace = vscode_languageserver_protocol_1.Trace.fromString(traceConfig);\n }\n else {\n trace = vscode_languageserver_protocol_1.Trace.fromString(config.get('trace.server.verbosity', 'off'));\n traceFormat = vscode_languageserver_protocol_1.TraceFormat.fromString(config.get('trace.server.format', 'text'));\n }\n }\n this._trace = trace;\n this._traceFormat = traceFormat;\n connection.trace(this._trace, this._tracer, {\n sendNotification,\n traceFormat: this._traceFormat\n }).catch((error) => { this.error(`Updating trace failed with error`, error, false); });\n }\n hookFileEvents(_connection) {\n let fileEvents = this._clientOptions.synchronize.fileEvents;\n if (!fileEvents) {\n return;\n }\n let watchers;\n if (Is.array(fileEvents)) {\n watchers = fileEvents;\n }\n else {\n watchers = [fileEvents];\n }\n if (!watchers) {\n return;\n }\n this._dynamicFeatures.get(vscode_languageserver_protocol_1.DidChangeWatchedFilesNotification.type.method).registerRaw(UUID.generateUuid(), watchers);\n }\n registerFeatures(features) {\n for (let feature of features) {\n this.registerFeature(feature);\n }\n }\n registerFeature(feature) {\n this._features.push(feature);\n if (features_1.DynamicFeature.is(feature)) {\n const registrationType = feature.registrationType;\n this._dynamicFeatures.set(registrationType.method, feature);\n }\n }\n getFeature(request) {\n return this._dynamicFeatures.get(request);\n }\n hasDedicatedTextSynchronizationFeature(textDocument) {\n const feature = this.getFeature(vscode_languageserver_protocol_1.NotebookDocumentSyncRegistrationType.method);\n if (feature === undefined || !(feature instanceof notebook_1.NotebookDocumentSyncFeature)) {\n return false;\n }\n return feature.handles(textDocument);\n }\n registerBuiltinFeatures() {\n this.registerFeature(new configuration_1.ConfigurationFeature(this));\n this.registerFeature(new textSynchronization_1.DidOpenTextDocumentFeature(this, this._syncedDocuments));\n this.registerFeature(new textSynchronization_1.DidChangeTextDocumentFeature(this));\n this.registerFeature(new textSynchronization_1.WillSaveFeature(this));\n this.registerFeature(new textSynchronization_1.WillSaveWaitUntilFeature(this));\n this.registerFeature(new textSynchronization_1.DidSaveTextDocumentFeature(this));\n this.registerFeature(new textSynchronization_1.DidCloseTextDocumentFeature(this, this._syncedDocuments));\n this.registerFeature(new fileSystemWatcher_1.FileSystemWatcherFeature(this, (event) => this.notifyFileEvent(event)));\n this.registerFeature(new completion_1.CompletionItemFeature(this));\n this.registerFeature(new hover_1.HoverFeature(this));\n this.registerFeature(new signatureHelp_1.SignatureHelpFeature(this));\n this.registerFeature(new definition_1.DefinitionFeature(this));\n this.registerFeature(new reference_1.ReferencesFeature(this));\n this.registerFeature(new documentHighlight_1.DocumentHighlightFeature(this));\n this.registerFeature(new documentSymbol_1.DocumentSymbolFeature(this));\n this.registerFeature(new workspaceSymbol_1.WorkspaceSymbolFeature(this));\n this.registerFeature(new codeAction_1.CodeActionFeature(this));\n this.registerFeature(new codeLens_1.CodeLensFeature(this));\n this.registerFeature(new formatting_1.DocumentFormattingFeature(this));\n this.registerFeature(new formatting_1.DocumentRangeFormattingFeature(this));\n this.registerFeature(new formatting_1.DocumentOnTypeFormattingFeature(this));\n this.registerFeature(new rename_1.RenameFeature(this));\n this.registerFeature(new documentLink_1.DocumentLinkFeature(this));\n this.registerFeature(new executeCommand_1.ExecuteCommandFeature(this));\n this.registerFeature(new configuration_1.SyncConfigurationFeature(this));\n this.registerFeature(new typeDefinition_1.TypeDefinitionFeature(this));\n this.registerFeature(new implementation_1.ImplementationFeature(this));\n this.registerFeature(new colorProvider_1.ColorProviderFeature(this));\n // We only register the workspace folder feature if the client is not locked\n // to a specific workspace folder.\n if (this.clientOptions.workspaceFolder === undefined) {\n this.registerFeature(new workspaceFolder_1.WorkspaceFoldersFeature(this));\n }\n this.registerFeature(new foldingRange_1.FoldingRangeFeature(this));\n this.registerFeature(new declaration_1.DeclarationFeature(this));\n this.registerFeature(new selectionRange_1.SelectionRangeFeature(this));\n this.registerFeature(new progress_1.ProgressFeature(this));\n this.registerFeature(new callHierarchy_1.CallHierarchyFeature(this));\n this.registerFeature(new semanticTokens_1.SemanticTokensFeature(this));\n this.registerFeature(new linkedEditingRange_1.LinkedEditingFeature(this));\n this.registerFeature(new fileOperations_1.DidCreateFilesFeature(this));\n this.registerFeature(new fileOperations_1.DidRenameFilesFeature(this));\n this.registerFeature(new fileOperations_1.DidDeleteFilesFeature(this));\n this.registerFeature(new fileOperations_1.WillCreateFilesFeature(this));\n this.registerFeature(new fileOperations_1.WillRenameFilesFeature(this));\n this.registerFeature(new fileOperations_1.WillDeleteFilesFeature(this));\n this.registerFeature(new typeHierarchy_1.TypeHierarchyFeature(this));\n this.registerFeature(new inlineValue_1.InlineValueFeature(this));\n this.registerFeature(new inlayHint_1.InlayHintsFeature(this));\n this.registerFeature(new diagnostic_1.DiagnosticFeature(this));\n this.registerFeature(new notebook_1.NotebookDocumentSyncFeature(this));\n }\n registerProposedFeatures() {\n this.registerFeatures(ProposedFeatures.createAll(this));\n }\n fillInitializeParams(params) {\n for (let feature of this._features) {\n if (Is.func(feature.fillInitializeParams)) {\n feature.fillInitializeParams(params);\n }\n }\n }\n computeClientCapabilities() {\n const result = {};\n (0, features_1.ensure)(result, 'workspace').applyEdit = true;\n const workspaceEdit = (0, features_1.ensure)((0, features_1.ensure)(result, 'workspace'), 'workspaceEdit');\n workspaceEdit.documentChanges = true;\n workspaceEdit.resourceOperations = [vscode_languageserver_protocol_1.ResourceOperationKind.Create, vscode_languageserver_protocol_1.ResourceOperationKind.Rename, vscode_languageserver_protocol_1.ResourceOperationKind.Delete];\n workspaceEdit.failureHandling = vscode_languageserver_protocol_1.FailureHandlingKind.TextOnlyTransactional;\n workspaceEdit.normalizesLineEndings = true;\n workspaceEdit.changeAnnotationSupport = {\n groupsOnLabel: true\n };\n const diagnostics = (0, features_1.ensure)((0, features_1.ensure)(result, 'textDocument'), 'publishDiagnostics');\n diagnostics.relatedInformation = true;\n diagnostics.versionSupport = false;\n diagnostics.tagSupport = { valueSet: [vscode_languageserver_protocol_1.DiagnosticTag.Unnecessary, vscode_languageserver_protocol_1.DiagnosticTag.Deprecated] };\n diagnostics.codeDescriptionSupport = true;\n diagnostics.dataSupport = true;\n const windowCapabilities = (0, features_1.ensure)(result, 'window');\n const showMessage = (0, features_1.ensure)(windowCapabilities, 'showMessage');\n showMessage.messageActionItem = { additionalPropertiesSupport: true };\n const showDocument = (0, features_1.ensure)(windowCapabilities, 'showDocument');\n showDocument.support = true;\n const generalCapabilities = (0, features_1.ensure)(result, 'general');\n generalCapabilities.staleRequestSupport = {\n cancel: true,\n retryOnContentModified: Array.from(BaseLanguageClient.RequestsToCancelOnContentModified)\n };\n generalCapabilities.regularExpressions = { engine: 'ECMAScript', version: 'ES2020' };\n generalCapabilities.markdown = {\n parser: 'marked',\n version: '1.1.0',\n };\n generalCapabilities.positionEncodings = ['utf-16'];\n if (this._clientOptions.markdown.supportHtml) {\n generalCapabilities.markdown.allowedTags = ['ul', 'li', 'p', 'code', 'blockquote', 'ol', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'em', 'pre', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'div', 'del', 'a', 'strong', 'br', 'img', 'span'];\n }\n for (let feature of this._features) {\n feature.fillClientCapabilities(result);\n }\n return result;\n }\n initializeFeatures(_connection) {\n const documentSelector = this._clientOptions.documentSelector;\n for (const feature of this._features) {\n if (Is.func(feature.preInitialize)) {\n feature.preInitialize(this._capabilities, documentSelector);\n }\n }\n for (const feature of this._features) {\n feature.initialize(this._capabilities, documentSelector);\n }\n }\n async handleRegistrationRequest(params) {\n // We will not receive a registration call before a client is running\n // from a server. However if we stop or shutdown we might which might\n // try to restart the server. So ignore registrations if we are not running\n if (!this.isRunning()) {\n for (const registration of params.registrations) {\n this._ignoredRegistrations.add(registration.id);\n }\n return;\n }\n for (const registration of params.registrations) {\n const feature = this._dynamicFeatures.get(registration.method);\n if (feature === undefined) {\n return Promise.reject(new Error(`No feature implementation for ${registration.method} found. Registration failed.`));\n }\n const options = registration.registerOptions ?? {};\n options.documentSelector = options.documentSelector ?? this._clientOptions.documentSelector;\n const data = {\n id: registration.id,\n registerOptions: options\n };\n try {\n feature.register(data);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n }\n async handleUnregistrationRequest(params) {\n for (let unregistration of params.unregisterations) {\n if (this._ignoredRegistrations.has(unregistration.id)) {\n continue;\n }\n const feature = this._dynamicFeatures.get(unregistration.method);\n if (!feature) {\n return Promise.reject(new Error(`No feature implementation for ${unregistration.method} found. Unregistration failed.`));\n }\n feature.unregister(unregistration.id);\n }\n }\n async handleApplyWorkspaceEdit(params) {\n const workspaceEdit = params.edit;\n // Make sure we convert workspace edits one after the other. Otherwise\n // we might execute a workspace edit received first after we received another\n // one since the conversion might race.\n const converted = await this.workspaceEditLock.lock(() => {\n return this._p2c.asWorkspaceEdit(workspaceEdit);\n });\n // This is some sort of workaround since the version check should be done by VS Code in the Workspace.applyEdit.\n // However doing it here adds some safety since the server can lag more behind then an extension.\n const openTextDocuments = new Map();\n vscode_1.workspace.textDocuments.forEach((document) => openTextDocuments.set(document.uri.toString(), document));\n let versionMismatch = false;\n if (workspaceEdit.documentChanges) {\n for (const change of workspaceEdit.documentChanges) {\n if (vscode_languageserver_protocol_1.TextDocumentEdit.is(change) && change.textDocument.version && change.textDocument.version >= 0) {\n const textDocument = openTextDocuments.get(change.textDocument.uri);\n if (textDocument && textDocument.version !== change.textDocument.version) {\n versionMismatch = true;\n break;\n }\n }\n }\n }\n if (versionMismatch) {\n return Promise.resolve({ applied: false });\n }\n return Is.asPromise(vscode_1.workspace.applyEdit(converted).then((value) => { return { applied: value }; }));\n }\n handleFailedRequest(type, token, error, defaultValue, showNotification = true) {\n // If we get a request cancel or a content modified don't log anything.\n if (error instanceof vscode_languageserver_protocol_1.ResponseError) {\n // The connection got disposed while we were waiting for a response.\n // Simply return the default value. Is the best we can do.\n if (error.code === vscode_languageserver_protocol_1.ErrorCodes.PendingResponseRejected || error.code === vscode_languageserver_protocol_1.ErrorCodes.ConnectionInactive) {\n return defaultValue;\n }\n if (error.code === vscode_languageserver_protocol_1.LSPErrorCodes.RequestCancelled || error.code === vscode_languageserver_protocol_1.LSPErrorCodes.ServerCancelled) {\n if (token !== undefined && token.isCancellationRequested) {\n return defaultValue;\n }\n else {\n if (error.data !== undefined) {\n throw new features_1.LSPCancellationError(error.data);\n }\n else {\n throw new vscode_1.CancellationError();\n }\n }\n }\n else if (error.code === vscode_languageserver_protocol_1.LSPErrorCodes.ContentModified) {\n if (BaseLanguageClient.RequestsToCancelOnContentModified.has(type.method)) {\n throw new vscode_1.CancellationError();\n }\n else {\n return defaultValue;\n }\n }\n }\n this.error(`Request ${type.method} failed.`, error, showNotification);\n throw error;\n }\n}\nexports.BaseLanguageClient = BaseLanguageClient;\nBaseLanguageClient.RequestsToCancelOnContentModified = new Set([\n vscode_languageserver_protocol_1.SemanticTokensRequest.method,\n vscode_languageserver_protocol_1.SemanticTokensRangeRequest.method,\n vscode_languageserver_protocol_1.SemanticTokensDeltaRequest.method\n]);\nclass ConsoleLogger {\n error(message) {\n (0, vscode_languageserver_protocol_1.RAL)().console.error(message);\n }\n warn(message) {\n (0, vscode_languageserver_protocol_1.RAL)().console.warn(message);\n }\n info(message) {\n (0, vscode_languageserver_protocol_1.RAL)().console.info(message);\n }\n log(message) {\n (0, vscode_languageserver_protocol_1.RAL)().console.log(message);\n }\n}\nfunction createConnection(input, output, errorHandler, closeHandler, options) {\n let _lastUsed = -1;\n const logger = new ConsoleLogger();\n const connection = (0, vscode_languageserver_protocol_1.createProtocolConnection)(input, output, logger, options);\n connection.onError((data) => { errorHandler(data[0], data[1], data[2]); });\n connection.onClose(closeHandler);\n const result = {\n get lastUsed() {\n return _lastUsed;\n },\n resetLastUsed: () => {\n _lastUsed = -1;\n },\n listen: () => connection.listen(),\n sendRequest: (type, ...params) => {\n _lastUsed = Date.now();\n return connection.sendRequest(type, ...params);\n },\n onRequest: (type, handler) => connection.onRequest(type, handler),\n hasPendingResponse: () => connection.hasPendingResponse(),\n sendNotification: (type, params) => {\n _lastUsed = Date.now();\n return connection.sendNotification(type, params);\n },\n onNotification: (type, handler) => connection.onNotification(type, handler),\n onProgress: connection.onProgress,\n sendProgress: connection.sendProgress,\n trace: (value, tracer, sendNotificationOrTraceOptions) => {\n const defaultTraceOptions = {\n sendNotification: false,\n traceFormat: vscode_languageserver_protocol_1.TraceFormat.Text\n };\n if (sendNotificationOrTraceOptions === undefined) {\n return connection.trace(value, tracer, defaultTraceOptions);\n }\n else if (Is.boolean(sendNotificationOrTraceOptions)) {\n return connection.trace(value, tracer, sendNotificationOrTraceOptions);\n }\n else {\n return connection.trace(value, tracer, sendNotificationOrTraceOptions);\n }\n },\n initialize: (params) => {\n _lastUsed = Date.now();\n return connection.sendRequest(vscode_languageserver_protocol_1.InitializeRequest.type, params);\n },\n shutdown: () => {\n _lastUsed = Date.now();\n return connection.sendRequest(vscode_languageserver_protocol_1.ShutdownRequest.type, undefined);\n },\n exit: () => {\n _lastUsed = Date.now();\n return connection.sendNotification(vscode_languageserver_protocol_1.ExitNotification.type);\n },\n end: () => connection.end(),\n dispose: () => connection.dispose()\n };\n return result;\n}\n// Exporting proposed protocol.\nvar ProposedFeatures;\n(function (ProposedFeatures) {\n function createAll(_client) {\n let result = [];\n return result;\n }\n ProposedFeatures.createAll = createAll;\n})(ProposedFeatures = exports.ProposedFeatures || (exports.ProposedFeatures = {}));\n//# sourceMappingURL=client.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.terminate = void 0;\nconst cp = require(\"child_process\");\nconst path_1 = require(\"path\");\nconst isWindows = (process.platform === 'win32');\nconst isMacintosh = (process.platform === 'darwin');\nconst isLinux = (process.platform === 'linux');\nfunction terminate(process, cwd) {\n if (isWindows) {\n try {\n // This we run in Atom execFileSync is available.\n // Ignore stderr since this is otherwise piped to parent.stderr\n // which might be already closed.\n let options = {\n stdio: ['pipe', 'pipe', 'ignore']\n };\n if (cwd) {\n options.cwd = cwd;\n }\n cp.execFileSync('taskkill', ['/T', '/F', '/PID', process.pid.toString()], options);\n return true;\n }\n catch (err) {\n return false;\n }\n }\n else if (isLinux || isMacintosh) {\n try {\n var cmd = (0, path_1.join)(__dirname, 'terminateProcess.sh');\n var result = cp.spawnSync(cmd, [process.pid.toString()]);\n return result.error ? false : true;\n }\n catch (err) {\n return false;\n }\n }\n else {\n process.kill('SIGKILL');\n return true;\n }\n}\nexports.terminate = terminate;\n//# sourceMappingURL=processes.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');", "// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH,\n}\n", "const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n", "const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n", "// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((o, k) => {\n o[k] = true\n return o\n }, {})\nmodule.exports = parseOptions\n", "const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n", "const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n", "const { MAX_LENGTH } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n", "'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n", "'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n", "'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n", "const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n", "const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n", "const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n", "const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n", "const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n", "const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n", "const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n", "const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n", "const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false,\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n", "// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceTilde(c, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceCaret(c, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((c) => {\n return replaceXRange(c, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n", "const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\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 * ------------------------------------------------------------------------------------------ */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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.DiagnosticPullMode = exports.vsdiag = void 0;\n__exportStar(require(\"vscode-languageserver-protocol\"), exports);\n__exportStar(require(\"./features\"), exports);\nvar diagnostic_1 = require(\"./diagnostic\");\nObject.defineProperty(exports, \"vsdiag\", { enumerable: true, get: function () { return diagnostic_1.vsdiag; } });\nObject.defineProperty(exports, \"DiagnosticPullMode\", { enumerable: true, get: function () { return diagnostic_1.DiagnosticPullMode; } });\n__exportStar(require(\"./client\"), exports);\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 var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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.SettingMonitor = exports.LanguageClient = exports.TransportKind = void 0;\nconst cp = require(\"child_process\");\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst vscode_1 = require(\"vscode\");\nconst Is = require(\"../common/utils/is\");\nconst client_1 = require(\"../common/client\");\nconst processes_1 = require(\"./processes\");\nconst node_1 = require(\"vscode-languageserver-protocol/node\");\n// Import SemVer functions individually to avoid circular dependencies in SemVer\nconst semverParse = require(\"semver/functions/parse\");\nconst semverSatisfies = require(\"semver/functions/satisfies\");\n__exportStar(require(\"vscode-languageserver-protocol/node\"), exports);\n__exportStar(require(\"../common/api\"), exports);\nconst REQUIRED_VSCODE_VERSION = '^1.67.0'; // do not change format, updated by `updateVSCode` script\nvar TransportKind;\n(function (TransportKind) {\n TransportKind[TransportKind[\"stdio\"] = 0] = \"stdio\";\n TransportKind[TransportKind[\"ipc\"] = 1] = \"ipc\";\n TransportKind[TransportKind[\"pipe\"] = 2] = \"pipe\";\n TransportKind[TransportKind[\"socket\"] = 3] = \"socket\";\n})(TransportKind = exports.TransportKind || (exports.TransportKind = {}));\nvar Transport;\n(function (Transport) {\n function isSocket(value) {\n const candidate = value;\n return candidate && candidate.kind === TransportKind.socket && Is.number(candidate.port);\n }\n Transport.isSocket = isSocket;\n})(Transport || (Transport = {}));\nvar Executable;\n(function (Executable) {\n function is(value) {\n return Is.string(value.command);\n }\n Executable.is = is;\n})(Executable || (Executable = {}));\nvar NodeModule;\n(function (NodeModule) {\n function is(value) {\n return Is.string(value.module);\n }\n NodeModule.is = is;\n})(NodeModule || (NodeModule = {}));\nvar StreamInfo;\n(function (StreamInfo) {\n function is(value) {\n let candidate = value;\n return candidate && candidate.writer !== undefined && candidate.reader !== undefined;\n }\n StreamInfo.is = is;\n})(StreamInfo || (StreamInfo = {}));\nvar ChildProcessInfo;\n(function (ChildProcessInfo) {\n function is(value) {\n let candidate = value;\n return candidate && candidate.process !== undefined && typeof candidate.detached === 'boolean';\n }\n ChildProcessInfo.is = is;\n})(ChildProcessInfo || (ChildProcessInfo = {}));\nclass LanguageClient extends client_1.BaseLanguageClient {\n constructor(arg1, arg2, arg3, arg4, arg5) {\n let id;\n let name;\n let serverOptions;\n let clientOptions;\n let forceDebug;\n if (Is.string(arg2)) {\n id = arg1;\n name = arg2;\n serverOptions = arg3;\n clientOptions = arg4;\n forceDebug = !!arg5;\n }\n else {\n id = arg1.toLowerCase();\n name = arg1;\n serverOptions = arg2;\n clientOptions = arg3;\n forceDebug = arg4;\n }\n if (forceDebug === undefined) {\n forceDebug = false;\n }\n super(id, name, clientOptions);\n this._serverOptions = serverOptions;\n this._forceDebug = forceDebug;\n this._isInDebugMode = forceDebug;\n try {\n this.checkVersion();\n }\n catch (error) {\n if (Is.string(error.message)) {\n this.outputChannel.appendLine(error.message);\n }\n throw error;\n }\n }\n checkVersion() {\n const codeVersion = semverParse(vscode_1.version);\n if (!codeVersion) {\n throw new Error(`No valid VS Code version detected. Version string is: ${vscode_1.version}`);\n }\n // Remove the insider pre-release since we stay API compatible.\n if (codeVersion.prerelease && codeVersion.prerelease.length > 0) {\n codeVersion.prerelease = [];\n }\n if (!semverSatisfies(codeVersion, REQUIRED_VSCODE_VERSION)) {\n throw new Error(`The language client requires VS Code version ${REQUIRED_VSCODE_VERSION} but received version ${vscode_1.version}`);\n }\n }\n get isInDebugMode() {\n return this._isInDebugMode;\n }\n async restart() {\n await this.stop();\n // We are in debug mode. Wait a little before we restart\n // so that the debug port can be freed. We can safely ignore\n // the disposable returned from start since it will call\n // stop on the same client instance.\n if (this.isInDebugMode) {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n await this.start();\n }\n else {\n await this.start();\n }\n }\n stop(timeout = 2000) {\n return super.stop(timeout).finally(() => {\n if (this._serverProcess) {\n const toCheck = this._serverProcess;\n this._serverProcess = undefined;\n if (this._isDetached === undefined || !this._isDetached) {\n this.checkProcessDied(toCheck);\n }\n this._isDetached = undefined;\n }\n });\n }\n checkProcessDied(childProcess) {\n if (!childProcess || childProcess.pid === undefined) {\n return;\n }\n setTimeout(() => {\n // Test if the process is still alive. Throws an exception if not\n try {\n if (childProcess.pid !== undefined) {\n process.kill(childProcess.pid, 0);\n (0, processes_1.terminate)(childProcess);\n }\n }\n catch (error) {\n // All is fine.\n }\n }, 2000);\n }\n handleConnectionClosed() {\n this._serverProcess = undefined;\n super.handleConnectionClosed();\n }\n fillInitializeParams(params) {\n super.fillInitializeParams(params);\n if (params.processId === null) {\n params.processId = process.pid;\n }\n }\n createMessageTransports(encoding) {\n function getEnvironment(env, fork) {\n if (!env && !fork) {\n return undefined;\n }\n const result = Object.create(null);\n Object.keys(process.env).forEach(key => result[key] = process.env[key]);\n if (fork) {\n result['ELECTRON_RUN_AS_NODE'] = '1';\n result['ELECTRON_NO_ASAR'] = '1';\n }\n if (env) {\n Object.keys(env).forEach(key => result[key] = env[key]);\n }\n return result;\n }\n const debugStartWith = ['--debug=', '--debug-brk=', '--inspect=', '--inspect-brk='];\n const debugEquals = ['--debug', '--debug-brk', '--inspect', '--inspect-brk'];\n function startedInDebugMode() {\n let args = process.execArgv;\n if (args) {\n return args.some((arg) => {\n return debugStartWith.some(value => arg.startsWith(value)) ||\n debugEquals.some(value => arg === value);\n });\n }\n return false;\n }\n function assertStdio(process) {\n if (process.stdin === null || process.stdout === null || process.stderr === null) {\n throw new Error('Process created without stdio streams');\n }\n }\n const server = this._serverOptions;\n // We got a function.\n if (Is.func(server)) {\n return server().then((result) => {\n if (client_1.MessageTransports.is(result)) {\n this._isDetached = !!result.detached;\n return result;\n }\n else if (StreamInfo.is(result)) {\n this._isDetached = !!result.detached;\n return { reader: new node_1.StreamMessageReader(result.reader), writer: new node_1.StreamMessageWriter(result.writer) };\n }\n else {\n let cp;\n if (ChildProcessInfo.is(result)) {\n cp = result.process;\n this._isDetached = result.detached;\n }\n else {\n cp = result;\n this._isDetached = false;\n }\n cp.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n return { reader: new node_1.StreamMessageReader(cp.stdout), writer: new node_1.StreamMessageWriter(cp.stdin) };\n }\n });\n }\n let json;\n let runDebug = server;\n if (runDebug.run || runDebug.debug) {\n if (this._forceDebug || startedInDebugMode()) {\n json = runDebug.debug;\n this._isInDebugMode = true;\n }\n else {\n json = runDebug.run;\n this._isInDebugMode = false;\n }\n }\n else {\n json = server;\n }\n return this._getServerWorkingDir(json.options).then(serverWorkingDir => {\n if (NodeModule.is(json) && json.module) {\n let node = json;\n let transport = node.transport || TransportKind.stdio;\n if (node.runtime) {\n const args = [];\n const options = node.options ?? Object.create(null);\n if (options.execArgv) {\n options.execArgv.forEach(element => args.push(element));\n }\n args.push(node.module);\n if (node.args) {\n node.args.forEach(element => args.push(element));\n }\n const execOptions = Object.create(null);\n execOptions.cwd = serverWorkingDir;\n execOptions.env = getEnvironment(options.env, false);\n const runtime = this._getRuntimePath(node.runtime, serverWorkingDir);\n let pipeName = undefined;\n if (transport === TransportKind.ipc) {\n // exec options not correctly typed in lib\n execOptions.stdio = [null, null, null, 'ipc'];\n args.push('--node-ipc');\n }\n else if (transport === TransportKind.stdio) {\n args.push('--stdio');\n }\n else if (transport === TransportKind.pipe) {\n pipeName = (0, node_1.generateRandomPipeName)();\n args.push(`--pipe=${pipeName}`);\n }\n else if (Transport.isSocket(transport)) {\n args.push(`--socket=${transport.port}`);\n }\n args.push(`--clientProcessId=${process.pid.toString()}`);\n if (transport === TransportKind.ipc || transport === TransportKind.stdio) {\n const serverProcess = cp.spawn(runtime, args, execOptions);\n if (!serverProcess || !serverProcess.pid) {\n return handleChildProcessStartError(serverProcess, `Launching server using runtime ${runtime} failed.`);\n }\n this._serverProcess = serverProcess;\n serverProcess.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n if (transport === TransportKind.ipc) {\n serverProcess.stdout.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n return Promise.resolve({ reader: new node_1.IPCMessageReader(serverProcess), writer: new node_1.IPCMessageWriter(serverProcess) });\n }\n else {\n return Promise.resolve({ reader: new node_1.StreamMessageReader(serverProcess.stdout), writer: new node_1.StreamMessageWriter(serverProcess.stdin) });\n }\n }\n else if (transport === TransportKind.pipe) {\n return (0, node_1.createClientPipeTransport)(pipeName).then((transport) => {\n const process = cp.spawn(runtime, args, execOptions);\n if (!process || !process.pid) {\n return handleChildProcessStartError(process, `Launching server using runtime ${runtime} failed.`);\n }\n this._serverProcess = process;\n process.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n process.stdout.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n return transport.onConnected().then((protocol) => {\n return { reader: protocol[0], writer: protocol[1] };\n });\n });\n }\n else if (Transport.isSocket(transport)) {\n return (0, node_1.createClientSocketTransport)(transport.port).then((transport) => {\n const process = cp.spawn(runtime, args, execOptions);\n if (!process || !process.pid) {\n return handleChildProcessStartError(process, `Launching server using runtime ${runtime} failed.`);\n }\n this._serverProcess = process;\n process.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n process.stdout.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n return transport.onConnected().then((protocol) => {\n return { reader: protocol[0], writer: protocol[1] };\n });\n });\n }\n }\n else {\n let pipeName = undefined;\n return new Promise((resolve, reject) => {\n const args = (node.args && node.args.slice()) ?? [];\n if (transport === TransportKind.ipc) {\n args.push('--node-ipc');\n }\n else if (transport === TransportKind.stdio) {\n args.push('--stdio');\n }\n else if (transport === TransportKind.pipe) {\n pipeName = (0, node_1.generateRandomPipeName)();\n args.push(`--pipe=${pipeName}`);\n }\n else if (Transport.isSocket(transport)) {\n args.push(`--socket=${transport.port}`);\n }\n args.push(`--clientProcessId=${process.pid.toString()}`);\n const options = node.options ?? Object.create(null);\n options.env = getEnvironment(options.env, true);\n options.execArgv = options.execArgv || [];\n options.cwd = serverWorkingDir;\n options.silent = true;\n if (transport === TransportKind.ipc || transport === TransportKind.stdio) {\n const sp = cp.fork(node.module, args || [], options);\n assertStdio(sp);\n this._serverProcess = sp;\n sp.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n if (transport === TransportKind.ipc) {\n sp.stdout.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n resolve({ reader: new node_1.IPCMessageReader(this._serverProcess), writer: new node_1.IPCMessageWriter(this._serverProcess) });\n }\n else {\n resolve({ reader: new node_1.StreamMessageReader(sp.stdout), writer: new node_1.StreamMessageWriter(sp.stdin) });\n }\n }\n else if (transport === TransportKind.pipe) {\n (0, node_1.createClientPipeTransport)(pipeName).then((transport) => {\n const sp = cp.fork(node.module, args || [], options);\n assertStdio(sp);\n this._serverProcess = sp;\n sp.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n sp.stdout.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n transport.onConnected().then((protocol) => {\n resolve({ reader: protocol[0], writer: protocol[1] });\n }, reject);\n }, reject);\n }\n else if (Transport.isSocket(transport)) {\n (0, node_1.createClientSocketTransport)(transport.port).then((transport) => {\n const sp = cp.fork(node.module, args || [], options);\n assertStdio(sp);\n this._serverProcess = sp;\n sp.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n sp.stdout.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n transport.onConnected().then((protocol) => {\n resolve({ reader: protocol[0], writer: protocol[1] });\n }, reject);\n }, reject);\n }\n });\n }\n }\n else if (Executable.is(json) && json.command) {\n const command = json;\n const args = json.args !== undefined ? json.args.slice(0) : [];\n let pipeName = undefined;\n const transport = json.transport;\n if (transport === TransportKind.stdio) {\n args.push('--stdio');\n }\n else if (transport === TransportKind.pipe) {\n pipeName = (0, node_1.generateRandomPipeName)();\n args.push(`--pipe=${pipeName}`);\n }\n else if (Transport.isSocket(transport)) {\n args.push(`--socket=${transport.port}`);\n }\n else if (transport === TransportKind.ipc) {\n throw new Error(`Transport kind ipc is not support for command executable`);\n }\n const options = Object.assign({}, command.options);\n options.cwd = options.cwd || serverWorkingDir;\n if (transport === undefined || transport === TransportKind.stdio) {\n const serverProcess = cp.spawn(command.command, args, options);\n if (!serverProcess || !serverProcess.pid) {\n return handleChildProcessStartError(serverProcess, `Launching server using command ${command.command} failed.`);\n }\n serverProcess.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n this._serverProcess = serverProcess;\n this._isDetached = !!options.detached;\n return Promise.resolve({ reader: new node_1.StreamMessageReader(serverProcess.stdout), writer: new node_1.StreamMessageWriter(serverProcess.stdin) });\n }\n else if (transport === TransportKind.pipe) {\n return (0, node_1.createClientPipeTransport)(pipeName).then((transport) => {\n const serverProcess = cp.spawn(command.command, args, options);\n if (!serverProcess || !serverProcess.pid) {\n return handleChildProcessStartError(serverProcess, `Launching server using command ${command.command} failed.`);\n }\n this._serverProcess = serverProcess;\n this._isDetached = !!options.detached;\n serverProcess.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n serverProcess.stdout.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n return transport.onConnected().then((protocol) => {\n return { reader: protocol[0], writer: protocol[1] };\n });\n });\n }\n else if (Transport.isSocket(transport)) {\n return (0, node_1.createClientSocketTransport)(transport.port).then((transport) => {\n const serverProcess = cp.spawn(command.command, args, options);\n if (!serverProcess || !serverProcess.pid) {\n return handleChildProcessStartError(serverProcess, `Launching server using command ${command.command} failed.`);\n }\n this._serverProcess = serverProcess;\n this._isDetached = !!options.detached;\n serverProcess.stderr.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n serverProcess.stdout.on('data', data => this.outputChannel.append(Is.string(data) ? data : data.toString(encoding)));\n return transport.onConnected().then((protocol) => {\n return { reader: protocol[0], writer: protocol[1] };\n });\n });\n }\n }\n return Promise.reject(new Error(`Unsupported server configuration ` + JSON.stringify(server, null, 4)));\n });\n }\n _getRuntimePath(runtime, serverWorkingDirectory) {\n if (path.isAbsolute(runtime)) {\n return runtime;\n }\n const mainRootPath = this._mainGetRootPath();\n if (mainRootPath !== undefined) {\n const result = path.join(mainRootPath, runtime);\n if (fs.existsSync(result)) {\n return result;\n }\n }\n if (serverWorkingDirectory !== undefined) {\n const result = path.join(serverWorkingDirectory, runtime);\n if (fs.existsSync(result)) {\n return result;\n }\n }\n return runtime;\n }\n _mainGetRootPath() {\n let folders = vscode_1.workspace.workspaceFolders;\n if (!folders || folders.length === 0) {\n return undefined;\n }\n let folder = folders[0];\n if (folder.uri.scheme === 'file') {\n return folder.uri.fsPath;\n }\n return undefined;\n }\n _getServerWorkingDir(options) {\n let cwd = options && options.cwd;\n if (!cwd) {\n cwd = this.clientOptions.workspaceFolder\n ? this.clientOptions.workspaceFolder.uri.fsPath\n : this._mainGetRootPath();\n }\n if (cwd) {\n // make sure the folder exists otherwise creating the process will fail\n return new Promise(s => {\n fs.lstat(cwd, (err, stats) => {\n s(!err && stats.isDirectory() ? cwd : undefined);\n });\n });\n }\n return Promise.resolve(undefined);\n }\n getLocale() {\n const envValue = process.env['VSCODE_NLS_CONFIG'];\n if (envValue === undefined) {\n return 'en';\n }\n let config = undefined;\n try {\n config = JSON.parse(envValue);\n }\n catch (err) {\n }\n if (config === undefined || typeof config.locale !== 'string') {\n return 'en';\n }\n return config.locale;\n }\n}\nexports.LanguageClient = LanguageClient;\nclass SettingMonitor {\n constructor(_client, _setting) {\n this._client = _client;\n this._setting = _setting;\n this._listeners = [];\n }\n start() {\n vscode_1.workspace.onDidChangeConfiguration(this.onDidChangeConfiguration, this, this._listeners);\n this.onDidChangeConfiguration();\n return new vscode_1.Disposable(() => {\n if (this._client.needsStop()) {\n void this._client.stop();\n }\n });\n }\n onDidChangeConfiguration() {\n let index = this._setting.indexOf('.');\n let primary = index >= 0 ? this._setting.substr(0, index) : this._setting;\n let rest = index >= 0 ? this._setting.substr(index + 1) : undefined;\n let enabled = rest ? vscode_1.workspace.getConfiguration(primary).get(rest, false) : vscode_1.workspace.getConfiguration(primary);\n if (enabled && this._client.needsStart()) {\n this._client.start().catch((error) => this._client.error('Start failed after configuration change', error, 'force'));\n }\n else if (!enabled && this._client.needsStop()) {\n void this._client.stop().catch((error) => this._client.error('Stop failed after configuration change', error, 'force'));\n }\n }\n}\nexports.SettingMonitor = SettingMonitor;\nfunction handleChildProcessStartError(process, message) {\n if (process === null) {\n return Promise.reject(message);\n }\n return new Promise((_, reject) => {\n process.on('error', (err) => {\n reject(`${message} ${err}`);\n });\n // the error event should always be run immediately,\n // but race on it just in case\n setImmediate(() => reject(message));\n });\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 * as vscode from 'vscode';\nimport * as path from 'path';\nimport {\n LanguageClient,\n LanguageClientOptions,\n ServerOptions,\n TransportKind,\n} from 'vscode-languageclient/node';\n\nlet client: LanguageClient;\n\n// This function is called when the extension is activated.\nexport function activate(context: vscode.ExtensionContext): void {\n client = startLanguageClient(context);\n}\n\n// This function is called when the extension is deactivated.\nexport function deactivate(): Thenable<void> | undefined {\n if (client) {\n return client.stop();\n }\n return undefined;\n}\n\nfunction startLanguageClient(context: vscode.ExtensionContext): LanguageClient {\n const serverModule = context.asAbsolutePath(\n path.join('bundle', 'language-server', 'main')\n );\n // The debug options for the server\n // --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging.\n // By setting `process.env.DEBUG_BREAK` to a truthy value, the language server will wait until a debugger is attached.\n const debugOptions = {\n execArgv: [\n '--nolazy',\n `--inspect${process.env.DEBUG_BREAK ? '-brk' : ''}=${\n process.env.DEBUG_SOCKET || '6009'\n }`,\n ],\n };\n\n // If the extension is launched in debug mode then the debug server options are used\n // Otherwise the run options are used\n const serverOptions: ServerOptions = {\n run: { module: serverModule, transport: TransportKind.ipc },\n debug: {\n module: serverModule,\n transport: TransportKind.ipc,\n options: debugOptions,\n },\n };\n\n const fileSystemWatcher =\n vscode.workspace.createFileSystemWatcher('**/*.zmodel');\n context.subscriptions.push(fileSystemWatcher);\n\n // Options to control the language client\n const clientOptions: LanguageClientOptions = {\n documentSelector: [{ scheme: 'file', language: 'zmodel' }],\n synchronize: {\n // Notify the server about file changes to files contained in the workspace\n fileEvents: fileSystemWatcher,\n },\n };\n\n // Create the language client and start the client.\n const client = new LanguageClient(\n 'zmodel',\n 'ZenStack Model',\n serverOptions,\n clientOptions\n );\n\n // Start the client. This will also launch the server\n client.start();\n return client;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["error", "RAL", "Disposable", "result", "RIL", "require_is", "ErrorCodes", "Message", "Touch", "Event", "CancellationToken", "MessageReader", "ResolvedMessageReaderOptions", "MessageWriter", "ResolvedMessageWriterOptions", "CancelNotification", "ProgressToken", "ProgressNotification", "StarRequestHandler", "Trace", "TraceValues", "TraceFormat", "SetTraceNotification", "LogTraceNotification", "ConnectionErrors", "ConnectionStrategy", "CancellationReceiverStrategy", "CancellationSenderStrategy", "CancellationStrategy", "ConnectionOptions", "ConnectionState", "startTime", "exports", "path", "process", "module", "require_main", "module", "require", "exports", "DocumentUri", "URI", "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", "TextEditChangeImpl", "ChangeAnnotations", "WorkspaceChange", "TextDocumentIdentifier", "VersionedTextDocumentIdentifier", "OptionalVersionedTextDocumentIdentifier", "TextDocumentItem", "MarkupKind", "MarkupContent", "CompletionItemKind", "InsertTextFormat", "CompletionItemTag", "InsertReplaceEdit", "InsertTextMode", "CompletionItemLabelDetails", "CompletionItem", "CompletionList", "MarkedString", "Hover", "ParameterInformation", "SignatureInformation", "DocumentHighlightKind", "DocumentHighlight", "SymbolKind", "SymbolTag", "SymbolInformation", "WorkspaceSymbol", "DocumentSymbol", "CodeActionKind", "CodeActionTriggerKind", "CodeActionContext", "CodeAction", "CodeLens", "FormattingOptions", "DocumentLink", "SelectionRange", "SemanticTokenTypes", "SemanticTokenModifiers", "SemanticTokens", "InlineValueText", "InlineValueVariableLookup", "InlineValueEvaluatableExpression", "InlineValueContext", "InlayHintKind", "InlayHintLabelPart", "InlayHint", "WorkspaceFolder", "TextDocument", "FullTextDocument", "Is", "undefined", "require_messages", "MessageDirection", "require_is", "ImplementationRequest", "TypeDefinitionRequest", "WorkspaceFoldersRequest", "DidChangeWorkspaceFoldersNotification", "ConfigurationRequest", "DocumentColorRequest", "ColorPresentationRequest", "FoldingRangeRequest", "DeclarationRequest", "SelectionRangeRequest", "WorkDoneProgress", "WorkDoneProgressCreateRequest", "WorkDoneProgressCancelNotification", "CallHierarchyPrepareRequest", "CallHierarchyIncomingCallsRequest", "CallHierarchyOutgoingCallsRequest", "TokenFormat", "SemanticTokensRegistrationType", "SemanticTokensRequest", "SemanticTokensDeltaRequest", "SemanticTokensRangeRequest", "SemanticTokensRefreshRequest", "ShowDocumentRequest", "LinkedEditingRangeRequest", "FileOperationPatternKind", "WillCreateFilesRequest", "DidCreateFilesNotification", "WillRenameFilesRequest", "DidRenameFilesNotification", "DidDeleteFilesNotification", "WillDeleteFilesRequest", "UniquenessLevel", "MonikerKind", "MonikerRequest", "TypeHierarchyPrepareRequest", "TypeHierarchySupertypesRequest", "TypeHierarchySubtypesRequest", "InlineValueRequest", "InlineValueRefreshRequest", "InlayHintRequest", "InlayHintResolveRequest", "InlayHintRefreshRequest", "DiagnosticServerCancellationData", "DocumentDiagnosticReportKind", "DocumentDiagnosticRequest", "WorkspaceDiagnosticRequest", "DiagnosticRefreshRequest", "NotebookCellKind", "ExecutionSummary", "NotebookCell", "NotebookDocument", "NotebookDocumentSyncRegistrationType", "DidOpenNotebookDocumentNotification", "NotebookCellArrayChange", "DidChangeNotebookDocumentNotification", "DidSaveNotebookDocumentNotification", "DidCloseNotebookDocumentNotification", "TextDocumentFilter", "NotebookDocumentFilter", "NotebookCellTextDocumentFilter", "DocumentSelector", "RegistrationRequest", "UnregistrationRequest", "ResourceOperationKind", "FailureHandlingKind", "PositionEncodingKind", "StaticRegistrationOptions", "TextDocumentRegistrationOptions", "WorkDoneProgressOptions", "InitializeRequest", "InitializeErrorCodes", "InitializedNotification", "ShutdownRequest", "ExitNotification", "DidChangeConfigurationNotification", "MessageType", "ShowMessageNotification", "ShowMessageRequest", "LogMessageNotification", "TelemetryEventNotification", "TextDocumentSyncKind", "DidOpenTextDocumentNotification", "TextDocumentContentChangeEvent", "DidChangeTextDocumentNotification", "DidCloseTextDocumentNotification", "DidSaveTextDocumentNotification", "TextDocumentSaveReason", "WillSaveTextDocumentNotification", "WillSaveTextDocumentWaitUntilRequest", "DidChangeWatchedFilesNotification", "FileChangeType", "RelativePattern", "WatchKind", "PublishDiagnosticsNotification", "CompletionTriggerKind", "CompletionRequest", "CompletionResolveRequest", "HoverRequest", "SignatureHelpTriggerKind", "SignatureHelpRequest", "DefinitionRequest", "ReferencesRequest", "DocumentHighlightRequest", "DocumentSymbolRequest", "CodeActionRequest", "CodeActionResolveRequest", "WorkspaceSymbolRequest", "WorkspaceSymbolResolveRequest", "CodeLensRequest", "CodeLensResolveRequest", "CodeLensRefreshRequest", "DocumentLinkRequest", "DocumentLinkResolveRequest", "DocumentFormattingRequest", "DocumentRangeFormattingRequest", "DocumentOnTypeFormattingRequest", "PrepareSupportDefaultBehavior", "RenameRequest", "PrepareRenameRequest", "ExecuteCommandRequest", "ApplyWorkspaceEditRequest", "require_connection", "require_api", "exports", "LSPErrorCodes", "require_main", "exports", "vscode", "vscode", "DiagnosticCode", "InsertReplaceRange", "code", "CodeBlock", "StaticFeature", "DynamicFeature", "client", "data", "module", "module", "module", "module", "path", "minimatch", "Minimatch", "filter", "makeRe", "braceExpand", "set", "vsdiag", "DocumentDiagnosticReportKind", "DiagnosticPullMode", "RequestStateKind", "PullState", "client", "document", "previousResultId", "token", "result", "resultIds", "vscode", "Converter", "c2p", "event", "$NotebookCell", "$NotebookDocumentFilter", "$NotebookDocumentSyncOptions", "SyncInfo", "client", "notebookDocument", "cells", "client", "params", "sections", "path", "client", "textDocument", "event", "client", "document", "position", "context", "token", "item", "client", "document", "position", "token", "client", "document", "position", "token", "client", "document", "position", "context", "token", "client", "document", "position", "token", "client", "document", "token", "client", "query", "token", "item", "client", "options", "document", "position", "token", "client", "document", "range", "context", "token", "item", "client", "document", "token", "codeLens", "FileFormattingOptions", "client", "options", "document", "token", "range", "position", "ch", "client", "document", "position", "newName", "token", "client", "document", "token", "link", "client", "client", "client", "color", "context", "token", "document", "client", "document", "position", "token", "client", "document", "position", "token", "client", "event", "client", "document", "token", "client", "document", "position", "token", "client", "document", "positions", "token", "client", "client", "document", "position", "token", "item", "vscode", "client", "document", "token", "previousResultId", "range", "client", "path", "client", "document", "position", "token", "client", "document", "position", "token", "item", "client", "document", "viewPort", "context", "token", "client", "document", "viewPort", "token", "RevealOutputChannelOn", "ErrorAction", "CloseAction", "State", "SuspendMode", "client", "ClientState", "MessageTransports", "disposable", "params", "connection", "event", "uri", "diagnostics", "error", "ProposedFeatures", "process", "require_node", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "module", "require_api", "exports", "require_main", "exports", "path", "TransportKind", "Transport", "Executable", "NodeModule", "StreamInfo", "ChildProcessInfo", "LanguageClient", "process", "cp", "transport", "require_node", "module", "client"]
|
|
7
|
+
}
|