UNPKG

@arkts/language-server

Version:
1,175 lines (1,157 loc) 1.31 MB
import { __commonJS, __esm, __export, __require, __toCommonJS, __toDynamicImportESM, __toESM, require_typescript as require_typescript$1 } from "./typescript-B2VoCBU6.mjs"; import { createRequire } from "node:module"; import process$1 from "node:process"; import * as path$1 from "node:path"; import path, { sep } from "node:path"; import { formatWithOptions } from "node:util"; import * as fs$1 from "node:fs"; import fs from "node:fs"; //#region ../../node_modules/.pnpm/muggle-string@0.4.1/node_modules/muggle-string/out/binarySearch.js var require_binarySearch$1 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/muggle-string@0.4.1/node_modules/muggle-string/out/binarySearch.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); function binarySearch$1(offsets, start) { let low = 0; let high = offsets.length - 1; while (low <= high) { const mid = Math.floor((low + high) / 2); const midValue = offsets[mid]; if (midValue < start) low = mid + 1; else if (midValue > start) high = mid - 1; else { low = mid; high = mid; break; } } return Math.max(Math.min(low, high, offsets.length - 1), 0); } exports.binarySearch = binarySearch$1; }) }); //#endregion //#region ../../node_modules/.pnpm/muggle-string@0.4.1/node_modules/muggle-string/out/track.js var require_track = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/muggle-string@0.4.1/node_modules/muggle-string/out/track.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); let tracking = true; let stackOffset = 0; function setTracking(value) { tracking = value; } exports.setTracking = setTracking; function offsetStack() { stackOffset++; } exports.offsetStack = offsetStack; function resetOffsetStack() { stackOffset--; } exports.resetOffsetStack = resetOffsetStack; function track(segments, stacks = []) { return [new Proxy(segments, { get(target, prop, receiver) { if (tracking) { if (prop === "push") return push; if (prop === "pop") return pop; if (prop === "shift") return shift; if (prop === "unshift") return unshift; if (prop === "splice") return splice; if (prop === "sort") return sort$3; if (prop === "reverse") return reverse; } return Reflect.get(target, prop, receiver); } }), stacks]; function push(...items) { stacks.push({ stack: getStack(), length: items.length }); return segments.push(...items); } function pop() { if (stacks.length) { const last$1 = stacks[stacks.length - 1]; if (last$1.length > 1) last$1.length--; else stacks.pop(); } return segments.pop(); } function shift() { if (stacks.length) { const first = stacks[0]; if (first.length > 1) first.length--; else stacks.shift(); } return segments.shift(); } function unshift(...items) { stacks.unshift({ stack: getStack(), length: items.length }); return segments.unshift(...items); } function splice(start, deleteCount, ...items) { if (deleteCount === void 0) deleteCount = segments.length - start; let _stackStart = 0; let operateIndex; for (let i$1 = 0; i$1 < stacks.length; i$1++) { const stack = stacks[i$1]; const stackStart = _stackStart; _stackStart = stackStart + stack.length; if (start >= stackStart) { operateIndex = i$1 + 1; const originalLength = stack.length; stack.length = start - stackStart; stacks.splice(operateIndex, 0, { stack: stack.stack, length: originalLength - stack.length }); break; } } if (operateIndex === void 0) throw new Error("Invalid splice operation"); let _deleteCount = deleteCount; for (let i$1 = operateIndex; i$1 < stacks.length; i$1++) { const stack = stacks[i$1]; while (_deleteCount > 0 && stack.length > 0) { stack.length--; _deleteCount--; } if (_deleteCount === 0) break; } stacks.splice(operateIndex, 0, { stack: getStack(), length: items.length }); return segments.splice(start, deleteCount, ...items); } function sort$3(compareFn) { stacks.splice(0, stacks.length, { stack: getStack(), length: segments.length }); return segments.sort(compareFn); } function reverse() { stacks.splice(0, stacks.length, { stack: getStack(), length: segments.length }); return segments.reverse(); } } exports.track = track; function getStack() { let source = (/* @__PURE__ */ new Error()).stack.split("\n")[3 + stackOffset].trim(); if (source.endsWith(")")) source = source.slice(source.lastIndexOf("(") + 1, -1); else source = source.slice(source.lastIndexOf(" ") + 1); return source; } exports.getStack = getStack; }) }); //#endregion //#region ../../node_modules/.pnpm/muggle-string@0.4.1/node_modules/muggle-string/out/types.js var require_types$3 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/muggle-string@0.4.1/node_modules/muggle-string/out/types.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); }) }); //#endregion //#region ../../node_modules/.pnpm/muggle-string@0.4.1/node_modules/muggle-string/out/index.js var require_out$1 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/muggle-string@0.4.1/node_modules/muggle-string/out/index.js": ((exports) => { var __createBinding$12 = exports && exports.__createBinding || (Object.create ? (function(o$1, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = { enumerable: true, get: function() { return m[k]; } }; Object.defineProperty(o$1, k2, desc); }) : (function(o$1, m, k, k2) { if (k2 === void 0) k2 = k; o$1[k2] = m[k]; })); var __exportStar$12 = exports && exports.__exportStar || function(m, exports$1) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports$1, p)) __createBinding$12(exports$1, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.replaceRange = exports.replaceSourceRange = exports.replaceAll = exports.replace = exports.create = exports.toString = exports.getLength = void 0; const binarySearch_1$1 = require_binarySearch$1(); const track_1 = require_track(); __exportStar$12(require_types$3(), exports); __exportStar$12(require_track(), exports); function getLength(segments) { let length = 0; for (const segment of segments) length += typeof segment == "string" ? segment.length : segment[0].length; return length; } exports.getLength = getLength; function toString$1(segments) { return segments.map((s$1) => typeof s$1 === "string" ? s$1 : s$1[0]).join(""); } exports.toString = toString$1; function create$5(source) { return [[ source, void 0, 0 ]]; } exports.create = create$5; function replace(segments, pattern, ...replacers) { const match = toString$1(segments).match(pattern); if (match && match.index !== void 0) { const startOffset = match.index; const endOffset = startOffset + match[0].length; (0, track_1.offsetStack)(); replaceRange(segments, startOffset, endOffset, ...replacers.map((replacer) => typeof replacer === "function" ? replacer(match[0]) : replacer)); (0, track_1.resetOffsetStack)(); } } exports.replace = replace; function replaceAll(segments, pattern, ...replacers) { const str = toString$1(segments); const allMatch = str.matchAll(pattern); let length = str.length; let lengthDiff = 0; for (const match of allMatch) if (match.index !== void 0) { const startOffset = match.index + lengthDiff; const endOffset = startOffset + match[0].length; (0, track_1.offsetStack)(); replaceRange(segments, startOffset, endOffset, ...replacers.map((replacer) => typeof replacer === "function" ? replacer(match[0]) : replacer)); (0, track_1.resetOffsetStack)(); const newLength = getLength(segments); lengthDiff += newLength - length; length = newLength; } } exports.replaceAll = replaceAll; function replaceSourceRange(segments, source, startOffset, endOffset, ...newSegments) { for (const segment of segments) { if (typeof segment === "string") continue; if (segment[1] === source) { const segmentStart = segment[2]; const segmentEnd = segment[2] + segment[0].length; if (segmentStart <= startOffset && segmentEnd >= endOffset) { const inserts = []; if (startOffset > segmentStart) inserts.push(trimSegmentEnd(segment, startOffset - segmentStart)); for (const newSegment of newSegments) inserts.push(newSegment); if (endOffset < segmentEnd) inserts.push(trimSegmentStart(segment, endOffset - segmentEnd)); combineStrings(inserts); (0, track_1.offsetStack)(); segments.splice(segments.indexOf(segment), 1, ...inserts); (0, track_1.resetOffsetStack)(); return true; } } } return false; } exports.replaceSourceRange = replaceSourceRange; function replaceRange(segments, startOffset, endOffset, ...newSegments) { const offsets = toOffsets(segments); const startIndex = (0, binarySearch_1$1.binarySearch)(offsets, startOffset); const endIndex = (0, binarySearch_1$1.binarySearch)(offsets, endOffset); const startSegment = segments[startIndex]; const endSegment = segments[endIndex]; const startSegmentStart = offsets[startIndex]; const endSegmentStart = offsets[endIndex]; const endSegmentEnd = offsets[endIndex] + (typeof endSegment === "string" ? endSegment.length : endSegment[0].length); const inserts = []; if (startOffset > startSegmentStart) inserts.push(trimSegmentEnd(startSegment, startOffset - startSegmentStart)); for (const newSegment of newSegments) inserts.push(newSegment); if (endOffset < endSegmentEnd) inserts.push(trimSegmentStart(endSegment, endOffset - endSegmentStart)); combineStrings(inserts); (0, track_1.offsetStack)(); segments.splice(startIndex, endIndex - startIndex + 1, ...inserts); (0, track_1.resetOffsetStack)(); } exports.replaceRange = replaceRange; function combineStrings(segments) { for (let i$1 = segments.length - 1; i$1 >= 1; i$1--) if (typeof segments[i$1] === "string" && typeof segments[i$1 - 1] === "string") { segments[i$1 - 1] = segments[i$1 - 1] + segments[i$1]; (0, track_1.offsetStack)(); segments.splice(i$1, 1); (0, track_1.resetOffsetStack)(); } } function trimSegmentEnd(segment, trimEnd) { if (typeof segment === "string") return segment.slice(0, trimEnd); return [segment[0].slice(0, trimEnd), ...segment.slice(1)]; } function trimSegmentStart(segment, trimStart) { if (typeof segment === "string") return segment.slice(trimStart); if (trimStart < 0) trimStart += segment[0].length; return [ segment[0].slice(trimStart), segment[1], segment[2] + trimStart, ...segment.slice(3) ]; } function toOffsets(segments) { const offsets = []; let offset = 0; for (const segment of segments) { offsets.push(offset); offset += typeof segment == "string" ? segment.length : segment[0].length; } return offsets; } }) }); //#endregion //#region ../../node_modules/.pnpm/ts-macro@0.3.6/node_modules/ts-macro/dist/index.js var import_out = /* @__PURE__ */ __toESM(require_out$1(), 1); const t$5 = (e, t$6) => (Array.isArray(e) && (typeof e[1] == `number` && e.splice(1, 0, t$6), typeof e.at(-1) != `object` && e.push(l)), e); function n(n$1, r$1, i$1, ...a$1) { return import_out.replaceSourceRange(n$1, void 0, r$1, i$1, ...a$1.map((e) => t$5(e))); } function r(n$1, r$1, i$1, a$1, ...o$1) { return import_out.replaceSourceRange(n$1, r$1, i$1, a$1, ...o$1.map((e) => t$5(e, r$1))); } function i(t$6) { return import_out.toString(t$6); } function a(t$6) { return import_out.getLength(t$6); } function o(n$1, r$1, ...i$1) { return import_out.replace(n$1, r$1, ...i$1.map((e) => typeof e == `function` ? e : t$5(e))); } function s(n$1, r$1, ...i$1) { return import_out.replaceAll(n$1, r$1, ...i$1.map((e) => typeof e == `function` ? e : t$5(e))); } function c(e, c$1) { return new Proxy(e, { get: (l$1, u$1, d$1) => u$1 === `replaceRange` ? (t$6, i$1, ...a$1) => c$1 ? r(e, c$1, t$6, i$1, ...a$1) : n(e, t$6, i$1, ...a$1) : u$1 === `replace` ? (t$6, ...n$1) => o(e, t$6, ...n$1) : u$1 === `replaceAll` ? (t$6, ...n$1) => s(e, t$6, ...n$1) : u$1 === `toString` ? () => i(e) : u$1 === `getLength` ? () => a(e) : u$1 === `push` ? (...n$1) => e.push(...n$1.map((e$1) => t$5(e$1, c$1))) : u$1 === `unshift` ? (...n$1) => e.unshift(...n$1.map((e$1) => t$5(e$1, c$1))) : u$1 === `splice` ? (n$1, r$1, ...i$1) => e.splice(n$1, r$1, ...i$1.map((e$1) => t$5(e$1, c$1))) : Reflect.get(l$1, u$1, d$1) }); } const l = { completion: !0, format: !0, navigation: !0, semantic: !0, structure: !0, verification: !0 }; var u = class { id; mappings; embeddedCodes = []; _codes = []; codes = c(this._codes); snapshot; source; linkedCodeMappings = []; lang = `tsx`; constructor(e, t$6, n$1 = `typescriptreact`, r$1 = []) { this.filePath = e, this.ast = t$6, this.languageId = n$1, this.plugins = r$1, this.lang = n$1 === `typescriptreact` ? `tsx` : `ts`, this.id = `root_${this.lang}`, this.codes.push([ t$6.text, void 0, 0, l ]); for (let e$1 of this.plugins) try { var _e$resolveVirtualCode; (_e$resolveVirtualCode = e$1.resolveVirtualCode) === null || _e$resolveVirtualCode === void 0 || _e$resolveVirtualCode.call(e$1, this); } catch (t$7) { console.error(`[${e$1.name}]:`, t$7); } this.mappings = d(this.codes); let a$1 = i(this.codes); this.snapshot = { getLength: () => a$1.length, getText: (e$1, t$7) => a$1.slice(e$1, t$7), getChangeRange() {} }; } }; function d(e) { let n$1 = 0, r$1 = []; for (let i$1 of e) typeof i$1 == `string` ? n$1 += i$1.length : (t$5(i$1), r$1.push({ sourceOffsets: [i$1[2]], generatedOffsets: [n$1], lengths: [i$1[0].length], data: i$1[3] }), n$1 += i$1[0].length); return r$1; } //#endregion //#region ../../node_modules/.pnpm/@volar+typescript@2.4.23/node_modules/@volar/typescript/lib/common.js var require_common$2 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+typescript@2.4.23/node_modules/@volar/typescript/lib/common.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveFileLanguageId = resolveFileLanguageId; function resolveFileLanguageId(path$12) { switch (path$12.split(".").pop()) { case "js": return "javascript"; case "cjs": return "javascript"; case "mjs": return "javascript"; case "ts": return "typescript"; case "cts": return "typescript"; case "mts": return "typescript"; case "jsx": return "javascriptreact"; case "tsx": return "typescriptreact"; case "json": return "json"; } } }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+source-map@2.4.23/node_modules/@volar/source-map/lib/binarySearch.js var require_binarySearch = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+source-map@2.4.23/node_modules/@volar/source-map/lib/binarySearch.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.binarySearch = binarySearch; function binarySearch(values, searchValue) { let low = 0; let high = values.length - 1; let match; while (low <= high) { const mid = Math.floor((low + high) / 2); const midValue = values[mid]; if (midValue < searchValue) low = mid + 1; else if (midValue > searchValue) high = mid - 1; else { low = mid; high = mid; match = mid; break; } } const finalLow = Math.max(Math.min(low, high, values.length - 1), 0); const finalHigh = Math.min(Math.max(low, high, 0), values.length - 1); return { low: finalLow, high: finalHigh, match }; } }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+source-map@2.4.23/node_modules/@volar/source-map/lib/translateOffset.js var require_translateOffset = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+source-map@2.4.23/node_modules/@volar/source-map/lib/translateOffset.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.translateOffset = translateOffset; let warned = false; function translateOffset(start, fromOffsets, toOffsets$1, fromLengths, toLengths = fromLengths) { if (!fromOffsets.every((value, index) => index === 0 || fromOffsets[index - 1] <= value)) { for (let i$1 = 0; i$1 < fromOffsets.length; i$1++) { const fromOffset = fromOffsets[i$1]; const fromLength = fromLengths[i$1]; if (start >= fromOffset && start <= fromOffset + fromLength) { const toLength = toLengths[i$1]; const toOffset$1 = toOffsets$1[i$1]; let rangeOffset = Math.min(start - fromOffset, toLength); return toOffset$1 + rangeOffset; } } if (!warned) { warned = true; console.warn("fromOffsets should be sorted in ascending order"); } } let low = 0; let high = fromOffsets.length - 1; while (low <= high) { const mid = Math.floor((low + high) / 2); const fromOffset = fromOffsets[mid]; const fromLength = fromLengths[mid]; if (start >= fromOffset && start <= fromOffset + fromLength) { const toLength = toLengths[mid]; const toOffset$1 = toOffsets$1[mid]; let rangeOffset = Math.min(start - fromOffset, toLength); return toOffset$1 + rangeOffset; } else if (start < fromOffset) high = mid - 1; else low = mid + 1; } } }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+source-map@2.4.23/node_modules/@volar/source-map/lib/sourceMap.js var require_sourceMap = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+source-map@2.4.23/node_modules/@volar/source-map/lib/sourceMap.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const binarySearch_1 = require_binarySearch(); const translateOffset_1 = require_translateOffset(); var SourceMap = class { constructor(mappings) { this.mappings = mappings; } toSourceRange(generatedStart, generatedEnd, fallbackToAnyMatch, filter) { return this.findMatchingStartEnd(generatedStart, generatedEnd, fallbackToAnyMatch, "generatedOffsets", filter); } toGeneratedRange(sourceStart, sourceEnd, fallbackToAnyMatch, filter) { return this.findMatchingStartEnd(sourceStart, sourceEnd, fallbackToAnyMatch, "sourceOffsets", filter); } toSourceLocation(generatedOffset, filter) { return this.findMatchingOffsets(generatedOffset, "generatedOffsets", filter); } toGeneratedLocation(sourceOffset, filter) { return this.findMatchingOffsets(sourceOffset, "sourceOffsets", filter); } *findMatchingOffsets(offset, fromRange, filter) { const memo = this.getMemoBasedOnRange(fromRange); if (memo.offsets.length === 0) return; const { low: start, high: end } = (0, binarySearch_1.binarySearch)(memo.offsets, offset); const skip = /* @__PURE__ */ new Set(); const toRange$1 = fromRange == "sourceOffsets" ? "generatedOffsets" : "sourceOffsets"; for (let i$1 = start; i$1 <= end; i$1++) for (const mapping of memo.mappings[i$1]) { if (skip.has(mapping)) continue; skip.add(mapping); if (filter && !filter(mapping.data)) continue; const mapped = (0, translateOffset_1.translateOffset)(offset, mapping[fromRange], mapping[toRange$1], getLengths(mapping, fromRange), getLengths(mapping, toRange$1)); if (mapped !== void 0) yield [mapped, mapping]; } } *findMatchingStartEnd(start, end, fallbackToAnyMatch, fromRange, filter) { const toRange$1 = fromRange == "sourceOffsets" ? "generatedOffsets" : "sourceOffsets"; const mappedStarts = []; let hadMatch = false; for (const [mappedStart, mapping] of this.findMatchingOffsets(start, fromRange)) { if (filter && !filter(mapping.data)) continue; mappedStarts.push([mappedStart, mapping]); const mappedEnd = (0, translateOffset_1.translateOffset)(end, mapping[fromRange], mapping[toRange$1], getLengths(mapping, fromRange), getLengths(mapping, toRange$1)); if (mappedEnd !== void 0) { hadMatch = true; yield [ mappedStart, mappedEnd, mapping, mapping ]; } } if (!hadMatch && fallbackToAnyMatch) for (const [mappedStart, mappingStart] of mappedStarts) for (const [mappedEnd, mappingEnd] of this.findMatchingOffsets(end, fromRange)) { if (filter && !filter(mappingEnd.data) || mappedEnd < mappedStart) continue; yield [ mappedStart, mappedEnd, mappingStart, mappingEnd ]; break; } } getMemoBasedOnRange(fromRange) { return fromRange === "sourceOffsets" ? this.sourceCodeOffsetsMemo ??= this.createMemo("sourceOffsets") : this.generatedCodeOffsetsMemo ??= this.createMemo("generatedOffsets"); } createMemo(key) { const offsetsSet = /* @__PURE__ */ new Set(); for (const mapping of this.mappings) for (let i$1 = 0; i$1 < mapping[key].length; i$1++) { offsetsSet.add(mapping[key][i$1]); offsetsSet.add(mapping[key][i$1] + getLengths(mapping, key)[i$1]); } const offsets = [...offsetsSet].sort((a$1, b) => a$1 - b); const mappings = offsets.map(() => /* @__PURE__ */ new Set()); for (const mapping of this.mappings) for (let i$1 = 0; i$1 < mapping[key].length; i$1++) { const startIndex = (0, binarySearch_1.binarySearch)(offsets, mapping[key][i$1]).match; const endIndex = (0, binarySearch_1.binarySearch)(offsets, mapping[key][i$1] + getLengths(mapping, key)[i$1]).match; for (let i$2 = startIndex; i$2 <= endIndex; i$2++) mappings[i$2].add(mapping); } return { offsets, mappings }; } }; exports.SourceMap = SourceMap; function getLengths(mapping, key) { return key == "sourceOffsets" ? mapping.lengths : mapping.generatedLengths ?? mapping.lengths; } }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+source-map@2.4.23/node_modules/@volar/source-map/index.js var require_source_map = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+source-map@2.4.23/node_modules/@volar/source-map/index.js": ((exports) => { var __createBinding$11 = exports && exports.__createBinding || (Object.create ? (function(o$1, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = { enumerable: true, get: function() { return m[k]; } }; Object.defineProperty(o$1, k2, desc); }) : (function(o$1, m, k, k2) { if (k2 === void 0) k2 = k; o$1[k2] = m[k]; })); var __exportStar$11 = exports && exports.__exportStar || function(m, exports$1) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports$1, p)) __createBinding$11(exports$1, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar$11(require_sourceMap(), exports); __exportStar$11(require_translateOffset(), exports); }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/lib/editor.js var require_editor = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/lib/editor.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.isHoverEnabled = isHoverEnabled; exports.isInlayHintsEnabled = isInlayHintsEnabled; exports.isCodeLensEnabled = isCodeLensEnabled; exports.isMonikerEnabled = isMonikerEnabled; exports.isInlineValueEnabled = isInlineValueEnabled; exports.isSemanticTokensEnabled = isSemanticTokensEnabled; exports.isCallHierarchyEnabled = isCallHierarchyEnabled; exports.isTypeHierarchyEnabled = isTypeHierarchyEnabled; exports.isRenameEnabled = isRenameEnabled; exports.isDefinitionEnabled = isDefinitionEnabled; exports.isTypeDefinitionEnabled = isTypeDefinitionEnabled; exports.isReferencesEnabled = isReferencesEnabled; exports.isImplementationEnabled = isImplementationEnabled; exports.isHighlightEnabled = isHighlightEnabled; exports.isSymbolsEnabled = isSymbolsEnabled; exports.isFoldingRangesEnabled = isFoldingRangesEnabled; exports.isSelectionRangesEnabled = isSelectionRangesEnabled; exports.isLinkedEditingEnabled = isLinkedEditingEnabled; exports.isColorEnabled = isColorEnabled; exports.isDocumentLinkEnabled = isDocumentLinkEnabled; exports.isDiagnosticsEnabled = isDiagnosticsEnabled; exports.isCodeActionsEnabled = isCodeActionsEnabled; exports.isFormattingEnabled = isFormattingEnabled; exports.isCompletionEnabled = isCompletionEnabled; exports.isAutoInsertEnabled = isAutoInsertEnabled; exports.isSignatureHelpEnabled = isSignatureHelpEnabled; exports.shouldReportDiagnostics = shouldReportDiagnostics; exports.resolveRenameNewName = resolveRenameNewName; exports.resolveRenameEditText = resolveRenameEditText; exports.findOverlapCodeRange = findOverlapCodeRange; function isHoverEnabled(info) { return !!info.semantic; } function isInlayHintsEnabled(info) { return !!info.semantic; } function isCodeLensEnabled(info) { return !!info.semantic; } function isMonikerEnabled(info) { return !!info.semantic; } function isInlineValueEnabled(info) { return !!info.semantic; } function isSemanticTokensEnabled(info) { var _info$semantic$should, _info$semantic; return typeof info.semantic === "object" ? ((_info$semantic$should = (_info$semantic = info.semantic).shouldHighlight) === null || _info$semantic$should === void 0 ? void 0 : _info$semantic$should.call(_info$semantic)) ?? true : !!info.semantic; } function isCallHierarchyEnabled(info) { return !!info.navigation; } function isTypeHierarchyEnabled(info) { return !!info.navigation; } function isRenameEnabled(info) { var _info$navigation$shou, _info$navigation; return typeof info.navigation === "object" ? ((_info$navigation$shou = (_info$navigation = info.navigation).shouldRename) === null || _info$navigation$shou === void 0 ? void 0 : _info$navigation$shou.call(_info$navigation)) ?? true : !!info.navigation; } function isDefinitionEnabled(info) { return !!info.navigation; } function isTypeDefinitionEnabled(info) { return !!info.navigation; } function isReferencesEnabled(info) { return !!info.navigation; } function isImplementationEnabled(info) { return !!info.navigation; } function isHighlightEnabled(info) { var _info$navigation$shou2, _info$navigation2; return typeof info.navigation === "object" ? ((_info$navigation$shou2 = (_info$navigation2 = info.navigation).shouldHighlight) === null || _info$navigation$shou2 === void 0 ? void 0 : _info$navigation$shou2.call(_info$navigation2)) ?? true : !!info.navigation; } function isSymbolsEnabled(info) { return !!info.structure; } function isFoldingRangesEnabled(info) { return !!info.structure; } function isSelectionRangesEnabled(info) { return !!info.structure; } function isLinkedEditingEnabled(info) { return !!info.structure; } function isColorEnabled(info) { return !!info.structure; } function isDocumentLinkEnabled(info) { return !!info.structure; } function isDiagnosticsEnabled(info) { return !!info.verification; } function isCodeActionsEnabled(info) { return !!info.verification; } function isFormattingEnabled(info) { return !!info.format; } function isCompletionEnabled(info) { return !!info.completion; } function isAutoInsertEnabled(info) { return !!info.completion; } function isSignatureHelpEnabled(info) { return !!info.completion; } function shouldReportDiagnostics(info, source, code) { var _info$verification$sh, _info$verification; return typeof info.verification === "object" ? ((_info$verification$sh = (_info$verification = info.verification).shouldReport) === null || _info$verification$sh === void 0 ? void 0 : _info$verification$sh.call(_info$verification, source, code)) ?? true : !!info.verification; } function resolveRenameNewName(newName, info) { var _info$navigation$reso, _info$navigation3; return typeof info.navigation === "object" ? ((_info$navigation$reso = (_info$navigation3 = info.navigation).resolveRenameNewName) === null || _info$navigation$reso === void 0 ? void 0 : _info$navigation$reso.call(_info$navigation3, newName)) ?? newName : newName; } function resolveRenameEditText(text, info) { var _info$navigation$reso2, _info$navigation4; return typeof info.navigation === "object" ? ((_info$navigation$reso2 = (_info$navigation4 = info.navigation).resolveRenameEditText) === null || _info$navigation$reso2 === void 0 ? void 0 : _info$navigation$reso2.call(_info$navigation4, text)) ?? text : text; } function findOverlapCodeRange(start, end, map$1, filter) { let mappedStart; let mappedEnd; for (const [mapped, mapping] of map$1.toGeneratedLocation(start)) if (filter(mapping.data)) { mappedStart = mapped; break; } for (const [mapped, mapping] of map$1.toGeneratedLocation(end)) if (filter(mapping.data)) { mappedEnd = mapped; break; } if (mappedStart === void 0 || mappedEnd === void 0) { for (const mapping of map$1.mappings) if (filter(mapping.data)) { const mappingStart = mapping.sourceOffsets[0]; const mappingEnd = mapping.sourceOffsets[mapping.sourceOffsets.length - 1] + mapping.lengths[mapping.lengths.length - 1]; const overlap = getOverlapRange(start, end, mappingStart, mappingEnd); if (overlap) { const curMappedStart = overlap.start - mappingStart + mapping.generatedOffsets[0]; const lastGeneratedLength = (mapping.generatedLengths ?? mapping.lengths)[mapping.generatedOffsets.length - 1]; const curMappedEndOffset = Math.min(overlap.end - mapping.sourceOffsets[mapping.sourceOffsets.length - 1], lastGeneratedLength); const curMappedEnd = mapping.generatedOffsets[mapping.generatedOffsets.length - 1] + curMappedEndOffset; mappedStart = mappedStart === void 0 ? curMappedStart : Math.min(mappedStart, curMappedStart); mappedEnd = mappedEnd === void 0 ? curMappedEnd : Math.max(mappedEnd, curMappedEnd); } } } if (mappedStart !== void 0 && mappedEnd !== void 0) return { start: mappedStart, end: mappedEnd }; } function getOverlapRange(range1Start, range1End, range2Start, range2End) { const start = Math.max(range1Start, range2Start); const end = Math.min(range1End, range2End); if (start > end) return; return { start, end }; } }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/lib/linkedCodeMap.js var require_linkedCodeMap = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/lib/linkedCodeMap.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const source_map_1$1 = require_source_map(); var LinkedCodeMap = class extends source_map_1$1.SourceMap { *getLinkedOffsets(start) { for (const mapped of this.toGeneratedLocation(start)) yield mapped[0]; for (const mapped of this.toSourceLocation(start)) yield mapped[0]; } }; exports.LinkedCodeMap = LinkedCodeMap; }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/lib/types.js var require_types$2 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/lib/types.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/lib/utils.js var require_utils$1 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/lib/utils.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); var FileMap = class extends Map { constructor(caseSensitive) { super(); this.caseSensitive = caseSensitive; this.originalFileNames = /* @__PURE__ */ new Map(); } keys() { return this.originalFileNames.values(); } get(key) { return super.get(this.normalizeId(key)); } has(key) { return super.has(this.normalizeId(key)); } set(key, value) { this.originalFileNames.set(this.normalizeId(key), key); return super.set(this.normalizeId(key), value); } delete(key) { this.originalFileNames.delete(this.normalizeId(key)); return super.delete(this.normalizeId(key)); } clear() { this.originalFileNames.clear(); return super.clear(); } normalizeId(id) { return this.caseSensitive ? id : id.toLowerCase(); } }; exports.FileMap = FileMap; }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/index.js var require_language_core = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+language-core@2.4.23/node_modules/@volar/language-core/index.js": ((exports) => { var __createBinding$10 = exports && exports.__createBinding || (Object.create ? (function(o$1, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = { enumerable: true, get: function() { return m[k]; } }; Object.defineProperty(o$1, k2, desc); }) : (function(o$1, m, k, k2) { if (k2 === void 0) k2 = k; o$1[k2] = m[k]; })); var __exportStar$10 = exports && exports.__exportStar || function(m, exports$1) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports$1, p)) __createBinding$10(exports$1, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultMapperFactory = exports.SourceMap = void 0; exports.createLanguage = createLanguage; exports.forEachEmbeddedCode = forEachEmbeddedCode; var source_map_1 = require_source_map(); Object.defineProperty(exports, "SourceMap", { enumerable: true, get: function() { return source_map_1.SourceMap; } }); __exportStar$10(require_editor(), exports); __exportStar$10(require_linkedCodeMap(), exports); __exportStar$10(require_types$2(), exports); __exportStar$10(require_utils$1(), exports); const source_map_2 = require_source_map(); const linkedCodeMap_1 = require_linkedCodeMap(); const defaultMapperFactory = (mappings) => new source_map_2.SourceMap(mappings); exports.defaultMapperFactory = defaultMapperFactory; function createLanguage(plugins, scriptRegistry, sync, onAssociationDirty) { const virtualCodeToSourceScriptMap = /* @__PURE__ */ new WeakMap(); const virtualCodeToSourceMap = /* @__PURE__ */ new WeakMap(); const virtualCodeToLinkedCodeMap = /* @__PURE__ */ new WeakMap(); const language = { mapperFactory: exports.defaultMapperFactory, plugins, scripts: { fromVirtualCode(virtualCode) { return virtualCodeToSourceScriptMap.get(virtualCode); }, get(id, includeFsFiles = true, shouldRegister = false) { sync(id, includeFsFiles, shouldRegister); const result = scriptRegistry.get(id); if (result === null || result === void 0 ? void 0 : result.isAssociationDirty) this.set(id, result.snapshot, result.languageId); return scriptRegistry.get(id); }, set(id, snapshot, languageId, _plugins = plugins) { if (!languageId) for (const plugin of plugins) { var _plugin$getLanguageId; languageId = (_plugin$getLanguageId = plugin.getLanguageId) === null || _plugin$getLanguageId === void 0 ? void 0 : _plugin$getLanguageId.call(plugin, id); if (languageId) break; } if (!languageId) { console.warn(`languageId not found for ${id}`); return; } let associatedOnly = false; for (const plugin of plugins) { var _plugin$isAssociatedF; if ((_plugin$isAssociatedF = plugin.isAssociatedFileOnly) === null || _plugin$isAssociatedF === void 0 ? void 0 : _plugin$isAssociatedF.call(plugin, id, languageId)) { associatedOnly = true; break; } } if (scriptRegistry.has(id)) { const sourceScript = scriptRegistry.get(id); if (sourceScript.languageId !== languageId || sourceScript.associatedOnly !== associatedOnly) { this.delete(id); triggerTargetsDirty(sourceScript); return this.set(id, snapshot, languageId); } else if (associatedOnly) { if (sourceScript.snapshot !== snapshot) { sourceScript.snapshot = snapshot; triggerTargetsDirty(sourceScript); } } else if (sourceScript.isAssociationDirty || sourceScript.snapshot !== snapshot) { if (sourceScript.snapshot !== snapshot) { sourceScript.snapshot = snapshot; triggerTargetsDirty(sourceScript); } const codegenCtx = prepareCreateVirtualCode(sourceScript); if (sourceScript.generated) { const { updateVirtualCode, createVirtualCode: createVirtualCode$1 } = sourceScript.generated.languagePlugin; const newVirtualCode = updateVirtualCode ? updateVirtualCode(id, sourceScript.generated.root, snapshot, codegenCtx) : createVirtualCode$1 === null || createVirtualCode$1 === void 0 ? void 0 : createVirtualCode$1(id, languageId, snapshot, codegenCtx); if (newVirtualCode) { sourceScript.generated.root = newVirtualCode; sourceScript.generated.embeddedCodes.clear(); for (const code of forEachEmbeddedCode(sourceScript.generated.root)) { virtualCodeToSourceScriptMap.set(code, sourceScript); sourceScript.generated.embeddedCodes.set(code.id, code); } return sourceScript; } else { this.delete(id); return; } } } else return sourceScript; } else { const sourceScript = { id, languageId, snapshot, associatedIds: /* @__PURE__ */ new Set(), targetIds: /* @__PURE__ */ new Set(), associatedOnly }; scriptRegistry.set(id, sourceScript); if (associatedOnly) return sourceScript; for (const languagePlugin of _plugins) { var _languagePlugin$creat; const virtualCode = (_languagePlugin$creat = languagePlugin.createVirtualCode) === null || _languagePlugin$creat === void 0 ? void 0 : _languagePlugin$creat.call(languagePlugin, id, languageId, snapshot, prepareCreateVirtualCode(sourceScript)); if (virtualCode) { sourceScript.generated = { root: virtualCode, languagePlugin, embeddedCodes: /* @__PURE__ */ new Map() }; for (const code of forEachEmbeddedCode(virtualCode)) { virtualCodeToSourceScriptMap.set(code, sourceScript); sourceScript.generated.embeddedCodes.set(code.id, code); } break; } } return sourceScript; } }, delete(id) { const sourceScript = scriptRegistry.get(id); if (sourceScript) { var _sourceScript$generat, _sourceScript$generat2, _sourceScript$generat3; (_sourceScript$generat = sourceScript.generated) === null || _sourceScript$generat === void 0 || (_sourceScript$generat3 = (_sourceScript$generat2 = _sourceScript$generat.languagePlugin).disposeVirtualCode) === null || _sourceScript$generat3 === void 0 || _sourceScript$generat3.call(_sourceScript$generat2, id, sourceScript.generated.root); scriptRegistry.delete(id); triggerTargetsDirty(sourceScript); } } }, maps: { get(virtualCode, sourceScript) { let mapCache = virtualCodeToSourceMap.get(virtualCode.snapshot); if (!mapCache) virtualCodeToSourceMap.set(virtualCode.snapshot, mapCache = /* @__PURE__ */ new WeakMap()); if (!mapCache.has(sourceScript.snapshot)) { var _virtualCode$associat; const mappings = ((_virtualCode$associat = virtualCode.associatedScriptMappings) === null || _virtualCode$associat === void 0 ? void 0 : _virtualCode$associat.get(sourceScript.id)) ?? virtualCode.mappings; mapCache.set(sourceScript.snapshot, language.mapperFactory(mappings)); } return mapCache.get(sourceScript.snapshot); }, *forEach(virtualCode) { const sourceScript = virtualCodeToSourceScriptMap.get(virtualCode); yield [sourceScript, this.get(virtualCode, sourceScript)]; if (virtualCode.associatedScriptMappings) for (const [relatedScriptId] of virtualCode.associatedScriptMappings) { const relatedSourceScript = scriptRegistry.get(relatedScriptId); if (relatedSourceScript) yield [relatedSourceScript, this.get(virtualCode, relatedSourceScript)]; } } }, linkedCodeMaps: { get(virtualCode) { const sourceScript = virtualCodeToSourceScriptMap.get(virtualCode); let mapCache = virtualCodeToLinkedCodeMap.get(virtualCode.snapshot); if ((mapCache === null || mapCache === void 0 ? void 0 : mapCache[0]) !== sourceScript.snapshot) virtualCodeToLinkedCodeMap.set(virtualCode.snapshot, mapCache = [sourceScript.snapshot, virtualCode.linkedCodeMappings ? new linkedCodeMap_1.LinkedCodeMap(virtualCode.linkedCodeMappings) : void 0]); return mapCache[1]; } } }; return language; function triggerTargetsDirty(sourceScript) { sourceScript.targetIds.forEach((id) => { const sourceScript$1 = scriptRegistry.get(id); if (sourceScript$1) { sourceScript$1.isAssociationDirty = true; onAssociationDirty === null || onAssociationDirty === void 0 || onAssociationDirty(sourceScript$1.id); } }); } function prepareCreateVirtualCode(sourceScript) { for (const id of sourceScript.associatedIds) { var _scriptRegistry$get; (_scriptRegistry$get = scriptRegistry.get(id)) === null || _scriptRegistry$get === void 0 || _scriptRegistry$get.targetIds.delete(sourceScript.id); } sourceScript.associatedIds.clear(); sourceScript.isAssociationDirty = false; return { getAssociatedScript(id) { sync(id, true, true); const relatedSourceScript = scriptRegistry.get(id); if (relatedSourceScript) { relatedSourceScript.targetIds.add(sourceScript.id); sourceScript.associatedIds.add(relatedSourceScript.id); } return relatedSourceScript; } }; } } function* forEachEmbeddedCode(virtualCode) { yield virtualCode; if (virtualCode.embeddedCodes) for (const embeddedCode of virtualCode.embeddedCodes) yield* forEachEmbeddedCode(embeddedCode); } }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+typescript@2.4.23/node_modules/@volar/typescript/lib/node/dedupe.js var require_dedupe$1 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+typescript@2.4.23/node_modules/@volar/typescript/lib/node/dedupe.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.dedupeDocumentSpans = dedupeDocumentSpans; function dedupeDocumentSpans(items) { return dedupe$10(items, (item) => [ item.fileName, item.textSpan.start, item.textSpan.length ].join(":")); } function dedupe$10(items, getKey) { const map$1 = /* @__PURE__ */ new Map(); for (const item of items.reverse()) map$1.set(getKey(item), item); return [...map$1.values()]; } }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+typescript@2.4.23/node_modules/@volar/typescript/lib/node/utils.js var require_utils = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+typescript@2.4.23/node_modules/@volar/typescript/lib/node/utils.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getServiceScript = getServiceScript; function getServiceScript(language, fileName) { const sourceScript = language.scripts.get(fileName); if (sourceScript === null || sourceScript === void 0 ? void 0 : sourceScript.targetIds.size) for (const targetId of sourceScript.targetIds) { const targetScript = language.scripts.get(targetId); if (targetScript === null || targetScript === void 0 ? void 0 : targetScript.generated) { var _targetScript$generat; const serviceScript = (_targetScript$generat = targetScript.generated.languagePlugin.typescript) === null || _targetScript$generat === void 0 ? void 0 : _targetScript$generat.getServiceScript(targetScript.generated.root); if (serviceScript) return [ serviceScript, targetScript, sourceScript ]; } } if (sourceScript === null || sourceScript === void 0 ? void 0 : sourceScript.associatedOnly) return [ void 0, sourceScript, sourceScript ]; if (sourceScript === null || sourceScript === void 0 ? void 0 : sourceScript.generated) { var _sourceScript$generat; const serviceScript = (_sourceScript$generat = sourceScript.generated.languagePlugin.typescript) === null || _sourceScript$generat === void 0 ? void 0 : _sourceScript$generat.getServiceScript(sourceScript.generated.root); if (serviceScript) return [ serviceScript, sourceScript, sourceScript ]; } return [ void 0, void 0, void 0 ]; } }) }); //#endregion //#region ../../node_modules/.pnpm/@volar+typescript@2.4.23/node_modules/@volar/typescript/lib/node/transform.js var require_transform$1 = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@volar+typescript@2.4.23/node_modules/@volar/typescript/lib/node/transform.js": ((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.transformCallHierarchyItem = transformCallHierarchyItem; exports.transformDiagnostic = transformDiagnostic$1; exports.fillSourceFileText = fillSourceFileText; exports.transformFileTextChanges = transformFileTextChanges; exports.transformDocumentSpan = transformDocumentSpan; exports.transformSpan = transformSpan; exports.transformTextChange = transformTextChange; exports.transformTextSpan = transformTextSpan; exports.toSourceOffset = toSourceOffset; exports.toSourceRanges = toSourceRanges; exports.toSourceOffsets = toSourceOffsets; exports.toGeneratedRange = toGeneratedRange; exports.toGeneratedRanges = toGeneratedRanges; exports.toGeneratedOffset = toGeneratedOffset; exports.toGeneratedOffsets = toGeneratedOffsets; exports.getMappingOffset = getMappingOffset; const language_core_1$30 = require_language_core(); const utils_1$2 = require_utils(); const transformedDiagnostics = /* @__PURE__ */ new WeakMap(); const transformedSourceFile = /* @__PURE__ */ new WeakSet(); /** * This file contains a number of facilities for transforming `ts.Diagnostic`s returned * from the base TypeScript LanguageService, which reference locations in generated * TS code (e.g. the TypeScript codegen'd from the script portion of a .vue file) into locations * in the script portion of the .vue file. */ function transformCallHierarchyItem(language, item, fallbackToAnyMatch, filter) { const span = transformSpan(language, item.file, item.span, fallbackToAnyMatch, filter); const selectionSpan = transformSpan(language, item.file, item.selectionSpan, fallbackToAnyMatch, filter); return { ...item, file: (span === null || span === void 0 ? void 0 : span.fileName) ?? item.file, span: (span === null || span === void 0 ? void 0 : span.textSpan) ?? { start: 0, length: 0 }, selectionSpan: (selectionSpan === null || selectionSpan === void 0 ? void 0 : selectionSpan.textSpan) ?? { start: 0, length: 0 } }; } function transformDiagnostic$1(language, diagnostic, program, isTsc) { if (!transformedDiagnostics.has(diagnostic)) { transformedDiagnostics.set(diagnostic, void 0); const { relatedInformation } = diagnostic; if (relatedInformation) diagnostic.relatedInformation = relatedInformation.map((d$1) => transformDiagnostic$1(language, d$1, program, isTsc)).filter((d$1) => !!d$1); if (diagnostic.file !== void 0 && diagnostic.start !== void 0 && diagnostic.length !== void 0) { const [serviceScript] = (0, utils_1$2.getServiceScript)(language, diagnostic.file.fileName); if (serviceScript) { const [sourceSpanFileName, sourceSpan] = transformTextSpan(void 0, language, serviceScript, { start: diagnostic.start, length: diagnostic.length }, true, (data) => (0, language_core_1$30.shouldReportDiagnostics)(data, String(diagnostic.source), String(diagnostic.code))) ?? []; const actualDiagnosticFile = sourceSpanFileName ? diagnostic.file.fileName === sourceSpanFileName ? diagnostic.file : program === null || program === void 0 ? void 0 : program.getSourceFile(sourceSpanFileName) : void 0; if (sourceSpan && actualDiagnosticFile) { if (isTsc) fillSourceFileText(language, diagnostic.file); transformedDiagnostics.set(diagnostic, { ...diagnostic, file: actualDiagnosticFile, start: sourceSpan.start, length: sourceSpan.length }); } } else transformedDiagnostics.set(diagnostic, diagnostic); } else transformedDiagnostics.set(diagnostic, diagnostic); } return transformedDiagnostics.get(diagnostic); } function fillSourceFileText(language, sourceFile) { if (transformedSourceFile.has(sourceFile)) return; transformedSourceFile.add(sourceFile); const [serviceScript] = (0, utils_1$2.getServiceScript)(language, sourceFile.fileName); if (serviceScript && !serviceScript.preventLeadingOffset) { const sourceScript = language.scripts.fromVirtualCode(serviceScript.code); sourceFile.text = sourceScript.snapshot.getText(0, sourceScript.snapshot.getLength()) + sourceFile.text.substring(sourceScript.snapshot.getLength()); } } function transformFileTextChanges(language, changes, fallbackToAnyMatch, filter) { const changesPerFile = {}; const newFiles = /* @__PURE__ */ new Set(); for (const fileChanges of changes) { const [_, source] = (0, utils_1$2.getServiceScript)(language, fileChanges.fileName); if (source) fileChanges.textChanges.forEach((c$1) => { const { fileName, textSpan } = transformSpan(language, fileChanges.fileName, c$1.span, fallbackToAnyMatch, filter) ?? {}; if (fileName && textSpan) (changesPerFile[fileName] ?? (changesPerFile[file