vscode-eslint 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/vscode-eslint +24 -1
- package/client/out/client.d.ts +13 -0
- package/client/out/extension.d.ts +3 -0
- package/client/out/extension.js +2 -0
- package/client/out/extension.js.map +1 -0
- package/client/out/node-utils.d.ts +51 -0
- package/client/out/settings.d.ts +41 -0
- package/client/out/shared/customMessages.d.ts +89 -0
- package/client/out/shared/settings.d.ts +106 -0
- package/client/out/tasks.d.ts +31 -0
- package/client/out/tests/glob.test.d.ts +1 -0
- package/client/out/vscode-utils.d.ts +5 -0
- package/package.json +9 -1
- package/server/out/diff.d.ts +134 -0
- package/server/out/eslint.d.ts +298 -0
- package/server/out/eslintServer.d.ts +1 -0
- package/server/out/eslintServer.js +2 -0
- package/server/out/eslintServer.js.map +1 -0
- package/server/out/is.d.ts +3 -0
- package/server/out/languageDefaults.d.ts +6 -0
- package/server/out/linkedMap.d.ts +53 -0
- package/server/out/paths.d.ts +22 -0
- package/server/out/shared/customMessages.d.ts +89 -0
- package/server/out/shared/settings.d.ts +106 -0
- package/$shared/customMessages.ts +0 -113
- package/$shared/settings.ts +0 -189
- package/.CodeQL.yml +0 -5
- package/.azure-pipelines.yml +0 -27
- package/.gemini/agents/vscode-eslint.md +0 -23
- package/.github/commands.yml +0 -127
- package/.github/locker.yml +0 -6
- package/.github/needs_more_info.yml +0 -6
- package/.github/workflows/npm-publish.yml +0 -53
- package/.github/workflows/release-please.yml +0 -22
- package/.lsifrc.json +0 -4
- package/.vscode/launch.json +0 -20
- package/.vscode/settings.json +0 -52
- package/.vscode/spellright.dict +0 -8
- package/.vscode/tasks.json +0 -39
- package/.vscodeignore +0 -23
- package/CHANGELOG.md +0 -524
- package/SECURITY.md +0 -41
- package/agents.md +0 -36
- package/client/.mocharc.json +0 -6
- package/client/agents.md +0 -5
- package/client/package-lock.json +0 -176
- package/client/package.json +0 -29
- package/client/src/client.ts +0 -992
- package/client/src/extension.ts +0 -180
- package/client/src/node-utils.ts +0 -393
- package/client/src/settings.ts +0 -379
- package/client/src/tasks.ts +0 -186
- package/client/src/tests/glob.test.ts +0 -31
- package/client/src/vscode-utils.ts +0 -28
- package/client/test/mocha.opts +0 -3
- package/client/tsconfig.json +0 -20
- package/client/webpack.config.js +0 -25
- package/contributing.md +0 -19
- package/esbuild.js +0 -62
- package/eslint.config.js +0 -129
- package/history/settings_1_9_x.md +0 -110
- package/images/2_1_10/eslint-dialog.png +0 -0
- package/images/2_1_10/eslint-status.png +0 -0
- package/package-json-schema.json +0 -9
- package/playgrounds/7.0/.eslintignore +0 -1
- package/playgrounds/7.0/.eslintrc.json +0 -71
- package/playgrounds/7.0/.vscode/settings.json +0 -85
- package/playgrounds/7.0/app.js +0 -12
- package/playgrounds/7.0/build/.eslintignore +0 -1
- package/playgrounds/7.0/build/.eslintrc.json +0 -30
- package/playgrounds/7.0/build/build.js +0 -11
- package/playgrounds/7.0/jsconfig.json +0 -5
- package/playgrounds/7.0/package-lock.json +0 -2133
- package/playgrounds/7.0/package.json +0 -10
- package/playgrounds/7.0/readme.md +0 -0
- package/playgrounds/7.0/subDir/sub.js +0 -11
- package/playgrounds/7.0/subDir/test.jsx +0 -10
- package/playgrounds/7.0/test.js +0 -11
- package/playgrounds/7.0/test.sh +0 -1
- package/playgrounds/7.0/test.vue +0 -33
- package/playgrounds/7.0/test2.html +0 -8
- package/playgrounds/8.0/.eslintignore +0 -1
- package/playgrounds/8.0/.eslintrc.json +0 -71
- package/playgrounds/8.0/.vscode/settings.json +0 -91
- package/playgrounds/8.0/app.js +0 -12
- package/playgrounds/8.0/build/.eslintignore +0 -1
- package/playgrounds/8.0/build/.eslintrc.json +0 -30
- package/playgrounds/8.0/build/build.js +0 -11
- package/playgrounds/8.0/jsconfig.json +0 -5
- package/playgrounds/8.0/package-lock.json +0 -2321
- package/playgrounds/8.0/package.json +0 -10
- package/playgrounds/8.0/readme.md +0 -17
- package/playgrounds/8.0/subDir/sub.js +0 -11
- package/playgrounds/8.0/subDir/test.jsx +0 -10
- package/playgrounds/8.0/test.ipynb +0 -49
- package/playgrounds/8.0/test.js +0 -3
- package/playgrounds/8.0/test.sh +0 -1
- package/playgrounds/8.0/test.vue +0 -33
- package/playgrounds/8.0/test2.html +0 -8
- package/playgrounds/9.0/flat/.vscode/settings.json +0 -3
- package/playgrounds/9.0/flat/app.js +0 -12
- package/playgrounds/9.0/flat/dist/ignore.js +0 -12
- package/playgrounds/9.0/flat/eslint.config.js +0 -61
- package/playgrounds/9.0/flat/package-lock.json +0 -1053
- package/playgrounds/9.0/flat/package.json +0 -9
- package/playgrounds/9.0/rc/.eslintrc.json +0 -57
- package/playgrounds/9.0/rc/.vscode/settings.json +0 -3
- package/playgrounds/9.0/rc/app.js +0 -12
- package/playgrounds/9.0/rc/package-lock.json +0 -1345
- package/playgrounds/9.0/rc/package.json +0 -9
- package/playgrounds/flat-config/.vscode/settings.json +0 -22
- package/playgrounds/flat-config/app.js +0 -12
- package/playgrounds/flat-config/eslint.config.js +0 -51
- package/playgrounds/flat-config/package-lock.json +0 -2733
- package/playgrounds/flat-config/package.json +0 -12
- package/playgrounds/flat-config/sub/sub.js +0 -2
- package/playgrounds/flat-config/test.ts +0 -7
- package/playgrounds/flat-config/tsconfig.json +0 -11
- package/playgrounds/flat-config-fail/f1/app.js +0 -12
- package/playgrounds/flat-config-fail/f1/eslint.config.js +0 -51
- package/playgrounds/flat-config-fail/package-lock.json +0 -1683
- package/playgrounds/flat-config-fail/package.json +0 -11
- package/playgrounds/flat-config-mjs/.vscode/settings.json +0 -21
- package/playgrounds/flat-config-mjs/app.js +0 -12
- package/playgrounds/flat-config-mjs/eslint.config.mjs +0 -53
- package/playgrounds/flat-config-mjs/package-lock.json +0 -2860
- package/playgrounds/flat-config-mjs/package.json +0 -11
- package/playgrounds/flat-config-mjs/sub/sub.js +0 -2
- package/playgrounds/flat-config-mjs/test.ts +0 -7
- package/playgrounds/flat-config-mjs/tsconfig.json +0 -11
- package/playgrounds/load-eslint/.vscode/settings.json +0 -21
- package/playgrounds/load-eslint/app.js +0 -12
- package/playgrounds/load-eslint/eslint.config.js +0 -51
- package/playgrounds/load-eslint/package-lock.json +0 -2860
- package/playgrounds/load-eslint/package.json +0 -11
- package/playgrounds/load-eslint/sub/sub.js +0 -2
- package/playgrounds/load-eslint/test.ts +0 -7
- package/playgrounds/load-eslint/tsconfig.json +0 -11
- package/playgrounds/noLib/test.js +0 -22
- package/playgrounds/noWD/.vscode/settings.json +0 -2
- package/playgrounds/noWD/src/.eslintrc.json +0 -18
- package/playgrounds/noWD/src/package-lock.json +0 -2812
- package/playgrounds/noWD/src/package.json +0 -12
- package/playgrounds/noWD/src/test.js +0 -3
- package/playgrounds/notebooks/notebook.ipynb +0 -7072
- package/playgrounds/notebooks/notebook2.ipynb +0 -20
- package/playgrounds/testing.code-workspace +0 -28
- package/playgrounds/ts/.eslintrc.base.json +0 -23
- package/playgrounds/ts/.eslintrc.json +0 -191
- package/playgrounds/ts/.vscode/settings.json +0 -12
- package/playgrounds/ts/package-lock.json +0 -2687
- package/playgrounds/ts/package.json +0 -11
- package/playgrounds/ts/test copy.ts +0 -4
- package/playgrounds/ts/test.ipynb +0 -49
- package/playgrounds/ts/test.ts +0 -4
- package/playgrounds/ts/test.tsx +0 -14
- package/playgrounds/ts/tsconfig.json +0 -100
- package/server/agents.md +0 -9
- package/server/package-lock.json +0 -93
- package/server/package.json +0 -32
- package/server/src/diff.ts +0 -1079
- package/server/src/eslint.ts +0 -1471
- package/server/src/eslintServer.ts +0 -865
- package/server/src/is.ts +0 -18
- package/server/src/languageDefaults.ts +0 -40
- package/server/src/linkedMap.ts +0 -448
- package/server/src/paths.ts +0 -128
- package/server/src/thenable.d.ts +0 -5
- package/server/tsconfig.json +0 -21
- package/server/webpack.config.js +0 -25
- package/shared.webpack.config.js +0 -59
- package/tsconfig.base.json +0 -9
- package/tsconfig.json +0 -21
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eslintServer.js","mappings":"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","sources":["webpack://eslint-server/./src/diff.ts","webpack://eslint-server/./src/eslint.ts","webpack://eslint-server/./src/eslintServer.ts","webpack://eslint-server/./src/is.ts","webpack://eslint-server/./src/languageDefaults.ts","webpack://eslint-server/./src/linkedMap.ts","webpack://eslint-server/./src/paths.ts","webpack://eslint-server/./src/shared/customMessages.ts","webpack://eslint-server/./src/shared/settings.ts","webpack://eslint-server/./node_modules/semver/classes/semver.js","webpack://eslint-server/./node_modules/semver/functions/compare.js","webpack://eslint-server/./node_modules/semver/functions/gte.js","webpack://eslint-server/./node_modules/semver/functions/parse.js","webpack://eslint-server/./node_modules/semver/internal/constants.js","webpack://eslint-server/./node_modules/semver/internal/debug.js","webpack://eslint-server/./node_modules/semver/internal/identifiers.js","webpack://eslint-server/./node_modules/semver/internal/parse-options.js","webpack://eslint-server/./node_modules/semver/internal/re.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/api.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/cancellation.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/connection.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/disposable.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/events.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/is.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/linkedMap.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/messageBuffer.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/messageReader.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/messageWriter.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/messages.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/ral.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/semaphore.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/node/main.js","webpack://eslint-server/./node_modules/vscode-jsonrpc/lib/node/ril.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/api.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/connection.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/messages.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.textDocumentContent.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/common/utils/is.js","webpack://eslint-server/./node_modules/vscode-languageserver-protocol/lib/node/main.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/api.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/callHierarchy.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/configuration.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/diagnostic.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/fileOperations.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/foldingRange.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/inlayHint.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/inlineCompletion.proposed.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/inlineValue.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/linkedEditingRange.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/moniker.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/notebook.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/progress.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/semanticTokens.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/server.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/showDocument.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/textDocumentContent.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/textDocuments.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/typeHierarchy.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/utils/is.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/utils/uuid.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/common/workspaceFolder.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/node/files.js","webpack://eslint-server/./node_modules/vscode-languageserver/lib/node/main.js","webpack://eslint-server/external node-commonjs \"child_process\"","webpack://eslint-server/external node-commonjs \"crypto\"","webpack://eslint-server/external node-commonjs \"fs\"","webpack://eslint-server/external node-commonjs \"net\"","webpack://eslint-server/external node-commonjs \"node:util\"","webpack://eslint-server/external node-commonjs \"os\"","webpack://eslint-server/external node-commonjs \"path\"","webpack://eslint-server/external node-commonjs \"url\"","webpack://eslint-server/external node-commonjs \"util\"","webpack://eslint-server/./node_modules/vscode-languageserver-textdocument/lib/esm/main.js","webpack://eslint-server/./node_modules/vscode-languageserver-types/lib/esm/main.js","webpack://eslint-server/./node_modules/vscode-uri/lib/esm/index.mjs","webpack://eslint-server/webpack/bootstrap","webpack://eslint-server/webpack/runtime/define property getters","webpack://eslint-server/webpack/runtime/hasOwnProperty shorthand","webpack://eslint-server/webpack/runtime/make namespace object","webpack://eslint-server/webpack/startup"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nexport interface IDiffChange {\r\n\t/**\r\n\t * The position of the first element in the original sequence which\r\n\t * this change affects.\r\n\t */\r\n\toriginalStart: number;\r\n\r\n\t/**\r\n\t * The number of elements from the original sequence which were\r\n\t * affected.\r\n\t */\r\n\toriginalLength: number;\r\n\r\n\t/**\r\n\t * The position of the first element in the modified sequence which\r\n\t * this change affects.\r\n\t */\r\n\tmodifiedStart: number;\r\n\r\n\t/**\r\n\t * The number of elements from the modified sequence which were\r\n\t * affected (added).\r\n\t */\r\n\tmodifiedLength: number;\r\n}\r\n\r\nexport function stringDiff(original: string, modified: string, pretty: boolean): IDiffChange[] {\r\n\treturn new LcsDiff(new StringDiffSequence(original), new StringDiffSequence(modified)).ComputeDiff(pretty).changes;\r\n}\r\n\r\ninterface ISequence {\r\n\tgetElements(): Int32Array;\r\n}\r\n\r\nclass StringDiffSequence implements ISequence {\r\n\r\n\tconstructor(private source: string) { }\r\n\r\n\tgetElements(): Int32Array {\r\n\t\tconst source = this.source;\r\n\t\tconst characters = new Int32Array(source.length);\r\n\t\tfor (let i = 0, len = source.length; i < len; i++) {\r\n\t\t\tcharacters[i] = source.charCodeAt(i);\r\n\t\t}\r\n\t\treturn characters;\r\n\t}\r\n}\r\n\r\ninterface IContinueProcessingPredicate {\r\n\t(furthestOriginalIndex: number, matchLengthOfLongest: number): boolean;\r\n}\r\n\r\ninterface IDiffResult {\r\n\tquitEarly: boolean;\r\n\tchanges: IDiffChange[];\r\n}\r\n\r\n/**\r\n * Represents information about a specific difference between two sequences.\r\n */\r\nclass DiffChange {\r\n\r\n\t/**\r\n\t * The position of the first element in the original sequence which\r\n\t * this change affects.\r\n\t */\r\n\tpublic originalStart: number;\r\n\r\n\t/**\r\n\t * The number of elements from the original sequence which were\r\n\t * affected.\r\n\t */\r\n\tpublic originalLength: number;\r\n\r\n\t/**\r\n\t * The position of the first element in the modified sequence which\r\n\t * this change affects.\r\n\t */\r\n\tpublic modifiedStart: number;\r\n\r\n\t/**\r\n\t * The number of elements from the modified sequence which were\r\n\t * affected (added).\r\n\t */\r\n\tpublic modifiedLength: number;\r\n\r\n\t/**\r\n\t * Constructs a new DiffChange with the given sequence information\r\n\t * and content.\r\n\t */\r\n\tconstructor(originalStart: number, originalLength: number, modifiedStart: number, modifiedLength: number) {\r\n\t\t//Debug.Assert(originalLength > 0 || modifiedLength > 0, \"originalLength and modifiedLength cannot both be <= 0\");\r\n\t\tthis.originalStart = originalStart;\r\n\t\tthis.originalLength = originalLength;\r\n\t\tthis.modifiedStart = modifiedStart;\r\n\t\tthis.modifiedLength = modifiedLength;\r\n\t}\r\n\r\n\t/**\r\n\t * The end point (exclusive) of the change in the original sequence.\r\n\t */\r\n\tpublic getOriginalEnd() {\r\n\t\treturn this.originalStart + this.originalLength;\r\n\t}\r\n\r\n\t/**\r\n\t * The end point (exclusive) of the change in the modified sequence.\r\n\t */\r\n\tpublic getModifiedEnd() {\r\n\t\treturn this.modifiedStart + this.modifiedLength;\r\n\t}\r\n}\r\n\r\nexport class Debug {\r\n\tpublic static Assert(condition: boolean, message: string): void {\r\n\t\tif (!condition) {\r\n\t\t\tthrow new Error(message);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst enum Constants {\r\n\t/**\r\n\t * MAX SMI (SMall Integer) as defined in v8.\r\n\t * one bit is lost for boxing/unboxing flag.\r\n\t * one bit is lost for sign flag.\r\n\t * See https://thibaultlaurens.github.io/javascript/2013/04/29/how-the-v8-engine-works/#tagged-values\r\n\t */\r\n\tMAX_SAFE_SMALL_INTEGER = 1 << 30,\r\n\r\n\t/**\r\n\t * MIN SMI (SMall Integer) as defined in v8.\r\n\t * one bit is lost for boxing/unboxing flag.\r\n\t * one bit is lost for sign flag.\r\n\t * See https://thibaultlaurens.github.io/javascript/2013/04/29/how-the-v8-engine-works/#tagged-values\r\n\t */\r\n\tMIN_SAFE_SMALL_INTEGER = -(1 << 30),\r\n\r\n\t/**\r\n\t * Max unsigned integer that fits on 8 bits.\r\n\t */\r\n\tMAX_UINT_8 = 255, // 2^8 - 1\r\n\r\n\t/**\r\n\t * Max unsigned integer that fits on 16 bits.\r\n\t */\r\n\tMAX_UINT_16 = 65535, // 2^16 - 1\r\n\r\n\t/**\r\n\t * Max unsigned integer that fits on 32 bits.\r\n\t */\r\n\tMAX_UINT_32 = 4294967295, // 2^32 - 1\r\n\r\n\tUNICODE_SUPPLEMENTARY_PLANE_BEGIN = 0x010000\r\n}\r\n\r\nconst enum LocalConstants {\r\n\tMaxDifferencesHistory = 1447\r\n}\r\n\r\nclass MyArray {\r\n\t/**\r\n\t * Copies a range of elements from an Array starting at the specified source index and pastes\r\n\t * them to another Array starting at the specified destination index. The length and the indexes\r\n\t * are specified as 64-bit integers.\r\n\t * sourceArray:\r\n\t *\t\tThe Array that contains the data to copy.\r\n\t * sourceIndex:\r\n\t *\t\tA 64-bit integer that represents the index in the sourceArray at which copying begins.\r\n\t * destinationArray:\r\n\t *\t\tThe Array that receives the data.\r\n\t * destinationIndex:\r\n\t *\t\tA 64-bit integer that represents the index in the destinationArray at which storing begins.\r\n\t * length:\r\n\t *\t\tA 64-bit integer that represents the number of elements to copy.\r\n\t */\r\n\tpublic static Copy(sourceArray: any[], sourceIndex: number, destinationArray: any[], destinationIndex: number, length: number) {\r\n\t\tfor (let i = 0; i < length; i++) {\r\n\t\t\tdestinationArray[destinationIndex + i] = sourceArray[sourceIndex + i];\r\n\t\t}\r\n\t}\r\n\tpublic static Copy2(sourceArray: Int32Array, sourceIndex: number, destinationArray: Int32Array, destinationIndex: number, length: number) {\r\n\t\tfor (let i = 0; i < length; i++) {\r\n\t\t\tdestinationArray[destinationIndex + i] = sourceArray[sourceIndex + i];\r\n\t\t}\r\n\t}\r\n}\r\n\r\nclass DiffChangeHelper {\r\n\r\n\tprivate m_changes: DiffChange[];\r\n\tprivate m_originalStart: number;\r\n\tprivate m_modifiedStart: number;\r\n\tprivate m_originalCount: number;\r\n\tprivate m_modifiedCount: number;\r\n\r\n\t/**\r\n\t * Constructs a new DiffChangeHelper for the given DiffSequences.\r\n\t */\r\n\tconstructor() {\r\n\t\tthis.m_changes = [];\r\n\t\tthis.m_originalStart = Constants.MAX_SAFE_SMALL_INTEGER;\r\n\t\tthis.m_modifiedStart = Constants.MAX_SAFE_SMALL_INTEGER;\r\n\t\tthis.m_originalCount = 0;\r\n\t\tthis.m_modifiedCount = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Marks the beginning of the next change in the set of differences.\r\n\t */\r\n\tpublic MarkNextChange(): void {\r\n\t\t// Only add to the list if there is something to add\r\n\t\tif (this.m_originalCount > 0 || this.m_modifiedCount > 0) {\r\n\t\t\t// Add the new change to our list\r\n\t\t\tthis.m_changes.push(new DiffChange(this.m_originalStart, this.m_originalCount,\r\n\t\t\t\tthis.m_modifiedStart, this.m_modifiedCount));\r\n\t\t}\r\n\r\n\t\t// Reset for the next change\r\n\t\tthis.m_originalCount = 0;\r\n\t\tthis.m_modifiedCount = 0;\r\n\t\tthis.m_originalStart = Constants.MAX_SAFE_SMALL_INTEGER;\r\n\t\tthis.m_modifiedStart = Constants.MAX_SAFE_SMALL_INTEGER;\r\n\t}\r\n\r\n\t/**\r\n\t * Adds the original element at the given position to the elements\r\n\t * affected by the current change. The modified index gives context\r\n\t * to the change position with respect to the original sequence.\r\n\t * @param originalIndex The index of the original element to add.\r\n\t * @param modifiedIndex The index of the modified element that provides corresponding position in the modified sequence.\r\n\t */\r\n\tpublic AddOriginalElement(originalIndex: number, modifiedIndex: number) {\r\n\t\t// The 'true' start index is the smallest of the ones we've seen\r\n\t\tthis.m_originalStart = Math.min(this.m_originalStart, originalIndex);\r\n\t\tthis.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex);\r\n\r\n\t\tthis.m_originalCount++;\r\n\t}\r\n\r\n\t/**\r\n\t * Adds the modified element at the given position to the elements\r\n\t * affected by the current change. The original index gives context\r\n\t * to the change position with respect to the modified sequence.\r\n\t * @param originalIndex The index of the original element that provides corresponding position in the original sequence.\r\n\t * @param modifiedIndex The index of the modified element to add.\r\n\t */\r\n\tpublic AddModifiedElement(originalIndex: number, modifiedIndex: number): void {\r\n\t\t// The 'true' start index is the smallest of the ones we've seen\r\n\t\tthis.m_originalStart = Math.min(this.m_originalStart, originalIndex);\r\n\t\tthis.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex);\r\n\r\n\t\tthis.m_modifiedCount++;\r\n\t}\r\n\r\n\t/**\r\n\t * Retrieves all of the changes marked by the class.\r\n\t */\r\n\tpublic getChanges(): DiffChange[] {\r\n\t\tif (this.m_originalCount > 0 || this.m_modifiedCount > 0) {\r\n\t\t\t// Finish up on whatever is left\r\n\t\t\tthis.MarkNextChange();\r\n\t\t}\r\n\r\n\t\treturn this.m_changes;\r\n\t}\r\n\r\n\t/**\r\n\t * Retrieves all of the changes marked by the class in the reverse order\r\n\t */\r\n\tpublic getReverseChanges(): DiffChange[] {\r\n\t\tif (this.m_originalCount > 0 || this.m_modifiedCount > 0) {\r\n\t\t\t// Finish up on whatever is left\r\n\t\t\tthis.MarkNextChange();\r\n\t\t}\r\n\r\n\t\tthis.m_changes.reverse();\r\n\t\treturn this.m_changes;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * An implementation of the difference algorithm described in\r\n * \"An O(ND) Difference Algorithm and its variations\" by Eugene W. Myers\r\n */\r\nexport class LcsDiff {\r\n\r\n\tprivate readonly ContinueProcessingPredicate: IContinueProcessingPredicate | null;\r\n\r\n\tprivate readonly _hasStrings: boolean;\r\n\tprivate readonly _originalStringElements: string[];\r\n\tprivate readonly _originalElementsOrHash: Int32Array;\r\n\tprivate readonly _modifiedStringElements: string[];\r\n\tprivate readonly _modifiedElementsOrHash: Int32Array;\r\n\r\n\tprivate m_forwardHistory: Int32Array[];\r\n\tprivate m_reverseHistory: Int32Array[];\r\n\r\n\t/**\r\n\t * Constructs the DiffFinder\r\n\t */\r\n\tconstructor(originalSequence: ISequence, modifiedSequence: ISequence, continueProcessingPredicate: IContinueProcessingPredicate | null = null) {\r\n\t\tthis.ContinueProcessingPredicate = continueProcessingPredicate;\r\n\r\n\t\tconst [originalStringElements, originalElementsOrHash, originalHasStrings] = LcsDiff._getElements(originalSequence);\r\n\t\tconst [modifiedStringElements, modifiedElementsOrHash, modifiedHasStrings] = LcsDiff._getElements(modifiedSequence);\r\n\r\n\t\tthis._hasStrings = (originalHasStrings && modifiedHasStrings);\r\n\t\tthis._originalStringElements = originalStringElements;\r\n\t\tthis._originalElementsOrHash = originalElementsOrHash;\r\n\t\tthis._modifiedStringElements = modifiedStringElements;\r\n\t\tthis._modifiedElementsOrHash = modifiedElementsOrHash;\r\n\r\n\t\tthis.m_forwardHistory = [];\r\n\t\tthis.m_reverseHistory = [];\r\n\t}\r\n\r\n\tprivate static _getElements(sequence: ISequence): [string[], Int32Array, boolean] {\r\n\t\tconst elements = sequence.getElements();\r\n\r\n\t\tif (elements instanceof Int32Array) {\r\n\t\t\treturn [[], elements, false];\r\n\t\t}\r\n\r\n\t\treturn [[], new Int32Array(elements), false];\r\n\t}\r\n\r\n\tprivate ElementsAreEqual(originalIndex: number, newIndex: number): boolean {\r\n\t\tif (this._originalElementsOrHash[originalIndex] !== this._modifiedElementsOrHash[newIndex]) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn (this._hasStrings ? this._originalStringElements[originalIndex] === this._modifiedStringElements[newIndex] : true);\r\n\t}\r\n\r\n\tprivate OriginalElementsAreEqual(index1: number, index2: number): boolean {\r\n\t\tif (this._originalElementsOrHash[index1] !== this._originalElementsOrHash[index2]) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn (this._hasStrings ? this._originalStringElements[index1] === this._originalStringElements[index2] : true);\r\n\t}\r\n\r\n\tprivate ModifiedElementsAreEqual(index1: number, index2: number): boolean {\r\n\t\tif (this._modifiedElementsOrHash[index1] !== this._modifiedElementsOrHash[index2]) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn (this._hasStrings ? this._modifiedStringElements[index1] === this._modifiedStringElements[index2] : true);\r\n\t}\r\n\r\n\tpublic ComputeDiff(pretty: boolean): IDiffResult {\r\n\t\treturn this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, pretty);\r\n\t}\r\n\r\n\t/**\r\n\t * Computes the differences between the original and modified input\r\n\t * sequences on the bounded range.\r\n\t * @returns An array of the differences between the two input sequences.\r\n\t */\r\n\tprivate _ComputeDiff(originalStart: number, originalEnd: number, modifiedStart: number, modifiedEnd: number, pretty: boolean): IDiffResult {\r\n\t\tconst quitEarlyArr = [false];\r\n\t\tlet changes = this.ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr);\r\n\r\n\t\tif (pretty) {\r\n\t\t\t// We have to clean up the computed diff to be more intuitive\r\n\t\t\t// but it turns out this cannot be done correctly until the entire set\r\n\t\t\t// of diffs have been computed\r\n\t\t\tchanges = this.PrettifyChanges(changes);\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tquitEarly: quitEarlyArr[0],\r\n\t\t\tchanges: changes\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Private helper method which computes the differences on the bounded range\r\n\t * recursively.\r\n\t * @returns An array of the differences between the two input sequences.\r\n\t */\r\n\tprivate ComputeDiffRecursive(originalStart: number, originalEnd: number, modifiedStart: number, modifiedEnd: number, quitEarlyArr: boolean[]): DiffChange[] {\r\n\t\tquitEarlyArr[0] = false;\r\n\r\n\t\t// Find the start of the differences\r\n\t\twhile (originalStart <= originalEnd && modifiedStart <= modifiedEnd && this.ElementsAreEqual(originalStart, modifiedStart)) {\r\n\t\t\toriginalStart++;\r\n\t\t\tmodifiedStart++;\r\n\t\t}\r\n\r\n\t\t// Find the end of the differences\r\n\t\twhile (originalEnd >= originalStart && modifiedEnd >= modifiedStart && this.ElementsAreEqual(originalEnd, modifiedEnd)) {\r\n\t\t\toriginalEnd--;\r\n\t\t\tmodifiedEnd--;\r\n\t\t}\r\n\r\n\t\t// In the special case where we either have all insertions or all deletions or the sequences are identical\r\n\t\tif (originalStart > originalEnd || modifiedStart > modifiedEnd) {\r\n\t\t\tlet changes: DiffChange[];\r\n\r\n\t\t\tif (modifiedStart <= modifiedEnd) {\r\n\t\t\t\tDebug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd');\r\n\r\n\t\t\t\t// All insertions\r\n\t\t\t\tchanges = [\r\n\t\t\t\t\tnew DiffChange(originalStart, 0, modifiedStart, modifiedEnd - modifiedStart + 1)\r\n\t\t\t\t];\r\n\t\t\t} else if (originalStart <= originalEnd) {\r\n\t\t\t\tDebug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd');\r\n\r\n\t\t\t\t// All deletions\r\n\t\t\t\tchanges = [\r\n\t\t\t\t\tnew DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, 0)\r\n\t\t\t\t];\r\n\t\t\t} else {\r\n\t\t\t\tDebug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd');\r\n\t\t\t\tDebug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd');\r\n\r\n\t\t\t\t// Identical sequences - No differences\r\n\t\t\t\tchanges = [];\r\n\t\t\t}\r\n\r\n\t\t\treturn changes;\r\n\t\t}\r\n\r\n\t\t// This problem can be solved using the Divide-And-Conquer technique.\r\n\t\tconst midOriginalArr = [0];\r\n\t\tconst midModifiedArr = [0];\r\n\t\tconst result = this.ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr);\r\n\r\n\t\tconst midOriginal = midOriginalArr[0];\r\n\t\tconst midModified = midModifiedArr[0];\r\n\r\n\t\tif (result !== null) {\r\n\t\t\t// Result is not-null when there was enough memory to compute the changes while\r\n\t\t\t// searching for the recursion point\r\n\t\t\treturn result;\r\n\t\t} else if (!quitEarlyArr[0]) {\r\n\t\t\t// We can break the problem down recursively by finding the changes in the\r\n\t\t\t// First Half: (originalStart, modifiedStart) to (midOriginal, midModified)\r\n\t\t\t// Second Half: (midOriginal + 1, minModified + 1) to (originalEnd, modifiedEnd)\r\n\t\t\t// NOTE: ComputeDiff() is inclusive, therefore the second range starts on the next point\r\n\r\n\t\t\tconst leftChanges = this.ComputeDiffRecursive(originalStart, midOriginal, modifiedStart, midModified, quitEarlyArr);\r\n\t\t\tlet rightChanges: DiffChange[] = [];\r\n\r\n\t\t\tif (!quitEarlyArr[0]) {\r\n\t\t\t\trightChanges = this.ComputeDiffRecursive(midOriginal + 1, originalEnd, midModified + 1, modifiedEnd, quitEarlyArr);\r\n\t\t\t} else {\r\n\t\t\t\t// We did't have time to finish the first half, so we don't have time to compute this half.\r\n\t\t\t\t// Consider the entire rest of the sequence different.\r\n\t\t\t\trightChanges = [\r\n\t\t\t\t\tnew DiffChange(midOriginal + 1, originalEnd - (midOriginal + 1) + 1, midModified + 1, modifiedEnd - (midModified + 1) + 1)\r\n\t\t\t\t];\r\n\t\t\t}\r\n\r\n\t\t\treturn this.ConcatenateChanges(leftChanges, rightChanges);\r\n\t\t}\r\n\r\n\t\t// If we hit here, we quit early, and so can't return anything meaningful\r\n\t\treturn [\r\n\t\t\tnew DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1)\r\n\t\t];\r\n\t}\r\n\r\n\tprivate WALKTRACE(diagonalForwardBase: number, diagonalForwardStart: number, diagonalForwardEnd: number, diagonalForwardOffset: number,\r\n\t\tdiagonalReverseBase: number, diagonalReverseStart: number, diagonalReverseEnd: number, diagonalReverseOffset: number,\r\n\t\tforwardPoints: Int32Array, reversePoints: Int32Array,\r\n\t\toriginalIndex: number, originalEnd: number, midOriginalArr: number[],\r\n\t\tmodifiedIndex: number, modifiedEnd: number, midModifiedArr: number[],\r\n\t\tdeltaIsEven: boolean, quitEarlyArr: boolean[]\r\n\t): DiffChange[] {\r\n\t\tlet forwardChanges: DiffChange[] | null = null;\r\n\t\tlet reverseChanges: DiffChange[] | null = null;\r\n\r\n\t\t// First, walk backward through the forward diagonals history\r\n\t\tlet changeHelper = new DiffChangeHelper();\r\n\t\tlet diagonalMin = diagonalForwardStart;\r\n\t\tlet diagonalMax = diagonalForwardEnd;\r\n\t\tlet diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalForwardOffset;\r\n\t\tlet lastOriginalIndex = Constants.MIN_SAFE_SMALL_INTEGER;\r\n\t\tlet historyIndex = this.m_forwardHistory.length - 1;\r\n\r\n\t\tdo {\r\n\t\t\t// Get the diagonal index from the relative diagonal number\r\n\t\t\tconst diagonal = diagonalRelative + diagonalForwardBase;\r\n\r\n\t\t\t// Figure out where we came from\r\n\t\t\tif (diagonal === diagonalMin || (diagonal < diagonalMax && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) {\r\n\t\t\t\t// Vertical line (the element is an insert)\r\n\t\t\t\toriginalIndex = forwardPoints[diagonal + 1];\r\n\t\t\t\tmodifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset;\r\n\t\t\t\tif (originalIndex < lastOriginalIndex) {\r\n\t\t\t\t\tchangeHelper.MarkNextChange();\r\n\t\t\t\t}\r\n\t\t\t\tlastOriginalIndex = originalIndex;\r\n\t\t\t\tchangeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex);\r\n\t\t\t\tdiagonalRelative = (diagonal + 1) - diagonalForwardBase; //Setup for the next iteration\r\n\t\t\t} else {\r\n\t\t\t\t// Horizontal line (the element is a deletion)\r\n\t\t\t\toriginalIndex = forwardPoints[diagonal - 1] + 1;\r\n\t\t\t\tmodifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset;\r\n\t\t\t\tif (originalIndex < lastOriginalIndex) {\r\n\t\t\t\t\tchangeHelper.MarkNextChange();\r\n\t\t\t\t}\r\n\t\t\t\tlastOriginalIndex = originalIndex - 1;\r\n\t\t\t\tchangeHelper.AddOriginalElement(originalIndex, modifiedIndex + 1);\r\n\t\t\t\tdiagonalRelative = (diagonal - 1) - diagonalForwardBase; //Setup for the next iteration\r\n\t\t\t}\r\n\r\n\t\t\tif (historyIndex >= 0) {\r\n\t\t\t\tforwardPoints = this.m_forwardHistory[historyIndex];\r\n\t\t\t\tdiagonalForwardBase = forwardPoints[0]; //We stored this in the first spot\r\n\t\t\t\tdiagonalMin = 1;\r\n\t\t\t\tdiagonalMax = forwardPoints.length - 1;\r\n\t\t\t}\r\n\t\t} while (--historyIndex >= -1);\r\n\r\n\t\t// Ironically, we get the forward changes as the reverse of the\r\n\t\t// order we added them since we technically added them backwards\r\n\t\tforwardChanges = changeHelper.getReverseChanges();\r\n\r\n\t\tif (quitEarlyArr[0]) {\r\n\t\t\t// TODO: Calculate a partial from the reverse diagonals.\r\n\t\t\t// For now, just assume everything after the midOriginal/midModified point is a diff\r\n\r\n\t\t\tlet originalStartPoint = midOriginalArr[0] + 1;\r\n\t\t\tlet modifiedStartPoint = midModifiedArr[0] + 1;\r\n\r\n\t\t\tif (forwardChanges !== null && forwardChanges.length > 0) {\r\n\t\t\t\tconst lastForwardChange = forwardChanges[forwardChanges.length - 1];\r\n\t\t\t\toriginalStartPoint = Math.max(originalStartPoint, lastForwardChange.getOriginalEnd());\r\n\t\t\t\tmodifiedStartPoint = Math.max(modifiedStartPoint, lastForwardChange.getModifiedEnd());\r\n\t\t\t}\r\n\r\n\t\t\treverseChanges = [\r\n\t\t\t\tnew DiffChange(originalStartPoint, originalEnd - originalStartPoint + 1,\r\n\t\t\t\t\tmodifiedStartPoint, modifiedEnd - modifiedStartPoint + 1)\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\t// Now walk backward through the reverse diagonals history\r\n\t\t\tchangeHelper = new DiffChangeHelper();\r\n\t\t\tdiagonalMin = diagonalReverseStart;\r\n\t\t\tdiagonalMax = diagonalReverseEnd;\r\n\t\t\tdiagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalReverseOffset;\r\n\t\t\tlastOriginalIndex = Constants.MAX_SAFE_SMALL_INTEGER;\r\n\t\t\thistoryIndex = (deltaIsEven) ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;\r\n\r\n\t\t\tdo {\r\n\t\t\t\t// Get the diagonal index from the relative diagonal number\r\n\t\t\t\tconst diagonal = diagonalRelative + diagonalReverseBase;\r\n\r\n\t\t\t\t// Figure out where we came from\r\n\t\t\t\tif (diagonal === diagonalMin || (diagonal < diagonalMax && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) {\r\n\t\t\t\t\t// Horizontal line (the element is a deletion))\r\n\t\t\t\t\toriginalIndex = reversePoints[diagonal + 1] - 1;\r\n\t\t\t\t\tmodifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset;\r\n\t\t\t\t\tif (originalIndex > lastOriginalIndex) {\r\n\t\t\t\t\t\tchangeHelper.MarkNextChange();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlastOriginalIndex = originalIndex + 1;\r\n\t\t\t\t\tchangeHelper.AddOriginalElement(originalIndex + 1, modifiedIndex + 1);\r\n\t\t\t\t\tdiagonalRelative = (diagonal + 1) - diagonalReverseBase; //Setup for the next iteration\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Vertical line (the element is an insertion)\r\n\t\t\t\t\toriginalIndex = reversePoints[diagonal - 1];\r\n\t\t\t\t\tmodifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset;\r\n\t\t\t\t\tif (originalIndex > lastOriginalIndex) {\r\n\t\t\t\t\t\tchangeHelper.MarkNextChange();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlastOriginalIndex = originalIndex;\r\n\t\t\t\t\tchangeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex + 1);\r\n\t\t\t\t\tdiagonalRelative = (diagonal - 1) - diagonalReverseBase; //Setup for the next iteration\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (historyIndex >= 0) {\r\n\t\t\t\t\treversePoints = this.m_reverseHistory[historyIndex];\r\n\t\t\t\t\tdiagonalReverseBase = reversePoints[0]; //We stored this in the first spot\r\n\t\t\t\t\tdiagonalMin = 1;\r\n\t\t\t\t\tdiagonalMax = reversePoints.length - 1;\r\n\t\t\t\t}\r\n\t\t\t} while (--historyIndex >= -1);\r\n\r\n\t\t\t// There are cases where the reverse history will find diffs that\r\n\t\t\t// are correct, but not intuitive, so we need shift them.\r\n\t\t\treverseChanges = changeHelper.getChanges();\r\n\t\t}\r\n\r\n\t\treturn this.ConcatenateChanges(forwardChanges, reverseChanges);\r\n\t}\r\n\r\n\t/**\r\n\t * Given the range to compute the diff on, this method finds the point:\r\n\t * (midOriginal, midModified)\r\n\t * that exists in the middle of the LCS of the two sequences and\r\n\t * is the point at which the LCS problem may be broken down recursively.\r\n\t * This method will try to keep the LCS trace in memory. If the LCS recursion\r\n\t * point is calculated and the full trace is available in memory, then this method\r\n\t * will return the change list.\r\n\t * @param originalStart The start bound of the original sequence range\r\n\t * @param originalEnd The end bound of the original sequence range\r\n\t * @param modifiedStart The start bound of the modified sequence range\r\n\t * @param modifiedEnd The end bound of the modified sequence range\r\n\t * @param midOriginal The middle point of the original sequence range\r\n\t * @param midModified The middle point of the modified sequence range\r\n\t * @returns The diff changes, if available, otherwise null\r\n\t */\r\n\tprivate ComputeRecursionPoint(originalStart: number, originalEnd: number, modifiedStart: number, modifiedEnd: number, midOriginalArr: number[], midModifiedArr: number[], quitEarlyArr: boolean[]) {\r\n\t\tlet originalIndex = 0, modifiedIndex = 0;\r\n\t\tlet diagonalForwardStart = 0, diagonalForwardEnd = 0;\r\n\t\tlet diagonalReverseStart = 0, diagonalReverseEnd = 0;\r\n\r\n\t\t// To traverse the edit graph and produce the proper LCS, our actual\r\n\t\t// start position is just outside the given boundary\r\n\t\toriginalStart--;\r\n\t\tmodifiedStart--;\r\n\r\n\t\t// We set these up to make the compiler happy, but they will\r\n\t\t// be replaced before we return with the actual recursion point\r\n\t\tmidOriginalArr[0] = 0;\r\n\t\tmidModifiedArr[0] = 0;\r\n\r\n\t\t// Clear out the history\r\n\t\tthis.m_forwardHistory = [];\r\n\t\tthis.m_reverseHistory = [];\r\n\r\n\t\t// Each cell in the two arrays corresponds to a diagonal in the edit graph.\r\n\t\t// The integer value in the cell represents the originalIndex of the furthest\r\n\t\t// reaching point found so far that ends in that diagonal.\r\n\t\t// The modifiedIndex can be computed mathematically from the originalIndex and the diagonal number.\r\n\t\tconst maxDifferences = (originalEnd - originalStart) + (modifiedEnd - modifiedStart);\r\n\t\tconst numDiagonals = maxDifferences + 1;\r\n\t\tconst forwardPoints = new Int32Array(numDiagonals);\r\n\t\tconst reversePoints = new Int32Array(numDiagonals);\r\n\t\t// diagonalForwardBase: Index into forwardPoints of the diagonal which passes through (originalStart, modifiedStart)\r\n\t\t// diagonalReverseBase: Index into reversePoints of the diagonal which passes through (originalEnd, modifiedEnd)\r\n\t\tconst diagonalForwardBase = (modifiedEnd - modifiedStart);\r\n\t\tconst diagonalReverseBase = (originalEnd - originalStart);\r\n\t\t// diagonalForwardOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the\r\n\t\t// diagonal number (relative to diagonalForwardBase)\r\n\t\t// diagonalReverseOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the\r\n\t\t// diagonal number (relative to diagonalReverseBase)\r\n\t\tconst diagonalForwardOffset = (originalStart - modifiedStart);\r\n\t\tconst diagonalReverseOffset = (originalEnd - modifiedEnd);\r\n\r\n\t\t// delta: The difference between the end diagonal and the start diagonal. This is used to relate diagonal numbers\r\n\t\t// relative to the start diagonal with diagonal numbers relative to the end diagonal.\r\n\t\t// The Even/Oddn-ness of this delta is important for determining when we should check for overlap\r\n\t\tconst delta = diagonalReverseBase - diagonalForwardBase;\r\n\t\tconst deltaIsEven = (delta % 2 === 0);\r\n\r\n\t\t// Here we set up the start and end points as the furthest points found so far\r\n\t\t// in both the forward and reverse directions, respectively\r\n\t\tforwardPoints[diagonalForwardBase] = originalStart;\r\n\t\treversePoints[diagonalReverseBase] = originalEnd;\r\n\r\n\t\t// Remember if we quit early, and thus need to do a best-effort result instead of a real result.\r\n\t\tquitEarlyArr[0] = false;\r\n\r\n\r\n\r\n\t\t// A couple of points:\r\n\t\t// --With this method, we iterate on the number of differences between the two sequences.\r\n\t\t// The more differences there actually are, the longer this will take.\r\n\t\t// --Also, as the number of differences increases, we have to search on diagonals further\r\n\t\t// away from the reference diagonal (which is diagonalForwardBase for forward, diagonalReverseBase for reverse).\r\n\t\t// --We extend on even diagonals (relative to the reference diagonal) only when numDifferences\r\n\t\t// is even and odd diagonals only when numDifferences is odd.\r\n\t\tfor (let numDifferences = 1; numDifferences <= (maxDifferences / 2) + 1; numDifferences++) {\r\n\t\t\tlet furthestOriginalIndex = 0;\r\n\t\t\tlet furthestModifiedIndex = 0;\r\n\r\n\t\t\t// Run the algorithm in the forward direction\r\n\t\t\tdiagonalForwardStart = this.ClipDiagonalBound(diagonalForwardBase - numDifferences, numDifferences, diagonalForwardBase, numDiagonals);\r\n\t\t\tdiagonalForwardEnd = this.ClipDiagonalBound(diagonalForwardBase + numDifferences, numDifferences, diagonalForwardBase, numDiagonals);\r\n\t\t\tfor (let diagonal = diagonalForwardStart; diagonal <= diagonalForwardEnd; diagonal += 2) {\r\n\t\t\t\t// STEP 1: We extend the furthest reaching point in the present diagonal\r\n\t\t\t\t// by looking at the diagonals above and below and picking the one whose point\r\n\t\t\t\t// is further away from the start point (originalStart, modifiedStart)\r\n\t\t\t\tif (diagonal === diagonalForwardStart || (diagonal < diagonalForwardEnd && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) {\r\n\t\t\t\t\toriginalIndex = forwardPoints[diagonal + 1];\r\n\t\t\t\t} else {\r\n\t\t\t\t\toriginalIndex = forwardPoints[diagonal - 1] + 1;\r\n\t\t\t\t}\r\n\t\t\t\tmodifiedIndex = originalIndex - (diagonal - diagonalForwardBase) - diagonalForwardOffset;\r\n\r\n\t\t\t\t// Save the current originalIndex so we can test for false overlap in step 3\r\n\t\t\t\tconst tempOriginalIndex = originalIndex;\r\n\r\n\t\t\t\t// STEP 2: We can continue to extend the furthest reaching point in the present diagonal\r\n\t\t\t\t// so long as the elements are equal.\r\n\t\t\t\twhile (originalIndex < originalEnd && modifiedIndex < modifiedEnd && this.ElementsAreEqual(originalIndex + 1, modifiedIndex + 1)) {\r\n\t\t\t\t\toriginalIndex++;\r\n\t\t\t\t\tmodifiedIndex++;\r\n\t\t\t\t}\r\n\t\t\t\tforwardPoints[diagonal] = originalIndex;\r\n\r\n\t\t\t\tif (originalIndex + modifiedIndex > furthestOriginalIndex + furthestModifiedIndex) {\r\n\t\t\t\t\tfurthestOriginalIndex = originalIndex;\r\n\t\t\t\t\tfurthestModifiedIndex = modifiedIndex;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// STEP 3: If delta is odd (overlap first happens on forward when delta is odd)\r\n\t\t\t\t// and diagonal is in the range of reverse diagonals computed for numDifferences-1\r\n\t\t\t\t// (the previous iteration; we haven't computed reverse diagonals for numDifferences yet)\r\n\t\t\t\t// then check for overlap.\r\n\t\t\t\tif (!deltaIsEven && Math.abs(diagonal - diagonalReverseBase) <= (numDifferences - 1)) {\r\n\t\t\t\t\tif (originalIndex >= reversePoints[diagonal]) {\r\n\t\t\t\t\t\tmidOriginalArr[0] = originalIndex;\r\n\t\t\t\t\t\tmidModifiedArr[0] = modifiedIndex;\r\n\r\n\t\t\t\t\t\tif (tempOriginalIndex <= reversePoints[diagonal] && LocalConstants.MaxDifferencesHistory > 0 && numDifferences <= (LocalConstants.MaxDifferencesHistory + 1)) {\r\n\t\t\t\t\t\t\t// BINGO! We overlapped, and we have the full trace in memory!\r\n\t\t\t\t\t\t\treturn this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset,\r\n\t\t\t\t\t\t\t\tdiagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset,\r\n\t\t\t\t\t\t\t\tforwardPoints, reversePoints,\r\n\t\t\t\t\t\t\t\toriginalIndex, originalEnd, midOriginalArr,\r\n\t\t\t\t\t\t\t\tmodifiedIndex, modifiedEnd, midModifiedArr,\r\n\t\t\t\t\t\t\t\tdeltaIsEven, quitEarlyArr\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Either false overlap, or we didn't have enough memory for the full trace\r\n\t\t\t\t\t\t\t// Just return the recursion point\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check to see if we should be quitting early, before moving on to the next iteration.\r\n\t\t\tconst matchLengthOfLongest = ((furthestOriginalIndex - originalStart) + (furthestModifiedIndex - modifiedStart) - numDifferences) / 2;\r\n\r\n\t\t\tif (this.ContinueProcessingPredicate !== null && !this.ContinueProcessingPredicate(furthestOriginalIndex, matchLengthOfLongest)) {\r\n\t\t\t\t// We can't finish, so skip ahead to generating a result from what we have.\r\n\t\t\t\tquitEarlyArr[0] = true;\r\n\r\n\t\t\t\t// Use the furthest distance we got in the forward direction.\r\n\t\t\t\tmidOriginalArr[0] = furthestOriginalIndex;\r\n\t\t\t\tmidModifiedArr[0] = furthestModifiedIndex;\r\n\r\n\t\t\t\tif (matchLengthOfLongest > 0 && LocalConstants.MaxDifferencesHistory > 0 && numDifferences <= (LocalConstants.MaxDifferencesHistory + 1)) {\r\n\t\t\t\t\t// Enough of the history is in memory to walk it backwards\r\n\t\t\t\t\treturn this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset,\r\n\t\t\t\t\t\tdiagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset,\r\n\t\t\t\t\t\tforwardPoints, reversePoints,\r\n\t\t\t\t\t\toriginalIndex, originalEnd, midOriginalArr,\r\n\t\t\t\t\t\tmodifiedIndex, modifiedEnd, midModifiedArr,\r\n\t\t\t\t\t\tdeltaIsEven, quitEarlyArr\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// We didn't actually remember enough of the history.\r\n\r\n\t\t\t\t\t//Since we are quitting the diff early, we need to shift back the originalStart and modified start\r\n\t\t\t\t\t//back into the boundary limits since we decremented their value above beyond the boundary limit.\r\n\t\t\t\t\toriginalStart++;\r\n\t\t\t\t\tmodifiedStart++;\r\n\r\n\t\t\t\t\treturn [\r\n\t\t\t\t\t\tnew DiffChange(originalStart, originalEnd - originalStart + 1,\r\n\t\t\t\t\t\t\tmodifiedStart, modifiedEnd - modifiedStart + 1)\r\n\t\t\t\t\t];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Run the algorithm in the reverse direction\r\n\t\t\tdiagonalReverseStart = this.ClipDiagonalBound(diagonalReverseBase - numDifferences, numDifferences, diagonalReverseBase, numDiagonals);\r\n\t\t\tdiagonalReverseEnd = this.ClipDiagonalBound(diagonalReverseBase + numDifferences, numDifferences, diagonalReverseBase, numDiagonals);\r\n\t\t\tfor (let diagonal = diagonalReverseStart; diagonal <= diagonalReverseEnd; diagonal += 2) {\r\n\t\t\t\t// STEP 1: We extend the furthest reaching point in the present diagonal\r\n\t\t\t\t// by looking at the diagonals above and below and picking the one whose point\r\n\t\t\t\t// is further away from the start point (originalEnd, modifiedEnd)\r\n\t\t\t\tif (diagonal === diagonalReverseStart || (diagonal < diagonalReverseEnd && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) {\r\n\t\t\t\t\toriginalIndex = reversePoints[diagonal + 1] - 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\toriginalIndex = reversePoints[diagonal - 1];\r\n\t\t\t\t}\r\n\t\t\t\tmodifiedIndex = originalIndex - (diagonal - diagonalReverseBase) - diagonalReverseOffset;\r\n\r\n\t\t\t\t// Save the current originalIndex so we can test for false overlap\r\n\t\t\t\tconst tempOriginalIndex = originalIndex;\r\n\r\n\t\t\t\t// STEP 2: We can continue to extend the furthest reaching point in the present diagonal\r\n\t\t\t\t// as long as the elements are equal.\r\n\t\t\t\twhile (originalIndex > originalStart && modifiedIndex > modifiedStart && this.ElementsAreEqual(originalIndex, modifiedIndex)) {\r\n\t\t\t\t\toriginalIndex--;\r\n\t\t\t\t\tmodifiedIndex--;\r\n\t\t\t\t}\r\n\t\t\t\treversePoints[diagonal] = originalIndex;\r\n\r\n\t\t\t\t// STEP 4: If delta is even (overlap first happens on reverse when delta is even)\r\n\t\t\t\t// and diagonal is in the range of forward diagonals computed for numDifferences\r\n\t\t\t\t// then check for overlap.\r\n\t\t\t\tif (deltaIsEven && Math.abs(diagonal - diagonalForwardBase) <= numDifferences) {\r\n\t\t\t\t\tif (originalIndex <= forwardPoints[diagonal]) {\r\n\t\t\t\t\t\tmidOriginalArr[0] = originalIndex;\r\n\t\t\t\t\t\tmidModifiedArr[0] = modifiedIndex;\r\n\r\n\t\t\t\t\t\tif (tempOriginalIndex >= forwardPoints[diagonal] && LocalConstants.MaxDifferencesHistory > 0 && numDifferences <= (LocalConstants.MaxDifferencesHistory + 1)) {\r\n\t\t\t\t\t\t\t// BINGO! We overlapped, and we have the full trace in memory!\r\n\t\t\t\t\t\t\treturn this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset,\r\n\t\t\t\t\t\t\t\tdiagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset,\r\n\t\t\t\t\t\t\t\tforwardPoints, reversePoints,\r\n\t\t\t\t\t\t\t\toriginalIndex, originalEnd, midOriginalArr,\r\n\t\t\t\t\t\t\t\tmodifiedIndex, modifiedEnd, midModifiedArr,\r\n\t\t\t\t\t\t\t\tdeltaIsEven, quitEarlyArr\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Either false overlap, or we didn't have enough memory for the full trace\r\n\t\t\t\t\t\t\t// Just return the recursion point\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Save current vectors to history before the next iteration\r\n\t\t\tif (numDifferences <= LocalConstants.MaxDifferencesHistory) {\r\n\t\t\t\t// We are allocating space for one extra int, which we fill with\r\n\t\t\t\t// the index of the diagonal base index\r\n\t\t\t\tlet temp = new Int32Array(diagonalForwardEnd - diagonalForwardStart + 2);\r\n\t\t\t\ttemp[0] = diagonalForwardBase - diagonalForwardStart + 1;\r\n\t\t\t\tMyArray.Copy2(forwardPoints, diagonalForwardStart, temp, 1, diagonalForwardEnd - diagonalForwardStart + 1);\r\n\t\t\t\tthis.m_forwardHistory.push(temp);\r\n\r\n\t\t\t\ttemp = new Int32Array(diagonalReverseEnd - diagonalReverseStart + 2);\r\n\t\t\t\ttemp[0] = diagonalReverseBase - diagonalReverseStart + 1;\r\n\t\t\t\tMyArray.Copy2(reversePoints, diagonalReverseStart, temp, 1, diagonalReverseEnd - diagonalReverseStart + 1);\r\n\t\t\t\tthis.m_reverseHistory.push(temp);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t// If we got here, then we have the full trace in history. We just have to convert it to a change list\r\n\t\t// NOTE: This part is a bit messy\r\n\t\treturn this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset,\r\n\t\t\tdiagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset,\r\n\t\t\tforwardPoints, reversePoints,\r\n\t\t\toriginalIndex, originalEnd, midOriginalArr,\r\n\t\t\tmodifiedIndex, modifiedEnd, midModifiedArr,\r\n\t\t\tdeltaIsEven, quitEarlyArr\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Shifts the given changes to provide a more intuitive diff.\r\n\t * While the first element in a diff matches the first element after the diff,\r\n\t * we shift the diff down.\r\n\t *\r\n\t * @param changes The list of changes to shift\r\n\t * @returns The shifted changes\r\n\t */\r\n\tprivate PrettifyChanges(changes: DiffChange[]): DiffChange[] {\r\n\r\n\t\t// Shift all the changes down first\r\n\t\tfor (let i = 0; i < changes.length; i++) {\r\n\t\t\tconst change = changes[i];\r\n\t\t\tconst originalStop = (i < changes.length - 1) ? changes[i + 1].originalStart : this._originalElementsOrHash.length;\r\n\t\t\tconst modifiedStop = (i < changes.length - 1) ? changes[i + 1].modifiedStart : this._modifiedElementsOrHash.length;\r\n\t\t\tconst checkOriginal = change.originalLength > 0;\r\n\t\t\tconst checkModified = change.modifiedLength > 0;\r\n\r\n\t\t\twhile (change.originalStart + change.originalLength < originalStop &&\r\n\t\t\t\tchange.modifiedStart + change.modifiedLength < modifiedStop &&\r\n\t\t\t\t(!checkOriginal || this.OriginalElementsAreEqual(change.originalStart, change.originalStart + change.originalLength)) &&\r\n\t\t\t\t(!checkModified || this.ModifiedElementsAreEqual(change.modifiedStart, change.modifiedStart + change.modifiedLength))) {\r\n\t\t\t\tchange.originalStart++;\r\n\t\t\t\tchange.modifiedStart++;\r\n\t\t\t}\r\n\r\n\t\t\tconst mergedChangeArr: Array<DiffChange | null> = [null];\r\n\t\t\tif (i < changes.length - 1 && this.ChangesOverlap(changes[i], changes[i + 1], mergedChangeArr)) {\r\n\t\t\t\tchanges[i] = mergedChangeArr[0]!;\r\n\t\t\t\tchanges.splice(i + 1, 1);\r\n\t\t\t\ti--;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Shift changes back up until we hit empty or whitespace-only lines\r\n\t\tfor (let i = changes.length - 1; i >= 0; i--) {\r\n\t\t\tconst change = changes[i];\r\n\r\n\t\t\tlet originalStop = 0;\r\n\t\t\tlet modifiedStop = 0;\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tconst prevChange = changes[i - 1];\r\n\t\t\t\tif (prevChange.originalLength > 0) {\r\n\t\t\t\t\toriginalStop = prevChange.originalStart + prevChange.originalLength;\r\n\t\t\t\t}\r\n\t\t\t\tif (prevChange.modifiedLength > 0) {\r\n\t\t\t\t\tmodifiedStop = prevChange.modifiedStart + prevChange.modifiedLength;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst checkOriginal = change.originalLength > 0;\r\n\t\t\tconst checkModified = change.modifiedLength > 0;\r\n\r\n\t\t\tlet bestDelta = 0;\r\n\t\t\tlet bestScore = this._boundaryScore(change.originalStart, change.originalLength, change.modifiedStart, change.modifiedLength);\r\n\r\n\t\t\tfor (let delta = 1; ; delta++) {\r\n\t\t\t\tconst originalStart = change.originalStart - delta;\r\n\t\t\t\tconst modifiedStart = change.modifiedStart - delta;\r\n\r\n\t\t\t\tif (originalStart < originalStop || modifiedStart < modifiedStop) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (checkOriginal && !this.OriginalElementsAreEqual(originalStart, originalStart + change.originalLength)) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (checkModified && !this.ModifiedElementsAreEqual(modifiedStart, modifiedStart + change.modifiedLength)) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst score = this._boundaryScore(originalStart, change.originalLength, modifiedStart, change.modifiedLength);\r\n\r\n\t\t\t\tif (score > bestScore) {\r\n\t\t\t\t\tbestScore = score;\r\n\t\t\t\t\tbestDelta = delta;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchange.originalStart -= bestDelta;\r\n\t\t\tchange.modifiedStart -= bestDelta;\r\n\t\t}\r\n\r\n\t\treturn changes;\r\n\t}\r\n\r\n\tprivate _OriginalIsBoundary(index: number): boolean {\r\n\t\tif (index <= 0 || index >= this._originalElementsOrHash.length - 1) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn (this._hasStrings && /^\\s*$/.test(this._originalStringElements[index]));\r\n\t}\r\n\r\n\tprivate _OriginalRegionIsBoundary(originalStart: number, originalLength: number): boolean {\r\n\t\tif (this._OriginalIsBoundary(originalStart) || this._OriginalIsBoundary(originalStart - 1)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (originalLength > 0) {\r\n\t\t\tconst originalEnd = originalStart + originalLength;\r\n\t\t\tif (this._OriginalIsBoundary(originalEnd - 1) || this._OriginalIsBoundary(originalEnd)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate _ModifiedIsBoundary(index: number): boolean {\r\n\t\tif (index <= 0 || index >= this._modifiedElementsOrHash.length - 1) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn (this._hasStrings && /^\\s*$/.test(this._modifiedStringElements[index]));\r\n\t}\r\n\r\n\tprivate _ModifiedRegionIsBoundary(modifiedStart: number, modifiedLength: number): boolean {\r\n\t\tif (this._ModifiedIsBoundary(modifiedStart) || this._ModifiedIsBoundary(modifiedStart - 1)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (modifiedLength > 0) {\r\n\t\t\tconst modifiedEnd = modifiedStart + modifiedLength;\r\n\t\t\tif (this._ModifiedIsBoundary(modifiedEnd - 1) || this._ModifiedIsBoundary(modifiedEnd)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate _boundaryScore(originalStart: number, originalLength: number, modifiedStart: number, modifiedLength: number): number {\r\n\t\tconst originalScore = (this._OriginalRegionIsBoundary(originalStart, originalLength) ? 1 : 0);\r\n\t\tconst modifiedScore = (this._ModifiedRegionIsBoundary(modifiedStart, modifiedLength) ? 1 : 0);\r\n\t\treturn (originalScore + modifiedScore);\r\n\t}\r\n\r\n\t/**\r\n\t * Concatenates the two input DiffChange lists and returns the resulting\r\n\t * list.\r\n\t * @param The left changes\r\n\t * @param The right changes\r\n\t * @returns The concatenated list\r\n\t */\r\n\tprivate ConcatenateChanges(left: DiffChange[], right: DiffChange[]): DiffChange[] {\r\n\t\tconst mergedChangeArr: DiffChange[] = [];\r\n\r\n\t\tif (left.length === 0 || right.length === 0) {\r\n\t\t\treturn (right.length > 0) ? right : left;\r\n\t\t} else if (this.ChangesOverlap(left[left.length - 1], right[0], mergedChangeArr)) {\r\n\t\t\t// Since we break the problem down recursively, it is possible that we\r\n\t\t\t// might recurse in the middle of a change thereby splitting it into\r\n\t\t\t// two changes. Here in the combining stage, we detect and fuse those\r\n\t\t\t// changes back together\r\n\t\t\tconst result = new Array<DiffChange>(left.length + right.length - 1);\r\n\t\t\tMyArray.Copy(left, 0, result, 0, left.length - 1);\r\n\t\t\tresult[left.length - 1] = mergedChangeArr[0];\r\n\t\t\tMyArray.Copy(right, 1, result, left.length, right.length - 1);\r\n\r\n\t\t\treturn result;\r\n\t\t} else {\r\n\t\t\tconst result = new Array<DiffChange>(left.length + right.length);\r\n\t\t\tMyArray.Copy(left, 0, result, 0, left.length);\r\n\t\t\tMyArray.Copy(right, 0, result, left.length, right.length);\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if the two changes overlap and can be merged into a single\r\n\t * change\r\n\t * @param left The left change\r\n\t * @param right The right change\r\n\t * @param mergedChange The merged change if the two overlap, null otherwise\r\n\t * @returns True if the two changes overlap\r\n\t */\r\n\tprivate ChangesOverlap(left: DiffChange, right: DiffChange, mergedChangeArr: Array<DiffChange | null>): boolean {\r\n\t\tDebug.Assert(left.originalStart <= right.originalStart, 'Left change is not less than or equal to right change');\r\n\t\tDebug.Assert(left.modifiedStart <= right.modifiedStart, 'Left change is not less than or equal to right change');\r\n\r\n\t\tif (left.originalStart + left.originalLength >= right.originalStart || left.modifiedStart + left.modifiedLength >= right.modifiedStart) {\r\n\t\t\tconst originalStart = left.originalStart;\r\n\t\t\tlet originalLength = left.originalLength;\r\n\t\t\tconst modifiedStart = left.modifiedStart;\r\n\t\t\tlet modifiedLength = left.modifiedLength;\r\n\r\n\t\t\tif (left.originalStart + left.originalLength >= right.originalStart) {\r\n\t\t\t\toriginalLength = right.originalStart + right.originalLength - left.originalStart;\r\n\t\t\t}\r\n\t\t\tif (left.modifiedStart + left.modifiedLength >= right.modifiedStart) {\r\n\t\t\t\tmodifiedLength = right.modifiedStart + right.modifiedLength - left.modifiedStart;\r\n\t\t\t}\r\n\r\n\t\t\tmergedChangeArr[0] = new DiffChange(originalStart, originalLength, modifiedStart, modifiedLength);\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\tmergedChangeArr[0] = null;\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Helper method used to clip a diagonal index to the range of valid\r\n\t * diagonals. This also decides whether or not the diagonal index,\r\n\t * if it exceeds the boundary, should be clipped to the boundary or clipped\r\n\t * one inside the boundary depending on the Even/Odd status of the boundary\r\n\t * and numDifferences.\r\n\t * @param diagonal The index of the diagonal to clip.\r\n\t * @param numDifferences The current number of differences being iterated upon.\r\n\t * @param diagonalBaseIndex The base reference diagonal.\r\n\t * @param numDiagonals The total number of diagonals.\r\n\t * @returns The clipped diagonal index.\r\n\t */\r\n\tprivate ClipDiagonalBound(diagonal: number, numDifferences: number, diagonalBaseIndex: number, numDiagonals: number): number {\r\n\t\tif (diagonal >= 0 && diagonal < numDiagonals) {\r\n\t\t\t// Nothing to clip, its in range\r\n\t\t\treturn diagonal;\r\n\t\t}\r\n\r\n\t\t// diagonalsBelow: The number of diagonals below the reference diagonal\r\n\t\t// diagonalsAbove: The number of diagonals above the reference diagonal\r\n\t\tconst diagonalsBelow = diagonalBaseIndex;\r\n\t\tconst diagonalsAbove = numDiagonals - diagonalBaseIndex - 1;\r\n\t\tconst diffEven = (numDifferences % 2 === 0);\r\n\r\n\t\tif (diagonal < 0) {\r\n\t\t\tconst lowerBoundEven = (diagonalsBelow % 2 === 0);\r\n\t\t\treturn (diffEven === lowerBoundEven) ? 0 : 1;\r\n\t\t} else {\r\n\t\t\tconst upperBoundEven = (diagonalsAbove % 2 === 0);\r\n\t\t\treturn (diffEven === upperBoundEven) ? numDiagonals - 1 : numDiagonals - 2;\r\n\t\t}\r\n\t}\r\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 fs from 'fs';\nimport * as path from 'path';\nimport * as crypto from 'crypto';\nimport { execSync } from 'child_process';\n\nimport semverParse = require('semver/functions/parse');\nimport semverGte = require('semver/functions/gte');\n\nimport { TextDocument } from 'vscode-languageserver-textdocument';\nimport {\n\tDiagnostic, DiagnosticSeverity, DiagnosticTag, ProposedFeatures, Range, TextEdit, Files, DocumentFilter, DocumentFormattingRegistrationOptions,\n\tDisposable, DocumentFormattingRequest, TextDocuments, uinteger\n} from 'vscode-languageserver/node';\nimport { URI } from 'vscode-uri';\n\nimport { ProbeFailedParams, ProbeFailedRequest, NoESLintLibraryRequest, Status, NoConfigRequest, StatusNotification } from './shared/customMessages';\nimport { ConfigurationSettings, DirectoryItem, ESLintOptions, ESLintSeverity, ModeEnum, ModeItem, PackageManagers, RuleCustomization, RuleSeverity, Validate } from './shared/settings';\n\nimport * as Is from './is';\nimport { LRUCache } from './linkedMap';\nimport { isUNC, normalizeDriveLetter, normalizePath } from './paths';\nimport LanguageDefaults from './languageDefaults';\n\n\n/**\n * ESLint specific settings for a text document.\n */\nexport type TextDocumentSettings = Omit<ConfigurationSettings, 'workingDirectory'> & {\n\tsilent: boolean;\n\tworkingDirectory: DirectoryItem | undefined;\n\tlibrary: ESLintModule | undefined;\n\tresolvedGlobalPackageManagerPath: string | undefined;\n};\n\nexport namespace TextDocumentSettings {\n\texport function hasLibrary(settings: TextDocumentSettings): settings is (TextDocumentSettings & { library: ESLintModule }) {\n\t\treturn settings.library !== undefined;\n\t}\n}\n\n/**\n * A special error thrown by the ESLint library\n */\nexport interface ESLintError extends Error {\n\tmessageTemplate?: string;\n\tmessageData?: {\n\t\tpluginName?: string;\n\t};\n}\n\nexport namespace ESLintError {\n\texport function isNoConfigFound(error: any): boolean {\n\t\tconst candidate = error as ESLintError;\n\t\treturn candidate.messageTemplate === 'no-config-found' || candidate.message === 'No ESLint configuration found.';\n\t}\n}\n\ntype ESLintAutoFixEdit = {\n\trange: [number, number];\n\ttext: string;\n};\n\ntype ESLintSuggestionResult = {\n\tdesc: string;\n\tfix: ESLintAutoFixEdit;\n};\n\ntype ESLintProblem = {\n\tline: number;\n\tcolumn: number;\n\tendLine?: number;\n\tendColumn?: number;\n\tseverity: number;\n\truleId: string;\n\tmessage: string;\n\tfix?: ESLintAutoFixEdit;\n\tsuggestions?: ESLintSuggestionResult[];\n};\n\ntype ESLintDocumentReport = {\n\tfilePath: string;\n\terrorCount: number;\n\twarningCount: number;\n\tmessages: ESLintProblem[];\n\toutput?: string;\n};\n\ntype ESLintReport = {\n\terrorCount: number;\n\twarningCount: number;\n\tresults: ESLintDocumentReport[];\n};\n\nexport type CLIOptions = {\n\tcwd?: string;\n\tfixTypes?: string[];\n\tfix?: boolean;\n};\n\nexport type SeverityConf = 0 | 1 | 2 | 'off' | 'warn' | 'error';\n\nexport type RuleConf = SeverityConf | [SeverityConf, ...any[]];\n\nexport type ConfigData = {\n\trules?: Record<string, RuleConf>;\n};\n\nexport type ESLintClassOptions = {\n\tcwd?: string;\n\tfixTypes?: string[];\n\tfix?: boolean;\n\toverrideConfig?: ConfigData;\n\toverrideConfigFile?: string | null;\n};\n\nexport type RuleMetaData = {\n\tdocs?: {\n\t\turl?: string;\n\t};\n\ttype?: string;\n};\n\nexport namespace RuleMetaData {\n\t// For unused eslint-disable comments, ESLint does not include a rule ID\n\t// nor any other metadata (although they do provide a fix). In order to\n\t// provide code actions for these, we create a fake rule ID and metadata.\n\texport const unusedDisableDirectiveId = 'unused-disable-directive';\n\tconst unusedDisableDirectiveMeta: RuleMetaData = {\n\t\tdocs: {\n\t\t\turl: 'https://eslint.org/docs/latest/use/configure/rules#report-unused-eslint-disable-comments'\n\t\t},\n\t\ttype: 'directive'\n\t};\n\n\tconst handled: Set<string> = new Set();\n\tconst ruleId2Meta: Map<string, RuleMetaData> = new Map([[unusedDisableDirectiveId, unusedDisableDirectiveMeta]]);\n\n\texport function capture(eslint: ESLintClass, reports: ESLintDocumentReport[]): void {\n\t\tlet rulesMetaData: Record<string, RuleMetaData> | undefined;\n\t\tif (eslint.isCLIEngine) {\n\t\t\tconst toHandle = reports.filter(report => !handled.has(report.filePath));\n\t\t\tif (toHandle.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\trulesMetaData = typeof eslint.getRulesMetaForResults === 'function' ? eslint.getRulesMetaForResults(toHandle) : undefined;\n\t\t\ttoHandle.forEach(report => handled.add(report.filePath));\n\t\t} else {\n\t\t\trulesMetaData = typeof eslint.getRulesMetaForResults === 'function' ? eslint.getRulesMetaForResults(reports) : undefined;\n\t\t}\n\t\tif (rulesMetaData === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\tObject.entries(rulesMetaData).forEach(([key, meta]) => {\n\t\t\tif (ruleId2Meta.has(key)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (meta && meta.docs && Is.string(meta.docs.url)) {\n\t\t\t\truleId2Meta.set(key, meta);\n\t\t\t}\n\t\t});\n\t}\n\n\texport function clear(): void {\n\t\thandled.clear();\n\t\truleId2Meta.clear();\n\t\truleId2Meta.set(unusedDisableDirectiveId, unusedDisableDirectiveMeta);\n\t}\n\n\texport function getUrl(ruleId: string): string | undefined {\n\t\treturn ruleId2Meta.get(ruleId)?.docs?.url;\n\t}\n\n\texport function getType(ruleId: string): string | undefined {\n\t\treturn ruleId2Meta.get(ruleId)?.type;\n\t}\n\n\texport function hasRuleId(ruleId: string): boolean {\n\t\treturn ruleId2Meta.has(ruleId);\n\t}\n\n\texport function isUnusedDisableDirectiveProblem(problem: ESLintProblem): boolean {\n\t\treturn problem.ruleId === null && problem.message.startsWith('Unused eslint-disable directive');\n\t}\n}\n\ntype ParserOptions = {\n\tparser?: string;\n};\n\ntype ESLintRcConfig = {\n\tenv: Record<string, boolean>;\n\textends: string | string[];\n\t// globals: Record<string, GlobalConf>;\n\tignorePatterns: string | string[];\n\tnoInlineConfig: boolean;\n\t// overrides: OverrideConfigData[];\n\tparser: string | null;\n\tparserOptions?: ParserOptions;\n\tplugins: string[];\n\tprocessor: string;\n\treportUnusedDisableDirectives: boolean | undefined;\n\troot: boolean;\n\trules: Record<string, RuleConf>;\n\tsettings: object;\n};\ntype ESLintConfig = ESLintRcConfig;\n\nexport type Problem = {\n\tlabel: string;\n\tdocumentVersion: number;\n\truleId: string;\n\tline: number;\n\tdiagnostic: Diagnostic;\n\tedit?: ESLintAutoFixEdit;\n\tsuggestions?: ESLintSuggestionResult[];\n};\n\nexport namespace Problem {\n\texport function isFixable(problem: Problem): problem is FixableProblem {\n\t\treturn problem.edit !== undefined;\n\t}\n\n\texport function hasSuggestions(problem: Problem): problem is SuggestionsProblem {\n\t\treturn problem.suggestions !== undefined;\n\t}\n}\n\nexport type FixableProblem = Problem & {\n\tedit: ESLintAutoFixEdit;\n};\n\nexport namespace FixableProblem {\n\texport function createTextEdit(document: TextDocument, editInfo: FixableProblem): TextEdit {\n\t\treturn TextEdit.replace(Range.create(document.positionAt(editInfo.edit.range[0]), document.positionAt(editInfo.edit.range[1])), editInfo.edit.text || '');\n\t}\n}\n\nexport type SuggestionsProblem = Problem & {\n\tsuggestions: ESLintSuggestionResult[];\n};\n\nexport namespace SuggestionsProblem {\n\texport function createTextEdit(document: TextDocument, suggestion: ESLintSuggestionResult): TextEdit {\n\t\treturn TextEdit.replace(Range.create(document.positionAt(suggestion.fix.range[0]), document.positionAt(suggestion.fix.range[1])), suggestion.fix.text || '');\n\t}\n}\n\ninterface ESLintClass extends Object {\n\t// https://eslint.org/docs/developer-guide/nodejs-api#-eslintlinttextcode-options\n\tlintText(content: string, options: {filePath?: string; warnIgnored?: boolean}): Promise<ESLintDocumentReport[]>;\n\t// https://eslint.org/docs/developer-guide/nodejs-api#-eslintispathignoredfilepath\n\tisPathIgnored(path: string): Promise<boolean>;\n\t// https://eslint.org/docs/developer-guide/nodejs-api#-eslintgetrulesmetaforresultsresults\n\tgetRulesMetaForResults?(results: ESLintDocumentReport[]): Record<string, RuleMetaData> | undefined /* for ESLintClassEmulator */;\n\t// https://eslint.org/docs/developer-guide/nodejs-api#-eslintcalculateconfigforfilefilepath\n\tcalculateConfigForFile(path: string): Promise<ESLintConfig | undefined /* for ESLintClassEmulator */>;\n\t// Whether it is the old CLI Engine\n\tisCLIEngine?: boolean;\n}\n\nnamespace ESLintClass {\n\texport function getConfigType(eslint: ESLintClass): 'eslintrc' | 'flat' {\n\t\tif (eslint.isCLIEngine === true) {\n\t\t\treturn 'eslintrc';\n\t\t}\n\t\tconst configType = (eslint.constructor as ESLintClassConstructor).configType;\n\t\treturn configType ?? 'eslintrc';\n\t}\n}\n\ninterface ESLintClassConstructor {\n\tconfigType?: 'eslintrc' | 'flat';\n\tversion?: string;\n\tnew(options: ESLintClassOptions): ESLintClass;\n}\n\ninterface CLIEngineConstructor {\n\tnew(options: CLIOptions): CLIEngine;\n}\n\n/**\n * A loaded ESLint npm module.\n */\nexport type ESLintModule =\n{\n\t// version < 7.0\n\tESLint: undefined;\n\tCLIEngine: CLIEngineConstructor;\n\tloadESLint?: undefined;\n} | {\n\t// 7.0 <= version < 8.0\n\tESLint: ESLintClassConstructor;\n\tCLIEngine: CLIEngineConstructor;\n\tloadESLint?: undefined;\n} | {\n\t// 8.0 <= version.\n\tESLint: ESLintClassConstructor;\n\tisFlatConfig?: boolean;\n\tCLIEngine: undefined;\n\tloadESLint?: (options?: { cwd?: string; useFlatConfig?: boolean }) => Promise<ESLintClassConstructor>;\n};\n\nexport namespace ESLintModule {\n\texport function hasLoadESLint(value: ESLintModule): value is { ESLint: ESLintClassConstructor; CLIEngine: undefined; loadESLint: (options?: { cwd?: string; useFlatConfig?: boolean }) => Promise<ESLintClassConstructor> } {\n\t\treturn value.loadESLint !== undefined;\n\t}\n\texport function hasESLintClass(value: ESLintModule): value is { ESLint: ESLintClassConstructor; CLIEngine: undefined } {\n\t\treturn value.ESLint !== undefined;\n\t}\n\texport function hasCLIEngine(value: ESLintModule): value is { ESLint: undefined; CLIEngine: CLIEngineConstructor } {\n\t\treturn value.CLIEngine !== undefined;\n\t}\n\texport function isFlatConfig(value: ESLintModule): value is { ESLint: ESLintClassConstructor; CLIEngine: undefined; isFlatConfig: true } {\n\t\tconst candidate: { ESLint: ESLintClassConstructor; isFlatConfig?: boolean } = value as any;\n\t\treturn candidate.ESLint !== undefined && candidate.isFlatConfig === true;\n\t}\n}\n\n// { meta: { docs: [Object], schema: [Array] }, create: [Function: create] }\ntype RuleData = {\n\tmeta?: RuleMetaData;\n};\n\nnamespace RuleData {\n\texport function hasMetaType(value: RuleMetaData | undefined): value is RuleMetaData & { type: string } {\n\t\treturn value !== undefined && value.type !== undefined;\n\t}\n}\n\ninterface CLIEngine {\n\texecuteOnText(content: string, file?: string, warn?: boolean): ESLintReport;\n\tisPathIgnored(path: string): boolean;\n\t// This is only available from v4.15.0 forward\n\tgetRules?(): Map<string, RuleData>;\n\tgetConfigForFile?(path: string): ESLintConfig;\n}\n\nnamespace CLIEngine {\n\texport function hasRule(value: CLIEngine): value is CLIEngine & { getRules(): Map<string, RuleData> } {\n\t\treturn value.getRules !== undefined;\n\t}\n}\n\n/**\n * ESLint class emulator using CLI Engine.\n */\nclass ESLintClassEmulator implements ESLintClass {\n\n\tprivate cli: CLIEngine;\n\n\tconstructor(cli: CLIEngine) {\n\t\tthis.cli = cli;\n\t}\n\tget isCLIEngine(): boolean {\n\t\treturn true;\n\t}\n\tasync lintText(content: string, options: { filePath?: string | undefined; warnIgnored?: boolean | undefined }): Promise<ESLintDocumentReport[]> {\n\t\treturn this.cli.executeOnText(content, options.filePath, options.warnIgnored).results;\n\t}\n\tasync isPathIgnored(path: string): Promise<boolean> {\n\t\treturn this.cli.isPathIgnored(path);\n\t}\n\tgetRulesMetaForResults(_results: ESLintDocumentReport[]): Record<string, RuleMetaData> | undefined {\n\t\tif (!CLIEngine.hasRule(this.cli)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst rules: Record<string, RuleMetaData> = {};\n\t\tfor (const [name, rule] of this.cli.getRules()) {\n\t\t\tif (rule.meta !== undefined) {\n\t\t\t\trules[name] = rule.meta;\n\t\t\t}\n\t\t}\n\t\treturn rules;\n\t}\n\tasync calculateConfigForFile(path: string): Promise<ESLintConfig | undefined> {\n\t\treturn typeof this.cli.getConfigForFile === 'function' ? this.cli.getConfigForFile(path) : undefined;\n\t}\n}\n\n\n/**\n * Class for dealing with Fixes.\n */\nexport class Fixes {\n\tconstructor(private edits: Map<string, Problem>) {\n\t}\n\n\tpublic static overlaps(a: FixableProblem | undefined, b: FixableProblem): boolean {\n\t\treturn a !== undefined && a.edit.range[1] > b.edit.range[0];\n\t}\n\n\tpublic static sameRange(a: FixableProblem, b: FixableProblem): boolean {\n\t\treturn a.edit.range[0] === b.edit.range[0] && a.edit.range[1] === b.edit.range[1];\n\t}\n\n\tpublic isEmpty(): boolean {\n\t\treturn this.edits.size === 0;\n\t}\n\n\tpublic getDocumentVersion(): number {\n\t\tif (this.isEmpty()) {\n\t\t\tthrow new Error('No edits recorded.');\n\t\t}\n\t\treturn this.edits.values().next().value!.documentVersion;\n\t}\n\n\tpublic getScoped(diagnostics: Diagnostic[]): Problem[] {\n\t\tconst result: Problem[] = [];\n\t\tfor (const diagnostic of diagnostics) {\n\t\t\tconst key = Diagnostics.computeKey(diagnostic);\n\t\t\tconst editInfo = this.edits.get(key);\n\t\t\tif (editInfo) {\n\t\t\t\tresult.push(editInfo);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tpublic getAllSorted(): FixableProblem[] {\n\t\tconst result: FixableProblem[] = [];\n\t\tfor (const value of this.edits.values()) {\n\t\t\tif (Problem.isFixable(value)) {\n\t\t\t\tresult.push(value);\n\t\t\t}\n\t\t}\n\t\treturn result.sort((a, b) => {\n\t\t\tconst d0 = a.edit.range[0] - b.edit.range[0];\n\t\t\tif (d0 !== 0) {\n\t\t\t\treturn d0;\n\t\t\t}\n\t\t\t// Both edits have now the same start offset.\n\n\t\t\t// Length of a and length of b\n\t\t\tconst al = a.edit.range[1] - a.edit.range[0];\n\t\t\tconst bl = b.edit.range[1] - b.edit.range[0];\n\t\t\t// Both has the same start offset and length.\n\t\t\tif (al === bl) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (al === 0) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (bl === 0) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn al - bl;\n\t\t});\n\t}\n\n\tpublic getApplicable(): FixableProblem[] {\n\t\tconst sorted = this.getAllSorted();\n\t\tif (sorted.length <= 1) {\n\t\t\treturn sorted;\n\t\t}\n\t\tconst result: FixableProblem[] = [];\n\t\tlet last: FixableProblem = sorted[0];\n\t\tresult.push(last);\n\t\tfor (let i = 1; i < sorted.length; i++) {\n\t\t\tconst current = sorted[i];\n\t\t\tif (!Fixes.overlaps(last, current) && !Fixes.sameRange(last, current)) {\n\t\t\t\tresult.push(current);\n\t\t\t\tlast = current;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n}\n\nexport type SaveRuleConfigItem = { offRules: Set<string>; onRules: Set<string>; options: ESLintOptions | undefined};\n\n/**\n * Manages the special save rule configurations done in the VS Code settings.\n */\nexport namespace SaveRuleConfigs {\n\n\texport let inferFilePath: (documentOrUri: string | TextDocument | URI | undefined, useRealpaths: boolean) => string | undefined;\n\n\tconst saveRuleConfigCache = new LRUCache<string, SaveRuleConfigItem | null>(128);\n\texport async function get(uri: string, settings: TextDocumentSettings & { library: ESLintModule }): Promise<SaveRuleConfigItem | undefined> {\n\t\tconst filePath = inferFilePath(uri, settings.useRealpaths);\n\t\tlet result = saveRuleConfigCache.get(uri);\n\t\tif (filePath === undefined || result === null) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (result !== undefined) {\n\t\t\treturn result;\n\t\t}\n\t\tconst rules = settings.codeActionOnSave.rules;\n\t\tconst options = settings.codeActionOnSave.options;\n\t\tresult = await ESLint.withClass(async (eslint) => {\n\t\t\tif ((rules === undefined && options === undefined) || eslint.isCLIEngine) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tconst config = await eslint.calculateConfigForFile(filePath);\n\t\t\tif (config === undefined || config.rules === undefined || config.rules.length === 0) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tconst offRules: Set<string> = new Set();\n\t\t\tconst onRules: Set<string> = new Set();\n\t\t\tif (rules !== undefined) {\n\t\t\t\tif (rules.length === 0) {\n\t\t\t\t\tObject.keys(config.rules).forEach(ruleId => offRules.add(ruleId));\n\t\t\t\t} else {\n\t\t\t\t\tfor (const ruleId of Object.keys(config.rules)) {\n\t\t\t\t\t\tif (isOff(ruleId, rules)) {\n\t\t\t\t\t\t\toffRules.add(ruleId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tonRules.add(ruleId);\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\treturn (offRules.size > 0 || options) ? { offRules, onRules, options } : undefined;\n\t\t}, settings);\n\t\tif (result === undefined || result === null) {\n\t\t\tsaveRuleConfigCache.set(uri, null);\n\t\t\treturn undefined;\n\t\t} else {\n\t\t\tsaveRuleConfigCache.set(uri, result);\n\t\t\treturn result;\n\t\t}\n\t}\n\texport function remove(key: string): boolean {\n\t\treturn saveRuleConfigCache.delete(key);\n\t}\n\n\texport function clear(): void {\n\t\tsaveRuleConfigCache.clear();\n\t}\n\n\tfunction isOff(ruleId: string, matchers: string[]): boolean {\n\t\tfor (const matcher of matchers) {\n\t\t\tif (matcher.startsWith('!') && new RegExp(`^${matcher.slice(1).replace(/\\*/g, '.*')}$`, 'g').test(ruleId)) {\n\t\t\t\treturn true;\n\t\t\t} else if (new RegExp(`^${matcher.replace(/\\*/g, '.*')}$`, 'g').test(ruleId)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n}\n\n/**\n * Manages rule severity overrides done using VS Code settings.\n */\nexport namespace RuleSeverities {\n\n\tconst ruleSeverityCache = new LRUCache<string, RuleSeverity | null>(1024);\n\n\texport function getOverride(ruleId: string, customizations: RuleCustomization[], isFixable?: boolean): RuleSeverity | undefined {\n\t\tlet result: RuleSeverity | undefined | null = ruleSeverityCache.get(ruleId);\n\t\tif (result === null) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (result !== undefined) {\n\t\t\treturn result;\n\t\t}\n\t\tfor (const customization of customizations) {\n\t\t\tif (\n\t\t\t\t// Rule name should match\n\t\t\t\tasteriskMatches(customization.rule, ruleId) &&\n\t\t\t\t// Fixable flag should match the fixability of the rule if it's defined\n\t\t\t\t(customization.fixable === undefined || customization.fixable === isFixable)\n\t\t\t) {\n\t\t\t\tresult = customization.severity;\n\t\t\t}\n\t\t}\n\t\tif (result === undefined) {\n\t\t\truleSeverityCache.set(ruleId, null);\n\t\t\treturn undefined;\n\t\t}\n\n\t\truleSeverityCache.set(ruleId, result);\n\t\treturn result;\n\t}\n\n\texport function clear(): void {\n\t\truleSeverityCache.clear();\n\t}\n\n\tfunction asteriskMatches(matcher: string, ruleId: string): boolean {\n\t\treturn matcher.startsWith('!')\n\t\t\t? !(new RegExp(`^${matcher.slice(1).replace(/\\*/g, '.*')}$`, 'g').test(ruleId))\n\t\t\t: new RegExp(`^${matcher.replace(/\\*/g, '.*')}$`, 'g').test(ruleId);\n\t}\n}\n\n\n/**\n * Creates LSP Diagnostics and captures code action information.\n */\nnamespace Diagnostics {\n\n\texport function computeKey(diagnostic: Diagnostic): string {\n\t\tconst range = diagnostic.range;\n\t\tlet message: string | undefined;\n\t\tif (diagnostic.message) {\n\t\t\tconst hash = crypto.createHash('sha256');\n\t\t\thash.update(diagnostic.message);\n\t\t\tmessage = hash.digest('base64');\n\t\t}\n\t\treturn `[${range.start.line},${range.start.character},${range.end.line},${range.end.character}]-${diagnostic.code}-${message ?? ''}`;\n\t}\n\n\texport function create(settings: TextDocumentSettings, problem: ESLintProblem, document: TextDocument): [Diagnostic, RuleSeverity | undefined] {\n\t\tconst message = problem.message;\n\t\tconst startLine = typeof problem.line !== 'number' || Number.isNaN(problem.line) ? 0 : Math.max(0, problem.line - 1);\n\t\tconst startChar = typeof problem.column !== 'number' || Number.isNaN(problem.column) ? 0 : Math.max(0, problem.column - 1);\n\t\tlet endLine = typeof problem.endLine !== 'number' || Number.isNaN(problem.endLine) ? startLine : Math.max(0, problem.endLine - 1);\n\t\tlet endChar = typeof problem.endColumn !== 'number' || Number.isNaN(problem.endColumn) ? startChar : Math.max(0, problem.endColumn - 1);\n\t\tif (settings.problems.shortenToSingleLine && endLine !== startLine) {\n\t\t\tconst startLineText = document.getText({\n\t\t\t\tstart: {\n\t\t\t\t\tline: startLine,\n\t\t\t\t\tcharacter: 0,\n\t\t\t\t},\n\t\t\t\tend: {\n\t\t\t\t\tline: startLine,\n\t\t\t\t\tcharacter: uinteger.MAX_VALUE,\n\t\t\t\t}\n\t\t\t});\n\t\t\tendLine = startLine;\n\t\t\tendChar = startLineText.length;\n\t\t}\n\n\t\tconst override = RuleSeverities.getOverride(problem.ruleId, settings.rulesCustomizations, problem.fix !== undefined);\n\t\tconst result: Diagnostic = {\n\t\t\tmessage: message,\n\t\t\tseverity: convertSeverityToDiagnosticWithOverride(problem.severity, override),\n\t\t\tsource: 'eslint',\n\t\t\trange: {\n\t\t\t\tstart: { line: startLine, character: startChar },\n\t\t\t\tend: { line: endLine, character: endChar }\n\t\t\t}\n\t\t};\n\t\tif (problem.ruleId) {\n\t\t\tconst url = RuleMetaData.getUrl(problem.ruleId);\n\t\t\tresult.code = problem.ruleId;\n\t\t\tif (url !== undefined) {\n\t\t\t\tresult.codeDescription = {\n\t\t\t\t\thref: url\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (problem.ruleId === 'no-unused-vars') {\n\t\t\t\tresult.tags = [DiagnosticTag.Unnecessary];\n\t\t\t}\n\t\t}\n\n\t\treturn [result, override];\n\t}\n\n\tfunction adjustSeverityForOverride(severity: number | RuleSeverity, severityOverride?: RuleSeverity) {\n\t\tswitch (severityOverride) {\n\t\t\tcase RuleSeverity.off:\n\t\t\tcase RuleSeverity.info:\n\t\t\tcase RuleSeverity.warn:\n\t\t\tcase RuleSeverity.error:\n\t\t\t\treturn severityOverride;\n\n\t\t\tcase RuleSeverity.downgrade:\n\t\t\t\tswitch (convertSeverityToDiagnostic(severity)) {\n\t\t\t\t\tcase DiagnosticSeverity.Error:\n\t\t\t\t\t\treturn RuleSeverity.warn;\n\t\t\t\t\tcase DiagnosticSeverity.Warning:\n\t\t\t\t\tcase DiagnosticSeverity.Information:\n\t\t\t\t\t\treturn RuleSeverity.info;\n\t\t\t\t}\n\n\t\t\tcase RuleSeverity.upgrade:\n\t\t\t\tswitch (convertSeverityToDiagnostic(severity)) {\n\t\t\t\t\tcase DiagnosticSeverity.Information:\n\t\t\t\t\t\treturn RuleSeverity.warn;\n\t\t\t\t\tcase DiagnosticSeverity.Warning:\n\t\t\t\t\tcase DiagnosticSeverity.Error:\n\t\t\t\t\t\treturn RuleSeverity.error;\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\treturn severity;\n\t\t}\n\t}\n\n\tfunction convertSeverityToDiagnostic(severity: number | RuleSeverity) {\n\t// RuleSeverity concerns an overridden rule. A number is direct from ESLint.\n\t\tswitch (severity) {\n\t\t// Eslint 1 is warning\n\t\t\tcase 1:\n\t\t\tcase RuleSeverity.warn:\n\t\t\t\treturn DiagnosticSeverity.Warning;\n\t\t\tcase 2:\n\t\t\tcase RuleSeverity.error:\n\t\t\t\treturn DiagnosticSeverity.Error;\n\t\t\tcase RuleSeverity.info:\n\t\t\t\treturn DiagnosticSeverity.Information;\n\t\t\tdefault:\n\t\t\t\treturn DiagnosticSeverity.Error;\n\t\t}\n\t}\n\n\tfunction convertSeverityToDiagnosticWithOverride(severity: number | RuleSeverity, severityOverride: RuleSeverity | undefined): DiagnosticSeverity {\n\t\treturn convertSeverityToDiagnostic(adjustSeverityForOverride(severity, severityOverride));\n\n\t}\n}\n\n/**\n * Capture information necessary to compute code actions.\n */\nexport namespace CodeActions {\n\tconst codeActions: Map<string, Map<string, Problem>> = new Map<string, Map<string, Problem>>();\n\n\texport function get(uri: string): Map<string, Problem> | undefined {\n\t\treturn codeActions.get(uri);\n\t}\n\n\texport function set(uri: string, value: Map<string, Problem>): void {\n\t\tcodeActions.set(uri, value);\n\t}\n\n\texport function remove(uri: string): boolean {\n\t\treturn codeActions.delete(uri);\n\t}\n\n\texport function record(document: TextDocument, diagnostic: Diagnostic, problem: ESLintProblem): void {\n\t\tif (!problem.ruleId) {\n\t\t\treturn;\n\t\t}\n\t\tconst uri = document.uri;\n\t\tlet edits: Map<string, Problem> | undefined = CodeActions.get(uri);\n\t\tif (edits === undefined) {\n\t\t\tedits = new Map<string, Problem>();\n\t\t\tCodeActions.set(uri, edits);\n\t\t}\n\t\tedits.set(Diagnostics.computeKey(diagnostic), {\n\t\t\tlabel: `Fix this ${problem.ruleId} problem`,\n\t\t\tdocumentVersion: document.version,\n\t\t\truleId: problem.ruleId,\n\t\t\tline: problem.line,\n\t\t\tdiagnostic: diagnostic,\n\t\t\tedit: problem.fix,\n\t\t\tsuggestions: problem.suggestions\n\t\t});\n\t}\n}\n\n/**\n * Wrapper round the ESLint npm module.\n */\nexport namespace ESLint {\n\n\tlet connection: ProposedFeatures.Connection;\n\tlet documents: TextDocuments<TextDocument>;\n\tlet inferFilePath: (documentOrUri: string | TextDocument | URI | undefined, useRealpaths: boolean) => string | undefined;\n\tlet loadNodeModule: <T>(moduleName: string) => T | undefined;\n\n\tconst languageId2ParserRegExp: Map<string, RegExp[]> = function createLanguageId2ParserRegExp() {\n\t\tconst result = new Map<string, RegExp[]>();\n\t\tconst typescript = /\\/@typescript-eslint\\/parser\\//;\n\t\tconst babelESLint = /\\/babel-eslint\\/lib\\/index.js$/;\n\t\tconst vueESLint = /\\/vue-eslint-parser\\/index.js$/;\n\t\tresult.set('typescript', [typescript, babelESLint, vueESLint]);\n\t\tresult.set('typescriptreact', [typescript, babelESLint, vueESLint]);\n\n\t\tconst angular = /\\/@angular-eslint\\/template-parser\\//;\n\t\tresult.set('html', [angular]);\n\n\t\treturn result;\n\t}();\n\n\tconst languageId2ParserOptions: Map<string, { regExps: RegExp[]; parsers: Set<string>; parserRegExps?: RegExp[] }> = function createLanguageId2ParserOptionsRegExp() {\n\t\tconst result = new Map<string, { regExps: RegExp[]; parsers: Set<string>; parserRegExps?: RegExp[] }>();\n\t\tconst vue = /vue-eslint-parser\\/.*\\.js$/;\n\t\tconst typescriptEslintParser = /@typescript-eslint\\/parser\\/.*\\.js$/;\n\t\tresult.set('typescript', { regExps: [vue], parsers: new Set<string>(['@typescript-eslint/parser']), parserRegExps: [typescriptEslintParser] });\n\t\treturn result;\n\t}();\n\n\tconst languageId2PluginName: Map<string, string> = new Map([\n\t\t['astro', 'astro'],\n\t\t['civet', 'civet'],\n\t\t['html', 'html'],\n\t\t['json', 'jsonc'],\n\t\t['json5', 'jsonc'],\n\t\t['jsonc', 'jsonc'],\n\t\t['mdx', 'mdx'],\n\t\t['vue', 'vue'],\n\t\t['markdown', 'markdown'],\n\t\t['css', 'css'],\n\t\t['glimmer-js', 'ember'],\n\t\t['glimmer-ts', 'ember'],\n\t\t['svelte', 'svelte'],\n\t]);\n\n\tconst defaultLanguageIds: Set<string> = new Set([\n\t\t'javascript', 'javascriptreact'\n\t]);\n\n\tconst projectFolderIndicators: {\n\t\tfileName: string;\n\t\tisRoot: boolean;\n\t\tisFlatConfig: boolean;\n\t}[] = [\n\t\t{ fileName: 'eslint.config.js', isRoot: true, isFlatConfig: true },\n\t\t{ fileName: 'eslint.config.cjs', isRoot: true, isFlatConfig: true },\n\t\t{ fileName: 'eslint.config.mjs', isRoot: true, isFlatConfig: true },\n\t\t{ fileName: 'eslint.config.ts', isRoot: true, isFlatConfig: true },\n\t\t{ fileName: 'eslint.config.cts', isRoot: true, isFlatConfig: true },\n\t\t{ fileName: 'eslint.config.mts', isRoot: true, isFlatConfig: true },\n\t\t{ fileName: 'package.json', isRoot: true, isFlatConfig: false },\n\t\t{ fileName: '.eslintignore', isRoot: true, isFlatConfig: false },\n\t\t{ fileName: '.eslintrc', isRoot: false, isFlatConfig: false },\n\t\t{ fileName: '.eslintrc.json', isRoot: false, isFlatConfig: false },\n\t\t{ fileName: '.eslintrc.js', isRoot: false, isFlatConfig: false },\n\t\t{ fileName: '.eslintrc.yaml', isRoot: false, isFlatConfig: false },\n\t\t{ fileName: '.eslintrc.yml', isRoot: false, isFlatConfig: false }\n\t];\n\n\tconst path2Library: Map<string, ESLintModule> = new Map<string, ESLintModule>();\n\tconst document2Settings: Map<string, Promise<TextDocumentSettings>> = new Map<string, Promise<TextDocumentSettings>>();\n\tconst formatterRegistrations: Map<string, Promise<Disposable>> = new Map();\n\n\texport function initialize($connection: ProposedFeatures.Connection, $documents: TextDocuments<TextDocument>, $inferFilePath: (documentOrUri: string | TextDocument | URI | undefined, useRealpaths: boolean) => string | undefined, $loadNodeModule: <T>(moduleName: string) => T | undefined) {\n\t\tconnection = $connection;\n\t\tdocuments = $documents;\n\t\tinferFilePath = $inferFilePath;\n\t\tloadNodeModule = $loadNodeModule;\n\t}\n\n\texport function removeSettings(key: string): boolean {\n\t\treturn document2Settings.delete(key);\n\t}\n\n\texport function clearSettings(): void {\n\t\tdocument2Settings.clear();\n\t}\n\n\texport function unregisterAsFormatter(document: TextDocument): void {\n\t\tconst unregister = formatterRegistrations.get(document.uri);\n\t\tif (unregister !== undefined) {\n\t\t\tvoid unregister.then(disposable => disposable.dispose());\n\t\t\tformatterRegistrations.delete(document.uri);\n\t\t}\n\t}\n\n\texport function clearFormatters(): void {\n\t\tfor (const unregistration of formatterRegistrations.values()) {\n\t\t\tvoid unregistration.then(disposable => disposable.dispose());\n\t\t}\n\t\tformatterRegistrations.clear();\n\t}\n\n\texport function resolveSettings(document: TextDocument): Promise<TextDocumentSettings> {\n\t\tconst uri = document.uri;\n\t\tlet resultPromise = document2Settings.get(uri);\n\t\tif (resultPromise) {\n\t\t\treturn resultPromise;\n\t\t}\n\t\tresultPromise = connection.workspace.getConfiguration({ scopeUri: uri, section: '' }).then((configuration: ConfigurationSettings) => {\n\t\t\tconst settings: TextDocumentSettings = Object.assign(\n\t\t\t\t{},\n\t\t\t\tconfiguration,\n\t\t\t\t{ silent: false, library: undefined, resolvedGlobalPackageManagerPath: undefined },\n\t\t\t\t{ workingDirectory: undefined}\n\t\t\t);\n\t\t\tif (settings.validate === Validate.off) {\n\t\t\t\treturn settings;\n\t\t\t}\n\t\t\tsettings.resolvedGlobalPackageManagerPath = GlobalPaths.get(settings.packageManager);\n\t\t\tconst filePath = inferFilePath(document, settings.useRealpaths);\n\t\t\tconst workspaceFolderPath = settings.workspaceFolder !== undefined ? inferFilePath(settings.workspaceFolder.uri, settings.useRealpaths) : undefined;\n\t\t\tlet assumeFlatConfig:boolean = false;\n\t\t\tconst hasUserDefinedWorkingDirectories: boolean = configuration.workingDirectory !== undefined;\n\t\t\tconst workingDirectoryConfig = configuration.workingDirectory ?? { mode: ModeEnum.location };\n\t\t\tif (ModeItem.is(workingDirectoryConfig)) {\n\t\t\t\tlet candidate: string | undefined;\n\t\t\t\tif (workingDirectoryConfig.mode === ModeEnum.location) {\n\t\t\t\t\tif (workspaceFolderPath !== undefined) {\n\t\t\t\t\t\tconst [configLocation, isFlatConfig] = findWorkingDirectory(workspaceFolderPath, filePath);\n\t\t\t\t\t\tif (isFlatConfig && settings.useFlatConfig !== false) {\n\t\t\t\t\t\t\tcandidate = configLocation;\n\t\t\t\t\t\t\tassumeFlatConfig = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcandidate = workspaceFolderPath;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (filePath !== undefined && !isUNC(filePath)) {\n\t\t\t\t\t\tcandidate = path.dirname(filePath);\n\t\t\t\t\t}\n\t\t\t\t} else if (workingDirectoryConfig.mode === ModeEnum.auto) {\n\t\t\t\t\tif (workspaceFolderPath !== undefined) {\n\t\t\t\t\t\tcandidate = findWorkingDirectory(workspaceFolderPath, filePath)[0];\n\t\t\t\t\t} else if (filePath !== undefined && !isUNC(filePath)) {\n\t\t\t\t\t\tcandidate = path.dirname(filePath);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (candidate !== undefined && fs.existsSync(candidate)) {\n\t\t\t\t\tsettings.workingDirectory = { directory: candidate };\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsettings.workingDirectory = workingDirectoryConfig;\n\t\t\t}\n\t\t\tlet nodePath: string | undefined;\n\t\t\tif (settings.nodePath !== null) {\n\t\t\t\tnodePath = settings.nodePath;\n\t\t\t\tif (!path.isAbsolute(nodePath) && workspaceFolderPath !== undefined) {\n\t\t\t\t\tnodePath = path.join(workspaceFolderPath, nodePath);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet moduleResolveWorkingDirectory: string | undefined;\n\t\t\tif (!hasUserDefinedWorkingDirectories && filePath !== undefined) {\n\t\t\t\tmoduleResolveWorkingDirectory = path.dirname(filePath);\n\t\t\t}\n\t\t\tif (moduleResolveWorkingDirectory === undefined && settings.workingDirectory !== undefined && !settings.workingDirectory['!cwd']) {\n\t\t\t\tmoduleResolveWorkingDirectory = settings.workingDirectory.directory;\n\t\t\t}\n\n\t\t\tlet promise: Promise<string>;\n\t\t\t// During Flat Config is considered experimental,\n\t\t\t// we need to import FlatESLint from 'eslint/use-at-your-own-risk'.\n\t\t\t// See: https://eslint.org/blog/2022/08/new-config-system-part-3/\n\t\t\tconst eslintPath = settings.experimental?.useFlatConfig ? 'eslint/use-at-your-own-risk' : 'eslint';\n\t\t\tif (nodePath !== undefined) {\n\t\t\t\tpromise = Files.resolve(eslintPath, nodePath, nodePath, trace).then<string, string>(undefined, () => {\n\t\t\t\t\treturn Files.resolve(eslintPath, settings.resolvedGlobalPackageManagerPath, moduleResolveWorkingDirectory, trace);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpromise = Files.resolve(eslintPath, settings.resolvedGlobalPackageManagerPath, moduleResolveWorkingDirectory, trace);\n\t\t\t}\n\n\t\t\tsettings.silent = settings.validate === Validate.probe;\n\t\t\treturn promise.then(async (libraryPath) => {\n\t\t\t\tlet library = path2Library.get(libraryPath);\n\t\t\t\tif (library === undefined) {\n\t\t\t\t\tif (settings.experimental?.useFlatConfig === true) {\n\t\t\t\t\t\tconst lib = loadNodeModule<{ FlatESLint?: ESLintClassConstructor }>(libraryPath);\n\t\t\t\t\t\tif (lib === undefined) {\n\t\t\t\t\t\t\tsettings.validate = Validate.off;\n\t\t\t\t\t\t\tif (!settings.silent) {\n\t\t\t\t\t\t\t\tconnection.console.error(`Failed to load eslint library from ${libraryPath}. If you are using ESLint v8.21 or earlier, try upgrading it. For newer versions, try disabling the 'eslint.experimental.useFlatConfig' setting. See the output panel for more information.`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (lib.FlatESLint === undefined) {\n\t\t\t\t\t\t\tsettings.validate = Validate.off;\n\t\t\t\t\t\t\tconnection.console.error(`The eslint library loaded from ${libraryPath} doesn\\'t export a FlatESLint class.`);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconnection.console.info(`ESLint library loaded from: ${libraryPath}`);\n\t\t\t\t\t\t\t// pretend to be a regular eslint endpoint\n\t\t\t\t\t\t\tlibrary = {\n\t\t\t\t\t\t\t\tESLint: lib.FlatESLint,\n\t\t\t\t\t\t\t\tisFlatConfig: true,\n\t\t\t\t\t\t\t\tCLIEngine: undefined,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tsettings.library = library;\n\t\t\t\t\t\t\tpath2Library.set(libraryPath, library);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlibrary = loadNodeModule(libraryPath);\n\t\t\t\t\t\tif (library === undefined) {\n\t\t\t\t\t\t\tsettings.validate = Validate.off;\n\t\t\t\t\t\t\tif (!settings.silent) {\n\t\t\t\t\t\t\t\tconnection.console.error(`Failed to load eslint library from ${libraryPath}. See output panel for more information.`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (library.CLIEngine === undefined && library.ESLint === undefined) {\n\t\t\t\t\t\t\tsettings.validate = Validate.off;\n\t\t\t\t\t\t\tconnection.console.error(`The eslint library loaded from ${libraryPath} doesn\\'t export neither a CLIEngine nor an ESLint class. You need at least eslint@1.0.0`);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconnection.console.info(`ESLint library loaded from: ${libraryPath}`);\n\t\t\t\t\t\t\tsettings.library = library;\n\t\t\t\t\t\t\tpath2Library.set(libraryPath, library);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (library !== undefined && ESLintModule.hasESLintClass(library) && typeof library.ESLint.version === 'string') {\n\t\t\t\t\t\tconst esLintVersion = semverParse(library.ESLint.version);\n\t\t\t\t\t\tif (esLintVersion !== null) {\n\t\t\t\t\t\t\tif (semverGte(esLintVersion, '8.57.0') && settings.experimental?.useFlatConfig === true) {\n\t\t\t\t\t\t\t\tconnection.console.info(`ESLint version ${library.ESLint.version} supports flat config without experimental opt-in. The 'eslint.experimental.useFlatConfig' setting can be removed.`);\n\t\t\t\t\t\t\t} else if (semverGte(esLintVersion, '10.0.0') && (settings.experimental?.useFlatConfig === false || settings.useFlatConfig === false)) {\n\t\t\t\t\t\t\t\tconnection.console.info(`ESLint version ${library.ESLint.version} only supports flat configs. Setting is ignored.`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsettings.library = library;\n\t\t\t\t}\n\t\t\t\tif (settings.validate === Validate.probe && TextDocumentSettings.hasLibrary(settings)) {\n\t\t\t\t\tsettings.validate = Validate.off;\n\t\t\t\t\tconst filePath = ESLint.getFilePath(document, settings);\n\t\t\t\t\tif (filePath !== undefined) {\n\t\t\t\t\t\tconst parserRegExps = languageId2ParserRegExp.get(document.languageId);\n\t\t\t\t\t\tconst pluginName = languageId2PluginName.get(document.languageId);\n\t\t\t\t\t\tconst parserOptions = languageId2ParserOptions.get(document.languageId);\n\t\t\t\t\t\tif (defaultLanguageIds.has(document.languageId)) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst [isIgnored, configType] = await ESLint.withClass(async (eslintClass) => {\n\t\t\t\t\t\t\t\t\treturn [await eslintClass.isPathIgnored(filePath), ESLintClass.getConfigType(eslintClass)];\n\t\t\t\t\t\t\t\t}, settings);\n\t\t\t\t\t\t\t\tif (isIgnored === false || (isIgnored === true && settings.onIgnoredFiles !== ESLintSeverity.off)) {\n\t\t\t\t\t\t\t\t\tsettings.validate = Validate.on;\n\t\t\t\t\t\t\t\t\tif (assumeFlatConfig && configType === 'eslintrc') {\n\t\t\t\t\t\t\t\t\t\tconnection.console.info(`Expected to use flat configuration from directory ${settings.workingDirectory?.directory} but loaded eslintrc config.`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (error: any) {\n\t\t\t\t\t\t\t\tsettings.validate = Validate.off;\n\t\t\t\t\t\t\t\tawait connection.sendNotification(StatusNotification.type, { uri, state: Status.error });\n\t\t\t\t\t\t\t\tconnection.console.error(`Calculating config file for ${uri}) failed.\\n${error instanceof Error ? error.stack : ''}`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (parserRegExps !== undefined || pluginName !== undefined || parserOptions !== undefined) {\n\t\t\t\t\t\t\tconst [eslintConfig, configType] = await ESLint.withClass(async (eslintClass) => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tif (await eslintClass.isPathIgnored(filePath)) {\n\t\t\t\t\t\t\t\t\t\treturn [undefined, undefined];\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\treturn [await eslintClass.calculateConfigForFile(filePath), ESLintClass.getConfigType(eslintClass)];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tawait connection.sendNotification(StatusNotification.type, { uri, state: Status.error });\n\t\t\t\t\t\t\t\t\t\tconnection.console.error(`Calculating config file for ${uri}) failed.\\n${err instanceof Error ? err.stack : ''}`);\n\t\t\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\t\t\t// little we can do here\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn [undefined, undefined];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, settings);\n\t\t\t\t\t\t\tif (eslintConfig !== undefined) {\n\t\t\t\t\t\t\t\tif (assumeFlatConfig && configType === 'eslintrc') {\n\t\t\t\t\t\t\t\t\tconnection.console.info(`Expected to use flat configuration from directory ${settings.workingDirectory?.directory} but loaded eslintrc config.`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (configType === 'flat' || ESLintModule.isFlatConfig(settings.library)) {\n\t\t\t\t\t\t\t\t\t// We have a flat configuration. This means that the config file needs to\n\t\t\t\t\t\t\t\t\t// have a section per file extension we want to validate. If there is none than\n\t\t\t\t\t\t\t\t\t// `calculateConfigForFile` will return no config since the config options without\n\t\t\t\t\t\t\t\t\t// a `files` property only applies to `**/*.js, **/*.cjs, and **/*.mjs` by default\n\t\t\t\t\t\t\t\t\t// See https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#specifying-files-and-ignores\n\n\t\t\t\t\t\t\t\t\t// This means since we have found a configuration for the given file we assume that\n\t\t\t\t\t\t\t\t\t// that configuration is correctly pointing to a parser.\n\t\t\t\t\t\t\t\t\tsettings.validate = Validate.on;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst parser: string | undefined = eslintConfig.parser !== null\n\t\t\t\t\t\t\t\t\t\t? normalizePath(eslintConfig.parser)\n\t\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\t\t\tif (parser !== undefined) {\n\t\t\t\t\t\t\t\t\t\tif (parserRegExps !== undefined) {\n\t\t\t\t\t\t\t\t\t\t\tfor (const regExp of parserRegExps) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (regExp.test(parser)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsettings.validate = Validate.on;\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (settings.validate !== Validate.on && parserOptions !== undefined && typeof eslintConfig.parserOptions?.parser === 'string') {\n\t\t\t\t\t\t\t\t\t\t\tconst eslintConfigParserOptionsParser = normalizePath(eslintConfig.parserOptions.parser);\n\t\t\t\t\t\t\t\t\t\t\tfor (const regExp of parserOptions.regExps) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (regExp.test(parser) && (\n\t\t\t\t\t\t\t\t\t\t\t\t\tparserOptions.parsers.has(eslintConfig.parserOptions.parser) ||\n\t\t\t\t\t\t\t\t\t\t\tparserOptions.parserRegExps !== undefined && parserOptions.parserRegExps.some(parserRegExp => parserRegExp.test(eslintConfigParserOptionsParser))\n\t\t\t\t\t\t\t\t\t\t\t\t)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsettings.validate = Validate.on;\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (settings.validate !== Validate.on && Array.isArray(eslintConfig.plugins) && eslintConfig.plugins.length > 0 && pluginName !== undefined) {\n\t\t\t\t\t\t\t\t\t\tfor (const name of eslintConfig.plugins) {\n\t\t\t\t\t\t\t\t\t\t\tif (name === pluginName) {\n\t\t\t\t\t\t\t\t\t\t\t\tsettings.validate = Validate.on;\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (settings.validate === Validate.off) {\n\t\t\t\t\t\tconst params: ProbeFailedParams = { textDocument: { uri: document.uri } };\n\t\t\t\t\t\tvoid connection.sendRequest(ProbeFailedRequest.type, params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (settings.validate === Validate.on) {\n\t\t\t\t\tsettings.silent = false;\n\t\t\t\t\tif (settings.format && TextDocumentSettings.hasLibrary(settings) && !formatterRegistrations.has(uri)) {\n\t\t\t\t\t\tconst Uri = URI.parse(uri);\n\t\t\t\t\t\tconst isFile = Uri.scheme === 'file';\n\t\t\t\t\t\tlet pattern: string = isFile\n\t\t\t\t\t\t\t? Uri.fsPath.replace(/\\\\/g, '/')\n\t\t\t\t\t\t\t: Uri.fsPath;\n\t\t\t\t\t\tpattern = pattern.replace(/[\\[\\]\\{\\}]/g, '?');\n\n\t\t\t\t\t\tconst filter: DocumentFilter = { scheme: Uri.scheme, pattern: pattern };\n\t\t\t\t\t\tconst options: DocumentFormattingRegistrationOptions = { documentSelector: [filter] };\n\t\t\t\t\t\tif (!isFile) {\n\t\t\t\t\t\t\tformatterRegistrations.set(uri, connection.client.register(DocumentFormattingRequest.type, options));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst filePath = inferFilePath(uri, settings.useRealpaths)!;\n\t\t\t\t\t\t\tawait ESLint.withClass(async (eslintClass) => {\n\t\t\t\t\t\t\t\tif (!await eslintClass.isPathIgnored(filePath)) {\n\t\t\t\t\t\t\t\t\tformatterRegistrations.set(uri, connection.client.register(DocumentFormattingRequest.type, options));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, settings);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn settings;\n\t\t\t}, () => {\n\t\t\t\tsettings.validate = Validate.off;\n\t\t\t\tif (!settings.silent) {\n\t\t\t\t\tvoid connection.sendRequest(NoESLintLibraryRequest.type, { source: { uri: document.uri } });\n\t\t\t\t}\n\t\t\t\treturn settings;\n\t\t\t});\n\t\t});\n\t\tdocument2Settings.set(uri, resultPromise);\n\t\treturn resultPromise;\n\t}\n\n\texport async function newClass(library: ESLintModule, newOptions: ESLintClassOptions | CLIOptions, settings: TextDocumentSettings): Promise<ESLintClass> {\n\t\t// Since ESLint version 8.57 we have a dedicated loadESLint function\n\t\t// which takes care of loading the right ESLint class. We available\n\t\t// we use it.\n\t\tif (ESLintModule.hasLoadESLint(library)) {\n\t\t\treturn new (await library.loadESLint({ useFlatConfig: settings.useFlatConfig }))(newOptions);\n\t\t}\n\t\t// If we have version 7 where we have both ESLint class and CLIEngine we only\n\t\t// use the ESLint class if a corresponding setting (useESLintClass) is set.\n\t\tif (ESLintModule.hasESLintClass(library) && settings.useESLintClass) {\n\t\t\treturn new library.ESLint(newOptions);\n\t\t}\n\t\tif (ESLintModule.hasCLIEngine(library)) {\n\t\t\treturn new ESLintClassEmulator(new library.CLIEngine(newOptions));\n\t\t}\n\t\treturn new library.ESLint(newOptions);\n\t}\n\n\texport async function withClass<T>(func: (eslintClass: ESLintClass) => Promise<T>, settings: TextDocumentSettings & { library: ESLintModule }, options?: ESLintClassOptions | CLIOptions): Promise<T> {\n\t\tconst newOptions: ESLintClassOptions | CLIOptions = options === undefined\n\t\t\t? Object.assign(Object.create(null), settings.options)\n\t\t\t: Object.assign(Object.create(null), settings.options, options);\n\n\t\tconst cwd = process.cwd();\n\t\ttry {\n\t\t\tif (settings.workingDirectory) {\n\t\t\t\t// A lot of libs are sensitive to drive letter casing and assume a\n\t\t\t\t// upper case drive letter. Make sure we support that correctly.\n\t\t\t\tconst newCWD = normalizeWorkingDirectory(settings.workingDirectory.directory);\n\t\t\t\tnewOptions.cwd = newCWD;\n\t\t\t\tif (settings.workingDirectory['!cwd'] !== true && fs.existsSync(newCWD)) {\n\t\t\t\t\tprocess.chdir(newCWD);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst eslintClass = await newClass(settings.library, newOptions, settings);\n\t\t\t// We need to await the result to ensure proper execution of the\n\t\t\t// finally block.\n\t\t\treturn await func(eslintClass);\n\t\t} finally {\n\t\t\tif (cwd !== process.cwd()) {\n\t\t\t\tprocess.chdir(cwd);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction normalizeWorkingDirectory(value: string): string {\n\t\tconst result = normalizeDriveLetter(value);\n\t\tif (result.length === 0) {\n\t\t\treturn result;\n\t\t}\n\t\treturn result[result.length - 1] === path.sep\n\t\t\t? result.substring(0, result.length - 1)\n\t\t\t: result;\n\t}\n\n\texport function getFilePath(document: TextDocument | undefined, settings: TextDocumentSettings): string | undefined {\n\t\tif (document === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst uri = URI.parse(document.uri);\n\t\tif (uri.scheme !== 'file') {\n\t\t\tif (settings.workspaceFolder !== undefined) {\n\t\t\t\tconst ext = LanguageDefaults.getExtension(document.languageId);\n\t\t\t\tconst workspacePath = inferFilePath(settings.workspaceFolder.uri, settings.useRealpaths);\n\t\t\t\tif (workspacePath !== undefined && ext !== undefined) {\n\t\t\t\t\treturn path.join(workspacePath, `test.${ext}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t} else {\n\t\t\treturn inferFilePath(uri, settings.useRealpaths);\n\t\t}\n\t}\n\n\tconst validFixTypes = new Set<string>(['problem', 'suggestion', 'layout', 'directive']);\n\texport async function validate(document: TextDocument, settings: TextDocumentSettings & { library: ESLintModule }): Promise<Diagnostic[]> {\n\t\tconst newOptions: CLIOptions = Object.assign(Object.create(null), settings.options);\n\t\tlet fixTypes: Set<string> | undefined = undefined;\n\t\tif (Array.isArray(newOptions.fixTypes) && newOptions.fixTypes.length > 0) {\n\t\t\tfixTypes = new Set();\n\t\t\tfor (const item of newOptions.fixTypes) {\n\t\t\t\tif (validFixTypes.has(item)) {\n\t\t\t\t\tfixTypes.add(item);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (fixTypes.size === 0) {\n\t\t\t\tfixTypes = undefined;\n\t\t\t}\n\t\t}\n\n\t\tconst content = document.getText();\n\t\tconst uri = document.uri;\n\t\tconst file = getFilePath(document, settings);\n\n\t\treturn withClass(async (eslintClass) => {\n\t\t\tCodeActions.remove(uri);\n\t\t\tconst reportResults: ESLintDocumentReport[] = await eslintClass.lintText(content, { filePath: file, warnIgnored: settings.onIgnoredFiles !== ESLintSeverity.off });\n\t\t\tRuleMetaData.capture(eslintClass, reportResults);\n\t\t\tconst diagnostics: Diagnostic[] = [];\n\t\t\tif (reportResults && Array.isArray(reportResults) && reportResults.length > 0) {\n\t\t\t\tconst docReport = reportResults[0];\n\t\t\t\tif (docReport.messages && Array.isArray(docReport.messages)) {\n\t\t\t\t\tdocReport.messages.forEach((problem) => {\n\t\t\t\t\t\tif (problem) {\n\t\t\t\t\t\t\tconst [diagnostic, override] = Diagnostics.create(settings, problem, document);\n\t\t\t\t\t\t\tif (!(override === RuleSeverity.off || (settings.quiet && (diagnostic.severity === DiagnosticSeverity.Warning || diagnostic.severity === DiagnosticSeverity.Information)))) {\n\t\t\t\t\t\t\t\tdiagnostics.push(diagnostic);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (fixTypes !== undefined && problem.ruleId !== undefined && problem.fix !== undefined) {\n\t\t\t\t\t\t\t\tconst type = RuleMetaData.getType(problem.ruleId);\n\t\t\t\t\t\t\t\tif (type !== undefined && fixTypes.has(type)) {\n\t\t\t\t\t\t\t\t\tCodeActions.record(document, diagnostic, problem);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (RuleMetaData.isUnusedDisableDirectiveProblem(problem)) {\n\t\t\t\t\t\t\t\t\tproblem.ruleId = RuleMetaData.unusedDisableDirectiveId;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tCodeActions.record(document, diagnostic, problem);\n\t\t\t\t\t\t\t}\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\treturn diagnostics;\n\t\t}, settings);\n\t}\n\n\tfunction trace(message: string, verbose?: string): void {\n\t\tconnection.tracer.log(message, verbose);\n\t}\n\n\t/**\n\t * Global paths for the different package managers\n\t */\n\tnamespace GlobalPaths {\n\t\tconst globalPaths: Record<string, { cache: string | undefined; get(): string | undefined }> = {\n\t\t\tyarn: {\n\t\t\t\tcache: undefined,\n\t\t\t\tget(): string | undefined {\n\t\t\t\t\treturn Files.resolveGlobalYarnPath(trace);\n\t\t\t\t}\n\t\t\t},\n\t\t\tnpm: {\n\t\t\t\tcache: undefined,\n\t\t\t\tget(): string | undefined {\n\t\t\t\t\treturn Files.resolveGlobalNodePath(trace);\n\t\t\t\t}\n\t\t\t},\n\t\t\tpnpm: {\n\t\t\t\tcache: undefined,\n\t\t\t\tget(): string {\n\t\t\t\t\tconst pnpmPath = execSync('pnpm root -g').toString().trim();\n\t\t\t\t\treturn pnpmPath;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\texport function get(packageManager: PackageManagers): string | undefined {\n\t\t\tconst pm = globalPaths[packageManager];\n\t\t\tif (pm) {\n\t\t\t\tif (pm.cache === undefined) {\n\t\t\t\t\tpm.cache = pm.get();\n\t\t\t\t}\n\t\t\t\treturn pm.cache;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\texport function findWorkingDirectory(workspaceFolder: string, file: string | undefined): [string, boolean] {\n\t\tif (file === undefined || isUNC(file)) {\n\t\t\treturn [workspaceFolder, false];\n\t\t}\n\t\t// Don't probe for something in node modules folder.\n\t\tif (file.indexOf(`${path.sep}node_modules${path.sep}`) !== -1) {\n\t\t\treturn [workspaceFolder, false];\n\t\t}\n\n\t\tlet result: string = workspaceFolder;\n\t\tlet flatConfig: boolean = false;\n\t\tlet directory: string | undefined = path.dirname(file);\n\t\touter: while (directory !== undefined && directory.startsWith(workspaceFolder)) {\n\t\t\tfor (const { fileName, isRoot, isFlatConfig } of projectFolderIndicators) {\n\t\t\t\tif (fs.existsSync(path.join(directory, fileName))) {\n\t\t\t\t\tresult = directory;\n\t\t\t\t\tflatConfig = isFlatConfig;\n\t\t\t\t\tif (isRoot) {\n\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst parent = path.dirname(directory);\n\t\t\tdirectory = parent !== directory ? parent : undefined;\n\t\t}\n\t\treturn [result, flatConfig];\n\t}\n\n\texport namespace ErrorHandlers {\n\n\t\texport const single: ((error: any, document: TextDocument, library: ESLintModule, settings: TextDocumentSettings) => Status | undefined)[] = [\n\t\t\ttryHandleNoConfig,\n\t\t\ttryHandleConfigError,\n\t\t\ttryHandleMissingModule,\n\t\t\tshowErrorMessage\n\t\t];\n\n\t\texport function getMessage(err: any, document: TextDocument): string {\n\t\t\tlet result: string | undefined = undefined;\n\t\t\tif (typeof err.message === 'string' || err.message instanceof String) {\n\t\t\t\tresult = <string>err.message;\n\t\t\t\tresult = result.replace(/\\r?\\n/g, ' ');\n\t\t\t\tif (/^CLI: /.test(result)) {\n\t\t\t\t\tresult = result.substr(5);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult = `An unknown error occurred while validating document: ${document.uri}`;\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\n\t\tconst noConfigReported: Map<string, ESLintModule> = new Map<string, ESLintModule>();\n\n\t\texport function clearNoConfigReported(): void {\n\t\t\tnoConfigReported.clear();\n\t\t}\n\n\t\tfunction tryHandleNoConfig(error: any, document: TextDocument, library: ESLintModule): Status | undefined {\n\t\t\tif (!ESLintError.isNoConfigFound(error)) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (!noConfigReported.has(document.uri)) {\n\t\t\t\tconnection.sendRequest(\n\t\t\t\t\tNoConfigRequest.type,\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: getMessage(error, document),\n\t\t\t\t\t\tdocument: {\n\t\t\t\t\t\t\turi: document.uri\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t).then(undefined, () => { });\n\t\t\t\tnoConfigReported.set(document.uri, library);\n\t\t\t}\n\t\t\treturn Status.warn;\n\t\t}\n\n\t\tconst configErrorReported: Map<string, { library: ESLintModule; settings: TextDocumentSettings }> = new Map();\n\n\t\texport function getConfigErrorReported(key: string): { library: ESLintModule; settings: TextDocumentSettings } | undefined {\n\t\t\treturn configErrorReported.get(key);\n\t\t}\n\n\t\texport function removeConfigErrorReported(key: string): boolean {\n\t\t\treturn configErrorReported.delete(key);\n\t\t}\n\n\t\tfunction tryHandleConfigError(error: any, document: TextDocument, library: ESLintModule, settings: TextDocumentSettings): Status | undefined {\n\t\t\tif (!error.message) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tfunction handleFileName(filename: string): Status {\n\t\t\t\tif (!configErrorReported.has(filename)) {\n\t\t\t\t\tconnection.console.error(getMessage(error, document));\n\t\t\t\t\tif (!documents.get(URI.file(filename).toString())) {\n\t\t\t\t\t\tconnection.window.showInformationMessage(getMessage(error, document));\n\t\t\t\t\t}\n\t\t\t\t\tconfigErrorReported.set(filename, { library, settings });\n\t\t\t\t}\n\t\t\t\treturn Status.warn;\n\t\t\t}\n\n\t\t\tlet matches = /Cannot read config file:\\s+(.*)\\nError:\\s+(.*)/.exec(error.message);\n\t\t\tif (matches && matches.length === 3) {\n\t\t\t\treturn handleFileName(matches[1]);\n\t\t\t}\n\n\t\t\tmatches = /(.*):\\n\\s*Configuration for rule \\\"(.*)\\\" is /.exec(error.message);\n\t\t\tif (matches && matches.length === 3) {\n\t\t\t\treturn handleFileName(matches[1]);\n\t\t\t}\n\n\t\t\tmatches = /Cannot find module '([^']*)'\\nReferenced from:\\s+(.*)/.exec(error.message);\n\t\t\tif (matches && matches.length === 3) {\n\t\t\t\treturn handleFileName(matches[2]);\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst missingModuleReported: Map<string, ESLintModule> = new Map<string, ESLintModule>();\n\n\t\texport function clearMissingModuleReported(): void {\n\t\t\tmissingModuleReported.clear();\n\t\t}\n\n\t\tfunction tryHandleMissingModule(error: any, document: TextDocument, library: ESLintModule, settings: TextDocumentSettings): Status | undefined {\n\t\t\tif (!error.message) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tfunction handleMissingModule(plugin: string, module: string, error: ESLintError): Status {\n\t\t\t\tif (!missingModuleReported.has(plugin)) {\n\t\t\t\t\tconst fsPath = inferFilePath(document, settings.useRealpaths);\n\t\t\t\t\tmissingModuleReported.set(plugin, library);\n\t\t\t\t\tif (error.messageTemplate === 'plugin-missing') {\n\t\t\t\t\t\tconnection.console.error([\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t`${error.message.toString()}`,\n\t\t\t\t\t\t\t`Happened while validating ${fsPath ? fsPath : document.uri}`,\n\t\t\t\t\t\t\t`This can happen for a couple of reasons:`,\n\t\t\t\t\t\t\t`1. The plugin name is spelled incorrectly in an ESLint configuration file (e.g. .eslintrc).`,\n\t\t\t\t\t\t\t`2. If ESLint is installed globally, then make sure ${module} is installed globally as well.`,\n\t\t\t\t\t\t\t`3. If ESLint is installed locally, then ${module} isn't installed correctly.`,\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t`Consider running eslint --debug ${fsPath ? fsPath : document.uri} from a terminal to obtain a trace about the configuration files used.`\n\t\t\t\t\t\t].join('\\n'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconnection.console.error([\n\t\t\t\t\t\t\t`${error.message.toString()}`,\n\t\t\t\t\t\t\t`Happened while validating ${fsPath ? fsPath : document.uri}`\n\t\t\t\t\t\t].join('\\n'));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn Status.warn;\n\t\t\t}\n\n\t\t\tconst matches = /Failed to load plugin (.*): Cannot find module (.*)/.exec(error.message);\n\t\t\tif (matches && matches.length === 3) {\n\t\t\t\treturn handleMissingModule(matches[1], matches[2], error);\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tfunction showErrorMessage(error: any, document: TextDocument): Status {\n\t\t\tif (Is.string(error.stack)) {\n\t\t\t\tconnection.console.error('An unexpected error occurred:');\n\t\t\t\tconnection.console.error(error.stack);\n\t\t\t} else {\n\t\t\t\tconnection.console.error(`An unexpected error occurred: ${getMessage(error, document)}.`);\n\t\t\t}\n\t\t\treturn Status.error;\n\t\t}\n\t}\n}\n","/* --------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n * ------------------------------------------------------------------------------------------ */\r\nimport * as path from 'path';\r\nimport { EOL } from 'os';\r\n\r\nimport {\r\n\tcreateConnection, Diagnostic, Range, TextDocuments, TextDocumentSyncKind, TextEdit, Command, WorkspaceChange, VersionedTextDocumentIdentifier,\r\n\tDidChangeConfigurationNotification, CodeAction, CodeActionKind, Position, TextDocumentEdit, Message as LMessage, ResponseMessage as LResponseMessage,\r\n\tuinteger, ServerCapabilities, NotebookDocuments, ProposedFeatures, ClientCapabilities, type FullDocumentDiagnosticReport, DocumentDiagnosticReportKind\r\n} from 'vscode-languageserver/node';\r\n\r\nimport { TextDocument } from 'vscode-languageserver-textdocument';\r\nimport { URI } from 'vscode-uri';\r\n\r\nimport {\r\n\tExitCalled, OpenESLintDocRequest, Status, StatusNotification\r\n} from './shared/customMessages';\r\n\r\nimport { Validate, CodeActionsOnSaveMode } from './shared/settings';\r\n\r\nimport {\r\n\tCodeActions, ESLint, ESLintClassOptions, FixableProblem, Fixes, Problem, RuleMetaData, RuleSeverities,\r\n\tSaveRuleConfigs, SuggestionsProblem, TextDocumentSettings,\r\n} from './eslint';\r\n\r\nimport { getFileSystemPath, getUri, isUNC } from './paths';\r\nimport { stringDiff } from './diff';\r\nimport LanguageDefaults from './languageDefaults';\r\n\r\n// The connection to use. Code action requests get removed from the queue if\r\n// canceled.\r\nconst connection: ProposedFeatures.Connection = createConnection(ProposedFeatures.all, {\r\n\tconnectionStrategy: {\r\n\t\tcancelUndispatched: (message: LMessage) => {\r\n\t\t// Code actions can safely be cancel on request.\r\n\t\t\tif (LMessage.isRequest(message) && message.method === 'textDocument/codeAction') {\r\n\t\t\t\tconst response: LResponseMessage = {\r\n\t\t\t\t\tjsonrpc: message.jsonrpc,\r\n\t\t\t\t\tid: message.id,\r\n\t\t\t\t\tresult: null\r\n\t\t\t\t};\r\n\t\t\t\treturn response;\r\n\t\t\t}\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t},\r\n\tmaxParallelism: 1\r\n});\r\n\r\n// Set when handling the initialize request.\r\nlet clientCapabilities: ClientCapabilities;\r\n\r\nconst documents: TextDocuments<TextDocument> = new TextDocuments(TextDocument);\r\n// The notebooks manager is using the normal document manager for the cell documents.\r\n// So all validating will work out of the box since normal document events will fire.\r\nconst notebooks = new NotebookDocuments(documents);\r\n\r\n// This makes loading work in a plain NodeJS and a WebPacked environment\r\ndeclare const __webpack_require__: typeof require;\r\ndeclare const __non_webpack_require__: typeof require;\r\nfunction loadNodeModule<T>(moduleName: string): T | undefined {\r\n\tconst r = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require;\r\n\ttry {\r\n\t\treturn r(moduleName);\r\n\t} catch (err: any) {\r\n\t\tif (err.stack) {\r\n\t\t\tconnection.console.error(err.stack.toString());\r\n\t\t}\r\n\t}\r\n\treturn undefined;\r\n}\r\n\r\n// Some plugins call exit which will terminate the server.\r\n// To not loose the information we sent such a behavior\r\n// to the client.\r\nconst nodeExit = process.exit;\r\nprocess.exit = ((code?: number): void => {\r\n\tconst stack = new Error('stack');\r\n\tvoid connection.sendNotification(ExitCalled.type, [code ? code : 0, stack.stack]);\r\n\tsetTimeout(() => {\r\n\t\tnodeExit(code);\r\n\t}, 1000);\r\n}) as any;\r\n\r\n// Handling of uncaught exceptions hitting the event loop.\r\nprocess.on('uncaughtException', (error: any) => {\r\n\tlet message: string | undefined;\r\n\tif (error) {\r\n\t\tif (typeof error.stack === 'string') {\r\n\t\t\tmessage = error.stack;\r\n\t\t} else if (typeof error.message === 'string') {\r\n\t\t\tmessage = error.message;\r\n\t\t} else if (typeof error === 'string') {\r\n\t\t\tmessage = error;\r\n\t\t}\r\n\t\tif (message === undefined || message.length === 0) {\r\n\t\t\ttry {\r\n\t\t\t\tmessage = JSON.stringify(error, undefined, 4);\r\n\t\t\t} catch (e) {\r\n\t\t\t\t// Should not happen.\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t// eslint-disable-next-line no-console\r\n\tconsole.error('Uncaught exception received.');\r\n\tif (message) {\r\n\t\t// eslint-disable-next-line no-console\r\n\t\tconsole.error(message);\r\n\t}\r\n});\r\n\r\n/**\r\n * Infers a file path for a given URI / TextDocument. If the document is a notebook\r\n * cell document it uses the file path from the notebook with a corresponding\r\n * extension (e.g. TypeScript -> ts)\r\n */\r\nfunction inferFilePath(documentOrUri: string | TextDocument | URI | undefined, useRealpaths: boolean): string | undefined {\r\n\tif (!documentOrUri) {\r\n\t\treturn undefined;\r\n\t}\r\n\tconst uri = getUri(documentOrUri);\r\n\tif (uri.scheme === 'file') {\r\n\t\treturn getFileSystemPath(uri, useRealpaths);\r\n\t}\r\n\r\n\tconst notebookDocument = notebooks.findNotebookDocumentForCell(uri.toString());\r\n\tif (notebookDocument !== undefined ) {\r\n\t\tconst notebookUri = URI.parse(notebookDocument.uri);\r\n\t\tif (notebookUri.scheme === 'file') {\r\n\t\t\tconst filePath = getFileSystemPath(uri, useRealpaths);\r\n\t\t\tif (filePath !== undefined) {\r\n\t\t\t\tconst textDocument = documents.get(uri.toString());\r\n\t\t\t\tif (textDocument !== undefined) {\r\n\t\t\t\t\tconst extension = LanguageDefaults.getExtension(textDocument.languageId);\r\n\t\t\t\t\tif (extension !== undefined) {\r\n\t\t\t\t\t\tconst extname = path.extname(filePath);\r\n\t\t\t\t\t\tif (extname.length === 0 && filePath[0] === '.') {\r\n\t\t\t\t\t\t\treturn `${filePath}.${extension}`;\r\n\t\t\t\t\t\t} else if (extname.length > 0 && extname !== extension) {\r\n\t\t\t\t\t\t\treturn `${filePath.substring(0, filePath.length - extname.length)}.${extension}`;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn undefined;\r\n}\r\n\r\nESLint.initialize(connection, documents, inferFilePath, loadNodeModule);\r\nSaveRuleConfigs.inferFilePath = inferFilePath;\r\n\r\ndocuments.onDidClose(async (event) => {\r\n\tconst document = event.document;\r\n\tconst uri = document.uri;\r\n\tESLint.removeSettings(uri);\r\n\tSaveRuleConfigs.remove(uri);\r\n\tCodeActions.remove(uri);\r\n\tESLint.unregisterAsFormatter(document);\r\n});\r\n\r\nfunction environmentChanged() {\r\n\tESLint.clearSettings();\r\n\tRuleSeverities.clear();\r\n\tSaveRuleConfigs.clear();\r\n\tESLint.clearFormatters();\r\n\tconnection.languages.diagnostics.refresh().catch(() => {\r\n\t\tconnection.console.error('Failed to refresh diagnostics');\r\n\t});\r\n}\r\n\r\nnamespace CommandIds {\r\n\texport const applySingleFix: string = 'eslint.applySingleFix';\r\n\texport const applySuggestion: string = 'eslint.applySuggestion';\r\n\texport const applySameFixes: string = 'eslint.applySameFixes';\r\n\texport const applyAllFixes: string = 'eslint.applyAllFixes';\r\n\texport const applyDisableLine: string = 'eslint.applyDisableLine';\r\n\texport const applyDisableFile: string = 'eslint.applyDisableFile';\r\n\texport const openRuleDoc: string = 'eslint.openRuleDoc';\r\n}\r\n\r\nconnection.onInitialize((params, _cancel, progress) => {\r\n\tprogress.begin('Initializing ESLint Server');\r\n\tconst syncKind: TextDocumentSyncKind = TextDocumentSyncKind.Incremental;\r\n\tclientCapabilities = params.capabilities;\r\n\tprogress.done();\r\n\tconst capabilities: ServerCapabilities = {\r\n\t\ttextDocumentSync: {\r\n\t\t\topenClose: true,\r\n\t\t\tchange: syncKind,\r\n\t\t\twillSaveWaitUntil: false,\r\n\t\t\tsave: {\r\n\t\t\t\tincludeText: false\r\n\t\t\t}\r\n\t\t},\r\n\t\tworkspace: {\r\n\t\t\tworkspaceFolders: {\r\n\t\t\t\tsupported: true\r\n\t\t\t}\r\n\t\t},\r\n\t\texecuteCommandProvider: {\r\n\t\t\tcommands: [\r\n\t\t\t\tCommandIds.applySingleFix,\r\n\t\t\t\tCommandIds.applySuggestion,\r\n\t\t\t\tCommandIds.applySameFixes,\r\n\t\t\t\tCommandIds.applyAllFixes,\r\n\t\t\t\tCommandIds.applyDisableLine,\r\n\t\t\t\tCommandIds.applyDisableFile,\r\n\t\t\t\tCommandIds.openRuleDoc,\r\n\t\t\t]\r\n\t\t},\r\n\t\tdiagnosticProvider: {\r\n\t\t\tidentifier: 'eslint',\r\n\t\t\tinterFileDependencies: false,\r\n\t\t\tworkspaceDiagnostics: false\r\n\t\t}\r\n\t};\r\n\r\n\tif (clientCapabilities.textDocument?.codeAction?.codeActionLiteralSupport?.codeActionKind.valueSet !== undefined) {\r\n\t\tcapabilities.codeActionProvider = {\r\n\t\t\tcodeActionKinds: [CodeActionKind.QuickFix, `${CodeActionKind.SourceFixAll}.eslint`]\r\n\t\t};\r\n\t}\r\n\r\n\treturn { capabilities };\r\n});\r\n\r\nconnection.onInitialized(() => {\r\n\tif (clientCapabilities.workspace?.didChangeConfiguration?.dynamicRegistration === true) {\r\n\t\tconnection.onDidChangeConfiguration((_params) => {\r\n\t\t\tenvironmentChanged();\r\n\t\t});\r\n\t\tvoid connection.client.register(DidChangeConfigurationNotification.type, undefined);\r\n\t}\r\n\r\n\tif (clientCapabilities.workspace?.workspaceFolders === true) {\r\n\t\tconnection.workspace.onDidChangeWorkspaceFolders((_params) => {\r\n\t\t\tenvironmentChanged();\r\n\t\t});\r\n\t}\r\n});\r\n\r\n\r\nconst emptyDiagnosticResult: FullDocumentDiagnosticReport = {\r\n\tkind: DocumentDiagnosticReportKind.Full,\r\n\titems: []\r\n};\r\n\r\nconnection.languages.diagnostics.on(async (params) => {\r\n\tconst document = documents.get(params.textDocument.uri);\r\n\tif (document === undefined) {\r\n\t\treturn emptyDiagnosticResult;\r\n\t}\r\n\r\n\tconst settings = await ESLint.resolveSettings(document);\r\n\tif (settings.validate !== Validate.on || !TextDocumentSettings.hasLibrary(settings)) {\r\n\t\treturn emptyDiagnosticResult;\r\n\t}\r\n\ttry {\r\n\t\tconst start = Date.now();\r\n\t\tconst diagnostics = await ESLint.validate(document, settings);\r\n\t\tconst timeTaken = Date.now() - start;\r\n\t\tvoid connection.sendNotification(StatusNotification.type, { uri: document.uri, state: Status.ok, validationTime: timeTaken });\r\n\t\treturn {\r\n\t\t\tkind: DocumentDiagnosticReportKind.Full,\r\n\t\t\titems: diagnostics\r\n\t\t};\r\n\t} catch (err) {\r\n\t\t// if an exception has occurred while validating clear all errors to ensure\r\n\t\t// we are not showing any stale once\r\n\t\tif (!settings.silent) {\r\n\t\t\tlet status: Status | undefined = undefined;\r\n\t\t\tfor (const handler of ESLint.ErrorHandlers.single) {\r\n\t\t\t\tstatus = handler(err, document, settings.library, settings);\r\n\t\t\t\tif (status) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tstatus = status || Status.error;\r\n\t\t\tvoid connection.sendNotification(StatusNotification.type, { uri: document.uri, state: status });\r\n\t\t} else {\r\n\t\t\tconnection.console.info(ESLint.ErrorHandlers.getMessage(err, document));\r\n\t\t\tvoid connection.sendNotification(StatusNotification.type, { uri: document.uri, state: Status.ok });\r\n\t\t}\r\n\t\treturn emptyDiagnosticResult;\r\n\t}\r\n});\r\n\r\nconnection.onDidChangeWatchedFiles(async (params) => {\r\n\t// A .eslintrc has change. No smartness here.\r\n\t// Simply revalidate all file.\r\n\tRuleMetaData.clear();\r\n\tESLint.ErrorHandlers.clearNoConfigReported();\r\n\tESLint.ErrorHandlers.clearMissingModuleReported();\r\n\tESLint.clearSettings(); // config files can change plugins and parser.\r\n\tRuleSeverities.clear();\r\n\tSaveRuleConfigs.clear();\r\n\r\n\tawait Promise.all(params.changes.map(async (change) => {\r\n\t\tconst fsPath = inferFilePath(change.uri, false);\r\n\t\tif (fsPath === undefined || fsPath.length === 0 || isUNC(fsPath)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst dirname = path.dirname(fsPath);\r\n\t\tif (dirname) {\r\n\t\t\tconst data = ESLint.ErrorHandlers.getConfigErrorReported(fsPath);\r\n\t\t\tif (data !== undefined) {\r\n\t\t\t\tconst eslintClass = await ESLint.newClass(data.library, {}, data.settings);\r\n\t\t\t\ttry {\r\n\t\t\t\t\tawait eslintClass.lintText('', { filePath: path.join(dirname, '___test___.js') });\r\n\t\t\t\t\tESLint.ErrorHandlers.removeConfigErrorReported(fsPath);\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\tconnection.languages.diagnostics.refresh().catch(() => {\r\n\t\tconnection.console.error('Failed to refresh diagnostics');\r\n\t});\r\n});\r\n\r\ntype RuleCodeActions = {\r\n\tfixes: CodeAction[];\r\n\tsuggestions: CodeAction[];\r\n\tdisable?: CodeAction;\r\n\tfixAll?: CodeAction;\r\n\tdisableFile?: CodeAction;\r\n\tshowDocumentation?: CodeAction;\r\n};\r\n\r\nclass CodeActionResult {\r\n\tprivate _actions: Map<string, RuleCodeActions>;\r\n\tprivate _fixAll: CodeAction[] | undefined;\r\n\r\n\tpublic constructor() {\r\n\t\tthis._actions = new Map();\r\n\t}\r\n\r\n\tpublic get(ruleId: string): RuleCodeActions {\r\n\t\tlet result: RuleCodeActions | undefined = this._actions.get(ruleId);\r\n\t\tif (result === undefined) {\r\n\t\t\tresult = { fixes: [], suggestions: [] };\r\n\t\t\tthis._actions.set(ruleId, result);\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tpublic get fixAll() {\r\n\t\tif (this._fixAll === undefined) {\r\n\t\t\tthis._fixAll = [];\r\n\t\t}\r\n\t\treturn this._fixAll;\r\n\t}\r\n\r\n\tpublic all(): CodeAction[] {\r\n\t\tconst result: CodeAction[] = [];\r\n\t\tfor (const actions of this._actions.values()) {\r\n\t\t\tresult.push(...actions.fixes);\r\n\t\t\tresult.push(...actions.suggestions);\r\n\t\t\tif (actions.disable) {\r\n\t\t\t\tresult.push(actions.disable);\r\n\t\t\t}\r\n\t\t\tif (actions.fixAll) {\r\n\t\t\t\tresult.push(actions.fixAll);\r\n\t\t\t}\r\n\t\t\tif (actions.disableFile) {\r\n\t\t\t\tresult.push(actions.disableFile);\r\n\t\t\t}\r\n\t\t\tif (actions.showDocumentation) {\r\n\t\t\t\tresult.push(actions.showDocumentation);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._fixAll !== undefined) {\r\n\t\t\tresult.push(...this._fixAll);\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tpublic get length(): number {\r\n\t\tlet result: number = 0;\r\n\t\tfor (const actions of this._actions.values()) {\r\n\t\t\tresult += actions.fixes.length;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n}\r\n\r\nclass Changes {\r\n\r\n\tprivate readonly values: Map<string, WorkspaceChange>;\r\n\tprivate uri: string | undefined;\r\n\tprivate version: number | undefined;\r\n\r\n\tconstructor() {\r\n\t\tthis.values = new Map();\r\n\t\tthis.uri = undefined;\r\n\t\tthis.version = undefined;\r\n\t}\r\n\r\n\tpublic clear(textDocument?: TextDocument): void {\r\n\t\tif (textDocument === undefined) {\r\n\t\t\tthis.uri = undefined;\r\n\t\t\tthis.version = undefined;\r\n\t\t} else {\r\n\t\t\tthis.uri = textDocument.uri;\r\n\t\t\tthis.version = textDocument.version;\r\n\t\t}\r\n\t\tthis.values.clear();\r\n\t}\r\n\r\n\tpublic isUsable(uri: string, version: number): boolean {\r\n\t\treturn this.uri === uri && this.version === version;\r\n\t}\r\n\r\n\tpublic set(key: string, change: WorkspaceChange): void {\r\n\t\tthis.values.set(key, change);\r\n\t}\r\n\r\n\tpublic get(key: string): WorkspaceChange | undefined {\r\n\t\treturn this.values.get(key);\r\n\t}\r\n}\r\n\r\ninterface CommandParams extends VersionedTextDocumentIdentifier {\r\n\tversion: number;\r\n\truleId?: string;\r\n\tsequence?: number;\r\n}\r\n\r\nnamespace CommandParams {\r\n\texport function create(textDocument: TextDocument, ruleId?: string, sequence?: number): CommandParams {\r\n\t\treturn { uri: textDocument.uri, version: textDocument.version, ruleId, sequence };\r\n\t}\r\n\texport function hasRuleId(value: CommandParams): value is CommandParams & { ruleId: string } {\r\n\t\treturn value.ruleId !== undefined;\r\n\t}\r\n}\r\n\r\nconst changes = new Changes();\r\nconst ESLintSourceFixAll: string = `${CodeActionKind.SourceFixAll}.eslint`;\r\n\r\nconnection.onCodeAction(async (params) => {\r\n\tconst result: CodeActionResult = new CodeActionResult();\r\n\tconst uri = params.textDocument.uri;\r\n\tconst textDocument = documents.get(uri);\r\n\tif (textDocument === undefined) {\r\n\t\tchanges.clear(textDocument);\r\n\t\treturn result.all();\r\n\t}\r\n\r\n\tfunction createCodeAction(title: string, kind: string, commandId: string, arg: CommandParams, diagnostic?: Diagnostic): CodeAction {\r\n\t\tconst command = Command.create(title, commandId, arg);\r\n\t\tconst action = CodeAction.create(\r\n\t\t\ttitle,\r\n\t\t\tcommand,\r\n\t\t\tkind\r\n\t\t);\r\n\t\tif (diagnostic !== undefined) {\r\n\t\t\taction.diagnostics = [diagnostic];\r\n\t\t}\r\n\t\treturn action;\r\n\t}\r\n\r\n\tfunction getDisableRuleEditInsertionIndex(line: string, commentTags: string | [string, string]): number {\r\n\t\tlet charIndex = line.indexOf('--');\r\n\r\n\t\tif (charIndex < 0) {\r\n\t\t\tif (typeof commentTags === 'string') {\r\n\t\t\t\treturn line.length;\r\n\t\t\t} else { // commentTags is an array containing the block comment closing and opening tags\r\n\t\t\t\tcharIndex = line.indexOf(commentTags[1]);\r\n\t\t\t\twhile (charIndex > 0 && line[charIndex - 1] === ' ') {\r\n\t\t\t\t\tcharIndex--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\twhile (charIndex > 1 && line[charIndex - 1] === ' ') {\r\n\t\t\t\tcharIndex--;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn charIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Prefix characters with special meaning in comment markers with a backslash\r\n\t * See also: https://github.com/microsoft/vscode-eslint/issues/1610\r\n\t */\r\n\tfunction escapeStringRegexp(value: string) {\r\n\t\treturn value.replace(/[|{}\\\\()[\\]^$+*?.]/g, '\\\\$&');\r\n\t}\r\n\r\n\tfunction createDisableLineTextEdit(textDocument: TextDocument, editInfo: Problem, indentationText: string): TextEdit {\r\n\t\tconst lineComment = LanguageDefaults.getLineComment(textDocument.languageId);\r\n\t\tconst blockComment = LanguageDefaults.getBlockComment(textDocument.languageId);\r\n\r\n\t\t// If the concerned line is not the first line of the file\r\n\t\tif (editInfo.line - 1 > 0) {\r\n\t\t\t// Check previous line if there is a eslint-disable-next-line comment already present.\r\n\t\t\tconst prevLine = textDocument.getText(Range.create(Position.create(editInfo.line - 2, 0), Position.create(editInfo.line - 2, uinteger.MAX_VALUE)));\r\n\r\n\t\t\t// For consistency, we ignore the settings here and use the comment style from that\r\n\t\t\t// specific line.\r\n\t\t\tconst matchedLineDisable = new RegExp(`${escapeStringRegexp(lineComment)} eslint-disable-next-line`).test(prevLine);\r\n\t\t\tif (matchedLineDisable) {\r\n\t\t\t\tconst insertionIndex = getDisableRuleEditInsertionIndex(prevLine, lineComment);\r\n\t\t\t\treturn TextEdit.insert(Position.create(editInfo.line - 2, insertionIndex), `, ${editInfo.ruleId}`);\r\n\t\t\t}\r\n\r\n\t\t\tconst matchedBlockDisable = new RegExp(`${escapeStringRegexp(blockComment[0])} eslint-disable-next-line`).test(prevLine);\r\n\t\t\tif (matchedBlockDisable) {\r\n\t\t\t\tconst insertionIndex = getDisableRuleEditInsertionIndex(prevLine, blockComment);\r\n\t\t\t\treturn TextEdit.insert(Position.create(editInfo.line - 2, insertionIndex), `, ${editInfo.ruleId}`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// We're creating a new disabling comment. Use the comment style given in settings.\r\n\t\tconst commentStyle = settings.codeAction.disableRuleComment.commentStyle;\r\n\t\tlet disableRuleContent: string;\r\n\t\tif (commentStyle === 'block') {\r\n\t\t\tdisableRuleContent = `${indentationText}${blockComment[0]} eslint-disable-next-line ${editInfo.ruleId} ${blockComment[1]}${EOL}`;\r\n\t\t} else { // commentStyle === 'line'\r\n\t\t\tdisableRuleContent = `${indentationText}${lineComment} eslint-disable-next-line ${editInfo.ruleId}${EOL}`;\r\n\t\t}\r\n\r\n\t\treturn TextEdit.insert(Position.create(editInfo.line - 1, 0), disableRuleContent);\r\n\t}\r\n\r\n\tfunction createDisableSameLineTextEdit(textDocument: TextDocument, editInfo: Problem): TextEdit {\r\n\t\tconst lineComment = LanguageDefaults.getLineComment(textDocument.languageId);\r\n\t\tconst blockComment = LanguageDefaults.getBlockComment(textDocument.languageId);\r\n\t\tconst currentLine = textDocument.getText(Range.create(Position.create(editInfo.line - 1, 0), Position.create(editInfo.line - 1, uinteger.MAX_VALUE)));\r\n\t\tlet disableRuleContent: string;\r\n\t\tlet insertionIndex: number;\r\n\r\n\t\t// Check if there's already a disabling comment. If so, we ignore the settings here\r\n\t\t// and use the comment style from that specific line.\r\n\t\tconst matchedLineDisable = new RegExp(`${lineComment} eslint-disable-line`).test(currentLine);\r\n\t\tconst matchedBlockDisable = new RegExp(`${blockComment[0]} eslint-disable-line`).test(currentLine);\r\n\t\tif (matchedLineDisable) {\r\n\t\t\tdisableRuleContent = `, ${editInfo.ruleId}`;\r\n\t\t\tinsertionIndex = getDisableRuleEditInsertionIndex(currentLine, lineComment);\r\n\t\t} else if (matchedBlockDisable) {\r\n\t\t\tdisableRuleContent = `, ${editInfo.ruleId}`;\r\n\t\t\tinsertionIndex = getDisableRuleEditInsertionIndex(currentLine, blockComment);\r\n\t\t} else {\r\n\t\t\t// We're creating a new disabling comment.\r\n\t\t\tconst commentStyle = settings.codeAction.disableRuleComment.commentStyle;\r\n\t\t\tdisableRuleContent = commentStyle === 'line' ? ` ${lineComment} eslint-disable-line ${editInfo.ruleId}` : ` ${blockComment[0]} eslint-disable-line ${editInfo.ruleId} ${blockComment[1]}`;\r\n\t\t\tinsertionIndex = uinteger.MAX_VALUE;\r\n\t\t}\r\n\r\n\t\treturn TextEdit.insert(Position.create(editInfo.line - 1, insertionIndex), disableRuleContent);\r\n\t}\r\n\r\n\tfunction createDisableFileTextEdit(textDocument: TextDocument, editInfo: Problem): TextEdit {\r\n\t\t// If first line contains a shebang, insert on the next line instead.\r\n\t\tconst shebang = textDocument.getText(Range.create(Position.create(0, 0), Position.create(0, 2)));\r\n\t\tconst line = shebang === '#!' ? 1 : 0;\r\n\t\tconst block = LanguageDefaults.getBlockComment(textDocument.languageId);\r\n\t\treturn TextEdit.insert(Position.create(line, 0), `${block[0]} eslint-disable ${editInfo.ruleId} ${block[1]}${EOL}`);\r\n\t}\r\n\r\n\tfunction getLastEdit(array: FixableProblem[]): FixableProblem | undefined {\r\n\t\tconst length = array.length;\r\n\t\tif (length === 0) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\treturn array[length - 1];\r\n\t}\r\n\r\n\tconst settings = await ESLint.resolveSettings(textDocument);\r\n\r\n\t// The file is not validated at all or we couldn't load an eslint library for it.\r\n\tif (settings.validate !== Validate.on || !TextDocumentSettings.hasLibrary(settings)) {\r\n\t\treturn result.all();\r\n\t}\r\n\r\n\tconst problems = CodeActions.get(uri);\r\n\t// We validate on type and have no problems ==> nothing to fix.\r\n\tif (problems === undefined && settings.run === 'onType') {\r\n\t\treturn result.all();\r\n\t}\r\n\r\n\tconst only: string | undefined = params.context.only !== undefined && params.context.only.length > 0 ? params.context.only[0] : undefined;\r\n\tconst isSource = only === CodeActionKind.Source;\r\n\tconst isSourceFixAll = (only === ESLintSourceFixAll || only === CodeActionKind.SourceFixAll);\r\n\tif (isSourceFixAll || isSource) {\r\n\t\tif (isSourceFixAll) {\r\n\t\t\tconst textDocumentIdentifier: VersionedTextDocumentIdentifier = { uri: textDocument.uri, version: textDocument.version };\r\n\t\t\tconst edits = await computeAllFixes(textDocumentIdentifier, AllFixesMode.onSave);\r\n\t\t\tif (edits !== undefined) {\r\n\t\t\t\tresult.fixAll.push(CodeAction.create(\r\n\t\t\t\t\t`Fix all fixable ESLint issues`,\r\n\t\t\t\t\t{ documentChanges: [ TextDocumentEdit.create(textDocumentIdentifier, edits )]},\r\n\t\t\t\t\tESLintSourceFixAll\r\n\t\t\t\t));\r\n\t\t\t}\r\n\t\t} else if (isSource) {\r\n\t\t\tresult.fixAll.push(createCodeAction(\r\n\t\t\t\t`Fix all fixable ESLint issues`,\r\n\t\t\t\tCodeActionKind.Source,\r\n\t\t\t\tCommandIds.applyAllFixes,\r\n\t\t\t\tCommandParams.create(textDocument)\r\n\t\t\t));\r\n\t\t}\r\n\t\treturn result.all();\r\n\t}\r\n\r\n\tif (problems === undefined) {\r\n\t\treturn result.all();\r\n\t}\r\n\r\n\tconst fixes = new Fixes(problems);\r\n\tif (fixes.isEmpty()) {\r\n\t\treturn result.all();\r\n\t}\r\n\r\n\tlet documentVersion: number = -1;\r\n\tconst allFixableRuleIds: string[] = [];\r\n\tconst kind: CodeActionKind = only ?? CodeActionKind.QuickFix;\r\n\r\n\tfor (const editInfo of fixes.getScoped(params.context.diagnostics)) {\r\n\t\tdocumentVersion = editInfo.documentVersion;\r\n\t\tconst ruleId = editInfo.ruleId;\r\n\t\tallFixableRuleIds.push(ruleId);\r\n\r\n\t\tif (Problem.isFixable(editInfo)) {\r\n\t\t\tconst workspaceChange = new WorkspaceChange();\r\n\t\t\tworkspaceChange.getTextEditChange({ uri, version: documentVersion }).add(FixableProblem.createTextEdit(textDocument, editInfo));\r\n\t\t\tchanges.set(`${CommandIds.applySingleFix}:${ruleId}`, workspaceChange);\r\n\t\t\tconst action = createCodeAction(\r\n\t\t\t\teditInfo.label,\r\n\t\t\t\tkind,\r\n\t\t\t\tCommandIds.applySingleFix,\r\n\t\t\t\tCommandParams.create(textDocument, ruleId),\r\n\t\t\t\teditInfo.diagnostic\r\n\t\t\t);\r\n\t\t\taction.isPreferred = true;\r\n\t\t\tresult.get(ruleId).fixes.push(action);\r\n\t\t}\r\n\t\tif (Problem.hasSuggestions(editInfo)) {\r\n\t\t\teditInfo.suggestions.forEach((suggestion, suggestionSequence) => {\r\n\t\t\t\tconst workspaceChange = new WorkspaceChange();\r\n\t\t\t\tworkspaceChange.getTextEditChange({ uri, version: documentVersion }).add(SuggestionsProblem.createTextEdit(textDocument, suggestion));\r\n\t\t\t\tchanges.set(`${CommandIds.applySuggestion}:${ruleId}:${suggestionSequence}`, workspaceChange);\r\n\t\t\t\tconst action = createCodeAction(\r\n\t\t\t\t\t`${suggestion.desc} (${editInfo.ruleId})`,\r\n\t\t\t\t\tCodeActionKind.QuickFix,\r\n\t\t\t\t\tCommandIds.applySuggestion,\r\n\t\t\t\t\tCommandParams.create(textDocument, ruleId, suggestionSequence),\r\n\t\t\t\t\teditInfo.diagnostic\r\n\t\t\t\t);\r\n\t\t\t\tresult.get(ruleId).suggestions.push(action);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (settings.codeAction.disableRuleComment.enable && ruleId !== RuleMetaData.unusedDisableDirectiveId) {\r\n\t\t\tlet workspaceChange = new WorkspaceChange();\r\n\t\t\tif (settings.codeAction.disableRuleComment.location === 'sameLine') {\r\n\t\t\t\tworkspaceChange.getTextEditChange({ uri, version: documentVersion }).add(createDisableSameLineTextEdit(textDocument, editInfo));\r\n\t\t\t} else {\r\n\t\t\t\tconst lineText = textDocument.getText(Range.create(Position.create(editInfo.line - 1, 0), Position.create(editInfo.line - 1, uinteger.MAX_VALUE)));\r\n\t\t\t\tconst matches = /^([ \\t]*)/.exec(lineText);\r\n\t\t\t\tconst indentationText = matches !== null && matches.length > 0 ? matches[1] : '';\r\n\t\t\t\tworkspaceChange.getTextEditChange({ uri, version: documentVersion }).add(createDisableLineTextEdit(textDocument, editInfo, indentationText));\r\n\t\t\t}\r\n\t\t\tchanges.set(`${CommandIds.applyDisableLine}:${ruleId}`, workspaceChange);\r\n\t\t\tresult.get(ruleId).disable = createCodeAction(\r\n\t\t\t\t`Disable ${ruleId} for this line`,\r\n\t\t\t\tkind,\r\n\t\t\t\tCommandIds.applyDisableLine,\r\n\t\t\t\tCommandParams.create(textDocument, ruleId)\r\n\t\t\t);\r\n\r\n\t\t\tif (result.get(ruleId).disableFile === undefined) {\r\n\t\t\t\tworkspaceChange = new WorkspaceChange();\r\n\t\t\t\tworkspaceChange.getTextEditChange({ uri, version: documentVersion }).add(createDisableFileTextEdit(textDocument, editInfo));\r\n\t\t\t\tchanges.set(`${CommandIds.applyDisableFile}:${ruleId}`, workspaceChange);\r\n\t\t\t\tresult.get(ruleId).disableFile = createCodeAction(\r\n\t\t\t\t\t`Disable ${ruleId} for the entire file`,\r\n\t\t\t\t\tkind,\r\n\t\t\t\t\tCommandIds.applyDisableFile,\r\n\t\t\t\t\tCommandParams.create(textDocument, ruleId)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (settings.codeAction.showDocumentation.enable && result.get(ruleId).showDocumentation === undefined) {\r\n\t\t\tif (RuleMetaData.hasRuleId(ruleId)) {\r\n\t\t\t\tresult.get(ruleId).showDocumentation = createCodeAction(\r\n\t\t\t\t\t`Show documentation for ${ruleId}`,\r\n\t\t\t\t\tkind,\r\n\t\t\t\t\tCommandIds.openRuleDoc,\r\n\t\t\t\t\tCommandParams.create(textDocument, ruleId)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (result.length > 0) {\r\n\t\tconst sameProblems: Map<string, FixableProblem[]> = new Map<string, FixableProblem[]>(allFixableRuleIds.map<[string, FixableProblem[]]>(s => [s, []]));\r\n\r\n\t\tfor (const editInfo of fixes.getAllSorted()) {\r\n\t\t\tif (documentVersion === -1) {\r\n\t\t\t\tdocumentVersion = editInfo.documentVersion;\r\n\t\t\t}\r\n\t\t\tif (sameProblems.has(editInfo.ruleId)) {\r\n\t\t\t\tconst same = sameProblems.get(editInfo.ruleId)!;\r\n\t\t\t\tif (!Fixes.overlaps(getLastEdit(same), editInfo)) {\r\n\t\t\t\t\tsame.push(editInfo);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tsameProblems.forEach((same, ruleId) => {\r\n\t\t\tif (same.length > 1) {\r\n\t\t\t\tconst sameFixes: WorkspaceChange = new WorkspaceChange();\r\n\t\t\t\tconst sameTextChange = sameFixes.getTextEditChange({ uri, version: documentVersion });\r\n\t\t\t\tsame.map(fix => FixableProblem.createTextEdit(textDocument, fix)).forEach(edit => sameTextChange.add(edit));\r\n\t\t\t\tchanges.set(CommandIds.applySameFixes, sameFixes);\r\n\t\t\t\tresult.get(ruleId).fixAll = createCodeAction(\r\n\t\t\t\t\t`Fix all ${ruleId} problems`,\r\n\t\t\t\t\tkind,\r\n\t\t\t\t\tCommandIds.applySameFixes,\r\n\t\t\t\t\tCommandParams.create(textDocument)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\t\tresult.fixAll.push(createCodeAction(\r\n\t\t\t`Fix all auto-fixable problems`,\r\n\t\t\tkind,\r\n\t\t\tCommandIds.applyAllFixes,\r\n\t\t\tCommandParams.create(textDocument)\r\n\t\t));\r\n\t}\r\n\treturn result.all();\r\n});\r\n\r\nenum AllFixesMode {\r\n\tonSave = 'onsave',\r\n\tformat = 'format',\r\n\tcommand = 'command'\r\n}\r\n\r\nasync function computeAllFixes(identifier: VersionedTextDocumentIdentifier, mode: AllFixesMode): Promise<TextEdit[] | undefined> {\r\n\tconst uri = identifier.uri;\r\n\tconst textDocument = documents.get(uri)!;\r\n\tif (textDocument === undefined || identifier.version !== textDocument.version) {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst settings = await ESLint.resolveSettings(textDocument);\r\n\r\n\tif (settings.validate !== Validate.on || !TextDocumentSettings.hasLibrary(settings) || (mode === AllFixesMode.format && !settings.format)) {\r\n\t\treturn [];\r\n\t}\r\n\tconst filePath = inferFilePath(textDocument, settings.useRealpaths);\r\n\tconst problems = CodeActions.get(uri);\r\n\tconst originalContent = textDocument.getText();\r\n\tlet start = Date.now();\r\n\t// Only use known fixes when running in onSave mode. See https://github.com/microsoft/vscode-eslint/issues/871\r\n\t// for details\r\n\tif (mode === AllFixesMode.onSave && settings.codeActionOnSave.mode === CodeActionsOnSaveMode.problems) {\r\n\t\tconst result = problems !== undefined && problems.size > 0\r\n\t\t\t? new Fixes(problems).getApplicable().map(fix => FixableProblem.createTextEdit(textDocument, fix))\r\n\t\t\t: [];\r\n\t\tconnection.tracer.log(`Computing all fixes took: ${Date.now() - start} ms.`);\r\n\t\treturn result;\r\n\t} else {\r\n\t\tconst saveConfig = filePath !== undefined && mode === AllFixesMode.onSave ? await SaveRuleConfigs.get(uri, settings) : undefined;\r\n\t\tconst offRules = saveConfig?.offRules;\r\n\t\tconst overrideOptions = saveConfig?.options;\r\n\t\tlet eslintOptions: ESLintClassOptions = { fix: true };\r\n\t\tif (offRules !== undefined || overrideOptions !== undefined) {\r\n\t\t\tif (overrideOptions !== undefined) {\r\n\t\t\t\teslintOptions = { ...eslintOptions, ...overrideOptions };\r\n\t\t\t}\r\n\t\t\tif (offRules !== undefined && offRules.size > 0) {\r\n\t\t\t\tconst overrideConfig = { rules: Object.create(null) };\r\n\t\t\t\tfor (const ruleId of offRules) {\r\n\t\t\t\t\toverrideConfig.rules[ruleId] = 'off';\r\n\t\t\t\t}\r\n\t\t\t\teslintOptions.overrideConfig = overrideConfig;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn ESLint.withClass(async (eslintClass) => {\r\n\t\t\t// Don't use any precomputed fixes since neighbour fixes can produce incorrect results.\r\n\t\t\t// See https://github.com/microsoft/vscode-eslint/issues/1745\r\n\t\t\tconst result: TextEdit[] = [];\r\n\t\t\tconst reportResults = await eslintClass.lintText(originalContent, { filePath });\r\n\t\t\tconnection.tracer.log(`Computing all fixes took: ${Date.now() - start} ms.`);\r\n\t\t\tif (Array.isArray(reportResults) && reportResults.length === 1 && reportResults[0].output !== undefined) {\r\n\t\t\t\tconst fixedContent = reportResults[0].output;\r\n\t\t\t\tstart = Date.now();\r\n\t\t\t\tconst diffs = stringDiff(originalContent, fixedContent, false);\r\n\t\t\t\tconnection.tracer.log(`Computing minimal edits took: ${Date.now() - start} ms.`);\r\n\t\t\t\tfor (const diff of diffs) {\r\n\t\t\t\t\tresult.push({\r\n\t\t\t\t\t\trange: {\r\n\t\t\t\t\t\t\tstart: textDocument.positionAt(diff.originalStart),\r\n\t\t\t\t\t\t\tend: textDocument.positionAt(diff.originalStart + diff.originalLength)\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tnewText: fixedContent.substr(diff.modifiedStart, diff.modifiedLength)\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}, settings, eslintOptions);\r\n\t}\r\n}\r\n\r\nconnection.onExecuteCommand(async (params) => {\r\n\tlet workspaceChange: WorkspaceChange | undefined;\r\n\tconst commandParams: CommandParams = params.arguments![0] as CommandParams;\r\n\tif (params.command === CommandIds.applyAllFixes) {\r\n\t\tconst edits = await computeAllFixes(commandParams, AllFixesMode.command);\r\n\t\tif (edits !== undefined && edits.length > 0) {\r\n\t\t\tworkspaceChange = new WorkspaceChange();\r\n\t\t\tconst textChange = workspaceChange.getTextEditChange(commandParams);\r\n\t\t\tedits.forEach(edit => textChange.add(edit));\r\n\t\t}\r\n\t} else {\r\n\t\tif ([CommandIds.applySingleFix, CommandIds.applyDisableLine, CommandIds.applyDisableFile].indexOf(params.command) !== -1) {\r\n\t\t\tworkspaceChange = changes.get(`${params.command}:${commandParams.ruleId}`);\r\n\t\t} else if ([CommandIds.applySuggestion].indexOf(params.command) !== -1) {\r\n\t\t\tworkspaceChange = changes.get(`${params.command}:${commandParams.ruleId}:${commandParams.sequence}`);\r\n\t\t} else if (params.command === CommandIds.openRuleDoc && CommandParams.hasRuleId(commandParams)) {\r\n\t\t\tconst url = RuleMetaData.getUrl(commandParams.ruleId);\r\n\t\t\tif (url) {\r\n\t\t\t\tvoid connection.sendRequest(OpenESLintDocRequest.type, { url });\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tworkspaceChange = changes.get(params.command);\r\n\t\t}\r\n\t}\r\n\r\n\tif (workspaceChange === undefined) {\r\n\t\treturn null;\r\n\t}\r\n\treturn connection.workspace.applyEdit(workspaceChange.edit).then((response) => {\r\n\t\tif (!response.applied) {\r\n\t\t\tconnection.console.error(`Failed to apply command: ${params.command}`);\r\n\t\t}\r\n\t\treturn null;\r\n\t}, () => {\r\n\t\tconnection.console.error(`Failed to apply command: ${params.command}`);\r\n\t\treturn null;\r\n\t});\r\n});\r\n\r\nconnection.onDocumentFormatting((params) => {\r\n\tconst textDocument = documents.get(params.textDocument.uri);\r\n\tif (textDocument === undefined) {\r\n\t\treturn [];\r\n\t}\r\n\treturn computeAllFixes({ uri: textDocument.uri, version: textDocument.version }, AllFixesMode.format);\r\n});\r\n\r\n\r\ndocuments.listen(connection);\r\nnotebooks.listen(connection);\r\nconnection.listen();\r\nconnection.console.info(`ESLint server running in node ${process.version}`);\r\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\nconst toString = Object.prototype.toString;\n\nexport function boolean(value: any): value is boolean {\n\treturn value === true || value === false;\n}\n\nexport function nullOrUndefined(value: any): value is null | undefined {\n\treturn value === null || value === undefined;\n}\n\nexport function string(value: any): value is string {\n\treturn toString.call(value) === '[object String]';\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// This should either come from LSP or VS Code. That we repeat this is bogus.\n\ntype LanguageConfig = {\n\text: string;\n\tlineComment: string;\n\tblockComment: [string, string];\n};\n\nconst languageId2Config: Map<string, LanguageConfig> = new Map([\n\t['javascript', { ext: 'js', lineComment: '//', blockComment: ['/*', '*/'] }],\n\t['javascriptreact', { ext: 'jsx', lineComment: '//', blockComment: ['/*', '*/'] }],\n\t['typescript', { ext: 'ts', lineComment: '//', blockComment: ['/*', '*/'] } ],\n\t['typescriptreact', { ext: 'tsx', lineComment: '//', blockComment: ['/*', '*/'] } ],\n\t['html', { ext: 'html', lineComment: '//', blockComment: ['<!--', '-->'] }],\n\t['vue', { ext: 'vue', lineComment: '//', blockComment: ['<!--', '-->'] }],\n\t['coffeescript', { ext: 'coffee', lineComment: '#', blockComment: ['###', '###'] }],\n\t['yaml', { ext: 'yaml', lineComment: '#', blockComment: ['#', ''] }],\n\t['graphql', { ext: 'graphql', lineComment: '#', blockComment: ['#', ''] }]\n]);\n\nnamespace LanguageDefaults {\n\texport function getLineComment(languageId: string): string {\n\t\treturn languageId2Config.get(languageId)?.lineComment ?? '//';\n\t}\n\n\texport function getBlockComment(languageId: string): [string, string] {\n\t\treturn languageId2Config.get(languageId)?.blockComment ?? ['/*', '*/'];\n\t}\n\n\texport function getExtension(languageId: string): string | undefined {\n\t\treturn languageId2Config.get(languageId)?.ext;\n\t}\n}\n\nexport default LanguageDefaults;","/*---------------------------------------------------------------------------------------------\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\ninterface Item<K, V> {\n\tprevious: Item<K, V> | undefined;\n\tnext: Item<K, V> | undefined;\n\tkey: K;\n\tvalue: V;\n}\n\nexport namespace Touch {\n\texport const None: 0 = 0;\n\texport const First: 1 = 1;\n\texport const AsOld: 1 = Touch.First;\n\texport const Last: 2 = 2;\n\texport const AsNew: 2 = Touch.Last;\n}\n\nexport type Touch = 0 | 1 | 2;\n\nexport class LinkedMap<K, V> implements Map<K, V> {\n\n\treadonly [Symbol.toStringTag] = 'LinkedMap';\n\n\tprivate _map: Map<K, Item<K, V>>;\n\tprivate _head: Item<K, V> | undefined;\n\tprivate _tail: Item<K, V> | undefined;\n\tprivate _size: number;\n\n\tprivate _state: number;\n\n\tpublic constructor() {\n\t\tthis._map = new Map<K, Item<K, V>>();\n\t\tthis._head = undefined;\n\t\tthis._tail = undefined;\n\t\tthis._size = 0;\n\t\tthis._state = 0;\n\t}\n\n\tpublic clear(): void {\n\t\tthis._map.clear();\n\t\tthis._head = undefined;\n\t\tthis._tail = undefined;\n\t\tthis._size = 0;\n\t\tthis._state++;\n\t}\n\n\tpublic isEmpty(): boolean {\n\t\treturn !this._head && !this._tail;\n\t}\n\n\tpublic get size(): number {\n\t\treturn this._size;\n\t}\n\n\tpublic get first(): V | undefined {\n\t\treturn this._head?.value;\n\t}\n\n\tpublic get last(): V | undefined {\n\t\treturn this._tail?.value;\n\t}\n\n\tpublic has(key: K): boolean {\n\t\treturn this._map.has(key);\n\t}\n\n\tpublic get(key: K, touch: Touch = Touch.None): V | undefined {\n\t\tconst item = this._map.get(key);\n\t\tif (!item) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (touch !== Touch.None) {\n\t\t\tthis.touch(item, touch);\n\t\t}\n\t\treturn item.value;\n\t}\n\n\tpublic set(key: K, value: V, touch: Touch = Touch.None): this {\n\t\tlet item = this._map.get(key);\n\t\tif (item) {\n\t\t\titem.value = value;\n\t\t\tif (touch !== Touch.None) {\n\t\t\t\tthis.touch(item, touch);\n\t\t\t}\n\t\t} else {\n\t\t\titem = { key, value, next: undefined, previous: undefined };\n\t\t\tswitch (touch) {\n\t\t\t\tcase Touch.None:\n\t\t\t\t\tthis.addItemLast(item);\n\t\t\t\t\tbreak;\n\t\t\t\tcase Touch.First:\n\t\t\t\t\tthis.addItemFirst(item);\n\t\t\t\t\tbreak;\n\t\t\t\tcase Touch.Last:\n\t\t\t\t\tthis.addItemLast(item);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.addItemLast(item);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis._map.set(key, item);\n\t\t\tthis._size++;\n\t\t}\n\t\treturn this;\n\t}\n\n\tpublic delete(key: K): boolean {\n\t\treturn !!this.remove(key);\n\t}\n\n\tpublic remove(key: K): V | undefined {\n\t\tconst item = this._map.get(key);\n\t\tif (!item) {\n\t\t\treturn undefined;\n\t\t}\n\t\tthis._map.delete(key);\n\t\tthis.removeItem(item);\n\t\tthis._size--;\n\t\treturn item.value;\n\t}\n\n\tpublic shift(): V | undefined {\n\t\tif (!this._head && !this._tail) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (!this._head || !this._tail) {\n\t\t\tthrow new Error('Invalid list');\n\t\t}\n\t\tconst item = this._head;\n\t\tthis._map.delete(item.key);\n\t\tthis.removeItem(item);\n\t\tthis._size--;\n\t\treturn item.value;\n\t}\n\n\tpublic forEach(callbackfn: (value: V, key: K, map: LinkedMap<K, V>) => void, thisArg?: any): void {\n\t\tconst state = this._state;\n\t\tlet current = this._head;\n\t\twhile (current) {\n\t\t\tif (thisArg) {\n\t\t\t\tcallbackfn.bind(thisArg)(current.value, current.key, this);\n\t\t\t} else {\n\t\t\t\tcallbackfn(current.value, current.key, this);\n\t\t\t}\n\t\t\tif (this._state !== state) {\n\t\t\t\tthrow new Error(`LinkedMap got modified during iteration.`);\n\t\t\t}\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n\n\tpublic keys(): IterableIterator<K> {\n\t\tconst map = this;\n\t\tconst state = this._state;\n\t\tlet current = this._head;\n\t\tconst iterator: IterableIterator<K> = {\n\t\t\t[Symbol.iterator]() {\n\t\t\t\treturn iterator;\n\t\t\t},\n\t\t\tnext(): IteratorResult<K> {\n\t\t\t\tif (map._state !== state) {\n\t\t\t\t\tthrow new Error(`LinkedMap got modified during iteration.`);\n\t\t\t\t}\n\t\t\t\tif (current) {\n\t\t\t\t\tconst result = { value: current.key, done: false };\n\t\t\t\t\tcurrent = current.next;\n\t\t\t\t\treturn result;\n\t\t\t\t} else {\n\t\t\t\t\treturn { value: undefined, done: true };\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn iterator;\n\t}\n\n\tpublic values(): IterableIterator<V> {\n\t\tconst map = this;\n\t\tconst state = this._state;\n\t\tlet current = this._head;\n\t\tconst iterator: IterableIterator<V> = {\n\t\t\t[Symbol.iterator]() {\n\t\t\t\treturn iterator;\n\t\t\t},\n\t\t\tnext(): IteratorResult<V> {\n\t\t\t\tif (map._state !== state) {\n\t\t\t\t\tthrow new Error(`LinkedMap got modified during iteration.`);\n\t\t\t\t}\n\t\t\t\tif (current) {\n\t\t\t\t\tconst result = { value: current.value, done: false };\n\t\t\t\t\tcurrent = current.next;\n\t\t\t\t\treturn result;\n\t\t\t\t} else {\n\t\t\t\t\treturn { value: undefined, done: true };\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn iterator;\n\t}\n\n\tpublic entries(): IterableIterator<[K, V]> {\n\t\tconst map = this;\n\t\tconst state = this._state;\n\t\tlet current = this._head;\n\t\tconst iterator: IterableIterator<[K, V]> = {\n\t\t\t[Symbol.iterator]() {\n\t\t\t\treturn iterator;\n\t\t\t},\n\t\t\tnext(): IteratorResult<[K, V]> {\n\t\t\t\tif (map._state !== state) {\n\t\t\t\t\tthrow new Error(`LinkedMap got modified during iteration.`);\n\t\t\t\t}\n\t\t\t\tif (current) {\n\t\t\t\t\tconst result: IteratorResult<[K, V]> = { value: [current.key, current.value], done: false };\n\t\t\t\t\tcurrent = current.next;\n\t\t\t\t\treturn result;\n\t\t\t\t} else {\n\t\t\t\t\treturn { value: undefined, done: true };\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn iterator;\n\t}\n\n\tpublic [Symbol.iterator](): IterableIterator<[K, V]> {\n\t\treturn this.entries();\n\t}\n\n\tprotected trimOld(newSize: number) {\n\t\tif (newSize >= this.size) {\n\t\t\treturn;\n\t\t}\n\t\tif (newSize === 0) {\n\t\t\tthis.clear();\n\t\t\treturn;\n\t\t}\n\t\tlet current = this._head;\n\t\tlet currentSize = this.size;\n\t\twhile (current && currentSize > newSize) {\n\t\t\tthis._map.delete(current.key);\n\t\t\tcurrent = current.next;\n\t\t\tcurrentSize--;\n\t\t}\n\t\tthis._head = current;\n\t\tthis._size = currentSize;\n\t\tif (current) {\n\t\t\tcurrent.previous = undefined;\n\t\t}\n\t\tthis._state++;\n\t}\n\n\tprivate addItemFirst(item: Item<K, V>): void {\n\t\t// First time Insert\n\t\tif (!this._head && !this._tail) {\n\t\t\tthis._tail = item;\n\t\t} else if (!this._head) {\n\t\t\tthrow new Error('Invalid list');\n\t\t} else {\n\t\t\titem.next = this._head;\n\t\t\tthis._head.previous = item;\n\t\t}\n\t\tthis._head = item;\n\t\tthis._state++;\n\t}\n\n\tprivate addItemLast(item: Item<K, V>): void {\n\t\t// First time Insert\n\t\tif (!this._head && !this._tail) {\n\t\t\tthis._head = item;\n\t\t} else if (!this._tail) {\n\t\t\tthrow new Error('Invalid list');\n\t\t} else {\n\t\t\titem.previous = this._tail;\n\t\t\tthis._tail.next = item;\n\t\t}\n\t\tthis._tail = item;\n\t\tthis._state++;\n\t}\n\n\tprivate removeItem(item: Item<K, V>): void {\n\t\tif (item === this._head && item === this._tail) {\n\t\t\tthis._head = undefined;\n\t\t\tthis._tail = undefined;\n\t\t}\n\t\telse if (item === this._head) {\n\t\t\t// This can only happen if size === 1 which is handled\n\t\t\t// by the case above.\n\t\t\tif (!item.next) {\n\t\t\t\tthrow new Error('Invalid list');\n\t\t\t}\n\t\t\titem.next.previous = undefined;\n\t\t\tthis._head = item.next;\n\t\t}\n\t\telse if (item === this._tail) {\n\t\t\t// This can only happen if size === 1 which is handled\n\t\t\t// by the case above.\n\t\t\tif (!item.previous) {\n\t\t\t\tthrow new Error('Invalid list');\n\t\t\t}\n\t\t\titem.previous.next = undefined;\n\t\t\tthis._tail = item.previous;\n\t\t}\n\t\telse {\n\t\t\tconst next = item.next;\n\t\t\tconst previous = item.previous;\n\t\t\tif (!next || !previous) {\n\t\t\t\tthrow new Error('Invalid list');\n\t\t\t}\n\t\t\tnext.previous = previous;\n\t\t\tprevious.next = next;\n\t\t}\n\t\titem.next = undefined;\n\t\titem.previous = undefined;\n\t\tthis._state++;\n\t}\n\n\tprivate touch(item: Item<K, V>, touch: Touch): void {\n\t\tif (!this._head || !this._tail) {\n\t\t\tthrow new Error('Invalid list');\n\t\t}\n\t\tif ((touch !== Touch.First && touch !== Touch.Last)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (touch === Touch.First) {\n\t\t\tif (item === this._head) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst next = item.next;\n\t\t\tconst previous = item.previous;\n\n\t\t\t// Unlink the item\n\t\t\tif (item === this._tail) {\n\t\t\t\t// previous must be defined since item was not head but is tail\n\t\t\t\t// So there are more than on item in the map\n\t\t\t\tprevious!.next = undefined;\n\t\t\t\tthis._tail = previous;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Both next and previous are not undefined since item was neither head nor tail.\n\t\t\t\tnext!.previous = previous;\n\t\t\t\tprevious!.next = next;\n\t\t\t}\n\n\t\t\t// Insert the node at head\n\t\t\titem.previous = undefined;\n\t\t\titem.next = this._head;\n\t\t\tthis._head.previous = item;\n\t\t\tthis._head = item;\n\t\t\tthis._state++;\n\t\t} else if (touch === Touch.Last) {\n\t\t\tif (item === this._tail) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst next = item.next;\n\t\t\tconst previous = item.previous;\n\n\t\t\t// Unlink the item.\n\t\t\tif (item === this._head) {\n\t\t\t\t// next must be defined since item was not tail but is head\n\t\t\t\t// So there are more than on item in the map\n\t\t\t\tnext!.previous = undefined;\n\t\t\t\tthis._head = next;\n\t\t\t} else {\n\t\t\t\t// Both next and previous are not undefined since item was neither head nor tail.\n\t\t\t\tnext!.previous = previous;\n\t\t\t\tprevious!.next = next;\n\t\t\t}\n\t\t\titem.next = undefined;\n\t\t\titem.previous = this._tail;\n\t\t\tthis._tail.next = item;\n\t\t\tthis._tail = item;\n\t\t\tthis._state++;\n\t\t}\n\t}\n\n\tpublic toJSON(): [K, V][] {\n\t\tconst data: [K, V][] = [];\n\n\t\tthis.forEach((value, key) => {\n\t\t\tdata.push([key, value]);\n\t\t});\n\n\t\treturn data;\n\t}\n\n\tpublic fromJSON(data: [K, V][]): void {\n\t\tthis.clear();\n\n\t\tfor (const [key, value] of data) {\n\t\t\tthis.set(key, value);\n\t\t}\n\t}\n}\n\nexport class LRUCache<K, V> extends LinkedMap<K, V> {\n\n\tprivate _limit: number;\n\tprivate _ratio: number;\n\n\tpublic constructor(limit: number, ratio: number = 1) {\n\t\tsuper();\n\t\tthis._limit = limit;\n\t\tthis._ratio = Math.min(Math.max(0, ratio), 1);\n\t}\n\n\tpublic get limit(): number {\n\t\treturn this._limit;\n\t}\n\n\tpublic set limit(limit: number) {\n\t\tthis._limit = limit;\n\t\tthis.checkTrim();\n\t}\n\n\tpublic get ratio(): number {\n\t\treturn this._ratio;\n\t}\n\n\tpublic set ratio(ratio: number) {\n\t\tthis._ratio = Math.min(Math.max(0, ratio), 1);\n\t\tthis.checkTrim();\n\t}\n\n\tpublic get(key: K, touch: Touch = Touch.AsNew): V | undefined {\n\t\treturn super.get(key, touch);\n\t}\n\n\tpublic peek(key: K): V | undefined {\n\t\treturn super.get(key, Touch.None);\n\t}\n\n\tpublic set(key: K, value: V): this {\n\t\tsuper.set(key, value, Touch.Last);\n\t\tthis.checkTrim();\n\t\treturn this;\n\t}\n\n\tprivate checkTrim() {\n\t\tif (this.size > this._limit) {\n\t\t\tthis.trimOld(Math.round(this._limit * this._ratio));\n\t\t}\n\t}\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 fs from 'fs';\n\nimport { URI } from 'vscode-uri';\nimport { TextDocument } from 'vscode-languageserver-textdocument';\n\nimport * as Is from './is';\n\n/**\n * Special functions to deal with path conversions in the context of ESLint\n */\n\n/**\n * Normalizes the drive letter to upper case which is the default in Node but not in\n * VS Code.\n */\nexport function normalizeDriveLetter(path: string): string {\n\tif (process.platform !== 'win32' || path.length < 2 || path[1] !== ':') {\n\t\treturn path;\n\t}\n\treturn path[0].toUpperCase() + path.substring(1);\n}\n\nconst enum CharCode {\n\t/**\n\t * The `\\` character.\n\t */\n\tBackslash = 92,\n}\n\n/**\n * Check if the path follows this pattern: `\\\\hostname\\sharename`.\n *\n * @see https://msdn.microsoft.com/en-us/library/gg465305.aspx\n * @return A boolean indication if the path is a UNC path, on none-windows\n * always false.\n */\nexport function isUNC(path: string): boolean {\n\tif (process.platform !== 'win32') {\n\t\t// UNC is a windows concept\n\t\treturn false;\n\t}\n\n\tif (!path || path.length < 5) {\n\t\t// at least \\\\a\\b\n\t\treturn false;\n\t}\n\n\tlet code = path.charCodeAt(0);\n\tif (code !== CharCode.Backslash) {\n\t\treturn false;\n\t}\n\tcode = path.charCodeAt(1);\n\tif (code !== CharCode.Backslash) {\n\t\treturn false;\n\t}\n\tlet pos = 2;\n\tconst start = pos;\n\tfor (; pos < path.length; pos++) {\n\t\tcode = path.charCodeAt(pos);\n\t\tif (code === CharCode.Backslash) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (start === pos) {\n\t\treturn false;\n\t}\n\tcode = path.charCodeAt(pos + 1);\n\tif (isNaN(code) || code === CharCode.Backslash) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nexport function getFileSystemPath(uri: URI, useRealpaths: boolean): string {\n\tlet result = uri.fsPath;\n\tif (process.platform === 'win32' && result.length >= 2 && result[1] === ':') {\n\t\t// Node by default uses an upper case drive letter and ESLint uses\n\t\t// === to compare paths which results in the equal check failing\n\t\t// if the drive letter is lower case in th URI. Ensure upper case.\n\t\tresult = result[0].toUpperCase() + result.substr(1);\n\t}\n\tif (useRealpaths) {\n\t\tresult = tryRealpath(result);\n\t} else if (process.platform === 'win32' || process.platform === 'darwin') {\n\t\tconst realpath = tryRealpath(result);\n\t\t// Only use the real path if only the casing has changed.\n\t\tif (realpath.toLowerCase() === result.toLowerCase()) {\n\t\t\tresult = realpath;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction tryRealpath(path: string): string {\n\ttry {\n\t\treturn fs.realpathSync.native(path);\n\t} catch (error) {\n\t\t// Silently ignore errors from `fs.realpathSync` to handle scenarios where\n\t\t// the file being linted is not yet written to disk. This occurs in editors\n\t\t// such as Neovim for non-written buffers.\n\t\treturn path;\n\t}\n}\n\nexport function normalizePath(path: string): string;\nexport function normalizePath(path: undefined): undefined;\nexport function normalizePath(path: string | undefined): string | undefined {\n\tif (path === undefined) {\n\t\treturn undefined;\n\t}\n\tif (process.platform === 'win32') {\n\t\treturn path.replace(/\\\\/g, '/');\n\t}\n\treturn path;\n}\n\nexport function getUri(documentOrUri: string | TextDocument | URI): URI {\n\treturn Is.string(documentOrUri)\n\t\t? URI.parse(documentOrUri)\n\t\t: documentOrUri instanceof URI\n\t\t\t? documentOrUri\n\t\t\t: URI.parse(documentOrUri.uri);\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 { NotificationType, NotificationType0, RequestType, TextDocumentIdentifier } from 'vscode-languageserver-protocol';\n\nexport enum Status {\n\tok = 1,\n\twarn = 2,\n\terror = 3\n}\n\nexport type StatusParams = {\n\turi: string;\n\tstate: Status;\n\tvalidationTime?: number;\n};\n\n/**\n * The status notification is sent from the server to the client to\n * inform the client about server status changes.\n */\nexport namespace StatusNotification {\n\texport const method: 'eslint/status' = 'eslint/status';\n\texport const type = new NotificationType<StatusParams>(method);\n}\n\nexport type NoConfigParams = {\n\tmessage: string;\n\tdocument: TextDocumentIdentifier;\n};\n\nexport type NoConfigResult = {\n};\n\n/**\n * The NoConfigRequest is sent from the server to the client to inform\n * the client that no eslint configuration file could be found when\n * trying to lint a file.\n */\nexport namespace NoConfigRequest {\n\texport const method: 'eslint/noConfig' = 'eslint/noConfig';\n\texport const type = new RequestType<NoConfigParams, NoConfigResult, void>(method);\n}\n\nexport type NoESLintLibraryParams = {\n\tsource: TextDocumentIdentifier;\n};\n\nexport type NoESLintLibraryResult = {\n};\n\n/**\n * The NoESLintLibraryRequest is sent from the server to the client to\n * inform the client that no eslint library could be found when trying\n * to lint a file.\n */\nexport namespace NoESLintLibraryRequest {\n\texport const method: 'eslint/noLibrary' = 'eslint/noLibrary';\n\texport const type = new RequestType<NoESLintLibraryParams, NoESLintLibraryResult, void>(method);\n}\n\nexport type OpenESLintDocParams = {\n\turl: string;\n};\n\nexport type OpenESLintDocResult = {\n};\n\n/**\n * The eslint/openDoc request is sent from the server to the client to\n * ask the client to open the documentation URI for a given\n * ESLint rule.\n */\nexport namespace OpenESLintDocRequest {\n\texport const method: 'eslint/openDoc' = 'eslint/openDoc';\n\texport const type = new RequestType<OpenESLintDocParams, OpenESLintDocResult, void>(method);\n}\n\nexport type ProbeFailedParams = {\n\ttextDocument: TextDocumentIdentifier;\n};\n\n/**\n * The eslint/probeFailed request is sent from the server to the client\n * to tell the client the the lint probing for a certain document has\n * failed and that there is no need to sync that document to the server\n * anymore.\n */\nexport namespace ProbeFailedRequest {\n\texport const method: 'eslint/probeFailed' = 'eslint/probeFailed';\n\texport const type = new RequestType<ProbeFailedParams, void, void>(method);\n}\n\n/**\n * The eslint/showOutputChannel notification is sent from the server to\n * the client to ask the client to reveal it's output channel.\n */\nexport namespace ShowOutputChannel {\n\texport const method: 'eslint/showOutputChannel' = 'eslint/showOutputChannel';\n\texport const type = new NotificationType0('eslint/showOutputChannel');\n}\n\n/**\n * The eslint/exitCalled notification is sent from the server to the client\n * to inform the client that a process.exit call on the server got intercepted.\n * The call was very likely made by an ESLint plugin.\n */\nexport namespace ExitCalled {\n\texport const method: 'eslint/exitCalled' = 'eslint/exitCalled';\n\texport const type = new NotificationType<[number, string]>(method);\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\tWorkspaceFolder\n} from 'vscode-languageserver-protocol';\n\nnamespace Is {\n\tconst toString = Object.prototype.toString;\n\n\texport function boolean(value: any): value is boolean {\n\t\treturn value === true || value === false;\n\t}\n\n\texport function string(value: any): value is string {\n\t\treturn toString.call(value) === '[object String]';\n\t}\n}\n\nexport enum Validate {\n\ton = 'on',\n\toff = 'off',\n\tprobe = 'probe'\n}\n\nexport type CodeActionSettings = {\n\tdisableRuleComment: {\n\t\tenable: boolean;\n\t\tlocation: 'separateLine' | 'sameLine';\n\t\tcommentStyle: 'line' | 'block';\n\t};\n\tshowDocumentation: {\n\t\tenable: boolean;\n\t};\n};\n\nexport enum CodeActionsOnSaveMode {\n\tall = 'all',\n\tproblems = 'problems'\n}\n\nexport namespace CodeActionsOnSaveMode {\n\texport function from(value: string | undefined | null): CodeActionsOnSaveMode {\n\t\tif (value === undefined || value === null || !Is.string(value)) {\n\t\t\treturn CodeActionsOnSaveMode.all;\n\t\t}\n\t\tswitch(value.toLowerCase()) {\n\t\t\tcase CodeActionsOnSaveMode.problems:\n\t\t\t\treturn CodeActionsOnSaveMode.problems;\n\t\t\tdefault:\n\t\t\t\treturn CodeActionsOnSaveMode.all;\n\t\t}\n\t}\n}\n\nexport namespace CodeActionsOnSaveRules {\n\texport function from(value: string[] | undefined | null): string[] | undefined {\n\t\tif (value === undefined || value === null || !Array.isArray(value)) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn value.filter(item => Is.string(item));\n\t}\n}\n\nexport namespace CodeActionsOnSaveOptions {\n\texport function from(value: object | undefined | null): ESLintOptions | undefined {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn value;\n\t}\n}\n\nexport type CodeActionsOnSaveSettings = {\n\tmode: CodeActionsOnSaveMode;\n\trules?: string[];\n\toptions?: ESLintOptions;\n};\n\nexport enum ESLintSeverity {\n\toff = 'off',\n\twarn = 'warn',\n\terror = 'error'\n}\n\nexport namespace ESLintSeverity {\n\texport function from(value: string | undefined | null): ESLintSeverity {\n\t\tif (value === undefined || value === null) {\n\t\t\treturn ESLintSeverity.off;\n\t\t}\n\t\tswitch (value.toLowerCase()) {\n\t\t\tcase ESLintSeverity.off:\n\t\t\t\treturn ESLintSeverity.off;\n\t\t\tcase ESLintSeverity.warn:\n\t\t\t\treturn ESLintSeverity.warn;\n\t\t\tcase ESLintSeverity.error:\n\t\t\t\treturn ESLintSeverity.error;\n\t\t\tdefault:\n\t\t\t\treturn ESLintSeverity.off;\n\t\t}\n\t}\n}\n\nexport enum RuleSeverity {\n\t// Original ESLint values\n\tinfo = 'info',\n\twarn = 'warn',\n\terror = 'error',\n\toff = 'off',\n\n\t// Added severity override changes\n\tdefault = 'default',\n\tdowngrade = 'downgrade',\n\tupgrade = 'upgrade'\n}\n\nexport type RuleCustomization = {\n\trule: string;\n\tseverity: RuleSeverity;\n\t/** Only apply to autofixable rules */\n\tfixable?: boolean;\n};\n\nexport type RunValues = 'onType' | 'onSave';\n\nexport enum ModeEnum {\n\tauto = 'auto',\n\tlocation = 'location'\n}\n\nexport namespace ModeEnum {\n\texport function is(value: string): value is ModeEnum {\n\t\treturn value === ModeEnum.auto || value === ModeEnum.location;\n\t}\n}\n\nexport type ModeItem = {\n\tmode: ModeEnum;\n};\n\nexport namespace ModeItem {\n\texport function is(item: any): item is ModeItem {\n\t\tconst candidate = item as ModeItem;\n\t\treturn candidate && ModeEnum.is(candidate.mode);\n\t}\n}\n\nexport type DirectoryItem = {\n\tdirectory: string;\n\t'!cwd'?: boolean;\n};\n\nexport namespace DirectoryItem {\n\texport function is(item: any): item is DirectoryItem {\n\t\tconst candidate = item as DirectoryItem;\n\t\treturn candidate && Is.string(candidate.directory) && (Is.boolean(candidate['!cwd']) || candidate['!cwd'] === undefined);\n\t}\n}\n\nexport type PackageManagers = 'npm' | 'yarn' | 'pnpm';\n\nexport type ESLintOptions = object & { fixTypes?: string[] };\n\nexport type ConfigurationSettings = {\n\tvalidate: Validate;\n\tpackageManager: PackageManagers;\n\tuseESLintClass: boolean;\n\tuseFlatConfig?: boolean | undefined;\n\tuseRealpaths: boolean;\n\texperimental?: {\n\t\tuseFlatConfig: boolean;\n\t};\n\tcodeAction: CodeActionSettings;\n\tcodeActionOnSave: CodeActionsOnSaveSettings;\n\tformat: boolean;\n\tquiet: boolean;\n\tonIgnoredFiles: ESLintSeverity;\n\toptions: ESLintOptions | undefined;\n\trulesCustomizations: RuleCustomization[];\n\trun: RunValues;\n\tproblems: {\n\t\tshortenToSingleLine: boolean;\n\t};\n\tnodePath: string | null;\n\tworkspaceFolder: WorkspaceFolder | undefined;\n\tworkingDirectory: ModeItem | DirectoryItem | undefined;\n};\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numberic identifiers include numberic identifiers but can be longer.\n// Therefore non-numberic identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","\"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","\"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 * ------------------------------------------------------------------------------------------ */\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 *--------------------------------------------------------------------------------------------*/\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 * ------------------------------------------------------------------------------------------ */\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 * ------------------------------------------------------------------------------------------ */\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 *--------------------------------------------------------------------------------------------*/\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.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 * ------------------------------------------------------------------------------------------ */\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 * ------------------------------------------------------------------------------------------ */\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 });\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.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 * ------------------------------------------------------------------------------------------ */\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\";\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamMessageWriter = exports.StreamMessageReader = exports.SocketMessageWriter = exports.SocketMessageReader = exports.PortMessageWriter = exports.PortMessageReader = exports.IPCMessageWriter = exports.IPCMessageReader = void 0;\nexports.generateRandomPipeName = generateRandomPipeName;\nexports.createClientPipeTransport = createClientPipeTransport;\nexports.createServerPipeTransport = createServerPipeTransport;\nexports.createClientSocketTransport = createClientSocketTransport;\nexports.createServerSocketTransport = createServerSocketTransport;\nexports.createMessageConnection = createMessageConnection;\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ----------------------------------------------------------------------------------------- */\nconst ril_1 = __importDefault(require(\"./ril\"));\n// Install the node runtime abstract.\nril_1.default.install();\nconst path = __importStar(require(\"path\"));\nconst os = __importStar(require(\"os\"));\nconst fs = __importStar(require(\"fs\"));\nconst crypto_1 = require(\"crypto\");\nconst net_1 = require(\"net\");\nconst api_1 = require(\"../common/api\");\n__exportStar(require(\"../common/api\"), exports);\nclass IPCMessageReader extends api_1.AbstractMessageReader {\n process;\n constructor(process) {\n super();\n this.process = process;\n const eventEmitter = this.process;\n eventEmitter.on('error', (error) => this.fireError(error));\n eventEmitter.on('close', () => this.fireClose());\n }\n listen(callback) {\n this.process.on('message', callback);\n return api_1.Disposable.create(() => this.process.off('message', callback));\n }\n}\nexports.IPCMessageReader = IPCMessageReader;\nclass IPCMessageWriter extends api_1.AbstractMessageWriter {\n process;\n errorCount;\n constructor(process) {\n super();\n this.process = process;\n this.errorCount = 0;\n const eventEmitter = this.process;\n eventEmitter.on('error', (error) => this.fireError(error));\n eventEmitter.on('close', () => this.fireClose);\n }\n write(msg) {\n try {\n if (typeof this.process.send === 'function') {\n this.process.send(msg, undefined, undefined, (error) => {\n if (error) {\n this.errorCount++;\n this.handleError(error, msg);\n }\n else {\n this.errorCount = 0;\n }\n });\n }\n return Promise.resolve();\n }\n catch (error) {\n this.handleError(error, msg);\n return Promise.reject(error);\n }\n }\n handleError(error, msg) {\n this.errorCount++;\n this.fireError(error, msg, this.errorCount);\n }\n end() {\n }\n}\nexports.IPCMessageWriter = IPCMessageWriter;\nclass PortMessageReader extends api_1.AbstractMessageReader {\n onData;\n constructor(port) {\n super();\n this.onData = new api_1.Emitter;\n port.on('close', () => this.fireClose);\n port.on('error', (error) => this.fireError(error));\n port.on('message', (message) => {\n this.onData.fire(message);\n });\n }\n listen(callback) {\n return this.onData.event(callback);\n }\n}\nexports.PortMessageReader = PortMessageReader;\nclass PortMessageWriter extends api_1.AbstractMessageWriter {\n port;\n errorCount;\n constructor(port) {\n super();\n this.port = port;\n this.errorCount = 0;\n port.on('close', () => this.fireClose());\n port.on('error', (error) => this.fireError(error));\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.PortMessageWriter = PortMessageWriter;\nclass SocketMessageReader extends api_1.ReadableStreamMessageReader {\n constructor(socket, encoding = 'utf-8') {\n super((0, ril_1.default)().stream.asReadableStream(socket), encoding);\n }\n}\nexports.SocketMessageReader = SocketMessageReader;\nclass SocketMessageWriter extends api_1.WriteableStreamMessageWriter {\n socket;\n constructor(socket, options) {\n super((0, ril_1.default)().stream.asWritableStream(socket), options);\n this.socket = socket;\n }\n dispose() {\n super.dispose();\n this.socket.destroy();\n }\n}\nexports.SocketMessageWriter = SocketMessageWriter;\nclass StreamMessageReader extends api_1.ReadableStreamMessageReader {\n constructor(readable, encoding) {\n super((0, ril_1.default)().stream.asReadableStream(readable), encoding);\n }\n}\nexports.StreamMessageReader = StreamMessageReader;\nclass StreamMessageWriter extends api_1.WriteableStreamMessageWriter {\n constructor(writable, options) {\n super((0, ril_1.default)().stream.asWritableStream(writable), options);\n }\n}\nexports.StreamMessageWriter = StreamMessageWriter;\nconst XDG_RUNTIME_DIR = process.env['XDG_RUNTIME_DIR'];\nconst safeIpcPathLengths = new Map([\n ['linux', 107],\n ['darwin', 103]\n]);\nfunction generateRandomPipeName() {\n if (process.platform === 'win32') {\n return `\\\\\\\\.\\\\pipe\\\\lsp-${(0, crypto_1.randomBytes)(16).toString('hex')}-sock`;\n }\n let randomLength = 32;\n const fixedLength = 'lsp-.sock'.length;\n const tmpDir = fs.realpathSync(XDG_RUNTIME_DIR ?? os.tmpdir());\n const limit = safeIpcPathLengths.get(process.platform);\n if (limit !== undefined) {\n randomLength = Math.min(limit - tmpDir.length - fixedLength, randomLength);\n }\n if (randomLength < 16) {\n throw new Error(`Unable to generate a random pipe name with ${randomLength} characters.`);\n }\n const randomSuffix = (0, crypto_1.randomBytes)(Math.floor(randomLength / 2)).toString('hex');\n return path.join(tmpDir, `lsp-${randomSuffix}.sock`);\n}\nfunction createClientPipeTransport(pipeName, encoding = 'utf-8') {\n let connectResolve;\n const connected = new Promise((resolve, _reject) => {\n connectResolve = resolve;\n });\n return new Promise((resolve, reject) => {\n const server = (0, net_1.createServer)((socket) => {\n server.close();\n connectResolve([\n new SocketMessageReader(socket, encoding),\n new SocketMessageWriter(socket, encoding)\n ]);\n });\n server.on('error', reject);\n server.listen(pipeName, () => {\n server.removeListener('error', reject);\n resolve({\n onConnected: () => { return connected; }\n });\n });\n });\n}\nfunction createServerPipeTransport(pipeName, encoding = 'utf-8') {\n const socket = (0, net_1.createConnection)(pipeName);\n return [\n new SocketMessageReader(socket, encoding),\n new SocketMessageWriter(socket, encoding)\n ];\n}\nfunction createClientSocketTransport(port, encoding = 'utf-8') {\n let connectResolve;\n const connected = new Promise((resolve, _reject) => {\n connectResolve = resolve;\n });\n return new Promise((resolve, reject) => {\n const server = (0, net_1.createServer)((socket) => {\n server.close();\n connectResolve([\n new SocketMessageReader(socket, encoding),\n new SocketMessageWriter(socket, encoding)\n ]);\n });\n server.on('error', reject);\n server.listen(port, '127.0.0.1', () => {\n server.removeListener('error', reject);\n resolve({\n onConnected: () => { return connected; }\n });\n });\n });\n}\nfunction createServerSocketTransport(port, encoding = 'utf-8') {\n const socket = (0, net_1.createConnection)(port, '127.0.0.1');\n return [\n new SocketMessageReader(socket, encoding),\n new SocketMessageWriter(socket, encoding)\n ];\n}\nfunction isReadableStream(value) {\n const candidate = value;\n return candidate.read !== undefined && candidate.addListener !== undefined;\n}\nfunction isWritableStream(value) {\n const candidate = value;\n return candidate.write !== undefined && candidate.addListener !== undefined;\n}\nfunction createMessageConnection(input, output, logger, options) {\n if (!logger) {\n logger = api_1.NullLogger;\n }\n const reader = isReadableStream(input) ? new StreamMessageReader(input) : input;\n const writer = isWritableStream(output) ? new StreamMessageWriter(output) : output;\n if (api_1.ConnectionStrategy.is(options)) {\n options = { connectionStrategy: options };\n }\n return (0, api_1.createMessageConnection)(reader, writer, logger, options);\n}\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 });\nconst util_1 = require(\"util\");\nconst api_1 = require(\"../common/api\");\nclass MessageBuffer extends api_1.AbstractMessageBuffer {\n static emptyBuffer = Buffer.allocUnsafe(0);\n constructor(encoding = 'utf-8') {\n super(encoding);\n }\n emptyBuffer() {\n return MessageBuffer.emptyBuffer;\n }\n fromString(value, encoding) {\n return Buffer.from(value, encoding);\n }\n toString(value, encoding) {\n if (value instanceof Buffer) {\n return value.toString(encoding);\n }\n else {\n return new util_1.TextDecoder(encoding).decode(value);\n }\n }\n asNative(buffer, length) {\n if (length === undefined) {\n return buffer instanceof Buffer ? buffer : Buffer.from(buffer);\n }\n else {\n return buffer instanceof Buffer ? buffer.slice(0, length) : Buffer.from(buffer, 0, length);\n }\n }\n allocNative(length) {\n return Buffer.allocUnsafe(length);\n }\n}\nclass ReadableStreamWrapper {\n stream;\n constructor(stream) {\n this.stream = stream;\n }\n onClose(listener) {\n this.stream.on('close', listener);\n return api_1.Disposable.create(() => this.stream.off('close', listener));\n }\n onError(listener) {\n this.stream.on('error', listener);\n return api_1.Disposable.create(() => this.stream.off('error', listener));\n }\n onEnd(listener) {\n this.stream.on('end', listener);\n return api_1.Disposable.create(() => this.stream.off('end', listener));\n }\n onData(listener) {\n this.stream.on('data', listener);\n return api_1.Disposable.create(() => this.stream.off('data', listener));\n }\n}\nclass WritableStreamWrapper {\n stream;\n constructor(stream) {\n this.stream = stream;\n }\n onClose(listener) {\n this.stream.on('close', listener);\n return api_1.Disposable.create(() => this.stream.off('close', listener));\n }\n onError(listener) {\n this.stream.on('error', listener);\n return api_1.Disposable.create(() => this.stream.off('error', listener));\n }\n onEnd(listener) {\n this.stream.on('end', listener);\n return api_1.Disposable.create(() => this.stream.off('end', listener));\n }\n write(data, encoding) {\n return new Promise((resolve, reject) => {\n const callback = (error) => {\n if (error === undefined || error === null) {\n resolve();\n }\n else {\n reject(error);\n }\n };\n if (typeof data === 'string') {\n this.stream.write(data, encoding, callback);\n }\n else {\n this.stream.write(data, callback);\n }\n });\n }\n end() {\n this.stream.end();\n }\n}\nconst _ril = Object.freeze({\n messageBuffer: Object.freeze({\n create: (encoding) => new MessageBuffer(encoding)\n }),\n applicationJson: Object.freeze({\n encoder: Object.freeze({\n name: 'application/json',\n encode: (msg, options) => {\n try {\n return Promise.resolve(Buffer.from(JSON.stringify(msg, undefined, 0), options.charset));\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n }),\n decoder: Object.freeze({\n name: 'application/json',\n decode: (buffer, options) => {\n try {\n if (buffer instanceof Buffer) {\n return Promise.resolve(JSON.parse(buffer.toString(options.charset)));\n }\n else {\n return Promise.resolve(JSON.parse(new util_1.TextDecoder(options.charset).decode(buffer)));\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n })\n }),\n stream: Object.freeze({\n asReadableStream: (stream) => new ReadableStreamWrapper(stream),\n asWritableStream: (stream) => new WritableStreamWrapper(stream)\n }),\n console: console,\n timer: Object.freeze({\n setTimeout(callback, ms, ...args) {\n const handle = setTimeout(callback, ms, ...args);\n return { dispose: () => clearTimeout(handle) };\n },\n setImmediate(callback, ...args) {\n const handle = setImmediate(callback, ...args);\n return { dispose: () => clearImmediate(handle) };\n },\n setInterval(callback, ms, ...args) {\n const handle = setInterval(callback, ms, ...args);\n return { dispose: () => clearInterval(handle) };\n }\n })\n});\nfunction RIL() {\n return _ril;\n}\n(function (RIL) {\n function install() {\n 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};\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.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 * ------------------------------------------------------------------------------------------ */\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","\"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.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.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.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 * ------------------------------------------------------------------------------------------ */\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 * ------------------------------------------------------------------------------------------ */\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.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.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.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 *--------------------------------------------------------------------------------------------*/\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.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 * ------------------------------------------------------------------------------------------ */\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.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.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) 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.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) 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.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.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 * ------------------------------------------------------------------------------------------ */\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) 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.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","/* --------------------------------------------------------------------------------------------\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 * ------------------------------------------------------------------------------------------ */\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 node_1 = require(\"vscode-jsonrpc/node\");\n__exportStar(require(\"vscode-jsonrpc/node\"), exports);\n__exportStar(require(\"../common/api\"), exports);\nfunction createProtocolConnection(input, output, logger, options) {\n return (0, node_1.createMessageConnection)(input, output, logger, options);\n}\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","/* --------------------------------------------------------------------------------------------\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 * ------------------------------------------------------------------------------------------ */\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","\"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","\"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","/* --------------------------------------------------------------------------------------------\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","/* --------------------------------------------------------------------------------------------\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","/* --------------------------------------------------------------------------------------------\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","\"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.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","/* --------------------------------------------------------------------------------------------\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.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 * ------------------------------------------------------------------------------------------ */\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","\"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 * ------------------------------------------------------------------------------------------ */\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.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.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","\"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","/* --------------------------------------------------------------------------------------------\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","\"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.FileSystem = void 0;\nexports.uriToFilePath = uriToFilePath;\nexports.resolve = resolve;\nexports.resolveGlobalNodePath = resolveGlobalNodePath;\nexports.resolveGlobalYarnPath = resolveGlobalYarnPath;\nexports.resolveModulePath = resolveModulePath;\nconst url = __importStar(require(\"url\"));\nconst path = __importStar(require(\"path\"));\nconst fs = __importStar(require(\"fs\"));\nconst child_process_1 = require(\"child_process\");\n/**\n * @deprecated Use the `vscode-uri` npm module which provides a more\n * complete implementation of handling VS Code URIs.\n */\nfunction uriToFilePath(uri) {\n const parsed = url.parse(uri);\n if (parsed.protocol !== 'file:' || !parsed.path) {\n return undefined;\n }\n const segments = parsed.path.split('/');\n for (let i = 0, len = segments.length; i < len; i++) {\n segments[i] = decodeURIComponent(segments[i]);\n }\n if (process.platform === 'win32' && segments.length > 1) {\n const first = segments[0];\n const second = segments[1];\n // Do we have a drive letter and we started with a / which is the\n // case if the first segement is empty (see split above)\n if (first.length === 0 && second.length > 1 && second[1] === ':') {\n // Remove first slash\n segments.shift();\n }\n }\n return path.normalize(segments.join('/'));\n}\nfunction isWindows() {\n return process.platform === 'win32';\n}\nfunction resolve(moduleName, nodePath, cwd, tracer) {\n const nodePathKey = 'NODE_PATH';\n const app = [\n 'var p = process;',\n 'p.on(\\'message\\',function(m){',\n 'if(m.c===\\'e\\'){',\n 'p.exit(0);',\n '}',\n 'else if(m.c===\\'rs\\'){',\n 'try{',\n 'var r=require.resolve(m.a);',\n 'p.send({c:\\'r\\',s:true,r:r});',\n '}',\n 'catch(err){',\n 'p.send({c:\\'r\\',s:false});',\n '}',\n '}',\n '});'\n ].join('');\n return new Promise((resolve, reject) => {\n const env = process.env;\n const newEnv = Object.create(null);\n Object.keys(env).forEach(key => newEnv[key] = env[key]);\n if (nodePath && fs.existsSync(nodePath) /* see issue 545 */) {\n if (newEnv[nodePathKey]) {\n newEnv[nodePathKey] = nodePath + path.delimiter + newEnv[nodePathKey];\n }\n else {\n newEnv[nodePathKey] = nodePath;\n }\n if (tracer) {\n tracer(`NODE_PATH value is: ${newEnv[nodePathKey]}`);\n }\n }\n newEnv['ELECTRON_RUN_AS_NODE'] = '1';\n try {\n const cp = (0, child_process_1.fork)('', [], {\n cwd: cwd,\n env: newEnv,\n execArgv: ['-e', app]\n });\n if (cp.pid === void 0) {\n reject(new Error(`Starting process to resolve node module ${moduleName} failed`));\n return;\n }\n cp.on('error', (error) => {\n reject(error);\n });\n cp.on('message', (message) => {\n if (message.c === 'r') {\n cp.send({ c: 'e' });\n if (message.s) {\n resolve(message.r);\n }\n else {\n reject(new Error(`Failed to resolve module: ${moduleName}`));\n }\n }\n });\n const message = {\n c: 'rs',\n a: moduleName\n };\n cp.send(message);\n }\n catch (error) {\n reject(error);\n }\n });\n}\n/**\n * Resolve the global npm package path.\n * @deprecated Since this depends on the used package manager and their version the best is that servers\n * implement this themselves since they know best what kind of package managers to support.\n * @param tracer the tracer to use\n */\nfunction resolveGlobalNodePath(tracer) {\n let npmCommand = 'npm';\n const env = Object.create(null);\n Object.keys(process.env).forEach(key => env[key] = process.env[key]);\n env['NO_UPDATE_NOTIFIER'] = 'true';\n const options = {\n encoding: 'utf8',\n env\n };\n if (isWindows()) {\n npmCommand = 'npm.cmd';\n options.shell = true;\n }\n const handler = () => { };\n try {\n process.on('SIGPIPE', handler);\n const stdout = (0, child_process_1.spawnSync)(npmCommand, ['config', 'get', 'prefix'], options).stdout;\n if (!stdout) {\n if (tracer) {\n tracer(`'npm config get prefix' didn't return a value.`);\n }\n return undefined;\n }\n const prefix = stdout.trim();\n if (tracer) {\n tracer(`'npm config get prefix' value is: ${prefix}`);\n }\n if (prefix.length > 0) {\n if (isWindows()) {\n return path.join(prefix, 'node_modules');\n }\n else {\n return path.join(prefix, 'lib', 'node_modules');\n }\n }\n return undefined;\n }\n catch (err) {\n return undefined;\n }\n finally {\n process.removeListener('SIGPIPE', handler);\n }\n}\n/*\n * Resolve the global yarn pakage path.\n * @deprecated Since this depends on the used package manager and their version the best is that servers\n * implement this themselves since they know best what kind of package managers to support.\n * @param tracer the tracer to use\n */\nfunction resolveGlobalYarnPath(tracer) {\n let yarnCommand = 'yarn';\n const options = {\n encoding: 'utf8'\n };\n if (isWindows()) {\n yarnCommand = 'yarn.cmd';\n options.shell = true;\n }\n const handler = () => { };\n try {\n process.on('SIGPIPE', handler);\n const results = (0, child_process_1.spawnSync)(yarnCommand, ['global', 'dir', '--json'], options);\n const stdout = results.stdout;\n if (!stdout) {\n if (tracer) {\n tracer(`'yarn global dir' didn't return a value.`);\n if (results.stderr) {\n tracer(results.stderr);\n }\n }\n return undefined;\n }\n const lines = stdout.trim().split(/\\r?\\n/);\n for (const line of lines) {\n try {\n const yarn = JSON.parse(line);\n if (yarn.type === 'log') {\n return path.join(yarn.data, 'node_modules');\n }\n }\n catch (e) {\n // Do nothing. Ignore the line\n }\n }\n return undefined;\n }\n catch (err) {\n return undefined;\n }\n finally {\n process.removeListener('SIGPIPE', handler);\n }\n}\nvar FileSystem;\n(function (FileSystem) {\n let _isCaseSensitive = undefined;\n function isCaseSensitive() {\n if (_isCaseSensitive !== void 0) {\n return _isCaseSensitive;\n }\n if (process.platform === 'win32') {\n _isCaseSensitive = false;\n }\n else {\n // convert current file name to upper case / lower case and check if file exists\n // (guards against cases when name is already all uppercase or lowercase)\n _isCaseSensitive = !fs.existsSync(__filename.toUpperCase()) || !fs.existsSync(__filename.toLowerCase());\n }\n return _isCaseSensitive;\n }\n FileSystem.isCaseSensitive = isCaseSensitive;\n function isParent(parent, child) {\n if (isCaseSensitive()) {\n return path.normalize(child).indexOf(path.normalize(parent)) === 0;\n }\n else {\n return path.normalize(child).toLowerCase().indexOf(path.normalize(parent).toLowerCase()) === 0;\n }\n }\n FileSystem.isParent = isParent;\n})(FileSystem || (exports.FileSystem = FileSystem = {}));\nfunction resolveModulePath(workspaceRoot, moduleName, nodePath, tracer) {\n if (nodePath) {\n if (!path.isAbsolute(nodePath)) {\n nodePath = path.join(workspaceRoot, nodePath);\n }\n return resolve(moduleName, nodePath, nodePath, tracer).then((value) => {\n if (FileSystem.isParent(nodePath, value)) {\n return value;\n }\n else {\n return Promise.reject(new Error(`Failed to load ${moduleName} from node path location.`));\n }\n }).then(undefined, (_error) => {\n return resolve(moduleName, resolveGlobalNodePath(tracer), workspaceRoot, tracer);\n });\n }\n else {\n return resolve(moduleName, resolveGlobalNodePath(tracer), workspaceRoot, tracer);\n }\n}\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 __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.Files = void 0;\nexports.createConnection = createConnection;\nconst node_util_1 = require(\"node:util\");\nconst Is = __importStar(require(\"../common/utils/is\"));\nconst server_1 = require(\"../common/server\");\nconst fm = __importStar(require(\"./files\"));\nconst node_1 = require(\"vscode-languageserver-protocol/node\");\n__exportStar(require(\"vscode-languageserver-protocol/node\"), exports);\n__exportStar(require(\"../common/api\"), exports);\nvar Files;\n(function (Files) {\n Files.uriToFilePath = fm.uriToFilePath;\n Files.resolveGlobalNodePath = fm.resolveGlobalNodePath;\n Files.resolveGlobalYarnPath = fm.resolveGlobalYarnPath;\n Files.resolve = fm.resolve;\n Files.resolveModulePath = fm.resolveModulePath;\n})(Files || (exports.Files = Files = {}));\nlet _protocolConnection;\nfunction endProtocolConnection() {\n if (_protocolConnection === undefined) {\n return;\n }\n try {\n _protocolConnection.end();\n }\n catch (_err) {\n // Ignore. The client process could have already\n // did and we can't send an end into the connection.\n }\n}\nlet _shutdownReceived = false;\nlet exitTimer = undefined;\nfunction setupExitTimer() {\n const argName = '--clientProcessId';\n function runTimer(value) {\n try {\n const processId = parseInt(value);\n if (!isNaN(processId)) {\n exitTimer = setInterval(() => {\n try {\n process.kill(processId, 0);\n }\n catch (ex) {\n // Parent process doesn't exist anymore. Exit the server.\n endProtocolConnection();\n process.exit(_shutdownReceived ? 0 : 1);\n }\n }, 3000);\n }\n }\n catch (e) {\n // Ignore errors;\n }\n }\n for (let i = 2; i < process.argv.length; i++) {\n const arg = process.argv[i];\n if (arg === argName && i + 1 < process.argv.length) {\n runTimer(process.argv[i + 1]);\n return;\n }\n else {\n const args = arg.split('=');\n if (args[0] === argName) {\n runTimer(args[1]);\n }\n }\n }\n}\nsetupExitTimer();\nconst watchDog = {\n initialize: (params) => {\n const processId = params.processId;\n if (Is.number(processId) && exitTimer === undefined) {\n // We received a parent process id. Set up a timer to periodically check\n // if the parent is still alive.\n setInterval(() => {\n try {\n process.kill(processId, 0);\n }\n catch (ex) {\n // Parent process doesn't exist anymore. Exit the server.\n process.exit(_shutdownReceived ? 0 : 1);\n }\n }, 3000);\n }\n },\n get shutdownReceived() {\n return _shutdownReceived;\n },\n set shutdownReceived(value) {\n _shutdownReceived = value;\n },\n exit: (code) => {\n endProtocolConnection();\n process.exit(code);\n }\n};\nfunction createConnection(arg1, arg2, arg3, arg4) {\n let factories;\n let input;\n let output;\n let options;\n if (arg1 !== undefined && arg1.__brand === 'features') {\n factories = arg1;\n arg1 = arg2;\n arg2 = arg3;\n arg3 = arg4;\n }\n if (node_1.ConnectionStrategy.is(arg1) || node_1.ConnectionOptions.is(arg1)) {\n options = arg1;\n }\n else {\n input = arg1;\n output = arg2;\n options = arg3;\n }\n return _createConnection(input, output, options, factories);\n}\nfunction _createConnection(input, output, options, factories) {\n let stdio = false;\n if (!input && !output && process.argv.length > 2) {\n let port = undefined;\n let pipeName = undefined;\n const argv = process.argv.slice(2);\n for (let i = 0; i < argv.length; i++) {\n const arg = argv[i];\n if (arg === '--node-ipc') {\n input = new node_1.IPCMessageReader(process);\n output = new node_1.IPCMessageWriter(process);\n break;\n }\n else if (arg === '--stdio') {\n stdio = true;\n input = process.stdin;\n output = process.stdout;\n break;\n }\n else if (arg === '--socket') {\n port = parseInt(argv[i + 1]);\n break;\n }\n else if (arg === '--pipe') {\n pipeName = argv[i + 1];\n break;\n }\n else {\n const args = arg.split('=');\n if (args[0] === '--socket') {\n port = parseInt(args[1]);\n break;\n }\n else if (args[0] === '--pipe') {\n pipeName = args[1];\n break;\n }\n }\n }\n if (port) {\n const transport = (0, node_1.createServerSocketTransport)(port);\n input = transport[0];\n output = transport[1];\n }\n else if (pipeName) {\n const transport = (0, node_1.createServerPipeTransport)(pipeName);\n input = transport[0];\n output = transport[1];\n }\n }\n const commandLineMessage = 'Use arguments of createConnection or set command line parameters: \\'--node-ipc\\', \\'--stdio\\' or \\'--socket={number}\\'';\n if (!input) {\n throw new Error('Connection input stream is not set. ' + commandLineMessage);\n }\n if (!output) {\n throw new Error('Connection output stream is not set. ' + commandLineMessage);\n }\n // Backwards compatibility\n if (Is.func(input.read) && Is.func(input.on)) {\n const inputStream = input;\n inputStream.on('end', () => {\n endProtocolConnection();\n process.exit(_shutdownReceived ? 0 : 1);\n });\n inputStream.on('close', () => {\n endProtocolConnection();\n process.exit(_shutdownReceived ? 0 : 1);\n });\n }\n const connectionFactory = (logger) => {\n const result = (0, node_1.createProtocolConnection)(input, output, logger, options);\n if (stdio) {\n patchConsole(logger);\n }\n return result;\n };\n return (0, server_1.createConnection)(connectionFactory, watchDog, factories);\n}\nfunction patchConsole(logger) {\n function serialize(args) {\n return args.map(arg => typeof arg === 'string' ? arg : (0, node_util_1.inspect)(arg)).join(' ');\n }\n const counters = new Map();\n console.assert = function assert(assertion, ...args) {\n if (assertion) {\n return;\n }\n if (args.length === 0) {\n logger.error('Assertion failed');\n }\n else {\n const [message, ...rest] = args;\n logger.error(`Assertion failed: ${message} ${serialize(rest)}`);\n }\n };\n console.count = function count(label = 'default') {\n const message = String(label);\n let counter = counters.get(message) ?? 0;\n counter += 1;\n counters.set(message, counter);\n logger.log(`${message}: ${message}`);\n };\n console.countReset = function countReset(label) {\n if (label === undefined) {\n counters.clear();\n }\n else {\n counters.delete(String(label));\n }\n };\n console.debug = function debug(...args) {\n logger.log(serialize(args));\n };\n console.dir = function dir(arg, options) {\n logger.log((0, node_util_1.inspect)(arg, options));\n };\n console.log = function log(...args) {\n logger.log(serialize(args));\n };\n console.error = function error(...args) {\n logger.error(serialize(args));\n };\n console.trace = function trace(...args) {\n const stack = new Error().stack.replace(/(.+\\n){2}/, '');\n let message = 'Trace';\n if (args.length !== 0) {\n message += `: ${serialize(args)}`;\n }\n logger.log(`${message}\\n${stack}`);\n };\n console.warn = function warn(...args) {\n logger.warn(serialize(args));\n };\n}\n","module.exports = require(\"child_process\");","module.exports = require(\"crypto\");","module.exports = require(\"fs\");","module.exports = require(\"net\");","module.exports = require(\"node:util\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"url\");","module.exports = require(\"util\");","/* --------------------------------------------------------------------------------------------\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 * ------------------------------------------------------------------------------------------ */\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","var LIB;(()=>{\"use strict\";var t={975:t=>{function e(t){if(\"string\"!=typeof t)throw new TypeError(\"Path must be a string. Received \"+JSON.stringify(t))}function r(t,e){for(var r,n=\"\",i=0,o=-1,s=0,h=0;h<=t.length;++h){if(h<t.length)r=t.charCodeAt(h);else{if(47===r)break;r=47}if(47===r){if(o===h-1||1===s);else if(o!==h-1&&2===s){if(n.length<2||2!==i||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var a=n.lastIndexOf(\"/\");if(a!==n.length-1){-1===a?(n=\"\",i=0):i=(n=n.slice(0,a)).length-1-n.lastIndexOf(\"/\"),o=h,s=0;continue}}else if(2===n.length||1===n.length){n=\"\",i=0,o=h,s=0;continue}e&&(n.length>0?n+=\"/..\":n=\"..\",i=2)}else n.length>0?n+=\"/\"+t.slice(o+1,h):n=t.slice(o+1,h),i=h-o-1;o=h,s=0}else 46===r&&-1!==s?++s:s=-1}return n}var n={resolve:function(){for(var t,n=\"\",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var s;o>=0?s=arguments[o]:(void 0===t&&(t=process.cwd()),s=t),e(s),0!==s.length&&(n=s+\"/\"+n,i=47===s.charCodeAt(0))}return n=r(n,!i),i?n.length>0?\"/\"+n:\"/\":n.length>0?n:\".\"},normalize:function(t){if(e(t),0===t.length)return\".\";var n=47===t.charCodeAt(0),i=47===t.charCodeAt(t.length-1);return 0!==(t=r(t,!n)).length||n||(t=\".\"),t.length>0&&i&&(t+=\"/\"),n?\"/\"+t:t},isAbsolute:function(t){return e(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return\".\";for(var t,r=0;r<arguments.length;++r){var i=arguments[r];e(i),i.length>0&&(void 0===t?t=i:t+=\"/\"+i)}return void 0===t?\".\":n.normalize(t)},relative:function(t,r){if(e(t),e(r),t===r)return\"\";if((t=n.resolve(t))===(r=n.resolve(r)))return\"\";for(var i=1;i<t.length&&47===t.charCodeAt(i);++i);for(var o=t.length,s=o-i,h=1;h<r.length&&47===r.charCodeAt(h);++h);for(var a=r.length-h,c=s<a?s:a,f=-1,u=0;u<=c;++u){if(u===c){if(a>c){if(47===r.charCodeAt(h+u))return r.slice(h+u+1);if(0===u)return r.slice(h+u)}else s>c&&(47===t.charCodeAt(i+u)?f=u:0===u&&(f=0));break}var l=t.charCodeAt(i+u);if(l!==r.charCodeAt(h+u))break;47===l&&(f=u)}var g=\"\";for(u=i+f+1;u<=o;++u)u!==o&&47!==t.charCodeAt(u)||(0===g.length?g+=\"..\":g+=\"/..\");return g.length>0?g+r.slice(h+f):(h+=f,47===r.charCodeAt(h)&&++h,r.slice(h))},_makeLong:function(t){return t},dirname:function(t){if(e(t),0===t.length)return\".\";for(var r=t.charCodeAt(0),n=47===r,i=-1,o=!0,s=t.length-1;s>=1;--s)if(47===(r=t.charCodeAt(s))){if(!o){i=s;break}}else o=!1;return-1===i?n?\"/\":\".\":n&&1===i?\"//\":t.slice(0,i)},basename:function(t,r){if(void 0!==r&&\"string\"!=typeof r)throw new TypeError('\"ext\" argument must be a string');e(t);var n,i=0,o=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=t.length){if(r.length===t.length&&r===t)return\"\";var h=r.length-1,a=-1;for(n=t.length-1;n>=0;--n){var c=t.charCodeAt(n);if(47===c){if(!s){i=n+1;break}}else-1===a&&(s=!1,a=n+1),h>=0&&(c===r.charCodeAt(h)?-1==--h&&(o=n):(h=-1,o=a))}return i===o?o=a:-1===o&&(o=t.length),t.slice(i,o)}for(n=t.length-1;n>=0;--n)if(47===t.charCodeAt(n)){if(!s){i=n+1;break}}else-1===o&&(s=!1,o=n+1);return-1===o?\"\":t.slice(i,o)},extname:function(t){e(t);for(var r=-1,n=0,i=-1,o=!0,s=0,h=t.length-1;h>=0;--h){var a=t.charCodeAt(h);if(47!==a)-1===i&&(o=!1,i=h+1),46===a?-1===r?r=h:1!==s&&(s=1):-1!==r&&(s=-1);else if(!o){n=h+1;break}}return-1===r||-1===i||0===s||1===s&&r===i-1&&r===n+1?\"\":t.slice(r,i)},format:function(t){if(null===t||\"object\"!=typeof t)throw new TypeError('The \"pathObject\" argument must be of type Object. Received type '+typeof t);return function(t,e){var r=e.dir||e.root,n=e.base||(e.name||\"\")+(e.ext||\"\");return r?r===e.root?r+n:r+\"/\"+n:n}(0,t)},parse:function(t){e(t);var r={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(0===t.length)return r;var n,i=t.charCodeAt(0),o=47===i;o?(r.root=\"/\",n=1):n=0;for(var s=-1,h=0,a=-1,c=!0,f=t.length-1,u=0;f>=n;--f)if(47!==(i=t.charCodeAt(f)))-1===a&&(c=!1,a=f+1),46===i?-1===s?s=f:1!==u&&(u=1):-1!==s&&(u=-1);else if(!c){h=f+1;break}return-1===s||-1===a||0===u||1===u&&s===a-1&&s===h+1?-1!==a&&(r.base=r.name=0===h&&o?t.slice(1,a):t.slice(h,a)):(0===h&&o?(r.name=t.slice(1,s),r.base=t.slice(1,a)):(r.name=t.slice(h,s),r.base=t.slice(h,a)),r.ext=t.slice(s,a)),h>0?r.dir=t.slice(0,h-1):o&&(r.dir=\"/\"),r},sep:\"/\",delimiter:\":\",win32:null,posix:null};n.posix=n,t.exports=n}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})};var n={};let i;if(r.r(n),r.d(n,{URI:()=>l,Utils:()=>I}),\"object\"==typeof process)i=\"win32\"===process.platform;else if(\"object\"==typeof navigator){let t=navigator.userAgent;i=t.indexOf(\"Windows\")>=0}const o=/^\\w[\\w\\d+.-]*$/,s=/^\\//,h=/^\\/\\//;function a(t,e){if(!t.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${t.authority}\", path: \"${t.path}\", query: \"${t.query}\", fragment: \"${t.fragment}\"}`);if(t.scheme&&!o.test(t.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(t.path)if(t.authority){if(!s.test(t.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(h.test(t.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}const c=\"\",f=\"/\",u=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;class l{static isUri(t){return t instanceof l||!!t&&\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"string\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString}scheme;authority;path;query;fragment;constructor(t,e,r,n,i,o=!1){\"object\"==typeof t?(this.scheme=t.scheme||c,this.authority=t.authority||c,this.path=t.path||c,this.query=t.query||c,this.fragment=t.fragment||c):(this.scheme=function(t,e){return t||e?t:\"file\"}(t,o),this.authority=e||c,this.path=function(t,e){switch(t){case\"https\":case\"http\":case\"file\":e?e[0]!==f&&(e=f+e):e=f}return e}(this.scheme,r||c),this.query=n||c,this.fragment=i||c,a(this,o))}get fsPath(){return v(this,!1)}with(t){if(!t)return this;let{scheme:e,authority:r,path:n,query:i,fragment:o}=t;return void 0===e?e=this.scheme:null===e&&(e=c),void 0===r?r=this.authority:null===r&&(r=c),void 0===n?n=this.path:null===n&&(n=c),void 0===i?i=this.query:null===i&&(i=c),void 0===o?o=this.fragment:null===o&&(o=c),e===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&o===this.fragment?this:new d(e,r,n,i,o)}static parse(t,e=!1){const r=u.exec(t);return r?new d(r[2]||c,w(r[4]||c),w(r[5]||c),w(r[7]||c),w(r[9]||c),e):new d(c,c,c,c,c)}static file(t){let e=c;if(i&&(t=t.replace(/\\\\/g,f)),t[0]===f&&t[1]===f){const r=t.indexOf(f,2);-1===r?(e=t.substring(2),t=f):(e=t.substring(2,r),t=t.substring(r)||f)}return new d(\"file\",e,t,c,c)}static from(t){const e=new d(t.scheme,t.authority,t.path,t.query,t.fragment);return a(e,!0),e}toString(t=!1){return b(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof l)return t;{const e=new d(t);return e._formatted=t.external,e._fsPath=t._sep===g?t.fsPath:null,e}}return t}}const g=i?1:void 0;class d extends l{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=v(this,!1)),this._fsPath}toString(t=!1){return t?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)}toJSON(){const t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=g),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}}const p={58:\"%3A\",47:\"%2F\",63:\"%3F\",35:\"%23\",91:\"%5B\",93:\"%5D\",64:\"%40\",33:\"%21\",36:\"%24\",38:\"%26\",39:\"%27\",40:\"%28\",41:\"%29\",42:\"%2A\",43:\"%2B\",44:\"%2C\",59:\"%3B\",61:\"%3D\",32:\"%20\"};function m(t,e,r){let n,i=-1;for(let o=0;o<t.length;o++){const s=t.charCodeAt(o);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||e&&47===s||r&&91===s||r&&93===s||r&&58===s)-1!==i&&(n+=encodeURIComponent(t.substring(i,o)),i=-1),void 0!==n&&(n+=t.charAt(o));else{void 0===n&&(n=t.substr(0,o));const e=p[s];void 0!==e?(-1!==i&&(n+=encodeURIComponent(t.substring(i,o)),i=-1),n+=e):-1===i&&(i=o)}}return-1!==i&&(n+=encodeURIComponent(t.substring(i))),void 0!==n?n:t}function y(t){let e;for(let r=0;r<t.length;r++){const n=t.charCodeAt(r);35===n||63===n?(void 0===e&&(e=t.substr(0,r)),e+=p[n]):void 0!==e&&(e+=t[r])}return void 0!==e?e:t}function v(t,e){let r;return r=t.authority&&t.path.length>1&&\"file\"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?e?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,i&&(r=r.replace(/\\//g,\"\\\\\")),r}function b(t,e){const r=e?y:m;let n=\"\",{scheme:i,authority:o,path:s,query:h,fragment:a}=t;if(i&&(n+=i,n+=\":\"),(o||\"file\"===i)&&(n+=f,n+=f),o){let t=o.indexOf(\"@\");if(-1!==t){const e=o.substr(0,t);o=o.substr(t+1),t=e.lastIndexOf(\":\"),-1===t?n+=r(e,!1,!1):(n+=r(e.substr(0,t),!1,!1),n+=\":\",n+=r(e.substr(t+1),!1,!0)),n+=\"@\"}o=o.toLowerCase(),t=o.lastIndexOf(\":\"),-1===t?n+=r(o,!1,!0):(n+=r(o.substr(0,t),!1,!0),n+=o.substr(t))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){const t=s.charCodeAt(1);t>=65&&t<=90&&(s=`/${String.fromCharCode(t+32)}:${s.substr(3)}`)}else if(s.length>=2&&58===s.charCodeAt(1)){const t=s.charCodeAt(0);t>=65&&t<=90&&(s=`${String.fromCharCode(t+32)}:${s.substr(2)}`)}n+=r(s,!0,!1)}return h&&(n+=\"?\",n+=r(h,!1,!1)),a&&(n+=\"#\",n+=e?a:m(a,!1,!1)),n}function C(t){try{return decodeURIComponent(t)}catch{return t.length>3?t.substr(0,3)+C(t.substr(3)):t}}const A=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function w(t){return t.match(A)?t.replace(A,(t=>C(t))):t}var x=r(975);const P=x.posix||x,_=\"/\";var I;!function(t){t.joinPath=function(t,...e){return t.with({path:P.join(t.path,...e)})},t.resolvePath=function(t,...e){let r=t.path,n=!1;r[0]!==_&&(r=_+r,n=!0);let i=P.resolve(r,...e);return n&&i[0]===_&&!t.authority&&(i=i.substring(1)),t.with({path:i})},t.dirname=function(t){if(0===t.path.length||t.path===_)return t;let e=P.dirname(t.path);return 1===e.length&&46===e.charCodeAt(0)&&(e=\"\"),t.with({path:e})},t.basename=function(t){return P.basename(t.path)},t.extname=function(t){return P.extname(t.path)}}(I||(I={})),LIB=n})();export const{URI,Utils}=LIB;\n//# sourceMappingURL=index.mjs.map","// 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].call(module.exports, 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};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(639);\n"],"names":["original","modified","pretty","LcsDiff","StringDiffSequence","ComputeDiff","changes","source","constructor","getElements","this","characters","Int32Array","length","i","len","charCodeAt","DiffChange","originalStart","originalLength","modifiedStart","modifiedLength","getOriginalEnd","getModifiedEnd","Debug","Assert","condition","message","Error","MyArray","Copy","sourceArray","sourceIndex","destinationArray","destinationIndex","Copy2","DiffChangeHelper","m_changes","m_originalStart","m_modifiedStart","m_originalCount","m_modifiedCount","MarkNextChange","push","AddOriginalElement","originalIndex","modifiedIndex","Math","min","AddModifiedElement","getChanges","getReverseChanges","reverse","ContinueProcessingPredicate","_hasStrings","_originalStringElements","_originalElementsOrHash","_modifiedStringElements","_modifiedElementsOrHash","m_forwardHistory","m_reverseHistory","originalSequence","modifiedSequence","continueProcessingPredicate","originalStringElements","originalElementsOrHash","originalHasStrings","_getElements","modifiedStringElements","modifiedElementsOrHash","modifiedHasStrings","sequence","elements","ElementsAreEqual","newIndex","OriginalElementsAreEqual","index1","index2","ModifiedElementsAreEqual","_ComputeDiff","originalEnd","modifiedEnd","quitEarlyArr","ComputeDiffRecursive","PrettifyChanges","quitEarly","midOriginalArr","midModifiedArr","result","ComputeRecursionPoint","midOriginal","midModified","leftChanges","rightChanges","ConcatenateChanges","WALKTRACE","diagonalForwardBase","diagonalForwardStart","diagonalForwardEnd","diagonalForwardOffset","diagonalReverseBase","diagonalReverseStart","diagonalReverseEnd","diagonalReverseOffset","forwardPoints","reversePoints","deltaIsEven","forwardChanges","reverseChanges","changeHelper","diagonalMin","diagonalMax","diagonalRelative","lastOriginalIndex","historyIndex","diagonal","originalStartPoint","modifiedStartPoint","lastForwardChange","max","maxDifferences","numDiagonals","numDifferences","furthestOriginalIndex","furthestModifiedIndex","ClipDiagonalBound","tempOriginalIndex","abs","matchLengthOfLongest","temp","change","originalStop","modifiedStop","checkOriginal","checkModified","mergedChangeArr","ChangesOverlap","splice","prevChange","bestDelta","bestScore","_boundaryScore","delta","score","_OriginalIsBoundary","index","test","_OriginalRegionIsBoundary","_ModifiedIsBoundary","_ModifiedRegionIsBoundary","left","right","Array","diagonalBaseIndex","diffEven","TextDocumentSettings","ESLintError","RuleMetaData","Problem","FixableProblem","SuggestionsProblem","ESLintClass","ESLintModule","RuleData","CLIEngine","SaveRuleConfigs","RuleSeverities","Diagnostics","CodeActions","ESLint","hasLibrary","settings","undefined","library","isNoConfigFound","error","candidate","messageTemplate","unusedDisableDirectiveId","unusedDisableDirectiveMeta","docs","url","type","handled","Set","ruleId2Meta","Map","capture","eslint","reports","rulesMetaData","isCLIEngine","toHandle","filter","report","has","filePath","getRulesMetaForResults","forEach","add","Object","entries","key","meta","Is","string","set","clear","getUrl","ruleId","get","getType","hasRuleId","isUnusedDisableDirectiveProblem","problem","startsWith","isFixable","edit","hasSuggestions","suggestions","createTextEdit","document","editInfo","TextEdit","replace","Range","create","positionAt","range","text","suggestion","fix","getConfigType","configType","hasLoadESLint","value","loadESLint","hasESLintClass","hasCLIEngine","isFlatConfig","hasMetaType","hasRule","getRules","ESLintClassEmulator","cli","lintText","content","options","executeOnText","warnIgnored","results","isPathIgnored","path","_results","rules","name","rule","calculateConfigForFile","getConfigForFile","Fixes","edits","overlaps","a","b","sameRange","isEmpty","size","getDocumentVersion","values","next","documentVersion","getScoped","diagnostics","diagnostic","computeKey","getAllSorted","sort","d0","al","bl","getApplicable","sorted","last","current","saveRuleConfigCache","LRUCache","isOff","matchers","matcher","RegExp","slice","async","uri","inferFilePath","useRealpaths","codeActionOnSave","withClass","config","offRules","onRules","keys","remove","delete","ruleSeverityCache","asteriskMatches","getOverride","customizations","customization","fixable","severity","adjustSeverityForOverride","severityOverride","RuleSeverity","off","info","warn","downgrade","convertSeverityToDiagnostic","DiagnosticSeverity","Warning","Information","upgrade","hash","crypto","createHash","update","digest","start","line","character","end","code","startLine","Number","isNaN","startChar","column","endLine","endChar","endColumn","problems","shortenToSingleLine","getText","uinteger","MAX_VALUE","override","rulesCustomizations","codeDescription","href","tags","DiagnosticTag","Unnecessary","codeActions","record","label","version","connection","documents","loadNodeModule","languageId2ParserRegExp","typescript","babelESLint","vueESLint","languageId2ParserOptions","regExps","parsers","parserRegExps","languageId2PluginName","defaultLanguageIds","projectFolderIndicators","fileName","isRoot","path2Library","document2Settings","formatterRegistrations","newClass","newOptions","useFlatConfig","useESLintClass","func","assign","cwd","process","workingDirectory","newCWD","normalizeDriveLetter","sep","substring","normalizeWorkingDirectory","directory","fs","existsSync","chdir","eslintClass","getFilePath","URI","parse","scheme","workspaceFolder","ext","getExtension","languageId","workspacePath","join","initialize","$connection","$documents","$inferFilePath","$loadNodeModule","removeSettings","clearSettings","unregisterAsFormatter","unregister","then","disposable","dispose","clearFormatters","unregistration","resolveSettings","resultPromise","workspace","getConfiguration","scopeUri","section","configuration","silent","resolvedGlobalPackageManagerPath","validate","Validate","GlobalPaths","packageManager","workspaceFolderPath","assumeFlatConfig","hasUserDefinedWorkingDirectories","workingDirectoryConfig","mode","ModeEnum","location","ModeItem","is","configLocation","findWorkingDirectory","isUNC","dirname","auto","nodePath","moduleResolveWorkingDirectory","promise","isAbsolute","eslintPath","experimental","Files","resolve","trace","probe","libraryPath","lib","console","FlatESLint","esLintVersion","semverParse","semverGte","pluginName","parserOptions","isIgnored","onIgnoredFiles","ESLintSeverity","on","sendNotification","StatusNotification","state","Status","stack","eslintConfig","err","parser","normalizePath","regExp","eslintConfigParserOptionsParser","some","parserRegExp","isArray","plugins","params","textDocument","sendRequest","ProbeFailedRequest","format","Uri","isFile","pattern","fsPath","documentSelector","client","register","DocumentFormattingRequest","NoESLintLibraryRequest","validFixTypes","verbose","tracer","log","ErrorHandlers","file","indexOf","flatConfig","outer","parent","fixTypes","item","reportResults","docReport","messages","quiet","globalPaths","yarn","cache","resolveGlobalYarnPath","npm","resolveGlobalNodePath","pnpm","execSync","toString","trim","pm","getMessage","String","substr","single","noConfigReported","NoConfigRequest","handleFileName","filename","configErrorReported","window","showInformationMessage","matches","exec","plugin","module","missingModuleReported","handleMissingModule","clearNoConfigReported","getConfigErrorReported","removeConfigErrorReported","clearMissingModuleReported","createConnection","ProposedFeatures","all","connectionStrategy","cancelUndispatched","isRequest","method","jsonrpc","id","maxParallelism","clientCapabilities","TextDocuments","TextDocument","notebooks","NotebookDocuments","nodeExit","exit","documentOrUri","getUri","getFileSystemPath","notebookDocument","findNotebookDocumentForCell","extension","extname","environmentChanged","languages","refresh","catch","CommandIds","ExitCalled","setTimeout","JSON","stringify","e","moduleName","r","onDidClose","event","applySingleFix","applySuggestion","applySameFixes","applyAllFixes","applyDisableLine","applyDisableFile","openRuleDoc","onInitialize","_cancel","progress","begin","syncKind","TextDocumentSyncKind","Incremental","capabilities","done","textDocumentSync","openClose","willSaveWaitUntil","save","includeText","workspaceFolders","supported","executeCommandProvider","commands","diagnosticProvider","identifier","interFileDependencies","workspaceDiagnostics","codeAction","codeActionLiteralSupport","codeActionKind","valueSet","codeActionProvider","codeActionKinds","CodeActionKind","QuickFix","SourceFixAll","onInitialized","didChangeConfiguration","dynamicRegistration","onDidChangeConfiguration","_params","DidChangeConfigurationNotification","onDidChangeWorkspaceFolders","emptyDiagnosticResult","kind","DocumentDiagnosticReportKind","Full","items","Date","now","timeTaken","ok","validationTime","status","handler","onDidChangeWatchedFiles","Promise","map","data","CodeActionResult","_actions","_fixAll","fixes","fixAll","actions","disable","disableFile","showDocumentation","CommandParams","isUsable","ESLintSourceFixAll","AllFixesMode","computeAllFixes","originalContent","onSave","CodeActionsOnSaveMode","saveConfig","overrideOptions","eslintOptions","overrideConfig","output","fixedContent","diffs","stringDiff","diff","newText","onCodeAction","createCodeAction","title","commandId","arg","command","Command","action","CodeAction","getDisableRuleEditInsertionIndex","commentTags","charIndex","escapeStringRegexp","createDisableLineTextEdit","indentationText","lineComment","getLineComment","blockComment","getBlockComment","prevLine","Position","insertionIndex","insert","disableRuleContent","disableRuleComment","commentStyle","EOL","createDisableSameLineTextEdit","currentLine","matchedLineDisable","matchedBlockDisable","createDisableFileTextEdit","block","getLastEdit","array","run","only","context","isSource","Source","isSourceFixAll","textDocumentIdentifier","documentChanges","TextDocumentEdit","allFixableRuleIds","workspaceChange","WorkspaceChange","getTextEditChange","isPreferred","suggestionSequence","desc","enable","lineText","sameProblems","s","same","sameFixes","sameTextChange","onExecuteCommand","commandParams","arguments","textChange","OpenESLintDocRequest","applyEdit","response","applied","onDocumentFormatting","listen","call","prototype","languageId2Config","LanguageDefaults","Touch","None","First","AsOld","Last","AsNew","LinkedMap","Symbol","toStringTag","_map","_head","_tail","_size","_state","first","touch","previous","addItemLast","addItemFirst","removeItem","shift","callbackfn","thisArg","bind","iterator","trimOld","newSize","currentSize","toJSON","fromJSON","_limit","_ratio","limit","ratio","super","checkTrim","peek","round","platform","toUpperCase","pos","tryRealpath","realpath","toLowerCase","realpathSync","native","ShowOutputChannel","NotificationType","RequestType","NotificationType0","CodeActionsOnSaveRules","CodeActionsOnSaveOptions","DirectoryItem","boolean","from","debug","MAX_LENGTH","MAX_SAFE_INTEGER","safeRe","re","t","parseOptions","compareIdentifiers","SemVer","loose","includePrerelease","TypeError","m","match","LOOSE","FULL","raw","major","minor","patch","prerelease","split","num","build","compare","other","compareMain","comparePre","compareBuild","inc","release","identifierBase","PRERELEASELOOSE","PRERELEASE","base","exports","throwErrors","er","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","env","NODE_DEBUG","args","numeric","anum","bnum","rcompareIdentifiers","looseOption","freeze","emptyOpts","src","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","BUILD","FULLPLAIN","MAINVERSIONLOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","__importDefault","mod","__esModule","defineProperty","ProgressType","ProgressToken","createMessageConnection","NullLogger","ConnectionOptions","ConnectionStrategy","AbstractMessageBuffer","WriteableStreamMessageWriter","AbstractMessageWriter","MessageWriter","ReadableStreamMessageReader","AbstractMessageReader","MessageReader","SharedArrayReceiverStrategy","SharedArraySenderStrategy","CancellationToken","CancellationTokenSource","Emitter","Event","Disposable","ParameterStructures","NotificationType9","NotificationType8","NotificationType7","NotificationType6","NotificationType5","NotificationType4","NotificationType3","NotificationType2","NotificationType1","ErrorCodes","ResponseError","RequestType9","RequestType8","RequestType7","RequestType6","RequestType5","RequestType4","RequestType3","RequestType2","RequestType1","RequestType0","Message","RAL","MessageStrategy","CancellationStrategy","CancellationSenderStrategy","RequestCancellationReceiverStrategy","IdCancellationReceiverStrategy","CancellationReceiverStrategy","ConnectionError","ConnectionErrors","LogTraceNotification","SetTraceNotification","TraceFormat","TraceValues","TraceValue","Trace","messages_1","enumerable","linkedMap_1","disposable_1","events_1","cancellation_1","sharedArrayCancellation_1","messageReader_1","messageWriter_1","messageBuffer_1","connection_1","ral_1","default","ownKeys","__createBinding","o","k","k2","getOwnPropertyDescriptor","writable","configurable","__setModuleDefault","v","__importStar","getOwnPropertyNames","ar","hasOwnProperty","isCancellationRequested","onCancellationRequested","Cancelled","shortcutEvent","callback","handle","timer","MutableToken","_isCancelled","_emitter","cancel","fire","_token","messageReader","messageWriter","_logger","logger","sequenceNumber","notificationSequenceNumber","unknownResponseSequenceNumber","starRequestHandler","inFlight","requestHandlers","starNotificationHandler","notificationHandlers","progressHandlers","messageQueue","responsePromises","knownCanceledRequests","requestTokens","Off","traceFormat","Text","ConnectionState","New","errorEmitter","closeEmitter","unhandledNotificationEmitter","unhandledProgressEmitter","disposeEmitter","cancellationStrategy","_message","isListening","Listening","isClosed","Closed","isDisposed","Disposed","closeHandler","createRequestQueueKey","triggerMessageQueue","setImmediate","messageStrategy","handleMessage","requestMessage","reply","resultOrError","startTime","toJson","traceSendingResponse","write","replyError","Verbose","Compact","stringifyTrace","logLSPMessage","traceReceivedRequest","element","requestHandler","tokenKey","cancellationSource","receiver","createCancellationTokenSource","handlerResult","numberOfParams","InvalidParams","parameterStructures","byName","byPosition","InternalError","MethodNotFound","handleRequest","isNotification","notificationHandler","CancelNotification","cancelId","traceReceivedNotification","ProgressNotification","handleNotification","isResponse","handleResponse","responseMessage","number","responseHandler","reject","handleInvalidMessage","onClose","onError","toCancel","strategy","cancellationToken","queue","addMessageToQueue","responsePromise","timerStart","traceReceivedResponse","lspMessage","isLSPMessage","timestamp","throwIfClosedOrDisposed","undefinedToNull","param","nullToUndefined","isNamedParam","computeSingleParam","computeMessageParams","messageParams","paramStart","paramEnd","notificationMessage","traceSendingNotification","onNotification","onProgress","_type","sendProgress","onUnhandledProgress","sendCancellation","p","sender","throwIfNotListening","tokenWasCancelled","traceSendingRequest","enableCancellation","cleanup","MessageWriteError","onRequest","StarRequestHandler","hasPendingResponse","_value","_tracer","sendNotificationOrTraceOptions","_sendNotification","_traceFormat","onUnhandledNotification","onDispose","PendingResponseRejected","AlreadyListening","throwIfListening","inspect","__","_pr","Messages","fromString","setPrototypeOf","_","conn","_disposable","CallbackList","_callbacks","_contexts","bucket","foundCallbackWithDifferentContext","invoke","ret","callbacks","contexts","apply","_options","static","_event","listener","thisArgs","disposables","onFirstListenerAdd","_noop","onLastListenerRemove","stringArray","every","elem","before","after","_encoding","_chunks","_totalLength","encoding","append","chunk","toAppend","byteLength","tryReadHeaders","lowerCaseKeys","chunkIndex","offset","chunkBytesRead","row","buffer","_read","headers","header","tryReadBody","numberOfBytes","byteCount","emptyBuffer","asNative","allocNative","resultOffset","chunkPart","semaphore_1","ResolvedMessageReaderOptions","onPartialMessage","partialMessageEmitter","fireError","asError","fireClose","firePartialMessage","fromOptions","charset","contentDecoder","contentDecoders","contentTypeDecoder","contentTypeDecoders","decoder","applicationJson","readable","nextMessageLength","messageToken","partialMessageTimer","_partialMessageTimeout","readSemaphore","messageBuffer","Semaphore","partialMessageTimeout","timeout","onData","contentLength","fromEntries","parseInt","body","setPartialMessageTimer","clearPartialMessageTimer","lock","bytes","decode","waitingTime","ResolvedMessageWriterOptions","count","contentTypeEncoder","encoder","contentEncoder","errorCount","writeSemaphore","msg","encode","doWrite","handleError","AbstractMessageSignature","ParseError","InvalidRequest","jsonrpcReservedErrorRangeStart","serverErrorStart","MessageReadError","ConnectionInactive","ServerNotInitialized","UnknownErrorCode","jsonrpcReservedErrorRangeEnd","serverErrorEnd","_parameterStructures","_ral","install","ral","_capacity","_active","_waiting","capacity","thunk","runNext","active","doRunNext","CancellationState","Continue","buffers","request","SharedArrayBuffer","$cancellationData","_conn","Atomics","store","SharedArrayBufferCancellationToken","load","SharedArrayBufferCancellationTokenSource","__exportStar","StreamMessageWriter","StreamMessageReader","SocketMessageWriter","SocketMessageReader","PortMessageWriter","PortMessageReader","IPCMessageWriter","IPCMessageReader","generateRandomPipeName","crypto_1","randomBytes","randomLength","tmpDir","XDG_RUNTIME_DIR","os","tmpdir","safeIpcPathLengths","randomSuffix","floor","createClientPipeTransport","pipeName","connectResolve","connected","_reject","server","net_1","createServer","socket","close","removeListener","onConnected","createServerPipeTransport","createClientSocketTransport","port","createServerSocketTransport","input","api_1","reader","read","addListener","isReadableStream","writer","isWritableStream","ril_1","eventEmitter","send","postMessage","stream","asReadableStream","asWritableStream","destroy","util_1","MessageBuffer","Buffer","allocUnsafe","TextDecoder","ReadableStreamWrapper","onEnd","WritableStreamWrapper","_ril","ms","clearTimeout","clearImmediate","setInterval","clearInterval","RIL","LSPErrorCodes","createProtocolConnection","lspReservedErrorRangeStart","RequestFailed","ServerCancelled","ContentModified","RequestCancelled","lspReservedErrorRangeEnd","vscode_jsonrpc_1","CM","ProtocolNotificationType","ProtocolNotificationType0","ProtocolRequestType","ProtocolRequestType0","RegistrationType","MessageDirection","____","___","CallHierarchyOutgoingCallsRequest","CallHierarchyIncomingCallsRequest","CallHierarchyPrepareRequest","messageDirection","clientToServer","ColorPresentationRequest","DocumentColorRequest","ConfigurationRequest","serverToClient","DeclarationRequest","DiagnosticRefreshRequest","WorkspaceDiagnosticRequest","DocumentDiagnosticRequest","DiagnosticServerCancellationData","retriggerRequest","Unchanged","partialResult","WillDeleteFilesRequest","DidDeleteFilesNotification","DidRenameFilesNotification","WillRenameFilesRequest","DidCreateFilesNotification","WillCreateFilesRequest","FileOperationPatternKind","folder","FoldingRangeRefreshRequest","FoldingRangeRequest","ImplementationRequest","InlayHintRefreshRequest","InlayHintResolveRequest","InlayHintRequest","InlineCompletionRequest","InlineValueRefreshRequest","InlineValueRequest","CodeActionRequest","DocumentSymbolRequest","DocumentHighlightRequest","ReferencesRequest","DefinitionRequest","SignatureHelpRequest","SignatureHelpTriggerKind","HoverRequest","CompletionResolveRequest","CompletionRequest","CompletionTriggerKind","PublishDiagnosticsNotification","WatchKind","GlobPattern","RelativePattern","FileChangeType","DidChangeWatchedFilesNotification","WillSaveTextDocumentWaitUntilRequest","WillSaveTextDocumentNotification","TextDocumentSaveReason","DidSaveTextDocumentNotification","DidCloseTextDocumentNotification","DidChangeTextDocumentNotification","TextDocumentContentChangeEvent","DidOpenTextDocumentNotification","TelemetryEventNotification","LogMessageNotification","ShowMessageRequest","ShowMessageNotification","MessageType","ExitNotification","ShutdownRequest","InitializedNotification","InitializeErrorCodes","InitializeRequest","WorkDoneProgressOptions","TextDocumentRegistrationOptions","StaticRegistrationOptions","PositionEncodingKind","RegularExpressionEngineKind","FailureHandlingKind","ResourceOperationKind","UnregistrationRequest","RegistrationRequest","DocumentSelector","NotebookCellTextDocumentFilter","NotebookDocumentFilter","TextDocumentFilter","UniquenessLevel","LinkedEditingRangeRequest","ShowDocumentRequest","SemanticTokensRegistrationType","SemanticTokensRefreshRequest","SemanticTokensRangeRequest","SemanticTokensDeltaRequest","SemanticTokensRequest","TokenFormat","WorkDoneProgressCancelNotification","WorkDoneProgressCreateRequest","WorkDoneProgress","SelectionRangeRequest","DidChangeWorkspaceFoldersNotification","WorkspaceFoldersRequest","TypeDefinitionRequest","ApplyWorkspaceEditRequest","ExecuteCommandRequest","PrepareRenameRequest","RenameRequest","PrepareSupportDefaultBehavior","DocumentOnTypeFormattingRequest","DocumentRangesFormattingRequest","DocumentRangeFormattingRequest","DocumentLinkResolveRequest","DocumentLinkRequest","CodeLensRefreshRequest","CodeLensResolveRequest","CodeLensRequest","WorkspaceSymbolResolveRequest","WorkspaceSymbolRequest","CodeActionResolveRequest","TextDocumentContentRefreshRequest","TextDocumentContentRequest","DidCloseNotebookDocumentNotification","DidSaveNotebookDocumentNotification","DidChangeNotebookDocumentNotification","NotebookCellArrayChange","DidOpenNotebookDocumentNotification","NotebookDocumentSyncRegistrationType","NotebookDocument","NotebookCell","ExecutionSummary","NotebookCellKind","TypeHierarchySupertypesRequest","TypeHierarchySubtypesRequest","TypeHierarchyPrepareRequest","MonikerRequest","MonikerKind","vscode_languageserver_types_1","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","language","objectLiteral","notebookType","notebook","Create","Rename","Delete","Abort","Transactional","TextOnlyTransactional","Undo","ES2020","UTF8","UTF16","UTF32","hasId","workDoneProgress","hasWorkDoneProgress","unknownProtocolVersion","Info","Log","isIncremental","rangeLength","isFull","Manual","AfterDelay","FocusOut","Created","Changed","Deleted","baseUri","WorkspaceFolder","Change","Invoked","TriggerCharacter","TriggerForIncompleteCompletions","ContentChange","Identifier","project","group","global","$import","$export","local","Markup","Code","executionOrder","success","equals","one","equalsMetadata","oneArray","otherArray","oneKeys","otherKeys","prop","DocumentUri","metadata","two","executionSummary","cells","integer","typedArray","registrationMethod","deleteCount","Relative","check","node_1","SemanticTokensBuilder","semanticTokens_1","ic","tdc","textDocuments_1","notebook_1","__brand","TextDocumentContentFeature","InlineCompletionFeature","CallHierarchyFeature","vscode_languageserver_protocol_1","Base","callHierarchy","onPrepare","attachWorkDoneProgress","onIncomingCalls","attachPartialResultProgress","onOutgoingCalls","ConfigurationFeature","_getConfiguration","DiagnosticFeature","onWorkspace","FileOperationsFeature","onDidCreateFiles","onDidRenameFiles","onDidDeleteFiles","onWillCreateFiles","onWillRenameFiles","onWillDeleteFiles","FoldingRangeFeature","foldingRange","InlayHintFeature","inlayHint","inlineCompletion","InlineValueFeature","inlineValue","LinkedEditingRangeFeature","onLinkedEditingRange","MonikerFeature","moniker","NotebookSyncFeature","synchronization","onDidOpenNotebookDocument","onDidChangeNotebookDocument","onDidSaveNotebookDocument","onDidCloseNotebookDocument","CellTextDocumentConnection","openHandler","changeHandler","onDidOpenTextDocument","openTextDocument","onDidChangeTextDocument","changeTextDocument","onDidCloseTextDocument","closeTextDocument","onWillSaveTextDocument","NULL_DISPOSE","onWillSaveTextDocumentWaitUntil","onDidSaveTextDocument","notebookDocuments","notebookCellMap","_onDidOpen","_onDidSave","_onDidChange","_onDidClose","_cellTextDocuments","configurationOrTextDocuments","cellTextDocuments","getCellTextDocument","cell","getNotebookDocument","getNotebookCell","onDidOpen","onDidSave","onDidChange","cellTextDocumentConnection","cellTextDocument","updateCellMap","oldMetadata","metadataChanged","opened","closed","changedCells","structure","didOpen","open","didClose","cellUpdates","old","new","textContent","contentChanges","changeEvent","added","removed","changed","ProgressFeature","attachWorkDone","workDoneToken","NullProgressReporter","WorkDoneProgressReporterImpl","attachPartialResult","partialResultToken","ResultProgressReporterImpl","uuid_1","_connection","Instances","percentage","cancellable","arg0","arg1","WorkDoneProgressServerReporterImpl","_source","NullProgressServerReporter","ResultProgress","_progressSupported","createWorkDoneProgress","generateUuid","SemanticTokensDiff","SemanticTokensFeature","semanticTokens","onDelta","onRange","computeDiff","startIndex","originalEndIndex","modifiedEndIndex","newData","_id","_prevLine","_prevChar","_dataIsSortedAndDeltaEncoded","_data","_dataNonDelta","_dataLen","_prevData","char","tokenType","tokenModifiers","_deltaDecode","pushLine","pushChar","dataSource","tokenCount","prevChar","dstOffset","_sortAndDeltaEncode","aLine","bLine","srcOffset","getFinalDataDelta","previousResult","resultId","canBuildEdits","buildEdits","_NotebooksImpl","_LanguagesImpl","BulkUnregistration","BulkRegistration","ErrorMessageTracker","combineConsoleFeatures","combineTelemetryFeatures","combineTracerFeatures","combineClientFeatures","combineWindowFeatures","combineWorkspaceFeatures","combineLanguagesFeatures","combineNotebooksFeatures","combineFeatures","combine","telemetry","connectionFactory","watchDog","factories","RemoteConsoleImpl","rawAttach","TracerImpl","TelemetryImpl","RemoteClientImpl","remoteWindow","RemoteWindowImpl","RemoteWorkspaceImpl","LanguagesImpl","NotebooksImpl","allRemotes","shutdownHandler","initializeHandler","exitHandler","protocolConnection","onShutdown","onExit","__textDocumentSync","sendDiagnostics","onHover","progress_1","onCompletion","onCompletionResolve","onSignatureHelp","onDeclaration","onDefinition","onTypeDefinition","onImplementation","onReferences","onDocumentHighlight","onDocumentSymbol","onWorkspaceSymbol","onWorkspaceSymbolResolve","onCodeActionResolve","onCodeLens","onCodeLensResolve","onDocumentRangeFormatting","onDocumentOnTypeFormatting","onRenameRequest","onPrepareRename","onDocumentLinks","onDocumentLinkResolve","onDocumentColor","onColorPresentation","onFoldingRanges","onSelectionRanges","remote","attach","thenable","resolved","fillServerCapabilities","shutdownReceived","UUID","configuration_1","workspaceFolder_1","callHierarchy_1","showDocument_1","fileOperations_1","linkedEditingRange_1","typeHierarchy_1","inlineValue_1","foldingRange_1","inlayHint_1","diagnostic_1","moniker_1","null2Undefined","_messages","sendErrors","showErrorMessage","_rawConnection","_capabilities","ShowDocumentFeature","showWarningMessage","BulkRegistrationImpl","_registrations","_registered","registerOptions","asRegistrationParams","registrations","BulkUnregistrationImpl","_unregistrations","unregistrations","isAttached","unregisterations","disposeSingle","_error","typeOrRegistrations","registerOptionsOrType","registerMany","registerSingle1","registerSingle2","_result","unregisterSingle","registration","WorkspaceFoldersFeature","paramOrEdit","_trace","logEvent","TypeHierarchyFeature","showDocument","textDocumentContent","_configuration","_syncedDocuments","_onDidChangeContent","_onWillSave","_willSaveWaitUntil","onDidChangeContent","onWillSave","onWillSaveWaitUntil","td","toFire","syncedDocument","reason","typeHierarchy","onSupertypes","onSubtypes","empty","v4","isUUID","ValueUUID","asHex","V4UUID","_oneOf","random","_randomHex","_chars","_timeHighBits","_UUIDPattern","_onDidChangeWorkspaceFolders","_unregistration","_notificationIsAutoRegistered","workspaceCapabilities","changeNotifications","getWorkspaceFolders","FileSystem","uriToFilePath","parsed","protocol","segments","decodeURIComponent","second","normalize","yarnCommand","isWindows","shell","child_process_1","spawnSync","stdout","stderr","lines","resolveModulePath","workspaceRoot","isParent","nodePathKey","app","newEnv","delimiter","cp","fork","execArgv","pid","c","npmCommand","prefix","_isCaseSensitive","isCaseSensitive","__filename","child","arg2","arg3","arg4","stdio","argv","stdin","transport","commandLineMessage","inputStream","_shutdownReceived","server_1","serialize","node_util_1","counters","assert","assertion","rest","counter","countReset","dir","patchConsole","_createConnection","fm","exitTimer","argName","runTimer","processId","kill","ex","setupExitTimer","require","FullTextDocument","_uri","_languageId","_version","_content","_lineOffsets","offsetAt","getWellformedRange","startOffset","endOffset","lineOffsets","addedLineOffsets","computeLineOffsets","concat","getLineOffsets","low","high","mid","ensureBeforeEOL","position","lineOffset","nextLineOffset","isEOL","lineCount","mergeSort","leftIdx","rightIdx","isAtLineStart","textOffset","ch","getWellformedEdit","textEdit","applyEdits","sortedEdits","lastModifiedOffset","spans","Location","LocationLink","Color","ColorInformation","ColorPresentation","FoldingRangeKind","FoldingRange","DiagnosticRelatedInformation","CodeDescription","Diagnostic","ChangeAnnotation","ChangeAnnotationIdentifier","AnnotatedTextEdit","CreateFile","RenameFile","DeleteFile","WorkspaceEdit","SnippetTextEdit","TextDocumentIdentifier","VersionedTextDocumentIdentifier","OptionalVersionedTextDocumentIdentifier","LanguageKind","TextDocumentItem","MarkupKind","MarkupContent","CompletionItemKind","InsertTextFormat","CompletionItemTag","InsertReplaceEdit","InsertTextMode","ApplyKind","CompletionItemLabelDetails","CompletionItem","CompletionList","MarkedString","Hover","ParameterInformation","SignatureInformation","DocumentHighlightKind","DocumentHighlight","SymbolKind","SymbolTag","SymbolInformation","WorkspaceSymbol","DocumentSymbol","CodeActionTriggerKind","CodeActionContext","CodeActionTag","CodeLens","FormattingOptions","DocumentLink","SelectionRange","SemanticTokenTypes","SemanticTokenModifiers","SemanticTokens","InlineValueText","InlineValueVariableLookup","InlineValueEvaluatableExpression","InlineValueContext","InlayHintKind","InlayHintLabelPart","InlayHint","StringValue","InlineCompletionItem","InlineCompletionList","InlineCompletionTriggerKind","SelectedCompletionInfo","InlineCompletionContext","MIN_VALUE","three","four","targetUri","targetRange","targetSelectionRange","originSelectionRange","red","green","blue","alpha","numberRange","color","additionalTextEdits","Comment","Imports","Region","startCharacter","endCharacter","collapsedText","defined","Hint","Deprecated","relatedInformation","_a","tooltip","del","needsConfirmation","description","annotation","annotationId","overwrite","ignoreIfExists","oldUri","newUri","recursive","ignoreIfNotExists","TextEditChangeImpl","changeAnnotations","assertChangeAnnotations","manage","isSnippet","snippet","ChangeAnnotations","annotations","_annotations","_counter","idOrAnnotation","nextId","workspaceEdit","_textEditChanges","_workspaceEdit","_changeAnnotations","textEditChange","initDocumentChanges","textDocumentEdit","initChanges","createFile","optionsOrAnnotation","operation","renameFile","deleteFile","ABAP","WindowsBat","BibTeX","Clojure","Coffeescript","C","CPP","CSharp","CSS","D","Delphi","Diff","Dart","Dockerfile","Elixir","Erlang","FSharp","GitCommit","GitRebase","Go","Groovy","Handlebars","Haskell","HTML","Ini","Java","JavaScript","JavaScriptReact","LaTeX","Less","Lua","Makefile","Markdown","ObjectiveC","ObjectiveCPP","Pascal","Perl","Perl6","PHP","Powershell","Pug","Python","Razor","Ruby","Rust","SCSS","SASS","Scala","ShaderLab","ShellScript","SQL","Swift","TypeScript","TypeScriptReact","TeX","VisualBasic","XML","XSL","YAML","PlainText","Method","Function","Constructor","Field","Variable","Class","Interface","Module","Property","Unit","Value","Enum","Keyword","Snippet","File","Reference","Folder","EnumMember","Constant","Struct","Operator","TypeParameter","asIs","adjustIndentation","Replace","Merge","detail","isIncomplete","fromPlainText","plainText","contents","documentation","parameters","Read","Write","Namespace","Package","Boolean","Key","Null","containerName","selectionRange","children","deprecated","Empty","Refactor","RefactorExtract","RefactorInline","RefactorMove","RefactorRewrite","SourceOrganizeImports","Notebook","Automatic","triggerKind","LLMGenerated","kindOrCommandOrEdit","checkKind","tabSize","insertSpaces","target","variableName","caseSensitiveLookup","expression","frameId","stoppedLocation","Type","Parameter","textEdits","paddingLeft","paddingRight","createSnippet","insertText","filterText","selectedCompletionInfo","isLineStart","charAt","LIB","n","h","lastIndexOf","relative","f","u","l","g","_makeLong","basename","root","win32","posix","d","Utils","I","navigator","userAgent","authority","query","fragment","isUri","with","w","revive","_formatted","external","_fsPath","_sep","$mid","encodeURIComponent","y","fromCharCode","A","x","P","joinPath","resolvePath","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","obj","__webpack_exports__"],"sourceRoot":""}
|