@athrio/loom 0.0.1
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/README.md +28 -0
- package/dist/LoomServer-3C83kvX5.js +13812 -0
- package/dist/LoomServer-3C83kvX5.js.map +1 -0
- package/dist/LoomStore-DPhVqYEz.js +150493 -0
- package/dist/LoomStore-DPhVqYEz.js.map +1 -0
- package/dist/main-BQJiwrlj.js +11957 -0
- package/dist/main-BQJiwrlj.js.map +1 -0
- package/dist/main.js +10412 -0
- package/dist/main.js.map +1 -0
- package/dist/rolldown-runtime-yvBN9yY6.js +47 -0
- package/dist/volar-service-markdown-ZE1pdvJT.js +26933 -0
- package/dist/volar-service-markdown-ZE1pdvJT.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoomServer-3C83kvX5.js","names":["path","fs","exports","exports","fs","exports","exports","exports","exports"],"sources":["../../../node_modules/vscode-languageserver/lib/common/utils/is.js","../../../node_modules/vscode-languageserver/lib/common/utils/uuid.js","../../../node_modules/vscode-languageserver/lib/common/progress.js","../../../node_modules/vscode-languageserver/lib/common/configuration.js","../../../node_modules/vscode-languageserver/lib/common/workspaceFolder.js","../../../node_modules/vscode-languageserver/lib/common/callHierarchy.js","../../../node_modules/vscode-languageserver/lib/common/semanticTokens.js","../../../node_modules/vscode-languageserver/lib/common/showDocument.js","../../../node_modules/vscode-languageserver/lib/common/fileOperations.js","../../../node_modules/vscode-languageserver/lib/common/linkedEditingRange.js","../../../node_modules/vscode-languageserver/lib/common/typeHierarchy.js","../../../node_modules/vscode-languageserver/lib/common/inlineValue.js","../../../node_modules/vscode-languageserver/lib/common/foldingRange.js","../../../node_modules/vscode-languageserver/lib/common/inlayHint.js","../../../node_modules/vscode-languageserver/lib/common/diagnostic.js","../../../node_modules/vscode-languageserver/lib/common/textDocuments.js","../../../node_modules/vscode-languageserver/lib/common/notebook.js","../../../node_modules/vscode-languageserver/lib/common/moniker.js","../../../node_modules/vscode-languageserver/lib/common/server.js","../../../node_modules/vscode-languageserver/lib/node/files.js","../../../node_modules/vscode-languageserver-protocol/node.js","../../../node_modules/vscode-languageserver/lib/common/inlineCompletion.proposed.js","../../../node_modules/vscode-languageserver/lib/common/api.js","../../../node_modules/vscode-languageserver/lib/node/main.js","../../../node_modules/vscode-languageserver/node.js","../../../node_modules/request-light/lib/node/main.js","../../../node_modules/@volar/language-server/lib/fileSystemProviders/http.js","../../../node_modules/@volar/language-server/lib/fileSystemProviders/node.js","../../../node_modules/@volar/language-server/lib/features/configurations.js","../../../node_modules/@volar/language-server/protocol.js","../../../node_modules/@volar/language-server/lib/features/editorFeatures.js","../../../node_modules/@volar/language-server/lib/features/fileSystem.js","../../../node_modules/@volar/language-server/lib/features/fileWatcher.js","../../../node_modules/@volar/language-server/lib/features/languageFeatures.js","../../../node_modules/@volar/language-server/lib/utils/combineChangeRanges.js","../../../node_modules/@volar/language-server/lib/utils/snapshotDocument.js","../../../node_modules/@volar/language-server/lib/features/textDocuments.js","../../../node_modules/@volar/language-server/lib/features/workspaceFolders.js","../../../node_modules/@volar/language-server/lib/server.js","../../../node_modules/@volar/language-server/lib/types.js","../../../node_modules/@volar/language-server/index.js","../../../node_modules/@volar/language-server/lib/project/simpleProject.js","../../../node_modules/path-browserify/index.js","../../../node_modules/@volar/language-server/lib/project/inferredCompilerOptions.js","../../../node_modules/@volar/typescript/lib/common.js","../../../node_modules/@volar/typescript/lib/resolveModuleName.js","../../../node_modules/@volar/typescript/lib/node/utils.js","../../../node_modules/@volar/typescript/lib/node/decorateLanguageServiceHost.js","../../../node_modules/@volar/typescript/lib/node/transform.js","../../../node_modules/@volar/typescript/lib/node/decorateProgram.js","../../../node_modules/@volar/typescript/lib/node/proxyCreateProgram.js","../../../node_modules/@volar/typescript/lib/node/dedupe.js","../../../node_modules/@volar/typescript/lib/node/proxyLanguageService.js","../../../node_modules/@volar/typescript/lib/protocol/createProject.js","../../../node_modules/@volar/typescript/lib/typescript/core.js","../../../node_modules/@volar/typescript/lib/typescript/path.js","../../../node_modules/@volar/typescript/lib/typescript/utilities.js","../../../node_modules/@volar/typescript/lib/protocol/createSys.js","../../../node_modules/@volar/typescript/index.js","../../../node_modules/@volar/language-server/lib/project/typescriptProjectLs.js","../../../node_modules/@volar/language-server/lib/project/typescriptProject.js","../../../node_modules/@volar/language-server/node.js","../../loom-lang-services/src/LanguageService.ts","../../loom-lang-services/src/LanguageRegistry.ts","../../../node_modules/vscode-nls/lib/common/ral.js","../../../node_modules/vscode-nls/lib/common/common.js","../../../node_modules/vscode-nls/lib/node/main.js","../../../node_modules/volar-service-typescript/lib/shared.js","../../../node_modules/volar-service-typescript/lib/plugins/directiveComment.js","../../../node_modules/semver/internal/constants.js","../../../node_modules/semver/internal/debug.js","../../../node_modules/semver/internal/re.js","../../../node_modules/semver/internal/parse-options.js","../../../node_modules/semver/internal/identifiers.js","../../../node_modules/semver/classes/semver.js","../../../node_modules/semver/functions/parse.js","../../../node_modules/semver/functions/valid.js","../../../node_modules/semver/functions/clean.js","../../../node_modules/semver/functions/inc.js","../../../node_modules/semver/functions/diff.js","../../../node_modules/semver/functions/major.js","../../../node_modules/semver/functions/minor.js","../../../node_modules/semver/functions/patch.js","../../../node_modules/semver/functions/prerelease.js","../../../node_modules/semver/functions/compare.js","../../../node_modules/semver/functions/rcompare.js","../../../node_modules/semver/functions/compare-loose.js","../../../node_modules/semver/functions/compare-build.js","../../../node_modules/semver/functions/sort.js","../../../node_modules/semver/functions/rsort.js","../../../node_modules/semver/functions/gt.js","../../../node_modules/semver/functions/lt.js","../../../node_modules/semver/functions/eq.js","../../../node_modules/semver/functions/neq.js","../../../node_modules/semver/functions/gte.js","../../../node_modules/semver/functions/lte.js","../../../node_modules/semver/functions/cmp.js","../../../node_modules/semver/functions/coerce.js","../../../node_modules/semver/functions/truncate.js","../../../node_modules/semver/internal/lrucache.js","../../../node_modules/semver/classes/range.js","../../../node_modules/semver/classes/comparator.js","../../../node_modules/semver/functions/satisfies.js","../../../node_modules/semver/ranges/to-comparators.js","../../../node_modules/semver/ranges/max-satisfying.js","../../../node_modules/semver/ranges/min-satisfying.js","../../../node_modules/semver/ranges/min-version.js","../../../node_modules/semver/ranges/valid.js","../../../node_modules/semver/ranges/outside.js","../../../node_modules/semver/ranges/gtr.js","../../../node_modules/semver/ranges/ltr.js","../../../node_modules/semver/ranges/intersects.js","../../../node_modules/semver/ranges/simplify.js","../../../node_modules/semver/ranges/subset.js","../../../node_modules/semver/index.js","../../../node_modules/volar-service-typescript/lib/protocol.const.js","../../../node_modules/volar-service-typescript/lib/utils/modifiers.js","../../../node_modules/volar-service-typescript/lib/utils/previewer.js","../../../node_modules/volar-service-typescript/lib/utils/typeConverters.js","../../../node_modules/volar-service-typescript/lib/utils/lspConverters.js","../../../node_modules/volar-service-typescript/lib/configs/getFormatCodeSettings.js","../../../node_modules/volar-service-typescript/lib/syntaxOnlyService.js","../../../node_modules/volar-service-typescript/lib/plugins/syntactic.js","../../../node_modules/volar-service-typescript/lib/plugins/docCommentTemplate.js","../../../node_modules/typescript-auto-import-cache/out/4_0/index.js","../../../node_modules/typescript-auto-import-cache/out/4_4/moduleSpecifierCache.js","../../../node_modules/typescript-auto-import-cache/out/4_4/packageJsonCache.js","../../../node_modules/typescript-auto-import-cache/out/4_4/index.js","../../../node_modules/typescript-auto-import-cache/out/4_7/moduleSpecifierCache.js","../../../node_modules/typescript-auto-import-cache/out/4_7/packageJsonCache.js","../../../node_modules/typescript-auto-import-cache/out/4_7/index.js","../../../node_modules/typescript-auto-import-cache/out/5_0/packageJsonCache.js","../../../node_modules/typescript-auto-import-cache/out/5_0/projectService.js","../../../node_modules/typescript-auto-import-cache/out/5_0/moduleSpecifierCache.js","../../../node_modules/typescript-auto-import-cache/out/5_0/autoImportProviderProject.js","../../../node_modules/typescript-auto-import-cache/out/5_0/project.js","../../../node_modules/typescript-auto-import-cache/out/5_0/index.js","../../../node_modules/typescript-auto-import-cache/out/5_3/project.js","../../../node_modules/typescript-auto-import-cache/out/5_3/index.js","../../../node_modules/typescript-auto-import-cache/out/5_5/moduleSpecifierCache.js","../../../node_modules/typescript-auto-import-cache/out/5_5/project.js","../../../node_modules/typescript-auto-import-cache/out/5_5/index.js","../../../node_modules/typescript-auto-import-cache/out/5_6/moduleSpecifierCache.js","../../../node_modules/typescript-auto-import-cache/out/5_6/project.js","../../../node_modules/typescript-auto-import-cache/out/5_6/index.js","../../../node_modules/typescript-auto-import-cache/out/index.js","../../../node_modules/volar-service-typescript/lib/configs/getUserPreferences.js","../../../node_modules/volar-service-typescript/lib/utils/fixNames.js","../../../node_modules/volar-service-typescript/lib/semanticFeatures/codeActionResolve.js","../../../node_modules/volar-service-typescript/lib/semanticFeatures/codeAction.js","../../../node_modules/volar-service-typescript/lib/semanticFeatures/semanticTokens.js","../../../node_modules/volar-service-typescript/lib/utils/snippetForFunctionCall.js","../../../node_modules/volar-service-typescript/lib/plugins/semantic.js","../../../node_modules/volar-service-typescript/index.js","../../loom-lang-services/src/LoomLanguage.ts","../../loom-lang-services/src/ProseLanguage.ts","../../loom-lang-services/src/LanguageLoader.ts","../../loom-lang-services/src/Runtime.ts","../../loom-lang/src/LoomLanguagePlugin.ts","../../loom-lang/src/LoomServer.ts"],"sourcesContent":["\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.thenable = exports.typedArray = exports.stringArray = exports.array = exports.func = exports.error = exports.number = exports.string = exports.boolean = void 0;\nfunction boolean(value) {\n return value === true || value === false;\n}\nexports.boolean = boolean;\nfunction string(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexports.string = string;\nfunction number(value) {\n return typeof value === 'number' || value instanceof Number;\n}\nexports.number = number;\nfunction error(value) {\n return value instanceof Error;\n}\nexports.error = error;\nfunction func(value) {\n return typeof value === 'function';\n}\nexports.func = func;\nfunction array(value) {\n return Array.isArray(value);\n}\nexports.array = array;\nfunction stringArray(value) {\n return array(value) && value.every(elem => string(elem));\n}\nexports.stringArray = stringArray;\nfunction typedArray(value, check) {\n return Array.isArray(value) && value.every(check);\n}\nexports.typedArray = typedArray;\nfunction thenable(value) {\n return value && func(value.then);\n}\nexports.thenable = thenable;\n","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateUuid = exports.parse = exports.isUUID = exports.v4 = exports.empty = void 0;\nclass ValueUUID {\n constructor(_value) {\n this._value = _value;\n // empty\n }\n asHex() {\n return this._value;\n }\n equals(other) {\n return this.asHex() === other.asHex();\n }\n}\nclass V4UUID extends ValueUUID {\n 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}\nV4UUID._chars = ['0', '1', '2', '3', '4', '5', '6', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\nV4UUID._timeHighBits = ['8', '9', 'a', 'b'];\n/**\n * An empty UUID that contains only zeros.\n */\nexports.empty = new ValueUUID('00000000-0000-0000-0000-000000000000');\nfunction v4() {\n return new V4UUID();\n}\nexports.v4 = v4;\nconst _UUIDPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\nfunction isUUID(value) {\n return _UUIDPattern.test(value);\n}\nexports.isUUID = isUUID;\n/**\n * Parses a UUID that is of the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.\n * @param value A uuid string.\n */\nfunction parse(value) {\n if (!isUUID(value)) {\n throw new Error('invalid uuid');\n }\n return new ValueUUID(value);\n}\nexports.parse = parse;\nfunction generateUuid() {\n return v4().asHex();\n}\nexports.generateUuid = generateUuid;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attachPartialResult = exports.ProgressFeature = exports.attachWorkDone = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst uuid_1 = require(\"./utils/uuid\");\nclass WorkDoneProgressReporterImpl {\n constructor(_connection, _token) {\n this._connection = _connection;\n this._token = _token;\n WorkDoneProgressReporterImpl.Instances.set(this._token, this);\n }\n begin(title, percentage, message, cancellable) {\n let param = {\n kind: 'begin',\n title,\n percentage,\n message,\n cancellable\n };\n this._connection.sendProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, param);\n }\n report(arg0, arg1) {\n let param = {\n kind: 'report'\n };\n if (typeof arg0 === 'number') {\n param.percentage = arg0;\n if (arg1 !== undefined) {\n param.message = arg1;\n }\n }\n else {\n param.message = arg0;\n }\n this._connection.sendProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, param);\n }\n done() {\n WorkDoneProgressReporterImpl.Instances.delete(this._token);\n this._connection.sendProgress(vscode_languageserver_protocol_1.WorkDoneProgress.type, this._token, { kind: 'end' });\n }\n}\nWorkDoneProgressReporterImpl.Instances = new Map();\nclass WorkDoneProgressServerReporterImpl extends WorkDoneProgressReporterImpl {\n constructor(connection, token) {\n super(connection, token);\n this._source = new vscode_languageserver_protocol_1.CancellationTokenSource();\n }\n get token() {\n return this._source.token;\n }\n done() {\n this._source.dispose();\n super.done();\n }\n cancel() {\n this._source.cancel();\n }\n}\nclass NullProgressReporter {\n constructor() {\n }\n begin() {\n }\n report() {\n }\n done() {\n }\n}\nclass NullProgressServerReporter extends NullProgressReporter {\n constructor() {\n super();\n this._source = new vscode_languageserver_protocol_1.CancellationTokenSource();\n }\n get token() {\n return this._source.token;\n }\n done() {\n this._source.dispose();\n }\n cancel() {\n this._source.cancel();\n }\n}\nfunction attachWorkDone(connection, params) {\n if (params === undefined || params.workDoneToken === undefined) {\n return new NullProgressReporter();\n }\n const token = params.workDoneToken;\n delete params.workDoneToken;\n return new WorkDoneProgressReporterImpl(connection, token);\n}\nexports.attachWorkDone = attachWorkDone;\nconst ProgressFeature = (Base) => {\n return class extends Base {\n constructor() {\n super();\n this._progressSupported = false;\n }\n initialize(capabilities) {\n 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 let progress = WorkDoneProgressReporterImpl.Instances.get(params.token);\n if (progress instanceof WorkDoneProgressServerReporterImpl || progress instanceof NullProgressServerReporter) {\n progress.cancel();\n }\n });\n }\n }\n attachWorkDoneProgress(token) {\n if (token === undefined) {\n return new NullProgressReporter();\n }\n else {\n return new WorkDoneProgressReporterImpl(this.connection, token);\n }\n }\n createWorkDoneProgress() {\n if (this._progressSupported) {\n const token = (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 constructor(_connection, _token) {\n this._connection = _connection;\n this._token = _token;\n }\n report(data) {\n this._connection.sendProgress(ResultProgress.type, this._token, data);\n }\n}\nfunction attachPartialResult(connection, params) {\n if (params === undefined || params.partialResultToken === undefined) {\n return undefined;\n }\n const token = params.partialResultToken;\n delete params.partialResultToken;\n return new ResultProgressReporterImpl(connection, token);\n}\nexports.attachPartialResult = attachPartialResult;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigurationFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst Is = require(\"./utils/is\");\nconst ConfigurationFeature = (Base) => {\n return class extends Base {\n getConfiguration(arg) {\n if (!arg) {\n return this._getConfiguration({});\n }\n else if (Is.string(arg)) {\n return this._getConfiguration({ section: arg });\n }\n else {\n return this._getConfiguration(arg);\n }\n }\n _getConfiguration(arg) {\n let params = {\n items: Array.isArray(arg) ? arg : [arg]\n };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ConfigurationRequest.type, params).then((result) => {\n if (Array.isArray(result)) {\n return Array.isArray(arg) ? result : result[0];\n }\n else {\n return Array.isArray(arg) ? [] : null;\n }\n });\n }\n };\n};\nexports.ConfigurationFeature = ConfigurationFeature;\n","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkspaceFoldersFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst WorkspaceFoldersFeature = (Base) => {\n return class extends Base {\n constructor() {\n super();\n this._notificationIsAutoRegistered = false;\n }\n initialize(capabilities) {\n super.initialize(capabilities);\n let workspaceCapabilities = capabilities.workspace;\n if (workspaceCapabilities && workspaceCapabilities.workspaceFolders) {\n this._onDidChangeWorkspaceFolders = new vscode_languageserver_protocol_1.Emitter();\n this.connection.onNotification(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type, (params) => {\n this._onDidChangeWorkspaceFolders.fire(params.event);\n });\n }\n }\n fillServerCapabilities(capabilities) {\n super.fillServerCapabilities(capabilities);\n const changeNotifications = capabilities.workspace?.workspaceFolders?.changeNotifications;\n this._notificationIsAutoRegistered = changeNotifications === true || typeof changeNotifications === 'string';\n }\n getWorkspaceFolders() {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.WorkspaceFoldersRequest.type);\n }\n get onDidChangeWorkspaceFolders() {\n if (!this._onDidChangeWorkspaceFolders) {\n throw new Error('Client doesn\\'t support sending workspace folder change events.');\n }\n if (!this._notificationIsAutoRegistered && !this._unregistration) {\n this._unregistration = this.connection.client.register(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type);\n }\n return this._onDidChangeWorkspaceFolders.event;\n }\n };\n};\nexports.WorkspaceFoldersFeature = WorkspaceFoldersFeature;\n","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallHierarchyFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst CallHierarchyFeature = (Base) => {\n return class extends Base {\n get callHierarchy() {\n return {\n onPrepare: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.CallHierarchyPrepareRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), undefined);\n });\n },\n onIncomingCalls: (handler) => {\n const type = vscode_languageserver_protocol_1.CallHierarchyIncomingCallsRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n onOutgoingCalls: (handler) => {\n const type = vscode_languageserver_protocol_1.CallHierarchyOutgoingCallsRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n }\n };\n }\n };\n};\nexports.CallHierarchyFeature = CallHierarchyFeature;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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 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 constructor() {\n this._prevData = undefined;\n this.initialize();\n }\n initialize() {\n this._id = Date.now();\n this._prevLine = 0;\n this._prevChar = 0;\n this._data = [];\n this._dataLen = 0;\n }\n push(line, char, length, tokenType, tokenModifiers) {\n let pushLine = line;\n let pushChar = char;\n if (this._dataLen > 0) {\n pushLine -= this._prevLine;\n if (pushLine === 0) {\n pushChar -= this._prevChar;\n }\n }\n this._data[this._dataLen++] = pushLine;\n this._data[this._dataLen++] = pushChar;\n this._data[this._dataLen++] = length;\n this._data[this._dataLen++] = tokenType;\n this._data[this._dataLen++] = tokenModifiers;\n this._prevLine = line;\n this._prevChar = char;\n }\n get id() {\n return this._id.toString();\n }\n previousResult(id) {\n if (this.id === id) {\n this._prevData = this._data;\n }\n this.initialize();\n }\n build() {\n this._prevData = undefined;\n return {\n resultId: this.id,\n data: this._data\n };\n }\n canBuildEdits() {\n return this._prevData !== undefined;\n }\n buildEdits() {\n if (this._prevData !== undefined) {\n return {\n resultId: this.id,\n edits: (new SemanticTokensDiff(this._prevData, this._data)).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 * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShowDocumentFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst ShowDocumentFeature = (Base) => {\n return class extends Base {\n showDocument(params) {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowDocumentRequest.type, params);\n }\n };\n};\nexports.ShowDocumentFeature = ShowDocumentFeature;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileOperationsFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst FileOperationsFeature = (Base) => {\n return class extends Base {\n onDidCreateFiles(handler) {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidCreateFilesNotification.type, (params) => {\n handler(params);\n });\n }\n onDidRenameFiles(handler) {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidRenameFilesNotification.type, (params) => {\n handler(params);\n });\n }\n onDidDeleteFiles(handler) {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidDeleteFilesNotification.type, (params) => {\n handler(params);\n });\n }\n onWillCreateFiles(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WillCreateFilesRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n onWillRenameFiles(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WillRenameFilesRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n onWillDeleteFiles(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WillDeleteFilesRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n };\n};\nexports.FileOperationsFeature = FileOperationsFeature;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkedEditingRangeFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst LinkedEditingRangeFeature = (Base) => {\n return class extends Base {\n onLinkedEditingRange(handler) {\n return this.connection.onRequest(vscode_languageserver_protocol_1.LinkedEditingRangeRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), undefined);\n });\n }\n };\n};\nexports.LinkedEditingRangeFeature = LinkedEditingRangeFeature;\n","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHierarchyFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst TypeHierarchyFeature = (Base) => {\n return class extends Base {\n get typeHierarchy() {\n return {\n onPrepare: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.TypeHierarchyPrepareRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), undefined);\n });\n },\n onSupertypes: (handler) => {\n const type = vscode_languageserver_protocol_1.TypeHierarchySupertypesRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n onSubtypes: (handler) => {\n const type = vscode_languageserver_protocol_1.TypeHierarchySubtypesRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n }\n };\n }\n };\n};\nexports.TypeHierarchyFeature = TypeHierarchyFeature;\n","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InlineValueFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst InlineValueFeature = (Base) => {\n return class extends Base {\n get inlineValue() {\n return {\n refresh: () => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.InlineValueRefreshRequest.type);\n },\n on: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.InlineValueRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params));\n });\n }\n };\n }\n };\n};\nexports.InlineValueFeature = InlineValueFeature;\n","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FoldingRangeFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst FoldingRangeFeature = (Base) => {\n return class extends Base {\n get foldingRange() {\n return {\n refresh: () => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.FoldingRangeRefreshRequest.type);\n },\n on: (handler) => {\n const type = vscode_languageserver_protocol_1.FoldingRangeRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n }\n };\n }\n };\n};\nexports.FoldingRangeFeature = FoldingRangeFeature;\n","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InlayHintFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst InlayHintFeature = (Base) => {\n return class extends Base {\n get inlayHint() {\n return {\n refresh: () => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.InlayHintRefreshRequest.type);\n },\n on: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.InlayHintRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params));\n });\n },\n resolve: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.InlayHintResolveRequest.type, (params, cancel) => {\n return handler(params, cancel);\n });\n }\n };\n }\n };\n};\nexports.InlayHintFeature = InlayHintFeature;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiagnosticFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst DiagnosticFeature = (Base) => {\n return class extends Base {\n get diagnostics() {\n return {\n refresh: () => {\n return this.connection.sendRequest(vscode_languageserver_protocol_1.DiagnosticRefreshRequest.type);\n },\n on: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.DocumentDiagnosticRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(vscode_languageserver_protocol_1.DocumentDiagnosticRequest.partialResult, params));\n });\n },\n onWorkspace: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.WorkspaceDiagnosticRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(vscode_languageserver_protocol_1.WorkspaceDiagnosticRequest.partialResult, params));\n });\n }\n };\n }\n };\n};\nexports.DiagnosticFeature = DiagnosticFeature;\n","\"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 /**\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 let 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 let 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 let 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 let syncedDocument = this._syncedDocuments.get(event.textDocument.uri);\n if (syncedDocument !== undefined) {\n this._onDidSave.fire(Object.freeze({ document: syncedDocument }));\n }\n }));\n return vscode_languageserver_protocol_1.Disposable.create(() => { disposables.forEach(disposable => disposable.dispose()); });\n }\n}\nexports.TextDocuments = TextDocuments;\n","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NotebookDocuments = exports.NotebookSyncFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst textDocuments_1 = require(\"./textDocuments\");\nconst NotebookSyncFeature = (Base) => {\n return class extends Base {\n get synchronization() {\n return {\n onDidOpenNotebookDocument: (handler) => {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidOpenNotebookDocumentNotification.type, (params) => {\n handler(params);\n });\n },\n onDidChangeNotebookDocument: (handler) => {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidChangeNotebookDocumentNotification.type, (params) => {\n handler(params);\n });\n },\n onDidSaveNotebookDocument: (handler) => {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidSaveNotebookDocumentNotification.type, (params) => {\n handler(params);\n });\n },\n onDidCloseNotebookDocument: (handler) => {\n return this.connection.onNotification(vscode_languageserver_protocol_1.DidCloseNotebookDocumentNotification.type, (params) => {\n handler(params);\n });\n }\n };\n }\n };\n};\nexports.NotebookSyncFeature = NotebookSyncFeature;\nclass CellTextDocumentConnection {\n onDidOpenTextDocument(handler) {\n this.openHandler = handler;\n return vscode_languageserver_protocol_1.Disposable.create(() => { this.openHandler = undefined; });\n }\n openTextDocument(params) {\n 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 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 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}\nCellTextDocumentConnection.NULL_DISPOSE = Object.freeze({ dispose: () => { } });\nclass NotebookDocuments {\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((params) => {\n this.notebookDocuments.set(params.notebookDocument.uri, params.notebookDocument);\n for (const cellTextDocument of params.cellTextDocuments) {\n cellTextDocumentConnection.openTextDocument({ textDocument: cellTextDocument });\n }\n this.updateCellMap(params.notebookDocument);\n this._onDidOpen.fire(params.notebookDocument);\n }));\n disposables.push(connection.notebooks.synchronization.onDidChangeNotebookDocument((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 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 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 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((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 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","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MonikerFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst MonikerFeature = (Base) => {\n return class extends Base {\n get moniker() {\n return {\n on: (handler) => {\n const type = vscode_languageserver_protocol_1.MonikerRequest.type;\n return this.connection.onRequest(type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params), this.attachPartialResultProgress(type, params));\n });\n },\n };\n }\n };\n};\nexports.MonikerFeature = MonikerFeature;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConnection = exports.combineFeatures = exports.combineNotebooksFeatures = exports.combineLanguagesFeatures = exports.combineWorkspaceFeatures = exports.combineWindowFeatures = exports.combineClientFeatures = exports.combineTracerFeatures = exports.combineTelemetryFeatures = exports.combineConsoleFeatures = exports._NotebooksImpl = exports._LanguagesImpl = exports.BulkUnregistration = exports.BulkRegistration = exports.ErrorMessageTracker = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst Is = require(\"./utils/is\");\nconst UUID = require(\"./utils/uuid\");\nconst progress_1 = require(\"./progress\");\nconst configuration_1 = require(\"./configuration\");\nconst 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 constructor() {\n this._messages = Object.create(null);\n }\n /**\n * Add a message to the tracker.\n *\n * @param message The message to add.\n */\n add(message) {\n let count = this._messages[message];\n if (!count) {\n count = 0;\n }\n count++;\n this._messages[message] = count;\n }\n /**\n * Send all tracked messages to the connection's window.\n *\n * @param connection The connection established between client and server.\n */\n sendErrors(connection) {\n Object.keys(this._messages).forEach(message => {\n connection.window.showErrorMessage(message);\n });\n }\n}\nexports.ErrorMessageTracker = ErrorMessageTracker;\nclass RemoteConsoleImpl {\n constructor() {\n }\n rawAttach(connection) {\n this._rawConnection = connection;\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n fillServerCapabilities(_capabilities) {\n }\n initialize(_capabilities) {\n }\n error(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Error, message);\n }\n warn(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Warning, message);\n }\n info(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Info, message);\n }\n log(message) {\n this.send(vscode_languageserver_protocol_1.MessageType.Log, message);\n }\n 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 constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n showErrorMessage(message, ...actions) {\n let params = { type: vscode_languageserver_protocol_1.MessageType.Error, message, actions };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, params).then(null2Undefined);\n }\n showWarningMessage(message, ...actions) {\n let params = { type: vscode_languageserver_protocol_1.MessageType.Warning, message, actions };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, params).then(null2Undefined);\n }\n showInformationMessage(message, ...actions) {\n let params = { type: vscode_languageserver_protocol_1.MessageType.Info, message, actions };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ShowMessageRequest.type, params).then(null2Undefined);\n }\n}\nconst RemoteWindowImpl = (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 constructor() {\n this._registrations = [];\n this._registered = new Set();\n }\n add(type, registerOptions) {\n const method = Is.string(type) ? type : type.method;\n if (this._registered.has(method)) {\n throw new Error(`${method} is already added to this registration`);\n }\n const id = UUID.generateUuid();\n this._registrations.push({\n id: id,\n method: method,\n registerOptions: registerOptions || {}\n });\n this._registered.add(method);\n }\n asRegistrationParams() {\n return {\n registrations: this._registrations\n };\n }\n}\nvar BulkUnregistration;\n(function (BulkUnregistration) {\n function create() {\n return new BulkUnregistrationImpl(undefined, []);\n }\n BulkUnregistration.create = create;\n})(BulkUnregistration || (exports.BulkUnregistration = BulkUnregistration = {}));\nclass BulkUnregistrationImpl {\n constructor(_connection, unregistrations) {\n this._connection = _connection;\n this._unregistrations = new Map();\n unregistrations.forEach(unregistration => {\n this._unregistrations.set(unregistration.method, unregistration);\n });\n }\n get isAttached() {\n return !!this._connection;\n }\n attach(connection) {\n this._connection = connection;\n }\n add(unregistration) {\n this._unregistrations.set(unregistration.method, unregistration);\n }\n dispose() {\n let unregistrations = [];\n for (let unregistration of this._unregistrations.values()) {\n unregistrations.push(unregistration);\n }\n let params = {\n unregisterations: unregistrations\n };\n this._connection.sendRequest(vscode_languageserver_protocol_1.UnregistrationRequest.type, params).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 let params = {\n unregisterations: [unregistration]\n };\n this._connection.sendRequest(vscode_languageserver_protocol_1.UnregistrationRequest.type, params).then(() => {\n this._unregistrations.delete(method);\n }, (_error) => {\n this._connection.console.info(`Un-registering request handler for ${unregistration.id} failed.`);\n });\n return true;\n }\n}\nclass RemoteClientImpl {\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n register(typeOrRegistrations, registerOptionsOrType, registerOptions) {\n if (typeOrRegistrations instanceof BulkRegistrationImpl) {\n return this.registerMany(typeOrRegistrations);\n }\n else if (typeOrRegistrations instanceof BulkUnregistrationImpl) {\n return this.registerSingle1(typeOrRegistrations, registerOptionsOrType, registerOptions);\n }\n else {\n return this.registerSingle2(typeOrRegistrations, registerOptionsOrType);\n }\n }\n registerSingle1(unregistration, type, registerOptions) {\n const method = Is.string(type) ? type : type.method;\n const id = UUID.generateUuid();\n let params = {\n registrations: [{ id, method, registerOptions: registerOptions || {} }]\n };\n if (!unregistration.isAttached) {\n unregistration.attach(this.connection);\n }\n return this.connection.sendRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params).then((_result) => {\n unregistration.add({ id: id, method: method });\n return unregistration;\n }, (_error) => {\n this.connection.console.info(`Registering request handler for ${method} failed.`);\n return Promise.reject(_error);\n });\n }\n registerSingle2(type, registerOptions) {\n const method = Is.string(type) ? type : type.method;\n const id = UUID.generateUuid();\n let params = {\n registrations: [{ id, method, registerOptions: registerOptions || {} }]\n };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params).then((_result) => {\n return vscode_languageserver_protocol_1.Disposable.create(() => {\n this.unregisterSingle(id, method).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 let 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 let params = registrations.asRegistrationParams();\n return this.connection.sendRequest(vscode_languageserver_protocol_1.RegistrationRequest.type, params).then(() => {\n return new BulkUnregistrationImpl(this._connection, params.registrations.map(registration => { return { id: registration.id, method: registration.method }; }));\n }, (_error) => {\n this.connection.console.info(`Bulk registration failed.`);\n return Promise.reject(_error);\n });\n }\n}\nclass _RemoteWorkspaceImpl {\n constructor() {\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n applyEdit(paramOrEdit) {\n function isApplyWorkspaceEditParams(value) {\n return value && !!value.edit;\n }\n let params = isApplyWorkspaceEditParams(paramOrEdit) ? paramOrEdit : { edit: paramOrEdit };\n return this.connection.sendRequest(vscode_languageserver_protocol_1.ApplyWorkspaceEditRequest.type, params);\n }\n}\nconst RemoteWorkspaceImpl = (0, fileOperations_1.FileOperationsFeature)((0, workspaceFolder_1.WorkspaceFoldersFeature)((0, configuration_1.ConfigurationFeature)(_RemoteWorkspaceImpl)));\nclass TracerImpl {\n constructor() {\n this._trace = vscode_languageserver_protocol_1.Trace.Off;\n }\n attach(connection) {\n this._connection = connection;\n }\n get connection() {\n if (!this._connection) {\n throw new Error('Remote is not attached to a connection yet.');\n }\n return this._connection;\n }\n initialize(_capabilities) {\n }\n fillServerCapabilities(_capabilities) {\n }\n set trace(value) {\n this._trace = value;\n }\n log(message, verbose) {\n if (this._trace === vscode_languageserver_protocol_1.Trace.Off) {\n return;\n }\n this.connection.sendNotification(vscode_languageserver_protocol_1.LogTraceNotification.type, {\n message: message,\n verbose: this._trace === vscode_languageserver_protocol_1.Trace.Verbose ? verbose : undefined\n }).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 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 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 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}\nexports.combineConsoleFeatures = combineConsoleFeatures;\nfunction combineTelemetryFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineTelemetryFeatures = combineTelemetryFeatures;\nfunction combineTracerFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineTracerFeatures = combineTracerFeatures;\nfunction combineClientFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineClientFeatures = combineClientFeatures;\nfunction combineWindowFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineWindowFeatures = combineWindowFeatures;\nfunction combineWorkspaceFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineWorkspaceFeatures = combineWorkspaceFeatures;\nfunction combineLanguagesFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineLanguagesFeatures = combineLanguagesFeatures;\nfunction combineNotebooksFeatures(one, two) {\n return function (Base) {\n return two(one(Base));\n };\n}\nexports.combineNotebooksFeatures = combineNotebooksFeatures;\nfunction combineFeatures(one, two) {\n function combine(one, two, func) {\n if (one && two) {\n return func(one, two);\n }\n else if (one) {\n return one;\n }\n else {\n return two;\n }\n }\n let result = {\n __brand: 'features',\n console: combine(one.console, two.console, combineConsoleFeatures),\n tracer: combine(one.tracer, two.tracer, combineTracerFeatures),\n telemetry: combine(one.telemetry, two.telemetry, combineTelemetryFeatures),\n client: combine(one.client, two.client, combineClientFeatures),\n window: combine(one.window, two.window, combineWindowFeatures),\n workspace: combine(one.workspace, two.workspace, combineWorkspaceFeatures),\n languages: combine(one.languages, two.languages, combineLanguagesFeatures),\n notebooks: combine(one.notebooks, two.notebooks, combineNotebooksFeatures)\n };\n return result;\n}\nexports.combineFeatures = combineFeatures;\nfunction createConnection(connectionFactory, watchDog, factories) {\n const logger = (factories && factories.console ? new (factories.console(RemoteConsoleImpl))() : new RemoteConsoleImpl());\n const connection = connectionFactory(logger);\n logger.rawAttach(connection);\n const tracer = (factories && factories.tracer ? new (factories.tracer(TracerImpl))() : new TracerImpl());\n const telemetry = (factories && factories.telemetry ? new (factories.telemetry(TelemetryImpl))() : new TelemetryImpl());\n const client = (factories && factories.client ? new (factories.client(RemoteClientImpl))() : new RemoteClientImpl());\n const remoteWindow = (factories && factories.window ? new (factories.window(RemoteWindowImpl))() : new RemoteWindowImpl());\n const workspace = (factories && factories.workspace ? new (factories.workspace(RemoteWorkspaceImpl))() : new RemoteWorkspaceImpl());\n const languages = (factories && factories.languages ? new (factories.languages(LanguagesImpl))() : new LanguagesImpl());\n const 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 let protocolConnection = {\n listen: () => connection.listen(),\n sendRequest: (type, ...params) => connection.sendRequest(Is.string(type) ? type : type.method, ...params),\n onRequest: (type, handler) => connection.onRequest(type, handler),\n sendNotification: (type, param) => {\n const method = Is.string(type) ? type : type.method;\n 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 (let remote of allRemotes) {\n remote.attach(protocolConnection);\n }\n connection.onRequest(vscode_languageserver_protocol_1.InitializeRequest.type, (params) => {\n watchDog.initialize(params);\n if (Is.string(params.trace)) {\n tracer.trace = vscode_languageserver_protocol_1.Trace.fromString(params.trace);\n }\n for (let remote of allRemotes) {\n remote.initialize(params.capabilities);\n }\n if (initializeHandler) {\n let result = initializeHandler(params, new vscode_languageserver_protocol_1.CancellationTokenSource().token, (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 (let remote of allRemotes) {\n remote.fillServerCapabilities(capabilities);\n }\n return result;\n });\n }\n else {\n let result = { capabilities: { textDocumentSync: vscode_languageserver_protocol_1.TextDocumentSyncKind.None } };\n for (let remote of allRemotes) {\n remote.fillServerCapabilities(result.capabilities);\n }\n return result;\n }\n });\n connection.onRequest(vscode_languageserver_protocol_1.ShutdownRequest.type, () => {\n watchDog.shutdownReceived = true;\n if (shutdownHandler) {\n return shutdownHandler(new vscode_languageserver_protocol_1.CancellationTokenSource().token);\n }\n else {\n return undefined;\n }\n });\n connection.onNotification(vscode_languageserver_protocol_1.ExitNotification.type, () => {\n try {\n if (exitHandler) {\n exitHandler();\n }\n }\n finally {\n if (watchDog.shutdownReceived) {\n watchDog.exit(0);\n }\n else {\n watchDog.exit(1);\n }\n }\n });\n connection.onNotification(vscode_languageserver_protocol_1.SetTraceNotification.type, (params) => {\n tracer.trace = vscode_languageserver_protocol_1.Trace.fromString(params.value);\n });\n return protocolConnection;\n}\nexports.createConnection = createConnection;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveModulePath = exports.FileSystem = exports.resolveGlobalYarnPath = exports.resolveGlobalNodePath = exports.resolve = exports.uriToFilePath = void 0;\nconst url = require(\"url\");\nconst path = require(\"path\");\nconst fs = require(\"fs\");\nconst child_process_1 = require(\"child_process\");\n/**\n * @deprecated Use the `vscode-uri` npm module which provides a more\n * complete implementation of handling VS Code URIs.\n */\nfunction uriToFilePath(uri) {\n let parsed = url.parse(uri);\n if (parsed.protocol !== 'file:' || !parsed.path) {\n return undefined;\n }\n let segments = parsed.path.split('/');\n for (var i = 0, len = segments.length; i < len; i++) {\n segments[i] = decodeURIComponent(segments[i]);\n }\n if (process.platform === 'win32' && segments.length > 1) {\n let first = segments[0];\n let second = segments[1];\n // Do we have a drive letter and we started with a / which is the\n // case if the first segement is empty (see split above)\n if (first.length === 0 && second.length > 1 && second[1] === ':') {\n // Remove first slash\n segments.shift();\n }\n }\n return path.normalize(segments.join('/'));\n}\nexports.uriToFilePath = uriToFilePath;\nfunction isWindows() {\n return process.platform === 'win32';\n}\nfunction resolve(moduleName, nodePath, cwd, tracer) {\n const nodePathKey = 'NODE_PATH';\n const app = [\n 'var p = process;',\n 'p.on(\\'message\\',function(m){',\n 'if(m.c===\\'e\\'){',\n 'p.exit(0);',\n '}',\n 'else if(m.c===\\'rs\\'){',\n 'try{',\n 'var r=require.resolve(m.a);',\n 'p.send({c:\\'r\\',s:true,r:r});',\n '}',\n 'catch(err){',\n 'p.send({c:\\'r\\',s:false});',\n '}',\n '}',\n '});'\n ].join('');\n return new Promise((resolve, reject) => {\n let env = process.env;\n let newEnv = Object.create(null);\n Object.keys(env).forEach(key => newEnv[key] = env[key]);\n if (nodePath && fs.existsSync(nodePath) /* see issue 545 */) {\n if (newEnv[nodePathKey]) {\n newEnv[nodePathKey] = nodePath + path.delimiter + newEnv[nodePathKey];\n }\n else {\n newEnv[nodePathKey] = nodePath;\n }\n if (tracer) {\n tracer(`NODE_PATH value is: ${newEnv[nodePathKey]}`);\n }\n }\n newEnv['ELECTRON_RUN_AS_NODE'] = '1';\n try {\n let cp = (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 let message = {\n c: 'rs',\n a: moduleName\n };\n cp.send(message);\n }\n catch (error) {\n reject(error);\n }\n });\n}\nexports.resolve = resolve;\n/**\n * Resolve the global npm package path.\n * @deprecated Since this depends on the used package manager and their version the best is that servers\n * implement this themselves since they know best what kind of package managers to support.\n * @param tracer the tracer to use\n */\nfunction resolveGlobalNodePath(tracer) {\n let npmCommand = 'npm';\n const env = Object.create(null);\n Object.keys(process.env).forEach(key => env[key] = process.env[key]);\n env['NO_UPDATE_NOTIFIER'] = 'true';\n const options = {\n encoding: 'utf8',\n env\n };\n if (isWindows()) {\n npmCommand = 'npm.cmd';\n options.shell = true;\n }\n let handler = () => { };\n try {\n process.on('SIGPIPE', handler);\n let stdout = (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 let prefix = stdout.trim();\n if (tracer) {\n tracer(`'npm config get prefix' value is: ${prefix}`);\n }\n if (prefix.length > 0) {\n if (isWindows()) {\n return path.join(prefix, 'node_modules');\n }\n else {\n return path.join(prefix, 'lib', 'node_modules');\n }\n }\n return undefined;\n }\n catch (err) {\n return undefined;\n }\n finally {\n process.removeListener('SIGPIPE', handler);\n }\n}\nexports.resolveGlobalNodePath = resolveGlobalNodePath;\n/*\n * Resolve the global yarn pakage path.\n * @deprecated Since this depends on the used package manager and their version the best is that servers\n * implement this themselves since they know best what kind of package managers to support.\n * @param tracer the tracer to use\n */\nfunction resolveGlobalYarnPath(tracer) {\n let yarnCommand = 'yarn';\n let options = {\n encoding: 'utf8'\n };\n if (isWindows()) {\n yarnCommand = 'yarn.cmd';\n options.shell = true;\n }\n let handler = () => { };\n try {\n process.on('SIGPIPE', handler);\n let results = (0, child_process_1.spawnSync)(yarnCommand, ['global', 'dir', '--json'], options);\n let stdout = results.stdout;\n if (!stdout) {\n if (tracer) {\n tracer(`'yarn global dir' didn't return a value.`);\n if (results.stderr) {\n tracer(results.stderr);\n }\n }\n return undefined;\n }\n let lines = stdout.trim().split(/\\r?\\n/);\n for (let line of lines) {\n try {\n let yarn = JSON.parse(line);\n if (yarn.type === 'log') {\n return path.join(yarn.data, 'node_modules');\n }\n }\n catch (e) {\n // Do nothing. Ignore the line\n }\n }\n return undefined;\n }\n catch (err) {\n return undefined;\n }\n finally {\n process.removeListener('SIGPIPE', handler);\n }\n}\nexports.resolveGlobalYarnPath = resolveGlobalYarnPath;\nvar FileSystem;\n(function (FileSystem) {\n let _isCaseSensitive = undefined;\n function isCaseSensitive() {\n if (_isCaseSensitive !== void 0) {\n return _isCaseSensitive;\n }\n if (process.platform === 'win32') {\n _isCaseSensitive = false;\n }\n else {\n // convert current file name to upper case / lower case and check if file exists\n // (guards against cases when name is already all uppercase or lowercase)\n _isCaseSensitive = !fs.existsSync(__filename.toUpperCase()) || !fs.existsSync(__filename.toLowerCase());\n }\n return _isCaseSensitive;\n }\n FileSystem.isCaseSensitive = isCaseSensitive;\n function isParent(parent, child) {\n if (isCaseSensitive()) {\n return path.normalize(child).indexOf(path.normalize(parent)) === 0;\n }\n else {\n return path.normalize(child).toLowerCase().indexOf(path.normalize(parent).toLowerCase()) === 0;\n }\n }\n FileSystem.isParent = isParent;\n})(FileSystem || (exports.FileSystem = FileSystem = {}));\nfunction resolveModulePath(workspaceRoot, moduleName, nodePath, tracer) {\n if (nodePath) {\n if (!path.isAbsolute(nodePath)) {\n nodePath = path.join(workspaceRoot, nodePath);\n }\n return resolve(moduleName, nodePath, nodePath, tracer).then((value) => {\n if (FileSystem.isParent(nodePath, value)) {\n return value;\n }\n else {\n return Promise.reject(new Error(`Failed to load ${moduleName} from node path location.`));\n }\n }).then(undefined, (_error) => {\n return resolve(moduleName, resolveGlobalNodePath(tracer), workspaceRoot, tracer);\n });\n }\n else {\n return resolve(moduleName, resolveGlobalNodePath(tracer), workspaceRoot, tracer);\n }\n}\nexports.resolveModulePath = resolveModulePath;\n","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ----------------------------------------------------------------------------------------- */\n'use strict';\n\nmodule.exports = require('./lib/node/main');","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InlineCompletionFeature = void 0;\nconst vscode_languageserver_protocol_1 = require(\"vscode-languageserver-protocol\");\nconst InlineCompletionFeature = (Base) => {\n return class extends Base {\n get inlineCompletion() {\n return {\n on: (handler) => {\n return this.connection.onRequest(vscode_languageserver_protocol_1.InlineCompletionRequest.type, (params, cancel) => {\n return handler(params, cancel, this.attachWorkDoneProgress(params));\n });\n }\n };\n }\n };\n};\nexports.InlineCompletionFeature = InlineCompletionFeature;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\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.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 = require(\"./inlineCompletion.proposed\");\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 languages: ic.InlineCompletionFeature\n };\n})(ProposedFeatures || (exports.ProposedFeatures = ProposedFeatures = {}));\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n/// <reference path=\"../../typings/thenable.d.ts\" />\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConnection = exports.Files = void 0;\nconst node_util_1 = require(\"node:util\");\nconst Is = require(\"../common/utils/is\");\nconst server_1 = require(\"../common/server\");\nconst fm = require(\"./files\");\nconst node_1 = require(\"vscode-languageserver-protocol/node\");\n__exportStar(require(\"vscode-languageserver-protocol/node\"), exports);\n__exportStar(require(\"../common/api\"), exports);\nvar Files;\n(function (Files) {\n Files.uriToFilePath = fm.uriToFilePath;\n Files.resolveGlobalNodePath = fm.resolveGlobalNodePath;\n Files.resolveGlobalYarnPath = fm.resolveGlobalYarnPath;\n Files.resolve = fm.resolve;\n Files.resolveModulePath = fm.resolveModulePath;\n})(Files || (exports.Files = Files = {}));\nlet _protocolConnection;\nfunction endProtocolConnection() {\n if (_protocolConnection === undefined) {\n return;\n }\n try {\n _protocolConnection.end();\n }\n catch (_err) {\n // Ignore. The client process could have already\n // did and we can't send an end into the connection.\n }\n}\nlet _shutdownReceived = false;\nlet exitTimer = undefined;\nfunction setupExitTimer() {\n const argName = '--clientProcessId';\n function runTimer(value) {\n try {\n let processId = parseInt(value);\n if (!isNaN(processId)) {\n exitTimer = setInterval(() => {\n try {\n process.kill(processId, 0);\n }\n catch (ex) {\n // Parent process doesn't exist anymore. Exit the server.\n endProtocolConnection();\n process.exit(_shutdownReceived ? 0 : 1);\n }\n }, 3000);\n }\n }\n catch (e) {\n // Ignore errors;\n }\n }\n for (let i = 2; i < process.argv.length; i++) {\n let arg = process.argv[i];\n if (arg === argName && i + 1 < process.argv.length) {\n runTimer(process.argv[i + 1]);\n return;\n }\n else {\n let args = arg.split('=');\n if (args[0] === argName) {\n runTimer(args[1]);\n }\n }\n }\n}\nsetupExitTimer();\nconst watchDog = {\n initialize: (params) => {\n const processId = params.processId;\n if (Is.number(processId) && exitTimer === undefined) {\n // We received a parent process id. Set up a timer to periodically check\n // if the parent is still alive.\n setInterval(() => {\n try {\n process.kill(processId, 0);\n }\n catch (ex) {\n // Parent process doesn't exist anymore. Exit the server.\n process.exit(_shutdownReceived ? 0 : 1);\n }\n }, 3000);\n }\n },\n get shutdownReceived() {\n return _shutdownReceived;\n },\n set shutdownReceived(value) {\n _shutdownReceived = value;\n },\n exit: (code) => {\n endProtocolConnection();\n process.exit(code);\n }\n};\nfunction createConnection(arg1, arg2, arg3, arg4) {\n let factories;\n let input;\n let output;\n let options;\n if (arg1 !== void 0 && arg1.__brand === 'features') {\n factories = arg1;\n arg1 = arg2;\n arg2 = arg3;\n arg3 = arg4;\n }\n if (node_1.ConnectionStrategy.is(arg1) || node_1.ConnectionOptions.is(arg1)) {\n options = arg1;\n }\n else {\n input = arg1;\n output = arg2;\n options = arg3;\n }\n return _createConnection(input, output, options, factories);\n}\nexports.createConnection = createConnection;\nfunction _createConnection(input, output, options, factories) {\n let stdio = false;\n if (!input && !output && process.argv.length > 2) {\n let port = void 0;\n let pipeName = void 0;\n let argv = process.argv.slice(2);\n for (let i = 0; i < argv.length; i++) {\n let arg = argv[i];\n if (arg === '--node-ipc') {\n input = new node_1.IPCMessageReader(process);\n output = new node_1.IPCMessageWriter(process);\n break;\n }\n else if (arg === '--stdio') {\n 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 var args = arg.split('=');\n if (args[0] === '--socket') {\n port = parseInt(args[1]);\n break;\n }\n else if (args[0] === '--pipe') {\n pipeName = args[1];\n break;\n }\n }\n }\n if (port) {\n let transport = (0, node_1.createServerSocketTransport)(port);\n input = transport[0];\n output = transport[1];\n }\n else if (pipeName) {\n let transport = (0, node_1.createServerPipeTransport)(pipeName);\n input = transport[0];\n output = transport[1];\n }\n }\n var commandLineMessage = 'Use arguments of createConnection or set command line parameters: \\'--node-ipc\\', \\'--stdio\\' or \\'--socket={number}\\'';\n if (!input) {\n throw new Error('Connection input stream is not set. ' + commandLineMessage);\n }\n if (!output) {\n throw new Error('Connection output stream is not set. ' + commandLineMessage);\n }\n // Backwards compatibility\n if (Is.func(input.read) && Is.func(input.on)) {\n let inputStream = input;\n inputStream.on('end', () => {\n endProtocolConnection();\n process.exit(_shutdownReceived ? 0 : 1);\n });\n inputStream.on('close', () => {\n endProtocolConnection();\n process.exit(_shutdownReceived ? 0 : 1);\n });\n }\n const connectionFactory = (logger) => {\n const result = (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 // @ts-expect-error https://github.com/DefinitelyTyped/DefinitelyTyped/pull/66626\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","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ----------------------------------------------------------------------------------------- */\n'use strict';\n\nmodule.exports = require('./lib/node/main');","(()=>{var e={46:(e,t)=>{\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(e,t,{signal:r}={}){return new Promise(((o,n)=>{function s(){null==r||r.removeEventListener(\"abort\",s),e.removeListener(t,a),e.removeListener(\"error\",u)}function a(...e){s(),o(e)}function u(e){s(),n(e)}null==r||r.addEventListener(\"abort\",s),e.on(t,a),e.on(\"error\",u)}))}},54:function(e,t,r){\"use strict\";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const n=r(361),s=o(r(374)),a=o(r(304)),u=s.default(\"agent-base\");function i(){const{stack:e}=new Error;return\"string\"==typeof e&&e.split(\"\\n\").some((e=>-1!==e.indexOf(\"(https.js:\")||-1!==e.indexOf(\"node:https:\")))}function c(e,t){return new c.Agent(e,t)}!function(e){class t extends n.EventEmitter{constructor(e,t){super();let r=t;\"function\"==typeof e?this.callback=e:e&&(r=e),this.timeout=null,r&&\"number\"==typeof r.timeout&&(this.timeout=r.timeout),this.maxFreeSockets=1,this.maxSockets=1,this.maxTotalSockets=1/0,this.sockets={},this.freeSockets={},this.requests={},this.options={}}get defaultPort(){return\"number\"==typeof this.explicitDefaultPort?this.explicitDefaultPort:i()?443:80}set defaultPort(e){this.explicitDefaultPort=e}get protocol(){return\"string\"==typeof this.explicitProtocol?this.explicitProtocol:i()?\"https:\":\"http:\"}set protocol(e){this.explicitProtocol=e}callback(e,t,r){throw new Error('\"agent-base\" has no default implementation, you must subclass and override `callback()`')}addRequest(e,t){const r=Object.assign({},t);\"boolean\"!=typeof r.secureEndpoint&&(r.secureEndpoint=i()),null==r.host&&(r.host=\"localhost\"),null==r.port&&(r.port=r.secureEndpoint?443:80),null==r.protocol&&(r.protocol=r.secureEndpoint?\"https:\":\"http:\"),r.host&&r.path&&delete r.path,delete r.agent,delete r.hostname,delete r._defaultAgent,delete r.defaultPort,delete r.createConnection,e._last=!0,e.shouldKeepAlive=!1;let o=!1,n=null;const s=r.timeout||this.timeout,c=t=>{e._hadError||(e.emit(\"error\",t),e._hadError=!0)},l=()=>{n=null,o=!0;const e=new Error(`A \"socket\" was not created for HTTP request before ${s}ms`);e.code=\"ETIMEOUT\",c(e)},d=e=>{o||(null!==n&&(clearTimeout(n),n=null),c(e))},f=t=>{if(o)return;if(null!=n&&(clearTimeout(n),n=null),s=t,Boolean(s)&&\"function\"==typeof s.addRequest)return u(\"Callback returned another Agent instance %o\",t.constructor.name),void t.addRequest(e,r);var s;if(t)return t.once(\"free\",(()=>{this.freeSocket(t,r)})),void e.onSocket(t);const a=new Error(`no Duplex stream was returned to agent-base for \\`${e.method} ${e.path}\\``);c(a)};if(\"function\"==typeof this.callback){this.promisifiedCallback||(this.callback.length>=3?(u(\"Converting legacy callback function to promise\"),this.promisifiedCallback=a.default(this.callback)):this.promisifiedCallback=this.callback),\"number\"==typeof s&&s>0&&(n=setTimeout(l,s)),\"port\"in r&&\"number\"!=typeof r.port&&(r.port=Number(r.port));try{u(\"Resolving socket for %o request: %o\",r.protocol,`${e.method} ${e.path}`),Promise.resolve(this.promisifiedCallback(e,r)).then(f,d)}catch(e){Promise.reject(e).catch(d)}}else c(new Error(\"`callback` is not defined\"))}freeSocket(e,t){u(\"Freeing socket %o %o\",e.constructor.name,t),e.destroy()}destroy(){u(\"Destroying agent %o\",this.constructor.name)}}e.Agent=t,e.prototype=e.Agent.prototype}(c||(c={})),e.exports=c},304:(e,t)=>{\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(e){return function(t,r){return new Promise(((o,n)=>{e.call(this,t,r,((e,t)=>{e?n(e):o(t)}))}))}}},370:function(e,t,r){\"use strict\";var o=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(n,s){function a(e){try{i(o.next(e))}catch(e){s(e)}}function u(e){try{i(o.throw(e))}catch(e){s(e)}}function i(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,u)}i((o=o.apply(e,t||[])).next())}))},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,\"__esModule\",{value:!0});const s=n(r(808)),a=n(r(404)),u=n(r(310)),i=n(r(374)),c=n(r(46)),l=r(54),d=(0,i.default)(\"http-proxy-agent\");class f extends l.Agent{constructor(e){let t;if(t=\"string\"==typeof e?u.default.parse(e):e,!t)throw new Error(\"an HTTP(S) proxy server `host` and `port` must be specified!\");d(\"Creating new HttpProxyAgent instance: %o\",t),super(t);const r=Object.assign({},t);var o;this.secureProxy=t.secureProxy||\"string\"==typeof(o=r.protocol)&&/^https:?$/i.test(o),r.host=r.hostname||r.host,\"string\"==typeof r.port&&(r.port=parseInt(r.port,10)),!r.port&&r.host&&(r.port=this.secureProxy?443:80),r.host&&r.path&&(delete r.path,delete r.pathname),this.proxy=r}callback(e,t){return o(this,void 0,void 0,(function*(){const{proxy:r,secureProxy:o}=this,n=u.default.parse(e.path);let i;if(n.protocol||(n.protocol=\"http:\"),n.hostname||(n.hostname=t.hostname||t.host||null),null==n.port&&(t.port,1)&&(n.port=String(t.port)),\"80\"===n.port&&(n.port=\"\"),e.path=u.default.format(n),r.auth&&e.setHeader(\"Proxy-Authorization\",`Basic ${Buffer.from(r.auth).toString(\"base64\")}`),o?(d(\"Creating `tls.Socket`: %o\",r),i=a.default.connect(r)):(d(\"Creating `net.Socket`: %o\",r),i=s.default.connect(r)),e._header){let t,r;d(\"Regenerating stored HTTP header string for request\"),e._header=null,e._implicitHeader(),e.output&&e.output.length>0?(d(\"Patching connection write() output buffer with updated header\"),t=e.output[0],r=t.indexOf(\"\\r\\n\\r\\n\")+4,e.output[0]=e._header+t.substring(r),d(\"Output buffer: %o\",e.output)):e.outputData&&e.outputData.length>0&&(d(\"Patching connection write() output buffer with updated header\"),t=e.outputData[0].data,r=t.indexOf(\"\\r\\n\\r\\n\")+4,e.outputData[0].data=e._header+t.substring(r),d(\"Output buffer: %o\",e.outputData[0].data))}return yield(0,c.default)(i,\"connect\"),i}))}}t.default=f},201:function(e,t,r){\"use strict\";const o=(this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(r(370));function n(e){return new o.default(e)}!function(e){e.HttpProxyAgent=o.default,e.prototype=o.default.prototype}(n||(n={})),e.exports=n},146:function(e,t,r){\"use strict\";var o=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(n,s){function a(e){try{i(o.next(e))}catch(e){s(e)}}function u(e){try{i(o.throw(e))}catch(e){s(e)}}function i(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,u)}i((o=o.apply(e,t||[])).next())}))},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,\"__esModule\",{value:!0});const s=n(r(808)),a=n(r(404)),u=n(r(310)),i=n(r(491)),c=n(r(374)),l=r(54),d=n(r(829)),f=c.default(\"https-proxy-agent:agent\");class p extends l.Agent{constructor(e){let t;if(t=\"string\"==typeof e?u.default.parse(e):e,!t)throw new Error(\"an HTTP(S) proxy server `host` and `port` must be specified!\");f(\"creating new HttpsProxyAgent instance: %o\",t),super(t);const r=Object.assign({},t);var o;this.secureProxy=t.secureProxy||\"string\"==typeof(o=r.protocol)&&/^https:?$/i.test(o),r.host=r.hostname||r.host,\"string\"==typeof r.port&&(r.port=parseInt(r.port,10)),!r.port&&r.host&&(r.port=this.secureProxy?443:80),this.secureProxy&&!(\"ALPNProtocols\"in r)&&(r.ALPNProtocols=[\"http 1.1\"]),r.host&&r.path&&(delete r.path,delete r.pathname),this.proxy=r}callback(e,t){return o(this,void 0,void 0,(function*(){const{proxy:r,secureProxy:o}=this;let n;o?(f(\"Creating `tls.Socket`: %o\",r),n=a.default.connect(r)):(f(\"Creating `net.Socket`: %o\",r),n=s.default.connect(r));const u=Object.assign({},r.headers);let c=`CONNECT ${t.host}:${t.port} HTTP/1.1\\r\\n`;r.auth&&(u[\"Proxy-Authorization\"]=`Basic ${Buffer.from(r.auth).toString(\"base64\")}`);let{host:l,port:p,secureEndpoint:g}=t;(function(e,t){return Boolean(!t&&80===e||t&&443===e)})(p,g)||(l+=`:${p}`),u.Host=l,u.Connection=\"close\";for(const e of Object.keys(u))c+=`${e}: ${u[e]}\\r\\n`;const v=d.default(n);n.write(`${c}\\r\\n`);const{statusCode:m,buffered:y}=yield v;if(200===m){if(e.once(\"socket\",h),t.secureEndpoint){f(\"Upgrading socket connection to TLS\");const e=t.servername||t.host;return a.default.connect(Object.assign(Object.assign({},function(e,...t){const r={};let o;for(o in e)t.includes(o)||(r[o]=e[o]);return r}(t,\"host\",\"hostname\",\"path\",\"port\")),{socket:n,servername:e}))}return n}n.destroy();const b=new s.default.Socket({writable:!1});return b.readable=!0,e.once(\"socket\",(e=>{f(\"replaying proxy buffer for failed request\"),i.default(e.listenerCount(\"data\")>0),e.push(y),e.push(null)})),b}))}}function h(e){e.resume()}t.default=p},18:function(e,t,r){\"use strict\";const o=(this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(r(146));function n(e){return new o.default(e)}!function(e){e.HttpsProxyAgent=o.default,e.prototype=o.default.prototype}(n||(n={})),e.exports=n},829:function(e,t,r){\"use strict\";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,\"__esModule\",{value:!0});const n=o(r(374)).default(\"https-proxy-agent:parse-proxy-response\");t.default=function(e){return new Promise(((t,r)=>{let o=0;const s=[];function a(){const r=e.read();r?function(e){s.push(e),o+=e.length;const r=Buffer.concat(s,o);if(-1===r.indexOf(\"\\r\\n\\r\\n\"))return n(\"have not received end of HTTP headers yet...\"),void a();const u=r.toString(\"ascii\",0,r.indexOf(\"\\r\\n\")),i=+u.split(\" \")[1];n(\"got proxy server response: %o\",u),t({statusCode:i,buffered:r})}(r):e.once(\"readable\",a)}function u(e){n(\"onclose had error %o\",e)}function i(){n(\"onend\")}e.on(\"error\",(function t(o){e.removeListener(\"end\",i),e.removeListener(\"error\",t),e.removeListener(\"close\",u),e.removeListener(\"readable\",a),n(\"onerror %o\",o),r(o)})),e.on(\"close\",u),e.on(\"end\",i),a()}))}},539:function(e,t,r){\"use strict\";var o,n=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},o(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=this&&this.__assign||function(){return s=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},s.apply(this,arguments)};Object.defineProperty(t,\"__esModule\",{value:!0}),t.getErrorStatusDescription=t.xhr=t.configure=void 0;var a=r(685),u=r(687),i=r(310),c=r(472),l=r(796),d=r(201),f=r(18);if(process.env.VSCODE_NLS_CONFIG){var p=process.env.VSCODE_NLS_CONFIG;c.config(JSON.parse(p))}var h=c.loadMessageBundle(),g=void 0,v=!0;function m(e){var t;return new Promise((function(r,o){var n=(0,i.parse)(e.url),s={hostname:n.hostname,agent:!!e.agent&&e.agent,port:n.port?parseInt(n.port):\"https:\"===n.protocol?443:80,path:n.path,method:e.type||\"GET\",headers:e.headers,rejectUnauthorized:\"boolean\"!=typeof e.strictSSL||e.strictSSL};e.user&&e.password&&(s.auth=e.user+\":\"+e.password);var c=function(o){if(o.statusCode>=300&&o.statusCode<400&&e.followRedirects&&e.followRedirects>0&&o.headers.location){var s=o.headers.location;s.startsWith(\"/\")&&(s=(0,i.format)({protocol:n.protocol,hostname:n.hostname,port:n.port,pathname:s})),r(m(function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return t.forEach((function(t){return Object.keys(t).forEach((function(r){return e[r]=t[r]}))})),e}({},e,{url:s,followRedirects:e.followRedirects-1})))}else r({req:t,res:o})};(t=\"https:\"===n.protocol?u.request(s,c):a.request(s,c)).on(\"error\",o),e.timeout&&t.setTimeout(e.timeout),e.data&&t.write(e.data),t.end(),e.token&&(e.token.isCancellationRequested&&t.destroy(new y),e.token.onCancellationRequested((function(){t.destroy(new y)})))}))}t.configure=function(e,t){g=e,v=t},t.xhr=function(e){return\"boolean\"!=typeof(e=s({},e)).strictSSL&&(e.strictSSL=v),e.agent||(e.agent=function(e,t){void 0===t&&(t={});var r=(0,i.parse)(e),o=t.proxyUrl||function(e){return\"http:\"===e.protocol?process.env.HTTP_PROXY||process.env.http_proxy||null:\"https:\"===e.protocol&&(process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy)||null}(r);if(!o)return null;var n=(0,i.parse)(o);if(!/^https?:$/.test(n.protocol))return null;var s={host:n.hostname,port:Number(n.port),auth:n.auth,rejectUnauthorized:\"boolean\"!=typeof t.strictSSL||t.strictSSL,protocol:n.protocol};return\"http:\"===r.protocol?d(s):f(s)}(e.url,{proxyUrl:g,strictSSL:v})),\"number\"!=typeof e.followRedirects&&(e.followRedirects=5),m(e).then((function(r){return new Promise((function(o,n){var s,a,u=r.res,c=u,d=!1,f=u.headers&&u.headers[\"content-encoding\"];if(f&&(s=e.type,a=r.res.statusCode,!(\"HEAD\"===s||a>=100&&a<200||204===a||304===a))){var p={flush:l.constants.Z_SYNC_FLUSH,finishFlush:l.constants.Z_SYNC_FLUSH};if(\"gzip\"===f){var g=l.createGunzip(p);u.pipe(g),c=g}else if(\"deflate\"===f){var v=l.createInflate(p);u.pipe(v),c=v}}var m=[];c.on(\"data\",(function(e){return m.push(e)})),c.on(\"end\",(function(){if(!d){if(d=!0,e.followRedirects>0&&(u.statusCode>=300&&u.statusCode<=303||307===u.statusCode)){var r=u.headers.location;if(r.startsWith(\"/\")){var s=(0,i.parse)(e.url);r=(0,i.format)({protocol:s.protocol,hostname:s.hostname,port:s.port,pathname:r})}if(r){var a={type:e.type,url:r,user:e.user,password:e.password,headers:e.headers,timeout:e.timeout,followRedirects:e.followRedirects-1,data:e.data,token:e.token};return void(0,t.xhr)(a).then(o,n)}}var c=Buffer.concat(m),l={responseText:c.toString(),body:c,status:u.statusCode,headers:u.headers||{}};u.statusCode>=200&&u.statusCode<300||1223===u.statusCode?o(l):n(l)}})),c.on(\"error\",(function(t){var r;r=y.is(t)?t:{responseText:h(\"error\",\"Unable to access {0}. Error: {1}\",e.url,t.message),body:Buffer.concat(m),status:500,headers:{}},d=!0,n(r)})),e.token&&(e.token.isCancellationRequested&&c.destroy(new y),e.token.onCancellationRequested((function(){c.destroy(new y)})))}))}),(function(t){var r;return r=y.is(t)?t:{responseText:e.agent?h(\"error.cannot.connect.proxy\",\"Unable to connect to {0} through a proxy. Error: {1}\",e.url,t.message):h(\"error.cannot.connect\",\"Unable to connect to {0}. Error: {1}\",e.url,t.message),body:Buffer.concat([]),status:404,headers:{}},Promise.reject(r)}))},t.getErrorStatusDescription=function(e){if(!(e<400))switch(e){case 400:return h(\"status.400\",\"Bad request. The request cannot be fulfilled due to bad syntax.\");case 401:return h(\"status.401\",\"Unauthorized. The server is refusing to respond.\");case 403:return h(\"status.403\",\"Forbidden. The server is refusing to respond.\");case 404:return h(\"status.404\",\"Not Found. The requested location could not be found.\");case 405:return h(\"status.405\",\"Method not allowed. A request was made using a request method not supported by that location.\");case 406:return h(\"status.406\",\"Not Acceptable. The server can only generate a response that is not accepted by the client.\");case 407:return h(\"status.407\",\"Proxy Authentication Required. The client must first authenticate itself with the proxy.\");case 408:return h(\"status.408\",\"Request Timeout. The server timed out waiting for the request.\");case 409:return h(\"status.409\",\"Conflict. The request could not be completed because of a conflict in the request.\");case 410:return h(\"status.410\",\"Gone. The requested page is no longer available.\");case 411:return h(\"status.411\",'Length Required. The \"Content-Length\" is not defined.');case 412:return h(\"status.412\",\"Precondition Failed. The precondition given in the request evaluated to false by the server.\");case 413:return h(\"status.413\",\"Request Entity Too Large. The server will not accept the request, because the request entity is too large.\");case 414:return h(\"status.414\",\"Request-URI Too Long. The server will not accept the request, because the URL is too long.\");case 415:return h(\"status.415\",\"Unsupported Media Type. The server will not accept the request, because the media type is not supported.\");case 500:return h(\"status.500\",\"Internal Server Error.\");case 501:return h(\"status.501\",\"Not Implemented. The server either does not recognize the request method, or it lacks the ability to fulfill the request.\");case 502:return h(\"status.502\",\"Bad Gateway. The upstream server did not respond.\");case 503:return h(\"status.503\",\"Service Unavailable. The server is currently unavailable (overloaded or down).\");default:return h(\"status.416\",\"HTTP status code {0}\",e)}};var y=function(e){function t(){var r=e.call(this,\"The user aborted a request\")||this;return r.name=\"AbortError\",Object.setPrototypeOf(r,t.prototype),r}return n(t,e),t.is=function(e){return e instanceof t},t}(Error)},800:(e,t,r)=>{\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.config=t.loadMessageBundle=t.localize=t.format=t.setPseudo=t.isPseudo=t.isDefined=t.BundleFormat=t.MessageFormat=void 0;var o,n,s,a=r(926);function u(e){return void 0!==e}function i(e,r){return t.isPseudo&&(e=\"[\"+e.replace(/[aouei]/g,\"$&$&\")+\"]\"),0===r.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,t){var o=t[0],n=r[o],s=e;return\"string\"==typeof n?s=n:\"number\"!=typeof n&&\"boolean\"!=typeof n&&null!=n||(s=String(n)),s}))}(s=t.MessageFormat||(t.MessageFormat={})).file=\"file\",s.bundle=\"bundle\",s.both=\"both\",(n=t.BundleFormat||(t.BundleFormat={})).standalone=\"standalone\",n.languagePack=\"languagePack\",function(e){e.is=function(e){var t=e;return t&&u(t.key)&&u(t.comment)}}(o||(o={})),t.isDefined=u,t.isPseudo=!1,t.setPseudo=function(e){t.isPseudo=e},t.format=i,t.localize=function(e,t){for(var r=[],o=2;o<arguments.length;o++)r[o-2]=arguments[o];return i(t,r)},t.loadMessageBundle=function(e){return(0,a.default)().loadMessageBundle(e)},t.config=function(e){return(0,a.default)().config(e)}},926:(e,t)=>{\"use strict\";var r;function o(){if(void 0===r)throw new Error(\"No runtime abstraction layer installed\");return r}Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.install=function(e){if(void 0===e)throw new Error(\"No runtime abstraction layer provided\");r=e}}(o||(o={})),t.default=o},472:(e,t,r)=>{\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.config=t.loadMessageBundle=t.BundleFormat=t.MessageFormat=void 0;var o=r(17),n=r(147),s=r(926),a=r(800),u=r(800);Object.defineProperty(t,\"MessageFormat\",{enumerable:!0,get:function(){return u.MessageFormat}}),Object.defineProperty(t,\"BundleFormat\",{enumerable:!0,get:function(){return u.BundleFormat}});var i,c,l=Object.prototype.toString;function d(e){return\"[object Number]\"===l.call(e)}function f(e){return\"[object String]\"===l.call(e)}function p(e){return JSON.parse(n.readFileSync(e,\"utf8\"))}function h(e){return function(t,r){for(var o=[],n=2;n<arguments.length;n++)o[n-2]=arguments[n];return d(t)?t>=e.length?void console.error(\"Broken localize call found. Index out of bounds. Stacktrace is\\n: \".concat(new Error(\"\").stack)):(0,a.format)(e[t],o):f(r)?(console.warn(\"Message \".concat(r,\" didn't get externalized correctly.\")),(0,a.format)(r,o)):void console.error(\"Broken localize call found. Stacktrace is\\n: \".concat(new Error(\"\").stack))}}function g(e,t){return i[e]=t,t}function v(e){try{return function(e){var t=p(o.join(e,\"nls.metadata.json\")),r=Object.create(null);for(var n in t){var s=t[n];r[n]=s.messages}return r}(e)}catch(e){return void console.log(\"Generating default bundle from meta data failed.\",e)}}function m(e,t){var r;if(!0===c.languagePackSupport&&void 0!==c.cacheRoot&&void 0!==c.languagePackId&&void 0!==c.translationsConfigFile&&void 0!==c.translationsConfig)try{r=function(e,t){var r,s,a,u=o.join(c.cacheRoot,\"\".concat(e.id,\"-\").concat(e.hash,\".json\")),i=!1,l=!1;try{return r=JSON.parse(n.readFileSync(u,{encoding:\"utf8\",flag:\"r\"})),s=u,a=new Date,n.utimes(s,a,a,(function(){})),r}catch(e){if(\"ENOENT\"===e.code)l=!0;else{if(!(e instanceof SyntaxError))throw e;console.log(\"Syntax error parsing message bundle: \".concat(e.message,\".\")),n.unlink(u,(function(e){e&&console.error(\"Deleting corrupted bundle \".concat(u,\" failed.\"))})),i=!0}}if(r=function(e,t){var r=c.translationsConfig[e.id];if(r){var n=p(r).contents,s=p(o.join(t,\"nls.metadata.json\")),a=Object.create(null);for(var u in s){var i=s[u],l=n[\"\".concat(e.outDir,\"/\").concat(u)];if(l){for(var d=[],h=0;h<i.keys.length;h++){var g=i.keys[h],v=l[f(g)?g:g.key];void 0===v&&(v=i.messages[h]),d.push(v)}a[u]=d}else a[u]=i.messages}return a}}(e,t),!r||i)return r;if(l)try{n.writeFileSync(u,JSON.stringify(r),{encoding:\"utf8\",flag:\"wx\"})}catch(e){if(\"EEXIST\"===e.code)return r;throw e}return r}(e,t)}catch(e){console.log(\"Load or create bundle failed \",e)}if(!r){if(c.languagePackSupport)return v(t);var s=function(e){for(var t=c.language;t;){var r=o.join(e,\"nls.bundle.\".concat(t,\".json\"));if(n.existsSync(r))return r;var s=t.lastIndexOf(\"-\");t=s>0?t.substring(0,s):void 0}if(void 0===t&&(r=o.join(e,\"nls.bundle.json\"),n.existsSync(r)))return r}(t);if(s)try{return p(s)}catch(e){console.log(\"Loading in the box message bundle failed.\",e)}r=v(t)}return r}function y(e){if(!e)return a.localize;var t=o.extname(e);if(t&&(e=e.substr(0,e.length-t.length)),c.messageFormat===a.MessageFormat.both||c.messageFormat===a.MessageFormat.bundle){var r=function(e){for(var t,r=o.dirname(e);t=o.join(r,\"nls.metadata.header.json\"),!n.existsSync(t);){var s=o.dirname(r);if(s===r){t=void 0;break}r=s}return t}(e);if(r){var s=o.dirname(r),u=i[s];if(void 0===u)try{var l=JSON.parse(n.readFileSync(r,\"utf8\"));try{var d=m(l,s);u=g(s,d?{header:l,nlsBundle:d}:null)}catch(e){console.error(\"Failed to load nls bundle\",e),u=g(s,null)}}catch(e){console.error(\"Failed to read header file\",e),u=g(s,null)}if(u){var f=e.substr(s.length+1).replace(/\\\\/g,\"/\"),v=u.nlsBundle[f];return void 0===v?(console.error(\"Messages for file \".concat(e,\" not found. See console for details.\")),function(){return\"Messages not found.\"}):h(v)}}}if(c.messageFormat===a.MessageFormat.both||c.messageFormat===a.MessageFormat.file)try{var y=p(function(e){var t;if(c.cacheLanguageResolution&&t);else{if(a.isPseudo||!c.language)t=\".nls.json\";else for(var r=c.language;r;){var o=\".nls.\"+r+\".json\";if(n.existsSync(e+o)){t=o;break}var s=r.lastIndexOf(\"-\");s>0?r=r.substring(0,s):(t=\".nls.json\",r=null)}c.cacheLanguageResolution}return e+t}(e));return Array.isArray(y)?h(y):(0,a.isDefined)(y.messages)&&(0,a.isDefined)(y.keys)?h(y.messages):(console.error(\"String bundle '\".concat(e,\"' uses an unsupported format.\")),function(){return\"File bundle has unsupported format. See console for details\"})}catch(e){\"ENOENT\"!==e.code&&console.error(\"Failed to load single file bundle\",e)}return console.error(\"Failed to load message bundle for file \".concat(e)),function(){return\"Failed to load message bundle. See console for details.\"}}function b(e){return e&&(f(e.locale)&&(c.locale=e.locale.toLowerCase(),c.language=c.locale,i=Object.create(null)),void 0!==e.messageFormat&&(c.messageFormat=e.messageFormat),e.bundleFormat===a.BundleFormat.standalone&&!0===c.languagePackSupport&&(c.languagePackSupport=!1)),(0,a.setPseudo)(\"pseudo\"===c.locale),y}!function(){if(c={locale:void 0,language:void 0,languagePackSupport:!1,cacheLanguageResolution:!0,messageFormat:a.MessageFormat.bundle},f(process.env.VSCODE_NLS_CONFIG))try{var e=JSON.parse(process.env.VSCODE_NLS_CONFIG),t=void 0;if(e.availableLanguages){var r=e.availableLanguages[\"*\"];f(r)&&(t=r)}if(f(e.locale)&&(c.locale=e.locale.toLowerCase()),void 0===t?c.language=c.locale:\"en\"!==t&&(c.language=t),function(e){return!0===e||!1===e}(e._languagePackSupport)&&(c.languagePackSupport=e._languagePackSupport),f(e._cacheRoot)&&(c.cacheRoot=e._cacheRoot),f(e._languagePackId)&&(c.languagePackId=e._languagePackId),f(e._translationsConfigFile)){c.translationsConfigFile=e._translationsConfigFile;try{c.translationsConfig=p(c.translationsConfigFile)}catch(t){if(e._corruptedFile){var s=o.dirname(e._corruptedFile);n.exists(s,(function(t){t&&n.writeFile(e._corruptedFile,\"corrupted\",\"utf8\",(function(e){console.error(e)}))}))}}}}catch(e){}(0,a.setPseudo)(\"pseudo\"===c.locale),i=Object.create(null)}(),t.loadMessageBundle=y,t.config=b,s.default.install(Object.freeze({loadMessageBundle:y,config:b}))},374:(e,t)=>{function r(){}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(e){return r}},491:e=>{\"use strict\";e.exports=require(\"assert\")},361:e=>{\"use strict\";e.exports=require(\"events\")},147:e=>{\"use strict\";e.exports=require(\"fs\")},685:e=>{\"use strict\";e.exports=require(\"http\")},687:e=>{\"use strict\";e.exports=require(\"https\")},808:e=>{\"use strict\";e.exports=require(\"net\")},17:e=>{\"use strict\";e.exports=require(\"path\")},404:e=>{\"use strict\";e.exports=require(\"tls\")},310:e=>{\"use strict\";e.exports=require(\"url\")},796:e=>{\"use strict\";e.exports=require(\"zlib\")}},t={},r=function r(o){var n=t[o];if(void 0!==n)return n.exports;var s=t[o]={exports:{}};return e[o].call(s.exports,s,s.exports,r),s.exports}(539),o=exports;for(var n in r)o[n]=r[n];r.__esModule&&Object.defineProperty(o,\"__esModule\",{value:!0})})();","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.provider = void 0;\nexports.listenEditorSettings = listenEditorSettings;\nexports.handler = handler;\nconst language_service_1 = require(\"@volar/language-service\");\nconst request_light_1 = require(\"request-light\");\nexports.provider = {\n async stat(uri) {\n const text = await this.readFile(uri);\n if (text !== undefined) {\n return {\n type: language_service_1.FileType.File,\n size: text.length,\n ctime: 0,\n mtime: 0,\n };\n }\n },\n readFile(uri) {\n return handler(uri);\n },\n readDirectory() {\n return [];\n },\n};\nfunction listenEditorSettings(server) {\n server.configurations.onDidChange(updateHttpSettings);\n updateHttpSettings();\n async function updateHttpSettings() {\n const httpSettings = await server.configurations.get('http');\n (0, request_light_1.configure)(httpSettings?.proxy, httpSettings?.proxyStrictSSL ?? false);\n }\n}\nfunction handler(uri) {\n const headers = { 'Accept-Encoding': 'gzip, deflate' };\n return (0, request_light_1.xhr)({ url: uri.toString(true), followRedirects: 5, headers }).then(response => {\n if (response.status !== 200) {\n return;\n }\n return response.responseText;\n }, (error) => {\n return Promise.reject(error.responseText || (0, request_light_1.getErrorStatusDescription)(error.status) || error);\n });\n}\n//# sourceMappingURL=http.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.provider = void 0;\nconst language_service_1 = require(\"@volar/language-service\");\nconst fs = require(\"fs\");\nexports.provider = {\n stat(uri) {\n try {\n const stats = fs.statSync(uri.fsPath, { throwIfNoEntry: false });\n if (stats) {\n return {\n type: stats.isFile()\n ? language_service_1.FileType.File\n : stats.isDirectory()\n ? language_service_1.FileType.Directory\n : stats.isSymbolicLink()\n ? language_service_1.FileType.SymbolicLink\n : language_service_1.FileType.Unknown,\n ctime: stats.ctimeMs,\n mtime: stats.mtimeMs,\n size: stats.size,\n };\n }\n }\n catch {\n return undefined;\n }\n },\n readFile(uri, encoding) {\n try {\n return fs.readFileSync(uri.fsPath, { encoding: encoding ?? 'utf-8' });\n }\n catch {\n return undefined;\n }\n },\n readDirectory(uri) {\n try {\n const files = fs.readdirSync(uri.fsPath, { withFileTypes: true });\n return files.map(file => {\n return [\n file.name,\n file.isFile()\n ? language_service_1.FileType.File\n : file.isDirectory()\n ? language_service_1.FileType.Directory\n : file.isSymbolicLink()\n ? language_service_1.FileType.SymbolicLink\n : language_service_1.FileType.Unknown,\n ];\n });\n }\n catch {\n return [];\n }\n },\n};\n//# sourceMappingURL=node.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nconst vscode = require(\"vscode-languageserver\");\nfunction register(server) {\n const configurations = new Map();\n const didChangeCallbacks = new Set();\n server.onInitialized(() => {\n server.connection.onDidChangeConfiguration(params => {\n configurations.clear(); // TODO: clear only the configurations that changed\n for (const cb of didChangeCallbacks) {\n cb(params);\n }\n });\n const didChangeConfiguration = server.initializeParams.capabilities.workspace?.didChangeConfiguration;\n if (didChangeConfiguration?.dynamicRegistration) {\n server.connection.client.register(vscode.DidChangeConfigurationNotification.type);\n }\n });\n return {\n get,\n onDidChange,\n };\n function get(section, scopeUri) {\n if (!server.initializeParams.capabilities.workspace?.configuration) {\n return Promise.resolve(undefined);\n }\n const didChangeConfiguration = server.initializeParams.capabilities.workspace?.didChangeConfiguration;\n if (!scopeUri && didChangeConfiguration) {\n if (!configurations.has(section)) {\n configurations.set(section, getConfigurationWorker(section, scopeUri));\n }\n return configurations.get(section);\n }\n return getConfigurationWorker(section, scopeUri);\n }\n function onDidChange(cb) {\n didChangeCallbacks.add(cb);\n return {\n dispose() {\n didChangeCallbacks.delete(cb);\n },\n };\n }\n async function getConfigurationWorker(section, scopeUri) {\n return (await server.connection.workspace.getConfiguration({ scopeUri, section }))\n ?? undefined /* replace null to undefined */;\n }\n}\n//# sourceMappingURL=configurations.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetVirtualCodeRequest = exports.GetVirtualFileRequest = exports.GetServicePluginsRequest = exports.UpdateServicePluginStateNotification = exports.UpdateVirtualCodeStateNotification = exports.DocumentDrop_DataTransferItemFileDataRequest = exports.DocumentDrop_DataTransferItemAsStringRequest = exports.DocumentDropRequest = exports.ReloadProjectNotification = exports.AutoInsertRequest = exports.GetMatchTsConfigRequest = exports.FindFileReferenceRequest = void 0;\nconst protocol = require(\"vscode-languageserver-protocol\");\n__exportStar(require(\"vscode-languageserver-protocol\"), exports);\n/**\n * Client request server\n */\nvar FindFileReferenceRequest;\n(function (FindFileReferenceRequest) {\n FindFileReferenceRequest.type = new protocol.RequestType('volar/client/findFileReference');\n})(FindFileReferenceRequest || (exports.FindFileReferenceRequest = FindFileReferenceRequest = {}));\nvar GetMatchTsConfigRequest;\n(function (GetMatchTsConfigRequest) {\n GetMatchTsConfigRequest.type = new protocol.RequestType('volar/client/tsconfig');\n})(GetMatchTsConfigRequest || (exports.GetMatchTsConfigRequest = GetMatchTsConfigRequest = {}));\nvar AutoInsertRequest;\n(function (AutoInsertRequest) {\n AutoInsertRequest.type = new protocol.RequestType('volar/client/autoInsert');\n})(AutoInsertRequest || (exports.AutoInsertRequest = AutoInsertRequest = {}));\nvar ReloadProjectNotification;\n(function (ReloadProjectNotification) {\n ReloadProjectNotification.type = new protocol.NotificationType('volar/client/reloadProject');\n})(ReloadProjectNotification || (exports.ReloadProjectNotification = ReloadProjectNotification = {}));\n/**\n * Document Drop\n */\nvar DocumentDropRequest;\n(function (DocumentDropRequest) {\n DocumentDropRequest.type = new protocol.RequestType('volar/client/documentDrop');\n})(DocumentDropRequest || (exports.DocumentDropRequest = DocumentDropRequest = {}));\nvar DocumentDrop_DataTransferItemAsStringRequest;\n(function (DocumentDrop_DataTransferItemAsStringRequest) {\n DocumentDrop_DataTransferItemAsStringRequest.type = new protocol.RequestType('volar/client/documentDrop/asString');\n})(DocumentDrop_DataTransferItemAsStringRequest || (exports.DocumentDrop_DataTransferItemAsStringRequest = DocumentDrop_DataTransferItemAsStringRequest = {}));\nvar DocumentDrop_DataTransferItemFileDataRequest;\n(function (DocumentDrop_DataTransferItemFileDataRequest) {\n DocumentDrop_DataTransferItemFileDataRequest.type = new protocol.RequestType('volar/client/documentDrop/fileData');\n})(DocumentDrop_DataTransferItemFileDataRequest || (exports.DocumentDrop_DataTransferItemFileDataRequest = DocumentDrop_DataTransferItemFileDataRequest = {}));\n/**\n * Labs\n */\nvar UpdateVirtualCodeStateNotification;\n(function (UpdateVirtualCodeStateNotification) {\n UpdateVirtualCodeStateNotification.type = new protocol.NotificationType('volar/client/labs/updateVirtualFileState');\n})(UpdateVirtualCodeStateNotification || (exports.UpdateVirtualCodeStateNotification = UpdateVirtualCodeStateNotification = {}));\nvar UpdateServicePluginStateNotification;\n(function (UpdateServicePluginStateNotification) {\n UpdateServicePluginStateNotification.type = new protocol.NotificationType('volar/client/labs/updateServicePluginState');\n})(UpdateServicePluginStateNotification || (exports.UpdateServicePluginStateNotification = UpdateServicePluginStateNotification = {}));\nvar GetServicePluginsRequest;\n(function (GetServicePluginsRequest) {\n GetServicePluginsRequest.type = new protocol.RequestType('volar/client/servicePlugins');\n})(GetServicePluginsRequest || (exports.GetServicePluginsRequest = GetServicePluginsRequest = {}));\nvar GetVirtualFileRequest;\n(function (GetVirtualFileRequest) {\n GetVirtualFileRequest.type = new protocol.RequestType('volar/client/virtualFiles');\n})(GetVirtualFileRequest || (exports.GetVirtualFileRequest = GetVirtualFileRequest = {}));\nvar GetVirtualCodeRequest;\n(function (GetVirtualCodeRequest) {\n GetVirtualCodeRequest.type = new protocol.RequestType('volar/client/virtualFile');\n})(GetVirtualCodeRequest || (exports.GetVirtualCodeRequest = GetVirtualCodeRequest = {}));\n//# sourceMappingURL=protocol.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nconst language_service_1 = require(\"@volar/language-service\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nconst protocol_1 = require(\"../../protocol\");\nfunction register(server) {\n server.onInitialize(() => {\n const { project } = server;\n const scriptVersions = (0, language_service_1.createUriMap)();\n const scriptVersionSnapshots = new WeakSet();\n server.connection.onRequest(protocol_1.GetMatchTsConfigRequest.type, async (params) => {\n const uri = vscode_uri_1.URI.parse(params.uri);\n const languageService = await project.getLanguageService(uri);\n const tsProject = languageService.context.project.typescript;\n if (tsProject?.configFileName) {\n const { configFileName, uriConverter } = tsProject;\n return { uri: uriConverter.asUri(configFileName).toString() };\n }\n });\n server.connection.onRequest(protocol_1.GetVirtualFileRequest.type, async (document) => {\n const uri = vscode_uri_1.URI.parse(document.uri);\n const languageService = await project.getLanguageService(uri);\n const documentUri = vscode_uri_1.URI.parse(document.uri);\n const sourceScript = languageService.context.language.scripts.get(documentUri);\n if (sourceScript?.generated) {\n return prune(sourceScript.generated.root);\n }\n function prune(virtualCode) {\n const uri = languageService.context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id);\n let version = scriptVersions.get(uri) ?? 0;\n if (!scriptVersionSnapshots.has(virtualCode.snapshot)) {\n version++;\n scriptVersions.set(uri, version);\n scriptVersionSnapshots.add(virtualCode.snapshot);\n }\n return {\n fileUri: sourceScript.id.toString(),\n virtualCodeId: virtualCode.id,\n languageId: virtualCode.languageId,\n embeddedCodes: virtualCode.embeddedCodes?.map(prune) || [],\n version,\n disabled: languageService.context.disabledEmbeddedDocumentUris.has(uri),\n };\n }\n });\n server.connection.onRequest(protocol_1.GetVirtualCodeRequest.type, async (params) => {\n const uri = vscode_uri_1.URI.parse(params.fileUri);\n const languageService = await project.getLanguageService(uri);\n const sourceScript = languageService.context.language.scripts.get(vscode_uri_1.URI.parse(params.fileUri));\n const virtualCode = sourceScript?.generated?.embeddedCodes.get(params.virtualCodeId);\n if (virtualCode) {\n const mappings = {};\n for (const [sourceScript, map] of languageService.context.language.maps.forEach(virtualCode)) {\n mappings[sourceScript.id.toString()] = map.mappings;\n }\n return {\n content: virtualCode.snapshot.getText(0, virtualCode.snapshot.getLength()),\n mappings,\n };\n }\n });\n server.connection.onNotification(protocol_1.UpdateVirtualCodeStateNotification.type, async (params) => {\n const uri = vscode_uri_1.URI.parse(params.fileUri);\n const languageService = await project.getLanguageService(uri);\n const virtualFileUri = languageService.context.encodeEmbeddedDocumentUri(vscode_uri_1.URI.parse(params.fileUri), params.virtualCodeId);\n if (params.disabled) {\n languageService.context.disabledEmbeddedDocumentUris.set(virtualFileUri, true);\n }\n else {\n languageService.context.disabledEmbeddedDocumentUris.delete(virtualFileUri);\n }\n });\n server.connection.onNotification(protocol_1.UpdateServicePluginStateNotification.type, async (params) => {\n const uri = vscode_uri_1.URI.parse(params.uri);\n const languageService = await project.getLanguageService(uri);\n const plugin = languageService.context.plugins[params.serviceId][1];\n if (params.disabled) {\n languageService.context.disabledServicePlugins.add(plugin);\n }\n else {\n languageService.context.disabledServicePlugins.delete(plugin);\n }\n });\n server.connection.onRequest(protocol_1.GetServicePluginsRequest.type, async (params) => {\n const uri = vscode_uri_1.URI.parse(params.uri);\n const languageService = await project.getLanguageService(uri);\n const result = [];\n for (let pluginIndex = 0; pluginIndex < languageService.context.plugins.length; pluginIndex++) {\n const plugin = languageService.context.plugins[pluginIndex];\n result.push({\n id: pluginIndex,\n name: plugin[0].name,\n disabled: languageService.context.disabledServicePlugins.has(plugin[1]),\n features: Object.keys(plugin[1]),\n });\n }\n return result;\n });\n });\n}\n//# sourceMappingURL=editorFeatures.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nconst language_service_1 = require(\"@volar/language-service\");\nconst vscode = require(\"vscode-languageserver\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nfunction register(documents, fileWatcher) {\n const providers = new Map();\n const readFileCache = (0, language_service_1.createUriMap)();\n const statCache = (0, language_service_1.createUriMap)();\n const readDirectoryCache = (0, language_service_1.createUriMap)();\n documents.onDidSave(({ document }) => {\n const uri = vscode_uri_1.URI.parse(document.uri);\n readFileCache.set(uri, document.getText());\n statCache.delete(uri);\n });\n fileWatcher.onDidChangeWatchedFiles(({ changes }) => {\n for (const change of changes) {\n const changeUri = vscode_uri_1.URI.parse(change.uri);\n const dir = vscode_uri_1.URI.parse(change.uri.substring(0, change.uri.lastIndexOf('/')));\n if (change.type === vscode.FileChangeType.Deleted) {\n readFileCache.set(changeUri, undefined);\n statCache.set(changeUri, undefined);\n readDirectoryCache.delete(dir);\n }\n else if (change.type === vscode.FileChangeType.Changed) {\n readFileCache.delete(changeUri);\n statCache.delete(changeUri);\n }\n else if (change.type === vscode.FileChangeType.Created) {\n readFileCache.delete(changeUri);\n statCache.delete(changeUri);\n readDirectoryCache.delete(dir);\n }\n }\n });\n return {\n readFile(uri) {\n if (!readFileCache.has(uri)) {\n readFileCache.set(uri, providers.get(uri.scheme)?.readFile(uri));\n }\n return readFileCache.get(uri);\n },\n stat(uri) {\n if (!statCache.has(uri)) {\n statCache.set(uri, providers.get(uri.scheme)?.stat(uri));\n }\n return statCache.get(uri);\n },\n readDirectory(uri) {\n if (!readDirectoryCache.has(uri)) {\n readDirectoryCache.set(uri, providers.get(uri.scheme)?.readDirectory(uri) ?? []);\n }\n return readDirectoryCache.get(uri);\n },\n install(scheme, provider) {\n providers.set(scheme, provider);\n },\n };\n}\n//# sourceMappingURL=fileSystem.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nconst vscode = require(\"vscode-languageserver\");\nfunction register(server) {\n let watchFilesDisposableCounter = 0;\n let watchFilesDisposable;\n const didChangeWatchedFilesCallbacks = new Set();\n return {\n watchFiles,\n onDidChangeWatchedFiles,\n };\n async function watchFiles(patterns) {\n const disposables = [];\n const didChangeWatchedFiles = server.initializeParams.capabilities.workspace?.didChangeWatchedFiles;\n const fileOperations = server.initializeParams.capabilities.workspace?.fileOperations;\n if (didChangeWatchedFiles) {\n if (watchFilesDisposableCounter === 0) {\n watchFilesDisposable = server.connection.onDidChangeWatchedFiles(e => {\n for (const cb of didChangeWatchedFilesCallbacks) {\n cb(e);\n }\n });\n }\n watchFilesDisposableCounter++;\n disposables.push({\n dispose() {\n watchFilesDisposableCounter--;\n if (watchFilesDisposableCounter === 0) {\n watchFilesDisposable?.dispose();\n }\n },\n });\n }\n if (didChangeWatchedFiles?.dynamicRegistration) {\n disposables.push(await server.connection.client.register(vscode.DidChangeWatchedFilesNotification.type, {\n watchers: patterns.map(pattern => ({ globPattern: pattern })),\n }));\n }\n if (fileOperations?.dynamicRegistration && fileOperations.willRename) {\n disposables.push(await server.connection.client.register(vscode.WillRenameFilesRequest.type, {\n filters: patterns.map(pattern => ({ pattern: { glob: pattern } })),\n }));\n }\n return {\n dispose() {\n for (const disposable of disposables) {\n disposable.dispose();\n }\n disposables.length = 0;\n },\n };\n }\n function onDidChangeWatchedFiles(cb) {\n didChangeWatchedFilesCallbacks.add(cb);\n return {\n dispose: () => {\n didChangeWatchedFilesCallbacks.delete(cb);\n },\n };\n }\n}\n//# sourceMappingURL=fileWatcher.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nconst language_service_1 = require(\"@volar/language-service\");\nconst vscode = require(\"vscode-languageserver\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nconst protocol_1 = require(\"../../protocol\");\nconst reportedCapabilities = new Set();\nfunction register(server, documents, configurations) {\n configurations.onDidChange(() => requestRefresh(false));\n // Diagnostics support\n let refreshReq = 0;\n let updateDiagnosticsBatchReq = 0;\n const refreshHandlers = [];\n server.onInitialize(serverCapabilities => {\n let lastCompleteUri;\n let lastCompleteLs;\n let lastCodeLensLs;\n let lastCodeActionLs;\n let lastCallHierarchyLs;\n let lastTypeHierarchyLs;\n let lastDocumentLinkLs;\n let lastInlayHintLs;\n let languageServiceToId = new WeakMap();\n let currentLanguageServiceId = 0;\n const languageServiceById = new Map();\n const { languageServicePlugins, project, initializeParams } = server;\n if (languageServicePlugins.some(({ capabilities }) => capabilities.selectionRangeProvider)) {\n serverCapabilities.selectionRangeProvider = true;\n server.connection.onSelectionRanges(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getSelectionRanges(uri, params.positions, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.foldingRangeProvider)) {\n serverCapabilities.foldingRangeProvider = true;\n server.connection.onFoldingRanges(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getFoldingRanges(uri, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.linkedEditingRangeProvider)) {\n serverCapabilities.linkedEditingRangeProvider = true;\n server.connection.languages.onLinkedEditingRange(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getLinkedEditingRanges(uri, params.position, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.colorProvider)) {\n serverCapabilities.colorProvider = true;\n server.connection.onDocumentColor(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getDocumentColors(uri, token);\n });\n });\n server.connection.onColorPresentation(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getColorPresentations(uri, params.color, params.range, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.documentSymbolProvider)) {\n serverCapabilities.documentSymbolProvider = true;\n server.connection.onDocumentSymbol(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getDocumentSymbols(uri, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.documentFormattingProvider)) {\n serverCapabilities.documentFormattingProvider = true;\n serverCapabilities.documentRangeFormattingProvider = true;\n server.connection.onDocumentFormatting(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getDocumentFormattingEdits(uri, params.options, undefined, undefined, token);\n });\n });\n server.connection.onDocumentRangeFormatting(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getDocumentFormattingEdits(uri, params.options, params.range, undefined, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.referencesProvider)) {\n serverCapabilities.referencesProvider = true;\n server.connection.onReferences(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getReferences(uri, params.position, { includeDeclaration: true }, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.implementationProvider)) {\n serverCapabilities.implementationProvider = true;\n server.connection.onImplementation(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, async (languageService) => {\n const definitions = await languageService.getImplementations(uri, params.position, token);\n return handleDefinitions(initializeParams, 'implementation', definitions ?? []);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.declarationProvider)) {\n serverCapabilities.declarationProvider = true;\n server.connection.onDeclaration(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, async (languageService) => {\n const definitions = await languageService.getDeclaration(uri, params.position, token);\n return handleDefinitions(initializeParams, 'declaration', definitions ?? []);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.definitionProvider)) {\n serverCapabilities.definitionProvider = true;\n server.connection.onDefinition(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, async (languageService) => {\n const definitions = await languageService.getDefinition(uri, params.position, token);\n return handleDefinitions(initializeParams, 'definition', definitions ?? []);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.typeDefinitionProvider)) {\n serverCapabilities.typeDefinitionProvider = true;\n server.connection.onTypeDefinition(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, async (languageService) => {\n const definitions = await languageService.getTypeDefinition(uri, params.position, token);\n return handleDefinitions(initializeParams, 'typeDefinition', definitions ?? []);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.callHierarchyProvider)) {\n serverCapabilities.callHierarchyProvider = true;\n server.connection.languages.callHierarchy.onPrepare(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n lastCallHierarchyLs = languageService;\n return languageService.getCallHierarchyItems(uri, params.position, token);\n }) ?? [];\n });\n server.connection.languages.callHierarchy.onIncomingCalls(async (params, token) => {\n return await lastCallHierarchyLs?.getCallHierarchyIncomingCalls(params.item, token) ?? [];\n });\n server.connection.languages.callHierarchy.onOutgoingCalls(async (params, token) => {\n return await lastCallHierarchyLs?.getCallHierarchyOutgoingCalls(params.item, token) ?? [];\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.typeHierarchyProvider)) {\n serverCapabilities.typeHierarchyProvider = true;\n server.connection.languages.typeHierarchy.onPrepare(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n lastTypeHierarchyLs = languageService;\n return languageService.getTypeHierarchyItems(uri, params.position, token);\n }) ?? [];\n });\n server.connection.languages.typeHierarchy.onSupertypes(async (params, token) => {\n return await lastTypeHierarchyLs?.getTypeHierarchySupertypes(params.item, token) ?? [];\n });\n server.connection.languages.typeHierarchy.onSubtypes(async (params, token) => {\n return await lastTypeHierarchyLs?.getTypeHierarchySubtypes(params.item, token) ?? [];\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.hoverProvider)) {\n serverCapabilities.hoverProvider = true;\n server.connection.onHover(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getHover(uri, params.position, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.documentHighlightProvider)) {\n serverCapabilities.documentHighlightProvider = true;\n server.connection.onDocumentHighlight(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getDocumentHighlights(uri, params.position, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.workspaceSymbolProvider)) {\n serverCapabilities.workspaceSymbolProvider = {};\n server.connection.onWorkspaceSymbol(async (params, token) => {\n let languageServices = await project.getExistingLanguageServices();\n if (!languageServices.length) {\n for (const document of documents.all()) {\n await project.getLanguageService(vscode_uri_1.URI.parse(document.uri));\n }\n languageServices = await project.getExistingLanguageServices();\n }\n const symbols = [];\n for (const languageService of languageServices) {\n if (token.isCancellationRequested) {\n return;\n }\n let languageServiceId = languageServiceToId.get(languageService);\n if (languageServiceId === undefined) {\n languageServiceId = currentLanguageServiceId;\n languageServiceToId.set(languageService, languageServiceId);\n languageServiceById.set(languageServiceId, new WeakRef(languageService));\n }\n const languageServiceResult = await languageService.getWorkspaceSymbols(params.query, token);\n for (const symbol of languageServiceResult) {\n symbol.data = {\n languageServiceId,\n originalData: symbol.data,\n };\n }\n symbols.push(...await languageService.getWorkspaceSymbols(params.query, token));\n }\n return symbols;\n });\n if (languageServicePlugins.some(({ capabilities }) => capabilities.workspaceSymbolProvider?.resolveProvider)) {\n serverCapabilities.workspaceSymbolProvider.resolveProvider = true;\n server.connection.onWorkspaceSymbolResolve(async (symbol, token) => {\n const languageServiceId = symbol.data?.languageServiceId;\n const languageService = languageServiceById.get(languageServiceId)?.deref();\n if (!languageService) {\n return symbol;\n }\n symbol.data = symbol.data?.originalData;\n return await languageService.resolveWorkspaceSymbol?.(symbol, token);\n });\n }\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.renameProvider)) {\n serverCapabilities.renameProvider = {};\n server.connection.onRenameRequest(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getRenameEdits(uri, params.position, params.newName, token);\n });\n });\n if (languageServicePlugins.some(({ capabilities }) => capabilities.renameProvider?.prepareProvider)) {\n serverCapabilities.renameProvider.prepareProvider = true;\n server.connection.onPrepareRename(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, async (languageService) => {\n const result = await languageService.getRenameRange(uri, params.position, token);\n if (result && 'message' in result) {\n return new vscode.ResponseError(0, result.message);\n }\n return result;\n });\n });\n }\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.documentLinkProvider)) {\n serverCapabilities.documentLinkProvider = {};\n server.connection.onDocumentLinks(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n lastDocumentLinkLs = languageService;\n return languageService.getDocumentLinks(uri, token);\n });\n });\n if (languageServicePlugins.some(({ capabilities }) => capabilities.documentLinkProvider?.resolveProvider)) {\n serverCapabilities.documentLinkProvider.resolveProvider = true;\n server.connection.onDocumentLinkResolve(async (link, token) => {\n return await lastDocumentLinkLs?.resolveDocumentLink(link, token);\n });\n }\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.codeLensProvider)) {\n serverCapabilities.codeLensProvider = {};\n server.connection.onCodeLens(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n lastCodeLensLs = languageService;\n return languageService.getCodeLenses(uri, token);\n });\n });\n if (languageServicePlugins.some(({ capabilities }) => capabilities.codeLensProvider?.resolveProvider)) {\n serverCapabilities.codeLensProvider.resolveProvider = true;\n server.connection.onCodeLensResolve(async (codeLens, token) => {\n return await lastCodeLensLs?.resolveCodeLens(codeLens, token) ?? codeLens;\n });\n }\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.inlayHintProvider)) {\n serverCapabilities.inlayHintProvider = {};\n server.connection.languages.inlayHint.on(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n lastInlayHintLs = languageService;\n return languageService.getInlayHints(uri, params.range, token);\n });\n });\n if (languageServicePlugins.some(({ capabilities }) => capabilities.inlayHintProvider?.resolveProvider)) {\n serverCapabilities.inlayHintProvider.resolveProvider = true;\n server.connection.languages.inlayHint.resolve(async (hint, token) => {\n return await lastInlayHintLs?.resolveInlayHint(hint, token) ?? hint;\n });\n }\n refreshHandlers.push(() => {\n if (initializeParams.capabilities.workspace?.inlayHint?.refreshSupport) {\n server.connection.languages.inlayHint.refresh();\n }\n else {\n wranCapabilitiesNotSupported('workspace.inlayHint.refreshSupport');\n }\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.signatureHelpProvider)) {\n serverCapabilities.signatureHelpProvider = {\n triggerCharacters: [\n ...new Set(languageServicePlugins.map(({ capabilities }) => capabilities.signatureHelpProvider?.triggerCharacters ?? []).flat()),\n ],\n retriggerCharacters: [\n ...new Set(languageServicePlugins.map(({ capabilities }) => capabilities.signatureHelpProvider?.retriggerCharacters ?? []).flat()),\n ],\n };\n server.connection.onSignatureHelp(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getSignatureHelp(uri, params.position, params.context, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.completionProvider)) {\n serverCapabilities.completionProvider = {\n triggerCharacters: [\n ...new Set(languageServicePlugins.map(({ capabilities }) => capabilities.completionProvider?.triggerCharacters ?? [])\n .flat()),\n ],\n };\n server.connection.onCompletion(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, async (languageService) => {\n lastCompleteUri = params.textDocument.uri;\n lastCompleteLs = languageService;\n const list = await languageService.getCompletionItems(uri, params.position, params.context, token);\n list.items = list.items.map(item => handleCompletionItem(initializeParams, item));\n return list;\n });\n });\n if (languageServicePlugins.some(({ capabilities }) => capabilities.completionProvider?.resolveProvider)) {\n serverCapabilities.completionProvider.resolveProvider = true;\n server.connection.onCompletionResolve(async (item, token) => {\n if (lastCompleteUri && lastCompleteLs) {\n item = await lastCompleteLs.resolveCompletionItem(item, token);\n item = handleCompletionItem(initializeParams, item);\n }\n return item;\n });\n }\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.semanticTokensProvider)) {\n serverCapabilities.semanticTokensProvider = {\n full: true,\n range: true,\n legend: {\n tokenTypes: [\n ...new Set(languageServicePlugins.map(({ capabilities }) => capabilities.semanticTokensProvider?.legend?.tokenTypes ?? []).flat()),\n ],\n tokenModifiers: [\n ...new Set(languageServicePlugins.map(({ capabilities }) => capabilities.semanticTokensProvider?.legend?.tokenModifiers ?? []).flat()),\n ],\n },\n };\n server.connection.languages.semanticTokens.on(async (params, token, _, resultProgress) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, async (languageService) => {\n return await languageService?.getSemanticTokens(uri, undefined, serverCapabilities.semanticTokensProvider.legend, tokens => resultProgress?.report(tokens), token);\n }) ?? { data: [] };\n });\n server.connection.languages.semanticTokens.onRange(async (params, token, _, resultProgress) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, async (languageService) => {\n return await languageService?.getSemanticTokens(uri, params.range, serverCapabilities.semanticTokensProvider.legend, tokens => resultProgress?.report(tokens), token);\n }) ?? { data: [] };\n });\n refreshHandlers.push(() => {\n if (initializeParams.capabilities.workspace?.semanticTokens?.refreshSupport) {\n server.connection.languages.semanticTokens.refresh();\n }\n else {\n wranCapabilitiesNotSupported('workspace.semanticTokens.refreshSupport');\n }\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.codeActionProvider)) {\n serverCapabilities.codeActionProvider = {\n codeActionKinds: languageServicePlugins.some(({ capabilities }) => capabilities.codeActionProvider?.codeActionKinds)\n ? [\n ...new Set(languageServicePlugins.map(({ capabilities }) => capabilities.codeActionProvider?.codeActionKinds ?? [])\n .flat()),\n ]\n : undefined,\n };\n server.connection.onCodeAction(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, async (languageService) => {\n lastCodeActionLs = languageService;\n let codeActions = await languageService.getCodeActions(uri, params.range, params.context, token) ?? [];\n for (const codeAction of codeActions) {\n if (codeAction.data && typeof codeAction.data === 'object') {\n codeAction.data.uri = params.textDocument.uri;\n }\n else {\n codeAction.data = { uri: params.textDocument.uri };\n }\n }\n if (!initializeParams.capabilities.textDocument?.codeAction?.disabledSupport\n && codeActions.some(codeAction => !codeAction.disabled)) {\n codeActions = codeActions.filter(codeAction => !codeAction.disabled);\n wranCapabilitiesNotSupported('textDocument.codeAction.disabledSupport');\n }\n return codeActions;\n });\n });\n if (languageServicePlugins.some(({ capabilities }) => capabilities.codeActionProvider?.resolveProvider)) {\n serverCapabilities.codeActionProvider.resolveProvider = true;\n server.connection.onCodeActionResolve(async (codeAction, token) => {\n return await lastCodeActionLs?.resolveCodeAction(codeAction, token) ?? codeAction;\n });\n }\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.documentOnTypeFormattingProvider)) {\n serverCapabilities.documentOnTypeFormattingProvider = {\n firstTriggerCharacter: [\n ...new Set(languageServicePlugins.map(({ capabilities }) => capabilities.documentOnTypeFormattingProvider?.triggerCharacters ?? []).flat()),\n ][0],\n moreTriggerCharacter: [\n ...new Set(languageServicePlugins.map(({ capabilities }) => capabilities.documentOnTypeFormattingProvider?.triggerCharacters ?? []).flat()),\n ].slice(1),\n };\n server.connection.onDocumentOnTypeFormatting(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getDocumentFormattingEdits(uri, params.options, undefined, params, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.executeCommandProvider)) {\n serverCapabilities.executeCommandProvider = {\n commands: [\n ...new Set(languageServicePlugins.map(({ capabilities }) => capabilities.executeCommandProvider?.commands ?? [])\n .flat()),\n ],\n };\n server.connection.onExecuteCommand(async (params, token) => {\n let languageServices = await project.getExistingLanguageServices();\n if (!languageServices.length) {\n for (const document of documents.all()) {\n await project.getLanguageService(vscode_uri_1.URI.parse(document.uri));\n }\n languageServices = await project.getExistingLanguageServices();\n }\n for (const languageService of languageServices) {\n if (languageService.executeCommand && languageService.commands.includes(params.command)) {\n try {\n return await languageService.executeCommand(params.command, params.arguments ?? [], token);\n }\n catch { }\n }\n }\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.monikerProvider)) {\n serverCapabilities.monikerProvider = true;\n server.connection.languages.moniker.on(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getMoniker(uri, params.position, token);\n }) ?? null;\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.inlineValueProvider)) {\n serverCapabilities.inlineValueProvider = true;\n server.connection.languages.inlineValue.on(async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getInlineValue(uri, params.range, params.context, token);\n });\n });\n refreshHandlers.push(() => {\n if (initializeParams.capabilities.workspace?.inlineValue?.refreshSupport) {\n server.connection.languages.inlineValue.refresh();\n }\n else {\n wranCapabilitiesNotSupported('workspace.inlineValue.refreshSupport');\n }\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.autoInsertionProvider)) {\n const triggerCharacterToConfigurationSections = new Map();\n const tryAdd = (char, section) => {\n let sectionSet = triggerCharacterToConfigurationSections.get(char);\n if (!sectionSet) {\n triggerCharacterToConfigurationSections.set(char, sectionSet = new Set());\n }\n if (section) {\n sectionSet.add(section);\n }\n };\n for (const { capabilities } of languageServicePlugins) {\n if (capabilities.autoInsertionProvider) {\n const { triggerCharacters, configurationSections } = capabilities.autoInsertionProvider;\n if (configurationSections) {\n if (configurationSections.length !== triggerCharacters.length) {\n throw new Error('configurationSections.length !== triggerCharacters.length');\n }\n for (let i = 0; i < configurationSections.length; i++) {\n tryAdd(triggerCharacters[i], configurationSections[i]);\n }\n }\n else {\n for (const char of triggerCharacters) {\n tryAdd(char);\n }\n }\n }\n }\n serverCapabilities.experimental ??= {};\n serverCapabilities.experimental.autoInsertionProvider = {\n triggerCharacters: [],\n configurationSections: [],\n };\n for (const [char, sections] of triggerCharacterToConfigurationSections) {\n if (sections.size) {\n serverCapabilities.experimental.autoInsertionProvider.triggerCharacters.push(char);\n serverCapabilities.experimental.autoInsertionProvider.configurationSections.push([...sections]);\n }\n else {\n serverCapabilities.experimental.autoInsertionProvider.triggerCharacters.push(char);\n serverCapabilities.experimental.autoInsertionProvider.configurationSections.push(null);\n }\n }\n server.connection.onRequest(protocol_1.AutoInsertRequest.type, async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getAutoInsertSnippet(uri, params.selection, params.change, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.fileRenameEditsProvider)) {\n serverCapabilities.experimental ??= {};\n serverCapabilities.experimental.fileRenameEditsProvider = true;\n server.connection.workspace.onWillRenameFiles(async (params, token) => {\n const _edits = await Promise.all(params.files.map(async (file) => {\n const oldUri = vscode_uri_1.URI.parse(file.oldUri);\n const newUri = vscode_uri_1.URI.parse(file.newUri);\n return await worker(oldUri, token, languageService => {\n return languageService.getFileRenameEdits(oldUri, newUri, token) ?? null;\n }) ?? null;\n }));\n const edits = _edits.filter((edit) => !!edit);\n if (edits.length) {\n (0, language_service_1.mergeWorkspaceEdits)(edits[0], ...edits.slice(1));\n return edits[0];\n }\n return null;\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.fileReferencesProvider)) {\n serverCapabilities.experimental ??= {};\n serverCapabilities.experimental.fileReferencesProvider = true;\n server.connection.onRequest(protocol_1.FindFileReferenceRequest.type, async (params, token) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n return await worker(uri, token, languageService => {\n return languageService.getFileReferences(uri, token);\n });\n });\n }\n if (languageServicePlugins.some(({ capabilities }) => capabilities.documentDropEditsProvider)) {\n serverCapabilities.experimental ??= {};\n serverCapabilities.experimental.documentDropEditsProvider = true;\n server.connection.onRequest(protocol_1.DocumentDropRequest.type, async ({ textDocument, position, dataTransfer }, token) => {\n const dataTransferMap = new Map();\n for (const item of dataTransfer) {\n dataTransferMap.set(item.mimeType, {\n value: item.value,\n asString() {\n return server.connection.sendRequest(protocol_1.DocumentDrop_DataTransferItemAsStringRequest.type, {\n mimeType: item.mimeType,\n });\n },\n asFile() {\n if (item.file) {\n return {\n name: item.file.name,\n uri: item.file.uri,\n data() {\n return server.connection.sendRequest(protocol_1.DocumentDrop_DataTransferItemFileDataRequest.type, {\n mimeType: item.mimeType,\n });\n },\n };\n }\n },\n });\n }\n const uri = vscode_uri_1.URI.parse(textDocument.uri);\n const languageService = await project.getLanguageService(uri);\n return languageService.getDocumentDropEdits(uri, position, dataTransferMap, token);\n });\n }\n // Diagnostic support\n const supportsDiagnosticPull = !!initializeParams.capabilities.workspace?.diagnostics;\n const diagnosticProvider = languageServicePlugins.some(({ capabilities }) => !!capabilities.diagnosticProvider);\n const interFileDependencies = languageServicePlugins.some(({ capabilities }) => capabilities.diagnosticProvider?.interFileDependencies);\n const workspaceDiagnostics = languageServicePlugins.some(({ capabilities }) => capabilities.diagnosticProvider?.workspaceDiagnostics);\n if (diagnosticProvider) {\n if (supportsDiagnosticPull && !interFileDependencies) {\n serverCapabilities.diagnosticProvider = {\n // Unreliable, see https://github.com/microsoft/vscode-languageserver-node/issues/848#issuecomment-2189521060\n interFileDependencies: false,\n workspaceDiagnostics,\n };\n refreshHandlers.push(() => {\n if (initializeParams.capabilities.workspace?.diagnostics?.refreshSupport) {\n server.connection.languages.diagnostics.refresh();\n }\n else {\n wranCapabilitiesNotSupported('workspace.diagnostics.refreshSupport');\n }\n });\n }\n else {\n documents.onDidChangeContent(({ document }) => {\n const changedDocument = documents.get(vscode_uri_1.URI.parse(document.uri));\n if (!changedDocument) {\n return;\n }\n if (interFileDependencies) {\n const remainingDocuments = [...documents.all()].filter(doc => doc !== changedDocument);\n updateDiagnosticsBatch(project, [changedDocument, ...remainingDocuments]);\n }\n else {\n updateDiagnosticsBatch(project, [changedDocument]);\n }\n });\n documents.onDidClose(({ document }) => {\n server.connection.sendDiagnostics({ uri: document.uri, diagnostics: [] });\n });\n refreshHandlers.push(async (clearDiagnostics) => {\n if (clearDiagnostics) {\n for (const document of documents.all()) {\n server.connection.sendDiagnostics({ uri: document.uri, diagnostics: [] });\n }\n }\n await updateDiagnosticsBatch(project, [...documents.all()]);\n });\n }\n server.connection.languages.diagnostics.on(async (params, token, _workDoneProgressReporter, resultProgressReporter) => {\n const uri = vscode_uri_1.URI.parse(params.textDocument.uri);\n const result = await worker(uri, token, languageService => {\n return languageService.getDiagnostics(uri, errors => {\n // resultProgressReporter is undefined in vscode\n resultProgressReporter?.report({\n relatedDocuments: {\n [params.textDocument.uri]: {\n kind: vscode.DocumentDiagnosticReportKind.Full,\n items: errors,\n },\n },\n });\n }, token);\n });\n return {\n kind: vscode.DocumentDiagnosticReportKind.Full,\n items: result ?? [],\n };\n });\n }\n if (workspaceDiagnostics) {\n server.connection.languages.diagnostics.onWorkspace(async (_params, token) => {\n let languageServices = await project.getExistingLanguageServices();\n if (!languageServices.length) {\n for (const document of documents.all()) {\n await project.getLanguageService(vscode_uri_1.URI.parse(document.uri));\n }\n languageServices = await project.getExistingLanguageServices();\n }\n const items = [];\n for (const languageService of languageServices) {\n if (token.isCancellationRequested) {\n break;\n }\n const result = await languageService.getWorkspaceDiagnostics(token);\n items.push(...result);\n }\n return { items };\n });\n }\n });\n return { requestRefresh };\n async function requestRefresh(clearDiagnostics) {\n const req = ++refreshReq;\n const delay = 250;\n await sleep(delay);\n if (req !== refreshReq) {\n return;\n }\n for (const handler of refreshHandlers) {\n handler(clearDiagnostics);\n }\n }\n async function updateDiagnosticsBatch(project, documents) {\n const req = ++updateDiagnosticsBatchReq;\n const delay = 250;\n const token = {\n get isCancellationRequested() {\n return req !== updateDiagnosticsBatchReq;\n },\n onCancellationRequested: vscode.Event.None,\n };\n for (const doc of documents) {\n await sleep(delay);\n if (token.isCancellationRequested) {\n break;\n }\n await updateDiagnostics(project, vscode_uri_1.URI.parse(doc.uri), doc.version, token);\n }\n }\n async function updateDiagnostics(project, uri, version, token) {\n const languageService = await project.getLanguageService(uri);\n const diagnostics = await languageService.getDiagnostics(uri, diagnostics => server.connection.sendDiagnostics({ uri: uri.toString(), diagnostics, version }), token);\n if (!token.isCancellationRequested) {\n server.connection.sendDiagnostics({ uri: uri.toString(), diagnostics, version });\n }\n }\n function worker(uri, token, cb) {\n return new Promise(resolve => {\n server.env.timer.setImmediate(async () => {\n if (token.isCancellationRequested) {\n resolve(undefined);\n return;\n }\n const languageService = await server.project.getLanguageService((0, language_service_1.decodeEmbeddedDocumentUri)(uri)?.[0] ?? uri);\n const result = await cb(languageService);\n if (token.isCancellationRequested) {\n resolve(undefined);\n return;\n }\n resolve(result);\n });\n });\n }\n function handleCompletionItem(initializeParams, item) {\n const snippetSupport = initializeParams.capabilities.textDocument?.completion?.completionItem?.snippetSupport\n ?? false;\n const insertReplaceSupport = initializeParams.capabilities.textDocument?.completion?.completionItem?.insertReplaceSupport ?? false;\n if (!snippetSupport && item.insertTextFormat === vscode.InsertTextFormat.Snippet) {\n item.insertTextFormat = vscode.InsertTextFormat.PlainText;\n if (item.insertText) {\n item.insertText = item.insertText.replace(/\\$\\d+/g, '');\n item.insertText = item.insertText.replace(/\\${\\d+:([^}]*)}/g, '');\n }\n wranCapabilitiesNotSupported('textDocument.completion.completionItem.snippetSupport');\n }\n if (!insertReplaceSupport && item.textEdit && vscode.InsertReplaceEdit.is(item.textEdit)) {\n item.textEdit = vscode.TextEdit.replace(item.textEdit.insert, item.textEdit.newText);\n wranCapabilitiesNotSupported('textDocument.completion.completionItem.insertReplaceSupport');\n }\n return item;\n }\n function handleDefinitions(initializeParams, type, items) {\n const linkSupport = initializeParams.capabilities.textDocument?.[type]?.linkSupport ?? false;\n if (!linkSupport) {\n wranCapabilitiesNotSupported(`textDocument.${type}.linkSupport`);\n return items.map(item => ({\n uri: item.targetUri,\n range: item.targetRange,\n }));\n }\n return items;\n }\n}\nfunction wranCapabilitiesNotSupported(path) {\n if (reportedCapabilities.has(path)) {\n return;\n }\n reportedCapabilities.add(path);\n console.warn(`${path} is not supported by the client but could be used by the server.`);\n}\nfunction sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n//# sourceMappingURL=languageFeatures.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineChangeRanges = combineChangeRanges;\nfunction combineChangeRanges(...changeRanges) {\n let changeRange = changeRanges[0];\n for (let i = 1; i < changeRanges.length; i++) {\n const nextChangeRange = changeRanges[i];\n changeRange = combineTwoChanges(changeRange, nextChangeRange);\n }\n return changeRange;\n}\n// https://tsplay.dev/mMldVN - @browsnet\nfunction combineTwoChanges(a, b) {\n const aStart = a.span.start;\n const aEnd = a.span.start + a.span.length;\n const aDiff = a.newLength - a.span.length;\n const changeBegin = aStart + Math.min(a.span.length, a.newLength);\n const rollback = (start) => start > changeBegin ? Math.max(aStart, start - aDiff) : start;\n const bStart = rollback(b.span.start);\n const bEnd = rollback(b.span.start + b.span.length);\n const bDiff = b.newLength - b.span.length;\n const start = Math.min(aStart, bStart);\n const end = Math.max(aEnd, bEnd);\n const length = end - start;\n const newLength = aDiff + bDiff + length;\n return { span: { start, length }, newLength };\n}\n//# sourceMappingURL=combineChangeRanges.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SnapshotDocument = void 0;\nconst vscode_languageserver_textdocument_1 = require(\"vscode-languageserver-textdocument\");\nconst combineChangeRanges_1 = require(\"./combineChangeRanges\");\nclass SnapshotDocument {\n constructor(uri, languageId, version, text) {\n this.snapshots = [];\n this.document = vscode_languageserver_textdocument_1.TextDocument.create(uri, languageId, version, text);\n this.resetChanges();\n }\n get uri() {\n return this.document.uri;\n }\n get languageId() {\n return this.document.languageId;\n }\n get version() {\n return this.document.version;\n }\n get lineCount() {\n return this.document.lineCount;\n }\n getText(range) {\n return this.document.getText(range);\n }\n positionAt(offset) {\n return this.document.positionAt(offset);\n }\n offsetAt(position) {\n return this.document.offsetAt(position);\n }\n /**\n * Update the document with the given content changes and version.\n * If all changes is incremental, calculate the change range and add a new snapshot.\n * Otherwise, reset the changes.\n */\n update(contentChanges, version) {\n if (contentChanges.every(change => 'range' in change)) {\n let changeRanges = [];\n for (const contentChange of contentChanges) {\n if (!('range' in contentChange)) {\n continue;\n }\n const start = this.offsetAt(contentChange.range.start);\n const length = contentChange.rangeLength ?? this.offsetAt(contentChange.range.end) - start;\n changeRanges.push({\n span: { start, length },\n newLength: contentChange.text.length,\n });\n vscode_languageserver_textdocument_1.TextDocument.update(this.document, [contentChange], version);\n }\n this.snapshots.push({\n changeRange: (0, combineChangeRanges_1.combineChangeRanges)(...changeRanges),\n version,\n ref: undefined,\n });\n }\n else {\n vscode_languageserver_textdocument_1.TextDocument.update(this.document, contentChanges, version);\n this.resetChanges();\n }\n }\n getSnapshot() {\n this.clearUnreferencedVersions();\n const lastChange = this.snapshots[this.snapshots.length - 1];\n if (!lastChange.ref) {\n const text = this.document.getText();\n const changeRangeCache = new WeakMap();\n const snapshot = {\n getText: (start, end) => text.substring(start, end),\n getLength: () => text.length,\n getChangeRange: oldSnapshot => {\n if (!changeRangeCache.has(oldSnapshot)) {\n const oldIndex = this.snapshots.findIndex(change => change.ref?.deref() === oldSnapshot);\n if (oldIndex >= 0) {\n const start = oldIndex + 1;\n const end = this.snapshots.indexOf(lastChange) + 1;\n const changeRanges = this.snapshots\n .slice(start, end)\n .map(change => change.changeRange);\n const changeRange = (0, combineChangeRanges_1.combineChangeRanges)(...changeRanges);\n changeRangeCache.set(oldSnapshot, changeRange);\n }\n else {\n changeRangeCache.set(oldSnapshot, undefined);\n }\n }\n return changeRangeCache.get(oldSnapshot);\n },\n };\n lastChange.ref = new WeakRef(snapshot);\n }\n return lastChange.ref.deref();\n }\n resetChanges() {\n this.snapshots = [\n {\n changeRange: {\n span: {\n start: 0,\n length: 0,\n },\n newLength: this.document.getText().length,\n },\n version: this.document.version,\n ref: undefined,\n },\n ];\n }\n clearUnreferencedVersions() {\n let firstReferencedIndex = 0;\n while (firstReferencedIndex < this.snapshots.length - 1 && !this.snapshots[firstReferencedIndex].ref?.deref()) {\n firstReferencedIndex++;\n }\n this.snapshots = this.snapshots.slice(firstReferencedIndex);\n }\n}\nexports.SnapshotDocument = SnapshotDocument;\n//# sourceMappingURL=snapshotDocument.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nconst vscode = require(\"vscode-languageserver\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nconst snapshotDocument_1 = require(\"../utils/snapshotDocument\");\nfunction register(server) {\n const syncedDocumentParsedUriToUri = new Map();\n const documentsCache = new Map();\n const documents = new vscode.TextDocuments({\n create(uri, languageId, version, text) {\n const cache = documentsCache.get(uri)?.deref();\n if (cache && cache.languageId === languageId && cache.version === version && cache.getText() === text) {\n return cache;\n }\n const document = new snapshotDocument_1.SnapshotDocument(uri, languageId, version, text);\n documentsCache.set(uri, new WeakRef(document));\n return document;\n },\n update(snapshot, contentChanges, version) {\n snapshot.update(contentChanges, version);\n return snapshot;\n },\n });\n documents.listen(server.connection);\n documents.onDidOpen(({ document }) => {\n const parsedUri = vscode_uri_1.URI.parse(document.uri);\n syncedDocumentParsedUriToUri.set(parsedUri.toString(), document.uri);\n });\n documents.onDidClose(({ document }) => {\n const parsedUri = vscode_uri_1.URI.parse(document.uri);\n syncedDocumentParsedUriToUri.delete(parsedUri.toString());\n });\n server.onInitialize(serverCapabilities => {\n serverCapabilities.textDocumentSync = vscode.TextDocumentSyncKind.Incremental;\n });\n return {\n all: documents.all.bind(documents),\n onDidChangeContent: documents.onDidChangeContent.bind(documents),\n onDidOpen: documents.onDidOpen.bind(documents),\n onDidClose: documents.onDidClose.bind(documents),\n onDidSave: documents.onDidSave.bind(documents),\n get(uri) {\n return documents.get(getSyncedDocumentKey(uri) ?? uri.toString());\n },\n };\n function getSyncedDocumentKey(uri) {\n const originalUri = syncedDocumentParsedUriToUri.get(uri.toString());\n if (originalUri) {\n return originalUri;\n }\n }\n}\n//# sourceMappingURL=textDocuments.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nconst language_service_1 = require(\"@volar/language-service\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nfunction register(server) {\n const folders = (0, language_service_1.createUriMap)();\n const didChangeCallbacks = new Set();\n server.onInitialize(serverCapabilities => {\n const { initializeParams } = server;\n if (initializeParams.workspaceFolders?.length) {\n for (const folder of initializeParams.workspaceFolders) {\n folders.set(vscode_uri_1.URI.parse(folder.uri), true);\n }\n }\n else if (initializeParams.rootUri) {\n folders.set(vscode_uri_1.URI.parse(initializeParams.rootUri), true);\n }\n else if (initializeParams.rootPath) {\n folders.set(vscode_uri_1.URI.file(initializeParams.rootPath), true);\n }\n // #18\n serverCapabilities.workspace ??= {};\n serverCapabilities.workspace.workspaceFolders = {\n supported: true,\n changeNotifications: true,\n };\n });\n server.onInitialized(() => {\n if (server.initializeParams.capabilities.workspace?.workspaceFolders) {\n server.connection.workspace.onDidChangeWorkspaceFolders(e => {\n e.added = e.added.filter(folder => !folders.has(vscode_uri_1.URI.parse(folder.uri)));\n e.removed = e.removed.filter(folder => folders.has(vscode_uri_1.URI.parse(folder.uri)));\n if (e.added.length || e.removed.length) {\n for (const folder of e.added) {\n folders.set(vscode_uri_1.URI.parse(folder.uri), true);\n }\n for (const folder of e.removed) {\n folders.delete(vscode_uri_1.URI.parse(folder.uri));\n }\n server.project.reload();\n for (const cb of didChangeCallbacks) {\n cb(e);\n }\n }\n });\n }\n });\n return {\n get all() {\n return [...folders.keys()];\n },\n has(uri) {\n return folders.has(uri);\n },\n onDidChange,\n };\n function onDidChange(cb) {\n didChangeCallbacks.add(cb);\n return {\n dispose() {\n didChangeCallbacks.delete(cb);\n },\n };\n }\n}\n//# sourceMappingURL=workspaceFolders.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createServerBase = createServerBase;\nconst configurations_js_1 = require(\"./features/configurations.js\");\nconst editorFeatures_js_1 = require(\"./features/editorFeatures.js\");\nconst fileSystem_js_1 = require(\"./features/fileSystem.js\");\nconst fileWatcher_js_1 = require(\"./features/fileWatcher.js\");\nconst languageFeatures_js_1 = require(\"./features/languageFeatures.js\");\nconst textDocuments_js_1 = require(\"./features/textDocuments.js\");\nconst workspaceFolders_js_1 = require(\"./features/workspaceFolders.js\");\nfunction createServerBase(connection, env) {\n const onInitializeCallbacks = [];\n const onInitializedCallbacks = [];\n const state = {\n env,\n connection,\n initializeParams: undefined,\n project: undefined,\n languageServicePlugins: undefined,\n onInitialize(callback) {\n onInitializeCallbacks.push(callback);\n },\n onInitialized(callback) {\n onInitializedCallbacks.push(callback);\n },\n };\n const configurations = (0, configurations_js_1.register)(state);\n const editorFeatures = (0, editorFeatures_js_1.register)(state);\n const documents = (0, textDocuments_js_1.register)(state);\n const workspaceFolders = (0, workspaceFolders_js_1.register)(state);\n const fileWatcher = (0, fileWatcher_js_1.register)(state);\n const languageFeatures = (0, languageFeatures_js_1.register)(state, documents, configurations);\n const fileSystem = (0, fileSystem_js_1.register)(documents, fileWatcher);\n const server = {\n ...state,\n get initializeParams() {\n return state.initializeParams;\n },\n get project() {\n return state.project;\n },\n get languageServicePlugins() {\n return state.languageServicePlugins;\n },\n initialize(params, project, languageServicePlugins) {\n state.initializeParams = params;\n state.project = project;\n state.languageServicePlugins = languageServicePlugins;\n const serverCapabilities = {};\n onInitializeCallbacks.forEach(cb => cb(serverCapabilities));\n return { capabilities: serverCapabilities };\n },\n initialized() {\n onInitializedCallbacks.forEach(cb => cb());\n state.project.setup(server);\n },\n shutdown() {\n state.project.reload();\n },\n configurations,\n editorFeatures,\n documents,\n workspaceFolders,\n fileWatcher,\n languageFeatures,\n fileSystem,\n };\n return server;\n}\n//# sourceMappingURL=server.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/types\"), exports);\n__exportStar(require(\"./protocol\"), exports);\n// only export types of depend packages\n__exportStar(require(\"@volar/language-core/lib/types\"), exports);\n__exportStar(require(\"@volar/language-service/lib/types\"), exports);\n__exportStar(require(\"vscode-languageserver\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSimpleProject = createSimpleProject;\nexports.createLanguageServiceEnvironment = createLanguageServiceEnvironment;\nconst language_service_1 = require(\"@volar/language-service\");\nfunction createSimpleProject(languagePlugins) {\n let server;\n let languageService;\n return {\n setup(_server) {\n server = _server;\n const language = (0, language_service_1.createLanguage)([\n { getLanguageId: uri => server.documents.get(uri)?.languageId },\n ...languagePlugins,\n ], (0, language_service_1.createUriMap)(false), uri => {\n const document = server.documents.get(uri);\n if (document) {\n language.scripts.set(uri, document.getSnapshot(), document.languageId);\n }\n else {\n language.scripts.delete(uri);\n }\n });\n languageService = (0, language_service_1.createLanguageService)(language, server.languageServicePlugins, createLanguageServiceEnvironment(server, server.workspaceFolders.all), {});\n },\n getLanguageService() {\n return languageService;\n },\n getExistingLanguageServices() {\n return [languageService];\n },\n reload() {\n languageService.dispose();\n this.setup(server);\n },\n };\n}\nfunction createLanguageServiceEnvironment(server, workspaceFolders) {\n return {\n workspaceFolders,\n fs: server.fileSystem,\n locale: server.initializeParams?.locale,\n clientCapabilities: server.initializeParams?.capabilities,\n getConfiguration: server.configurations.get,\n onDidChangeConfiguration: server.configurations.onDidChange,\n onDidChangeWatchedFiles: server.fileWatcher.onDidChangeWatchedFiles,\n };\n}\n//# sourceMappingURL=simpleProject.js.map","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInferredCompilerOptions = getInferredCompilerOptions;\nasync function getInferredCompilerOptions(server) {\n const [implicitProjectConfig_1 = {}, implicitProjectConfig_2 = {},] = await Promise.all([\n server.configurations.get('js/ts.implicitProjectConfig'),\n server.configurations.get('javascript.implicitProjectConfig'),\n ]);\n const checkJs = readCheckJs();\n const experimentalDecorators = readExperimentalDecorators();\n const strictNullChecks = readImplicitStrictNullChecks();\n const strictFunctionTypes = readImplicitStrictFunctionTypes();\n const options = {\n ...inferredProjectCompilerOptions('typescript'),\n allowJs: true,\n allowSyntheticDefaultImports: true,\n allowNonTsExtensions: true,\n resolveJsonModule: true,\n jsx: 1,\n };\n return options;\n function readCheckJs() {\n return implicitProjectConfig_1['checkJs']\n ?? implicitProjectConfig_2['checkJs']\n ?? false;\n }\n function readExperimentalDecorators() {\n return implicitProjectConfig_1['experimentalDecorators']\n ?? implicitProjectConfig_2['experimentalDecorators']\n ?? false;\n }\n function readImplicitStrictNullChecks() {\n return implicitProjectConfig_1['strictNullChecks'] ?? false;\n }\n function readImplicitStrictFunctionTypes() {\n return implicitProjectConfig_1['strictFunctionTypes'] ?? true;\n }\n function inferredProjectCompilerOptions(projectType) {\n const projectConfig = {\n module: 1,\n target: 7,\n jsx: 1,\n };\n if (checkJs) {\n projectConfig.checkJs = true;\n if (projectType === 'typescript') {\n projectConfig.allowJs = true;\n }\n }\n if (experimentalDecorators) {\n projectConfig.experimentalDecorators = true;\n }\n if (strictNullChecks) {\n projectConfig.strictNullChecks = true;\n }\n if (strictFunctionTypes) {\n projectConfig.strictFunctionTypes = true;\n }\n if (projectType === 'typescript') {\n projectConfig.sourceMap = true;\n }\n return projectConfig;\n }\n}\n//# sourceMappingURL=inferredCompilerOptions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveFileLanguageId = resolveFileLanguageId;\nfunction resolveFileLanguageId(path) {\n const ext = path.split('.').pop();\n switch (ext) {\n case 'js':\n return 'javascript';\n case 'cjs':\n return 'javascript';\n case 'mjs':\n return 'javascript';\n case 'ts':\n return 'typescript';\n case 'cts':\n return 'typescript';\n case 'mts':\n return 'typescript';\n case 'jsx':\n return 'javascriptreact';\n case 'tsx':\n return 'typescriptreact';\n case 'json':\n return 'json';\n }\n}\n//# sourceMappingURL=common.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createResolveModuleName = createResolveModuleName;\nfunction createResolveModuleName(ts, getFileSize, host, languagePlugins, getSourceScript) {\n const toSourceFileInfo = new Map();\n const moduleResolutionHost = {\n readFile: host.readFile.bind(host),\n directoryExists: host.directoryExists?.bind(host),\n realpath: host.realpath?.bind(host),\n getCurrentDirectory: host.getCurrentDirectory?.bind(host),\n getDirectories: host.getDirectories?.bind(host),\n useCaseSensitiveFileNames: typeof host.useCaseSensitiveFileNames === 'function'\n ? host.useCaseSensitiveFileNames.bind(host)\n : host.useCaseSensitiveFileNames,\n fileExists(fileName) {\n const result = host.fileExists(fileName);\n for (const { typescript } of languagePlugins) {\n if (!typescript) {\n continue;\n }\n if (!result) {\n for (const { extension } of typescript.extraFileExtensions) {\n if (!fileName.endsWith(`.d.${extension}.ts`)) {\n continue;\n }\n const sourceFileName = fileName.slice(0, -`.d.${extension}.ts`.length) + `.${extension}`;\n if (fileExists(sourceFileName)) {\n const sourceScript = getSourceScript(sourceFileName);\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n const dtsPath = sourceFileName + '.d.ts';\n if ((serviceScript.extension === '.js' || serviceScript.extension === '.jsx') && fileExists(dtsPath)) {\n toSourceFileInfo.set(fileName, {\n sourceFileName: dtsPath,\n extension: '.ts',\n });\n }\n else {\n toSourceFileInfo.set(fileName, {\n sourceFileName,\n extension: serviceScript.extension,\n });\n }\n return true;\n }\n }\n }\n }\n }\n if (typescript.resolveHiddenExtensions && fileName.endsWith(`.d.ts`)) {\n for (const { extension } of typescript.extraFileExtensions) {\n const sourceFileName = fileName.slice(0, -`.d.ts`.length) + `.${extension}`;\n if (fileExists(sourceFileName)) {\n const sourceScript = getSourceScript(sourceFileName);\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n toSourceFileInfo.set(fileName, {\n sourceFileName,\n extension: serviceScript.extension,\n });\n return true;\n }\n }\n }\n }\n }\n }\n return result;\n },\n };\n return (moduleName, containingFile, compilerOptions, cache, redirectedReference, resolutionMode) => {\n const result = ts.resolveModuleName(moduleName, containingFile, compilerOptions, moduleResolutionHost, cache, redirectedReference, resolutionMode);\n if (result.resolvedModule) {\n const sourceFileInfo = toSourceFileInfo.get(result.resolvedModule.resolvedFileName);\n if (sourceFileInfo) {\n result.resolvedModule.resolvedFileName = sourceFileInfo.sourceFileName;\n result.resolvedModule.extension = sourceFileInfo.extension;\n }\n }\n toSourceFileInfo.clear();\n return result;\n };\n // fix https://github.com/vuejs/language-tools/issues/3332\n function fileExists(fileName) {\n if (host.fileExists(fileName)) {\n const fileSize = getFileSize?.(fileName) ?? host.readFile(fileName)?.length ?? 0;\n return fileSize < 4 * 1024 * 1024;\n }\n return false;\n }\n}\n//# sourceMappingURL=resolveModuleName.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getServiceScript = getServiceScript;\nexports.fixupImpliedNodeFormatForFile = fixupImpliedNodeFormatForFile;\nfunction getServiceScript(language, fileName) {\n const sourceScript = language.scripts.get(fileName);\n if (sourceScript?.targetIds.size) {\n for (const targetId of sourceScript.targetIds) {\n const targetScript = language.scripts.get(targetId);\n if (targetScript?.generated) {\n const serviceScript = targetScript.generated.languagePlugin.typescript?.getServiceScript(targetScript.generated.root);\n if (serviceScript) {\n return [serviceScript, targetScript, sourceScript];\n }\n }\n }\n }\n if (sourceScript?.associatedOnly) {\n return [undefined, sourceScript, sourceScript];\n }\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n return [serviceScript, sourceScript, sourceScript];\n }\n }\n return [undefined, undefined, undefined];\n}\nfunction fixupImpliedNodeFormatForFile(ts, pluginExtensions, sourceFile, packageJsonInfoCache, host, options) {\n if (sourceFile.impliedNodeFormat !== undefined || !pluginExtensions.some(ext => sourceFile.fileName.endsWith(ext))) {\n return;\n }\n // https://github.com/microsoft/TypeScript/blob/669c25c091ad4d32298d0f33b0e4e681d46de3ea/src/compiler/program.ts#L1354\n const validExts = ['.d.ts', '.ts', '.tsx', '.js', '.jsx'];\n if (validExts.some(ext => sourceFile.fileName.endsWith(ext))) {\n return;\n }\n const asTs = sourceFile.fileName + '.ts';\n // Use getImpliedNodeFormatForFileWorker instead of getImpliedNodeFormatForFile for runTsc() compatibility\n const impliedNodeFormat = ts.getImpliedNodeFormatForFileWorker?.(asTs, packageJsonInfoCache, host, options)?.impliedNodeFormat;\n if (impliedNodeFormat === undefined) {\n return;\n }\n sourceFile.impliedNodeFormat = impliedNodeFormat;\n return () => sourceFile.impliedNodeFormat = undefined;\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decorateLanguageServiceHost = decorateLanguageServiceHost;\nexports.searchExternalFiles = searchExternalFiles;\nconst resolveModuleName_1 = require(\"../resolveModuleName\");\nconst utils_1 = require(\"./utils\");\nfunction decorateLanguageServiceHost(ts, language, languageServiceHost) {\n const pluginExtensions = language.plugins\n .map(plugin => plugin.typescript?.extraFileExtensions.map(ext => '.' + ext.extension) ?? [])\n .flat();\n const scripts = new Map();\n const crashFileNames = new Set();\n const readDirectory = languageServiceHost.readDirectory?.bind(languageServiceHost);\n const resolveModuleNameLiterals = languageServiceHost.resolveModuleNameLiterals?.bind(languageServiceHost);\n const resolveModuleNames = languageServiceHost.resolveModuleNames?.bind(languageServiceHost);\n const getScriptSnapshot = languageServiceHost.getScriptSnapshot.bind(languageServiceHost);\n const getScriptKind = languageServiceHost.getScriptKind?.bind(languageServiceHost);\n // path completion\n if (readDirectory) {\n languageServiceHost.readDirectory = (path, extensions, exclude, include, depth) => {\n if (extensions) {\n for (const ext of pluginExtensions) {\n if (!extensions.includes(ext)) {\n extensions = [...extensions, ext];\n }\n }\n }\n return readDirectory(path, extensions, exclude, include, depth);\n };\n }\n if (pluginExtensions.length) {\n const resolveModuleName = (0, resolveModuleName_1.createResolveModuleName)(ts, ts.sys.getFileSize, languageServiceHost, language.plugins, fileName => language.scripts.get(fileName));\n const moduleResolutionCache = languageServiceHost.getModuleResolutionCache?.();\n if (resolveModuleNameLiterals) {\n languageServiceHost.resolveModuleNameLiterals = (moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, ...rest) => {\n const disposeFixup = (0, utils_1.fixupImpliedNodeFormatForFile)(ts, pluginExtensions, containingSourceFile, moduleResolutionCache?.getPackageJsonInfoCache(), languageServiceHost, options);\n try {\n if (moduleLiterals.every(name => !pluginExtensions.some(ext => name.text.endsWith(ext)))) {\n return resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, ...rest);\n }\n return moduleLiterals.map(moduleLiteral => {\n const mode = ts.getModeForUsageLocation(containingSourceFile, moduleLiteral, options);\n return resolveModuleName(moduleLiteral.text, containingFile, options, moduleResolutionCache, redirectedReference, mode);\n });\n }\n finally {\n disposeFixup?.();\n }\n };\n }\n if (resolveModuleNames) {\n languageServiceHost.resolveModuleNames = (moduleNames, containingFile, reusedNames, redirectedReference, options, containingSourceFile) => {\n if (moduleNames.every(name => !pluginExtensions.some(ext => name.endsWith(ext)))) {\n return resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, options, containingSourceFile);\n }\n return moduleNames.map(moduleName => {\n return resolveModuleName(moduleName, containingFile, options, moduleResolutionCache, redirectedReference)\n .resolvedModule;\n });\n };\n }\n }\n languageServiceHost.getScriptSnapshot = fileName => {\n const virtualScript = updateVirtualScript(fileName, true);\n if (virtualScript) {\n return virtualScript.snapshot;\n }\n return getScriptSnapshot(fileName);\n };\n if (getScriptKind) {\n languageServiceHost.getScriptKind = fileName => {\n const virtualScript = updateVirtualScript(fileName, false);\n if (virtualScript) {\n return virtualScript.scriptKind;\n }\n return getScriptKind(fileName);\n };\n }\n function updateVirtualScript(fileName, shouldRegister) {\n if (crashFileNames.has(fileName)) {\n return;\n }\n let version;\n try {\n version = languageServiceHost.getScriptVersion(fileName);\n }\n catch {\n // fix https://github.com/vuejs/language-tools/issues/4278\n crashFileNames.add(fileName);\n }\n if (version === undefined) {\n // somehow getScriptVersion returns undefined\n return;\n }\n let script = scripts.get(fileName);\n if (!script || script[0] !== version) {\n script = [version];\n const sourceScript = language.scripts.get(fileName, undefined, shouldRegister);\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n if (serviceScript.preventLeadingOffset) {\n script[1] = {\n extension: serviceScript.extension,\n scriptKind: serviceScript.scriptKind,\n snapshot: serviceScript.code.snapshot,\n };\n }\n else {\n const sourceContents = sourceScript.snapshot.getText(0, sourceScript.snapshot.getLength());\n const virtualContents = sourceContents.split('\\n').map(line => ' '.repeat(line.length)).join('\\n')\n + serviceScript.code.snapshot.getText(0, serviceScript.code.snapshot.getLength());\n script[1] = {\n extension: serviceScript.extension,\n scriptKind: serviceScript.scriptKind,\n snapshot: ts.ScriptSnapshot.fromString(virtualContents),\n };\n }\n }\n if (sourceScript.generated.languagePlugin.typescript?.getExtraServiceScripts) {\n console.warn('getExtraServiceScripts() is not available in TS plugin.');\n }\n }\n scripts.set(fileName, script);\n }\n return script[1];\n }\n}\nfunction searchExternalFiles(ts, project, exts) {\n if (project.projectKind !== ts.server.ProjectKind.Configured) {\n return [];\n }\n const configFile = project.getProjectName();\n const config = ts.readJsonConfigFile(configFile, project.readFile.bind(project));\n const parseHost = {\n useCaseSensitiveFileNames: project.useCaseSensitiveFileNames(),\n fileExists: project.fileExists.bind(project),\n readFile: project.readFile.bind(project),\n readDirectory: (...args) => {\n args[1] = exts;\n return project.readDirectory(...args);\n },\n };\n const parsed = ts.parseJsonSourceFileConfigFileContent(config, parseHost, project.getCurrentDirectory());\n return parsed.fileNames;\n}\n//# sourceMappingURL=decorateLanguageServiceHost.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformCallHierarchyItem = transformCallHierarchyItem;\nexports.transformDiagnostic = transformDiagnostic;\nexports.fillSourceFileText = fillSourceFileText;\nexports.transformFileTextChanges = transformFileTextChanges;\nexports.transformDocumentSpan = transformDocumentSpan;\nexports.transformSpan = transformSpan;\nexports.transformTextChange = transformTextChange;\nexports.transformTextSpan = transformTextSpan;\nexports.toSourceOffset = toSourceOffset;\nexports.toSourceRanges = toSourceRanges;\nexports.toSourceOffsets = toSourceOffsets;\nexports.toGeneratedRange = toGeneratedRange;\nexports.toGeneratedRanges = toGeneratedRanges;\nexports.toGeneratedOffset = toGeneratedOffset;\nexports.toGeneratedOffsets = toGeneratedOffsets;\nexports.getMappingOffset = getMappingOffset;\nconst language_core_1 = require(\"@volar/language-core\");\nconst utils_1 = require(\"./utils\");\nconst transformedDiagnostics = new WeakMap();\nconst transformedSourceFile = new WeakSet();\n/**\n * This file contains a number of facilities for transforming `ts.Diagnostic`s returned\n * from the base TypeScript LanguageService, which reference locations in generated\n * TS code (e.g. the TypeScript codegen'd from the script portion of a .vue file) into locations\n * in the script portion of the .vue file.\n */\nfunction transformCallHierarchyItem(language, item, fallbackToAnyMatch, filter) {\n const span = transformSpan(language, item.file, item.span, fallbackToAnyMatch, filter);\n const selectionSpan = transformSpan(language, item.file, item.selectionSpan, fallbackToAnyMatch, filter);\n return {\n ...item,\n file: span?.fileName ?? item.file,\n span: span?.textSpan ?? { start: 0, length: 0 },\n selectionSpan: selectionSpan?.textSpan ?? { start: 0, length: 0 },\n };\n}\nfunction transformDiagnostic(language, diagnostic, program, isTsc) {\n if (!transformedDiagnostics.has(diagnostic)) {\n transformedDiagnostics.set(diagnostic, undefined);\n const { relatedInformation } = diagnostic;\n if (relatedInformation) {\n diagnostic.relatedInformation = relatedInformation\n .map(d => transformDiagnostic(language, d, program, isTsc))\n .filter(d => !!d);\n }\n if (diagnostic.file !== undefined\n && diagnostic.start !== undefined\n && diagnostic.length !== undefined) {\n const [serviceScript] = (0, utils_1.getServiceScript)(language, diagnostic.file.fileName);\n if (serviceScript) {\n const [sourceSpanFileName, sourceSpan] = transformTextSpan(undefined, language, serviceScript, {\n start: diagnostic.start,\n length: diagnostic.length,\n }, true, data => (0, language_core_1.shouldReportDiagnostics)(data, String(diagnostic.source), String(diagnostic.code))) ?? [];\n const actualDiagnosticFile = sourceSpanFileName\n ? diagnostic.file.fileName === sourceSpanFileName\n ? diagnostic.file\n : program?.getSourceFile(sourceSpanFileName)\n : undefined;\n if (sourceSpan && actualDiagnosticFile) {\n if (isTsc) {\n fillSourceFileText(language, diagnostic.file);\n }\n transformedDiagnostics.set(diagnostic, {\n ...diagnostic,\n file: actualDiagnosticFile,\n start: sourceSpan.start,\n length: sourceSpan.length,\n });\n }\n }\n else {\n transformedDiagnostics.set(diagnostic, diagnostic);\n }\n }\n else {\n transformedDiagnostics.set(diagnostic, diagnostic);\n }\n }\n return transformedDiagnostics.get(diagnostic);\n}\n// fix https://github.com/vuejs/language-tools/issues/4099 without `incremental`\nfunction fillSourceFileText(language, sourceFile) {\n if (transformedSourceFile.has(sourceFile)) {\n return;\n }\n transformedSourceFile.add(sourceFile);\n const [serviceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName);\n if (serviceScript && !serviceScript.preventLeadingOffset) {\n const sourceScript = language.scripts.fromVirtualCode(serviceScript.code);\n sourceFile.text = sourceScript.snapshot.getText(0, sourceScript.snapshot.getLength())\n + sourceFile.text.substring(sourceScript.snapshot.getLength());\n }\n}\nfunction transformFileTextChanges(language, changes, fallbackToAnyMatch, filter) {\n const changesPerFile = {};\n const newFiles = new Set();\n for (const fileChanges of changes) {\n const [_, source] = (0, utils_1.getServiceScript)(language, fileChanges.fileName);\n if (source) {\n fileChanges.textChanges.forEach(c => {\n const { fileName, textSpan } = transformSpan(language, fileChanges.fileName, c.span, fallbackToAnyMatch, filter)\n ?? {};\n if (fileName && textSpan) {\n (changesPerFile[fileName] ?? (changesPerFile[fileName] = [])).push({ ...c, span: textSpan });\n }\n });\n }\n else {\n const list = changesPerFile[fileChanges.fileName] ?? (changesPerFile[fileChanges.fileName] = []);\n fileChanges.textChanges.forEach(c => {\n list.push(c);\n });\n if (fileChanges.isNewFile) {\n newFiles.add(fileChanges.fileName);\n }\n }\n }\n const result = [];\n for (const fileName in changesPerFile) {\n result.push({\n fileName,\n isNewFile: newFiles.has(fileName),\n textChanges: changesPerFile[fileName],\n });\n }\n return result;\n}\nfunction transformDocumentSpan(language, documentSpan, fallbackToAnyMatch, filter, shouldFallback) {\n let textSpan = transformSpan(language, documentSpan.fileName, documentSpan.textSpan, fallbackToAnyMatch, filter);\n if (!textSpan && shouldFallback) {\n textSpan = {\n fileName: documentSpan.fileName,\n textSpan: { start: 0, length: 0 },\n };\n }\n if (!textSpan) {\n return;\n }\n const contextSpan = transformSpan(language, documentSpan.fileName, documentSpan.contextSpan, fallbackToAnyMatch, filter);\n const originalTextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalTextSpan, fallbackToAnyMatch, filter);\n const originalContextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalContextSpan, fallbackToAnyMatch, filter);\n return {\n ...documentSpan,\n fileName: textSpan.fileName,\n textSpan: textSpan.textSpan,\n contextSpan: contextSpan?.textSpan,\n originalFileName: originalTextSpan?.fileName,\n originalTextSpan: originalTextSpan?.textSpan,\n originalContextSpan: originalContextSpan?.textSpan,\n };\n}\nfunction transformSpan(language, fileName, textSpan, fallbackToAnyMatch, filter) {\n if (!fileName || !textSpan) {\n return;\n }\n const [serviceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (serviceScript) {\n const [sourceSpanFileName, sourceSpan] = transformTextSpan(undefined, language, serviceScript, textSpan, fallbackToAnyMatch, filter) ?? [];\n if (sourceSpan && sourceSpanFileName) {\n return {\n fileName: sourceSpanFileName,\n textSpan: sourceSpan,\n };\n }\n }\n else {\n return {\n fileName,\n textSpan,\n };\n }\n}\nfunction transformTextChange(sourceScript, language, serviceScript, textChange, fallbackToAnyMatch, filter) {\n const [sourceSpanFileName, sourceSpan] = transformTextSpan(sourceScript, language, serviceScript, textChange.span, fallbackToAnyMatch, filter) ?? [];\n if (sourceSpan && sourceSpanFileName) {\n return [sourceSpanFileName, {\n newText: textChange.newText,\n span: sourceSpan,\n }];\n }\n return undefined;\n}\nfunction transformTextSpan(sourceScript, language, serviceScript, textSpan, fallbackToAnyMatch, filter) {\n const start = textSpan.start;\n const end = textSpan.start + textSpan.length;\n for (const [fileName, sourceStart, sourceEnd] of toSourceRanges(sourceScript, language, serviceScript, start, end, fallbackToAnyMatch, filter)) {\n return [fileName, {\n start: sourceStart,\n length: sourceEnd - sourceStart,\n }];\n }\n}\nfunction toSourceOffset(sourceScript, language, serviceScript, position, filter) {\n for (const source of toSourceOffsets(sourceScript, language, serviceScript, position, filter)) {\n return source;\n }\n}\nfunction* toSourceRanges(sourceScript, language, serviceScript, start, end, fallbackToAnyMatch, filter) {\n if (sourceScript) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), fallbackToAnyMatch, filter)) {\n yield [sourceScript.id, sourceStart, sourceEnd];\n }\n }\n else {\n for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) {\n for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), fallbackToAnyMatch, filter)) {\n yield [sourceScript.id, sourceStart, sourceEnd];\n }\n }\n }\n}\nfunction* toSourceOffsets(sourceScript, language, serviceScript, position, filter) {\n if (sourceScript) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n for (const [sourceOffset, mapping] of map.toSourceLocation(position - getMappingOffset(language, serviceScript))) {\n if (filter(mapping.data)) {\n yield [sourceScript.id, sourceOffset];\n }\n }\n }\n else {\n for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) {\n for (const [sourceOffset, mapping] of map.toSourceLocation(position - getMappingOffset(language, serviceScript))) {\n if (filter(mapping.data)) {\n yield [sourceScript.id, sourceOffset];\n }\n }\n }\n }\n}\nfunction toGeneratedRange(language, serviceScript, sourceScript, start, end, filter) {\n for (const result of toGeneratedRanges(language, serviceScript, sourceScript, start, end, filter)) {\n return result;\n }\n}\nfunction* toGeneratedRanges(language, serviceScript, sourceScript, start, end, filter) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n for (const [generateStart, generateEnd] of map.toGeneratedRange(start, end, true, filter)) {\n yield [\n generateStart + getMappingOffset(language, serviceScript),\n generateEnd + getMappingOffset(language, serviceScript),\n ];\n }\n}\nfunction toGeneratedOffset(language, serviceScript, sourceScript, position, filter) {\n for (const [generateOffset] of toGeneratedOffsets(language, serviceScript, sourceScript, position, filter)) {\n return generateOffset;\n }\n}\nfunction* toGeneratedOffsets(language, serviceScript, sourceScript, position, filter) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n for (const [generateOffset, mapping] of map.toGeneratedLocation(position)) {\n if (filter(mapping.data)) {\n yield [generateOffset + getMappingOffset(language, serviceScript), mapping];\n }\n }\n}\nfunction getMappingOffset(language, serviceScript) {\n if (serviceScript.preventLeadingOffset) {\n return 0;\n }\n const sourceScript = language.scripts.fromVirtualCode(serviceScript.code);\n return sourceScript.snapshot.getLength();\n}\n//# sourceMappingURL=transform.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decorateProgram = decorateProgram;\nconst transform_1 = require(\"./transform\");\nconst utils_1 = require(\"./utils\");\nfunction decorateProgram(language, program) {\n const emit = program.emit;\n // for tsc --noEmit\n const getSyntacticDiagnostics = program.getSyntacticDiagnostics;\n const getSemanticDiagnostics = program.getSemanticDiagnostics;\n const getGlobalDiagnostics = program.getGlobalDiagnostics;\n const getSourceFileByPath = program.getSourceFileByPath;\n // for tsc --noEmit --watch\n // @ts-ignore\n const getBindAndCheckDiagnostics = program.getBindAndCheckDiagnostics;\n program.emit = (...args) => {\n const result = emit(...args);\n return {\n ...result,\n diagnostics: result.diagnostics\n .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))\n .filter(d => !!d),\n };\n };\n program.getSyntacticDiagnostics = (sourceFile, cancellationToken) => {\n if (!sourceFile) {\n return getSyntacticDiagnostics(undefined, cancellationToken)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))\n .filter(d => !!d);\n }\n else {\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName);\n const actualSourceFile = targetScript ? program.getSourceFile(targetScript.id) : sourceFile;\n return getSyntacticDiagnostics(actualSourceFile, cancellationToken)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))\n .filter(d => !!d)\n .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);\n }\n };\n program.getSemanticDiagnostics = (sourceFile, cancellationToken) => {\n if (!sourceFile) {\n return getSemanticDiagnostics(undefined, cancellationToken)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))\n .filter(d => !!d);\n }\n else {\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName);\n const actualSourceFile = targetScript ? program.getSourceFile(targetScript.id) : sourceFile;\n return getSemanticDiagnostics(actualSourceFile, cancellationToken)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))\n .filter(d => !!d)\n .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);\n }\n };\n program.getGlobalDiagnostics = cancellationToken => {\n return getGlobalDiagnostics(cancellationToken)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))\n .filter(d => !!d);\n };\n // @ts-ignore\n program.getBindAndCheckDiagnostics = (sourceFile, cancellationToken) => {\n if (!sourceFile) {\n return getBindAndCheckDiagnostics(undefined, cancellationToken)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))\n .filter(d => !!d);\n }\n else {\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName);\n const actualSourceFile = targetScript ? program.getSourceFile(targetScript.id) : sourceFile;\n return getBindAndCheckDiagnostics(actualSourceFile, cancellationToken)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))\n .filter(d => !!d)\n .filter(d => !serviceScript || language.scripts.get(d.file.fileName) === sourceScript);\n }\n };\n // fix https://github.com/vuejs/language-tools/issues/4099 with `incremental`\n program.getSourceFileByPath = path => {\n const sourceFile = getSourceFileByPath(path);\n if (sourceFile) {\n (0, transform_1.fillSourceFileText)(language, sourceFile);\n }\n return sourceFile;\n };\n}\n//# sourceMappingURL=decorateProgram.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.proxyCreateProgram = proxyCreateProgram;\nconst language_core_1 = require(\"@volar/language-core\");\nconst common_1 = require(\"../common\");\nconst resolveModuleName_1 = require(\"../resolveModuleName\");\nconst decorateProgram_1 = require(\"./decorateProgram\");\nconst utils_1 = require(\"./utils\");\nconst arrayEqual = (a, b) => {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n};\nconst objectEqual = (a, b) => {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) {\n return false;\n }\n for (const key of keysA) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n};\nfunction proxyCreateProgram(ts, original, create) {\n const sourceFileSnapshots = new language_core_1.FileMap(ts.sys.useCaseSensitiveFileNames);\n const parsedSourceFiles = new WeakMap();\n let lastOptions;\n let languagePlugins;\n let language;\n let moduleResolutionCache;\n return new Proxy(original, {\n apply: (target, thisArg, args) => {\n const options = args[0];\n assert(!!options.host, '!!options.host');\n if (!lastOptions\n || !languagePlugins\n || !language\n || !arrayEqual(options.rootNames, lastOptions.rootNames)\n || !objectEqual(options.options, lastOptions.options)) {\n moduleResolutionCache = ts.createModuleResolutionCache(options.host.getCurrentDirectory(), options.host.getCanonicalFileName, options.options);\n lastOptions = options;\n const created = create(ts, options);\n if (Array.isArray(created)) {\n languagePlugins = created;\n }\n else {\n languagePlugins = created.languagePlugins;\n }\n language = (0, language_core_1.createLanguage)([\n ...languagePlugins,\n { getLanguageId: common_1.resolveFileLanguageId },\n ], new language_core_1.FileMap(ts.sys.useCaseSensitiveFileNames), (fileName, includeFsFiles) => {\n if (includeFsFiles && !sourceFileSnapshots.has(fileName)) {\n const sourceFileText = originalHost.readFile(fileName);\n if (sourceFileText !== undefined) {\n sourceFileSnapshots.set(fileName, [undefined, {\n getChangeRange() {\n return undefined;\n },\n getLength() {\n return sourceFileText.length;\n },\n getText(start, end) {\n return sourceFileText.substring(start, end);\n },\n }]);\n }\n else {\n sourceFileSnapshots.set(fileName, [undefined, undefined]);\n }\n }\n const snapshot = sourceFileSnapshots.get(fileName)?.[1];\n if (snapshot) {\n language.scripts.set(fileName, snapshot);\n }\n else {\n language.scripts.delete(fileName);\n }\n });\n if ('setup' in created) {\n created.setup?.(language);\n }\n }\n const originalHost = options.host;\n const pluginExtensions = languagePlugins\n .map(plugin => plugin.typescript?.extraFileExtensions.map(({ extension }) => `.${extension}`) ?? [])\n .flat();\n options.host = { ...originalHost };\n options.host.getSourceFile = (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) => {\n const originalSourceFile = originalHost.getSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile);\n if (!sourceFileSnapshots.has(fileName)\n || sourceFileSnapshots.get(fileName)?.[0] !== originalSourceFile) {\n if (originalSourceFile) {\n sourceFileSnapshots.set(fileName, [originalSourceFile, {\n getChangeRange() {\n return undefined;\n },\n getLength() {\n return originalSourceFile.text.length;\n },\n getText(start, end) {\n return originalSourceFile.text.substring(start, end);\n },\n }]);\n }\n else {\n sourceFileSnapshots.set(fileName, [undefined, undefined]);\n }\n }\n if (!originalSourceFile) {\n return;\n }\n if (!parsedSourceFiles.has(originalSourceFile)) {\n const sourceScript = language.scripts.get(fileName);\n assert(!!sourceScript, '!!sourceScript');\n parsedSourceFiles.set(originalSourceFile, undefined);\n if (sourceScript.generated?.languagePlugin.typescript) {\n const { getServiceScript, getExtraServiceScripts } = sourceScript.generated.languagePlugin.typescript;\n const serviceScript = getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n let virtualContents;\n if (!serviceScript.preventLeadingOffset) {\n virtualContents = originalSourceFile.text.split('\\n').map(line => ' '.repeat(line.length)).join('\\n')\n + serviceScript.code.snapshot.getText(0, serviceScript.code.snapshot.getLength());\n }\n else {\n virtualContents = serviceScript.code.snapshot.getText(0, serviceScript.code.snapshot.getLength());\n }\n const parsedSourceFile = ts.createSourceFile(fileName, virtualContents, languageVersionOrOptions, undefined, serviceScript.scriptKind);\n // @ts-expect-error\n parsedSourceFile.version = originalSourceFile.version;\n // @ts-expect-error\n originalSourceFile.scriptKind = serviceScript.scriptKind;\n parsedSourceFiles.set(originalSourceFile, parsedSourceFile);\n }\n if (getExtraServiceScripts) {\n console.warn('getExtraServiceScripts() is not available in this use case.');\n }\n }\n }\n return parsedSourceFiles.get(originalSourceFile) ?? originalSourceFile;\n };\n if (pluginExtensions.length) {\n options.options.allowArbitraryExtensions = true;\n const resolveModuleName = (0, resolveModuleName_1.createResolveModuleName)(ts, ts.sys.getFileSize, originalHost, language.plugins, fileName => language.scripts.get(fileName));\n const resolveModuleNameLiterals = originalHost.resolveModuleNameLiterals;\n const resolveModuleNames = originalHost.resolveModuleNames;\n options.host.resolveModuleNameLiterals = (moduleLiterals, containingFile, redirectedReference, compilerOptions, containingSourceFile, ...rest) => {\n const disposeFixup = (0, utils_1.fixupImpliedNodeFormatForFile)(ts, pluginExtensions, containingSourceFile, moduleResolutionCache.getPackageJsonInfoCache(), originalHost, compilerOptions);\n try {\n if (resolveModuleNameLiterals\n && moduleLiterals.every(name => !pluginExtensions.some(ext => name.text.endsWith(ext)))) {\n return resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, compilerOptions, containingSourceFile, ...rest);\n }\n return moduleLiterals.map(moduleLiteral => {\n const mode = ts.getModeForUsageLocation(containingSourceFile, moduleLiteral, compilerOptions);\n return resolveModuleName(moduleLiteral.text, containingFile, compilerOptions, moduleResolutionCache, redirectedReference, mode);\n });\n }\n finally {\n disposeFixup?.();\n }\n };\n options.host.resolveModuleNames = (moduleNames, containingFile, reusedNames, redirectedReference, compilerOptions, containingSourceFile) => {\n if (resolveModuleNames && moduleNames.every(name => !pluginExtensions.some(ext => name.endsWith(ext)))) {\n return resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, compilerOptions, containingSourceFile);\n }\n return moduleNames.map(moduleName => {\n return resolveModuleName(moduleName, containingFile, compilerOptions, moduleResolutionCache, redirectedReference, containingSourceFile?.impliedNodeFormat).resolvedModule;\n });\n };\n }\n const program = Reflect.apply(target, thisArg, args);\n (0, decorateProgram_1.decorateProgram)(language, program);\n return program;\n },\n });\n}\nfunction assert(condition, message) {\n if (!condition) {\n console.error(message);\n throw new Error(message);\n }\n}\n//# sourceMappingURL=proxyCreateProgram.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dedupeDocumentSpans = dedupeDocumentSpans;\nfunction dedupeDocumentSpans(items) {\n return dedupe(items, item => [\n item.fileName,\n item.textSpan.start,\n item.textSpan.length,\n ].join(':'));\n}\nfunction dedupe(items, getKey) {\n const map = new Map();\n for (const item of items.reverse()) {\n map.set(getKey(item), item);\n }\n return [...map.values()];\n}\n//# sourceMappingURL=dedupe.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createProxyLanguageService = createProxyLanguageService;\nconst language_core_1 = require(\"@volar/language-core\");\nconst dedupe_1 = require(\"./dedupe\");\nconst transform_1 = require(\"./transform\");\nconst utils_1 = require(\"./utils\");\nconst windowsPathReg = /\\\\/g;\n/**\n * Creates and returns a Proxy around the base TypeScript LanguageService.\n *\n * This is used by the Volar TypeScript Plugin (which can be created by `createLanguageServicePlugin`\n * and `createAsyncLanguageServicePlugin`) as an adapter layer between the TypeScript Language Service\n * plugin API (see https://github.com/microsoft/TypeScript/wiki/Writing-a-Language-Service-Plugin)\n * and a Volar `Language`.\n *\n * Once the `initialize` method is called, the proxy will begin intercepting requests and\n * enhancing the default behavior of the LanguageService with enhancements based on\n * the Volar `Language` that has been passed to `initialize`.\n */\nfunction createProxyLanguageService(languageService) {\n const proxyCache = new Map();\n let getProxyMethod;\n return {\n initialize(language) {\n getProxyMethod = (target, p) => {\n switch (p) {\n case 'getNavigationTree':\n return getNavigationTree(language, target[p]);\n case 'getOutliningSpans':\n return getOutliningSpans(language, target[p]);\n case 'getFormattingEditsForDocument':\n return getFormattingEditsForDocument(language, target[p]);\n case 'getFormattingEditsForRange':\n return getFormattingEditsForRange(language, target[p]);\n case 'getFormattingEditsAfterKeystroke':\n return getFormattingEditsAfterKeystroke(language, target[p]);\n case 'getEditsForFileRename':\n return getEditsForFileRename(language, target[p]);\n case 'getLinkedEditingRangeAtPosition':\n return getLinkedEditingRangeAtPosition(language, target[p]);\n case 'prepareCallHierarchy':\n return prepareCallHierarchy(language, target[p]);\n case 'provideCallHierarchyIncomingCalls':\n return provideCallHierarchyIncomingCalls(language, target[p]);\n case 'provideCallHierarchyOutgoingCalls':\n return provideCallHierarchyOutgoingCalls(language, target[p]);\n case 'organizeImports':\n return organizeImports(language, target[p]);\n case 'getQuickInfoAtPosition':\n return getQuickInfoAtPosition(language, target[p]);\n case 'getSignatureHelpItems':\n return getSignatureHelpItems(language, target[p]);\n case 'getDocumentHighlights':\n return getDocumentHighlights(language, target[p]);\n case 'getApplicableRefactors':\n return getApplicableRefactors(language, target[p]);\n case 'getEditsForRefactor':\n return getEditsForRefactor(language, target[p]);\n case 'getCombinedCodeFix':\n return getCombinedCodeFix(language, target[p]);\n case 'getRenameInfo':\n return getRenameInfo(language, target[p]);\n case 'getCodeFixesAtPosition':\n return getCodeFixesAtPosition(language, target[p]);\n case 'getEncodedSemanticClassifications':\n return getEncodedSemanticClassifications(language, target[p]);\n case 'getSyntacticDiagnostics':\n return getSyntacticDiagnostics(language, languageService, target[p]);\n case 'getSemanticDiagnostics':\n return getSemanticDiagnostics(language, languageService, target[p]);\n case 'getSuggestionDiagnostics':\n return getSuggestionDiagnostics(language, languageService, target[p]);\n case 'getDefinitionAndBoundSpan':\n return getDefinitionAndBoundSpan(language, target[p]);\n case 'findReferences':\n return findReferences(language, target[p]);\n case 'getDefinitionAtPosition':\n return getDefinitionAtPosition(language, target[p]);\n case 'getTypeDefinitionAtPosition':\n return getTypeDefinitionAtPosition(language, target[p]);\n case 'getImplementationAtPosition':\n return getImplementationAtPosition(language, target[p]);\n case 'findRenameLocations':\n return findRenameLocations(language, target[p]);\n case 'getReferencesAtPosition':\n return getReferencesAtPosition(language, target[p]);\n case 'getCompletionsAtPosition':\n return getCompletionsAtPosition(language, target[p]);\n case 'getCompletionEntryDetails':\n return getCompletionEntryDetails(language, target[p]);\n case 'provideInlayHints':\n return provideInlayHints(language, target[p]);\n case 'getFileReferences':\n return getFileReferences(language, target[p]);\n case 'getNavigateToItems':\n return getNavigateToItems(language, target[p]);\n }\n };\n },\n proxy: new Proxy(languageService, {\n get(target, p, receiver) {\n if (getProxyMethod) {\n if (!proxyCache.has(p)) {\n proxyCache.set(p, getProxyMethod(target, p));\n }\n const proxyMethod = proxyCache.get(p);\n if (proxyMethod) {\n return proxyMethod;\n }\n }\n return Reflect.get(target, p, receiver);\n },\n set(target, p, value, receiver) {\n return Reflect.set(target, p, value, receiver);\n },\n }),\n };\n}\n// ignored methods\nfunction getNavigationTree(language, getNavigationTree) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (serviceScript || targetScript?.associatedOnly) {\n const tree = getNavigationTree(targetScript.id);\n tree.childItems = undefined;\n return tree;\n }\n else {\n return getNavigationTree(fileName);\n }\n };\n}\nfunction getOutliningSpans(language, getOutliningSpans) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (serviceScript || targetScript?.associatedOnly) {\n return [];\n }\n else {\n return getOutliningSpans(fileName);\n }\n };\n}\n// proxy methods\nfunction getFormattingEditsForDocument(language, getFormattingEditsForDocument) {\n return (filePath, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const map = language.maps.get(serviceScript.code, targetScript);\n if (!map.mappings.some(mapping => (0, language_core_1.isFormattingEnabled)(mapping.data))) {\n return [];\n }\n const edits = getFormattingEditsForDocument(targetScript.id, options);\n return edits\n .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])\n .filter(edit => !!edit);\n }\n else {\n return getFormattingEditsForDocument(fileName, options);\n }\n };\n}\nfunction getFormattingEditsForRange(language, getFormattingEditsForRange) {\n return (filePath, start, end, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generatedRange = (0, transform_1.toGeneratedRange)(language, serviceScript, sourceScript, start, end, language_core_1.isFormattingEnabled);\n if (generatedRange !== undefined) {\n const edits = getFormattingEditsForRange(targetScript.id, generatedRange[0], generatedRange[1], options);\n return edits\n .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])\n .filter(edit => !!edit);\n }\n return [];\n }\n else {\n return getFormattingEditsForRange(fileName, start, end, options);\n }\n };\n}\nfunction getFormattingEditsAfterKeystroke(language, getFormattingEditsAfterKeystroke) {\n return (filePath, position, key, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isFormattingEnabled);\n if (generatePosition !== undefined) {\n const edits = getFormattingEditsAfterKeystroke(targetScript.id, generatePosition, key, options);\n return edits\n .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])\n .filter(edit => !!edit);\n }\n return [];\n }\n else {\n return getFormattingEditsAfterKeystroke(fileName, position, key, options);\n }\n };\n}\nfunction getEditsForFileRename(language, getEditsForFileRename) {\n return (oldFilePath, newFilePath, formatOptions, preferences) => {\n const edits = getEditsForFileRename(oldFilePath, newFilePath, formatOptions, preferences);\n return (0, transform_1.transformFileTextChanges)(language, edits, false, language_core_1.isRenameEnabled);\n };\n}\nfunction getLinkedEditingRangeAtPosition(language, getLinkedEditingRangeAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isLinkedEditingEnabled);\n if (generatePosition !== undefined) {\n const info = getLinkedEditingRangeAtPosition(targetScript.id, generatePosition);\n if (info) {\n return {\n ranges: info.ranges\n .map(span => (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, false, language_core_1.isLinkedEditingEnabled)?.[1])\n .filter(span => !!span),\n wordPattern: info.wordPattern,\n };\n }\n }\n }\n else {\n return getLinkedEditingRangeAtPosition(fileName, position);\n }\n };\n}\nfunction prepareCallHierarchy(language, prepareCallHierarchy) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isCallHierarchyEnabled);\n if (generatePosition !== undefined) {\n const item = prepareCallHierarchy(targetScript.id, generatePosition);\n if (Array.isArray(item)) {\n return item.map(item => (0, transform_1.transformCallHierarchyItem)(language, item, true, language_core_1.isCallHierarchyEnabled));\n }\n else if (item) {\n return (0, transform_1.transformCallHierarchyItem)(language, item, true, language_core_1.isCallHierarchyEnabled);\n }\n }\n }\n else {\n return prepareCallHierarchy(fileName, position);\n }\n };\n}\nfunction provideCallHierarchyIncomingCalls(language, provideCallHierarchyIncomingCalls) {\n return (filePath, position) => {\n let calls = [];\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isCallHierarchyEnabled);\n if (generatePosition !== undefined) {\n calls = provideCallHierarchyIncomingCalls(targetScript.id, generatePosition);\n }\n }\n else {\n calls = provideCallHierarchyIncomingCalls(fileName, position);\n }\n return calls\n .map(call => {\n const from = (0, transform_1.transformCallHierarchyItem)(language, call.from, true, language_core_1.isCallHierarchyEnabled);\n const fromSpans = call.fromSpans\n .map(span => (0, transform_1.transformSpan)(language, call.from.file, span, true, language_core_1.isCallHierarchyEnabled)?.textSpan)\n .filter(span => !!span);\n return {\n from,\n fromSpans,\n };\n });\n };\n}\nfunction provideCallHierarchyOutgoingCalls(language, provideCallHierarchyOutgoingCalls) {\n return (filePath, position) => {\n let calls = [];\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isCallHierarchyEnabled);\n if (generatePosition !== undefined) {\n calls = provideCallHierarchyOutgoingCalls(targetScript.id, generatePosition);\n }\n }\n else {\n calls = provideCallHierarchyOutgoingCalls(fileName, position);\n }\n return calls\n .map(call => {\n const to = (0, transform_1.transformCallHierarchyItem)(language, call.to, true, language_core_1.isCallHierarchyEnabled);\n const fromSpans = call.fromSpans\n .map(span => serviceScript\n ? (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, true, language_core_1.isCallHierarchyEnabled)?.[1]\n : span)\n .filter(span => !!span);\n return {\n to,\n fromSpans,\n };\n });\n };\n}\nfunction organizeImports(language, organizeImports) {\n return (args, formatOptions, preferences) => {\n const unresolved = organizeImports(args, formatOptions, preferences);\n return (0, transform_1.transformFileTextChanges)(language, unresolved, false, language_core_1.isCodeActionsEnabled);\n };\n}\nfunction getQuickInfoAtPosition(language, getQuickInfoAtPosition) {\n /**\n * Using `...args` for pass through rest params (including internal `verbosityLevel` param).\n * https://github.com/microsoft/TypeScript/blob/dd830711041b7b0cfd3da7937755996b1e1b1c7e/src/services/types.ts#L588\n */\n return (filePath, position, ...args) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const infos = [];\n for (const [generatePosition] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1.isHoverEnabled)) {\n const info = getQuickInfoAtPosition(targetScript.id, generatePosition, ...args);\n if (info) {\n const textSpan = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, info.textSpan, true, language_core_1.isHoverEnabled)?.[1];\n if (textSpan) {\n infos.push({\n ...info,\n textSpan: textSpan,\n });\n }\n }\n }\n if (infos.length === 1) {\n return infos[0];\n }\n else if (infos.length >= 2) {\n const combine = { ...infos[0] };\n combine.displayParts = combine.displayParts?.slice();\n combine.documentation = combine.documentation?.slice();\n combine.tags = combine.tags?.slice();\n const displayPartsStrs = new Set([displayPartsToString(infos[0].displayParts)]);\n const documentationStrs = new Set([displayPartsToString(infos[0].documentation)]);\n const tagsStrs = new Set();\n for (const tag of infos[0].tags ?? []) {\n tagsStrs.add(tag.name + '__volar__' + displayPartsToString(tag.text));\n }\n for (let i = 1; i < infos.length; i++) {\n const { displayParts, documentation, tags } = infos[i];\n if (displayParts?.length && !displayPartsStrs.has(displayPartsToString(displayParts))) {\n displayPartsStrs.add(displayPartsToString(displayParts));\n combine.displayParts ??= [];\n combine.displayParts.push({ ...displayParts[0], text: '\\n\\n' + displayParts[0].text });\n combine.displayParts.push(...displayParts.slice(1));\n }\n if (documentation?.length && !documentationStrs.has(displayPartsToString(documentation))) {\n documentationStrs.add(displayPartsToString(documentation));\n combine.documentation ??= [];\n combine.documentation.push({ ...documentation[0], text: '\\n\\n' + documentation[0].text });\n combine.documentation.push(...documentation.slice(1));\n }\n for (const tag of tags ?? []) {\n if (!tagsStrs.has(tag.name + '__volar__' + displayPartsToString(tag.text))) {\n tagsStrs.add(tag.name + '__volar__' + displayPartsToString(tag.text));\n combine.tags ??= [];\n combine.tags.push(tag);\n }\n }\n }\n return combine;\n }\n }\n else {\n return getQuickInfoAtPosition(fileName, position, ...args);\n }\n };\n}\nfunction getSignatureHelpItems(language, getSignatureHelpItems) {\n return (filePath, position, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isSignatureHelpEnabled);\n if (generatePosition !== undefined) {\n const result = getSignatureHelpItems(targetScript.id, generatePosition, options);\n if (result) {\n const applicableSpan = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, result.applicableSpan, true, language_core_1.isSignatureHelpEnabled)?.[1];\n if (applicableSpan) {\n return {\n ...result,\n applicableSpan,\n };\n }\n }\n }\n }\n else {\n return getSignatureHelpItems(fileName, position, options);\n }\n };\n}\nfunction getDocumentHighlights(language, getDocumentHighlights) {\n return (filePath, position, filesToSearch) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isHighlightEnabled, (fileName, position) => getDocumentHighlights(fileName, position, filesToSearch), function* (result) {\n for (const ref of result) {\n for (const reference of ref.highlightSpans) {\n yield [reference.fileName ?? ref.fileName, reference.textSpan.start];\n }\n }\n });\n const resolved = unresolved\n .flat()\n .map(highlights => {\n return {\n ...highlights,\n highlightSpans: highlights.highlightSpans\n .map(span => {\n const { textSpan } = (0, transform_1.transformSpan)(language, span.fileName ?? highlights.fileName, span.textSpan, false, language_core_1.isHighlightEnabled)\n ?? {};\n if (textSpan) {\n return {\n ...span,\n contextSpan: (0, transform_1.transformSpan)(language, span.fileName ?? highlights.fileName, span.contextSpan, false, language_core_1.isHighlightEnabled)?.textSpan,\n textSpan,\n };\n }\n })\n .filter(span => !!span),\n };\n });\n return resolved;\n };\n}\nfunction getApplicableRefactors(language, getApplicableRefactors) {\n return (filePath, positionOrRange, preferences, triggerReason, kind, includeInteractiveActions) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n if (typeof positionOrRange === 'number') {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, positionOrRange, language_core_1.isCodeActionsEnabled);\n if (generatePosition !== undefined) {\n return getApplicableRefactors(targetScript.id, generatePosition, preferences, triggerReason, kind, includeInteractiveActions);\n }\n }\n else {\n for (const [generatedStart, generatedEnd] of (0, transform_1.toGeneratedRanges)(language, serviceScript, sourceScript, positionOrRange.pos, positionOrRange.end, language_core_1.isCodeActionsEnabled)) {\n return getApplicableRefactors(targetScript.id, { pos: generatedStart, end: generatedEnd }, preferences, triggerReason, kind, includeInteractiveActions);\n }\n }\n return [];\n }\n else {\n return getApplicableRefactors(fileName, positionOrRange, preferences, triggerReason, kind, includeInteractiveActions);\n }\n };\n}\nfunction getEditsForRefactor(language, getEditsForRefactor) {\n return (filePath, formatOptions, positionOrRange, refactorName, actionName, preferences, interactiveRefactorArguments) => {\n let edits;\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n if (typeof positionOrRange === 'number') {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, positionOrRange, language_core_1.isCodeActionsEnabled);\n if (generatePosition !== undefined) {\n edits = getEditsForRefactor(targetScript.id, formatOptions, generatePosition, refactorName, actionName, preferences, interactiveRefactorArguments);\n }\n }\n else {\n for (const [generatedStart, generatedEnd] of (0, transform_1.toGeneratedRanges)(language, serviceScript, sourceScript, positionOrRange.pos, positionOrRange.end, language_core_1.isCodeActionsEnabled)) {\n edits = getEditsForRefactor(targetScript.id, formatOptions, { pos: generatedStart, end: generatedEnd }, refactorName, actionName, preferences, interactiveRefactorArguments);\n }\n }\n }\n else {\n edits = getEditsForRefactor(fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, interactiveRefactorArguments);\n }\n if (edits) {\n edits.edits = (0, transform_1.transformFileTextChanges)(language, edits.edits, false, language_core_1.isCodeActionsEnabled);\n return edits;\n }\n };\n}\nfunction getCombinedCodeFix(language, getCombinedCodeFix) {\n return (...args) => {\n const codeActions = getCombinedCodeFix(...args);\n codeActions.changes = (0, transform_1.transformFileTextChanges)(language, codeActions.changes, false, language_core_1.isCodeActionsEnabled);\n return codeActions;\n };\n}\nfunction getRenameInfo(language, getRenameInfo) {\n return (filePath, position, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return {\n canRename: false,\n localizedErrorMessage: 'Cannot rename',\n };\n }\n if (serviceScript) {\n let failed;\n for (const [generateOffset] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1.isRenameEnabled)) {\n const info = getRenameInfo(targetScript.id, generateOffset, options);\n if (info.canRename) {\n const span = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, info.triggerSpan, false, language_core_1.isRenameEnabled)?.[1];\n if (span) {\n info.triggerSpan = span;\n return info;\n }\n }\n else {\n failed = info;\n }\n }\n if (failed) {\n return failed;\n }\n return {\n canRename: false,\n localizedErrorMessage: 'Failed to get rename locations',\n };\n }\n else {\n return getRenameInfo(fileName, position, options);\n }\n };\n}\nfunction getCodeFixesAtPosition(language, getCodeFixesAtPosition) {\n return (filePath, start, end, errorCodes, formatOptions, preferences) => {\n let fixes = [];\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generateRange = (0, transform_1.toGeneratedRange)(language, serviceScript, sourceScript, start, end, language_core_1.isCodeActionsEnabled);\n if (generateRange !== undefined) {\n fixes = getCodeFixesAtPosition(targetScript.id, generateRange[0], generateRange[1], errorCodes, formatOptions, preferences);\n }\n }\n else {\n fixes = getCodeFixesAtPosition(fileName, start, end, errorCodes, formatOptions, preferences);\n }\n fixes = fixes.map(fix => {\n fix.changes = (0, transform_1.transformFileTextChanges)(language, fix.changes, false, language_core_1.isCodeActionsEnabled);\n return fix;\n });\n return fixes;\n };\n}\nfunction getEncodedSemanticClassifications(language, getEncodedSemanticClassifications) {\n return (filePath, span, format) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return {\n spans: [],\n endOfLineState: 0,\n };\n }\n if (serviceScript) {\n const map = language.maps.get(serviceScript.code, targetScript);\n const mapped = (0, language_core_1.findOverlapCodeRange)(span.start, span.start + span.length, map, language_core_1.isSemanticTokensEnabled);\n if (!mapped) {\n return {\n spans: [],\n endOfLineState: 0,\n };\n }\n const mappingOffset = (0, transform_1.getMappingOffset)(language, serviceScript);\n const start = mapped.start + mappingOffset;\n const end = mapped.end + mappingOffset;\n const result = getEncodedSemanticClassifications(targetScript.id, { start, length: end - start }, format);\n const spans = [];\n for (let i = 0; i < result.spans.length; i += 3) {\n for (const [_, sourceStart, sourceEnd] of (0, transform_1.toSourceRanges)(sourceScript, language, serviceScript, result.spans[i], result.spans[i] + result.spans[i + 1], false, language_core_1.isSemanticTokensEnabled)) {\n spans.push(sourceStart, sourceEnd - sourceStart, result.spans[i + 2]);\n break;\n }\n }\n result.spans = spans;\n return result;\n }\n else {\n return getEncodedSemanticClassifications(fileName, span, format);\n }\n };\n}\nfunction getSyntacticDiagnostics(language, languageService, getSyntacticDiagnostics) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n return getSyntacticDiagnostics(targetScript?.id ?? fileName)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, languageService.getProgram(), false))\n .filter(d => !!d)\n .filter(d => !serviceScript || language.scripts.get(d.file.fileName) === sourceScript);\n };\n}\nfunction getSemanticDiagnostics(language, languageService, getSemanticDiagnostics) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n return getSemanticDiagnostics(targetScript?.id ?? fileName)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, languageService.getProgram(), false))\n .filter(d => !!d)\n .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);\n };\n}\nfunction getSuggestionDiagnostics(language, languageService, getSuggestionDiagnostics) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n return getSuggestionDiagnostics(targetScript?.id ?? fileName)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, languageService.getProgram(), false))\n .filter(d => !!d)\n .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);\n };\n}\nfunction getDefinitionAndBoundSpan(language, getDefinitionAndBoundSpan) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isDefinitionEnabled, (fileName, position) => getDefinitionAndBoundSpan(fileName, position), function* (result) {\n for (const ref of result.definitions ?? []) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const textSpan = unresolved\n .map(s => (0, transform_1.transformSpan)(language, fileName, s.textSpan, true, language_core_1.isDefinitionEnabled)?.textSpan)\n .filter(s => !!s)[0];\n if (!textSpan) {\n return;\n }\n const definitions = unresolved\n .map(s => s.definitions\n ?.map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isDefinitionEnabled, s.fileName !== fileName))\n .filter(s => !!s)\n ?? [])\n .flat();\n return {\n textSpan,\n definitions: (0, dedupe_1.dedupeDocumentSpans)(definitions),\n };\n };\n}\nfunction findReferences(language, findReferences) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isReferencesEnabled, (fileName, position) => findReferences(fileName, position), function* (result) {\n for (const ref of result) {\n for (const reference of ref.references) {\n yield [reference.fileName, reference.textSpan.start];\n }\n }\n });\n const resolved = unresolved\n .flat()\n .map(symbol => {\n const definition = (0, transform_1.transformDocumentSpan)(language, symbol.definition, true, language_core_1.isDefinitionEnabled, true);\n return {\n definition,\n references: symbol.references\n .map(r => (0, transform_1.transformDocumentSpan)(language, r, true, language_core_1.isReferencesEnabled))\n .filter(r => !!r),\n };\n });\n return resolved;\n };\n}\nfunction getDefinitionAtPosition(language, getDefinitionAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isDefinitionEnabled, (fileName, position) => getDefinitionAtPosition(fileName, position), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isDefinitionEnabled, s.fileName !== fileName))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getTypeDefinitionAtPosition(language, getTypeDefinitionAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isTypeDefinitionEnabled, (fileName, position) => getTypeDefinitionAtPosition(fileName, position), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isTypeDefinitionEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getImplementationAtPosition(language, getImplementationAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isImplementationEnabled, (fileName, position) => getImplementationAtPosition(fileName, position), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isImplementationEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction findRenameLocations(language, findRenameLocations) {\n return (filePath, position, findInStrings, findInComments, preferences) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isRenameEnabled, (fileName, position) => findRenameLocations(fileName, position, findInStrings, findInComments, preferences), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, false, language_core_1.isRenameEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getReferencesAtPosition(language, getReferencesAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isReferencesEnabled, (fileName, position) => getReferencesAtPosition(fileName, position), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isReferencesEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getCompletionsAtPosition(language, getCompletionsAtPosition) {\n return (filePath, position, options, formattingSettings) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n let mainResult;\n const additionalResults = [];\n for (const [generatedOffset, mapping] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1.isCompletionEnabled)) {\n const isAdditional = typeof mapping.data.completion === 'object' && mapping.data.completion.isAdditional;\n if (!isAdditional && mainResult?.entries.length) {\n continue;\n }\n const result = getCompletionsAtPosition(targetScript.id, generatedOffset, options, formattingSettings);\n if (!result) {\n continue;\n }\n if (typeof mapping.data.completion === 'object' && mapping.data.completion.onlyImport) {\n result.entries = result.entries.filter(entry => !!entry.sourceDisplay);\n }\n for (const entry of result.entries) {\n entry.replacementSpan = entry.replacementSpan\n && (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, entry.replacementSpan, false, language_core_1.isCompletionEnabled)?.[1];\n }\n result.optionalReplacementSpan = result.optionalReplacementSpan\n && (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, result.optionalReplacementSpan, false, language_core_1.isCompletionEnabled)?.[1];\n if (isAdditional) {\n additionalResults.push(result);\n }\n else {\n mainResult = result;\n }\n }\n const results = additionalResults;\n if (mainResult) {\n results.unshift(mainResult);\n }\n if (results.length) {\n return {\n ...results[0],\n entries: results\n .map(additionalResult => additionalResult.entries)\n .flat(),\n };\n }\n }\n else {\n return getCompletionsAtPosition(fileName, position, options, formattingSettings);\n }\n };\n}\nfunction getCompletionEntryDetails(language, getCompletionEntryDetails) {\n return (filePath, position, entryName, formatOptions, source, preferences, data) => {\n let details;\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isCompletionEnabled);\n if (generatePosition !== undefined) {\n details = getCompletionEntryDetails(targetScript.id, generatePosition, entryName, formatOptions, source, preferences, data);\n }\n }\n else {\n return getCompletionEntryDetails(fileName, position, entryName, formatOptions, source, preferences, data);\n }\n if (details?.codeActions) {\n for (const codeAction of details.codeActions) {\n codeAction.changes = (0, transform_1.transformFileTextChanges)(language, codeAction.changes, false, language_core_1.isCompletionEnabled);\n }\n }\n return details;\n };\n}\nfunction provideInlayHints(language, provideInlayHints) {\n return (filePath, span, preferences) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n const mapped = (0, language_core_1.findOverlapCodeRange)(span.start, span.start + span.length, map, language_core_1.isSemanticTokensEnabled);\n if (!mapped) {\n return [];\n }\n const mappingOffset = (0, transform_1.getMappingOffset)(language, serviceScript);\n const start = mapped.start + mappingOffset;\n const end = mapped.end + mappingOffset;\n const result = provideInlayHints(targetScript.id, { start, length: end - start }, preferences);\n const hints = [];\n for (const hint of result) {\n const sourcePosition = (0, transform_1.toSourceOffset)(sourceScript, language, serviceScript, hint.position, language_core_1.isInlayHintsEnabled);\n if (sourcePosition !== undefined) {\n hints.push({\n ...hint,\n position: sourcePosition[1],\n });\n }\n }\n return hints;\n }\n else {\n return provideInlayHints(fileName, span, preferences);\n }\n };\n}\nfunction getFileReferences(language, getFileReferences) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = getFileReferences(fileName);\n const resolved = unresolved\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isReferencesEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getNavigateToItems(language, getNavigateToItems) {\n return (...args) => {\n const unresolved = getNavigateToItems(...args);\n const resolved = unresolved\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isReferencesEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction linkedCodeFeatureWorker(language, fileName, position, filter, worker, getLinkedCodes) {\n const results = [];\n const processedFilePositions = new Set();\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (serviceScript) {\n for (const [generatedOffset] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, filter)) {\n process(targetScript.id, generatedOffset);\n }\n }\n else {\n process(fileName, position);\n }\n return results;\n function process(fileName, position) {\n if (processedFilePositions.has(fileName + ':' + position)) {\n return;\n }\n processedFilePositions.add(fileName + ':' + position);\n const result = worker(fileName, position);\n if (!result) {\n return;\n }\n results.push(result);\n for (const ref of getLinkedCodes(result)) {\n processedFilePositions.add(ref[0] + ':' + ref[1]);\n const [serviceScript] = (0, utils_1.getServiceScript)(language, ref[0]);\n if (!serviceScript) {\n continue;\n }\n const linkedCodeMap = language.linkedCodeMaps.get(serviceScript.code);\n if (!linkedCodeMap) {\n continue;\n }\n const mappingOffset = (0, transform_1.getMappingOffset)(language, serviceScript);\n for (const linkedCodeOffset of linkedCodeMap.getLinkedOffsets(ref[1] - mappingOffset)) {\n process(ref[0], linkedCodeOffset + mappingOffset);\n }\n }\n }\n}\nfunction displayPartsToString(displayParts) {\n if (displayParts) {\n return displayParts.map(displayPart => displayPart.text).join('');\n }\n return '';\n}\n//# sourceMappingURL=proxyLanguageService.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createLanguageServiceHost = createLanguageServiceHost;\nconst language_core_1 = require(\"@volar/language-core\");\nconst path = require(\"path-browserify\");\nconst utils_1 = require(\"../node/utils\");\nconst resolveModuleName_1 = require(\"../resolveModuleName\");\nfunction createLanguageServiceHost(ts, sys, language, asScriptId, projectHost) {\n const pluginExtensions = language.plugins\n .map(plugin => plugin.typescript?.extraFileExtensions.map(ext => '.' + ext.extension) ?? [])\n .flat();\n const scriptVersions = new language_core_1.FileMap(sys.useCaseSensitiveFileNames);\n let lastProjectVersion;\n let tsProjectVersion = 0;\n let tsFileRegistry = new language_core_1.FileMap(sys.useCaseSensitiveFileNames);\n let tsFileDirRegistry = new language_core_1.FileMap(sys.useCaseSensitiveFileNames);\n let extraScriptRegistry = new language_core_1.FileMap(sys.useCaseSensitiveFileNames);\n let lastTsVirtualFileSnapshots = new Set();\n let lastOtherVirtualFileSnapshots = new Set();\n let languageServiceHost = {\n ...sys,\n getCurrentDirectory() {\n return projectHost.getCurrentDirectory();\n },\n useCaseSensitiveFileNames() {\n return sys.useCaseSensitiveFileNames;\n },\n getNewLine() {\n return sys.newLine;\n },\n getTypeRootsVersion: () => {\n return 'version' in sys ? sys.version : -1; // TODO: only update for /node_modules changes?\n },\n getDirectories(dirName) {\n return sys.getDirectories(dirName);\n },\n readDirectory(dirName, extensions, excludes, includes, depth) {\n const exts = new Set(extensions);\n for (const ext of pluginExtensions) {\n exts.add(ext);\n }\n extensions = [...exts];\n return sys.readDirectory(dirName, extensions, excludes, includes, depth);\n },\n getCompilationSettings() {\n const options = projectHost.getCompilationSettings();\n if (pluginExtensions.length) {\n options.allowNonTsExtensions ??= true;\n if (!options.allowNonTsExtensions) {\n console.warn('`allowNonTsExtensions` must be `true`.');\n }\n }\n return options;\n },\n getLocalizedDiagnosticMessages: projectHost.getLocalizedDiagnosticMessages,\n getProjectReferences: projectHost.getProjectReferences,\n getDefaultLibFileName: options => {\n try {\n return ts.getDefaultLibFilePath(options);\n }\n catch {\n // web\n return `/node_modules/typescript/lib/${ts.getDefaultLibFileName(options)}`;\n }\n },\n readFile(fileName) {\n const snapshot = getScriptSnapshot(fileName);\n if (snapshot) {\n return snapshot.getText(0, snapshot.getLength());\n }\n },\n directoryExists(directoryName) {\n sync();\n if (tsFileDirRegistry.has(directoryName)) {\n return true;\n }\n return sys.directoryExists(directoryName);\n },\n fileExists(fileName) {\n return getScriptVersion(fileName) !== '';\n },\n getProjectVersion() {\n sync();\n return tsProjectVersion + ('version' in sys ? `:${sys.version}` : '');\n },\n getScriptFileNames() {\n sync();\n return [...tsFileRegistry.keys()];\n },\n getScriptKind(fileName) {\n sync();\n if (extraScriptRegistry.has(fileName)) {\n return extraScriptRegistry.get(fileName).scriptKind;\n }\n const sourceScript = language.scripts.get(asScriptId(fileName));\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n return serviceScript.scriptKind;\n }\n }\n switch (path.extname(fileName)) {\n case '.js':\n case '.cjs':\n case '.mjs':\n return ts.ScriptKind.JS;\n case '.jsx':\n return ts.ScriptKind.JSX;\n case '.ts':\n case '.cts':\n case '.mts':\n return ts.ScriptKind.TS;\n case '.tsx':\n return ts.ScriptKind.TSX;\n case '.json':\n return ts.ScriptKind.JSON;\n default:\n return ts.ScriptKind.Unknown;\n }\n },\n getScriptVersion,\n getScriptSnapshot,\n };\n for (const plugin of language.plugins) {\n if (plugin.typescript?.resolveLanguageServiceHost) {\n languageServiceHost = plugin.typescript.resolveLanguageServiceHost(languageServiceHost);\n }\n }\n if (pluginExtensions.length) {\n // TODO: can this share between monorepo packages?\n const moduleResolutionCache = ts.createModuleResolutionCache(languageServiceHost.getCurrentDirectory(), languageServiceHost.useCaseSensitiveFileNames?.() ? s => s : s => s.toLowerCase(), languageServiceHost.getCompilationSettings());\n const resolveModuleName = (0, resolveModuleName_1.createResolveModuleName)(ts, sys.getFileSize, languageServiceHost, language.plugins, fileName => language.scripts.get(asScriptId(fileName)));\n let lastSysVersion = 'version' in sys ? sys.version : undefined;\n languageServiceHost.resolveModuleNameLiterals = (moduleLiterals, containingFile, redirectedReference, options, containingSourceFile) => {\n const disposeFixup = (0, utils_1.fixupImpliedNodeFormatForFile)(ts, pluginExtensions, containingSourceFile, moduleResolutionCache.getPackageJsonInfoCache(), languageServiceHost, options);\n try {\n if ('version' in sys && lastSysVersion !== sys.version) {\n lastSysVersion = sys.version;\n moduleResolutionCache.clear();\n }\n return moduleLiterals.map(moduleLiteral => {\n const mode = ts.getModeForUsageLocation(containingSourceFile, moduleLiteral, options);\n return resolveModuleName(moduleLiteral.text, containingFile, options, moduleResolutionCache, redirectedReference, mode);\n });\n }\n finally {\n disposeFixup?.();\n }\n };\n languageServiceHost.resolveModuleNames = (moduleNames, containingFile, _reusedNames, redirectedReference, options) => {\n if ('version' in sys && lastSysVersion !== sys.version) {\n lastSysVersion = sys.version;\n moduleResolutionCache.clear();\n }\n return moduleNames.map(moduleName => {\n return resolveModuleName(moduleName, containingFile, options, moduleResolutionCache, redirectedReference)\n .resolvedModule;\n });\n };\n languageServiceHost.getModuleResolutionCache = () => moduleResolutionCache;\n }\n return {\n languageServiceHost,\n getExtraServiceScript,\n };\n function getExtraServiceScript(fileName) {\n sync();\n return extraScriptRegistry.get(fileName);\n }\n function sync() {\n const newProjectVersion = projectHost.getProjectVersion?.();\n const shouldUpdate = newProjectVersion === undefined || newProjectVersion !== lastProjectVersion;\n if (!shouldUpdate) {\n return;\n }\n lastProjectVersion = newProjectVersion;\n extraScriptRegistry.clear();\n const newTsVirtualFileSnapshots = new Set();\n const newOtherVirtualFileSnapshots = new Set();\n const tsFileNamesSet = new Set();\n for (const fileName of projectHost.getScriptFileNames()) {\n const sourceScript = language.scripts.get(asScriptId(fileName));\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n newTsVirtualFileSnapshots.add(serviceScript.code.snapshot);\n tsFileNamesSet.add(fileName);\n }\n for (const extraServiceScript of sourceScript.generated.languagePlugin.typescript?.getExtraServiceScripts?.(fileName, sourceScript.generated.root) ?? []) {\n newTsVirtualFileSnapshots.add(extraServiceScript.code.snapshot);\n tsFileNamesSet.add(extraServiceScript.fileName);\n extraScriptRegistry.set(extraServiceScript.fileName, extraServiceScript);\n }\n for (const code of (0, language_core_1.forEachEmbeddedCode)(sourceScript.generated.root)) {\n newOtherVirtualFileSnapshots.add(code.snapshot);\n }\n }\n else {\n tsFileNamesSet.add(fileName);\n }\n }\n if (!setEquals(lastTsVirtualFileSnapshots, newTsVirtualFileSnapshots)) {\n tsProjectVersion++;\n }\n else if (setEquals(lastOtherVirtualFileSnapshots, newOtherVirtualFileSnapshots)) {\n // no any meta language files update, it mean project version was update by source files this time\n tsProjectVersion++;\n }\n lastTsVirtualFileSnapshots = newTsVirtualFileSnapshots;\n lastOtherVirtualFileSnapshots = newOtherVirtualFileSnapshots;\n tsFileRegistry.clear();\n tsFileDirRegistry.clear();\n for (const fileName of tsFileNamesSet) {\n tsFileRegistry.set(fileName, true);\n const parts = fileName.split('/');\n for (let i = 1; i < parts.length; i++) {\n const dirName = parts.slice(0, i).join('/');\n tsFileDirRegistry.set(dirName, true);\n }\n }\n }\n function getScriptSnapshot(fileName) {\n sync();\n if (extraScriptRegistry.has(fileName)) {\n return extraScriptRegistry.get(fileName).code.snapshot;\n }\n const sourceScript = language.scripts.get(asScriptId(fileName));\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n return serviceScript.code.snapshot;\n }\n }\n else if (sourceScript) {\n return sourceScript.snapshot;\n }\n }\n function getScriptVersion(fileName) {\n sync();\n if (!scriptVersions.has(fileName)) {\n scriptVersions.set(fileName, { lastVersion: 0, map: new WeakMap() });\n }\n const version = scriptVersions.get(fileName);\n if (extraScriptRegistry.has(fileName)) {\n const snapshot = extraScriptRegistry.get(fileName).code.snapshot;\n if (!version.map.has(snapshot)) {\n version.map.set(snapshot, version.lastVersion++);\n }\n return version.map.get(snapshot).toString();\n }\n const sourceScript = language.scripts.get(asScriptId(fileName));\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n if (!version.map.has(serviceScript.code.snapshot)) {\n version.map.set(serviceScript.code.snapshot, version.lastVersion++);\n }\n return version.map.get(serviceScript.code.snapshot).toString();\n }\n }\n const openedFile = language.scripts.get(asScriptId(fileName), false);\n if (openedFile && !openedFile.generated) {\n if (!version.map.has(openedFile.snapshot)) {\n version.map.set(openedFile.snapshot, version.lastVersion++);\n }\n return version.map.get(openedFile.snapshot).toString();\n }\n if (sys.fileExists(fileName)) {\n return sys.getModifiedTime?.(fileName)?.valueOf().toString() ?? '0';\n }\n return '';\n }\n}\nfunction setEquals(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=createProject.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.every = every;\nexports.findIndex = findIndex;\nexports.indexOfAnyCharCode = indexOfAnyCharCode;\nexports.map = map;\nexports.flatten = flatten;\nexports.flatMap = flatMap;\nexports.some = some;\nexports.sort = sort;\nexports.lastOrUndefined = lastOrUndefined;\nexports.last = last;\nexports.equateStringsCaseInsensitive = equateStringsCaseInsensitive;\nexports.equateStringsCaseSensitive = equateStringsCaseSensitive;\nexports.compareStringsCaseSensitive = compareStringsCaseSensitive;\nexports.getStringComparer = getStringComparer;\nexports.endsWith = endsWith;\nexports.stringContains = stringContains;\nexports.createGetCanonicalFileName = createGetCanonicalFileName;\nexports.startsWith = startsWith;\nconst emptyArray = [];\n/**\n * Iterates through `array` by index and performs the callback on each element of array until the callback\n * returns a falsey value, then returns false.\n * If no such value is found, the callback is applied to each element of array and `true` is returned.\n */\nfunction every(array, callback) {\n if (array) {\n for (let i = 0; i < array.length; i++) {\n if (!callback(array[i], i)) {\n return false;\n }\n }\n }\n return true;\n}\n/** Works like Array.prototype.findIndex, returning `-1` if no element satisfying the predicate is found. */\nfunction findIndex(array, predicate, startIndex) {\n if (array === undefined) {\n return -1;\n }\n for (let i = startIndex ?? 0; i < array.length; i++) {\n if (predicate(array[i], i)) {\n return i;\n }\n }\n return -1;\n}\nfunction contains(array, value, equalityComparer = equateValues) {\n if (array) {\n for (const v of array) {\n if (equalityComparer(v, value)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction indexOfAnyCharCode(text, charCodes, start) {\n for (let i = start || 0; i < text.length; i++) {\n if (contains(charCodes, text.charCodeAt(i))) {\n return i;\n }\n }\n return -1;\n}\nfunction map(array, f) {\n let result;\n if (array) {\n result = [];\n for (let i = 0; i < array.length; i++) {\n result.push(f(array[i], i));\n }\n }\n return result;\n}\n/**\n * Flattens an array containing a mix of array or non-array elements.\n *\n * @param array The array to flatten.\n */\nfunction flatten(array) {\n const result = [];\n for (const v of array) {\n if (v) {\n if (isArray(v)) {\n addRange(result, v);\n }\n else {\n result.push(v);\n }\n }\n }\n return result;\n}\n/**\n * Maps an array. If the mapped value is an array, it is spread into the result.\n *\n * @param array The array to map.\n * @param mapfn The callback used to map the result into one or more values.\n */\nfunction flatMap(array, mapfn) {\n let result;\n if (array) {\n for (let i = 0; i < array.length; i++) {\n const v = mapfn(array[i], i);\n if (v) {\n if (isArray(v)) {\n result = addRange(result, v);\n }\n else {\n result = append(result, v);\n }\n }\n }\n }\n return result || emptyArray;\n}\nfunction some(array, predicate) {\n if (array) {\n if (predicate) {\n for (const v of array) {\n if (predicate(v)) {\n return true;\n }\n }\n }\n else {\n return array.length > 0;\n }\n }\n return false;\n}\n// function append<T>(to: T[] | undefined, value: T): T[];\n// function append<T>(to: T[] | undefined, value: T | undefined): T[] | undefined;\n// function append<T>(to: Push<T>, value: T | undefined): void;\nfunction append(to, value) {\n if (value === undefined) {\n return to;\n }\n if (to === undefined) {\n return [value];\n }\n to.push(value);\n return to;\n}\n/**\n * Gets the actual offset into an array for a relative offset. Negative offsets indicate a\n * position offset from the end of the array.\n */\nfunction toOffset(array, offset) {\n return offset < 0 ? array.length + offset : offset;\n}\nfunction addRange(to, from, start, end) {\n if (from === undefined || from.length === 0) {\n return to;\n }\n if (to === undefined) {\n return from.slice(start, end);\n }\n start = start === undefined ? 0 : toOffset(from, start);\n end = end === undefined ? from.length : toOffset(from, end);\n for (let i = start; i < end && i < from.length; i++) {\n if (from[i] !== undefined) {\n to.push(from[i]);\n }\n }\n return to;\n}\n/**\n * Returns a new sorted array.\n */\nfunction sort(array, comparer) {\n return (array.length === 0 ? array : array.slice().sort(comparer));\n}\n/**\n * Returns the last element of an array if non-empty, `undefined` otherwise.\n */\nfunction lastOrUndefined(array) {\n return array === undefined || array.length === 0 ? undefined : array[array.length - 1];\n}\nfunction last(array) {\n // Debug.assert(array.length !== 0);\n return array[array.length - 1];\n}\n/**\n * Tests whether a value is an array.\n */\nfunction isArray(value) {\n return Array.isArray ? Array.isArray(value) : value instanceof Array;\n}\n/** Returns its argument. */\nfunction identity(x) {\n return x;\n}\n/** Returns lower case string */\nfunction toLowerCase(x) {\n return x.toLowerCase();\n}\n// We convert the file names to lower case as key for file name on case insensitive file system\n// While doing so we need to handle special characters (eg \\u0130) to ensure that we dont convert\n// it to lower case, fileName with its lowercase form can exist along side it.\n// Handle special characters and make those case sensitive instead\n//\n// |-#--|-Unicode--|-Char code-|-Desc-------------------------------------------------------------------|\n// | 1. | i | 105 | Ascii i |\n// | 2. | I | 73 | Ascii I |\n// |-------- Special characters ------------------------------------------------------------------------|\n// | 3. | \\u0130 | 304 | Upper case I with dot above |\n// | 4. | i,\\u0307 | 105,775 | i, followed by 775: Lower case of (3rd item) |\n// | 5. | I,\\u0307 | 73,775 | I, followed by 775: Upper case of (4th item), lower case is (4th item) |\n// | 6. | \\u0131 | 305 | Lower case i without dot, upper case is I (2nd item) |\n// | 7. | \\u00DF | 223 | Lower case sharp s |\n//\n// Because item 3 is special where in its lowercase character has its own\n// upper case form we cant convert its case.\n// Rest special characters are either already in lower case format or\n// they have corresponding upper case character so they dont need special handling\n//\n// But to avoid having to do string building for most common cases, also ignore\n// a-z, 0-9, \\u0131, \\u00DF, \\, /, ., : and space\nconst fileNameLowerCaseRegExp = /[^\\u0130\\u0131\\u00DFa-z0-9\\\\/:\\-_\\. ]+/g;\n/**\n * Case insensitive file systems have descripencies in how they handle some characters (eg. turkish Upper case I with dot on top - \\u0130)\n * This function is used in places where we want to make file name as a key on these systems\n * It is possible on mac to be able to refer to file name with I with dot on top as a fileName with its lower case form\n * But on windows we cannot. Windows can have fileName with I with dot on top next to its lower case and they can not each be referred with the lowercase forms\n * Technically we would want this function to be platform sepcific as well but\n * our api has till now only taken caseSensitive as the only input and just for some characters we dont want to update API and ensure all customers use those api\n * We could use upper case and we would still need to deal with the descripencies but\n * we want to continue using lower case since in most cases filenames are lowercasewe and wont need any case changes and avoid having to store another string for the key\n * So for this function purpose, we go ahead and assume character I with dot on top it as case sensitive since its very unlikely to use lower case form of that special character\n */\nfunction toFileNameLowerCase(x) {\n return fileNameLowerCaseRegExp.test(x)\n ? x.replace(fileNameLowerCaseRegExp, toLowerCase)\n : x;\n}\nfunction equateValues(a, b) {\n return a === b;\n}\n/**\n * Compare the equality of two strings using a case-sensitive ordinal comparison.\n *\n * Case-sensitive comparisons compare both strings one code-point at a time using the integer\n * value of each code-point after applying `toUpperCase` to each string. We always map both\n * strings to their upper-case form as some unicode characters do not properly round-trip to\n * lowercase (such as `ẞ` (German sharp capital s)).\n */\nfunction equateStringsCaseInsensitive(a, b) {\n return a === b\n || a !== undefined\n && b !== undefined\n && a.toUpperCase() === b.toUpperCase();\n}\n/**\n * Compare the equality of two strings using a case-sensitive ordinal comparison.\n *\n * Case-sensitive comparisons compare both strings one code-point at a time using the\n * integer value of each code-point.\n */\nfunction equateStringsCaseSensitive(a, b) {\n return equateValues(a, b);\n}\nfunction compareComparableValues(a, b) {\n return a === b\n ? 0 /* Comparison.EqualTo */\n : a === undefined\n ? -1 /* Comparison.LessThan */\n : b === undefined\n ? 1 /* Comparison.GreaterThan */\n : a < b\n ? -1 /* Comparison.LessThan */\n : 1 /* Comparison.GreaterThan */;\n}\n/**\n * Compare two strings using a case-insensitive ordinal comparison.\n *\n * Ordinal comparisons are based on the difference between the unicode code points of both\n * strings. Characters with multiple unicode representations are considered unequal. Ordinal\n * comparisons provide predictable ordering, but place \"a\" after \"B\".\n *\n * Case-insensitive comparisons compare both strings one code-point at a time using the integer\n * value of each code-point after applying `toUpperCase` to each string. We always map both\n * strings to their upper-case form as some unicode characters do not properly round-trip to\n * lowercase (such as `ẞ` (German sharp capital s)).\n */\nfunction compareStringsCaseInsensitive(a, b) {\n if (a === b) {\n return 0 /* Comparison.EqualTo */;\n }\n if (a === undefined) {\n return -1 /* Comparison.LessThan */;\n }\n if (b === undefined) {\n return 1 /* Comparison.GreaterThan */;\n }\n a = a.toUpperCase();\n b = b.toUpperCase();\n return a < b ? -1 /* Comparison.LessThan */ : a > b ? 1 /* Comparison.GreaterThan */ : 0 /* Comparison.EqualTo */;\n}\n/**\n * Compare two strings using a case-sensitive ordinal comparison.\n *\n * Ordinal comparisons are based on the difference between the unicode code points of both\n * strings. Characters with multiple unicode representations are considered unequal. Ordinal\n * comparisons provide predictable ordering, but place \"a\" after \"B\".\n *\n * Case-sensitive comparisons compare both strings one code-point at a time using the integer\n * value of each code-point.\n */\nfunction compareStringsCaseSensitive(a, b) {\n return compareComparableValues(a, b);\n}\nfunction getStringComparer(ignoreCase) {\n return ignoreCase ? compareStringsCaseInsensitive : compareStringsCaseSensitive;\n}\nfunction endsWith(str, suffix) {\n const expectedPos = str.length - suffix.length;\n return expectedPos >= 0 && str.indexOf(suffix, expectedPos) === expectedPos;\n}\nfunction stringContains(str, substring) {\n return str.indexOf(substring) !== -1;\n}\nfunction createGetCanonicalFileName(useCaseSensitiveFileNames) {\n return useCaseSensitiveFileNames ? identity : toFileNameLowerCase;\n}\nfunction startsWith(str, prefix) {\n return str.lastIndexOf(prefix, 0) === 0;\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.directorySeparator = void 0;\nexports.isRootedDiskPath = isRootedDiskPath;\nexports.hasExtension = hasExtension;\nexports.fileExtensionIsOneOf = fileExtensionIsOneOf;\nexports.getDirectoryPath = getDirectoryPath;\nexports.combinePaths = combinePaths;\nexports.getNormalizedPathComponents = getNormalizedPathComponents;\nexports.normalizePath = normalizePath;\nexports.removeTrailingDirectorySeparator = removeTrailingDirectorySeparator;\nexports.containsPath = containsPath;\nconst core_1 = require(\"./core\");\n/**\n * Internally, we represent paths as strings with '/' as the directory separator.\n * When we make system calls (eg: LanguageServiceHost.getDirectory()),\n * we expect the host to correctly handle paths in our specified format.\n */\nexports.directorySeparator = '/';\nconst altDirectorySeparator = '\\\\';\nconst urlSchemeSeparator = '://';\nconst backslashRegExp = /\\\\/g;\n//// Path Tests\n/**\n * Determines whether a charCode corresponds to `/` or `\\`.\n */\nfunction isAnyDirectorySeparator(charCode) {\n return charCode === 47 /* CharacterCodes.slash */ || charCode === 92 /* CharacterCodes.backslash */;\n}\n/**\n * Determines whether a path is an absolute disk path (e.g. starts with `/`, or a dos path\n * like `c:`, `c:\\` or `c:/`).\n */\nfunction isRootedDiskPath(path) {\n return getEncodedRootLength(path) > 0;\n}\nfunction hasExtension(fileName) {\n return (0, core_1.stringContains)(getBaseFileName(fileName), '.');\n}\nfunction fileExtensionIs(path, extension) {\n return path.length > extension.length && (0, core_1.endsWith)(path, extension);\n}\nfunction fileExtensionIsOneOf(path, extensions) {\n for (const extension of extensions) {\n if (fileExtensionIs(path, extension)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Determines whether a path has a trailing separator (`/` or `\\\\`).\n */\nfunction hasTrailingDirectorySeparator(path) {\n return path.length > 0 && isAnyDirectorySeparator(path.charCodeAt(path.length - 1));\n}\n//// Path Parsing\nfunction isVolumeCharacter(charCode) {\n return (charCode >= 97 /* CharacterCodes.a */ && charCode <= 122 /* CharacterCodes.z */)\n || (charCode >= 65 /* CharacterCodes.A */ && charCode <= 90 /* CharacterCodes.Z */);\n}\nfunction getFileUrlVolumeSeparatorEnd(url, start) {\n const ch0 = url.charCodeAt(start);\n if (ch0 === 58 /* CharacterCodes.colon */) {\n return start + 1;\n }\n if (ch0 === 37 /* CharacterCodes.percent */ && url.charCodeAt(start + 1) === 51 /* CharacterCodes._3 */) {\n const ch2 = url.charCodeAt(start + 2);\n if (ch2 === 97 /* CharacterCodes.a */ || ch2 === 65 /* CharacterCodes.A */) {\n return start + 3;\n }\n }\n return -1;\n}\n/**\n * Returns length of the root part of a path or URL (i.e. length of \"/\", \"x:/\", \"//server/share/, file:///user/files\").\n * If the root is part of a URL, the twos-complement of the root length is returned.\n */\nfunction getEncodedRootLength(path) {\n if (!path) {\n return 0;\n }\n const ch0 = path.charCodeAt(0);\n // POSIX or UNC\n if (ch0 === 47 /* CharacterCodes.slash */ || ch0 === 92 /* CharacterCodes.backslash */) {\n if (path.charCodeAt(1) !== ch0) {\n return 1; // POSIX: \"/\" (or non-normalized \"\\\")\n }\n const p1 = path.indexOf(ch0 === 47 /* CharacterCodes.slash */ ? exports.directorySeparator : altDirectorySeparator, 2);\n if (p1 < 0) {\n return path.length; // UNC: \"//server\" or \"\\\\server\"\n }\n return p1 + 1; // UNC: \"//server/\" or \"\\\\server\\\"\n }\n // DOS\n if (isVolumeCharacter(ch0) && path.charCodeAt(1) === 58 /* CharacterCodes.colon */) {\n const ch2 = path.charCodeAt(2);\n if (ch2 === 47 /* CharacterCodes.slash */ || ch2 === 92 /* CharacterCodes.backslash */) {\n return 3; // DOS: \"c:/\" or \"c:\\\"\n }\n if (path.length === 2) {\n return 2; // DOS: \"c:\" (but not \"c:d\")\n }\n }\n // URL\n const schemeEnd = path.indexOf(urlSchemeSeparator);\n if (schemeEnd !== -1) {\n const authorityStart = schemeEnd + urlSchemeSeparator.length;\n const authorityEnd = path.indexOf(exports.directorySeparator, authorityStart);\n if (authorityEnd !== -1) { // URL: \"file:///\", \"file://server/\", \"file://server/path\"\n // For local \"file\" URLs, include the leading DOS volume (if present).\n // Per https://www.ietf.org/rfc/rfc1738.txt, a host of \"\" or \"localhost\" is a\n // special case interpreted as \"the machine from which the URL is being interpreted\".\n const scheme = path.slice(0, schemeEnd);\n const authority = path.slice(authorityStart, authorityEnd);\n if (scheme === 'file' && (authority === '' || authority === 'localhost')\n && isVolumeCharacter(path.charCodeAt(authorityEnd + 1))) {\n const volumeSeparatorEnd = getFileUrlVolumeSeparatorEnd(path, authorityEnd + 2);\n if (volumeSeparatorEnd !== -1) {\n if (path.charCodeAt(volumeSeparatorEnd) === 47 /* CharacterCodes.slash */) {\n // URL: \"file:///c:/\", \"file://localhost/c:/\", \"file:///c%3a/\", \"file://localhost/c%3a/\"\n return ~(volumeSeparatorEnd + 1);\n }\n if (volumeSeparatorEnd === path.length) {\n // URL: \"file:///c:\", \"file://localhost/c:\", \"file:///c$3a\", \"file://localhost/c%3a\"\n // but not \"file:///c:d\" or \"file:///c%3ad\"\n return ~volumeSeparatorEnd;\n }\n }\n }\n return ~(authorityEnd + 1); // URL: \"file://server/\", \"http://server/\"\n }\n return ~path.length; // URL: \"file://server\", \"http://server\"\n }\n // relative\n return 0;\n}\n/**\n * Returns length of the root part of a path or URL (i.e. length of \"/\", \"x:/\", \"//server/share/, file:///user/files\").\n *\n * For example:\n * ```ts\n * getRootLength(\"a\") === 0 // \"\"\n * getRootLength(\"/\") === 1 // \"/\"\n * getRootLength(\"c:\") === 2 // \"c:\"\n * getRootLength(\"c:d\") === 0 // \"\"\n * getRootLength(\"c:/\") === 3 // \"c:/\"\n * getRootLength(\"c:\\\\\") === 3 // \"c:\\\\\"\n * getRootLength(\"//server\") === 7 // \"//server\"\n * getRootLength(\"//server/share\") === 8 // \"//server/\"\n * getRootLength(\"\\\\\\\\server\") === 7 // \"\\\\\\\\server\"\n * getRootLength(\"\\\\\\\\server\\\\share\") === 8 // \"\\\\\\\\server\\\\\"\n * getRootLength(\"file:///path\") === 8 // \"file:///\"\n * getRootLength(\"file:///c:\") === 10 // \"file:///c:\"\n * getRootLength(\"file:///c:d\") === 8 // \"file:///\"\n * getRootLength(\"file:///c:/path\") === 11 // \"file:///c:/\"\n * getRootLength(\"file://server\") === 13 // \"file://server\"\n * getRootLength(\"file://server/path\") === 14 // \"file://server/\"\n * getRootLength(\"http://server\") === 13 // \"http://server\"\n * getRootLength(\"http://server/path\") === 14 // \"http://server/\"\n * ```\n */\nfunction getRootLength(path) {\n const rootLength = getEncodedRootLength(path);\n return rootLength < 0 ? ~rootLength : rootLength;\n}\nfunction getDirectoryPath(path) {\n path = normalizeSlashes(path);\n // If the path provided is itself the root, then return it.\n const rootLength = getRootLength(path);\n if (rootLength === path.length) {\n return path;\n }\n // return the leading portion of the path up to the last (non-terminal) directory separator\n // but not including any trailing directory separator.\n path = removeTrailingDirectorySeparator(path);\n return path.slice(0, Math.max(rootLength, path.lastIndexOf(exports.directorySeparator)));\n}\nfunction getBaseFileName(path, extensions, ignoreCase) {\n path = normalizeSlashes(path);\n // if the path provided is itself the root, then it has not file name.\n const rootLength = getRootLength(path);\n if (rootLength === path.length) {\n return '';\n }\n // return the trailing portion of the path starting after the last (non-terminal) directory\n // separator but not including any trailing directory separator.\n path = removeTrailingDirectorySeparator(path);\n const name = path.slice(Math.max(getRootLength(path), path.lastIndexOf(exports.directorySeparator) + 1));\n const extension = extensions !== undefined && ignoreCase !== undefined\n ? getAnyExtensionFromPath(name, extensions, ignoreCase)\n : undefined;\n return extension ? name.slice(0, name.length - extension.length) : name;\n}\nfunction tryGetExtensionFromPath(path, extension, stringEqualityComparer) {\n if (!(0, core_1.startsWith)(extension, '.')) {\n extension = '.' + extension;\n }\n if (path.length >= extension.length && path.charCodeAt(path.length - extension.length) === 46 /* CharacterCodes.dot */) {\n const pathExtension = path.slice(path.length - extension.length);\n if (stringEqualityComparer(pathExtension, extension)) {\n return pathExtension;\n }\n }\n}\nfunction getAnyExtensionFromPathWorker(path, extensions, stringEqualityComparer) {\n if (typeof extensions === 'string') {\n return tryGetExtensionFromPath(path, extensions, stringEqualityComparer) || '';\n }\n for (const extension of extensions) {\n const result = tryGetExtensionFromPath(path, extension, stringEqualityComparer);\n if (result) {\n return result;\n }\n }\n return '';\n}\nfunction getAnyExtensionFromPath(path, extensions, ignoreCase) {\n // Retrieves any string from the final \".\" onwards from a base file name.\n // Unlike extensionFromPath, which throws an exception on unrecognized extensions.\n if (extensions) {\n return getAnyExtensionFromPathWorker(removeTrailingDirectorySeparator(path), extensions, ignoreCase ? core_1.equateStringsCaseInsensitive : core_1.equateStringsCaseSensitive);\n }\n const baseFileName = getBaseFileName(path);\n const extensionIndex = baseFileName.lastIndexOf('.');\n if (extensionIndex >= 0) {\n return baseFileName.substring(extensionIndex);\n }\n return '';\n}\nfunction pathComponents(path, rootLength) {\n const root = path.substring(0, rootLength);\n const rest = path.substring(rootLength).split(exports.directorySeparator);\n if (rest.length && !(0, core_1.lastOrUndefined)(rest)) {\n rest.pop();\n }\n return [root, ...rest];\n}\n/**\n * Parse a path into an array containing a root component (at index 0) and zero or more path\n * components (at indices > 0). The result is not normalized.\n * If the path is relative, the root component is `\"\"`.\n * If the path is absolute, the root component includes the first path separator (`/`).\n *\n * ```ts\n * // POSIX\n * getPathComponents(\"/path/to/file.ext\") === [\"/\", \"path\", \"to\", \"file.ext\"]\n * getPathComponents(\"/path/to/\") === [\"/\", \"path\", \"to\"]\n * getPathComponents(\"/\") === [\"/\"]\n * // DOS\n * getPathComponents(\"c:/path/to/file.ext\") === [\"c:/\", \"path\", \"to\", \"file.ext\"]\n * getPathComponents(\"c:/path/to/\") === [\"c:/\", \"path\", \"to\"]\n * getPathComponents(\"c:/\") === [\"c:/\"]\n * getPathComponents(\"c:\") === [\"c:\"]\n * // URL\n * getPathComponents(\"http://typescriptlang.org/path/to/file.ext\") === [\"http://typescriptlang.org/\", \"path\", \"to\", \"file.ext\"]\n * getPathComponents(\"http://typescriptlang.org/path/to/\") === [\"http://typescriptlang.org/\", \"path\", \"to\"]\n * getPathComponents(\"http://typescriptlang.org/\") === [\"http://typescriptlang.org/\"]\n * getPathComponents(\"http://typescriptlang.org\") === [\"http://typescriptlang.org\"]\n * getPathComponents(\"file://server/path/to/file.ext\") === [\"file://server/\", \"path\", \"to\", \"file.ext\"]\n * getPathComponents(\"file://server/path/to/\") === [\"file://server/\", \"path\", \"to\"]\n * getPathComponents(\"file://server/\") === [\"file://server/\"]\n * getPathComponents(\"file://server\") === [\"file://server\"]\n * getPathComponents(\"file:///path/to/file.ext\") === [\"file:///\", \"path\", \"to\", \"file.ext\"]\n * getPathComponents(\"file:///path/to/\") === [\"file:///\", \"path\", \"to\"]\n * getPathComponents(\"file:///\") === [\"file:///\"]\n * getPathComponents(\"file://\") === [\"file://\"]\n */\nfunction getPathComponents(path, currentDirectory = '') {\n path = combinePaths(currentDirectory, path);\n return pathComponents(path, getRootLength(path));\n}\n//// Path Formatting\n/**\n * Formats a parsed path consisting of a root component (at index 0) and zero or more path\n * segments (at indices > 0).\n *\n * ```ts\n * getPathFromPathComponents([\"/\", \"path\", \"to\", \"file.ext\"]) === \"/path/to/file.ext\"\n * ```\n */\nfunction getPathFromPathComponents(pathComponents) {\n if (pathComponents.length === 0) {\n return '';\n }\n const root = pathComponents[0] && ensureTrailingDirectorySeparator(pathComponents[0]);\n return root + pathComponents.slice(1).join(exports.directorySeparator);\n}\n//// Path Normalization\n/**\n * Normalize path separators, converting `\\` into `/`.\n */\nfunction normalizeSlashes(path) {\n return path.indexOf('\\\\') !== -1\n ? path.replace(backslashRegExp, exports.directorySeparator)\n : path;\n}\n/**\n * Reduce an array of path components to a more simplified path by navigating any\n * `\".\"` or `\"..\"` entries in the path.\n */\nfunction reducePathComponents(components) {\n if (!(0, core_1.some)(components)) {\n return [];\n }\n const reduced = [components[0]];\n for (let i = 1; i < components.length; i++) {\n const component = components[i];\n if (!component) {\n continue;\n }\n if (component === '.') {\n continue;\n }\n if (component === '..') {\n if (reduced.length > 1) {\n if (reduced[reduced.length - 1] !== '..') {\n reduced.pop();\n continue;\n }\n }\n else if (reduced[0]) {\n continue;\n }\n }\n reduced.push(component);\n }\n return reduced;\n}\n/**\n * Combines paths. If a path is absolute, it replaces any previous path. Relative paths are not simplified.\n *\n * ```ts\n * // Non-rooted\n * combinePaths(\"path\", \"to\", \"file.ext\") === \"path/to/file.ext\"\n * combinePaths(\"path\", \"dir\", \"..\", \"to\", \"file.ext\") === \"path/dir/../to/file.ext\"\n * // POSIX\n * combinePaths(\"/path\", \"to\", \"file.ext\") === \"/path/to/file.ext\"\n * combinePaths(\"/path\", \"/to\", \"file.ext\") === \"/to/file.ext\"\n * // DOS\n * combinePaths(\"c:/path\", \"to\", \"file.ext\") === \"c:/path/to/file.ext\"\n * combinePaths(\"c:/path\", \"c:/to\", \"file.ext\") === \"c:/to/file.ext\"\n * // URL\n * combinePaths(\"file:///path\", \"to\", \"file.ext\") === \"file:///path/to/file.ext\"\n * combinePaths(\"file:///path\", \"file:///to\", \"file.ext\") === \"file:///to/file.ext\"\n * ```\n */\nfunction combinePaths(path, ...paths) {\n if (path) {\n path = normalizeSlashes(path);\n }\n for (let relativePath of paths) {\n if (!relativePath) {\n continue;\n }\n relativePath = normalizeSlashes(relativePath);\n if (!path || getRootLength(relativePath) !== 0) {\n path = relativePath;\n }\n else {\n path = ensureTrailingDirectorySeparator(path) + relativePath;\n }\n }\n return path;\n}\n/**\n * Parse a path into an array containing a root component (at index 0) and zero or more path\n * components (at indices > 0). The result is normalized.\n * If the path is relative, the root component is `\"\"`.\n * If the path is absolute, the root component includes the first path separator (`/`).\n *\n * ```ts\n * getNormalizedPathComponents(\"to/dir/../file.ext\", \"/path/\") === [\"/\", \"path\", \"to\", \"file.ext\"]\n * ```\n */\nfunction getNormalizedPathComponents(path, currentDirectory) {\n return reducePathComponents(getPathComponents(path, currentDirectory));\n}\nfunction normalizePath(path) {\n path = normalizeSlashes(path);\n // Most paths don't require normalization\n if (!relativePathSegmentRegExp.test(path)) {\n return path;\n }\n // Some paths only require cleanup of `/./` or leading `./`\n const simplified = path.replace(/\\/\\.\\//g, '/').replace(/^\\.\\//, '');\n if (simplified !== path) {\n path = simplified;\n if (!relativePathSegmentRegExp.test(path)) {\n return path;\n }\n }\n // Other paths require full normalization\n const normalized = getPathFromPathComponents(reducePathComponents(getPathComponents(path)));\n return normalized && hasTrailingDirectorySeparator(path) ? ensureTrailingDirectorySeparator(normalized) : normalized;\n}\nfunction removeTrailingDirectorySeparator(path) {\n if (hasTrailingDirectorySeparator(path)) {\n return path.substr(0, path.length - 1);\n }\n return path;\n}\nfunction ensureTrailingDirectorySeparator(path) {\n if (!hasTrailingDirectorySeparator(path)) {\n return path + exports.directorySeparator;\n }\n return path;\n}\n//// Path Comparisons\n// check path for these segments: '', '.'. '..'\nconst relativePathSegmentRegExp = /(?:\\/\\/)|(?:^|\\/)\\.\\.?(?:$|\\/)/;\nfunction containsPath(parent, child, currentDirectory, ignoreCase) {\n if (typeof currentDirectory === 'string') {\n parent = combinePaths(currentDirectory, parent);\n child = combinePaths(currentDirectory, child);\n }\n else if (typeof currentDirectory === 'boolean') {\n ignoreCase = currentDirectory;\n }\n if (parent === undefined || child === undefined) {\n return false;\n }\n if (parent === child) {\n return true;\n }\n const parentComponents = reducePathComponents(getPathComponents(parent));\n const childComponents = reducePathComponents(getPathComponents(child));\n if (childComponents.length < parentComponents.length) {\n return false;\n }\n const componentEqualityComparer = ignoreCase ? core_1.equateStringsCaseInsensitive : core_1.equateStringsCaseSensitive;\n for (let i = 0; i < parentComponents.length; i++) {\n const equalityComparer = i === 0 ? core_1.equateStringsCaseInsensitive : componentEqualityComparer;\n if (!equalityComparer(parentComponents[i], childComponents[i])) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=path.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.matchFiles = matchFiles;\nconst core_1 = require(\"./core\");\nconst path_1 = require(\"./path\");\n// KLUDGE: Don't assume one 'node_modules' links to another. More likely a single directory inside the node_modules is the symlink.\n// ALso, don't assume that an `@foo` directory is linked. More likely the contents of that are linked.\n// Reserved characters, forces escaping of any non-word (or digit), non-whitespace character.\n// It may be inefficient (we could just match (/[-[\\]{}()*+?.,\\\\^$|#\\s]/g), but this is future\n// proof.\nconst reservedCharacterPattern = /[^\\w\\s\\/]/g;\nconst wildcardCharCodes = [42 /* CharacterCodes.asterisk */, 63 /* CharacterCodes.question */];\nconst commonPackageFolders = ['node_modules', 'bower_components', 'jspm_packages'];\nconst implicitExcludePathRegexPattern = `(?!(${commonPackageFolders.join('|')})(/|$))`;\nconst filesMatcher = {\n /**\n * Matches any single directory segment unless it is the last segment and a .min.js file\n * Breakdown:\n * [^./] # matches everything up to the first . character (excluding directory separators)\n * (\\\\.(?!min\\\\.js$))? # matches . characters but not if they are part of the .min.js file extension\n */\n singleAsteriskRegexFragment: '([^./]|(\\\\.(?!min\\\\.js$))?)*',\n /**\n * Regex for the ** wildcard. Matches any number of subdirectories. When used for including\n * files or directories, does not match subdirectories that start with a . character\n */\n doubleAsteriskRegexFragment: `(/${implicitExcludePathRegexPattern}[^/.][^/]*)*?`,\n replaceWildcardCharacter: match => replaceWildcardCharacter(match, filesMatcher.singleAsteriskRegexFragment),\n};\nconst directoriesMatcher = {\n singleAsteriskRegexFragment: '[^/]*',\n /**\n * Regex for the ** wildcard. Matches any number of subdirectories. When used for including\n * files or directories, does not match subdirectories that start with a . character\n */\n doubleAsteriskRegexFragment: `(/${implicitExcludePathRegexPattern}[^/.][^/]*)*?`,\n replaceWildcardCharacter: match => replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment),\n};\nconst excludeMatcher = {\n singleAsteriskRegexFragment: '[^/]*',\n doubleAsteriskRegexFragment: '(/.+?)?',\n replaceWildcardCharacter: match => replaceWildcardCharacter(match, excludeMatcher.singleAsteriskRegexFragment),\n};\nconst wildcardMatchers = {\n files: filesMatcher,\n directories: directoriesMatcher,\n exclude: excludeMatcher,\n};\nfunction getRegularExpressionForWildcard(specs, basePath, usage) {\n const patterns = getRegularExpressionsForWildcards(specs, basePath, usage);\n if (!patterns || !patterns.length) {\n return undefined;\n }\n const pattern = patterns.map(pattern => `(${pattern})`).join('|');\n // If excluding, match \"foo/bar/baz...\", but if including, only allow \"foo\".\n const terminator = usage === 'exclude' ? '($|/)' : '$';\n return `^(${pattern})${terminator}`;\n}\nfunction getRegularExpressionsForWildcards(specs, basePath, usage) {\n if (specs === undefined || specs.length === 0) {\n return undefined;\n }\n return (0, core_1.flatMap)(specs, spec => spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]));\n}\n/**\n * An \"includes\" path \"foo\" is implicitly a glob \"foo/** /*\" (without the space) if its last component has no extension,\n * and does not contain any glob characters itself.\n */\nfunction isImplicitGlob(lastPathComponent) {\n return !/[.*?]/.test(lastPathComponent);\n}\nfunction getSubPatternFromSpec(spec, basePath, usage, { singleAsteriskRegexFragment, doubleAsteriskRegexFragment, replaceWildcardCharacter }) {\n let subpattern = '';\n let hasWrittenComponent = false;\n const components = (0, path_1.getNormalizedPathComponents)(spec, basePath);\n const lastComponent = (0, core_1.last)(components);\n if (usage !== 'exclude' && lastComponent === '**') {\n return undefined;\n }\n // getNormalizedPathComponents includes the separator for the root component.\n // We need to remove to create our regex correctly.\n components[0] = (0, path_1.removeTrailingDirectorySeparator)(components[0]);\n if (isImplicitGlob(lastComponent)) {\n components.push('**', '*');\n }\n let optionalCount = 0;\n for (let component of components) {\n if (component === '**') {\n subpattern += doubleAsteriskRegexFragment;\n }\n else {\n if (usage === 'directories') {\n subpattern += '(';\n optionalCount++;\n }\n if (hasWrittenComponent) {\n subpattern += path_1.directorySeparator;\n }\n if (usage !== 'exclude') {\n let componentPattern = '';\n // The * and ? wildcards should not match directories or files that start with . if they\n // appear first in a component. Dotted directories and files can be included explicitly\n // like so: **/.*/.*\n if (component.charCodeAt(0) === 42 /* CharacterCodes.asterisk */) {\n componentPattern += '([^./]' + singleAsteriskRegexFragment + ')?';\n component = component.substr(1);\n }\n else if (component.charCodeAt(0) === 63 /* CharacterCodes.question */) {\n componentPattern += '[^./]';\n component = component.substr(1);\n }\n componentPattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter);\n // Patterns should not include subfolders like node_modules unless they are\n // explicitly included as part of the path.\n //\n // As an optimization, if the component pattern is the same as the component,\n // then there definitely were no wildcard characters and we do not need to\n // add the exclusion pattern.\n if (componentPattern !== component) {\n subpattern += implicitExcludePathRegexPattern;\n }\n subpattern += componentPattern;\n }\n else {\n subpattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter);\n }\n }\n hasWrittenComponent = true;\n }\n while (optionalCount > 0) {\n subpattern += ')?';\n optionalCount--;\n }\n return subpattern;\n}\nfunction replaceWildcardCharacter(match, singleAsteriskRegexFragment) {\n return match === '*' ? singleAsteriskRegexFragment : match === '?' ? '[^/]' : '\\\\' + match;\n}\n/** @param path directory of the tsconfig.json */\nfunction getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames, currentDirectory) {\n path = (0, path_1.normalizePath)(path);\n currentDirectory = (0, path_1.normalizePath)(currentDirectory);\n const absolutePath = (0, path_1.combinePaths)(currentDirectory, path);\n return {\n includeFilePatterns: (0, core_1.map)(getRegularExpressionsForWildcards(includes, absolutePath, 'files'), pattern => `^${pattern}$`),\n includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, 'files'),\n includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, 'directories'),\n excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, 'exclude'),\n basePaths: getBasePaths(path, includes, useCaseSensitiveFileNames),\n };\n}\nfunction getRegexFromPattern(pattern, useCaseSensitiveFileNames) {\n return new RegExp(pattern, useCaseSensitiveFileNames ? '' : 'i');\n}\n/** @param path directory of the tsconfig.json */\nfunction matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames, currentDirectory, depth, getFileSystemEntries, realpath) {\n path = (0, path_1.normalizePath)(path);\n currentDirectory = (0, path_1.normalizePath)(currentDirectory);\n const patterns = getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames, currentDirectory);\n const includeFileRegexes = patterns.includeFilePatterns\n && patterns.includeFilePatterns.map(pattern => getRegexFromPattern(pattern, useCaseSensitiveFileNames));\n const includeDirectoryRegex = patterns.includeDirectoryPattern\n && getRegexFromPattern(patterns.includeDirectoryPattern, useCaseSensitiveFileNames);\n const excludeRegex = patterns.excludePattern\n && getRegexFromPattern(patterns.excludePattern, useCaseSensitiveFileNames);\n // Associate an array of results with each include regex. This keeps results in order of the \"include\" order.\n // If there are no \"includes\", then just put everything in results[0].\n const results = includeFileRegexes ? includeFileRegexes.map(() => []) : [[]];\n const visited = new Map();\n const toCanonical = (0, core_1.createGetCanonicalFileName)(useCaseSensitiveFileNames);\n for (const basePath of patterns.basePaths) {\n visitDirectory(basePath, (0, path_1.combinePaths)(currentDirectory, basePath), depth);\n }\n return (0, core_1.flatten)(results);\n function visitDirectory(path, absolutePath, depth) {\n const canonicalPath = toCanonical(realpath(absolutePath));\n if (visited.has(canonicalPath)) {\n return;\n }\n visited.set(canonicalPath, true);\n const { files, directories } = getFileSystemEntries(path);\n for (const current of (0, core_1.sort)(files, core_1.compareStringsCaseSensitive)) {\n const name = (0, path_1.combinePaths)(path, current);\n const absoluteName = (0, path_1.combinePaths)(absolutePath, current);\n if (extensions && !(0, path_1.fileExtensionIsOneOf)(name, extensions)) {\n continue;\n }\n if (excludeRegex && excludeRegex.test(absoluteName)) {\n continue;\n }\n if (!includeFileRegexes) {\n results[0].push(name);\n }\n else {\n const includeIndex = (0, core_1.findIndex)(includeFileRegexes, re => re.test(absoluteName));\n if (includeIndex !== -1) {\n results[includeIndex].push(name);\n }\n }\n }\n if (depth !== undefined) {\n depth--;\n if (depth === 0) {\n return;\n }\n }\n for (const current of (0, core_1.sort)(directories, core_1.compareStringsCaseSensitive)) {\n const name = (0, path_1.combinePaths)(path, current);\n const absoluteName = (0, path_1.combinePaths)(absolutePath, current);\n if ((!includeDirectoryRegex || includeDirectoryRegex.test(absoluteName))\n && (!excludeRegex || !excludeRegex.test(absoluteName))) {\n visitDirectory(name, absoluteName, depth);\n }\n }\n }\n}\n/**\n * Computes the unique non-wildcard base paths amongst the provided include patterns.\n */\nfunction getBasePaths(path, includes, useCaseSensitiveFileNames) {\n // Storage for our results in the form of literal paths (e.g. the paths as written by the user).\n const basePaths = [path];\n if (includes) {\n // Storage for literal base paths amongst the include patterns.\n const includeBasePaths = [];\n for (const include of includes) {\n // We also need to check the relative paths by converting them to absolute and normalizing\n // in case they escape the base path (e.g \"..\\somedirectory\")\n const absolute = (0, path_1.isRootedDiskPath)(include) ? include : (0, path_1.normalizePath)((0, path_1.combinePaths)(path, include));\n // Append the literal and canonical candidate base paths.\n includeBasePaths.push(getIncludeBasePath(absolute));\n }\n // Sort the offsets array using either the literal or canonical path representations.\n includeBasePaths.sort((0, core_1.getStringComparer)(!useCaseSensitiveFileNames));\n // Iterate over each include base path and include unique base paths that are not a\n // subpath of an existing base path\n for (const includeBasePath of includeBasePaths) {\n if ((0, core_1.every)(basePaths, basePath => !(0, path_1.containsPath)(basePath, includeBasePath, path, !useCaseSensitiveFileNames))) {\n basePaths.push(includeBasePath);\n }\n }\n }\n return basePaths;\n}\nfunction getIncludeBasePath(absolute) {\n const wildcardOffset = (0, core_1.indexOfAnyCharCode)(absolute, wildcardCharCodes);\n if (wildcardOffset < 0) {\n // No \"*\" or \"?\" in the path\n return !(0, path_1.hasExtension)(absolute)\n ? absolute\n : (0, path_1.removeTrailingDirectorySeparator)((0, path_1.getDirectoryPath)(absolute));\n }\n return absolute.substring(0, absolute.lastIndexOf(path_1.directorySeparator, wildcardOffset));\n}\n//# sourceMappingURL=utilities.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSys = createSys;\nconst path = require(\"path-browserify\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nconst utilities_1 = require(\"../typescript/utilities\");\nlet currentCwd = '';\nfunction createSys(sys, env, getCurrentDirectory, uriConverter) {\n let version = 0;\n const caseSensitive = sys?.useCaseSensitiveFileNames ?? false;\n const root = {\n name: '',\n dirs: new Map(),\n files: new Map(),\n requestedRead: false,\n };\n const promises = new Set();\n const fileWatcher = env.onDidChangeWatchedFiles?.(({ changes }) => {\n version++;\n for (const change of changes) {\n const changeUri = vscode_uri_1.URI.parse(change.uri);\n const fileName = uriConverter.asFileName(changeUri);\n const dirName = path.dirname(fileName);\n const baseName = path.basename(fileName);\n const fileExists = change.type === 1\n || change.type === 2;\n const dir = getDir(dirName, fileExists);\n dir.files.set(normalizeFileId(baseName), fileExists\n ? {\n name: baseName,\n stat: {\n type: 1,\n ctime: Date.now(),\n mtime: Date.now(),\n size: -1,\n },\n requestedStat: false,\n requestedText: false,\n }\n : {\n name: baseName,\n stat: undefined,\n text: undefined,\n requestedStat: true,\n requestedText: true,\n });\n }\n });\n return {\n dispose() {\n fileWatcher?.dispose();\n },\n args: sys?.args ?? [],\n newLine: sys?.newLine ?? '\\n',\n useCaseSensitiveFileNames: caseSensitive,\n realpath: sys?.realpath,\n write: sys?.write ?? (() => { }),\n writeFile: sys?.writeFile ?? (() => { }),\n createDirectory: sys?.createDirectory ?? (() => { }),\n exit: sys?.exit ?? (() => { }),\n getExecutingFilePath: sys?.getExecutingFilePath ?? (() => getCurrentDirectory + '/__fake__.js'),\n getCurrentDirectory,\n getModifiedTime,\n readFile,\n readDirectory,\n getDirectories,\n resolvePath,\n fileExists,\n directoryExists,\n get version() {\n return version;\n },\n async sync() {\n while (promises.size) {\n await Promise.all(promises);\n }\n return version;\n },\n };\n function resolvePath(fsPath) {\n if (sys) {\n const currentDirectory = getCurrentDirectory();\n if (currentCwd !== currentDirectory) {\n currentCwd = currentDirectory;\n // https://github.com/vuejs/language-tools/issues/2039\n // https://github.com/vuejs/language-tools/issues/2234\n if (sys.directoryExists(currentDirectory)) {\n // https://github.com/vuejs/language-tools/issues/2480\n try {\n // @ts-ignore\n process.chdir(currentDirectory);\n }\n catch { }\n }\n }\n return sys.resolvePath(fsPath).replace(/\\\\/g, '/');\n }\n return path.resolve(fsPath).replace(/\\\\/g, '/');\n }\n function readFile(fileName, encoding) {\n fileName = resolvePath(fileName);\n const dirPath = path.dirname(fileName);\n const dir = getDir(dirPath);\n const name = path.basename(fileName);\n readFileWorker(fileName, encoding, dir);\n return dir.files.get(normalizeFileId(name))?.text;\n }\n function directoryExists(dirName) {\n dirName = resolvePath(dirName);\n const dir = getDir(dirName);\n if (dir.exists === undefined) {\n dir.exists = false;\n const result = env.fs?.stat(uriConverter.asUri(dirName));\n if (typeof result === 'object' && 'then' in result) {\n const promise = result;\n promises.add(promise);\n result.then(result => {\n promises.delete(promise);\n dir.exists = result?.type === 2;\n if (dir.exists) {\n version++;\n }\n });\n }\n else {\n dir.exists = result?.type === 2;\n }\n }\n return dir.exists;\n }\n function getModifiedTime(fileName) {\n fileName = resolvePath(fileName);\n const file = getFile(fileName);\n if (!file.requestedStat) {\n file.requestedStat = true;\n handleStat(fileName, file);\n }\n return file.stat ? new Date(file.stat.mtime) : new Date(-1);\n }\n function fileExists(fileName) {\n fileName = resolvePath(fileName);\n const file = getFile(fileName);\n const exists = () => file.text !== undefined || file.stat?.type === 1;\n if (exists()) {\n return true;\n }\n if (!file.requestedStat) {\n file.requestedStat = true;\n handleStat(fileName, file);\n }\n return exists();\n }\n function handleStat(fileName, file) {\n const result = env.fs?.stat(uriConverter.asUri(fileName));\n if (typeof result === 'object' && 'then' in result) {\n const promise = result;\n promises.add(promise);\n result.then(result => {\n promises.delete(promise);\n if (file.stat?.type !== result?.type || file.stat?.mtime !== result?.mtime) {\n version++;\n }\n file.stat = result;\n });\n }\n else {\n file.stat = result;\n }\n }\n function getFile(fileName) {\n fileName = resolvePath(fileName);\n const dirPath = path.dirname(fileName);\n const baseName = path.basename(fileName);\n const dir = getDir(dirPath);\n let file = dir.files.get(normalizeFileId(baseName));\n if (!file) {\n dir.files.set(normalizeFileId(baseName), file = {\n name: baseName,\n requestedStat: false,\n requestedText: false,\n });\n }\n return file;\n }\n // for import path completion\n function getDirectories(dirName) {\n dirName = resolvePath(dirName);\n readDirectoryWorker(dirName);\n const dir = getDir(dirName);\n return [...dir.dirs.values()]\n .filter(dir => dir.exists)\n .map(dir => dir.name);\n }\n function readDirectory(dirName, extensions, excludes, includes, depth) {\n dirName = resolvePath(dirName);\n const currentDirectory = getCurrentDirectory();\n const matches = (0, utilities_1.matchFiles)(dirName, extensions, excludes, includes, caseSensitive, currentDirectory, depth, dirPath => {\n dirPath = resolvePath(dirPath);\n readDirectoryWorker(dirPath);\n const dir = getDir(dirPath);\n return {\n files: [...dir.files.values()]\n .filter(file => file.stat?.type === 1)\n .map(file => file.name),\n directories: [...dir.dirs.values()]\n .filter(dir => dir.exists)\n .map(dir => dir.name),\n };\n }, sys?.realpath ? (path => sys.realpath(path)) : (path => path));\n return [...new Set(matches)];\n }\n function readFileWorker(fileName, encoding, dir) {\n const name = path.basename(fileName);\n let file = dir.files.get(normalizeFileId(name));\n if (!file) {\n dir.files.set(normalizeFileId(name), file = {\n name,\n requestedStat: false,\n requestedText: false,\n });\n }\n if (file.requestedText) {\n return;\n }\n file.requestedText = true;\n const uri = uriConverter.asUri(fileName);\n const result = env.fs?.readFile(uri, encoding);\n if (typeof result === 'object' && 'then' in result) {\n const promise = result;\n promises.add(promise);\n result.then(result => {\n promises.delete(promise);\n if (result !== undefined) {\n file.text = result;\n if (file.stat) {\n file.stat.mtime++;\n }\n version++;\n }\n });\n }\n else if (result !== undefined) {\n file.text = result;\n }\n }\n function readDirectoryWorker(dirName) {\n const dir = getDir(dirName);\n if (dir.requestedRead) {\n return;\n }\n dir.requestedRead = true;\n const result = env.fs?.readDirectory(uriConverter.asUri(dirName || '.'));\n if (typeof result === 'object' && 'then' in result) {\n const promise = result;\n promises.add(promise);\n result.then(result => {\n promises.delete(promise);\n if (onReadDirectoryResult(dirName, dir, result)) {\n version++;\n }\n });\n }\n else {\n onReadDirectoryResult(dirName, dir, result ?? []);\n }\n }\n function onReadDirectoryResult(dirName, dir, result) {\n // See https://github.com/microsoft/TypeScript/blob/e1a9290051a3b0cbdfbadc3adbcc155a4641522a/src/compiler/sys.ts#L1853-L1857\n result = result.filter(([name]) => name !== '.' && name !== '..');\n let updated = false;\n for (const [name, _fileType] of result) {\n let fileType = _fileType;\n if (fileType === 64) {\n const stat = env.fs?.stat(uriConverter.asUri(dirName + '/' + name));\n if (typeof stat === 'object' && 'then' in stat) {\n const promise = stat;\n promises.add(promise);\n stat.then(stat => {\n promises.delete(promise);\n if (stat?.type === 1) {\n let file = dir.files.get(normalizeFileId(name));\n if (!file) {\n dir.files.set(normalizeFileId(name), file = {\n name,\n requestedStat: false,\n requestedText: false,\n });\n }\n if (stat.type !== file.stat?.type || stat.mtime !== file.stat?.mtime) {\n version++;\n }\n file.stat = stat;\n file.requestedStat = true;\n }\n else if (stat?.type === 2) {\n const childDir = getDirFromDir(dir, name);\n if (!childDir.exists) {\n childDir.exists = true;\n version++;\n }\n }\n });\n }\n else if (stat) {\n fileType = stat.type;\n }\n }\n if (fileType === 1) {\n let file = dir.files.get(normalizeFileId(name));\n if (!file) {\n dir.files.set(normalizeFileId(name), file = {\n name,\n requestedStat: false,\n requestedText: false,\n });\n }\n if (!file.stat) {\n file.stat = {\n type: 1,\n mtime: 0,\n ctime: 0,\n size: 0,\n };\n updated = true;\n }\n }\n else if (fileType === 2) {\n const childDir = getDirFromDir(dir, name);\n if (!childDir.exists) {\n childDir.exists = true;\n updated = true;\n }\n }\n }\n return updated;\n }\n function getDir(dirName, markExists = false) {\n const dirNames = [];\n let currentDirPath = dirName;\n let currentDirName = path.basename(currentDirPath);\n let lastDirPath;\n while (lastDirPath !== currentDirPath) {\n lastDirPath = currentDirPath;\n dirNames.push(currentDirName);\n currentDirPath = path.dirname(currentDirPath);\n currentDirName = path.basename(currentDirPath);\n }\n let currentDir = root;\n for (let i = dirNames.length - 1; i >= 0; i--) {\n const nextDirName = dirNames[i];\n currentDir = getDirFromDir(currentDir, nextDirName);\n if (markExists && !currentDir.exists) {\n currentDir.exists = true;\n version++;\n }\n }\n return currentDir;\n }\n function getDirFromDir(dir, name) {\n let target = dir.dirs.get(normalizeFileId(name));\n if (!target) {\n dir.dirs.set(normalizeFileId(name), target = {\n name,\n dirs: new Map(),\n files: new Map(),\n });\n }\n return target;\n }\n function normalizeFileId(fileName) {\n return caseSensitive ? fileName : fileName.toLowerCase();\n }\n}\n//# sourceMappingURL=createSys.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/common\"), exports);\n__exportStar(require(\"./lib/node/decorateLanguageServiceHost\"), exports);\n__exportStar(require(\"./lib/node/decorateProgram\"), exports);\n__exportStar(require(\"./lib/node/proxyCreateProgram\"), exports);\n__exportStar(require(\"./lib/node/proxyLanguageService\"), exports);\n__exportStar(require(\"./lib/protocol/createProject\"), exports);\n__exportStar(require(\"./lib/protocol/createSys\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTypeScriptLS = createTypeScriptLS;\nconst language_service_1 = require(\"@volar/language-service\");\nconst typescript_1 = require(\"@volar/typescript\");\nconst utilities_1 = require(\"@volar/typescript/lib/typescript/utilities\");\nconst path = require(\"path-browserify\");\nconst vscode = require(\"vscode-languageserver\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nconst fsFileSnapshots = (0, language_service_1.createUriMap)();\nasync function createTypeScriptLS(ts, tsLocalized, tsconfig, server, serviceEnv, workspaceFolder, uriConverter, create) {\n let commandLine;\n let projectVersion = 0;\n const getCurrentDirectory = () => uriConverter.asFileName(workspaceFolder);\n const sys = (0, typescript_1.createSys)(ts.sys, serviceEnv, getCurrentDirectory, uriConverter);\n const projectHost = {\n getCurrentDirectory,\n getProjectVersion() {\n return projectVersion.toString();\n },\n getScriptFileNames() {\n return commandLine.fileNames;\n },\n getCompilationSettings() {\n return commandLine.options;\n },\n getLocalizedDiagnosticMessages: tsLocalized ? () => tsLocalized : undefined,\n getProjectReferences() {\n return commandLine.projectReferences;\n },\n };\n const { languagePlugins, setup } = await create({\n env: serviceEnv,\n configFileName: typeof tsconfig === 'string' ? tsconfig : undefined,\n projectHost,\n sys,\n uriConverter,\n });\n const unsavedRootFileUris = (0, language_service_1.createUriMap)();\n const disposables = [\n server.documents.onDidOpen(({ document }) => updateFsCacheFromSyncedDocument(document)),\n server.documents.onDidSave(({ document }) => updateFsCacheFromSyncedDocument(document)),\n server.documents.onDidChangeContent(() => projectVersion++),\n serviceEnv.onDidChangeWatchedFiles?.(async ({ changes }) => {\n const createdOrDeleted = changes.some(change => change.type !== vscode.FileChangeType.Changed);\n if (createdOrDeleted) {\n await updateCommandLine();\n }\n projectVersion++;\n }),\n server.documents.onDidOpen(async ({ document }) => {\n const uri = vscode_uri_1.URI.parse(document.uri);\n const isWorkspaceFile = workspaceFolder.scheme === uri.scheme;\n if (!isWorkspaceFile) {\n return;\n }\n const stat = await serviceEnv.fs?.stat(uri);\n const isUnsaved = stat?.type !== 1;\n if (isUnsaved) {\n const lastProjectVersion = projectVersion;\n await updateCommandLine();\n if (lastProjectVersion !== projectVersion) {\n unsavedRootFileUris.set(uri, true);\n }\n }\n }),\n server.documents.onDidClose(async ({ document }) => {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (unsavedRootFileUris.has(uri)) {\n unsavedRootFileUris.delete(uri);\n await updateCommandLine();\n }\n }),\n ].filter(d => !!d);\n await updateCommandLine();\n const language = (0, language_service_1.createLanguage)([\n { getLanguageId: uri => server.documents.get(uri)?.languageId },\n ...languagePlugins,\n { getLanguageId: uri => (0, typescript_1.resolveFileLanguageId)(uri.path) },\n ], (0, language_service_1.createUriMap)(sys.useCaseSensitiveFileNames), (uri, includeFsFiles) => {\n const syncedDocument = server.documents.get(uri);\n let snapshot;\n if (syncedDocument) {\n snapshot = syncedDocument.getSnapshot();\n }\n else if (includeFsFiles) {\n const cache = fsFileSnapshots.get(uri);\n const fileName = uriConverter.asFileName(uri);\n const modifiedTime = sys.getModifiedTime?.(fileName)?.valueOf();\n if (!cache || cache[0] !== modifiedTime) {\n if (sys.fileExists(fileName)) {\n const text = sys.readFile(fileName);\n const snapshot = text !== undefined ? ts.ScriptSnapshot.fromString(text) : undefined;\n fsFileSnapshots.set(uri, [modifiedTime, snapshot]);\n }\n else {\n fsFileSnapshots.set(uri, [modifiedTime, undefined]);\n }\n }\n snapshot = fsFileSnapshots.get(uri)?.[1];\n }\n if (snapshot) {\n language.scripts.set(uri, snapshot);\n }\n else {\n language.scripts.delete(uri);\n }\n });\n const project = {\n typescript: {\n configFileName: typeof tsconfig === 'string' ? tsconfig : undefined,\n sys,\n uriConverter,\n ...(0, typescript_1.createLanguageServiceHost)(ts, sys, language, s => uriConverter.asUri(s), projectHost),\n },\n };\n setup?.({ language, project });\n const languageService = (0, language_service_1.createLanguageService)(language, server.languageServicePlugins, serviceEnv, project);\n return {\n languageService,\n tryAddFile(fileName) {\n if (!commandLine.fileNames.includes(fileName)) {\n commandLine.fileNames.push(fileName);\n projectVersion++;\n }\n },\n dispose: () => {\n sys.dispose();\n languageService?.dispose();\n disposables.forEach(({ dispose }) => dispose());\n disposables.length = 0;\n },\n getCommandLine: () => commandLine,\n };\n function updateFsCacheFromSyncedDocument(document) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n const fileName = uriConverter.asFileName(uri);\n if (fsFileSnapshots.has(uri) || sys.fileExists(fileName)) {\n const modifiedTime = sys.getModifiedTime?.(fileName);\n fsFileSnapshots.set(uri, [modifiedTime?.valueOf(), document.getSnapshot()]);\n }\n }\n async function updateCommandLine() {\n const oldFileNames = new Set(commandLine?.fileNames ?? []);\n commandLine = await parseConfig(ts, sys, uriConverter.asFileName(workspaceFolder), tsconfig, languagePlugins.map(plugin => plugin.typescript?.extraFileExtensions ?? []).flat());\n const newFileNames = new Set(commandLine.fileNames);\n if (oldFileNames.size !== newFileNames.size || [...oldFileNames].some(fileName => !newFileNames.has(fileName))) {\n projectVersion++;\n }\n }\n async function parseConfig(ts, sys, workspacePath, tsconfig, extraFileExtensions) {\n let commandLine = {\n errors: [],\n fileNames: [],\n options: {},\n };\n let sysVersion;\n let newSysVersion = await sys.sync();\n while (sysVersion !== newSysVersion) {\n sysVersion = newSysVersion;\n try {\n commandLine = parseConfigWorker(ts, sys, workspacePath, tsconfig, extraFileExtensions);\n }\n catch {\n // will be failed if web fs host first result not ready\n }\n newSysVersion = await sys.sync();\n }\n return commandLine;\n }\n function parseConfigWorker(ts, _host, workspacePath, tsconfig, extraFileExtensions) {\n let content = {\n errors: [],\n fileNames: [],\n options: {},\n };\n const maybeUnsavedFileNames = server.documents.all()\n .map(document => vscode_uri_1.URI.parse(document.uri))\n .filter(uri => uri.scheme === workspaceFolder.scheme)\n .map(uri => uriConverter.asFileName(uri));\n const host = {\n ..._host,\n readDirectory(rootDir, extensions, excludes, includes, depth) {\n const fsFiles = _host.readDirectory(rootDir, extensions, excludes, includes, depth);\n const unsavedFiles = (0, utilities_1.matchFiles)(rootDir, extensions, excludes, includes, sys.useCaseSensitiveFileNames, getCurrentDirectory(), depth, dirPath => {\n dirPath = dirPath.replace(/\\\\/g, '/');\n const files = [];\n const dirs = [];\n for (const fileName of maybeUnsavedFileNames) {\n const match = sys.useCaseSensitiveFileNames\n ? fileName.startsWith(dirPath + '/')\n : fileName.toLowerCase().startsWith(dirPath.toLowerCase() + '/');\n if (match) {\n const name = fileName.slice(dirPath.length + 1);\n if (name.includes('/')) {\n const dir = name.split('/')[0];\n if (!dirs.includes(dir)) {\n dirs.push(dir);\n }\n }\n else {\n files.push(name);\n }\n }\n }\n return {\n files,\n directories: dirs,\n };\n }, path => path);\n if (!unsavedFiles.length) {\n return fsFiles;\n }\n return [...new Set([...fsFiles, ...unsavedFiles])];\n },\n };\n if (typeof tsconfig === 'string') {\n const config = ts.readJsonConfigFile(tsconfig, host.readFile);\n content = ts.parseJsonSourceFileConfigFileContent(config, host, path.dirname(tsconfig), {}, tsconfig, undefined, extraFileExtensions);\n }\n else {\n content = ts.parseJsonConfigFileContent({ files: [] }, host, workspacePath, tsconfig, workspacePath + '/jsconfig.json', undefined, extraFileExtensions);\n }\n // fix https://github.com/johnsoncodehk/volar/issues/1786\n // https://github.com/microsoft/TypeScript/issues/30457\n // patching ts server broke with outDir + rootDir + composite/incremental\n content.options.outDir = undefined;\n content.fileNames = content.fileNames.map(fileName => fileName.replace(/\\\\/g, '/'));\n return content;\n }\n}\n//# sourceMappingURL=typescriptProjectLs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTypeScriptProject = createTypeScriptProject;\nexports.createUriConverter = createUriConverter;\nexports.sortTSConfigs = sortTSConfigs;\nexports.isFileInDir = isFileInDir;\nexports.getWorkspaceFolder = getWorkspaceFolder;\nconst language_service_1 = require(\"@volar/language-service\");\nconst path = require(\"path-browserify\");\nconst vscode = require(\"vscode-languageserver\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nconst inferredCompilerOptions_1 = require(\"./inferredCompilerOptions\");\nconst simpleProject_1 = require(\"./simpleProject\");\nconst typescriptProjectLs_1 = require(\"./typescriptProjectLs\");\nconst rootTsConfigNames = ['tsconfig.json', 'jsconfig.json'];\nfunction createTypeScriptProject(ts, tsLocalized, create) {\n let server;\n let uriConverter;\n const configProjects = (0, language_service_1.createUriMap)();\n const inferredProjects = (0, language_service_1.createUriMap)();\n const rootTsConfigs = new Set();\n const searchedDirs = new Set();\n return {\n setup(_server) {\n uriConverter = createUriConverter(_server.workspaceFolders.all);\n server = _server;\n server.fileWatcher.onDidChangeWatchedFiles(({ changes }) => {\n const tsConfigChanges = changes.filter(change => rootTsConfigNames.includes(change.uri.substring(change.uri.lastIndexOf('/') + 1)));\n for (const change of tsConfigChanges) {\n const changeUri = vscode_uri_1.URI.parse(change.uri);\n const changeFileName = uriConverter.asFileName(changeUri);\n if (change.type === vscode.FileChangeType.Created) {\n rootTsConfigs.add(changeFileName);\n }\n else if ((change.type === vscode.FileChangeType.Changed || change.type === vscode.FileChangeType.Deleted)\n && configProjects.has(changeUri)) {\n if (change.type === vscode.FileChangeType.Deleted) {\n rootTsConfigs.delete(changeFileName);\n }\n const project = configProjects.get(changeUri);\n configProjects.delete(changeUri);\n project?.then(project => project.dispose());\n }\n }\n server.languageFeatures.requestRefresh(!!tsConfigChanges.length);\n });\n },\n async getLanguageService(uri) {\n const tsconfig = await findMatchTSConfig(server, uri);\n if (tsconfig) {\n const project = await getOrCreateConfiguredProject(server, tsconfig);\n return project.languageService;\n }\n const workspaceFolder = getWorkspaceFolder(uri, server.workspaceFolders);\n const project = await getOrCreateInferredProject(server, uri, workspaceFolder);\n return project.languageService;\n },\n async getExistingLanguageServices() {\n const projects = await Promise.all([\n ...configProjects.values() ?? [],\n ...inferredProjects.values() ?? [],\n ]);\n return projects.map(project => project.languageService);\n },\n reload() {\n for (const project of [\n ...configProjects.values() ?? [],\n ...inferredProjects.values() ?? [],\n ]) {\n project.then(p => p.dispose());\n }\n configProjects.clear();\n inferredProjects.clear();\n },\n };\n async function findMatchTSConfig(server, uri) {\n const fileName = uriConverter.asFileName(uri);\n let dir = path.dirname(fileName);\n while (true) {\n if (searchedDirs.has(dir)) {\n break;\n }\n searchedDirs.add(dir);\n for (const tsConfigName of rootTsConfigNames) {\n const tsconfigPath = path.join(dir, tsConfigName);\n if ((await server.fileSystem.stat?.(uriConverter.asUri(tsconfigPath)))?.type === language_service_1.FileType.File) {\n rootTsConfigs.add(tsconfigPath);\n }\n }\n dir = path.dirname(dir);\n }\n await prepareClosestootCommandLine();\n return await findDirectIncludeTsconfig() ?? await findIndirectReferenceTsconfig();\n async function prepareClosestootCommandLine() {\n let matches = [];\n for (const rootTsConfig of rootTsConfigs) {\n if (isFileInDir(fileName, path.dirname(rootTsConfig))) {\n matches.push(rootTsConfig);\n }\n }\n matches = matches.sort((a, b) => sortTSConfigs(fileName, a, b));\n if (matches.length) {\n await getCommandLine(matches[0]);\n }\n }\n function findIndirectReferenceTsconfig() {\n return findTSConfig(async (tsconfig) => {\n const tsconfigUri = uriConverter.asUri(tsconfig);\n const project = await configProjects.get(tsconfigUri);\n const languageService = project?.languageService.context.inject('typescript/languageService');\n return !!languageService?.getProgram()?.getSourceFile(fileName);\n });\n }\n function findDirectIncludeTsconfig() {\n return findTSConfig(async (tsconfig) => {\n const map = (0, language_service_1.createUriMap)();\n const commandLine = await getCommandLine(tsconfig);\n for (const fileName of commandLine?.fileNames ?? []) {\n const uri = uriConverter.asUri(fileName);\n map.set(uri, true);\n }\n return map.has(uri);\n });\n }\n async function findTSConfig(match) {\n const checked = new Set();\n for (const rootTsConfig of [...rootTsConfigs].sort((a, b) => sortTSConfigs(fileName, a, b))) {\n const tsconfigUri = uriConverter.asUri(rootTsConfig);\n const project = await configProjects.get(tsconfigUri);\n if (project) {\n let chains = await getReferencesChains(project.getCommandLine(), rootTsConfig, []);\n // This is to be consistent with tsserver behavior\n chains = chains.reverse();\n for (const chain of chains) {\n for (let i = chain.length - 1; i >= 0; i--) {\n const tsconfig = chain[i];\n if (checked.has(tsconfig)) {\n continue;\n }\n checked.add(tsconfig);\n if (await match(tsconfig)) {\n return tsconfig;\n }\n }\n }\n }\n }\n }\n async function getReferencesChains(commandLine, tsConfig, before) {\n if (commandLine.projectReferences?.length) {\n const newChains = [];\n for (const projectReference of commandLine.projectReferences) {\n let tsConfigPath = projectReference.path.replace(/\\\\/g, '/');\n // fix https://github.com/johnsoncodehk/volar/issues/712\n if ((await server.fileSystem.stat?.(uriConverter.asUri(tsConfigPath)))?.type === language_service_1.FileType.File) {\n const newTsConfigPath = path.join(tsConfigPath, 'tsconfig.json');\n const newJsConfigPath = path.join(tsConfigPath, 'jsconfig.json');\n if ((await server.fileSystem.stat?.(uriConverter.asUri(newTsConfigPath)))?.type === language_service_1.FileType.File) {\n tsConfigPath = newTsConfigPath;\n }\n else if ((await server.fileSystem.stat?.(uriConverter.asUri(newJsConfigPath)))?.type === language_service_1.FileType.File) {\n tsConfigPath = newJsConfigPath;\n }\n }\n const beforeIndex = before.indexOf(tsConfigPath); // cycle\n if (beforeIndex >= 0) {\n newChains.push(before.slice(0, Math.max(beforeIndex, 1)));\n }\n else {\n const referenceCommandLine = await getCommandLine(tsConfigPath);\n if (referenceCommandLine) {\n for (const chain of await getReferencesChains(referenceCommandLine, tsConfigPath, [...before, tsConfig])) {\n newChains.push(chain);\n }\n }\n }\n }\n return newChains;\n }\n else {\n return [[...before, tsConfig]];\n }\n }\n async function getCommandLine(tsConfig) {\n const project = await getOrCreateConfiguredProject(server, tsConfig);\n return project?.getCommandLine();\n }\n }\n function getOrCreateConfiguredProject(server, tsconfig) {\n tsconfig = tsconfig.replace(/\\\\/g, '/');\n const tsconfigUri = uriConverter.asUri(tsconfig);\n let projectPromise = configProjects.get(tsconfigUri);\n if (!projectPromise) {\n const workspaceFolder = getWorkspaceFolder(tsconfigUri, server.workspaceFolders);\n const serviceEnv = (0, simpleProject_1.createLanguageServiceEnvironment)(server, [workspaceFolder]);\n projectPromise = (0, typescriptProjectLs_1.createTypeScriptLS)(ts, tsLocalized, tsconfig, server, serviceEnv, workspaceFolder, uriConverter, create);\n configProjects.set(tsconfigUri, projectPromise);\n }\n return projectPromise;\n }\n async function getOrCreateInferredProject(server, uri, workspaceFolder) {\n if (!inferredProjects.has(workspaceFolder)) {\n inferredProjects.set(workspaceFolder, (async () => {\n const inferOptions = await (0, inferredCompilerOptions_1.getInferredCompilerOptions)(server);\n const serviceEnv = (0, simpleProject_1.createLanguageServiceEnvironment)(server, [workspaceFolder]);\n return (0, typescriptProjectLs_1.createTypeScriptLS)(ts, tsLocalized, inferOptions, server, serviceEnv, workspaceFolder, uriConverter, create);\n })());\n }\n const project = await inferredProjects.get(workspaceFolder);\n project.tryAddFile(uriConverter.asFileName(uri));\n return project;\n }\n}\nfunction createUriConverter(rootFolders) {\n const encodeds = new Map();\n const isFileScheme = rootFolders.every(folder => folder.scheme === 'file');\n const fragmentPrefix = '/' + encodeURIComponent('#');\n return {\n asFileName,\n asUri,\n };\n function asFileName(parsed) {\n if (rootFolders.every(folder => folder.scheme === parsed.scheme && folder.authority === parsed.authority)) {\n if (isFileScheme) {\n return parsed.fsPath.replace(/\\\\/g, '/');\n }\n else {\n return parsed.path;\n }\n }\n const encoded = encodeURIComponent(`${parsed.scheme}://${parsed.authority}`);\n encodeds.set(encoded, parsed);\n const fragment = parsed.fragment ? fragmentPrefix + encodeURIComponent(parsed.fragment) : '';\n return `/${encoded}${parsed.path}${fragment}`;\n }\n function asUri(fileName) {\n for (const [encoded, uri] of encodeds) {\n const prefix = `/${encoded}`;\n if (fileName === prefix) {\n return vscode_uri_1.URI.from({\n scheme: uri.scheme,\n authority: uri.authority,\n });\n }\n if (uri.authority) {\n if (fileName.startsWith(prefix + '/')) {\n return vscode_uri_1.URI.from({\n scheme: uri.scheme,\n authority: uri.authority,\n ...getComponents(fileName, prefix.length),\n });\n }\n }\n else {\n if (fileName.startsWith(prefix)) {\n return vscode_uri_1.URI.from({\n scheme: uri.scheme,\n authority: uri.authority,\n ...getComponents(fileName, prefix.length),\n });\n }\n }\n }\n if (!isFileScheme) {\n for (const folder of rootFolders) {\n return vscode_uri_1.URI.parse(`${folder.scheme}://${folder.authority}${fileName}`);\n }\n }\n return vscode_uri_1.URI.file(fileName);\n }\n function getComponents(fileName, prefixLength) {\n // Fragment is present when the fileName contains the fragment prefix and is not followed by a slash.\n const fragmentPosition = fileName.lastIndexOf(fragmentPrefix);\n if (fragmentPosition >= prefixLength) {\n if (fileName.indexOf('/', fragmentPosition + fragmentPrefix.length) < 0) {\n return {\n path: fileName.substring(prefixLength, fragmentPosition),\n fragment: decodeURIComponent(fileName.substring(fragmentPosition + fragmentPrefix.length)),\n };\n }\n }\n return {\n path: fileName.substring(prefixLength),\n };\n }\n}\nfunction sortTSConfigs(file, a, b) {\n const inA = isFileInDir(file, path.dirname(a));\n const inB = isFileInDir(file, path.dirname(b));\n if (inA !== inB) {\n const aWeight = inA ? 1 : 0;\n const bWeight = inB ? 1 : 0;\n return bWeight - aWeight;\n }\n const aLength = a.split('/').length;\n const bLength = b.split('/').length;\n if (aLength === bLength) {\n const aWeight = path.basename(a) === 'tsconfig.json' ? 1 : 0;\n const bWeight = path.basename(b) === 'tsconfig.json' ? 1 : 0;\n return bWeight - aWeight;\n }\n return bLength - aLength;\n}\nfunction isFileInDir(fileName, dir) {\n const relative = path.relative(dir, fileName);\n return !!relative && !relative.startsWith('..') && !path.isAbsolute(relative);\n}\nfunction getWorkspaceFolder(uri, workspaceFolders) {\n while (true) {\n if (workspaceFolders.has(uri)) {\n return uri;\n }\n const next = uri.with({ path: uri.path.substring(0, uri.path.lastIndexOf('/')) });\n if (next.path === uri.path) {\n break;\n }\n uri = next;\n }\n for (const folder of workspaceFolders.all) {\n return folder;\n }\n return uri.with({ path: '/' });\n}\n//# sourceMappingURL=typescriptProject.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConnection = createConnection;\nexports.createServer = createServer;\nexports.loadTsdkByPath = loadTsdkByPath;\nconst vscode = require(\"vscode-languageserver/node\");\nconst http_1 = require(\"./lib/fileSystemProviders/http\");\nconst node_1 = require(\"./lib/fileSystemProviders/node\");\nconst server_1 = require(\"./lib/server\");\n__exportStar(require(\"vscode-languageserver/node\"), exports);\n__exportStar(require(\"./index\"), exports);\n__exportStar(require(\"./lib/project/simpleProject\"), exports);\n__exportStar(require(\"./lib/project/typescriptProject\"), exports);\n__exportStar(require(\"./lib/server\"), exports);\nfunction createConnection() {\n return vscode.createConnection(vscode.ProposedFeatures.all);\n}\nfunction createServer(connection) {\n const server = (0, server_1.createServerBase)(connection, {\n timer: {\n setImmediate: setImmediate,\n },\n });\n server.fileSystem.install('file', node_1.provider);\n server.fileSystem.install('http', http_1.provider);\n server.fileSystem.install('https', http_1.provider);\n server.onInitialized(() => (0, http_1.listenEditorSettings)(server));\n return server;\n}\nfunction loadTsdkByPath(tsdk, locale) {\n locale = locale?.toLowerCase();\n // webpack compatibility\n const _require = eval('require');\n return {\n typescript: loadLib(),\n diagnosticMessages: loadLocalizedDiagnosticMessages(),\n };\n function loadLib() {\n for (const name of ['./typescript.js', './tsserverlibrary.js']) {\n try {\n return _require(_require.resolve(name, { paths: [tsdk] }));\n }\n catch { }\n }\n // for bun\n for (const name of ['typescript.js', 'tsserverlibrary.js']) {\n try {\n return _require(tsdk + '/' + name);\n }\n catch { }\n }\n throw new Error(`Can't find typescript.js or tsserverlibrary.js in ${JSON.stringify(tsdk)}`);\n }\n function loadLocalizedDiagnosticMessages() {\n if (locale === 'en') {\n return;\n }\n try {\n const path = _require.resolve(`./${locale}/diagnosticMessages.generated.json`, { paths: [tsdk] });\n return _require(path);\n }\n catch { }\n }\n}\n//# sourceMappingURL=node.js.map","import type { LanguageServicePlugin } from '@volar/language-service'\nimport { Context, Data, Effect, Layer } from 'effect'\nimport { type Diagnostic } from '@athrio/loom-ast/LoomNode'\nimport type { SemanticToken } from '@athrio/loom-ast/LoomSymbol'\n\nexport class ServiceError extends Data.TaggedError('ServiceError')<{\n readonly service: string\n readonly reason: string\n}> {}\n\nexport interface LanguageService {\n readonly id: string\n readonly displayName: string\n readonly extensions: ReadonlyArray<string>\n readonly plugins: (\n context: LanguageServiceContext,\n ) => Effect.Effect<\n ReadonlyArray<LanguageServicePlugin>,\n ServiceError,\n HostCapabilities\n >\n}\n\nexport class TypescriptSdk extends Context.Service<TypescriptSdk>()('TypescriptSdk', {\n make: Effect.die(\n 'TypescriptSdk must be provided by the host',\n ) as Effect.Effect<typeof import('typescript')>,\n}) {\n static readonly layer = Layer.effect(this, this.make)\n}\n\nexport interface FrameLocation {\n readonly path: string\n readonly range: {\n readonly start: { readonly line: number; readonly character: number }\n readonly end: { readonly line: number; readonly character: number }\n }\n}\n\nexport interface FrameToken {\n readonly range: FrameLocation['range']\n readonly type: SemanticToken\n}\n\nexport interface FrameQueryApi {\n readonly diagnostics: (path: string) => ReadonlyArray<Diagnostic>\n readonly definition: (path: string, offset: number) => FrameLocation | undefined\n readonly references: (path: string, offset: number) => ReadonlyArray<FrameLocation>\n readonly rename: (path: string, offset: number) => ReadonlyArray<FrameLocation>\n readonly renameRange: (path: string, offset: number) => FrameLocation | undefined\n readonly navigationRange: (\n path: string,\n offset: number,\n ) => FrameLocation | undefined\n readonly semanticTokens: (path: string) => ReadonlyArray<FrameToken>\n}\n\nexport class FrameQuery extends Context.Service<FrameQuery>()('FrameQuery', {\n make: Effect.die(\n 'FrameQuery must be provided by the host',\n ) as Effect.Effect<FrameQueryApi>,\n}) {\n static readonly layer = Layer.effect(this, this.make)\n}\n\nexport interface ComposedFile {\n readonly path: string\n readonly content: string\n readonly loomPath: string\n readonly rootId: string\n readonly heading: FrameLocation\n}\n\nexport interface CompositionApi {\n readonly rootsFor: (path: string) => ReadonlyArray<ComposedFile>\n}\n\nexport class Composition extends Context.Service<Composition>()('Composition', {\n make: Effect.die(\n 'Composition must be provided by the host',\n ) as Effect.Effect<CompositionApi>,\n}) {\n static readonly layer = Layer.effect(this, this.make)\n}\n\nexport type HostCapabilities = TypescriptSdk | FrameQuery | Composition\n\nexport interface LanguageServiceContext {\n readonly settings: Record<string, unknown>\n}\n\nexport const isLanguageService = (value: unknown): value is LanguageService =>\n typeof value === 'object' &&\n value !== null &&\n typeof (value as LanguageService).id === 'string' &&\n typeof (value as LanguageService).displayName === 'string' &&\n Array.isArray((value as LanguageService).extensions) &&\n typeof (value as LanguageService).plugins === 'function'\n\nexport const defineLanguageService = (service: LanguageService): LanguageService => {\n if (!isLanguageService(service)) {\n throw new Error(\n 'defineLanguageService: the value does not satisfy the LanguageService contract',\n )\n }\n return service\n}\n","import { Context, Effect, HashMap, Layer, Option } from 'effect'\nimport type { LanguageService } from './LanguageService'\n\nexport class ActiveLanguages extends Context.Service<ActiveLanguages>()(\n 'ActiveLanguages',\n {\n make: Effect.succeed({ all: [] as ReadonlyArray<LanguageService> }),\n },\n) {\n static readonly layer = Layer.effect(this, this.make)\n}\n\nexport class LanguageRegistry extends Context.Service<LanguageRegistry>()(\n 'LanguageRegistry',\n {\n make: Effect.gen(function* () {\n const { all } = yield* ActiveLanguages\n const byId = HashMap.fromIterable(all.map((s) => [s.id, s] as const))\n const byExtension = HashMap.fromIterable(\n all.flatMap((s) => s.extensions.map((e) => [e, s] as const)),\n )\n return {\n byId: (id: string): Option.Option<LanguageService> =>\n HashMap.get(byId, id),\n byExtension: (ext: string): Option.Option<LanguageService> =>\n HashMap.get(byExtension, ext),\n all,\n }\n }),\n },\n) {\n static readonly layer = Layer.effect(this, this.make)\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _ral;\nfunction RAL() {\n if (_ral === undefined) {\n throw new Error(\"No runtime abstraction layer installed\");\n }\n return _ral;\n}\n(function (RAL) {\n function install(ral) {\n if (ral === undefined) {\n throw new Error(\"No runtime abstraction layer provided\");\n }\n _ral = ral;\n }\n RAL.install = install;\n})(RAL || (RAL = {}));\nexports.default = RAL;\n//# sourceMappingURL=ral.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.config = exports.loadMessageBundle = exports.localize = exports.format = exports.setPseudo = exports.isPseudo = exports.isDefined = exports.BundleFormat = exports.MessageFormat = void 0;\nvar ral_1 = require(\"./ral\");\nvar MessageFormat;\n(function (MessageFormat) {\n MessageFormat[\"file\"] = \"file\";\n MessageFormat[\"bundle\"] = \"bundle\";\n MessageFormat[\"both\"] = \"both\";\n})(MessageFormat = exports.MessageFormat || (exports.MessageFormat = {}));\nvar BundleFormat;\n(function (BundleFormat) {\n // the nls.bundle format\n BundleFormat[\"standalone\"] = \"standalone\";\n BundleFormat[\"languagePack\"] = \"languagePack\";\n})(BundleFormat = exports.BundleFormat || (exports.BundleFormat = {}));\nvar LocalizeInfo;\n(function (LocalizeInfo) {\n function is(value) {\n var candidate = value;\n return candidate && isDefined(candidate.key) && isDefined(candidate.comment);\n }\n LocalizeInfo.is = is;\n})(LocalizeInfo || (LocalizeInfo = {}));\nfunction isDefined(value) {\n return typeof value !== 'undefined';\n}\nexports.isDefined = isDefined;\nexports.isPseudo = false;\nfunction setPseudo(pseudo) {\n exports.isPseudo = pseudo;\n}\nexports.setPseudo = setPseudo;\nfunction format(message, args) {\n var result;\n if (exports.isPseudo) {\n // FF3B and FF3D is the Unicode zenkaku representation for [ and ]\n message = '\\uFF3B' + message.replace(/[aouei]/g, '$&$&') + '\\uFF3D';\n }\n if (args.length === 0) {\n result = message;\n }\n else {\n result = message.replace(/\\{(\\d+)\\}/g, function (match, rest) {\n var index = rest[0];\n var arg = args[index];\n var replacement = match;\n if (typeof arg === 'string') {\n replacement = arg;\n }\n else if (typeof arg === 'number' || typeof arg === 'boolean' || arg === void 0 || arg === null) {\n replacement = String(arg);\n }\n return replacement;\n });\n }\n return result;\n}\nexports.format = format;\nfunction localize(_key, message) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n return format(message, args);\n}\nexports.localize = localize;\nfunction loadMessageBundle(file) {\n return (0, ral_1.default)().loadMessageBundle(file);\n}\nexports.loadMessageBundle = loadMessageBundle;\nfunction config(opts) {\n return (0, ral_1.default)().config(opts);\n}\nexports.config = config;\n//# sourceMappingURL=common.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.config = exports.loadMessageBundle = exports.BundleFormat = exports.MessageFormat = void 0;\nvar path = require(\"path\");\nvar fs = require(\"fs\");\nvar ral_1 = require(\"../common/ral\");\nvar common_1 = require(\"../common/common\");\nvar common_2 = require(\"../common/common\");\nObject.defineProperty(exports, \"MessageFormat\", { enumerable: true, get: function () { return common_2.MessageFormat; } });\nObject.defineProperty(exports, \"BundleFormat\", { enumerable: true, get: function () { return common_2.BundleFormat; } });\nvar toString = Object.prototype.toString;\nfunction isNumber(value) {\n return toString.call(value) === '[object Number]';\n}\nfunction isString(value) {\n return toString.call(value) === '[object String]';\n}\nfunction isBoolean(value) {\n return value === true || value === false;\n}\nfunction readJsonFileSync(filename) {\n return JSON.parse(fs.readFileSync(filename, 'utf8'));\n}\nvar resolvedBundles;\nvar options;\nfunction initializeSettings() {\n options = { locale: undefined, language: undefined, languagePackSupport: false, cacheLanguageResolution: true, messageFormat: common_1.MessageFormat.bundle };\n if (isString(process.env.VSCODE_NLS_CONFIG)) {\n try {\n var vscodeOptions_1 = JSON.parse(process.env.VSCODE_NLS_CONFIG);\n var language = void 0;\n if (vscodeOptions_1.availableLanguages) {\n var value = vscodeOptions_1.availableLanguages['*'];\n if (isString(value)) {\n language = value;\n }\n }\n if (isString(vscodeOptions_1.locale)) {\n options.locale = vscodeOptions_1.locale.toLowerCase();\n }\n if (language === undefined) {\n options.language = options.locale;\n }\n else if (language !== 'en') {\n options.language = language;\n }\n if (isBoolean(vscodeOptions_1._languagePackSupport)) {\n options.languagePackSupport = vscodeOptions_1._languagePackSupport;\n }\n if (isString(vscodeOptions_1._cacheRoot)) {\n options.cacheRoot = vscodeOptions_1._cacheRoot;\n }\n if (isString(vscodeOptions_1._languagePackId)) {\n options.languagePackId = vscodeOptions_1._languagePackId;\n }\n if (isString(vscodeOptions_1._translationsConfigFile)) {\n options.translationsConfigFile = vscodeOptions_1._translationsConfigFile;\n try {\n options.translationsConfig = readJsonFileSync(options.translationsConfigFile);\n }\n catch (error) {\n // We can't read the translation config file. Mark the cache as corrupted.\n if (vscodeOptions_1._corruptedFile) {\n var dirname = path.dirname(vscodeOptions_1._corruptedFile);\n fs.exists(dirname, function (exists) {\n if (exists) {\n fs.writeFile(vscodeOptions_1._corruptedFile, 'corrupted', 'utf8', function (err) {\n console.error(err);\n });\n }\n });\n }\n }\n }\n }\n catch (_a) {\n // Do nothing.\n }\n }\n (0, common_1.setPseudo)(options.locale === 'pseudo');\n resolvedBundles = Object.create(null);\n}\ninitializeSettings();\nfunction supportsLanguagePack() {\n return options.languagePackSupport === true && options.cacheRoot !== undefined && options.languagePackId !== undefined && options.translationsConfigFile !== undefined\n && options.translationsConfig !== undefined;\n}\nfunction createScopedLocalizeFunction(messages) {\n return function (key, message) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (isNumber(key)) {\n if (key >= messages.length) {\n console.error(\"Broken localize call found. Index out of bounds. Stacktrace is\\n: \".concat(new Error('').stack));\n return;\n }\n return (0, common_1.format)(messages[key], args);\n }\n else {\n if (isString(message)) {\n console.warn(\"Message \".concat(message, \" didn't get externalized correctly.\"));\n return (0, common_1.format)(message, args);\n }\n else {\n console.error(\"Broken localize call found. Stacktrace is\\n: \".concat(new Error('').stack));\n }\n }\n };\n}\nfunction resolveLanguage(file) {\n var resolvedLanguage;\n if (options.cacheLanguageResolution && resolvedLanguage) {\n resolvedLanguage = resolvedLanguage;\n }\n else {\n if (common_1.isPseudo || !options.language) {\n resolvedLanguage = '.nls.json';\n }\n else {\n var locale = options.language;\n while (locale) {\n var candidate = '.nls.' + locale + '.json';\n if (fs.existsSync(file + candidate)) {\n resolvedLanguage = candidate;\n break;\n }\n else {\n var index = locale.lastIndexOf('-');\n if (index > 0) {\n locale = locale.substring(0, index);\n }\n else {\n resolvedLanguage = '.nls.json';\n locale = null;\n }\n }\n }\n }\n if (options.cacheLanguageResolution) {\n resolvedLanguage = resolvedLanguage;\n }\n }\n return file + resolvedLanguage;\n}\nfunction findInTheBoxBundle(root) {\n var language = options.language;\n while (language) {\n var candidate = path.join(root, \"nls.bundle.\".concat(language, \".json\"));\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n else {\n var index = language.lastIndexOf('-');\n if (index > 0) {\n language = language.substring(0, index);\n }\n else {\n language = undefined;\n }\n }\n }\n // Test if we can reslove the default bundle.\n if (language === undefined) {\n var candidate = path.join(root, 'nls.bundle.json');\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n return undefined;\n}\nfunction mkdir(directory) {\n try {\n fs.mkdirSync(directory);\n }\n catch (err) {\n if (err.code === 'EEXIST') {\n return;\n }\n else if (err.code === 'ENOENT') {\n var parent = path.dirname(directory);\n if (parent !== directory) {\n mkdir(parent);\n fs.mkdirSync(directory);\n }\n }\n else {\n throw err;\n }\n }\n}\nfunction createDefaultNlsBundle(folder) {\n var metaData = readJsonFileSync(path.join(folder, 'nls.metadata.json'));\n var result = Object.create(null);\n for (var module_1 in metaData) {\n var entry = metaData[module_1];\n result[module_1] = entry.messages;\n }\n return result;\n}\nfunction createNLSBundle(header, metaDataPath) {\n var languagePackLocation = options.translationsConfig[header.id];\n if (!languagePackLocation) {\n return undefined;\n }\n var languagePack = readJsonFileSync(languagePackLocation).contents;\n var metaData = readJsonFileSync(path.join(metaDataPath, 'nls.metadata.json'));\n var result = Object.create(null);\n for (var module_2 in metaData) {\n var entry = metaData[module_2];\n var translations = languagePack[\"\".concat(header.outDir, \"/\").concat(module_2)];\n if (translations) {\n var resultMessages = [];\n for (var i = 0; i < entry.keys.length; i++) {\n var messageKey = entry.keys[i];\n var key = isString(messageKey) ? messageKey : messageKey.key;\n var translatedMessage = translations[key];\n if (translatedMessage === undefined) {\n translatedMessage = entry.messages[i];\n }\n resultMessages.push(translatedMessage);\n }\n result[module_2] = resultMessages;\n }\n else {\n result[module_2] = entry.messages;\n }\n }\n return result;\n}\nfunction touch(file) {\n var d = new Date();\n fs.utimes(file, d, d, function () {\n // Do nothing. Ignore\n });\n}\nfunction cacheBundle(key, bundle) {\n resolvedBundles[key] = bundle;\n return bundle;\n}\nfunction loadNlsBundleOrCreateFromI18n(header, bundlePath) {\n var result;\n var bundle = path.join(options.cacheRoot, \"\".concat(header.id, \"-\").concat(header.hash, \".json\"));\n var useMemoryOnly = false;\n var writeBundle = false;\n try {\n result = JSON.parse(fs.readFileSync(bundle, { encoding: 'utf8', flag: 'r' }));\n touch(bundle);\n return result;\n }\n catch (err) {\n if (err.code === 'ENOENT') {\n writeBundle = true;\n }\n else if (err instanceof SyntaxError) {\n // We have a syntax error. So no valid JSON. Use\n console.log(\"Syntax error parsing message bundle: \".concat(err.message, \".\"));\n fs.unlink(bundle, function (err) {\n if (err) {\n console.error(\"Deleting corrupted bundle \".concat(bundle, \" failed.\"));\n }\n });\n useMemoryOnly = true;\n }\n else {\n throw err;\n }\n }\n result = createNLSBundle(header, bundlePath);\n if (!result || useMemoryOnly) {\n return result;\n }\n if (writeBundle) {\n try {\n fs.writeFileSync(bundle, JSON.stringify(result), { encoding: 'utf8', flag: 'wx' });\n }\n catch (err) {\n if (err.code === 'EEXIST') {\n return result;\n }\n throw err;\n }\n }\n return result;\n}\nfunction loadDefaultNlsBundle(bundlePath) {\n try {\n return createDefaultNlsBundle(bundlePath);\n }\n catch (err) {\n console.log(\"Generating default bundle from meta data failed.\", err);\n return undefined;\n }\n}\nfunction loadNlsBundle(header, bundlePath) {\n var result;\n // Core decided to use a language pack. Do the same in the extension\n if (supportsLanguagePack()) {\n try {\n result = loadNlsBundleOrCreateFromI18n(header, bundlePath);\n }\n catch (err) {\n console.log(\"Load or create bundle failed \", err);\n }\n }\n if (!result) {\n // No language pack found, but core is running in language pack mode\n // Don't try to use old in the box bundles since the might be stale\n // Fall right back to the default bundle.\n if (options.languagePackSupport) {\n return loadDefaultNlsBundle(bundlePath);\n }\n var candidate = findInTheBoxBundle(bundlePath);\n if (candidate) {\n try {\n return readJsonFileSync(candidate);\n }\n catch (err) {\n console.log(\"Loading in the box message bundle failed.\", err);\n }\n }\n result = loadDefaultNlsBundle(bundlePath);\n }\n return result;\n}\nfunction tryFindMetaDataHeaderFile(file) {\n var result;\n var dirname = path.dirname(file);\n while (true) {\n result = path.join(dirname, 'nls.metadata.header.json');\n if (fs.existsSync(result)) {\n break;\n }\n var parent = path.dirname(dirname);\n if (parent === dirname) {\n result = undefined;\n break;\n }\n else {\n dirname = parent;\n }\n }\n return result;\n}\nfunction loadMessageBundle(file) {\n if (!file) {\n // No file. We are in dev mode. Return the default\n // localize function.\n return common_1.localize;\n }\n // Remove extension since we load json files.\n var ext = path.extname(file);\n if (ext) {\n file = file.substr(0, file.length - ext.length);\n }\n if (options.messageFormat === common_1.MessageFormat.both || options.messageFormat === common_1.MessageFormat.bundle) {\n var headerFile = tryFindMetaDataHeaderFile(file);\n if (headerFile) {\n var bundlePath = path.dirname(headerFile);\n var bundle = resolvedBundles[bundlePath];\n if (bundle === undefined) {\n try {\n var header = JSON.parse(fs.readFileSync(headerFile, 'utf8'));\n try {\n var nlsBundle = loadNlsBundle(header, bundlePath);\n bundle = cacheBundle(bundlePath, nlsBundle ? { header: header, nlsBundle: nlsBundle } : null);\n }\n catch (err) {\n console.error('Failed to load nls bundle', err);\n bundle = cacheBundle(bundlePath, null);\n }\n }\n catch (err) {\n console.error('Failed to read header file', err);\n bundle = cacheBundle(bundlePath, null);\n }\n }\n if (bundle) {\n var module_3 = file.substr(bundlePath.length + 1).replace(/\\\\/g, '/');\n var messages = bundle.nlsBundle[module_3];\n if (messages === undefined) {\n console.error(\"Messages for file \".concat(file, \" not found. See console for details.\"));\n return function () {\n return 'Messages not found.';\n };\n }\n return createScopedLocalizeFunction(messages);\n }\n }\n }\n if (options.messageFormat === common_1.MessageFormat.both || options.messageFormat === common_1.MessageFormat.file) {\n // Try to load a single file bundle\n try {\n var json = readJsonFileSync(resolveLanguage(file));\n if (Array.isArray(json)) {\n return createScopedLocalizeFunction(json);\n }\n else {\n if ((0, common_1.isDefined)(json.messages) && (0, common_1.isDefined)(json.keys)) {\n return createScopedLocalizeFunction(json.messages);\n }\n else {\n console.error(\"String bundle '\".concat(file, \"' uses an unsupported format.\"));\n return function () {\n return 'File bundle has unsupported format. See console for details';\n };\n }\n }\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n console.error('Failed to load single file bundle', err);\n }\n }\n }\n console.error(\"Failed to load message bundle for file \".concat(file));\n return function () {\n return 'Failed to load message bundle. See console for details.';\n };\n}\nexports.loadMessageBundle = loadMessageBundle;\nfunction config(opts) {\n if (opts) {\n if (isString(opts.locale)) {\n options.locale = opts.locale.toLowerCase();\n options.language = options.locale;\n resolvedBundles = Object.create(null);\n }\n if (opts.messageFormat !== undefined) {\n options.messageFormat = opts.messageFormat;\n }\n if (opts.bundleFormat === common_1.BundleFormat.standalone && options.languagePackSupport === true) {\n options.languagePackSupport = false;\n }\n }\n (0, common_1.setPseudo)(options.locale === 'pseudo');\n return loadMessageBundle;\n}\nexports.config = config;\nral_1.default.install(Object.freeze({\n loadMessageBundle: loadMessageBundle,\n config: config\n}));\n//# sourceMappingURL=main.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getConfigTitle = getConfigTitle;\nexports.isTsDocument = isTsDocument;\nexports.isJsonDocument = isJsonDocument;\nexports.safeCall = safeCall;\nfunction getConfigTitle(document) {\n if (document.languageId === 'javascriptreact') {\n return 'javascript';\n }\n if (document.languageId === 'typescriptreact') {\n return 'typescript';\n }\n return document.languageId;\n}\nfunction isTsDocument(document) {\n return document.languageId === 'javascript'\n || document.languageId === 'typescript'\n || document.languageId === 'javascriptreact'\n || document.languageId === 'typescriptreact';\n}\nfunction isJsonDocument(document) {\n return document.languageId === 'json'\n || document.languageId === 'jsonc';\n}\nfunction safeCall(cb) {\n try {\n return cb();\n }\n catch { }\n}\n//# sourceMappingURL=shared.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = create;\nconst nls = require(\"vscode-nls\");\nconst shared_1 = require(\"../shared\");\nconst localize = nls.loadMessageBundle(); // TODO: not working\nconst directives = [\n {\n value: '@ts-check',\n description: localize('ts-check', 'Enables semantic checking in a JavaScript file. Must be at the top of a file.'),\n },\n {\n value: '@ts-nocheck',\n description: localize('ts-nocheck', 'Disables semantic checking in a JavaScript file. Must be at the top of a file.'),\n },\n {\n value: '@ts-ignore',\n description: localize('ts-ignore', 'Suppresses @ts-check errors on the next line of a file.'),\n },\n {\n value: '@ts-expect-error',\n description: localize('ts-expect-error', 'Suppresses @ts-check errors on the next line of a file, expecting at least one to exist.'),\n },\n];\nfunction create() {\n return {\n name: 'typescript-directive-comment',\n capabilities: {\n completionProvider: {\n triggerCharacters: ['@'],\n },\n },\n create() {\n return {\n provideCompletionItems(document, position) {\n if (!(0, shared_1.isTsDocument)(document)) {\n return;\n }\n const prefix = document.getText({\n start: { line: position.line, character: 0 },\n end: position,\n });\n const match = prefix.match(/^\\s*\\/\\/+\\s?(@[a-zA-Z\\-]*)?$/);\n if (match) {\n const items = directives.map(directive => {\n const item = { label: directive.value };\n item.insertTextFormat = 2;\n item.detail = directive.description;\n const range = {\n start: {\n line: position.line,\n character: Math.max(0, position.character - (match[1] ? match[1].length : 0)),\n },\n end: position,\n };\n item.textEdit = {\n range,\n newText: directive.value,\n };\n return item;\n });\n return {\n isIncomplete: false,\n items,\n };\n }\n },\n };\n },\n };\n}\n//# sourceMappingURL=directiveComment.js.map","'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 {\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-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric 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 identifier, 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// 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 numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\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\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')\n\nconst isPrereleaseIdentifier = (prerelease, identifier) => {\n const identifiers = identifier.split('.')\n if (identifiers.length > prerelease.length) {\n return false\n }\n\n for (let i = 0; i < identifiers.length; i++) {\n if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) {\n return false\n }\n }\n\n return true\n}\n\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 if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\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 (isPrereleaseIdentifier(this.prerelease, identifier)) {\n const prereleaseBase = this.prerelease[identifier.split('.').length]\n if (isNaN(prereleaseBase)) {\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 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\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are prereleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\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 rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\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 compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","'use strict'\n\nconst parse = require('./parse')\nconst constants = require('../internal/constants')\nconst SemVer = require('../classes/semver')\n\nconst truncate = (version, truncation, options) => {\n if (!constants.RELEASE_TYPES.includes(truncation)) {\n return null\n }\n\n const clonedVersion = cloneInputVersion(version, options)\n return clonedVersion && doTruncation(clonedVersion, truncation)\n}\n\nconst cloneInputVersion = (version, options) => {\n const versionStringToParse = (\n version instanceof SemVer ? version.version : version\n )\n\n return parse(versionStringToParse, options)\n}\n\nconst doTruncation = (version, truncation) => {\n if (isPrerelease(truncation)) {\n return version.version\n }\n\n version.prerelease = []\n\n switch (truncation) {\n case 'major':\n version.minor = 0\n version.patch = 0\n break\n case 'minor':\n version.patch = 0\n break\n }\n\n return version.format()\n}\n\nconst isPrerelease = (type) => {\n return type.startsWith('pre')\n}\n\nmodule.exports = truncate\n","'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // strip build metadata so it can't bleed into the version\n range = range.replace(BUILDSTRIPRE, '')\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n src,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\n// unbounded global build-metadata stripper used by parseRange\nconst BUILDSTRIPRE = new RegExp(src[t.BUILD], 'g')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\nconst invalidXRangeOrder = (M, m, p) => (\n (isX(M) && !isX(m)) ||\n (isX(m) && p && !isX(p))\n)\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n // if we're including prereleases in the match, then the lower bound is\n // -0, the lowest possible prerelease value, just like x-ranges and carets.\n // this keeps `~1.2` equivalent to the `1.2.x` x-range it's documented as.\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n if (invalidXRangeOrder(M, m, p)) {\n return comp\n }\n\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If LT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !c.test(gt.semver)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !c.test(lt.semver)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst truncate = require('./functions/truncate')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n truncate,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\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.EventName = exports.DisplayPartKind = exports.KindModifiers = exports.DiagnosticCategory = exports.Kind = void 0;\nclass Kind {\n}\nexports.Kind = Kind;\nKind.alias = 'alias';\nKind.callSignature = 'call';\nKind.class = 'class';\nKind.const = 'const';\nKind.constructorImplementation = 'constructor';\nKind.constructSignature = 'construct';\nKind.directory = 'directory';\nKind.enum = 'enum';\nKind.enumMember = 'enum member';\nKind.externalModuleName = 'external module name';\nKind.function = 'function';\nKind.indexSignature = 'index';\nKind.interface = 'interface';\nKind.keyword = 'keyword';\nKind.let = 'let';\nKind.localFunction = 'local function';\nKind.localVariable = 'local var';\nKind.method = 'method';\nKind.memberGetAccessor = 'getter';\nKind.memberSetAccessor = 'setter';\nKind.memberVariable = 'property';\nKind.module = 'module';\nKind.primitiveType = 'primitive type';\nKind.script = 'script';\nKind.type = 'type';\nKind.variable = 'var';\nKind.warning = 'warning';\nKind.string = 'string';\nKind.parameter = 'parameter';\nKind.typeParameter = 'type parameter';\nclass DiagnosticCategory {\n}\nexports.DiagnosticCategory = DiagnosticCategory;\nDiagnosticCategory.error = 'error';\nDiagnosticCategory.warning = 'warning';\nDiagnosticCategory.suggestion = 'suggestion';\nclass KindModifiers {\n}\nexports.KindModifiers = KindModifiers;\nKindModifiers.optional = 'optional';\nKindModifiers.deprecated = 'deprecated';\nKindModifiers.color = 'color';\nKindModifiers.dtsFile = '.d.ts';\nKindModifiers.tsFile = '.ts';\nKindModifiers.tsxFile = '.tsx';\nKindModifiers.jsFile = '.js';\nKindModifiers.jsxFile = '.jsx';\nKindModifiers.jsonFile = '.json';\nKindModifiers.fileExtensionKindModifiers = [\n KindModifiers.dtsFile,\n KindModifiers.tsFile,\n KindModifiers.tsxFile,\n KindModifiers.jsFile,\n KindModifiers.jsxFile,\n KindModifiers.jsonFile,\n];\nclass DisplayPartKind {\n}\nexports.DisplayPartKind = DisplayPartKind;\nDisplayPartKind.functionName = 'functionName';\nDisplayPartKind.methodName = 'methodName';\nDisplayPartKind.parameterName = 'parameterName';\nDisplayPartKind.propertyName = 'propertyName';\nDisplayPartKind.punctuation = 'punctuation';\nDisplayPartKind.text = 'text';\nvar EventName;\n(function (EventName) {\n EventName[\"syntaxDiag\"] = \"syntaxDiag\";\n EventName[\"semanticDiag\"] = \"semanticDiag\";\n EventName[\"suggestionDiag\"] = \"suggestionDiag\";\n EventName[\"configFileDiag\"] = \"configFileDiag\";\n EventName[\"telemetry\"] = \"telemetry\";\n EventName[\"projectLanguageServiceState\"] = \"projectLanguageServiceState\";\n EventName[\"projectsUpdatedInBackground\"] = \"projectsUpdatedInBackground\";\n EventName[\"beginInstallTypes\"] = \"beginInstallTypes\";\n EventName[\"endInstallTypes\"] = \"endInstallTypes\";\n EventName[\"typesInstallerInitializationFailed\"] = \"typesInstallerInitializationFailed\";\n EventName[\"surveyReady\"] = \"surveyReady\";\n EventName[\"projectLoadingStart\"] = \"projectLoadingStart\";\n EventName[\"projectLoadingFinish\"] = \"projectLoadingFinish\";\n})(EventName || (exports.EventName = EventName = {}));\n//# sourceMappingURL=protocol.const.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseKindModifier = parseKindModifier;\nfunction parseKindModifier(kindModifiers) {\n return new Set(kindModifiers.split(/,|\\s+/g));\n}\n//# sourceMappingURL=modifiers.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.plainWithLinks = plainWithLinks;\nexports.tagsMarkdownPreview = tagsMarkdownPreview;\nexports.markdownDocumentation = markdownDocumentation;\nexports.addMarkdownDocumentation = addMarkdownDocumentation;\nfunction replaceLinks(text) {\n return text\n // Http(s) links\n .replace(/\\{@(link|linkplain|linkcode) (https?:\\/\\/[^ |}]+?)(?:[| ]([^{}\\n]+?))?\\}/gi, (_, tag, link, text) => {\n switch (tag) {\n case 'linkcode':\n return `[\\`${text ? text.trim() : link}\\`](${link})`;\n default:\n return `[${text ? text.trim() : link}](${link})`;\n }\n });\n}\nfunction processInlineTags(text) {\n return replaceLinks(text);\n}\nfunction getTagBodyText(tag, fileNameToUri, getTextDocument) {\n if (!tag.text) {\n return undefined;\n }\n // Convert to markdown code block if it is not already one\n function makeCodeblock(text) {\n if (text.match(/^\\s*[~`]{3}/g)) {\n return text;\n }\n return '```\\n' + text + '\\n```';\n }\n const text = convertLinkTags(tag.text, fileNameToUri, getTextDocument);\n switch (tag.name) {\n case 'example':\n // check for caption tags, fix for #79704\n const captionTagMatches = text.match(/<caption>(.*?)<\\/caption>\\s*(\\r\\n|\\n)/);\n if (captionTagMatches && captionTagMatches.index === 0) {\n return captionTagMatches[1] + '\\n\\n' + makeCodeblock(text.slice(captionTagMatches[0].length));\n }\n else {\n return makeCodeblock(text);\n }\n case 'author':\n // fix obfuscated email address, #80898\n const emailMatch = text.match(/(.+)\\s<([-.\\w]+@[-.\\w]+)>/);\n if (emailMatch === null) {\n return text;\n }\n else {\n return `${emailMatch[1]} ${emailMatch[2]}`;\n }\n case 'default':\n return makeCodeblock(text);\n }\n return processInlineTags(text);\n}\nfunction getTagDocumentation(tag, fileNameToUri, getTextDocument) {\n switch (tag.name) {\n case 'augments':\n case 'extends':\n case 'param':\n case 'template':\n const body = convertLinkTags(tag.text, fileNameToUri, getTextDocument).split(/^(\\S+)\\s*-?\\s*/);\n if (body?.length === 3) {\n const param = body[1];\n const doc = body[2];\n const label = `*@${tag.name}* \\`${param}\\``;\n if (!doc) {\n return label;\n }\n return label + (doc.match(/\\r\\n|\\n/g) ? ' \\n' + processInlineTags(doc) : ` — ${processInlineTags(doc)}`);\n }\n }\n // Generic tag\n const label = `*@${tag.name}*`;\n const text = getTagBodyText(tag, fileNameToUri, getTextDocument);\n if (!text) {\n return label;\n }\n return label + (text.match(/\\r\\n|\\n/g) ? ' \\n' + text : ` — ${text}`);\n}\nfunction plainWithLinks(parts, fileNameToUri, getTextDocument) {\n return processInlineTags(convertLinkTags(parts, fileNameToUri, getTextDocument));\n}\n/**\n * Convert `@link` inline tags to markdown links\n */\nfunction convertLinkTags(parts, fileNameToUri, getTextDocument) {\n if (!parts) {\n return '';\n }\n if (typeof parts === 'string') {\n return parts;\n }\n const out = [];\n let currentLink;\n for (const part of parts) {\n switch (part.kind) {\n case 'link':\n if (currentLink) {\n const text = currentLink.text ?? currentLink.name;\n let target = currentLink.target;\n if (typeof currentLink.target === 'object' && 'fileName' in currentLink.target) {\n const _target = currentLink.target;\n const fileDoc = getTextDocument(fileNameToUri(_target.fileName));\n if (fileDoc) {\n const start = fileDoc.positionAt(_target.textSpan.start);\n const end = fileDoc.positionAt(_target.textSpan.start + _target.textSpan.length);\n target = {\n file: _target.fileName,\n start: {\n line: start.line + 1,\n offset: start.character + 1,\n },\n end: {\n line: end.line + 1,\n offset: end.character + 1,\n },\n };\n }\n else {\n target = {\n file: _target.fileName,\n start: {\n line: 1,\n offset: 1,\n },\n end: {\n line: 1,\n offset: 1,\n },\n };\n }\n }\n if (target) {\n const link = fileNameToUri(target.file) + '#' + `L${target.start.line},${target.start.offset}`;\n out.push(`[${text}](${link})`);\n }\n else {\n if (text) {\n out.push(text);\n }\n }\n currentLink = undefined;\n }\n else {\n currentLink = {};\n }\n break;\n case 'linkName':\n if (currentLink) {\n currentLink.name = part.text;\n currentLink.target = part.target;\n }\n break;\n case 'linkText':\n if (currentLink) {\n currentLink.text = part.text;\n }\n break;\n default:\n out.push(part.text);\n break;\n }\n }\n return processInlineTags(out.join(''));\n}\nfunction tagsMarkdownPreview(tags, fileNameToUri, getTextDocument) {\n return tags.map(tag => getTagDocumentation(tag, fileNameToUri, getTextDocument)).join(' \\n\\n');\n}\nfunction markdownDocumentation(documentation, tags, fileNameToUri, getTextDocument) {\n return addMarkdownDocumentation('', documentation, tags, fileNameToUri, getTextDocument);\n}\nfunction addMarkdownDocumentation(out, documentation, tags, fileNameToUri, getTextDocument) {\n if (documentation) {\n out += plainWithLinks(documentation, fileNameToUri, getTextDocument);\n }\n if (tags) {\n const tagsPreview = tagsMarkdownPreview(tags, fileNameToUri, getTextDocument);\n if (tagsPreview) {\n out += '\\n\\n' + tagsPreview;\n }\n }\n return out;\n}\n//# sourceMappingURL=previewer.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SymbolKind = void 0;\nconst PConst = require(\"../protocol.const\");\nvar SymbolKind;\n(function (SymbolKind) {\n function fromProtocolScriptElementKind(kind) {\n switch (kind) {\n case PConst.Kind.module:\n return 2;\n case PConst.Kind.class:\n return 5;\n case PConst.Kind.enum:\n return 10;\n case PConst.Kind.enumMember:\n return 22;\n case PConst.Kind.interface:\n return 11;\n case PConst.Kind.indexSignature:\n return 6;\n case PConst.Kind.callSignature:\n return 6;\n case PConst.Kind.method:\n return 6;\n case PConst.Kind.memberVariable:\n return 7;\n case PConst.Kind.memberGetAccessor:\n return 7;\n case PConst.Kind.memberSetAccessor:\n return 7;\n case PConst.Kind.variable:\n return 13;\n case PConst.Kind.let:\n return 13;\n case PConst.Kind.const:\n return 13;\n case PConst.Kind.localVariable:\n return 13;\n case PConst.Kind.alias:\n return 13;\n case PConst.Kind.function:\n return 12;\n case PConst.Kind.localFunction:\n return 12;\n case PConst.Kind.constructSignature:\n return 9;\n case PConst.Kind.constructorImplementation:\n return 9;\n case PConst.Kind.typeParameter:\n return 26;\n case PConst.Kind.string:\n return 15;\n default:\n return 13;\n }\n }\n SymbolKind.fromProtocolScriptElementKind = fromProtocolScriptElementKind;\n})(SymbolKind || (exports.SymbolKind = SymbolKind = {}));\n//# sourceMappingURL=typeConverters.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertDiagnostic = convertDiagnostic;\nexports.applyCompletionEntryDetails = applyCompletionEntryDetails;\nexports.convertCompletionInfo = convertCompletionInfo;\nexports.getLineText = getLineText;\nexports.convertNavigateToItem = convertNavigateToItem;\nexports.convertInlayHint = convertInlayHint;\nexports.convertHighlightSpan = convertHighlightSpan;\nexports.convertSelectionRange = convertSelectionRange;\nexports.convertFileTextChanges = convertFileTextChanges;\nexports.convertRenameLocations = convertRenameLocations;\nexports.convertQuickInfo = convertQuickInfo;\nexports.convertNavTree = convertNavTree;\nexports.convertOutliningSpan = convertOutliningSpan;\nexports.convertOutliningSpanKind = convertOutliningSpanKind;\nexports.convertTextChange = convertTextChange;\nexports.convertCallHierarchyIncomingCall = convertCallHierarchyIncomingCall;\nexports.convertCallHierarchyOutgoingCall = convertCallHierarchyOutgoingCall;\nexports.convertCallHierarchyItem = convertCallHierarchyItem;\nexports.convertDocumentSpanToLocation = convertDocumentSpanToLocation;\nexports.convertDefinitionInfoAndBoundSpan = convertDefinitionInfoAndBoundSpan;\nexports.convertDocumentSpantoLocationLink = convertDocumentSpantoLocationLink;\nexports.convertTextSpan = convertTextSpan;\nconst path = require(\"path-browserify\");\nconst semver = require(\"semver\");\nconst PConst = require(\"../protocol.const\");\nconst modifiers_1 = require(\"../utils/modifiers\");\nconst previewer = require(\"../utils/previewer\");\nconst typeConverters = require(\"../utils/typeConverters\");\n// diagnostics\nfunction convertDiagnostic(diag, document, fileNameToUri, getTextDocument) {\n if (diag.start === undefined) {\n return;\n }\n if (diag.length === undefined) {\n return;\n }\n const diagnostic = {\n range: {\n start: document.positionAt(diag.start),\n end: document.positionAt(diag.start + diag.length),\n },\n severity: convertDiagnosticCategory(diag.category),\n source: 'ts',\n code: diag.code,\n message: getMessageText(diag),\n };\n if (diag.relatedInformation) {\n diagnostic.relatedInformation = diag.relatedInformation\n .map(rErr => convertDiagnosticRelatedInformation(rErr, fileNameToUri, getTextDocument))\n .filter((v) => !!v);\n }\n if (diag.reportsUnnecessary) {\n if (diagnostic.tags === undefined) {\n diagnostic.tags = [];\n }\n diagnostic.tags.push(1);\n }\n if (diag.reportsDeprecated) {\n if (diagnostic.tags === undefined) {\n diagnostic.tags = [];\n }\n diagnostic.tags.push(2);\n }\n return diagnostic;\n}\nfunction convertDiagnosticRelatedInformation(diag, fileNameToUri, getTextDocument) {\n if (diag.start === undefined) {\n return;\n }\n if (diag.length === undefined) {\n return;\n }\n let document;\n if (diag.file) {\n document = getTextDocument(fileNameToUri(diag.file.fileName));\n }\n if (!document) {\n return;\n }\n const diagnostic = {\n location: {\n uri: document.uri,\n range: {\n start: document.positionAt(diag.start),\n end: document.positionAt(diag.start + diag.length),\n },\n },\n message: getMessageText(diag),\n };\n return diagnostic;\n}\nfunction convertDiagnosticCategory(input) {\n switch (input) {\n case 0:\n return 2;\n case 1:\n return 1;\n case 2:\n return 4;\n case 3:\n return 3;\n }\n return 1;\n}\nfunction getMessageText(diag) {\n let messageText = '';\n if (typeof diag.messageText === 'string') {\n messageText += diag.messageText;\n }\n else {\n messageText += diag.messageText.messageText;\n if (diag.messageText.next) {\n for (const info of diag.messageText.next) {\n messageText += '\\n' + getNextMessageText(info, 1);\n }\n }\n }\n return messageText;\n}\nfunction getNextMessageText(diag, level = 0) {\n let messageText = ' '.repeat(level);\n messageText += diag.messageText;\n if (diag.next) {\n for (const info of diag.next) {\n messageText += '\\n' + getNextMessageText(info, level + 1);\n }\n }\n return messageText;\n}\n// completion resolve\nfunction applyCompletionEntryDetails(ts, item, data, document, fileNameToUri, getTextDocument) {\n const { sourceDisplay } = data;\n if (sourceDisplay) {\n item.labelDetails ??= {};\n item.labelDetails.description = ts.displayPartsToString(sourceDisplay);\n }\n const detailTexts = [];\n if (data.codeActions) {\n item.additionalTextEdits ??= [];\n for (const action of data.codeActions) {\n detailTexts.push(action.description);\n for (const changes of action.changes) {\n const ranges = changes.textChanges.map(change => convertTextSpan(change.span, document));\n ranges.forEach((range, index) => {\n item.additionalTextEdits?.push({ range, newText: changes.textChanges[index].newText });\n });\n }\n }\n }\n if (data.displayParts) {\n detailTexts.push(previewer.plainWithLinks(data.displayParts, fileNameToUri, getTextDocument));\n }\n if (detailTexts.length) {\n item.detail = detailTexts.join('\\n');\n }\n item.documentation = {\n kind: 'markdown',\n value: previewer.markdownDocumentation(data.documentation, data.tags, fileNameToUri, getTextDocument),\n };\n if (data) {\n handleKindModifiers(item, data);\n }\n}\n// completion\nfunction convertCompletionInfo(ts, completionContext, document, position, createData) {\n const lt_320 = semver.lt(ts.version, '3.2.0');\n const gte_300 = semver.gte(ts.version, '3.0.0');\n const wordRange = completionContext.optionalReplacementSpan\n ? convertTextSpan(completionContext.optionalReplacementSpan, document)\n : undefined;\n const line = getLineText(document, position.line);\n const dotAccessorContext = getDotAccessorContext(document);\n const entries = completionContext.entries\n .map(tsEntry => ({\n ...convertCompletionEntry(tsEntry, document),\n data: createData(tsEntry),\n }));\n return {\n isIncomplete: !!completionContext.isIncomplete,\n items: entries,\n };\n function convertCompletionEntry(tsEntry, document) {\n const item = { label: tsEntry.name };\n item.kind = convertCompletionItemKind(tsEntry.kind);\n if (tsEntry.source && tsEntry.hasAction) {\n // De-prioritize auto-imports\n // https://github.com/microsoft/vscode/issues/40311\n item.sortText = '\\uffff' + tsEntry.sortText;\n }\n else {\n item.sortText = tsEntry.sortText;\n }\n const { sourceDisplay, isSnippet, labelDetails } = tsEntry;\n if (sourceDisplay) {\n item.labelDetails ??= {};\n item.labelDetails.description = ts.displayPartsToString(sourceDisplay);\n }\n if (labelDetails) {\n item.labelDetails ??= {};\n Object.assign(item.labelDetails, labelDetails);\n }\n item.preselect = tsEntry.isRecommended;\n let range = getRangeFromReplacementSpan(tsEntry, document);\n item.commitCharacters = getCommitCharacters(tsEntry, {\n isNewIdentifierLocation: completionContext.isNewIdentifierLocation,\n isInValidCommitCharacterContext: isInValidCommitCharacterContext(document, position),\n enableCallCompletions: true, // TODO: suggest.completeFunctionCalls\n });\n item.insertText = tsEntry.insertText;\n item.insertTextFormat = isSnippet\n ? 2\n : 1;\n item.filterText = getFilterText(tsEntry, wordRange, line, tsEntry.insertText);\n if (completionContext?.isMemberCompletion && dotAccessorContext && !isSnippet) {\n item.filterText = dotAccessorContext.text + (item.insertText || item.label);\n if (!range) {\n const replacementRange = wordRange;\n if (replacementRange) {\n range = {\n inserting: dotAccessorContext.range,\n replacing: rangeUnion(dotAccessorContext.range, replacementRange),\n };\n }\n else {\n range = dotAccessorContext.range;\n }\n item.insertText = item.filterText;\n }\n }\n handleKindModifiers(item, tsEntry);\n if (!range && wordRange) {\n range = {\n inserting: { start: wordRange.start, end: position },\n replacing: wordRange,\n };\n }\n if (range) {\n if ('start' in range) {\n item.textEdit = {\n range,\n newText: item.insertText || item.label,\n };\n }\n else {\n item.textEdit = {\n insert: range.inserting,\n replace: range.replacing,\n newText: item.insertText || item.label,\n };\n }\n }\n return item;\n }\n function getDotAccessorContext(document) {\n let dotAccessorContext;\n if (gte_300) {\n if (!completionContext) {\n return;\n }\n const isMemberCompletion = completionContext.isMemberCompletion;\n if (isMemberCompletion) {\n const dotMatch = line.slice(0, position.character).match(/\\??\\.\\s*$/) || undefined;\n if (dotMatch) {\n const range = {\n start: { line: position.line, character: position.character - dotMatch[0].length },\n end: position,\n };\n const text = document.getText(range);\n dotAccessorContext = { range, text };\n }\n }\n }\n return dotAccessorContext;\n }\n // from vscode typescript\n function getRangeFromReplacementSpan(tsEntry, document) {\n if (!tsEntry.replacementSpan) {\n return;\n }\n let replaceRange = {\n start: document.positionAt(tsEntry.replacementSpan.start),\n end: document.positionAt(tsEntry.replacementSpan.start + tsEntry.replacementSpan.length),\n };\n // Make sure we only replace a single line at most\n if (replaceRange.start.line !== replaceRange.end.line) {\n replaceRange = {\n start: {\n line: replaceRange.start.line,\n character: replaceRange.start.character,\n },\n end: {\n line: replaceRange.start.line,\n character: document.positionAt(document.offsetAt({ line: replaceRange.start.line + 1, character: 0 }) - 1).character,\n },\n };\n }\n // If TS returns an explicit replacement range, we should use it for both types of completion\n return {\n inserting: replaceRange,\n replacing: replaceRange,\n };\n }\n function getFilterText(tsEntry, wordRange, line, insertText) {\n // Handle private field completions\n if (tsEntry.name.startsWith('#')) {\n const wordStart = wordRange ? line.charAt(wordRange.start.character) : undefined;\n if (insertText) {\n if (insertText.startsWith('this.#')) {\n return wordStart === '#' ? insertText : insertText.replace(/^this\\.#/, '');\n }\n else {\n return insertText;\n }\n }\n else {\n return wordStart === '#' ? undefined : tsEntry.name.replace(/^#/, '');\n }\n }\n // For `this.` completions, generally don't set the filter text since we don't want them to be overly prioritized. #74164\n if (insertText?.startsWith('this.')) {\n return undefined;\n }\n // Handle the case:\n // ```\n // const xyz = { 'ab c': 1 };\n // xyz.ab|\n // ```\n // In which case we want to insert a bracket accessor but should use `.abc` as the filter text instead of\n // the bracketed insert text.\n else if (insertText?.startsWith('[')) {\n return insertText.replace(/^\\[['\"](.+)[['\"]\\]$/, '.$1');\n }\n // In all other cases, fallback to using the insertText\n return insertText;\n }\n function getCommitCharacters(entry, context) {\n if (entry.kind === PConst.Kind.warning) { // Ambient JS word based suggestion\n return undefined;\n }\n if (context.isNewIdentifierLocation || !context.isInValidCommitCharacterContext) {\n return undefined;\n }\n const commitCharacters = ['.', ',', ';'];\n if (context.enableCallCompletions) {\n commitCharacters.push('(');\n }\n return commitCharacters;\n }\n function isInValidCommitCharacterContext(document, position) {\n if (lt_320) {\n // Workaround for https://github.com/microsoft/TypeScript/issues/27742\n // Only enable dot completions when the previous character is not a dot preceded by whitespace.\n // Prevents incorrectly completing while typing spread operators.\n if (position.character > 1) {\n const preText = document.getText({\n start: { line: position.line, character: 0 },\n end: position,\n });\n return preText.match(/(\\s|^)\\.$/ig) === null;\n }\n }\n return true;\n }\n}\nfunction convertCompletionItemKind(kind) {\n switch (kind) {\n case PConst.Kind.primitiveType:\n case PConst.Kind.keyword:\n return 14;\n case PConst.Kind.const:\n case PConst.Kind.let:\n case PConst.Kind.variable:\n case PConst.Kind.localVariable:\n case PConst.Kind.alias:\n case PConst.Kind.parameter:\n return 6;\n case PConst.Kind.memberVariable:\n case PConst.Kind.memberGetAccessor:\n case PConst.Kind.memberSetAccessor:\n return 5;\n case PConst.Kind.function:\n case PConst.Kind.localFunction:\n return 3;\n case PConst.Kind.method:\n case PConst.Kind.constructSignature:\n case PConst.Kind.callSignature:\n case PConst.Kind.indexSignature:\n return 2;\n case PConst.Kind.enum:\n return 13;\n case PConst.Kind.enumMember:\n return 20;\n case PConst.Kind.module:\n case PConst.Kind.externalModuleName:\n return 9;\n case PConst.Kind.class:\n case PConst.Kind.type:\n return 7;\n case PConst.Kind.interface:\n return 8;\n case PConst.Kind.warning:\n return 1;\n case PConst.Kind.script:\n return 17;\n case PConst.Kind.directory:\n return 19;\n case PConst.Kind.string:\n return 21;\n default:\n return 10;\n }\n}\nfunction handleKindModifiers(item, tsEntry) {\n if (tsEntry.kindModifiers) {\n const kindModifiers = (0, modifiers_1.parseKindModifier)(tsEntry.kindModifiers);\n if (kindModifiers.has(PConst.KindModifiers.optional)) {\n if (!item.insertText) {\n item.insertText = item.label;\n }\n if (!item.filterText) {\n item.filterText = item.label;\n }\n item.label += '?';\n }\n if (kindModifiers.has(PConst.KindModifiers.deprecated)) {\n item.tags = [1];\n }\n if (kindModifiers.has(PConst.KindModifiers.color)) {\n item.kind = 16;\n }\n if (tsEntry.kind === PConst.Kind.script) {\n for (const extModifier of PConst.KindModifiers.fileExtensionKindModifiers) {\n if (kindModifiers.has(extModifier)) {\n if (tsEntry.name.toLowerCase().endsWith(extModifier)) {\n item.detail = tsEntry.name;\n }\n else {\n item.detail = tsEntry.name + extModifier;\n }\n break;\n }\n }\n }\n }\n}\nfunction rangeUnion(a, b) {\n const start = (a.start.line < b.start.line || (a.start.line === b.start.line && a.start.character < b.start.character))\n ? a.start\n : b.start;\n const end = (a.end.line > b.end.line || (a.end.line === b.end.line && a.end.character > b.end.character))\n ? a.end\n : b.end;\n return { start, end };\n}\nfunction getLineText(document, line) {\n const endOffset = document.offsetAt({ line: line + 1, character: 0 });\n const end = document.positionAt(endOffset);\n const text = document.getText({\n start: { line: line, character: 0 },\n end: end.line === line ? end : document.positionAt(endOffset - 1),\n });\n return text;\n}\n// workspaceSymbol\nfunction convertNavigateToItem(item, document) {\n const info = {\n name: getLabel(item),\n kind: convertScriptElementKind(item.kind),\n location: {\n uri: document.uri,\n range: convertTextSpan(item.textSpan, document),\n },\n };\n const kindModifiers = item.kindModifiers ? (0, modifiers_1.parseKindModifier)(item.kindModifiers) : undefined;\n if (kindModifiers?.has(PConst.KindModifiers.deprecated)) {\n info.tags = [1];\n }\n return info;\n}\nfunction getLabel(item) {\n const label = item.name;\n if (item.kind === 'method' || item.kind === 'function') {\n return label + '()';\n }\n return label;\n}\nfunction convertScriptElementKind(kind) {\n switch (kind) {\n case PConst.Kind.method:\n return 6;\n case PConst.Kind.enum:\n return 10;\n case PConst.Kind.enumMember:\n return 22;\n case PConst.Kind.function:\n return 12;\n case PConst.Kind.class:\n return 5;\n case PConst.Kind.interface:\n return 11;\n case PConst.Kind.type:\n return 5;\n case PConst.Kind.memberVariable:\n return 8;\n case PConst.Kind.memberGetAccessor:\n return 8;\n case PConst.Kind.memberSetAccessor:\n return 8;\n case PConst.Kind.variable:\n return 13;\n default:\n return 13;\n }\n}\n// inlayHints\nfunction convertInlayHint(hint, document) {\n const result = {\n position: document.positionAt(hint.position),\n label: hint.text,\n kind: hint.kind === 'Type'\n ? 1\n : hint.kind === 'Parameter'\n ? 2\n : undefined,\n };\n result.paddingLeft = hint.whitespaceBefore;\n result.paddingRight = hint.whitespaceAfter;\n return result;\n}\n// documentHighlight\nfunction convertHighlightSpan(span, document) {\n return {\n kind: span.kind === 'writtenReference'\n ? 3\n : 2,\n range: convertTextSpan(span.textSpan, document),\n };\n}\n// selectionRanges\nfunction convertSelectionRange(range, document) {\n return {\n parent: range.parent\n ? convertSelectionRange(range.parent, document)\n : undefined,\n range: convertTextSpan(range.textSpan, document),\n };\n}\n// rename\nfunction convertFileTextChanges(changes, fileNameToUri, getTextDocument) {\n const workspaceEdit = {};\n for (const change of changes) {\n if (!workspaceEdit.documentChanges) {\n workspaceEdit.documentChanges = [];\n }\n const uri = fileNameToUri(change.fileName);\n if (change.isNewFile) {\n workspaceEdit.documentChanges.push({ kind: 'create', uri: uri.toString() });\n workspaceEdit.documentChanges.push({\n textDocument: {\n uri: uri.toString(),\n version: null, // fix https://github.com/johnsoncodehk/volar/issues/2025\n },\n edits: change.textChanges.map(edit => ({\n newText: edit.newText,\n range: {\n start: { line: 0, character: edit.span.start },\n end: { line: 0, character: edit.span.start + edit.span.length },\n },\n })),\n });\n }\n else {\n const doc = getTextDocument(uri);\n workspaceEdit.documentChanges.push({\n textDocument: {\n uri: uri.toString(),\n version: null, // fix https://github.com/johnsoncodehk/volar/issues/2025\n },\n edits: change.textChanges.map(edit => convertTextChange(edit, doc)),\n });\n }\n }\n return workspaceEdit;\n}\n// rename file\nfunction convertRenameLocations(newText, locations, fileNameToUri, getTextDocument) {\n const workspaceEdit = {};\n for (const location of locations) {\n if (!workspaceEdit.changes) {\n workspaceEdit.changes = {};\n }\n const uri = fileNameToUri(location.fileName);\n const doc = getTextDocument(uri);\n if (!workspaceEdit.changes[uri.toString()]) {\n workspaceEdit.changes[uri.toString()] = [];\n }\n let _newText = newText;\n if (location.prefixText) {\n _newText = location.prefixText + _newText;\n }\n if (location.suffixText) {\n _newText = _newText + location.suffixText;\n }\n workspaceEdit.changes[uri.toString()].push({\n newText: _newText,\n range: convertTextSpan(location.textSpan, doc),\n });\n }\n return workspaceEdit;\n}\n// hover\nfunction convertQuickInfo(ts, info, document, fileNameToUri, getTextDocument) {\n const parts = [];\n const displayString = ts.displayPartsToString(info.displayParts);\n const documentation = previewer.markdownDocumentation(info.documentation ?? [], info.tags, fileNameToUri, getTextDocument);\n if (displayString) {\n parts.push(['```typescript', displayString, '```'].join('\\n'));\n }\n if (documentation) {\n parts.push(documentation);\n }\n const markdown = {\n kind: 'markdown',\n value: parts.join('\\n\\n'),\n };\n return {\n contents: markdown,\n range: convertTextSpan(info.textSpan, document),\n };\n}\n// documentSymbol\nfunction convertNavTree(item, document) {\n if (!shouldIncludeEntry(item)) {\n return [];\n }\n let remain = item.childItems ?? [];\n return item.spans.map(span => {\n const childItems = [];\n remain = remain.filter(child => {\n const childStart = child.spans[0].start;\n const childEnd = child.spans[child.spans.length - 1].start + child.spans[child.spans.length - 1].length;\n if (childStart >= span.start && childEnd <= span.start + span.length) {\n childItems.push(child);\n return false;\n }\n return true;\n });\n const nameSpan = item.spans.length === 1\n ? (item.nameSpan ?? span)\n : span;\n const fullRange = {\n start: Math.min(span.start, nameSpan.start),\n end: Math.max(span.start + span.length, nameSpan.start + nameSpan.length),\n };\n const symbol = {\n name: item.text,\n kind: getSymbolKind(item.kind),\n range: convertTextSpan({\n start: fullRange.start,\n length: fullRange.end - fullRange.start,\n }, document),\n selectionRange: convertTextSpan(nameSpan, document),\n children: childItems.map(item => convertNavTree(item, document)).flat(),\n };\n const kindModifiers = (0, modifiers_1.parseKindModifier)(item.kindModifiers);\n if (kindModifiers.has(PConst.KindModifiers.deprecated)) {\n symbol.deprecated = true;\n symbol.tags ??= [];\n symbol.tags.push(1);\n }\n return symbol;\n });\n}\nconst getSymbolKind = (kind) => {\n switch (kind) {\n case PConst.Kind.module:\n return 2;\n case PConst.Kind.class:\n return 5;\n case PConst.Kind.enum:\n return 10;\n case PConst.Kind.interface:\n return 11;\n case PConst.Kind.method:\n return 6;\n case PConst.Kind.memberVariable:\n return 7;\n case PConst.Kind.memberGetAccessor:\n return 7;\n case PConst.Kind.memberSetAccessor:\n return 7;\n case PConst.Kind.variable:\n return 13;\n case PConst.Kind.const:\n return 13;\n case PConst.Kind.localVariable:\n return 13;\n case PConst.Kind.function:\n return 12;\n case PConst.Kind.localFunction:\n return 12;\n case PConst.Kind.constructSignature:\n return 9;\n case PConst.Kind.constructorImplementation:\n return 9;\n }\n return 13;\n};\nfunction shouldIncludeEntry(item) {\n if (item.kind === PConst.Kind.alias) {\n return false;\n }\n return !!(item.text && item.text !== '<function>' && item.text !== '<class>');\n}\n// foldingRanges\nfunction convertOutliningSpan(outliningSpan, document) {\n const start = document.positionAt(outliningSpan.textSpan.start);\n const end = adjustFoldingEnd(start, document.positionAt(outliningSpan.textSpan.start + outliningSpan.textSpan.length), document);\n return {\n startLine: start.line,\n endLine: end.line,\n startCharacter: start.character,\n endCharacter: end.character,\n kind: convertOutliningSpanKind(outliningSpan.kind),\n };\n}\nfunction convertOutliningSpanKind(kind) {\n switch (kind) {\n case 'comment':\n return 'comment';\n case 'region':\n return 'region';\n case 'imports':\n return 'imports';\n case 'code':\n default:\n return undefined;\n }\n}\nconst foldEndPairCharacters = ['}', ']', ')', '`'];\n// https://github.com/microsoft/vscode/blob/bed61166fb604e519e82e4d1d1ed839bc45d65f8/extensions/typescript-language-features/src/languageFeatures/folding.ts#L61-L73\nfunction adjustFoldingEnd(start, end, document) {\n // workaround for #47240\n if (end.character > 0) {\n const foldEndCharacter = document.getText({\n start: { line: end.line, character: end.character - 1 },\n end,\n });\n if (foldEndPairCharacters.includes(foldEndCharacter)) {\n const endOffset = Math.max(document.offsetAt({ line: end.line, character: 0 }) - 1, document.offsetAt(start));\n return document.positionAt(endOffset);\n }\n }\n return end;\n}\n// formatting\nfunction convertTextChange(edit, document) {\n return {\n range: convertTextSpan(edit.span, document),\n newText: edit.newText,\n };\n}\n// callHierarchy\nfunction convertCallHierarchyIncomingCall(item, ctx) {\n const uri = ctx.fileNameToUri(item.from.file);\n const document = ctx.getTextDocument(uri);\n return {\n from: convertCallHierarchyItem(item.from, ctx),\n fromRanges: item.fromSpans\n .map(span => convertTextSpan(span, document))\n .filter(span => !!span),\n };\n}\nfunction convertCallHierarchyOutgoingCall(item, fromDocument, ctx) {\n return {\n to: convertCallHierarchyItem(item.to, ctx),\n fromRanges: item.fromSpans\n .map(span => convertTextSpan(span, fromDocument))\n .filter(span => !!span),\n };\n}\nfunction convertCallHierarchyItem(item, ctx) {\n const rootPath = ctx.languageService.getProgram()?.getCompilerOptions().rootDir ?? '';\n const uri = ctx.fileNameToUri(item.file);\n const document = ctx.getTextDocument(uri);\n const useFileName = isSourceFileItem(item);\n const name = useFileName ? path.basename(item.file) : item.name;\n const detail = useFileName ? path.relative(rootPath, path.dirname(item.file)) : item.containerName ?? '';\n const result = {\n kind: typeConverters.SymbolKind.fromProtocolScriptElementKind(item.kind),\n name,\n detail,\n uri: uri.toString(),\n range: convertTextSpan(item.span, document),\n selectionRange: convertTextSpan(item.selectionSpan, document),\n };\n const kindModifiers = item.kindModifiers ? (0, modifiers_1.parseKindModifier)(item.kindModifiers) : undefined;\n if (kindModifiers?.has(PConst.KindModifiers.deprecated)) {\n result.tags = [1];\n }\n return result;\n}\nfunction isSourceFileItem(item) {\n return item.kind === PConst.Kind.script || item.kind === PConst.Kind.module && item.selectionSpan.start === 0;\n}\n// base\nfunction convertDocumentSpanToLocation(documentSpan, ctx) {\n const uri = ctx.fileNameToUri(documentSpan.fileName);\n const document = ctx.getTextDocument(uri);\n const range = convertTextSpan(documentSpan.textSpan, document);\n return {\n uri: uri.toString(),\n range,\n };\n}\nfunction convertDefinitionInfoAndBoundSpan(info, document, ctx) {\n if (!info.definitions) {\n return [];\n }\n const originSelectionRange = convertTextSpan(info.textSpan, document);\n return info.definitions\n .map(entry => {\n const link = convertDocumentSpantoLocationLink(entry, ctx);\n if (link) {\n link.originSelectionRange ??= originSelectionRange;\n return link;\n }\n })\n .filter(entry => !!entry);\n}\nfunction convertDocumentSpantoLocationLink(documentSpan, ctx) {\n const targetUri = ctx.fileNameToUri(documentSpan.fileName);\n const document = ctx.getTextDocument(targetUri);\n const targetSelectionRange = convertTextSpan(documentSpan.textSpan, document);\n const targetRange = documentSpan.contextSpan\n ? convertTextSpan(documentSpan.contextSpan, document)\n : targetSelectionRange;\n const originSelectionRange = documentSpan.originalTextSpan\n ? convertTextSpan(documentSpan.originalTextSpan, document)\n : undefined;\n return {\n targetUri: targetUri.toString(),\n targetRange,\n targetSelectionRange,\n originSelectionRange,\n };\n}\nfunction convertTextSpan(textSpan, document) {\n if (!document) {\n return {\n start: { line: 0, character: 0 },\n end: { line: 0, character: 0 },\n };\n }\n return {\n start: document.positionAt(textSpan.start),\n end: document.positionAt(textSpan.start + textSpan.length),\n };\n}\n//# sourceMappingURL=lspConverters.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFormatCodeSettings = getFormatCodeSettings;\nconst shared_1 = require(\"../shared\");\nasync function getFormatCodeSettings(ctx, document, options) {\n const config = await ctx.env.getConfiguration?.((0, shared_1.getConfigTitle)(document) + '.format') ?? {};\n return {\n convertTabsToSpaces: options?.insertSpaces,\n tabSize: options?.tabSize,\n indentSize: options?.tabSize,\n indentStyle: 2,\n newLineCharacter: '\\n',\n insertSpaceAfterCommaDelimiter: config.insertSpaceAfterCommaDelimiter ?? true,\n insertSpaceAfterConstructor: config.insertSpaceAfterConstructor ?? false,\n insertSpaceAfterSemicolonInForStatements: config.insertSpaceAfterSemicolonInForStatements ?? true,\n insertSpaceBeforeAndAfterBinaryOperators: config.insertSpaceBeforeAndAfterBinaryOperators ?? true,\n insertSpaceAfterKeywordsInControlFlowStatements: config.insertSpaceAfterKeywordsInControlFlowStatements ?? true,\n insertSpaceAfterFunctionKeywordForAnonymousFunctions: config.insertSpaceAfterFunctionKeywordForAnonymousFunctions\n ?? true,\n insertSpaceBeforeFunctionParenthesis: config.insertSpaceBeforeFunctionParenthesis ?? false,\n insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: config.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis ?? false,\n insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets ?? false,\n insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\n ?? true,\n insertSpaceAfterOpeningAndBeforeClosingEmptyBraces: config.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces\n ?? true,\n insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: config.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces ?? false,\n insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: config.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces ?? false,\n insertSpaceAfterTypeAssertion: config.insertSpaceAfterTypeAssertion ?? false,\n placeOpenBraceOnNewLineForFunctions: config.placeOpenBraceOnNewLineForFunctions ?? false,\n placeOpenBraceOnNewLineForControlBlocks: config.placeOpenBraceOnNewLineForControlBlocks ?? false,\n semicolons: config.semicolons ?? 'ignore',\n };\n}\n//# sourceMappingURL=getFormatCodeSettings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSyntaxOnlyService = createSyntaxOnlyService;\nfunction createSyntaxOnlyService(ts, syntaxOnly) {\n let currentProjectVersion = -1;\n let fileNames = [];\n const scriptInfos = new Map();\n const host = {\n getProjectVersion: () => currentProjectVersion.toString(),\n getScriptFileNames: () => fileNames,\n getScriptSnapshot: fileName => scriptInfos.get(fileName).snapshot,\n getScriptKind: fileName => scriptInfos.get(fileName).kind,\n getScriptVersion: fileName => scriptInfos.get(fileName).version.toString(),\n getCompilationSettings: () => ({}),\n getCurrentDirectory: () => '',\n getDefaultLibFileName: () => '',\n readFile: () => undefined,\n fileExists: fileName => scriptInfos.has(fileName),\n };\n return {\n languageService: syntaxOnly\n ? ts.createLanguageService(host, undefined, ts.LanguageServiceMode.Syntactic)\n : ts.createLanguageService(host),\n updateFile,\n };\n function updateFile(fileName, snapshot, scriptKind) {\n let scriptInfo = scriptInfos.get(fileName);\n if (scriptInfo?.snapshot === snapshot && scriptInfo.kind === scriptKind) {\n return;\n }\n currentProjectVersion++;\n scriptInfo = {\n snapshot,\n kind: scriptKind,\n version: (scriptInfo?.version ?? 0) + 1,\n };\n const filesChanged = !scriptInfos.has(fileName);\n scriptInfos.set(fileName, scriptInfo);\n if (filesChanged) {\n fileNames = [...scriptInfos.keys()];\n }\n }\n}\n//# sourceMappingURL=syntaxOnlyService.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLanguageServiceByDocument = getLanguageServiceByDocument;\nexports.create = create;\nconst getFormatCodeSettings_1 = require(\"../configs/getFormatCodeSettings\");\nconst shared_1 = require(\"../shared\");\nconst syntaxOnlyService_1 = require(\"../syntaxOnlyService\");\nconst lspConverters_1 = require(\"../utils/lspConverters\");\nconst snapshots = new WeakMap();\nlet created;\nfunction getLanguageServiceByDocument(ts, document) {\n if (!created) {\n created = (0, syntaxOnlyService_1.createSyntaxOnlyService)(ts, true);\n }\n let cache = snapshots.get(document);\n if (!cache || cache[0] !== document.version) {\n const snapshot = ts.ScriptSnapshot.fromString(document.getText());\n cache = [document.version, snapshot];\n snapshots.set(document, cache);\n created.updateFile(document.uri, cache[1], document.languageId === 'javascript'\n ? ts.ScriptKind.JS\n : document.languageId === 'javascriptreact'\n ? ts.ScriptKind.JSX\n : document.languageId === 'typescriptreact'\n ? ts.ScriptKind.TSX\n : ts.ScriptKind.TS);\n }\n return {\n languageService: created.languageService,\n fileName: document.uri,\n };\n}\nfunction create(ts, { isFormattingEnabled = async (document, context) => {\n return await context.env.getConfiguration?.((0, shared_1.getConfigTitle)(document) + '.format.enable') ?? true;\n}, } = {}) {\n return {\n name: 'typescript-syntactic',\n capabilities: {\n autoInsertionProvider: {\n triggerCharacters: ['>', '>'],\n configurationSections: ['javascript.autoClosingTags', 'typescript.autoClosingTags'],\n },\n foldingRangeProvider: true,\n selectionRangeProvider: true,\n documentSymbolProvider: true,\n documentFormattingProvider: true,\n documentOnTypeFormattingProvider: {\n // https://github.com/microsoft/vscode/blob/ce119308e8fd4cd3f992d42b297588e7abe33a0c/extensions/typescript-language-features/src/languageFeatures/formatting.ts#L99\n triggerCharacters: [';', '}', '\\n'],\n },\n },\n create(context) {\n return {\n async provideAutoInsertSnippet(document, selection, change) {\n // selection must at end of change\n if (document.offsetAt(selection) !== change.rangeOffset + change.text.length) {\n return;\n }\n if ((document.languageId === 'javascriptreact' || document.languageId === 'typescriptreact')\n && change.text.endsWith('>')\n && (await context.env.getConfiguration?.((0, shared_1.getConfigTitle)(document) + '.autoClosingTags') ?? true)) {\n const { languageService, fileName } = getLanguageServiceByDocument(ts, document);\n const close = languageService.getJsxClosingTagAtPosition(fileName, document.offsetAt(selection));\n if (close) {\n return '$0' + close.newText;\n }\n }\n },\n provideFoldingRanges(document) {\n if (!(0, shared_1.isTsDocument)(document)) {\n return;\n }\n const { languageService, fileName } = getLanguageServiceByDocument(ts, document);\n const outliningSpans = (0, shared_1.safeCall)(() => languageService.getOutliningSpans(fileName));\n if (!outliningSpans) {\n return [];\n }\n return outliningSpans.map(span => (0, lspConverters_1.convertOutliningSpan)(span, document));\n },\n provideSelectionRanges(document, positions) {\n if (!(0, shared_1.isTsDocument)(document)) {\n return;\n }\n const { languageService, fileName } = getLanguageServiceByDocument(ts, document);\n const ranges = positions\n .map(position => {\n const offset = document.offsetAt(position);\n const range = (0, shared_1.safeCall)(() => languageService.getSmartSelectionRange(fileName, offset));\n if (!range) {\n return;\n }\n return (0, lspConverters_1.convertSelectionRange)(range, document);\n });\n if (ranges.every(range => !!range)) {\n return ranges;\n }\n },\n provideDocumentSymbols(document) {\n if (!(0, shared_1.isTsDocument)(document)) {\n return;\n }\n const { languageService, fileName } = getLanguageServiceByDocument(ts, document);\n const barItems = (0, shared_1.safeCall)(() => languageService.getNavigationTree(fileName));\n if (!barItems) {\n return [];\n }\n // The root represents the file. Ignore this when showing in the UI\n return barItems.childItems\n ?.map(item => (0, lspConverters_1.convertNavTree)(item, document))\n .flat()\n ?? [];\n },\n async provideDocumentFormattingEdits(document, range, options, codeOptions) {\n if (!(0, shared_1.isTsDocument)(document)) {\n return;\n }\n if (!await isFormattingEnabled(document, context)) {\n return;\n }\n const tsOptions = await (0, getFormatCodeSettings_1.getFormatCodeSettings)(context, document, options);\n if (codeOptions) {\n tsOptions.baseIndentSize = codeOptions.initialIndentLevel * options.tabSize;\n }\n const { languageService, fileName } = getLanguageServiceByDocument(ts, document);\n const scriptEdits = range\n ? (0, shared_1.safeCall)(() => languageService.getFormattingEditsForRange(fileName, document.offsetAt(range.start), document.offsetAt(range.end), tsOptions))\n : (0, shared_1.safeCall)(() => languageService.getFormattingEditsForDocument(fileName, tsOptions));\n if (!scriptEdits) {\n return [];\n }\n return scriptEdits.map(edit => (0, lspConverters_1.convertTextChange)(edit, document));\n },\n async provideOnTypeFormattingEdits(document, position, key, options, codeOptions) {\n if (!(0, shared_1.isTsDocument)(document)) {\n return;\n }\n if (!await isFormattingEnabled(document, context)) {\n return;\n }\n const tsOptions = await (0, getFormatCodeSettings_1.getFormatCodeSettings)(context, document, options);\n if (codeOptions) {\n tsOptions.baseIndentSize = codeOptions.initialIndentLevel * options.tabSize;\n }\n const { languageService, fileName } = getLanguageServiceByDocument(ts, document);\n const scriptEdits = (0, shared_1.safeCall)(() => languageService.getFormattingEditsAfterKeystroke(fileName, document.offsetAt(position), key, tsOptions));\n if (!scriptEdits) {\n return [];\n }\n return scriptEdits.map(edit => (0, lspConverters_1.convertTextChange)(edit, document));\n },\n };\n },\n };\n}\n//# sourceMappingURL=syntactic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = create;\nconst nls = require(\"vscode-nls\");\nconst shared_1 = require(\"../shared\");\nconst lspConverters_1 = require(\"../utils/lspConverters\");\nconst syntactic_1 = require(\"./syntactic\");\nconst localize = nls.loadMessageBundle(); // TODO: not working\nconst defaultJsDoc = `/**\\n * $0\\n */`;\nfunction create(ts) {\n return {\n name: 'typescript-doc-comment-template',\n capabilities: {\n completionProvider: {\n triggerCharacters: ['*'],\n },\n },\n create() {\n return {\n provideCompletionItems(document, position) {\n if (!(0, shared_1.isTsDocument)(document)) {\n return;\n }\n if (!isPotentiallyValidDocCompletionPosition(document, position)) {\n return;\n }\n const { languageService, fileName } = (0, syntactic_1.getLanguageServiceByDocument)(ts, document);\n const offset = document.offsetAt(position);\n const docCommentTemplate = languageService.getDocCommentTemplateAtPosition(fileName, offset);\n if (!docCommentTemplate) {\n return;\n }\n let insertText;\n // Workaround for #43619\n // docCommentTemplate previously returned undefined for empty jsdoc templates.\n // TS 2.7 now returns a single line doc comment, which breaks indentation.\n if (docCommentTemplate.newText === '/** */') {\n insertText = defaultJsDoc;\n }\n else {\n insertText = templateToSnippet(docCommentTemplate.newText);\n }\n const item = createCompletionItem(document, position, insertText);\n return {\n isIncomplete: false,\n items: [item],\n };\n },\n };\n },\n };\n}\nfunction createCompletionItem(document, position, insertText) {\n const item = { label: '/** */' };\n item.kind = 1;\n item.detail = localize('typescript.jsDocCompletionItem.documentation', 'JSDoc comment');\n item.sortText = '\\0';\n item.insertTextFormat = 2;\n const line = (0, lspConverters_1.getLineText)(document, position.line);\n const prefix = line.slice(0, position.character).match(/\\/\\**\\s*$/);\n const suffix = line.slice(position.character).match(/^\\s*\\**\\//);\n const start = {\n line: position.line,\n character: position.character + (prefix ? -prefix[0].length : 0),\n };\n const end = { line: position.line, character: position.character + (suffix ? suffix[0].length : 0) };\n const range = { start, end };\n item.textEdit = { range, newText: insertText };\n return item;\n}\nfunction isPotentiallyValidDocCompletionPosition(document, position) {\n // Only show the JSdoc completion when the everything before the cursor is whitespace\n // or could be the opening of a comment\n const line = (0, lspConverters_1.getLineText)(document, position.line);\n const prefix = line.slice(0, position.character);\n if (!/^\\s*$|\\/\\*\\*\\s*$|^\\s*\\/\\*\\*+\\s*$/.test(prefix)) {\n return false;\n }\n // And everything after is possibly a closing comment or more whitespace\n const suffix = line.slice(position.character);\n return /^\\s*(\\*+\\/)?\\s*$/.test(suffix);\n}\nfunction templateToSnippet(template) {\n // TODO: use append placeholder\n let snippetIndex = 1;\n template = template.replace(/\\$/g, '\\\\$');\n template = template.replace(/^[ \\t]*(?=(\\/|[ ]\\*))/gm, '');\n template = template.replace(/^(\\/\\*\\*\\s*\\*[ ]*)$/m, x => x + `\\$0`);\n template = template.replace(/\\* @param([ ]\\{\\S+\\})?\\s+(\\S+)[ \\t]*$/gm, (_param, type, post) => {\n let out = '* @param ';\n if (type === ' {any}' || type === ' {*}') {\n out += `{\\$\\{${snippetIndex++}:*\\}} `;\n }\n else if (type) {\n out += type + ' ';\n }\n out += post + ` \\${${snippetIndex++}}`;\n return out;\n });\n template = template.replace(/\\* @returns[ \\t]*$/gm, `* @returns \\${${snippetIndex++}}`);\n return template;\n}\n//# sourceMappingURL=docCommentTemplate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction default_1(ts, host, _service) {\n var _a, _b;\n // @ts-expect-error\n const importSuggestionsCache = (_b = (_a = ts.Completions) === null || _a === void 0 ? void 0 : _a.createImportSuggestionsForFileCache) === null || _b === void 0 ? void 0 : _b.call(_a);\n // @ts-expect-error\n // TODO: crash on 'addListener' from 'node:process', reuse because TS has same problem\n host.getImportSuggestionsCache = () => importSuggestionsCache;\n}\nexports.default = default_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createModuleSpecifierCache = void 0;\n// export interface ModuleSpecifierResolutionCacheHost {\n// watchNodeModulesForPackageJsonChanges(directoryPath: string): FileWatcher;\n// }\nfunction createModuleSpecifierCache(\n// host: ModuleSpecifierResolutionCacheHost\n) {\n // let containedNodeModulesWatchers: Map<string, FileWatcher> | undefined; // TODO\n let cache;\n let currentKey;\n const result = {\n get(fromFileName, toFileName, preferences) {\n if (!cache || currentKey !== key(fromFileName, preferences))\n return undefined;\n return cache.get(toFileName);\n },\n set(fromFileName, toFileName, preferences, modulePaths, moduleSpecifiers) {\n ensureCache(fromFileName, preferences).set(toFileName, createInfo(modulePaths, moduleSpecifiers, /*isAutoImportable*/ true));\n // If any module specifiers were generated based off paths in node_modules,\n // a package.json file in that package was read and is an input to the cached.\n // Instead of watching each individual package.json file, set up a wildcard\n // directory watcher for any node_modules referenced and clear the cache when\n // it sees any changes.\n if (moduleSpecifiers) {\n for (const p of modulePaths) {\n if (p.isInNodeModules) {\n // No trailing slash\n // const nodeModulesPath = p.path.substring(0, p.path.indexOf(nodeModulesPathPart) + nodeModulesPathPart.length - 1);\n // if (!containedNodeModulesWatchers?.has(nodeModulesPath)) {\n // (containedNodeModulesWatchers ||= new Map()).set(\n // nodeModulesPath,\n // host.watchNodeModulesForPackageJsonChanges(nodeModulesPath),\n // );\n // }\n }\n }\n }\n },\n setModulePaths(fromFileName, toFileName, preferences, modulePaths) {\n const cache = ensureCache(fromFileName, preferences);\n const info = cache.get(toFileName);\n if (info) {\n info.modulePaths = modulePaths;\n }\n else {\n cache.set(toFileName, createInfo(modulePaths, /*moduleSpecifiers*/ undefined, /*isAutoImportable*/ undefined));\n }\n },\n setIsAutoImportable(fromFileName, toFileName, preferences, isAutoImportable) {\n const cache = ensureCache(fromFileName, preferences);\n const info = cache.get(toFileName);\n if (info) {\n info.isAutoImportable = isAutoImportable;\n }\n else {\n cache.set(toFileName, createInfo(/*modulePaths*/ undefined, /*moduleSpecifiers*/ undefined, isAutoImportable));\n }\n },\n clear() {\n // containedNodeModulesWatchers?.forEach(watcher => watcher.close());\n cache === null || cache === void 0 ? void 0 : cache.clear();\n // containedNodeModulesWatchers?.clear();\n currentKey = undefined;\n },\n count() {\n return cache ? cache.size : 0;\n }\n };\n // if (Debug.isDebugging) {\n // Object.defineProperty(result, \"__cache\", { get: () => cache });\n // }\n return result;\n function ensureCache(fromFileName, preferences) {\n const newKey = key(fromFileName, preferences);\n if (cache && (currentKey !== newKey)) {\n result.clear();\n }\n currentKey = newKey;\n return cache || (cache = new Map());\n }\n function key(fromFileName, preferences) {\n return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference}`;\n }\n function createInfo(modulePaths, moduleSpecifiers, isAutoImportable) {\n return { modulePaths, moduleSpecifiers, isAutoImportable };\n }\n}\nexports.createModuleSpecifierCache = createModuleSpecifierCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createPackageJsonCache = exports.canCreatePackageJsonCache = void 0;\nfunction canCreatePackageJsonCache(ts) {\n return 'createPackageJsonInfo' in ts && 'getDirectoryPath' in ts && 'combinePaths' in ts && 'tryFileExists' in ts && 'forEachAncestorDirectory' in ts;\n}\nexports.canCreatePackageJsonCache = canCreatePackageJsonCache;\nfunction createPackageJsonCache(ts, host) {\n const { createPackageJsonInfo, getDirectoryPath, combinePaths, tryFileExists, forEachAncestorDirectory } = ts;\n const packageJsons = new Map();\n const directoriesWithoutPackageJson = new Map();\n return {\n addOrUpdate,\n // @ts-expect-error\n forEach: packageJsons.forEach.bind(packageJsons),\n get: packageJsons.get.bind(packageJsons),\n delete: fileName => {\n packageJsons.delete(fileName);\n directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true);\n },\n getInDirectory: directory => {\n return packageJsons.get(combinePaths(directory, \"package.json\")) || undefined;\n },\n directoryHasPackageJson,\n searchDirectoryAndAncestors: directory => {\n // @ts-expect-error\n forEachAncestorDirectory(directory, ancestor => {\n if (directoryHasPackageJson(ancestor) !== 3 /* Ternary.Maybe */) {\n return true;\n }\n const packageJsonFileName = host.toPath(combinePaths(ancestor, \"package.json\"));\n if (tryFileExists(host, packageJsonFileName)) {\n addOrUpdate(packageJsonFileName);\n }\n else {\n directoriesWithoutPackageJson.set(ancestor, true);\n }\n });\n },\n };\n function addOrUpdate(fileName) {\n const packageJsonInfo = \n // Debug.checkDefined(\n createPackageJsonInfo(fileName, host.host);\n // );\n packageJsons.set(fileName, packageJsonInfo);\n directoriesWithoutPackageJson.delete(getDirectoryPath(fileName));\n }\n function directoryHasPackageJson(directory) {\n return packageJsons.has(combinePaths(directory, \"package.json\")) ? -1 /* Ternary.True */ :\n directoriesWithoutPackageJson.has(directory) ? 0 /* Ternary.False */ :\n 3 /* Ternary.Maybe */;\n }\n}\nexports.createPackageJsonCache = createPackageJsonCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst moduleSpecifierCache_1 = require(\"./moduleSpecifierCache\");\nconst packageJsonCache_1 = require(\"./packageJsonCache\");\nfunction default_1(ts, host, service) {\n const _createCacheableExportInfoMap = ts.createCacheableExportInfoMap;\n const _combinePaths = ts.combinePaths;\n const _forEachAncestorDirectory = ts.forEachAncestorDirectory;\n const _getDirectoryPath = ts.getDirectoryPath;\n const _toPath = ts.toPath;\n const _createGetCanonicalFileName = ts.createGetCanonicalFileName;\n if (!_createCacheableExportInfoMap\n || !_combinePaths\n || !_forEachAncestorDirectory\n || !_getDirectoryPath\n || !_toPath\n || !_createGetCanonicalFileName\n || !(0, packageJsonCache_1.canCreatePackageJsonCache)(ts))\n return;\n const moduleSpecifierCache = (0, moduleSpecifierCache_1.createModuleSpecifierCache)();\n const exportMapCache = _createCacheableExportInfoMap({\n getCurrentProgram() {\n return service.getProgram();\n },\n getPackageJsonAutoImportProvider() {\n return service.getProgram();\n },\n });\n const packageJsonCache = (0, packageJsonCache_1.createPackageJsonCache)(ts, Object.assign(Object.assign({}, host), { \n // @ts-expect-error\n host: Object.assign({}, host), toPath }));\n // @ts-expect-error\n host.getCachedExportInfoMap = () => exportMapCache;\n // @ts-expect-error\n host.getModuleSpecifierCache = () => moduleSpecifierCache;\n // @ts-expect-error\n host.getPackageJsonsVisibleToFile = (fileName, rootDir) => {\n const rootPath = rootDir && toPath(rootDir);\n const filePath = toPath(fileName);\n const result = [];\n const processDirectory = (directory) => {\n switch (packageJsonCache.directoryHasPackageJson(directory)) {\n // Sync and check same directory again\n case 3 /* Ternary.Maybe */:\n packageJsonCache.searchDirectoryAndAncestors(directory);\n return processDirectory(directory);\n // Check package.json\n case -1 /* Ternary.True */:\n // const packageJsonFileName = _combinePaths(directory, \"package.json\");\n // this.watchPackageJsonFile(packageJsonFileName as ts.Path); // TODO\n const info = packageJsonCache.getInDirectory(directory);\n if (info)\n result.push(info);\n }\n if (rootPath && rootPath === directory) {\n return true;\n }\n };\n _forEachAncestorDirectory(_getDirectoryPath(filePath), processDirectory);\n return result;\n };\n function toPath(fileName) {\n var _a;\n return _toPath(fileName, host.getCurrentDirectory(), _createGetCanonicalFileName((_a = host.useCaseSensitiveFileNames) === null || _a === void 0 ? void 0 : _a.call(host)));\n }\n}\nexports.default = default_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createModuleSpecifierCache = exports.nodeModulesPathPart = void 0;\nexports.nodeModulesPathPart = \"/node_modules/\";\nfunction createModuleSpecifierCache(\n// host: ModuleSpecifierResolutionCacheHost\n) {\n let containedNodeModulesWatchers;\n let cache;\n let currentKey;\n const result = {\n get(fromFileName, toFileName, preferences, options) {\n if (!cache || currentKey !== key(fromFileName, preferences, options))\n return undefined;\n return cache.get(toFileName);\n },\n set(fromFileName, toFileName, preferences, options, modulePaths, moduleSpecifiers) {\n ensureCache(fromFileName, preferences, options).set(toFileName, createInfo(modulePaths, moduleSpecifiers, /*isBlockedByPackageJsonDependencies*/ false));\n // If any module specifiers were generated based off paths in node_modules,\n // a package.json file in that package was read and is an input to the cached.\n // Instead of watching each individual package.json file, set up a wildcard\n // directory watcher for any node_modules referenced and clear the cache when\n // it sees any changes.\n if (moduleSpecifiers) {\n for (const p of modulePaths) {\n if (p.isInNodeModules) {\n // No trailing slash\n // const nodeModulesPath = p.path.substring(0, p.path.indexOf(nodeModulesPathPart) + nodeModulesPathPart.length - 1);\n // if (!containedNodeModulesWatchers?.has(nodeModulesPath)) {\n // (containedNodeModulesWatchers ||= new Map()).set(\n // nodeModulesPath,\n // host.watchNodeModulesForPackageJsonChanges(nodeModulesPath),\n // );\n // }\n }\n }\n }\n },\n setModulePaths(fromFileName, toFileName, preferences, options, modulePaths) {\n const cache = ensureCache(fromFileName, preferences, options);\n const info = cache.get(toFileName);\n if (info) {\n info.modulePaths = modulePaths;\n }\n else {\n cache.set(toFileName, createInfo(modulePaths, /*moduleSpecifiers*/ undefined, /*isBlockedByPackageJsonDependencies*/ undefined));\n }\n },\n setBlockedByPackageJsonDependencies(fromFileName, toFileName, preferences, options, isBlockedByPackageJsonDependencies) {\n const cache = ensureCache(fromFileName, preferences, options);\n const info = cache.get(toFileName);\n if (info) {\n info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies;\n }\n else {\n cache.set(toFileName, createInfo(/*modulePaths*/ undefined, /*moduleSpecifiers*/ undefined, isBlockedByPackageJsonDependencies));\n }\n },\n clear() {\n containedNodeModulesWatchers === null || containedNodeModulesWatchers === void 0 ? void 0 : containedNodeModulesWatchers.forEach(watcher => watcher.close());\n cache === null || cache === void 0 ? void 0 : cache.clear();\n containedNodeModulesWatchers === null || containedNodeModulesWatchers === void 0 ? void 0 : containedNodeModulesWatchers.clear();\n currentKey = undefined;\n },\n count() {\n return cache ? cache.size : 0;\n }\n };\n // if (Debug.isDebugging) {\n // Object.defineProperty(result, \"__cache\", { get: () => cache });\n // }\n return result;\n function ensureCache(fromFileName, preferences, options) {\n const newKey = key(fromFileName, preferences, options);\n if (cache && (currentKey !== newKey)) {\n result.clear();\n }\n currentKey = newKey;\n return cache || (cache = new Map());\n }\n function key(fromFileName, preferences, options) {\n return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`;\n }\n function createInfo(modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies) {\n return { modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies };\n }\n}\nexports.createModuleSpecifierCache = createModuleSpecifierCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createPackageJsonCache = void 0;\nfunction createPackageJsonCache(ts, host) {\n const { createPackageJsonInfo, getDirectoryPath, combinePaths, tryFileExists, forEachAncestorDirectory } = ts;\n const packageJsons = new Map();\n const directoriesWithoutPackageJson = new Map();\n return {\n addOrUpdate,\n forEach: packageJsons.forEach.bind(packageJsons),\n get: packageJsons.get.bind(packageJsons),\n delete: fileName => {\n packageJsons.delete(fileName);\n directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true);\n },\n getInDirectory: directory => {\n return packageJsons.get(combinePaths(directory, \"package.json\")) || undefined;\n },\n directoryHasPackageJson,\n searchDirectoryAndAncestors: directory => {\n forEachAncestorDirectory(directory, (ancestor) => {\n if (directoryHasPackageJson(ancestor) !== 3 /* Ternary.Maybe */) {\n return true;\n }\n const packageJsonFileName = host.toPath(combinePaths(ancestor, \"package.json\"));\n if (tryFileExists(host, packageJsonFileName)) {\n addOrUpdate(packageJsonFileName);\n }\n else {\n directoriesWithoutPackageJson.set(ancestor, true);\n }\n });\n },\n };\n function addOrUpdate(fileName) {\n const packageJsonInfo = \n // Debug.checkDefined(\n createPackageJsonInfo(fileName, host.host);\n // );\n packageJsons.set(fileName, packageJsonInfo);\n directoriesWithoutPackageJson.delete(getDirectoryPath(fileName));\n }\n function directoryHasPackageJson(directory) {\n return packageJsons.has(combinePaths(directory, \"package.json\")) ? -1 /* Ternary.True */ :\n directoriesWithoutPackageJson.has(directory) ? 0 /* Ternary.False */ :\n 3 /* Ternary.Maybe */;\n }\n}\nexports.createPackageJsonCache = createPackageJsonCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst moduleSpecifierCache_1 = require(\"./moduleSpecifierCache\");\nconst packageJsonCache_1 = require(\"./packageJsonCache\");\nfunction default_1(ts, host, service) {\n const _createCacheableExportInfoMap = ts.createCacheableExportInfoMap;\n const _combinePaths = ts.combinePaths;\n const _forEachAncestorDirectory = ts.forEachAncestorDirectory;\n const _getDirectoryPath = ts.getDirectoryPath;\n const _toPath = ts.toPath;\n const _createGetCanonicalFileName = ts.createGetCanonicalFileName;\n if (!_createCacheableExportInfoMap\n || !_combinePaths\n || !_forEachAncestorDirectory\n || !_getDirectoryPath\n || !_toPath\n || !_createGetCanonicalFileName)\n return;\n const moduleSpecifierCache = (0, moduleSpecifierCache_1.createModuleSpecifierCache)();\n const exportMapCache = _createCacheableExportInfoMap({\n getCurrentProgram() {\n return service.getProgram();\n },\n getPackageJsonAutoImportProvider() {\n return service.getProgram();\n },\n getGlobalTypingsCacheLocation() {\n return undefined;\n },\n });\n const packageJsonCache = (0, packageJsonCache_1.createPackageJsonCache)(ts, Object.assign(Object.assign({}, host), { \n // @ts-expect-error\n host: Object.assign({}, host), toPath }));\n // @ts-expect-error\n host.getCachedExportInfoMap = () => exportMapCache;\n // @ts-expect-error\n host.getModuleSpecifierCache = () => moduleSpecifierCache;\n // @ts-expect-error\n host.getPackageJsonsVisibleToFile = (fileName, rootDir) => {\n const rootPath = rootDir && toPath(rootDir);\n const filePath = toPath(fileName);\n const result = [];\n const processDirectory = (directory) => {\n switch (packageJsonCache.directoryHasPackageJson(directory)) {\n // Sync and check same directory again\n case 3 /* Ternary.Maybe */:\n packageJsonCache.searchDirectoryAndAncestors(directory);\n return processDirectory(directory);\n // Check package.json\n case -1 /* Ternary.True */:\n // const packageJsonFileName = _combinePaths(directory, \"package.json\");\n // this.watchPackageJsonFile(packageJsonFileName as ts.Path); // TODO\n const info = packageJsonCache.getInDirectory(directory);\n if (info)\n result.push(info);\n }\n if (rootPath && rootPath === directory) {\n return true;\n }\n };\n _forEachAncestorDirectory(_getDirectoryPath(filePath), processDirectory);\n return result;\n };\n function toPath(fileName) {\n var _a;\n return _toPath(fileName, host.getCurrentDirectory(), _createGetCanonicalFileName((_a = host.useCaseSensitiveFileNames) === null || _a === void 0 ? void 0 : _a.call(host)));\n }\n}\nexports.default = default_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createPackageJsonCache = void 0;\nfunction createPackageJsonCache(ts, host) {\n const { createPackageJsonInfo, getDirectoryPath, combinePaths, tryFileExists, forEachAncestorDirectory } = ts;\n const packageJsons = new Map();\n const directoriesWithoutPackageJson = new Map();\n return {\n addOrUpdate,\n // @ts-expect-error\n forEach: packageJsons.forEach.bind(packageJsons),\n get: packageJsons.get.bind(packageJsons),\n delete: (fileName) => {\n packageJsons.delete(fileName);\n directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true);\n },\n getInDirectory: (directory) => {\n return packageJsons.get(combinePaths(directory, 'package.json')) || undefined;\n },\n directoryHasPackageJson,\n searchDirectoryAndAncestors: (directory) => {\n // @ts-expect-error\n forEachAncestorDirectory(directory, (ancestor) => {\n if (directoryHasPackageJson(ancestor) !== 3 /* Ternary.Maybe */) {\n return true;\n }\n const packageJsonFileName = host.toPath(combinePaths(ancestor, 'package.json'));\n if (tryFileExists(host, packageJsonFileName)) {\n addOrUpdate(packageJsonFileName);\n }\n else {\n directoriesWithoutPackageJson.set(ancestor, true);\n }\n });\n },\n };\n function addOrUpdate(fileName) {\n const packageJsonInfo = /*Debug.checkDefined( */ createPackageJsonInfo(fileName, host.host); /*);*/\n packageJsons.set(fileName, packageJsonInfo);\n directoriesWithoutPackageJson.delete(getDirectoryPath(fileName));\n }\n function directoryHasPackageJson(directory) {\n return packageJsons.has(combinePaths(directory, 'package.json'))\n ? -1 /* Ternary.True */\n : directoriesWithoutPackageJson.has(directory)\n ? 0 /* Ternary.False */\n : 3 /* Ternary.Maybe */;\n }\n}\nexports.createPackageJsonCache = createPackageJsonCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createProjectService = void 0;\nconst packageJsonCache_1 = require(\"./packageJsonCache\");\nfunction createProjectService(ts, sys, currentDirectory, hostConfiguration, serverMode) {\n const { toPath, getNormalizedAbsolutePath, normalizePath: toNormalizedPath, createGetCanonicalFileName, forEachAncestorDirectory, getDirectoryPath, } = ts;\n const projectService = {\n serverMode,\n host: sys,\n currentDirectory: toNormalizedPath(currentDirectory),\n toCanonicalFileName: createGetCanonicalFileName(sys.useCaseSensitiveFileNames),\n toPath(fileName) {\n return toPath(fileName, this.currentDirectory, this.toCanonicalFileName);\n },\n getExecutingFilePath() {\n return this.getNormalizedAbsolutePath(this.host.getExecutingFilePath());\n },\n getNormalizedAbsolutePath(fileName) {\n return getNormalizedAbsolutePath(fileName, this.host.getCurrentDirectory());\n },\n packageJsonCache: undefined,\n getPackageJsonsVisibleToFile(fileName, rootDir) {\n const packageJsonCache = this.packageJsonCache;\n const rootPath = rootDir && this.toPath(rootDir);\n const filePath = this.toPath(fileName);\n const result = [];\n const processDirectory = (directory) => {\n switch (packageJsonCache.directoryHasPackageJson(directory)) {\n // Sync and check same directory again\n case 3 /* Ternary.Maybe */:\n packageJsonCache.searchDirectoryAndAncestors(directory);\n return processDirectory(directory);\n // Check package.json\n case -1 /* Ternary.True */:\n // const packageJsonFileName = _combinePaths(directory, \"package.json\");\n // this.watchPackageJsonFile(packageJsonFileName as ts.Path); // TODO\n const info = packageJsonCache.getInDirectory(directory);\n if (info)\n result.push(info);\n }\n if (rootPath && rootPath === directory) {\n return true;\n }\n };\n forEachAncestorDirectory(getDirectoryPath(filePath), processDirectory);\n return result;\n },\n includePackageJsonAutoImports() {\n switch (hostConfiguration.preferences.includePackageJsonAutoImports) {\n case 'on': return 1 /* PackageJsonAutoImportPreference.On */;\n case 'off': return 0 /* PackageJsonAutoImportPreference.Off */;\n default: return 2 /* PackageJsonAutoImportPreference.Auto */;\n }\n },\n fileExists(fileName) {\n return this.host.fileExists(fileName);\n },\n };\n projectService.packageJsonCache = (0, packageJsonCache_1.createPackageJsonCache)(ts, projectService);\n return projectService;\n}\nexports.createProjectService = createProjectService;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createModuleSpecifierCache = exports.nodeModulesPathPart = void 0;\nexports.nodeModulesPathPart = \"/node_modules/\";\nfunction createModuleSpecifierCache(\n// host: ModuleSpecifierResolutionCacheHost\n) {\n let containedNodeModulesWatchers;\n let cache;\n let currentKey;\n const result = {\n get(fromFileName, toFileName, preferences, options) {\n if (!cache || currentKey !== key(fromFileName, preferences, options))\n return undefined;\n return cache.get(toFileName);\n },\n set(fromFileName, toFileName, preferences, options, modulePaths, moduleSpecifiers) {\n ensureCache(fromFileName, preferences, options).set(toFileName, createInfo(modulePaths, moduleSpecifiers, /*isBlockedByPackageJsonDependencies*/ false));\n // If any module specifiers were generated based off paths in node_modules,\n // a package.json file in that package was read and is an input to the cached.\n // Instead of watching each individual package.json file, set up a wildcard\n // directory watcher for any node_modules referenced and clear the cache when\n // it sees any changes.\n if (moduleSpecifiers) {\n for (const p of modulePaths) {\n if (p.isInNodeModules) {\n // No trailing slash\n // const nodeModulesPath = p.path.substring(0, p.path.indexOf(nodeModulesPathPart) + nodeModulesPathPart.length - 1);\n // if (!containedNodeModulesWatchers?.has(nodeModulesPath)) {\n //\t (containedNodeModulesWatchers ||= new Map()).set(\n //\t\t nodeModulesPath,\n //\t\t host.watchNodeModulesForPackageJsonChanges(nodeModulesPath),\n //\t );\n // }\n }\n }\n }\n },\n setModulePaths(fromFileName, toFileName, preferences, options, modulePaths) {\n const cache = ensureCache(fromFileName, preferences, options);\n const info = cache.get(toFileName);\n if (info) {\n info.modulePaths = modulePaths;\n }\n else {\n cache.set(toFileName, createInfo(modulePaths, /*moduleSpecifiers*/ undefined, /*isBlockedByPackageJsonDependencies*/ undefined));\n }\n },\n setBlockedByPackageJsonDependencies(fromFileName, toFileName, preferences, options, isBlockedByPackageJsonDependencies) {\n const cache = ensureCache(fromFileName, preferences, options);\n const info = cache.get(toFileName);\n if (info) {\n info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies;\n }\n else {\n cache.set(toFileName, createInfo(/*modulePaths*/ undefined, /*moduleSpecifiers*/ undefined, isBlockedByPackageJsonDependencies));\n }\n },\n clear() {\n containedNodeModulesWatchers === null || containedNodeModulesWatchers === void 0 ? void 0 : containedNodeModulesWatchers.forEach(watcher => watcher.close());\n cache === null || cache === void 0 ? void 0 : cache.clear();\n containedNodeModulesWatchers === null || containedNodeModulesWatchers === void 0 ? void 0 : containedNodeModulesWatchers.clear();\n currentKey = undefined;\n },\n count() {\n return cache ? cache.size : 0;\n }\n };\n // if (Debug.isDebugging) {\n //\t Object.defineProperty(result, \"__cache\", { get: () => cache });\n // }\n return result;\n function ensureCache(fromFileName, preferences, options) {\n const newKey = key(fromFileName, preferences, options);\n if (cache && (currentKey !== newKey)) {\n result.clear();\n }\n currentKey = newKey;\n return cache || (cache = new Map());\n }\n function key(fromFileName, preferences, options) {\n return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`;\n }\n function createInfo(modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies) {\n return { modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies };\n }\n}\nexports.createModuleSpecifierCache = createModuleSpecifierCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createAutoImportProviderProjectStatic = void 0;\nconst project_1 = require(\"./project\");\nfunction createAutoImportProviderProjectStatic(tsBase, host, createLanguageService) {\n const ts = tsBase;\n const { combinePaths, inferredTypesContainingFile, arrayFrom, resolvePackageNameToPackageJson, concatenate, forEach, startsWith, getEntrypointsFromPackageJsonInfo, mapDefined, timestamp, } = ts;\n return {\n maxDependencies: 10,\n compilerOptionsOverrides: {\n diagnostics: false,\n skipLibCheck: true,\n sourceMap: false,\n types: ts.emptyArray,\n lib: ts.emptyArray,\n noLib: true,\n },\n getRootFileNames(dependencySelection, hostProject, moduleResolutionHost, compilerOptions) {\n var _a, _b;\n if (!dependencySelection) {\n return ts.emptyArray;\n }\n const program = hostProject.getCurrentProgram();\n if (!program) {\n return ts.emptyArray;\n }\n const start = timestamp();\n let dependencyNames;\n let rootNames;\n const rootFileName = combinePaths(hostProject.currentDirectory, inferredTypesContainingFile);\n const packageJsons = hostProject.getPackageJsonsForAutoImport(combinePaths(hostProject.currentDirectory, rootFileName));\n for (const packageJson of packageJsons) {\n (_a = packageJson.dependencies) === null || _a === void 0 ? void 0 : _a.forEach((_, dependenyName) => addDependency(dependenyName));\n (_b = packageJson.peerDependencies) === null || _b === void 0 ? void 0 : _b.forEach((_, dependencyName) => addDependency(dependencyName));\n }\n let dependenciesAdded = 0;\n if (dependencyNames) {\n const symlinkCache = hostProject.getSymlinkCache();\n for (const name of arrayFrom(dependencyNames.keys())) {\n // Avoid creating a large project that would significantly slow down time to editor interactivity\n if (dependencySelection === 2 /* PackageJsonAutoImportPreference.Auto */ && dependenciesAdded > this.maxDependencies) {\n hostProject.log(`AutoImportProviderProject: attempted to add more than ${this.maxDependencies} dependencies. Aborting.`);\n return ts.emptyArray;\n }\n // 1. Try to load from the implementation package. For many dependencies, the\n //\tpackage.json will exist, but the package will not contain any typings,\n //\tso `entrypoints` will be undefined. In that case, or if the dependency\n //\tis missing altogether, we will move on to trying the @types package (2).\n const packageJson = resolvePackageNameToPackageJson(name, hostProject.currentDirectory, compilerOptions, moduleResolutionHost, \n // @ts-expect-error\n program.getModuleResolutionCache());\n if (packageJson) {\n const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache);\n if (entrypoints) {\n rootNames = concatenate(rootNames, entrypoints);\n dependenciesAdded += entrypoints.length ? 1 : 0;\n continue;\n }\n }\n // 2. Try to load from the @types package in the tree and in the global\n //\ttypings cache location, if enabled.\n // @ts-expect-error\n const done = forEach([hostProject.currentDirectory, hostProject.getGlobalTypingsCacheLocation()], (directory) => {\n if (directory) {\n const typesPackageJson = resolvePackageNameToPackageJson(`@types/${name}`, directory, compilerOptions, moduleResolutionHost, \n // @ts-expect-error\n program.getModuleResolutionCache());\n if (typesPackageJson) {\n const entrypoints = getRootNamesFromPackageJson(typesPackageJson, program, symlinkCache);\n rootNames = concatenate(rootNames, entrypoints);\n dependenciesAdded += (entrypoints === null || entrypoints === void 0 ? void 0 : entrypoints.length) ? 1 : 0;\n return true;\n }\n }\n });\n if (done)\n continue;\n // 3. If the @types package did not exist and the user has settings that\n //\tallow processing JS from node_modules, go back to the implementation\n //\tpackage and load the JS.\n if (packageJson && compilerOptions.allowJs && compilerOptions.maxNodeModuleJsDepth) {\n const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache, /*allowJs*/ true);\n rootNames = concatenate(rootNames, entrypoints);\n dependenciesAdded += (entrypoints === null || entrypoints === void 0 ? void 0 : entrypoints.length) ? 1 : 0;\n }\n }\n }\n if (rootNames === null || rootNames === void 0 ? void 0 : rootNames.length) {\n hostProject.log(`AutoImportProviderProject: found ${rootNames.length} root files in ${dependenciesAdded} dependencies in ${timestamp() - start} ms`);\n }\n return rootNames || ts.emptyArray;\n function addDependency(dependency) {\n if (!startsWith(dependency, '@types/')) {\n (dependencyNames || (dependencyNames = new Set())).add(dependency);\n }\n }\n function getRootNamesFromPackageJson(packageJson, program, symlinkCache, resolveJs) {\n var _a;\n const entrypoints = getEntrypointsFromPackageJsonInfo(packageJson, compilerOptions, moduleResolutionHost, \n // @ts-expect-error\n program.getModuleResolutionCache(), resolveJs);\n if (entrypoints) {\n // some packages have giant exports maps, don't add them to the project to not slow down the editor\n if (entrypoints.length > 100)\n return;\n const real = (_a = moduleResolutionHost.realpath) === null || _a === void 0 ? void 0 : _a.call(moduleResolutionHost, packageJson.packageDirectory);\n const isSymlink = real && real !== packageJson.packageDirectory;\n if (isSymlink) {\n symlinkCache.setSymlinkedDirectory(packageJson.packageDirectory, {\n real,\n realPath: hostProject.toPath(real),\n });\n }\n // @ts-expect-error\n return mapDefined(entrypoints, (entrypoint) => {\n const resolvedFileName = isSymlink ? entrypoint.replace(packageJson.packageDirectory, real) : entrypoint;\n if (!program.getSourceFile(resolvedFileName) && !(isSymlink && program.getSourceFile(entrypoint))) {\n return resolvedFileName;\n }\n });\n }\n }\n },\n create(dependencySelection, hostProject, moduleResolutionHost) {\n if (dependencySelection === 0 /* PackageJsonAutoImportPreference.Off */) {\n return undefined;\n }\n const compilerOptions = Object.assign(Object.assign({}, hostProject.getCompilerOptions()), this.compilerOptionsOverrides);\n let rootNames = this.getRootFileNames(dependencySelection, hostProject, moduleResolutionHost, compilerOptions);\n if (!rootNames.length) {\n return undefined;\n }\n return createAutoImportProviderProject(tsBase, host, createLanguageService, { self: this, hostProject, rootNames, compilerOptions });\n }\n };\n}\nexports.createAutoImportProviderProjectStatic = createAutoImportProviderProjectStatic;\nfunction createAutoImportProviderProject(tsBase, host, createLanguageService, options) {\n const { self, rootNames, compilerOptions, hostProject } = options;\n const ts = tsBase;\n const { some } = ts;\n const project = Object.assign(Object.assign({}, (0, project_1.createProject)(tsBase, host, createLanguageService, {\n projectService: hostProject.projectService,\n currentDirectory: hostProject.currentDirectory,\n compilerOptions,\n })), { projectVersion: 0, getProjectVersion() {\n return this.projectVersion.toString();\n }, rootFileNames: rootNames, hostProject,\n isEmpty() {\n return !some(this.rootFileNames);\n },\n isOrphan() {\n return true;\n },\n updateGraph() {\n var _a;\n let rootFileNames = this.rootFileNames;\n if (!rootFileNames) {\n rootFileNames = self.getRootFileNames(this.hostProject.includePackageJsonAutoImports(), this.hostProject, this.hostProject.getModuleResolutionHostForAutoImportProvider(), this.getCompilationSettings());\n }\n this.rootFileNames = rootFileNames;\n const oldProgram = this.getCurrentProgram();\n this.program = (_a = this.languageService) === null || _a === void 0 ? void 0 : _a.getProgram();\n this.dirty = false;\n if (oldProgram && oldProgram !== this.getCurrentProgram()) {\n this.hostProject.clearCachedExportInfoMap();\n }\n },\n scheduleInvalidateResolutionsOfFailedLookupLocations() {\n // Invalidation will happen on-demand as part of updateGraph\n return;\n },\n hasRoots() {\n var _a;\n return !!((_a = this.rootFileNames) === null || _a === void 0 ? void 0 : _a.length);\n },\n markAsDirty() {\n if (!this.dirty) {\n this.rootFileNames = undefined;\n this.projectVersion++;\n this.dirty = true;\n }\n },\n getScriptFileNames() {\n return this.rootFileNames || ts.emptyArray;\n },\n getLanguageService() {\n throw new Error(\"AutoImportProviderProject language service should never be used. To get the program, use `project.getCurrentProgram()`.\");\n },\n onAutoImportProviderSettingsChanged() {\n throw new Error(\"AutoImportProviderProject is an auto import provider; use `markAsDirty()` instead.\");\n },\n onPackageJsonChange() {\n throw new Error(\"package.json changes should be notified on an AutoImportProvider's host project\");\n },\n getModuleResolutionHostForAutoImportProvider() {\n throw new Error(\"AutoImportProviderProject cannot provide its own host; use `hostProject.getModuleResolutionHostForAutomImportProvider()` instead.\");\n },\n includePackageJsonAutoImports() {\n return 0 /* PackageJsonAutoImportPreference.Off */;\n },\n getTypeAcquisition() {\n return { enable: false };\n },\n getSymlinkCache() {\n return this.hostProject.getSymlinkCache();\n },\n getModuleResolutionCache() {\n var _a, _b;\n // @ts-expect-error\n return (_b = (_a = this.hostProject.languageService) === null || _a === void 0 ? void 0 : _a.getProgram()) === null || _b === void 0 ? void 0 : _b.getModuleResolutionCache();\n } });\n return (0, project_1.initProject)(project, new Proxy(host, {\n get(target, key) {\n return key in project ? project[key] : target[key];\n },\n set(_target, key, value) {\n project[key] = value;\n return true;\n }\n }), createLanguageService);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initProject = exports.createProject = void 0;\nconst moduleSpecifierCache_1 = require(\"./moduleSpecifierCache\");\nconst autoImportProviderProject_1 = require(\"./autoImportProviderProject\");\n;\nfunction createProject(ts, host, createLanguageService, options) {\n var _a, _b;\n const { combinePaths, inferredTypesContainingFile, createSymlinkCache, toPath, createCacheableExportInfoMap, timestamp, isInsideNodeModules, LanguageServiceMode, } = ts;\n const tsCreateModuleSpecifierCache = (_a = ts.server) === null || _a === void 0 ? void 0 : _a.createModuleSpecifierCache;\n const noopHost = {\n watchNodeModulesForPackageJsonChanges: () => ({ close: () => { } }),\n toPath(fileName) {\n return toPath(fileName, host.getCurrentDirectory(), projectService.toCanonicalFileName);\n }\n };\n const AutoImportProviderProject = (0, autoImportProviderProject_1.createAutoImportProviderProjectStatic)(ts, host, createLanguageService);\n const { projectService, compilerOptions, currentDirectory } = options;\n function updateProjectIfDirty(project) {\n return project.dirty && project.updateGraph();\n }\n return {\n dirty: false,\n hostProject: undefined,\n languageServiceEnabled: true,\n languageService: undefined,\n projectService,\n getCanonicalFileName: projectService.toCanonicalFileName,\n exportMapCache: undefined,\n getCachedExportInfoMap() {\n return (this.exportMapCache || (this.exportMapCache = createCacheableExportInfoMap(this)));\n },\n clearCachedExportInfoMap() {\n var _a;\n (_a = this.exportMapCache) === null || _a === void 0 ? void 0 : _a.clear();\n },\n moduleSpecifierCache: tsCreateModuleSpecifierCache\n ? tsCreateModuleSpecifierCache(noopHost)\n : ((_b = options.createModuleSpecifierCache) !== null && _b !== void 0 ? _b : moduleSpecifierCache_1.createModuleSpecifierCache)(),\n getModuleSpecifierCache() {\n return this.moduleSpecifierCache;\n },\n compilerOptions,\n getCompilationSettings() {\n return this.compilerOptions;\n },\n getCompilerOptions() {\n return this.compilerOptions;\n },\n program: undefined,\n getCurrentProgram() {\n return this.program;\n },\n currentDirectory: projectService.getNormalizedAbsolutePath(currentDirectory || ''),\n getCurrentDirectory() {\n return this.currentDirectory;\n },\n symlinks: undefined,\n getSymlinkCache() {\n if (!this.symlinks) {\n this.symlinks = createSymlinkCache(this.getCurrentDirectory(), this.getCanonicalFileName);\n }\n if (this.program && !this.symlinks.hasProcessedResolutions()) {\n this.symlinks.setSymlinksFromResolutions(this.program.getSourceFiles(), \n // @ts-expect-error\n this.program.getAutomaticTypeDirectiveResolutions());\n }\n return this.symlinks;\n },\n packageJsonsForAutoImport: undefined,\n getPackageJsonsForAutoImport(rootDir) {\n const packageJsons = this.getPackageJsonsVisibleToFile(combinePaths(this.currentDirectory, inferredTypesContainingFile), rootDir);\n this.packageJsonsForAutoImport = new Set(packageJsons.map((p) => p.fileName));\n return packageJsons;\n },\n getPackageJsonsVisibleToFile(fileName, rootDir) {\n return this.projectService.getPackageJsonsVisibleToFile(fileName, rootDir);\n },\n getModuleResolutionHostForAutoImportProvider() {\n var _a;\n if (this.program) {\n return {\n // @ts-expect-error\n fileExists: this.program.fileExists,\n // @ts-expect-error\n directoryExists: this.program.directoryExists,\n // @ts-expect-error\n realpath: this.program.realpath || ((_a = this.projectService.host.realpath) === null || _a === void 0 ? void 0 : _a.bind(this.projectService.host)),\n getCurrentDirectory: this.getCurrentDirectory.bind(this),\n readFile: this.projectService.host.readFile.bind(this.projectService.host),\n getDirectories: this.projectService.host.getDirectories.bind(this.projectService.host),\n // trace: this.projectService.host.trace?.bind(this.projectService.host),\n trace: () => { },\n // @ts-expect-error\n useCaseSensitiveFileNames: this.program.useCaseSensitiveFileNames(),\n };\n }\n return this.projectService.host;\n },\n autoImportProviderHost: undefined,\n getPackageJsonAutoImportProvider() {\n if (this.autoImportProviderHost === false) {\n return undefined;\n }\n if (this.projectService.serverMode !== LanguageServiceMode.Semantic) {\n this.autoImportProviderHost = false;\n return undefined;\n }\n if (this.autoImportProviderHost) {\n updateProjectIfDirty(this.autoImportProviderHost);\n if (this.autoImportProviderHost.isEmpty()) {\n this.autoImportProviderHost.close();\n this.autoImportProviderHost = undefined;\n return undefined;\n }\n return this.autoImportProviderHost.getCurrentProgram();\n }\n const dependencySelection = projectService.includePackageJsonAutoImports();\n if (dependencySelection) {\n // tracing?.push(tracing.Phase.Session, \"getPackageJsonAutoImportProvider\");\n const start = timestamp();\n this.autoImportProviderHost = AutoImportProviderProject.create(dependencySelection, this, this.getModuleResolutionHostForAutoImportProvider());\n if (this.autoImportProviderHost) {\n updateProjectIfDirty(this.autoImportProviderHost);\n this.sendPerformanceEvent('CreatePackageJsonAutoImportProvider', timestamp() - start);\n // tracing?.pop();\n return this.autoImportProviderHost.getCurrentProgram();\n }\n // tracing?.pop();\n }\n },\n includePackageJsonAutoImports() {\n if (this.projectService.includePackageJsonAutoImports() === 0 /* PackageJsonAutoImportPreference.Off */ ||\n !this.languageServiceEnabled ||\n isInsideNodeModules(this.currentDirectory) /* ||\n !this.isDefaultProjectForOpenFiles()*/) {\n return 0 /* PackageJsonAutoImportPreference.Off */;\n }\n return this.projectService.includePackageJsonAutoImports();\n },\n close() { },\n log(_message) { },\n sendPerformanceEvent(_kind, _durationMs) { },\n toPath(fileName) {\n return toPath(fileName, this.currentDirectory, this.projectService.toCanonicalFileName);\n },\n getGlobalTypingsCacheLocation() {\n return undefined;\n },\n useSourceOfProjectReferenceRedirect() {\n return !this.getCompilerOptions().disableSourceOfProjectReferenceRedirect;\n },\n onAutoImportProviderSettingsChanged() {\n var _a;\n if (this.autoImportProviderHost === false) {\n this.autoImportProviderHost = undefined;\n }\n else {\n (_a = this.autoImportProviderHost) === null || _a === void 0 ? void 0 : _a.markAsDirty();\n }\n },\n };\n}\nexports.createProject = createProject;\nfunction initProject(project, host, createLanguageService) {\n const languageService = createLanguageService(host);\n project.languageService = languageService;\n project.program = languageService.getProgram();\n return project;\n}\nexports.initProject = initProject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst projectService_1 = require(\"./projectService\");\nconst project_1 = require(\"./project\");\n// only create the once for all hosts, as this will improve performance as the internal cache can be reused\nlet projectService;\nconst projects = new Set();\nfunction default_1(ts, sys, host, createLanguageService, _createProject = project_1.createProject) {\n const hostConfiguration = { preferences: { includePackageJsonAutoImports: 'auto' } };\n if (!projectService) {\n projectService = (0, projectService_1.createProjectService)(ts, sys, host.getCurrentDirectory(), hostConfiguration, ts.LanguageServiceMode.Semantic);\n }\n const project = _createProject(ts, host, createLanguageService, {\n projectService,\n currentDirectory: host.getCurrentDirectory(),\n compilerOptions: host.getCompilationSettings(),\n });\n const proxyMethods = [\n 'getCachedExportInfoMap',\n 'getModuleSpecifierCache',\n 'getGlobalTypingsCacheLocation',\n 'getSymlinkCache',\n 'getPackageJsonsVisibleToFile',\n 'getPackageJsonAutoImportProvider',\n 'includePackageJsonAutoImports',\n 'useSourceOfProjectReferenceRedirect'\n ];\n proxyMethods.forEach(key => host[key] = project[key].bind(project));\n (0, project_1.initProject)(project, host, createLanguageService);\n projects.add(project);\n return {\n languageService: project.languageService,\n setPreferences(newPreferences) {\n let onAutoImportProviderSettingsChanged = newPreferences.includePackageJsonAutoImports !== hostConfiguration.preferences.includePackageJsonAutoImports;\n hostConfiguration.preferences = newPreferences;\n if (onAutoImportProviderSettingsChanged) {\n project.onAutoImportProviderSettingsChanged();\n }\n },\n projectUpdated(path) {\n projects.forEach(projectToUpdate => {\n var _a, _b, _c;\n if (project === projectToUpdate || !projectToUpdate.autoImportProviderHost)\n return;\n const realPaths = [...(_c = (_b = (_a = projectToUpdate.symlinks) === null || _a === void 0 ? void 0 : _a.getSymlinkedDirectoriesByRealpath()) === null || _b === void 0 ? void 0 : _b.keys()) !== null && _c !== void 0 ? _c : []]\n .map(name => projectToUpdate.projectService.getNormalizedAbsolutePath(name));\n if (realPaths.includes(projectToUpdate.projectService.toCanonicalFileName(path))) {\n projectToUpdate.autoImportProviderHost.markAsDirty();\n }\n });\n },\n };\n}\nexports.default = default_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createProject = void 0;\nconst project_1 = require(\"../5_0/project\");\nfunction createProject(ts, host, createLanguageService, options) {\n const { createSymlinkCache, ensureTrailingDirectorySeparator } = ts;\n const project = (0, project_1.createProject)(ts, host, createLanguageService, options);\n project.getSymlinkCache = () => {\n if (!project.symlinks) {\n project.symlinks = createSymlinkCache(project.getCurrentDirectory(), project.getCanonicalFileName);\n const setSymlinkedDirectory = project.symlinks.setSymlinkedDirectory;\n project.symlinks.setSymlinkedDirectory = (symlink, real) => {\n if (typeof real === 'object') {\n real.real = ensureTrailingDirectorySeparator(real.real);\n real.realPath = ensureTrailingDirectorySeparator(real.realPath);\n }\n setSymlinkedDirectory(symlink, real);\n };\n }\n if (project.program && !project.symlinks.hasProcessedResolutions()) {\n project.symlinks.setSymlinksFromResolutions(\n // @ts-expect-error\n project.program.forEachResolvedModule, \n // @ts-expect-error\n project.program.forEachResolvedTypeReferenceDirective, \n // @ts-expect-error\n project.program.getAutomaticTypeDirectiveResolutions());\n }\n return project.symlinks;\n };\n return project;\n}\nexports.createProject = createProject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst _5_0_1 = require(\"../5_0\");\nconst project_1 = require(\"./project\");\nfunction default_1(ts, sys, host, createLanguageService) {\n return (0, _5_0_1.default)(ts, sys, host, createLanguageService, project_1.createProject);\n}\nexports.default = default_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createModuleSpecifierCache = void 0;\nfunction createModuleSpecifierCache(\n// host: ModuleSpecifierResolutionCacheHost\n) {\n let containedNodeModulesWatchers;\n let cache;\n let currentKey;\n const result = {\n get(fromFileName, toFileName, preferences, options) {\n if (!cache || currentKey !== key(fromFileName, preferences, options))\n return undefined;\n return cache.get(toFileName);\n },\n set(fromFileName, toFileName, preferences, options, kind, modulePaths, moduleSpecifiers) {\n ensureCache(fromFileName, preferences, options).set(toFileName, createInfo(kind, modulePaths, moduleSpecifiers, /*isBlockedByPackageJsonDependencies*/ false));\n // If any module specifiers were generated based off paths in node_modules,\n // a package.json file in that package was read and is an input to the cached.\n // Instead of watching each individual package.json file, set up a wildcard\n // directory watcher for any node_modules referenced and clear the cache when\n // it sees any changes.\n if (moduleSpecifiers) {\n for (const p of modulePaths) {\n if (p.isInNodeModules) {\n // No trailing slash\n // const nodeModulesPath = p.path.substring(0, p.path.indexOf(nodeModulesPathPart) + nodeModulesPathPart.length - 1);\n // const key = host.toPath(nodeModulesPath);\n // if (!containedNodeModulesWatchers?.has(key)) {\n //\t (containedNodeModulesWatchers ||= new Map()).set(\n //\t\t key,\n //\t\t host.watchNodeModulesForPackageJsonChanges(nodeModulesPath),\n //\t );\n // }\n }\n }\n }\n },\n setModulePaths(fromFileName, toFileName, preferences, options, modulePaths) {\n const cache = ensureCache(fromFileName, preferences, options);\n const info = cache.get(toFileName);\n if (info) {\n info.modulePaths = modulePaths;\n }\n else {\n cache.set(toFileName, createInfo(/*kind*/ undefined, modulePaths, /*moduleSpecifiers*/ undefined, /*isBlockedByPackageJsonDependencies*/ undefined));\n }\n },\n setBlockedByPackageJsonDependencies(fromFileName, toFileName, preferences, options, isBlockedByPackageJsonDependencies) {\n const cache = ensureCache(fromFileName, preferences, options);\n const info = cache.get(toFileName);\n if (info) {\n info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies;\n }\n else {\n cache.set(toFileName, createInfo(/*kind*/ undefined, /*modulePaths*/ undefined, /*moduleSpecifiers*/ undefined, isBlockedByPackageJsonDependencies));\n }\n },\n clear() {\n containedNodeModulesWatchers === null || containedNodeModulesWatchers === void 0 ? void 0 : containedNodeModulesWatchers.forEach(watcher => watcher.close());\n cache === null || cache === void 0 ? void 0 : cache.clear();\n containedNodeModulesWatchers === null || containedNodeModulesWatchers === void 0 ? void 0 : containedNodeModulesWatchers.clear();\n currentKey = undefined;\n },\n count() {\n return cache ? cache.size : 0;\n }\n };\n // if (Debug.isDebugging) {\n //\t Object.defineProperty(result, \"__cache\", { get: () => cache });\n // }\n return result;\n function ensureCache(fromFileName, preferences, options) {\n const newKey = key(fromFileName, preferences, options);\n if (cache && (currentKey !== newKey)) {\n result.clear();\n }\n currentKey = newKey;\n return cache || (cache = new Map());\n }\n function key(fromFileName, preferences, options) {\n return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`;\n }\n function createInfo(kind, modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies) {\n return { kind, modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies };\n }\n}\nexports.createModuleSpecifierCache = createModuleSpecifierCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createProject = void 0;\nconst project_1 = require(\"../5_3/project\");\nconst moduleSpecifierCache_1 = require(\"./moduleSpecifierCache\");\nfunction createProject(ts, host, createLanguageService, options) {\n // @ts-expect-error\n options.createModuleSpecifierCache = moduleSpecifierCache_1.createModuleSpecifierCache;\n return (0, project_1.createProject)(ts, host, createLanguageService, options);\n}\nexports.createProject = createProject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst _5_0_1 = require(\"../5_0\");\nconst project_1 = require(\"./project\");\nfunction default_1(ts, sys, host, createLanguageService) {\n return (0, _5_0_1.default)(ts, sys, host, createLanguageService, project_1.createProject);\n}\nexports.default = default_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createModuleSpecifierCache = void 0;\nfunction createModuleSpecifierCache(\n// host: ModuleSpecifierResolutionCacheHost\n) {\n let containedNodeModulesWatchers;\n let cache;\n let currentKey;\n const result = {\n get(fromFileName, toFileName, preferences, options) {\n if (!cache || currentKey !== key(fromFileName, preferences, options))\n return undefined;\n return cache.get(toFileName);\n },\n set(fromFileName, toFileName, preferences, options, kind, modulePaths, moduleSpecifiers) {\n ensureCache(fromFileName, preferences, options).set(toFileName, createInfo(kind, modulePaths, moduleSpecifiers, /*packageName */ undefined, /*isBlockedByPackageJsonDependencies*/ false));\n // If any module specifiers were generated based off paths in node_modules,\n // a package.json file in that package was read and is an input to the cached.\n // Instead of watching each individual package.json file, set up a wildcard\n // directory watcher for any node_modules referenced and clear the cache when\n // it sees any changes.\n if (moduleSpecifiers) {\n for (const p of modulePaths) {\n if (p.isInNodeModules) {\n // No trailing slash\n // const nodeModulesPath = p.path.substring(0, p.path.indexOf(nodeModulesPathPart) + nodeModulesPathPart.length - 1);\n // const key = host.toPath(nodeModulesPath);\n // if (!containedNodeModulesWatchers?.has(key)) {\n //\t (containedNodeModulesWatchers ||= new Map()).set(\n //\t\t key,\n //\t\t host.watchNodeModulesForPackageJsonChanges(nodeModulesPath),\n //\t );\n // }\n }\n }\n }\n },\n setModulePaths(fromFileName, toFileName, preferences, options, modulePaths) {\n const cache = ensureCache(fromFileName, preferences, options);\n const info = cache.get(toFileName);\n if (info) {\n info.modulePaths = modulePaths;\n }\n else {\n cache.set(toFileName, createInfo(/*kind*/ undefined, modulePaths, /*moduleSpecifiers*/ undefined, /*packageName */ undefined, /*isBlockedByPackageJsonDependencies*/ undefined));\n }\n },\n setBlockedByPackageJsonDependencies(fromFileName, toFileName, preferences, options, packageName, isBlockedByPackageJsonDependencies) {\n const cache = ensureCache(fromFileName, preferences, options);\n const info = cache.get(toFileName);\n if (info) {\n info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies;\n info.packageName = packageName;\n }\n else {\n cache.set(toFileName, createInfo(/*kind*/ undefined, /*modulePaths*/ undefined, /*moduleSpecifiers*/ undefined, /*packageName */ undefined, isBlockedByPackageJsonDependencies));\n }\n },\n clear() {\n containedNodeModulesWatchers === null || containedNodeModulesWatchers === void 0 ? void 0 : containedNodeModulesWatchers.forEach(watcher => watcher.close());\n cache === null || cache === void 0 ? void 0 : cache.clear();\n containedNodeModulesWatchers === null || containedNodeModulesWatchers === void 0 ? void 0 : containedNodeModulesWatchers.clear();\n currentKey = undefined;\n },\n count() {\n return cache ? cache.size : 0;\n }\n };\n // if (Debug.isDebugging) {\n //\t Object.defineProperty(result, \"__cache\", { get: () => cache });\n // }\n return result;\n function ensureCache(fromFileName, preferences, options) {\n const newKey = key(fromFileName, preferences, options);\n if (cache && (currentKey !== newKey)) {\n result.clear();\n }\n currentKey = newKey;\n return cache || (cache = new Map());\n }\n function key(fromFileName, preferences, options) {\n return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`;\n }\n function createInfo(kind, modulePaths, moduleSpecifiers, packageName, isBlockedByPackageJsonDependencies) {\n return { kind, modulePaths, moduleSpecifiers, packageName, isBlockedByPackageJsonDependencies };\n }\n}\nexports.createModuleSpecifierCache = createModuleSpecifierCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createProject = void 0;\nconst project_1 = require(\"../5_3/project\");\nconst moduleSpecifierCache_1 = require(\"./moduleSpecifierCache\");\nfunction createProject(ts, host, createLanguageService, options) {\n // @ts-expect-error\n options.createModuleSpecifierCache = moduleSpecifierCache_1.createModuleSpecifierCache;\n return (0, project_1.createProject)(ts, host, createLanguageService, options);\n}\nexports.createProject = createProject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst _5_0_1 = require(\"../5_0\");\nconst project_1 = require(\"./project\");\nfunction default_1(ts, sys, host, createLanguageService) {\n return (0, _5_0_1.default)(ts, sys, host, createLanguageService, project_1.createProject);\n}\nexports.default = default_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createLanguageService = void 0;\nconst semver = require(\"semver\");\nconst _4_0_1 = require(\"./4_0\");\nconst _4_4_1 = require(\"./4_4\");\nconst _4_7_1 = require(\"./4_7\");\nconst _5_0_1 = require(\"./5_0\");\nconst _5_3_1 = require(\"./5_3\");\nconst _5_5_1 = require(\"./5_5\");\nconst _5_6_1 = require(\"./5_6\");\nfunction createLanguageService(ts, sys, host, createLanguageService) {\n // moduleSpecifierCache changes introduced in 5.6.1-rc \n // https://github.com/microsoft/TypeScript/pull/59604\n if (semver.gte(ts.version, '5.6.1-rc')) {\n return (0, _5_6_1.default)(ts, sys, host, createLanguageService);\n }\n if (semver.gte(ts.version, '5.5.1')) {\n return (0, _5_5_1.default)(ts, sys, host, createLanguageService);\n }\n else if (semver.gte(ts.version, '5.3.0')) {\n return (0, _5_3_1.default)(ts, sys, host, createLanguageService);\n }\n else if (semver.gte(ts.version, '5.0.0')) {\n return (0, _5_0_1.default)(ts, sys, host, createLanguageService);\n }\n else if (semver.gte(ts.version, '4.7.0')) {\n const service = createLanguageService(host);\n (0, _4_7_1.default)(ts, host, service);\n return { languageService: service };\n }\n else if (semver.gte(ts.version, '4.4.0')) {\n const service = createLanguageService(host);\n (0, _4_4_1.default)(ts, host, service);\n return { languageService: service };\n }\n else if (semver.gte(ts.version, '4.0.0')) {\n const service = createLanguageService(host);\n (0, _4_0_1.default)(ts, host, service);\n return { languageService: service };\n }\n return { languageService: createLanguageService(host) };\n}\nexports.createLanguageService = createLanguageService;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUserPreferences = getUserPreferences;\nconst path = require(\"path-browserify\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nconst shared_1 = require(\"../shared\");\nasync function getUserPreferences(ctx, document) {\n let currentDirectory = '';\n if (ctx.project.typescript) {\n currentDirectory = ctx.project.typescript.languageServiceHost.getCurrentDirectory();\n }\n const uri = vscode_uri_1.URI.parse(document.uri);\n const documentUri = ctx.decodeEmbeddedDocumentUri(uri)?.[0] ?? uri;\n const config = await ctx.env.getConfiguration?.((0, shared_1.getConfigTitle)(document)) ?? {};\n const preferencesConfig = config?.preferences ?? {};\n const preferences = {\n ...config.unstable ?? {},\n quotePreference: getQuoteStylePreference(preferencesConfig),\n importModuleSpecifierPreference: getImportModuleSpecifierPreference(preferencesConfig),\n importModuleSpecifierEnding: getImportModuleSpecifierEndingPreference(preferencesConfig),\n jsxAttributeCompletionStyle: getJsxAttributeCompletionStyle(preferencesConfig),\n allowTextChangesInNewFiles: documentUri.scheme === 'file',\n providePrefixAndSuffixTextForRename: (preferencesConfig.renameShorthandProperties ?? true) === false\n ? false\n : (preferencesConfig.useAliasesForRenames ?? true),\n allowRenameOfImportPath: true,\n includeAutomaticOptionalChainCompletions: config.suggest?.includeAutomaticOptionalChainCompletions ?? true,\n provideRefactorNotApplicableReason: true,\n generateReturnInDocTemplate: config.suggest?.jsdoc?.generateReturns ?? true,\n includeCompletionsForImportStatements: config.suggest?.includeCompletionsForImportStatements ?? true,\n includeCompletionsWithSnippetText: config.suggest?.includeCompletionsWithSnippetText ?? true,\n includeCompletionsWithClassMemberSnippets: config.suggest?.classMemberSnippets?.enabled ?? true,\n includeCompletionsWithObjectLiteralMethodSnippets: config.suggest?.objectLiteralMethodSnippets?.enabled ?? true,\n autoImportFileExcludePatterns: getAutoImportFileExcludePatternsPreference(preferencesConfig, currentDirectory),\n autoImportSpecifierExcludeRegexes: preferencesConfig.autoImportSpecifierExcludeRegexes,\n useLabelDetailsInCompletionEntries: true,\n allowIncompleteCompletions: true,\n displayPartsForJSDoc: true,\n // inlay hints\n includeInlayParameterNameHints: getInlayParameterNameHintsPreference(config),\n includeInlayParameterNameHintsWhenArgumentMatchesName: !(config.inlayHints?.parameterNames?.suppressWhenArgumentMatchesName ?? true),\n includeInlayFunctionParameterTypeHints: config.inlayHints?.parameterTypes?.enabled ?? false,\n includeInlayVariableTypeHints: config.inlayHints?.variableTypes?.enabled ?? false,\n includeInlayVariableTypeHintsWhenTypeMatchesName: !(config.inlayHints?.variableTypes?.suppressWhenTypeMatchesName ?? true),\n includeInlayPropertyDeclarationTypeHints: config.inlayHints?.propertyDeclarationTypes?.enabled ?? false,\n includeInlayFunctionLikeReturnTypeHints: config.inlayHints?.functionLikeReturnTypes?.enabled ?? false,\n includeInlayEnumMemberValueHints: config.inlayHints?.enumMemberValues?.enabled ?? false,\n // https://github.com/microsoft/vscode/blob/main/extensions/typescript-language-features/src/languageFeatures/completions.ts#L728-L730\n includeCompletionsForModuleExports: config.suggest?.autoImports ?? true,\n includeCompletionsWithInsertText: true,\n includePackageJsonAutoImports: preferencesConfig.includePackageJsonAutoImports ?? 'auto',\n };\n return preferences;\n}\nfunction getQuoteStylePreference(config) {\n switch (config.quoteStyle) {\n case 'single':\n return 'single';\n case 'double':\n return 'double';\n default:\n return 'auto';\n }\n}\nfunction getAutoImportFileExcludePatternsPreference(config, workspacePath) {\n if (workspacePath) {\n return config.autoImportFileExcludePatterns?.map(p => {\n // Normalization rules: https://github.com/microsoft/TypeScript/pull/49578\n const slashNormalized = p.replace(/\\\\/g, '/');\n const isRelative = /^\\.\\.?($|\\/)/.test(slashNormalized);\n return path.isAbsolute(p)\n ? p\n : p.startsWith('*')\n ? '/' + slashNormalized\n : isRelative\n ? path.join(workspacePath, p)\n : '/**/' + slashNormalized;\n });\n }\n}\nfunction getImportModuleSpecifierPreference(config) {\n switch (config.importModuleSpecifier) {\n case 'project-relative':\n return 'project-relative';\n case 'relative':\n return 'relative';\n case 'non-relative':\n return 'non-relative';\n default:\n return undefined;\n }\n}\nfunction getImportModuleSpecifierEndingPreference(config) {\n switch (config.importModuleSpecifierEnding) {\n case 'minimal':\n return 'minimal';\n case 'index':\n return 'index';\n case 'js':\n return 'js';\n default:\n return 'minimal';\n // default: return 'auto';\n // fix https://github.com/johnsoncodehk/volar/issues/1667\n }\n}\nfunction getJsxAttributeCompletionStyle(config) {\n switch (config.jsxAttributeCompletionStyle) {\n case 'braces':\n return 'braces';\n case 'none':\n return 'none';\n default:\n return 'auto';\n }\n}\nfunction getInlayParameterNameHintsPreference(config) {\n switch (config.inlayHints?.parameterNames?.enabled) {\n case 'none':\n return 'none';\n case 'literals':\n return 'literals';\n case 'all':\n return 'all';\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=getUserPreferences.js.map","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addMissingOverride = exports.addMissingAwait = exports.fixImport = exports.spelling = exports.forgottenThisPropertyAccess = exports.unusedIdentifier = exports.unreachableCode = exports.classDoesntImplementInheritedAbstractMember = exports.classIncorrectlyImplementsInterface = exports.awaitInSyncFunction = exports.extendsInterfaceBecomesImplements = exports.constructorForDerivedNeedSuperCall = exports.annotateWithTypeFromJSDoc = void 0;\nexports.annotateWithTypeFromJSDoc = 'annotateWithTypeFromJSDoc';\nexports.constructorForDerivedNeedSuperCall = 'constructorForDerivedNeedSuperCall';\nexports.extendsInterfaceBecomesImplements = 'extendsInterfaceBecomesImplements';\nexports.awaitInSyncFunction = 'fixAwaitInSyncFunction';\nexports.classIncorrectlyImplementsInterface = 'fixClassIncorrectlyImplementsInterface';\nexports.classDoesntImplementInheritedAbstractMember = 'fixClassDoesntImplementInheritedAbstractMember';\nexports.unreachableCode = 'fixUnreachableCode';\nexports.unusedIdentifier = 'unusedIdentifier';\nexports.forgottenThisPropertyAccess = 'forgottenThisPropertyAccess';\nexports.spelling = 'spelling';\nexports.fixImport = 'import';\nexports.addMissingAwait = 'addMissingAwait';\nexports.addMissingOverride = 'fixOverrideModifier';\n//# sourceMappingURL=fixNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nexports.resolveFixAllCodeAction = resolveFixAllCodeAction;\nexports.resolveRefactorCodeAction = resolveRefactorCodeAction;\nexports.resolveOrganizeImportsCodeAction = resolveOrganizeImportsCodeAction;\nconst vscode_uri_1 = require(\"vscode-uri\");\nconst getFormatCodeSettings_1 = require(\"../configs/getFormatCodeSettings\");\nconst getUserPreferences_1 = require(\"../configs/getUserPreferences\");\nconst shared_1 = require(\"../shared\");\nconst lspConverters_1 = require(\"../utils/lspConverters\");\nfunction register(ctx) {\n return async (codeAction, formattingOptions) => {\n const data = codeAction.data;\n const document = ctx.getTextDocument(vscode_uri_1.URI.parse(data.uri));\n const [formatOptions, preferences] = await Promise.all([\n (0, getFormatCodeSettings_1.getFormatCodeSettings)(ctx, document, formattingOptions),\n (0, getUserPreferences_1.getUserPreferences)(ctx, document),\n ]);\n if (data?.type === 'fixAll') {\n resolveFixAllCodeAction(ctx, codeAction, data, formatOptions, preferences);\n }\n else if (data?.type === 'refactor') {\n resolveRefactorCodeAction(ctx, codeAction, data, document, formatOptions, preferences);\n }\n else if (data?.type === 'organizeImports') {\n resolveOrganizeImportsCodeAction(ctx, codeAction, data, formatOptions, preferences);\n }\n return codeAction;\n };\n}\nfunction resolveFixAllCodeAction(ctx, codeAction, data, formatOptions, preferences) {\n const fixes = data.fixIds.map(fixId => (0, shared_1.safeCall)(() => ctx.languageService.getCombinedCodeFix({ type: 'file', fileName: data.fileName }, fixId, formatOptions, preferences)));\n const changes = fixes.map(fix => fix?.changes ?? []).flat();\n codeAction.edit = (0, lspConverters_1.convertFileTextChanges)(changes, ctx.fileNameToUri, ctx.getTextDocument);\n}\nfunction resolveRefactorCodeAction(ctx, codeAction, data, document, formatOptions, preferences) {\n const editInfo = (0, shared_1.safeCall)(() => ctx.languageService.getEditsForRefactor(data.fileName, formatOptions, data.range, data.refactorName, data.actionName, preferences));\n if (!editInfo) {\n return;\n }\n codeAction.edit = (0, lspConverters_1.convertFileTextChanges)(editInfo.edits, ctx.fileNameToUri, ctx.getTextDocument);\n if (editInfo.renameLocation !== undefined && editInfo.renameFilename !== undefined) {\n codeAction.command = ctx.commands.rename.create(document.uri, document.positionAt(editInfo.renameLocation));\n }\n}\nfunction resolveOrganizeImportsCodeAction(ctx, codeAction, data, formatOptions, preferences) {\n const changes = (0, shared_1.safeCall)(() => ctx.languageService.organizeImports({ type: 'file', fileName: data.fileName }, formatOptions, preferences));\n codeAction.edit = (0, lspConverters_1.convertFileTextChanges)(changes ?? [], ctx.fileNameToUri, ctx.getTextDocument);\n}\n//# sourceMappingURL=codeActionResolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nconst getFormatCodeSettings_1 = require(\"../configs/getFormatCodeSettings\");\nconst getUserPreferences_1 = require(\"../configs/getUserPreferences\");\nconst shared_1 = require(\"../shared\");\nconst fixNames = require(\"../utils/fixNames\");\nconst lspConverters_1 = require(\"../utils/lspConverters\");\nconst codeActionResolve_1 = require(\"./codeActionResolve\");\nconst renameCommandRefactors = new Set([\n 'refactor.rewrite.property.generateAccessors',\n 'refactor.extract.type',\n 'refactor.extract.interface',\n 'refactor.extract.typedef',\n 'refactor.extract.constant',\n 'refactor.extract.function',\n]);\nfunction register(ctx) {\n let resolveCommandSupport = ctx.env.clientCapabilities?.textDocument?.codeAction?.resolveSupport?.properties\n ?.includes('command');\n let resolveEditSupport = ctx.env.clientCapabilities?.textDocument?.codeAction?.resolveSupport?.properties?.includes('edit');\n let loged = false;\n const wranUnsupportResolve = () => {\n if (loged) {\n return;\n }\n loged = true;\n console.warn('[volar-service-typescript] The language client lacks support for the command/edit properties in the resolve code action. Therefore, the code action resolve is pre-calculated.');\n };\n if (!ctx.env.clientCapabilities) {\n resolveCommandSupport = true;\n resolveEditSupport = true;\n }\n return async (uri, document, range, context, formattingOptions) => {\n const [formatOptions, preferences] = await Promise.all([\n (0, getFormatCodeSettings_1.getFormatCodeSettings)(ctx, document, formattingOptions),\n (0, getUserPreferences_1.getUserPreferences)(ctx, document),\n ]);\n const fileName = ctx.uriToFileName(uri);\n const start = document.offsetAt(range.start);\n const end = document.offsetAt(range.end);\n let result = [];\n const onlyQuickFix = matchOnlyKind(`${'quickfix'}.ts`);\n if (!context.only || onlyQuickFix) {\n for (const error of context.diagnostics) {\n const codeFixes = (0, shared_1.safeCall)(() => ctx.languageService.getCodeFixesAtPosition(fileName, document.offsetAt(error.range.start), document.offsetAt(error.range.end), [Number(error.code)], formatOptions, preferences)) ?? [];\n for (const codeFix of codeFixes) {\n result = result.concat(convertCodeFixAction(codeFix, [error], onlyQuickFix ?? ''));\n }\n }\n }\n if (context.only) {\n for (const only of context.only) {\n if (only.split('.')[0] === 'refactor') {\n const refactors = (0, shared_1.safeCall)(() => ctx.languageService.getApplicableRefactors(fileName, { pos: start, end: end }, preferences, undefined, only)) ?? [];\n for (const refactor of refactors) {\n result = result.concat(convertApplicableRefactorInfo(refactor));\n }\n }\n }\n }\n else {\n const refactors = (0, shared_1.safeCall)(() => ctx.languageService.getApplicableRefactors(fileName, { pos: start, end: end }, preferences, undefined, undefined)) ?? [];\n for (const refactor of refactors) {\n result = result.concat(convertApplicableRefactorInfo(refactor));\n }\n }\n const onlySourceOrganizeImports = matchOnlyKind(`${'source.organizeImports'}.ts`);\n if (onlySourceOrganizeImports) {\n const action = {\n title: 'Organize Imports',\n kind: onlySourceOrganizeImports,\n };\n const data = {\n type: 'organizeImports',\n uri: document.uri,\n fileName,\n };\n if (resolveEditSupport) {\n action.data = data;\n }\n else {\n wranUnsupportResolve();\n (0, codeActionResolve_1.resolveOrganizeImportsCodeAction)(ctx, action, data, formatOptions, preferences);\n }\n result.push(action);\n }\n const onlySourceFixAll = matchOnlyKind(`${'source.fixAll'}.ts`);\n if (onlySourceFixAll) {\n const action = {\n title: 'Fix All',\n kind: onlySourceFixAll,\n };\n const data = {\n uri: document.uri,\n type: 'fixAll',\n fileName,\n fixIds: [\n fixNames.classIncorrectlyImplementsInterface,\n fixNames.awaitInSyncFunction,\n fixNames.unreachableCode,\n ],\n };\n if (resolveEditSupport) {\n action.data = data;\n }\n else {\n wranUnsupportResolve();\n (0, codeActionResolve_1.resolveFixAllCodeAction)(ctx, action, data, formatOptions, preferences);\n }\n result.push(action);\n }\n const onlyRemoveUnused = matchOnlyKind(`${'source'}.removeUnused.ts`);\n if (onlyRemoveUnused) {\n const action = {\n title: 'Remove all unused code',\n kind: onlyRemoveUnused,\n };\n const data = {\n uri: document.uri,\n type: 'fixAll',\n fileName,\n fixIds: [\n // not working and throw\n fixNames.unusedIdentifier,\n // TODO: remove patching\n 'unusedIdentifier_prefix',\n 'unusedIdentifier_deleteImports',\n 'unusedIdentifier_delete',\n 'unusedIdentifier_infer',\n ],\n };\n if (resolveEditSupport) {\n action.data = data;\n }\n else {\n wranUnsupportResolve();\n (0, codeActionResolve_1.resolveFixAllCodeAction)(ctx, action, data, formatOptions, preferences);\n }\n result.push(action);\n }\n const onlyAddMissingImports = matchOnlyKind(`${'source'}.addMissingImports.ts`);\n if (onlyAddMissingImports) {\n const action = {\n title: 'Add all missing imports',\n kind: onlyAddMissingImports,\n };\n const data = {\n uri: document.uri,\n type: 'fixAll',\n fileName,\n fixIds: [\n // not working and throw\n fixNames.fixImport,\n // TODO: remove patching\n 'fixMissingImport',\n ],\n };\n if (resolveEditSupport) {\n action.data = data;\n }\n else {\n wranUnsupportResolve();\n (0, codeActionResolve_1.resolveFixAllCodeAction)(ctx, action, data, formatOptions, preferences);\n }\n result.push(action);\n }\n for (const codeAction of result) {\n if (codeAction.diagnostics === undefined) {\n codeAction.diagnostics = context.diagnostics;\n }\n }\n return result;\n function matchOnlyKind(kind) {\n if (context.only) {\n for (const only of context.only) {\n const a = only.split('.');\n const b = kind.split('.');\n if (a.length <= b.length) {\n let matchNums = 0;\n for (let i = 0; i < a.length; i++) {\n if (a[i] === b[i]) {\n matchNums++;\n }\n }\n if (matchNums === a.length) {\n return only;\n }\n }\n }\n }\n }\n function convertCodeFixAction(codeFix, diagnostics, kind) {\n const edit = (0, lspConverters_1.convertFileTextChanges)(codeFix.changes, ctx.fileNameToUri, ctx.getTextDocument);\n const codeActions = [];\n const fix = {\n title: codeFix.description,\n kind,\n edit,\n };\n fix.diagnostics = diagnostics;\n codeActions.push(fix);\n if (codeFix.fixAllDescription && codeFix.fixId) {\n const fixAll = {\n title: codeFix.fixAllDescription,\n kind,\n };\n const data = {\n uri: document.uri,\n type: 'fixAll',\n fileName,\n fixIds: [codeFix.fixId],\n };\n if (resolveEditSupport) {\n fixAll.data = data;\n }\n else {\n wranUnsupportResolve();\n (0, codeActionResolve_1.resolveFixAllCodeAction)(ctx, fixAll, data, formatOptions, preferences);\n }\n fixAll.diagnostics = diagnostics;\n codeActions.push(fixAll);\n }\n return codeActions;\n }\n function convertApplicableRefactorInfo(refactor) {\n const codeActions = [];\n for (const action of refactor.actions) {\n const codeAction = {\n title: action.description,\n kind: action.kind,\n };\n if (action.notApplicableReason) {\n codeAction.disabled = { reason: action.notApplicableReason };\n }\n if (refactor.inlineable) {\n codeAction.isPreferred = true;\n }\n const data = {\n uri: document.uri,\n type: 'refactor',\n fileName,\n range: { pos: start, end: end },\n refactorName: refactor.name,\n actionName: action.name,\n };\n const hasCommand = renameCommandRefactors.has(action.kind);\n if (hasCommand && resolveCommandSupport && resolveEditSupport) {\n codeAction.data = data;\n }\n else if (!hasCommand && resolveEditSupport) {\n codeAction.data = data;\n }\n else if (!codeAction.disabled) {\n wranUnsupportResolve();\n (0, codeActionResolve_1.resolveRefactorCodeAction)(ctx, codeAction, data, document, formatOptions, preferences);\n }\n codeActions.push(codeAction);\n }\n return codeActions;\n }\n };\n}\n//# sourceMappingURL=codeAction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.register = register;\nexports.convertClassificationsToSemanticTokens = convertClassificationsToSemanticTokens;\nconst shared_1 = require(\"../shared\");\nfunction register(ts, ctx) {\n return (uri, document, range, legend) => {\n const fileName = ctx.uriToFileName(uri);\n const start = range ? document.offsetAt(range.start) : 0;\n const length = range ? (document.offsetAt(range.end) - start) : document.getText().length;\n if (ctx.project.typescript?.languageServiceHost.getCancellationToken?.().isCancellationRequested()) {\n return;\n }\n const response = (0, shared_1.safeCall)(() => ctx.languageService.getEncodedSemanticClassifications(fileName, { start, length }, ts.SemanticClassificationFormat.TwentyTwenty));\n if (!response) {\n return;\n }\n return convertClassificationsToSemanticTokens(document, { start, length }, legend, response);\n };\n}\nfunction convertClassificationsToSemanticTokens(document, { start, length }, legend, response) {\n let tokenModifiersTable = [];\n tokenModifiersTable[2 /* TokenModifier.async */] = 1 << legend.tokenModifiers.indexOf('async');\n tokenModifiersTable[0 /* TokenModifier.declaration */] = 1 << legend.tokenModifiers.indexOf('declaration');\n tokenModifiersTable[3 /* TokenModifier.readonly */] = 1 << legend.tokenModifiers.indexOf('readonly');\n tokenModifiersTable[1 /* TokenModifier.static */] = 1 << legend.tokenModifiers.indexOf('static');\n tokenModifiersTable[5 /* TokenModifier.local */] = 1 << legend.tokenModifiers.indexOf('local');\n tokenModifiersTable[4 /* TokenModifier.defaultLibrary */] = 1 << legend.tokenModifiers.indexOf('defaultLibrary');\n tokenModifiersTable = tokenModifiersTable.map(mod => Math.max(mod, 0));\n const end = start + length;\n const tokenSpan = response.spans;\n const tokens = [];\n let i = 0;\n while (i < tokenSpan.length) {\n const offset = tokenSpan[i++];\n if (offset >= end) {\n break;\n }\n const length = tokenSpan[i++];\n const tsClassification = tokenSpan[i++];\n const tokenType = getTokenTypeFromClassification(tsClassification);\n if (tokenType === undefined) {\n continue;\n }\n const tokenModifiers = getTokenModifierFromClassification(tsClassification);\n // we can use the document's range conversion methods because the result is at the same version as the document\n const startPos = document.positionAt(offset);\n const endPos = document.positionAt(offset + length);\n const serverToken = tsTokenTypeToServerTokenType(tokenType);\n if (serverToken === undefined) {\n continue;\n }\n const serverTokenModifiers = tsTokenModifierToServerTokenModifier(tokenModifiers);\n for (let line = startPos.line; line <= endPos.line; line++) {\n const startCharacter = line === startPos.line ? startPos.character : 0;\n const endCharacter = line === endPos.line ? endPos.character : docLineLength(document, line);\n tokens.push([line, startCharacter, endCharacter - startCharacter, serverToken, serverTokenModifiers]);\n }\n }\n return tokens;\n function tsTokenTypeToServerTokenType(tokenType) {\n return legend.tokenTypes.indexOf(tokenTypes[tokenType]);\n }\n function tsTokenModifierToServerTokenModifier(input) {\n let m = 0;\n let i = 0;\n while (input) {\n if (input & 1) {\n m |= tokenModifiersTable[i];\n }\n input = input >> 1;\n i++;\n }\n return m;\n }\n}\nfunction docLineLength(document, line) {\n const currentLineOffset = document.offsetAt({ line, character: 0 });\n const nextLineOffset = document.offsetAt({ line: line + 1, character: 0 });\n return nextLineOffset - currentLineOffset;\n}\nfunction getTokenTypeFromClassification(tsClassification) {\n if (tsClassification > 255 /* TokenEncodingConsts.modifierMask */) {\n return (tsClassification >> 8 /* TokenEncodingConsts.typeOffset */) - 1;\n }\n return undefined;\n}\nfunction getTokenModifierFromClassification(tsClassification) {\n return tsClassification & 255 /* TokenEncodingConsts.modifierMask */;\n}\nconst tokenTypes = [];\ntokenTypes[0 /* TokenType.class */] = 'class';\ntokenTypes[1 /* TokenType.enum */] = 'enum';\ntokenTypes[2 /* TokenType.interface */] = 'interface';\ntokenTypes[3 /* TokenType.namespace */] = 'namespace';\ntokenTypes[4 /* TokenType.typeParameter */] = 'typeParameter';\ntokenTypes[5 /* TokenType.type */] = 'type';\ntokenTypes[6 /* TokenType.parameter */] = 'parameter';\ntokenTypes[7 /* TokenType.variable */] = 'variable';\ntokenTypes[8 /* TokenType.enumMember */] = 'enumMember';\ntokenTypes[9 /* TokenType.property */] = 'property';\ntokenTypes[10 /* TokenType.function */] = 'function';\ntokenTypes[11 /* TokenType.method */] = 'method';\nconst tokenModifiers = [];\ntokenModifiers[2 /* TokenModifier.async */] = 'async';\ntokenModifiers[0 /* TokenModifier.declaration */] = 'declaration';\ntokenModifiers[3 /* TokenModifier.readonly */] = 'readonly';\ntokenModifiers[1 /* TokenModifier.static */] = 'static';\ntokenModifiers[5 /* TokenModifier.local */] = 'local';\ntokenModifiers[4 /* TokenModifier.defaultLibrary */] = 'defaultLibrary';\n// mapping for the original ExperimentalProtocol.ClassificationType from TypeScript (only used when plugin is not available)\nconst tokenTypeMap = [];\ntokenTypeMap[11 /* ExperimentalProtocol.ClassificationType.className */] = 0 /* TokenType.class */;\ntokenTypeMap[12 /* ExperimentalProtocol.ClassificationType.enumName */] = 1 /* TokenType.enum */;\ntokenTypeMap[13 /* ExperimentalProtocol.ClassificationType.interfaceName */] = 2 /* TokenType.interface */;\ntokenTypeMap[14 /* ExperimentalProtocol.ClassificationType.moduleName */] = 3 /* TokenType.namespace */;\ntokenTypeMap[15 /* ExperimentalProtocol.ClassificationType.typeParameterName */] = 4 /* TokenType.typeParameter */;\ntokenTypeMap[16 /* ExperimentalProtocol.ClassificationType.typeAliasName */] = 5 /* TokenType.type */;\ntokenTypeMap[17 /* ExperimentalProtocol.ClassificationType.parameterName */] = 6 /* TokenType.parameter */;\n//# sourceMappingURL=semanticTokens.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.snippetForFunctionCall = snippetForFunctionCall;\nconst PConst = require(\"../protocol.const\");\nfunction snippetForFunctionCall(item, displayParts) {\n if (item.insertText && typeof item.insertText !== 'string') {\n return { snippet: item.insertText, parameterCount: 0 };\n }\n let _tabstop = 1;\n const parameterListParts = getParameterListParts(displayParts);\n let snippet = '';\n snippet += `${item.insertText || item.label}(`;\n snippet = appendJoinedPlaceholders(snippet, parameterListParts.parts, ', ');\n if (parameterListParts.hasOptionalParameters) {\n snippet += '$' + _tabstop++;\n }\n snippet += ')';\n snippet += '$' + _tabstop++;\n return {\n snippet,\n parameterCount: parameterListParts.parts.length + (parameterListParts.hasOptionalParameters ? 1 : 0),\n };\n function appendJoinedPlaceholders(snippet, parts, joiner) {\n for (let i = 0; i < parts.length; ++i) {\n const paramterPart = parts[i];\n snippet += '${' + _tabstop++ + ':' + paramterPart.text + '}';\n if (i !== parts.length - 1) {\n snippet += joiner;\n }\n }\n return snippet;\n }\n}\nfunction getParameterListParts(displayParts) {\n const parts = [];\n let isInMethod = false;\n let hasOptionalParameters = false;\n let parenCount = 0;\n let braceCount = 0;\n outer: {\n for (let i = 0; i < displayParts.length; ++i) {\n const part = displayParts[i];\n switch (part.kind) {\n case PConst.DisplayPartKind.methodName:\n case PConst.DisplayPartKind.functionName:\n case PConst.DisplayPartKind.text:\n case PConst.DisplayPartKind.propertyName:\n if (parenCount === 0 && braceCount === 0) {\n isInMethod = true;\n }\n break;\n case PConst.DisplayPartKind.parameterName:\n if (parenCount === 1 && braceCount === 0 && isInMethod) {\n // Only take top level paren names\n const next = displayParts[i + 1];\n // Skip optional parameters\n const nameIsFollowedByOptionalIndicator = next && next.text === '?';\n // Skip this parameter\n const nameIsThis = part.text === 'this';\n if (!nameIsFollowedByOptionalIndicator && !nameIsThis) {\n parts.push(part);\n }\n hasOptionalParameters = hasOptionalParameters || nameIsFollowedByOptionalIndicator;\n }\n break;\n case PConst.DisplayPartKind.punctuation:\n if (part.text === '(') {\n ++parenCount;\n }\n else if (part.text === ')') {\n --parenCount;\n if (parenCount <= 0 && isInMethod) {\n break outer;\n }\n }\n else if (part.text === '...' && parenCount === 1) {\n // Found rest parmeter. Do not fill in any further arguments\n hasOptionalParameters = true;\n break outer;\n }\n else if (part.text === '{') {\n ++braceCount;\n }\n else if (part.text === '}') {\n --braceCount;\n }\n break;\n }\n }\n }\n return { hasOptionalParameters, parts };\n}\n//# sourceMappingURL=snippetForFunctionCall.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = create;\nconst path = require(\"path-browserify\");\nconst semver = require(\"semver\");\nconst tsWithImportCache = require(\"typescript-auto-import-cache\");\nconst vscode_uri_1 = require(\"vscode-uri\");\nconst getFormatCodeSettings_1 = require(\"../configs/getFormatCodeSettings\");\nconst getUserPreferences_1 = require(\"../configs/getUserPreferences\");\nconst codeActions = require(\"../semanticFeatures/codeAction\");\nconst codeActionResolve = require(\"../semanticFeatures/codeActionResolve\");\nconst semanticTokens = require(\"../semanticFeatures/semanticTokens\");\nconst shared_1 = require(\"../shared\");\nconst lspConverters_1 = require(\"../utils/lspConverters\");\nconst snippetForFunctionCall_1 = require(\"../utils/snippetForFunctionCall\");\nconst documentRegistries = [];\nfunction getDocumentRegistry(ts, useCaseSensitiveFileNames, currentDirectory) {\n let documentRegistry = documentRegistries.find(item => item[0] === useCaseSensitiveFileNames && item[1] === currentDirectory)?.[2];\n if (!documentRegistry) {\n documentRegistry = ts.createDocumentRegistry(useCaseSensitiveFileNames, currentDirectory);\n documentRegistries.push([useCaseSensitiveFileNames, currentDirectory, documentRegistry]);\n }\n return documentRegistry;\n}\nfunction create(ts, { disableAutoImportCache = false, isValidationEnabled = async (document, context) => {\n return await context.env.getConfiguration?.((0, shared_1.getConfigTitle)(document) + '.validate.enable') ?? true;\n}, isSuggestionsEnabled = async (document, context) => {\n return await context.env.getConfiguration?.((0, shared_1.getConfigTitle)(document) + '.suggest.enabled') ?? true;\n}, } = {}) {\n return {\n name: 'typescript-semantic',\n capabilities: {\n completionProvider: {\n triggerCharacters: getBasicTriggerCharacters(ts.version),\n resolveProvider: true,\n },\n renameProvider: {\n prepareProvider: true,\n },\n fileRenameEditsProvider: true,\n codeActionProvider: {\n codeActionKinds: [\n '',\n 'quickfix',\n 'refactor',\n 'refactor.extract',\n 'refactor.inline',\n 'refactor.rewrite',\n 'source',\n 'source.fixAll',\n 'source.organizeImports',\n ],\n resolveProvider: true,\n },\n inlayHintProvider: {},\n callHierarchyProvider: true,\n definitionProvider: true,\n typeDefinitionProvider: true,\n diagnosticProvider: {\n interFileDependencies: true,\n workspaceDiagnostics: false,\n },\n hoverProvider: true,\n implementationProvider: true,\n referencesProvider: true,\n fileReferencesProvider: true,\n documentHighlightProvider: true,\n semanticTokensProvider: {\n // https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide#standard-token-types-and-modifiers\n legend: {\n tokenTypes: [\n 'namespace',\n 'class',\n 'enum',\n 'interface',\n 'typeParameter',\n 'type',\n 'parameter',\n 'variable',\n 'property',\n 'enumMember',\n 'function',\n 'method',\n ],\n tokenModifiers: [\n 'declaration',\n 'readonly',\n 'static',\n 'async',\n 'defaultLibrary',\n 'local', // additional\n ],\n },\n },\n workspaceSymbolProvider: {},\n signatureHelpProvider: {\n triggerCharacters: ['(', ',', '<'],\n retriggerCharacters: [')'],\n },\n },\n create(context) {\n if (!context.project.typescript) {\n console.warn(`[volar] typescript-semantic requires typescript project.`);\n return {};\n }\n const { sys, languageServiceHost, uriConverter, getExtraServiceScript } = context.project.typescript;\n let languageService;\n let created;\n if (disableAutoImportCache) {\n languageService = ts.createLanguageService(languageServiceHost, getDocumentRegistry(ts, sys.useCaseSensitiveFileNames, languageServiceHost.getCurrentDirectory()));\n }\n else {\n created = tsWithImportCache.createLanguageService(ts, sys, languageServiceHost, proxiedHost => ts.createLanguageService(proxiedHost, getDocumentRegistry(ts, sys.useCaseSensitiveFileNames, languageServiceHost.getCurrentDirectory())));\n languageService = created.languageService;\n }\n const ctx = {\n ...context,\n languageServiceHost,\n languageService,\n uriToFileName(uri) {\n const virtualScript = getVirtualScriptByUri(uri);\n if (virtualScript) {\n return virtualScript.fileName;\n }\n return uriConverter.asFileName(uri);\n },\n fileNameToUri(fileName) {\n const extraServiceScript = getExtraServiceScript(fileName);\n if (extraServiceScript) {\n const sourceScript = context.language.scripts.fromVirtualCode(extraServiceScript.code);\n return context.encodeEmbeddedDocumentUri(sourceScript.id, extraServiceScript.code.id);\n }\n const uri = uriConverter.asUri(fileName);\n const sourceScript = context.language.scripts.get(uri);\n const serviceScript = sourceScript?.generated?.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (sourceScript && serviceScript) {\n return context.encodeEmbeddedDocumentUri(sourceScript.id, serviceScript.code.id);\n }\n return uri;\n },\n getTextDocument(uri) {\n const decoded = context.decodeEmbeddedDocumentUri(uri);\n if (decoded) {\n const sourceScript = context.language.scripts.get(decoded[0]);\n const virtualCode = sourceScript?.generated?.embeddedCodes.get(decoded[1]);\n if (virtualCode) {\n return context.documents.get(uri, virtualCode.languageId, virtualCode.snapshot);\n }\n }\n else {\n const sourceFile = context.language.scripts.get(uri);\n if (sourceFile) {\n return context.documents.get(uri, sourceFile.languageId, sourceFile.snapshot);\n }\n }\n },\n };\n const getCodeActions = codeActions.register(ctx);\n const doCodeActionResolve = codeActionResolve.register(ctx);\n const getDocumentSemanticTokens = semanticTokens.register(ts, ctx);\n /* typescript-language-features is hardcode true */\n const renameInfoOptions = { allowRenameOfImportPath: true };\n let formattingOptions;\n if (created?.setPreferences && context.env.getConfiguration) {\n updatePreferences();\n context.env.onDidChangeConfiguration?.(updatePreferences);\n async function updatePreferences() {\n const preferences = await context.env.getConfiguration?.('typescript.preferences');\n if (preferences) {\n created.setPreferences?.(preferences);\n }\n }\n }\n if (created?.projectUpdated) {\n const sourceScriptNames = new Set();\n const normalizeFileName = sys.useCaseSensitiveFileNames\n ? (id) => id\n : (id) => id.toLowerCase();\n updateSourceScriptFileNames();\n context.env.onDidChangeWatchedFiles?.(params => {\n const someFileCreateOrDeiete = params.changes.some(change => change.type !== 2);\n if (someFileCreateOrDeiete) {\n updateSourceScriptFileNames();\n }\n for (const change of params.changes) {\n const fileName = uriConverter.asFileName(vscode_uri_1.URI.parse(change.uri));\n if (sourceScriptNames.has(normalizeFileName(fileName))) {\n created.projectUpdated?.(languageServiceHost.getCurrentDirectory());\n }\n }\n });\n function updateSourceScriptFileNames() {\n sourceScriptNames.clear();\n for (const fileName of languageServiceHost.getScriptFileNames()) {\n const maybeEmbeddedUri = ctx.fileNameToUri(fileName);\n const decoded = context.decodeEmbeddedDocumentUri(maybeEmbeddedUri);\n const uri = decoded ? decoded[0] : maybeEmbeddedUri;\n const sourceScript = context.language.scripts.get(uri);\n if (sourceScript?.generated) {\n const tsCode = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (tsCode) {\n sourceScriptNames.add(normalizeFileName(fileName));\n }\n }\n else if (sourceScript) {\n sourceScriptNames.add(normalizeFileName(fileName));\n }\n }\n }\n }\n return {\n provide: {\n 'typescript/languageService': () => languageService,\n 'typescript/languageServiceHost': () => languageServiceHost,\n 'typescript/documentFileName': uri => ctx.uriToFileName(uri),\n 'typescript/documentUri': fileName => ctx.fileNameToUri(fileName),\n },\n dispose() {\n languageService.dispose();\n },\n provideDocumentFormattingEdits(_document, _range, options) {\n formattingOptions = options;\n return undefined;\n },\n provideOnTypeFormattingEdits(_document, _position, _key, options) {\n formattingOptions = options;\n return undefined;\n },\n async provideCompletionItems(document, position, completeContext, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (!await isSuggestionsEnabled(document, context)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const preferences = await (0, getUserPreferences_1.getUserPreferences)(ctx, document);\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const info = (0, shared_1.safeCall)(() => ctx.languageService.getCompletionsAtPosition(fileName, offset, {\n ...preferences,\n triggerCharacter: completeContext.triggerCharacter,\n triggerKind: completeContext.triggerKind,\n }));\n if (info) {\n return (0, lspConverters_1.convertCompletionInfo)(ts, info, document, position, tsEntry => ({\n uri: document.uri,\n fileName,\n offset,\n originalItem: {\n name: tsEntry.name,\n source: tsEntry.source,\n data: tsEntry.data,\n labelDetails: tsEntry.labelDetails,\n },\n }));\n }\n },\n async resolveCompletionItem(item, token) {\n if (await isCancellationRequestedWhileSync(token)) {\n return item;\n }\n const data = item.data;\n if (!data) {\n return item;\n }\n const { fileName, offset } = data;\n const uri = vscode_uri_1.URI.parse(data.uri);\n const document = ctx.getTextDocument(uri);\n const [formatOptions, preferences] = await Promise.all([\n (0, getFormatCodeSettings_1.getFormatCodeSettings)(ctx, document, formattingOptions),\n (0, getUserPreferences_1.getUserPreferences)(ctx, document),\n ]);\n const details = (0, shared_1.safeCall)(() => ctx.languageService.getCompletionEntryDetails(fileName, offset, data.originalItem.name, formatOptions, data.originalItem.source, preferences, data.originalItem.data));\n if (!details) {\n return item;\n }\n if (data.originalItem.labelDetails) {\n item.labelDetails ??= {};\n Object.assign(item.labelDetails, data.originalItem.labelDetails);\n }\n (0, lspConverters_1.applyCompletionEntryDetails)(ts, item, details, document, ctx.fileNameToUri, ctx.getTextDocument);\n const useCodeSnippetsOnMethodSuggest = await ctx.env.getConfiguration?.((0, shared_1.getConfigTitle)(document) + '.suggest.completeFunctionCalls')\n ?? false;\n const useCodeSnippet = useCodeSnippetsOnMethodSuggest\n && (item.kind === 3\n || item.kind === 2);\n if (useCodeSnippet) {\n const shouldCompleteFunction = isValidFunctionCompletionContext(ctx.languageService, fileName, offset, document);\n if (shouldCompleteFunction) {\n const { snippet, parameterCount } = (0, snippetForFunctionCall_1.snippetForFunctionCall)({\n insertText: item.insertText ?? item.textEdit?.newText, // insertText is dropped by LSP in some case: https://github.com/microsoft/vscode-languageserver-node/blob/9b742021fb04ad081aa3676a9eecf4fa612084b4/client/src/common/codeConverter.ts#L659-L664\n label: item.label,\n }, details.displayParts);\n if (item.textEdit) {\n item.textEdit.newText = snippet;\n }\n if (item.insertText) {\n item.insertText = snippet;\n }\n item.insertTextFormat = 2;\n if (parameterCount > 0) {\n // Fix for https://github.com/microsoft/vscode/issues/104059\n // Don't show parameter hints if \"editor.parameterHints.enabled\": false\n // if (await getConfiguration('editor.parameterHints.enabled', document.uri)) {\n // \titem.command = {\n // \t\ttitle: 'triggerParameterHints',\n // \t\tcommand: 'editor.action.triggerParameterHints',\n // \t};\n // }\n }\n }\n }\n return item;\n function isValidFunctionCompletionContext(client, filepath, offset, document) {\n // Workaround for https://github.com/microsoft/TypeScript/issues/12677\n // Don't complete function calls inside of destructive assignments or imports\n try {\n const response = client.getQuickInfoAtPosition(filepath, offset);\n if (response) {\n switch (response.kind) {\n case 'var':\n case 'let':\n case 'const':\n case 'alias':\n return false;\n }\n }\n }\n catch {\n // Noop\n }\n // Don't complete function call if there is already something that looks like a function call\n // https://github.com/microsoft/vscode/issues/18131\n const position = document.positionAt(offset);\n const after = (0, lspConverters_1.getLineText)(document, position.line).slice(position.character);\n return after.match(/^[a-z_$0-9]*\\s*\\(/gi) === null;\n }\n },\n async provideRenameRange(document, position, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const renameInfo = (0, shared_1.safeCall)(() => ctx.languageService.getRenameInfo(fileName, offset, renameInfoOptions));\n if (!renameInfo) {\n return;\n }\n if (!renameInfo.canRename) {\n return { message: renameInfo.localizedErrorMessage };\n }\n return (0, lspConverters_1.convertTextSpan)(renameInfo.triggerSpan, document);\n },\n async provideRenameEdits(document, position, newName, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document, true)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const renameInfo = (0, shared_1.safeCall)(() => ctx.languageService.getRenameInfo(fileName, offset, renameInfoOptions));\n if (!renameInfo?.canRename) {\n return;\n }\n if (renameInfo.fileToRename) {\n const [formatOptions, preferences] = await Promise.all([\n (0, getFormatCodeSettings_1.getFormatCodeSettings)(ctx, document, formattingOptions),\n (0, getUserPreferences_1.getUserPreferences)(ctx, document),\n ]);\n return renameFile(renameInfo.fileToRename, newName, formatOptions, preferences);\n }\n const { providePrefixAndSuffixTextForRename } = await (0, getUserPreferences_1.getUserPreferences)(ctx, document);\n const entries = ctx.languageService.findRenameLocations(fileName, offset, false, false, providePrefixAndSuffixTextForRename);\n if (!entries) {\n return;\n }\n return (0, lspConverters_1.convertRenameLocations)(newName, entries, ctx.fileNameToUri, ctx.getTextDocument);\n function renameFile(fileToRename, newName, formatOptions, preferences) {\n // Make sure we preserve file extension if none provided\n if (!path.extname(newName)) {\n newName += path.extname(fileToRename);\n }\n const dirname = path.dirname(fileToRename);\n const newFilePath = path.join(dirname, newName);\n const response = (0, shared_1.safeCall)(() => ctx.languageService.getEditsForFileRename(fileToRename, newFilePath, formatOptions, preferences));\n if (!response) {\n return;\n }\n const edits = (0, lspConverters_1.convertFileTextChanges)(response, ctx.fileNameToUri, ctx.getTextDocument);\n if (!edits.documentChanges) {\n edits.documentChanges = [];\n }\n edits.documentChanges.push({\n kind: 'rename',\n oldUri: ctx.fileNameToUri(fileToRename).toString(),\n newUri: ctx.fileNameToUri(newFilePath).toString(),\n });\n return edits;\n }\n },\n async provideCodeActions(document, range, context, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n return getCodeActions(uri, document, range, context, formattingOptions);\n },\n async resolveCodeAction(codeAction, token) {\n if (await isCancellationRequestedWhileSync(token)) {\n return codeAction;\n }\n return doCodeActionResolve(codeAction, formattingOptions);\n },\n async provideInlayHints(document, range, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const preferences = await (0, getUserPreferences_1.getUserPreferences)(ctx, document);\n const fileName = ctx.uriToFileName(uri);\n const start = document.offsetAt(range.start);\n const end = document.offsetAt(range.end);\n const inlayHints = (0, shared_1.safeCall)(() => 'provideInlayHints' in ctx.languageService\n ? ctx.languageService.provideInlayHints(fileName, { start, length: end - start }, preferences)\n : []);\n if (!inlayHints) {\n return [];\n }\n return inlayHints.map(hint => (0, lspConverters_1.convertInlayHint)(hint, document));\n },\n async provideCallHierarchyItems(document, position, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const calls = (0, shared_1.safeCall)(() => ctx.languageService.prepareCallHierarchy(fileName, offset));\n if (!calls) {\n return [];\n }\n const items = Array.isArray(calls) ? calls : [calls];\n return items.map(item => (0, lspConverters_1.convertCallHierarchyItem)(item, ctx));\n },\n async provideCallHierarchyIncomingCalls(item, token) {\n if (await isCancellationRequestedWhileSync(token)) {\n return [];\n }\n const uri = vscode_uri_1.URI.parse(item.uri);\n const document = ctx.getTextDocument(uri);\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(item.selectionRange.start);\n const calls = (0, shared_1.safeCall)(() => ctx.languageService.provideCallHierarchyIncomingCalls(fileName, offset));\n if (!calls) {\n return [];\n }\n const items = Array.isArray(calls) ? calls : [calls];\n return items.map(item => (0, lspConverters_1.convertCallHierarchyIncomingCall)(item, ctx));\n },\n async provideCallHierarchyOutgoingCalls(item, token) {\n if (await isCancellationRequestedWhileSync(token)) {\n return [];\n }\n const uri = vscode_uri_1.URI.parse(item.uri);\n const document = ctx.getTextDocument(uri);\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(item.selectionRange.start);\n const calls = (0, shared_1.safeCall)(() => ctx.languageService.provideCallHierarchyOutgoingCalls(fileName, offset));\n if (!calls) {\n return [];\n }\n const items = Array.isArray(calls) ? calls : [calls];\n return items.map(item => (0, lspConverters_1.convertCallHierarchyOutgoingCall)(item, document, ctx));\n },\n async provideDefinition(document, position, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const info = (0, shared_1.safeCall)(() => ctx.languageService.getDefinitionAndBoundSpan(fileName, offset));\n if (!info) {\n return [];\n }\n return (0, lspConverters_1.convertDefinitionInfoAndBoundSpan)(info, document, ctx);\n },\n async provideTypeDefinition(document, position, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const entries = (0, shared_1.safeCall)(() => ctx.languageService.getTypeDefinitionAtPosition(fileName, offset));\n if (!entries) {\n return [];\n }\n return entries.map(entry => (0, lspConverters_1.convertDocumentSpantoLocationLink)(entry, ctx));\n },\n async provideDiagnostics(document, token) {\n return [\n ...await provideDiagnosticsWorker(document, token, 'syntactic') ?? [],\n ...await provideDiagnosticsWorker(document, token, 'semantic') ?? [],\n ];\n },\n async provideHover(document, position, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const info = (0, shared_1.safeCall)(() => ctx.languageService.getQuickInfoAtPosition(fileName, offset));\n if (!info) {\n return;\n }\n return (0, lspConverters_1.convertQuickInfo)(ts, info, document, ctx.fileNameToUri, ctx.getTextDocument);\n },\n async provideImplementation(document, position, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const entries = (0, shared_1.safeCall)(() => ctx.languageService.getImplementationAtPosition(fileName, offset));\n if (!entries) {\n return [];\n }\n return entries.map(entry => (0, lspConverters_1.convertDocumentSpantoLocationLink)(entry, ctx));\n },\n async provideReferences(document, position, referenceContext, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document, true)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const references = (0, shared_1.safeCall)(() => ctx.languageService.findReferences(fileName, offset));\n if (!references) {\n return [];\n }\n const result = [];\n for (const reference of references) {\n if (referenceContext.includeDeclaration) {\n const definition = (0, lspConverters_1.convertDocumentSpanToLocation)(reference.definition, ctx);\n if (definition) {\n result.push(definition);\n }\n }\n for (const referenceEntry of reference.references) {\n const reference = (0, lspConverters_1.convertDocumentSpanToLocation)(referenceEntry, ctx);\n if (reference) {\n result.push(reference);\n }\n }\n }\n return result;\n },\n async provideFileReferences(document, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document, true)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const entries = (0, shared_1.safeCall)(() => ctx.languageService.getFileReferences(fileName));\n if (!entries) {\n return [];\n }\n return entries.map(entry => (0, lspConverters_1.convertDocumentSpanToLocation)(entry, ctx));\n },\n async provideDocumentHighlights(document, position, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const highlights = (0, shared_1.safeCall)(() => ctx.languageService.getDocumentHighlights(fileName, offset, [fileName]));\n if (!highlights) {\n return [];\n }\n const results = [];\n for (const highlight of highlights) {\n for (const span of highlight.highlightSpans) {\n results.push((0, lspConverters_1.convertHighlightSpan)(span, document));\n }\n }\n return results;\n },\n async provideDocumentSemanticTokens(document, range, legend, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n return getDocumentSemanticTokens(uri, document, range, legend);\n },\n async provideWorkspaceSymbols(query, token) {\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const items = (0, shared_1.safeCall)(() => ctx.languageService.getNavigateToItems(query));\n if (!items) {\n return [];\n }\n return items\n .filter(item => item.containerName || item.kind !== 'alias')\n .map(item => (0, lspConverters_1.convertNavigateToItem)(item, ctx.getTextDocument(ctx.fileNameToUri(item.fileName))))\n .filter(item => !!item);\n },\n async provideFileRenameEdits(oldUri, newUri, token) {\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const document = ctx.getTextDocument(oldUri);\n const [formatOptions, preferences] = await Promise.all([\n (0, getFormatCodeSettings_1.getFormatCodeSettings)(ctx, document, formattingOptions),\n (0, getUserPreferences_1.getUserPreferences)(ctx, document),\n ]);\n const fileToRename = ctx.uriToFileName(oldUri);\n const newFilePath = ctx.uriToFileName(newUri);\n const response = (0, shared_1.safeCall)(() => ctx.languageService.getEditsForFileRename(fileToRename, newFilePath, formatOptions, preferences));\n if (!response?.length) {\n return;\n }\n return (0, lspConverters_1.convertFileTextChanges)(response, ctx.fileNameToUri, ctx.getTextDocument);\n },\n async provideSignatureHelp(document, position, context, token) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const options = {};\n if (context?.triggerKind === 1) {\n options.triggerReason = {\n kind: 'invoked',\n };\n }\n else if (context?.triggerKind === 2) {\n options.triggerReason = {\n kind: 'characterTyped',\n triggerCharacter: context.triggerCharacter,\n };\n }\n else if (context?.triggerKind === 3) {\n options.triggerReason = {\n kind: 'retrigger',\n triggerCharacter: context.triggerCharacter,\n };\n }\n const fileName = ctx.uriToFileName(uri);\n const offset = document.offsetAt(position);\n const helpItems = (0, shared_1.safeCall)(() => ctx.languageService.getSignatureHelpItems(fileName, offset, options));\n if (!helpItems) {\n return;\n }\n return {\n activeSignature: helpItems.selectedItemIndex,\n activeParameter: helpItems.argumentIndex,\n signatures: helpItems.items.map(item => {\n const signature = {\n label: '',\n documentation: undefined,\n parameters: [],\n };\n signature.label += ts.displayPartsToString(item.prefixDisplayParts);\n item.parameters.forEach((p, i, a) => {\n const label = ts.displayPartsToString(p.displayParts);\n const parameter = {\n label,\n documentation: ts.displayPartsToString(p.documentation),\n };\n signature.label += label;\n signature.parameters.push(parameter);\n if (i < a.length - 1) {\n signature.label += ts.displayPartsToString(item.separatorDisplayParts);\n }\n });\n signature.label += ts.displayPartsToString(item.suffixDisplayParts);\n return signature;\n }),\n };\n },\n };\n async function provideDiagnosticsWorker(document, token, mode) {\n const uri = vscode_uri_1.URI.parse(document.uri);\n if (!isSemanticDocument(uri, document)) {\n return;\n }\n if (!await isValidationEnabled(document, context)) {\n return;\n }\n if (mode === 'semantic' && await isCancellationRequestedWhileSync(token)) {\n return;\n }\n const fileName = ctx.uriToFileName(uri);\n const program = ctx.languageService.getProgram();\n const sourceFile = program?.getSourceFile(fileName);\n if (!program || !sourceFile) {\n return [];\n }\n const tsToken = {\n isCancellationRequested() {\n return ctx.project.typescript?.languageServiceHost.getCancellationToken?.().isCancellationRequested()\n ?? false;\n },\n throwIfCancellationRequested() { },\n };\n if (mode === 'syntactic') {\n const syntacticDiagnostics = (0, shared_1.safeCall)(() => program.getSyntacticDiagnostics(sourceFile, tsToken)) ?? [];\n const suggestionDiagnostics = (0, shared_1.safeCall)(() => ctx.languageService.getSuggestionDiagnostics(fileName)) ?? [];\n return [...syntacticDiagnostics, ...suggestionDiagnostics]\n .map(diagnostic => (0, lspConverters_1.convertDiagnostic)(diagnostic, document, ctx.fileNameToUri, ctx.getTextDocument))\n .filter(diagnostic => !!diagnostic);\n }\n else if (mode === 'semantic') {\n const semanticDiagnostics = (0, shared_1.safeCall)(() => program.getSemanticDiagnostics(sourceFile, tsToken)) ?? [];\n const declarationDiagnostics = getEmitDeclarations(program.getCompilerOptions())\n ? (0, shared_1.safeCall)(() => program.getDeclarationDiagnostics(sourceFile, tsToken)) ?? []\n : [];\n return [...semanticDiagnostics, ...declarationDiagnostics]\n .map(diagnostic => (0, lspConverters_1.convertDiagnostic)(diagnostic, document, ctx.fileNameToUri, ctx.getTextDocument))\n .filter(diagnostic => !!diagnostic);\n }\n }\n function getEmitDeclarations(compilerOptions) {\n return !!(compilerOptions.declaration || compilerOptions.composite);\n }\n function isSemanticDocument(uri, document, withJson = false) {\n const virtualScript = getVirtualScriptByUri(uri);\n if (virtualScript) {\n return true;\n }\n if (withJson && (0, shared_1.isJsonDocument)(document)) {\n return true;\n }\n return (0, shared_1.isTsDocument)(document);\n }\n async function isCancellationRequestedWhileSync(token) {\n if (sys.sync) {\n let oldSysVersion;\n let newSysVersion = sys.version;\n do {\n oldSysVersion = newSysVersion;\n languageService.getProgram(); // trigger file requests\n newSysVersion = await aggressiveSync(sys.sync);\n } while (newSysVersion !== oldSysVersion && !token.isCancellationRequested);\n }\n return token.isCancellationRequested;\n }\n async function aggressiveSync(fn) {\n const promise = fn();\n let newVersion;\n let syncing = true;\n promise.then(version => {\n newVersion = version;\n syncing = false;\n });\n while (syncing) {\n languageService.getProgram(); // trigger file requests before old requests are completed\n await Promise.race([promise, sleep(10)]);\n }\n return newVersion;\n }\n function sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n function getVirtualScriptByUri(uri) {\n const decoded = context.decodeEmbeddedDocumentUri(uri);\n const sourceScript = decoded && context.language.scripts.get(decoded[0]);\n const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]);\n if (virtualCode && sourceScript?.generated?.languagePlugin.typescript) {\n const { getServiceScript, getExtraServiceScripts } = sourceScript.generated.languagePlugin.typescript;\n const sourceFileName = uriConverter.asFileName(sourceScript.id);\n if (getServiceScript(sourceScript.generated.root)?.code === virtualCode) {\n return {\n fileName: sourceFileName,\n code: virtualCode,\n };\n }\n for (const extraScript of getExtraServiceScripts?.(sourceFileName, sourceScript.generated.root) ?? []) {\n if (extraScript.code === virtualCode) {\n return extraScript;\n }\n }\n }\n }\n },\n };\n}\nfunction getBasicTriggerCharacters(tsVersion) {\n const triggerCharacters = ['.', '\"', \"'\", '`', '/', '<'];\n // https://github.com/microsoft/vscode/blob/8e65ae28d5fb8b3c931135da1a41edb9c80ae46f/extensions/typescript-language-features/src/languageFeatures/completions.ts#L811-L833\n if (semver.lt(tsVersion, '3.1.0') || semver.gte(tsVersion, '3.2.0')) {\n triggerCharacters.push('@');\n }\n if (semver.gte(tsVersion, '3.8.1')) {\n triggerCharacters.push('#');\n }\n if (semver.gte(tsVersion, '4.3.0')) {\n triggerCharacters.push(' ');\n }\n return triggerCharacters;\n}\n//# sourceMappingURL=semantic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = create;\nconst directiveComment_1 = require(\"./lib/plugins/directiveComment\");\nconst docCommentTemplate_1 = require(\"./lib/plugins/docCommentTemplate\");\nconst semantic_1 = require(\"./lib/plugins/semantic\");\nconst syntactic_1 = require(\"./lib/plugins/syntactic\");\nfunction create(ts, options) {\n return [\n (0, semantic_1.create)(ts, options),\n (0, syntactic_1.create)(ts, options),\n (0, docCommentTemplate_1.create)(ts),\n (0, directiveComment_1.create)(),\n ];\n}\n//# sourceMappingURL=index.js.map","import { create } from 'volar-service-typescript'\nimport { Array, Effect, pipe } from 'effect'\nimport type {\n Diagnostic as LspDiagnostic,\n LanguageServicePlugin,\n LocationLink,\n SemanticToken,\n TextEdit,\n} from '@volar/language-service'\nimport { URI } from 'vscode-uri'\nimport { type Diagnostic } from '@athrio/loom-ast/LoomNode'\nimport { SemanticTokenSchema } from '@athrio/loom-ast/LoomSymbol'\nimport {\n defineLanguageService,\n type FrameLocation,\n FrameQuery,\n type FrameQueryApi,\n TypescriptSdk,\n} from './LanguageService'\n\nconst lspSeverity = (\n severity: Diagnostic['severity'],\n): LspDiagnostic['severity'] =>\n severity === 'error' ? 1 : severity === 'warning' ? 2 : 3\n\nconst toLspDiagnostic = (\n at: (offset: number) => LspDiagnostic['range']['start'],\n diagnostic: Diagnostic,\n): LspDiagnostic => ({\n range: {\n start: at(diagnostic.position.start.offset),\n end: at(diagnostic.position.end.offset),\n },\n message: diagnostic.message,\n severity: lspSeverity(diagnostic.severity),\n source: 'loom',\n})\n\nconst loomDiagnostics = (frame: FrameQueryApi): LanguageServicePlugin => ({\n name: 'loom-diagnostics',\n capabilities: {\n diagnosticProvider: {\n interFileDependencies: true,\n workspaceDiagnostics: false,\n },\n },\n create: (context) => ({\n provideDiagnostics: (document) => {\n const decoded = context.decodeEmbeddedDocumentUri(URI.parse(document.uri))\n if (!decoded || decoded[1] !== 'root') return undefined\n const at = (offset: number) => document.positionAt(offset)\n return pipe(\n frame.diagnostics(decoded[0].fsPath),\n Array.map((diagnostic) => toLspDiagnostic(at, diagnostic)),\n )\n },\n }),\n})\n\nconst toLocationLink = (\n target: FrameLocation,\n origin: FrameLocation | undefined,\n): LocationLink => ({\n targetUri: URI.file(target.path).toString(),\n targetRange: target.range,\n targetSelectionRange: target.range,\n originSelectionRange: origin?.range,\n})\n\nconst loomDefinition = (frame: FrameQueryApi): LanguageServicePlugin => ({\n name: 'loom-definition',\n capabilities: { definitionProvider: true },\n create: (context) => ({\n provideDefinition: (document, position) => {\n const decoded = context.decodeEmbeddedDocumentUri(URI.parse(document.uri))\n if (!decoded || decoded[1] !== 'root') return undefined\n const offset = document.offsetAt(position)\n const target = frame.definition(decoded[0].fsPath, offset)\n return target === undefined\n ? undefined\n : [\n toLocationLink(\n target,\n frame.navigationRange(decoded[0].fsPath, offset),\n ),\n ]\n },\n }),\n})\n\nconst loomReferences = (frame: FrameQueryApi): LanguageServicePlugin => ({\n name: 'loom-references',\n capabilities: { referencesProvider: true },\n create: (context) => ({\n provideReferences: (document, position) => {\n const decoded = context.decodeEmbeddedDocumentUri(URI.parse(document.uri))\n if (!decoded || decoded[1] !== 'root') return undefined\n return pipe(\n frame.references(decoded[0].fsPath, document.offsetAt(position)),\n Array.map((location) => ({\n uri: URI.file(location.path).toString(),\n range: location.range,\n })),\n )\n },\n }),\n})\n\nconst groupEdits = (\n locations: ReadonlyArray<FrameLocation>,\n newName: string,\n): Record<string, TextEdit[]> =>\n Object.fromEntries(\n Object.entries(\n Array.groupBy(locations, (location) => URI.file(location.path).toString()),\n ).map(([uri, locs]) => [\n uri,\n locs.map((location) => ({ range: location.range, newText: newName })),\n ]),\n )\n\nconst loomRename = (frame: FrameQueryApi): LanguageServicePlugin => ({\n name: 'loom-rename',\n capabilities: { renameProvider: { prepareProvider: true } },\n create: (context) => ({\n provideRenameRange: (document, position) => {\n const decoded = context.decodeEmbeddedDocumentUri(URI.parse(document.uri))\n if (!decoded || decoded[1] !== 'root') return undefined\n const span = frame.renameRange(decoded[0].fsPath, document.offsetAt(position))\n return span === undefined ? undefined : span.range\n },\n provideRenameEdits: (document, position, newName) => {\n const decoded = context.decodeEmbeddedDocumentUri(URI.parse(document.uri))\n if (!decoded || decoded[1] !== 'root') return undefined\n const edits = frame.rename(decoded[0].fsPath, document.offsetAt(position))\n return edits.length === 0 ? undefined : { changes: groupEdits(edits, newName) }\n },\n }),\n})\n\nconst semanticLegend = {\n tokenTypes: [...SemanticTokenSchema.literals],\n tokenModifiers: [],\n}\n\nconst loomSemanticTokens = (frame: FrameQueryApi): LanguageServicePlugin => ({\n name: 'loom-semantic-tokens',\n capabilities: { semanticTokensProvider: { legend: semanticLegend } },\n create: (context) => ({\n provideDocumentSemanticTokens: (document) => {\n const decoded = context.decodeEmbeddedDocumentUri(URI.parse(document.uri))\n if (!decoded || decoded[1] !== 'root') return undefined\n return Array.map(\n frame.semanticTokens(decoded[0].fsPath),\n (span): SemanticToken => [\n span.range.start.line,\n span.range.start.character,\n span.range.end.character - span.range.start.character,\n semanticLegend.tokenTypes.indexOf(span.type),\n 0,\n ],\n )\n },\n }),\n})\n\nconst withoutHighlights = (\n plugin: LanguageServicePlugin,\n): LanguageServicePlugin => ({\n ...plugin,\n create: (context) => ({\n ...plugin.create(context),\n provideDocumentHighlights: () => [],\n }),\n})\n\nexport const LoomLanguage = defineLanguageService({\n id: 'loom',\n displayName: 'Loom',\n extensions: [],\n plugins: () =>\n Effect.gen(function* () {\n const ts = yield* TypescriptSdk\n const frame = yield* FrameQuery\n return [\n ...create(ts).map(withoutHighlights),\n loomDiagnostics(frame),\n loomDefinition(frame),\n loomReferences(frame),\n loomRename(frame),\n loomSemanticTokens(frame),\n ]\n }),\n})\n","import { Effect } from 'effect'\nimport { defineLanguageService } from './LanguageService'\n\nexport const ProseLanguage = defineLanguageService({\n id: 'prose',\n displayName: 'Prose',\n extensions: [],\n plugins: () =>\n Effect.tryPromise(() => import('volar-service-markdown')).pipe(\n Effect.map((markdown) => [\n markdown.create({ documentSelector: ['prose'] }),\n ]),\n Effect.orElseSucceed(() => []),\n ),\n})\n","import { Array, Effect, Option, pipe } from 'effect'\nimport { createRequire } from 'node:module'\nimport { dirname, join } from 'node:path'\nimport { pathToFileURL } from 'node:url'\nimport { servicePackage, storeDir } from './LoomStore'\nimport { isLanguageService, type LanguageService } from './LanguageService'\nimport { LoomLanguage } from './LoomLanguage'\nimport { ProseLanguage } from './ProseLanguage'\n\nconst loadService = (\n id: string,\n root: string,\n): Effect.Effect<Option.Option<LanguageService>> =>\n Effect.tryPromise(async () => {\n const from = join(storeDir(dirname(root)), 'index.js')\n const entry = createRequire(from).resolve(servicePackage(id))\n const loaded = (await import(pathToFileURL(entry).href)) as {\n readonly default?: unknown\n }\n return loaded.default\n }).pipe(\n Effect.flatMap((exported) =>\n isLanguageService(exported) && exported.id === id\n ? Effect.succeed(Option.some(exported))\n : Effect.logWarning(\n `${servicePackage(id)} does not export a language service for \"${id}\"`,\n ).pipe(Effect.as(Option.none<LanguageService>())),\n ),\n Effect.catchCause(() =>\n Effect.logWarning(\n `language \"${id}\" is activated but ${servicePackage(id)} is not installed — run \\`loom add ${id}\\``,\n ).pipe(Effect.as(Option.none<LanguageService>())),\n ),\n )\n\nexport const loadActive = (\n ids: ReadonlyArray<string>,\n root: string,\n): Effect.Effect<ReadonlyArray<LanguageService>> =>\n pipe(\n ids,\n Array.filter((id) => id !== LoomLanguage.id && id !== ProseLanguage.id),\n Array.dedupe,\n (rest) => Effect.forEach(rest, (id) => loadService(id, root)),\n Effect.map((loaded) => [\n LoomLanguage,\n ProseLanguage,\n ...Array.getSomes(loaded),\n ]),\n )\n","export const runtimeKey = '__loomRuntime'\n\nexport const runtimeVersion = '1'\n\nexport const runtimeSpecifiers: ReadonlyArray<string> = [\n 'effect',\n '@athrio/loom-lang-services/LanguageService',\n 'typescript',\n]\n\nimport * as EffectNS from 'effect'\nimport * as LanguageServiceNS from './LanguageService'\n\ninterface HostRuntime {\n readonly version: string\n readonly modules: Record<string, unknown>\n}\n\nexport const installHostRuntime = (\n tsdk: typeof import('typescript'),\n): void => {\n ;(globalThis as Record<string, unknown>)[runtimeKey] = {\n version: runtimeVersion,\n modules: {\n effect: EffectNS,\n '@athrio/loom-lang-services/LanguageService': LanguageServiceNS,\n typescript: tsdk,\n },\n } satisfies HostRuntime\n}\n","import type {\n CodegenContext,\n LanguagePlugin,\n VirtualCode,\n} from '@volar/language-core'\nimport type { LanguageServicePlugin } from '@volar/language-service'\nimport type {} from '@volar/typescript'\nimport { Array, Effect, Layer, ManagedRuntime, Option } from 'effect'\nimport { readFileSync } from 'node:fs'\nimport type * as ts from 'typescript'\nimport { URI } from 'vscode-uri'\nimport { ReadError, type Source } from '#ast/LoomCorpusAstBuilder'\nimport { LoomCompiler, loomsUnder, stringSnapshot } from './LoomCompiler'\nimport { LoomConfig } from '@athrio/loom-config/LoomConfig'\nimport {\n Composition,\n type CompositionApi,\n FrameQuery,\n type FrameQueryApi,\n type LanguageService,\n TypescriptSdk,\n} from '@athrio/loom-lang-services/LanguageService'\nimport {\n ActiveLanguages,\n LanguageRegistry,\n} from '@athrio/loom-lang-services/LanguageRegistry'\nimport { loadActive } from '@athrio/loom-lang-services/LanguageLoader'\nimport { installHostRuntime } from '@athrio/loom-lang-services/Runtime'\n\nconst editorSource = (\n uri: URI,\n snapshot: ts.IScriptSnapshot,\n): Source => ({\n read: (path) =>\n Effect.try({\n try: () =>\n path === uri.fsPath\n ? snapshot.getText(0, snapshot.getLength())\n : readFileSync(path, 'utf8'),\n catch: (cause) => new ReadError({ path, cause }),\n }),\n list: Option.some((dir) => Effect.sync(() => loomsUnder(dir))),\n})\n\nconst associate = (\n compiler: LoomCompiler['Service'],\n ctx: CodegenContext<URI>,\n entry: string,\n): Effect.Effect<void> =>\n compiler.reach(entry).pipe(\n Effect.flatMap((deps) =>\n Effect.forEach(\n deps,\n (dep) => Effect.sync(() => ctx.getAssociatedScript(URI.file(dep))),\n { discard: true },\n ),\n ),\n )\n\nconst changed = (previous: VirtualCode, next: ts.IScriptSnapshot): boolean =>\n previous.snapshot.getText(0, previous.snapshot.getLength()) !==\n next.getText(0, next.getLength())\n\nconst projectIsolated = (\n compiler: LoomCompiler['Service'],\n uri: URI,\n snapshot: ts.IScriptSnapshot,\n ctx: CodegenContext<URI>,\n): Effect.Effect<VirtualCode> =>\n compiler.compile(editorSource(uri, snapshot), uri.fsPath).pipe(\n Effect.tap(() => associate(compiler, ctx, uri.fsPath)),\n Effect.map((tree) => isolateRoots(tree)),\n )\n\nexport const loomLanguagePlugin = (\n runtime: ManagedRuntime.ManagedRuntime<LoomCompiler | LoomConfig, never>,\n): LanguagePlugin<URI> => ({\n getLanguageId: (uri) => (uri.path.endsWith('.loom') ? 'loom' : undefined),\n createVirtualCode: (uri, languageId, snapshot, ctx) =>\n languageId === 'loom'\n ? runtime.runSync(\n LoomCompiler.pipe(\n Effect.flatMap((compiler) =>\n projectIsolated(compiler, uri, snapshot, ctx),\n ),\n ),\n )\n : undefined,\n updateVirtualCode: (uri, previous, snapshot, ctx) =>\n runtime.runSync(\n LoomCompiler.pipe(\n Effect.flatMap((compiler) =>\n (changed(previous, snapshot)\n ? Effect.asVoid(compiler.invalidate(uri.fsPath))\n : Effect.void\n ).pipe(Effect.andThen(projectIsolated(compiler, uri, snapshot, ctx))),\n ),\n ),\n ),\n})\n\nconst tsLanguages: ReadonlySet<string> = new Set([\n 'typescript',\n 'tsx',\n 'javascript',\n 'jsx',\n])\n\nconst moduleMarker = '\\nexport {}\\n'\n\nconst isolateRoots = (code: VirtualCode): VirtualCode => ({\n ...code,\n snapshot: tsLanguages.has(code.languageId)\n ? stringSnapshot(\n code.snapshot.getText(0, code.snapshot.getLength()) + moduleMarker,\n )\n : code.snapshot,\n embeddedCodes: Array.map(code.embeddedCodes ?? [], (child) =>\n isolateRoots(child),\n ),\n})\n\nconst dedupeByName = (\n plugins: ReadonlyArray<LanguageServicePlugin>,\n): ReadonlyArray<LanguageServicePlugin> =>\n Array.fromIterable(\n new Map(plugins.map((plugin) => [plugin.name ?? plugin, plugin])).values(),\n )\n\nconst collect = (\n active: ReadonlyArray<LanguageService>,\n tsdk: typeof import('typescript'),\n settings: Record<string, Record<string, unknown>>,\n frameQuery: FrameQueryApi,\n composition: CompositionApi,\n): Effect.Effect<ReadonlyArray<LanguageServicePlugin>> =>\n Effect.gen(function* () {\n const registry = yield* LanguageRegistry\n const collected = yield* Effect.forEach(registry.all, (service) =>\n service.plugins({ settings: settings[service.id] ?? {} }).pipe(\n Effect.catchCause(() =>\n Effect.succeed([] as ReadonlyArray<LanguageServicePlugin>),\n ),\n ),\n )\n return dedupeByName(collected.flat())\n }).pipe(\n Effect.provide(LanguageRegistry.layer),\n Effect.provide(Layer.succeed(ActiveLanguages, { all: active })),\n Effect.provideService(TypescriptSdk, tsdk),\n Effect.provideService(FrameQuery, frameQuery),\n Effect.provideService(Composition, composition),\n )\n\nconst frameQueryOver = (\n runtime: ManagedRuntime.ManagedRuntime<LoomCompiler, never>,\n): FrameQueryApi => ({\n diagnostics: (path) =>\n runtime.runSync(\n LoomCompiler.pipe(Effect.flatMap((compiler) => compiler.diagnose(path))),\n ),\n definition: (path, offset) =>\n runtime.runSync(\n LoomCompiler.pipe(\n Effect.flatMap((compiler) => compiler.definition(path, offset)),\n ),\n ),\n references: (path, offset) =>\n runtime.runSync(\n LoomCompiler.pipe(\n Effect.flatMap((compiler) => compiler.references(path, offset)),\n ),\n ),\n rename: (path, offset) =>\n runtime.runSync(\n LoomCompiler.pipe(\n Effect.flatMap((compiler) => compiler.rename(path, offset)),\n ),\n ),\n renameRange: (path, offset) =>\n runtime.runSync(\n LoomCompiler.pipe(\n Effect.flatMap((compiler) => compiler.renameRange(path, offset)),\n ),\n ),\n navigationRange: (path, offset) =>\n runtime.runSync(\n LoomCompiler.pipe(\n Effect.flatMap((compiler) => compiler.navigationRange(path, offset)),\n ),\n ),\n semanticTokens: (path) =>\n runtime.runSync(\n LoomCompiler.pipe(\n Effect.flatMap((compiler) => compiler.semanticTokens(path)),\n ),\n ),\n})\n\nconst compositionOver = (\n runtime: ManagedRuntime.ManagedRuntime<LoomCompiler, never>,\n): CompositionApi => ({\n rootsFor: (path) =>\n runtime.runSync(\n LoomCompiler.pipe(\n Effect.flatMap((compiler) => compiler.composition(path)),\n ),\n ),\n})\n\nexport const loomServicePlugins = (\n runtime: ManagedRuntime.ManagedRuntime<LoomCompiler, never>,\n tsdk: typeof import('typescript'),\n root: string,\n): Effect.Effect<ReadonlyArray<LanguageServicePlugin>, never, LoomConfig> =>\n Effect.gen(function* () {\n const config = yield* LoomConfig\n const manifest = yield* config.manifest(root)\n const languages = Object.keys(manifest?.languages ?? {})\n const settings = manifest?.settings ?? {}\n yield* Effect.sync(() => installHostRuntime(tsdk))\n const active = yield* loadActive(languages, root)\n return yield* collect(\n active,\n tsdk,\n settings,\n frameQueryOver(runtime),\n compositionOver(runtime),\n )\n })\n","import { Layer, ManagedRuntime } from 'effect'\nimport {\n createConnection,\n createServer,\n createTypeScriptProject,\n loadTsdkByPath,\n} from '@volar/language-server/node'\nimport { fileURLToPath } from 'node:url'\nimport { LoomCompiler, DocumentSource } from './LoomCompiler'\nimport { PackageConfig } from './PackageConfig'\nimport { LoomConfig } from '@athrio/loom-config/LoomConfig'\nimport { loomLanguagePlugin, loomServicePlugins } from './LoomLanguagePlugin'\n\nconst runtime = ManagedRuntime.make(\n Layer.mergeAll(LoomCompiler.layer, LoomConfig.layer).pipe(\n Layer.provide(DocumentSource.layer),\n Layer.provide(PackageConfig.layer),\n Layer.provide(LoomConfig.layer),\n ),\n)\n\nexport const startLanguageServer = (): void => {\n const connection = createConnection()\n const server = createServer(connection)\n\n connection.onInitialize(async (params) => {\n const tsdk = loadTsdkByPath(\n (params.initializationOptions as { typescript: { tsdk: string } })\n .typescript.tsdk,\n params.locale,\n )\n const folder = params.workspaceFolders?.[0]?.uri\n const root = folder ? fileURLToPath(folder) : process.cwd()\n const servicePlugins = await runtime.runPromise(\n loomServicePlugins(runtime, tsdk.typescript, root),\n )\n return server.initialize(\n params,\n createTypeScriptProject(\n tsdk.typescript,\n tsdk.diagnosticMessages,\n () => ({ languagePlugins: [loomLanguagePlugin(runtime)] }),\n ),\n [...servicePlugins],\n )\n })\n connection.onInitialized(() => {\n server.initialized()\n void server.fileWatcher.watchFiles(['**/tsconfig.json', '**/jsconfig.json'])\n })\n connection.onShutdown(server.shutdown)\n connection.listen()\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153],"mappings":"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"}
|