@codingame/monaco-vscode-json-language-features-default-extension 34.1.2 → 35.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["<define:process.env>", "../../node_modules/@vscode/l10n/dist/browser.js", "../../node_modules/vscode-jsonrpc/lib/common/is.js", "../../node_modules/vscode-jsonrpc/lib/common/messages.js", "../../node_modules/vscode-jsonrpc/lib/common/linkedMap.js", "../../node_modules/vscode-jsonrpc/lib/common/disposable.js", "../../node_modules/vscode-jsonrpc/lib/common/ral.js", "../../node_modules/vscode-jsonrpc/lib/common/events.js", "../../node_modules/vscode-jsonrpc/lib/common/cancellation.js", "../../node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js", "../../node_modules/vscode-jsonrpc/lib/common/semaphore.js", "../../node_modules/vscode-jsonrpc/lib/common/messageReader.js", "../../node_modules/vscode-jsonrpc/lib/common/messageWriter.js", "../../node_modules/vscode-jsonrpc/lib/common/messageBuffer.js", "../../node_modules/vscode-jsonrpc/lib/common/connection.js", "../../node_modules/vscode-jsonrpc/lib/common/api.js", "../../node_modules/vscode-languageserver-protocol/node_modules/vscode-languageserver-types/lib/esm/main.js", "../../node_modules/vscode-languageserver-protocol/lib/common/messages.js", "../../node_modules/vscode-languageserver-protocol/lib/common/utils/is.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.textDocumentContent.js", "../../node_modules/vscode-languageserver-protocol/lib/common/protocol.js", "../../node_modules/vscode-languageserver-protocol/lib/common/connection.js", "../../node_modules/vscode-languageserver-protocol/lib/common/api.js", "../../node_modules/vscode-languageserver/lib/common/semanticTokens.js", "../../node_modules/vscode-languageserver/lib/common/inlineCompletion.proposed.js", "../../node_modules/vscode-languageserver/lib/common/textDocumentContent.js", "../../node_modules/vscode-languageserver/lib/common/textDocuments.js", "../../node_modules/vscode-languageserver/lib/common/notebook.js", "../../node_modules/vscode-languageserver/lib/common/utils/is.js", "../../node_modules/vscode-languageserver/lib/common/utils/uuid.js", "../../node_modules/vscode-languageserver/lib/common/progress.js", "../../node_modules/vscode-languageserver/lib/common/configuration.js", "../../node_modules/vscode-languageserver/lib/common/workspaceFolder.js", "../../node_modules/vscode-languageserver/lib/common/callHierarchy.js", "../../node_modules/vscode-languageserver/lib/common/showDocument.js", "../../node_modules/vscode-languageserver/lib/common/fileOperations.js", "../../node_modules/vscode-languageserver/lib/common/linkedEditingRange.js", "../../node_modules/vscode-languageserver/lib/common/typeHierarchy.js", "../../node_modules/vscode-languageserver/lib/common/inlineValue.js", "../../node_modules/vscode-languageserver/lib/common/foldingRange.js", "../../node_modules/vscode-languageserver/lib/common/inlayHint.js", "../../node_modules/vscode-languageserver/lib/common/diagnostic.js", "../../node_modules/vscode-languageserver/lib/common/moniker.js", "../../node_modules/vscode-languageserver/lib/common/server.js", "../../node_modules/vscode-languageserver/lib/common/api.js", "../../node_modules/vscode-jsonrpc/lib/browser/ril.js", "../../node_modules/vscode-jsonrpc/lib/browser/main.js", "../../node_modules/vscode-languageserver-protocol/lib/browser/main.js", "../../node_modules/vscode-languageserver/lib/browser/main.js", "../../src/utils/runner.ts", "../../src/utils/validation.ts", "../../node_modules/jsonc-parser/lib/esm/impl/scanner.js", "../../node_modules/jsonc-parser/lib/esm/impl/string-intern.js", "../../node_modules/jsonc-parser/lib/esm/impl/format.js", "../../node_modules/jsonc-parser/lib/esm/impl/parser.js", "../../node_modules/jsonc-parser/lib/esm/impl/edit.js", "../../node_modules/jsonc-parser/lib/esm/main.js", "../../node_modules/vscode-json-languageservice/lib/esm/utils/objects.js", "../../node_modules/vscode-json-languageservice/lib/esm/utils/strings.js", "../../node_modules/vscode-languageserver-types/lib/esm/main.js", "../../node_modules/vscode-languageserver-textdocument/lib/esm/main.js", "../../node_modules/vscode-json-languageservice/lib/esm/jsonLanguageTypes.js", "webpack://LIB/node_modules/path-browserify/index.js", "webpack://LIB/webpack/bootstrap", "webpack://LIB/webpack/runtime/define%20property%20getters", "webpack://LIB/webpack/runtime/hasOwnProperty%20shorthand", "webpack://LIB/webpack/runtime/make%20namespace%20object", "webpack://LIB/src/platform.ts", "webpack://LIB/src/uri.ts", "webpack://LIB/src/utils.ts", "../../node_modules/vscode-json-languageservice/lib/esm/parser/jsonParser.js", "../../node_modules/vscode-json-languageservice/lib/esm/utils/json.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/jsonCompletion.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/jsonHover.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/jsonValidation.js", "../../node_modules/vscode-json-languageservice/lib/esm/utils/colors.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/jsonDocumentSymbols.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/schemas/draft-2019-09-flat.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/schemas/draft-2020-12-flat.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/configuration.js", "../../node_modules/vscode-json-languageservice/lib/esm/utils/glob.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/jsonSchemaService.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/jsonFolding.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/jsonSelectionRanges.js", "../../node_modules/vscode-json-languageservice/lib/esm/utils/format.js", "../../node_modules/vscode-json-languageservice/lib/esm/utils/propertyTree.js", "../../node_modules/vscode-json-languageservice/lib/esm/utils/sort.js", "../../node_modules/vscode-json-languageservice/lib/esm/services/jsonLinks.js", "../../node_modules/vscode-json-languageservice/lib/esm/jsonLanguageService.js", "../../src/languageModelCache.ts", "../../src/jsonServer.ts", "../../src/browser/jsonServerMain.ts", "../../src/browser/jsonServerWorkerMain.ts"],
|
|
4
4
|
"sourcesContent": ["{}", "// src/browser/reader.ts\nasync function readFileFromUri(uri) {\n if (uri.protocol === \"http:\" || uri.protocol === \"https:\") {\n const res = await fetch(uri);\n return await res.text();\n }\n throw new Error(\"Unsupported protocol\");\n}\nfunction readFileFromFsPath(_) {\n throw new Error(\"Unsupported in browser\");\n}\n\n// src/main.ts\nvar bundle;\nfunction config(config2) {\n if (\"contents\" in config2) {\n if (typeof config2.contents === \"string\") {\n bundle = JSON.parse(config2.contents);\n } else {\n bundle = config2.contents;\n }\n return;\n }\n if (\"fsPath\" in config2) {\n const fileContent = readFileFromFsPath(config2.fsPath);\n const content = JSON.parse(fileContent);\n bundle = isBuiltinExtension(content) ? content.contents.bundle : content;\n return;\n }\n if (config2.uri) {\n let uri = config2.uri;\n if (typeof config2.uri === \"string\") {\n uri = new URL(config2.uri);\n }\n return new Promise((resolve, reject) => {\n readFileFromUri(uri).then((uriContent) => {\n try {\n const content = JSON.parse(uriContent);\n bundle = isBuiltinExtension(content) ? content.contents.bundle : content;\n resolve();\n } catch (err) {\n reject(err);\n }\n }).catch((err) => {\n reject(err);\n });\n });\n }\n}\nfunction t(...args) {\n const firstArg = args[0];\n let key;\n let message;\n let formatArgs;\n if (typeof firstArg === \"string\") {\n key = firstArg;\n message = firstArg;\n args.splice(0, 1);\n formatArgs = !args || typeof args[0] !== \"object\" ? args : args[0];\n } else if (firstArg instanceof Array) {\n const replacements = args.slice(1);\n if (firstArg.length !== replacements.length + 1) {\n throw new Error(\"expected a string as the first argument to l10n.t\");\n }\n let str = firstArg[0];\n for (let i = 1; i < firstArg.length; i++) {\n str += `{${i - 1}}` + firstArg[i];\n }\n return t(str, ...replacements);\n } else {\n message = firstArg.message;\n key = message;\n if (firstArg.comment && firstArg.comment.length > 0) {\n key += `/${Array.isArray(firstArg.comment) ? firstArg.comment.join(\"\") : firstArg.comment}`;\n }\n formatArgs = firstArg.args ?? {};\n }\n const messageFromBundle = bundle?.[key];\n if (!messageFromBundle) {\n return format(message, formatArgs);\n }\n if (typeof messageFromBundle === \"string\") {\n return format(messageFromBundle, formatArgs);\n }\n if (messageFromBundle.comment) {\n return format(messageFromBundle.message, formatArgs);\n }\n return format(message, formatArgs);\n}\nvar _format2Regexp = /{([^}]+)}/g;\nfunction format(template, values) {\n if (Object.keys(values).length === 0) {\n return template;\n }\n return template.replace(_format2Regexp, (match, group) => values[group] ?? match);\n}\nfunction isBuiltinExtension(json) {\n return !!(typeof json?.contents?.bundle === \"object\" && typeof json?.version === \"string\");\n}\nexport {\n config,\n t\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.boolean = boolean;\nexports.string = string;\nexports.number = number;\nexports.error = error;\nexports.func = func;\nexports.array = array;\nexports.stringArray = stringArray;\nfunction boolean(value) {\n return value === true || value === false;\n}\nfunction string(value) {\n return typeof value === 'string' || value instanceof String;\n}\nfunction number(value) {\n return typeof value === 'number' || value instanceof Number;\n}\nfunction error(value) {\n return value instanceof Error;\n}\nfunction func(value) {\n return typeof value === 'function';\n}\nfunction array(value) {\n return Array.isArray(value);\n}\nfunction stringArray(value) {\n return array(value) && value.every(elem => string(elem));\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 * ------------------------------------------------------------------------------------------ */\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\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 = __importStar(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 = ErrorCodes = {}));\n/**\n * An error object return in a response in case a request\n * has failed.\n */\nclass ResponseError extends Error {\n code;\n data;\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 kind;\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 */\n static 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 */\n static 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 */\n static byName = new ParameterStructures('byName');\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 * An abstract implementation of a MessageType.\n */\nclass AbstractMessageSignature {\n method;\n numberOfParams;\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 /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 0);\n }\n}\nexports.RequestType0 = RequestType0;\nclass RequestType extends AbstractMessageSignature {\n _parameterStructures;\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\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 _parameterStructures;\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\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 /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 2);\n }\n}\nexports.RequestType2 = RequestType2;\nclass RequestType3 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 3);\n }\n}\nexports.RequestType3 = RequestType3;\nclass RequestType4 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 4);\n }\n}\nexports.RequestType4 = RequestType4;\nclass RequestType5 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 5);\n }\n}\nexports.RequestType5 = RequestType5;\nclass RequestType6 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 6);\n }\n}\nexports.RequestType6 = RequestType6;\nclass RequestType7 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 7);\n }\n}\nexports.RequestType7 = RequestType7;\nclass RequestType8 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 8);\n }\n}\nexports.RequestType8 = RequestType8;\nclass RequestType9 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 9);\n }\n}\nexports.RequestType9 = RequestType9;\nclass NotificationType extends AbstractMessageSignature {\n _parameterStructures;\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\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 /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 0);\n }\n}\nexports.NotificationType0 = NotificationType0;\nclass NotificationType1 extends AbstractMessageSignature {\n _parameterStructures;\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\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 /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 2);\n }\n}\nexports.NotificationType2 = NotificationType2;\nclass NotificationType3 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 3);\n }\n}\nexports.NotificationType3 = NotificationType3;\nclass NotificationType4 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 4);\n }\n}\nexports.NotificationType4 = NotificationType4;\nclass NotificationType5 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 5);\n }\n}\nexports.NotificationType5 = NotificationType5;\nclass NotificationType6 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 6);\n }\n}\nexports.NotificationType6 = NotificationType6;\nclass NotificationType7 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 7);\n }\n}\nexports.NotificationType7 = NotificationType7;\nclass NotificationType8 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\n constructor(method) {\n super(method, 8);\n }\n}\nexports.NotificationType8 = NotificationType8;\nclass NotificationType9 extends AbstractMessageSignature {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n _;\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 = Message = {}));\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.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 = Touch = {}));\nclass LinkedMap {\n [Symbol.toStringTag] = 'LinkedMap';\n _map;\n _head;\n _tail;\n _size;\n _state;\n constructor() {\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 before(key) {\n const item = this._map.get(key);\n return item ? item.previous?.value : undefined;\n }\n after(key) {\n const item = this._map.get(key);\n return item ? item.next?.value : undefined;\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 [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 _limit;\n _ratio;\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", "\"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 = Disposable = {}));\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 });\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", "\"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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = exports.Event = void 0;\nconst ral_1 = __importDefault(require(\"./ral\"));\nvar Event;\n(function (Event) {\n const _disposable = { dispose() { } };\n Event.None = function () { return _disposable; };\n})(Event || (exports.Event = Event = {}));\nclass CallbackList {\n _callbacks;\n _contexts;\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 _options;\n static _noop = function () { };\n _event;\n _callbacks;\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;\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancellationTokenSource = exports.CancellationToken = void 0;\nconst ral_1 = __importDefault(require(\"./ral\"));\nconst Is = __importStar(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 = 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 _isCancelled = false;\n _emitter;\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 _token;\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", "\"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.SharedArrayReceiverStrategy = exports.SharedArraySenderStrategy = void 0;\nconst cancellation_1 = require(\"./cancellation\");\nvar CancellationState;\n(function (CancellationState) {\n CancellationState.Continue = 0;\n CancellationState.Cancelled = 1;\n})(CancellationState || (CancellationState = {}));\nclass SharedArraySenderStrategy {\n buffers;\n constructor() {\n this.buffers = new Map();\n }\n enableCancellation(request) {\n if (request.id === null) {\n return;\n }\n const buffer = new SharedArrayBuffer(4);\n const data = new Int32Array(buffer, 0, 1);\n data[0] = CancellationState.Continue;\n this.buffers.set(request.id, buffer);\n request.$cancellationData = buffer;\n }\n async sendCancellation(_conn, id) {\n const buffer = this.buffers.get(id);\n if (buffer === undefined) {\n return;\n }\n const data = new Int32Array(buffer, 0, 1);\n Atomics.store(data, 0, CancellationState.Cancelled);\n }\n cleanup(id) {\n this.buffers.delete(id);\n }\n dispose() {\n this.buffers.clear();\n }\n}\nexports.SharedArraySenderStrategy = SharedArraySenderStrategy;\nclass SharedArrayBufferCancellationToken {\n data;\n constructor(buffer) {\n this.data = new Int32Array(buffer, 0, 1);\n }\n get isCancellationRequested() {\n return Atomics.load(this.data, 0) === CancellationState.Cancelled;\n }\n get onCancellationRequested() {\n throw new Error(`Cancellation over SharedArrayBuffer doesn't support cancellation events`);\n }\n}\nclass SharedArrayBufferCancellationTokenSource {\n token;\n constructor(buffer) {\n this.token = new SharedArrayBufferCancellationToken(buffer);\n }\n cancel() {\n }\n dispose() {\n }\n}\nclass SharedArrayReceiverStrategy {\n kind = 'request';\n createCancellationTokenSource(request) {\n const buffer = request.$cancellationData;\n if (buffer === undefined) {\n return new cancellation_1.CancellationTokenSource();\n }\n return new SharedArrayBufferCancellationTokenSource(buffer);\n }\n}\nexports.SharedArrayReceiverStrategy = SharedArrayReceiverStrategy;\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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Semaphore = void 0;\nconst ral_1 = __importDefault(require(\"./ral\"));\nclass Semaphore {\n _capacity;\n _active;\n _waiting;\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(`Too 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", "\"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReadableStreamMessageReader = exports.AbstractMessageReader = exports.MessageReader = void 0;\nconst ral_1 = __importDefault(require(\"./ral\"));\nconst Is = __importStar(require(\"./is\"));\nconst events_1 = require(\"./events\");\nconst semaphore_1 = require(\"./semaphore\");\nvar MessageReader;\n(function (MessageReader) {\n function is(value) {\n const 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 = MessageReader = {}));\nclass AbstractMessageReader {\n errorEmitter;\n closeEmitter;\n partialMessageEmitter;\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 this.partialMessageEmitter.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 readable;\n options;\n callback;\n nextMessageLength;\n messageToken;\n buffer;\n partialMessageTimer;\n _partialMessageTimeout;\n readSemaphore;\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 this.readSemaphore = new semaphore_1.Semaphore(1);\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 try {\n this.buffer.append(data);\n while (true) {\n if (this.nextMessageLength === -1) {\n const headers = this.buffer.tryReadHeaders(true);\n if (!headers) {\n return;\n }\n const contentLength = headers.get('content-length');\n if (!contentLength) {\n this.fireError(new Error(`Header must provide a Content-Length property.\\n${JSON.stringify(Object.fromEntries(headers))}`));\n return;\n }\n const length = parseInt(contentLength);\n if (isNaN(length)) {\n this.fireError(new Error(`Content-Length value must be a number. Got ${contentLength}`));\n return;\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 // Make sure that we convert one received message after the\n // other. Otherwise it could happen that a decoding of a second\n // smaller message finished before the decoding of a first larger\n // message and then we would deliver the second message first.\n this.readSemaphore.lock(async () => {\n const bytes = this.options.contentDecoder !== undefined\n ? await this.options.contentDecoder.decode(body)\n : body;\n const message = await this.options.contentTypeDecoder.decode(bytes, this.options);\n this.callback(message);\n }).catch((error) => {\n this.fireError(error);\n });\n }\n }\n catch (error) {\n this.fireError(error);\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", "\"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WriteableStreamMessageWriter = exports.AbstractMessageWriter = exports.MessageWriter = void 0;\nconst ral_1 = __importDefault(require(\"./ral\"));\nconst Is = __importStar(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 const 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 = MessageWriter = {}));\nclass AbstractMessageWriter {\n errorEmitter;\n closeEmitter;\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 writable;\n options;\n errorCount;\n writeSemaphore;\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", "\"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 _encoding;\n _chunks;\n _totalLength;\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(lowerCaseKeys = false) {\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 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${header}`);\n }\n const key = header.substr(0, index);\n const value = header.substr(index + 1).trim();\n result.set(lowerCaseKeys ? key.toLowerCase() : 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 const 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", "\"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\" preserve=\"true\"/>\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectionOptions = exports.MessageStrategy = exports.CancellationStrategy = exports.CancellationSenderStrategy = exports.CancellationReceiverStrategy = exports.RequestCancellationReceiverStrategy = exports.IdCancellationReceiverStrategy = exports.ConnectionStrategy = exports.ConnectionError = exports.ConnectionErrors = exports.LogTraceNotification = exports.SetTraceNotification = exports.TraceFormat = exports.TraceValues = exports.TraceValue = exports.Trace = exports.NullLogger = exports.ProgressType = exports.ProgressToken = void 0;\nexports.createMessageConnection = createMessageConnection;\nconst ral_1 = __importDefault(require(\"./ral\"));\nconst Is = __importStar(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 = ProgressToken = {}));\nvar ProgressNotification;\n(function (ProgressNotification) {\n ProgressNotification.type = new messages_1.NotificationType('$/progress');\n})(ProgressNotification || (ProgressNotification = {}));\nclass ProgressType {\n /**\n * Clients must not use these properties. They are here to ensure correct typing.\n * in TypeScript\n */\n __;\n _pr;\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 = Trace = {}));\nvar TraceValue;\n(function (TraceValue) {\n /**\n * Turn tracing off.\n */\n TraceValue.Off = 'off';\n /**\n * Trace messages only.\n */\n TraceValue.Messages = 'messages';\n /**\n * Compact message tracing.\n */\n TraceValue.Compact = 'compact';\n /**\n * Verbose message tracing.\n */\n TraceValue.Verbose = 'verbose';\n})(TraceValue || (exports.TraceValue = TraceValue = {}));\n/**\n * @deprecated Use TraceValue instead\n */\nexports.TraceValues = TraceValue;\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 = Trace = {}));\nvar TraceFormat;\n(function (TraceFormat) {\n TraceFormat[\"Text\"] = \"text\";\n TraceFormat[\"JSON\"] = \"json\";\n})(TraceFormat || (exports.TraceFormat = 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 = TraceFormat = {}));\nvar SetTraceNotification;\n(function (SetTraceNotification) {\n SetTraceNotification.type = new messages_1.NotificationType('$/setTrace');\n})(SetTraceNotification || (exports.SetTraceNotification = SetTraceNotification = {}));\nvar LogTraceNotification;\n(function (LogTraceNotification) {\n LogTraceNotification.type = new messages_1.NotificationType('$/logTrace');\n})(LogTraceNotification || (exports.LogTraceNotification = 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 = ConnectionErrors = {}));\nclass ConnectionError extends Error {\n code;\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 = ConnectionStrategy = {}));\nvar IdCancellationReceiverStrategy;\n(function (IdCancellationReceiverStrategy) {\n function is(value) {\n const candidate = value;\n return candidate && (candidate.kind === undefined || candidate.kind === 'id') && Is.func(candidate.createCancellationTokenSource) && (candidate.dispose === undefined || Is.func(candidate.dispose));\n }\n IdCancellationReceiverStrategy.is = is;\n})(IdCancellationReceiverStrategy || (exports.IdCancellationReceiverStrategy = IdCancellationReceiverStrategy = {}));\nvar RequestCancellationReceiverStrategy;\n(function (RequestCancellationReceiverStrategy) {\n function is(value) {\n const candidate = value;\n return candidate && candidate.kind === 'request' && Is.func(candidate.createCancellationTokenSource) && (candidate.dispose === undefined || Is.func(candidate.dispose));\n }\n RequestCancellationReceiverStrategy.is = is;\n})(RequestCancellationReceiverStrategy || (exports.RequestCancellationReceiverStrategy = RequestCancellationReceiverStrategy = {}));\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 return IdCancellationReceiverStrategy.is(value) || RequestCancellationReceiverStrategy.is(value);\n }\n CancellationReceiverStrategy.is = is;\n})(CancellationReceiverStrategy || (exports.CancellationReceiverStrategy = 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 = 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 = CancellationStrategy = {}));\nvar MessageStrategy;\n(function (MessageStrategy) {\n function is(value) {\n const candidate = value;\n return candidate && Is.func(candidate.handleMessage);\n }\n MessageStrategy.is = is;\n})(MessageStrategy || (exports.MessageStrategy = MessageStrategy = {}));\nvar ConnectionOptions;\n(function (ConnectionOptions) {\n function is(value) {\n const candidate = value;\n return candidate\n && (CancellationStrategy.is(candidate.cancellationStrategy) || ConnectionStrategy.is(candidate.connectionStrategy) || MessageStrategy.is(candidate.messageStrategy) || Is.number(candidate.maxParallelism));\n }\n ConnectionOptions.is = is;\n})(ConnectionOptions || (exports.ConnectionOptions = 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 const maxParallelism = options?.maxParallelism ?? -1;\n let inFlight = 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 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 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 // If we have unlimited parallelism we queue the response to keep\n // the previous semantics.\n if (maxParallelism === -1) {\n queue.set(createResponseQueueKey(message.id), message);\n }\n else {\n // If we have limited parallelism we resolve responses to avoid\n // dead locks.\n handleResponse(message);\n }\n }\n else {\n queue.set(createNotificationQueueKey(), message);\n }\n }\n function triggerMessageQueue() {\n if (timer || messageQueue.size === 0) {\n return;\n }\n if (maxParallelism !== -1 && inFlight >= maxParallelism) {\n return;\n }\n timer = (0, ral_1.default)().timer.setImmediate(async () => {\n timer = undefined;\n if (messageQueue.size === 0) {\n return;\n }\n if (maxParallelism !== -1 && inFlight >= maxParallelism) {\n return;\n }\n const message = messageQueue.shift();\n let result;\n try {\n inFlight++;\n const messageStrategy = options?.messageStrategy;\n if (MessageStrategy.is(messageStrategy)) {\n result = messageStrategy.handleMessage(message, handleMessage);\n }\n else {\n result = handleMessage(message);\n }\n }\n catch (error) {\n logger.error(`Processing message queue failed: ${error.toString()}`);\n }\n finally {\n if (result instanceof Promise) {\n result.then(() => {\n inFlight--;\n triggerMessageQueue();\n }).catch((error) => {\n logger.error(`Processing message queue failed: ${error.toString()}`);\n });\n }\n else {\n inFlight--;\n }\n triggerMessageQueue();\n }\n });\n }\n async function handleMessage(message) {\n if (messages_1.Message.isRequest(message)) {\n return handleRequest(message);\n }\n else if (messages_1.Message.isNotification(message)) {\n return handleNotification(message);\n }\n else if (messages_1.Message.isResponse(message)) {\n return handleResponse(message);\n }\n else {\n return handleInvalidMessage(message);\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 async function handleRequest(requestMessage) {\n if (isDisposed()) {\n // we return here silently since we fired an event when the\n // connection got disposed.\n return Promise.resolve();\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 return messageWriter.write(message);\n }\n function replyError(error, method, startTime) {\n const message = {\n jsonrpc: version,\n id: requestMessage.id,\n error: error.toJson()\n };\n traceSendingResponse(message, method, startTime);\n return messageWriter.write(message);\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 = IdCancellationReceiverStrategy.is(cancellationStrategy.receiver)\n ? cancellationStrategy.receiver.createCancellationTokenSource(tokenKey)\n : cancellationStrategy.receiver.createCancellationTokenSource(requestMessage);\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 return replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams, `Request ${requestMessage.method} defines ${type.numberOfParams} params but received none.`), requestMessage.method, startTime);\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 return 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 }\n handlerResult = requestHandler(...requestMessage.params, cancellationSource.token);\n }\n else {\n if (type !== undefined && type.parameterStructures === messages_1.ParameterStructures.byPosition) {\n return 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 }\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 resultOrError = await handlerResult;\n await reply(resultOrError, requestMessage.method, startTime);\n }\n catch (error) {\n if (error instanceof messages_1.ResponseError) {\n await reply(error, requestMessage.method, startTime);\n }\n else if (error && Is.string(error.message)) {\n await replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed with message: ${error.message}`), requestMessage.method, startTime);\n }\n else {\n await replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed unexpectedly without providing any details.`), requestMessage.method, startTime);\n }\n }\n finally {\n requestTokens.delete(tokenKey);\n }\n }\n else {\n await 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 async 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 await 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 await 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 await 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 await notificationHandler(message.params);\n }\n }\n else if (starNotificationHandler) {\n await 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 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 else {\n data = 'No parameters provided.';\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 else {\n if (message.result) {\n data = `Result: ${stringifyTrace(message.result)}`;\n }\n else if (message.error === undefined) {\n data = 'No result returned.';\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 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 else {\n data = 'No parameters provided.';\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 else {\n if (message.result) {\n data = `Result: ${stringifyTrace(message.result)}`;\n }\n else if (message.error === undefined) {\n data = 'No result returned.';\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 const 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((error) => {\n logger.error(`Sending notification failed.`);\n throw error;\n });\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 if (notificationHandlers.get(method)?.handler === handler) {\n notificationHandlers.delete(method);\n }\n }\n else if (starNotificationHandler === type) {\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 if (progressHandlers.get(token) === handler) {\n progressHandlers.delete(token);\n }\n }\n };\n },\n sendProgress: (_type, token, value) => {\n // This should not await but simple return to ensure that we don't have another\n // async scheduling. Otherwise one send could overtake another send.\n return connection.sendNotification(ProgressNotification.type, { token, value });\n },\n onUnhandledProgress: unhandledProgressEmitter.event,\n sendRequest: (type, ...args) => {\n throwIfClosedOrDisposed();\n throwIfNotListening();\n function sendCancellation(connection, id) {\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 }\n else {\n p.catch(() => {\n logger.log(`Sending cancellation messages for id ${id} failed.`);\n });\n }\n }\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 let tokenWasCancelled = false;\n if (token !== undefined) {\n if (token.isCancellationRequested) {\n tokenWasCancelled = true;\n }\n else {\n disposable = token.onCancellationRequested(() => {\n sendCancellation(connection, id);\n });\n }\n }\n const requestMessage = {\n jsonrpc: version,\n id: id,\n method: method,\n params: messageParams\n };\n traceSendingRequest(requestMessage);\n if (typeof cancellationStrategy.sender.enableCancellation === 'function') {\n cancellationStrategy.sender.enableCancellation(requestMessage);\n }\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\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 const responsePromise = { method: method, timerStart: Date.now(), resolve: resolveWithCleanup, reject: rejectWithCleanup };\n try {\n responsePromises.set(id, responsePromise);\n await messageWriter.write(requestMessage);\n if (tokenWasCancelled) {\n sendCancellation(connection, id);\n }\n }\n catch (error) {\n // Writing the message failed. So we need to delete it from the response promises and\n // reject it.\n responsePromises.delete(id);\n responsePromise.reject(new messages_1.ResponseError(messages_1.ErrorCodes.MessageWriteError, error.message ? error.message : 'Unknown reason'));\n logger.error(`Sending request failed.`);\n throw error;\n }\n });\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 if (requestHandlers.get(method)?.handler === handler) {\n requestHandlers.delete(method);\n }\n }\n else if (starRequestHandler === type) {\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, async (params) => {\n const handler = progressHandlers.get(params.token);\n if (handler) {\n await handler(params.value);\n }\n else {\n unhandledProgressEmitter.fire(params);\n }\n });\n return connection;\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 * ------------------------------------------------------------------------------------------ */\n/// <reference path=\"../../typings/thenable.d.ts\" preserve=\"true\"/>\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProgressType = exports.ProgressToken = exports.createMessageConnection = exports.NullLogger = exports.ConnectionOptions = exports.ConnectionStrategy = exports.AbstractMessageBuffer = exports.WriteableStreamMessageWriter = exports.AbstractMessageWriter = exports.MessageWriter = exports.ReadableStreamMessageReader = exports.AbstractMessageReader = exports.MessageReader = exports.SharedArrayReceiverStrategy = exports.SharedArraySenderStrategy = 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.MessageStrategy = exports.CancellationStrategy = exports.CancellationSenderStrategy = exports.RequestCancellationReceiverStrategy = exports.IdCancellationReceiverStrategy = exports.CancellationReceiverStrategy = exports.ConnectionError = exports.ConnectionErrors = exports.LogTraceNotification = exports.SetTraceNotification = exports.TraceFormat = exports.TraceValues = exports.TraceValue = exports.Trace = 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 sharedArrayCancellation_1 = require(\"./sharedArrayCancellation\");\nObject.defineProperty(exports, \"SharedArraySenderStrategy\", { enumerable: true, get: function () { return sharedArrayCancellation_1.SharedArraySenderStrategy; } });\nObject.defineProperty(exports, \"SharedArrayReceiverStrategy\", { enumerable: true, get: function () { return sharedArrayCancellation_1.SharedArrayReceiverStrategy; } });\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 messageBuffer_1 = require(\"./messageBuffer\");\nObject.defineProperty(exports, \"AbstractMessageBuffer\", { enumerable: true, get: function () { return messageBuffer_1.AbstractMessageBuffer; } });\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, \"TraceValue\", { enumerable: true, get: function () { return connection_1.TraceValue; } });\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, \"IdCancellationReceiverStrategy\", { enumerable: true, get: function () { return connection_1.IdCancellationReceiverStrategy; } });\nObject.defineProperty(exports, \"RequestCancellationReceiverStrategy\", { enumerable: true, get: function () { return connection_1.RequestCancellationReceiverStrategy; } });\nObject.defineProperty(exports, \"CancellationSenderStrategy\", { enumerable: true, get: function () { return connection_1.CancellationSenderStrategy; } });\nObject.defineProperty(exports, \"CancellationStrategy\", { enumerable: true, get: function () { return connection_1.CancellationStrategy; } });\nObject.defineProperty(exports, \"MessageStrategy\", { enumerable: true, get: function () { return connection_1.MessageStrategy; } });\nObject.defineProperty(exports, \"TraceValues\", { enumerable: true, get: function () { return connection_1.TraceValues; } });\nconst ral_1 = __importDefault(require(\"./ral\"));\nexports.RAL = ral_1.default;\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';\nexport var DocumentUri;\n(function (DocumentUri) {\n function is(value) {\n return typeof value === 'string';\n }\n DocumentUri.is = is;\n})(DocumentUri || (DocumentUri = {}));\nexport var URI;\n(function (URI) {\n function is(value) {\n return typeof value === 'string';\n }\n URI.is = is;\n})(URI || (URI = {}));\nexport 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 || (integer = {}));\nexport 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 || (uinteger = {}));\n/**\n * The Position namespace provides helper functions to work with\n * {@link Position} literals.\n */\nexport var Position;\n(function (Position) {\n /**\n * Creates a new Position literal from the given line and character.\n * @param line The position's line.\n * @param character The position's character.\n */\n function create(line, character) {\n if (line === Number.MAX_VALUE) {\n line = uinteger.MAX_VALUE;\n }\n if (character === Number.MAX_VALUE) {\n character = uinteger.MAX_VALUE;\n }\n return { line, character };\n }\n Position.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Position} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n }\n Position.is = is;\n})(Position || (Position = {}));\n/**\n * The Range namespace provides helper functions to work with\n * {@link Range} literals.\n */\nexport var Range;\n(function (Range) {\n function create(one, two, three, four) {\n if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n return { start: Position.create(one, two), end: Position.create(three, four) };\n }\n else if (Position.is(one) && Position.is(two)) {\n return { start: one, end: two };\n }\n else {\n throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n }\n }\n Range.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Range} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n }\n Range.is = is;\n})(Range || (Range = {}));\n/**\n * The Location namespace provides helper functions to work with\n * {@link Location} literals.\n */\nexport var Location;\n(function (Location) {\n /**\n * Creates a Location literal.\n * @param uri The location's uri.\n * @param range The location's range.\n */\n function create(uri, range) {\n return { uri, range };\n }\n Location.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Location} interface.\n */\n function is(value) {\n const 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 || (Location = {}));\n/**\n * The LocationLink namespace provides helper functions to work with\n * {@link LocationLink} literals.\n */\nexport var LocationLink;\n(function (LocationLink) {\n /**\n * Creates a LocationLink literal.\n * @param targetUri The definition's uri.\n * @param targetRange The full range of the definition.\n * @param targetSelectionRange The span of the symbol definition at the target.\n * @param originSelectionRange The span of the symbol being defined in the originating source file.\n */\n function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n }\n LocationLink.create = create;\n /**\n * Checks whether the given literal conforms to the {@link LocationLink} interface.\n */\n function is(value) {\n const 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 || (LocationLink = {}));\n/**\n * The Color namespace provides helper functions to work with\n * {@link Color} literals.\n */\nexport var Color;\n(function (Color) {\n /**\n * Creates a new Color literal.\n */\n function create(red, green, blue, alpha) {\n return {\n red,\n green,\n blue,\n alpha,\n };\n }\n Color.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Color} interface.\n */\n function is(value) {\n const 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 || (Color = {}));\n/**\n * The ColorInformation namespace provides helper functions to work with\n * {@link ColorInformation} literals.\n */\nexport var ColorInformation;\n(function (ColorInformation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(range, color) {\n return {\n range,\n color,\n };\n }\n ColorInformation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ColorInformation} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n }\n ColorInformation.is = is;\n})(ColorInformation || (ColorInformation = {}));\n/**\n * The Color namespace provides helper functions to work with\n * {@link ColorPresentation} literals.\n */\nexport var ColorPresentation;\n(function (ColorPresentation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(label, textEdit, additionalTextEdits) {\n return {\n label,\n textEdit,\n additionalTextEdits,\n };\n }\n ColorPresentation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ColorInformation} interface.\n */\n function is(value) {\n const 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 || (ColorPresentation = {}));\n/**\n * A set of predefined range kinds.\n */\nexport var FoldingRangeKind;\n(function (FoldingRangeKind) {\n /**\n * Folding range for a comment\n */\n FoldingRangeKind.Comment = 'comment';\n /**\n * Folding range for 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 || (FoldingRangeKind = {}));\n/**\n * The folding range namespace provides helper functions to work with\n * {@link FoldingRange} literals.\n */\nexport var FoldingRange;\n(function (FoldingRange) {\n /**\n * Creates a new FoldingRange literal.\n */\n function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n const result = {\n startLine,\n 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 {@link FoldingRange} interface.\n */\n function is(value) {\n const 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 || (FoldingRange = {}));\n/**\n * The DiagnosticRelatedInformation namespace provides helper functions to work with\n * {@link DiagnosticRelatedInformation} literals.\n */\nexport var DiagnosticRelatedInformation;\n(function (DiagnosticRelatedInformation) {\n /**\n * Creates a new DiagnosticRelatedInformation literal.\n */\n function create(location, message) {\n return {\n location,\n message\n };\n }\n DiagnosticRelatedInformation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DiagnosticRelatedInformation} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n }\n DiagnosticRelatedInformation.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\n/**\n * The diagnostic's severity.\n */\nexport var DiagnosticSeverity;\n(function (DiagnosticSeverity) {\n /**\n * Reports an error.\n */\n DiagnosticSeverity.Error = 1;\n /**\n * Reports a warning.\n */\n DiagnosticSeverity.Warning = 2;\n /**\n * Reports an information.\n */\n DiagnosticSeverity.Information = 3;\n /**\n * Reports a hint.\n */\n DiagnosticSeverity.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\n/**\n * The diagnostic tags.\n *\n * @since 3.15.0\n */\nexport var DiagnosticTag;\n(function (DiagnosticTag) {\n /**\n * Unused or unnecessary code.\n *\n * Clients are allowed to render diagnostics with this tag faded out instead of having\n * an error squiggle.\n */\n DiagnosticTag.Unnecessary = 1;\n /**\n * Deprecated or obsolete code.\n *\n * Clients are allowed to rendered diagnostics with this tag strike through.\n */\n DiagnosticTag.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\n/**\n * The CodeDescription namespace provides functions to deal with descriptions for diagnostic codes.\n *\n * @since 3.16.0\n */\nexport var CodeDescription;\n(function (CodeDescription) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.href);\n }\n CodeDescription.is = is;\n})(CodeDescription || (CodeDescription = {}));\n/**\n * The Diagnostic namespace provides helper functions to work with\n * {@link Diagnostic} literals.\n */\nexport var Diagnostic;\n(function (Diagnostic) {\n /**\n * Creates a new Diagnostic literal.\n */\n function create(range, message, severity, code, source, relatedInformation) {\n const result = { range, 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 {@link Diagnostic} interface.\n */\n function is(value) {\n var _a;\n const candidate = value;\n return Is.defined(candidate)\n && Range.is(candidate.range)\n && Is.string(candidate.message)\n && (Is.number(candidate.severity) || Is.undefined(candidate.severity))\n && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code))\n && (Is.undefined(candidate.codeDescription) || (Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)))\n && (Is.string(candidate.source) || Is.undefined(candidate.source))\n && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n }\n Diagnostic.is = is;\n})(Diagnostic || (Diagnostic = {}));\n/**\n * The Command namespace provides helper functions to work with\n * {@link Command} literals.\n */\nexport var Command;\n(function (Command) {\n /**\n * Creates a new Command literal.\n */\n function create(title, command, ...args) {\n const result = { title, 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 {@link Command} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Is.string(candidate.title) && (candidate.tooltip === undefined || Is.string(candidate.tooltip)) && Is.string(candidate.command);\n }\n Command.is = is;\n})(Command || (Command = {}));\n/**\n * The TextEdit namespace provides helper function to create replace,\n * insert and delete edits more easily.\n */\nexport var TextEdit;\n(function (TextEdit) {\n /**\n * Creates a replace text edit.\n * @param range The range of text to be replaced.\n * @param newText The new text.\n */\n function replace(range, newText) {\n return { range, 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 };\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, newText: '' };\n }\n TextEdit.del = del;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate)\n && Is.string(candidate.newText)\n && Range.is(candidate.range);\n }\n TextEdit.is = is;\n})(TextEdit || (TextEdit = {}));\nexport var ChangeAnnotation;\n(function (ChangeAnnotation) {\n function create(label, needsConfirmation, description) {\n const result = { 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 const 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 || (ChangeAnnotation = {}));\nexport var ChangeAnnotationIdentifier;\n(function (ChangeAnnotationIdentifier) {\n function is(value) {\n const candidate = value;\n return Is.string(candidate);\n }\n ChangeAnnotationIdentifier.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nexport var AnnotatedTextEdit;\n(function (AnnotatedTextEdit) {\n /**\n * Creates an annotated replace text edit.\n *\n * @param range The range of text to be replaced.\n * @param newText The new text.\n * @param annotation The annotation.\n */\n function replace(range, newText, annotation) {\n return { range, 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, 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, newText: '', annotationId: annotation };\n }\n AnnotatedTextEdit.del = del;\n function is(value) {\n const candidate = value;\n return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n AnnotatedTextEdit.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\n/**\n * The TextDocumentEdit namespace provides helper function to create\n * an edit that manipulates a text document.\n */\nexport var TextDocumentEdit;\n(function (TextDocumentEdit) {\n /**\n * Creates a new `TextDocumentEdit`\n */\n function create(textDocument, edits) {\n return { textDocument, edits };\n }\n TextDocumentEdit.create = create;\n function is(value) {\n const candidate = value;\n return Is.defined(candidate)\n && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument)\n && Array.isArray(candidate.edits);\n }\n TextDocumentEdit.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nexport var CreateFile;\n(function (CreateFile) {\n function create(uri, options, annotation) {\n const result = {\n kind: 'create',\n 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 const candidate = value;\n return candidate && candidate.kind === 'create' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n CreateFile.is = is;\n})(CreateFile || (CreateFile = {}));\nexport var RenameFile;\n(function (RenameFile) {\n function create(oldUri, newUri, options, annotation) {\n const result = {\n kind: 'rename',\n oldUri,\n 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 const candidate = value;\n return candidate && candidate.kind === 'rename' && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n RenameFile.is = is;\n})(RenameFile || (RenameFile = {}));\nexport var DeleteFile;\n(function (DeleteFile) {\n function create(uri, options, annotation) {\n const result = {\n kind: 'delete',\n 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 const candidate = value;\n return candidate && candidate.kind === 'delete' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.recursive === undefined || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === undefined || Is.boolean(candidate.options.ignoreIfNotExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n DeleteFile.is = is;\n})(DeleteFile || (DeleteFile = {}));\nexport var WorkspaceEdit;\n(function (WorkspaceEdit) {\n function is(value) {\n const candidate = value;\n return candidate &&\n (candidate.changes !== undefined || candidate.documentChanges !== undefined) &&\n (candidate.documentChanges === undefined || candidate.documentChanges.every((change) => {\n if (Is.string(change.kind)) {\n return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n }\n else {\n return TextDocumentEdit.is(change);\n }\n }));\n }\n WorkspaceEdit.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nclass TextEditChangeImpl {\n constructor(edits, changeAnnotations) {\n this.edits = edits;\n this.changeAnnotations = changeAnnotations;\n }\n insert(position, newText, annotation) {\n let edit;\n let 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 replace(range, newText, annotation) {\n let edit;\n let 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 delete(range, annotation) {\n let edit;\n let 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 add(edit) {\n this.edits.push(edit);\n }\n all() {\n return this.edits;\n }\n clear() {\n this.edits.splice(0, this.edits.length);\n }\n assertChangeAnnotations(value) {\n if (value === undefined) {\n throw new Error(`Text edit change is not configured to manage change annotations.`);\n }\n }\n}\nexport var SnippetTextEdit;\n(function (SnippetTextEdit) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate)\n && Range.is(candidate.range)\n && StringValue.isSnippet(candidate.snippet)\n && (candidate.annotationId === undefined ||\n (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId)));\n }\n SnippetTextEdit.is = is;\n})(SnippetTextEdit || (SnippetTextEdit = {}));\n/**\n * A helper class\n */\nclass ChangeAnnotations {\n constructor(annotations) {\n this._annotations = annotations === undefined ? Object.create(null) : annotations;\n this._counter = 0;\n this._size = 0;\n }\n all() {\n return this._annotations;\n }\n get size() {\n return this._size;\n }\n manage(idOrAnnotation, annotation) {\n let id;\n if (ChangeAnnotationIdentifier.is(idOrAnnotation)) {\n id = idOrAnnotation;\n }\n else {\n id = this.nextId();\n annotation = idOrAnnotation;\n }\n if (this._annotations[id] !== undefined) {\n throw new Error(`Id ${id} is already in use.`);\n }\n if (annotation === undefined) {\n throw new Error(`No annotation provided for id ${id}`);\n }\n this._annotations[id] = annotation;\n this._size++;\n return id;\n }\n nextId() {\n this._counter++;\n return this._counter.toString();\n }\n}\n/**\n * A workspace change helps constructing changes to a workspace.\n */\nexport class WorkspaceChange {\n constructor(workspaceEdit) {\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((change) => {\n if (TextDocumentEdit.is(change)) {\n const 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((key) => {\n const textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]);\n this._textEditChanges[key] = textEditChange;\n });\n }\n }\n else {\n this._workspaceEdit = {};\n }\n }\n /**\n * Returns the underlying {@link WorkspaceEdit} literal\n * use to be returned from a workspace edit operation like rename.\n */\n get edit() {\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 getTextEditChange(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 const textDocument = { uri: key.uri, version: key.version };\n let result = this._textEditChanges[textDocument.uri];\n if (!result) {\n const edits = [];\n const textDocumentEdit = {\n textDocument,\n 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 let result = this._textEditChanges[key];\n if (!result) {\n const edits = [];\n this._workspaceEdit.changes[key] = edits;\n result = new TextEditChangeImpl(edits);\n this._textEditChanges[key] = result;\n }\n return result;\n }\n }\n initDocumentChanges() {\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 initChanges() {\n if (this._workspaceEdit.documentChanges === undefined && this._workspaceEdit.changes === undefined) {\n this._workspaceEdit.changes = Object.create(null);\n }\n }\n createFile(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 let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let 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 renameFile(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 let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let 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 deleteFile(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 let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let 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}\n/**\n * The TextDocumentIdentifier namespace provides helper functions to work with\n * {@link TextDocumentIdentifier} literals.\n */\nexport var TextDocumentIdentifier;\n(function (TextDocumentIdentifier) {\n /**\n * Creates a new TextDocumentIdentifier literal.\n * @param uri The document's uri.\n */\n function create(uri) {\n return { uri };\n }\n TextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link TextDocumentIdentifier} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri);\n }\n TextDocumentIdentifier.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\n/**\n * The VersionedTextDocumentIdentifier namespace provides helper functions to work with\n * {@link VersionedTextDocumentIdentifier} literals.\n */\nexport var VersionedTextDocumentIdentifier;\n(function (VersionedTextDocumentIdentifier) {\n /**\n * Creates a new VersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\n */\n function create(uri, version) {\n return { uri, version };\n }\n VersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link VersionedTextDocumentIdentifier} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n }\n VersionedTextDocumentIdentifier.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\n/**\n * The OptionalVersionedTextDocumentIdentifier namespace provides helper functions to work with\n * {@link OptionalVersionedTextDocumentIdentifier} literals.\n */\nexport var OptionalVersionedTextDocumentIdentifier;\n(function (OptionalVersionedTextDocumentIdentifier) {\n /**\n * Creates a new OptionalVersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\n */\n function create(uri, version) {\n return { uri, version };\n }\n OptionalVersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link OptionalVersionedTextDocumentIdentifier} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n }\n OptionalVersionedTextDocumentIdentifier.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\n/**\n * Predefined Language kinds\n * @since 3.18.0\n */\nexport var LanguageKind;\n(function (LanguageKind) {\n LanguageKind.ABAP = 'abap';\n LanguageKind.WindowsBat = 'bat';\n LanguageKind.BibTeX = 'bibtex';\n LanguageKind.Clojure = 'clojure';\n LanguageKind.Coffeescript = 'coffeescript';\n LanguageKind.C = 'c';\n LanguageKind.CPP = 'cpp';\n LanguageKind.CSharp = 'csharp';\n LanguageKind.CSS = 'css';\n /**\n * @since 3.18.0\n * @proposed\n */\n LanguageKind.D = 'd';\n /**\n * @since 3.18.0\n * @proposed\n */\n LanguageKind.Delphi = 'pascal';\n LanguageKind.Diff = 'diff';\n LanguageKind.Dart = 'dart';\n LanguageKind.Dockerfile = 'dockerfile';\n LanguageKind.Elixir = 'elixir';\n LanguageKind.Erlang = 'erlang';\n LanguageKind.FSharp = 'fsharp';\n LanguageKind.GitCommit = 'git-commit';\n LanguageKind.GitRebase = 'rebase';\n LanguageKind.Go = 'go';\n LanguageKind.Groovy = 'groovy';\n LanguageKind.Handlebars = 'handlebars';\n LanguageKind.Haskell = 'haskell';\n LanguageKind.HTML = 'html';\n LanguageKind.Ini = 'ini';\n LanguageKind.Java = 'java';\n LanguageKind.JavaScript = 'javascript';\n LanguageKind.JavaScriptReact = 'javascriptreact';\n LanguageKind.JSON = 'json';\n LanguageKind.LaTeX = 'latex';\n LanguageKind.Less = 'less';\n LanguageKind.Lua = 'lua';\n LanguageKind.Makefile = 'makefile';\n LanguageKind.Markdown = 'markdown';\n LanguageKind.ObjectiveC = 'objective-c';\n LanguageKind.ObjectiveCPP = 'objective-cpp';\n /**\n * @since 3.18.0\n * @proposed\n */\n LanguageKind.Pascal = 'pascal';\n LanguageKind.Perl = 'perl';\n LanguageKind.Perl6 = 'perl6';\n LanguageKind.PHP = 'php';\n LanguageKind.Powershell = 'powershell';\n LanguageKind.Pug = 'jade';\n LanguageKind.Python = 'python';\n LanguageKind.R = 'r';\n LanguageKind.Razor = 'razor';\n LanguageKind.Ruby = 'ruby';\n LanguageKind.Rust = 'rust';\n LanguageKind.SCSS = 'scss';\n LanguageKind.SASS = 'sass';\n LanguageKind.Scala = 'scala';\n LanguageKind.ShaderLab = 'shaderlab';\n LanguageKind.ShellScript = 'shellscript';\n LanguageKind.SQL = 'sql';\n LanguageKind.Swift = 'swift';\n LanguageKind.TypeScript = 'typescript';\n LanguageKind.TypeScriptReact = 'typescriptreact';\n LanguageKind.TeX = 'tex';\n LanguageKind.VisualBasic = 'vb';\n LanguageKind.XML = 'xml';\n LanguageKind.XSL = 'xsl';\n LanguageKind.YAML = 'yaml';\n})(LanguageKind || (LanguageKind = {}));\n/**\n * The TextDocumentItem namespace provides helper functions to work with\n * {@link TextDocumentItem} literals.\n */\nexport var TextDocumentItem;\n(function (TextDocumentItem) {\n /**\n * Creates a new TextDocumentItem literal.\n * @param uri The document's uri.\n * @param languageId The document's language identifier.\n * @param version The document's version number.\n * @param text The document's text.\n */\n function create(uri, languageId, version, text) {\n return { uri, languageId, version, text };\n }\n TextDocumentItem.create = create;\n /**\n * Checks whether the given literal conforms to the {@link TextDocumentItem} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n }\n TextDocumentItem.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\n/**\n * Describes the content type that a client supports in various\n * result literals like `Hover`, `ParameterInfo` or `CompletionItem`.\n *\n * Please note that `MarkupKinds` must not start with a `$`. This kinds\n * are reserved for internal usage.\n */\nexport var MarkupKind;\n(function (MarkupKind) {\n /**\n * Plain text is supported as a content format\n */\n MarkupKind.PlainText = 'plaintext';\n /**\n * Markdown is supported as a content format\n */\n MarkupKind.Markdown = 'markdown';\n /**\n * Checks whether the given value is a value of the {@link MarkupKind} type.\n */\n function is(value) {\n const candidate = value;\n return candidate === MarkupKind.PlainText || candidate === MarkupKind.Markdown;\n }\n MarkupKind.is = is;\n})(MarkupKind || (MarkupKind = {}));\nexport var MarkupContent;\n(function (MarkupContent) {\n /**\n * Checks whether the given value conforms to the {@link MarkupContent} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n }\n MarkupContent.is = is;\n})(MarkupContent || (MarkupContent = {}));\n/**\n * The kind of a completion entry.\n */\nexport var CompletionItemKind;\n(function (CompletionItemKind) {\n CompletionItemKind.Text = 1;\n CompletionItemKind.Method = 2;\n CompletionItemKind.Function = 3;\n CompletionItemKind.Constructor = 4;\n CompletionItemKind.Field = 5;\n CompletionItemKind.Variable = 6;\n CompletionItemKind.Class = 7;\n CompletionItemKind.Interface = 8;\n CompletionItemKind.Module = 9;\n CompletionItemKind.Property = 10;\n CompletionItemKind.Unit = 11;\n CompletionItemKind.Value = 12;\n CompletionItemKind.Enum = 13;\n CompletionItemKind.Keyword = 14;\n CompletionItemKind.Snippet = 15;\n CompletionItemKind.Color = 16;\n CompletionItemKind.File = 17;\n CompletionItemKind.Reference = 18;\n CompletionItemKind.Folder = 19;\n CompletionItemKind.EnumMember = 20;\n CompletionItemKind.Constant = 21;\n CompletionItemKind.Struct = 22;\n CompletionItemKind.Event = 23;\n CompletionItemKind.Operator = 24;\n CompletionItemKind.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\n/**\n * Defines whether the insert text in a completion item should be interpreted as\n * plain text or a snippet.\n */\nexport var InsertTextFormat;\n(function (InsertTextFormat) {\n /**\n * The primary text to be inserted is treated as a plain string.\n */\n InsertTextFormat.PlainText = 1;\n /**\n * The primary text to be inserted is treated as a snippet.\n *\n * A snippet can define tab stops and placeholders with `$1`, `$2`\n * and `${3:foo}`. `$0` defines the final tab stop, it defaults to\n * the end of the snippet. Placeholders with equal identifiers are linked,\n * that is typing in one will update others too.\n *\n * See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#snippet_syntax\n */\n InsertTextFormat.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\n/**\n * Completion item tags are extra annotations that tweak the rendering of a completion\n * item.\n *\n * @since 3.15.0\n */\nexport var CompletionItemTag;\n(function (CompletionItemTag) {\n /**\n * Render a completion as obsolete, usually using a strike-out.\n */\n CompletionItemTag.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\n/**\n * The InsertReplaceEdit namespace provides functions to deal with insert / replace edits.\n *\n * @since 3.16.0\n */\nexport var InsertReplaceEdit;\n(function (InsertReplaceEdit) {\n /**\n * Creates a new insert / replace edit\n */\n function create(newText, insert, replace) {\n return { newText, insert, replace };\n }\n InsertReplaceEdit.create = create;\n /**\n * Checks whether the given literal conforms to the {@link InsertReplaceEdit} interface.\n */\n function is(value) {\n const candidate = value;\n return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n }\n InsertReplaceEdit.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\n/**\n * How whitespace and indentation is handled during completion\n * item insertion.\n *\n * @since 3.16.0\n */\nexport var InsertTextMode;\n(function (InsertTextMode) {\n /**\n * The insertion or replace strings is taken as it is. If the\n * value is multi line the lines below the cursor will be\n * inserted using the indentation defined in the string value.\n * The client will not apply any kind of adjustments to the\n * string.\n */\n InsertTextMode.asIs = 1;\n /**\n * The editor adjusts leading whitespace of new lines so that\n * they match the indentation up to the cursor of the line for\n * which the item is accepted.\n *\n * Consider a line like this: <2tabs><cursor><3tabs>foo. Accepting a\n * multi line completion item is indented using 2 tabs and all\n * following lines inserted will be indented using 2 tabs as well.\n */\n InsertTextMode.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\n/**\n * Defines how values from a set of defaults and an individual item will be\n * merged.\n *\n * @since 3.18.0\n */\nexport var ApplyKind;\n(function (ApplyKind) {\n /**\n * The value from the individual item (if provided and not `null`) will be\n * used instead of the default.\n */\n ApplyKind.Replace = 1;\n /**\n * The value from the item will be merged with the default.\n *\n * The specific rules for mergeing values are defined against each field\n * that supports merging.\n */\n ApplyKind.Merge = 2;\n})(ApplyKind || (ApplyKind = {}));\nexport var CompletionItemLabelDetails;\n(function (CompletionItemLabelDetails) {\n function is(value) {\n const 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 || (CompletionItemLabelDetails = {}));\n/**\n * The CompletionItem namespace provides functions to deal with\n * completion items.\n */\nexport var CompletionItem;\n(function (CompletionItem) {\n /**\n * Create a completion item and seed it with a label.\n * @param label The completion item's label\n */\n function create(label) {\n return { label };\n }\n CompletionItem.create = create;\n})(CompletionItem || (CompletionItem = {}));\n/**\n * The CompletionList namespace provides functions to deal with\n * completion lists.\n */\nexport var CompletionList;\n(function (CompletionList) {\n /**\n * Creates a new completion list.\n *\n * @param items The completion items.\n * @param isIncomplete The list is not complete.\n */\n function create(items, isIncomplete) {\n return { items: items ? items : [], isIncomplete: !!isIncomplete };\n }\n CompletionList.create = create;\n})(CompletionList || (CompletionList = {}));\nexport var MarkedString;\n(function (MarkedString) {\n /**\n * Creates a marked string from plain text.\n *\n * @param plainText The plain text.\n */\n function fromPlainText(plainText) {\n return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, '\\\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\n }\n MarkedString.fromPlainText = fromPlainText;\n /**\n * Checks whether the given value conforms to the {@link MarkedString} type.\n */\n function is(value) {\n const candidate = value;\n return Is.string(candidate) || (Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value));\n }\n MarkedString.is = is;\n})(MarkedString || (MarkedString = {}));\nexport var Hover;\n(function (Hover) {\n /**\n * Checks whether the given value conforms to the {@link Hover} interface.\n */\n function is(value) {\n const candidate = value;\n return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) ||\n MarkedString.is(candidate.contents) ||\n Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === undefined || Range.is(value.range));\n }\n Hover.is = is;\n})(Hover || (Hover = {}));\n/**\n * The ParameterInformation namespace provides helper functions to work with\n * {@link ParameterInformation} literals.\n */\nexport var ParameterInformation;\n(function (ParameterInformation) {\n /**\n * Creates a new parameter information literal.\n *\n * @param label A label string.\n * @param documentation A doc string.\n */\n function create(label, documentation) {\n return documentation ? { label, documentation } : { label };\n }\n ParameterInformation.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\n/**\n * The SignatureInformation namespace provides helper functions to work with\n * {@link SignatureInformation} literals.\n */\nexport var SignatureInformation;\n(function (SignatureInformation) {\n function create(label, documentation, ...parameters) {\n const result = { label };\n if (Is.defined(documentation)) {\n result.documentation = documentation;\n }\n if (Is.defined(parameters)) {\n result.parameters = parameters;\n }\n else {\n result.parameters = [];\n }\n return result;\n }\n SignatureInformation.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n /**\n * A textual occurrence.\n */\n DocumentHighlightKind.Text = 1;\n /**\n * Read-access of a symbol, like reading a variable.\n */\n DocumentHighlightKind.Read = 2;\n /**\n * Write-access of a symbol, like writing to a variable.\n */\n DocumentHighlightKind.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * DocumentHighlight namespace to provide helper functions to work with\n * {@link DocumentHighlight} literals.\n */\nexport var DocumentHighlight;\n(function (DocumentHighlight) {\n /**\n * Create a DocumentHighlight object.\n * @param range The range the highlight applies to.\n * @param kind The highlight kind\n */\n function create(range, kind) {\n const result = { range };\n if (Is.number(kind)) {\n result.kind = kind;\n }\n return result;\n }\n DocumentHighlight.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\n/**\n * A symbol kind.\n */\nexport var SymbolKind;\n(function (SymbolKind) {\n SymbolKind.File = 1;\n SymbolKind.Module = 2;\n SymbolKind.Namespace = 3;\n SymbolKind.Package = 4;\n SymbolKind.Class = 5;\n SymbolKind.Method = 6;\n SymbolKind.Property = 7;\n SymbolKind.Field = 8;\n SymbolKind.Constructor = 9;\n SymbolKind.Enum = 10;\n SymbolKind.Interface = 11;\n SymbolKind.Function = 12;\n SymbolKind.Variable = 13;\n SymbolKind.Constant = 14;\n SymbolKind.String = 15;\n SymbolKind.Number = 16;\n SymbolKind.Boolean = 17;\n SymbolKind.Array = 18;\n SymbolKind.Object = 19;\n SymbolKind.Key = 20;\n SymbolKind.Null = 21;\n SymbolKind.EnumMember = 22;\n SymbolKind.Struct = 23;\n SymbolKind.Event = 24;\n SymbolKind.Operator = 25;\n SymbolKind.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\n/**\n * Symbol tags are extra annotations that tweak the rendering of a symbol.\n *\n * @since 3.16\n */\nexport var SymbolTag;\n(function (SymbolTag) {\n /**\n * Render a symbol as obsolete, usually using a strike-out.\n */\n SymbolTag.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nexport var SymbolInformation;\n(function (SymbolInformation) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the location of the symbol.\n * @param uri The resource of the location of symbol.\n * @param containerName The name of the symbol containing the symbol.\n */\n function create(name, kind, range, uri, containerName) {\n const result = {\n name,\n kind,\n location: { uri, range }\n };\n if (containerName) {\n result.containerName = containerName;\n }\n return result;\n }\n SymbolInformation.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nexport 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, kind, location: { uri, range } }\n : { name, kind, location: { uri } };\n }\n WorkspaceSymbol.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nexport var DocumentSymbol;\n(function (DocumentSymbol) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param detail The detail of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the symbol.\n * @param selectionRange The selectionRange of the symbol.\n * @param children Children of the symbol.\n */\n function create(name, detail, kind, range, selectionRange, children) {\n const result = {\n name,\n detail,\n kind,\n range,\n 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 {@link DocumentSymbol} interface.\n */\n function is(value) {\n const candidate = value;\n return candidate &&\n Is.string(candidate.name) && Is.number(candidate.kind) &&\n Range.is(candidate.range) && Range.is(candidate.selectionRange) &&\n (candidate.detail === undefined || Is.string(candidate.detail)) &&\n (candidate.deprecated === undefined || Is.boolean(candidate.deprecated)) &&\n (candidate.children === undefined || Array.isArray(candidate.children)) &&\n (candidate.tags === undefined || Array.isArray(candidate.tags));\n }\n DocumentSymbol.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\n/**\n * A set of predefined code action kinds\n */\nexport var CodeActionKind;\n(function (CodeActionKind) {\n /**\n * Empty kind.\n */\n CodeActionKind.Empty = '';\n /**\n * Base kind for quickfix actions: 'quickfix'\n */\n CodeActionKind.QuickFix = 'quickfix';\n /**\n * Base kind for refactoring actions: 'refactor'\n */\n CodeActionKind.Refactor = 'refactor';\n /**\n * Base kind for refactoring extraction actions: 'refactor.extract'\n *\n * Example extract actions:\n *\n * - Extract method\n * - Extract function\n * - Extract variable\n * - Extract interface from class\n * - ...\n */\n CodeActionKind.RefactorExtract = 'refactor.extract';\n /**\n * Base kind for refactoring inline actions: 'refactor.inline'\n *\n * Example inline actions:\n *\n * - Inline function\n * - Inline variable\n * - Inline constant\n * - ...\n */\n CodeActionKind.RefactorInline = 'refactor.inline';\n /**\n * Base kind for refactoring move actions: `refactor.move`\n *\n * Example move actions:\n *\n * - Move a function to a new file\n * - Move a property between classes\n * - Move method to base class\n * - ...\n *\n * @since 3.18.0\n * @proposed\n */\n CodeActionKind.RefactorMove = 'refactor.move';\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 /**\n * Base kind for all code actions applying to the entire notebook's scope. CodeActionKinds using\n * this should always begin with `notebook.`\n *\n * @since 3.18.0\n */\n CodeActionKind.Notebook = 'notebook';\n})(CodeActionKind || (CodeActionKind = {}));\n/**\n * The reason why code actions were requested.\n *\n * @since 3.17.0\n */\nexport 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 || (CodeActionTriggerKind = {}));\n/**\n * The CodeActionContext namespace provides helper functions to work with\n * {@link CodeActionContext} literals.\n */\nexport var CodeActionContext;\n(function (CodeActionContext) {\n /**\n * Creates a new CodeActionContext literal.\n */\n function create(diagnostics, only, triggerKind) {\n const result = { 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 {@link CodeActionContext} interface.\n */\n function is(value) {\n const 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 || (CodeActionContext = {}));\n/**\n * Code action tags are extra annotations that tweak the behavior of a code action.\n *\n * @since 3.18.0 - proposed\n */\nexport var CodeActionTag;\n(function (CodeActionTag) {\n /**\n * Marks the code action as LLM-generated.\n */\n CodeActionTag.LLMGenerated = 1;\n /**\n * Checks whether the given literal conforms to the {@link CodeActionTag} interface.\n */\n function is(value) {\n return Is.defined(value) && value === CodeActionTag.LLMGenerated;\n }\n CodeActionTag.is = is;\n})(CodeActionTag || (CodeActionTag = {}));\nexport var CodeAction;\n(function (CodeAction) {\n function create(title, kindOrCommandOrEdit, kind) {\n const result = { title };\n let 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 const 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 (candidate.tags === undefined || Is.typedArray(candidate.tags, CodeActionTag.is));\n }\n CodeAction.is = is;\n})(CodeAction || (CodeAction = {}));\n/**\n * The CodeLens namespace provides helper functions to work with\n * {@link CodeLens} literals.\n */\nexport var CodeLens;\n(function (CodeLens) {\n /**\n * Creates a new CodeLens literal.\n */\n function create(range, data) {\n const result = { 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 {@link CodeLens} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n }\n CodeLens.is = is;\n})(CodeLens || (CodeLens = {}));\n/**\n * The FormattingOptions namespace provides helper functions to work with\n * {@link FormattingOptions} literals.\n */\nexport var FormattingOptions;\n(function (FormattingOptions) {\n /**\n * Creates a new FormattingOptions literal.\n */\n function create(tabSize, insertSpaces) {\n return { tabSize, insertSpaces };\n }\n FormattingOptions.create = create;\n /**\n * Checks whether the given literal conforms to the {@link FormattingOptions} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n }\n FormattingOptions.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\n/**\n * The DocumentLink namespace provides helper functions to work with\n * {@link DocumentLink} literals.\n */\nexport var DocumentLink;\n(function (DocumentLink) {\n /**\n * Creates a new DocumentLink literal.\n */\n function create(range, target, data) {\n return { range, target, data };\n }\n DocumentLink.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DocumentLink} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n }\n DocumentLink.is = is;\n})(DocumentLink || (DocumentLink = {}));\n/**\n * The SelectionRange namespace provides helper function to work with\n * SelectionRange literals.\n */\nexport var SelectionRange;\n(function (SelectionRange) {\n /**\n * Creates a new SelectionRange\n * @param range the range.\n * @param parent an optional parent.\n */\n function create(range, parent) {\n return { range, parent };\n }\n SelectionRange.create = create;\n function is(value) {\n const 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 || (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 */\nexport 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 /**\n * @since 3.18.0\n */\n SemanticTokenTypes[\"label\"] = \"label\";\n})(SemanticTokenTypes || (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 */\nexport 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 || (SemanticTokenModifiers = {}));\n/**\n * @since 3.16.0\n */\nexport var SemanticTokens;\n(function (SemanticTokens) {\n function is(value) {\n const 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 || (SemanticTokens = {}));\n/**\n * The InlineValueText namespace provides functions to deal with InlineValueTexts.\n *\n * @since 3.17.0\n */\nexport var InlineValueText;\n(function (InlineValueText) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, text) {\n return { range, text };\n }\n InlineValueText.create = create;\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n }\n InlineValueText.is = is;\n})(InlineValueText || (InlineValueText = {}));\n/**\n * The InlineValueVariableLookup namespace provides functions to deal with InlineValueVariableLookups.\n *\n * @since 3.17.0\n */\nexport var InlineValueVariableLookup;\n(function (InlineValueVariableLookup) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, variableName, caseSensitiveLookup) {\n return { range, variableName, caseSensitiveLookup };\n }\n InlineValueVariableLookup.create = create;\n function is(value) {\n const 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 || (InlineValueVariableLookup = {}));\n/**\n * The InlineValueEvaluatableExpression namespace provides functions to deal with InlineValueEvaluatableExpression.\n *\n * @since 3.17.0\n */\nexport var InlineValueEvaluatableExpression;\n(function (InlineValueEvaluatableExpression) {\n /**\n * Creates a new InlineValueEvaluatableExpression literal.\n */\n function create(range, expression) {\n return { range, expression };\n }\n InlineValueEvaluatableExpression.create = create;\n function is(value) {\n const 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 || (InlineValueEvaluatableExpression = {}));\n/**\n * The InlineValueContext namespace provides helper functions to work with\n * {@link InlineValueContext} literals.\n *\n * @since 3.17.0\n */\nexport var InlineValueContext;\n(function (InlineValueContext) {\n /**\n * Creates a new InlineValueContext literal.\n */\n function create(frameId, stoppedLocation) {\n return { frameId, stoppedLocation };\n }\n InlineValueContext.create = create;\n /**\n * Checks whether the given literal conforms to the {@link InlineValueContext} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Range.is(value.stoppedLocation);\n }\n InlineValueContext.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\n/**\n * Inlay hint kinds.\n *\n * @since 3.17.0\n */\nexport 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 || (InlayHintKind = {}));\nexport var InlayHintLabelPart;\n(function (InlayHintLabelPart) {\n function create(value) {\n return { value };\n }\n InlayHintLabelPart.create = create;\n function is(value) {\n const 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 || (InlayHintLabelPart = {}));\nexport var InlayHint;\n(function (InlayHint) {\n function create(position, label, kind) {\n const result = { position, label };\n if (kind !== undefined) {\n result.kind = kind;\n }\n return result;\n }\n InlayHint.create = create;\n function is(value) {\n const 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 || (InlayHint = {}));\nexport var StringValue;\n(function (StringValue) {\n function createSnippet(value) {\n return { kind: 'snippet', value };\n }\n StringValue.createSnippet = createSnippet;\n function isSnippet(value) {\n const candidate = value;\n return Is.objectLiteral(candidate)\n && candidate.kind === 'snippet'\n && Is.string(candidate.value);\n }\n StringValue.isSnippet = isSnippet;\n})(StringValue || (StringValue = {}));\nexport var InlineCompletionItem;\n(function (InlineCompletionItem) {\n function create(insertText, filterText, range, command) {\n return { insertText, filterText, range, command };\n }\n InlineCompletionItem.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nexport var InlineCompletionList;\n(function (InlineCompletionList) {\n function create(items) {\n return { items };\n }\n InlineCompletionList.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\n/**\n * Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered.\n *\n * @since 3.18.0\n * @proposed\n */\nexport var InlineCompletionTriggerKind;\n(function (InlineCompletionTriggerKind) {\n /**\n * Completion was triggered explicitly by a user gesture.\n */\n InlineCompletionTriggerKind.Invoked = 1;\n /**\n * Completion was triggered automatically while editing.\n */\n InlineCompletionTriggerKind.Automatic = 2;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nexport var SelectedCompletionInfo;\n(function (SelectedCompletionInfo) {\n function create(range, text) {\n return { range, text };\n }\n SelectedCompletionInfo.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nexport var InlineCompletionContext;\n(function (InlineCompletionContext) {\n function create(triggerKind, selectedCompletionInfo) {\n return { triggerKind, selectedCompletionInfo };\n }\n InlineCompletionContext.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nexport var WorkspaceFolder;\n(function (WorkspaceFolder) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n }\n WorkspaceFolder.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nexport const EOL = ['\\n', '\\r\\n', '\\r'];\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nexport var TextDocument;\n(function (TextDocument) {\n /**\n * Creates a new ITextDocument literal from the given uri and content.\n * @param uri The document's uri.\n * @param languageId The document's language Id.\n * @param 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 {@link ITextDocument} interface.\n */\n function is(value) {\n const 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 let text = document.getText();\n const sortedEdits = mergeSort(edits, (a, b) => {\n const 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 let lastModifiedOffset = text.length;\n for (let i = sortedEdits.length - 1; i >= 0; i--) {\n const e = sortedEdits[i];\n const startOffset = document.offsetAt(e.range.start);\n const 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 const p = (data.length / 2) | 0;\n const left = data.slice(0, p);\n const right = data.slice(p);\n mergeSort(left, compare);\n mergeSort(right, compare);\n let leftIdx = 0;\n let rightIdx = 0;\n let i = 0;\n while (leftIdx < left.length && rightIdx < right.length) {\n const ret = compare(left[leftIdx], right[rightIdx]);\n if (ret <= 0) {\n // smaller_equal -> take left to preserve order\n data[i++] = left[leftIdx++];\n }\n else {\n // greater -> take right\n data[i++] = right[rightIdx++];\n }\n }\n while (leftIdx < left.length) {\n data[i++] = left[leftIdx++];\n }\n while (rightIdx < right.length) {\n data[i++] = right[rightIdx++];\n }\n return data;\n }\n})(TextDocument || (TextDocument = {}));\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nclass FullTextDocument {\n constructor(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 get uri() {\n return this._uri;\n }\n get languageId() {\n return this._languageId;\n }\n get version() {\n return this._version;\n }\n getText(range) {\n if (range) {\n const start = this.offsetAt(range.start);\n const end = this.offsetAt(range.end);\n return this._content.substring(start, end);\n }\n return this._content;\n }\n update(event, version) {\n this._content = event.text;\n this._version = version;\n this._lineOffsets = undefined;\n }\n getLineOffsets() {\n if (this._lineOffsets === undefined) {\n const lineOffsets = [];\n const text = this._content;\n let isLineStart = true;\n for (let i = 0; i < text.length; i++) {\n if (isLineStart) {\n lineOffsets.push(i);\n isLineStart = false;\n }\n const 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 positionAt(offset) {\n offset = Math.max(Math.min(offset, this._content.length), 0);\n const lineOffsets = this.getLineOffsets();\n let low = 0, high = lineOffsets.length;\n if (high === 0) {\n return Position.create(0, offset);\n }\n while (low < high) {\n const 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 const line = low - 1;\n return Position.create(line, offset - lineOffsets[line]);\n }\n offsetAt(position) {\n const 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 const lineOffset = lineOffsets[position.line];\n const 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 get lineCount() {\n return this.getLineOffsets().length;\n }\n}\nvar Is;\n(function (Is) {\n const toString = Object.prototype.toString;\n function defined(value) {\n return typeof value !== 'undefined';\n }\n Is.defined = defined;\n function undefined(value) {\n return typeof value === 'undefined';\n }\n Is.undefined = undefined;\n function boolean(value) {\n return value === true || value === false;\n }\n Is.boolean = boolean;\n function string(value) {\n return toString.call(value) === '[object String]';\n }\n Is.string = string;\n function number(value) {\n return toString.call(value) === '[object Number]';\n }\n Is.number = number;\n function numberRange(value, min, max) {\n return toString.call(value) === '[object Number]' && min <= value && value <= max;\n }\n Is.numberRange = numberRange;\n function integer(value) {\n return toString.call(value) === '[object Number]' && -2147483648 <= value && value <= 2147483647;\n }\n Is.integer = integer;\n function uinteger(value) {\n return toString.call(value) === '[object Number]' && 0 <= value && value <= 2147483647;\n }\n Is.uinteger = uinteger;\n function func(value) {\n return toString.call(value) === '[object Function]';\n }\n Is.func = func;\n function objectLiteral(value) {\n // Strictly speaking class instances pass this check as well. Since the LSP\n // doesn't use classes we ignore this for now. If we do we need to add something\n // like this: `Object.getPrototypeOf(Object.getPrototypeOf(x)) === null`\n return value !== null && typeof value === 'object';\n }\n Is.objectLiteral = objectLiteral;\n function typedArray(value, check) {\n return Array.isArray(value) && value.every(check);\n }\n Is.typedArray = typedArray;\n})(Is || (Is = {}));\n", "\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CM = exports.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 = MessageDirection = {}));\nclass RegistrationType {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n ____;\n method;\n constructor(method) {\n this.method = method;\n }\n}\nexports.RegistrationType = RegistrationType;\nclass ProtocolRequestType0 extends vscode_jsonrpc_1.RequestType0 {\n /**\n * Clients must not use these properties. They are here to ensure correct typing.\n * in TypeScript\n */\n __;\n ___;\n ____;\n _pr;\n constructor(method) {\n super(method);\n }\n}\nexports.ProtocolRequestType0 = ProtocolRequestType0;\nclass ProtocolRequestType extends vscode_jsonrpc_1.RequestType {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n __;\n ___;\n ____;\n _pr;\n constructor(method) {\n super(method, vscode_jsonrpc_1.ParameterStructures.byName);\n }\n}\nexports.ProtocolRequestType = ProtocolRequestType;\nclass ProtocolNotificationType0 extends vscode_jsonrpc_1.NotificationType0 {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n ___;\n ____;\n constructor(method) {\n super(method);\n }\n}\nexports.ProtocolNotificationType0 = ProtocolNotificationType0;\nclass ProtocolNotificationType extends vscode_jsonrpc_1.NotificationType {\n /**\n * Clients must not use this property. It is here to ensure correct typing.\n */\n ___;\n ____;\n constructor(method) {\n super(method, vscode_jsonrpc_1.ParameterStructures.byName);\n }\n}\nexports.ProtocolNotificationType = ProtocolNotificationType;\nvar CM;\n(function (CM) {\n function create(client, server) {\n return { client, server };\n }\n CM.create = create;\n})(CM || (exports.CM = CM = {}));\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';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolean = boolean;\nexports.string = string;\nexports.number = number;\nexports.error = error;\nexports.func = func;\nexports.array = array;\nexports.stringArray = stringArray;\nexports.typedArray = typedArray;\nexports.objectLiteral = objectLiteral;\nfunction boolean(value) {\n return value === true || value === false;\n}\nfunction string(value) {\n return typeof value === 'string' || value instanceof String;\n}\nfunction number(value) {\n return typeof value === 'number' || value instanceof Number;\n}\nfunction error(value) {\n return value instanceof Error;\n}\nfunction func(value) {\n return typeof value === 'function';\n}\nfunction array(value) {\n return Array.isArray(value);\n}\nfunction stringArray(value) {\n return array(value) && value.every(elem => string(elem));\n}\nfunction typedArray(value, check) {\n return Array.isArray(value) && value.every(check);\n}\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}\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.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 {@link TextDocumentPositionParams}\n * the response is of type {@link Definition} or a 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.capabilities = messages_1.CM.create('textDocument.implementation', 'implementationProvider');\n})(ImplementationRequest || (exports.ImplementationRequest = ImplementationRequest = {}));\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.TypeDefinitionRequest = 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 {@link TextDocumentPositionParams}\n * the response is of type {@link Definition} or a 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.capabilities = messages_1.CM.create('textDocument.typeDefinition', 'typeDefinitionProvider');\n})(TypeDefinitionRequest || (exports.TypeDefinitionRequest = TypeDefinitionRequest = {}));\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.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.capabilities = messages_1.CM.create('workspace.workspaceFolders', 'workspace.workspaceFolders');\n})(WorkspaceFoldersRequest || (exports.WorkspaceFoldersRequest = 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.capabilities = messages_1.CM.create(undefined, 'workspace.workspaceFolders.changeNotifications');\n})(DidChangeWorkspaceFoldersNotification || (exports.DidChangeWorkspaceFoldersNotification = DidChangeWorkspaceFoldersNotification = {}));\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.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.capabilities = messages_1.CM.create('workspace.configuration', undefined);\n})(ConfigurationRequest || (exports.ConfigurationRequest = ConfigurationRequest = {}));\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.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 {@link DocumentColorParams} the\n * response is of type {@link 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.capabilities = messages_1.CM.create('textDocument.colorProvider', 'colorProvider');\n})(DocumentColorRequest || (exports.DocumentColorRequest = DocumentColorRequest = {}));\n/**\n * A request to list all presentation for a color. The request's\n * parameter is of type {@link ColorPresentationParams} the\n * response is of type {@link 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.capabilities = messages_1.CM.create('textDocument.colorProvider', 'colorProvider');\n})(ColorPresentationRequest || (exports.ColorPresentationRequest = ColorPresentationRequest = {}));\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.FoldingRangeRefreshRequest = exports.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 {@link FoldingRangeParams}, the\n * response is of type {@link 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.capabilities = messages_1.CM.create('textDocument.foldingRange', 'foldingRangeProvider');\n})(FoldingRangeRequest || (exports.FoldingRangeRequest = FoldingRangeRequest = {}));\n/**\n * @since 3.18.0\n * @proposed\n */\nvar FoldingRangeRefreshRequest;\n(function (FoldingRangeRefreshRequest) {\n FoldingRangeRefreshRequest.method = `workspace/foldingRange/refresh`;\n FoldingRangeRefreshRequest.messageDirection = messages_1.MessageDirection.serverToClient;\n FoldingRangeRefreshRequest.type = new messages_1.ProtocolRequestType0(FoldingRangeRefreshRequest.method);\n FoldingRangeRefreshRequest.capabilities = messages_1.CM.create('workspace.foldingRange.refreshSupport', undefined);\n})(FoldingRangeRefreshRequest || (exports.FoldingRangeRefreshRequest = FoldingRangeRefreshRequest = {}));\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.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 {@link TextDocumentPositionParams}\n * the response is of type {@link Declaration} or a typed array of {@link DeclarationLink}\n * or a Thenable that resolves 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.capabilities = messages_1.CM.create('textDocument.declaration', 'declarationProvider');\n})(DeclarationRequest || (exports.DeclarationRequest = DeclarationRequest = {}));\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.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 {@link SelectionRangeParams}, the\n * response is of type {@link 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.capabilities = messages_1.CM.create('textDocument.selectionRange', 'selectionRangeProvider');\n})(SelectionRangeRequest || (exports.SelectionRangeRequest = SelectionRangeRequest = {}));\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.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 = 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.capabilities = messages_1.CM.create('window.workDoneProgress', undefined);\n})(WorkDoneProgressCreateRequest || (exports.WorkDoneProgressCreateRequest = 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 = WorkDoneProgressCancelNotification = {}));\n", "\"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.capabilities = messages_1.CM.create('textDocument.callHierarchy', 'callHierarchyProvider');\n})(CallHierarchyPrepareRequest || (exports.CallHierarchyPrepareRequest = 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 = 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 = CallHierarchyOutgoingCallsRequest = {}));\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.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 = TokenFormat = {}));\nvar SemanticTokensRegistrationType;\n(function (SemanticTokensRegistrationType) {\n SemanticTokensRegistrationType.method = 'textDocument/semanticTokens';\n SemanticTokensRegistrationType.type = new messages_1.RegistrationType(SemanticTokensRegistrationType.method);\n})(SemanticTokensRegistrationType || (exports.SemanticTokensRegistrationType = 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.capabilities = messages_1.CM.create('textDocument.semanticTokens', 'semanticTokensProvider');\n})(SemanticTokensRequest || (exports.SemanticTokensRequest = 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.capabilities = messages_1.CM.create('textDocument.semanticTokens.requests.full.delta', 'semanticTokensProvider.full.delta');\n})(SemanticTokensDeltaRequest || (exports.SemanticTokensDeltaRequest = 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.capabilities = messages_1.CM.create('textDocument.semanticTokens.requests.range', 'semanticTokensProvider.range');\n})(SemanticTokensRangeRequest || (exports.SemanticTokensRangeRequest = 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.serverToClient;\n SemanticTokensRefreshRequest.type = new messages_1.ProtocolRequestType0(SemanticTokensRefreshRequest.method);\n SemanticTokensRefreshRequest.capabilities = messages_1.CM.create('workspace.semanticTokens.refreshSupport', undefined);\n})(SemanticTokensRefreshRequest || (exports.SemanticTokensRefreshRequest = SemanticTokensRefreshRequest = {}));\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.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.capabilities = messages_1.CM.create('window.showDocument.support', undefined);\n})(ShowDocumentRequest || (exports.ShowDocumentRequest = ShowDocumentRequest = {}));\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.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.capabilities = messages_1.CM.create('textDocument.linkedEditingRange', 'linkedEditingRangeProvider');\n})(LinkedEditingRangeRequest || (exports.LinkedEditingRangeRequest = LinkedEditingRangeRequest = {}));\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.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 = 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 * The request can return a `WorkspaceEdit` which will be applied to workspace before the\n * files are created. Hence the `WorkspaceEdit` can not manipulate the content of the file\n * to be created.\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.capabilities = messages_1.CM.create('workspace.fileOperations.willCreate', 'workspace.fileOperations.willCreate');\n})(WillCreateFilesRequest || (exports.WillCreateFilesRequest = 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.capabilities = messages_1.CM.create('workspace.fileOperations.didCreate', 'workspace.fileOperations.didCreate');\n})(DidCreateFilesNotification || (exports.DidCreateFilesNotification = 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.capabilities = messages_1.CM.create('workspace.fileOperations.willRename', 'workspace.fileOperations.willRename');\n})(WillRenameFilesRequest || (exports.WillRenameFilesRequest = 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.capabilities = messages_1.CM.create('workspace.fileOperations.didRename', 'workspace.fileOperations.didRename');\n})(DidRenameFilesNotification || (exports.DidRenameFilesNotification = 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.capabilities = messages_1.CM.create('workspace.fileOperations.didDelete', 'workspace.fileOperations.didDelete');\n})(DidDeleteFilesNotification || (exports.DidDeleteFilesNotification = 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.capabilities = messages_1.CM.create('workspace.fileOperations.willDelete', 'workspace.fileOperations.willDelete');\n})(WillDeleteFilesRequest || (exports.WillDeleteFilesRequest = WillDeleteFilesRequest = {}));\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.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 = 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 = 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 {@link TextDocumentPositionParams}.\n * The response is of type {@link 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.capabilities = messages_1.CM.create('textDocument.moniker', 'monikerProvider');\n})(MonikerRequest || (exports.MonikerRequest = MonikerRequest = {}));\n", "\"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.capabilities = messages_1.CM.create('textDocument.typeHierarchy', 'typeHierarchyProvider');\n})(TypeHierarchyPrepareRequest || (exports.TypeHierarchyPrepareRequest = 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 = 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 = TypeHierarchySubtypesRequest = {}));\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.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 {@link InlineValueParams}, the response is of type\n * {@link 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.capabilities = messages_1.CM.create('textDocument.inlineValue', 'inlineValueProvider');\n})(InlineValueRequest || (exports.InlineValueRequest = 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.serverToClient;\n InlineValueRefreshRequest.type = new messages_1.ProtocolRequestType0(InlineValueRefreshRequest.method);\n InlineValueRefreshRequest.capabilities = messages_1.CM.create('workspace.inlineValue.refreshSupport', undefined);\n})(InlineValueRefreshRequest || (exports.InlineValueRefreshRequest = InlineValueRefreshRequest = {}));\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.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 {@link InlayHintsParams}, the response is of type\n * {@link 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.capabilities = messages_1.CM.create('textDocument.inlayHint', 'inlayHintProvider');\n})(InlayHintRequest || (exports.InlayHintRequest = InlayHintRequest = {}));\n/**\n * A request to resolve additional properties for an inlay hint.\n * The request's parameter is of type {@link InlayHint}, the response is\n * of type {@link 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.capabilities = messages_1.CM.create('textDocument.inlayHint.resolveSupport', 'inlayHintProvider.resolveProvider');\n})(InlayHintResolveRequest || (exports.InlayHintResolveRequest = 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.serverToClient;\n InlayHintRefreshRequest.type = new messages_1.ProtocolRequestType0(InlayHintRefreshRequest.method);\n InlayHintRefreshRequest.capabilities = messages_1.CM.create('workspace.inlayHint.refreshSupport', undefined);\n})(InlayHintRefreshRequest || (exports.InlayHintRefreshRequest = InlayHintRefreshRequest = {}));\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\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 = __importStar(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 = 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 = 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.capabilities = messages_1.CM.create('textDocument.diagnostic', 'diagnosticProvider');\n})(DocumentDiagnosticRequest || (exports.DocumentDiagnosticRequest = 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.capabilities = messages_1.CM.create('workspace.diagnostics', 'diagnosticProvider.workspaceDiagnostics');\n})(WorkspaceDiagnosticRequest || (exports.WorkspaceDiagnosticRequest = 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.serverToClient;\n DiagnosticRefreshRequest.type = new messages_1.ProtocolRequestType0(DiagnosticRefreshRequest.method);\n DiagnosticRefreshRequest.capabilities = messages_1.CM.create('workspace.diagnostics.refreshSupport', undefined);\n})(DiagnosticRefreshRequest || (exports.DiagnosticRefreshRequest = DiagnosticRefreshRequest = {}));\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\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 = __importStar(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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = DidCloseNotebookDocumentNotification = {}));\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.InlineCompletionRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * A request to provide inline completions in a document. The request's parameter is of\n * type {@link InlineCompletionParams}, the response is of type\n * {@link InlineCompletion InlineCompletion[]} or a Thenable that resolves to such.\n *\n * @since 3.18.0\n * @proposed\n */\nvar InlineCompletionRequest;\n(function (InlineCompletionRequest) {\n InlineCompletionRequest.method = 'textDocument/inlineCompletion';\n InlineCompletionRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n InlineCompletionRequest.type = new messages_1.ProtocolRequestType(InlineCompletionRequest.method);\n InlineCompletionRequest.capabilities = messages_1.CM.create('textDocument.inlineCompletion', 'inlineCompletionProvider');\n})(InlineCompletionRequest || (exports.InlineCompletionRequest = InlineCompletionRequest = {}));\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.TextDocumentContentRefreshRequest = exports.TextDocumentContentRequest = void 0;\nconst messages_1 = require(\"./messages\");\n/**\n * The `workspace/textDocumentContent` request is sent from the client to the\n * server to request the content of a text document.\n *\n * @since 3.18.0\n * @proposed\n */\nvar TextDocumentContentRequest;\n(function (TextDocumentContentRequest) {\n TextDocumentContentRequest.method = 'workspace/textDocumentContent';\n TextDocumentContentRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n TextDocumentContentRequest.type = new messages_1.ProtocolRequestType(TextDocumentContentRequest.method);\n TextDocumentContentRequest.capabilities = messages_1.CM.create('workspace.textDocumentContent', 'workspace.textDocumentContent');\n})(TextDocumentContentRequest || (exports.TextDocumentContentRequest = TextDocumentContentRequest = {}));\n/**\n * The `workspace/textDocumentContent` request is sent from the server to the client to refresh\n * the content of a specific text document.\n *\n * @since 3.18.0\n * @proposed\n */\nvar TextDocumentContentRefreshRequest;\n(function (TextDocumentContentRefreshRequest) {\n TextDocumentContentRefreshRequest.method = `workspace/textDocumentContent/refresh`;\n TextDocumentContentRefreshRequest.messageDirection = messages_1.MessageDirection.serverToClient;\n TextDocumentContentRefreshRequest.type = new messages_1.ProtocolRequestType(TextDocumentContentRefreshRequest.method);\n})(TextDocumentContentRefreshRequest || (exports.TextDocumentContentRefreshRequest = TextDocumentContentRefreshRequest = {}));\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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.GlobPattern = 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.RegularExpressionEngineKind = exports.FailureHandlingKind = exports.ResourceOperationKind = exports.UnregistrationRequest = exports.RegistrationRequest = exports.DocumentSelector = exports.NotebookCellTextDocumentFilter = exports.NotebookDocumentFilter = exports.TextDocumentFilter = void 0;\nexports.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.FoldingRangeRefreshRequest = 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.DocumentRangesFormattingRequest = exports.DocumentRangeFormattingRequest = exports.DocumentFormattingRequest = exports.DocumentLinkResolveRequest = exports.DocumentLinkRequest = exports.CodeLensRefreshRequest = exports.CodeLensResolveRequest = exports.CodeLensRequest = exports.WorkspaceSymbolResolveRequest = exports.WorkspaceSymbolRequest = exports.CodeActionResolveRequest = void 0;\nexports.TextDocumentContentRefreshRequest = exports.TextDocumentContentRequest = exports.InlineCompletionRequest = exports.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 = exports.TypeHierarchySubtypesRequest = exports.TypeHierarchyPrepareRequest = exports.MonikerRequest = exports.MonikerKind = void 0;\nconst messages_1 = require(\"./messages\");\nconst vscode_languageserver_types_1 = require(\"vscode-languageserver-types\");\nconst Is = __importStar(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; } });\nObject.defineProperty(exports, \"FoldingRangeRefreshRequest\", { enumerable: true, get: function () { return protocol_foldingRange_1.FoldingRangeRefreshRequest; } });\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; } });\nconst protocol_inlineCompletion_1 = require(\"./protocol.inlineCompletion\");\nObject.defineProperty(exports, \"InlineCompletionRequest\", { enumerable: true, get: function () { return protocol_inlineCompletion_1.InlineCompletionRequest; } });\nconst protocol_textDocumentContent_1 = require(\"./protocol.textDocumentContent\");\nObject.defineProperty(exports, \"TextDocumentContentRequest\", { enumerable: true, get: function () { return protocol_textDocumentContent_1.TextDocumentContentRequest; } });\nObject.defineProperty(exports, \"TextDocumentContentRefreshRequest\", { enumerable: true, get: function () { return protocol_textDocumentContent_1.TextDocumentContentRefreshRequest; } });\n// @ts-ignore: to avoid inlining LocationLink as dynamic import\nlet __noDynamicImport;\n/**\n * The TextDocumentFilter namespace provides helper functions to work with\n * {@link 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) || (Is.string(candidate.language) || Is.string(candidate.scheme) || GlobPattern.is(candidate.pattern));\n }\n TextDocumentFilter.is = is;\n})(TextDocumentFilter || (exports.TextDocumentFilter = TextDocumentFilter = {}));\n/**\n * The NotebookDocumentFilter namespace provides helper functions to work with\n * {@link 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 = NotebookDocumentFilter = {}));\n/**\n * The NotebookCellTextDocumentFilter namespace provides helper functions to work with\n * {@link 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 = NotebookCellTextDocumentFilter = {}));\n/**\n * The DocumentSelector namespace provides helper functions to work with\n * {@link DocumentSelector}s.\n */\nvar DocumentSelector;\n(function (DocumentSelector) {\n function is(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n for (const 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 = 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 = 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 = 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 = 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 = FailureHandlingKind = {}));\n/**\n * Regular Expression Engines\n *\n * @since 3.18.0\n * @proposed\n */\nvar RegularExpressionEngineKind;\n(function (RegularExpressionEngineKind) {\n RegularExpressionEngineKind.ES2020 = 'ES2020';\n})(RegularExpressionEngineKind || (exports.RegularExpressionEngineKind = RegularExpressionEngineKind = {}));\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 (e.g. bytes).\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 codepoints,\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 = PositionEncodingKind = {}));\n/**\n * The StaticRegistrationOptions namespace provides helper functions to work with\n * {@link 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 = StaticRegistrationOptions = {}));\n/**\n * The TextDocumentRegistrationOptions namespace provides helper functions to work with\n * {@link 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 = TextDocumentRegistrationOptions = {}));\n/**\n * The WorkDoneProgressOptions namespace provides helper functions to work with\n * {@link 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 = 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 {@link InitializeParams}\n * the response if of type {@link 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 = 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 = 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 = 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 = 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 = 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.capabilities = messages_1.CM.create('workspace.didChangeConfiguration', undefined);\n})(DidChangeConfigurationNotification || (exports.DidChangeConfigurationNotification = 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 /**\n * A debug message.\n *\n * @since 3.18.0\n * @proposed\n */\n MessageType.Debug = 5;\n})(MessageType || (exports.MessageType = 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.capabilities = messages_1.CM.create('window.showMessage', undefined);\n})(ShowMessageNotification || (exports.ShowMessageNotification = 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.capabilities = messages_1.CM.create('window.showMessage', undefined);\n})(ShowMessageRequest || (exports.ShowMessageRequest = 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 = 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 = 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 = 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.capabilities = messages_1.CM.create('textDocument.synchronization', 'textDocumentSync.openClose');\n})(DidOpenTextDocumentNotification || (exports.DidOpenTextDocumentNotification = DidOpenTextDocumentNotification = {}));\nvar TextDocumentContentChangeEvent;\n(function (TextDocumentContentChangeEvent) {\n /**\n * Checks whether the information describes a delta event.\n */\n function isIncremental(event) {\n const 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 const 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 = 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.capabilities = messages_1.CM.create('textDocument.synchronization', 'textDocumentSync');\n})(DidChangeTextDocumentNotification || (exports.DidChangeTextDocumentNotification = 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.capabilities = messages_1.CM.create('textDocument.synchronization', 'textDocumentSync.openClose');\n})(DidCloseTextDocumentNotification || (exports.DidCloseTextDocumentNotification = 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.capabilities = messages_1.CM.create('textDocument.synchronization.didSave', 'textDocumentSync.save');\n})(DidSaveTextDocumentNotification || (exports.DidSaveTextDocumentNotification = 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 = 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.capabilities = messages_1.CM.create('textDocument.synchronization.willSave', 'textDocumentSync.willSave');\n})(WillSaveTextDocumentNotification || (exports.WillSaveTextDocumentNotification = 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.capabilities = messages_1.CM.create('textDocument.synchronization.willSaveWaitUntil', 'textDocumentSync.willSaveWaitUntil');\n})(WillSaveTextDocumentWaitUntilRequest || (exports.WillSaveTextDocumentWaitUntilRequest = 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.capabilities = messages_1.CM.create('workspace.didChangeWatchedFiles', undefined);\n})(DidChangeWatchedFilesNotification || (exports.DidChangeWatchedFilesNotification = 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 = 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 = RelativePattern = {}));\nvar GlobPattern;\n(function (GlobPattern) {\n function is(value) {\n const candidate = value;\n return Is.string(candidate) || RelativePattern.is(candidate);\n }\n GlobPattern.is = is;\n})(GlobPattern || (exports.GlobPattern = GlobPattern = {}));\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 = 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.capabilities = messages_1.CM.create('textDocument.publishDiagnostics', undefined);\n})(PublishDiagnosticsNotification || (exports.PublishDiagnosticsNotification = 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 = CompletionTriggerKind = {}));\n/**\n * Request to request completion at a given text document position. The request's\n * parameter is of type {@link TextDocumentPosition} the response\n * is of type {@link CompletionItem CompletionItem[]} or {@link CompletionList}\n * or a Thenable that resolves to such.\n *\n * The request can delay the computation of the {@link CompletionItem.detail `detail`}\n * and {@link CompletionItem.documentation `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.capabilities = messages_1.CM.create('textDocument.completion', 'completionProvider');\n})(CompletionRequest || (exports.CompletionRequest = CompletionRequest = {}));\n/**\n * Request to resolve additional information for a given completion item.The request's\n * parameter is of type {@link CompletionItem} the response\n * is of type {@link 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.capabilities = messages_1.CM.create('textDocument.completion.completionItem.resolveSupport', 'completionProvider.resolveProvider');\n})(CompletionResolveRequest || (exports.CompletionResolveRequest = CompletionResolveRequest = {}));\n/**\n * Request to request hover information at a given text document position. The request's\n * parameter is of type {@link TextDocumentPosition} the response is of\n * type {@link 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.capabilities = messages_1.CM.create('textDocument.hover', 'hoverProvider');\n})(HoverRequest || (exports.HoverRequest = 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 = 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.capabilities = messages_1.CM.create('textDocument.signatureHelp', 'signatureHelpProvider');\n})(SignatureHelpRequest || (exports.SignatureHelpRequest = 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 {@link TextDocumentPosition}\n * the response is of either type {@link Definition} or a typed array of\n * {@link DefinitionLink} or a Thenable that resolves 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.capabilities = messages_1.CM.create('textDocument.definition', 'definitionProvider');\n})(DefinitionRequest || (exports.DefinitionRequest = 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 {@link ReferenceParams} the response is of type\n * {@link 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.capabilities = messages_1.CM.create('textDocument.references', 'referencesProvider');\n})(ReferencesRequest || (exports.ReferencesRequest = ReferencesRequest = {}));\n/**\n * Request to resolve a {@link DocumentHighlight} for a given\n * text document position. The request's parameter is of type {@link TextDocumentPosition}\n * the request response is an array of type {@link DocumentHighlight}\n * 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.capabilities = messages_1.CM.create('textDocument.documentHighlight', 'documentHighlightProvider');\n})(DocumentHighlightRequest || (exports.DocumentHighlightRequest = DocumentHighlightRequest = {}));\n/**\n * A request to list all symbols found in a given text document. The request's\n * parameter is of type {@link TextDocumentIdentifier} the\n * response is of type {@link 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.capabilities = messages_1.CM.create('textDocument.documentSymbol', 'documentSymbolProvider');\n})(DocumentSymbolRequest || (exports.DocumentSymbolRequest = 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.capabilities = messages_1.CM.create('textDocument.codeAction', 'codeActionProvider');\n})(CodeActionRequest || (exports.CodeActionRequest = CodeActionRequest = {}));\n/**\n * Request to resolve additional information for a given code action.The request's\n * parameter is of type {@link CodeAction} the response\n * is of type {@link 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.capabilities = messages_1.CM.create('textDocument.codeAction.resolveSupport', 'codeActionProvider.resolveProvider');\n})(CodeActionResolveRequest || (exports.CodeActionResolveRequest = CodeActionResolveRequest = {}));\n/**\n * A request to list project-wide symbols matching the query string given\n * by the {@link WorkspaceSymbolParams}. The response is\n * of type {@link 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.capabilities = messages_1.CM.create('workspace.symbol', 'workspaceSymbolProvider');\n})(WorkspaceSymbolRequest || (exports.WorkspaceSymbolRequest = 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.capabilities = messages_1.CM.create('workspace.symbol.resolveSupport', 'workspaceSymbolProvider.resolveProvider');\n})(WorkspaceSymbolResolveRequest || (exports.WorkspaceSymbolResolveRequest = 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.capabilities = messages_1.CM.create('textDocument.codeLens', 'codeLensProvider');\n})(CodeLensRequest || (exports.CodeLensRequest = 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.capabilities = messages_1.CM.create('textDocument.codeLens.resolveSupport', 'codeLensProvider.resolveProvider');\n})(CodeLensResolveRequest || (exports.CodeLensResolveRequest = 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.capabilities = messages_1.CM.create('workspace.codeLens', undefined);\n})(CodeLensRefreshRequest || (exports.CodeLensRefreshRequest = 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.capabilities = messages_1.CM.create('textDocument.documentLink', 'documentLinkProvider');\n})(DocumentLinkRequest || (exports.DocumentLinkRequest = DocumentLinkRequest = {}));\n/**\n * Request to resolve additional information for a given document link. The request's\n * parameter is of type {@link DocumentLink} the response\n * is of type {@link 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.capabilities = messages_1.CM.create('textDocument.documentLink', 'documentLinkProvider.resolveProvider');\n})(DocumentLinkResolveRequest || (exports.DocumentLinkResolveRequest = DocumentLinkResolveRequest = {}));\n/**\n * A request 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.capabilities = messages_1.CM.create('textDocument.formatting', 'documentFormattingProvider');\n})(DocumentFormattingRequest || (exports.DocumentFormattingRequest = DocumentFormattingRequest = {}));\n/**\n * A request 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.capabilities = messages_1.CM.create('textDocument.rangeFormatting', 'documentRangeFormattingProvider');\n})(DocumentRangeFormattingRequest || (exports.DocumentRangeFormattingRequest = DocumentRangeFormattingRequest = {}));\n/**\n * A request to format ranges in a document.\n *\n * @since 3.18.0\n * @proposed\n */\nvar DocumentRangesFormattingRequest;\n(function (DocumentRangesFormattingRequest) {\n DocumentRangesFormattingRequest.method = 'textDocument/rangesFormatting';\n DocumentRangesFormattingRequest.messageDirection = messages_1.MessageDirection.clientToServer;\n DocumentRangesFormattingRequest.type = new messages_1.ProtocolRequestType(DocumentRangesFormattingRequest.method);\n DocumentRangesFormattingRequest.capabilities = messages_1.CM.create('textDocument.rangeFormatting.rangesSupport', 'documentRangeFormattingProvider.rangesSupport');\n})(DocumentRangesFormattingRequest || (exports.DocumentRangesFormattingRequest = DocumentRangesFormattingRequest = {}));\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.capabilities = messages_1.CM.create('textDocument.onTypeFormatting', 'documentOnTypeFormattingProvider');\n})(DocumentOnTypeFormattingRequest || (exports.DocumentOnTypeFormattingRequest = 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 = 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.capabilities = messages_1.CM.create('textDocument.rename', 'renameProvider');\n})(RenameRequest || (exports.RenameRequest = 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.capabilities = messages_1.CM.create('textDocument.rename.prepareSupport', 'renameProvider.prepareProvider');\n})(PrepareRenameRequest || (exports.PrepareRenameRequest = 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.capabilities = messages_1.CM.create('workspace.executeCommand', 'executeCommandProvider');\n})(ExecuteCommandRequest || (exports.ExecuteCommandRequest = 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.capabilities = messages_1.CM.create('workspace.applyEdit', undefined);\n})(ApplyWorkspaceEditRequest || (exports.ApplyWorkspaceEditRequest = ApplyWorkspaceEditRequest = {}));\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.createProtocolConnection = createProtocolConnection;\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}\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.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 has 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 = LSPErrorCodes = {}));\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.SemanticTokensBuilder = exports.SemanticTokensDiff = exports.SemanticTokensFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst SemanticTokensFeature = (Base) => {\n return class extends Base {\n get semanticTokens() {\n return {\n refresh: () => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.SemanticTokensRefreshRequest.type);\n },\n on: (handler) => {\n const type = vscode_languageserver_protocol_1.SemanticTokensRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n onDelta: (handler) => {\n const type = vscode_languageserver_protocol_1.SemanticTokensDeltaRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n onRange: (handler) => {\n const type = vscode_languageserver_protocol_1.SemanticTokensRangeRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n }\n };\n }\n };\n};\nexports.SemanticTokensFeature = SemanticTokensFeature;\nclass SemanticTokensDiff {\n originalSequence;\n modifiedSequence;\n constructor(originalSequence, modifiedSequence) {\n this.originalSequence = originalSequence;\n this.modifiedSequence = modifiedSequence;\n }\n computeDiff() {\n const originalLength = this.originalSequence.length;\n const modifiedLength = this.modifiedSequence.length;\n let startIndex = 0;\n while (startIndex < modifiedLength && startIndex < originalLength && this.originalSequence[startIndex] === this.modifiedSequence[startIndex]) {\n startIndex++;\n }\n if (startIndex < modifiedLength && startIndex < originalLength) {\n let originalEndIndex = originalLength - 1;\n let modifiedEndIndex = modifiedLength - 1;\n while (originalEndIndex >= startIndex && modifiedEndIndex >= startIndex && this.originalSequence[originalEndIndex] === this.modifiedSequence[modifiedEndIndex]) {\n originalEndIndex--;\n modifiedEndIndex--;\n }\n // if one moved behind the start index move them forward again\n if (originalEndIndex < startIndex || modifiedEndIndex < startIndex) {\n originalEndIndex++;\n modifiedEndIndex++;\n }\n const deleteCount = originalEndIndex - startIndex + 1;\n const newData = this.modifiedSequence.slice(startIndex, modifiedEndIndex + 1);\n // If we moved behind the start index we could have missed a simple delete.\n if (newData.length === 1 && newData[0] === this.originalSequence[originalEndIndex]) {\n return [\n { start: startIndex, deleteCount: deleteCount - 1 }\n ];\n }\n else {\n return [\n { start: startIndex, deleteCount, data: newData }\n ];\n }\n }\n else if (startIndex < modifiedLength) {\n return [\n { start: startIndex, deleteCount: 0, data: this.modifiedSequence.slice(startIndex) }\n ];\n }\n else if (startIndex < originalLength) {\n return [\n { start: startIndex, deleteCount: originalLength - startIndex }\n ];\n }\n else {\n // The two arrays are the same.\n return [];\n }\n }\n}\nexports.SemanticTokensDiff = SemanticTokensDiff;\nclass SemanticTokensBuilder {\n _id;\n _prevLine;\n _prevChar;\n _dataIsSortedAndDeltaEncoded;\n _data;\n _dataNonDelta;\n _dataLen;\n _prevData;\n constructor() {\n this._prevData = undefined;\n this.initialize();\n }\n initialize() {\n this._id = Date.now();\n this._prevLine = 0;\n this._prevChar = 0;\n this._data = [];\n this._dataNonDelta = [];\n this._dataLen = 0;\n this._dataIsSortedAndDeltaEncoded = true;\n }\n push(line, char, length, tokenType, tokenModifiers) {\n if (this._dataIsSortedAndDeltaEncoded && (line < this._prevLine || (line === this._prevLine && char < this._prevChar))) {\n // push calls were ordered and are no longer ordered\n this._dataIsSortedAndDeltaEncoded = false;\n this._dataNonDelta = SemanticTokensBuilder._deltaDecode(this._data);\n }\n let pushLine = line;\n let pushChar = char;\n if (this._dataIsSortedAndDeltaEncoded && this._dataLen > 0) {\n pushLine -= this._prevLine;\n if (pushLine === 0) {\n pushChar -= this._prevChar;\n }\n }\n const dataSource = this._dataIsSortedAndDeltaEncoded ? this._data : this._dataNonDelta;\n dataSource[this._dataLen++] = pushLine;\n dataSource[this._dataLen++] = pushChar;\n dataSource[this._dataLen++] = length;\n dataSource[this._dataLen++] = tokenType;\n dataSource[this._dataLen++] = tokenModifiers;\n this._prevLine = line;\n this._prevChar = char;\n }\n get id() {\n return this._id.toString();\n }\n static _deltaDecode(data) {\n // Remove delta encoding from data\n const tokenCount = (data.length / 5) | 0;\n let prevLine = 0;\n let prevChar = 0;\n const result = [];\n for (let i = 0; i < tokenCount; i++) {\n const dstOffset = 5 * i;\n let line = data[dstOffset];\n let char = data[dstOffset + 1];\n if (line === 0) {\n // on the same line as previous token\n line = prevLine;\n char += prevChar;\n }\n else {\n // on a different line than previous token\n line += prevLine;\n }\n const length = data[dstOffset + 2];\n const tokenType = data[dstOffset + 3];\n const tokenModifiers = data[dstOffset + 4];\n result[dstOffset + 0] = line;\n result[dstOffset + 1] = char;\n result[dstOffset + 2] = length;\n result[dstOffset + 3] = tokenType;\n result[dstOffset + 4] = tokenModifiers;\n prevLine = line;\n prevChar = char;\n }\n return result;\n }\n static _sortAndDeltaEncode(data) {\n const pos = [];\n const tokenCount = (data.length / 5) | 0;\n for (let i = 0; i < tokenCount; i++) {\n pos[i] = i;\n }\n pos.sort((a, b) => {\n const aLine = data[5 * a];\n const bLine = data[5 * b];\n if (aLine === bLine) {\n const aChar = data[5 * a + 1];\n const bChar = data[5 * b + 1];\n return aChar - bChar;\n }\n return aLine - bLine;\n });\n const result = [];\n let prevLine = 0;\n let prevChar = 0;\n for (let i = 0; i < tokenCount; i++) {\n const srcOffset = 5 * pos[i];\n const line = data[srcOffset + 0];\n const char = data[srcOffset + 1];\n const length = data[srcOffset + 2];\n const tokenType = data[srcOffset + 3];\n const tokenModifiers = data[srcOffset + 4];\n const pushLine = line - prevLine;\n const pushChar = (pushLine === 0 ? char - prevChar : char);\n const dstOffset = 5 * i;\n result[dstOffset + 0] = pushLine;\n result[dstOffset + 1] = pushChar;\n result[dstOffset + 2] = length;\n result[dstOffset + 3] = tokenType;\n result[dstOffset + 4] = tokenModifiers;\n prevLine = line;\n prevChar = char;\n }\n return result;\n }\n getFinalDataDelta() {\n if (this._dataIsSortedAndDeltaEncoded) {\n return this._data;\n }\n else {\n return SemanticTokensBuilder._sortAndDeltaEncode(this._dataNonDelta);\n }\n }\n previousResult(id) {\n if (this.id === id) {\n this._prevData = this.getFinalDataDelta();\n }\n this.initialize();\n }\n build() {\n this._prevData = undefined;\n return {\n resultId: this.id,\n data: this.getFinalDataDelta()\n };\n }\n canBuildEdits() {\n return this._prevData !== undefined;\n }\n buildEdits() {\n if (this._prevData !== undefined) {\n return {\n resultId: this.id,\n edits: (new SemanticTokensDiff(this._prevData, this.getFinalDataDelta())).computeDiff()\n };\n }\n else {\n return this.build();\n }\n }\n}\nexports.SemanticTokensBuilder = SemanticTokensBuilder;\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';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InlineCompletionFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst InlineCompletionFeature = (Base) => {\n return class extends Base {\n get inlineCompletion() {\n return {\n on: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.InlineCompletionRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params));\n });\n }\n };\n }\n };\n};\nexports.InlineCompletionFeature = InlineCompletionFeature;\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.TextDocumentContentFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst TextDocumentContentFeature = (Base) => {\n return class extends Base {\n get textDocumentContent() {\n return {\n refresh: (uri) => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.TextDocumentContentRefreshRequest.type, { uri });\n },\n on: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.TextDocumentContentRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n };\n }\n };\n};\nexports.TextDocumentContentFeature = TextDocumentContentFeature;\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.TextDocuments = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\n/**\n * A manager for simple text documents. The manager requires at a minimum that\n * the server registered for the following text document sync events in the\n * initialize handler or via dynamic registration:\n *\n * - open and close events.\n * - change events.\n *\n * Registering for save and will save events is optional.\n */\nclass TextDocuments {\n _configuration;\n _syncedDocuments;\n _onDidChangeContent;\n _onDidOpen;\n _onDidClose;\n _onDidSave;\n _onWillSave;\n _willSaveWaitUntil;\n /**\n * Create a new text document manager.\n */\n constructor(configuration) {\n this._configuration = configuration;\n this._syncedDocuments = new Map();\n this._onDidChangeContent = new vscode_languageserver_protocol_1.Emitter();\n this._onDidOpen = new vscode_languageserver_protocol_1.Emitter();\n this._onDidClose = new vscode_languageserver_protocol_1.Emitter();\n this._onDidSave = new vscode_languageserver_protocol_1.Emitter();\n this._onWillSave = new vscode_languageserver_protocol_1.Emitter();\n }\n /**\n * An event that fires when a text document managed by this manager\n * has been opened.\n */\n get onDidOpen() {\n return this._onDidOpen.event;\n }\n /**\n * An event that fires when a text document managed by this manager\n * has been opened or the content changes.\n */\n get onDidChangeContent() {\n return this._onDidChangeContent.event;\n }\n /**\n * An event that fires when a text document managed by this manager\n * will be saved.\n */\n get onWillSave() {\n return this._onWillSave.event;\n }\n /**\n * Sets a handler that will be called if a participant wants to provide\n * edits during a text document save.\n */\n onWillSaveWaitUntil(handler) {\n this._willSaveWaitUntil = handler;\n }\n /**\n * An event that fires when a text document managed by this manager\n * has been saved.\n */\n get onDidSave() {\n return this._onDidSave.event;\n }\n /**\n * An event that fires when a text document managed by this manager\n * has been closed.\n */\n get onDidClose() {\n return this._onDidClose.event;\n }\n /**\n * Returns the document for the given URI. Returns undefined if\n * the document is not managed by this instance.\n *\n * @param uri The text document's URI to retrieve.\n * @return the text document or `undefined`.\n */\n get(uri) {\n return this._syncedDocuments.get(uri);\n }\n /**\n * Returns all text documents managed by this instance.\n *\n * @return all text documents.\n */\n all() {\n return Array.from(this._syncedDocuments.values());\n }\n /**\n * Returns the URIs of all text documents managed by this instance.\n *\n * @return the URI's of all text documents.\n */\n keys() {\n return Array.from(this._syncedDocuments.keys());\n }\n /**\n * Listens for `low level` notification on the given connection to\n * update the text documents managed by this instance.\n *\n * Please note that the connection only provides handlers not an event model. Therefore\n * listening on a connection will overwrite the following handlers on a connection:\n * `onDidOpenTextDocument`, `onDidChangeTextDocument`, `onDidCloseTextDocument`,\n * `onWillSaveTextDocument`, `onWillSaveTextDocumentWaitUntil` and `onDidSaveTextDocument`.\n *\n * Use the corresponding events on the TextDocuments instance instead.\n *\n * @param connection The connection to listen on.\n */\n listen(connection) {\n connection.__textDocumentSync = vscode_languageserver_protocol_1.TextDocumentSyncKind.Incremental;\n const disposables = [];\n disposables.push(connection.onDidOpenTextDocument((event) => {\n const td = event.textDocument;\n const document = this._configuration.create(td.uri, td.languageId, td.version, td.text);\n this._syncedDocuments.set(td.uri, document);\n const toFire = Object.freeze({ document });\n this._onDidOpen.fire(toFire);\n this._onDidChangeContent.fire(toFire);\n }));\n disposables.push(connection.onDidChangeTextDocument((event) => {\n const td = event.textDocument;\n const changes = event.contentChanges;\n if (changes.length === 0) {\n return;\n }\n const { version } = td;\n if (version === null || version === undefined) {\n throw new Error(`Received document change event for ${td.uri} without valid version identifier`);\n }\n let syncedDocument = this._syncedDocuments.get(td.uri);\n if (syncedDocument !== undefined) {\n syncedDocument = this._configuration.update(syncedDocument, changes, version);\n this._syncedDocuments.set(td.uri, syncedDocument);\n this._onDidChangeContent.fire(Object.freeze({ document: syncedDocument }));\n }\n }));\n disposables.push(connection.onDidCloseTextDocument((event) => {\n const syncedDocument = this._syncedDocuments.get(event.textDocument.uri);\n if (syncedDocument !== undefined) {\n this._syncedDocuments.delete(event.textDocument.uri);\n this._onDidClose.fire(Object.freeze({ document: syncedDocument }));\n }\n }));\n disposables.push(connection.onWillSaveTextDocument((event) => {\n const syncedDocument = this._syncedDocuments.get(event.textDocument.uri);\n if (syncedDocument !== undefined) {\n this._onWillSave.fire(Object.freeze({ document: syncedDocument, reason: event.reason }));\n }\n }));\n disposables.push(connection.onWillSaveTextDocumentWaitUntil((event, token) => {\n const syncedDocument = this._syncedDocuments.get(event.textDocument.uri);\n if (syncedDocument !== undefined && this._willSaveWaitUntil) {\n return this._willSaveWaitUntil(Object.freeze({ document: syncedDocument, reason: event.reason }), token);\n }\n else {\n return [];\n }\n }));\n disposables.push(connection.onDidSaveTextDocument((event) => {\n const syncedDocument = this._syncedDocuments.get(event.textDocument.uri);\n if (syncedDocument !== undefined) {\n this._onDidSave.fire(Object.freeze({ document: syncedDocument }));\n }\n }));\n return vscode_languageserver_protocol_1.Disposable.create(() => { disposables.forEach(disposable => disposable.dispose()); });\n }\n}\nexports.TextDocuments = TextDocuments;\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';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NotebookDocuments = exports.NotebookSyncFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst textDocuments_1 = require(\"./textDocuments\");\nconst NotebookSyncFeature = (Base) => {\n return class extends Base {\n get synchronization() {\n return {\n onDidOpenNotebookDocument: (handler) => {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidOpenNotebookDocumentNotification.type, (params) => {\n return handler(params);\n });\n },\n onDidChangeNotebookDocument: (handler) => {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidChangeNotebookDocumentNotification.type, (params) => {\n return handler(params);\n });\n },\n onDidSaveNotebookDocument: (handler) => {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidSaveNotebookDocumentNotification.type, (params) => {\n return handler(params);\n });\n },\n onDidCloseNotebookDocument: (handler) => {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidCloseNotebookDocumentNotification.type, (params) => {\n return handler(params);\n });\n }\n };\n }\n };\n};\nexports.NotebookSyncFeature = NotebookSyncFeature;\nclass CellTextDocumentConnection {\n static NULL_DISPOSE = Object.freeze({ dispose: () => { } });\n openHandler;\n changeHandler;\n closeHandler;\n onDidOpenTextDocument(handler) {\n this.openHandler = handler;\n return vscode_languageserver_protocol_1.Disposable.create(() => { this.openHandler = undefined; });\n }\n openTextDocument(params) {\n return this.openHandler && this.openHandler(params);\n }\n onDidChangeTextDocument(handler) {\n this.changeHandler = handler;\n return vscode_languageserver_protocol_1.Disposable.create(() => { this.changeHandler = handler; });\n }\n changeTextDocument(params) {\n return this.changeHandler && this.changeHandler(params);\n }\n onDidCloseTextDocument(handler) {\n this.closeHandler = handler;\n return vscode_languageserver_protocol_1.Disposable.create(() => { this.closeHandler = undefined; });\n }\n closeTextDocument(params) {\n return this.closeHandler && this.closeHandler(params);\n }\n onWillSaveTextDocument() {\n return CellTextDocumentConnection.NULL_DISPOSE;\n }\n onWillSaveTextDocumentWaitUntil() {\n return CellTextDocumentConnection.NULL_DISPOSE;\n }\n onDidSaveTextDocument() {\n return CellTextDocumentConnection.NULL_DISPOSE;\n }\n}\nclass NotebookDocuments {\n notebookDocuments;\n notebookCellMap;\n _onDidOpen;\n _onDidSave;\n _onDidChange;\n _onDidClose;\n _cellTextDocuments;\n constructor(configurationOrTextDocuments) {\n if (configurationOrTextDocuments instanceof textDocuments_1.TextDocuments) {\n this._cellTextDocuments = configurationOrTextDocuments;\n }\n else {\n this._cellTextDocuments = new textDocuments_1.TextDocuments(configurationOrTextDocuments);\n }\n this.notebookDocuments = new Map();\n this.notebookCellMap = new Map();\n this._onDidOpen = new vscode_languageserver_protocol_1.Emitter();\n this._onDidChange = new vscode_languageserver_protocol_1.Emitter();\n this._onDidSave = new vscode_languageserver_protocol_1.Emitter();\n this._onDidClose = new vscode_languageserver_protocol_1.Emitter();\n }\n get cellTextDocuments() {\n return this._cellTextDocuments;\n }\n getCellTextDocument(cell) {\n return this._cellTextDocuments.get(cell.document);\n }\n getNotebookDocument(uri) {\n return this.notebookDocuments.get(uri);\n }\n getNotebookCell(uri) {\n const value = this.notebookCellMap.get(uri);\n return value && value[0];\n }\n findNotebookDocumentForCell(cell) {\n const key = typeof cell === 'string' ? cell : cell.document;\n const value = this.notebookCellMap.get(key);\n return value && value[1];\n }\n get onDidOpen() {\n return this._onDidOpen.event;\n }\n get onDidSave() {\n return this._onDidSave.event;\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get onDidClose() {\n return this._onDidClose.event;\n }\n /**\n * Listens for `low level` notification on the given connection to\n * update the notebook documents managed by this instance.\n *\n * Please note that the connection only provides handlers not an event model. Therefore\n * listening on a connection will overwrite the following handlers on a connection:\n * `onDidOpenNotebookDocument`, `onDidChangeNotebookDocument`, `onDidSaveNotebookDocument`,\n * and `onDidCloseNotebookDocument`.\n *\n * @param connection The connection to listen on.\n */\n listen(connection) {\n const cellTextDocumentConnection = new CellTextDocumentConnection();\n const disposables = [];\n disposables.push(this.cellTextDocuments.listen(cellTextDocumentConnection));\n disposables.push(connection.notebooks.synchronization.onDidOpenNotebookDocument(async (params) => {\n this.notebookDocuments.set(params.notebookDocument.uri, params.notebookDocument);\n for (const cellTextDocument of params.cellTextDocuments) {\n await cellTextDocumentConnection.openTextDocument({ textDocument: cellTextDocument });\n }\n this.updateCellMap(params.notebookDocument);\n this._onDidOpen.fire(params.notebookDocument);\n }));\n disposables.push(connection.notebooks.synchronization.onDidChangeNotebookDocument(async (params) => {\n const notebookDocument = this.notebookDocuments.get(params.notebookDocument.uri);\n if (notebookDocument === undefined) {\n return;\n }\n notebookDocument.version = params.notebookDocument.version;\n const oldMetadata = notebookDocument.metadata;\n let metadataChanged = false;\n const change = params.change;\n if (change.metadata !== undefined) {\n metadataChanged = true;\n notebookDocument.metadata = change.metadata;\n }\n const opened = [];\n const closed = [];\n const data = [];\n const text = [];\n if (change.cells !== undefined) {\n const changedCells = change.cells;\n if (changedCells.structure !== undefined) {\n const array = changedCells.structure.array;\n notebookDocument.cells.splice(array.start, array.deleteCount, ...(array.cells !== undefined ? array.cells : []));\n // Additional open cell text documents.\n if (changedCells.structure.didOpen !== undefined) {\n for (const open of changedCells.structure.didOpen) {\n await cellTextDocumentConnection.openTextDocument({ textDocument: open });\n opened.push(open.uri);\n }\n }\n // Additional closed cell test documents.\n if (changedCells.structure.didClose) {\n for (const close of changedCells.structure.didClose) {\n await cellTextDocumentConnection.closeTextDocument({ textDocument: close });\n closed.push(close.uri);\n }\n }\n }\n if (changedCells.data !== undefined) {\n const cellUpdates = new Map(changedCells.data.map(cell => [cell.document, cell]));\n for (let i = 0; i <= notebookDocument.cells.length; i++) {\n const change = cellUpdates.get(notebookDocument.cells[i].document);\n if (change !== undefined) {\n const old = notebookDocument.cells.splice(i, 1, change);\n data.push({ old: old[0], new: change });\n cellUpdates.delete(change.document);\n if (cellUpdates.size === 0) {\n break;\n }\n }\n }\n }\n if (changedCells.textContent !== undefined) {\n for (const cellTextDocument of changedCells.textContent) {\n await cellTextDocumentConnection.changeTextDocument({ textDocument: cellTextDocument.document, contentChanges: cellTextDocument.changes });\n text.push(cellTextDocument.document.uri);\n }\n }\n }\n // Update internal data structure.\n this.updateCellMap(notebookDocument);\n const changeEvent = { notebookDocument };\n if (metadataChanged) {\n changeEvent.metadata = { old: oldMetadata, new: notebookDocument.metadata };\n }\n const added = [];\n for (const open of opened) {\n added.push(this.getNotebookCell(open));\n }\n const removed = [];\n for (const close of closed) {\n removed.push(this.getNotebookCell(close));\n }\n const textContent = [];\n for (const change of text) {\n textContent.push(this.getNotebookCell(change));\n }\n if (added.length > 0 || removed.length > 0 || data.length > 0 || textContent.length > 0) {\n changeEvent.cells = { added, removed, changed: { data, textContent } };\n }\n if (changeEvent.metadata !== undefined || changeEvent.cells !== undefined) {\n this._onDidChange.fire(changeEvent);\n }\n }));\n disposables.push(connection.notebooks.synchronization.onDidSaveNotebookDocument((params) => {\n const notebookDocument = this.notebookDocuments.get(params.notebookDocument.uri);\n if (notebookDocument === undefined) {\n return;\n }\n this._onDidSave.fire(notebookDocument);\n }));\n disposables.push(connection.notebooks.synchronization.onDidCloseNotebookDocument(async (params) => {\n const notebookDocument = this.notebookDocuments.get(params.notebookDocument.uri);\n if (notebookDocument === undefined) {\n return;\n }\n this._onDidClose.fire(notebookDocument);\n for (const cellTextDocument of params.cellTextDocuments) {\n await cellTextDocumentConnection.closeTextDocument({ textDocument: cellTextDocument });\n }\n this.notebookDocuments.delete(params.notebookDocument.uri);\n for (const cell of notebookDocument.cells) {\n this.notebookCellMap.delete(cell.document);\n }\n }));\n return vscode_languageserver_protocol_1.Disposable.create(() => { disposables.forEach(disposable => disposable.dispose()); });\n }\n updateCellMap(notebookDocument) {\n for (const cell of notebookDocument.cells) {\n this.notebookCellMap.set(cell.document, [cell, notebookDocument]);\n }\n }\n}\nexports.NotebookDocuments = NotebookDocuments;\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.boolean = boolean;\nexports.string = string;\nexports.number = number;\nexports.error = error;\nexports.func = func;\nexports.array = array;\nexports.stringArray = stringArray;\nexports.typedArray = typedArray;\nexports.thenable = thenable;\nfunction boolean(value) {\n return value === true || value === false;\n}\nfunction string(value) {\n return typeof value === 'string' || value instanceof String;\n}\nfunction number(value) {\n return typeof value === 'number' || value instanceof Number;\n}\nfunction error(value) {\n return value instanceof Error;\n}\nfunction func(value) {\n return typeof value === 'function';\n}\nfunction array(value) {\n return Array.isArray(value);\n}\nfunction stringArray(value) {\n return array(value) && value.every(elem => string(elem));\n}\nfunction typedArray(value, check) {\n return Array.isArray(value) && value.every(check);\n}\nfunction thenable(value) {\n return value && func(value.then);\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.empty = void 0;\nexports.v4 = v4;\nexports.isUUID = isUUID;\nexports.parse = parse;\nexports.generateUuid = generateUuid;\nclass ValueUUID {\n _value;\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 static _chars = ['0', '1', '2', '3', '4', '5', '6', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n static _timeHighBits = ['8', '9', 'a', 'b'];\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 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}\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}\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}\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}\nfunction generateUuid() {\n return v4().asHex();\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.ProgressFeature = void 0;\nexports.attachWorkDone = attachWorkDone;\nexports.attachPartialResult = attachPartialResult;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst uuid_1 = require(\"./utils/uuid\");\nclass WorkDoneProgressReporterImpl {\n _connection;\n _token;\n static Instances = new Map();\n constructor(_connection, _token) {\n this._connection = _connection;\n this._token = _token;\n WorkDoneProgressReporterImpl.Instances.set(this._token, this);\n }\n begin(title, percentage, message, cancellable) {\n const param = {\n kind: 'begin',\n title,\n message,\n cancellable\n };\n if (typeof percentage === 'number') {\n // Round to the nearest integer, because the percentage\n // is a uinteger according to the specification\n param.percentage = Math.round(percentage);\n }\n this._connection.sendProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, param);\n }\n report(arg0, arg1) {\n const param = {\n kind: 'report'\n };\n if (typeof arg0 === 'number') {\n // Round to the nearest integer, because the percentage\n // is a uinteger according to the specification\n param.percentage = Math.round(arg0);\n if (arg1 !== undefined) {\n param.message = arg1;\n }\n }\n else {\n param.message = arg0;\n }\n this._connection.sendProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, param);\n }\n done() {\n WorkDoneProgressReporterImpl.Instances.delete(this._token);\n this._connection.sendProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, { kind: 'end' });\n }\n}\nclass WorkDoneProgressServerReporterImpl extends WorkDoneProgressReporterImpl {\n _source;\n constructor(connection, token) {\n super(connection, token);\n this._source = new vscode_languageserver_protocol_1.CancellationTokenSource();\n }\n get token() {\n return this._source.token;\n }\n done() {\n this._source.dispose();\n super.done();\n }\n cancel() {\n this._source.cancel();\n }\n}\nclass NullProgressReporter {\n constructor() {\n }\n begin() {\n }\n report() {\n }\n done() {\n }\n}\nclass NullProgressServerReporter extends NullProgressReporter {\n _source;\n constructor() {\n super();\n this._source = new vscode_languageserver_protocol_1.CancellationTokenSource();\n }\n get token() {\n return this._source.token;\n }\n done() {\n this._source.dispose();\n }\n cancel() {\n this._source.cancel();\n }\n}\nfunction attachWorkDone(connection, params) {\n if (params === undefined || params.workDoneToken === undefined) {\n return new NullProgressReporter();\n }\n const token = params.workDoneToken;\n delete params.workDoneToken;\n return new WorkDoneProgressReporterImpl(connection, token);\n}\nconst ProgressFeature = (Base) => {\n return class extends Base {\n _progressSupported;\n constructor() {\n super();\n this._progressSupported = false;\n }\n initialize(capabilities) {\n super.initialize(capabilities);\n if (capabilities?.window?.workDoneProgress === true) {\n this._progressSupported = true;\n this.connection.onNotification(vscode_languageserver_protocol_1.WorkDoneProgressCancelNotification.type, (params) => {\n const progress = WorkDoneProgressReporterImpl.Instances.get(params.token);\n if (progress instanceof WorkDoneProgressServerReporterImpl || progress instanceof NullProgressServerReporter) {\n progress.cancel();\n }\n });\n }\n }\n attachWorkDoneProgress(token) {\n if (token === undefined) {\n return new NullProgressReporter();\n }\n else {\n return new WorkDoneProgressReporterImpl(this.connection, token);\n }\n }\n createWorkDoneProgress() {\n if (this._progressSupported) {\n const token = (0, uuid_1.generateUuid)();\n return this.connection.sendRequest(vscode_languageserver_protocol_1.WorkDoneProgressCreateRequest.type, { token }).then(() => {\n const result = new WorkDoneProgressServerReporterImpl(this.connection, token);\n return result;\n });\n }\n else {\n return Promise.resolve(new NullProgressServerReporter());\n }\n }\n };\n};\nexports.ProgressFeature = ProgressFeature;\nvar ResultProgress;\n(function (ResultProgress) {\n ResultProgress.type = new vscode_languageserver_protocol_1.ProgressType();\n})(ResultProgress || (ResultProgress = {}));\nclass ResultProgressReporterImpl {\n _connection;\n _token;\n constructor(_connection, _token) {\n this._connection = _connection;\n this._token = _token;\n }\n report(data) {\n this._connection.sendProgress(ResultProgress.type, this._token, data);\n }\n}\nfunction attachPartialResult(connection, params) {\n if (params === undefined || params.partialResultToken === undefined) {\n return undefined;\n }\n const token = params.partialResultToken;\n delete params.partialResultToken;\n return new ResultProgressReporterImpl(connection, token);\n}\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigurationFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst Is = __importStar(require(\"./utils/is\"));\nconst ConfigurationFeature = (Base) => {\n return class extends Base {\n getConfiguration(arg) {\n if (!arg) {\n return this._getConfiguration({});\n }\n else if (Is.string(arg)) {\n return this._getConfiguration({ section: arg });\n }\n else {\n return this._getConfiguration(arg);\n }\n }\n _getConfiguration(arg) {\n const params = {\n items: Array.isArray(arg) ? arg : [arg]\n };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ConfigurationRequest.type, params).then((result) => {\n if (Array.isArray(result)) {\n return Array.isArray(arg) ? result : result[0];\n }\n else {\n return Array.isArray(arg) ? [] : null;\n }\n });\n }\n };\n};\nexports.ConfigurationFeature = ConfigurationFeature;\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';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkspaceFoldersFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst WorkspaceFoldersFeature = (Base) => {\n return class extends Base {\n _onDidChangeWorkspaceFolders;\n _unregistration;\n _notificationIsAutoRegistered;\n constructor() {\n super();\n this._notificationIsAutoRegistered = false;\n }\n initialize(capabilities) {\n super.initialize(capabilities);\n const workspaceCapabilities = capabilities.workspace;\n if (workspaceCapabilities && workspaceCapabilities.workspaceFolders) {\n this._onDidChangeWorkspaceFolders = new vscode_languageserver_protocol_1.Emitter();\n this.connection.onNotification(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type, (params) => {\n this._onDidChangeWorkspaceFolders.fire(params.event);\n });\n }\n }\n fillServerCapabilities(capabilities) {\n super.fillServerCapabilities(capabilities);\n const changeNotifications = capabilities.workspace?.workspaceFolders?.changeNotifications;\n this._notificationIsAutoRegistered = changeNotifications === true || typeof changeNotifications === 'string';\n }\n getWorkspaceFolders() {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.WorkspaceFoldersRequest.type);\n }\n get onDidChangeWorkspaceFolders() {\n if (!this._onDidChangeWorkspaceFolders) {\n throw new Error('Client doesn\\'t support sending workspace folder change events.');\n }\n if (!this._notificationIsAutoRegistered && !this._unregistration) {\n this._unregistration = this.connection.client.register(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type);\n }\n return this._onDidChangeWorkspaceFolders.event;\n }\n };\n};\nexports.WorkspaceFoldersFeature = WorkspaceFoldersFeature;\n", "/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallHierarchyFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst CallHierarchyFeature = (Base) => {\n return class extends Base {\n get callHierarchy() {\n return {\n onPrepare: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.CallHierarchyPrepareRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), undefined);\n });\n },\n onIncomingCalls: (handler) => {\n const type = vscode_languageserver_protocol_1.CallHierarchyIncomingCallsRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n onOutgoingCalls: (handler) => {\n const type = vscode_languageserver_protocol_1.CallHierarchyOutgoingCallsRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n }\n };\n }\n };\n};\nexports.CallHierarchyFeature = CallHierarchyFeature;\n", "\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShowDocumentFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst ShowDocumentFeature = (Base) => {\n return class extends Base {\n showDocument(params) {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowDocumentRequest.type, params);\n }\n };\n};\nexports.ShowDocumentFeature = ShowDocumentFeature;\n", "\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileOperationsFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst FileOperationsFeature = (Base) => {\n return class extends Base {\n onDidCreateFiles(handler) {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidCreateFilesNotification.type, (params) => {\n return handler(params);\n });\n }\n onDidRenameFiles(handler) {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidRenameFilesNotification.type, (params) => {\n return handler(params);\n });\n }\n onDidDeleteFiles(handler) {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidDeleteFilesNotification.type, (params) => {\n return handler(params);\n });\n }\n onWillCreateFiles(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WillCreateFilesRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n onWillRenameFiles(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WillRenameFilesRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n onWillDeleteFiles(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WillDeleteFilesRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n };\n};\nexports.FileOperationsFeature = FileOperationsFeature;\n", "\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkedEditingRangeFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst LinkedEditingRangeFeature = (Base) => {\n return class extends Base {\n onLinkedEditingRange(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.LinkedEditingRangeRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), undefined);\n });\n }\n };\n};\nexports.LinkedEditingRangeFeature = LinkedEditingRangeFeature;\n", "/* --------------------------------------------------------------------------------------------\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.TypeHierarchyFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst TypeHierarchyFeature = (Base) => {\n return class extends Base {\n get typeHierarchy() {\n return {\n onPrepare: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.TypeHierarchyPrepareRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), undefined);\n });\n },\n onSupertypes: (handler) => {\n const type = vscode_languageserver_protocol_1.TypeHierarchySupertypesRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n onSubtypes: (handler) => {\n const type = vscode_languageserver_protocol_1.TypeHierarchySubtypesRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n }\n };\n }\n };\n};\nexports.TypeHierarchyFeature = TypeHierarchyFeature;\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';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InlineValueFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst InlineValueFeature = (Base) => {\n return class extends Base {\n get inlineValue() {\n return {\n refresh: () => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.InlineValueRefreshRequest.type);\n },\n on: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.InlineValueRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params));\n });\n }\n };\n }\n };\n};\nexports.InlineValueFeature = InlineValueFeature;\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';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FoldingRangeFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst FoldingRangeFeature = (Base) => {\n return class extends Base {\n get foldingRange() {\n return {\n refresh: () => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.FoldingRangeRefreshRequest.type);\n },\n on: (handler) => {\n const type = vscode_languageserver_protocol_1.FoldingRangeRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n }\n };\n }\n };\n};\nexports.FoldingRangeFeature = FoldingRangeFeature;\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';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InlayHintFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst InlayHintFeature = (Base) => {\n return class extends Base {\n get inlayHint() {\n return {\n refresh: () => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.InlayHintRefreshRequest.type);\n },\n on: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.InlayHintRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params));\n });\n },\n resolve: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.InlayHintResolveRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n };\n }\n };\n};\nexports.InlayHintFeature = InlayHintFeature;\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 = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst DiagnosticFeature = (Base) => {\n return class extends Base {\n get diagnostics() {\n return {\n refresh: () => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.DiagnosticRefreshRequest.type);\n },\n on: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.DocumentDiagnosticRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(vscode_languageserver_protocol_1.DocumentDiagnosticRequest.partialResult, params));\n });\n },\n onWorkspace: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WorkspaceDiagnosticRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(vscode_languageserver_protocol_1.WorkspaceDiagnosticRequest.partialResult, params));\n });\n }\n };\n }\n };\n};\nexports.DiagnosticFeature = DiagnosticFeature;\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';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MonikerFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst MonikerFeature = (Base) => {\n return class extends Base {\n get moniker() {\n return {\n on: (handler) => {\n const type = vscode_languageserver_protocol_1.MonikerRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n };\n }\n };\n};\nexports.MonikerFeature = MonikerFeature;\n", "\"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\" preserve: true/>\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._NotebooksImpl = exports._LanguagesImpl = exports.BulkUnregistration = exports.BulkRegistration = exports.ErrorMessageTracker = void 0;\nexports.combineConsoleFeatures = combineConsoleFeatures;\nexports.combineTelemetryFeatures = combineTelemetryFeatures;\nexports.combineTracerFeatures = combineTracerFeatures;\nexports.combineClientFeatures = combineClientFeatures;\nexports.combineWindowFeatures = combineWindowFeatures;\nexports.combineWorkspaceFeatures = combineWorkspaceFeatures;\nexports.combineLanguagesFeatures = combineLanguagesFeatures;\nexports.combineNotebooksFeatures = combineNotebooksFeatures;\nexports.combineFeatures = combineFeatures;\nexports.createConnection = createConnection;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst Is = __importStar(require(\"./utils/is\"));\nconst UUID = __importStar(require(\"./utils/uuid\"));\nconst progress_1 = require(\"./progress\");\nconst configuration_1 = require(\"./configuration\");\nconst workspaceFolder_1 = require(\"./workspaceFolder\");\nconst callHierarchy_1 = require(\"./callHierarchy\");\nconst semanticTokens_1 = require(\"./semanticTokens\");\nconst showDocument_1 = require(\"./showDocument\");\nconst fileOperations_1 = require(\"./fileOperations\");\nconst linkedEditingRange_1 = require(\"./linkedEditingRange\");\nconst typeHierarchy_1 = require(\"./typeHierarchy\");\nconst inlineValue_1 = require(\"./inlineValue\");\nconst foldingRange_1 = require(\"./foldingRange\");\n// import { InlineCompletionFeatureShape, InlineCompletionFeature } from './inlineCompletion.proposed';\nconst inlayHint_1 = require(\"./inlayHint\");\nconst diagnostic_1 = require(\"./diagnostic\");\nconst notebook_1 = require(\"./notebook\");\nconst moniker_1 = require(\"./moniker\");\nfunction null2Undefined(value) {\n if (value === null) {\n return undefined;\n }\n return value;\n}\n/**\n * Helps tracking error message. Equal occurrences of the same\n * message are only stored once. This class is for example\n * useful if text documents are validated in a loop and equal\n * error message should be folded into one.\n */\nclass ErrorMessageTracker {\n _messages;\n constructor() {\n this._messages = Object.create(null);\n }\n /**\n * Add a message to the tracker.\n *\n * @param message The message to add.\n */\n add(message) {\n let count = this._messages[message];\n if (!count) {\n count = 0;\n }\n count++;\n this._messages[message] = count;\n }\n /**\n * Send all tracked messages to the connection's window.\n *\n * @param connection The connection established between client and server.\n */\n sendErrors(connection) {\n Object.keys(this._messages).forEach(message => {\n connection.window.showErrorMessage(message);\n });\n }\n}\nexports.ErrorMessageTracker = ErrorMessageTracker;\nclass RemoteConsoleImpl {\n _rawConnection;\n _connection;\n constructor() {\n }\n rawAttach(connection) {\n this._rawConnection = connection;\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n fillServerCapabilities(_capabilities) {\n }\n initialize(_capabilities) {\n }\n error(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Error, message);\n }\n warn(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Warning, message);\n }\n info(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Info, message);\n }\n log(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Log, message);\n }\n debug(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Debug, message);\n }\n send(type, message) {\n if (this._rawConnection) {\n this._rawConnection.sendNotification(vscode_languageserver_protocol_1.LogMessageNotification.type, { type, message }).catch(() => {\n (0, vscode_languageserver_protocol_1.RAL)().console.error(`Sending log message failed`);\n });\n }\n }\n}\nclass _RemoteWindowImpl {\n _connection;\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n showErrorMessage(message, ...actions) {\n const params = { type: vscode_languageserver_protocol_1.MessageType.Error, message, actions };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, params).then(null2Undefined);\n }\n showWarningMessage(message, ...actions) {\n const params = { type: vscode_languageserver_protocol_1.MessageType.Warning, message, actions };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, params).then(null2Undefined);\n }\n showInformationMessage(message, ...actions) {\n const params = { type: vscode_languageserver_protocol_1.MessageType.Info, message, actions };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, params).then(null2Undefined);\n }\n}\nconst RemoteWindowImpl = (0, showDocument_1.ShowDocumentFeature)((0, progress_1.ProgressFeature)(_RemoteWindowImpl));\nvar BulkRegistration;\n(function (BulkRegistration) {\n /**\n * Creates a new bulk registration.\n * @return an empty bulk registration.\n */\n function create() {\n return new BulkRegistrationImpl();\n }\n BulkRegistration.create = create;\n})(BulkRegistration || (exports.BulkRegistration = BulkRegistration = {}));\nclass BulkRegistrationImpl {\n _registrations = [];\n _registered = new Set();\n add(type, registerOptions) {\n const method = Is.string(type) ? type : type.method;\n if (this._registered.has(method)) {\n throw new Error(`${method} is already added to this registration`);\n }\n const id = UUID.generateUuid();\n this._registrations.push({\n id: id,\n method: method,\n registerOptions: registerOptions || {}\n });\n this._registered.add(method);\n }\n asRegistrationParams() {\n return {\n registrations: this._registrations\n };\n }\n}\nvar BulkUnregistration;\n(function (BulkUnregistration) {\n function create() {\n return new BulkUnregistrationImpl(undefined, []);\n }\n BulkUnregistration.create = create;\n})(BulkUnregistration || (exports.BulkUnregistration = BulkUnregistration = {}));\nclass BulkUnregistrationImpl {\n _connection;\n _unregistrations = new Map();\n constructor(_connection, unregistrations) {\n this._connection = _connection;\n unregistrations.forEach(unregistration => {\n this._unregistrations.set(unregistration.method, unregistration);\n });\n }\n get isAttached() {\n return !!this._connection;\n }\n attach(connection) {\n this._connection = connection;\n }\n add(unregistration) {\n this._unregistrations.set(unregistration.method, unregistration);\n }\n dispose() {\n const unregistrations = [];\n for (const unregistration of this._unregistrations.values()) {\n unregistrations.push(unregistration);\n }\n const params = {\n unregisterations: unregistrations\n };\n this._connection.sendRequest(vscode_languageserver_protocol_1.UnregistrationRequest.type, params).catch(() => {\n this._connection.console.info(`Bulk unregistration failed.`);\n });\n }\n disposeSingle(arg) {\n const method = Is.string(arg) ? arg : arg.method;\n const unregistration = this._unregistrations.get(method);\n if (!unregistration) {\n return false;\n }\n const params = {\n unregisterations: [unregistration]\n };\n this._connection.sendRequest(vscode_languageserver_protocol_1.UnregistrationRequest.type, params).then(() => {\n this._unregistrations.delete(method);\n }, (_error) => {\n this._connection.console.info(`Un-registering request handler for ${unregistration.id} failed.`);\n });\n return true;\n }\n}\nclass RemoteClientImpl {\n _connection;\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n register(typeOrRegistrations, registerOptionsOrType, registerOptions) {\n if (typeOrRegistrations instanceof BulkRegistrationImpl) {\n return this.registerMany(typeOrRegistrations);\n }\n else if (typeOrRegistrations instanceof BulkUnregistrationImpl) {\n return this.registerSingle1(typeOrRegistrations, registerOptionsOrType, registerOptions);\n }\n else {\n return this.registerSingle2(typeOrRegistrations, registerOptionsOrType);\n }\n }\n registerSingle1(unregistration, type, registerOptions) {\n const method = Is.string(type) ? type : type.method;\n const id = UUID.generateUuid();\n const params = {\n registrations: [{ id, method, registerOptions: registerOptions || {} }]\n };\n if (!unregistration.isAttached) {\n unregistration.attach(this.connection);\n }\n return this.connection.sendRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params).then((_result) => {\n unregistration.add({ id: id, method: method });\n return unregistration;\n }, (_error) => {\n this.connection.console.info(`Registering request handler for ${method} failed.`);\n return Promise.reject(_error);\n });\n }\n registerSingle2(type, registerOptions) {\n const method = Is.string(type) ? type : type.method;\n const id = UUID.generateUuid();\n const params = {\n registrations: [{ id, method, registerOptions: registerOptions || {} }]\n };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params).then((_result) => {\n return vscode_languageserver_protocol_1.Disposable.create(() => {\n this.unregisterSingle(id, method).catch(() => { this.connection.console.info(`Un-registering capability with id ${id} failed.`); });\n });\n }, (_error) => {\n this.connection.console.info(`Registering request handler for ${method} failed.`);\n return Promise.reject(_error);\n });\n }\n unregisterSingle(id, method) {\n const params = {\n unregisterations: [{ id, method }]\n };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.UnregistrationRequest.type, params).catch(() => {\n this.connection.console.info(`Un-registering request handler for ${id} failed.`);\n });\n }\n registerMany(registrations) {\n const params = registrations.asRegistrationParams();\n return this.connection.sendRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params).then(() => {\n return new BulkUnregistrationImpl(this._connection, params.registrations.map(registration => { return { id: registration.id, method: registration.method }; }));\n }, (_error) => {\n this.connection.console.info(`Bulk registration failed.`);\n return Promise.reject(_error);\n });\n }\n}\nclass _RemoteWorkspaceImpl {\n _connection;\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n applyEdit(paramOrEdit) {\n function isApplyWorkspaceEditParams(value) {\n return value && !!value.edit;\n }\n const params = isApplyWorkspaceEditParams(paramOrEdit) ? paramOrEdit : { edit: paramOrEdit };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ApplyWorkspaceEditRequest.type, params);\n }\n}\nconst RemoteWorkspaceImpl = (0, fileOperations_1.FileOperationsFeature)((0, workspaceFolder_1.WorkspaceFoldersFeature)((0, configuration_1.ConfigurationFeature)(_RemoteWorkspaceImpl)));\nclass TracerImpl {\n _trace;\n _connection;\n constructor() {\n this._trace = vscode_languageserver_protocol_1.Trace.Off;\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n set trace(value) {\n this._trace = value;\n }\n log(message, verbose) {\n if (this._trace === vscode_languageserver_protocol_1.Trace.Off) {\n return;\n }\n this.connection.sendNotification(vscode_languageserver_protocol_1.LogTraceNotification.type, {\n message: message,\n verbose: this._trace === vscode_languageserver_protocol_1.Trace.Verbose ? verbose : undefined\n }).catch(() => {\n // Very hard to decide what to do. We tried to send a log\n // message which failed so we can't simply send another :-(.\n });\n }\n}\nclass TelemetryImpl {\n _connection;\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n logEvent(data) {\n this.connection.sendNotification(vscode_languageserver_protocol_1.TelemetryEventNotification.type, data).catch(() => {\n this.connection.console.log(`Sending TelemetryEventNotification failed`);\n });\n }\n}\nclass _LanguagesImpl {\n _connection;\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n attachWorkDoneProgress(params) {\n return (0, progress_1.attachWorkDone)(this.connection, params);\n }\n attachPartialResultProgress(_type, params) {\n return (0, progress_1.attachPartialResult)(this.connection, params);\n }\n}\nexports._LanguagesImpl = _LanguagesImpl;\nconst LanguagesImpl = (0, foldingRange_1.FoldingRangeFeature)((0, moniker_1.MonikerFeature)((0, diagnostic_1.DiagnosticFeature)((0, inlayHint_1.InlayHintFeature)((0, inlineValue_1.InlineValueFeature)((0, typeHierarchy_1.TypeHierarchyFeature)((0, linkedEditingRange_1.LinkedEditingRangeFeature)((0, semanticTokens_1.SemanticTokensFeature)((0, callHierarchy_1.CallHierarchyFeature)(_LanguagesImpl)))))))));\nclass _NotebooksImpl {\n _connection;\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n attachWorkDoneProgress(params) {\n return (0, progress_1.attachWorkDone)(this.connection, params);\n }\n attachPartialResultProgress(_type, params) {\n return (0, progress_1.attachPartialResult)(this.connection, params);\n }\n}\nexports._NotebooksImpl = _NotebooksImpl;\nconst NotebooksImpl = (0, notebook_1.NotebookSyncFeature)(_NotebooksImpl);\nfunction combineConsoleFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nfunction combineTelemetryFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nfunction combineTracerFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nfunction combineClientFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nfunction combineWindowFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nfunction combineWorkspaceFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nfunction combineLanguagesFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nfunction combineNotebooksFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nfunction combineFeatures(one, two) {\n function combine(one, two, func) {\n if (one && two) {\n return func(one, two);\n }\n else if (one) {\n return one;\n }\n else {\n return two;\n }\n }\n const result = {\n __brand: 'features',\n console: combine(one.console, two.console, combineConsoleFeatures),\n tracer: combine(one.tracer, two.tracer, combineTracerFeatures),\n telemetry: combine(one.telemetry, two.telemetry, combineTelemetryFeatures),\n client: combine(one.client, two.client, combineClientFeatures),\n window: combine(one.window, two.window, combineWindowFeatures),\n workspace: combine(one.workspace, two.workspace, combineWorkspaceFeatures),\n languages: combine(one.languages, two.languages, combineLanguagesFeatures),\n notebooks: combine(one.notebooks, two.notebooks, combineNotebooksFeatures)\n };\n return result;\n}\nfunction createConnection(connectionFactory, watchDog, factories) {\n const logger = (factories && factories.console ? new (factories.console(RemoteConsoleImpl))() : new RemoteConsoleImpl());\n const connection = connectionFactory(logger);\n logger.rawAttach(connection);\n const tracer = (factories && factories.tracer ? new (factories.tracer(TracerImpl))() : new TracerImpl());\n const telemetry = (factories && factories.telemetry ? new (factories.telemetry(TelemetryImpl))() : new TelemetryImpl());\n const client = (factories && factories.client ? new (factories.client(RemoteClientImpl))() : new RemoteClientImpl());\n const remoteWindow = (factories && factories.window ? new (factories.window(RemoteWindowImpl))() : new RemoteWindowImpl());\n const workspace = (factories && factories.workspace ? new (factories.workspace(RemoteWorkspaceImpl))() : new RemoteWorkspaceImpl());\n const languages = (factories && factories.languages ? new (factories.languages(LanguagesImpl))() : new LanguagesImpl());\n const notebooks = (factories && factories.notebooks ? new (factories.notebooks(NotebooksImpl))() : new NotebooksImpl());\n const allRemotes = [logger, tracer, telemetry, client, remoteWindow, workspace, languages, notebooks];\n function asPromise(value) {\n if (value instanceof Promise) {\n return value;\n }\n else if (Is.thenable(value)) {\n return new Promise((resolve, reject) => {\n value.then((resolved) => resolve(resolved), (error) => reject(error));\n });\n }\n else {\n return Promise.resolve(value);\n }\n }\n let shutdownHandler = undefined;\n let initializeHandler = undefined;\n let exitHandler = undefined;\n const protocolConnection = {\n listen: () => connection.listen(),\n sendRequest: (type, ...params) => connection.sendRequest(Is.string(type) ? type : type.method, ...params),\n onRequest: (type, handler) => connection.onRequest(type, handler),\n sendNotification: (type, param) => {\n const method = Is.string(type) ? type : type.method;\n return connection.sendNotification(method, param);\n },\n onNotification: (type, handler) => connection.onNotification(type, handler),\n onProgress: connection.onProgress,\n sendProgress: connection.sendProgress,\n onInitialize: (handler) => {\n initializeHandler = handler;\n return {\n dispose: () => {\n initializeHandler = undefined;\n }\n };\n },\n onInitialized: (handler) => connection.onNotification(vscode_languageserver_protocol_1.InitializedNotification.type, handler),\n onShutdown: (handler) => {\n shutdownHandler = handler;\n return {\n dispose: () => {\n shutdownHandler = undefined;\n }\n };\n },\n onExit: (handler) => {\n exitHandler = handler;\n return {\n dispose: () => {\n exitHandler = undefined;\n }\n };\n },\n get console() { return logger; },\n get telemetry() { return telemetry; },\n get tracer() { return tracer; },\n get client() { return client; },\n get window() { return remoteWindow; },\n get workspace() { return workspace; },\n get languages() { return languages; },\n get notebooks() { return notebooks; },\n onDidChangeConfiguration: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidChangeConfigurationNotification.type, handler),\n onDidChangeWatchedFiles: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidChangeWatchedFilesNotification.type, handler),\n __textDocumentSync: undefined,\n onDidOpenTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidOpenTextDocumentNotification.type, handler),\n onDidChangeTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidChangeTextDocumentNotification.type, handler),\n onDidCloseTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidCloseTextDocumentNotification.type, handler),\n onWillSaveTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.WillSaveTextDocumentNotification.type, handler),\n onWillSaveTextDocumentWaitUntil: (handler) => connection.onRequest(vscode_languageserver_protocol_1.WillSaveTextDocumentWaitUntilRequest.type, handler),\n onDidSaveTextDocument: (handler) => connection.onNotification(vscode_languageserver_protocol_1.DidSaveTextDocumentNotification.type, handler),\n sendDiagnostics: (params) => connection.sendNotification(vscode_languageserver_protocol_1.PublishDiagnosticsNotification.type, params),\n onHover: (handler) => connection.onRequest(vscode_languageserver_protocol_1.HoverRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), undefined);\n }),\n onCompletion: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CompletionRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onCompletionResolve: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CompletionResolveRequest.type, handler),\n onSignatureHelp: (handler) => connection.onRequest(vscode_languageserver_protocol_1.SignatureHelpRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), undefined);\n }),\n onDeclaration: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DeclarationRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onDefinition: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DefinitionRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onTypeDefinition: (handler) => connection.onRequest(vscode_languageserver_protocol_1.TypeDefinitionRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onImplementation: (handler) => connection.onRequest(vscode_languageserver_protocol_1.ImplementationRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onReferences: (handler) => connection.onRequest(vscode_languageserver_protocol_1.ReferencesRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onDocumentHighlight: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentHighlightRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onDocumentSymbol: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentSymbolRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onWorkspaceSymbol: (handler) => connection.onRequest(vscode_languageserver_protocol_1.WorkspaceSymbolRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onWorkspaceSymbolResolve: (handler) => connection.onRequest(vscode_languageserver_protocol_1.WorkspaceSymbolResolveRequest.type, handler),\n onCodeAction: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CodeActionRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onCodeActionResolve: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CodeActionResolveRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onCodeLens: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CodeLensRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onCodeLensResolve: (handler) => connection.onRequest(vscode_languageserver_protocol_1.CodeLensResolveRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onDocumentFormatting: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentFormattingRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), undefined);\n }),\n onDocumentRangeFormatting: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentRangeFormattingRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), undefined);\n }),\n onDocumentOnTypeFormatting: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentOnTypeFormattingRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onRenameRequest: (handler) => connection.onRequest(vscode_languageserver_protocol_1.RenameRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), undefined);\n }),\n onPrepareRename: (handler) => connection.onRequest(vscode_languageserver_protocol_1.PrepareRenameRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onDocumentLinks: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentLinkRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onDocumentLinkResolve: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentLinkResolveRequest.type, (params, cancel) => {\n return handler(params, cancel);\n }),\n onDocumentColor: (handler) => connection.onRequest(vscode_languageserver_protocol_1.DocumentColorRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onColorPresentation: (handler) => connection.onRequest(vscode_languageserver_protocol_1.ColorPresentationRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onFoldingRanges: (handler) => connection.onRequest(vscode_languageserver_protocol_1.FoldingRangeRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onSelectionRanges: (handler) => connection.onRequest(vscode_languageserver_protocol_1.SelectionRangeRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), (0, progress_1.attachPartialResult)(connection, params));\n }),\n onExecuteCommand: (handler) => connection.onRequest(vscode_languageserver_protocol_1.ExecuteCommandRequest.type, (params, cancel) => {\n return handler(params, cancel, (0, progress_1.attachWorkDone)(connection, params), undefined);\n }),\n dispose: () => connection.dispose()\n };\n for (const remote of allRemotes) {\n remote.attach(protocolConnection);\n }\n connection.onRequest(vscode_languageserver_protocol_1.InitializeRequest.type, (params) => {\n watchDog.initialize(params);\n if (Is.string(params.trace)) {\n tracer.trace = vscode_languageserver_protocol_1.Trace.fromString(params.trace);\n }\n for (const remote of allRemotes) {\n remote.initialize(params.capabilities);\n }\n if (initializeHandler) {\n const result = initializeHandler(params, new vscode_languageserver_protocol_1.CancellationTokenSource().token, (0, progress_1.attachWorkDone)(connection, params), undefined);\n return asPromise(result).then((value) => {\n if (value instanceof vscode_languageserver_protocol_1.ResponseError) {\n return value;\n }\n let result = value;\n if (!result) {\n result = { capabilities: {} };\n }\n let capabilities = result.capabilities;\n if (!capabilities) {\n capabilities = {};\n result.capabilities = capabilities;\n }\n if (capabilities.textDocumentSync === undefined || capabilities.textDocumentSync === null) {\n capabilities.textDocumentSync = Is.number(protocolConnection.__textDocumentSync) ? protocolConnection.__textDocumentSync : vscode_languageserver_protocol_1.TextDocumentSyncKind.None;\n }\n else if (!Is.number(capabilities.textDocumentSync) && !Is.number(capabilities.textDocumentSync.change)) {\n capabilities.textDocumentSync.change = Is.number(protocolConnection.__textDocumentSync) ? protocolConnection.__textDocumentSync : vscode_languageserver_protocol_1.TextDocumentSyncKind.None;\n }\n for (const remote of allRemotes) {\n remote.fillServerCapabilities(capabilities);\n }\n return result;\n });\n }\n else {\n const result = { capabilities: { textDocumentSync: vscode_languageserver_protocol_1.TextDocumentSyncKind.None } };\n for (const remote of allRemotes) {\n remote.fillServerCapabilities(result.capabilities);\n }\n return result;\n }\n });\n connection.onRequest(vscode_languageserver_protocol_1.ShutdownRequest.type, () => {\n watchDog.shutdownReceived = true;\n if (shutdownHandler) {\n return shutdownHandler(new vscode_languageserver_protocol_1.CancellationTokenSource().token);\n }\n else {\n return undefined;\n }\n });\n connection.onNotification(vscode_languageserver_protocol_1.ExitNotification.type, () => {\n try {\n if (exitHandler) {\n return exitHandler();\n }\n }\n finally {\n if (watchDog.shutdownReceived) {\n watchDog.exit(0);\n }\n else {\n watchDog.exit(1);\n }\n }\n });\n connection.onNotification(vscode_languageserver_protocol_1.SetTraceNotification.type, (params) => {\n tracer.trace = vscode_languageserver_protocol_1.Trace.fromString(params.value);\n });\n return protocolConnection;\n}\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProposedFeatures = exports.NotebookDocuments = exports.TextDocuments = exports.SemanticTokensBuilder = void 0;\nconst semanticTokens_1 = require(\"./semanticTokens\");\nObject.defineProperty(exports, \"SemanticTokensBuilder\", { enumerable: true, get: function () { return semanticTokens_1.SemanticTokensBuilder; } });\nconst ic = __importStar(require(\"./inlineCompletion.proposed\"));\nconst tdc = __importStar(require(\"./textDocumentContent\"));\n__exportStar(require(\"vscode-languageserver-protocol\"), exports);\nconst textDocuments_1 = require(\"./textDocuments\");\nObject.defineProperty(exports, \"TextDocuments\", { enumerable: true, get: function () { return textDocuments_1.TextDocuments; } });\nconst notebook_1 = require(\"./notebook\");\nObject.defineProperty(exports, \"NotebookDocuments\", { enumerable: true, get: function () { return notebook_1.NotebookDocuments; } });\n__exportStar(require(\"./server\"), exports);\nvar ProposedFeatures;\n(function (ProposedFeatures) {\n ProposedFeatures.all = {\n __brand: 'features',\n workspace: tdc.TextDocumentContentFeature,\n languages: ic.InlineCompletionFeature\n };\n})(ProposedFeatures || (exports.ProposedFeatures = ProposedFeatures = {}));\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.PromiseImpl = exports.QueueMicrotaskImpl = void 0;\nconst api_1 = require(\"../common/api\");\nclass MessageBuffer extends api_1.AbstractMessageBuffer {\n static emptyBuffer = new Uint8Array(0);\n asciiDecoder;\n constructor(encoding = 'utf-8') {\n super(encoding);\n this.asciiDecoder = new TextDecoder('ascii');\n }\n emptyBuffer() {\n return MessageBuffer.emptyBuffer;\n }\n fromString(value, _encoding) {\n return (new TextEncoder()).encode(value);\n }\n toString(value, encoding) {\n if (encoding === 'ascii') {\n return this.asciiDecoder.decode(value);\n }\n else {\n return (new TextDecoder(encoding)).decode(value);\n }\n }\n asNative(buffer, length) {\n if (length === undefined) {\n return buffer;\n }\n else {\n return buffer.slice(0, length);\n }\n }\n allocNative(length) {\n return new Uint8Array(length);\n }\n}\nclass ReadableStreamWrapper {\n socket;\n _onData;\n _messageListener;\n constructor(socket) {\n this.socket = socket;\n this._onData = new api_1.Emitter();\n this._messageListener = (event) => {\n const blob = event.data;\n blob.arrayBuffer().then((buffer) => {\n this._onData.fire(new Uint8Array(buffer));\n }, () => {\n (0, api_1.RAL)().console.error(`Converting blob to array buffer failed.`);\n });\n };\n this.socket.addEventListener('message', this._messageListener);\n }\n onClose(listener) {\n this.socket.addEventListener('close', listener);\n return api_1.Disposable.create(() => this.socket.removeEventListener('close', listener));\n }\n onError(listener) {\n this.socket.addEventListener('error', listener);\n return api_1.Disposable.create(() => this.socket.removeEventListener('error', listener));\n }\n onEnd(listener) {\n this.socket.addEventListener('end', listener);\n return api_1.Disposable.create(() => this.socket.removeEventListener('end', listener));\n }\n onData(listener) {\n return this._onData.event(listener);\n }\n}\nclass WritableStreamWrapper {\n socket;\n constructor(socket) {\n this.socket = socket;\n }\n onClose(listener) {\n this.socket.addEventListener('close', listener);\n return api_1.Disposable.create(() => this.socket.removeEventListener('close', listener));\n }\n onError(listener) {\n this.socket.addEventListener('error', listener);\n return api_1.Disposable.create(() => this.socket.removeEventListener('error', listener));\n }\n onEnd(listener) {\n this.socket.addEventListener('end', listener);\n return api_1.Disposable.create(() => this.socket.removeEventListener('end', listener));\n }\n write(data, encoding) {\n if (typeof data === 'string') {\n if (encoding !== undefined && encoding !== 'utf-8') {\n throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${encoding}`);\n }\n this.socket.send(data);\n }\n else {\n this.socket.send(data);\n }\n return Promise.resolve();\n }\n end() {\n this.socket.close();\n }\n}\nclass QueueMicrotaskImpl {\n isDisposed;\n constructor(callback, ...args) {\n this.isDisposed = false;\n queueMicrotask(() => {\n if (!this.isDisposed) {\n callback(...args);\n }\n });\n }\n dispose() {\n this.isDisposed = true;\n }\n}\nexports.QueueMicrotaskImpl = QueueMicrotaskImpl;\nclass PromiseImpl {\n isDisposed;\n constructor(callback, ...args) {\n this.isDisposed = false;\n Promise.resolve().then(() => {\n if (!this.isDisposed) {\n callback(...args);\n }\n }, () => {\n });\n }\n dispose() {\n this.isDisposed = true;\n }\n}\nexports.PromiseImpl = PromiseImpl;\nconst _textEncoder = new TextEncoder();\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 if (options.charset !== 'utf-8') {\n throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${options.charset}`);\n }\n return Promise.resolve(_textEncoder.encode(JSON.stringify(msg, undefined, 0)));\n }\n }),\n decoder: Object.freeze({\n name: 'application/json',\n decode: (buffer, options) => {\n if (!(buffer instanceof Uint8Array)) {\n throw new Error(`In a Browser environments only Uint8Arrays are supported.`);\n }\n return Promise.resolve(JSON.parse(new TextDecoder(options.charset).decode(buffer)));\n }\n })\n }),\n stream: Object.freeze({\n asReadableStream: (socket) => new ReadableStreamWrapper(socket),\n asWritableStream: (socket) => new WritableStreamWrapper(socket)\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 // Browser don't have setImmediate and setTimeout with 0 delay of 0 can cause problems\n // in webviews and similar environments due to throttling.\n if (typeof globalThis.queueMicrotask === 'function') {\n return new QueueMicrotaskImpl(callback, ...args);\n }\n else if (Promise !== undefined) {\n return new PromiseImpl(callback, ...args);\n }\n else {\n const handle = setTimeout(callback, 0, ...args);\n return { dispose: () => clearTimeout(handle) };\n }\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 api_1.RAL.install(_ril);\n }\n RIL.install = install;\n})(RIL || (RIL = {}));\nexports.default = RIL;\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserMessageWriter = exports.BrowserMessageReader = void 0;\nexports.createMessageConnection = createMessageConnection;\nconst ril_1 = __importDefault(require(\"./ril\"));\n// Install the browser runtime abstract.\nril_1.default.install();\nconst api_1 = require(\"../common/api\");\n__exportStar(require(\"../common/api\"), exports);\nclass BrowserMessageReader extends api_1.AbstractMessageReader {\n _onData;\n _messageListener;\n constructor(port) {\n super();\n this._onData = new api_1.Emitter();\n this._messageListener = (event) => {\n this._onData.fire(event.data);\n };\n port.addEventListener('error', (event) => this.fireError(event));\n port.onmessage = this._messageListener;\n }\n listen(callback) {\n return this._onData.event(callback);\n }\n}\nexports.BrowserMessageReader = BrowserMessageReader;\nclass BrowserMessageWriter extends api_1.AbstractMessageWriter {\n port;\n errorCount;\n constructor(port) {\n super();\n this.port = port;\n this.errorCount = 0;\n port.addEventListener('error', (event) => this.fireError(event));\n }\n write(msg) {\n try {\n this.port.postMessage(msg);\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.BrowserMessageWriter = BrowserMessageWriter;\nfunction createMessageConnection(reader, writer, logger, options) {\n if (logger === undefined) {\n logger = api_1.NullLogger;\n }\n if (api_1.ConnectionStrategy.is(options)) {\n options = { connectionStrategy: options };\n }\n return (0, api_1.createMessageConnection)(reader, writer, logger, options);\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 * ------------------------------------------------------------------------------------------ */\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 = createProtocolConnection;\nconst browser_1 = require(\"vscode-jsonrpc/browser\");\n__exportStar(require(\"vscode-jsonrpc/browser\"), exports);\n__exportStar(require(\"../common/api\"), exports);\nfunction createProtocolConnection(reader, writer, logger, options) {\n return (0, browser_1.createMessageConnection)(reader, writer, logger, options);\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 * ------------------------------------------------------------------------------------------ */\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.createConnection = createConnection;\nconst api_1 = require(\"../common/api\");\n__exportStar(require(\"vscode-languageserver-protocol/browser\"), exports);\n__exportStar(require(\"../common/api\"), exports);\nlet _shutdownReceived = false;\nconst watchDog = {\n initialize: (_params) => {\n },\n get shutdownReceived() {\n return _shutdownReceived;\n },\n set shutdownReceived(value) {\n _shutdownReceived = value;\n },\n exit: (_code) => {\n }\n};\nfunction createConnection(arg1, arg2, arg3, arg4) {\n let factories;\n let reader;\n let writer;\n let options;\n if (arg1 !== void 0 && arg1.__brand === 'features') {\n factories = arg1;\n arg1 = arg2;\n arg2 = arg3;\n arg3 = arg4;\n }\n if (api_1.ConnectionStrategy.is(arg1) || api_1.ConnectionOptions.is(arg1)) {\n options = arg1;\n }\n else {\n reader = arg1;\n writer = arg2;\n options = arg3;\n }\n const connectionFactory = (logger) => {\n return (0, api_1.createProtocolConnection)(reader, writer, logger, options);\n };\n return (0, api_1.createConnection)(connectionFactory, watchDog, factories);\n}\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\nimport { CancellationToken, ResponseError, LSPErrorCodes } from 'vscode-languageserver';\nimport { RuntimeEnvironment } from '../jsonServer.js';\n\nexport function formatError(message: string, err: any): string {\n\tif (err instanceof Error) {\n\t\tconst error = <Error>err;\n\t\treturn `${message}: ${error.message}\\n${error.stack}`;\n\t} else if (typeof err === 'string') {\n\t\treturn `${message}: ${err}`;\n\t} else if (err) {\n\t\treturn `${message}: ${err.toString()}`;\n\t}\n\treturn message;\n}\n\nexport function runSafeAsync<T>(runtime: RuntimeEnvironment, func: () => Thenable<T>, errorVal: T, errorMessage: string, token: CancellationToken): Thenable<T | ResponseError<any>> {\n\treturn new Promise<T | ResponseError<any>>((resolve) => {\n\t\truntime.timer.setImmediate(() => {\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\tresolve(cancelValue());\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn func().then(result => {\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\tresolve(cancelValue());\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t}, e => {\n\t\t\t\tconsole.error(formatError(errorMessage, e));\n\t\t\t\tresolve(errorVal);\n\t\t\t});\n\t\t});\n\t});\n}\n\nexport function runSafe<T, E>(runtime: RuntimeEnvironment, func: () => T, errorVal: T, errorMessage: string, token: CancellationToken): Thenable<T | ResponseError<E>> {\n\treturn new Promise<T | ResponseError<E>>((resolve) => {\n\t\truntime.timer.setImmediate(() => {\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\tresolve(cancelValue());\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = func();\n\t\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\t\tresolve(cancelValue());\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t}\n\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error(formatError(errorMessage, e));\n\t\t\t\t\tresolve(errorVal);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\nfunction cancelValue<E>() {\n\treturn new ResponseError<E>(LSPErrorCodes.RequestCancelled, 'Request cancelled');\n}\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\nimport { CancellationToken, Connection, Diagnostic, Disposable, DocumentDiagnosticParams, DocumentDiagnosticReport, DocumentDiagnosticReportKind, TextDocuments } from 'vscode-languageserver';\nimport { TextDocument } from 'vscode-json-languageservice';\nimport { formatError, runSafeAsync } from './runner.js';\nimport { RuntimeEnvironment } from '../jsonServer.js';\n\nexport type Validator = (textDocument: TextDocument) => Promise<Diagnostic[]>;\nexport type DiagnosticsSupport = {\n\tdispose(): void;\n\trequestRefresh(): void;\n};\n\nexport function registerDiagnosticsPushSupport(documents: TextDocuments<TextDocument>, connection: Connection, runtime: RuntimeEnvironment, validate: Validator): DiagnosticsSupport {\n\n\tconst pendingValidationRequests: { [uri: string]: Disposable } = {};\n\tconst validationDelayMs = 500;\n\n\tconst disposables: Disposable[] = [];\n\n\t// The content of a text document has changed. This event is emitted\n\t// when the text document first opened or when its content has changed.\n\tdocuments.onDidChangeContent(change => {\n\t\ttriggerValidation(change.document);\n\t}, undefined, disposables);\n\n\t// a document has closed: clear all diagnostics\n\tdocuments.onDidClose(event => {\n\t\tcleanPendingValidation(event.document);\n\t\tconnection.sendDiagnostics({ uri: event.document.uri, diagnostics: [] });\n\t}, undefined, disposables);\n\n\tfunction cleanPendingValidation(textDocument: TextDocument): void {\n\t\tconst request = pendingValidationRequests[textDocument.uri];\n\t\tif (request) {\n\t\t\trequest.dispose();\n\t\t\tdelete pendingValidationRequests[textDocument.uri];\n\t\t}\n\t}\n\n\tfunction triggerValidation(textDocument: TextDocument): void {\n\t\tcleanPendingValidation(textDocument);\n\t\tconst request = pendingValidationRequests[textDocument.uri] = runtime.timer.setTimeout(async () => {\n\t\t\tif (request === pendingValidationRequests[textDocument.uri]) {\n\t\t\t\ttry {\n\t\t\t\t\tconst diagnostics = await validate(textDocument);\n\t\t\t\t\tif (request === pendingValidationRequests[textDocument.uri]) {\n\t\t\t\t\t\tconnection.sendDiagnostics({ uri: textDocument.uri, diagnostics });\n\t\t\t\t\t}\n\t\t\t\t\tdelete pendingValidationRequests[textDocument.uri];\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconnection.console.error(formatError(`Error while validating ${textDocument.uri}`, e));\n\t\t\t\t}\n\t\t\t}\n\t\t}, validationDelayMs);\n\t}\n\n\treturn {\n\t\trequestRefresh: () => {\n\t\t\tdocuments.all().forEach(triggerValidation);\n\t\t},\n\t\tdispose: () => {\n\t\t\tdisposables.forEach(d => d.dispose());\n\t\t\tdisposables.length = 0;\n\t\t\tconst keys = Object.keys(pendingValidationRequests);\n\t\t\tfor (const key of keys) {\n\t\t\t\tpendingValidationRequests[key].dispose();\n\t\t\t\tdelete pendingValidationRequests[key];\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport function registerDiagnosticsPullSupport(documents: TextDocuments<TextDocument>, connection: Connection, runtime: RuntimeEnvironment, validate: Validator): DiagnosticsSupport {\n\n\tfunction newDocumentDiagnosticReport(diagnostics: Diagnostic[]): DocumentDiagnosticReport {\n\t\treturn {\n\t\t\tkind: DocumentDiagnosticReportKind.Full,\n\t\t\titems: diagnostics\n\t\t};\n\t}\n\n\tconst registration = connection.languages.diagnostics.on(async (params: DocumentDiagnosticParams, token: CancellationToken) => {\n\t\treturn runSafeAsync(runtime, async () => {\n\t\t\tconst document = documents.get(params.textDocument.uri);\n\t\t\tif (document) {\n\t\t\t\treturn newDocumentDiagnosticReport(await validate(document));\n\t\t\t}\n\t\t\treturn newDocumentDiagnosticReport([]);\n\n\t\t}, newDocumentDiagnosticReport([]), `Error while computing diagnostics for ${params.textDocument.uri}`, token);\n\t});\n\n\tfunction requestRefresh(): void {\n\t\tconnection.languages.diagnostics.refresh();\n\t}\n\n\treturn {\n\t\trequestRefresh,\n\t\tdispose: () => {\n\t\t\tregistration.dispose();\n\t\t}\n\t};\n\n}\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/**\n * Creates a JSON scanner on the given text.\n * If ignoreTrivia is set, whitespaces or comments are ignored.\n */\nexport function createScanner(text, ignoreTrivia = false) {\n const len = text.length;\n let pos = 0, value = '', tokenOffset = 0, token = 16 /* SyntaxKind.Unknown */, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0 /* ScanError.None */;\n function scanHexDigits(count, exact) {\n let digits = 0;\n let value = 0;\n while (digits < count || !exact) {\n let ch = text.charCodeAt(pos);\n if (ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */) {\n value = value * 16 + ch - 48 /* CharacterCodes._0 */;\n }\n else if (ch >= 65 /* CharacterCodes.A */ && ch <= 70 /* CharacterCodes.F */) {\n value = value * 16 + ch - 65 /* CharacterCodes.A */ + 10;\n }\n else if (ch >= 97 /* CharacterCodes.a */ && ch <= 102 /* CharacterCodes.f */) {\n value = value * 16 + ch - 97 /* CharacterCodes.a */ + 10;\n }\n else {\n break;\n }\n pos++;\n digits++;\n }\n if (digits < count) {\n value = -1;\n }\n return value;\n }\n function setPosition(newPosition) {\n pos = newPosition;\n value = '';\n tokenOffset = 0;\n token = 16 /* SyntaxKind.Unknown */;\n scanError = 0 /* ScanError.None */;\n }\n function scanNumber() {\n let start = pos;\n if (text.charCodeAt(pos) === 48 /* CharacterCodes._0 */) {\n pos++;\n }\n else {\n pos++;\n while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n }\n }\n if (pos < text.length && text.charCodeAt(pos) === 46 /* CharacterCodes.dot */) {\n pos++;\n if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n }\n }\n else {\n scanError = 3 /* ScanError.UnexpectedEndOfNumber */;\n return text.substring(start, pos);\n }\n }\n let end = pos;\n if (pos < text.length && (text.charCodeAt(pos) === 69 /* CharacterCodes.E */ || text.charCodeAt(pos) === 101 /* CharacterCodes.e */)) {\n pos++;\n if (pos < text.length && text.charCodeAt(pos) === 43 /* CharacterCodes.plus */ || text.charCodeAt(pos) === 45 /* CharacterCodes.minus */) {\n pos++;\n }\n if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n }\n end = pos;\n }\n else {\n scanError = 3 /* ScanError.UnexpectedEndOfNumber */;\n }\n }\n return text.substring(start, end);\n }\n function scanString() {\n let result = '', start = pos;\n while (true) {\n if (pos >= len) {\n result += text.substring(start, pos);\n scanError = 2 /* ScanError.UnexpectedEndOfString */;\n break;\n }\n const ch = text.charCodeAt(pos);\n if (ch === 34 /* CharacterCodes.doubleQuote */) {\n result += text.substring(start, pos);\n pos++;\n break;\n }\n if (ch === 92 /* CharacterCodes.backslash */) {\n result += text.substring(start, pos);\n pos++;\n if (pos >= len) {\n scanError = 2 /* ScanError.UnexpectedEndOfString */;\n break;\n }\n const ch2 = text.charCodeAt(pos++);\n switch (ch2) {\n case 34 /* CharacterCodes.doubleQuote */:\n result += '\"';\n break;\n case 92 /* CharacterCodes.backslash */:\n result += '\\\\';\n break;\n case 47 /* CharacterCodes.slash */:\n result += '/';\n break;\n case 98 /* CharacterCodes.b */:\n result += '\\b';\n break;\n case 102 /* CharacterCodes.f */:\n result += '\\f';\n break;\n case 110 /* CharacterCodes.n */:\n result += '\\n';\n break;\n case 114 /* CharacterCodes.r */:\n result += '\\r';\n break;\n case 116 /* CharacterCodes.t */:\n result += '\\t';\n break;\n case 117 /* CharacterCodes.u */:\n {\n const ch3 = scanHexDigits(4, true);\n if (ch3 >= 0) {\n result += String.fromCharCode(ch3);\n }\n else {\n scanError = 4 /* ScanError.InvalidUnicode */;\n }\n }\n break;\n default:\n scanError = 5 /* ScanError.InvalidEscapeCharacter */;\n }\n start = pos;\n continue;\n }\n if (ch >= 0 && ch <= 0x1f) {\n if (isLineBreak(ch)) {\n result += text.substring(start, pos);\n scanError = 2 /* ScanError.UnexpectedEndOfString */;\n break;\n }\n else {\n scanError = 6 /* ScanError.InvalidCharacter */;\n // mark as error but continue with string\n }\n }\n pos++;\n }\n return result;\n }\n function scanNext() {\n value = '';\n scanError = 0 /* ScanError.None */;\n tokenOffset = pos;\n lineStartOffset = lineNumber;\n prevTokenLineStartOffset = tokenLineStartOffset;\n if (pos >= len) {\n // at the end\n tokenOffset = len;\n return token = 17 /* SyntaxKind.EOF */;\n }\n let code = text.charCodeAt(pos);\n // trivia: whitespace\n if (isWhiteSpace(code)) {\n do {\n pos++;\n value += String.fromCharCode(code);\n code = text.charCodeAt(pos);\n } while (isWhiteSpace(code));\n return token = 15 /* SyntaxKind.Trivia */;\n }\n // trivia: newlines\n if (isLineBreak(code)) {\n pos++;\n value += String.fromCharCode(code);\n if (code === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) {\n pos++;\n value += '\\n';\n }\n lineNumber++;\n tokenLineStartOffset = pos;\n return token = 14 /* SyntaxKind.LineBreakTrivia */;\n }\n switch (code) {\n // tokens: []{}:,\n case 123 /* CharacterCodes.openBrace */:\n pos++;\n return token = 1 /* SyntaxKind.OpenBraceToken */;\n case 125 /* CharacterCodes.closeBrace */:\n pos++;\n return token = 2 /* SyntaxKind.CloseBraceToken */;\n case 91 /* CharacterCodes.openBracket */:\n pos++;\n return token = 3 /* SyntaxKind.OpenBracketToken */;\n case 93 /* CharacterCodes.closeBracket */:\n pos++;\n return token = 4 /* SyntaxKind.CloseBracketToken */;\n case 58 /* CharacterCodes.colon */:\n pos++;\n return token = 6 /* SyntaxKind.ColonToken */;\n case 44 /* CharacterCodes.comma */:\n pos++;\n return token = 5 /* SyntaxKind.CommaToken */;\n // strings\n case 34 /* CharacterCodes.doubleQuote */:\n pos++;\n value = scanString();\n return token = 10 /* SyntaxKind.StringLiteral */;\n // comments\n case 47 /* CharacterCodes.slash */: {\n const start = pos - 1;\n // Single-line comment\n if (text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) {\n pos += 2;\n while (pos < len) {\n if (isLineBreak(text.charCodeAt(pos))) {\n break;\n }\n pos++;\n }\n value = text.substring(start, pos);\n return token = 12 /* SyntaxKind.LineCommentTrivia */;\n }\n // Multi-line comment\n if (text.charCodeAt(pos + 1) === 42 /* CharacterCodes.asterisk */) {\n pos += 2;\n const safeLength = len - 1; // For lookahead.\n let commentClosed = false;\n while (pos < safeLength) {\n const ch = text.charCodeAt(pos);\n if (ch === 42 /* CharacterCodes.asterisk */ && text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) {\n pos += 2;\n commentClosed = true;\n break;\n }\n pos++;\n if (isLineBreak(ch)) {\n if (ch === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) {\n pos++;\n }\n lineNumber++;\n tokenLineStartOffset = pos;\n }\n }\n if (!commentClosed) {\n pos++;\n scanError = 1 /* ScanError.UnexpectedEndOfComment */;\n }\n value = text.substring(start, pos);\n return token = 13 /* SyntaxKind.BlockCommentTrivia */;\n }\n // just a single slash\n value += String.fromCharCode(code);\n pos++;\n return token = 16 /* SyntaxKind.Unknown */;\n }\n // numbers\n case 45 /* CharacterCodes.minus */:\n value += String.fromCharCode(code);\n pos++;\n if (pos === len || !isDigit(text.charCodeAt(pos))) {\n return token = 16 /* SyntaxKind.Unknown */;\n }\n // found a minus, followed by a number so\n // we fall through to proceed with scanning\n // numbers\n // eslint-disable-next-line no-fallthrough\n case 48 /* CharacterCodes._0 */:\n case 49 /* CharacterCodes._1 */:\n case 50 /* CharacterCodes._2 */:\n case 51 /* CharacterCodes._3 */:\n case 52 /* CharacterCodes._4 */:\n case 53 /* CharacterCodes._5 */:\n case 54 /* CharacterCodes._6 */:\n case 55 /* CharacterCodes._7 */:\n case 56 /* CharacterCodes._8 */:\n case 57 /* CharacterCodes._9 */:\n value += scanNumber();\n return token = 11 /* SyntaxKind.NumericLiteral */;\n // literals and unknown symbols\n default:\n // is a literal? Read the full word.\n while (pos < len && isUnknownContentCharacter(code)) {\n pos++;\n code = text.charCodeAt(pos);\n }\n if (tokenOffset !== pos) {\n value = text.substring(tokenOffset, pos);\n // keywords: true, false, null\n switch (value) {\n case 'true': return token = 8 /* SyntaxKind.TrueKeyword */;\n case 'false': return token = 9 /* SyntaxKind.FalseKeyword */;\n case 'null': return token = 7 /* SyntaxKind.NullKeyword */;\n }\n return token = 16 /* SyntaxKind.Unknown */;\n }\n // some\n value += String.fromCharCode(code);\n pos++;\n return token = 16 /* SyntaxKind.Unknown */;\n }\n }\n function isUnknownContentCharacter(code) {\n if (isWhiteSpace(code) || isLineBreak(code)) {\n return false;\n }\n switch (code) {\n case 125 /* CharacterCodes.closeBrace */:\n case 93 /* CharacterCodes.closeBracket */:\n case 123 /* CharacterCodes.openBrace */:\n case 91 /* CharacterCodes.openBracket */:\n case 34 /* CharacterCodes.doubleQuote */:\n case 58 /* CharacterCodes.colon */:\n case 44 /* CharacterCodes.comma */:\n case 47 /* CharacterCodes.slash */:\n return false;\n }\n return true;\n }\n function scanNextNonTrivia() {\n let result;\n do {\n result = scanNext();\n } while (result >= 12 /* SyntaxKind.LineCommentTrivia */ && result <= 15 /* SyntaxKind.Trivia */);\n return result;\n }\n return {\n setPosition: setPosition,\n getPosition: () => pos,\n scan: ignoreTrivia ? scanNextNonTrivia : scanNext,\n getToken: () => token,\n getTokenValue: () => value,\n getTokenOffset: () => tokenOffset,\n getTokenLength: () => pos - tokenOffset,\n getTokenStartLine: () => lineStartOffset,\n getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset,\n getTokenError: () => scanError,\n };\n}\nfunction isWhiteSpace(ch) {\n return ch === 32 /* CharacterCodes.space */ || ch === 9 /* CharacterCodes.tab */;\n}\nfunction isLineBreak(ch) {\n return ch === 10 /* CharacterCodes.lineFeed */ || ch === 13 /* CharacterCodes.carriageReturn */;\n}\nfunction isDigit(ch) {\n return ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */;\n}\nvar CharacterCodes;\n(function (CharacterCodes) {\n CharacterCodes[CharacterCodes[\"lineFeed\"] = 10] = \"lineFeed\";\n CharacterCodes[CharacterCodes[\"carriageReturn\"] = 13] = \"carriageReturn\";\n CharacterCodes[CharacterCodes[\"space\"] = 32] = \"space\";\n CharacterCodes[CharacterCodes[\"_0\"] = 48] = \"_0\";\n CharacterCodes[CharacterCodes[\"_1\"] = 49] = \"_1\";\n CharacterCodes[CharacterCodes[\"_2\"] = 50] = \"_2\";\n CharacterCodes[CharacterCodes[\"_3\"] = 51] = \"_3\";\n CharacterCodes[CharacterCodes[\"_4\"] = 52] = \"_4\";\n CharacterCodes[CharacterCodes[\"_5\"] = 53] = \"_5\";\n CharacterCodes[CharacterCodes[\"_6\"] = 54] = \"_6\";\n CharacterCodes[CharacterCodes[\"_7\"] = 55] = \"_7\";\n CharacterCodes[CharacterCodes[\"_8\"] = 56] = \"_8\";\n CharacterCodes[CharacterCodes[\"_9\"] = 57] = \"_9\";\n CharacterCodes[CharacterCodes[\"a\"] = 97] = \"a\";\n CharacterCodes[CharacterCodes[\"b\"] = 98] = \"b\";\n CharacterCodes[CharacterCodes[\"c\"] = 99] = \"c\";\n CharacterCodes[CharacterCodes[\"d\"] = 100] = \"d\";\n CharacterCodes[CharacterCodes[\"e\"] = 101] = \"e\";\n CharacterCodes[CharacterCodes[\"f\"] = 102] = \"f\";\n CharacterCodes[CharacterCodes[\"g\"] = 103] = \"g\";\n CharacterCodes[CharacterCodes[\"h\"] = 104] = \"h\";\n CharacterCodes[CharacterCodes[\"i\"] = 105] = \"i\";\n CharacterCodes[CharacterCodes[\"j\"] = 106] = \"j\";\n CharacterCodes[CharacterCodes[\"k\"] = 107] = \"k\";\n CharacterCodes[CharacterCodes[\"l\"] = 108] = \"l\";\n CharacterCodes[CharacterCodes[\"m\"] = 109] = \"m\";\n CharacterCodes[CharacterCodes[\"n\"] = 110] = \"n\";\n CharacterCodes[CharacterCodes[\"o\"] = 111] = \"o\";\n CharacterCodes[CharacterCodes[\"p\"] = 112] = \"p\";\n CharacterCodes[CharacterCodes[\"q\"] = 113] = \"q\";\n CharacterCodes[CharacterCodes[\"r\"] = 114] = \"r\";\n CharacterCodes[CharacterCodes[\"s\"] = 115] = \"s\";\n CharacterCodes[CharacterCodes[\"t\"] = 116] = \"t\";\n CharacterCodes[CharacterCodes[\"u\"] = 117] = \"u\";\n CharacterCodes[CharacterCodes[\"v\"] = 118] = \"v\";\n CharacterCodes[CharacterCodes[\"w\"] = 119] = \"w\";\n CharacterCodes[CharacterCodes[\"x\"] = 120] = \"x\";\n CharacterCodes[CharacterCodes[\"y\"] = 121] = \"y\";\n CharacterCodes[CharacterCodes[\"z\"] = 122] = \"z\";\n CharacterCodes[CharacterCodes[\"A\"] = 65] = \"A\";\n CharacterCodes[CharacterCodes[\"B\"] = 66] = \"B\";\n CharacterCodes[CharacterCodes[\"C\"] = 67] = \"C\";\n CharacterCodes[CharacterCodes[\"D\"] = 68] = \"D\";\n CharacterCodes[CharacterCodes[\"E\"] = 69] = \"E\";\n CharacterCodes[CharacterCodes[\"F\"] = 70] = \"F\";\n CharacterCodes[CharacterCodes[\"G\"] = 71] = \"G\";\n CharacterCodes[CharacterCodes[\"H\"] = 72] = \"H\";\n CharacterCodes[CharacterCodes[\"I\"] = 73] = \"I\";\n CharacterCodes[CharacterCodes[\"J\"] = 74] = \"J\";\n CharacterCodes[CharacterCodes[\"K\"] = 75] = \"K\";\n CharacterCodes[CharacterCodes[\"L\"] = 76] = \"L\";\n CharacterCodes[CharacterCodes[\"M\"] = 77] = \"M\";\n CharacterCodes[CharacterCodes[\"N\"] = 78] = \"N\";\n CharacterCodes[CharacterCodes[\"O\"] = 79] = \"O\";\n CharacterCodes[CharacterCodes[\"P\"] = 80] = \"P\";\n CharacterCodes[CharacterCodes[\"Q\"] = 81] = \"Q\";\n CharacterCodes[CharacterCodes[\"R\"] = 82] = \"R\";\n CharacterCodes[CharacterCodes[\"S\"] = 83] = \"S\";\n CharacterCodes[CharacterCodes[\"T\"] = 84] = \"T\";\n CharacterCodes[CharacterCodes[\"U\"] = 85] = \"U\";\n CharacterCodes[CharacterCodes[\"V\"] = 86] = \"V\";\n CharacterCodes[CharacterCodes[\"W\"] = 87] = \"W\";\n CharacterCodes[CharacterCodes[\"X\"] = 88] = \"X\";\n CharacterCodes[CharacterCodes[\"Y\"] = 89] = \"Y\";\n CharacterCodes[CharacterCodes[\"Z\"] = 90] = \"Z\";\n CharacterCodes[CharacterCodes[\"asterisk\"] = 42] = \"asterisk\";\n CharacterCodes[CharacterCodes[\"backslash\"] = 92] = \"backslash\";\n CharacterCodes[CharacterCodes[\"closeBrace\"] = 125] = \"closeBrace\";\n CharacterCodes[CharacterCodes[\"closeBracket\"] = 93] = \"closeBracket\";\n CharacterCodes[CharacterCodes[\"colon\"] = 58] = \"colon\";\n CharacterCodes[CharacterCodes[\"comma\"] = 44] = \"comma\";\n CharacterCodes[CharacterCodes[\"dot\"] = 46] = \"dot\";\n CharacterCodes[CharacterCodes[\"doubleQuote\"] = 34] = \"doubleQuote\";\n CharacterCodes[CharacterCodes[\"minus\"] = 45] = \"minus\";\n CharacterCodes[CharacterCodes[\"openBrace\"] = 123] = \"openBrace\";\n CharacterCodes[CharacterCodes[\"openBracket\"] = 91] = \"openBracket\";\n CharacterCodes[CharacterCodes[\"plus\"] = 43] = \"plus\";\n CharacterCodes[CharacterCodes[\"slash\"] = 47] = \"slash\";\n CharacterCodes[CharacterCodes[\"formFeed\"] = 12] = \"formFeed\";\n CharacterCodes[CharacterCodes[\"tab\"] = 9] = \"tab\";\n})(CharacterCodes || (CharacterCodes = {}));\n", "export const cachedSpaces = new Array(20).fill(0).map((_, index) => {\n return ' '.repeat(index);\n});\nconst maxCachedValues = 200;\nexport const cachedBreakLinesWithSpaces = {\n ' ': {\n '\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\n' + ' '.repeat(index);\n }),\n '\\r': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r' + ' '.repeat(index);\n }),\n '\\r\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r\\n' + ' '.repeat(index);\n }),\n },\n '\\t': {\n '\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\n' + '\\t'.repeat(index);\n }),\n '\\r': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r' + '\\t'.repeat(index);\n }),\n '\\r\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r\\n' + '\\t'.repeat(index);\n }),\n }\n};\nexport const supportedEols = ['\\n', '\\r', '\\r\\n'];\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';\nimport { createScanner } from './scanner.js';\nimport { cachedSpaces, cachedBreakLinesWithSpaces, supportedEols } from './string-intern.js';\nexport function format(documentText, range, options) {\n let initialIndentLevel;\n let formatText;\n let formatTextStart;\n let rangeStart;\n let rangeEnd;\n if (range) {\n rangeStart = range.offset;\n rangeEnd = rangeStart + range.length;\n formatTextStart = rangeStart;\n while (formatTextStart > 0 && !isEOL(documentText, formatTextStart - 1)) {\n formatTextStart--;\n }\n let endOffset = rangeEnd;\n while (endOffset < documentText.length && !isEOL(documentText, endOffset)) {\n endOffset++;\n }\n formatText = documentText.substring(formatTextStart, endOffset);\n initialIndentLevel = computeIndentLevel(formatText, options);\n }\n else {\n formatText = documentText;\n initialIndentLevel = 0;\n formatTextStart = 0;\n rangeStart = 0;\n rangeEnd = documentText.length;\n }\n const eol = getEOL(options, documentText);\n const eolFastPathSupported = supportedEols.includes(eol);\n let numberLineBreaks = 0;\n let indentLevel = 0;\n let indentValue;\n if (options.insertSpaces) {\n indentValue = cachedSpaces[options.tabSize || 4] ?? repeat(cachedSpaces[1], options.tabSize || 4);\n }\n else {\n indentValue = '\\t';\n }\n const indentType = indentValue === '\\t' ? '\\t' : ' ';\n let scanner = createScanner(formatText, false);\n let hasError = false;\n function newLinesAndIndent() {\n if (numberLineBreaks > 1) {\n return repeat(eol, numberLineBreaks) + repeat(indentValue, initialIndentLevel + indentLevel);\n }\n const amountOfSpaces = indentValue.length * (initialIndentLevel + indentLevel);\n if (!eolFastPathSupported || amountOfSpaces > cachedBreakLinesWithSpaces[indentType][eol].length) {\n return eol + repeat(indentValue, initialIndentLevel + indentLevel);\n }\n if (amountOfSpaces <= 0) {\n return eol;\n }\n return cachedBreakLinesWithSpaces[indentType][eol][amountOfSpaces];\n }\n function scanNext() {\n let token = scanner.scan();\n numberLineBreaks = 0;\n while (token === 15 /* SyntaxKind.Trivia */ || token === 14 /* SyntaxKind.LineBreakTrivia */) {\n if (token === 14 /* SyntaxKind.LineBreakTrivia */ && options.keepLines) {\n numberLineBreaks += 1;\n }\n else if (token === 14 /* SyntaxKind.LineBreakTrivia */) {\n numberLineBreaks = 1;\n }\n token = scanner.scan();\n }\n hasError = token === 16 /* SyntaxKind.Unknown */ || scanner.getTokenError() !== 0 /* ScanError.None */;\n return token;\n }\n const editOperations = [];\n function addEdit(text, startOffset, endOffset) {\n if (!hasError && (!range || (startOffset < rangeEnd && endOffset > rangeStart)) && documentText.substring(startOffset, endOffset) !== text) {\n editOperations.push({ offset: startOffset, length: endOffset - startOffset, content: text });\n }\n }\n let firstToken = scanNext();\n if (options.keepLines && numberLineBreaks > 0) {\n addEdit(repeat(eol, numberLineBreaks), 0, 0);\n }\n if (firstToken !== 17 /* SyntaxKind.EOF */) {\n let firstTokenStart = scanner.getTokenOffset() + formatTextStart;\n let initialIndent = (indentValue.length * initialIndentLevel < 20) && options.insertSpaces\n ? cachedSpaces[indentValue.length * initialIndentLevel]\n : repeat(indentValue, initialIndentLevel);\n addEdit(initialIndent, formatTextStart, firstTokenStart);\n }\n while (firstToken !== 17 /* SyntaxKind.EOF */) {\n let firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart;\n let secondToken = scanNext();\n let replaceContent = '';\n let needsLineBreak = false;\n while (numberLineBreaks === 0 && (secondToken === 12 /* SyntaxKind.LineCommentTrivia */ || secondToken === 13 /* SyntaxKind.BlockCommentTrivia */)) {\n let commentTokenStart = scanner.getTokenOffset() + formatTextStart;\n addEdit(cachedSpaces[1], firstTokenEnd, commentTokenStart);\n firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart;\n needsLineBreak = secondToken === 12 /* SyntaxKind.LineCommentTrivia */;\n replaceContent = needsLineBreak ? newLinesAndIndent() : '';\n secondToken = scanNext();\n }\n if (secondToken === 2 /* SyntaxKind.CloseBraceToken */) {\n if (firstToken !== 1 /* SyntaxKind.OpenBraceToken */) {\n indentLevel--;\n }\n ;\n if (options.keepLines && numberLineBreaks > 0 || !options.keepLines && firstToken !== 1 /* SyntaxKind.OpenBraceToken */) {\n replaceContent = newLinesAndIndent();\n }\n else if (options.keepLines) {\n replaceContent = cachedSpaces[1];\n }\n }\n else if (secondToken === 4 /* SyntaxKind.CloseBracketToken */) {\n if (firstToken !== 3 /* SyntaxKind.OpenBracketToken */) {\n indentLevel--;\n }\n ;\n if (options.keepLines && numberLineBreaks > 0 || !options.keepLines && firstToken !== 3 /* SyntaxKind.OpenBracketToken */) {\n replaceContent = newLinesAndIndent();\n }\n else if (options.keepLines) {\n replaceContent = cachedSpaces[1];\n }\n }\n else {\n switch (firstToken) {\n case 3 /* SyntaxKind.OpenBracketToken */:\n case 1 /* SyntaxKind.OpenBraceToken */:\n indentLevel++;\n if (options.keepLines && numberLineBreaks > 0 || !options.keepLines) {\n replaceContent = newLinesAndIndent();\n }\n else {\n replaceContent = cachedSpaces[1];\n }\n break;\n case 5 /* SyntaxKind.CommaToken */:\n if (options.keepLines && numberLineBreaks > 0 || !options.keepLines) {\n replaceContent = newLinesAndIndent();\n }\n else {\n replaceContent = cachedSpaces[1];\n }\n break;\n case 12 /* SyntaxKind.LineCommentTrivia */:\n replaceContent = newLinesAndIndent();\n break;\n case 13 /* SyntaxKind.BlockCommentTrivia */:\n if (numberLineBreaks > 0) {\n replaceContent = newLinesAndIndent();\n }\n else if (!needsLineBreak) {\n replaceContent = cachedSpaces[1];\n }\n break;\n case 6 /* SyntaxKind.ColonToken */:\n if (options.keepLines && numberLineBreaks > 0) {\n replaceContent = newLinesAndIndent();\n }\n else if (!needsLineBreak) {\n replaceContent = cachedSpaces[1];\n }\n break;\n case 10 /* SyntaxKind.StringLiteral */:\n if (options.keepLines && numberLineBreaks > 0) {\n replaceContent = newLinesAndIndent();\n }\n else if (secondToken === 6 /* SyntaxKind.ColonToken */ && !needsLineBreak) {\n replaceContent = '';\n }\n break;\n case 7 /* SyntaxKind.NullKeyword */:\n case 8 /* SyntaxKind.TrueKeyword */:\n case 9 /* SyntaxKind.FalseKeyword */:\n case 11 /* SyntaxKind.NumericLiteral */:\n case 2 /* SyntaxKind.CloseBraceToken */:\n case 4 /* SyntaxKind.CloseBracketToken */:\n if (options.keepLines && numberLineBreaks > 0) {\n replaceContent = newLinesAndIndent();\n }\n else {\n if ((secondToken === 12 /* SyntaxKind.LineCommentTrivia */ || secondToken === 13 /* SyntaxKind.BlockCommentTrivia */) && !needsLineBreak) {\n replaceContent = cachedSpaces[1];\n }\n else if (secondToken !== 5 /* SyntaxKind.CommaToken */ && secondToken !== 17 /* SyntaxKind.EOF */) {\n hasError = true;\n }\n }\n break;\n case 16 /* SyntaxKind.Unknown */:\n hasError = true;\n break;\n }\n if (numberLineBreaks > 0 && (secondToken === 12 /* SyntaxKind.LineCommentTrivia */ || secondToken === 13 /* SyntaxKind.BlockCommentTrivia */)) {\n replaceContent = newLinesAndIndent();\n }\n }\n if (secondToken === 17 /* SyntaxKind.EOF */) {\n if (options.keepLines && numberLineBreaks > 0) {\n replaceContent = newLinesAndIndent();\n }\n else {\n replaceContent = options.insertFinalNewline ? eol : '';\n }\n }\n const secondTokenStart = scanner.getTokenOffset() + formatTextStart;\n addEdit(replaceContent, firstTokenEnd, secondTokenStart);\n firstToken = secondToken;\n }\n return editOperations;\n}\nfunction repeat(s, count) {\n let result = '';\n for (let i = 0; i < count; i++) {\n result += s;\n }\n return result;\n}\nfunction computeIndentLevel(content, options) {\n let i = 0;\n let nChars = 0;\n const tabSize = options.tabSize || 4;\n while (i < content.length) {\n let ch = content.charAt(i);\n if (ch === cachedSpaces[1]) {\n nChars++;\n }\n else if (ch === '\\t') {\n nChars += tabSize;\n }\n else {\n break;\n }\n i++;\n }\n return Math.floor(nChars / tabSize);\n}\nfunction getEOL(options, text) {\n for (let i = 0; i < text.length; i++) {\n const ch = text.charAt(i);\n if (ch === '\\r') {\n if (i + 1 < text.length && text.charAt(i + 1) === '\\n') {\n return '\\r\\n';\n }\n return '\\r';\n }\n else if (ch === '\\n') {\n return '\\n';\n }\n }\n return (options && options.eol) || '\\n';\n}\nexport function isEOL(text, offset) {\n return '\\r\\n'.indexOf(text.charAt(offset)) !== -1;\n}\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';\nimport { createScanner } from './scanner.js';\nvar ParseOptionsConfigs;\n(function (ParseOptionsConfigs) {\n ParseOptionsConfigs.DEFAULT = {\n allowTrailingComma: false\n };\n})(ParseOptionsConfigs || (ParseOptionsConfigs = {}));\n/**\n * For a given offset, evaluate the location in the JSON document. Each segment in the location path is either a property name or an array index.\n */\nexport function getLocation(text, position) {\n const segments = []; // strings or numbers\n const earlyReturnException = new Object();\n let previousNode = undefined;\n const previousNodeInst = {\n value: {},\n offset: 0,\n length: 0,\n type: 'object',\n parent: undefined\n };\n let isAtPropertyKey = false;\n function setPreviousNode(value, offset, length, type) {\n previousNodeInst.value = value;\n previousNodeInst.offset = offset;\n previousNodeInst.length = length;\n previousNodeInst.type = type;\n previousNodeInst.colonOffset = undefined;\n previousNode = previousNodeInst;\n }\n try {\n visit(text, {\n onObjectBegin: (offset) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n previousNode = undefined;\n isAtPropertyKey = position > offset;\n segments.push(''); // push a placeholder (will be replaced)\n },\n onObjectProperty: (name, offset, length) => {\n if (position < offset) {\n throw earlyReturnException;\n }\n setPreviousNode(name, offset, length, 'property');\n segments[segments.length - 1] = name;\n if (position <= offset + length) {\n throw earlyReturnException;\n }\n },\n onObjectEnd: (offset) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n previousNode = undefined;\n segments.pop();\n },\n onArrayBegin: (offset) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n previousNode = undefined;\n segments.push(0);\n },\n onArrayEnd: (offset) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n previousNode = undefined;\n segments.pop();\n },\n onLiteralValue: (value, offset, length) => {\n if (position < offset) {\n throw earlyReturnException;\n }\n setPreviousNode(value, offset, length, getNodeType(value));\n if (position <= offset + length) {\n throw earlyReturnException;\n }\n },\n onSeparator: (sep, offset) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n if (sep === ':' && previousNode && previousNode.type === 'property') {\n previousNode.colonOffset = offset;\n isAtPropertyKey = false;\n previousNode = undefined;\n }\n else if (sep === ',') {\n const last = segments[segments.length - 1];\n if (typeof last === 'number') {\n segments[segments.length - 1] = last + 1;\n }\n else {\n isAtPropertyKey = true;\n segments[segments.length - 1] = '';\n }\n previousNode = undefined;\n }\n }\n });\n }\n catch (e) {\n if (e !== earlyReturnException) {\n throw e;\n }\n }\n return {\n path: segments,\n previousNode,\n isAtPropertyKey,\n matches: (pattern) => {\n let k = 0;\n for (let i = 0; k < pattern.length && i < segments.length; i++) {\n if (pattern[k] === segments[i] || pattern[k] === '*') {\n k++;\n }\n else if (pattern[k] !== '**') {\n return false;\n }\n }\n return k === pattern.length;\n }\n };\n}\n/**\n * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n * Therefore always check the errors list to find out if the input was valid.\n */\nexport function parse(text, errors = [], options = ParseOptionsConfigs.DEFAULT) {\n let currentProperty = null;\n let currentParent = [];\n const previousParents = [];\n function onValue(value) {\n if (Array.isArray(currentParent)) {\n currentParent.push(value);\n }\n else if (currentProperty !== null) {\n currentParent[currentProperty] = value;\n }\n }\n const visitor = {\n onObjectBegin: () => {\n const object = {};\n onValue(object);\n previousParents.push(currentParent);\n currentParent = object;\n currentProperty = null;\n },\n onObjectProperty: (name) => {\n currentProperty = name;\n },\n onObjectEnd: () => {\n currentParent = previousParents.pop();\n },\n onArrayBegin: () => {\n const array = [];\n onValue(array);\n previousParents.push(currentParent);\n currentParent = array;\n currentProperty = null;\n },\n onArrayEnd: () => {\n currentParent = previousParents.pop();\n },\n onLiteralValue: onValue,\n onError: (error, offset, length, startLine, startCharacter) => {\n errors.push({ error, offset, length, startLine, startCharacter });\n }\n };\n visit(text, visitor, options);\n return currentParent[0];\n}\n/**\n * Parses the given text and returns a tree representation the JSON content. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n */\nexport function parseTree(text, errors = [], options = ParseOptionsConfigs.DEFAULT) {\n let currentParent = { type: 'array', offset: -1, length: -1, children: [], parent: undefined }; // artificial root\n function ensurePropertyComplete(endOffset) {\n if (currentParent.type === 'property') {\n currentParent.length = endOffset - currentParent.offset;\n currentParent = currentParent.parent;\n }\n }\n function onValue(valueNode) {\n currentParent.children.push(valueNode);\n return valueNode;\n }\n const visitor = {\n onObjectBegin: (offset) => {\n currentParent = onValue({ type: 'object', offset, length: -1, parent: currentParent, children: [] });\n },\n onObjectProperty: (name, offset, length) => {\n currentParent = onValue({ type: 'property', offset, length: -1, parent: currentParent, children: [] });\n currentParent.children.push({ type: 'string', value: name, offset, length, parent: currentParent });\n },\n onObjectEnd: (offset, length) => {\n ensurePropertyComplete(offset + length); // in case of a missing value for a property: make sure property is complete\n currentParent.length = offset + length - currentParent.offset;\n currentParent = currentParent.parent;\n ensurePropertyComplete(offset + length);\n },\n onArrayBegin: (offset) => {\n currentParent = onValue({ type: 'array', offset, length: -1, parent: currentParent, children: [] });\n },\n onArrayEnd: (offset, length) => {\n currentParent.length = offset + length - currentParent.offset;\n currentParent = currentParent.parent;\n ensurePropertyComplete(offset + length);\n },\n onLiteralValue: (value, offset, length) => {\n onValue({ type: getNodeType(value), offset, length, parent: currentParent, value });\n ensurePropertyComplete(offset + length);\n },\n onSeparator: (sep, offset) => {\n if (currentParent.type === 'property') {\n if (sep === ':') {\n currentParent.colonOffset = offset;\n }\n else if (sep === ',') {\n ensurePropertyComplete(offset);\n }\n }\n },\n onError: (error, offset, length, startLine, startCharacter) => {\n errors.push({ error, offset, length, startLine, startCharacter });\n }\n };\n visit(text, visitor, options);\n const result = currentParent.children[0];\n if (result) {\n delete result.parent;\n }\n return result;\n}\n/**\n * Finds the node at the given path in a JSON DOM.\n */\nexport function findNodeAtLocation(root, path) {\n if (!root) {\n return undefined;\n }\n let node = root;\n for (let segment of path) {\n if (typeof segment === 'string') {\n if (node.type !== 'object' || !Array.isArray(node.children)) {\n return undefined;\n }\n let found = false;\n for (const propertyNode of node.children) {\n if (Array.isArray(propertyNode.children) && propertyNode.children[0].value === segment && propertyNode.children.length === 2) {\n node = propertyNode.children[1];\n found = true;\n break;\n }\n }\n if (!found) {\n return undefined;\n }\n }\n else {\n const index = segment;\n if (node.type !== 'array' || index < 0 || !Array.isArray(node.children) || index >= node.children.length) {\n return undefined;\n }\n node = node.children[index];\n }\n }\n return node;\n}\n/**\n * Gets the JSON path of the given JSON DOM node\n */\nexport function getNodePath(node) {\n if (!node.parent || !node.parent.children) {\n return [];\n }\n const path = getNodePath(node.parent);\n if (node.parent.type === 'property') {\n const key = node.parent.children[0].value;\n path.push(key);\n }\n else if (node.parent.type === 'array') {\n const index = node.parent.children.indexOf(node);\n if (index !== -1) {\n path.push(index);\n }\n }\n return path;\n}\n/**\n * Evaluates the JavaScript object of the given JSON DOM node\n */\nexport function getNodeValue(node) {\n switch (node.type) {\n case 'array':\n return node.children.map(getNodeValue);\n case 'object': {\n const obj = Object.create(null);\n for (let prop of node.children) {\n const valueNode = prop.children[1];\n if (valueNode) {\n obj[prop.children[0].value] = getNodeValue(valueNode);\n }\n }\n return obj;\n }\n case 'null':\n case 'string':\n case 'number':\n case 'boolean':\n return node.value;\n default:\n return undefined;\n }\n}\nexport function contains(node, offset, includeRightBound = false) {\n return (offset >= node.offset && offset < (node.offset + node.length)) || includeRightBound && (offset === (node.offset + node.length));\n}\n/**\n * Finds the most inner node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset.\n */\nexport function findNodeAtOffset(node, offset, includeRightBound = false) {\n if (contains(node, offset, includeRightBound)) {\n const children = node.children;\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length && children[i].offset <= offset; i++) {\n const item = findNodeAtOffset(children[i], offset, includeRightBound);\n if (item) {\n return item;\n }\n }\n }\n return node;\n }\n return undefined;\n}\n/**\n * Parses the given text and invokes the visitor functions for each object, array and literal reached.\n */\nexport function visit(text, visitor, options = ParseOptionsConfigs.DEFAULT) {\n const _scanner = createScanner(text, false);\n // Important: Only pass copies of this to visitor functions to prevent accidental modification, and\n // to not affect visitor functions which stored a reference to a previous JSONPath\n const _jsonPath = [];\n // Depth of onXXXBegin() callbacks suppressed. onXXXEnd() decrements this if it isn't 0 already.\n // Callbacks are only called when this value is 0.\n let suppressedCallbacks = 0;\n function toNoArgVisit(visitFunction) {\n return visitFunction ? () => suppressedCallbacks === 0 && visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n }\n function toOneArgVisit(visitFunction) {\n return visitFunction ? (arg) => suppressedCallbacks === 0 && visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n }\n function toOneArgVisitWithPath(visitFunction) {\n return visitFunction ? (arg) => suppressedCallbacks === 0 && visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true;\n }\n function toBeginVisit(visitFunction) {\n return visitFunction ?\n () => {\n if (suppressedCallbacks > 0) {\n suppressedCallbacks++;\n }\n else {\n let cbReturn = visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice());\n if (cbReturn === false) {\n suppressedCallbacks = 1;\n }\n }\n }\n : () => true;\n }\n function toEndVisit(visitFunction) {\n return visitFunction ?\n () => {\n if (suppressedCallbacks > 0) {\n suppressedCallbacks--;\n }\n if (suppressedCallbacks === 0) {\n visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter());\n }\n }\n : () => true;\n }\n const onObjectBegin = toBeginVisit(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toEndVisit(visitor.onObjectEnd), onArrayBegin = toBeginVisit(visitor.onArrayBegin), onArrayEnd = toEndVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError);\n const disallowComments = options && options.disallowComments;\n const allowTrailingComma = options && options.allowTrailingComma;\n function scanNext() {\n while (true) {\n const token = _scanner.scan();\n switch (_scanner.getTokenError()) {\n case 4 /* ScanError.InvalidUnicode */:\n handleError(14 /* ParseErrorCode.InvalidUnicode */);\n break;\n case 5 /* ScanError.InvalidEscapeCharacter */:\n handleError(15 /* ParseErrorCode.InvalidEscapeCharacter */);\n break;\n case 3 /* ScanError.UnexpectedEndOfNumber */:\n handleError(13 /* ParseErrorCode.UnexpectedEndOfNumber */);\n break;\n case 1 /* ScanError.UnexpectedEndOfComment */:\n if (!disallowComments) {\n handleError(11 /* ParseErrorCode.UnexpectedEndOfComment */);\n }\n break;\n case 2 /* ScanError.UnexpectedEndOfString */:\n handleError(12 /* ParseErrorCode.UnexpectedEndOfString */);\n break;\n case 6 /* ScanError.InvalidCharacter */:\n handleError(16 /* ParseErrorCode.InvalidCharacter */);\n break;\n }\n switch (token) {\n case 12 /* SyntaxKind.LineCommentTrivia */:\n case 13 /* SyntaxKind.BlockCommentTrivia */:\n if (disallowComments) {\n handleError(10 /* ParseErrorCode.InvalidCommentToken */);\n }\n else {\n onComment();\n }\n break;\n case 16 /* SyntaxKind.Unknown */:\n handleError(1 /* ParseErrorCode.InvalidSymbol */);\n break;\n case 15 /* SyntaxKind.Trivia */:\n case 14 /* SyntaxKind.LineBreakTrivia */:\n break;\n default:\n return token;\n }\n }\n }\n function handleError(error, skipUntilAfter = [], skipUntil = []) {\n onError(error);\n if (skipUntilAfter.length + skipUntil.length > 0) {\n let token = _scanner.getToken();\n while (token !== 17 /* SyntaxKind.EOF */) {\n if (skipUntilAfter.indexOf(token) !== -1) {\n scanNext();\n break;\n }\n else if (skipUntil.indexOf(token) !== -1) {\n break;\n }\n token = scanNext();\n }\n }\n }\n function parseString(isValue) {\n const value = _scanner.getTokenValue();\n if (isValue) {\n onLiteralValue(value);\n }\n else {\n onObjectProperty(value);\n // add property name afterwards\n _jsonPath.push(value);\n }\n scanNext();\n return true;\n }\n function parseLiteral() {\n switch (_scanner.getToken()) {\n case 11 /* SyntaxKind.NumericLiteral */:\n {\n const tokenValue = _scanner.getTokenValue();\n let value = Number(tokenValue);\n if (isNaN(value)) {\n handleError(2 /* ParseErrorCode.InvalidNumberFormat */);\n value = 0;\n }\n onLiteralValue(value);\n }\n break;\n case 7 /* SyntaxKind.NullKeyword */:\n onLiteralValue(null);\n break;\n case 8 /* SyntaxKind.TrueKeyword */:\n onLiteralValue(true);\n break;\n case 9 /* SyntaxKind.FalseKeyword */:\n onLiteralValue(false);\n break;\n default:\n return false;\n }\n scanNext();\n return true;\n }\n function parseProperty() {\n if (_scanner.getToken() !== 10 /* SyntaxKind.StringLiteral */) {\n handleError(3 /* ParseErrorCode.PropertyNameExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n return false;\n }\n parseString(false);\n if (_scanner.getToken() === 6 /* SyntaxKind.ColonToken */) {\n onSeparator(':');\n scanNext(); // consume colon\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n }\n else {\n handleError(5 /* ParseErrorCode.ColonExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n _jsonPath.pop(); // remove processed property name\n return true;\n }\n function parseObject() {\n onObjectBegin();\n scanNext(); // consume open brace\n let needsComma = false;\n while (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) {\n if (!needsComma) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n }\n onSeparator(',');\n scanNext(); // consume comma\n if (_scanner.getToken() === 2 /* SyntaxKind.CloseBraceToken */ && allowTrailingComma) {\n break;\n }\n }\n else if (needsComma) {\n handleError(6 /* ParseErrorCode.CommaExpected */, [], []);\n }\n if (!parseProperty()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n needsComma = true;\n }\n onObjectEnd();\n if (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */) {\n handleError(7 /* ParseErrorCode.CloseBraceExpected */, [2 /* SyntaxKind.CloseBraceToken */], []);\n }\n else {\n scanNext(); // consume close brace\n }\n return true;\n }\n function parseArray() {\n onArrayBegin();\n scanNext(); // consume open bracket\n let isFirstElement = true;\n let needsComma = false;\n while (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) {\n if (!needsComma) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n }\n onSeparator(',');\n scanNext(); // consume comma\n if (_scanner.getToken() === 4 /* SyntaxKind.CloseBracketToken */ && allowTrailingComma) {\n break;\n }\n }\n else if (needsComma) {\n handleError(6 /* ParseErrorCode.CommaExpected */, [], []);\n }\n if (isFirstElement) {\n _jsonPath.push(0);\n isFirstElement = false;\n }\n else {\n _jsonPath[_jsonPath.length - 1]++;\n }\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [4 /* SyntaxKind.CloseBracketToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n needsComma = true;\n }\n onArrayEnd();\n if (!isFirstElement) {\n _jsonPath.pop(); // remove array index\n }\n if (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */) {\n handleError(8 /* ParseErrorCode.CloseBracketExpected */, [4 /* SyntaxKind.CloseBracketToken */], []);\n }\n else {\n scanNext(); // consume close bracket\n }\n return true;\n }\n function parseValue() {\n switch (_scanner.getToken()) {\n case 3 /* SyntaxKind.OpenBracketToken */:\n return parseArray();\n case 1 /* SyntaxKind.OpenBraceToken */:\n return parseObject();\n case 10 /* SyntaxKind.StringLiteral */:\n return parseString(true);\n default:\n return parseLiteral();\n }\n }\n scanNext();\n if (_scanner.getToken() === 17 /* SyntaxKind.EOF */) {\n if (options.allowEmptyContent) {\n return true;\n }\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n return false;\n }\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n return false;\n }\n if (_scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n handleError(9 /* ParseErrorCode.EndOfFileExpected */, [], []);\n }\n return true;\n}\n/**\n * Takes JSON with JavaScript-style comments and remove\n * them. Optionally replaces every none-newline character\n * of comments with a replaceCharacter\n */\nexport function stripComments(text, replaceCh) {\n let _scanner = createScanner(text), parts = [], kind, offset = 0, pos;\n do {\n pos = _scanner.getPosition();\n kind = _scanner.scan();\n switch (kind) {\n case 12 /* SyntaxKind.LineCommentTrivia */:\n case 13 /* SyntaxKind.BlockCommentTrivia */:\n case 17 /* SyntaxKind.EOF */:\n if (offset !== pos) {\n parts.push(text.substring(offset, pos));\n }\n if (replaceCh !== undefined) {\n parts.push(_scanner.getTokenValue().replace(/[^\\r\\n]/g, replaceCh));\n }\n offset = _scanner.getPosition();\n break;\n }\n } while (kind !== 17 /* SyntaxKind.EOF */);\n return parts.join('');\n}\nexport function getNodeType(value) {\n switch (typeof value) {\n case 'boolean': return 'boolean';\n case 'number': return 'number';\n case 'string': return 'string';\n case 'object': {\n if (!value) {\n return 'null';\n }\n else if (Array.isArray(value)) {\n return 'array';\n }\n return 'object';\n }\n default: return 'null';\n }\n}\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';\nimport { format, isEOL } from './format.js';\nimport { parseTree, findNodeAtLocation } from './parser.js';\nexport function removeProperty(text, path, options) {\n return setProperty(text, path, void 0, options);\n}\nexport function setProperty(text, originalPath, value, options) {\n const path = originalPath.slice();\n const errors = [];\n const root = parseTree(text, errors);\n let parent = void 0;\n let lastSegment = void 0;\n while (path.length > 0) {\n lastSegment = path.pop();\n parent = findNodeAtLocation(root, path);\n if (parent === void 0 && value !== void 0) {\n if (typeof lastSegment === 'string') {\n value = { [lastSegment]: value };\n }\n else {\n value = [value];\n }\n }\n else {\n break;\n }\n }\n if (!parent) {\n // empty document\n if (value === void 0) { // delete\n throw new Error('Can not delete in empty document');\n }\n return withFormatting(text, { offset: root ? root.offset : 0, length: root ? root.length : 0, content: JSON.stringify(value) }, options);\n }\n else if (parent.type === 'object' && typeof lastSegment === 'string' && Array.isArray(parent.children)) {\n const existing = findNodeAtLocation(parent, [lastSegment]);\n if (existing !== void 0) {\n if (value === void 0) { // delete\n if (!existing.parent) {\n throw new Error('Malformed AST');\n }\n const propertyIndex = parent.children.indexOf(existing.parent);\n let removeBegin;\n let removeEnd = existing.parent.offset + existing.parent.length;\n if (propertyIndex > 0) {\n // remove the comma of the previous node\n let previous = parent.children[propertyIndex - 1];\n removeBegin = previous.offset + previous.length;\n }\n else {\n removeBegin = parent.offset + 1;\n if (parent.children.length > 1) {\n // remove the comma of the next node\n let next = parent.children[1];\n removeEnd = next.offset;\n }\n }\n return withFormatting(text, { offset: removeBegin, length: removeEnd - removeBegin, content: '' }, options);\n }\n else {\n // set value of existing property\n return withFormatting(text, { offset: existing.offset, length: existing.length, content: JSON.stringify(value) }, options);\n }\n }\n else {\n if (value === void 0) { // delete\n return []; // property does not exist, nothing to do\n }\n const newProperty = `${JSON.stringify(lastSegment)}: ${JSON.stringify(value)}`;\n const index = options.getInsertionIndex ? options.getInsertionIndex(parent.children.map(p => p.children[0].value)) : parent.children.length;\n let edit;\n if (index > 0) {\n let previous = parent.children[index - 1];\n edit = { offset: previous.offset + previous.length, length: 0, content: ',' + newProperty };\n }\n else if (parent.children.length === 0) {\n edit = { offset: parent.offset + 1, length: 0, content: newProperty };\n }\n else {\n edit = { offset: parent.offset + 1, length: 0, content: newProperty + ',' };\n }\n return withFormatting(text, edit, options);\n }\n }\n else if (parent.type === 'array' && typeof lastSegment === 'number' && Array.isArray(parent.children)) {\n const insertIndex = lastSegment;\n if (insertIndex === -1) {\n // Insert\n const newProperty = `${JSON.stringify(value)}`;\n let edit;\n if (parent.children.length === 0) {\n edit = { offset: parent.offset + 1, length: 0, content: newProperty };\n }\n else {\n const previous = parent.children[parent.children.length - 1];\n edit = { offset: previous.offset + previous.length, length: 0, content: ',' + newProperty };\n }\n return withFormatting(text, edit, options);\n }\n else if (value === void 0 && parent.children.length >= 0) {\n // Removal\n const removalIndex = lastSegment;\n const toRemove = parent.children[removalIndex];\n let edit;\n if (parent.children.length === 1) {\n // only item\n edit = { offset: parent.offset + 1, length: parent.length - 2, content: '' };\n }\n else if (parent.children.length - 1 === removalIndex) {\n // last item\n let previous = parent.children[removalIndex - 1];\n let offset = previous.offset + previous.length;\n let parentEndOffset = parent.offset + parent.length;\n edit = { offset, length: parentEndOffset - 2 - offset, content: '' };\n }\n else {\n edit = { offset: toRemove.offset, length: parent.children[removalIndex + 1].offset - toRemove.offset, content: '' };\n }\n return withFormatting(text, edit, options);\n }\n else if (value !== void 0) {\n let edit;\n const newProperty = `${JSON.stringify(value)}`;\n if (!options.isArrayInsertion && parent.children.length > lastSegment) {\n const toModify = parent.children[lastSegment];\n edit = { offset: toModify.offset, length: toModify.length, content: newProperty };\n }\n else if (parent.children.length === 0 || lastSegment === 0) {\n edit = { offset: parent.offset + 1, length: 0, content: parent.children.length === 0 ? newProperty : newProperty + ',' };\n }\n else {\n const index = lastSegment > parent.children.length ? parent.children.length : lastSegment;\n const previous = parent.children[index - 1];\n edit = { offset: previous.offset + previous.length, length: 0, content: ',' + newProperty };\n }\n return withFormatting(text, edit, options);\n }\n else {\n throw new Error(`Can not ${value === void 0 ? 'remove' : (options.isArrayInsertion ? 'insert' : 'modify')} Array index ${insertIndex} as length is not sufficient`);\n }\n }\n else {\n throw new Error(`Can not add ${typeof lastSegment !== 'number' ? 'index' : 'property'} to parent of type ${parent.type}`);\n }\n}\nfunction withFormatting(text, edit, options) {\n if (!options.formattingOptions) {\n return [edit];\n }\n // apply the edit\n let newText = applyEdit(text, edit);\n // format the new text\n let begin = edit.offset;\n let end = edit.offset + edit.content.length;\n if (edit.length === 0 || edit.content.length === 0) { // insert or remove\n while (begin > 0 && !isEOL(newText, begin - 1)) {\n begin--;\n }\n while (end < newText.length && !isEOL(newText, end)) {\n end++;\n }\n }\n const edits = format(newText, { offset: begin, length: end - begin }, { ...options.formattingOptions, keepLines: false });\n // apply the formatting edits and track the begin and end offsets of the changes\n for (let i = edits.length - 1; i >= 0; i--) {\n const edit = edits[i];\n newText = applyEdit(newText, edit);\n begin = Math.min(begin, edit.offset);\n end = Math.max(end, edit.offset + edit.length);\n end += edit.content.length - edit.length;\n }\n // create a single edit with all changes\n const editLength = text.length - (newText.length - end) - begin;\n return [{ offset: begin, length: editLength, content: newText.substring(begin, end) }];\n}\nexport function applyEdit(text, edit) {\n return text.substring(0, edit.offset) + edit.content + text.substring(edit.offset + edit.length);\n}\nexport function isWS(text, offset) {\n return '\\r\\n \\t'.indexOf(text.charAt(offset)) !== -1;\n}\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';\nimport * as formatter from './impl/format.js';\nimport * as edit from './impl/edit.js';\nimport * as scanner from './impl/scanner.js';\nimport * as parser from './impl/parser.js';\n/**\n * Creates a JSON scanner on the given text.\n * If ignoreTrivia is set, whitespaces or comments are ignored.\n */\nexport const createScanner = scanner.createScanner;\nexport var ScanError;\n(function (ScanError) {\n ScanError[ScanError[\"None\"] = 0] = \"None\";\n ScanError[ScanError[\"UnexpectedEndOfComment\"] = 1] = \"UnexpectedEndOfComment\";\n ScanError[ScanError[\"UnexpectedEndOfString\"] = 2] = \"UnexpectedEndOfString\";\n ScanError[ScanError[\"UnexpectedEndOfNumber\"] = 3] = \"UnexpectedEndOfNumber\";\n ScanError[ScanError[\"InvalidUnicode\"] = 4] = \"InvalidUnicode\";\n ScanError[ScanError[\"InvalidEscapeCharacter\"] = 5] = \"InvalidEscapeCharacter\";\n ScanError[ScanError[\"InvalidCharacter\"] = 6] = \"InvalidCharacter\";\n})(ScanError || (ScanError = {}));\nexport var SyntaxKind;\n(function (SyntaxKind) {\n SyntaxKind[SyntaxKind[\"OpenBraceToken\"] = 1] = \"OpenBraceToken\";\n SyntaxKind[SyntaxKind[\"CloseBraceToken\"] = 2] = \"CloseBraceToken\";\n SyntaxKind[SyntaxKind[\"OpenBracketToken\"] = 3] = \"OpenBracketToken\";\n SyntaxKind[SyntaxKind[\"CloseBracketToken\"] = 4] = \"CloseBracketToken\";\n SyntaxKind[SyntaxKind[\"CommaToken\"] = 5] = \"CommaToken\";\n SyntaxKind[SyntaxKind[\"ColonToken\"] = 6] = \"ColonToken\";\n SyntaxKind[SyntaxKind[\"NullKeyword\"] = 7] = \"NullKeyword\";\n SyntaxKind[SyntaxKind[\"TrueKeyword\"] = 8] = \"TrueKeyword\";\n SyntaxKind[SyntaxKind[\"FalseKeyword\"] = 9] = \"FalseKeyword\";\n SyntaxKind[SyntaxKind[\"StringLiteral\"] = 10] = \"StringLiteral\";\n SyntaxKind[SyntaxKind[\"NumericLiteral\"] = 11] = \"NumericLiteral\";\n SyntaxKind[SyntaxKind[\"LineCommentTrivia\"] = 12] = \"LineCommentTrivia\";\n SyntaxKind[SyntaxKind[\"BlockCommentTrivia\"] = 13] = \"BlockCommentTrivia\";\n SyntaxKind[SyntaxKind[\"LineBreakTrivia\"] = 14] = \"LineBreakTrivia\";\n SyntaxKind[SyntaxKind[\"Trivia\"] = 15] = \"Trivia\";\n SyntaxKind[SyntaxKind[\"Unknown\"] = 16] = \"Unknown\";\n SyntaxKind[SyntaxKind[\"EOF\"] = 17] = \"EOF\";\n})(SyntaxKind || (SyntaxKind = {}));\n/**\n * For a given offset, evaluate the location in the JSON document. Each segment in the location path is either a property name or an array index.\n */\nexport const getLocation = parser.getLocation;\n/**\n * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n * Therefore, always check the errors list to find out if the input was valid.\n */\nexport const parse = parser.parse;\n/**\n * Parses the given text and returns a tree representation the JSON content. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n */\nexport const parseTree = parser.parseTree;\n/**\n * Finds the node at the given path in a JSON DOM.\n */\nexport const findNodeAtLocation = parser.findNodeAtLocation;\n/**\n * Finds the innermost node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset.\n */\nexport const findNodeAtOffset = parser.findNodeAtOffset;\n/**\n * Gets the JSON path of the given JSON DOM node\n */\nexport const getNodePath = parser.getNodePath;\n/**\n * Evaluates the JavaScript object of the given JSON DOM node\n */\nexport const getNodeValue = parser.getNodeValue;\n/**\n * Parses the given text and invokes the visitor functions for each object, array and literal reached.\n */\nexport const visit = parser.visit;\n/**\n * Takes JSON with JavaScript-style comments and remove\n * them. Optionally replaces every none-newline character\n * of comments with a replaceCharacter\n */\nexport const stripComments = parser.stripComments;\nexport var ParseErrorCode;\n(function (ParseErrorCode) {\n ParseErrorCode[ParseErrorCode[\"InvalidSymbol\"] = 1] = \"InvalidSymbol\";\n ParseErrorCode[ParseErrorCode[\"InvalidNumberFormat\"] = 2] = \"InvalidNumberFormat\";\n ParseErrorCode[ParseErrorCode[\"PropertyNameExpected\"] = 3] = \"PropertyNameExpected\";\n ParseErrorCode[ParseErrorCode[\"ValueExpected\"] = 4] = \"ValueExpected\";\n ParseErrorCode[ParseErrorCode[\"ColonExpected\"] = 5] = \"ColonExpected\";\n ParseErrorCode[ParseErrorCode[\"CommaExpected\"] = 6] = \"CommaExpected\";\n ParseErrorCode[ParseErrorCode[\"CloseBraceExpected\"] = 7] = \"CloseBraceExpected\";\n ParseErrorCode[ParseErrorCode[\"CloseBracketExpected\"] = 8] = \"CloseBracketExpected\";\n ParseErrorCode[ParseErrorCode[\"EndOfFileExpected\"] = 9] = \"EndOfFileExpected\";\n ParseErrorCode[ParseErrorCode[\"InvalidCommentToken\"] = 10] = \"InvalidCommentToken\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfComment\"] = 11] = \"UnexpectedEndOfComment\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfString\"] = 12] = \"UnexpectedEndOfString\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfNumber\"] = 13] = \"UnexpectedEndOfNumber\";\n ParseErrorCode[ParseErrorCode[\"InvalidUnicode\"] = 14] = \"InvalidUnicode\";\n ParseErrorCode[ParseErrorCode[\"InvalidEscapeCharacter\"] = 15] = \"InvalidEscapeCharacter\";\n ParseErrorCode[ParseErrorCode[\"InvalidCharacter\"] = 16] = \"InvalidCharacter\";\n})(ParseErrorCode || (ParseErrorCode = {}));\nexport function printParseErrorCode(code) {\n switch (code) {\n case 1 /* ParseErrorCode.InvalidSymbol */: return 'InvalidSymbol';\n case 2 /* ParseErrorCode.InvalidNumberFormat */: return 'InvalidNumberFormat';\n case 3 /* ParseErrorCode.PropertyNameExpected */: return 'PropertyNameExpected';\n case 4 /* ParseErrorCode.ValueExpected */: return 'ValueExpected';\n case 5 /* ParseErrorCode.ColonExpected */: return 'ColonExpected';\n case 6 /* ParseErrorCode.CommaExpected */: return 'CommaExpected';\n case 7 /* ParseErrorCode.CloseBraceExpected */: return 'CloseBraceExpected';\n case 8 /* ParseErrorCode.CloseBracketExpected */: return 'CloseBracketExpected';\n case 9 /* ParseErrorCode.EndOfFileExpected */: return 'EndOfFileExpected';\n case 10 /* ParseErrorCode.InvalidCommentToken */: return 'InvalidCommentToken';\n case 11 /* ParseErrorCode.UnexpectedEndOfComment */: return 'UnexpectedEndOfComment';\n case 12 /* ParseErrorCode.UnexpectedEndOfString */: return 'UnexpectedEndOfString';\n case 13 /* ParseErrorCode.UnexpectedEndOfNumber */: return 'UnexpectedEndOfNumber';\n case 14 /* ParseErrorCode.InvalidUnicode */: return 'InvalidUnicode';\n case 15 /* ParseErrorCode.InvalidEscapeCharacter */: return 'InvalidEscapeCharacter';\n case 16 /* ParseErrorCode.InvalidCharacter */: return 'InvalidCharacter';\n }\n return '<unknown ParseErrorCode>';\n}\n/**\n * Computes the edit operations needed to format a JSON document.\n *\n * @param documentText The input text\n * @param range The range to format or `undefined` to format the full content\n * @param options The formatting options\n * @returns The edit operations describing the formatting changes to the original document following the format described in {@linkcode EditResult}.\n * To apply the edit operations to the input, use {@linkcode applyEdits}.\n */\nexport function format(documentText, range, options) {\n return formatter.format(documentText, range, options);\n}\n/**\n * Computes the edit operations needed to modify a value in the JSON document.\n *\n * @param documentText The input text\n * @param path The path of the value to change. The path represents either to the document root, a property or an array item.\n * If the path points to an non-existing property or item, it will be created.\n * @param value The new value for the specified property or item. If the value is undefined,\n * the property or item will be removed.\n * @param options Options\n * @returns The edit operations describing the changes to the original document, following the format described in {@linkcode EditResult}.\n * To apply the edit operations to the input, use {@linkcode applyEdits}.\n */\nexport function modify(text, path, value, options) {\n return edit.setProperty(text, path, value, options);\n}\n/**\n * Applies edits to an input string.\n * @param text The input text\n * @param edits Edit operations following the format described in {@linkcode EditResult}.\n * @returns The text with the applied edits.\n * @throws An error if the edit operations are not well-formed as described in {@linkcode EditResult}.\n */\nexport function applyEdits(text, edits) {\n let sortedEdits = edits.slice(0).sort((a, b) => {\n const diff = a.offset - b.offset;\n if (diff === 0) {\n return a.length - b.length;\n }\n return diff;\n });\n let lastModifiedOffset = text.length;\n for (let i = sortedEdits.length - 1; i >= 0; i--) {\n let e = sortedEdits[i];\n if (e.offset + e.length <= lastModifiedOffset) {\n text = edit.applyEdit(text, e);\n }\n else {\n throw new Error('Overlapping edit');\n }\n lastModifiedOffset = e.offset;\n }\n return text;\n}\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*--------------------------------------------------------------------------------------------*/\nexport 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 if (typeof one !== typeof other) {\n return false;\n }\n if (typeof one !== 'object') {\n return false;\n }\n if ((Array.isArray(one)) !== (Array.isArray(other))) {\n return false;\n }\n let i, key;\n if (Array.isArray(one)) {\n if (one.length !== other.length) {\n return false;\n }\n for (i = 0; i < one.length; i++) {\n if (!equals(one[i], other[i])) {\n return false;\n }\n }\n }\n else {\n const oneKeys = [];\n for (key in one) {\n oneKeys.push(key);\n }\n oneKeys.sort();\n const otherKeys = [];\n for (key in other) {\n otherKeys.push(key);\n }\n otherKeys.sort();\n if (!equals(oneKeys, otherKeys)) {\n return false;\n }\n for (i = 0; i < oneKeys.length; i++) {\n if (!equals(one[oneKeys[i]], other[oneKeys[i]])) {\n return false;\n }\n }\n }\n return true;\n}\nexport function isNumber(val) {\n return typeof val === 'number';\n}\nexport function isDefined(val) {\n return typeof val !== 'undefined';\n}\nexport function isBoolean(val) {\n return typeof val === 'boolean';\n}\nexport function isString(val) {\n return typeof val === 'string';\n}\nexport function isObject(val) {\n return typeof val === 'object' && val !== null && !Array.isArray(val);\n}\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*--------------------------------------------------------------------------------------------*/\nexport function startsWith(haystack, needle) {\n if (haystack.length < needle.length) {\n return false;\n }\n for (let i = 0; i < needle.length; i++) {\n if (haystack[i] !== needle[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Determines if haystack ends with needle.\n */\nexport function endsWith(haystack, needle) {\n const diff = haystack.length - needle.length;\n if (diff > 0) {\n return haystack.lastIndexOf(needle) === diff;\n }\n else if (diff === 0) {\n return haystack === needle;\n }\n else {\n return false;\n }\n}\nexport function convertSimple2RegExpPattern(pattern) {\n return pattern.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&').replace(/[\\*]/g, '.*');\n}\nexport function repeat(value, count) {\n let s = '';\n while (count > 0) {\n if ((count & 1) === 1) {\n s += value;\n }\n value += value;\n count = count >>> 1;\n }\n return s;\n}\nexport function extendedRegExp(pattern) {\n let flags = '';\n if (startsWith(pattern, '(?i)')) {\n pattern = pattern.substring(4);\n flags = 'i';\n }\n try {\n return new RegExp(pattern, flags + 'u');\n }\n catch (e) {\n // could be an exception due to the 'u ' flag\n try {\n return new RegExp(pattern, flags);\n }\n catch (e) {\n // invalid pattern\n return undefined;\n }\n }\n}\n// from https://tanishiking.github.io/posts/count-unicode-codepoint/#work-hard-with-for-statements\nexport function stringLength(str) {\n let count = 0;\n for (let i = 0; i < str.length; i++) {\n count++;\n // obtain the i-th 16-bit\n const code = str.charCodeAt(i);\n if (0xD800 <= code && code <= 0xDBFF) {\n // if the i-th 16bit is an upper surrogate\n // skip the next 16 bits (lower surrogate)\n i++;\n }\n }\n return count;\n}\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';\nexport var DocumentUri;\n(function (DocumentUri) {\n function is(value) {\n return typeof value === 'string';\n }\n DocumentUri.is = is;\n})(DocumentUri || (DocumentUri = {}));\nexport var URI;\n(function (URI) {\n function is(value) {\n return typeof value === 'string';\n }\n URI.is = is;\n})(URI || (URI = {}));\nexport 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 || (integer = {}));\nexport 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 || (uinteger = {}));\n/**\n * The Position namespace provides helper functions to work with\n * {@link Position} literals.\n */\nexport var Position;\n(function (Position) {\n /**\n * Creates a new Position literal from the given line and character.\n * @param line The position's line.\n * @param character The position's character.\n */\n function create(line, character) {\n if (line === Number.MAX_VALUE) {\n line = uinteger.MAX_VALUE;\n }\n if (character === Number.MAX_VALUE) {\n character = uinteger.MAX_VALUE;\n }\n return { line, character };\n }\n Position.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Position} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n }\n Position.is = is;\n})(Position || (Position = {}));\n/**\n * The Range namespace provides helper functions to work with\n * {@link Range} literals.\n */\nexport var Range;\n(function (Range) {\n function create(one, two, three, four) {\n if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n return { start: Position.create(one, two), end: Position.create(three, four) };\n }\n else if (Position.is(one) && Position.is(two)) {\n return { start: one, end: two };\n }\n else {\n throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n }\n }\n Range.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Range} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n }\n Range.is = is;\n})(Range || (Range = {}));\n/**\n * The Location namespace provides helper functions to work with\n * {@link Location} literals.\n */\nexport var Location;\n(function (Location) {\n /**\n * Creates a Location literal.\n * @param uri The location's uri.\n * @param range The location's range.\n */\n function create(uri, range) {\n return { uri, range };\n }\n Location.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Location} interface.\n */\n function is(value) {\n let 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 || (Location = {}));\n/**\n * The LocationLink namespace provides helper functions to work with\n * {@link LocationLink} literals.\n */\nexport var LocationLink;\n(function (LocationLink) {\n /**\n * Creates a LocationLink literal.\n * @param targetUri The definition's uri.\n * @param targetRange The full range of the definition.\n * @param targetSelectionRange The span of the symbol definition at the target.\n * @param originSelectionRange The span of the symbol being defined in the originating source file.\n */\n function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n }\n LocationLink.create = create;\n /**\n * Checks whether the given literal conforms to the {@link LocationLink} interface.\n */\n function is(value) {\n let 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 || (LocationLink = {}));\n/**\n * The Color namespace provides helper functions to work with\n * {@link Color} literals.\n */\nexport var Color;\n(function (Color) {\n /**\n * Creates a new Color literal.\n */\n function create(red, green, blue, alpha) {\n return {\n red,\n green,\n blue,\n alpha,\n };\n }\n Color.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Color} interface.\n */\n function is(value) {\n const 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 || (Color = {}));\n/**\n * The ColorInformation namespace provides helper functions to work with\n * {@link ColorInformation} literals.\n */\nexport var ColorInformation;\n(function (ColorInformation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(range, color) {\n return {\n range,\n color,\n };\n }\n ColorInformation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ColorInformation} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n }\n ColorInformation.is = is;\n})(ColorInformation || (ColorInformation = {}));\n/**\n * The Color namespace provides helper functions to work with\n * {@link ColorPresentation} literals.\n */\nexport var ColorPresentation;\n(function (ColorPresentation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(label, textEdit, additionalTextEdits) {\n return {\n label,\n textEdit,\n additionalTextEdits,\n };\n }\n ColorPresentation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ColorInformation} interface.\n */\n function is(value) {\n const 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 || (ColorPresentation = {}));\n/**\n * A set of predefined range kinds.\n */\nexport var FoldingRangeKind;\n(function (FoldingRangeKind) {\n /**\n * Folding range for a comment\n */\n FoldingRangeKind.Comment = 'comment';\n /**\n * Folding range for 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 || (FoldingRangeKind = {}));\n/**\n * The folding range namespace provides helper functions to work with\n * {@link FoldingRange} literals.\n */\nexport var FoldingRange;\n(function (FoldingRange) {\n /**\n * Creates a new FoldingRange literal.\n */\n function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n const result = {\n startLine,\n 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 {@link FoldingRange} interface.\n */\n function is(value) {\n const 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 || (FoldingRange = {}));\n/**\n * The DiagnosticRelatedInformation namespace provides helper functions to work with\n * {@link DiagnosticRelatedInformation} literals.\n */\nexport var DiagnosticRelatedInformation;\n(function (DiagnosticRelatedInformation) {\n /**\n * Creates a new DiagnosticRelatedInformation literal.\n */\n function create(location, message) {\n return {\n location,\n message\n };\n }\n DiagnosticRelatedInformation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DiagnosticRelatedInformation} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n }\n DiagnosticRelatedInformation.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\n/**\n * The diagnostic's severity.\n */\nexport var DiagnosticSeverity;\n(function (DiagnosticSeverity) {\n /**\n * Reports an error.\n */\n DiagnosticSeverity.Error = 1;\n /**\n * Reports a warning.\n */\n DiagnosticSeverity.Warning = 2;\n /**\n * Reports an information.\n */\n DiagnosticSeverity.Information = 3;\n /**\n * Reports a hint.\n */\n DiagnosticSeverity.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\n/**\n * The diagnostic tags.\n *\n * @since 3.15.0\n */\nexport var DiagnosticTag;\n(function (DiagnosticTag) {\n /**\n * Unused or unnecessary code.\n *\n * Clients are allowed to render diagnostics with this tag faded out instead of having\n * an error squiggle.\n */\n DiagnosticTag.Unnecessary = 1;\n /**\n * Deprecated or obsolete code.\n *\n * Clients are allowed to rendered diagnostics with this tag strike through.\n */\n DiagnosticTag.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\n/**\n * The CodeDescription namespace provides functions to deal with descriptions for diagnostic codes.\n *\n * @since 3.16.0\n */\nexport var CodeDescription;\n(function (CodeDescription) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.href);\n }\n CodeDescription.is = is;\n})(CodeDescription || (CodeDescription = {}));\n/**\n * The Diagnostic namespace provides helper functions to work with\n * {@link Diagnostic} literals.\n */\nexport var Diagnostic;\n(function (Diagnostic) {\n /**\n * Creates a new Diagnostic literal.\n */\n function create(range, message, severity, code, source, relatedInformation) {\n let result = { range, 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 {@link Diagnostic} interface.\n */\n function is(value) {\n var _a;\n let candidate = value;\n return Is.defined(candidate)\n && Range.is(candidate.range)\n && Is.string(candidate.message)\n && (Is.number(candidate.severity) || Is.undefined(candidate.severity))\n && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code))\n && (Is.undefined(candidate.codeDescription) || (Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)))\n && (Is.string(candidate.source) || Is.undefined(candidate.source))\n && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n }\n Diagnostic.is = is;\n})(Diagnostic || (Diagnostic = {}));\n/**\n * The Command namespace provides helper functions to work with\n * {@link Command} literals.\n */\nexport var Command;\n(function (Command) {\n /**\n * Creates a new Command literal.\n */\n function create(title, command, ...args) {\n let result = { title, 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 {@link Command} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n }\n Command.is = is;\n})(Command || (Command = {}));\n/**\n * The TextEdit namespace provides helper function to create replace,\n * insert and delete edits more easily.\n */\nexport var TextEdit;\n(function (TextEdit) {\n /**\n * Creates a replace text edit.\n * @param range The range of text to be replaced.\n * @param newText The new text.\n */\n function replace(range, newText) {\n return { range, 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 };\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, newText: '' };\n }\n TextEdit.del = del;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate)\n && Is.string(candidate.newText)\n && Range.is(candidate.range);\n }\n TextEdit.is = is;\n})(TextEdit || (TextEdit = {}));\nexport var ChangeAnnotation;\n(function (ChangeAnnotation) {\n function create(label, needsConfirmation, description) {\n const result = { 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 const 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 || (ChangeAnnotation = {}));\nexport var ChangeAnnotationIdentifier;\n(function (ChangeAnnotationIdentifier) {\n function is(value) {\n const candidate = value;\n return Is.string(candidate);\n }\n ChangeAnnotationIdentifier.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nexport var AnnotatedTextEdit;\n(function (AnnotatedTextEdit) {\n /**\n * Creates an annotated replace text edit.\n *\n * @param range The range of text to be replaced.\n * @param newText The new text.\n * @param annotation The annotation.\n */\n function replace(range, newText, annotation) {\n return { range, 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, 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, newText: '', annotationId: annotation };\n }\n AnnotatedTextEdit.del = del;\n function is(value) {\n const candidate = value;\n return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n AnnotatedTextEdit.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\n/**\n * The TextDocumentEdit namespace provides helper function to create\n * an edit that manipulates a text document.\n */\nexport var TextDocumentEdit;\n(function (TextDocumentEdit) {\n /**\n * Creates a new `TextDocumentEdit`\n */\n function create(textDocument, edits) {\n return { textDocument, edits };\n }\n TextDocumentEdit.create = create;\n function is(value) {\n let candidate = value;\n return Is.defined(candidate)\n && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument)\n && Array.isArray(candidate.edits);\n }\n TextDocumentEdit.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nexport var CreateFile;\n(function (CreateFile) {\n function create(uri, options, annotation) {\n let result = {\n kind: 'create',\n 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 let candidate = value;\n return candidate && candidate.kind === 'create' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n CreateFile.is = is;\n})(CreateFile || (CreateFile = {}));\nexport var RenameFile;\n(function (RenameFile) {\n function create(oldUri, newUri, options, annotation) {\n let result = {\n kind: 'rename',\n oldUri,\n 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 let candidate = value;\n return candidate && candidate.kind === 'rename' && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n RenameFile.is = is;\n})(RenameFile || (RenameFile = {}));\nexport var DeleteFile;\n(function (DeleteFile) {\n function create(uri, options, annotation) {\n let result = {\n kind: 'delete',\n 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 let candidate = value;\n return candidate && candidate.kind === 'delete' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.recursive === undefined || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === undefined || Is.boolean(candidate.options.ignoreIfNotExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n DeleteFile.is = is;\n})(DeleteFile || (DeleteFile = {}));\nexport var WorkspaceEdit;\n(function (WorkspaceEdit) {\n function is(value) {\n let candidate = value;\n return candidate &&\n (candidate.changes !== undefined || candidate.documentChanges !== undefined) &&\n (candidate.documentChanges === undefined || candidate.documentChanges.every((change) => {\n if (Is.string(change.kind)) {\n return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n }\n else {\n return TextDocumentEdit.is(change);\n }\n }));\n }\n WorkspaceEdit.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nclass TextEditChangeImpl {\n constructor(edits, changeAnnotations) {\n this.edits = edits;\n this.changeAnnotations = changeAnnotations;\n }\n insert(position, newText, annotation) {\n let edit;\n let 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 replace(range, newText, annotation) {\n let edit;\n let 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 delete(range, annotation) {\n let edit;\n let 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 add(edit) {\n this.edits.push(edit);\n }\n all() {\n return this.edits;\n }\n clear() {\n this.edits.splice(0, this.edits.length);\n }\n assertChangeAnnotations(value) {\n if (value === undefined) {\n throw new Error(`Text edit change is not configured to manage change annotations.`);\n }\n }\n}\n/**\n * A helper class\n */\nclass ChangeAnnotations {\n constructor(annotations) {\n this._annotations = annotations === undefined ? Object.create(null) : annotations;\n this._counter = 0;\n this._size = 0;\n }\n all() {\n return this._annotations;\n }\n get size() {\n return this._size;\n }\n manage(idOrAnnotation, annotation) {\n let id;\n if (ChangeAnnotationIdentifier.is(idOrAnnotation)) {\n id = idOrAnnotation;\n }\n else {\n id = this.nextId();\n annotation = idOrAnnotation;\n }\n if (this._annotations[id] !== undefined) {\n throw new Error(`Id ${id} is already in use.`);\n }\n if (annotation === undefined) {\n throw new Error(`No annotation provided for id ${id}`);\n }\n this._annotations[id] = annotation;\n this._size++;\n return id;\n }\n nextId() {\n this._counter++;\n return this._counter.toString();\n }\n}\n/**\n * A workspace change helps constructing changes to a workspace.\n */\nexport class WorkspaceChange {\n constructor(workspaceEdit) {\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((change) => {\n if (TextDocumentEdit.is(change)) {\n const 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((key) => {\n const textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]);\n this._textEditChanges[key] = textEditChange;\n });\n }\n }\n else {\n this._workspaceEdit = {};\n }\n }\n /**\n * Returns the underlying {@link WorkspaceEdit} literal\n * use to be returned from a workspace edit operation like rename.\n */\n get edit() {\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 getTextEditChange(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 const textDocument = { uri: key.uri, version: key.version };\n let result = this._textEditChanges[textDocument.uri];\n if (!result) {\n const edits = [];\n const textDocumentEdit = {\n textDocument,\n 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 let result = this._textEditChanges[key];\n if (!result) {\n let edits = [];\n this._workspaceEdit.changes[key] = edits;\n result = new TextEditChangeImpl(edits);\n this._textEditChanges[key] = result;\n }\n return result;\n }\n }\n initDocumentChanges() {\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 initChanges() {\n if (this._workspaceEdit.documentChanges === undefined && this._workspaceEdit.changes === undefined) {\n this._workspaceEdit.changes = Object.create(null);\n }\n }\n createFile(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 let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let 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 renameFile(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 let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let 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 deleteFile(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 let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let 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}\n/**\n * The TextDocumentIdentifier namespace provides helper functions to work with\n * {@link TextDocumentIdentifier} literals.\n */\nexport var TextDocumentIdentifier;\n(function (TextDocumentIdentifier) {\n /**\n * Creates a new TextDocumentIdentifier literal.\n * @param uri The document's uri.\n */\n function create(uri) {\n return { uri };\n }\n TextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link TextDocumentIdentifier} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri);\n }\n TextDocumentIdentifier.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\n/**\n * The VersionedTextDocumentIdentifier namespace provides helper functions to work with\n * {@link VersionedTextDocumentIdentifier} literals.\n */\nexport var VersionedTextDocumentIdentifier;\n(function (VersionedTextDocumentIdentifier) {\n /**\n * Creates a new VersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\n */\n function create(uri, version) {\n return { uri, version };\n }\n VersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link VersionedTextDocumentIdentifier} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n }\n VersionedTextDocumentIdentifier.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\n/**\n * The OptionalVersionedTextDocumentIdentifier namespace provides helper functions to work with\n * {@link OptionalVersionedTextDocumentIdentifier} literals.\n */\nexport var OptionalVersionedTextDocumentIdentifier;\n(function (OptionalVersionedTextDocumentIdentifier) {\n /**\n * Creates a new OptionalVersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\n */\n function create(uri, version) {\n return { uri, version };\n }\n OptionalVersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link OptionalVersionedTextDocumentIdentifier} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n }\n OptionalVersionedTextDocumentIdentifier.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\n/**\n * The TextDocumentItem namespace provides helper functions to work with\n * {@link TextDocumentItem} literals.\n */\nexport var TextDocumentItem;\n(function (TextDocumentItem) {\n /**\n * Creates a new TextDocumentItem literal.\n * @param uri The document's uri.\n * @param languageId The document's language identifier.\n * @param version The document's version number.\n * @param text The document's text.\n */\n function create(uri, languageId, version, text) {\n return { uri, languageId, version, text };\n }\n TextDocumentItem.create = create;\n /**\n * Checks whether the given literal conforms to the {@link TextDocumentItem} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n }\n TextDocumentItem.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\n/**\n * Describes the content type that a client supports in various\n * result literals like `Hover`, `ParameterInfo` or `CompletionItem`.\n *\n * Please note that `MarkupKinds` must not start with a `$`. This kinds\n * are reserved for internal usage.\n */\nexport var MarkupKind;\n(function (MarkupKind) {\n /**\n * Plain text is supported as a content format\n */\n MarkupKind.PlainText = 'plaintext';\n /**\n * Markdown is supported as a content format\n */\n MarkupKind.Markdown = 'markdown';\n /**\n * Checks whether the given value is a value of the {@link MarkupKind} type.\n */\n function is(value) {\n const candidate = value;\n return candidate === MarkupKind.PlainText || candidate === MarkupKind.Markdown;\n }\n MarkupKind.is = is;\n})(MarkupKind || (MarkupKind = {}));\nexport var MarkupContent;\n(function (MarkupContent) {\n /**\n * Checks whether the given value conforms to the {@link MarkupContent} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n }\n MarkupContent.is = is;\n})(MarkupContent || (MarkupContent = {}));\n/**\n * The kind of a completion entry.\n */\nexport var CompletionItemKind;\n(function (CompletionItemKind) {\n CompletionItemKind.Text = 1;\n CompletionItemKind.Method = 2;\n CompletionItemKind.Function = 3;\n CompletionItemKind.Constructor = 4;\n CompletionItemKind.Field = 5;\n CompletionItemKind.Variable = 6;\n CompletionItemKind.Class = 7;\n CompletionItemKind.Interface = 8;\n CompletionItemKind.Module = 9;\n CompletionItemKind.Property = 10;\n CompletionItemKind.Unit = 11;\n CompletionItemKind.Value = 12;\n CompletionItemKind.Enum = 13;\n CompletionItemKind.Keyword = 14;\n CompletionItemKind.Snippet = 15;\n CompletionItemKind.Color = 16;\n CompletionItemKind.File = 17;\n CompletionItemKind.Reference = 18;\n CompletionItemKind.Folder = 19;\n CompletionItemKind.EnumMember = 20;\n CompletionItemKind.Constant = 21;\n CompletionItemKind.Struct = 22;\n CompletionItemKind.Event = 23;\n CompletionItemKind.Operator = 24;\n CompletionItemKind.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\n/**\n * Defines whether the insert text in a completion item should be interpreted as\n * plain text or a snippet.\n */\nexport var InsertTextFormat;\n(function (InsertTextFormat) {\n /**\n * The primary text to be inserted is treated as a plain string.\n */\n InsertTextFormat.PlainText = 1;\n /**\n * The primary text to be inserted is treated as a snippet.\n *\n * A snippet can define tab stops and placeholders with `$1`, `$2`\n * and `${3:foo}`. `$0` defines the final tab stop, it defaults to\n * the end of the snippet. Placeholders with equal identifiers are linked,\n * that is typing in one will update others too.\n *\n * See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#snippet_syntax\n */\n InsertTextFormat.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\n/**\n * Completion item tags are extra annotations that tweak the rendering of a completion\n * item.\n *\n * @since 3.15.0\n */\nexport var CompletionItemTag;\n(function (CompletionItemTag) {\n /**\n * Render a completion as obsolete, usually using a strike-out.\n */\n CompletionItemTag.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\n/**\n * The InsertReplaceEdit namespace provides functions to deal with insert / replace edits.\n *\n * @since 3.16.0\n */\nexport var InsertReplaceEdit;\n(function (InsertReplaceEdit) {\n /**\n * Creates a new insert / replace edit\n */\n function create(newText, insert, replace) {\n return { newText, insert, replace };\n }\n InsertReplaceEdit.create = create;\n /**\n * Checks whether the given literal conforms to the {@link InsertReplaceEdit} interface.\n */\n function is(value) {\n const candidate = value;\n return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n }\n InsertReplaceEdit.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\n/**\n * How whitespace and indentation is handled during completion\n * item insertion.\n *\n * @since 3.16.0\n */\nexport var InsertTextMode;\n(function (InsertTextMode) {\n /**\n * The insertion or replace strings is taken as it is. If the\n * value is multi line the lines below the cursor will be\n * inserted using the indentation defined in the string value.\n * The client will not apply any kind of adjustments to the\n * string.\n */\n InsertTextMode.asIs = 1;\n /**\n * The editor adjusts leading whitespace of new lines so that\n * they match the indentation up to the cursor of the line for\n * which the item is accepted.\n *\n * Consider a line like this: <2tabs><cursor><3tabs>foo. Accepting a\n * multi line completion item is indented using 2 tabs and all\n * following lines inserted will be indented using 2 tabs as well.\n */\n InsertTextMode.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\nexport var CompletionItemLabelDetails;\n(function (CompletionItemLabelDetails) {\n function is(value) {\n const 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 || (CompletionItemLabelDetails = {}));\n/**\n * The CompletionItem namespace provides functions to deal with\n * completion items.\n */\nexport var CompletionItem;\n(function (CompletionItem) {\n /**\n * Create a completion item and seed it with a label.\n * @param label The completion item's label\n */\n function create(label) {\n return { label };\n }\n CompletionItem.create = create;\n})(CompletionItem || (CompletionItem = {}));\n/**\n * The CompletionList namespace provides functions to deal with\n * completion lists.\n */\nexport var CompletionList;\n(function (CompletionList) {\n /**\n * Creates a new completion list.\n *\n * @param items The completion items.\n * @param isIncomplete The list is not complete.\n */\n function create(items, isIncomplete) {\n return { items: items ? items : [], isIncomplete: !!isIncomplete };\n }\n CompletionList.create = create;\n})(CompletionList || (CompletionList = {}));\nexport var MarkedString;\n(function (MarkedString) {\n /**\n * Creates a marked string from plain text.\n *\n * @param plainText The plain text.\n */\n function fromPlainText(plainText) {\n return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, '\\\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\n }\n MarkedString.fromPlainText = fromPlainText;\n /**\n * Checks whether the given value conforms to the {@link MarkedString} type.\n */\n function is(value) {\n const candidate = value;\n return Is.string(candidate) || (Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value));\n }\n MarkedString.is = is;\n})(MarkedString || (MarkedString = {}));\nexport var Hover;\n(function (Hover) {\n /**\n * Checks whether the given value conforms to the {@link Hover} interface.\n */\n function is(value) {\n let candidate = value;\n return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) ||\n MarkedString.is(candidate.contents) ||\n Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === undefined || Range.is(value.range));\n }\n Hover.is = is;\n})(Hover || (Hover = {}));\n/**\n * The ParameterInformation namespace provides helper functions to work with\n * {@link ParameterInformation} literals.\n */\nexport var ParameterInformation;\n(function (ParameterInformation) {\n /**\n * Creates a new parameter information literal.\n *\n * @param label A label string.\n * @param documentation A doc string.\n */\n function create(label, documentation) {\n return documentation ? { label, documentation } : { label };\n }\n ParameterInformation.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\n/**\n * The SignatureInformation namespace provides helper functions to work with\n * {@link SignatureInformation} literals.\n */\nexport var SignatureInformation;\n(function (SignatureInformation) {\n function create(label, documentation, ...parameters) {\n let result = { label };\n if (Is.defined(documentation)) {\n result.documentation = documentation;\n }\n if (Is.defined(parameters)) {\n result.parameters = parameters;\n }\n else {\n result.parameters = [];\n }\n return result;\n }\n SignatureInformation.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n /**\n * A textual occurrence.\n */\n DocumentHighlightKind.Text = 1;\n /**\n * Read-access of a symbol, like reading a variable.\n */\n DocumentHighlightKind.Read = 2;\n /**\n * Write-access of a symbol, like writing to a variable.\n */\n DocumentHighlightKind.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * DocumentHighlight namespace to provide helper functions to work with\n * {@link DocumentHighlight} literals.\n */\nexport var DocumentHighlight;\n(function (DocumentHighlight) {\n /**\n * Create a DocumentHighlight object.\n * @param range The range the highlight applies to.\n * @param kind The highlight kind\n */\n function create(range, kind) {\n let result = { range };\n if (Is.number(kind)) {\n result.kind = kind;\n }\n return result;\n }\n DocumentHighlight.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\n/**\n * A symbol kind.\n */\nexport var SymbolKind;\n(function (SymbolKind) {\n SymbolKind.File = 1;\n SymbolKind.Module = 2;\n SymbolKind.Namespace = 3;\n SymbolKind.Package = 4;\n SymbolKind.Class = 5;\n SymbolKind.Method = 6;\n SymbolKind.Property = 7;\n SymbolKind.Field = 8;\n SymbolKind.Constructor = 9;\n SymbolKind.Enum = 10;\n SymbolKind.Interface = 11;\n SymbolKind.Function = 12;\n SymbolKind.Variable = 13;\n SymbolKind.Constant = 14;\n SymbolKind.String = 15;\n SymbolKind.Number = 16;\n SymbolKind.Boolean = 17;\n SymbolKind.Array = 18;\n SymbolKind.Object = 19;\n SymbolKind.Key = 20;\n SymbolKind.Null = 21;\n SymbolKind.EnumMember = 22;\n SymbolKind.Struct = 23;\n SymbolKind.Event = 24;\n SymbolKind.Operator = 25;\n SymbolKind.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\n/**\n * Symbol tags are extra annotations that tweak the rendering of a symbol.\n *\n * @since 3.16\n */\nexport var SymbolTag;\n(function (SymbolTag) {\n /**\n * Render a symbol as obsolete, usually using a strike-out.\n */\n SymbolTag.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nexport var SymbolInformation;\n(function (SymbolInformation) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the location of the symbol.\n * @param uri The resource of the location of symbol.\n * @param containerName The name of the symbol containing the symbol.\n */\n function create(name, kind, range, uri, containerName) {\n let result = {\n name,\n kind,\n location: { uri, range }\n };\n if (containerName) {\n result.containerName = containerName;\n }\n return result;\n }\n SymbolInformation.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nexport 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, kind, location: { uri, range } }\n : { name, kind, location: { uri } };\n }\n WorkspaceSymbol.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nexport var DocumentSymbol;\n(function (DocumentSymbol) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param detail The detail of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the symbol.\n * @param selectionRange The selectionRange of the symbol.\n * @param children Children of the symbol.\n */\n function create(name, detail, kind, range, selectionRange, children) {\n let result = {\n name,\n detail,\n kind,\n range,\n 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 {@link DocumentSymbol} interface.\n */\n function is(value) {\n let candidate = value;\n return candidate &&\n Is.string(candidate.name) && Is.number(candidate.kind) &&\n Range.is(candidate.range) && Range.is(candidate.selectionRange) &&\n (candidate.detail === undefined || Is.string(candidate.detail)) &&\n (candidate.deprecated === undefined || Is.boolean(candidate.deprecated)) &&\n (candidate.children === undefined || Array.isArray(candidate.children)) &&\n (candidate.tags === undefined || Array.isArray(candidate.tags));\n }\n DocumentSymbol.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\n/**\n * A set of predefined code action kinds\n */\nexport var CodeActionKind;\n(function (CodeActionKind) {\n /**\n * Empty kind.\n */\n CodeActionKind.Empty = '';\n /**\n * Base kind for quickfix actions: 'quickfix'\n */\n CodeActionKind.QuickFix = 'quickfix';\n /**\n * Base kind for refactoring actions: 'refactor'\n */\n CodeActionKind.Refactor = 'refactor';\n /**\n * Base kind for refactoring extraction actions: 'refactor.extract'\n *\n * Example extract actions:\n *\n * - Extract method\n * - Extract function\n * - Extract variable\n * - Extract interface from class\n * - ...\n */\n CodeActionKind.RefactorExtract = 'refactor.extract';\n /**\n * Base kind for refactoring inline actions: 'refactor.inline'\n *\n * Example inline actions:\n *\n * - Inline function\n * - Inline variable\n * - Inline constant\n * - ...\n */\n CodeActionKind.RefactorInline = 'refactor.inline';\n /**\n * Base kind for refactoring rewrite actions: 'refactor.rewrite'\n *\n * Example rewrite actions:\n *\n * - Convert JavaScript function to class\n * - Add or remove parameter\n * - Encapsulate field\n * - Make method static\n * - Move method to base class\n * - ...\n */\n CodeActionKind.RefactorRewrite = 'refactor.rewrite';\n /**\n * Base kind for source actions: `source`\n *\n * Source code actions apply to the entire file.\n */\n CodeActionKind.Source = 'source';\n /**\n * Base kind for an organize imports source action: `source.organizeImports`\n */\n CodeActionKind.SourceOrganizeImports = 'source.organizeImports';\n /**\n * Base kind for auto-fix source actions: `source.fixAll`.\n *\n * Fix all actions automatically fix errors that have a clear fix that do not require user input.\n * They should not suppress errors or perform unsafe fixes such as generating new types or classes.\n *\n * @since 3.15.0\n */\n CodeActionKind.SourceFixAll = 'source.fixAll';\n})(CodeActionKind || (CodeActionKind = {}));\n/**\n * The reason why code actions were requested.\n *\n * @since 3.17.0\n */\nexport 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 || (CodeActionTriggerKind = {}));\n/**\n * The CodeActionContext namespace provides helper functions to work with\n * {@link CodeActionContext} literals.\n */\nexport var CodeActionContext;\n(function (CodeActionContext) {\n /**\n * Creates a new CodeActionContext literal.\n */\n function create(diagnostics, only, triggerKind) {\n let result = { 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 {@link CodeActionContext} interface.\n */\n function is(value) {\n let 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 || (CodeActionContext = {}));\nexport var CodeAction;\n(function (CodeAction) {\n function create(title, kindOrCommandOrEdit, kind) {\n let result = { title };\n let 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 let candidate = value;\n return candidate && Is.string(candidate.title) &&\n (candidate.diagnostics === undefined || Is.typedArray(candidate.diagnostics, Diagnostic.is)) &&\n (candidate.kind === undefined || Is.string(candidate.kind)) &&\n (candidate.edit !== undefined || candidate.command !== undefined) &&\n (candidate.command === undefined || Command.is(candidate.command)) &&\n (candidate.isPreferred === undefined || Is.boolean(candidate.isPreferred)) &&\n (candidate.edit === undefined || WorkspaceEdit.is(candidate.edit));\n }\n CodeAction.is = is;\n})(CodeAction || (CodeAction = {}));\n/**\n * The CodeLens namespace provides helper functions to work with\n * {@link CodeLens} literals.\n */\nexport var CodeLens;\n(function (CodeLens) {\n /**\n * Creates a new CodeLens literal.\n */\n function create(range, data) {\n let result = { 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 {@link CodeLens} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n }\n CodeLens.is = is;\n})(CodeLens || (CodeLens = {}));\n/**\n * The FormattingOptions namespace provides helper functions to work with\n * {@link FormattingOptions} literals.\n */\nexport var FormattingOptions;\n(function (FormattingOptions) {\n /**\n * Creates a new FormattingOptions literal.\n */\n function create(tabSize, insertSpaces) {\n return { tabSize, insertSpaces };\n }\n FormattingOptions.create = create;\n /**\n * Checks whether the given literal conforms to the {@link FormattingOptions} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n }\n FormattingOptions.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\n/**\n * The DocumentLink namespace provides helper functions to work with\n * {@link DocumentLink} literals.\n */\nexport var DocumentLink;\n(function (DocumentLink) {\n /**\n * Creates a new DocumentLink literal.\n */\n function create(range, target, data) {\n return { range, target, data };\n }\n DocumentLink.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DocumentLink} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n }\n DocumentLink.is = is;\n})(DocumentLink || (DocumentLink = {}));\n/**\n * The SelectionRange namespace provides helper function to work with\n * SelectionRange literals.\n */\nexport var SelectionRange;\n(function (SelectionRange) {\n /**\n * Creates a new SelectionRange\n * @param range the range.\n * @param parent an optional parent.\n */\n function create(range, parent) {\n return { range, parent };\n }\n SelectionRange.create = create;\n function is(value) {\n let 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 || (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 */\nexport 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 || (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 */\nexport 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 || (SemanticTokenModifiers = {}));\n/**\n * @since 3.16.0\n */\nexport var SemanticTokens;\n(function (SemanticTokens) {\n function is(value) {\n const 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 || (SemanticTokens = {}));\n/**\n * The InlineValueText namespace provides functions to deal with InlineValueTexts.\n *\n * @since 3.17.0\n */\nexport var InlineValueText;\n(function (InlineValueText) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, text) {\n return { range, text };\n }\n InlineValueText.create = create;\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n }\n InlineValueText.is = is;\n})(InlineValueText || (InlineValueText = {}));\n/**\n * The InlineValueVariableLookup namespace provides functions to deal with InlineValueVariableLookups.\n *\n * @since 3.17.0\n */\nexport var InlineValueVariableLookup;\n(function (InlineValueVariableLookup) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, variableName, caseSensitiveLookup) {\n return { range, variableName, caseSensitiveLookup };\n }\n InlineValueVariableLookup.create = create;\n function is(value) {\n const 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 || (InlineValueVariableLookup = {}));\n/**\n * The InlineValueEvaluatableExpression namespace provides functions to deal with InlineValueEvaluatableExpression.\n *\n * @since 3.17.0\n */\nexport var InlineValueEvaluatableExpression;\n(function (InlineValueEvaluatableExpression) {\n /**\n * Creates a new InlineValueEvaluatableExpression literal.\n */\n function create(range, expression) {\n return { range, expression };\n }\n InlineValueEvaluatableExpression.create = create;\n function is(value) {\n const 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 || (InlineValueEvaluatableExpression = {}));\n/**\n * The InlineValueContext namespace provides helper functions to work with\n * {@link InlineValueContext} literals.\n *\n * @since 3.17.0\n */\nexport var InlineValueContext;\n(function (InlineValueContext) {\n /**\n * Creates a new InlineValueContext literal.\n */\n function create(frameId, stoppedLocation) {\n return { frameId, stoppedLocation };\n }\n InlineValueContext.create = create;\n /**\n * Checks whether the given literal conforms to the {@link InlineValueContext} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Range.is(value.stoppedLocation);\n }\n InlineValueContext.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\n/**\n * Inlay hint kinds.\n *\n * @since 3.17.0\n */\nexport 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 || (InlayHintKind = {}));\nexport var InlayHintLabelPart;\n(function (InlayHintLabelPart) {\n function create(value) {\n return { value };\n }\n InlayHintLabelPart.create = create;\n function is(value) {\n const 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 || (InlayHintLabelPart = {}));\nexport var InlayHint;\n(function (InlayHint) {\n function create(position, label, kind) {\n const result = { position, label };\n if (kind !== undefined) {\n result.kind = kind;\n }\n return result;\n }\n InlayHint.create = create;\n function is(value) {\n const 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 || (InlayHint = {}));\nexport var StringValue;\n(function (StringValue) {\n function createSnippet(value) {\n return { kind: 'snippet', value };\n }\n StringValue.createSnippet = createSnippet;\n})(StringValue || (StringValue = {}));\nexport var InlineCompletionItem;\n(function (InlineCompletionItem) {\n function create(insertText, filterText, range, command) {\n return { insertText, filterText, range, command };\n }\n InlineCompletionItem.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nexport var InlineCompletionList;\n(function (InlineCompletionList) {\n function create(items) {\n return { items };\n }\n InlineCompletionList.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\n/**\n * Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered.\n *\n * @since 3.18.0\n * @proposed\n */\nexport var InlineCompletionTriggerKind;\n(function (InlineCompletionTriggerKind) {\n /**\n * Completion was triggered explicitly by a user gesture.\n */\n InlineCompletionTriggerKind.Invoked = 0;\n /**\n * Completion was triggered automatically while editing.\n */\n InlineCompletionTriggerKind.Automatic = 1;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nexport var SelectedCompletionInfo;\n(function (SelectedCompletionInfo) {\n function create(range, text) {\n return { range, text };\n }\n SelectedCompletionInfo.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nexport var InlineCompletionContext;\n(function (InlineCompletionContext) {\n function create(triggerKind, selectedCompletionInfo) {\n return { triggerKind, selectedCompletionInfo };\n }\n InlineCompletionContext.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nexport var WorkspaceFolder;\n(function (WorkspaceFolder) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n }\n WorkspaceFolder.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nexport const EOL = ['\\n', '\\r\\n', '\\r'];\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nexport var TextDocument;\n(function (TextDocument) {\n /**\n * Creates a new ITextDocument literal from the given uri and content.\n * @param uri The document's uri.\n * @param languageId The document's language Id.\n * @param 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 {@link ITextDocument} interface.\n */\n function is(value) {\n let 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 let text = document.getText();\n let sortedEdits = mergeSort(edits, (a, b) => {\n let 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 let lastModifiedOffset = text.length;\n for (let i = sortedEdits.length - 1; i >= 0; i--) {\n let e = sortedEdits[i];\n let startOffset = document.offsetAt(e.range.start);\n let 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 const p = (data.length / 2) | 0;\n const left = data.slice(0, p);\n const right = data.slice(p);\n mergeSort(left, compare);\n mergeSort(right, compare);\n let leftIdx = 0;\n let rightIdx = 0;\n let i = 0;\n while (leftIdx < left.length && rightIdx < right.length) {\n let ret = compare(left[leftIdx], right[rightIdx]);\n if (ret <= 0) {\n // smaller_equal -> take left to preserve order\n data[i++] = left[leftIdx++];\n }\n else {\n // greater -> take right\n data[i++] = right[rightIdx++];\n }\n }\n while (leftIdx < left.length) {\n data[i++] = left[leftIdx++];\n }\n while (rightIdx < right.length) {\n data[i++] = right[rightIdx++];\n }\n return data;\n }\n})(TextDocument || (TextDocument = {}));\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nclass FullTextDocument {\n constructor(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 get uri() {\n return this._uri;\n }\n get languageId() {\n return this._languageId;\n }\n get version() {\n return this._version;\n }\n getText(range) {\n if (range) {\n let start = this.offsetAt(range.start);\n let end = this.offsetAt(range.end);\n return this._content.substring(start, end);\n }\n return this._content;\n }\n update(event, version) {\n this._content = event.text;\n this._version = version;\n this._lineOffsets = undefined;\n }\n getLineOffsets() {\n if (this._lineOffsets === undefined) {\n let lineOffsets = [];\n let text = this._content;\n let isLineStart = true;\n for (let i = 0; i < text.length; i++) {\n if (isLineStart) {\n lineOffsets.push(i);\n isLineStart = false;\n }\n let 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 positionAt(offset) {\n offset = Math.max(Math.min(offset, this._content.length), 0);\n let lineOffsets = this.getLineOffsets();\n let low = 0, high = lineOffsets.length;\n if (high === 0) {\n return Position.create(0, offset);\n }\n while (low < high) {\n let 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 let line = low - 1;\n return Position.create(line, offset - lineOffsets[line]);\n }\n offsetAt(position) {\n let 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 let lineOffset = lineOffsets[position.line];\n let 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 get lineCount() {\n return this.getLineOffsets().length;\n }\n}\nvar Is;\n(function (Is) {\n const 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 * 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';\nclass FullTextDocument {\n constructor(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 get uri() {\n return this._uri;\n }\n get languageId() {\n return this._languageId;\n }\n get version() {\n return this._version;\n }\n getText(range) {\n if (range) {\n const start = this.offsetAt(range.start);\n const end = this.offsetAt(range.end);\n return this._content.substring(start, end);\n }\n return this._content;\n }\n update(changes, version) {\n for (const change of changes) {\n if (FullTextDocument.isIncremental(change)) {\n // makes sure start is before end\n const range = getWellformedRange(change.range);\n // update content\n const startOffset = this.offsetAt(range.start);\n const endOffset = this.offsetAt(range.end);\n this._content = this._content.substring(0, startOffset) + change.text + this._content.substring(endOffset, this._content.length);\n // update the offsets\n const startLine = Math.max(range.start.line, 0);\n const endLine = Math.max(range.end.line, 0);\n let lineOffsets = this._lineOffsets;\n const addedLineOffsets = computeLineOffsets(change.text, false, startOffset);\n if (endLine - startLine === addedLineOffsets.length) {\n for (let i = 0, len = addedLineOffsets.length; i < len; i++) {\n lineOffsets[i + startLine + 1] = addedLineOffsets[i];\n }\n }\n else {\n if (addedLineOffsets.length < 10000) {\n lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets);\n }\n else { // avoid too many arguments for splice\n this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1));\n }\n }\n const diff = change.text.length - (endOffset - startOffset);\n if (diff !== 0) {\n for (let i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) {\n lineOffsets[i] = lineOffsets[i] + diff;\n }\n }\n }\n else if (FullTextDocument.isFull(change)) {\n this._content = change.text;\n this._lineOffsets = undefined;\n }\n else {\n throw new Error('Unknown change event received');\n }\n }\n this._version = version;\n }\n getLineOffsets() {\n if (this._lineOffsets === undefined) {\n this._lineOffsets = computeLineOffsets(this._content, true);\n }\n return this._lineOffsets;\n }\n positionAt(offset) {\n offset = Math.max(Math.min(offset, this._content.length), 0);\n const lineOffsets = this.getLineOffsets();\n let low = 0, high = lineOffsets.length;\n if (high === 0) {\n return { line: 0, character: offset };\n }\n while (low < high) {\n const 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 const line = low - 1;\n offset = this.ensureBeforeEOL(offset, lineOffsets[line]);\n return { line, character: offset - lineOffsets[line] };\n }\n offsetAt(position) {\n const 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 const lineOffset = lineOffsets[position.line];\n if (position.character <= 0) {\n return lineOffset;\n }\n const nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;\n const offset = Math.min(lineOffset + position.character, nextLineOffset);\n return this.ensureBeforeEOL(offset, lineOffset);\n }\n ensureBeforeEOL(offset, lineOffset) {\n while (offset > lineOffset && isEOL(this._content.charCodeAt(offset - 1))) {\n offset--;\n }\n return offset;\n }\n get lineCount() {\n return this.getLineOffsets().length;\n }\n static isIncremental(event) {\n const 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 static isFull(event) {\n const candidate = event;\n return candidate !== undefined && candidate !== null &&\n typeof candidate.text === 'string' && candidate.range === undefined && candidate.rangeLength === undefined;\n }\n}\nexport var TextDocument;\n(function (TextDocument) {\n /**\n * Creates a new text document.\n *\n * @param uri The document's uri.\n * @param languageId The document's language Id.\n * @param version The document's initial version number.\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 * Updates a TextDocument by modifying its content.\n *\n * @param document the document to update. Only documents created by TextDocument.create are valid inputs.\n * @param changes the changes to apply to the document.\n * @param version the changes version for the document.\n * @returns The updated TextDocument. Note: That's the same document instance passed in as first parameter.\n *\n */\n function update(document, changes, version) {\n if (document instanceof FullTextDocument) {\n document.update(changes, version);\n return document;\n }\n else {\n throw new Error('TextDocument.update: document must be created by TextDocument.create');\n }\n }\n TextDocument.update = update;\n function applyEdits(document, edits) {\n const text = document.getText();\n const sortedEdits = mergeSort(edits.map(getWellformedEdit), (a, b) => {\n const 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 let lastModifiedOffset = 0;\n const spans = [];\n for (const e of sortedEdits) {\n const startOffset = document.offsetAt(e.range.start);\n if (startOffset < lastModifiedOffset) {\n throw new Error('Overlapping edit');\n }\n else if (startOffset > lastModifiedOffset) {\n spans.push(text.substring(lastModifiedOffset, startOffset));\n }\n if (e.newText.length) {\n spans.push(e.newText);\n }\n lastModifiedOffset = document.offsetAt(e.range.end);\n }\n spans.push(text.substr(lastModifiedOffset));\n return spans.join('');\n }\n TextDocument.applyEdits = applyEdits;\n})(TextDocument || (TextDocument = {}));\nfunction mergeSort(data, compare) {\n if (data.length <= 1) {\n // sorted\n return data;\n }\n const p = (data.length / 2) | 0;\n const left = data.slice(0, p);\n const right = data.slice(p);\n mergeSort(left, compare);\n mergeSort(right, compare);\n let leftIdx = 0;\n let rightIdx = 0;\n let i = 0;\n while (leftIdx < left.length && rightIdx < right.length) {\n const 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}\nfunction computeLineOffsets(text, isAtLineStart, textOffset = 0) {\n const result = isAtLineStart ? [textOffset] : [];\n for (let i = 0; i < text.length; i++) {\n const ch = text.charCodeAt(i);\n if (isEOL(ch)) {\n if (ch === 13 /* CharCode.CarriageReturn */ && i + 1 < text.length && text.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) {\n i++;\n }\n result.push(textOffset + i + 1);\n }\n }\n return result;\n}\nfunction isEOL(char) {\n return char === 13 /* CharCode.CarriageReturn */ || char === 10 /* CharCode.LineFeed */;\n}\nfunction getWellformedRange(range) {\n const start = range.start;\n const end = range.end;\n if (start.line > end.line || (start.line === end.line && start.character > end.character)) {\n return { start: end, end: start };\n }\n return range;\n}\nfunction getWellformedEdit(textEdit) {\n const range = getWellformedRange(textEdit.range);\n if (range !== textEdit.range) {\n return { newText: textEdit.newText, range };\n }\n return textEdit;\n}\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 *--------------------------------------------------------------------------------------------*/\nimport { Range, Position, DocumentUri, MarkupContent, MarkupKind, Color, ColorInformation, ColorPresentation, FoldingRange, FoldingRangeKind, SelectionRange, Diagnostic, DiagnosticSeverity, CompletionItem, CompletionItemKind, CompletionList, CompletionItemTag, InsertTextFormat, SymbolInformation, SymbolKind, DocumentSymbol, Location, Hover, MarkedString, CodeActionContext, Command, CodeAction, DocumentHighlight, DocumentLink, WorkspaceEdit, TextEdit, CodeActionKind, TextDocumentEdit, VersionedTextDocumentIdentifier, DocumentHighlightKind } from 'vscode-languageserver-types';\nimport { TextDocument } from 'vscode-languageserver-textdocument';\nexport { TextDocument, Range, Position, DocumentUri, MarkupContent, MarkupKind, Color, ColorInformation, ColorPresentation, FoldingRange, FoldingRangeKind, SelectionRange, Diagnostic, DiagnosticSeverity, CompletionItem, CompletionItemKind, CompletionList, CompletionItemTag, InsertTextFormat, SymbolInformation, SymbolKind, DocumentSymbol, Location, Hover, MarkedString, CodeActionContext, Command, CodeAction, DocumentHighlight, DocumentLink, WorkspaceEdit, TextEdit, CodeActionKind, TextDocumentEdit, VersionedTextDocumentIdentifier, DocumentHighlightKind };\n/**\n * Error codes used by diagnostics\n */\nexport var ErrorCode;\n(function (ErrorCode) {\n ErrorCode[ErrorCode[\"Undefined\"] = 0] = \"Undefined\";\n ErrorCode[ErrorCode[\"EnumValueMismatch\"] = 1] = \"EnumValueMismatch\";\n ErrorCode[ErrorCode[\"Deprecated\"] = 2] = \"Deprecated\";\n ErrorCode[ErrorCode[\"UnexpectedEndOfComment\"] = 257] = \"UnexpectedEndOfComment\";\n ErrorCode[ErrorCode[\"UnexpectedEndOfString\"] = 258] = \"UnexpectedEndOfString\";\n ErrorCode[ErrorCode[\"UnexpectedEndOfNumber\"] = 259] = \"UnexpectedEndOfNumber\";\n ErrorCode[ErrorCode[\"InvalidUnicode\"] = 260] = \"InvalidUnicode\";\n ErrorCode[ErrorCode[\"InvalidEscapeCharacter\"] = 261] = \"InvalidEscapeCharacter\";\n ErrorCode[ErrorCode[\"InvalidCharacter\"] = 262] = \"InvalidCharacter\";\n ErrorCode[ErrorCode[\"PropertyExpected\"] = 513] = \"PropertyExpected\";\n ErrorCode[ErrorCode[\"CommaExpected\"] = 514] = \"CommaExpected\";\n ErrorCode[ErrorCode[\"ColonExpected\"] = 515] = \"ColonExpected\";\n ErrorCode[ErrorCode[\"ValueExpected\"] = 516] = \"ValueExpected\";\n ErrorCode[ErrorCode[\"CommaOrCloseBacketExpected\"] = 517] = \"CommaOrCloseBacketExpected\";\n ErrorCode[ErrorCode[\"CommaOrCloseBraceExpected\"] = 518] = \"CommaOrCloseBraceExpected\";\n ErrorCode[ErrorCode[\"TrailingComma\"] = 519] = \"TrailingComma\";\n ErrorCode[ErrorCode[\"DuplicateKey\"] = 520] = \"DuplicateKey\";\n ErrorCode[ErrorCode[\"CommentNotPermitted\"] = 521] = \"CommentNotPermitted\";\n ErrorCode[ErrorCode[\"PropertyKeysMustBeDoublequoted\"] = 528] = \"PropertyKeysMustBeDoublequoted\";\n ErrorCode[ErrorCode[\"SchemaUnsupportedFeature\"] = 769] = \"SchemaUnsupportedFeature\";\n ErrorCode[ErrorCode[\"SchemaResolveError\"] = 65536] = \"SchemaResolveError\";\n})(ErrorCode || (ErrorCode = {}));\nexport function isSchemaResolveError(code) {\n return code >= ErrorCode.SchemaResolveError;\n}\nexport var SchemaDraft;\n(function (SchemaDraft) {\n SchemaDraft[SchemaDraft[\"v3\"] = 3] = \"v3\";\n SchemaDraft[SchemaDraft[\"v4\"] = 4] = \"v4\";\n SchemaDraft[SchemaDraft[\"v6\"] = 6] = \"v6\";\n SchemaDraft[SchemaDraft[\"v7\"] = 7] = \"v7\";\n SchemaDraft[SchemaDraft[\"v2019_09\"] = 19] = \"v2019_09\";\n SchemaDraft[SchemaDraft[\"v2020_12\"] = 20] = \"v2020_12\";\n})(SchemaDraft || (SchemaDraft = {}));\nexport var ClientCapabilities;\n(function (ClientCapabilities) {\n ClientCapabilities.LATEST = {\n textDocument: {\n completion: {\n completionItem: {\n documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText],\n commitCharactersSupport: true,\n labelDetailsSupport: true\n }\n }\n }\n };\n})(ClientCapabilities || (ClientCapabilities = {}));\n", "// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n", "// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n", "// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};", "__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))", "// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\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\n// !!!!!\n// SEE https://github.com/microsoft/vscode/blob/master/src/vs/base/common/platform.ts\n// !!!!!\n\ndeclare const process: { platform: 'win32' };\ndeclare const navigator: { userAgent: string };\n\nexport let isWindows: boolean;\n\nif (typeof process === 'object') {\n\tisWindows = process.platform === 'win32';\n} else if (typeof navigator === 'object') {\n\tlet userAgent = navigator.userAgent;\n\tisWindows = userAgent.indexOf('Windows') >= 0;\n}\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\nimport { CharCode } from './charCode'\nimport { isWindows } from './platform';\n\nconst _schemePattern = /^\\w[\\w\\d+.-]*$/;\nconst _singleSlashStart = /^\\//;\nconst _doubleSlashStart = /^\\/\\//;\n\nfunction _validateUri(ret: URI, _strict?: boolean): void {\n\n\t// scheme, must be set\n\tif (!ret.scheme && _strict) {\n\t\tthrow new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${ret.authority}\", path: \"${ret.path}\", query: \"${ret.query}\", fragment: \"${ret.fragment}\"}`);\n\t}\n\n\t// scheme, https://tools.ietf.org/html/rfc3986#section-3.1\n\t// ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n\tif (ret.scheme && !_schemePattern.test(ret.scheme)) {\n\t\tthrow new Error('[UriError]: Scheme contains illegal characters.');\n\t}\n\n\t// path, http://tools.ietf.org/html/rfc3986#section-3.3\n\t// If a URI contains an authority component, then the path component\n\t// must either be empty or begin with a slash (\"/\") character. If a URI\n\t// does not contain an authority component, then the path cannot begin\n\t// with two slash characters (\"//\").\n\tif (ret.path) {\n\t\tif (ret.authority) {\n\t\t\tif (!_singleSlashStart.test(ret.path)) {\n\t\t\t\tthrow new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\n\t\t\t}\n\t\t} else {\n\t\t\tif (_doubleSlashStart.test(ret.path)) {\n\t\t\t\tthrow new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\n\t\t\t}\n\t\t}\n\t}\n}\n\n// for a while we allowed uris *without* schemes and this is the migration\n// for them, e.g. an uri without scheme and without strict-mode warns and falls\n// back to the file-scheme. that should cause the least carnage and still be a\n// clear warning\nfunction _schemeFix(scheme: string, _strict: boolean): string {\n\tif (!scheme && !_strict) {\n\t\treturn 'file';\n\t}\n\treturn scheme;\n}\n\n// implements a bit of https://tools.ietf.org/html/rfc3986#section-5\nfunction _referenceResolution(scheme: string, path: string): string {\n\n\t// the slash-character is our 'default base' as we don't\n\t// support constructing URIs relative to other URIs. This\n\t// also means that we alter and potentially break paths.\n\t// see https://tools.ietf.org/html/rfc3986#section-5.1.4\n\tswitch (scheme) {\n\t\tcase 'https':\n\t\tcase 'http':\n\t\tcase 'file':\n\t\t\tif (!path) {\n\t\t\t\tpath = _slash;\n\t\t\t} else if (path[0] !== _slash) {\n\t\t\t\tpath = _slash + path;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn path;\n}\n\nconst _empty = '';\nconst _slash = '/';\nconst _regexp = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n\n/**\n * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.\n * This class is a simple parser which creates the basic component parts\n * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\n * and encoding.\n *\n * ```txt\n * foo://example.com:8042/over/there?name=ferret#nose\n * \\_/ \\______________/\\_________/ \\_________/ \\__/\n * | | | | |\n * scheme authority path query fragment\n * | _____________________|__\n * / \\ / \\\n * urn:example:animal:ferret:nose\n * ```\n */\nexport class URI implements UriComponents {\n\n\tstatic isUri(thing: any): thing is URI {\n\t\tif (thing instanceof URI) {\n\t\t\treturn true;\n\t\t}\n\t\tif (!thing) {\n\t\t\treturn false;\n\t\t}\n\t\treturn typeof (<URI>thing).authority === 'string'\n\t\t\t&& typeof (<URI>thing).fragment === 'string'\n\t\t\t&& typeof (<URI>thing).path === 'string'\n\t\t\t&& typeof (<URI>thing).query === 'string'\n\t\t\t&& typeof (<URI>thing).scheme === 'string'\n\t\t\t&& typeof (<URI>thing).fsPath === 'string'\n\t\t\t&& typeof (<URI>thing).with === 'function'\n\t\t\t&& typeof (<URI>thing).toString === 'function';\n\t}\n\n\t/**\n\t * scheme is the 'http' part of 'http://www.example.com/some/path?query#fragment'.\n\t * The part before the first colon.\n\t */\n\treadonly scheme: string;\n\n\t/**\n\t * authority is the 'www.example.com' part of 'http://www.example.com/some/path?query#fragment'.\n\t * The part between the first double slashes and the next slash.\n\t */\n\treadonly authority: string;\n\n\t/**\n\t * path is the '/some/path' part of 'http://www.example.com/some/path?query#fragment'.\n\t */\n\treadonly path: string;\n\n\t/**\n\t * query is the 'query' part of 'http://www.example.com/some/path?query#fragment'.\n\t */\n\treadonly query: string;\n\n\t/**\n\t * fragment is the 'fragment' part of 'http://www.example.com/some/path?query#fragment'.\n\t */\n\treadonly fragment: string;\n\n\t/**\n\t * @internal\n\t */\n\tprotected constructor(scheme: string, authority?: string, path?: string, query?: string, fragment?: string, _strict?: boolean);\n\n\t/**\n\t * @internal\n\t */\n\tprotected constructor(components: UriComponents);\n\n\t/**\n\t * @internal\n\t */\n\tprotected constructor(schemeOrData: string | UriComponents, authority?: string, path?: string, query?: string, fragment?: string, _strict: boolean = false) {\n\n\t\tif (typeof schemeOrData === 'object') {\n\t\t\tthis.scheme = schemeOrData.scheme || _empty;\n\t\t\tthis.authority = schemeOrData.authority || _empty;\n\t\t\tthis.path = schemeOrData.path || _empty;\n\t\t\tthis.query = schemeOrData.query || _empty;\n\t\t\tthis.fragment = schemeOrData.fragment || _empty;\n\t\t\t// no validation because it's this URI\n\t\t\t// that creates uri components.\n\t\t\t// _validateUri(this);\n\t\t} else {\n\t\t\tthis.scheme = _schemeFix(schemeOrData, _strict);\n\t\t\tthis.authority = authority || _empty;\n\t\t\tthis.path = _referenceResolution(this.scheme, path || _empty);\n\t\t\tthis.query = query || _empty;\n\t\t\tthis.fragment = fragment || _empty;\n\n\t\t\t_validateUri(this, _strict);\n\t\t}\n\t}\n\n\t// ---- filesystem path -----------------------\n\n\t/**\n\t * Returns a string representing the corresponding file system path of this URI.\n\t * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the\n\t * platform specific path separator.\n\t *\n\t * * Will *not* validate the path for invalid characters and semantics.\n\t * * Will *not* look at the scheme of this URI.\n\t * * The result shall *not* be used for display purposes but for accessing a file on disk.\n\t *\n\t *\n\t * The *difference* to `URI#path` is the use of the platform specific separator and the handling\n\t * of UNC paths. See the below sample of a file-uri with an authority (UNC path).\n\t *\n\t * ```ts\n\t\tconst u = URI.parse('file://server/c$/folder/file.txt')\n\t\tu.authority === 'server'\n\t\tu.path === '/shares/c$/file.txt'\n\t\tu.fsPath === '\\\\server\\c$\\folder\\file.txt'\n\t```\n\t *\n\t * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,\n\t * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working\n\t * with URIs that represent files on disk (`file` scheme).\n\t */\n\tget fsPath(): string {\n\t\t// if (this.scheme !== 'file') {\n\t\t// \tconsole.warn(`[UriError] calling fsPath with scheme ${this.scheme}`);\n\t\t// }\n\t\treturn uriToFsPath(this, false);\n\t}\n\n\t// ---- modify to new -------------------------\n\n\twith(change: { scheme?: string; authority?: string | null; path?: string | null; query?: string | null; fragment?: string | null }): URI {\n\n\t\tif (!change) {\n\t\t\treturn this;\n\t\t}\n\n\t\tlet { scheme, authority, path, query, fragment } = change;\n\t\tif (scheme === undefined) {\n\t\t\tscheme = this.scheme;\n\t\t} else if (scheme === null) {\n\t\t\tscheme = _empty;\n\t\t}\n\t\tif (authority === undefined) {\n\t\t\tauthority = this.authority;\n\t\t} else if (authority === null) {\n\t\t\tauthority = _empty;\n\t\t}\n\t\tif (path === undefined) {\n\t\t\tpath = this.path;\n\t\t} else if (path === null) {\n\t\t\tpath = _empty;\n\t\t}\n\t\tif (query === undefined) {\n\t\t\tquery = this.query;\n\t\t} else if (query === null) {\n\t\t\tquery = _empty;\n\t\t}\n\t\tif (fragment === undefined) {\n\t\t\tfragment = this.fragment;\n\t\t} else if (fragment === null) {\n\t\t\tfragment = _empty;\n\t\t}\n\n\t\tif (scheme === this.scheme\n\t\t\t&& authority === this.authority\n\t\t\t&& path === this.path\n\t\t\t&& query === this.query\n\t\t\t&& fragment === this.fragment) {\n\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new Uri(scheme, authority, path, query, fragment);\n\t}\n\n\t// ---- parse & validate ------------------------\n\n\t/**\n\t * Creates a new URI from a string, e.g. `http://www.example.com/some/path`,\n\t * `file:///usr/home`, or `scheme:with/path`.\n\t *\n\t * @param value A string which represents an URI (see `URI#toString`).\n\t */\n\tstatic parse(value: string, _strict: boolean = false): URI {\n\t\tconst match = _regexp.exec(value);\n\t\tif (!match) {\n\t\t\treturn new Uri(_empty, _empty, _empty, _empty, _empty);\n\t\t}\n\t\treturn new Uri(\n\t\t\tmatch[2] || _empty,\n\t\t\tpercentDecode(match[4] || _empty),\n\t\t\tpercentDecode(match[5] || _empty),\n\t\t\tpercentDecode(match[7] || _empty),\n\t\t\tpercentDecode(match[9] || _empty),\n\t\t\t_strict\n\t\t);\n\t}\n\n\t/**\n\t * Creates a new URI from a file system path, e.g. `c:\\my\\files`,\n\t * `/usr/home`, or `\\\\server\\share\\some\\path`.\n\t *\n\t * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument\n\t * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**\n\t * `URI.parse('file://' + path)` because the path might contain characters that are\n\t * interpreted (# and ?). See the following sample:\n\t * ```ts\n\tconst good = URI.file('/coding/c#/project1');\n\tgood.scheme === 'file';\n\tgood.path === '/coding/c#/project1';\n\tgood.fragment === '';\n\tconst bad = URI.parse('file://' + '/coding/c#/project1');\n\tbad.scheme === 'file';\n\tbad.path === '/coding/c'; // path is now broken\n\tbad.fragment === '/project1';\n\t```\n\t *\n\t * @param path A file system path (see `URI#fsPath`)\n\t */\n\tstatic file(path: string): URI {\n\n\t\tlet authority = _empty;\n\n\t\t// normalize to fwd-slashes on windows,\n\t\t// on other systems bwd-slashes are valid\n\t\t// filename character, eg /f\\oo/ba\\r.txt\n\t\tif (isWindows) {\n\t\t\tpath = path.replace(/\\\\/g, _slash);\n\t\t}\n\n\t\t// check for authority as used in UNC shares\n\t\t// or use the path as given\n\t\tif (path[0] === _slash && path[1] === _slash) {\n\t\t\tconst idx = path.indexOf(_slash, 2);\n\t\t\tif (idx === -1) {\n\t\t\t\tauthority = path.substring(2);\n\t\t\t\tpath = _slash;\n\t\t\t} else {\n\t\t\t\tauthority = path.substring(2, idx);\n\t\t\t\tpath = path.substring(idx) || _slash;\n\t\t\t}\n\t\t}\n\n\t\treturn new Uri('file', authority, path, _empty, _empty);\n\t}\n\n\tstatic from(components: { scheme: string; authority?: string; path?: string; query?: string; fragment?: string }): URI {\n\t\tconst result = new Uri(\n\t\t\tcomponents.scheme,\n\t\t\tcomponents.authority,\n\t\t\tcomponents.path,\n\t\t\tcomponents.query,\n\t\t\tcomponents.fragment,\n\t\t);\n\t\t_validateUri(result, true);\n\t\treturn result;\n\t}\n\n\t// ---- printing/externalize ---------------------------\n\n\t/**\n\t * Creates a string representation for this URI. It's guaranteed that calling\n\t * `URI.parse` with the result of this function creates an URI which is equal\n\t * to this URI.\n\t *\n\t * * The result shall *not* be used for display purposes but for externalization or transport.\n\t * * The result will be encoded using the percentage encoding and encoding happens mostly\n\t * ignore the scheme-specific encoding rules.\n\t *\n\t * @param skipEncoding Do not encode the result, default is `false`\n\t */\n\ttoString(skipEncoding: boolean = false): string {\n\t\treturn _asFormatted(this, skipEncoding);\n\t}\n\n\ttoJSON(): UriComponents {\n\t\treturn this;\n\t}\n\n\tstatic revive(data: UriComponents | URI): URI;\n\tstatic revive(data: UriComponents | URI | undefined): URI | undefined;\n\tstatic revive(data: UriComponents | URI | null): URI | null;\n\tstatic revive(data: UriComponents | URI | undefined | null): URI | undefined | null;\n\tstatic revive(data: UriComponents | URI | undefined | null): URI | undefined | null {\n\t\tif (!data) {\n\t\t\treturn <any>data;\n\t\t} else if (data instanceof URI) {\n\t\t\treturn data;\n\t\t} else {\n\t\t\tconst result = new Uri(data);\n\t\t\tresult._formatted = (<UriState>data).external;\n\t\t\tresult._fsPath = (<UriState>data)._sep === _pathSepMarker ? (<UriState>data).fsPath : null;\n\t\t\treturn result;\n\t\t}\n\t}\n}\n\nexport interface UriComponents {\n\tscheme: string;\n\tauthority: string;\n\tpath: string;\n\tquery: string;\n\tfragment: string;\n}\n\ninterface UriState extends UriComponents {\n\t$mid: number;\n\texternal: string;\n\tfsPath: string;\n\t_sep: 1 | undefined;\n}\n\nconst _pathSepMarker = isWindows ? 1 : undefined;\n\n// This class exists so that URI is compatible with vscode.Uri (API).\nclass Uri extends URI {\n\n\t_formatted: string | null = null;\n\t_fsPath: string | null = null;\n\n\toverride get fsPath(): string {\n\t\tif (!this._fsPath) {\n\t\t\tthis._fsPath = uriToFsPath(this, false);\n\t\t}\n\t\treturn this._fsPath;\n\t}\n\n\toverride toString(skipEncoding: boolean = false): string {\n\t\tif (!skipEncoding) {\n\t\t\tif (!this._formatted) {\n\t\t\t\tthis._formatted = _asFormatted(this, false);\n\t\t\t}\n\t\t\treturn this._formatted;\n\t\t} else {\n\t\t\t// we don't cache that\n\t\t\treturn _asFormatted(this, true);\n\t\t}\n\t}\n\n\toverride toJSON(): UriComponents {\n\t\tconst res = <UriState>{\n\t\t\t$mid: 1\n\t\t};\n\t\t// cached state\n\t\tif (this._fsPath) {\n\t\t\tres.fsPath = this._fsPath;\n\t\t\tres._sep = _pathSepMarker;\n\t\t}\n\t\tif (this._formatted) {\n\t\t\tres.external = this._formatted;\n\t\t}\n\t\t// uri components\n\t\tif (this.path) {\n\t\t\tres.path = this.path;\n\t\t}\n\t\tif (this.scheme) {\n\t\t\tres.scheme = this.scheme;\n\t\t}\n\t\tif (this.authority) {\n\t\t\tres.authority = this.authority;\n\t\t}\n\t\tif (this.query) {\n\t\t\tres.query = this.query;\n\t\t}\n\t\tif (this.fragment) {\n\t\t\tres.fragment = this.fragment;\n\t\t}\n\t\treturn res;\n\t}\n}\n\n// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2\nconst encodeTable: { [ch: number]: string } = {\n\t[CharCode.Colon]: '%3A', // gen-delims\n\t[CharCode.Slash]: '%2F',\n\t[CharCode.QuestionMark]: '%3F',\n\t[CharCode.Hash]: '%23',\n\t[CharCode.OpenSquareBracket]: '%5B',\n\t[CharCode.CloseSquareBracket]: '%5D',\n\t[CharCode.AtSign]: '%40',\n\n\t[CharCode.ExclamationMark]: '%21', // sub-delims\n\t[CharCode.DollarSign]: '%24',\n\t[CharCode.Ampersand]: '%26',\n\t[CharCode.SingleQuote]: '%27',\n\t[CharCode.OpenParen]: '%28',\n\t[CharCode.CloseParen]: '%29',\n\t[CharCode.Asterisk]: '%2A',\n\t[CharCode.Plus]: '%2B',\n\t[CharCode.Comma]: '%2C',\n\t[CharCode.Semicolon]: '%3B',\n\t[CharCode.Equals]: '%3D',\n\n\t[CharCode.Space]: '%20',\n};\n\nfunction encodeURIComponentFast(uriComponent: string, isPath: boolean, isAuthority: boolean): string {\n\tlet res: string | undefined = undefined;\n\tlet nativeEncodePos = -1;\n\n\tfor (let pos = 0; pos < uriComponent.length; pos++) {\n\t\tconst code = uriComponent.charCodeAt(pos);\n\n\t\t// unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3\n\t\tif (\n\t\t\t(code >= CharCode.a && code <= CharCode.z)\n\t\t\t|| (code >= CharCode.A && code <= CharCode.Z)\n\t\t\t|| (code >= CharCode.Digit0 && code <= CharCode.Digit9)\n\t\t\t|| code === CharCode.Dash\n\t\t\t|| code === CharCode.Period\n\t\t\t|| code === CharCode.Underline\n\t\t\t|| code === CharCode.Tilde\n\t\t\t|| (isPath && code === CharCode.Slash)\n\t\t\t|| (isAuthority && code === CharCode.OpenSquareBracket)\n\t\t\t|| (isAuthority && code === CharCode.CloseSquareBracket)\n\t\t\t|| (isAuthority && code === CharCode.Colon)\n\t\t) {\n\t\t\t// check if we are delaying native encode\n\t\t\tif (nativeEncodePos !== -1) {\n\t\t\t\tres += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n\t\t\t\tnativeEncodePos = -1;\n\t\t\t}\n\t\t\t// check if we write into a new string (by default we try to return the param)\n\t\t\tif (res !== undefined) {\n\t\t\t\tres += uriComponent.charAt(pos);\n\t\t\t}\n\n\t\t} else {\n\t\t\t// encoding needed, we need to allocate a new string\n\t\t\tif (res === undefined) {\n\t\t\t\tres = uriComponent.substr(0, pos);\n\t\t\t}\n\n\t\t\t// check with default table first\n\t\t\tconst escaped = encodeTable[code];\n\t\t\tif (escaped !== undefined) {\n\n\t\t\t\t// check if we are delaying native encode\n\t\t\t\tif (nativeEncodePos !== -1) {\n\t\t\t\t\tres += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n\t\t\t\t\tnativeEncodePos = -1;\n\t\t\t\t}\n\n\t\t\t\t// append escaped variant to result\n\t\t\t\tres += escaped;\n\n\t\t\t} else if (nativeEncodePos === -1) {\n\t\t\t\t// use native encode only when needed\n\t\t\t\tnativeEncodePos = pos;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (nativeEncodePos !== -1) {\n\t\tres += encodeURIComponent(uriComponent.substring(nativeEncodePos));\n\t}\n\n\treturn res !== undefined ? res : uriComponent;\n}\n\nfunction encodeURIComponentMinimal(path: string): string {\n\tlet res: string | undefined = undefined;\n\tfor (let pos = 0; pos < path.length; pos++) {\n\t\tconst code = path.charCodeAt(pos);\n\t\tif (code === CharCode.Hash || code === CharCode.QuestionMark) {\n\t\t\tif (res === undefined) {\n\t\t\t\tres = path.substr(0, pos);\n\t\t\t}\n\t\t\tres += encodeTable[code];\n\t\t} else {\n\t\t\tif (res !== undefined) {\n\t\t\t\tres += path[pos];\n\t\t\t}\n\t\t}\n\t}\n\treturn res !== undefined ? res : path;\n}\n\n/**\n * Compute `fsPath` for the given uri\n */\nexport function uriToFsPath(uri: URI, keepDriveLetterCasing: boolean): string {\n\n\tlet value: string;\n\tif (uri.authority && uri.path.length > 1 && uri.scheme === 'file') {\n\t\t// unc path: file://shares/c$/far/boo\n\t\tvalue = `//${uri.authority}${uri.path}`;\n\t} else if (\n\t\turi.path.charCodeAt(0) === CharCode.Slash\n\t\t&& (uri.path.charCodeAt(1) >= CharCode.A && uri.path.charCodeAt(1) <= CharCode.Z || uri.path.charCodeAt(1) >= CharCode.a && uri.path.charCodeAt(1) <= CharCode.z)\n\t\t&& uri.path.charCodeAt(2) === CharCode.Colon\n\t) {\n\t\tif (!keepDriveLetterCasing) {\n\t\t\t// windows drive letter: file:///c:/far/boo\n\t\t\tvalue = uri.path[1].toLowerCase() + uri.path.substr(2);\n\t\t} else {\n\t\t\tvalue = uri.path.substr(1);\n\t\t}\n\t} else {\n\t\t// other path\n\t\tvalue = uri.path;\n\t}\n\tif (isWindows) {\n\t\tvalue = value.replace(/\\//g, '\\\\');\n\t}\n\treturn value;\n}\n\n/**\n * Create the external version of a uri\n */\nfunction _asFormatted(uri: URI, skipEncoding: boolean): string {\n\n\tconst encoder = !skipEncoding\n\t\t? encodeURIComponentFast\n\t\t: encodeURIComponentMinimal;\n\n\tlet res = '';\n\tlet { scheme, authority, path, query, fragment } = uri;\n\tif (scheme) {\n\t\tres += scheme;\n\t\tres += ':';\n\t}\n\tif (authority || scheme === 'file') {\n\t\tres += _slash;\n\t\tres += _slash;\n\t}\n\tif (authority) {\n\t\tlet idx = authority.indexOf('@');\n\t\tif (idx !== -1) {\n\t\t\t// <user>@<auth>\n\t\t\tconst userinfo = authority.substr(0, idx);\n\t\t\tauthority = authority.substr(idx + 1);\n\t\t\tidx = userinfo.lastIndexOf(':');\n\t\t\tif (idx === -1) {\n\t\t\t\tres += encoder(userinfo, false, false);\n\t\t\t} else {\n\t\t\t\t// <user>:<pass>@<auth>\n\t\t\t\tres += encoder(userinfo.substr(0, idx), false, false);\n\t\t\t\tres += ':';\n\t\t\t\tres += encoder(userinfo.substr(idx + 1), false, true);\n\t\t\t}\n\t\t\tres += '@';\n\t\t}\n\t\tauthority = authority.toLowerCase();\n\t\tidx = authority.lastIndexOf(':');\n\t\tif (idx === -1) {\n\t\t\tres += encoder(authority, false, true);\n\t\t} else {\n\t\t\t// <auth>:<port>\n\t\t\tres += encoder(authority.substr(0, idx), false, true);\n\t\t\tres += authority.substr(idx);\n\t\t}\n\t}\n\tif (path) {\n\t\t// lower-case windows drive letters in /C:/fff or C:/fff\n\t\tif (path.length >= 3 && path.charCodeAt(0) === CharCode.Slash && path.charCodeAt(2) === CharCode.Colon) {\n\t\t\tconst code = path.charCodeAt(1);\n\t\t\tif (code >= CharCode.A && code <= CharCode.Z) {\n\t\t\t\tpath = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // \"/c:\".length === 3\n\t\t\t}\n\t\t} else if (path.length >= 2 && path.charCodeAt(1) === CharCode.Colon) {\n\t\t\tconst code = path.charCodeAt(0);\n\t\t\tif (code >= CharCode.A && code <= CharCode.Z) {\n\t\t\t\tpath = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // \"/c:\".length === 3\n\t\t\t}\n\t\t}\n\t\t// encode the rest of the path\n\t\tres += encoder(path, true, false);\n\t}\n\tif (query) {\n\t\tres += '?';\n\t\tres += encoder(query, false, false);\n\t}\n\tif (fragment) {\n\t\tres += '#';\n\t\tres += !skipEncoding ? encodeURIComponentFast(fragment, false, false) : fragment;\n\t}\n\treturn res;\n}\n\n// --- decode\n\nfunction decodeURIComponentGraceful(str: string): string {\n\ttry {\n\t\treturn decodeURIComponent(str);\n\t} catch {\n\t\tif (str.length > 3) {\n\t\t\treturn str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3));\n\t\t} else {\n\t\t\treturn str;\n\t\t}\n\t}\n}\n\nconst _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n\nfunction percentDecode(str: string): string {\n\tif (!str.match(_rEncodedAsHex)) {\n\t\treturn str;\n\t}\n\treturn str.replace(_rEncodedAsHex, (match) => decodeURIComponentGraceful(match));\n}\n\n/**\n * Mapped-type that replaces all occurrences of URI with UriComponents\n */\nexport type UriDto<T> = { [K in keyof T]: T[K] extends URI\n\t? UriComponents\n\t: UriDto<T[K]> };\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\n'use strict';\n\nimport { CharCode } from './charCode';\nimport { URI } from './uri';\nimport * as nodePath from 'path';\n\nconst posixPath = nodePath.posix || nodePath;\nconst slash = '/';\n\nexport namespace Utils {\n\n /**\n * Joins one or more input paths to the path of URI. \n * '/' is used as the directory separation character. \n * \n * The resolved path will be normalized. That means:\n * - all '..' and '.' segments are resolved.\n * - multiple, sequential occurences of '/' are replaced by a single instance of '/'.\n * - trailing separators are preserved.\n * \n * @param uri The input URI.\n * @param paths The paths to be joined with the path of URI.\n * @returns A URI with the joined path. All other properties of the URI (scheme, authority, query, fragments, ...) will be taken from the input URI.\n */\n export function joinPath(uri: URI, ...paths: string[]): URI {\n return uri.with({ path: posixPath.join(uri.path, ...paths) });\n }\n\n\n /**\n * Resolves one or more paths against the path of a URI. \n * '/' is used as the directory separation character. \n * \n * The resolved path will be normalized. That means:\n * - all '..' and '.' segments are resolved. \n * - multiple, sequential occurences of '/' are replaced by a single instance of '/'.\n * - trailing separators are removed.\n * \n * @param uri The input URI.\n * @param paths The paths to resolve against the path of URI.\n * @returns A URI with the resolved path. All other properties of the URI (scheme, authority, query, fragments, ...) will be taken from the input URI.\n */\n export function resolvePath(uri: URI, ...paths: string[]): URI {\n let path = uri.path; \n let slashAdded = false;\n if (path[0] !== slash) {\n path = slash + path; // make the path abstract: for posixPath.resolve the first segments has to be absolute or cwd is used.\n slashAdded = true;\n }\n let resolvedPath = posixPath.resolve(path, ...paths);\n if (slashAdded && resolvedPath[0] === slash && !uri.authority) {\n resolvedPath = resolvedPath.substring(1);\n }\n return uri.with({ path: resolvedPath });\n }\n\n /**\n * Returns a URI where the path is the directory name of the input uri, similar to the Unix dirname command. \n * In the path, '/' is recognized as the directory separation character. Trailing directory separators are ignored.\n * The orignal URI is returned if the URIs path is empty or does not contain any path segments.\n * \n * @param uri The input URI.\n * @return The last segment of the URIs path.\n */\n export function dirname(uri: URI): URI {\n if (uri.path.length === 0 || uri.path === slash) {\n return uri;\n }\n let path = posixPath.dirname(uri.path);\n if (path.length === 1 && path.charCodeAt(0) === CharCode.Period) {\n path = '';\n }\n return uri.with({ path });\n }\n\n /**\n * Returns the last segment of the path of a URI, similar to the Unix basename command. \n * In the path, '/' is recognized as the directory separation character. Trailing directory separators are ignored.\n * The empty string is returned if the URIs path is empty or does not contain any path segments.\n * \n * @param uri The input URI.\n * @return The base name of the URIs path.\n */\n export function basename(uri: URI): string {\n return posixPath.basename(uri.path);\n }\n\n /**\n * Returns the extension name of the path of a URI, similar to the Unix extname command. \n * In the path, '/' is recognized as the directory separation character. Trailing directory separators are ignored.\n * The empty string is returned if the URIs path is empty or does not contain any path segments.\n * \n * @param uri The input URI.\n * @return The extension name of the URIs path.\n */\n export function extname(uri: URI): string {\n return posixPath.extname(uri.path);\n }\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 *--------------------------------------------------------------------------------------------*/\nimport * as Json from 'jsonc-parser';\nimport { isNumber, equals, isBoolean, isString, isDefined, isObject } from '../utils/objects.js';\nimport { extendedRegExp, stringLength } from '../utils/strings.js';\nimport { ErrorCode, Diagnostic, DiagnosticSeverity, Range, SchemaDraft } from '../jsonLanguageTypes.js';\nimport { URI } from 'vscode-uri';\nimport * as l10n from '@vscode/l10n';\nconst formats = {\n 'color-hex': { errorMessage: l10n.t('Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.'), pattern: /^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/ },\n 'date-time': { errorMessage: l10n.t('String is not a RFC3339 date-time.'), pattern: /^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i },\n 'date': { errorMessage: l10n.t('String is not a RFC3339 date.'), pattern: /^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i },\n 'time': { errorMessage: l10n.t('String is not a RFC3339 time.'), pattern: /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i },\n 'email': { errorMessage: l10n.t('String is not an e-mail address.'), pattern: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}))$/ },\n 'hostname': { errorMessage: l10n.t('String is not a hostname.'), pattern: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i },\n 'ipv4': { errorMessage: l10n.t('String is not an IPv4 address.'), pattern: /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/ },\n 'ipv6': { errorMessage: l10n.t('String is not an IPv6 address.'), pattern: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i },\n};\nexport class ASTNodeImpl {\n constructor(parent, offset, length = 0) {\n this.offset = offset;\n this.length = length;\n this.parent = parent;\n }\n get children() {\n return [];\n }\n toString() {\n return 'type: ' + this.type + ' (' + this.offset + '/' + this.length + ')' + (this.parent ? ' parent: {' + this.parent.toString() + '}' : '');\n }\n}\nexport class NullASTNodeImpl extends ASTNodeImpl {\n constructor(parent, offset) {\n super(parent, offset);\n this.type = 'null';\n this.value = null;\n }\n}\nexport class BooleanASTNodeImpl extends ASTNodeImpl {\n constructor(parent, boolValue, offset) {\n super(parent, offset);\n this.type = 'boolean';\n this.value = boolValue;\n }\n}\nexport class ArrayASTNodeImpl extends ASTNodeImpl {\n constructor(parent, offset) {\n super(parent, offset);\n this.type = 'array';\n this.items = [];\n }\n get children() {\n return this.items;\n }\n}\nexport class NumberASTNodeImpl extends ASTNodeImpl {\n constructor(parent, offset) {\n super(parent, offset);\n this.type = 'number';\n this.isInteger = true;\n this.value = Number.NaN;\n }\n}\nexport class StringASTNodeImpl extends ASTNodeImpl {\n constructor(parent, offset, length) {\n super(parent, offset, length);\n this.type = 'string';\n this.value = '';\n }\n}\nexport class PropertyASTNodeImpl extends ASTNodeImpl {\n constructor(parent, offset, keyNode) {\n super(parent, offset);\n this.type = 'property';\n this.colonOffset = -1;\n this.keyNode = keyNode;\n }\n get children() {\n return this.valueNode ? [this.keyNode, this.valueNode] : [this.keyNode];\n }\n}\nexport class ObjectASTNodeImpl extends ASTNodeImpl {\n constructor(parent, offset) {\n super(parent, offset);\n this.type = 'object';\n this.properties = [];\n }\n get children() {\n return this.properties;\n }\n}\nexport function asSchema(schema) {\n if (isBoolean(schema)) {\n return schema ? {} : { \"not\": {} };\n }\n return schema;\n}\nexport var EnumMatch;\n(function (EnumMatch) {\n EnumMatch[EnumMatch[\"Key\"] = 0] = \"Key\";\n EnumMatch[EnumMatch[\"Enum\"] = 1] = \"Enum\";\n})(EnumMatch || (EnumMatch = {}));\nconst httpPrefix = `http://json-schema.org/`;\nconst httpsPrefix = `https://json-schema.org/`;\nexport function normalizeId(id) {\n // use the https prefix for the old json-schema.org meta schemas\n // See https://github.com/microsoft/vscode/issues/195189\n if (id.startsWith(httpPrefix)) {\n id = httpsPrefix + id.substring(httpPrefix.length);\n }\n // remove trailing '#', normalize drive capitalization\n try {\n return URI.parse(id).toString(true);\n }\n catch (e) {\n return id;\n }\n}\nexport function getSchemaDraftFromId(schemaId) {\n return schemaDraftFromId[normalizeId(schemaId)] ?? undefined;\n}\nconst schemaDraftFromId = {\n 'https://json-schema.org/draft-03/schema': SchemaDraft.v3,\n 'https://json-schema.org/draft-04/schema': SchemaDraft.v4,\n 'https://json-schema.org/draft-06/schema': SchemaDraft.v6,\n 'https://json-schema.org/draft-07/schema': SchemaDraft.v7,\n 'https://json-schema.org/draft/2019-09/schema': SchemaDraft.v2019_09,\n 'https://json-schema.org/draft/2020-12/schema': SchemaDraft.v2020_12\n};\nclass EvaluationContext {\n constructor(schemaDraft) {\n this.schemaDraft = schemaDraft;\n }\n}\nclass SchemaCollector {\n constructor(focusOffset = -1, exclude) {\n this.focusOffset = focusOffset;\n this.exclude = exclude;\n this.schemas = [];\n }\n add(schema) {\n this.schemas.push(schema);\n }\n merge(other) {\n Array.prototype.push.apply(this.schemas, other.schemas);\n }\n include(node) {\n return (this.focusOffset === -1 || contains(node, this.focusOffset)) && (node !== this.exclude);\n }\n newSub() {\n return new SchemaCollector(-1, this.exclude);\n }\n}\nclass NoOpSchemaCollector {\n constructor() { }\n get schemas() { return []; }\n add(_schema) { }\n merge(_other) { }\n include(_node) { return true; }\n newSub() { return this; }\n}\nNoOpSchemaCollector.instance = new NoOpSchemaCollector();\nexport class ValidationResult {\n constructor() {\n this.problems = [];\n this.propertiesMatches = 0;\n this.processedProperties = new Set();\n this.propertiesValueMatches = 0;\n this.primaryValueMatches = 0;\n this.enumValueMatch = false;\n this.enumValues = undefined;\n }\n hasProblems() {\n return !!this.problems.length;\n }\n merge(validationResult) {\n this.problems = this.problems.concat(validationResult.problems);\n this.propertiesMatches += validationResult.propertiesMatches;\n this.propertiesValueMatches += validationResult.propertiesValueMatches;\n this.mergeProcessedProperties(validationResult);\n }\n mergeEnumValues(validationResult) {\n if (!this.enumValueMatch && !validationResult.enumValueMatch && this.enumValues && validationResult.enumValues) {\n this.enumValues = this.enumValues.concat(validationResult.enumValues);\n }\n }\n updateEnumMismatchProblemMessages() {\n if (!this.enumValueMatch && this.enumValues) {\n for (const error of this.problems) {\n if (error.code === ErrorCode.EnumValueMismatch) {\n error.message = l10n.t('Value is not accepted. Valid values: {0}.', this.enumValues.map(v => JSON.stringify(v)).join(', '));\n }\n }\n }\n }\n mergePropertyMatch(propertyValidationResult) {\n this.problems = this.problems.concat(propertyValidationResult.problems);\n this.propertiesMatches++;\n if (propertyValidationResult.enumValueMatch || !propertyValidationResult.hasProblems() && propertyValidationResult.propertiesMatches) {\n this.propertiesValueMatches++;\n }\n if (propertyValidationResult.enumValueMatch && propertyValidationResult.enumValues && propertyValidationResult.enumValues.length === 1) {\n this.primaryValueMatches++;\n }\n }\n mergeProcessedProperties(validationResult) {\n validationResult.processedProperties.forEach(p => this.processedProperties.add(p));\n }\n compare(other) {\n const hasProblems = this.hasProblems();\n if (hasProblems !== other.hasProblems()) {\n return hasProblems ? -1 : 1;\n }\n if (this.enumValueMatch !== other.enumValueMatch) {\n return other.enumValueMatch ? -1 : 1;\n }\n if (this.primaryValueMatches !== other.primaryValueMatches) {\n return this.primaryValueMatches - other.primaryValueMatches;\n }\n if (this.propertiesValueMatches !== other.propertiesValueMatches) {\n return this.propertiesValueMatches - other.propertiesValueMatches;\n }\n return this.propertiesMatches - other.propertiesMatches;\n }\n}\nexport function newJSONDocument(root, diagnostics = [], comments = []) {\n return new JSONDocument(root, diagnostics, comments);\n}\nexport function getNodeValue(node) {\n return Json.getNodeValue(node);\n}\nexport function getNodePath(node) {\n return Json.getNodePath(node);\n}\nexport function contains(node, offset, includeRightBound = false) {\n return offset >= node.offset && offset < (node.offset + node.length) || includeRightBound && offset === (node.offset + node.length);\n}\nexport class JSONDocument {\n constructor(root, syntaxErrors = [], comments = []) {\n this.root = root;\n this.syntaxErrors = syntaxErrors;\n this.comments = comments;\n }\n getNodeFromOffset(offset, includeRightBound = false) {\n if (this.root) {\n return Json.findNodeAtOffset(this.root, offset, includeRightBound);\n }\n return undefined;\n }\n visit(visitor) {\n if (this.root) {\n const doVisit = (node) => {\n let ctn = visitor(node);\n const children = node.children;\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length && ctn; i++) {\n ctn = doVisit(children[i]);\n }\n }\n return ctn;\n };\n doVisit(this.root);\n }\n }\n validate(textDocument, schema, severity = DiagnosticSeverity.Warning, schemaDraft) {\n if (this.root && schema) {\n const validationResult = new ValidationResult();\n validate(this.root, schema, validationResult, NoOpSchemaCollector.instance, new EvaluationContext(schemaDraft ?? getSchemaDraft(schema)));\n return validationResult.problems.map(p => {\n const range = Range.create(textDocument.positionAt(p.location.offset), textDocument.positionAt(p.location.offset + p.location.length));\n return Diagnostic.create(range, p.message, p.severity ?? severity, p.code);\n });\n }\n return undefined;\n }\n getMatchingSchemas(schema, focusOffset = -1, exclude) {\n if (this.root && schema) {\n const matchingSchemas = new SchemaCollector(focusOffset, exclude);\n const schemaDraft = getSchemaDraft(schema);\n const context = new EvaluationContext(schemaDraft);\n validate(this.root, schema, new ValidationResult(), matchingSchemas, context);\n return matchingSchemas.schemas;\n }\n return [];\n }\n}\nfunction getSchemaDraft(schema, fallBack = SchemaDraft.v2020_12) {\n let schemaId = schema.$schema;\n if (schemaId) {\n return getSchemaDraftFromId(schemaId) ?? fallBack;\n }\n return fallBack;\n}\nfunction validate(n, schema, validationResult, matchingSchemas, context) {\n if (!n || !matchingSchemas.include(n)) {\n return;\n }\n if (n.type === 'property') {\n return validate(n.valueNode, schema, validationResult, matchingSchemas, context);\n }\n const node = n;\n _validateNode();\n switch (node.type) {\n case 'object':\n _validateObjectNode(node);\n break;\n case 'array':\n _validateArrayNode(node);\n break;\n case 'string':\n _validateStringNode(node);\n break;\n case 'number':\n _validateNumberNode(node);\n break;\n }\n matchingSchemas.add({ node: node, schema: schema });\n function _validateNode() {\n function matchesType(type) {\n return node.type === type || (type === 'integer' && node.type === 'number' && node.isInteger);\n }\n if (Array.isArray(schema.type)) {\n if (!schema.type.some(matchesType)) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.errorMessage || l10n.t('Incorrect type. Expected one of {0}.', schema.type.join(', '))\n });\n }\n }\n else if (schema.type) {\n if (!matchesType(schema.type)) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.errorMessage || l10n.t('Incorrect type. Expected \"{0}\".', schema.type)\n });\n }\n }\n if (Array.isArray(schema.allOf)) {\n for (const subSchemaRef of schema.allOf) {\n const subValidationResult = new ValidationResult();\n const subMatchingSchemas = matchingSchemas.newSub();\n validate(node, asSchema(subSchemaRef), subValidationResult, subMatchingSchemas, context);\n validationResult.merge(subValidationResult);\n matchingSchemas.merge(subMatchingSchemas);\n }\n }\n const notSchema = asSchema(schema.not);\n if (notSchema) {\n const subValidationResult = new ValidationResult();\n const subMatchingSchemas = matchingSchemas.newSub();\n validate(node, notSchema, subValidationResult, subMatchingSchemas, context);\n if (!subValidationResult.hasProblems()) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.errorMessage || l10n.t(\"Matches a schema that is not allowed.\")\n });\n }\n for (const ms of subMatchingSchemas.schemas) {\n ms.inverted = !ms.inverted;\n matchingSchemas.add(ms);\n }\n }\n const testAlternatives = (alternatives, maxOneMatch) => {\n const matches = [];\n const alternativesToTest = _tryDiscriminatorOptimization(alternatives) ?? alternatives;\n // remember the best match that is used for error messages\n let bestMatch = undefined;\n for (const subSchemaRef of alternativesToTest) {\n const subSchema = asSchema(subSchemaRef);\n const subValidationResult = new ValidationResult();\n const subMatchingSchemas = matchingSchemas.newSub();\n validate(node, subSchema, subValidationResult, subMatchingSchemas, context);\n if (!subValidationResult.hasProblems()) {\n matches.push(subSchema);\n }\n if (!bestMatch) {\n bestMatch = { schema: subSchema, validationResult: subValidationResult, matchingSchemas: subMatchingSchemas };\n }\n else {\n if (!maxOneMatch && !subValidationResult.hasProblems() && !bestMatch.validationResult.hasProblems()) {\n // no errors, both are equally good matches\n bestMatch.matchingSchemas.merge(subMatchingSchemas);\n bestMatch.validationResult.propertiesMatches += subValidationResult.propertiesMatches;\n bestMatch.validationResult.propertiesValueMatches += subValidationResult.propertiesValueMatches;\n bestMatch.validationResult.mergeProcessedProperties(subValidationResult);\n }\n else {\n const compareResult = subValidationResult.compare(bestMatch.validationResult);\n if (compareResult > 0) {\n // our node is the best matching so far\n bestMatch = { schema: subSchema, validationResult: subValidationResult, matchingSchemas: subMatchingSchemas };\n }\n else if (compareResult === 0) {\n // there's already a best matching but we are as good\n bestMatch.matchingSchemas.merge(subMatchingSchemas);\n bestMatch.validationResult.mergeEnumValues(subValidationResult);\n }\n }\n }\n }\n if (matches.length > 1 && maxOneMatch) {\n validationResult.problems.push({\n location: { offset: node.offset, length: 1 },\n message: l10n.t(\"Matches multiple schemas when only one must validate.\")\n });\n }\n if (bestMatch) {\n bestMatch.validationResult.updateEnumMismatchProblemMessages();\n validationResult.merge(bestMatch.validationResult);\n matchingSchemas.merge(bestMatch.matchingSchemas);\n }\n return matches.length;\n };\n if (Array.isArray(schema.anyOf)) {\n testAlternatives(schema.anyOf, false);\n }\n if (Array.isArray(schema.oneOf)) {\n testAlternatives(schema.oneOf, true);\n }\n const testBranch = (schema) => {\n const subValidationResult = new ValidationResult();\n const subMatchingSchemas = matchingSchemas.newSub();\n validate(node, asSchema(schema), subValidationResult, subMatchingSchemas, context);\n validationResult.merge(subValidationResult);\n matchingSchemas.merge(subMatchingSchemas);\n };\n const testCondition = (ifSchema, thenSchema, elseSchema) => {\n const subSchema = asSchema(ifSchema);\n const subValidationResult = new ValidationResult();\n const subMatchingSchemas = matchingSchemas.newSub();\n validate(node, subSchema, subValidationResult, subMatchingSchemas, context);\n matchingSchemas.merge(subMatchingSchemas);\n validationResult.mergeProcessedProperties(subValidationResult);\n if (!subValidationResult.hasProblems()) {\n if (thenSchema) {\n testBranch(thenSchema);\n }\n }\n else if (elseSchema) {\n testBranch(elseSchema);\n }\n };\n const ifSchema = asSchema(schema.if);\n if (ifSchema) {\n testCondition(ifSchema, asSchema(schema.then), asSchema(schema.else));\n }\n if (Array.isArray(schema.enum)) {\n const val = getNodeValue(node);\n let enumValueMatch = false;\n for (const e of schema.enum) {\n if (equals(val, e)) {\n enumValueMatch = true;\n break;\n }\n }\n validationResult.enumValues = schema.enum;\n validationResult.enumValueMatch = enumValueMatch;\n if (!enumValueMatch) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n code: ErrorCode.EnumValueMismatch,\n message: schema.errorMessage || l10n.t('Value is not accepted. Valid values: {0}.', schema.enum.map(v => JSON.stringify(v)).join(', '))\n });\n }\n }\n if (isDefined(schema.const)) {\n const val = getNodeValue(node);\n if (!equals(val, schema.const)) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n code: ErrorCode.EnumValueMismatch,\n message: schema.errorMessage || l10n.t('Value must be {0}.', JSON.stringify(schema.const))\n });\n validationResult.enumValueMatch = false;\n }\n else {\n validationResult.enumValueMatch = true;\n }\n validationResult.enumValues = [schema.const];\n }\n let deprecationMessage = schema.deprecationMessage;\n if (deprecationMessage || schema.deprecated) {\n deprecationMessage = deprecationMessage || l10n.t('Value is deprecated');\n let targetNode = node.parent?.type === 'property' ? node.parent : node;\n validationResult.problems.push({\n location: { offset: targetNode.offset, length: targetNode.length },\n severity: DiagnosticSeverity.Warning,\n message: deprecationMessage,\n code: ErrorCode.Deprecated\n });\n }\n }\n function _tryDiscriminatorOptimization(alternatives) {\n if (alternatives.length < 2) {\n return undefined;\n }\n const buildConstMap = (getSchemas) => {\n const constMap = new Map();\n for (let i = 0; i < alternatives.length; i++) {\n const schemas = getSchemas(asSchema(alternatives[i]), i);\n if (!schemas) {\n return undefined; // Early exit if any alternative can't be processed\n }\n schemas.forEach(([key, schema]) => {\n if (schema.const !== undefined) {\n if (!constMap.has(key)) {\n constMap.set(key, new Map());\n }\n const valueMap = constMap.get(key);\n if (!valueMap.has(schema.const)) {\n valueMap.set(schema.const, []);\n }\n valueMap.get(schema.const).push(i);\n }\n else if (schema.enum && Array.isArray(schema.enum)) {\n for (const enumValue of schema.enum) {\n if (!constMap.has(key)) {\n constMap.set(key, new Map());\n }\n const valueMap = constMap.get(key);\n if (!valueMap.has(enumValue)) {\n valueMap.set(enumValue, []);\n }\n valueMap.get(enumValue).push(i);\n }\n }\n });\n }\n return constMap;\n };\n const findDiscriminator = (constMap, getValue) => {\n for (const [key, valueMap] of constMap) {\n const coveredAlts = new Set();\n valueMap.forEach(indices => indices.forEach(idx => coveredAlts.add(idx)));\n if (coveredAlts.size === alternatives.length) {\n const discriminatorValue = getValue(key);\n const matchingIndices = valueMap.get(discriminatorValue);\n if (matchingIndices?.length) {\n return matchingIndices.map(idx => alternatives[idx]);\n }\n break; // Found valid discriminator but no match\n }\n }\n return undefined;\n };\n if (node.type === 'object' && node.properties?.length) {\n const constMap = buildConstMap((schema) => schema.properties ? Object.entries(schema.properties).map(([k, v]) => [k, asSchema(v)]) : undefined);\n if (constMap) {\n return findDiscriminator(constMap, (propName) => {\n const prop = node.properties.find(p => p.keyNode.value === propName);\n return prop?.valueNode?.type === 'string' ? prop.valueNode.value : undefined;\n });\n }\n }\n else if (node.type === 'array' && node.items?.length) {\n const constMap = buildConstMap((schema) => {\n const itemSchemas = schema.prefixItems || (Array.isArray(schema.items) ? schema.items : undefined);\n return itemSchemas ? itemSchemas.map((item, idx) => [idx, asSchema(item)]) : undefined;\n });\n if (constMap) {\n return findDiscriminator(constMap, (itemIndex) => {\n const item = node.items[itemIndex];\n return item?.type === 'string' ? item.value : undefined;\n });\n }\n }\n return undefined;\n }\n function _validateNumberNode(node) {\n const val = node.value;\n function normalizeFloats(float) {\n const parts = /^(-?\\d+)(?:\\.(\\d+))?(?:e([-+]\\d+))?$/.exec(float.toString());\n return parts && {\n value: Number(parts[1] + (parts[2] || '')),\n multiplier: (parts[2]?.length || 0) - (parseInt(parts[3]) || 0)\n };\n }\n ;\n if (isNumber(schema.multipleOf)) {\n let remainder = -1;\n if (Number.isInteger(schema.multipleOf)) {\n remainder = val % schema.multipleOf;\n }\n else {\n let normMultipleOf = normalizeFloats(schema.multipleOf);\n let normValue = normalizeFloats(val);\n if (normMultipleOf && normValue) {\n const multiplier = 10 ** Math.abs(normValue.multiplier - normMultipleOf.multiplier);\n if (normValue.multiplier < normMultipleOf.multiplier) {\n normValue.value *= multiplier;\n }\n else {\n normMultipleOf.value *= multiplier;\n }\n remainder = normValue.value % normMultipleOf.value;\n }\n }\n if (remainder !== 0) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Value is not divisible by {0}.', schema.multipleOf)\n });\n }\n }\n function getExclusiveLimit(limit, exclusive) {\n if (isNumber(exclusive)) {\n return exclusive;\n }\n if (isBoolean(exclusive) && exclusive) {\n return limit;\n }\n return undefined;\n }\n function getLimit(limit, exclusive) {\n if (!isBoolean(exclusive) || !exclusive) {\n return limit;\n }\n return undefined;\n }\n const exclusiveMinimum = getExclusiveLimit(schema.minimum, schema.exclusiveMinimum);\n if (isNumber(exclusiveMinimum) && val <= exclusiveMinimum) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Value is below the exclusive minimum of {0}.', exclusiveMinimum)\n });\n }\n const exclusiveMaximum = getExclusiveLimit(schema.maximum, schema.exclusiveMaximum);\n if (isNumber(exclusiveMaximum) && val >= exclusiveMaximum) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Value is above the exclusive maximum of {0}.', exclusiveMaximum)\n });\n }\n const minimum = getLimit(schema.minimum, schema.exclusiveMinimum);\n if (isNumber(minimum) && val < minimum) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Value is below the minimum of {0}.', minimum)\n });\n }\n const maximum = getLimit(schema.maximum, schema.exclusiveMaximum);\n if (isNumber(maximum) && val > maximum) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Value is above the maximum of {0}.', maximum)\n });\n }\n }\n function _validateStringNode(node) {\n if (isNumber(schema.minLength) && stringLength(node.value) < schema.minLength) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('String is shorter than the minimum length of {0}.', schema.minLength)\n });\n }\n if (isNumber(schema.maxLength) && stringLength(node.value) > schema.maxLength) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('String is longer than the maximum length of {0}.', schema.maxLength)\n });\n }\n if (isString(schema.pattern)) {\n const regex = extendedRegExp(schema.pattern);\n if (regex && !(regex.test(node.value))) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.patternErrorMessage || schema.errorMessage || l10n.t('String does not match the pattern of \"{0}\".', schema.pattern)\n });\n }\n }\n if (schema.format) {\n switch (schema.format) {\n case 'uri':\n case 'uri-reference':\n {\n let errorMessage;\n if (!node.value) {\n errorMessage = l10n.t('URI expected.');\n }\n else {\n const match = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/.exec(node.value);\n if (!match) {\n errorMessage = l10n.t('URI is expected.');\n }\n else if (!match[2] && schema.format === 'uri') {\n errorMessage = l10n.t('URI with a scheme is expected.');\n }\n }\n if (errorMessage) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.patternErrorMessage || schema.errorMessage || l10n.t('String is not a URI: {0}', errorMessage)\n });\n }\n }\n break;\n case 'color-hex':\n case 'date-time':\n case 'date':\n case 'time':\n case 'email':\n case 'hostname':\n case 'ipv4':\n case 'ipv6':\n const format = formats[schema.format];\n if (!node.value || !format.pattern.exec(node.value)) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.patternErrorMessage || schema.errorMessage || format.errorMessage\n });\n }\n default:\n }\n }\n }\n function _validateArrayNode(node) {\n let prefixItemsSchemas;\n let additionalItemSchema;\n if (context.schemaDraft >= SchemaDraft.v2020_12) {\n prefixItemsSchemas = schema.prefixItems;\n additionalItemSchema = !Array.isArray(schema.items) ? schema.items : undefined;\n }\n else {\n prefixItemsSchemas = Array.isArray(schema.items) ? schema.items : undefined;\n additionalItemSchema = !Array.isArray(schema.items) ? schema.items : schema.additionalItems;\n }\n let index = 0;\n if (prefixItemsSchemas !== undefined) {\n const max = Math.min(prefixItemsSchemas.length, node.items.length);\n for (; index < max; index++) {\n const subSchemaRef = prefixItemsSchemas[index];\n const subSchema = asSchema(subSchemaRef);\n const itemValidationResult = new ValidationResult();\n const item = node.items[index];\n if (item) {\n validate(item, subSchema, itemValidationResult, matchingSchemas, context);\n validationResult.mergePropertyMatch(itemValidationResult);\n }\n validationResult.processedProperties.add(String(index));\n }\n }\n if (additionalItemSchema !== undefined && index < node.items.length) {\n if (typeof additionalItemSchema === 'boolean') {\n if (additionalItemSchema === false) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Array has too many items according to schema. Expected {0} or fewer.', index)\n });\n }\n for (; index < node.items.length; index++) {\n validationResult.processedProperties.add(String(index));\n validationResult.propertiesValueMatches++;\n }\n }\n else {\n for (; index < node.items.length; index++) {\n const itemValidationResult = new ValidationResult();\n validate(node.items[index], additionalItemSchema, itemValidationResult, matchingSchemas, context);\n validationResult.mergePropertyMatch(itemValidationResult);\n validationResult.processedProperties.add(String(index));\n }\n }\n }\n const containsSchema = asSchema(schema.contains);\n if (containsSchema) {\n let containsCount = 0;\n for (let index = 0; index < node.items.length; index++) {\n const item = node.items[index];\n const itemValidationResult = new ValidationResult();\n validate(item, containsSchema, itemValidationResult, NoOpSchemaCollector.instance, context);\n if (!itemValidationResult.hasProblems()) {\n containsCount++;\n if (context.schemaDraft >= SchemaDraft.v2020_12) {\n validationResult.processedProperties.add(String(index));\n }\n }\n }\n if (containsCount === 0 && !isNumber(schema.minContains)) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.errorMessage || l10n.t('Array does not contain required item.')\n });\n }\n if (isNumber(schema.minContains) && containsCount < schema.minContains) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.errorMessage || l10n.t('Array has too few items that match the contains contraint. Expected {0} or more.', schema.minContains)\n });\n }\n if (isNumber(schema.maxContains) && containsCount > schema.maxContains) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.errorMessage || l10n.t('Array has too many items that match the contains contraint. Expected {0} or less.', schema.maxContains)\n });\n }\n }\n const unevaluatedItems = schema.unevaluatedItems;\n if (unevaluatedItems !== undefined) {\n for (let i = 0; i < node.items.length; i++) {\n if (!validationResult.processedProperties.has(String(i))) {\n if (unevaluatedItems === false) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Item does not match any validation rule from the array.')\n });\n }\n else {\n const itemValidationResult = new ValidationResult();\n validate(node.items[i], schema.unevaluatedItems, itemValidationResult, matchingSchemas, context);\n validationResult.mergePropertyMatch(itemValidationResult);\n }\n }\n validationResult.processedProperties.add(String(i));\n validationResult.propertiesValueMatches++;\n }\n }\n if (isNumber(schema.minItems) && node.items.length < schema.minItems) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Array has too few items. Expected {0} or more.', schema.minItems)\n });\n }\n if (isNumber(schema.maxItems) && node.items.length > schema.maxItems) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Array has too many items. Expected {0} or fewer.', schema.maxItems)\n });\n }\n if (schema.uniqueItems === true) {\n const values = getNodeValue(node);\n function hasDuplicates() {\n for (let i = 0; i < values.length - 1; i++) {\n const value = values[i];\n for (let j = i + 1; j < values.length; j++) {\n if (equals(value, values[j])) {\n return true;\n }\n }\n }\n return false;\n }\n if (hasDuplicates()) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Array has duplicate items.')\n });\n }\n }\n }\n function _validateObjectNode(node) {\n const seenKeys = Object.create(null);\n const unprocessedProperties = new Set();\n for (const propertyNode of node.properties) {\n const key = propertyNode.keyNode.value;\n seenKeys[key] = propertyNode.valueNode;\n unprocessedProperties.add(key);\n }\n if (Array.isArray(schema.required)) {\n for (const propertyName of schema.required) {\n if (!seenKeys[propertyName]) {\n const keyNode = node.parent && node.parent.type === 'property' && node.parent.keyNode;\n const location = keyNode ? { offset: keyNode.offset, length: keyNode.length } : { offset: node.offset, length: 1 };\n validationResult.problems.push({\n location: location,\n message: l10n.t('Missing property \"{0}\".', propertyName)\n });\n }\n }\n }\n const propertyProcessed = (prop) => {\n unprocessedProperties.delete(prop);\n validationResult.processedProperties.add(prop);\n };\n if (schema.properties) {\n for (const propertyName of Object.keys(schema.properties)) {\n propertyProcessed(propertyName);\n const propertySchema = schema.properties[propertyName];\n const child = seenKeys[propertyName];\n if (child) {\n if (isBoolean(propertySchema)) {\n if (!propertySchema) {\n const propertyNode = child.parent;\n validationResult.problems.push({\n location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n message: schema.errorMessage || l10n.t('Property {0} is not allowed.', propertyName)\n });\n }\n else {\n validationResult.propertiesMatches++;\n validationResult.propertiesValueMatches++;\n }\n }\n else {\n const propertyValidationResult = new ValidationResult();\n validate(child, propertySchema, propertyValidationResult, matchingSchemas, context);\n validationResult.mergePropertyMatch(propertyValidationResult);\n }\n }\n }\n }\n if (schema.patternProperties) {\n for (const propertyPattern of Object.keys(schema.patternProperties)) {\n const regex = extendedRegExp(propertyPattern);\n if (regex) {\n const processed = [];\n for (const propertyName of unprocessedProperties) {\n if (regex.test(propertyName)) {\n processed.push(propertyName);\n const child = seenKeys[propertyName];\n if (child) {\n const propertySchema = schema.patternProperties[propertyPattern];\n if (isBoolean(propertySchema)) {\n if (!propertySchema) {\n const propertyNode = child.parent;\n validationResult.problems.push({\n location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n message: schema.errorMessage || l10n.t('Property {0} is not allowed.', propertyName)\n });\n }\n else {\n validationResult.propertiesMatches++;\n validationResult.propertiesValueMatches++;\n }\n }\n else {\n const propertyValidationResult = new ValidationResult();\n validate(child, propertySchema, propertyValidationResult, matchingSchemas, context);\n validationResult.mergePropertyMatch(propertyValidationResult);\n }\n }\n }\n }\n processed.forEach(propertyProcessed);\n }\n }\n }\n const additionalProperties = schema.additionalProperties;\n if (additionalProperties !== undefined) {\n for (const propertyName of unprocessedProperties) {\n propertyProcessed(propertyName);\n const child = seenKeys[propertyName];\n if (child) {\n if (additionalProperties === false) {\n const propertyNode = child.parent;\n validationResult.problems.push({\n location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n message: schema.errorMessage || l10n.t('Property {0} is not allowed.', propertyName)\n });\n }\n else if (additionalProperties !== true) {\n const propertyValidationResult = new ValidationResult();\n validate(child, additionalProperties, propertyValidationResult, matchingSchemas, context);\n validationResult.mergePropertyMatch(propertyValidationResult);\n }\n }\n }\n }\n const unevaluatedProperties = schema.unevaluatedProperties;\n if (unevaluatedProperties !== undefined) {\n const processed = [];\n for (const propertyName of unprocessedProperties) {\n if (!validationResult.processedProperties.has(propertyName)) {\n processed.push(propertyName);\n const child = seenKeys[propertyName];\n if (child) {\n if (unevaluatedProperties === false) {\n const propertyNode = child.parent;\n validationResult.problems.push({\n location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n message: schema.errorMessage || l10n.t('Property {0} is not allowed.', propertyName)\n });\n }\n else if (unevaluatedProperties !== true) {\n const propertyValidationResult = new ValidationResult();\n validate(child, unevaluatedProperties, propertyValidationResult, matchingSchemas, context);\n validationResult.mergePropertyMatch(propertyValidationResult);\n }\n }\n }\n }\n processed.forEach(propertyProcessed);\n }\n if (isNumber(schema.maxProperties)) {\n if (node.properties.length > schema.maxProperties) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Object has more properties than limit of {0}.', schema.maxProperties)\n });\n }\n }\n if (isNumber(schema.minProperties)) {\n if (node.properties.length < schema.minProperties) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Object has fewer properties than the required number of {0}', schema.minProperties)\n });\n }\n }\n if (schema.dependentRequired) {\n for (const key in schema.dependentRequired) {\n const prop = seenKeys[key];\n const propertyDeps = schema.dependentRequired[key];\n if (prop && Array.isArray(propertyDeps)) {\n _validatePropertyDependencies(key, propertyDeps);\n }\n }\n }\n if (schema.dependentSchemas) {\n for (const key in schema.dependentSchemas) {\n const prop = seenKeys[key];\n const propertyDeps = schema.dependentSchemas[key];\n if (prop && isObject(propertyDeps)) {\n _validatePropertyDependencies(key, propertyDeps);\n }\n }\n }\n if (schema.dependencies) {\n for (const key in schema.dependencies) {\n const prop = seenKeys[key];\n if (prop) {\n _validatePropertyDependencies(key, schema.dependencies[key]);\n }\n }\n }\n const propertyNames = asSchema(schema.propertyNames);\n if (propertyNames) {\n for (const f of node.properties) {\n const key = f.keyNode;\n if (key) {\n validate(key, propertyNames, validationResult, matchingSchemas, context);\n }\n }\n }\n function _validatePropertyDependencies(key, propertyDep) {\n if (Array.isArray(propertyDep)) {\n for (const requiredProp of propertyDep) {\n if (!seenKeys[requiredProp]) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: l10n.t('Object is missing property {0} required by property {1}.', requiredProp, key)\n });\n }\n else {\n validationResult.propertiesValueMatches++;\n }\n }\n }\n else {\n const propertySchema = asSchema(propertyDep);\n if (propertySchema) {\n const propertyValidationResult = new ValidationResult();\n validate(node, propertySchema, propertyValidationResult, matchingSchemas, context);\n validationResult.mergePropertyMatch(propertyValidationResult);\n }\n }\n }\n }\n}\nexport function parse(textDocument, config) {\n const problems = [];\n let lastProblemOffset = -1;\n const text = textDocument.getText();\n const scanner = Json.createScanner(text, false);\n const commentRanges = config && config.collectComments ? [] : undefined;\n function _scanNext() {\n while (true) {\n const token = scanner.scan();\n _checkScanError();\n switch (token) {\n case 12 /* Json.SyntaxKind.LineCommentTrivia */:\n case 13 /* Json.SyntaxKind.BlockCommentTrivia */:\n if (Array.isArray(commentRanges)) {\n commentRanges.push(Range.create(textDocument.positionAt(scanner.getTokenOffset()), textDocument.positionAt(scanner.getTokenOffset() + scanner.getTokenLength())));\n }\n break;\n case 15 /* Json.SyntaxKind.Trivia */:\n case 14 /* Json.SyntaxKind.LineBreakTrivia */:\n break;\n default:\n return token;\n }\n }\n }\n function _accept(token) {\n if (scanner.getToken() === token) {\n _scanNext();\n return true;\n }\n return false;\n }\n function _errorAtRange(message, code, startOffset, endOffset, severity = DiagnosticSeverity.Error) {\n if (problems.length === 0 || startOffset !== lastProblemOffset) {\n const range = Range.create(textDocument.positionAt(startOffset), textDocument.positionAt(endOffset));\n problems.push(Diagnostic.create(range, message, severity, code, textDocument.languageId));\n lastProblemOffset = startOffset;\n }\n }\n function _error(message, code, node = undefined, skipUntilAfter = [], skipUntil = []) {\n let start = scanner.getTokenOffset();\n let end = scanner.getTokenOffset() + scanner.getTokenLength();\n if (start === end && start > 0) {\n start--;\n while (start > 0 && /\\s/.test(text.charAt(start))) {\n start--;\n }\n end = start + 1;\n }\n _errorAtRange(message, code, start, end);\n if (node) {\n _finalize(node, false);\n }\n if (skipUntilAfter.length + skipUntil.length > 0) {\n let token = scanner.getToken();\n while (token !== 17 /* Json.SyntaxKind.EOF */) {\n if (skipUntilAfter.indexOf(token) !== -1) {\n _scanNext();\n break;\n }\n else if (skipUntil.indexOf(token) !== -1) {\n break;\n }\n token = _scanNext();\n }\n }\n return node;\n }\n function _checkScanError() {\n switch (scanner.getTokenError()) {\n case 4 /* Json.ScanError.InvalidUnicode */:\n _error(l10n.t('Invalid unicode sequence in string.'), ErrorCode.InvalidUnicode);\n return true;\n case 5 /* Json.ScanError.InvalidEscapeCharacter */:\n _error(l10n.t('Invalid escape character in string.'), ErrorCode.InvalidEscapeCharacter);\n return true;\n case 3 /* Json.ScanError.UnexpectedEndOfNumber */:\n _error(l10n.t('Unexpected end of number.'), ErrorCode.UnexpectedEndOfNumber);\n return true;\n case 1 /* Json.ScanError.UnexpectedEndOfComment */:\n _error(l10n.t('Unexpected end of comment.'), ErrorCode.UnexpectedEndOfComment);\n return true;\n case 2 /* Json.ScanError.UnexpectedEndOfString */:\n _error(l10n.t('Unexpected end of string.'), ErrorCode.UnexpectedEndOfString);\n return true;\n case 6 /* Json.ScanError.InvalidCharacter */:\n _error(l10n.t('Invalid characters in string. Control characters must be escaped.'), ErrorCode.InvalidCharacter);\n return true;\n }\n return false;\n }\n function _finalize(node, scanNext) {\n node.length = scanner.getTokenOffset() + scanner.getTokenLength() - node.offset;\n if (scanNext) {\n _scanNext();\n }\n return node;\n }\n function _parseArray(parent) {\n if (scanner.getToken() !== 3 /* Json.SyntaxKind.OpenBracketToken */) {\n return undefined;\n }\n const node = new ArrayASTNodeImpl(parent, scanner.getTokenOffset());\n _scanNext(); // consume OpenBracketToken\n const count = 0;\n let needsComma = false;\n while (scanner.getToken() !== 4 /* Json.SyntaxKind.CloseBracketToken */ && scanner.getToken() !== 17 /* Json.SyntaxKind.EOF */) {\n if (scanner.getToken() === 5 /* Json.SyntaxKind.CommaToken */) {\n if (!needsComma) {\n _error(l10n.t('Value expected'), ErrorCode.ValueExpected);\n }\n const commaOffset = scanner.getTokenOffset();\n _scanNext(); // consume comma\n if (scanner.getToken() === 4 /* Json.SyntaxKind.CloseBracketToken */) {\n if (needsComma) {\n _errorAtRange(l10n.t('Trailing comma'), ErrorCode.TrailingComma, commaOffset, commaOffset + 1);\n }\n continue;\n }\n }\n else if (needsComma) {\n _error(l10n.t('Expected comma'), ErrorCode.CommaExpected);\n }\n const item = _parseValue(node);\n if (!item) {\n _error(l10n.t('Value expected'), ErrorCode.ValueExpected, undefined, [], [4 /* Json.SyntaxKind.CloseBracketToken */, 5 /* Json.SyntaxKind.CommaToken */]);\n }\n else {\n node.items.push(item);\n }\n needsComma = true;\n }\n if (scanner.getToken() !== 4 /* Json.SyntaxKind.CloseBracketToken */) {\n return _error(l10n.t('Expected comma or closing bracket'), ErrorCode.CommaOrCloseBacketExpected, node);\n }\n return _finalize(node, true);\n }\n const keyPlaceholder = new StringASTNodeImpl(undefined, 0, 0);\n function _parseProperty(parent, keysSeen) {\n const node = new PropertyASTNodeImpl(parent, scanner.getTokenOffset(), keyPlaceholder);\n let key = _parseString(node);\n if (!key) {\n if (scanner.getToken() === 16 /* Json.SyntaxKind.Unknown */) {\n // give a more helpful error message\n _error(l10n.t('Property keys must be doublequoted'), ErrorCode.PropertyKeysMustBeDoublequoted);\n const keyNode = new StringASTNodeImpl(node, scanner.getTokenOffset(), scanner.getTokenLength());\n keyNode.value = scanner.getTokenValue();\n key = keyNode;\n _scanNext(); // consume Unknown\n }\n else {\n return undefined;\n }\n }\n node.keyNode = key;\n // For JSON files that forbid code comments, there is a convention to use the key name \"//\" to add comments.\n // Multiple instances of \"//\" are okay.\n if (key.value !== \"//\") {\n const seen = keysSeen[key.value];\n if (seen) {\n _errorAtRange(l10n.t(\"Duplicate object key\"), ErrorCode.DuplicateKey, node.keyNode.offset, node.keyNode.offset + node.keyNode.length, DiagnosticSeverity.Warning);\n if (isObject(seen)) {\n _errorAtRange(l10n.t(\"Duplicate object key\"), ErrorCode.DuplicateKey, seen.keyNode.offset, seen.keyNode.offset + seen.keyNode.length, DiagnosticSeverity.Warning);\n }\n keysSeen[key.value] = true; // if the same key is duplicate again, avoid duplicate error reporting\n }\n else {\n keysSeen[key.value] = node;\n }\n }\n if (scanner.getToken() === 6 /* Json.SyntaxKind.ColonToken */) {\n node.colonOffset = scanner.getTokenOffset();\n _scanNext(); // consume ColonToken\n }\n else {\n _error(l10n.t('Colon expected'), ErrorCode.ColonExpected);\n if (scanner.getToken() === 10 /* Json.SyntaxKind.StringLiteral */ && textDocument.positionAt(key.offset + key.length).line < textDocument.positionAt(scanner.getTokenOffset()).line) {\n node.length = key.length;\n return node;\n }\n }\n const value = _parseValue(node);\n if (!value) {\n return _error(l10n.t('Value expected'), ErrorCode.ValueExpected, node, [], [2 /* Json.SyntaxKind.CloseBraceToken */, 5 /* Json.SyntaxKind.CommaToken */]);\n }\n node.valueNode = value;\n node.length = value.offset + value.length - node.offset;\n return node;\n }\n function _parseObject(parent) {\n if (scanner.getToken() !== 1 /* Json.SyntaxKind.OpenBraceToken */) {\n return undefined;\n }\n const node = new ObjectASTNodeImpl(parent, scanner.getTokenOffset());\n const keysSeen = Object.create(null);\n _scanNext(); // consume OpenBraceToken\n let needsComma = false;\n while (scanner.getToken() !== 2 /* Json.SyntaxKind.CloseBraceToken */ && scanner.getToken() !== 17 /* Json.SyntaxKind.EOF */) {\n if (scanner.getToken() === 5 /* Json.SyntaxKind.CommaToken */) {\n if (!needsComma) {\n _error(l10n.t('Property expected'), ErrorCode.PropertyExpected);\n }\n const commaOffset = scanner.getTokenOffset();\n _scanNext(); // consume comma\n if (scanner.getToken() === 2 /* Json.SyntaxKind.CloseBraceToken */) {\n if (needsComma) {\n _errorAtRange(l10n.t('Trailing comma'), ErrorCode.TrailingComma, commaOffset, commaOffset + 1);\n }\n continue;\n }\n }\n else if (needsComma) {\n _error(l10n.t('Expected comma'), ErrorCode.CommaExpected);\n }\n const property = _parseProperty(node, keysSeen);\n if (!property) {\n _error(l10n.t('Property expected'), ErrorCode.PropertyExpected, undefined, [], [2 /* Json.SyntaxKind.CloseBraceToken */, 5 /* Json.SyntaxKind.CommaToken */]);\n }\n else {\n node.properties.push(property);\n }\n needsComma = true;\n }\n if (scanner.getToken() !== 2 /* Json.SyntaxKind.CloseBraceToken */) {\n return _error(l10n.t('Expected comma or closing brace'), ErrorCode.CommaOrCloseBraceExpected, node);\n }\n return _finalize(node, true);\n }\n function _parseString(parent) {\n if (scanner.getToken() !== 10 /* Json.SyntaxKind.StringLiteral */) {\n return undefined;\n }\n const node = new StringASTNodeImpl(parent, scanner.getTokenOffset());\n node.value = scanner.getTokenValue();\n return _finalize(node, true);\n }\n function _parseNumber(parent) {\n if (scanner.getToken() !== 11 /* Json.SyntaxKind.NumericLiteral */) {\n return undefined;\n }\n const node = new NumberASTNodeImpl(parent, scanner.getTokenOffset());\n if (scanner.getTokenError() === 0 /* Json.ScanError.None */) {\n const tokenValue = scanner.getTokenValue();\n try {\n const numberValue = JSON.parse(tokenValue);\n if (!isNumber(numberValue)) {\n return _error(l10n.t('Invalid number format.'), ErrorCode.Undefined, node);\n }\n node.value = numberValue;\n }\n catch (e) {\n return _error(l10n.t('Invalid number format.'), ErrorCode.Undefined, node);\n }\n node.isInteger = tokenValue.indexOf('.') === -1;\n }\n return _finalize(node, true);\n }\n function _parseLiteral(parent) {\n let node;\n switch (scanner.getToken()) {\n case 7 /* Json.SyntaxKind.NullKeyword */:\n return _finalize(new NullASTNodeImpl(parent, scanner.getTokenOffset()), true);\n case 8 /* Json.SyntaxKind.TrueKeyword */:\n return _finalize(new BooleanASTNodeImpl(parent, true, scanner.getTokenOffset()), true);\n case 9 /* Json.SyntaxKind.FalseKeyword */:\n return _finalize(new BooleanASTNodeImpl(parent, false, scanner.getTokenOffset()), true);\n default:\n return undefined;\n }\n }\n function _parseValue(parent) {\n return _parseArray(parent) || _parseObject(parent) || _parseString(parent) || _parseNumber(parent) || _parseLiteral(parent);\n }\n let _root = undefined;\n const token = _scanNext();\n if (token !== 17 /* Json.SyntaxKind.EOF */) {\n _root = _parseValue(_root);\n if (!_root) {\n _error(l10n.t('Expected a JSON object, array or literal.'), ErrorCode.Undefined);\n }\n else if (scanner.getToken() !== 17 /* Json.SyntaxKind.EOF */) {\n _error(l10n.t('End of file expected.'), ErrorCode.Undefined);\n }\n }\n return new JSONDocument(_root, problems, commentRanges);\n}\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*--------------------------------------------------------------------------------------------*/\nexport function stringifyObject(obj, indent, stringifyLiteral) {\n if (obj !== null && typeof obj === 'object') {\n const newIndent = indent + '\\t';\n if (Array.isArray(obj)) {\n if (obj.length === 0) {\n return '[]';\n }\n let result = '[\\n';\n for (let i = 0; i < obj.length; i++) {\n result += newIndent + stringifyObject(obj[i], newIndent, stringifyLiteral);\n if (i < obj.length - 1) {\n result += ',';\n }\n result += '\\n';\n }\n result += indent + ']';\n return result;\n }\n else {\n const keys = Object.keys(obj);\n if (keys.length === 0) {\n return '{}';\n }\n let result = '{\\n';\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n result += newIndent + JSON.stringify(key) + ': ' + stringifyObject(obj[key], newIndent, stringifyLiteral);\n if (i < keys.length - 1) {\n result += ',';\n }\n result += '\\n';\n }\n result += indent + '}';\n return result;\n }\n }\n return stringifyLiteral(obj);\n}\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 *--------------------------------------------------------------------------------------------*/\nimport * as Parser from '../parser/jsonParser.js';\nimport * as Json from 'jsonc-parser';\nimport { stringifyObject } from '../utils/json.js';\nimport { endsWith, extendedRegExp } from '../utils/strings.js';\nimport { isDefined } from '../utils/objects.js';\nimport { CompletionItem, CompletionItemKind, Range, TextEdit, InsertTextFormat, MarkupKind } from '../jsonLanguageTypes.js';\nimport * as l10n from '@vscode/l10n';\nconst valueCommitCharacters = [',', '}', ']'];\nconst propertyCommitCharacters = [':'];\nexport class JSONCompletion {\n constructor(schemaService, contributions = [], promiseConstructor = Promise, clientCapabilities = {}) {\n this.schemaService = schemaService;\n this.contributions = contributions;\n this.promiseConstructor = promiseConstructor;\n this.clientCapabilities = clientCapabilities;\n }\n doResolve(item) {\n for (let i = this.contributions.length - 1; i >= 0; i--) {\n const resolveCompletion = this.contributions[i].resolveCompletion;\n if (resolveCompletion) {\n const resolver = resolveCompletion(item);\n if (resolver) {\n return resolver;\n }\n }\n }\n return this.promiseConstructor.resolve(item);\n }\n doComplete(document, position, doc) {\n const result = {\n items: [],\n isIncomplete: false\n };\n const text = document.getText();\n const offset = document.offsetAt(position);\n let node = doc.getNodeFromOffset(offset, true);\n if (this.isInComment(document, node ? node.offset : 0, offset)) {\n return Promise.resolve(result);\n }\n if (node && (offset === node.offset + node.length) && offset > 0) {\n const ch = text[offset - 1];\n if (node.type === 'object' && ch === '}' || node.type === 'array' && ch === ']') {\n // after ] or }\n node = node.parent;\n }\n }\n const currentWord = this.getCurrentWord(document, offset);\n let overwriteRange;\n if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) {\n overwriteRange = Range.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length));\n }\n else {\n let overwriteStart = offset - currentWord.length;\n if (overwriteStart > 0 && text[overwriteStart - 1] === '\"') {\n overwriteStart--;\n }\n overwriteRange = Range.create(document.positionAt(overwriteStart), position);\n }\n const supportsCommitCharacters = false; //this.doesSupportsCommitCharacters(); disabled for now, waiting for new API: https://github.com/microsoft/vscode/issues/42544\n const proposed = new Map();\n const collector = {\n add: (suggestion) => {\n let label = suggestion.label;\n const existing = proposed.get(label);\n if (!existing) {\n label = label.replace(/[\\n]/g, '\u21B5');\n if (label.length > 60) {\n const shortendedLabel = label.substr(0, 57).trim() + '...';\n if (!proposed.has(shortendedLabel)) {\n label = shortendedLabel;\n }\n }\n suggestion.textEdit = TextEdit.replace(overwriteRange, suggestion.insertText);\n if (supportsCommitCharacters) {\n suggestion.commitCharacters = suggestion.kind === CompletionItemKind.Property ? propertyCommitCharacters : valueCommitCharacters;\n }\n suggestion.label = label;\n proposed.set(label, suggestion);\n result.items.push(suggestion);\n }\n else {\n if (!existing.documentation) {\n existing.documentation = suggestion.documentation;\n }\n if (!existing.detail) {\n existing.detail = suggestion.detail;\n }\n if (!existing.labelDetails) {\n existing.labelDetails = suggestion.labelDetails;\n }\n }\n },\n setAsIncomplete: () => {\n result.isIncomplete = true;\n },\n error: (message) => {\n console.error(message);\n },\n getNumberOfProposals: () => {\n return result.items.length;\n }\n };\n return this.schemaService.getSchemaForResource(document.uri, doc).then((schema) => {\n const collectionPromises = [];\n let addValue = true;\n let currentKey = '';\n let currentProperty = undefined;\n if (node) {\n if (node.type === 'string') {\n const parent = node.parent;\n if (parent && parent.type === 'property' && parent.keyNode === node) {\n addValue = !parent.valueNode;\n currentProperty = parent;\n currentKey = text.substr(node.offset + 1, node.length - 2);\n if (parent) {\n node = parent.parent;\n }\n }\n }\n }\n // proposals for properties\n if (node && node.type === 'object') {\n // don't suggest keys when the cursor is just before the opening curly brace\n if (node.offset === offset) {\n return result;\n }\n // don't suggest properties that are already present\n const properties = node.properties;\n properties.forEach(p => {\n if (!currentProperty || currentProperty !== p) {\n proposed.set(p.keyNode.value, CompletionItem.create('__'));\n }\n });\n let separatorAfter = '';\n if (addValue) {\n separatorAfter = this.evaluateSeparatorAfter(document, document.offsetAt(overwriteRange.end));\n }\n if (schema) {\n // property proposals with schema\n this.getPropertyCompletions(schema, doc, node, addValue, separatorAfter, collector);\n }\n else {\n // property proposals without schema\n this.getSchemaLessPropertyCompletions(doc, node, currentKey, collector);\n }\n const location = Parser.getNodePath(node);\n this.contributions.forEach((contribution) => {\n const collectPromise = contribution.collectPropertyCompletions(document.uri, location, currentWord, addValue, separatorAfter === '', collector);\n if (collectPromise) {\n collectionPromises.push(collectPromise);\n }\n });\n if ((!schema && currentWord.length > 0 && text.charAt(offset - currentWord.length - 1) !== '\"')) {\n collector.add({\n kind: CompletionItemKind.Property,\n label: this.getLabelForValue(currentWord),\n insertText: this.getInsertTextForProperty(currentWord, undefined, false, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet, documentation: '',\n });\n collector.setAsIncomplete();\n }\n }\n // proposals for values\n const types = {};\n if (schema) {\n // value proposals with schema\n this.getValueCompletions(schema, doc, node, offset, document, collector, types);\n }\n else {\n // value proposals without schema\n this.getSchemaLessValueCompletions(doc, node, offset, document, collector);\n }\n if (this.contributions.length > 0) {\n this.getContributedValueCompletions(doc, node, offset, document, collector, collectionPromises);\n }\n return this.promiseConstructor.all(collectionPromises).then(() => {\n if (collector.getNumberOfProposals() === 0) {\n let offsetForSeparator = offset;\n if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) {\n offsetForSeparator = node.offset + node.length;\n }\n const separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator);\n this.addFillerValueCompletions(types, separatorAfter, collector);\n }\n return result;\n });\n });\n }\n getPropertyCompletions(schema, doc, node, addValue, separatorAfter, collector) {\n const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset);\n matchingSchemas.forEach((s) => {\n if (s.node === node && !s.inverted) {\n const schemaProperties = s.schema.properties;\n if (schemaProperties) {\n Object.keys(schemaProperties).forEach((key) => {\n const propertySchema = schemaProperties[key];\n if (typeof propertySchema === 'object' && !propertySchema.deprecationMessage && !propertySchema.doNotSuggest) {\n const proposal = {\n kind: CompletionItemKind.Property,\n label: key,\n insertText: this.getInsertTextForProperty(key, propertySchema, addValue, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n filterText: this.getFilterTextForValue(key),\n documentation: this.fromMarkup(propertySchema.markdownDescription) || propertySchema.description || ''\n };\n if (propertySchema.completionDetail !== undefined) {\n proposal.detail = propertySchema.completionDetail;\n }\n if (propertySchema.suggestSortText !== undefined) {\n proposal.sortText = propertySchema.suggestSortText;\n }\n if (proposal.insertText && endsWith(proposal.insertText, `$1${separatorAfter}`)) {\n proposal.command = {\n title: 'Suggest',\n command: 'editor.action.triggerSuggest'\n };\n }\n collector.add(proposal);\n }\n });\n }\n const schemaPropertyNames = s.schema.propertyNames;\n if (typeof schemaPropertyNames === 'object' && !schemaPropertyNames.deprecationMessage && !schemaPropertyNames.doNotSuggest) {\n const propertyNameCompletionItem = (name, documentation, detail, sortText) => {\n const proposal = {\n kind: CompletionItemKind.Property,\n label: name,\n insertText: this.getInsertTextForProperty(name, undefined, addValue, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n filterText: this.getFilterTextForValue(name),\n documentation: documentation || this.fromMarkup(schemaPropertyNames.markdownDescription) || schemaPropertyNames.description || '',\n sortText,\n detail\n };\n if (proposal.insertText && endsWith(proposal.insertText, `$1${separatorAfter}`)) {\n proposal.command = {\n title: 'Suggest',\n command: 'editor.action.triggerSuggest'\n };\n }\n collector.add(proposal);\n };\n if (schemaPropertyNames.enum) {\n for (let i = 0; i < schemaPropertyNames.enum.length; i++) {\n let enumDescription = undefined;\n if (schemaPropertyNames.markdownEnumDescriptions && i < schemaPropertyNames.markdownEnumDescriptions.length) {\n enumDescription = this.fromMarkup(schemaPropertyNames.markdownEnumDescriptions[i]);\n }\n else if (schemaPropertyNames.enumDescriptions && i < schemaPropertyNames.enumDescriptions.length) {\n enumDescription = schemaPropertyNames.enumDescriptions[i];\n }\n const enumSortText = schemaPropertyNames.enumSortTexts?.[i];\n const enumDetails = schemaPropertyNames.enumDetails?.[i];\n propertyNameCompletionItem(schemaPropertyNames.enum[i], enumDescription, enumDetails, enumSortText);\n }\n }\n if (schemaPropertyNames.examples) {\n for (let i = 0; i < schemaPropertyNames.examples.length; i++) {\n propertyNameCompletionItem(schemaPropertyNames.examples[i], undefined, undefined, undefined);\n }\n }\n if (schemaPropertyNames.const) {\n propertyNameCompletionItem(schemaPropertyNames.const, undefined, schemaPropertyNames.completionDetail, schemaPropertyNames.suggestSortText);\n }\n }\n }\n });\n }\n getSchemaLessPropertyCompletions(doc, node, currentKey, collector) {\n const collectCompletionsForSimilarObject = (obj) => {\n obj.properties.forEach((p) => {\n const key = p.keyNode.value;\n collector.add({\n kind: CompletionItemKind.Property,\n label: key,\n insertText: this.getInsertTextForValue(key, ''),\n insertTextFormat: InsertTextFormat.Snippet,\n filterText: this.getFilterTextForValue(key),\n documentation: ''\n });\n });\n };\n if (node.parent) {\n if (node.parent.type === 'property') {\n // if the object is a property value, check the tree for other objects that hang under a property of the same name\n const parentKey = node.parent.keyNode.value;\n doc.visit(n => {\n if (n.type === 'property' && n !== node.parent && n.keyNode.value === parentKey && n.valueNode && n.valueNode.type === 'object') {\n collectCompletionsForSimilarObject(n.valueNode);\n }\n return true;\n });\n }\n else if (node.parent.type === 'array') {\n // if the object is in an array, use all other array elements as similar objects\n node.parent.items.forEach(n => {\n if (n.type === 'object' && n !== node) {\n collectCompletionsForSimilarObject(n);\n }\n });\n }\n }\n else if (node.type === 'object') {\n collector.add({\n kind: CompletionItemKind.Property,\n label: '$schema',\n insertText: this.getInsertTextForProperty('$schema', undefined, true, ''),\n insertTextFormat: InsertTextFormat.Snippet, documentation: '',\n filterText: this.getFilterTextForValue(\"$schema\")\n });\n }\n }\n getSchemaLessValueCompletions(doc, node, offset, document, collector) {\n let offsetForSeparator = offset;\n if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) {\n offsetForSeparator = node.offset + node.length;\n node = node.parent;\n }\n if (!node) {\n collector.add({\n kind: this.getSuggestionKind('object'),\n label: 'Empty object',\n insertText: this.getInsertTextForValue({}, ''),\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: ''\n });\n collector.add({\n kind: this.getSuggestionKind('array'),\n label: 'Empty array',\n insertText: this.getInsertTextForValue([], ''),\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: ''\n });\n return;\n }\n const separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator);\n const collectSuggestionsForValues = (value) => {\n if (value.parent && !Parser.contains(value.parent, offset, true)) {\n collector.add({\n kind: this.getSuggestionKind(value.type),\n label: this.getLabelTextForMatchingNode(value, document),\n insertText: this.getInsertTextForMatchingNode(value, document, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet, documentation: ''\n });\n }\n if (value.type === 'boolean') {\n this.addBooleanValueCompletion(!value.value, separatorAfter, collector);\n }\n };\n if (node.type === 'property') {\n if (offset > (node.colonOffset || 0)) {\n const valueNode = node.valueNode;\n if (valueNode && (offset > (valueNode.offset + valueNode.length) || valueNode.type === 'object' || valueNode.type === 'array')) {\n return;\n }\n // suggest values at the same key\n const parentKey = node.keyNode.value;\n doc.visit(n => {\n if (n.type === 'property' && n.keyNode.value === parentKey && n.valueNode) {\n collectSuggestionsForValues(n.valueNode);\n }\n return true;\n });\n if (parentKey === '$schema' && node.parent && !node.parent.parent) {\n this.addDollarSchemaCompletions(separatorAfter, collector);\n }\n }\n }\n if (node.type === 'array') {\n if (node.parent && node.parent.type === 'property') {\n // suggest items of an array at the same key\n const parentKey = node.parent.keyNode.value;\n doc.visit((n) => {\n if (n.type === 'property' && n.keyNode.value === parentKey && n.valueNode && n.valueNode.type === 'array') {\n n.valueNode.items.forEach(collectSuggestionsForValues);\n }\n return true;\n });\n }\n else {\n // suggest items in the same array\n node.items.forEach(collectSuggestionsForValues);\n }\n }\n }\n getValueCompletions(schema, doc, node, offset, document, collector, types) {\n let offsetForSeparator = offset;\n let parentKey = undefined;\n let valueNode = undefined;\n if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) {\n offsetForSeparator = node.offset + node.length;\n valueNode = node;\n node = node.parent;\n }\n if (!node) {\n this.addSchemaValueCompletions(schema.schema, '', collector, types);\n return;\n }\n if ((node.type === 'property') && offset > (node.colonOffset || 0)) {\n const valueNode = node.valueNode;\n if (valueNode && offset > (valueNode.offset + valueNode.length)) {\n return; // we are past the value node\n }\n parentKey = node.keyNode.value;\n node = node.parent;\n }\n if (node && (parentKey !== undefined || node.type === 'array')) {\n const separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator);\n const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset, valueNode);\n for (const s of matchingSchemas) {\n if (s.node === node && !s.inverted && s.schema) {\n if (node.type === 'array' && s.schema.items) {\n let c = collector;\n if (s.schema.uniqueItems) {\n const existingValues = new Set();\n node.children.forEach(n => {\n if (n.type !== 'array' && n.type !== 'object') {\n existingValues.add(this.getLabelForValue(Parser.getNodeValue(n)));\n }\n });\n c = {\n ...collector,\n add(suggestion) {\n if (!existingValues.has(suggestion.label)) {\n collector.add(suggestion);\n }\n }\n };\n }\n if (Array.isArray(s.schema.items)) {\n const index = this.findItemAtOffset(node, document, offset);\n if (index < s.schema.items.length) {\n this.addSchemaValueCompletions(s.schema.items[index], separatorAfter, c, types);\n }\n }\n else {\n this.addSchemaValueCompletions(s.schema.items, separatorAfter, c, types);\n }\n }\n if (parentKey !== undefined) {\n let propertyMatched = false;\n if (s.schema.properties) {\n const propertySchema = s.schema.properties[parentKey];\n if (propertySchema) {\n propertyMatched = true;\n this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types);\n }\n }\n if (s.schema.patternProperties && !propertyMatched) {\n for (const pattern of Object.keys(s.schema.patternProperties)) {\n const regex = extendedRegExp(pattern);\n if (regex?.test(parentKey)) {\n propertyMatched = true;\n const propertySchema = s.schema.patternProperties[pattern];\n this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types);\n }\n }\n }\n if (s.schema.additionalProperties && !propertyMatched) {\n const propertySchema = s.schema.additionalProperties;\n this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types);\n }\n }\n }\n }\n if (parentKey === '$schema' && !node.parent) {\n this.addDollarSchemaCompletions(separatorAfter, collector);\n }\n if (types['boolean']) {\n this.addBooleanValueCompletion(true, separatorAfter, collector);\n this.addBooleanValueCompletion(false, separatorAfter, collector);\n }\n if (types['null']) {\n this.addNullValueCompletion(separatorAfter, collector);\n }\n }\n }\n getContributedValueCompletions(doc, node, offset, document, collector, collectionPromises) {\n if (!node) {\n this.contributions.forEach((contribution) => {\n const collectPromise = contribution.collectDefaultCompletions(document.uri, collector);\n if (collectPromise) {\n collectionPromises.push(collectPromise);\n }\n });\n }\n else {\n if (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null') {\n node = node.parent;\n }\n if (node && (node.type === 'property') && offset > (node.colonOffset || 0)) {\n const parentKey = node.keyNode.value;\n const valueNode = node.valueNode;\n if ((!valueNode || offset <= (valueNode.offset + valueNode.length)) && node.parent) {\n const location = Parser.getNodePath(node.parent);\n this.contributions.forEach((contribution) => {\n const collectPromise = contribution.collectValueCompletions(document.uri, location, parentKey, collector);\n if (collectPromise) {\n collectionPromises.push(collectPromise);\n }\n });\n }\n }\n }\n }\n addSchemaValueCompletions(schema, separatorAfter, collector, types) {\n if (typeof schema === 'object') {\n this.addEnumValueCompletions(schema, separatorAfter, collector);\n this.addDefaultValueCompletions(schema, separatorAfter, collector);\n this.collectTypes(schema, types);\n if (Array.isArray(schema.allOf)) {\n schema.allOf.forEach(s => this.addSchemaValueCompletions(s, separatorAfter, collector, types));\n }\n if (Array.isArray(schema.anyOf)) {\n schema.anyOf.forEach(s => this.addSchemaValueCompletions(s, separatorAfter, collector, types));\n }\n if (Array.isArray(schema.oneOf)) {\n schema.oneOf.forEach(s => this.addSchemaValueCompletions(s, separatorAfter, collector, types));\n }\n }\n }\n addDefaultValueCompletions(schema, separatorAfter, collector, arrayDepth = 0) {\n let hasProposals = false;\n if (isDefined(schema.default)) {\n let type = schema.type;\n let value = schema.default;\n for (let i = arrayDepth; i > 0; i--) {\n value = [value];\n type = 'array';\n }\n const completionItem = {\n kind: this.getSuggestionKind(type),\n label: this.getLabelForValue(value),\n insertText: this.getInsertTextForValue(value, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet\n };\n if (this.doesSupportsLabelDetails()) {\n completionItem.labelDetails = { description: l10n.t('Default value') };\n }\n else {\n completionItem.detail = l10n.t('Default value');\n }\n collector.add(completionItem);\n hasProposals = true;\n }\n if (Array.isArray(schema.examples)) {\n schema.examples.forEach(example => {\n let type = schema.type;\n let value = example;\n for (let i = arrayDepth; i > 0; i--) {\n value = [value];\n type = 'array';\n }\n collector.add({\n kind: this.getSuggestionKind(type),\n label: this.getLabelForValue(value),\n insertText: this.getInsertTextForValue(value, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet\n });\n hasProposals = true;\n });\n }\n if (Array.isArray(schema.defaultSnippets)) {\n schema.defaultSnippets.forEach(s => {\n let type = schema.type;\n let value = s.body;\n let label = s.label;\n let insertText;\n let filterText;\n if (isDefined(value)) {\n let type = schema.type;\n for (let i = arrayDepth; i > 0; i--) {\n value = [value];\n type = 'array';\n }\n insertText = this.getInsertTextForSnippetValue(value, separatorAfter);\n filterText = this.getFilterTextForSnippetValue(value);\n label = label || this.getLabelForSnippetValue(value);\n }\n else if (typeof s.bodyText === 'string') {\n let prefix = '', suffix = '', indent = '';\n for (let i = arrayDepth; i > 0; i--) {\n prefix = prefix + indent + '[\\n';\n suffix = suffix + '\\n' + indent + ']';\n indent += '\\t';\n type = 'array';\n }\n insertText = prefix + indent + s.bodyText.split('\\n').join('\\n' + indent) + suffix + separatorAfter;\n label = label || insertText,\n filterText = insertText.replace(/[\\n]/g, ''); // remove new lines\n }\n else {\n return;\n }\n collector.add({\n kind: this.getSuggestionKind(type),\n label,\n documentation: this.fromMarkup(s.markdownDescription) || s.description,\n insertText,\n insertTextFormat: InsertTextFormat.Snippet,\n filterText\n });\n hasProposals = true;\n });\n }\n if (!hasProposals && typeof schema.items === 'object' && !Array.isArray(schema.items) && arrayDepth < 5 /* beware of recursion */) {\n this.addDefaultValueCompletions(schema.items, separatorAfter, collector, arrayDepth + 1);\n }\n }\n addEnumValueCompletions(schema, separatorAfter, collector) {\n if (isDefined(schema.const)) {\n collector.add({\n kind: this.getSuggestionKind(schema.type),\n label: this.getLabelForValue(schema.const),\n insertText: this.getInsertTextForValue(schema.const, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: this.fromMarkup(schema.markdownDescription) || schema.description\n });\n }\n if (Array.isArray(schema.enum)) {\n for (let i = 0, length = schema.enum.length; i < length; i++) {\n const enm = schema.enum[i];\n let documentation = this.fromMarkup(schema.markdownDescription) || schema.description;\n if (schema.markdownEnumDescriptions && i < schema.markdownEnumDescriptions.length && this.doesSupportMarkdown()) {\n documentation = this.fromMarkup(schema.markdownEnumDescriptions[i]);\n }\n else if (schema.enumDescriptions && i < schema.enumDescriptions.length) {\n documentation = schema.enumDescriptions[i];\n }\n collector.add({\n kind: this.getSuggestionKind(schema.type),\n label: this.getLabelForValue(enm),\n insertText: this.getInsertTextForValue(enm, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n sortText: schema.enumSortTexts?.[i],\n detail: schema.enumDetails?.[i],\n documentation\n });\n }\n }\n }\n collectTypes(schema, types) {\n if (Array.isArray(schema.enum) || isDefined(schema.const)) {\n return;\n }\n const type = schema.type;\n if (Array.isArray(type)) {\n type.forEach(t => types[t] = true);\n }\n else if (type) {\n types[type] = true;\n }\n }\n addFillerValueCompletions(types, separatorAfter, collector) {\n if (types['object']) {\n collector.add({\n kind: this.getSuggestionKind('object'),\n label: '{}',\n insertText: this.getInsertTextForGuessedValue({}, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n detail: l10n.t('New object'),\n documentation: ''\n });\n }\n if (types['array']) {\n collector.add({\n kind: this.getSuggestionKind('array'),\n label: '[]',\n insertText: this.getInsertTextForGuessedValue([], separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n detail: l10n.t('New array'),\n documentation: ''\n });\n }\n }\n addBooleanValueCompletion(value, separatorAfter, collector) {\n collector.add({\n kind: this.getSuggestionKind('boolean'),\n label: value ? 'true' : 'false',\n insertText: this.getInsertTextForValue(value, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: ''\n });\n }\n addNullValueCompletion(separatorAfter, collector) {\n collector.add({\n kind: this.getSuggestionKind('null'),\n label: 'null',\n insertText: 'null' + separatorAfter,\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: ''\n });\n }\n addDollarSchemaCompletions(separatorAfter, collector) {\n const schemaIds = this.schemaService.getRegisteredSchemaIds(schema => schema === 'http' || schema === 'https');\n schemaIds.forEach(schemaId => {\n if (schemaId.startsWith('https://json-schema.org/draft-')) {\n schemaId = schemaId + '#';\n }\n collector.add({\n kind: CompletionItemKind.Module,\n label: this.getLabelForValue(schemaId),\n filterText: this.getFilterTextForValue(schemaId),\n insertText: this.getInsertTextForValue(schemaId, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet, documentation: ''\n });\n });\n }\n getLabelForValue(value) {\n return JSON.stringify(value);\n }\n getValueFromLabel(value) {\n return JSON.parse(value);\n }\n getFilterTextForValue(value) {\n return JSON.stringify(value);\n }\n getFilterTextForSnippetValue(value) {\n return JSON.stringify(value).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g, '$1');\n }\n getLabelForSnippetValue(value) {\n const label = JSON.stringify(value);\n return label.replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g, '$1');\n }\n getInsertTextForPlainText(text) {\n return text.replace(/[\\\\\\$\\}]/g, '\\\\$&'); // escape $, \\ and }\n }\n getInsertTextForValue(value, separatorAfter) {\n const text = JSON.stringify(value, null, '\\t');\n if (text === '{}') {\n return '{$1}' + separatorAfter;\n }\n else if (text === '[]') {\n return '[$1]' + separatorAfter;\n }\n return this.getInsertTextForPlainText(text + separatorAfter);\n }\n getInsertTextForSnippetValue(value, separatorAfter) {\n const replacer = (value) => {\n if (typeof value === 'string') {\n if (value[0] === '^') {\n return value.substr(1);\n }\n }\n return JSON.stringify(value);\n };\n return stringifyObject(value, '', replacer) + separatorAfter;\n }\n getInsertTextForGuessedValue(value, separatorAfter) {\n switch (typeof value) {\n case 'object':\n if (value === null) {\n return '${1:null}' + separatorAfter;\n }\n return this.getInsertTextForValue(value, separatorAfter);\n case 'string':\n let snippetValue = JSON.stringify(value);\n snippetValue = snippetValue.substr(1, snippetValue.length - 2); // remove quotes\n snippetValue = this.getInsertTextForPlainText(snippetValue); // escape \\ and }\n return '\"${1:' + snippetValue + '}\"' + separatorAfter;\n case 'number':\n case 'boolean':\n return '${1:' + JSON.stringify(value) + '}' + separatorAfter;\n }\n return this.getInsertTextForValue(value, separatorAfter);\n }\n getSuggestionKind(type) {\n if (Array.isArray(type)) {\n const array = type;\n type = array.length > 0 ? array[0] : undefined;\n }\n if (!type) {\n return CompletionItemKind.Value;\n }\n switch (type) {\n case 'string': return CompletionItemKind.Value;\n case 'object': return CompletionItemKind.Module;\n case 'property': return CompletionItemKind.Property;\n default: return CompletionItemKind.Value;\n }\n }\n getLabelTextForMatchingNode(node, document) {\n switch (node.type) {\n case 'array':\n return '[]';\n case 'object':\n return '{}';\n default:\n const content = document.getText().substr(node.offset, node.length);\n return content;\n }\n }\n getInsertTextForMatchingNode(node, document, separatorAfter) {\n switch (node.type) {\n case 'array':\n return this.getInsertTextForValue([], separatorAfter);\n case 'object':\n return this.getInsertTextForValue({}, separatorAfter);\n default:\n const content = document.getText().substr(node.offset, node.length) + separatorAfter;\n return this.getInsertTextForPlainText(content);\n }\n }\n getInsertTextForProperty(key, propertySchema, addValue, separatorAfter) {\n const propertyText = this.getInsertTextForValue(key, '');\n if (!addValue) {\n return propertyText;\n }\n const resultText = propertyText + ': ';\n let value;\n let nValueProposals = 0;\n if (propertySchema) {\n if (Array.isArray(propertySchema.defaultSnippets)) {\n if (propertySchema.defaultSnippets.length === 1) {\n const body = propertySchema.defaultSnippets[0].body;\n if (isDefined(body)) {\n value = this.getInsertTextForSnippetValue(body, '');\n }\n }\n nValueProposals += propertySchema.defaultSnippets.length;\n }\n if (propertySchema.enum) {\n if (!value && propertySchema.enum.length === 1) {\n value = this.getInsertTextForGuessedValue(propertySchema.enum[0], '');\n }\n nValueProposals += propertySchema.enum.length;\n }\n if (isDefined(propertySchema.const)) {\n if (!value) {\n value = this.getInsertTextForGuessedValue(propertySchema.const, '');\n }\n nValueProposals++;\n }\n if (isDefined(propertySchema.default)) {\n if (!value) {\n value = this.getInsertTextForGuessedValue(propertySchema.default, '');\n }\n nValueProposals++;\n }\n if (Array.isArray(propertySchema.examples) && propertySchema.examples.length) {\n if (!value) {\n value = this.getInsertTextForGuessedValue(propertySchema.examples[0], '');\n }\n nValueProposals += propertySchema.examples.length;\n }\n if (nValueProposals === 0) {\n let type = Array.isArray(propertySchema.type) ? propertySchema.type[0] : propertySchema.type;\n if (!type) {\n if (propertySchema.properties) {\n type = 'object';\n }\n else if (propertySchema.items) {\n type = 'array';\n }\n }\n switch (type) {\n case 'boolean':\n value = '$1';\n break;\n case 'string':\n value = '\"$1\"';\n break;\n case 'object':\n value = '{$1}';\n break;\n case 'array':\n value = '[$1]';\n break;\n case 'number':\n case 'integer':\n value = '${1:0}';\n break;\n case 'null':\n value = '${1:null}';\n break;\n default:\n return propertyText;\n }\n }\n }\n if (!value || nValueProposals > 1) {\n value = '$1';\n }\n return resultText + value + separatorAfter;\n }\n getCurrentWord(document, offset) {\n let i = offset - 1;\n const text = document.getText();\n while (i >= 0 && ' \\t\\n\\r\\v\":{[,]}'.indexOf(text.charAt(i)) === -1) {\n i--;\n }\n return text.substring(i + 1, offset);\n }\n evaluateSeparatorAfter(document, offset) {\n const scanner = Json.createScanner(document.getText(), true);\n scanner.setPosition(offset);\n const token = scanner.scan();\n switch (token) {\n case 5 /* Json.SyntaxKind.CommaToken */:\n case 2 /* Json.SyntaxKind.CloseBraceToken */:\n case 4 /* Json.SyntaxKind.CloseBracketToken */:\n case 17 /* Json.SyntaxKind.EOF */:\n return '';\n default:\n return ',';\n }\n }\n findItemAtOffset(node, document, offset) {\n const scanner = Json.createScanner(document.getText(), true);\n const children = node.items;\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i];\n if (offset > child.offset + child.length) {\n scanner.setPosition(child.offset + child.length);\n const token = scanner.scan();\n if (token === 5 /* Json.SyntaxKind.CommaToken */ && offset >= scanner.getTokenOffset() + scanner.getTokenLength()) {\n return i + 1;\n }\n return i;\n }\n else if (offset >= child.offset) {\n return i;\n }\n }\n return 0;\n }\n isInComment(document, start, offset) {\n const scanner = Json.createScanner(document.getText(), false);\n scanner.setPosition(start);\n let token = scanner.scan();\n while (token !== 17 /* Json.SyntaxKind.EOF */ && (scanner.getTokenOffset() + scanner.getTokenLength() < offset)) {\n token = scanner.scan();\n }\n return (token === 12 /* Json.SyntaxKind.LineCommentTrivia */ || token === 13 /* Json.SyntaxKind.BlockCommentTrivia */) && scanner.getTokenOffset() <= offset;\n }\n fromMarkup(markupString) {\n if (markupString && this.doesSupportMarkdown()) {\n return {\n kind: MarkupKind.Markdown,\n value: markupString\n };\n }\n return undefined;\n }\n doesSupportMarkdown() {\n if (!isDefined(this.supportsMarkdown)) {\n const documentationFormat = this.clientCapabilities.textDocument?.completion?.completionItem?.documentationFormat;\n this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(MarkupKind.Markdown) !== -1;\n }\n return this.supportsMarkdown;\n }\n doesSupportsCommitCharacters() {\n if (!isDefined(this.supportsCommitCharacters)) {\n this.labelDetailsSupport = this.clientCapabilities.textDocument?.completion?.completionItem?.commitCharactersSupport;\n }\n return this.supportsCommitCharacters;\n }\n doesSupportsLabelDetails() {\n if (!isDefined(this.labelDetailsSupport)) {\n this.labelDetailsSupport = this.clientCapabilities.textDocument?.completion?.completionItem?.labelDetailsSupport;\n }\n return this.labelDetailsSupport;\n }\n}\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 *--------------------------------------------------------------------------------------------*/\nimport * as Parser from '../parser/jsonParser.js';\nimport { Range } from '../jsonLanguageTypes.js';\nexport class JSONHover {\n constructor(schemaService, contributions = [], promiseConstructor) {\n this.schemaService = schemaService;\n this.contributions = contributions;\n this.promise = promiseConstructor || Promise;\n }\n doHover(document, position, doc) {\n const offset = document.offsetAt(position);\n let node = doc.getNodeFromOffset(offset);\n if (!node || (node.type === 'object' || node.type === 'array') && offset > node.offset + 1 && offset < node.offset + node.length - 1) {\n return this.promise.resolve(null);\n }\n const hoverRangeNode = node;\n // use the property description when hovering over an object key\n if (node.type === 'string') {\n const parent = node.parent;\n if (parent && parent.type === 'property' && parent.keyNode === node) {\n node = parent.valueNode;\n if (!node) {\n return this.promise.resolve(null);\n }\n }\n }\n const hoverRange = Range.create(document.positionAt(hoverRangeNode.offset), document.positionAt(hoverRangeNode.offset + hoverRangeNode.length));\n const createHover = (contents) => {\n const result = {\n contents: contents,\n range: hoverRange\n };\n return result;\n };\n const location = Parser.getNodePath(node);\n for (let i = this.contributions.length - 1; i >= 0; i--) {\n const contribution = this.contributions[i];\n const promise = contribution.getInfoContribution(document.uri, location);\n if (promise) {\n return promise.then(htmlContent => createHover(htmlContent));\n }\n }\n return this.schemaService.getSchemaForResource(document.uri, doc).then((schema) => {\n if (!schema) {\n return null;\n }\n let title = undefined;\n let markdownDescription = undefined;\n let markdownEnumValueDescription = undefined, enumValue = undefined;\n const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset).filter((s) => s.node === node && !s.inverted).map((s) => s.schema);\n for (const schema of matchingSchemas) {\n title = title || schema.title;\n markdownDescription = markdownDescription || schema.markdownDescription || toMarkdown(schema.description);\n if (schema.enum) {\n const idx = schema.enum.indexOf(Parser.getNodeValue(node));\n if (schema.markdownEnumDescriptions) {\n markdownEnumValueDescription = schema.markdownEnumDescriptions[idx];\n }\n else if (schema.enumDescriptions) {\n markdownEnumValueDescription = toMarkdown(schema.enumDescriptions[idx]);\n }\n if (markdownEnumValueDescription) {\n enumValue = schema.enum[idx];\n if (typeof enumValue !== 'string') {\n enumValue = JSON.stringify(enumValue);\n }\n }\n }\n }\n let result = '';\n if (title) {\n result = toMarkdown(title);\n }\n if (markdownDescription) {\n if (result.length > 0) {\n result += \"\\n\\n\";\n }\n result += markdownDescription;\n }\n if (markdownEnumValueDescription) {\n if (result.length > 0) {\n result += \"\\n\\n\";\n }\n result += `\\`${toMarkdownCodeBlock(enumValue)}\\`: ${markdownEnumValueDescription}`;\n }\n return createHover([result]);\n });\n }\n}\nfunction toMarkdown(plain) {\n if (plain) {\n return plain\n .trim()\n .replace(/[\\\\`*_{}[\\]()<>#+\\-.!]/g, '\\\\$&') // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\n .replace(/(^ +)/mg, (_match, g1) => ' '.repeat(g1.length)) // escape leading spaces on each line\n .replace(/( {2,})/g, (_match, g1) => ' ' + ' '.repeat(g1.length - 1)) // escape consecutive spaces\n .replace(/(\\t+)/g, (_match, g1) => ' '.repeat(g1.length * 4)) // escape tabs\n .replace(/\\n/g, '\\\\\\n'); // escape new lines\n }\n return undefined;\n}\nfunction toMarkdownCodeBlock(content) {\n // see https://daringfireball.net/projects/markdown/syntax#precode\n if (content.indexOf('`') !== -1) {\n return '`` ' + content + ' ``';\n }\n return content;\n}\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 *--------------------------------------------------------------------------------------------*/\nimport { ErrorCode, Diagnostic, DiagnosticSeverity, Range } from '../jsonLanguageTypes.js';\nimport * as l10n from '@vscode/l10n';\nimport { isBoolean } from '../utils/objects.js';\nexport class JSONValidation {\n constructor(jsonSchemaService, promiseConstructor) {\n this.jsonSchemaService = jsonSchemaService;\n this.promise = promiseConstructor;\n this.validationEnabled = true;\n }\n configure(raw) {\n if (raw) {\n this.validationEnabled = raw.validate !== false;\n this.commentSeverity = raw.allowComments ? undefined : DiagnosticSeverity.Error;\n }\n }\n doValidation(textDocument, jsonDocument, documentSettings, schema) {\n if (!this.validationEnabled) {\n return this.promise.resolve([]);\n }\n const diagnostics = [];\n const added = {};\n const addProblem = (problem) => {\n // remove duplicated messages\n const signature = problem.range.start.line + ' ' + problem.range.start.character + ' ' + problem.message;\n if (!added[signature]) {\n added[signature] = true;\n diagnostics.push(problem);\n }\n };\n const getDiagnostics = (schema) => {\n let trailingCommaSeverity = documentSettings?.trailingCommas ? toDiagnosticSeverity(documentSettings.trailingCommas) : DiagnosticSeverity.Error;\n let commentSeverity = documentSettings?.comments ? toDiagnosticSeverity(documentSettings.comments) : this.commentSeverity;\n let schemaValidation = documentSettings?.schemaValidation ? toDiagnosticSeverity(documentSettings.schemaValidation) : DiagnosticSeverity.Warning;\n let schemaRequest = documentSettings?.schemaRequest ? toDiagnosticSeverity(documentSettings.schemaRequest) : DiagnosticSeverity.Warning;\n if (schema) {\n const addSchemaProblem = (errorMessage, errorCode, relatedInformation) => {\n if (jsonDocument.root && schemaRequest) {\n const astRoot = jsonDocument.root;\n const property = astRoot.type === 'object' ? astRoot.properties[0] : undefined;\n if (property && property.keyNode.value === '$schema') {\n const node = property.valueNode || property;\n const range = Range.create(textDocument.positionAt(node.offset), textDocument.positionAt(node.offset + node.length));\n addProblem(Diagnostic.create(range, errorMessage, schemaRequest, errorCode, 'json', relatedInformation));\n }\n else {\n const range = Range.create(textDocument.positionAt(astRoot.offset), textDocument.positionAt(astRoot.offset + 1));\n addProblem(Diagnostic.create(range, errorMessage, schemaRequest, errorCode, 'json', relatedInformation));\n }\n }\n };\n if (schema.errors.length) {\n const error = schema.errors[0];\n addSchemaProblem(error.message, error.code, error.relatedInformation);\n }\n else if (schemaValidation) {\n for (const warning of schema.warnings) {\n addSchemaProblem(warning.message, warning.code, warning.relatedInformation);\n }\n const semanticErrors = jsonDocument.validate(textDocument, schema.schema, schemaValidation, documentSettings?.schemaDraft);\n if (semanticErrors) {\n semanticErrors.forEach(addProblem);\n }\n }\n if (schemaAllowsComments(schema.schema)) {\n commentSeverity = undefined;\n }\n if (schemaAllowsTrailingCommas(schema.schema)) {\n trailingCommaSeverity = undefined;\n }\n }\n for (const p of jsonDocument.syntaxErrors) {\n if (p.code === ErrorCode.TrailingComma) {\n if (typeof trailingCommaSeverity !== 'number') {\n continue;\n }\n p.severity = trailingCommaSeverity;\n }\n addProblem(p);\n }\n if (typeof commentSeverity === 'number') {\n const message = l10n.t('Comments are not permitted in JSON.');\n jsonDocument.comments.forEach(c => {\n addProblem(Diagnostic.create(c, message, commentSeverity, ErrorCode.CommentNotPermitted));\n });\n }\n return diagnostics;\n };\n if (schema) {\n const uri = schema.id || ('schemaservice://untitled/' + idCounter++);\n const handle = this.jsonSchemaService.registerExternalSchema({ uri, schema });\n return handle.getResolvedSchema().then(resolvedSchema => {\n return getDiagnostics(resolvedSchema);\n });\n }\n return this.jsonSchemaService.getSchemaForResource(textDocument.uri, jsonDocument).then(schema => {\n return getDiagnostics(schema);\n });\n }\n getLanguageStatus(textDocument, jsonDocument) {\n return { schemas: this.jsonSchemaService.getSchemaURIsForResource(textDocument.uri, jsonDocument) };\n }\n}\nlet idCounter = 0;\nfunction schemaAllowsComments(schemaRef) {\n if (schemaRef && typeof schemaRef === 'object') {\n if (isBoolean(schemaRef.allowComments)) {\n return schemaRef.allowComments;\n }\n if (schemaRef.allOf) {\n for (const schema of schemaRef.allOf) {\n const allow = schemaAllowsComments(schema);\n if (isBoolean(allow)) {\n return allow;\n }\n }\n }\n }\n return undefined;\n}\nfunction schemaAllowsTrailingCommas(schemaRef) {\n if (schemaRef && typeof schemaRef === 'object') {\n if (isBoolean(schemaRef.allowTrailingCommas)) {\n return schemaRef.allowTrailingCommas;\n }\n const deprSchemaRef = schemaRef;\n if (isBoolean(deprSchemaRef['allowsTrailingCommas'])) { // deprecated\n return deprSchemaRef['allowsTrailingCommas'];\n }\n if (schemaRef.allOf) {\n for (const schema of schemaRef.allOf) {\n const allow = schemaAllowsTrailingCommas(schema);\n if (isBoolean(allow)) {\n return allow;\n }\n }\n }\n }\n return undefined;\n}\nfunction toDiagnosticSeverity(severityLevel) {\n switch (severityLevel) {\n case 'error': return DiagnosticSeverity.Error;\n case 'warning': return DiagnosticSeverity.Warning;\n case 'ignore': return undefined;\n }\n return undefined;\n}\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 Digit0 = 48;\nconst Digit9 = 57;\nconst A = 65;\nconst a = 97;\nconst f = 102;\nexport function hexDigit(charCode) {\n if (charCode < Digit0) {\n return 0;\n }\n if (charCode <= Digit9) {\n return charCode - Digit0;\n }\n if (charCode < a) {\n charCode += (a - A);\n }\n if (charCode >= a && charCode <= f) {\n return charCode - a + 10;\n }\n return 0;\n}\nexport function colorFromHex(text) {\n if (text[0] !== '#') {\n return undefined;\n }\n switch (text.length) {\n case 4:\n return {\n red: (hexDigit(text.charCodeAt(1)) * 0x11) / 255.0,\n green: (hexDigit(text.charCodeAt(2)) * 0x11) / 255.0,\n blue: (hexDigit(text.charCodeAt(3)) * 0x11) / 255.0,\n alpha: 1\n };\n case 5:\n return {\n red: (hexDigit(text.charCodeAt(1)) * 0x11) / 255.0,\n green: (hexDigit(text.charCodeAt(2)) * 0x11) / 255.0,\n blue: (hexDigit(text.charCodeAt(3)) * 0x11) / 255.0,\n alpha: (hexDigit(text.charCodeAt(4)) * 0x11) / 255.0,\n };\n case 7:\n return {\n red: (hexDigit(text.charCodeAt(1)) * 0x10 + hexDigit(text.charCodeAt(2))) / 255.0,\n green: (hexDigit(text.charCodeAt(3)) * 0x10 + hexDigit(text.charCodeAt(4))) / 255.0,\n blue: (hexDigit(text.charCodeAt(5)) * 0x10 + hexDigit(text.charCodeAt(6))) / 255.0,\n alpha: 1\n };\n case 9:\n return {\n red: (hexDigit(text.charCodeAt(1)) * 0x10 + hexDigit(text.charCodeAt(2))) / 255.0,\n green: (hexDigit(text.charCodeAt(3)) * 0x10 + hexDigit(text.charCodeAt(4))) / 255.0,\n blue: (hexDigit(text.charCodeAt(5)) * 0x10 + hexDigit(text.charCodeAt(6))) / 255.0,\n alpha: (hexDigit(text.charCodeAt(7)) * 0x10 + hexDigit(text.charCodeAt(8))) / 255.0\n };\n }\n return undefined;\n}\nexport function colorFrom256RGB(red, green, blue, alpha = 1.0) {\n return {\n red: red / 255.0,\n green: green / 255.0,\n blue: blue / 255.0,\n alpha\n };\n}\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 *--------------------------------------------------------------------------------------------*/\nimport * as Parser from '../parser/jsonParser.js';\nimport * as Strings from '../utils/strings.js';\nimport { colorFromHex } from '../utils/colors.js';\nimport * as l10n from '@vscode/l10n';\nimport { Range, TextEdit, SymbolKind, Location } from \"../jsonLanguageTypes.js\";\nexport class JSONDocumentSymbols {\n constructor(schemaService) {\n this.schemaService = schemaService;\n }\n findDocumentSymbols(document, doc, context = { resultLimit: Number.MAX_VALUE }) {\n const root = doc.root;\n if (!root) {\n return [];\n }\n let limit = context.resultLimit || Number.MAX_VALUE;\n // special handling for key bindings\n const resourceString = document.uri;\n if ((resourceString === 'vscode://defaultsettings/keybindings.json') || Strings.endsWith(resourceString.toLowerCase(), '/user/keybindings.json')) {\n if (root.type === 'array') {\n const result = [];\n for (const item of root.items) {\n if (item.type === 'object') {\n for (const property of item.properties) {\n if (property.keyNode.value === 'key' && property.valueNode) {\n const location = Location.create(document.uri, getRange(document, item));\n result.push({ name: getName(property.valueNode), kind: SymbolKind.Function, location: location });\n limit--;\n if (limit <= 0) {\n if (context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(resourceString);\n }\n return result;\n }\n }\n }\n }\n }\n return result;\n }\n }\n const toVisit = [\n { node: root, containerName: '' }\n ];\n let nextToVisit = 0;\n let limitExceeded = false;\n const result = [];\n const collectOutlineEntries = (node, containerName) => {\n if (node.type === 'array') {\n node.items.forEach(node => {\n if (node) {\n toVisit.push({ node, containerName });\n }\n });\n }\n else if (node.type === 'object') {\n node.properties.forEach((property) => {\n const valueNode = property.valueNode;\n if (valueNode) {\n if (limit > 0) {\n limit--;\n const location = Location.create(document.uri, getRange(document, property));\n const childContainerName = containerName ? containerName + '.' + property.keyNode.value : property.keyNode.value;\n result.push({ name: this.getKeyLabel(property), kind: this.getSymbolKind(valueNode.type), location: location, containerName: containerName });\n toVisit.push({ node: valueNode, containerName: childContainerName });\n }\n else {\n limitExceeded = true;\n }\n }\n });\n }\n };\n // breath first traversal\n while (nextToVisit < toVisit.length) {\n const next = toVisit[nextToVisit++];\n collectOutlineEntries(next.node, next.containerName);\n }\n if (limitExceeded && context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(resourceString);\n }\n return result;\n }\n findDocumentSymbols2(document, doc, context = { resultLimit: Number.MAX_VALUE }) {\n const root = doc.root;\n if (!root) {\n return [];\n }\n let limit = context.resultLimit || Number.MAX_VALUE;\n // special handling for key bindings\n const resourceString = document.uri;\n if ((resourceString === 'vscode://defaultsettings/keybindings.json') || Strings.endsWith(resourceString.toLowerCase(), '/user/keybindings.json')) {\n if (root.type === 'array') {\n const result = [];\n for (const item of root.items) {\n if (item.type === 'object') {\n for (const property of item.properties) {\n if (property.keyNode.value === 'key' && property.valueNode) {\n const range = getRange(document, item);\n const selectionRange = getRange(document, property.keyNode);\n result.push({ name: getName(property.valueNode), kind: SymbolKind.Function, range, selectionRange });\n limit--;\n if (limit <= 0) {\n if (context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(resourceString);\n }\n return result;\n }\n }\n }\n }\n }\n return result;\n }\n }\n const result = [];\n const toVisit = [\n { node: root, result }\n ];\n let nextToVisit = 0;\n let limitExceeded = false;\n const collectOutlineEntries = (node, result) => {\n if (node.type === 'array') {\n node.items.forEach((node, index) => {\n if (node) {\n if (limit > 0) {\n limit--;\n const range = getRange(document, node);\n const selectionRange = range;\n const name = String(index);\n const symbol = { name, kind: this.getSymbolKind(node.type), range, selectionRange, children: [] };\n result.push(symbol);\n toVisit.push({ result: symbol.children, node });\n }\n else {\n limitExceeded = true;\n }\n }\n });\n }\n else if (node.type === 'object') {\n node.properties.forEach((property) => {\n const valueNode = property.valueNode;\n if (valueNode) {\n if (limit > 0) {\n limit--;\n const range = getRange(document, property);\n const selectionRange = getRange(document, property.keyNode);\n const children = [];\n const symbol = { name: this.getKeyLabel(property), kind: this.getSymbolKind(valueNode.type), range, selectionRange, children, detail: this.getDetail(valueNode) };\n result.push(symbol);\n toVisit.push({ result: children, node: valueNode });\n }\n else {\n limitExceeded = true;\n }\n }\n });\n }\n };\n // breath first traversal\n while (nextToVisit < toVisit.length) {\n const next = toVisit[nextToVisit++];\n collectOutlineEntries(next.node, next.result);\n }\n if (limitExceeded && context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(resourceString);\n }\n return result;\n }\n getSymbolKind(nodeType) {\n switch (nodeType) {\n case 'object':\n return SymbolKind.Module;\n case 'string':\n return SymbolKind.String;\n case 'number':\n return SymbolKind.Number;\n case 'array':\n return SymbolKind.Array;\n case 'boolean':\n return SymbolKind.Boolean;\n default: // 'null'\n return SymbolKind.Variable;\n }\n }\n getKeyLabel(property) {\n let name = property.keyNode.value;\n if (name) {\n name = name.replace(/[\\n]/g, '\u21B5');\n }\n if (name && name.trim()) {\n return name;\n }\n return `\"${name}\"`;\n }\n getDetail(node) {\n if (!node) {\n return undefined;\n }\n if (node.type === 'boolean' || node.type === 'number' || node.type === 'null' || node.type === 'string') {\n return String(node.value);\n }\n else {\n if (node.type === 'array') {\n return node.children.length ? undefined : '[]';\n }\n else if (node.type === 'object') {\n return node.children.length ? undefined : '{}';\n }\n }\n return undefined;\n }\n findDocumentColors(document, doc, context) {\n return this.schemaService.getSchemaForResource(document.uri, doc).then(schema => {\n const result = [];\n if (schema) {\n let limit = context && typeof context.resultLimit === 'number' ? context.resultLimit : Number.MAX_VALUE;\n const matchingSchemas = doc.getMatchingSchemas(schema.schema);\n const visitedNode = {};\n for (const s of matchingSchemas) {\n if (!s.inverted && s.schema && (s.schema.format === 'color' || s.schema.format === 'color-hex') && s.node && s.node.type === 'string') {\n const nodeId = String(s.node.offset);\n if (!visitedNode[nodeId]) {\n const color = colorFromHex(Parser.getNodeValue(s.node));\n if (color) {\n const range = getRange(document, s.node);\n result.push({ color, range });\n }\n visitedNode[nodeId] = true;\n limit--;\n if (limit <= 0) {\n if (context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(document.uri);\n }\n return result;\n }\n }\n }\n }\n }\n return result;\n });\n }\n getColorPresentations(document, doc, color, range) {\n const result = [];\n const red256 = Math.round(color.red * 255), green256 = Math.round(color.green * 255), blue256 = Math.round(color.blue * 255);\n function toTwoDigitHex(n) {\n const r = n.toString(16);\n return r.length !== 2 ? '0' + r : r;\n }\n let label;\n if (color.alpha === 1) {\n label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}`;\n }\n else {\n label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}${toTwoDigitHex(Math.round(color.alpha * 255))}`;\n }\n result.push({ label: label, textEdit: TextEdit.replace(range, JSON.stringify(label)) });\n return result;\n }\n}\nfunction getRange(document, node) {\n return Range.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length));\n}\nfunction getName(node) {\n return Parser.getNodeValue(node) || l10n.t('<empty>');\n}\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// This file is generated - do not edit directly!\n// Derived from https://json-schema.org/draft/2019-09\nexport default {\n $id: 'https://json-schema.org/draft/2019-09/schema',\n $schema: 'https://json-schema.org/draft/2019-09/schema',\n title: '(Flattened static) Core and Validation specifications meta-schema',\n type: [\n 'object',\n 'boolean',\n ],\n properties: {\n definitions: {\n $comment: 'While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.',\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n default: {},\n },\n dependencies: {\n $comment: '\"dependencies\" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to \"dependentSchemas\" and \"dependentRequired\"',\n type: 'object',\n additionalProperties: {\n anyOf: [\n {\n $ref: '#',\n },\n {\n $ref: '#/$defs/stringArray',\n },\n ],\n },\n },\n $id: {\n type: 'string',\n format: 'uri-reference',\n $comment: 'Non-empty fragments not allowed.',\n pattern: '^[^#]*#?$',\n },\n $schema: {\n type: 'string',\n format: 'uri',\n },\n $anchor: {\n type: 'string',\n pattern: '^[A-Za-z][-A-Za-z0-9.:_]*$',\n },\n $ref: {\n type: 'string',\n format: 'uri-reference',\n },\n $recursiveAnchor: {\n type: 'boolean',\n default: false,\n },\n $vocabulary: {\n type: 'object',\n propertyNames: {\n type: 'string',\n format: 'uri',\n },\n additionalProperties: {\n type: 'boolean',\n },\n },\n $comment: {\n type: 'string',\n },\n $defs: {\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n default: {},\n },\n additionalItems: {\n $ref: '#',\n },\n unevaluatedItems: {\n $ref: '#',\n },\n items: {\n anyOf: [\n {\n $ref: '#',\n },\n {\n $ref: '#/$defs/schemaArray',\n },\n ],\n },\n contains: {\n $ref: '#',\n },\n additionalProperties: {\n $ref: '#',\n },\n unevaluatedProperties: {\n $ref: '#',\n },\n properties: {\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n default: {},\n },\n patternProperties: {\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n propertyNames: {\n format: 'regex',\n },\n default: {},\n },\n dependentSchemas: {\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n },\n propertyNames: {\n $ref: '#',\n },\n if: {\n $ref: '#',\n },\n then: {\n $ref: '#',\n },\n else: {\n $ref: '#',\n },\n allOf: {\n $ref: '#/$defs/schemaArray',\n },\n anyOf: {\n $ref: '#/$defs/schemaArray',\n },\n oneOf: {\n $ref: '#/$defs/schemaArray',\n },\n not: {\n $ref: '#',\n },\n multipleOf: {\n type: 'number',\n exclusiveMinimum: 0,\n },\n maximum: {\n type: 'number',\n },\n exclusiveMaximum: {\n type: 'number',\n },\n minimum: {\n type: 'number',\n },\n exclusiveMinimum: {\n type: 'number',\n },\n maxLength: {\n $ref: '#/$defs/nonNegativeInteger',\n },\n minLength: {\n $ref: '#/$defs/nonNegativeIntegerDefault0',\n },\n pattern: {\n type: 'string',\n format: 'regex',\n },\n maxItems: {\n $ref: '#/$defs/nonNegativeInteger',\n },\n minItems: {\n $ref: '#/$defs/nonNegativeIntegerDefault0',\n },\n uniqueItems: {\n type: 'boolean',\n default: false,\n },\n maxContains: {\n $ref: '#/$defs/nonNegativeInteger',\n },\n minContains: {\n $ref: '#/$defs/nonNegativeInteger',\n default: 1,\n },\n maxProperties: {\n $ref: '#/$defs/nonNegativeInteger',\n },\n minProperties: {\n $ref: '#/$defs/nonNegativeIntegerDefault0',\n },\n required: {\n $ref: '#/$defs/stringArray',\n },\n dependentRequired: {\n type: 'object',\n additionalProperties: {\n $ref: '#/$defs/stringArray',\n },\n },\n const: true,\n enum: {\n type: 'array',\n items: true,\n },\n type: {\n anyOf: [\n {\n $ref: '#/$defs/simpleTypes',\n },\n {\n type: 'array',\n items: {\n $ref: '#/$defs/simpleTypes',\n },\n minItems: 1,\n uniqueItems: true,\n },\n ],\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n default: true,\n deprecated: {\n type: 'boolean',\n default: false,\n },\n readOnly: {\n type: 'boolean',\n default: false,\n },\n writeOnly: {\n type: 'boolean',\n default: false,\n },\n examples: {\n type: 'array',\n items: true,\n },\n format: {\n type: 'string',\n },\n contentMediaType: {\n type: 'string',\n },\n contentEncoding: {\n type: 'string',\n },\n contentSchema: {\n $ref: '#',\n },\n },\n $defs: {\n schemaArray: {\n type: 'array',\n minItems: 1,\n items: {\n $ref: '#',\n },\n },\n nonNegativeInteger: {\n type: 'integer',\n minimum: 0,\n },\n nonNegativeIntegerDefault0: {\n $ref: '#/$defs/nonNegativeInteger',\n default: 0,\n },\n simpleTypes: {\n enum: [\n 'array',\n 'boolean',\n 'integer',\n 'null',\n 'number',\n 'object',\n 'string',\n ],\n },\n stringArray: {\n type: 'array',\n items: {\n type: 'string',\n },\n uniqueItems: true,\n default: [],\n },\n },\n};\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// This file is generated - do not edit directly!\n// Derived from https://json-schema.org/draft/2020-12\nexport default {\n $id: 'https://json-schema.org/draft/2020-12/schema',\n $schema: 'https://json-schema.org/draft/2020-12/schema',\n title: '(Flattened static) Core and Validation specifications meta-schema',\n type: [\n 'object',\n 'boolean',\n ],\n properties: {\n definitions: {\n $comment: 'While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.',\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n default: {},\n },\n dependencies: {\n $comment: '\"dependencies\" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to \"dependentSchemas\" and \"dependentRequired\"',\n type: 'object',\n additionalProperties: {\n anyOf: [\n {\n $ref: '#',\n },\n {\n $ref: '#/$defs/stringArray',\n },\n ],\n },\n },\n $id: {\n type: 'string',\n format: 'uri-reference',\n $comment: 'Non-empty fragments not allowed.',\n pattern: '^[^#]*#?$',\n },\n $schema: {\n type: 'string',\n format: 'uri',\n },\n $anchor: {\n type: 'string',\n pattern: '^[A-Za-z_][-A-Za-z0-9._]*$',\n },\n $ref: {\n type: 'string',\n format: 'uri-reference',\n },\n $dynamicRef: {\n type: 'string',\n format: 'uri-reference',\n },\n $vocabulary: {\n type: 'object',\n propertyNames: {\n type: 'string',\n format: 'uri',\n },\n additionalProperties: {\n type: 'boolean',\n },\n },\n $comment: {\n type: 'string',\n },\n $defs: {\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n default: {},\n },\n prefixItems: {\n $ref: '#/$defs/schemaArray',\n },\n items: {\n $ref: '#',\n },\n contains: {\n $ref: '#',\n },\n additionalProperties: {\n $ref: '#',\n },\n properties: {\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n default: {},\n },\n patternProperties: {\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n propertyNames: {\n format: 'regex',\n },\n default: {},\n },\n dependentSchemas: {\n type: 'object',\n additionalProperties: {\n $ref: '#',\n },\n },\n propertyNames: {\n $ref: '#',\n },\n if: {\n $ref: '#',\n },\n then: {\n $ref: '#',\n },\n else: {\n $ref: '#',\n },\n allOf: {\n $ref: '#/$defs/schemaArray',\n },\n anyOf: {\n $ref: '#/$defs/schemaArray',\n },\n oneOf: {\n $ref: '#/$defs/schemaArray',\n },\n not: {\n $ref: '#',\n },\n unevaluatedItems: {\n $ref: '#',\n },\n unevaluatedProperties: {\n $ref: '#',\n },\n multipleOf: {\n type: 'number',\n exclusiveMinimum: 0,\n },\n maximum: {\n type: 'number',\n },\n exclusiveMaximum: {\n type: 'number',\n },\n minimum: {\n type: 'number',\n },\n exclusiveMinimum: {\n type: 'number',\n },\n maxLength: {\n $ref: '#/$defs/nonNegativeInteger',\n },\n minLength: {\n $ref: '#/$defs/nonNegativeIntegerDefault0',\n },\n pattern: {\n type: 'string',\n format: 'regex',\n },\n maxItems: {\n $ref: '#/$defs/nonNegativeInteger',\n },\n minItems: {\n $ref: '#/$defs/nonNegativeIntegerDefault0',\n },\n uniqueItems: {\n type: 'boolean',\n default: false,\n },\n maxContains: {\n $ref: '#/$defs/nonNegativeInteger',\n },\n minContains: {\n $ref: '#/$defs/nonNegativeInteger',\n default: 1,\n },\n maxProperties: {\n $ref: '#/$defs/nonNegativeInteger',\n },\n minProperties: {\n $ref: '#/$defs/nonNegativeIntegerDefault0',\n },\n required: {\n $ref: '#/$defs/stringArray',\n },\n dependentRequired: {\n type: 'object',\n additionalProperties: {\n $ref: '#/$defs/stringArray',\n },\n },\n const: true,\n enum: {\n type: 'array',\n items: true,\n },\n type: {\n anyOf: [\n {\n $ref: '#/$defs/simpleTypes',\n },\n {\n type: 'array',\n items: {\n $ref: '#/$defs/simpleTypes',\n },\n minItems: 1,\n uniqueItems: true,\n },\n ],\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n default: true,\n deprecated: {\n type: 'boolean',\n default: false,\n },\n readOnly: {\n type: 'boolean',\n default: false,\n },\n writeOnly: {\n type: 'boolean',\n default: false,\n },\n examples: {\n type: 'array',\n items: true,\n },\n format: {\n type: 'string',\n },\n contentMediaType: {\n type: 'string',\n },\n contentEncoding: {\n type: 'string',\n },\n contentSchema: {\n $ref: '#',\n },\n },\n $defs: {\n schemaArray: {\n type: 'array',\n minItems: 1,\n items: {\n $ref: '#',\n },\n },\n nonNegativeInteger: {\n type: 'integer',\n minimum: 0,\n },\n nonNegativeIntegerDefault0: {\n $ref: '#/$defs/nonNegativeInteger',\n default: 0,\n },\n simpleTypes: {\n enum: [\n 'array',\n 'boolean',\n 'integer',\n 'null',\n 'number',\n 'object',\n 'string',\n ],\n },\n stringArray: {\n type: 'array',\n items: {\n type: 'string',\n },\n uniqueItems: true,\n default: [],\n },\n },\n};\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 *--------------------------------------------------------------------------------------------*/\nimport draft201909Flat from './schemas/draft-2019-09-flat.js';\nimport draft202012Flat from './schemas/draft-2020-12-flat.js';\nimport * as l10n from '@vscode/l10n';\nexport const schemaContributions = {\n schemaAssociations: [],\n schemas: {\n // bundle the schema-schema to include (localized) descriptions\n 'https://json-schema.org/draft-04/schema': {\n 'definitions': {\n 'schemaArray': {\n 'type': 'array',\n 'minItems': 1,\n 'items': {\n '$ref': '#'\n }\n },\n 'positiveInteger': {\n 'type': 'integer',\n 'minimum': 0\n },\n 'positiveIntegerDefault0': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveInteger'\n },\n {\n 'default': 0\n }\n ]\n },\n 'simpleTypes': {\n 'type': 'string',\n 'enum': [\n 'array',\n 'boolean',\n 'integer',\n 'null',\n 'number',\n 'object',\n 'string'\n ]\n },\n 'stringArray': {\n 'type': 'array',\n 'items': {\n 'type': 'string'\n },\n 'minItems': 1,\n 'uniqueItems': true\n }\n },\n 'type': 'object',\n 'properties': {\n 'id': {\n 'type': 'string',\n 'format': 'uri'\n },\n '$schema': {\n 'type': 'string',\n 'format': 'uri'\n },\n 'title': {\n 'type': 'string'\n },\n 'description': {\n 'type': 'string'\n },\n 'default': {},\n 'multipleOf': {\n 'type': 'number',\n 'minimum': 0,\n 'exclusiveMinimum': true\n },\n 'maximum': {\n 'type': 'number'\n },\n 'exclusiveMaximum': {\n 'type': 'boolean',\n 'default': false\n },\n 'minimum': {\n 'type': 'number'\n },\n 'exclusiveMinimum': {\n 'type': 'boolean',\n 'default': false\n },\n 'maxLength': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveInteger'\n }\n ]\n },\n 'minLength': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveIntegerDefault0'\n }\n ]\n },\n 'pattern': {\n 'type': 'string',\n 'format': 'regex'\n },\n 'additionalItems': {\n 'anyOf': [\n {\n 'type': 'boolean'\n },\n {\n '$ref': '#'\n }\n ],\n 'default': {}\n },\n 'items': {\n 'anyOf': [\n {\n '$ref': '#'\n },\n {\n '$ref': '#/definitions/schemaArray'\n }\n ],\n 'default': {}\n },\n 'maxItems': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveInteger'\n }\n ]\n },\n 'minItems': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveIntegerDefault0'\n }\n ]\n },\n 'uniqueItems': {\n 'type': 'boolean',\n 'default': false\n },\n 'maxProperties': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveInteger'\n }\n ]\n },\n 'minProperties': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveIntegerDefault0'\n }\n ]\n },\n 'required': {\n 'allOf': [\n {\n '$ref': '#/definitions/stringArray'\n }\n ]\n },\n 'additionalProperties': {\n 'anyOf': [\n {\n 'type': 'boolean'\n },\n {\n '$ref': '#'\n }\n ],\n 'default': {}\n },\n 'definitions': {\n 'type': 'object',\n 'additionalProperties': {\n '$ref': '#'\n },\n 'default': {}\n },\n 'properties': {\n 'type': 'object',\n 'additionalProperties': {\n '$ref': '#'\n },\n 'default': {}\n },\n 'patternProperties': {\n 'type': 'object',\n 'additionalProperties': {\n '$ref': '#'\n },\n 'default': {}\n },\n 'dependencies': {\n 'type': 'object',\n 'additionalProperties': {\n 'anyOf': [\n {\n '$ref': '#'\n },\n {\n '$ref': '#/definitions/stringArray'\n }\n ]\n }\n },\n 'enum': {\n 'type': 'array',\n 'minItems': 1,\n 'uniqueItems': true\n },\n 'type': {\n 'anyOf': [\n {\n '$ref': '#/definitions/simpleTypes'\n },\n {\n 'type': 'array',\n 'items': {\n '$ref': '#/definitions/simpleTypes'\n },\n 'minItems': 1,\n 'uniqueItems': true\n }\n ]\n },\n 'format': {\n 'anyOf': [\n {\n 'type': 'string',\n 'enum': [\n 'date-time',\n 'uri',\n 'email',\n 'hostname',\n 'ipv4',\n 'ipv6',\n 'regex'\n ]\n },\n {\n 'type': 'string'\n }\n ]\n },\n 'allOf': {\n 'allOf': [\n {\n '$ref': '#/definitions/schemaArray'\n }\n ]\n },\n 'anyOf': {\n 'allOf': [\n {\n '$ref': '#/definitions/schemaArray'\n }\n ]\n },\n 'oneOf': {\n 'allOf': [\n {\n '$ref': '#/definitions/schemaArray'\n }\n ]\n },\n 'not': {\n 'allOf': [\n {\n '$ref': '#'\n }\n ]\n }\n },\n 'dependencies': {\n 'exclusiveMaximum': [\n 'maximum'\n ],\n 'exclusiveMinimum': [\n 'minimum'\n ]\n },\n 'default': {}\n },\n 'https://json-schema.org/draft-07/schema': {\n 'definitions': {\n 'schemaArray': {\n 'type': 'array',\n 'minItems': 1,\n 'items': { '$ref': '#' }\n },\n 'nonNegativeInteger': {\n 'type': 'integer',\n 'minimum': 0\n },\n 'nonNegativeIntegerDefault0': {\n 'allOf': [\n { '$ref': '#/definitions/nonNegativeInteger' },\n { 'default': 0 }\n ]\n },\n 'simpleTypes': {\n 'enum': [\n 'array',\n 'boolean',\n 'integer',\n 'null',\n 'number',\n 'object',\n 'string'\n ]\n },\n 'stringArray': {\n 'type': 'array',\n 'items': { 'type': 'string' },\n 'uniqueItems': true,\n 'default': []\n }\n },\n 'type': ['object', 'boolean'],\n 'properties': {\n '$id': {\n 'type': 'string',\n 'format': 'uri-reference'\n },\n '$schema': {\n 'type': 'string',\n 'format': 'uri'\n },\n '$ref': {\n 'type': 'string',\n 'format': 'uri-reference'\n },\n '$comment': {\n 'type': 'string'\n },\n 'title': {\n 'type': 'string'\n },\n 'description': {\n 'type': 'string'\n },\n 'default': true,\n 'readOnly': {\n 'type': 'boolean',\n 'default': false\n },\n 'examples': {\n 'type': 'array',\n 'items': true\n },\n 'multipleOf': {\n 'type': 'number',\n 'exclusiveMinimum': 0\n },\n 'maximum': {\n 'type': 'number'\n },\n 'exclusiveMaximum': {\n 'type': 'number'\n },\n 'minimum': {\n 'type': 'number'\n },\n 'exclusiveMinimum': {\n 'type': 'number'\n },\n 'maxLength': { '$ref': '#/definitions/nonNegativeInteger' },\n 'minLength': { '$ref': '#/definitions/nonNegativeIntegerDefault0' },\n 'pattern': {\n 'type': 'string',\n 'format': 'regex'\n },\n 'additionalItems': { '$ref': '#' },\n 'items': {\n 'anyOf': [\n { '$ref': '#' },\n { '$ref': '#/definitions/schemaArray' }\n ],\n 'default': true\n },\n 'maxItems': { '$ref': '#/definitions/nonNegativeInteger' },\n 'minItems': { '$ref': '#/definitions/nonNegativeIntegerDefault0' },\n 'uniqueItems': {\n 'type': 'boolean',\n 'default': false\n },\n 'contains': { '$ref': '#' },\n 'maxProperties': { '$ref': '#/definitions/nonNegativeInteger' },\n 'minProperties': { '$ref': '#/definitions/nonNegativeIntegerDefault0' },\n 'required': { '$ref': '#/definitions/stringArray' },\n 'additionalProperties': { '$ref': '#' },\n 'definitions': {\n 'type': 'object',\n 'additionalProperties': { '$ref': '#' },\n 'default': {}\n },\n 'properties': {\n 'type': 'object',\n 'additionalProperties': { '$ref': '#' },\n 'default': {}\n },\n 'patternProperties': {\n 'type': 'object',\n 'additionalProperties': { '$ref': '#' },\n 'propertyNames': { 'format': 'regex' },\n 'default': {}\n },\n 'dependencies': {\n 'type': 'object',\n 'additionalProperties': {\n 'anyOf': [\n { '$ref': '#' },\n { '$ref': '#/definitions/stringArray' }\n ]\n }\n },\n 'propertyNames': { '$ref': '#' },\n 'const': true,\n 'enum': {\n 'type': 'array',\n 'items': true,\n 'minItems': 1,\n 'uniqueItems': true\n },\n 'type': {\n 'anyOf': [\n { '$ref': '#/definitions/simpleTypes' },\n {\n 'type': 'array',\n 'items': { '$ref': '#/definitions/simpleTypes' },\n 'minItems': 1,\n 'uniqueItems': true\n }\n ]\n },\n 'format': { 'type': 'string' },\n 'contentMediaType': { 'type': 'string' },\n 'contentEncoding': { 'type': 'string' },\n 'if': { '$ref': '#' },\n 'then': { '$ref': '#' },\n 'else': { '$ref': '#' },\n 'allOf': { '$ref': '#/definitions/schemaArray' },\n 'anyOf': { '$ref': '#/definitions/schemaArray' },\n 'oneOf': { '$ref': '#/definitions/schemaArray' },\n 'not': { '$ref': '#' }\n },\n 'default': true\n },\n 'https://json-schema.org/draft/2020-12/schema': draft202012Flat,\n 'https://json-schema.org/draft/2019-09/schema': draft201909Flat\n }\n};\nconst descriptions = {\n id: l10n.t(\"A unique identifier for the schema.\"),\n $schema: l10n.t(\"The schema to verify this document against.\"),\n title: l10n.t(\"A descriptive title of the schema.\"),\n description: l10n.t(\"A long description of the schema. Used in hover menus and suggestions.\"),\n default: l10n.t(\"A default value. Used by suggestions.\"),\n multipleOf: l10n.t(\"A number that should cleanly divide the current value (i.e. have no remainder).\"),\n maximum: l10n.t(\"The maximum numerical value, inclusive by default.\"),\n exclusiveMaximum: l10n.t(\"Makes the maximum property exclusive.\"),\n minimum: l10n.t(\"The minimum numerical value, inclusive by default.\"),\n exclusiveMinimum: l10n.t(\"Makes the minimum property exclusive.\"),\n maxLength: l10n.t(\"The maximum length of a string.\"),\n minLength: l10n.t(\"The minimum length of a string.\"),\n pattern: l10n.t(\"A regular expression to match the string against. It is not implicitly anchored.\"),\n additionalItems: l10n.t(\"For arrays, only when items is set as an array. If items are a schema, this schema validates items after the ones specified by the items schema. If false, additional items will cause validation to fail.\"),\n items: l10n.t(\"For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on.\"),\n maxItems: l10n.t(\"The maximum number of items that can be inside an array. Inclusive.\"),\n minItems: l10n.t(\"The minimum number of items that can be inside an array. Inclusive.\"),\n uniqueItems: l10n.t(\"If all of the items in the array must be unique. Defaults to false.\"),\n maxProperties: l10n.t(\"The maximum number of properties an object can have. Inclusive.\"),\n minProperties: l10n.t(\"The minimum number of properties an object can have. Inclusive.\"),\n required: l10n.t(\"An array of strings that lists the names of all properties required on this object.\"),\n additionalProperties: l10n.t(\"Either a schema or a boolean. If a schema, used to validate all properties not matched by 'properties', 'propertyNames', or 'patternProperties'. If false, any properties not defined by the adjacent keywords will cause this schema to fail.\"),\n definitions: l10n.t(\"Not used for validation. Place subschemas here that you wish to reference inline with $ref.\"),\n properties: l10n.t(\"A map of property names to schemas for each property.\"),\n patternProperties: l10n.t(\"A map of regular expressions on property names to schemas for matching properties.\"),\n dependencies: l10n.t(\"A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object.\"),\n enum: l10n.t(\"The set of literal values that are valid.\"),\n type: l10n.t(\"Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types.\"),\n format: l10n.t(\"Describes the format expected for the value. By default, not used for validation\"),\n allOf: l10n.t(\"An array of schemas, all of which must match.\"),\n anyOf: l10n.t(\"An array of schemas, where at least one must match.\"),\n oneOf: l10n.t(\"An array of schemas, exactly one of which must match.\"),\n not: l10n.t(\"A schema which must not match.\"),\n $id: l10n.t(\"A unique identifier for the schema.\"),\n $ref: l10n.t(\"Reference a definition hosted on any location.\"),\n $comment: l10n.t(\"Comments from schema authors to readers or maintainers of the schema.\"),\n readOnly: l10n.t(\"Indicates that the value of the instance is managed exclusively by the owning authority.\"),\n examples: l10n.t(\"Sample JSON values associated with a particular schema, for the purpose of illustrating usage.\"),\n contains: l10n.t(\"An array instance is valid against \\\"contains\\\" if at least one of its elements is valid against the given schema.\"),\n propertyNames: l10n.t(\"If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema.\"),\n const: l10n.t(\"An instance validates successfully against this keyword if its value is equal to the value of the keyword.\"),\n contentMediaType: l10n.t(\"Describes the media type of a string property.\"),\n contentEncoding: l10n.t(\"Describes the content encoding of a string property.\"),\n if: l10n.t(\"The validation outcome of the \\\"if\\\" subschema controls which of the \\\"then\\\" or \\\"else\\\" keywords are evaluated.\"),\n then: l10n.t(\"The \\\"then\\\" subschema is used for validation when the \\\"if\\\" subschema succeeds.\"),\n else: l10n.t(\"The \\\"else\\\" subschema is used for validation when the \\\"if\\\" subschema fails.\")\n};\nfor (const schemaName in schemaContributions.schemas) {\n const schema = schemaContributions.schemas[schemaName];\n for (const property in schema.properties) {\n let propertyObject = schema.properties[property];\n if (typeof propertyObject === 'boolean') {\n propertyObject = schema.properties[property] = {};\n }\n const description = descriptions[property];\n if (description) {\n propertyObject['description'] = description;\n }\n }\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Copyright (c) 2013, Nick Fitzgerald\n * Licensed under the MIT License. See LICENCE.md in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function createRegex(glob, opts) {\n if (typeof glob !== 'string') {\n throw new TypeError('Expected a string');\n }\n const str = String(glob);\n // The regexp we are building, as a string.\n let reStr = \"\";\n // Whether we are matching so called \"extended\" globs (like bash) and should\n // support single character matching, matching ranges of characters, group\n // matching, etc.\n const extended = opts ? !!opts.extended : false;\n // When globstar is _false_ (default), '/foo/*' is translated a regexp like\n // '^\\/foo\\/.*$' which will match any string beginning with '/foo/'\n // When globstar is _true_, '/foo/*' is translated to regexp like\n // '^\\/foo\\/[^/]*$' which will match any string beginning with '/foo/' BUT\n // which does not have a '/' to the right of it.\n // E.g. with '/foo/*' these will match: '/foo/bar', '/foo/bar.txt' but\n // these will not '/foo/bar/baz', '/foo/bar/baz.txt'\n // Lastely, when globstar is _true_, '/foo/**' is equivelant to '/foo/*' when\n // globstar is _false_\n const globstar = opts ? !!opts.globstar : false;\n // If we are doing extended matching, this boolean is true when we are inside\n // a group (eg {*.html,*.js}), and false otherwise.\n let inGroup = false;\n // RegExp flags (eg \"i\" ) to pass in to RegExp constructor.\n const flags = opts && typeof (opts.flags) === \"string\" ? opts.flags : \"\";\n let c;\n for (let i = 0, len = str.length; i < len; i++) {\n c = str[i];\n switch (c) {\n case \"/\":\n case \"$\":\n case \"^\":\n case \"+\":\n case \".\":\n case \"(\":\n case \")\":\n case \"=\":\n case \"!\":\n case \"|\":\n reStr += \"\\\\\" + c;\n break;\n case \"?\":\n if (extended) {\n reStr += \".\";\n break;\n }\n case \"[\":\n case \"]\":\n if (extended) {\n reStr += c;\n break;\n }\n case \"{\":\n if (extended) {\n inGroup = true;\n reStr += \"(\";\n break;\n }\n case \"}\":\n if (extended) {\n inGroup = false;\n reStr += \")\";\n break;\n }\n case \",\":\n if (inGroup) {\n reStr += \"|\";\n break;\n }\n reStr += \"\\\\\" + c;\n break;\n case \"*\":\n // Move over all consecutive \"*\"'s.\n // Also store the previous and next characters\n const prevChar = str[i - 1];\n let starCount = 1;\n while (str[i + 1] === \"*\") {\n starCount++;\n i++;\n }\n const nextChar = str[i + 1];\n if (!globstar) {\n // globstar is disabled, so treat any number of \"*\" as one\n reStr += \".*\";\n }\n else {\n // globstar is enabled, so determine if this is a globstar segment\n const isGlobstar = starCount > 1 // multiple \"*\"'s\n && (prevChar === \"/\" || prevChar === undefined || prevChar === '{' || prevChar === ',') // from the start of the segment\n && (nextChar === \"/\" || nextChar === undefined || nextChar === ',' || nextChar === '}'); // to the end of the segment\n if (isGlobstar) {\n if (nextChar === \"/\") {\n i++; // move over the \"/\"\n }\n else if (prevChar === '/' && reStr.endsWith('\\\\/')) {\n reStr = reStr.substr(0, reStr.length - 2);\n }\n // it's a globstar, so match zero or more path segments\n reStr += \"((?:[^/]*(?:\\/|$))*)\";\n }\n else {\n // it's not a globstar, so only match one path segment\n reStr += \"([^/]*)\";\n }\n }\n break;\n default:\n reStr += c;\n }\n }\n // When regexp 'g' flag is specified don't\n // constrain the regular expression with ^ & $\n if (!flags || !~flags.indexOf('g')) {\n reStr = \"^\" + reStr + \"$\";\n }\n return new RegExp(reStr, flags);\n}\n;\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 *--------------------------------------------------------------------------------------------*/\nimport * as Json from 'jsonc-parser';\nimport { URI } from 'vscode-uri';\nimport * as Strings from '../utils/strings.js';\nimport { asSchema, getSchemaDraftFromId, normalizeId } from '../parser/jsonParser.js';\nimport { SchemaDraft, ErrorCode } from '../jsonLanguageTypes.js';\nimport * as l10n from '@vscode/l10n';\nimport { createRegex } from '../utils/glob.js';\nimport { isObject, isString } from '../utils/objects.js';\nimport { Range } from 'vscode-languageserver-types';\nconst BANG = '!';\nconst PATH_SEP = '/';\nclass FilePatternAssociation {\n constructor(pattern, folderUri, uris) {\n this.folderUri = folderUri;\n this.uris = uris;\n this.globWrappers = [];\n try {\n for (let patternString of pattern) {\n const include = patternString[0] !== BANG;\n if (!include) {\n patternString = patternString.substring(1);\n }\n if (patternString.length > 0) {\n if (patternString[0] === PATH_SEP) {\n patternString = patternString.substring(1);\n }\n this.globWrappers.push({\n regexp: createRegex('**/' + patternString, { extended: true, globstar: true }),\n include: include,\n });\n }\n }\n ;\n if (folderUri) {\n folderUri = normalizeResourceForMatching(folderUri);\n if (!folderUri.endsWith('/')) {\n folderUri = folderUri + '/';\n }\n this.folderUri = folderUri;\n }\n }\n catch (e) {\n this.globWrappers.length = 0;\n this.uris = [];\n }\n }\n matchesPattern(fileName) {\n if (this.folderUri && !fileName.startsWith(this.folderUri)) {\n return false;\n }\n let match = false;\n for (const { regexp, include } of this.globWrappers) {\n if (regexp.test(fileName)) {\n match = include;\n }\n }\n return match;\n }\n getURIs() {\n return this.uris;\n }\n}\nclass SchemaHandle {\n constructor(service, uri, unresolvedSchemaContent) {\n this.service = service;\n this.uri = uri;\n this.dependencies = new Set();\n this.anchors = undefined;\n if (unresolvedSchemaContent) {\n this.unresolvedSchema = this.service.promise.resolve(new UnresolvedSchema(unresolvedSchemaContent));\n }\n }\n getUnresolvedSchema() {\n if (!this.unresolvedSchema) {\n this.unresolvedSchema = this.service.loadSchema(this.uri);\n }\n return this.unresolvedSchema;\n }\n getResolvedSchema() {\n if (!this.resolvedSchema) {\n this.resolvedSchema = this.getUnresolvedSchema().then(unresolved => {\n return this.service.resolveSchemaContent(unresolved, this);\n });\n }\n return this.resolvedSchema;\n }\n clearSchema() {\n const hasChanges = !!this.unresolvedSchema;\n this.resolvedSchema = undefined;\n this.unresolvedSchema = undefined;\n this.dependencies.clear();\n this.anchors = undefined;\n return hasChanges;\n }\n}\nexport class UnresolvedSchema {\n constructor(schema, errors = []) {\n this.schema = schema;\n this.errors = errors;\n }\n}\nfunction toDiagnostic(message, code, relatedURL) {\n const relatedInformation = relatedURL ? [{\n location: { uri: relatedURL, range: Range.create(0, 0, 0, 0) },\n message\n }] : undefined;\n return { message, code, relatedInformation };\n}\nexport class ResolvedSchema {\n constructor(schema, errors = [], warnings = [], schemaDraft) {\n this.schema = schema;\n this.errors = errors;\n this.warnings = warnings;\n this.schemaDraft = schemaDraft;\n }\n getSection(path) {\n const schemaRef = this.getSectionRecursive(path, this.schema);\n if (schemaRef) {\n return asSchema(schemaRef);\n }\n return undefined;\n }\n getSectionRecursive(path, schema) {\n if (!schema || typeof schema === 'boolean' || path.length === 0) {\n return schema;\n }\n const next = path.shift();\n if (schema.properties && typeof schema.properties[next]) {\n return this.getSectionRecursive(path, schema.properties[next]);\n }\n else if (schema.patternProperties) {\n for (const pattern of Object.keys(schema.patternProperties)) {\n const regex = Strings.extendedRegExp(pattern);\n if (regex?.test(next)) {\n return this.getSectionRecursive(path, schema.patternProperties[pattern]);\n }\n }\n }\n else if (typeof schema.additionalProperties === 'object') {\n return this.getSectionRecursive(path, schema.additionalProperties);\n }\n else if (next.match('[0-9]+')) {\n if (Array.isArray(schema.items)) {\n const index = parseInt(next, 10);\n if (!isNaN(index) && schema.items[index]) {\n return this.getSectionRecursive(path, schema.items[index]);\n }\n }\n else if (schema.items) {\n return this.getSectionRecursive(path, schema.items);\n }\n }\n return undefined;\n }\n}\nexport class JSONSchemaService {\n constructor(requestService, contextService, promiseConstructor) {\n this.contextService = contextService;\n this.requestService = requestService;\n this.promiseConstructor = promiseConstructor || Promise;\n this.callOnDispose = [];\n this.contributionSchemas = {};\n this.contributionAssociations = [];\n this.schemasById = {};\n this.filePatternAssociations = [];\n this.registeredSchemasIds = {};\n }\n getRegisteredSchemaIds(filter) {\n return Object.keys(this.registeredSchemasIds).filter(id => {\n const scheme = URI.parse(id).scheme;\n return scheme !== 'schemaservice' && (!filter || filter(scheme));\n });\n }\n get promise() {\n return this.promiseConstructor;\n }\n dispose() {\n while (this.callOnDispose.length > 0) {\n this.callOnDispose.pop()();\n }\n }\n onResourceChange(uri) {\n // always clear this local cache when a resource changes\n this.cachedSchemaForResource = undefined;\n let hasChanges = false;\n uri = normalizeId(uri);\n const toWalk = [uri];\n const all = Object.keys(this.schemasById).map(key => this.schemasById[key]);\n while (toWalk.length) {\n const curr = toWalk.pop();\n for (let i = 0; i < all.length; i++) {\n const handle = all[i];\n if (handle && (handle.uri === curr || handle.dependencies.has(curr))) {\n if (handle.uri !== curr) {\n toWalk.push(handle.uri);\n }\n if (handle.clearSchema()) {\n hasChanges = true;\n }\n all[i] = undefined;\n }\n }\n }\n return hasChanges;\n }\n setSchemaContributions(schemaContributions) {\n if (schemaContributions.schemas) {\n const schemas = schemaContributions.schemas;\n for (const id in schemas) {\n const normalizedId = normalizeId(id);\n this.contributionSchemas[normalizedId] = this.addSchemaHandle(normalizedId, schemas[id]);\n }\n }\n if (Array.isArray(schemaContributions.schemaAssociations)) {\n const schemaAssociations = schemaContributions.schemaAssociations;\n for (let schemaAssociation of schemaAssociations) {\n const uris = schemaAssociation.uris.map(normalizeId);\n const association = this.addFilePatternAssociation(schemaAssociation.pattern, schemaAssociation.folderUri, uris);\n this.contributionAssociations.push(association);\n }\n }\n }\n addSchemaHandle(id, unresolvedSchemaContent) {\n const schemaHandle = new SchemaHandle(this, id, unresolvedSchemaContent);\n this.schemasById[id] = schemaHandle;\n return schemaHandle;\n }\n getOrAddSchemaHandle(id, unresolvedSchemaContent) {\n return this.schemasById[id] || this.addSchemaHandle(id, unresolvedSchemaContent);\n }\n addFilePatternAssociation(pattern, folderUri, uris) {\n const fpa = new FilePatternAssociation(pattern, folderUri, uris);\n this.filePatternAssociations.push(fpa);\n return fpa;\n }\n registerExternalSchema(config) {\n const id = normalizeId(config.uri);\n this.registeredSchemasIds[id] = true;\n this.cachedSchemaForResource = undefined;\n if (config.fileMatch && config.fileMatch.length) {\n this.addFilePatternAssociation(config.fileMatch, config.folderUri, [id]);\n }\n return config.schema ? this.addSchemaHandle(id, config.schema) : this.getOrAddSchemaHandle(id);\n }\n clearExternalSchemas() {\n this.schemasById = {};\n this.filePatternAssociations = [];\n this.registeredSchemasIds = {};\n this.cachedSchemaForResource = undefined;\n for (const id in this.contributionSchemas) {\n this.schemasById[id] = this.contributionSchemas[id];\n this.registeredSchemasIds[id] = true;\n }\n for (const contributionAssociation of this.contributionAssociations) {\n this.filePatternAssociations.push(contributionAssociation);\n }\n }\n getResolvedSchema(schemaId) {\n const id = normalizeId(schemaId);\n const schemaHandle = this.schemasById[id];\n if (schemaHandle) {\n return schemaHandle.getResolvedSchema();\n }\n return this.promise.resolve(undefined);\n }\n loadSchema(url) {\n if (!this.requestService) {\n const errorMessage = l10n.t('Unable to load schema from \\'{0}\\'. No schema request service available', toDisplayString(url));\n return this.promise.resolve(new UnresolvedSchema({}, [toDiagnostic(errorMessage, ErrorCode.SchemaResolveError, url)]));\n }\n return this.requestService(url).then(content => {\n if (!content) {\n const errorMessage = l10n.t('Unable to load schema from \\'{0}\\': No content.', toDisplayString(url));\n return new UnresolvedSchema({}, [toDiagnostic(errorMessage, ErrorCode.SchemaResolveError, url)]);\n }\n const errors = [];\n if (content.charCodeAt(0) === 65279) {\n errors.push(toDiagnostic(l10n.t('Problem reading content from \\'{0}\\': UTF-8 with BOM detected, only UTF 8 is allowed.', toDisplayString(url)), ErrorCode.SchemaResolveError, url));\n content = content.trimStart();\n }\n let schemaContent = {};\n const jsonErrors = [];\n schemaContent = Json.parse(content, jsonErrors);\n if (jsonErrors.length) {\n errors.push(toDiagnostic(l10n.t('Unable to parse content from \\'{0}\\': Parse error at offset {1}.', toDisplayString(url), jsonErrors[0].offset), ErrorCode.SchemaResolveError, url));\n }\n return new UnresolvedSchema(schemaContent, errors);\n }, (error) => {\n let { message, code } = error;\n if (typeof message !== 'string') {\n let errorMessage = error.toString();\n const errorSplit = error.toString().split('Error: ');\n if (errorSplit.length > 1) {\n // more concise error message, URL and context are attached by caller anyways\n errorMessage = errorSplit[1];\n }\n if (Strings.endsWith(errorMessage, '.')) {\n errorMessage = errorMessage.substr(0, errorMessage.length - 1);\n }\n message = errorMessage;\n }\n let errorCode = ErrorCode.SchemaResolveError;\n if (typeof code === 'number' && code < 0x10000) {\n errorCode += code;\n }\n const errorMessage = l10n.t('Unable to load schema from \\'{0}\\': {1}.', toDisplayString(url), message);\n return new UnresolvedSchema({}, [toDiagnostic(errorMessage, errorCode, url)]);\n });\n }\n resolveSchemaContent(schemaToResolve, handle) {\n const resolveErrors = schemaToResolve.errors.slice(0);\n const schema = schemaToResolve.schema;\n const schemaDraft = schema.$schema ? getSchemaDraftFromId(schema.$schema) : undefined;\n if (schemaDraft === SchemaDraft.v3) {\n return this.promise.resolve(new ResolvedSchema({}, [toDiagnostic(l10n.t(\"Draft-03 schemas are not supported.\"), ErrorCode.SchemaUnsupportedFeature)], [], schemaDraft));\n }\n let usesUnsupportedFeatures = new Set();\n const contextService = this.contextService;\n const findSectionByJSONPointer = (schema, path) => {\n path = decodeURIComponent(path);\n let current = schema;\n if (path[0] === '/') {\n path = path.substring(1);\n }\n path.split('/').some((part) => {\n part = part.replace(/~1/g, '/').replace(/~0/g, '~');\n current = current[part];\n return !current;\n });\n return current;\n };\n const findSchemaById = (schema, handle, id) => {\n if (!handle.anchors) {\n handle.anchors = collectAnchors(schema);\n }\n return handle.anchors.get(id);\n };\n const merge = (target, section) => {\n for (const key in section) {\n if (section.hasOwnProperty(key) && key !== 'id' && key !== '$id') {\n target[key] = section[key];\n }\n }\n };\n const mergeRef = (target, sourceRoot, sourceHandle, refSegment) => {\n let section;\n if (refSegment === undefined || refSegment.length === 0) {\n section = sourceRoot;\n }\n else if (refSegment.charAt(0) === '/') {\n // A $ref to a JSON Pointer (i.e #/definitions/foo)\n section = findSectionByJSONPointer(sourceRoot, refSegment);\n }\n else {\n // A $ref to a sub-schema with an $id (i.e #hello)\n section = findSchemaById(sourceRoot, sourceHandle, refSegment);\n }\n if (section) {\n merge(target, section);\n }\n else {\n const message = l10n.t('$ref \\'{0}\\' in \\'{1}\\' can not be resolved.', refSegment || '', sourceHandle.uri);\n resolveErrors.push(toDiagnostic(message, ErrorCode.SchemaResolveError));\n }\n };\n const resolveExternalLink = (node, uri, refSegment, parentHandle) => {\n if (contextService && !/^[A-Za-z][A-Za-z0-9+\\-.+]*:\\/.*/.test(uri)) {\n uri = contextService.resolveRelativePath(uri, parentHandle.uri);\n }\n uri = normalizeId(uri);\n const referencedHandle = this.getOrAddSchemaHandle(uri);\n return referencedHandle.getUnresolvedSchema().then(unresolvedSchema => {\n parentHandle.dependencies.add(uri);\n if (unresolvedSchema.errors.length) {\n const error = unresolvedSchema.errors[0];\n const loc = refSegment ? uri + '#' + refSegment : uri;\n const errorMessage = refSegment ? l10n.t('Problems loading reference \\'{0}\\': {1}', refSegment, error.message) : error.message;\n resolveErrors.push(toDiagnostic(errorMessage, error.code, uri));\n }\n mergeRef(node, unresolvedSchema.schema, referencedHandle, refSegment);\n return resolveRefs(node, unresolvedSchema.schema, referencedHandle);\n });\n };\n const resolveRefs = (node, parentSchema, parentHandle) => {\n const openPromises = [];\n this.traverseNodes(node, next => {\n const seenRefs = new Set();\n while (next.$ref) {\n const ref = next.$ref;\n const segments = ref.split('#', 2);\n delete next.$ref;\n if (segments[0].length > 0) {\n // This is a reference to an external schema\n openPromises.push(resolveExternalLink(next, segments[0], segments[1], parentHandle));\n return;\n }\n else {\n // This is a reference inside the current schema\n if (!seenRefs.has(ref)) {\n const id = segments[1];\n mergeRef(next, parentSchema, parentHandle, id);\n seenRefs.add(ref);\n }\n }\n }\n if (next.$recursiveRef) {\n usesUnsupportedFeatures.add('$recursiveRef');\n }\n if (next.$dynamicRef) {\n usesUnsupportedFeatures.add('$dynamicRef');\n }\n });\n return this.promise.all(openPromises);\n };\n const collectAnchors = (root) => {\n const result = new Map();\n this.traverseNodes(root, next => {\n const id = next.$id || next.id;\n const anchor = isString(id) && id.charAt(0) === '#' ? id.substring(1) : next.$anchor;\n if (anchor) {\n if (result.has(anchor)) {\n resolveErrors.push(toDiagnostic(l10n.t('Duplicate anchor declaration: \\'{0}\\'', anchor), ErrorCode.SchemaResolveError));\n }\n else {\n result.set(anchor, next);\n }\n }\n if (next.$recursiveAnchor) {\n usesUnsupportedFeatures.add('$recursiveAnchor');\n }\n if (next.$dynamicAnchor) {\n usesUnsupportedFeatures.add('$dynamicAnchor');\n }\n });\n return result;\n };\n return resolveRefs(schema, schema, handle).then(_ => {\n let resolveWarnings = [];\n if (usesUnsupportedFeatures.size) {\n resolveWarnings.push(toDiagnostic(l10n.t('The schema uses meta-schema features ({0}) that are not yet supported by the validator.', Array.from(usesUnsupportedFeatures.keys()).join(', ')), ErrorCode.SchemaUnsupportedFeature));\n }\n return new ResolvedSchema(schema, resolveErrors, resolveWarnings, schemaDraft);\n });\n }\n traverseNodes(root, handle) {\n if (!root || typeof root !== 'object') {\n return Promise.resolve(null);\n }\n const seen = new Set();\n const collectEntries = (...entries) => {\n for (const entry of entries) {\n if (isObject(entry)) {\n toWalk.push(entry);\n }\n }\n };\n const collectMapEntries = (...maps) => {\n for (const map of maps) {\n if (isObject(map)) {\n for (const k in map) {\n const key = k;\n const entry = map[key];\n if (isObject(entry)) {\n toWalk.push(entry);\n }\n }\n }\n }\n };\n const collectArrayEntries = (...arrays) => {\n for (const array of arrays) {\n if (Array.isArray(array)) {\n for (const entry of array) {\n if (isObject(entry)) {\n toWalk.push(entry);\n }\n }\n }\n }\n };\n const collectEntryOrArrayEntries = (items) => {\n if (Array.isArray(items)) {\n for (const entry of items) {\n if (isObject(entry)) {\n toWalk.push(entry);\n }\n }\n }\n else if (isObject(items)) {\n toWalk.push(items);\n }\n };\n const toWalk = [root];\n let next = toWalk.pop();\n while (next) {\n if (!seen.has(next)) {\n seen.add(next);\n handle(next);\n collectEntries(next.additionalItems, next.additionalProperties, next.not, next.contains, next.propertyNames, next.if, next.then, next.else, next.unevaluatedItems, next.unevaluatedProperties);\n collectMapEntries(next.definitions, next.$defs, next.properties, next.patternProperties, next.dependencies, next.dependentSchemas);\n collectArrayEntries(next.anyOf, next.allOf, next.oneOf, next.prefixItems);\n collectEntryOrArrayEntries(next.items);\n }\n next = toWalk.pop();\n }\n }\n ;\n getSchemaFromProperty(resource, document) {\n if (document.root?.type === 'object') {\n for (const p of document.root.properties) {\n if (p.keyNode.value === '$schema' && p.valueNode?.type === 'string') {\n let schemaId = p.valueNode.value;\n if (this.contextService && !/^\\w[\\w\\d+.-]*:/.test(schemaId)) { // has scheme\n schemaId = this.contextService.resolveRelativePath(schemaId, resource);\n }\n return schemaId;\n }\n }\n }\n return undefined;\n }\n getAssociatedSchemas(resource) {\n const seen = Object.create(null);\n const schemas = [];\n const normalizedResource = normalizeResourceForMatching(resource);\n for (const entry of this.filePatternAssociations) {\n if (entry.matchesPattern(normalizedResource)) {\n for (const schemaId of entry.getURIs()) {\n if (!seen[schemaId]) {\n schemas.push(schemaId);\n seen[schemaId] = true;\n }\n }\n }\n }\n return schemas;\n }\n getSchemaURIsForResource(resource, document) {\n let schemeId = document && this.getSchemaFromProperty(resource, document);\n if (schemeId) {\n return [schemeId];\n }\n return this.getAssociatedSchemas(resource);\n }\n getSchemaForResource(resource, document) {\n if (document) {\n // first use $schema if present\n let schemeId = this.getSchemaFromProperty(resource, document);\n if (schemeId) {\n const id = normalizeId(schemeId);\n return this.getOrAddSchemaHandle(id).getResolvedSchema();\n }\n }\n if (this.cachedSchemaForResource && this.cachedSchemaForResource.resource === resource) {\n return this.cachedSchemaForResource.resolvedSchema;\n }\n const schemas = this.getAssociatedSchemas(resource);\n const resolvedSchema = schemas.length > 0 ? this.createCombinedSchema(resource, schemas).getResolvedSchema() : this.promise.resolve(undefined);\n this.cachedSchemaForResource = { resource, resolvedSchema };\n return resolvedSchema;\n }\n createCombinedSchema(resource, schemaIds) {\n if (schemaIds.length === 1) {\n return this.getOrAddSchemaHandle(schemaIds[0]);\n }\n else {\n const combinedSchemaId = 'schemaservice://combinedSchema/' + encodeURIComponent(resource);\n const combinedSchema = {\n allOf: schemaIds.map(schemaId => ({ $ref: schemaId }))\n };\n return this.addSchemaHandle(combinedSchemaId, combinedSchema);\n }\n }\n getMatchingSchemas(document, jsonDocument, schema) {\n if (schema) {\n const id = schema.id || ('schemaservice://untitled/matchingSchemas/' + idCounter++);\n const handle = this.addSchemaHandle(id, schema);\n return handle.getResolvedSchema().then(resolvedSchema => {\n return jsonDocument.getMatchingSchemas(resolvedSchema.schema).filter(s => !s.inverted);\n });\n }\n return this.getSchemaForResource(document.uri, jsonDocument).then(schema => {\n if (schema) {\n return jsonDocument.getMatchingSchemas(schema.schema).filter(s => !s.inverted);\n }\n return [];\n });\n }\n}\nlet idCounter = 0;\nfunction normalizeResourceForMatching(resource) {\n // remove queries and fragments, normalize drive capitalization\n try {\n return URI.parse(resource).with({ fragment: null, query: null }).toString(true);\n }\n catch (e) {\n return resource;\n }\n}\nfunction toDisplayString(url) {\n try {\n const uri = URI.parse(url);\n if (uri.scheme === 'file') {\n return uri.fsPath;\n }\n }\n catch (e) {\n // ignore\n }\n return url;\n}\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 *--------------------------------------------------------------------------------------------*/\nimport { createScanner } from 'jsonc-parser';\nimport { FoldingRangeKind, Position } from '../jsonLanguageTypes.js';\nexport function getFoldingRanges(document, context) {\n const ranges = [];\n const nestingLevels = [];\n const stack = [];\n let prevStart = -1;\n const scanner = createScanner(document.getText(), false);\n let token = scanner.scan();\n function addRange(range) {\n ranges.push(range);\n nestingLevels.push(stack.length);\n }\n while (token !== 17 /* SyntaxKind.EOF */) {\n switch (token) {\n case 1 /* SyntaxKind.OpenBraceToken */:\n case 3 /* SyntaxKind.OpenBracketToken */: {\n const startLine = document.positionAt(scanner.getTokenOffset()).line;\n const range = { startLine, endLine: startLine, kind: token === 1 /* SyntaxKind.OpenBraceToken */ ? 'object' : 'array' };\n stack.push(range);\n break;\n }\n case 2 /* SyntaxKind.CloseBraceToken */:\n case 4 /* SyntaxKind.CloseBracketToken */: {\n const kind = token === 2 /* SyntaxKind.CloseBraceToken */ ? 'object' : 'array';\n if (stack.length > 0 && stack[stack.length - 1].kind === kind) {\n const range = stack.pop();\n const line = document.positionAt(scanner.getTokenOffset()).line;\n if (range && line > range.startLine + 1 && prevStart !== range.startLine) {\n range.endLine = line - 1;\n addRange(range);\n prevStart = range.startLine;\n }\n }\n break;\n }\n case 13 /* SyntaxKind.BlockCommentTrivia */: {\n const startLine = document.positionAt(scanner.getTokenOffset()).line;\n const endLine = document.positionAt(scanner.getTokenOffset() + scanner.getTokenLength()).line;\n if (scanner.getTokenError() === 1 /* ScanError.UnexpectedEndOfComment */ && startLine + 1 < document.lineCount) {\n scanner.setPosition(document.offsetAt(Position.create(startLine + 1, 0)));\n }\n else {\n if (startLine < endLine) {\n addRange({ startLine, endLine, kind: FoldingRangeKind.Comment });\n prevStart = startLine;\n }\n }\n break;\n }\n case 12 /* SyntaxKind.LineCommentTrivia */: {\n const text = document.getText().substr(scanner.getTokenOffset(), scanner.getTokenLength());\n const m = text.match(/^\\/\\/\\s*#(region\\b)|(endregion\\b)/);\n if (m) {\n const line = document.positionAt(scanner.getTokenOffset()).line;\n if (m[1]) { // start pattern match\n const range = { startLine: line, endLine: line, kind: FoldingRangeKind.Region };\n stack.push(range);\n }\n else {\n let i = stack.length - 1;\n while (i >= 0 && stack[i].kind !== FoldingRangeKind.Region) {\n i--;\n }\n if (i >= 0) {\n const range = stack[i];\n stack.length = i;\n if (line > range.startLine && prevStart !== range.startLine) {\n range.endLine = line;\n addRange(range);\n prevStart = range.startLine;\n }\n }\n }\n }\n break;\n }\n }\n token = scanner.scan();\n }\n const rangeLimit = context && context.rangeLimit;\n if (typeof rangeLimit !== 'number' || ranges.length <= rangeLimit) {\n return ranges;\n }\n if (context && context.onRangeLimitExceeded) {\n context.onRangeLimitExceeded(document.uri);\n }\n const counts = [];\n for (let level of nestingLevels) {\n if (level < 30) {\n counts[level] = (counts[level] || 0) + 1;\n }\n }\n let entries = 0;\n let maxLevel = 0;\n for (let i = 0; i < counts.length; i++) {\n const n = counts[i];\n if (n) {\n if (n + entries > rangeLimit) {\n maxLevel = i;\n break;\n }\n entries += n;\n }\n }\n const result = [];\n for (let i = 0; i < ranges.length; i++) {\n const level = nestingLevels[i];\n if (typeof level === 'number') {\n if (level < maxLevel || (level === maxLevel && entries++ < rangeLimit)) {\n result.push(ranges[i]);\n }\n }\n }\n return result;\n}\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 *--------------------------------------------------------------------------------------------*/\nimport { Range, SelectionRange } from '../jsonLanguageTypes.js';\nimport { createScanner } from 'jsonc-parser';\nexport function getSelectionRanges(document, positions, doc) {\n function getSelectionRange(position) {\n let offset = document.offsetAt(position);\n let node = doc.getNodeFromOffset(offset, true);\n const result = [];\n while (node) {\n switch (node.type) {\n case 'string':\n case 'object':\n case 'array':\n // range without \", [ or {\n const cStart = node.offset + 1, cEnd = node.offset + node.length - 1;\n if (cStart < cEnd && offset >= cStart && offset <= cEnd) {\n result.push(newRange(cStart, cEnd));\n }\n result.push(newRange(node.offset, node.offset + node.length));\n break;\n case 'number':\n case 'boolean':\n case 'null':\n case 'property':\n result.push(newRange(node.offset, node.offset + node.length));\n break;\n }\n if (node.type === 'property' || node.parent && node.parent.type === 'array') {\n const afterCommaOffset = getOffsetAfterNextToken(node.offset + node.length, 5 /* SyntaxKind.CommaToken */);\n if (afterCommaOffset !== -1) {\n result.push(newRange(node.offset, afterCommaOffset));\n }\n }\n node = node.parent;\n }\n let current = undefined;\n for (let index = result.length - 1; index >= 0; index--) {\n current = SelectionRange.create(result[index], current);\n }\n if (!current) {\n current = SelectionRange.create(Range.create(position, position));\n }\n return current;\n }\n function newRange(start, end) {\n return Range.create(document.positionAt(start), document.positionAt(end));\n }\n const scanner = createScanner(document.getText(), true);\n function getOffsetAfterNextToken(offset, expectedToken) {\n scanner.setPosition(offset);\n let token = scanner.scan();\n if (token === expectedToken) {\n return scanner.getTokenOffset() + scanner.getTokenLength();\n }\n return -1;\n }\n return positions.map(getSelectionRange);\n}\n", "import { format as formatJSON } from 'jsonc-parser';\nimport { Range, TextEdit } from '../jsonLanguageTypes.js';\nexport function format(documentToFormat, formattingOptions, formattingRange) {\n let range = undefined;\n if (formattingRange) {\n const offset = documentToFormat.offsetAt(formattingRange.start);\n const length = documentToFormat.offsetAt(formattingRange.end) - offset;\n range = { offset, length };\n }\n const options = {\n tabSize: formattingOptions ? formattingOptions.tabSize : 4,\n insertSpaces: formattingOptions?.insertSpaces === true,\n insertFinalNewline: formattingOptions?.insertFinalNewline === true,\n eol: '\\n',\n keepLines: formattingOptions?.keepLines === true\n };\n return formatJSON(documentToFormat.getText(), range, options).map(edit => {\n return TextEdit.replace(Range.create(documentToFormat.positionAt(edit.offset), documentToFormat.positionAt(edit.offset + edit.length)), edit.content);\n });\n}\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*--------------------------------------------------------------------------------------------*/\nexport var Container;\n(function (Container) {\n Container[Container[\"Object\"] = 0] = \"Object\";\n Container[Container[\"Array\"] = 1] = \"Array\";\n})(Container || (Container = {}));\nexport class PropertyTree {\n constructor(propertyName, beginningLineNumber) {\n this.propertyName = propertyName ?? '';\n this.beginningLineNumber = beginningLineNumber;\n this.childrenProperties = [];\n this.lastProperty = false;\n this.noKeyName = false;\n }\n addChildProperty(childProperty) {\n childProperty.parent = this;\n if (this.childrenProperties.length > 0) {\n let insertionIndex = 0;\n if (childProperty.noKeyName) {\n insertionIndex = this.childrenProperties.length;\n }\n else {\n insertionIndex = binarySearchOnPropertyArray(this.childrenProperties, childProperty, compareProperties);\n }\n if (insertionIndex < 0) {\n insertionIndex = (insertionIndex * -1) - 1;\n }\n this.childrenProperties.splice(insertionIndex, 0, childProperty);\n }\n else {\n this.childrenProperties.push(childProperty);\n }\n return childProperty;\n }\n}\nfunction compareProperties(propertyTree1, propertyTree2) {\n const propertyName1 = propertyTree1.propertyName.toLowerCase();\n const propertyName2 = propertyTree2.propertyName.toLowerCase();\n if (propertyName1 < propertyName2) {\n return -1;\n }\n else if (propertyName1 > propertyName2) {\n return 1;\n }\n return 0;\n}\nfunction binarySearchOnPropertyArray(propertyTreeArray, propertyTree, compare_fn) {\n const propertyName = propertyTree.propertyName.toLowerCase();\n const firstPropertyInArrayName = propertyTreeArray[0].propertyName.toLowerCase();\n const lastPropertyInArrayName = propertyTreeArray[propertyTreeArray.length - 1].propertyName.toLowerCase();\n if (propertyName < firstPropertyInArrayName) {\n return 0;\n }\n if (propertyName > lastPropertyInArrayName) {\n return propertyTreeArray.length;\n }\n let m = 0;\n let n = propertyTreeArray.length - 1;\n while (m <= n) {\n let k = (n + m) >> 1;\n let cmp = compare_fn(propertyTree, propertyTreeArray[k]);\n if (cmp > 0) {\n m = k + 1;\n }\n else if (cmp < 0) {\n n = k - 1;\n }\n else {\n return k;\n }\n }\n return -m - 1;\n}\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*--------------------------------------------------------------------------------------------*/\nimport { createScanner } from 'jsonc-parser';\nimport { TextDocument, TextEdit, Position, Range } from '../jsonLanguageTypes.js';\nimport { format } from './format.js';\nimport { PropertyTree, Container } from './propertyTree.js';\nexport function sort(documentToSort, formattingOptions) {\n const options = {\n ...formattingOptions,\n keepLines: false, // keepLines must be false so that the properties are on separate lines for the sorting\n };\n const formattedJsonString = TextDocument.applyEdits(documentToSort, format(documentToSort, options, undefined));\n const formattedJsonDocument = TextDocument.create('test://test.json', 'json', 0, formattedJsonString);\n const jsonPropertyTree = findJsoncPropertyTree(formattedJsonDocument);\n const sortedJsonDocument = sortJsoncDocument(formattedJsonDocument, jsonPropertyTree);\n const edits = format(sortedJsonDocument, options, undefined);\n const sortedAndFormattedJsonDocument = TextDocument.applyEdits(sortedJsonDocument, edits);\n return [TextEdit.replace(Range.create(Position.create(0, 0), documentToSort.positionAt(documentToSort.getText().length)), sortedAndFormattedJsonDocument)];\n}\nfunction findJsoncPropertyTree(formattedDocument) {\n const formattedString = formattedDocument.getText();\n const scanner = createScanner(formattedString, false);\n // The tree that will be returned\n let rootTree = new PropertyTree();\n // The tree where the current properties can be added as children\n let currentTree = rootTree;\n // The tree representing the current property analyzed\n let currentProperty = rootTree;\n // The tree representing the previous property analyzed\n let lastProperty = rootTree;\n // The current scanned token\n let token = undefined;\n // Line number of the last token found\n let lastTokenLine = 0;\n // Total number of characters on the lines prior to current line \n let numberOfCharactersOnPreviousLines = 0;\n // The last token scanned that is not trivial, nor a comment\n let lastNonTriviaNonCommentToken = undefined;\n // The second to last token scanned that is not trivial, nor a comment\n let secondToLastNonTriviaNonCommentToken = undefined;\n // Line number of last token that is not trivial, nor a comment\n let lineOfLastNonTriviaNonCommentToken = -1;\n // End index on its line of last token that is not trivial, nor a comment\n let endIndexOfLastNonTriviaNonCommentToken = -1;\n // Line number of the start of the range of current/next property\n let beginningLineNumber = 0;\n // Line number of the end of the range of current/next property\n let endLineNumber = 0;\n // Stack indicating whether we are inside of an object or an array\n let currentContainerStack = [];\n // Boolean indicating that the current property end line number needs to be updated. Used only when block comments are encountered.\n let updateLastPropertyEndLineNumber = false;\n // Boolean indicating that the beginning line number should be updated. Used only when block comments are encountered. \n let updateBeginningLineNumber = false;\n while ((token = scanner.scan()) !== 17 /* SyntaxKind.EOF */) {\n // In the case when a block comment has been encountered that starts on the same line as the comma ending a property, update the end line of that\n // property so that it covers the block comment. For example, if we have: \n // 1. \"key\" : {}, /* some block\n // 2. comment */\n // Then, the end line of the property \"key\" should be line 2 not line 1\n if (updateLastPropertyEndLineNumber === true\n && token !== 14 /* SyntaxKind.LineBreakTrivia */\n && token !== 15 /* SyntaxKind.Trivia */\n && token !== 12 /* SyntaxKind.LineCommentTrivia */\n && token !== 13 /* SyntaxKind.BlockCommentTrivia */\n && currentProperty.endLineNumber === undefined) {\n let endLineNumber = scanner.getTokenStartLine();\n // Update the end line number in the case when the last property visited is a container (object or array)\n if (secondToLastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */\n || secondToLastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */) {\n lastProperty.endLineNumber = endLineNumber - 1;\n }\n // Update the end line number in the case when the last property visited is a simple property \n else {\n currentProperty.endLineNumber = endLineNumber - 1;\n }\n beginningLineNumber = endLineNumber;\n updateLastPropertyEndLineNumber = false;\n }\n // When a block comment follows an open brace or an open bracket, that block comment should be associated to that brace or bracket, not the property below it. For example, for:\n // 1. { /*\n // 2. ... */\n // 3. \"key\" : {}\n // 4. }\n // Instead of associating the block comment to the property on line 3, it is associate to the property on line 1\n if (updateBeginningLineNumber === true\n && token !== 14 /* SyntaxKind.LineBreakTrivia */\n && token !== 15 /* SyntaxKind.Trivia */\n && token !== 12 /* SyntaxKind.LineCommentTrivia */\n && token !== 13 /* SyntaxKind.BlockCommentTrivia */) {\n beginningLineNumber = scanner.getTokenStartLine();\n updateBeginningLineNumber = false;\n }\n // Update the number of characters on all the previous lines each time the new token is on a different line to the previous token\n if (scanner.getTokenStartLine() !== lastTokenLine) {\n for (let i = lastTokenLine; i < scanner.getTokenStartLine(); i++) {\n const lengthOfLine = formattedDocument.getText(Range.create(Position.create(i, 0), Position.create(i + 1, 0))).length;\n numberOfCharactersOnPreviousLines = numberOfCharactersOnPreviousLines + lengthOfLine;\n }\n lastTokenLine = scanner.getTokenStartLine();\n }\n switch (token) {\n // When a string is found, if it follows an open brace or a comma token and it is within an object, then it corresponds to a key name, not a simple string\n case 10 /* SyntaxKind.StringLiteral */: {\n if ((lastNonTriviaNonCommentToken === undefined\n || lastNonTriviaNonCommentToken === 1 /* SyntaxKind.OpenBraceToken */\n || (lastNonTriviaNonCommentToken === 5 /* SyntaxKind.CommaToken */\n && currentContainerStack[currentContainerStack.length - 1] === Container.Object))) {\n // In that case create the child property which starts at beginningLineNumber, add it to the current tree\n const childProperty = new PropertyTree(scanner.getTokenValue(), beginningLineNumber);\n lastProperty = currentProperty;\n currentProperty = currentTree.addChildProperty(childProperty);\n }\n break;\n }\n // When the token is an open bracket, then we enter into an array\n case 3 /* SyntaxKind.OpenBracketToken */: {\n // If the root tree beginning line number is not defined, then this open bracket is the first open bracket in the document\n if (rootTree.beginningLineNumber === undefined) {\n rootTree.beginningLineNumber = scanner.getTokenStartLine();\n }\n // Suppose we are inside of an object, then the current array is associated to a key, and has already been created\n // We have the following configuration: {\"a\": \"val\", \"array\": [...], \"b\": \"val\"}\n // In that case navigate down to the child property\n if (currentContainerStack[currentContainerStack.length - 1] === Container.Object) {\n currentTree = currentProperty;\n }\n // Suppose we are inside of an array, then since the current array is not associated to a key, it has not been created yet\n // We have the following configuration: [\"a\", [...], \"b\"]\n // In that case create the property and navigate down\n else if (currentContainerStack[currentContainerStack.length - 1] === Container.Array) {\n const childProperty = new PropertyTree(scanner.getTokenValue(), beginningLineNumber);\n childProperty.noKeyName = true;\n lastProperty = currentProperty;\n currentProperty = currentTree.addChildProperty(childProperty);\n currentTree = currentProperty;\n }\n currentContainerStack.push(Container.Array);\n currentProperty.type = Container.Array;\n beginningLineNumber = scanner.getTokenStartLine();\n beginningLineNumber++;\n break;\n }\n // When the token is an open brace, then we enter into an object\n case 1 /* SyntaxKind.OpenBraceToken */: {\n // If the root tree beginning line number is not defined, then this open brace is the first open brace in the document\n if (rootTree.beginningLineNumber === undefined) {\n rootTree.beginningLineNumber = scanner.getTokenStartLine();\n }\n // 1. If we are inside of an objet, the current object is associated to a key and has already been created\n // We have the following configuration: {\"a\": \"val\", \"object\": {...}, \"b\": \"val\"}\n // 2. Otherwise the current object property is inside of an array, not associated to a key name and the property has not yet been created\n // We have the following configuration: [\"a\", {...}, \"b\"]\n else if (currentContainerStack[currentContainerStack.length - 1] === Container.Array) {\n const childProperty = new PropertyTree(scanner.getTokenValue(), beginningLineNumber);\n childProperty.noKeyName = true;\n lastProperty = currentProperty;\n currentProperty = currentTree.addChildProperty(childProperty);\n }\n currentProperty.type = Container.Object;\n currentContainerStack.push(Container.Object);\n currentTree = currentProperty;\n beginningLineNumber = scanner.getTokenStartLine();\n beginningLineNumber++;\n break;\n }\n case 4 /* SyntaxKind.CloseBracketToken */: {\n endLineNumber = scanner.getTokenStartLine();\n currentContainerStack.pop();\n // If the last non-trivial non-comment token is a closing brace or bracket, then the currentProperty end line number has not been set yet so set it\n // The configuration considered is: [..., {}] or [..., []]\n if (currentProperty.endLineNumber === undefined\n && (lastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */\n || lastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */)) {\n currentProperty.endLineNumber = endLineNumber - 1;\n currentProperty.lastProperty = true;\n currentProperty.lineWhereToAddComma = lineOfLastNonTriviaNonCommentToken;\n currentProperty.indexWhereToAddComa = endIndexOfLastNonTriviaNonCommentToken;\n lastProperty = currentProperty;\n currentProperty = currentProperty ? currentProperty.parent : undefined;\n currentTree = currentProperty;\n }\n rootTree.endLineNumber = endLineNumber;\n beginningLineNumber = endLineNumber + 1;\n break;\n }\n case 2 /* SyntaxKind.CloseBraceToken */: {\n endLineNumber = scanner.getTokenStartLine();\n currentContainerStack.pop();\n // If we are not inside of an empty object\n if (lastNonTriviaNonCommentToken !== 1 /* SyntaxKind.OpenBraceToken */) {\n // If current property end line number has not yet been defined, define it\n if (currentProperty.endLineNumber === undefined) {\n currentProperty.endLineNumber = endLineNumber - 1;\n // The current property is also the last property\n currentProperty.lastProperty = true;\n // The last property of an object is associated with the line and index of where to add the comma, in case after sorting, it is no longer the last property\n currentProperty.lineWhereToAddComma = lineOfLastNonTriviaNonCommentToken;\n currentProperty.indexWhereToAddComa = endIndexOfLastNonTriviaNonCommentToken;\n }\n lastProperty = currentProperty;\n currentProperty = currentProperty ? currentProperty.parent : undefined;\n currentTree = currentProperty;\n }\n rootTree.endLineNumber = scanner.getTokenStartLine();\n beginningLineNumber = endLineNumber + 1;\n break;\n }\n case 5 /* SyntaxKind.CommaToken */: {\n endLineNumber = scanner.getTokenStartLine();\n // If the current container is an object or the current container is an array and the last non-trivia non-comment token is a closing brace or a closing bracket\n // Then update the end line number of the current property\n if (currentProperty.endLineNumber === undefined\n && (currentContainerStack[currentContainerStack.length - 1] === Container.Object\n || (currentContainerStack[currentContainerStack.length - 1] === Container.Array\n && (lastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */\n || lastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */)))) {\n currentProperty.endLineNumber = endLineNumber;\n // Store the line and the index of the comma in case it needs to be removed during the sorting\n currentProperty.commaIndex = scanner.getTokenOffset() - numberOfCharactersOnPreviousLines;\n currentProperty.commaLine = endLineNumber;\n }\n if (lastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */\n || lastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */) {\n lastProperty = currentProperty;\n currentProperty = currentProperty ? currentProperty.parent : undefined;\n currentTree = currentProperty;\n }\n beginningLineNumber = endLineNumber + 1;\n break;\n }\n case 13 /* SyntaxKind.BlockCommentTrivia */: {\n // If the last non trivia non-comment token is a comma and the block comment starts on the same line as the comma, then update the end line number of the current property. For example if:\n // 1. {}, /* ...\n // 2. ..*/\n // The the property on line 1 shoud end on line 2, not line 1\n // In the case we are in an array we update the end line number only if the second to last non-trivia non-comment token is a closing brace or bracket\n if (lastNonTriviaNonCommentToken === 5 /* SyntaxKind.CommaToken */\n && lineOfLastNonTriviaNonCommentToken === scanner.getTokenStartLine()\n && (currentContainerStack[currentContainerStack.length - 1] === Container.Array\n && (secondToLastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */\n || secondToLastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */)\n || currentContainerStack[currentContainerStack.length - 1] === Container.Object)) {\n if (currentContainerStack[currentContainerStack.length - 1] === Container.Array && (secondToLastNonTriviaNonCommentToken === 2 /* SyntaxKind.CloseBraceToken */ || secondToLastNonTriviaNonCommentToken === 4 /* SyntaxKind.CloseBracketToken */) || currentContainerStack[currentContainerStack.length - 1] === Container.Object) {\n currentProperty.endLineNumber = undefined;\n updateLastPropertyEndLineNumber = true;\n }\n }\n // When the block comment follows an open brace or an open token, we have the following scenario:\n // { /**\n // ../\n // }\n // The block comment should be assigned to the open brace not the first property below it\n if ((lastNonTriviaNonCommentToken === 1 /* SyntaxKind.OpenBraceToken */\n || lastNonTriviaNonCommentToken === 3 /* SyntaxKind.OpenBracketToken */)\n && lineOfLastNonTriviaNonCommentToken === scanner.getTokenStartLine()) {\n updateBeginningLineNumber = true;\n }\n break;\n }\n }\n // Update the last and second to last non-trivia non-comment tokens\n if (token !== 14 /* SyntaxKind.LineBreakTrivia */\n && token !== 13 /* SyntaxKind.BlockCommentTrivia */\n && token !== 12 /* SyntaxKind.LineCommentTrivia */\n && token !== 15 /* SyntaxKind.Trivia */) {\n secondToLastNonTriviaNonCommentToken = lastNonTriviaNonCommentToken;\n lastNonTriviaNonCommentToken = token;\n lineOfLastNonTriviaNonCommentToken = scanner.getTokenStartLine();\n endIndexOfLastNonTriviaNonCommentToken = scanner.getTokenOffset() + scanner.getTokenLength() - numberOfCharactersOnPreviousLines;\n }\n }\n return rootTree;\n}\nfunction sortJsoncDocument(jsonDocument, propertyTree) {\n if (propertyTree.childrenProperties.length === 0) {\n return jsonDocument;\n }\n const sortedJsonDocument = TextDocument.create('test://test.json', 'json', 0, jsonDocument.getText());\n const queueToSort = [];\n updateSortingQueue(queueToSort, propertyTree, propertyTree.beginningLineNumber);\n while (queueToSort.length > 0) {\n const dataToSort = queueToSort.shift();\n const propertyTreeArray = dataToSort.propertyTreeArray;\n let beginningLineNumber = dataToSort.beginningLineNumber;\n for (let i = 0; i < propertyTreeArray.length; i++) {\n const propertyTree = propertyTreeArray[i];\n const range = Range.create(Position.create(propertyTree.beginningLineNumber, 0), Position.create(propertyTree.endLineNumber + 1, 0));\n const jsonContentToReplace = jsonDocument.getText(range);\n const jsonDocumentToReplace = TextDocument.create('test://test.json', 'json', 0, jsonContentToReplace);\n if (propertyTree.lastProperty === true && i !== propertyTreeArray.length - 1) {\n const lineWhereToAddComma = propertyTree.lineWhereToAddComma - propertyTree.beginningLineNumber;\n const indexWhereToAddComma = propertyTree.indexWhereToAddComa;\n const edit = {\n range: Range.create(Position.create(lineWhereToAddComma, indexWhereToAddComma), Position.create(lineWhereToAddComma, indexWhereToAddComma)),\n text: ','\n };\n TextDocument.update(jsonDocumentToReplace, [edit], 1);\n }\n else if (propertyTree.lastProperty === false && i === propertyTreeArray.length - 1) {\n const commaIndex = propertyTree.commaIndex;\n const commaLine = propertyTree.commaLine;\n const lineWhereToRemoveComma = commaLine - propertyTree.beginningLineNumber;\n const edit = {\n range: Range.create(Position.create(lineWhereToRemoveComma, commaIndex), Position.create(lineWhereToRemoveComma, commaIndex + 1)),\n text: ''\n };\n TextDocument.update(jsonDocumentToReplace, [edit], 1);\n }\n const length = propertyTree.endLineNumber - propertyTree.beginningLineNumber + 1;\n const edit = {\n range: Range.create(Position.create(beginningLineNumber, 0), Position.create(beginningLineNumber + length, 0)),\n text: jsonDocumentToReplace.getText()\n };\n TextDocument.update(sortedJsonDocument, [edit], 1);\n updateSortingQueue(queueToSort, propertyTree, beginningLineNumber);\n beginningLineNumber = beginningLineNumber + length;\n }\n }\n return sortedJsonDocument;\n}\nfunction sortProperties(properties) {\n properties.sort((a, b) => a.propertyName.localeCompare(b.propertyName));\n}\nfunction updateSortingQueue(queue, propertyTree, beginningLineNumber) {\n if (propertyTree.childrenProperties.length === 0) {\n return;\n }\n if (propertyTree.type === Container.Object) {\n let minimumBeginningLineNumber = Infinity;\n for (const childProperty of propertyTree.childrenProperties) {\n if (childProperty.beginningLineNumber < minimumBeginningLineNumber) {\n minimumBeginningLineNumber = childProperty.beginningLineNumber;\n }\n }\n const diff = minimumBeginningLineNumber - propertyTree.beginningLineNumber;\n beginningLineNumber = beginningLineNumber + diff;\n sortProperties(propertyTree.childrenProperties);\n queue.push(new SortingRange(beginningLineNumber, propertyTree.childrenProperties));\n }\n else if (propertyTree.type === Container.Array) {\n updateSortingQueueForArrayProperties(queue, propertyTree, beginningLineNumber);\n }\n}\nfunction updateSortingQueueForArrayProperties(queue, propertyTree, beginningLineNumber) {\n for (const subObject of propertyTree.childrenProperties) {\n // If the child property of the array is an object, then you can sort the properties within this object\n if (subObject.type === Container.Object) {\n let minimumBeginningLineNumber = Infinity;\n for (const childProperty of subObject.childrenProperties) {\n if (childProperty.beginningLineNumber < minimumBeginningLineNumber) {\n minimumBeginningLineNumber = childProperty.beginningLineNumber;\n }\n }\n const diff = minimumBeginningLineNumber - subObject.beginningLineNumber;\n queue.push(new SortingRange(beginningLineNumber + subObject.beginningLineNumber - propertyTree.beginningLineNumber + diff, subObject.childrenProperties));\n }\n // If the child property of the array is an array, then you need to recurse on the children properties, until you find an object to sort\n if (subObject.type === Container.Array) {\n updateSortingQueueForArrayProperties(queue, subObject, beginningLineNumber + subObject.beginningLineNumber - propertyTree.beginningLineNumber);\n }\n }\n}\nclass SortingRange {\n constructor(beginningLineNumber, propertyTreeArray) {\n this.beginningLineNumber = beginningLineNumber;\n this.propertyTreeArray = propertyTreeArray;\n }\n}\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 *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../jsonLanguageTypes.js';\nexport function findLinks(document, doc) {\n const links = [];\n doc.visit(node => {\n if (node.type === \"property\" && node.keyNode.value === \"$ref\" && node.valueNode?.type === 'string') {\n const path = node.valueNode.value;\n const targetNode = findTargetNode(doc, path);\n if (targetNode) {\n const targetPos = document.positionAt(targetNode.offset);\n links.push({\n target: `${document.uri}#${targetPos.line + 1},${targetPos.character + 1}`,\n range: createRange(document, node.valueNode)\n });\n }\n }\n return true;\n });\n return Promise.resolve(links);\n}\nfunction createRange(document, node) {\n return Range.create(document.positionAt(node.offset + 1), document.positionAt(node.offset + node.length - 1));\n}\nfunction findTargetNode(doc, path) {\n const tokens = parseJSONPointer(path);\n if (!tokens) {\n return null;\n }\n return findNode(tokens, doc.root);\n}\nfunction findNode(pointer, node) {\n if (!node) {\n return null;\n }\n if (pointer.length === 0) {\n return node;\n }\n const token = pointer.shift();\n if (node && node.type === 'object') {\n const propertyNode = node.properties.find((propertyNode) => propertyNode.keyNode.value === token);\n if (!propertyNode) {\n return null;\n }\n return findNode(pointer, propertyNode.valueNode);\n }\n else if (node && node.type === 'array') {\n if (token.match(/^(0|[1-9][0-9]*)$/)) {\n const index = Number.parseInt(token);\n const arrayItem = node.items[index];\n if (!arrayItem) {\n return null;\n }\n return findNode(pointer, arrayItem);\n }\n }\n return null;\n}\nfunction parseJSONPointer(path) {\n if (path === \"#\") {\n return [];\n }\n if (path[0] !== '#' || path[1] !== '/') {\n return null;\n }\n return path.substring(2).split(/\\//).map(unescape);\n}\nfunction unescape(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\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 *--------------------------------------------------------------------------------------------*/\nimport { JSONCompletion } from './services/jsonCompletion.js';\nimport { JSONHover } from './services/jsonHover.js';\nimport { JSONValidation } from './services/jsonValidation.js';\nimport { JSONDocumentSymbols } from './services/jsonDocumentSymbols.js';\nimport { parse as parseJSON, newJSONDocument } from './parser/jsonParser.js';\nimport { schemaContributions } from './services/configuration.js';\nimport { JSONSchemaService } from './services/jsonSchemaService.js';\nimport { getFoldingRanges } from './services/jsonFolding.js';\nimport { getSelectionRanges } from './services/jsonSelectionRanges.js';\nimport { sort } from './utils/sort.js';\nimport { format } from './utils/format.js';\nimport { findLinks } from './services/jsonLinks.js';\nexport * from './jsonLanguageTypes.js';\nexport function getLanguageService(params) {\n const promise = params.promiseConstructor || Promise;\n const jsonSchemaService = new JSONSchemaService(params.schemaRequestService, params.workspaceContext, promise);\n jsonSchemaService.setSchemaContributions(schemaContributions);\n const jsonCompletion = new JSONCompletion(jsonSchemaService, params.contributions, promise, params.clientCapabilities);\n const jsonHover = new JSONHover(jsonSchemaService, params.contributions, promise);\n const jsonDocumentSymbols = new JSONDocumentSymbols(jsonSchemaService);\n const jsonValidation = new JSONValidation(jsonSchemaService, promise);\n return {\n configure: (settings) => {\n jsonSchemaService.clearExternalSchemas();\n settings.schemas?.forEach(jsonSchemaService.registerExternalSchema.bind(jsonSchemaService));\n jsonValidation.configure(settings);\n },\n resetSchema: (uri) => jsonSchemaService.onResourceChange(uri),\n doValidation: jsonValidation.doValidation.bind(jsonValidation),\n getLanguageStatus: jsonValidation.getLanguageStatus.bind(jsonValidation),\n parseJSONDocument: (document) => parseJSON(document, { collectComments: true }),\n newJSONDocument: (root, diagnostics, comments) => newJSONDocument(root, diagnostics, comments),\n getMatchingSchemas: jsonSchemaService.getMatchingSchemas.bind(jsonSchemaService),\n doResolve: jsonCompletion.doResolve.bind(jsonCompletion),\n doComplete: jsonCompletion.doComplete.bind(jsonCompletion),\n findDocumentSymbols: jsonDocumentSymbols.findDocumentSymbols.bind(jsonDocumentSymbols),\n findDocumentSymbols2: jsonDocumentSymbols.findDocumentSymbols2.bind(jsonDocumentSymbols),\n findDocumentColors: jsonDocumentSymbols.findDocumentColors.bind(jsonDocumentSymbols),\n getColorPresentations: jsonDocumentSymbols.getColorPresentations.bind(jsonDocumentSymbols),\n doHover: jsonHover.doHover.bind(jsonHover),\n getFoldingRanges,\n getSelectionRanges,\n findDefinition: () => Promise.resolve([]),\n findLinks,\n format: (document, range, options) => format(document, options, range),\n sort: (document, options) => sort(document, options)\n };\n}\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\nimport { TextDocument } from 'vscode-languageserver';\n\nexport interface LanguageModelCache<T> {\n\tget(document: TextDocument): T;\n\tonDocumentRemoved(document: TextDocument): void;\n\tdispose(): void;\n}\n\nexport function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTimeInSec: number, parse: (document: TextDocument) => T): LanguageModelCache<T> {\n\tlet languageModels: { [uri: string]: { version: number; languageId: string; cTime: number; languageModel: T } } = {};\n\tlet nModels = 0;\n\n\tlet cleanupInterval: NodeJS.Timeout | undefined = undefined;\n\tif (cleanupIntervalTimeInSec > 0) {\n\t\tcleanupInterval = setInterval(() => {\n\t\t\tconst cutoffTime = Date.now() - cleanupIntervalTimeInSec * 1000;\n\t\t\tconst uris = Object.keys(languageModels);\n\t\t\tfor (const uri of uris) {\n\t\t\t\tconst languageModelInfo = languageModels[uri];\n\t\t\t\tif (languageModelInfo.cTime < cutoffTime) {\n\t\t\t\t\tdelete languageModels[uri];\n\t\t\t\t\tnModels--;\n\t\t\t\t}\n\t\t\t}\n\t\t}, cleanupIntervalTimeInSec * 1000);\n\t}\n\n\treturn {\n\t\tget(document: TextDocument): T {\n\t\t\tconst version = document.version;\n\t\t\tconst languageId = document.languageId;\n\t\t\tconst languageModelInfo = languageModels[document.uri];\n\t\t\tif (languageModelInfo && languageModelInfo.version === version && languageModelInfo.languageId === languageId) {\n\t\t\t\tlanguageModelInfo.cTime = Date.now();\n\t\t\t\treturn languageModelInfo.languageModel;\n\t\t\t}\n\t\t\tconst languageModel = parse(document);\n\t\t\tlanguageModels[document.uri] = { languageModel, version, languageId, cTime: Date.now() };\n\t\t\tif (!languageModelInfo) {\n\t\t\t\tnModels++;\n\t\t\t}\n\n\t\t\tif (nModels > maxEntries) {\n\t\t\t\tlet oldestTime = Number.MAX_VALUE;\n\t\t\t\tlet oldestUri = null;\n\t\t\t\tfor (const uri in languageModels) {\n\t\t\t\t\tconst languageModelInfo = languageModels[uri];\n\t\t\t\t\tif (languageModelInfo.cTime < oldestTime) {\n\t\t\t\t\t\toldestUri = uri;\n\t\t\t\t\t\toldestTime = languageModelInfo.cTime;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (oldestUri) {\n\t\t\t\t\tdelete languageModels[oldestUri];\n\t\t\t\t\tnModels--;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn languageModel;\n\n\t\t},\n\t\tonDocumentRemoved(document: TextDocument) {\n\t\t\tconst uri = document.uri;\n\t\t\tif (languageModels[uri]) {\n\t\t\t\tdelete languageModels[uri];\n\t\t\t\tnModels--;\n\t\t\t}\n\t\t},\n\t\tdispose() {\n\t\t\tif (typeof cleanupInterval !== 'undefined') {\n\t\t\t\tclearInterval(cleanupInterval);\n\t\t\t\tcleanupInterval = undefined;\n\t\t\t\tlanguageModels = {};\n\t\t\t\tnModels = 0;\n\t\t\t}\n\t\t}\n\t};\n}\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\nimport {\n\tConnection,\n\tTextDocuments, InitializeParams, InitializeResult, NotificationType, RequestType, ResponseError,\n\tDocumentRangeFormattingRequest, Disposable, ServerCapabilities, TextDocumentSyncKind, TextEdit, DocumentFormattingRequest, TextDocumentIdentifier, FormattingOptions, Diagnostic, CodeAction, CodeActionKind\n} from 'vscode-languageserver';\n\nimport { runSafe, runSafeAsync } from './utils/runner.js';\nimport { DiagnosticsSupport, registerDiagnosticsPullSupport, registerDiagnosticsPushSupport } from './utils/validation.js';\nimport { TextDocument, JSONDocument, JSONSchema, getLanguageService, DocumentLanguageSettings, SchemaConfiguration, ClientCapabilities, Range, Position, SortOptions, SeverityLevel } from 'vscode-json-languageservice';\nimport { getLanguageModelCache } from './languageModelCache.js';\nimport { Utils, URI } from 'vscode-uri';\nimport * as l10n from '@vscode/l10n';\n\ntype ISchemaAssociations = Record<string, string[]>;\n\ntype JSONLanguageStatus = { schemas: string[] };\n\nnamespace SchemaAssociationNotification {\n\texport const type: NotificationType<ISchemaAssociations | SchemaConfiguration[]> = new NotificationType('json/schemaAssociations');\n}\n\nnamespace VSCodeContentRequest {\n\texport const type: RequestType<string, string, any> = new RequestType('vscode/content');\n}\n\nnamespace SchemaContentChangeNotification {\n\texport const type: NotificationType<string | string[]> = new NotificationType('json/schemaContent');\n}\n\nnamespace ForceValidateRequest {\n\texport const type: RequestType<string, Diagnostic[], any> = new RequestType('json/validate');\n}\n\nnamespace ForceValidateAllRequest {\n\texport const type: RequestType<void, void, any> = new RequestType('json/validateAll');\n}\n\nnamespace LanguageStatusRequest {\n\texport const type: RequestType<string, JSONLanguageStatus, any> = new RequestType('json/languageStatus');\n}\n\nnamespace ValidateContentRequest {\n\texport const type: RequestType<{ schemaUri: string; content: string }, Diagnostic[], any> = new RequestType('json/validateContent');\n}\n\nexport interface DocumentSortingParams {\n\t/**\n\t * The uri of the document to sort.\n\t */\n\turi: string;\n\t/**\n\t * The sort options\n\t */\n\toptions: SortOptions;\n}\n\nnamespace DocumentSortingRequest {\n\texport const type: RequestType<DocumentSortingParams, TextEdit[], any> = new RequestType('json/sort');\n}\n\nconst workspaceContext = {\n\tresolveRelativePath: (relativePath: string, resource: string) => {\n\t\tconst base = resource.substring(0, resource.lastIndexOf('/') + 1);\n\t\treturn Utils.resolvePath(URI.parse(base), relativePath).toString();\n\t}\n};\n\nexport interface RequestService {\n\tgetContent(uri: string): Promise<string>;\n}\n\nexport interface RuntimeEnvironment {\n\tfile?: RequestService;\n\thttp?: RequestService;\n\tconfigureHttpRequests?(proxy: string | undefined, strictSSL: boolean): void;\n\treadonly timer: {\n\t\tsetImmediate(callback: (...args: any[]) => void, ...args: any[]): Disposable;\n\t\tsetTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): Disposable;\n\t};\n}\n\nconst sortCodeActionKind = CodeActionKind.Source.concat('.sort', '.json');\n\nexport function startServer(connection: Connection, runtime: RuntimeEnvironment) {\n\n\tfunction getSchemaRequestService(handledSchemas: string[] = ['https', 'http', 'file']) {\n\t\tconst builtInHandlers: { [protocol: string]: RequestService | undefined } = {};\n\t\tfor (const protocol of handledSchemas) {\n\t\t\tif (protocol === 'file') {\n\t\t\t\tbuiltInHandlers[protocol] = runtime.file;\n\t\t\t} else if (protocol === 'http' || protocol === 'https') {\n\t\t\t\tbuiltInHandlers[protocol] = runtime.http;\n\t\t\t}\n\t\t}\n\t\treturn (uri: string): Thenable<string> => {\n\t\t\tconst protocol = uri.substr(0, uri.indexOf(':'));\n\n\t\t\tconst builtInHandler = builtInHandlers[protocol];\n\t\t\tif (builtInHandler) {\n\t\t\t\treturn builtInHandler.getContent(uri);\n\t\t\t}\n\t\t\treturn connection.sendRequest(VSCodeContentRequest.type, uri).then(responseText => {\n\t\t\t\treturn responseText;\n\t\t\t}, (error: ResponseError<any>) => {\n\t\t\t\treturn Promise.reject(error);\n\t\t\t});\n\t\t};\n\t}\n\n\t// create the JSON language service\n\tlet languageService = getLanguageService({\n\t\tworkspaceContext,\n\t\tcontributions: [],\n\t\tclientCapabilities: ClientCapabilities.LATEST\n\t});\n\n\t// Create a text document manager.\n\tconst documents = new TextDocuments(TextDocument);\n\n\t// Make the text document manager listen on the connection\n\t// for open, change and close text document events\n\tdocuments.listen(connection);\n\n\tlet clientSnippetSupport = false;\n\tlet dynamicFormatterRegistration = false;\n\tlet hierarchicalDocumentSymbolSupport = false;\n\n\tlet foldingRangeLimitDefault = Number.MAX_VALUE;\n\tlet resultLimit = Number.MAX_VALUE;\n\tlet jsonFoldingRangeLimit = Number.MAX_VALUE;\n\tlet jsoncFoldingRangeLimit = Number.MAX_VALUE;\n\tlet jsonColorDecoratorLimit = Number.MAX_VALUE;\n\tlet jsoncColorDecoratorLimit = Number.MAX_VALUE;\n\n\tlet formatterMaxNumberOfEdits = Number.MAX_VALUE;\n\tlet diagnosticsSupport: DiagnosticsSupport | undefined;\n\n\n\t// After the server has started the client sends an initialize request. The server receives\n\t// in the passed params the rootPath of the workspace plus the client capabilities.\n\tconnection.onInitialize((params: InitializeParams): InitializeResult => {\n\n\t\tconst initializationOptions = params.initializationOptions || {};\n\n\t\tconst handledProtocols = initializationOptions?.handledSchemaProtocols;\n\n\t\tlanguageService = getLanguageService({\n\t\t\tschemaRequestService: getSchemaRequestService(handledProtocols),\n\t\t\tworkspaceContext,\n\t\t\tcontributions: [],\n\t\t\tclientCapabilities: params.capabilities\n\t\t});\n\n\t\tfunction getClientCapability<T>(name: string, def: T) {\n\t\t\tconst keys = name.split('.');\n\t\t\tlet c: any = params.capabilities;\n\t\t\tfor (let i = 0; c && i < keys.length; i++) {\n\t\t\t\tif (!c.hasOwnProperty(keys[i])) {\n\t\t\t\t\treturn def;\n\t\t\t\t}\n\t\t\t\tc = c[keys[i]];\n\t\t\t}\n\t\t\treturn c;\n\t\t}\n\n\t\tclientSnippetSupport = getClientCapability('textDocument.completion.completionItem.snippetSupport', false);\n\t\tdynamicFormatterRegistration = getClientCapability('textDocument.rangeFormatting.dynamicRegistration', false) && (typeof initializationOptions.provideFormatter !== 'boolean');\n\t\tfoldingRangeLimitDefault = getClientCapability('textDocument.foldingRange.rangeLimit', Number.MAX_VALUE);\n\t\thierarchicalDocumentSymbolSupport = getClientCapability('textDocument.documentSymbol.hierarchicalDocumentSymbolSupport', false);\n\t\tformatterMaxNumberOfEdits = initializationOptions.customCapabilities?.rangeFormatting?.editLimit || Number.MAX_VALUE;\n\n\t\tconst supportsDiagnosticPull = getClientCapability('textDocument.diagnostic', undefined);\n\t\tif (supportsDiagnosticPull === undefined) {\n\t\t\tdiagnosticsSupport = registerDiagnosticsPushSupport(documents, connection, runtime, validateTextDocument);\n\t\t} else {\n\t\t\tdiagnosticsSupport = registerDiagnosticsPullSupport(documents, connection, runtime, validateTextDocument);\n\t\t}\n\n\t\tconst capabilities: ServerCapabilities = {\n\t\t\ttextDocumentSync: TextDocumentSyncKind.Incremental,\n\t\t\tcompletionProvider: clientSnippetSupport ? {\n\t\t\t\tresolveProvider: false, // turn off resolving as the current language service doesn't do anything on resolve. Also fixes #91747\n\t\t\t\ttriggerCharacters: ['\"', ':']\n\t\t\t} : undefined,\n\t\t\thoverProvider: true,\n\t\t\tdocumentSymbolProvider: true,\n\t\t\tdocumentRangeFormattingProvider: initializationOptions.provideFormatter === true,\n\t\t\tdocumentFormattingProvider: initializationOptions.provideFormatter === true,\n\t\t\tcolorProvider: {},\n\t\t\tfoldingRangeProvider: true,\n\t\t\tselectionRangeProvider: true,\n\t\t\tdocumentLinkProvider: {},\n\t\t\tdiagnosticProvider: {\n\t\t\t\tdocumentSelector: null,\n\t\t\t\tinterFileDependencies: false,\n\t\t\t\tworkspaceDiagnostics: false\n\t\t\t},\n\t\t\tcodeActionProvider: {\n\t\t\t\tcodeActionKinds: [sortCodeActionKind]\n\t\t\t}\n\t\t};\n\n\t\treturn { capabilities };\n\t});\n\n\n\n\t// The settings interface describes the server relevant settings part\n\tinterface Settings {\n\t\tjson?: {\n\t\t\tschemas?: JSONSchemaSettings[];\n\t\t\tformat?: { enable?: boolean };\n\t\t\tkeepLines?: { enable?: boolean };\n\t\t\tvalidate?: {\n\t\t\t\tenable?: boolean;\n\t\t\t\tcomments?: SeverityLevel;\n\t\t\t\ttrailingCommas?: SeverityLevel;\n\t\t\t\tschemaValidation?: SeverityLevel;\n\t\t\t\tschemaRequest?: SeverityLevel;\n\t\t\t};\n\t\t\tresultLimit?: number;\n\t\t\tjsonFoldingLimit?: number;\n\t\t\tjsoncFoldingLimit?: number;\n\t\t\tjsonColorDecoratorLimit?: number;\n\t\t\tjsoncColorDecoratorLimit?: number;\n\t\t};\n\t\thttp?: {\n\t\t\tproxy?: string;\n\t\t\tproxyStrictSSL?: boolean;\n\t\t};\n\t}\n\n\tinterface JSONSchemaSettings {\n\t\tfileMatch?: string[];\n\t\turl?: string;\n\t\tschema?: JSONSchema;\n\t\tfolderUri?: string;\n\t}\n\n\n\n\tlet jsonConfigurationSettings: JSONSchemaSettings[] | undefined = undefined;\n\tlet schemaAssociations: ISchemaAssociations | SchemaConfiguration[] | undefined = undefined;\n\tlet formatterRegistrations: Thenable<Disposable>[] | null = null;\n\tlet validateEnabled = true;\n\tlet commentsSeverity: SeverityLevel | undefined = undefined;\n\tlet trailingCommasSeverity: SeverityLevel | undefined = undefined;\n\tlet schemaValidationSeverity: SeverityLevel | undefined = undefined;\n\tlet schemaRequestSeverity: SeverityLevel | undefined = undefined;\n\tlet keepLinesEnabled = false;\n\n\t// The settings have changed. Is sent on server activation as well.\n\tconnection.onDidChangeConfiguration((change) => {\n\t\tconst settings = <Settings>change.settings;\n\t\truntime.configureHttpRequests?.(settings?.http?.proxy, !!settings.http?.proxyStrictSSL);\n\t\tjsonConfigurationSettings = settings.json?.schemas;\n\t\tvalidateEnabled = !!settings.json?.validate?.enable;\n\t\tcommentsSeverity = settings.json?.validate?.comments;\n\t\ttrailingCommasSeverity = settings.json?.validate?.trailingCommas;\n\t\tschemaValidationSeverity = settings.json?.validate?.schemaValidation;\n\t\tschemaRequestSeverity = settings.json?.validate?.schemaRequest;\n\t\tkeepLinesEnabled = settings.json?.keepLines?.enable || false;\n\t\tupdateConfiguration();\n\n\t\tconst sanitizeLimitSetting = (settingValue: any) => Math.trunc(Math.max(settingValue, 0));\n\t\tresultLimit = sanitizeLimitSetting(settings.json?.resultLimit || Number.MAX_VALUE);\n\t\tjsonFoldingRangeLimit = sanitizeLimitSetting(settings.json?.jsonFoldingLimit || foldingRangeLimitDefault);\n\t\tjsoncFoldingRangeLimit = sanitizeLimitSetting(settings.json?.jsoncFoldingLimit || foldingRangeLimitDefault);\n\t\tjsonColorDecoratorLimit = sanitizeLimitSetting(settings.json?.jsonColorDecoratorLimit || Number.MAX_VALUE);\n\t\tjsoncColorDecoratorLimit = sanitizeLimitSetting(settings.json?.jsoncColorDecoratorLimit || Number.MAX_VALUE);\n\n\t\t// dynamically enable & disable the formatter\n\t\tif (dynamicFormatterRegistration) {\n\t\t\tconst enableFormatter = settings.json?.format?.enable;\n\t\t\tif (enableFormatter) {\n\t\t\t\tif (!formatterRegistrations) {\n\t\t\t\t\tconst documentSelector = [{ language: 'json' }, { language: 'jsonc' }];\n\t\t\t\t\tformatterRegistrations = [\n\t\t\t\t\t\tconnection.client.register(DocumentRangeFormattingRequest.type, { documentSelector }),\n\t\t\t\t\t\tconnection.client.register(DocumentFormattingRequest.type, { documentSelector })\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t} else if (formatterRegistrations) {\n\t\t\t\tformatterRegistrations.forEach(p => p.then(r => r.dispose()));\n\t\t\t\tformatterRegistrations = null;\n\t\t\t}\n\t\t}\n\t});\n\n\t// The jsonValidation extension configuration has changed\n\tconnection.onNotification(SchemaAssociationNotification.type, associations => {\n\t\tschemaAssociations = associations;\n\t\tupdateConfiguration();\n\t});\n\n\t// A schema has changed\n\tconnection.onNotification(SchemaContentChangeNotification.type, uriOrUris => {\n\t\tlet needsRevalidation = false;\n\t\tif (Array.isArray(uriOrUris)) {\n\t\t\tfor (const uri of uriOrUris) {\n\t\t\t\tif (languageService.resetSchema(uri)) {\n\t\t\t\t\tneedsRevalidation = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tneedsRevalidation = languageService.resetSchema(uriOrUris);\n\t\t}\n\t\tif (needsRevalidation) {\n\t\t\tdiagnosticsSupport?.requestRefresh();\n\t\t}\n\t});\n\n\t// Retry schema validation on all open documents\n\tconnection.onRequest(ForceValidateAllRequest.type, async () => {\n\t\tdiagnosticsSupport?.requestRefresh();\n\t});\n\n\tconnection.onRequest(ForceValidateRequest.type, async uri => {\n\t\tconst document = documents.get(uri);\n\t\tif (document) {\n\t\t\tupdateConfiguration();\n\t\t\treturn await validateTextDocument(document);\n\t\t}\n\t\treturn [];\n\t});\n\n\tconnection.onRequest(ValidateContentRequest.type, async ({ schemaUri, content }) => {\n\t\tconst docURI = 'vscode://schemas/temp/' + new Date().getTime();\n\t\tconst document = TextDocument.create(docURI, 'json', 1, content);\n\t\tupdateConfiguration([{ uri: schemaUri, fileMatch: [docURI] }]);\n\t\treturn await validateTextDocument(document);\n\t});\n\n\n\tconnection.onRequest(LanguageStatusRequest.type, async uri => {\n\t\tconst document = documents.get(uri);\n\t\tif (document) {\n\t\t\tconst jsonDocument = getJSONDocument(document);\n\t\t\treturn languageService.getLanguageStatus(document, jsonDocument);\n\t\t} else {\n\t\t\treturn { schemas: [] };\n\t\t}\n\t});\n\n\tconnection.onRequest(DocumentSortingRequest.type, async params => {\n\t\tconst uri = params.uri;\n\t\tconst options = params.options;\n\t\tconst document = documents.get(uri);\n\t\tif (document) {\n\t\t\treturn languageService.sort(document, options);\n\t\t}\n\t\treturn [];\n\t});\n\n\tfunction updateConfiguration(extraSchemas?: SchemaConfiguration[]) {\n\t\tconst languageSettings = {\n\t\t\tvalidate: validateEnabled,\n\t\t\tallowComments: true,\n\t\t\tschemas: new Array<SchemaConfiguration>()\n\t\t};\n\t\tif (schemaAssociations) {\n\t\t\tif (Array.isArray(schemaAssociations)) {\n\t\t\t\tArray.prototype.push.apply(languageSettings.schemas, schemaAssociations);\n\t\t\t} else {\n\t\t\t\tfor (const pattern in schemaAssociations) {\n\t\t\t\t\tconst association = schemaAssociations[pattern];\n\t\t\t\t\tif (Array.isArray(association)) {\n\t\t\t\t\t\tassociation.forEach(uri => {\n\t\t\t\t\t\t\tlanguageSettings.schemas.push({ uri, fileMatch: [pattern] });\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (jsonConfigurationSettings) {\n\t\t\tjsonConfigurationSettings.forEach((schema, index) => {\n\t\t\t\tlet uri = schema.url;\n\t\t\t\tif (!uri && schema.schema) {\n\t\t\t\t\turi = schema.schema.id || `vscode://schemas/custom/${index}`;\n\t\t\t\t}\n\t\t\t\tif (uri) {\n\t\t\t\t\tlanguageSettings.schemas.push({ uri, fileMatch: schema.fileMatch, schema: schema.schema, folderUri: schema.folderUri });\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (extraSchemas) {\n\t\t\tlanguageSettings.schemas.push(...extraSchemas);\n\t\t}\n\n\t\tlanguageService.configure(languageSettings);\n\n\t\tdiagnosticsSupport?.requestRefresh();\n\t}\n\n\tasync function validateTextDocument(textDocument: TextDocument): Promise<Diagnostic[]> {\n\t\tif (textDocument.getText().length === 0) {\n\t\t\treturn []; // ignore empty documents\n\t\t}\n\t\tconst jsonDocument = getJSONDocument(textDocument);\n\t\tconst documentSettings: DocumentLanguageSettings = {\n\t\t\tcomments: commentsSeverity ?? (textDocument.languageId === 'jsonc' ? 'ignore' : 'error'),\n\t\t\ttrailingCommas: trailingCommasSeverity ?? (textDocument.languageId === 'jsonc' ? 'warning' : 'error'),\n\t\t\tschemaValidation: schemaValidationSeverity,\n\t\t\tschemaRequest: schemaRequestSeverity\n\t\t};\n\t\treturn await languageService.doValidation(textDocument, jsonDocument, documentSettings);\n\t}\n\n\tconnection.onDidChangeWatchedFiles((change) => {\n\t\t// Monitored files have changed in VSCode\n\t\tlet hasChanges = false;\n\t\tfor (const c of change.changes) {\n\t\t\tif (languageService.resetSchema(c.uri)) {\n\t\t\t\thasChanges = true;\n\t\t\t}\n\t\t}\n\t\tif (hasChanges) {\n\t\t\tdiagnosticsSupport?.requestRefresh();\n\t\t}\n\t});\n\n\tconst jsonDocuments = getLanguageModelCache<JSONDocument>(10, 60, document => languageService.parseJSONDocument(document));\n\tdocuments.onDidClose(e => {\n\t\tjsonDocuments.onDocumentRemoved(e.document);\n\t});\n\tconnection.onShutdown(() => {\n\t\tjsonDocuments.dispose();\n\t});\n\n\tfunction getJSONDocument(document: TextDocument): JSONDocument {\n\t\treturn jsonDocuments.get(document);\n\t}\n\n\tconnection.onCompletion((textDocumentPosition, token) => {\n\t\treturn runSafeAsync(runtime, async () => {\n\t\t\tconst document = documents.get(textDocumentPosition.textDocument.uri);\n\t\t\tif (document) {\n\t\t\t\tconst jsonDocument = getJSONDocument(document);\n\t\t\t\treturn languageService.doComplete(document, textDocumentPosition.position, jsonDocument);\n\t\t\t}\n\t\t\treturn null;\n\t\t}, null, `Error while computing completions for ${textDocumentPosition.textDocument.uri}`, token);\n\t});\n\n\tconnection.onHover((textDocumentPositionParams, token) => {\n\t\treturn runSafeAsync(runtime, async () => {\n\t\t\tconst document = documents.get(textDocumentPositionParams.textDocument.uri);\n\t\t\tif (document) {\n\t\t\t\tconst jsonDocument = getJSONDocument(document);\n\t\t\t\treturn languageService.doHover(document, textDocumentPositionParams.position, jsonDocument);\n\t\t\t}\n\t\t\treturn null;\n\t\t}, null, `Error while computing hover for ${textDocumentPositionParams.textDocument.uri}`, token);\n\t});\n\n\tconnection.onDocumentSymbol((documentSymbolParams, token) => {\n\t\treturn runSafe(runtime, () => {\n\t\t\tconst document = documents.get(documentSymbolParams.textDocument.uri);\n\t\t\tif (document) {\n\t\t\t\tconst jsonDocument = getJSONDocument(document);\n\t\t\t\tif (hierarchicalDocumentSymbolSupport) {\n\t\t\t\t\treturn languageService.findDocumentSymbols2(document, jsonDocument, { resultLimit });\n\t\t\t\t} else {\n\t\t\t\t\treturn languageService.findDocumentSymbols(document, jsonDocument, { resultLimit });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn [];\n\t\t}, [], `Error while computing document symbols for ${documentSymbolParams.textDocument.uri}`, token);\n\t});\n\n\tconnection.onCodeAction((codeActionParams, token) => {\n\t\treturn runSafeAsync(runtime, async () => {\n\t\t\tconst document = documents.get(codeActionParams.textDocument.uri);\n\t\t\tif (document) {\n\t\t\t\tconst sortCodeAction = CodeAction.create('Sort JSON', sortCodeActionKind);\n\t\t\t\tsortCodeAction.command = {\n\t\t\t\t\tcommand: 'json.sort',\n\t\t\t\t\ttitle: l10n.t('Sort JSON')\n\t\t\t\t};\n\t\t\t\treturn [sortCodeAction];\n\t\t\t}\n\t\t\treturn [];\n\t\t}, [], `Error while computing code actions for ${codeActionParams.textDocument.uri}`, token);\n\t});\n\n\tfunction onFormat(textDocument: TextDocumentIdentifier, range: Range | undefined, options: FormattingOptions): TextEdit[] {\n\n\t\toptions.keepLines = keepLinesEnabled;\n\t\tconst document = documents.get(textDocument.uri);\n\t\tif (document) {\n\t\t\tconst edits = languageService.format(document, range ?? getFullRange(document), options);\n\t\t\tif (edits.length > formatterMaxNumberOfEdits) {\n\t\t\t\tconst newText = TextDocument.applyEdits(document, edits);\n\t\t\t\treturn [TextEdit.replace(getFullRange(document), newText)];\n\t\t\t}\n\t\t\treturn edits;\n\t\t}\n\t\treturn [];\n\t}\n\n\tconnection.onDocumentRangeFormatting((formatParams, token) => {\n\t\treturn runSafe(runtime, () => onFormat(formatParams.textDocument, formatParams.range, formatParams.options), [], `Error while formatting range for ${formatParams.textDocument.uri}`, token);\n\t});\n\n\tconnection.onDocumentFormatting((formatParams, token) => {\n\t\treturn runSafe(runtime, () => onFormat(formatParams.textDocument, undefined, formatParams.options), [], `Error while formatting ${formatParams.textDocument.uri}`, token);\n\t});\n\n\tconnection.onDocumentColor((params, token) => {\n\t\treturn runSafeAsync(runtime, async () => {\n\t\t\tconst document = documents.get(params.textDocument.uri);\n\t\t\tif (document) {\n\n\t\t\t\tconst jsonDocument = getJSONDocument(document);\n\t\t\t\tconst resultLimit = document.languageId === 'jsonc' ? jsoncColorDecoratorLimit : jsonColorDecoratorLimit;\n\t\t\t\treturn languageService.findDocumentColors(document, jsonDocument, { resultLimit });\n\t\t\t}\n\t\t\treturn [];\n\t\t}, [], `Error while computing document colors for ${params.textDocument.uri}`, token);\n\t});\n\n\tconnection.onColorPresentation((params, token) => {\n\t\treturn runSafe(runtime, () => {\n\t\t\tconst document = documents.get(params.textDocument.uri);\n\t\t\tif (document) {\n\t\t\t\tconst jsonDocument = getJSONDocument(document);\n\t\t\t\treturn languageService.getColorPresentations(document, jsonDocument, params.color, params.range);\n\t\t\t}\n\t\t\treturn [];\n\t\t}, [], `Error while computing color presentations for ${params.textDocument.uri}`, token);\n\t});\n\n\tconnection.onFoldingRanges((params, token) => {\n\t\treturn runSafe(runtime, () => {\n\t\t\tconst document = documents.get(params.textDocument.uri);\n\t\t\tif (document) {\n\t\t\t\tconst rangeLimit = document.languageId === 'jsonc' ? jsoncFoldingRangeLimit : jsonFoldingRangeLimit;\n\t\t\t\treturn languageService.getFoldingRanges(document, { rangeLimit });\n\t\t\t}\n\t\t\treturn null;\n\t\t}, null, `Error while computing folding ranges for ${params.textDocument.uri}`, token);\n\t});\n\n\n\tconnection.onSelectionRanges((params, token) => {\n\t\treturn runSafe(runtime, () => {\n\t\t\tconst document = documents.get(params.textDocument.uri);\n\t\t\tif (document) {\n\t\t\t\tconst jsonDocument = getJSONDocument(document);\n\t\t\t\treturn languageService.getSelectionRanges(document, params.positions, jsonDocument);\n\t\t\t}\n\t\t\treturn [];\n\t\t}, [], `Error while computing selection ranges for ${params.textDocument.uri}`, token);\n\t});\n\n\tconnection.onDocumentLinks((params, token) => {\n\t\treturn runSafeAsync(runtime, async () => {\n\t\t\tconst document = documents.get(params.textDocument.uri);\n\t\t\tif (document) {\n\t\t\t\tconst jsonDocument = getJSONDocument(document);\n\t\t\t\treturn languageService.findLinks(document, jsonDocument);\n\t\t\t}\n\t\t\treturn [];\n\t\t}, [], `Error while computing links for ${params.textDocument.uri}`, token);\n\t});\n\n\t// Listen on the connection\n\tconnection.listen();\n}\n\nfunction getFullRange(document: TextDocument): Range {\n\treturn Range.create(Position.create(0, 0), document.positionAt(document.getText().length));\n}\n\n\n\n\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\nimport { createConnection, BrowserMessageReader, BrowserMessageWriter, Disposable } from 'vscode-languageserver/browser';\nimport { RuntimeEnvironment, startServer } from '../jsonServer.js';\n\n\nconst messageReader = new BrowserMessageReader(self);\nconst messageWriter = new BrowserMessageWriter(self);\n\nconst connection = createConnection(messageReader, messageWriter);\n\nconsole.log = connection.console.log.bind(connection.console);\nconsole.error = connection.console.error.bind(connection.console);\n\nconst runtime: RuntimeEnvironment = {\n\ttimer: {\n\t\tsetImmediate(callback: (...args: any[]) => void, ...args: any[]): Disposable {\n\t\t\tconst handle = setTimeout(callback, 0, ...args);\n\t\t\treturn { dispose: () => clearTimeout(handle) };\n\t\t},\n\t\tsetTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): Disposable {\n\t\t\tconst handle = setTimeout(callback, ms, ...args);\n\t\t\treturn { dispose: () => clearTimeout(handle) };\n\t\t}\n\t}\n};\n\nstartServer(connection, runtime);\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\nimport * as l10n from '@vscode/l10n';\n\nlet initialized = false;\nconst pendingMessages: any[] = [];\nconst messageHandler = async (e: any) => {\n\tif (!initialized) {\n\t\tconst l10nLog: string[] = [];\n\t\tinitialized = true;\n\t\tconst i10lLocation = e.data.i10lLocation;\n\t\tif (i10lLocation) {\n\t\t\ttry {\n\t\t\t\tawait l10n.config({ uri: i10lLocation });\n\t\t\t\tl10nLog.push(`l10n: Configured to ${i10lLocation.toString()}.`);\n\t\t\t} catch (e) {\n\t\t\t\tl10nLog.push(`l10n: Problems loading ${i10lLocation.toString()} : ${e}.`);\n\t\t\t}\n\t\t} else {\n\t\t\tl10nLog.push(`l10n: No bundle configured.`);\n\t\t}\n\t\tawait import('./jsonServerMain.js');\n\t\tif (self.onmessage !== messageHandler) {\n\t\t\tpendingMessages.forEach(msg => self.onmessage?.(msg));\n\t\t\tpendingMessages.length = 0;\n\t\t}\n\t\tl10nLog.forEach(console.log);\n\t} else {\n\t\tpendingMessages.push(e);\n\t}\n};\nself.onmessage = messageHandler;\n"],
|
|
5
|
-
"mappings": "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ACN,OAAQ,KACZ,EACA,qBAAsB,CAClB,KAAM,SACV,CACJ,EACA,SAAU,CACN,KAAM,QACV,EACA,MAAO,CACH,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,gBAAiB,CACb,KAAM,GACV,EACA,iBAAkB,CACd,KAAM,GACV,EACA,MAAO,CACH,MAAO,CACH,CACI,KAAM,GACV,EACA,CACI,KAAM,qBACV,CACJ,CACJ,EACA,SAAU,CACN,KAAM,GACV,EACA,qBAAsB,CAClB,KAAM,GACV,EACA,sBAAuB,CACnB,KAAM,GACV,EACA,WAAY,CACR,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,kBAAmB,CACf,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,cAAe,CACX,OAAQ,OACZ,EACA,QAAS,CAAC,CACd,EACA,iBAAkB,CACd,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,CACJ,EACA,cAAe,CACX,KAAM,GACV,EACA,GAAI,CACA,KAAM,GACV,EACA,KAAM,CACF,KAAM,GACV,EACA,KAAM,CACF,KAAM,GACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,IAAK,CACD,KAAM,GACV,EACA,WAAY,CACR,KAAM,SACN,iBAAkB,CACtB,EACA,QAAS,CACL,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,QAAS,CACL,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,UAAW,CACP,KAAM,4BACV,EACA,UAAW,CACP,KAAM,oCACV,EACA,QAAS,CACL,KAAM,SACN,OAAQ,OACZ,EACA,SAAU,CACN,KAAM,4BACV,EACA,SAAU,CACN,KAAM,oCACV,EACA,YAAa,CACT,KAAM,UACN,QAAS,EACb,EACA,YAAa,CACT,KAAM,4BACV,EACA,YAAa,CACT,KAAM,6BACN,QAAS,CACb,EACA,cAAe,CACX,KAAM,4BACV,EACA,cAAe,CACX,KAAM,oCACV,EACA,SAAU,CACN,KAAM,qBACV,EACA,kBAAmB,CACf,KAAM,SACN,qBAAsB,CAClB,KAAM,qBACV,CACJ,EACA,MAAO,GACP,KAAM,CACF,KAAM,QACN,MAAO,EACX,EACA,KAAM,CACF,MAAO,CACH,CACI,KAAM,qBACV,EACA,CACI,KAAM,QACN,MAAO,CACH,KAAM,qBACV,EACA,SAAU,EACV,YAAa,EACjB,CACJ,CACJ,EACA,MAAO,CACH,KAAM,QACV,EACA,YAAa,CACT,KAAM,QACV,EACA,QAAS,GACT,WAAY,CACR,KAAM,UACN,QAAS,EACb,EACA,SAAU,CACN,KAAM,UACN,QAAS,EACb,EACA,UAAW,CACP,KAAM,UACN,QAAS,EACb,EACA,SAAU,CACN,KAAM,QACN,MAAO,EACX,EACA,OAAQ,CACJ,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,gBAAiB,CACb,KAAM,QACV,EACA,cAAe,CACX,KAAM,GACV,CACJ,EACA,MAAO,CACH,YAAa,CACT,KAAM,QACN,SAAU,EACV,MAAO,CACH,KAAM,GACV,CACJ,EACA,mBAAoB,CAChB,KAAM,UACN,QAAS,CACb,EACA,2BAA4B,CACxB,KAAM,6BACN,QAAS,CACb,EACA,YAAa,CACT,KAAM,CACF,QACA,UACA,UACA,OACA,SACA,SACA,QACJ,CACJ,EACA,YAAa,CACT,KAAM,QACN,MAAO,CACH,KAAM,QACV,EACA,YAAa,GACb,QAAS,CAAC,CACd,CACJ,CACJ,IC7SA,IAMOI,GANPC,GAAAC,GAAA,kBAAAC,IAMOH,GAAQ,CACX,IAAK,+CACL,QAAS,+CACT,MAAO,oEACP,KAAM,CACF,SACA,SACJ,EACA,WAAY,CACR,YAAa,CACT,SAAU,8KACV,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,aAAc,CACV,SAAU,uKACV,KAAM,SACN,qBAAsB,CAClB,MAAO,CACH,CACI,KAAM,GACV,EACA,CACI,KAAM,qBACV,CACJ,CACJ,CACJ,EACA,IAAK,CACD,KAAM,SACN,OAAQ,gBACR,SAAU,mCACV,QAAS,WACb,EACA,QAAS,CACL,KAAM,SACN,OAAQ,KACZ,EACA,QAAS,CACL,KAAM,SACN,QAAS,4BACb,EACA,KAAM,CACF,KAAM,SACN,OAAQ,eACZ,EACA,YAAa,CACT,KAAM,SACN,OAAQ,eACZ,EACA,YAAa,CACT,KAAM,SACN,cAAe,CACX,KAAM,SACN,OAAQ,KACZ,EACA,qBAAsB,CAClB,KAAM,SACV,CACJ,EACA,SAAU,CACN,KAAM,QACV,EACA,MAAO,CACH,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,YAAa,CACT,KAAM,qBACV,EACA,MAAO,CACH,KAAM,GACV,EACA,SAAU,CACN,KAAM,GACV,EACA,qBAAsB,CAClB,KAAM,GACV,EACA,WAAY,CACR,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,kBAAmB,CACf,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,cAAe,CACX,OAAQ,OACZ,EACA,QAAS,CAAC,CACd,EACA,iBAAkB,CACd,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,CACJ,EACA,cAAe,CACX,KAAM,GACV,EACA,GAAI,CACA,KAAM,GACV,EACA,KAAM,CACF,KAAM,GACV,EACA,KAAM,CACF,KAAM,GACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,IAAK,CACD,KAAM,GACV,EACA,iBAAkB,CACd,KAAM,GACV,EACA,sBAAuB,CACnB,KAAM,GACV,EACA,WAAY,CACR,KAAM,SACN,iBAAkB,CACtB,EACA,QAAS,CACL,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,QAAS,CACL,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,UAAW,CACP,KAAM,4BACV,EACA,UAAW,CACP,KAAM,oCACV,EACA,QAAS,CACL,KAAM,SACN,OAAQ,OACZ,EACA,SAAU,CACN,KAAM,4BACV,EACA,SAAU,CACN,KAAM,oCACV,EACA,YAAa,CACT,KAAM,UACN,QAAS,EACb,EACA,YAAa,CACT,KAAM,4BACV,EACA,YAAa,CACT,KAAM,6BACN,QAAS,CACb,EACA,cAAe,CACX,KAAM,4BACV,EACA,cAAe,CACX,KAAM,oCACV,EACA,SAAU,CACN,KAAM,qBACV,EACA,kBAAmB,CACf,KAAM,SACN,qBAAsB,CAClB,KAAM,qBACV,CACJ,EACA,MAAO,GACP,KAAM,CACF,KAAM,QACN,MAAO,EACX,EACA,KAAM,CACF,MAAO,CACH,CACI,KAAM,qBACV,EACA,CACI,KAAM,QACN,MAAO,CACH,KAAM,qBACV,EACA,SAAU,EACV,YAAa,EACjB,CACJ,CACJ,EACA,MAAO,CACH,KAAM,QACV,EACA,YAAa,CACT,KAAM,QACV,EACA,QAAS,GACT,WAAY,CACR,KAAM,UACN,QAAS,EACb,EACA,SAAU,CACN,KAAM,UACN,QAAS,EACb,EACA,UAAW,CACP,KAAM,UACN,QAAS,EACb,EACA,SAAU,CACN,KAAM,QACN,MAAO,EACX,EACA,OAAQ,CACJ,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,gBAAiB,CACb,KAAM,QACV,EACA,cAAe,CACX,KAAM,GACV,CACJ,EACA,MAAO,CACH,YAAa,CACT,KAAM,QACN,SAAU,EACV,MAAO,CACH,KAAM,GACV,CACJ,EACA,mBAAoB,CAChB,KAAM,UACN,QAAS,CACb,EACA,2BAA4B,CACxB,KAAM,6BACN,QAAS,CACb,EACA,YAAa,CACT,KAAM,CACF,QACA,UACA,UACA,OACA,SACA,SACA,QACJ,CACJ,EACA,YAAa,CACT,KAAM,QACN,MAAO,CACH,KAAM,QACV,EACA,YAAa,GACb,QAAS,CAAC,CACd,CACJ,CACJ,ICtSA,IAOaI,GAucPC,GA9cNC,GAAAC,GAAA,kBAAAC,IAIAC,KACAC,KACAC,KACaP,GAAsB,CAC/B,mBAAoB,CAAC,EACrB,QAAS,CAEL,0CAA2C,CACvC,YAAe,CACX,YAAe,CACX,KAAQ,QACR,SAAY,EACZ,MAAS,CACL,KAAQ,GACZ,CACJ,EACA,gBAAmB,CACf,KAAQ,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",
|
|
5
|
+
"mappings": "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ACN,OAAQ,KACZ,EACA,qBAAsB,CAClB,KAAM,SACV,CACJ,EACA,SAAU,CACN,KAAM,QACV,EACA,MAAO,CACH,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,gBAAiB,CACb,KAAM,GACV,EACA,iBAAkB,CACd,KAAM,GACV,EACA,MAAO,CACH,MAAO,CACH,CACI,KAAM,GACV,EACA,CACI,KAAM,qBACV,CACJ,CACJ,EACA,SAAU,CACN,KAAM,GACV,EACA,qBAAsB,CAClB,KAAM,GACV,EACA,sBAAuB,CACnB,KAAM,GACV,EACA,WAAY,CACR,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,kBAAmB,CACf,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,cAAe,CACX,OAAQ,OACZ,EACA,QAAS,CAAC,CACd,EACA,iBAAkB,CACd,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,CACJ,EACA,cAAe,CACX,KAAM,GACV,EACA,GAAI,CACA,KAAM,GACV,EACA,KAAM,CACF,KAAM,GACV,EACA,KAAM,CACF,KAAM,GACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,IAAK,CACD,KAAM,GACV,EACA,WAAY,CACR,KAAM,SACN,iBAAkB,CACtB,EACA,QAAS,CACL,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,QAAS,CACL,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,UAAW,CACP,KAAM,4BACV,EACA,UAAW,CACP,KAAM,oCACV,EACA,QAAS,CACL,KAAM,SACN,OAAQ,OACZ,EACA,SAAU,CACN,KAAM,4BACV,EACA,SAAU,CACN,KAAM,oCACV,EACA,YAAa,CACT,KAAM,UACN,QAAS,EACb,EACA,YAAa,CACT,KAAM,4BACV,EACA,YAAa,CACT,KAAM,6BACN,QAAS,CACb,EACA,cAAe,CACX,KAAM,4BACV,EACA,cAAe,CACX,KAAM,oCACV,EACA,SAAU,CACN,KAAM,qBACV,EACA,kBAAmB,CACf,KAAM,SACN,qBAAsB,CAClB,KAAM,qBACV,CACJ,EACA,MAAO,GACP,KAAM,CACF,KAAM,QACN,MAAO,EACX,EACA,KAAM,CACF,MAAO,CACH,CACI,KAAM,qBACV,EACA,CACI,KAAM,QACN,MAAO,CACH,KAAM,qBACV,EACA,SAAU,EACV,YAAa,EACjB,CACJ,CACJ,EACA,MAAO,CACH,KAAM,QACV,EACA,YAAa,CACT,KAAM,QACV,EACA,QAAS,GACT,WAAY,CACR,KAAM,UACN,QAAS,EACb,EACA,SAAU,CACN,KAAM,UACN,QAAS,EACb,EACA,UAAW,CACP,KAAM,UACN,QAAS,EACb,EACA,SAAU,CACN,KAAM,QACN,MAAO,EACX,EACA,OAAQ,CACJ,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,gBAAiB,CACb,KAAM,QACV,EACA,cAAe,CACX,KAAM,GACV,CACJ,EACA,MAAO,CACH,YAAa,CACT,KAAM,QACN,SAAU,EACV,MAAO,CACH,KAAM,GACV,CACJ,EACA,mBAAoB,CAChB,KAAM,UACN,QAAS,CACb,EACA,2BAA4B,CACxB,KAAM,6BACN,QAAS,CACb,EACA,YAAa,CACT,KAAM,CACF,QACA,UACA,UACA,OACA,SACA,SACA,QACJ,CACJ,EACA,YAAa,CACT,KAAM,QACN,MAAO,CACH,KAAM,QACV,EACA,YAAa,GACb,QAAS,CAAC,CACd,CACJ,CACJ,IC7SA,IAMOI,GANPC,GAAAC,GAAA,kBAAAC,IAMOH,GAAQ,CACX,IAAK,+CACL,QAAS,+CACT,MAAO,oEACP,KAAM,CACF,SACA,SACJ,EACA,WAAY,CACR,YAAa,CACT,SAAU,8KACV,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,aAAc,CACV,SAAU,uKACV,KAAM,SACN,qBAAsB,CAClB,MAAO,CACH,CACI,KAAM,GACV,EACA,CACI,KAAM,qBACV,CACJ,CACJ,CACJ,EACA,IAAK,CACD,KAAM,SACN,OAAQ,gBACR,SAAU,mCACV,QAAS,WACb,EACA,QAAS,CACL,KAAM,SACN,OAAQ,KACZ,EACA,QAAS,CACL,KAAM,SACN,QAAS,4BACb,EACA,KAAM,CACF,KAAM,SACN,OAAQ,eACZ,EACA,YAAa,CACT,KAAM,SACN,OAAQ,eACZ,EACA,YAAa,CACT,KAAM,SACN,cAAe,CACX,KAAM,SACN,OAAQ,KACZ,EACA,qBAAsB,CAClB,KAAM,SACV,CACJ,EACA,SAAU,CACN,KAAM,QACV,EACA,MAAO,CACH,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,YAAa,CACT,KAAM,qBACV,EACA,MAAO,CACH,KAAM,GACV,EACA,SAAU,CACN,KAAM,GACV,EACA,qBAAsB,CAClB,KAAM,GACV,EACA,WAAY,CACR,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,QAAS,CAAC,CACd,EACA,kBAAmB,CACf,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,EACA,cAAe,CACX,OAAQ,OACZ,EACA,QAAS,CAAC,CACd,EACA,iBAAkB,CACd,KAAM,SACN,qBAAsB,CAClB,KAAM,GACV,CACJ,EACA,cAAe,CACX,KAAM,GACV,EACA,GAAI,CACA,KAAM,GACV,EACA,KAAM,CACF,KAAM,GACV,EACA,KAAM,CACF,KAAM,GACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,MAAO,CACH,KAAM,qBACV,EACA,IAAK,CACD,KAAM,GACV,EACA,iBAAkB,CACd,KAAM,GACV,EACA,sBAAuB,CACnB,KAAM,GACV,EACA,WAAY,CACR,KAAM,SACN,iBAAkB,CACtB,EACA,QAAS,CACL,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,QAAS,CACL,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,UAAW,CACP,KAAM,4BACV,EACA,UAAW,CACP,KAAM,oCACV,EACA,QAAS,CACL,KAAM,SACN,OAAQ,OACZ,EACA,SAAU,CACN,KAAM,4BACV,EACA,SAAU,CACN,KAAM,oCACV,EACA,YAAa,CACT,KAAM,UACN,QAAS,EACb,EACA,YAAa,CACT,KAAM,4BACV,EACA,YAAa,CACT,KAAM,6BACN,QAAS,CACb,EACA,cAAe,CACX,KAAM,4BACV,EACA,cAAe,CACX,KAAM,oCACV,EACA,SAAU,CACN,KAAM,qBACV,EACA,kBAAmB,CACf,KAAM,SACN,qBAAsB,CAClB,KAAM,qBACV,CACJ,EACA,MAAO,GACP,KAAM,CACF,KAAM,QACN,MAAO,EACX,EACA,KAAM,CACF,MAAO,CACH,CACI,KAAM,qBACV,EACA,CACI,KAAM,QACN,MAAO,CACH,KAAM,qBACV,EACA,SAAU,EACV,YAAa,EACjB,CACJ,CACJ,EACA,MAAO,CACH,KAAM,QACV,EACA,YAAa,CACT,KAAM,QACV,EACA,QAAS,GACT,WAAY,CACR,KAAM,UACN,QAAS,EACb,EACA,SAAU,CACN,KAAM,UACN,QAAS,EACb,EACA,UAAW,CACP,KAAM,UACN,QAAS,EACb,EACA,SAAU,CACN,KAAM,QACN,MAAO,EACX,EACA,OAAQ,CACJ,KAAM,QACV,EACA,iBAAkB,CACd,KAAM,QACV,EACA,gBAAiB,CACb,KAAM,QACV,EACA,cAAe,CACX,KAAM,GACV,CACJ,EACA,MAAO,CACH,YAAa,CACT,KAAM,QACN,SAAU,EACV,MAAO,CACH,KAAM,GACV,CACJ,EACA,mBAAoB,CAChB,KAAM,UACN,QAAS,CACb,EACA,2BAA4B,CACxB,KAAM,6BACN,QAAS,CACb,EACA,YAAa,CACT,KAAM,CACF,QACA,UACA,UACA,OACA,SACA,SACA,QACJ,CACJ,EACA,YAAa,CACT,KAAM,QACN,MAAO,CACH,KAAM,QACV,EACA,YAAa,GACb,QAAS,CAAC,CACd,CACJ,CACJ,ICtSA,IAOaI,GAucPC,GA9cNC,GAAAC,GAAA,kBAAAC,IAIAC,KACAC,KACAC,KACaP,GAAsB,CAC/B,mBAAoB,CAAC,EACrB,QAAS,CAEL,0CAA2C,CACvC,YAAe,CACX,YAAe,CACX,KAAQ,QACR,SAAY,EACZ,MAAS,CACL,KAAQ,GACZ,CACJ,EACA,gBAAmB,CACf,KAAQ,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",
|
|
6
6
|
"names": ["init_define_process_env", "__esmMin", "readFileFromUri", "uri", "readFileFromFsPath", "_", "config", "config2", "bundle", "fileContent", "content", "isBuiltinExtension", "resolve", "reject", "uriContent", "err", "t", "args", "firstArg", "key", "message", "formatArgs", "replacements", "str", "i", "messageFromBundle", "format", "template", "values", "_format2Regexp", "match", "group", "json", "init_browser", "__esmMin", "init_define_process_env", "require_is", "__commonJSMin", "exports", "init_define_process_env", "boolean", "string", "number", "error", "func", "array", "stringArray", "value", "elem", "require_messages", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "is", "ErrorCodes", "ResponseError", "_ResponseError", "code", "message", "data", "ParameterStructures", "_ParameterStructures", "kind", "value", "AbstractMessageSignature", "method", "numberOfParams", "RequestType0", "RequestType", "_parameterStructures", "RequestType1", "RequestType2", "RequestType3", "RequestType4", "RequestType5", "RequestType6", "RequestType7", "RequestType8", "RequestType9", "NotificationType", "NotificationType0", "NotificationType1", "NotificationType2", "NotificationType3", "NotificationType4", "NotificationType5", "NotificationType6", "NotificationType7", "NotificationType8", "NotificationType9", "Message", "isRequest", "candidate", "isNotification", "isResponse", "require_linkedMap", "__commonJSMin", "exports", "init_define_process_env", "Touch", "LinkedMap", "key", "item", "touch", "value", "callbackfn", "thisArg", "state", "current", "iterator", "result", "newSize", "currentSize", "next", "previous", "data", "LRUCache", "limit", "ratio", "require_disposable", "__commonJSMin", "exports", "init_define_process_env", "Disposable", "create", "func", "require_ral", "__commonJSMin", "exports", "init_define_process_env", "_ral", "RAL", "install", "ral", "require_events", "__commonJSMin", "exports", "init_define_process_env", "__importDefault", "mod", "ral_1", "Event", "_disposable", "CallbackList", "callback", "context", "bucket", "foundCallbackWithDifferentContext", "len", "args", "ret", "callbacks", "contexts", "i", "e", "Emitter", "_Emitter", "_options", "listener", "thisArgs", "disposables", "result", "event", "require_cancellation", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "__importDefault", "ral_1", "Is", "events_1", "CancellationToken", "is", "value", "candidate", "shortcutEvent", "callback", "context", "handle", "MutableToken", "CancellationTokenSource", "require_sharedArrayCancellation", "__commonJSMin", "exports", "init_define_process_env", "cancellation_1", "CancellationState", "SharedArraySenderStrategy", "request", "buffer", "data", "_conn", "id", "SharedArrayBufferCancellationToken", "SharedArrayBufferCancellationTokenSource", "SharedArrayReceiverStrategy", "require_semaphore", "__commonJSMin", "exports", "init_define_process_env", "__importDefault", "mod", "ral_1", "Semaphore", "capacity", "thunk", "resolve", "reject", "next", "result", "value", "err", "require_messageReader", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "__importDefault", "ral_1", "Is", "events_1", "semaphore_1", "MessageReader", "is", "value", "candidate", "AbstractMessageReader", "error", "info", "ResolvedMessageReaderOptions", "fromOptions", "options", "charset", "contentDecoder", "contentDecoders", "contentTypeDecoder", "contentTypeDecoders", "decoder", "ReadableStreamMessageReader", "readable", "timeout", "callback", "data", "headers", "contentLength", "length", "body", "bytes", "message", "token", "require_messageWriter", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "__importDefault", "ral_1", "Is", "semaphore_1", "events_1", "ContentLength", "CRLF", "MessageWriter", "is", "value", "candidate", "AbstractMessageWriter", "error", "message", "count", "ResolvedMessageWriterOptions", "fromOptions", "options", "WriteableStreamMessageWriter", "writable", "msg", "buffer", "headers", "data", "require_messageBuffer", "__commonJSMin", "exports", "init_define_process_env", "CR", "LF", "CRLF", "AbstractMessageBuffer", "encoding", "chunk", "toAppend", "lowerCaseKeys", "state", "chunkIndex", "offset", "chunkBytesRead", "row", "buffer", "result", "headers", "i", "header", "index", "key", "value", "length", "byteCount", "resultOffset", "chunkPart", "require_connection", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "__importDefault", "createMessageConnection", "ral_1", "Is", "messages_1", "linkedMap_1", "events_1", "cancellation_1", "CancelNotification", "ProgressToken", "is", "value", "ProgressNotification", "ProgressType", "StarRequestHandler", "Trace", "TraceValue", "fromString", "toString", "TraceFormat", "SetTraceNotification", "LogTraceNotification", "ConnectionErrors", "ConnectionError", "_ConnectionError", "code", "message", "ConnectionStrategy", "candidate", "IdCancellationReceiverStrategy", "RequestCancellationReceiverStrategy", "CancellationReceiverStrategy", "_", "CancellationSenderStrategy", "conn", "id", "CancellationStrategy", "MessageStrategy", "ConnectionOptions", "ConnectionState", "messageReader", "messageWriter", "_logger", "options", "logger", "sequenceNumber", "notificationSequenceNumber", "unknownResponseSequenceNumber", "version", "maxParallelism", "inFlight", "starRequestHandler", "requestHandlers", "starNotificationHandler", "notificationHandlers", "progressHandlers", "timer", "messageQueue", "responsePromises", "knownCanceledRequests", "requestTokens", "trace", "traceFormat", "tracer", "state", "errorEmitter", "closeEmitter", "unhandledNotificationEmitter", "unhandledProgressEmitter", "disposeEmitter", "cancellationStrategy", "cancelUndispatched", "_message", "isListening", "isClosed", "isDisposed", "closeHandler", "readErrorHandler", "error", "writeErrorHandler", "data", "createRequestQueueKey", "createResponseQueueKey", "createNotificationQueueKey", "addMessageToQueue", "queue", "handleResponse", "triggerMessageQueue", "messageStrategy", "handleMessage", "handleRequest", "handleNotification", "handleInvalidMessage", "callback", "cancelId", "key", "toCancel", "strategy", "response", "traceSendingResponse", "cancellationToken", "traceReceivedNotification", "requestMessage", "reply", "resultOrError", "method", "startTime", "replyError", "traceReceivedRequest", "element", "type", "requestHandler", "tokenKey", "cancellationSource", "handlerResult", "responseMessage", "responsePromise", "traceReceivedResponse", "notificationHandler", "params", "responseHandler", "stringifyTrace", "traceSendingRequest", "logLSPMessage", "traceSendingNotification", "lspMessage", "throwIfClosedOrDisposed", "throwIfListening", "throwIfNotListening", "undefinedToNull", "param", "nullToUndefined", "isNamedParam", "computeSingleParam", "parameterStructures", "computeMessageParams", "numberOfParams", "i", "connection", "args", "messageParams", "first", "paramStart", "paramEnd", "notificationMessage", "handler", "_type", "token", "sendCancellation", "p", "last", "disposable", "tokenWasCancelled", "resolve", "reject", "resolveWithCleanup", "r", "rejectWithCleanup", "_value", "_tracer", "sendNotificationOrTraceOptions", "_sendNotification", "_traceFormat", "promise", "verbose", "require_api", "__commonJSMin", "exports", "init_define_process_env", "__importDefault", "mod", "messages_1", "linkedMap_1", "disposable_1", "events_1", "cancellation_1", "sharedArrayCancellation_1", "messageReader_1", "messageWriter_1", "messageBuffer_1", "connection_1", "ral_1", "main_exports", "__export", "AnnotatedTextEdit", "ApplyKind", "ChangeAnnotation", "ChangeAnnotationIdentifier", "CodeAction", "CodeActionContext", "CodeActionKind", "CodeActionTag", "CodeActionTriggerKind", "CodeDescription", "CodeLens", "Color", "ColorInformation", "ColorPresentation", "Command", "CompletionItem", "CompletionItemKind", "CompletionItemLabelDetails", "CompletionItemTag", "CompletionList", "CreateFile", "DeleteFile", "Diagnostic", "DiagnosticRelatedInformation", "DiagnosticSeverity", "DiagnosticTag", "DocumentHighlight", "DocumentHighlightKind", "DocumentLink", "DocumentSymbol", "DocumentUri", "EOL", "FoldingRange", "FoldingRangeKind", "FormattingOptions", "Hover", "InlayHint", "InlayHintKind", "InlayHintLabelPart", "InlineCompletionContext", "InlineCompletionItem", "InlineCompletionList", "InlineCompletionTriggerKind", "InlineValueContext", "InlineValueEvaluatableExpression", "InlineValueText", "InlineValueVariableLookup", "InsertReplaceEdit", "InsertTextFormat", "InsertTextMode", "LanguageKind", "Location", "LocationLink", "MarkedString", "MarkupContent", "MarkupKind", "OptionalVersionedTextDocumentIdentifier", "ParameterInformation", "Position", "Range", "RenameFile", "SelectedCompletionInfo", "SelectionRange", "SemanticTokenModifiers", "SemanticTokenTypes", "SemanticTokens", "SignatureInformation", "SnippetTextEdit", "StringValue", "SymbolInformation", "SymbolKind", "SymbolTag", "TextDocument", "TextDocumentEdit", "TextDocumentIdentifier", "TextDocumentItem", "TextEdit", "URI", "VersionedTextDocumentIdentifier", "WorkspaceChange", "WorkspaceEdit", "WorkspaceFolder", "WorkspaceSymbol", "integer", "uinteger", "TextEditChangeImpl", "ChangeAnnotations", "FullTextDocument", "Is", "init_main", "__esmMin", "init_define_process_env", "is", "value", "create", "line", "character", "candidate", "one", "two", "three", "four", "uri", "range", "targetUri", "targetRange", "targetSelectionRange", "originSelectionRange", "red", "green", "blue", "alpha", "color", "label", "textEdit", "additionalTextEdits", "startLine", "endLine", "startCharacter", "endCharacter", "kind", "collapsedText", "result", "location", "message", "severity", "code", "source", "relatedInformation", "_a", "title", "command", "args", "replace", "newText", "insert", "position", "del", "needsConfirmation", "description", "annotation", "textDocument", "edits", "options", "oldUri", "newUri", "change", "changeAnnotations", "edit", "id", "annotations", "idOrAnnotation", "workspaceEdit", "textEditChange", "key", "textDocumentEdit", "optionsOrAnnotation", "operation", "version", "languageId", "text", "items", "isIncomplete", "fromPlainText", "plainText", "documentation", "parameters", "name", "containerName", "detail", "selectionRange", "children", "diagnostics", "only", "triggerKind", "kindOrCommandOrEdit", "checkKind", "data", "tabSize", "insertSpaces", "target", "parent", "variableName", "caseSensitiveLookup", "expression", "frameId", "stoppedLocation", "createSnippet", "isSnippet", "insertText", "filterText", "selectedCompletionInfo", "content", "applyEdits", "document", "sortedEdits", "mergeSort", "a", "diff", "lastModifiedOffset", "i", "e", "startOffset", "endOffset", "compare", "p", "left", "right", "leftIdx", "rightIdx", "start", "end", "event", "lineOffsets", "isLineStart", "ch", "offset", "low", "high", "mid", "lineOffset", "nextLineOffset", "toString", "defined", "undefined", "boolean", "string", "number", "numberRange", "min", "max", "func", "objectLiteral", "typedArray", "check", "require_messages", "__commonJSMin", "exports", "init_define_process_env", "vscode_jsonrpc_1", "MessageDirection", "RegistrationType", "method", "ProtocolRequestType0", "ProtocolRequestType", "ProtocolNotificationType0", "ProtocolNotificationType", "CM", "create", "client", "server", "require_is", "__commonJSMin", "exports", "init_define_process_env", "boolean", "string", "number", "error", "func", "array", "stringArray", "typedArray", "objectLiteral", "value", "elem", "check", "require_protocol_implementation", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "ImplementationRequest", "require_protocol_typeDefinition", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "TypeDefinitionRequest", "require_protocol_workspaceFolder", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "WorkspaceFoldersRequest", "DidChangeWorkspaceFoldersNotification", "require_protocol_configuration", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "ConfigurationRequest", "require_protocol_colorProvider", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "DocumentColorRequest", "ColorPresentationRequest", "require_protocol_foldingRange", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "FoldingRangeRequest", "FoldingRangeRefreshRequest", "require_protocol_declaration", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "DeclarationRequest", "require_protocol_selectionRange", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "SelectionRangeRequest", "require_protocol_progress", "__commonJSMin", "exports", "init_define_process_env", "vscode_jsonrpc_1", "messages_1", "WorkDoneProgress", "is", "value", "WorkDoneProgressCreateRequest", "WorkDoneProgressCancelNotification", "require_protocol_callHierarchy", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "CallHierarchyPrepareRequest", "CallHierarchyIncomingCallsRequest", "CallHierarchyOutgoingCallsRequest", "require_protocol_semanticTokens", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "TokenFormat", "SemanticTokensRegistrationType", "SemanticTokensRequest", "SemanticTokensDeltaRequest", "SemanticTokensRangeRequest", "SemanticTokensRefreshRequest", "require_protocol_showDocument", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "ShowDocumentRequest", "require_protocol_linkedEditingRange", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "LinkedEditingRangeRequest", "require_protocol_fileOperations", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "FileOperationPatternKind", "WillCreateFilesRequest", "DidCreateFilesNotification", "WillRenameFilesRequest", "DidRenameFilesNotification", "DidDeleteFilesNotification", "WillDeleteFilesRequest", "require_protocol_moniker", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "UniquenessLevel", "MonikerKind", "MonikerRequest", "require_protocol_typeHierarchy", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "TypeHierarchyPrepareRequest", "TypeHierarchySupertypesRequest", "TypeHierarchySubtypesRequest", "require_protocol_inlineValue", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "InlineValueRequest", "InlineValueRefreshRequest", "require_protocol_inlayHint", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "InlayHintRequest", "InlayHintResolveRequest", "InlayHintRefreshRequest", "require_protocol_diagnostic", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "vscode_jsonrpc_1", "Is", "messages_1", "DiagnosticServerCancellationData", "is", "value", "candidate", "DocumentDiagnosticReportKind", "DocumentDiagnosticRequest", "WorkspaceDiagnosticRequest", "DiagnosticRefreshRequest", "require_protocol_notebook", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "vscode_languageserver_types_1", "Is", "messages_1", "NotebookCellKind", "is", "value", "ExecutionSummary", "create", "executionOrder", "success", "candidate", "equals", "one", "other", "NotebookCell", "kind", "document", "diff", "two", "equalsMetadata", "oneArray", "otherArray", "i", "oneKeys", "otherKeys", "prop", "NotebookDocument", "uri", "notebookType", "version", "cells", "NotebookDocumentSyncRegistrationType", "DidOpenNotebookDocumentNotification", "NotebookCellArrayChange", "start", "deleteCount", "DidChangeNotebookDocumentNotification", "DidSaveNotebookDocumentNotification", "DidCloseNotebookDocumentNotification", "require_protocol_inlineCompletion", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "InlineCompletionRequest", "require_protocol_textDocumentContent", "__commonJSMin", "exports", "init_define_process_env", "messages_1", "TextDocumentContentRequest", "TextDocumentContentRefreshRequest", "require_protocol", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "messages_1", "vscode_languageserver_types_1", "Is", "protocol_implementation_1", "protocol_typeDefinition_1", "protocol_workspaceFolder_1", "protocol_configuration_1", "protocol_colorProvider_1", "protocol_foldingRange_1", "protocol_declaration_1", "protocol_selectionRange_1", "protocol_progress_1", "protocol_callHierarchy_1", "protocol_semanticTokens_1", "protocol_showDocument_1", "protocol_linkedEditingRange_1", "protocol_fileOperations_1", "protocol_moniker_1", "protocol_typeHierarchy_1", "protocol_inlineValue_1", "protocol_inlayHint_1", "protocol_diagnostic_1", "protocol_notebook_1", "protocol_inlineCompletion_1", "protocol_textDocumentContent_1", "TextDocumentFilter", "is", "value", "candidate", "GlobPattern", "NotebookDocumentFilter", "NotebookCellTextDocumentFilter", "DocumentSelector", "elem", "RegistrationRequest", "UnregistrationRequest", "ResourceOperationKind", "FailureHandlingKind", "RegularExpressionEngineKind", "PositionEncodingKind", "StaticRegistrationOptions", "hasId", "TextDocumentRegistrationOptions", "WorkDoneProgressOptions", "hasWorkDoneProgress", "InitializeRequest", "InitializeErrorCodes", "InitializedNotification", "ShutdownRequest", "ExitNotification", "DidChangeConfigurationNotification", "MessageType", "ShowMessageNotification", "ShowMessageRequest", "LogMessageNotification", "TelemetryEventNotification", "TextDocumentSyncKind", "DidOpenTextDocumentNotification", "TextDocumentContentChangeEvent", "isIncremental", "event", "isFull", "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", "DocumentRangesFormattingRequest", "DocumentOnTypeFormattingRequest", "PrepareSupportDefaultBehavior", "RenameRequest", "PrepareRenameRequest", "ExecuteCommandRequest", "ApplyWorkspaceEditRequest", "require_connection", "__commonJSMin", "exports", "init_define_process_env", "createProtocolConnection", "vscode_jsonrpc_1", "input", "output", "logger", "options", "require_api", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "connection_1", "LSPErrorCodes", "require_semanticTokens", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "SemanticTokensFeature", "Base", "handler", "type", "params", "cancel", "SemanticTokensDiff", "originalSequence", "modifiedSequence", "originalLength", "modifiedLength", "startIndex", "originalEndIndex", "modifiedEndIndex", "deleteCount", "newData", "SemanticTokensBuilder", "_SemanticTokensBuilder", "line", "char", "length", "tokenType", "tokenModifiers", "pushLine", "pushChar", "dataSource", "data", "tokenCount", "prevLine", "prevChar", "result", "i", "dstOffset", "pos", "b", "aLine", "bLine", "aChar", "bChar", "srcOffset", "id", "require_inlineCompletion_proposed", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "InlineCompletionFeature", "Base", "handler", "params", "cancel", "require_textDocumentContent", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "TextDocumentContentFeature", "Base", "uri", "handler", "params", "cancel", "require_textDocuments", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "TextDocuments", "configuration", "handler", "uri", "connection", "disposables", "event", "td", "document", "toFire", "changes", "version", "syncedDocument", "token", "disposable", "require_notebook", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "textDocuments_1", "NotebookSyncFeature", "Base", "handler", "params", "CellTextDocumentConnection", "_CellTextDocumentConnection", "NotebookDocuments", "configurationOrTextDocuments", "cell", "uri", "value", "key", "connection", "cellTextDocumentConnection", "disposables", "cellTextDocument", "notebookDocument", "oldMetadata", "metadataChanged", "change", "opened", "closed", "data", "text", "changedCells", "array", "open", "close", "cellUpdates", "i", "old", "changeEvent", "added", "removed", "textContent", "disposable", "require_is", "__commonJSMin", "exports", "init_define_process_env", "boolean", "string", "number", "error", "func", "array", "stringArray", "typedArray", "thenable", "value", "elem", "check", "require_uuid", "__commonJSMin", "exports", "init_define_process_env", "v4", "isUUID", "parse", "generateUuid", "ValueUUID", "_value", "other", "V4UUID", "_V4UUID", "array", "_UUIDPattern", "value", "require_progress", "__commonJSMin", "exports", "init_define_process_env", "attachWorkDone", "attachPartialResult", "vscode_languageserver_protocol_1", "uuid_1", "WorkDoneProgressReporterImpl", "_WorkDoneProgressReporterImpl", "_connection", "_token", "title", "percentage", "message", "cancellable", "param", "arg0", "arg1", "WorkDoneProgressServerReporterImpl", "connection", "token", "NullProgressReporter", "NullProgressServerReporter", "params", "ProgressFeature", "Base", "capabilities", "progress", "ResultProgress", "ResultProgressReporterImpl", "data", "require_configuration", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "vscode_languageserver_protocol_1", "Is", "ConfigurationFeature", "Base", "arg", "params", "require_workspaceFolder", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "WorkspaceFoldersFeature", "Base", "capabilities", "workspaceCapabilities", "params", "changeNotifications", "require_callHierarchy", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "CallHierarchyFeature", "Base", "handler", "params", "cancel", "type", "require_showDocument", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "ShowDocumentFeature", "Base", "params", "require_fileOperations", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "FileOperationsFeature", "Base", "handler", "params", "cancel", "require_linkedEditingRange", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "LinkedEditingRangeFeature", "Base", "handler", "params", "cancel", "require_typeHierarchy", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "TypeHierarchyFeature", "Base", "handler", "params", "cancel", "type", "require_inlineValue", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "InlineValueFeature", "Base", "handler", "params", "cancel", "require_foldingRange", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "FoldingRangeFeature", "Base", "handler", "type", "params", "cancel", "require_inlayHint", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "InlayHintFeature", "Base", "handler", "params", "cancel", "require_diagnostic", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "DiagnosticFeature", "Base", "handler", "params", "cancel", "require_moniker", "__commonJSMin", "exports", "init_define_process_env", "vscode_languageserver_protocol_1", "MonikerFeature", "Base", "handler", "type", "params", "cancel", "require_server", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "combineConsoleFeatures", "combineTelemetryFeatures", "combineTracerFeatures", "combineClientFeatures", "combineWindowFeatures", "combineWorkspaceFeatures", "combineLanguagesFeatures", "combineNotebooksFeatures", "combineFeatures", "createConnection", "vscode_languageserver_protocol_1", "Is", "UUID", "progress_1", "configuration_1", "workspaceFolder_1", "callHierarchy_1", "semanticTokens_1", "showDocument_1", "fileOperations_1", "linkedEditingRange_1", "typeHierarchy_1", "inlineValue_1", "foldingRange_1", "inlayHint_1", "diagnostic_1", "notebook_1", "moniker_1", "null2Undefined", "value", "ErrorMessageTracker", "message", "count", "connection", "RemoteConsoleImpl", "_capabilities", "type", "_RemoteWindowImpl", "actions", "params", "RemoteWindowImpl", "BulkRegistration", "create", "BulkRegistrationImpl", "registerOptions", "method", "id", "BulkUnregistration", "BulkUnregistrationImpl", "_connection", "unregistrations", "unregistration", "arg", "_error", "RemoteClientImpl", "typeOrRegistrations", "registerOptionsOrType", "_result", "registrations", "registration", "_RemoteWorkspaceImpl", "paramOrEdit", "isApplyWorkspaceEditParams", "RemoteWorkspaceImpl", "TracerImpl", "verbose", "TelemetryImpl", "data", "_LanguagesImpl", "_type", "LanguagesImpl", "_NotebooksImpl", "NotebooksImpl", "one", "two", "Base", "combine", "func", "connectionFactory", "watchDog", "factories", "logger", "tracer", "telemetry", "client", "remoteWindow", "workspace", "languages", "notebooks", "allRemotes", "asPromise", "resolve", "reject", "resolved", "error", "shutdownHandler", "initializeHandler", "exitHandler", "protocolConnection", "handler", "param", "cancel", "remote", "capabilities", "require_api", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "ownKeys", "ar", "mod", "result", "__exportStar", "p", "semanticTokens_1", "ic", "tdc", "textDocuments_1", "notebook_1", "ProposedFeatures", "require_ril", "__commonJSMin", "exports", "init_define_process_env", "api_1", "MessageBuffer", "_MessageBuffer", "encoding", "value", "_encoding", "buffer", "length", "ReadableStreamWrapper", "socket", "event", "listener", "WritableStreamWrapper", "data", "QueueMicrotaskImpl", "callback", "args", "PromiseImpl", "_textEncoder", "_ril", "msg", "options", "ms", "handle", "RIL", "install", "require_main", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "__importDefault", "mod", "createMessageConnection", "ril_1", "api_1", "BrowserMessageReader", "port", "event", "callback", "BrowserMessageWriter", "msg", "error", "reader", "writer", "logger", "options", "require_main", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "createProtocolConnection", "browser_1", "reader", "writer", "logger", "options", "require_main", "__commonJSMin", "exports", "init_define_process_env", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "createConnection", "api_1", "_shutdownReceived", "watchDog", "_params", "value", "_code", "arg1", "arg2", "arg3", "arg4", "factories", "reader", "writer", "options", "connectionFactory", "logger", "formatError", "message", "err", "error", "runSafeAsync", "runtime", "func", "errorVal", "errorMessage", "token", "resolve", "cancelValue", "result", "e", "runSafe", "import_vscode_languageserver", "init_runner", "__esmMin", "init_define_process_env", "registerDiagnosticsPushSupport", "documents", "connection", "runtime", "validate", "pendingValidationRequests", "disposables", "change", "triggerValidation", "event", "cleanPendingValidation", "textDocument", "request", "diagnostics", "e", "formatError", "keys", "key", "registerDiagnosticsPullSupport", "newDocumentDiagnosticReport", "registration", "params", "token", "runSafeAsync", "document", "requestRefresh", "import_vscode_languageserver", "init_validation", "__esmMin", "init_define_process_env", "init_runner", "createScanner", "text", "ignoreTrivia", "len", "pos", "value", "tokenOffset", "token", "lineNumber", "lineStartOffset", "tokenLineStartOffset", "prevTokenLineStartOffset", "scanError", "scanHexDigits", "count", "exact", "digits", "ch", "setPosition", "newPosition", "scanNumber", "start", "isDigit", "end", "scanString", "result", "ch3", "isLineBreak", "scanNext", "code", "isWhiteSpace", "safeLength", "commentClosed", "isUnknownContentCharacter", "scanNextNonTrivia", "CharacterCodes", "init_scanner", "__esmMin", "init_define_process_env", "cachedSpaces", "maxCachedValues", "cachedBreakLinesWithSpaces", "supportedEols", "init_string_intern", "__esmMin", "init_define_process_env", "_", "index", "format", "documentText", "range", "options", "initialIndentLevel", "formatText", "formatTextStart", "rangeStart", "rangeEnd", "isEOL", "endOffset", "computeIndentLevel", "eol", "getEOL", "eolFastPathSupported", "supportedEols", "numberLineBreaks", "indentLevel", "indentValue", "cachedSpaces", "repeat", "indentType", "scanner", "createScanner", "hasError", "newLinesAndIndent", "amountOfSpaces", "cachedBreakLinesWithSpaces", "scanNext", "token", "editOperations", "addEdit", "text", "startOffset", "firstToken", "firstTokenStart", "initialIndent", "firstTokenEnd", "secondToken", "replaceContent", "needsLineBreak", "commentTokenStart", "secondTokenStart", "s", "count", "result", "i", "content", "nChars", "tabSize", "ch", "offset", "init_format", "__esmMin", "init_define_process_env", "init_scanner", "init_string_intern", "parse", "text", "errors", "options", "ParseOptionsConfigs", "currentProperty", "currentParent", "previousParents", "onValue", "value", "visit", "object", "name", "array", "error", "offset", "length", "startLine", "startCharacter", "getNodePath", "node", "path", "key", "index", "getNodeValue", "obj", "prop", "valueNode", "contains", "includeRightBound", "findNodeAtOffset", "children", "item", "visitor", "_scanner", "createScanner", "_jsonPath", "suppressedCallbacks", "toNoArgVisit", "visitFunction", "toOneArgVisit", "arg", "toOneArgVisitWithPath", "toBeginVisit", "toEndVisit", "onObjectBegin", "onObjectProperty", "onObjectEnd", "onArrayBegin", "onArrayEnd", "onLiteralValue", "onSeparator", "onComment", "onError", "disallowComments", "allowTrailingComma", "scanNext", "token", "handleError", "skipUntilAfter", "skipUntil", "parseString", "isValue", "parseLiteral", "tokenValue", "parseProperty", "parseValue", "parseObject", "needsComma", "parseArray", "isFirstElement", "init_parser", "__esmMin", "init_define_process_env", "init_scanner", "init_edit", "__esmMin", "init_define_process_env", "init_format", "init_parser", "format", "documentText", "range", "options", "createScanner", "ScanError", "SyntaxKind", "parse", "findNodeAtOffset", "getNodePath", "getNodeValue", "ParseErrorCode", "init_main", "__esmMin", "init_define_process_env", "init_format", "init_edit", "init_scanner", "init_parser", "equals", "one", "other", "i", "key", "oneKeys", "otherKeys", "isNumber", "val", "isDefined", "isBoolean", "isString", "isObject", "init_objects", "__esmMin", "init_define_process_env", "startsWith", "haystack", "needle", "i", "endsWith", "diff", "extendedRegExp", "pattern", "flags", "stringLength", "str", "count", "code", "init_strings", "__esmMin", "init_define_process_env", "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", "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", "StringValue", "InlineCompletionItem", "InlineCompletionList", "InlineCompletionTriggerKind", "SelectedCompletionInfo", "InlineCompletionContext", "WorkspaceFolder", "TextDocument", "FullTextDocument", "Is", "init_main", "__esmMin", "init_define_process_env", "is", "value", "create", "line", "character", "candidate", "one", "two", "three", "four", "uri", "range", "targetUri", "targetRange", "targetSelectionRange", "originSelectionRange", "red", "green", "blue", "alpha", "color", "label", "textEdit", "additionalTextEdits", "startLine", "endLine", "startCharacter", "endCharacter", "kind", "collapsedText", "result", "location", "message", "severity", "code", "source", "relatedInformation", "_a", "title", "command", "args", "replace", "newText", "insert", "position", "del", "needsConfirmation", "description", "annotation", "textDocument", "edits", "options", "oldUri", "newUri", "change", "version", "languageId", "text", "items", "isIncomplete", "fromPlainText", "plainText", "documentation", "parameters", "name", "containerName", "detail", "selectionRange", "children", "diagnostics", "only", "triggerKind", "kindOrCommandOrEdit", "checkKind", "data", "tabSize", "insertSpaces", "target", "parent", "variableName", "caseSensitiveLookup", "expression", "frameId", "stoppedLocation", "createSnippet", "insertText", "filterText", "selectedCompletionInfo", "content", "applyEdits", "document", "sortedEdits", "mergeSort", "a", "diff", "lastModifiedOffset", "i", "e", "startOffset", "endOffset", "compare", "p", "left", "right", "leftIdx", "rightIdx", "start", "end", "event", "lineOffsets", "isLineStart", "ch", "offset", "low", "high", "mid", "lineOffset", "nextLineOffset", "toString", "defined", "undefined", "boolean", "string", "number", "numberRange", "min", "max", "func", "objectLiteral", "typedArray", "check", "mergeSort", "data", "compare", "p", "left", "right", "leftIdx", "rightIdx", "i", "computeLineOffsets", "text", "isAtLineStart", "textOffset", "result", "ch", "isEOL", "char", "getWellformedRange", "range", "start", "end", "getWellformedEdit", "textEdit", "FullTextDocument", "TextDocument", "init_main", "__esmMin", "init_define_process_env", "_FullTextDocument", "uri", "languageId", "version", "content", "changes", "change", "startOffset", "endOffset", "startLine", "endLine", "lineOffsets", "addedLineOffsets", "len", "diff", "offset", "low", "high", "mid", "line", "position", "lineOffset", "nextLineOffset", "event", "candidate", "create", "update", "document", "applyEdits", "edits", "sortedEdits", "a", "lastModifiedOffset", "spans", "e", "ErrorCode", "SchemaDraft", "ClientCapabilities", "init_jsonLanguageTypes", "__esmMin", "init_define_process_env", "init_main", "MarkupKind", "URI", "Utils", "assertPath", "path", "TypeError", "JSON", "stringify", "normalizeStringPosix", "allowAboveRoot", "code", "res", "lastSegmentLength", "lastSlash", "dots", "i", "length", "charCodeAt", "lastSlashIndex", "lastIndexOf", "slice", "posix", "resolve", "cwd", "resolvedPath", "resolvedAbsolute", "arguments", "process", "normalize", "isAbsolute", "trailingSeparator", "join", "joined", "arg", "relative", "from", "to", "fromStart", "fromEnd", "fromLen", "toStart", "toLen", "lastCommonSep", "fromCode", "out", "_makeLong", "dirname", "hasRoot", "end", "matchedSlash", "basename", "ext", "start", "extIdx", "firstNonSlashEnd", "extname", "startDot", "startPart", "preDotState", "format", "pathObject", "sep", "dir", "root", "base", "name", "parse", "ret", "delimiter", "win32", "module", "exports", "__webpack_module_cache__", "__webpack_require__", "moduleId", "cachedModule", "__webpack_modules__", "d", "definition", "key", "o", "Object", "defineProperty", "enumerable", "get", "obj", "prop", "prototype", "hasOwnProperty", "call", "r", "Symbol", "toStringTag", "value", "n", "isWindows", "I", "navigator", "userAgent", "indexOf", "_schemePattern", "_singleSlashStart", "_doubleSlashStart", "_validateUri", "_strict", "scheme", "Error", "authority", "query", "fragment", "test", "_empty", "_slash", "_regexp", "thing", "fsPath", "with", "toString", "schemeOrData", "this", "uriToFsPath", "change", "Uri", "match", "exec", "percentDecode", "replace", "idx", "substring", "components", "result", "skipEncoding", "_asFormatted", "toJSON", "data", "_formatted", "external", "_fsPath", "_sep", "_pathSepMarker", "$mid", "encodeTable", "encodeURIComponentFast", "uriComponent", "isPath", "isAuthority", "nativeEncodePos", "pos", "encodeURIComponent", "charAt", "substr", "escaped", "encodeURIComponentMinimal", "uri", "keepDriveLetterCasing", "toLowerCase", "encoder", "userinfo", "String", "fromCharCode", "decodeURIComponentGraceful", "str", "decodeURIComponent", "_rEncodedAsHex", "x", "posixPath", "slash", "t", "joinPath", "paths", "resolvePath", "slashAdded", "LIB", "asSchema", "schema", "isBoolean", "normalizeId", "id", "httpPrefix", "httpsPrefix", "URI", "getSchemaDraftFromId", "schemaId", "schemaDraftFromId", "newJSONDocument", "root", "diagnostics", "comments", "JSONDocument", "getNodeValue", "node", "getNodePath", "contains", "offset", "includeRightBound", "getSchemaDraft", "fallBack", "SchemaDraft", "validate", "n", "validationResult", "matchingSchemas", "context", "_validateNode", "_validateObjectNode", "_validateArrayNode", "_validateStringNode", "_validateNumberNode", "matchesType", "type", "t", "subSchemaRef", "subValidationResult", "ValidationResult", "subMatchingSchemas", "notSchema", "ms", "testAlternatives", "alternatives", "maxOneMatch", "matches", "alternativesToTest", "_tryDiscriminatorOptimization", "bestMatch", "subSchema", "compareResult", "testBranch", "testCondition", "ifSchema", "thenSchema", "elseSchema", "val", "enumValueMatch", "e", "equals", "ErrorCode", "v", "isDefined", "deprecationMessage", "targetNode", "DiagnosticSeverity", "buildConstMap", "getSchemas", "constMap", "i", "schemas", "key", "valueMap", "enumValue", "findDiscriminator", "getValue", "coveredAlts", "indices", "idx", "discriminatorValue", "matchingIndices", "k", "propName", "prop", "p", "itemSchemas", "item", "itemIndex", "normalizeFloats", "float", "parts", "isNumber", "remainder", "normMultipleOf", "normValue", "multiplier", "getExclusiveLimit", "limit", "exclusive", "getLimit", "exclusiveMinimum", "exclusiveMaximum", "minimum", "maximum", "stringLength", "isString", "regex", "extendedRegExp", "errorMessage", "match", "format", "formats", "prefixItemsSchemas", "additionalItemSchema", "index", "max", "itemValidationResult", "containsSchema", "containsCount", "NoOpSchemaCollector", "unevaluatedItems", "hasDuplicates", "values", "value", "j", "seenKeys", "unprocessedProperties", "propertyNode", "propertyName", "keyNode", "location", "propertyProcessed", "propertySchema", "child", "propertyValidationResult", "propertyPattern", "processed", "additionalProperties", "unevaluatedProperties", "propertyDeps", "_validatePropertyDependencies", "isObject", "propertyNames", "f", "propertyDep", "requiredProp", "parse", "textDocument", "config", "problems", "lastProblemOffset", "text", "scanner", "createScanner", "commentRanges", "_scanNext", "token", "_checkScanError", "Range", "_accept", "_errorAtRange", "message", "code", "startOffset", "endOffset", "severity", "range", "Diagnostic", "_error", "skipUntilAfter", "skipUntil", "start", "end", "_finalize", "scanNext", "_parseArray", "parent", "ArrayASTNodeImpl", "count", "needsComma", "commaOffset", "_parseValue", "keyPlaceholder", "StringASTNodeImpl", "_parseProperty", "keysSeen", "PropertyASTNodeImpl", "_parseString", "seen", "_parseObject", "ObjectASTNodeImpl", "property", "_parseNumber", "NumberASTNodeImpl", "tokenValue", "numberValue", "_parseLiteral", "NullASTNodeImpl", "BooleanASTNodeImpl", "_root", "ASTNodeImpl", "EnumMatch", "EvaluationContext", "SchemaCollector", "init_jsonParser", "__esmMin", "init_define_process_env", "init_main", "init_objects", "init_strings", "init_jsonLanguageTypes", "init_esm", "init_browser", "length", "boolValue", "schemaDraft", "_SchemaCollector", "focusOffset", "exclude", "other", "_schema", "_other", "_node", "error", "hasProblems", "syntaxErrors", "findNodeAtOffset", "visitor", "doVisit", "ctn", "children", "stringifyObject", "obj", "indent", "stringifyLiteral", "newIndent", "result", "i", "keys", "key", "init_json", "__esmMin", "init_define_process_env", "valueCommitCharacters", "propertyCommitCharacters", "JSONCompletion", "init_jsonCompletion", "__esmMin", "init_define_process_env", "init_jsonParser", "init_main", "init_json", "init_strings", "init_objects", "init_jsonLanguageTypes", "init_browser", "schemaService", "contributions", "promiseConstructor", "clientCapabilities", "item", "i", "resolveCompletion", "resolver", "document", "position", "doc", "result", "text", "offset", "node", "ch", "currentWord", "overwriteRange", "Range", "overwriteStart", "supportsCommitCharacters", "proposed", "collector", "suggestion", "label", "existing", "shortendedLabel", "TextEdit", "CompletionItemKind", "message", "schema", "collectionPromises", "addValue", "currentKey", "currentProperty", "parent", "p", "CompletionItem", "separatorAfter", "location", "getNodePath", "contribution", "collectPromise", "InsertTextFormat", "types", "offsetForSeparator", "s", "schemaProperties", "key", "propertySchema", "proposal", "endsWith", "schemaPropertyNames", "propertyNameCompletionItem", "name", "documentation", "detail", "sortText", "enumDescription", "enumSortText", "enumDetails", "collectCompletionsForSimilarObject", "obj", "parentKey", "n", "collectSuggestionsForValues", "value", "contains", "valueNode", "matchingSchemas", "c", "existingValues", "getNodeValue", "index", "propertyMatched", "pattern", "extendedRegExp", "arrayDepth", "hasProposals", "isDefined", "type", "completionItem", "t", "example", "insertText", "filterText", "prefix", "suffix", "indent", "length", "enm", "schemaId", "stringifyObject", "snippetValue", "array", "content", "propertyText", "resultText", "nValueProposals", "body", "scanner", "createScanner", "children", "child", "start", "token", "markupString", "MarkupKind", "documentationFormat", "toMarkdown", "plain", "_match", "g1", "toMarkdownCodeBlock", "content", "JSONHover", "init_jsonHover", "__esmMin", "init_define_process_env", "init_jsonParser", "init_jsonLanguageTypes", "schemaService", "contributions", "promiseConstructor", "document", "position", "doc", "offset", "node", "hoverRangeNode", "parent", "hoverRange", "Range", "createHover", "contents", "location", "getNodePath", "i", "promise", "htmlContent", "schema", "title", "markdownDescription", "markdownEnumValueDescription", "enumValue", "matchingSchemas", "s", "idx", "getNodeValue", "result", "schemaAllowsComments", "schemaRef", "isBoolean", "schema", "allow", "schemaAllowsTrailingCommas", "deprSchemaRef", "toDiagnosticSeverity", "severityLevel", "DiagnosticSeverity", "JSONValidation", "idCounter", "init_jsonValidation", "__esmMin", "init_define_process_env", "init_jsonLanguageTypes", "init_browser", "init_objects", "jsonSchemaService", "promiseConstructor", "raw", "textDocument", "jsonDocument", "documentSettings", "diagnostics", "added", "addProblem", "problem", "signature", "getDiagnostics", "trailingCommaSeverity", "commentSeverity", "schemaValidation", "schemaRequest", "addSchemaProblem", "errorMessage", "errorCode", "relatedInformation", "astRoot", "property", "node", "range", "Range", "Diagnostic", "error", "warning", "semanticErrors", "p", "ErrorCode", "message", "t", "c", "uri", "resolvedSchema", "hexDigit", "charCode", "colorFromHex", "text", "init_colors", "__esmMin", "init_define_process_env", "getRange", "document", "node", "Range", "getName", "getNodeValue", "t", "JSONDocumentSymbols", "init_jsonDocumentSymbols", "__esmMin", "init_define_process_env", "init_jsonParser", "init_strings", "init_colors", "init_browser", "init_jsonLanguageTypes", "schemaService", "doc", "context", "root", "limit", "resourceString", "endsWith", "result", "item", "property", "location", "Location", "SymbolKind", "toVisit", "nextToVisit", "limitExceeded", "collectOutlineEntries", "containerName", "valueNode", "childContainerName", "next", "range", "selectionRange", "index", "symbol", "children", "nodeType", "name", "schema", "matchingSchemas", "visitedNode", "s", "nodeId", "color", "colorFromHex", "red256", "green256", "blue256", "toTwoDigitHex", "n", "r", "label", "TextEdit", "draft_2019_09_flat_default", "init_draft_2019_09_flat", "__esmMin", "init_define_process_env", "draft_2020_12_flat_default", "init_draft_2020_12_flat", "__esmMin", "init_define_process_env", "schemaContributions", "descriptions", "init_configuration", "__esmMin", "init_define_process_env", "init_draft_2019_09_flat", "init_draft_2020_12_flat", "init_browser", "draft_2020_12_flat_default", "draft_2019_09_flat_default", "t", "schemaName", "schema", "property", "propertyObject", "description", "createRegex", "glob", "opts", "str", "reStr", "extended", "globstar", "inGroup", "flags", "c", "i", "len", "prevChar", "starCount", "nextChar", "init_glob", "__esmMin", "init_define_process_env", "toDiagnostic", "message", "code", "relatedURL", "relatedInformation", "Range", "normalizeResourceForMatching", "resource", "URI", "toDisplayString", "url", "uri", "BANG", "PATH_SEP", "FilePatternAssociation", "SchemaHandle", "UnresolvedSchema", "ResolvedSchema", "JSONSchemaService", "idCounter", "init_jsonSchemaService", "__esmMin", "init_define_process_env", "init_main", "init_esm", "init_strings", "init_jsonParser", "init_jsonLanguageTypes", "init_browser", "init_glob", "init_objects", "pattern", "folderUri", "uris", "patternString", "include", "createRegex", "fileName", "match", "regexp", "service", "unresolvedSchemaContent", "unresolved", "hasChanges", "schema", "errors", "warnings", "schemaDraft", "path", "schemaRef", "asSchema", "next", "extendedRegExp", "index", "requestService", "contextService", "promiseConstructor", "filter", "id", "scheme", "normalizeId", "toWalk", "all", "key", "curr", "i", "handle", "schemaContributions", "schemas", "normalizedId", "schemaAssociations", "schemaAssociation", "association", "schemaHandle", "fpa", "config", "contributionAssociation", "schemaId", "errorMessage", "t", "ErrorCode", "content", "schemaContent", "jsonErrors", "parse", "error", "errorSplit", "endsWith", "errorCode", "schemaToResolve", "resolveErrors", "getSchemaDraftFromId", "SchemaDraft", "usesUnsupportedFeatures", "findSectionByJSONPointer", "current", "part", "findSchemaById", "collectAnchors", "merge", "target", "section", "mergeRef", "sourceRoot", "sourceHandle", "refSegment", "resolveExternalLink", "node", "parentHandle", "referencedHandle", "unresolvedSchema", "loc", "resolveRefs", "parentSchema", "openPromises", "seenRefs", "ref", "segments", "root", "result", "anchor", "isString", "_", "resolveWarnings", "seen", "collectEntries", "entries", "entry", "isObject", "collectMapEntries", "maps", "map", "k", "collectArrayEntries", "arrays", "array", "collectEntryOrArrayEntries", "items", "document", "p", "normalizedResource", "schemeId", "resolvedSchema", "schemaIds", "combinedSchemaId", "combinedSchema", "jsonDocument", "s", "getFoldingRanges", "document", "context", "ranges", "nestingLevels", "stack", "prevStart", "scanner", "createScanner", "token", "addRange", "range", "startLine", "kind", "line", "endLine", "Position", "FoldingRangeKind", "m", "i", "rangeLimit", "counts", "level", "entries", "maxLevel", "n", "result", "init_jsonFolding", "__esmMin", "init_define_process_env", "init_main", "init_jsonLanguageTypes", "getSelectionRanges", "document", "positions", "doc", "getSelectionRange", "position", "offset", "node", "result", "cStart", "cEnd", "newRange", "afterCommaOffset", "getOffsetAfterNextToken", "current", "index", "SelectionRange", "Range", "start", "end", "scanner", "createScanner", "expectedToken", "init_jsonSelectionRanges", "__esmMin", "init_define_process_env", "init_jsonLanguageTypes", "init_main", "format", "documentToFormat", "formattingOptions", "formattingRange", "range", "offset", "length", "options", "edit", "TextEdit", "Range", "init_format", "__esmMin", "init_define_process_env", "init_main", "init_jsonLanguageTypes", "compareProperties", "propertyTree1", "propertyTree2", "propertyName1", "propertyName2", "binarySearchOnPropertyArray", "propertyTreeArray", "propertyTree", "compare_fn", "propertyName", "firstPropertyInArrayName", "lastPropertyInArrayName", "m", "n", "k", "cmp", "Container", "PropertyTree", "init_propertyTree", "__esmMin", "init_define_process_env", "beginningLineNumber", "childProperty", "insertionIndex", "sort", "documentToSort", "formattingOptions", "options", "formattedJsonString", "TextDocument", "format", "formattedJsonDocument", "jsonPropertyTree", "findJsoncPropertyTree", "sortedJsonDocument", "sortJsoncDocument", "edits", "sortedAndFormattedJsonDocument", "TextEdit", "Range", "Position", "formattedDocument", "formattedString", "scanner", "createScanner", "rootTree", "PropertyTree", "currentTree", "currentProperty", "lastProperty", "token", "lastTokenLine", "numberOfCharactersOnPreviousLines", "lastNonTriviaNonCommentToken", "secondToLastNonTriviaNonCommentToken", "lineOfLastNonTriviaNonCommentToken", "endIndexOfLastNonTriviaNonCommentToken", "beginningLineNumber", "endLineNumber", "currentContainerStack", "updateLastPropertyEndLineNumber", "updateBeginningLineNumber", "i", "lengthOfLine", "Container", "childProperty", "jsonDocument", "propertyTree", "queueToSort", "updateSortingQueue", "dataToSort", "propertyTreeArray", "range", "jsonContentToReplace", "jsonDocumentToReplace", "lineWhereToAddComma", "indexWhereToAddComma", "edit", "commaIndex", "lineWhereToRemoveComma", "length", "sortProperties", "properties", "a", "b", "queue", "minimumBeginningLineNumber", "diff", "SortingRange", "updateSortingQueueForArrayProperties", "subObject", "init_sort", "__esmMin", "init_define_process_env", "init_main", "init_jsonLanguageTypes", "init_format", "init_propertyTree", "findLinks", "document", "doc", "links", "node", "path", "targetNode", "findTargetNode", "targetPos", "createRange", "Range", "tokens", "parseJSONPointer", "findNode", "pointer", "token", "propertyNode", "index", "arrayItem", "unescape", "str", "init_jsonLinks", "__esmMin", "init_define_process_env", "init_jsonLanguageTypes", "getLanguageService", "params", "promise", "jsonSchemaService", "JSONSchemaService", "schemaContributions", "jsonCompletion", "JSONCompletion", "jsonHover", "JSONHover", "jsonDocumentSymbols", "JSONDocumentSymbols", "jsonValidation", "JSONValidation", "settings", "uri", "document", "parse", "root", "diagnostics", "comments", "newJSONDocument", "getFoldingRanges", "getSelectionRanges", "findLinks", "range", "options", "format", "sort", "init_jsonLanguageService", "__esmMin", "init_define_process_env", "init_jsonCompletion", "init_jsonHover", "init_jsonValidation", "init_jsonDocumentSymbols", "init_jsonParser", "init_configuration", "init_jsonSchemaService", "init_jsonFolding", "init_jsonSelectionRanges", "init_sort", "init_format", "init_jsonLinks", "init_jsonLanguageTypes", "getLanguageModelCache", "maxEntries", "cleanupIntervalTimeInSec", "parse", "languageModels", "nModels", "cleanupInterval", "cutoffTime", "uris", "uri", "document", "version", "languageId", "languageModelInfo", "languageModel", "oldestTime", "oldestUri", "init_languageModelCache", "__esmMin", "init_define_process_env", "startServer", "connection", "runtime", "getSchemaRequestService", "handledSchemas", "builtInHandlers", "protocol", "uri", "builtInHandler", "VSCodeContentRequest", "responseText", "error", "languageService", "getLanguageService", "workspaceContext", "ClientCapabilities", "documents", "TextDocument", "clientSnippetSupport", "dynamicFormatterRegistration", "hierarchicalDocumentSymbolSupport", "foldingRangeLimitDefault", "resultLimit", "jsonFoldingRangeLimit", "jsoncFoldingRangeLimit", "jsonColorDecoratorLimit", "jsoncColorDecoratorLimit", "formatterMaxNumberOfEdits", "diagnosticsSupport", "params", "initializationOptions", "handledProtocols", "getClientCapability", "name", "def", "keys", "c", "i", "registerDiagnosticsPushSupport", "validateTextDocument", "registerDiagnosticsPullSupport", "sortCodeActionKind", "jsonConfigurationSettings", "schemaAssociations", "formatterRegistrations", "validateEnabled", "commentsSeverity", "trailingCommasSeverity", "schemaValidationSeverity", "schemaRequestSeverity", "keepLinesEnabled", "change", "settings", "updateConfiguration", "sanitizeLimitSetting", "settingValue", "documentSelector", "p", "r", "SchemaAssociationNotification", "associations", "SchemaContentChangeNotification", "uriOrUris", "needsRevalidation", "ForceValidateAllRequest", "ForceValidateRequest", "document", "ValidateContentRequest", "schemaUri", "content", "docURI", "LanguageStatusRequest", "jsonDocument", "getJSONDocument", "DocumentSortingRequest", "options", "extraSchemas", "languageSettings", "pattern", "association", "schema", "index", "textDocument", "documentSettings", "hasChanges", "jsonDocuments", "getLanguageModelCache", "e", "textDocumentPosition", "token", "runSafeAsync", "textDocumentPositionParams", "documentSymbolParams", "runSafe", "codeActionParams", "sortCodeAction", "t", "onFormat", "range", "edits", "getFullRange", "newText", "formatParams", "rangeLimit", "Range", "Position", "import_vscode_languageserver", "init_jsonServer", "__esmMin", "init_define_process_env", "init_runner", "init_validation", "init_jsonLanguageService", "init_languageModelCache", "init_esm", "init_browser", "relativePath", "resource", "base", "Utils", "URI", "jsonServerMain_exports", "import_browser", "messageReader", "messageWriter", "connection", "runtime", "init_jsonServerMain", "__esmMin", "init_define_process_env", "init_jsonServer", "callback", "args", "handle", "ms", "startServer", "init_define_process_env", "init_browser", "initialized", "pendingMessages", "messageHandler", "l10nLog", "i10lLocation", "config", "e", "msg"]
|
|
7
7
|
}
|