@litsx/typescript 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/dist/authored-semantics.cjs +18567 -0
- package/dist/authored-semantics.cjs.map +1 -0
- package/dist/editor-session.cjs +1345 -0
- package/dist/editor-session.cjs.map +1 -0
- package/dist/index.cjs +841 -0
- package/dist/index.cjs.map +1 -0
- package/dist/litsx-tsc.js +18025 -0
- package/dist/typecheck.cjs +931 -0
- package/dist/typecheck.cjs.map +1 -0
- package/dist/virtualization.cjs +113 -0
- package/dist/virtualization.cjs.map +1 -0
- package/package.json +76 -0
- package/src/authored-semantics.js +1543 -0
- package/src/editor-session.js +1360 -0
- package/src/index.js +844 -0
- package/src/litsx-tsc.js +4 -0
- package/src/typecheck.js +535 -0
- package/src/virtualization.js +125 -0
- package/tsserver-plugin.cjs +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor-session.cjs","sources":["../src/editor-session.js"],"sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport defaultTs from \"typescript\";\n\nimport {\n collectLitsxAuthoredDiagnostics,\n createToolingVirtualLitsxSource,\n decodeVirtualAttributeName,\n getLitsxAttributeCompletionNames,\n inferLitsxComponentEventNames,\n inferLitsxComponentPropNames,\n inferLitsxAttributeCompletionContext,\n inferLitsxAttributeInfoAtPosition,\n inferLitsxMarkupCompletionContext,\n inferLitsxStaticHoistInfoAtPosition,\n looksLikeLitsxJsx,\n mapOriginalPositionToToolingVirtual,\n remapToolingTextSpanToOriginal,\n getLitsxMarkupCompletionNames,\n remapVirtualText,\n} from \"./virtualization.js\";\n\nconst QUERY_FILE_SUFFIX_BY_LANGUAGE_ID = {\n litsx: \".tsx\",\n \"litsx-jsx\": \".jsx\",\n};\n\nconst SUPPORTED_SOURCE_EXTENSIONS = [\n \".litsx.jsx\",\n \".litsx\",\n \".tsx\",\n \".ts\",\n \".jsx\",\n \".js\",\n];\n\nconst SCRIPT_KIND_BY_EXTENSION = {\n \"litsx.jsx\": \"JSX\",\n litsx: \"TSX\",\n tsx: \"TSX\",\n jsx: \"JSX\",\n ts: \"TS\",\n js: \"JS\",\n};\n\nconst BINDING_HOVER_BY_PREFIX = {\n \"@\": {\n kindLabel: \"event\",\n detail: \"LitSX event listener binding\",\n },\n \".\": {\n kindLabel: \"property\",\n detail: \"LitSX property binding\",\n },\n \"?\": {\n kindLabel: \"boolean\",\n detail: \"LitSX boolean attribute binding\",\n },\n};\n\nconst COMPLETION_KIND_BY_TS_KIND = {\n keyword: \"Keyword\",\n const: \"Variable\",\n constElement: \"Variable\",\n let: \"Variable\",\n letElement: \"Variable\",\n variable: \"Variable\",\n variableElement: \"Variable\",\n localVariableElement: \"Variable\",\n memberVariableElement: \"Property\",\n property: \"Property\",\n function: \"Function\",\n functionElement: \"Function\",\n memberFunctionElement: \"Function\",\n class: \"Class\",\n classElement: \"Class\",\n interface: \"Interface\",\n interfaceElement: \"Interface\",\n module: \"Module\",\n moduleElement: \"Module\",\n};\n\nconst SYMBOL_KIND_RULES = [\n [\"Function\", (ts) => ts.SymbolFlags.Function | ts.SymbolFlags.Method],\n [\"Class\", (ts) => ts.SymbolFlags.Class | ts.SymbolFlags.TypeAlias],\n [\"Interface\", (ts) => ts.SymbolFlags.Interface],\n [\"Module\", (ts) => ts.SymbolFlags.Module | ts.SymbolFlags.Namespace],\n [\"Property\", (ts) => ts.SymbolFlags.Property | ts.SymbolFlags.EnumMember],\n];\n\nfunction normalizeFileName(fileName) {\n return path.resolve(fileName).replace(/\\\\/g, \"/\");\n}\n\nfunction getParserPlugins(languageId) {\n return languageId === \"litsx\" ? [\"typescript\"] : [];\n}\n\nfunction isRelevantFile(fileName) {\n return /\\.(jsx|tsx|litsx)$/.test(fileName) || fileName.endsWith(\".litsx.jsx\");\n}\n\nfunction getPluginsForFile(fileName, languageId) {\n return (languageId === \"litsx\" || /\\.(tsx|litsx)$/.test(fileName ?? \"\"))\n ? [\"typescript\"]\n : [];\n}\n\nfunction createCompletionKindAdapter(adapter) {\n if (typeof adapter === \"function\") {\n return adapter;\n }\n\n if (adapter && typeof adapter === \"object\") {\n return (kind) => adapter[kind] ?? kind;\n }\n\n return (kind) => kind;\n}\n\nfunction createDefaultLogger(logger) {\n if (!logger) {\n return () => {};\n }\n\n if (typeof logger === \"function\") {\n return logger;\n }\n\n if (typeof logger.appendLine === \"function\") {\n return (message) => logger.appendLine(message);\n }\n\n return () => {};\n}\n\nfunction remapDisplayParts(parts) {\n return parts?.map((part) => ({\n ...part,\n text: remapVirtualText(part.text),\n }));\n}\n\nfunction remapMessageText(messageText) {\n if (typeof messageText === \"string\") {\n return remapVirtualText(messageText);\n }\n\n if (!messageText || typeof messageText !== \"object\") {\n return messageText;\n }\n\n return {\n ...messageText,\n messageText: remapMessageText(messageText.messageText),\n next: messageText.next?.map(remapMessageText),\n };\n}\n\nfunction remapCompletionTextChanges(textChanges, targetFileName, virtualization) {\n if (!Array.isArray(textChanges)) {\n return [];\n }\n\n return textChanges.map((change) => {\n const span = virtualization\n ? remapToolingTextSpanToOriginal(change.span, virtualization)\n : change.span;\n\n return {\n fileName: targetFileName,\n start: span.start,\n length: span.length,\n newText: change.newText,\n };\n });\n}\n\nfunction startsAtAuthoredSyntax(sourceText, start) {\n if (typeof sourceText !== \"string\" || typeof start !== \"number\" || !(start >= 0 && start < sourceText.length)) {\n return false;\n }\n\n return \"@.?\".includes(sourceText[start]);\n}\n\nfunction getBindingHoverInfo(attributeInfo) {\n if (!attributeInfo) {\n return null;\n }\n\n const bindingInfo = BINDING_HOVER_BY_PREFIX[attributeInfo.prefix] ?? {\n kindLabel: \"binding\",\n detail: \"LitSX binding\",\n };\n\n return {\n name: attributeInfo.name,\n start: attributeInfo.start,\n length: attributeInfo.length,\n kindLabel: bindingInfo.kindLabel,\n detail: `${bindingInfo.detail} for <${attributeInfo.tagName}>.`,\n };\n}\n\nfunction getCompletionKindToken(name) {\n return name.startsWith(\"@\") ? \"Event\" : \"Property\";\n}\n\nfunction getContextualCompletionEdit(name, context) {\n const replacementStart = (context?.start ?? 0) + 1;\n const replacementLength = Math.max((context?.length ?? 1) - 1, 0);\n\n return {\n insertText: name.slice(1),\n filterText: name.slice(1),\n start: replacementStart,\n length: replacementLength,\n };\n}\n\nfunction getModuleExtension(ts, fileName) {\n if (fileName.endsWith(\".litsx.jsx\") || fileName.endsWith(\".jsx\")) {\n return ts.Extension.Jsx;\n }\n\n if (fileName.endsWith(\".litsx\") || fileName.endsWith(\".tsx\")) {\n return ts.Extension.Tsx;\n }\n\n if (fileName.endsWith(\".ts\")) {\n return ts.Extension.Ts;\n }\n\n return ts.Extension.Js;\n}\n\nfunction isPathLikeModuleName(moduleName) {\n return moduleName.startsWith(\"./\") || moduleName.startsWith(\"../\") || moduleName.startsWith(\"/\");\n}\n\nfunction getTransparentResolutionCandidates(modulePath) {\n const requestedExtension = SUPPORTED_SOURCE_EXTENSIONS.find((extension) => modulePath.endsWith(extension)) ?? null;\n\n if (requestedExtension) {\n return [\n modulePath,\n path.join(modulePath, `index${requestedExtension}`),\n ];\n }\n\n return [\n ...SUPPORTED_SOURCE_EXTENSIONS.map((extension) => `${modulePath}${extension}`),\n ...SUPPORTED_SOURCE_EXTENSIONS.map((extension) => path.join(modulePath, `index${extension}`)),\n ];\n}\n\nfunction createResolvedModule(ts, resolvedFileName) {\n return {\n resolvedFileName,\n extension: getModuleExtension(ts, resolvedFileName),\n isExternalLibraryImport: false,\n };\n}\n\nfunction findDeepestNodeAtPosition(sourceFile, position) {\n let bestNode = null;\n\n function visit(node) {\n if (position < node.pos || position >= node.end) {\n return;\n }\n\n bestNode = node;\n node.forEachChild(visit);\n }\n\n visit(sourceFile);\n return bestNode;\n}\n\nfunction getSourceFileScriptKind(ts, fileName, languageId) {\n if (fileName.endsWith(\".litsx.jsx\") || languageId === \"litsx-jsx\" || fileName.endsWith(\".jsx\")) {\n return ts.ScriptKind.JSX;\n }\n\n if (fileName.endsWith(\".litsx\") || languageId === \"litsx\" || fileName.endsWith(\".tsx\")) {\n return ts.ScriptKind.TSX;\n }\n\n if (fileName.endsWith(\".ts\")) {\n return ts.ScriptKind.TS;\n }\n\n return ts.ScriptKind.JS;\n}\n\nfunction isCustomElementsDefineCall(ts, node) {\n return ts.isCallExpression(node)\n && ts.isPropertyAccessExpression(node.expression)\n && ts.isIdentifier(node.expression.expression)\n && node.expression.expression.text === \"customElements\"\n && node.expression.name.text === \"define\";\n}\n\nfunction isLikelyLitsxComponentReference(ts, sourceFile, node) {\n if (!ts.isIdentifier(node) || !/^[A-Z]/.test(node.text)) {\n return false;\n }\n\n let matches = false;\n\n function visit(current) {\n if (matches) {\n return;\n }\n\n if (\n ts.isImportDeclaration(current)\n && ts.isStringLiteral(current.moduleSpecifier)\n && (current.moduleSpecifier.text.endsWith(\".litsx\") || current.moduleSpecifier.text.endsWith(\".litsx.jsx\"))\n ) {\n const bindings = current.importClause?.namedBindings;\n if (bindings && ts.isNamedImports(bindings)) {\n matches = bindings.elements.some((element) => element.name.text === node.text);\n }\n }\n\n if (\n ts.isVariableDeclaration(current)\n && ts.isIdentifier(current.name)\n && current.name.text === node.text\n && (ts.isArrowFunction(current.initializer) || ts.isFunctionExpression(current.initializer))\n ) {\n matches = true;\n }\n\n if (ts.isFunctionDeclaration(current) && current.name?.text === node.text) {\n matches = true;\n }\n\n if (!matches) {\n current.forEachChild(visit);\n }\n }\n\n sourceFile.forEachChild(visit);\n return matches;\n}\n\nfunction shouldSuppressCustomElementConstructorDiagnostic(ts, sourceFile, diagnostic) {\n if (diagnostic.code !== 2345 || typeof diagnostic.start !== \"number\") {\n return false;\n }\n\n const node = findDeepestNodeAtPosition(sourceFile, diagnostic.start);\n let current = node;\n\n while (current && !isCustomElementsDefineCall(ts, current)) {\n current = current.parent ?? null;\n }\n\n if (!current || !isCustomElementsDefineCall(ts, current)) {\n return false;\n }\n\n const candidate = current.arguments?.[1];\n if (!candidate || diagnostic.start < candidate.getStart(sourceFile) || diagnostic.start >= candidate.getEnd()) {\n return false;\n }\n\n return isLikelyLitsxComponentReference(ts, sourceFile, candidate)\n && String(typeof diagnostic.messageText === \"string\" ? diagnostic.messageText : diagnostic.messageText?.messageText ?? \"\")\n .includes(\"CustomElementConstructor\");\n}\n\nfunction getScopeCompletionPrefix(sourceText, position) {\n const match = /[A-Za-z0-9_$]*$/.exec(sourceText.slice(0, position));\n return match?.[0] ?? \"\";\n}\n\nfunction getJsxImportSourceExportEntries(service, ts, prefix, adaptKind, position) {\n if (!prefix) {\n return [];\n }\n\n const program = service.languageService.getProgram();\n const checker = program?.getTypeChecker();\n const jsxImportSource = program?.getCompilerOptions?.().jsxImportSource;\n\n if (!program || !checker || typeof jsxImportSource !== \"string\" || jsxImportSource.length === 0) {\n return [];\n }\n\n const moduleSourceFile = program.getSourceFiles().find((sourceFile) => (\n sourceFile.fileName.includes(`/node_modules/${jsxImportSource}/`)\n || sourceFile.fileName.includes(`/${jsxImportSource}/src/`)\n ));\n\n const moduleSymbol = moduleSourceFile?.symbol ?? null;\n if (!moduleSymbol) {\n return [];\n }\n\n const exportedSymbols = checker.getExportsOfModule(moduleSymbol);\n\n return exportedSymbols\n .filter((symbol) => {\n const name = symbol.getName?.();\n return typeof name === \"string\"\n && name.startsWith(prefix)\n && !isInternalCompletionName(name);\n })\n .map((symbol) => {\n const name = symbol.getName();\n return {\n label: name,\n kind: adaptKind(getSymbolCompletionKind(ts, symbol), {\n source: jsxImportSource,\n label: name,\n }),\n detail: \"export\",\n documentation: `From ${jsxImportSource}`,\n start: position - prefix.length,\n length: prefix.length,\n };\n });\n}\n\nfunction getSourceParserPlugins(fileName) {\n return /\\.(litsx|tsx|ts)$/.test(fileName) ? [\"typescript\"] : [];\n}\n\nfunction getImportedComponentReference(ts, sourceFile, tagName) {\n let reference = null;\n\n sourceFile.forEachChild((node) => {\n if (\n reference ||\n !ts.isImportDeclaration(node) ||\n !ts.isStringLiteral(node.moduleSpecifier)\n ) {\n return;\n }\n\n const bindings = node.importClause?.namedBindings;\n if (!bindings || !ts.isNamedImports(bindings)) {\n return;\n }\n\n for (const element of bindings.elements) {\n if (element.name.text !== tagName) {\n continue;\n }\n\n reference = {\n exportName: element.propertyName?.text ?? element.name.text,\n moduleName: node.moduleSpecifier.text,\n };\n return;\n }\n });\n\n return reference;\n}\n\nfunction getComponentEventCompletionEntries(service, ts, queryFileName, sourceText, position, adaptKind) {\n const context = inferLitsxAttributeCompletionContext(sourceText, position);\n if (!context || context.prefix !== \"@\" || !/^[A-Z]/.test(context.tagName)) {\n return [];\n }\n\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n if (!sourceFile) {\n return [];\n }\n\n const reference = getImportedComponentReference(ts, sourceFile, context.tagName);\n if (!reference) {\n return [];\n }\n\n const resolvedModule = service.resolveModuleName?.(reference.moduleName, queryFileName);\n const componentFileName = resolvedModule?.resolvedFileName;\n if (!componentFileName) {\n return [];\n }\n\n const componentSourceText = service.readSourceText?.(componentFileName);\n if (typeof componentSourceText !== \"string\") {\n return [];\n }\n\n const eventNames = inferLitsxComponentEventNames(componentSourceText, {\n plugins: getSourceParserPlugins(componentFileName),\n })[reference.exportName] ?? [];\n\n return eventNames\n .filter((name) => typeof name === \"string\" && name.startsWith(context.partialName))\n .map((name) => ({\n ...getContextualCompletionEdit(`@${name}`, context),\n label: `@${name}`,\n kind: adaptKind(\"Event\", {\n source: \"litsx-component-event\",\n label: `@${name}`,\n }),\n detail: `Emitted by <${context.tagName}>`,\n documentation: `LitSX custom event emitted by <${context.tagName}>.`,\n }));\n}\n\nfunction getComponentStaticPropCompletionEntries(service, ts, queryFileName, sourceText, position, adaptKind) {\n const markupContext = inferLitsxMarkupCompletionContext(sourceText, position);\n if (!markupContext || !/^[A-Z]/.test(markupContext.tagName)) {\n return [];\n }\n\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n if (!sourceFile) {\n return [];\n }\n\n const reference = getImportedComponentReference(ts, sourceFile, markupContext.tagName);\n if (!reference) {\n return [];\n }\n\n const resolvedModule = service.resolveModuleName?.(reference.moduleName, queryFileName);\n const componentFileName = resolvedModule?.resolvedFileName;\n if (!componentFileName) {\n return [];\n }\n\n const componentSourceText = service.readSourceText?.(componentFileName);\n if (typeof componentSourceText !== \"string\") {\n return [];\n }\n\n const propNames = inferLitsxComponentPropNames(componentSourceText, {\n plugins: getSourceParserPlugins(componentFileName),\n })[reference.exportName] ?? [];\n\n return propNames\n .filter((name) => typeof name === \"string\" && name.startsWith(markupContext.partialName))\n .map((name) => ({\n label: name,\n kind: adaptKind(\"Property\", {\n source: \"litsx-component-static-prop\",\n label: name,\n }),\n detail: `Static property of <${markupContext.tagName}>`,\n documentation: `LitSX static property exposed by <${markupContext.tagName}>.`,\n start: markupContext.start,\n length: markupContext.length,\n }));\n}\n\nfunction getCompletionEntryImportEdits(languageService, queryFileName, fileName, position, entry, virtualization) {\n if (typeof languageService.getCompletionEntryDetails !== \"function\" || !entry?.hasAction) {\n return [];\n }\n\n let details;\n try {\n details = languageService.getCompletionEntryDetails(\n queryFileName,\n position,\n entry.name,\n {},\n entry.source,\n {},\n entry.data,\n );\n } catch {\n return [];\n }\n\n const fileChanges = details?.codeActions\n ?.flatMap((action) => action.changes ?? [])\n ?.filter((change) => change.fileName === queryFileName || change.fileName === fileName) ?? [];\n\n return fileChanges.flatMap((change) => (\n remapCompletionTextChanges(change.textChanges, fileName, virtualization)\n ));\n}\n\nfunction isInternalCompletionName(name) {\n return typeof name === \"string\" && (\n name.startsWith(\"__litsx_\") ||\n name.startsWith(\"_$L\") ||\n name.startsWith(\"_currentTarget\") ||\n name.includes(\"$\")\n );\n}\n\nfunction isLikelyIntrinsicMarkupCompletionName(name) {\n if (\n typeof name !== \"string\" ||\n name.length === 0 ||\n isInternalCompletionName(name) ||\n name.startsWith(\"_\") ||\n /^[A-Z0-9_]+$/.test(name) ||\n /^[A-Z]/.test(name) ||\n /^on[a-z]/.test(name) ||\n /(Element|Elements|Node|Nodes)$/.test(name)\n ) {\n return false;\n }\n\n return /^[a-z][\\w-]*$/.test(name) || /^aria[A-Z]/.test(name);\n}\n\nfunction isLikelyComponentPropCompletionName(name) {\n return typeof name === \"string\"\n && name.length > 0\n && !isInternalCompletionName(name)\n && !name.startsWith(\"_\")\n && !/^[A-Z]/.test(name)\n && !name.includes(\"$\")\n && /^[a-z][\\w-]*$/.test(name);\n}\n\nfunction rankCompletionLabel(label, prefix) {\n const normalizedLabel = String(label ?? \"\").toLowerCase();\n const normalizedPrefix = prefix.toLowerCase();\n\n if (normalizedPrefix.length === 0) {\n return 3;\n }\n\n if (normalizedLabel === normalizedPrefix) {\n return 0;\n }\n\n if (normalizedLabel.startsWith(normalizedPrefix)) {\n return 1;\n }\n\n if (normalizedLabel.includes(normalizedPrefix)) {\n return 2;\n }\n\n return 3;\n}\n\nfunction compareCompletionEntries(left, right, prefix) {\n const leftLabel = String(left.label ?? \"\");\n const rightLabel = String(right.label ?? \"\");\n const leftRank = rankCompletionLabel(leftLabel, prefix);\n const rightRank = rankCompletionLabel(rightLabel, prefix);\n\n if (leftRank !== rightRank) {\n return leftRank - rightRank;\n }\n\n const leftIsLitsxApi = left.documentation === \"From @litsx/core\";\n const rightIsLitsxApi = right.documentation === \"From @litsx/core\";\n\n if (leftIsLitsxApi !== rightIsLitsxApi) {\n return leftIsLitsxApi ? -1 : 1;\n }\n\n if (prefix.toLowerCase().startsWith(\"use\")) {\n const leftStartsWithUse = leftLabel.startsWith(\"use\");\n const rightStartsWithUse = rightLabel.startsWith(\"use\");\n if (leftStartsWithUse !== rightStartsWithUse) {\n return leftStartsWithUse ? -1 : 1;\n }\n }\n\n return leftLabel.localeCompare(rightLabel);\n}\n\nfunction getSymbolCompletionKind(ts, symbol) {\n return SYMBOL_KIND_RULES.find(([, getMask]) => (symbol.flags & getMask(ts)) !== 0)?.[0] ?? \"Variable\";\n}\n\nfunction createLitsxEditorSession(options = {}) {\n const ts = options.typescript ?? defaultTs;\n const bundledLibDir = options.bundledLibDir ?? null;\n const trace = createDefaultLogger(options.logger);\n const projectServiceCache = new Map();\n\n function log(message) {\n if (!options.trace) {\n return;\n }\n trace(message);\n }\n\n function getDefaultLibFilePath(localTs, compilerOptions) {\n if (!bundledLibDir) {\n return localTs.getDefaultLibFilePath(compilerOptions);\n }\n\n const libFileName = localTs.getDefaultLibFileName(compilerOptions);\n const candidate = path.join(bundledLibDir, libFileName);\n return fs.existsSync(candidate) ? candidate : localTs.getDefaultLibFilePath(compilerOptions);\n }\n\n function getProjectKey(fileName) {\n const configPath =\n ts.findConfigFile(path.dirname(fileName), ts.sys.fileExists, \"tsconfig.json\") ??\n ts.findConfigFile(path.dirname(fileName), ts.sys.fileExists, \"jsconfig.json\");\n return configPath ? normalizeFileName(configPath) : `<standalone>:${normalizeFileName(fileName)}`;\n }\n\n function getQueryFileName(fileName, languageId) {\n return `${fileName}${QUERY_FILE_SUFFIX_BY_LANGUAGE_ID[languageId] ?? \"\"}`;\n }\n\n function getExtraFileExtensions(localTs) {\n return [\n {\n extension: \".litsx\",\n isMixedContent: false,\n scriptKind: localTs.ScriptKind.TSX,\n },\n {\n extension: \".litsx.jsx\",\n isMixedContent: false,\n scriptKind: localTs.ScriptKind.JSX,\n },\n ];\n }\n\n function getFileVersion(fileName) {\n try {\n const stats = fs.statSync(fileName);\n return `${stats.mtimeMs}:${stats.size}`;\n } catch {\n return \"0\";\n }\n }\n\n function readFileText(fileName, overlays) {\n const normalizedFileName = normalizeFileName(fileName);\n if (overlays.has(normalizedFileName)) {\n return overlays.get(normalizedFileName).text;\n }\n\n try {\n return fs.readFileSync(fileName, \"utf8\");\n } catch {\n return null;\n }\n }\n\n function getOrCreateProjectService(fileName, sourceText, languageId) {\n const projectKey = getProjectKey(fileName);\n const queryFileName = getQueryFileName(fileName, languageId);\n let service = projectServiceCache.get(projectKey);\n\n if (!service) {\n const configPath = projectKey.startsWith(\"<standalone>:\") ? null : projectKey;\n let compilerOptions;\n let rootNames;\n\n if (configPath) {\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile);\n const parsed = ts.parseJsonConfigFileContent(\n configFile.config,\n {\n ...ts.sys,\n onUnRecoverableConfigFileDiagnostic() {},\n },\n path.dirname(configPath),\n undefined,\n configPath,\n undefined,\n getExtraFileExtensions(ts),\n );\n\n compilerOptions = parsed.options;\n rootNames = [...parsed.fileNames];\n if (\n rootNames.some((entry) => entry.endsWith(\".litsx\") || entry.endsWith(\".litsx.jsx\")) ||\n queryFileName.endsWith(\".tsx\") ||\n queryFileName.endsWith(\".jsx\") ||\n fileName.endsWith(\".litsx\") ||\n fileName.endsWith(\".litsx.jsx\")\n ) {\n compilerOptions = {\n ...compilerOptions,\n allowNonTsExtensions: true,\n };\n }\n } else {\n compilerOptions = {\n target: ts.ScriptTarget.ESNext,\n module: ts.ModuleKind.ESNext,\n jsx: ts.JsxEmit.Preserve,\n allowJs: true,\n checkJs: true,\n allowNonTsExtensions: true,\n types: [],\n };\n rootNames = [queryFileName];\n }\n\n if (!rootNames.includes(queryFileName)) {\n rootNames.push(queryFileName);\n }\n\n const overlays = new Map();\n const virtualizationCache = new Map();\n\n function fileExistsForResolution(nextFileName) {\n return overlays.has(normalizeFileName(nextFileName)) || ts.sys.fileExists(nextFileName);\n }\n\n function getScriptKind(nextFileName) {\n const extension = /\\.((?:litsx\\.jsx)|litsx|tsx|jsx|ts|js)$/.exec(nextFileName)?.[1];\n const scriptKindName = extension ? SCRIPT_KIND_BY_EXTENSION[extension] : undefined;\n return scriptKindName ? ts.ScriptKind[scriptKindName] : undefined;\n }\n\n function getSnapshotRecord(nextFileName) {\n const normalizedFileName = normalizeFileName(nextFileName);\n const overlay = overlays.get(normalizedFileName);\n const version = overlay?.version ?? getFileVersion(nextFileName);\n const cached = virtualizationCache.get(normalizedFileName);\n\n if (cached?.version === version) {\n return cached;\n }\n\n const nextSourceText = readFileText(nextFileName, overlays);\n if (typeof nextSourceText !== \"string\") {\n virtualizationCache.delete(normalizedFileName);\n return null;\n }\n\n let virtualization = null;\n let toolingText = nextSourceText;\n\n if (isRelevantFile(nextFileName) && looksLikeLitsxJsx(nextSourceText)) {\n virtualization = createToolingVirtualLitsxSource(nextSourceText, {\n plugins: getPluginsForFile(nextFileName, languageId),\n });\n toolingText = virtualization.code;\n }\n\n const record = {\n version,\n sourceText: nextSourceText,\n toolingText,\n virtualization,\n snapshot: ts.ScriptSnapshot.fromString(toolingText),\n };\n virtualizationCache.set(normalizedFileName, record);\n return record;\n }\n\n function resolveTransparentModuleName(moduleName, containingFile) {\n if (!isPathLikeModuleName(moduleName)) {\n return null;\n }\n\n const candidateBase = path.resolve(path.dirname(containingFile), moduleName);\n for (const candidate of getTransparentResolutionCandidates(candidateBase)) {\n if (fileExistsForResolution(candidate)) {\n return createResolvedModule(ts, candidate);\n }\n }\n\n return null;\n }\n\n function resolveModule(moduleName, containingFile) {\n const resolved = ts.resolveModuleName(\n moduleName,\n containingFile,\n compilerOptions,\n {\n fileExists: fileExistsForResolution,\n readFile(nextFileName) {\n return readFileText(nextFileName, overlays);\n },\n directoryExists(nextDirName) {\n return ts.sys.directoryExists?.(nextDirName) ?? true;\n },\n getDirectories(nextDirName) {\n return ts.sys.getDirectories?.(nextDirName) ?? [];\n },\n realpath(nextFileName) {\n return ts.sys.realpath?.(nextFileName) ?? nextFileName;\n },\n },\n ).resolvedModule;\n\n return resolved ?? resolveTransparentModuleName(moduleName, containingFile);\n }\n\n const host = {\n extraFileExtensions: getExtraFileExtensions(ts),\n getCompilationSettings() {\n return compilerOptions;\n },\n getCurrentDirectory() {\n return configPath ? path.dirname(configPath) : path.dirname(fileName);\n },\n getDefaultLibFileName(optionsForLib) {\n return getDefaultLibFilePath(ts, optionsForLib);\n },\n getScriptFileNames() {\n return rootNames;\n },\n getScriptVersion(nextFileName) {\n const normalizedFileName = normalizeFileName(nextFileName);\n const overlay = overlays.get(normalizedFileName);\n return String(overlay?.version ?? getFileVersion(nextFileName));\n },\n getScriptKind,\n getScriptSnapshot(nextFileName) {\n return getSnapshotRecord(nextFileName)?.snapshot;\n },\n fileExists(nextFileName) {\n return fileExistsForResolution(nextFileName);\n },\n readFile(nextFileName) {\n return readFileText(nextFileName, overlays);\n },\n resolveModuleNames(moduleNames, containingFile) {\n return moduleNames.map((moduleName) => resolveModule(moduleName, containingFile));\n },\n resolveModuleNameLiterals(moduleLiterals, containingFile) {\n return moduleLiterals.map(({ text }) => ({ resolvedModule: resolveModule(text, containingFile) }));\n },\n readDirectory(...args) {\n return ts.sys.readDirectory(...args);\n },\n directoryExists(nextDirName) {\n return ts.sys.directoryExists?.(nextDirName) ?? true;\n },\n getDirectories(nextDirName) {\n return ts.sys.getDirectories?.(nextDirName) ?? [];\n },\n getNewLine() {\n return ts.sys.newLine;\n },\n useCaseSensitiveFileNames() {\n return ts.sys.useCaseSensitiveFileNames;\n },\n getCanonicalFileName(nextFileName) {\n return ts.sys.useCaseSensitiveFileNames\n ? nextFileName\n : nextFileName.toLowerCase();\n },\n };\n\n service = {\n rootNames,\n overlays,\n languageService: ts.createLanguageService(host, ts.createDocumentRegistry()),\n readSourceText(nextFileName) {\n return readFileText(nextFileName, overlays);\n },\n resolveModuleName(moduleName, containingFile) {\n return resolveModule(moduleName, containingFile);\n },\n getVirtualization(nextFileName) {\n return getSnapshotRecord(nextFileName)?.virtualization ?? null;\n },\n setOverlay(nextFileName, nextSourceText) {\n const normalizedFileName = normalizeFileName(nextFileName);\n const previousVersion = overlays.get(normalizedFileName)?.version ?? 0;\n overlays.set(normalizedFileName, {\n text: nextSourceText,\n version: previousVersion + 1,\n });\n if (!rootNames.includes(nextFileName)) {\n rootNames.push(nextFileName);\n }\n },\n };\n\n projectServiceCache.set(projectKey, service);\n }\n\n service.setOverlay(queryFileName, sourceText);\n service.queryFileName = queryFileName;\n return service;\n }\n\n function getDiagnostics(fileName, sourceText, languageId) {\n const service = getOrCreateProjectService(fileName, sourceText, languageId);\n const queryFileName = service.queryFileName ?? fileName;\n const virtualization = service.getVirtualization(queryFileName);\n const authoredSourceFile = ts.createSourceFile(\n fileName,\n sourceText,\n ts.ScriptTarget.Latest,\n true,\n getSourceFileScriptKind(ts, fileName, languageId),\n );\n const diagnostics = [\n ...service.languageService.getSyntacticDiagnostics(queryFileName),\n ...service.languageService.getSemanticDiagnostics(queryFileName),\n ];\n const remappedDiagnostics = diagnostics\n .map((diagnostic) => {\n if (!virtualization || typeof diagnostic.start !== \"number\") {\n return {\n ...diagnostic,\n messageText: remapMessageText(diagnostic.messageText),\n };\n }\n\n const remappedSpan = remapToolingTextSpanToOriginal(\n {\n start: diagnostic.start,\n length: diagnostic.length ?? 0,\n },\n virtualization,\n );\n\n return {\n ...diagnostic,\n start: remappedSpan.start,\n length: remappedSpan.length,\n messageText: remapMessageText(diagnostic.messageText),\n };\n })\n .filter((diagnostic) => (\n !String(diagnostic.messageText ?? \"\").includes(\"__litsx_\") &&\n !startsAtAuthoredSyntax(sourceText, diagnostic.start) &&\n !shouldSuppressCustomElementConstructorDiagnostic(ts, authoredSourceFile, diagnostic)\n ));\n\n const authoredDiagnostics = collectLitsxAuthoredDiagnostics(sourceText, ts, {\n plugins: getParserPlugins(languageId),\n });\n const seen = new Set(\n remappedDiagnostics.map((diagnostic) => `${diagnostic.code}:${diagnostic.start}:${diagnostic.length}`),\n );\n\n return [\n ...remappedDiagnostics,\n ...authoredDiagnostics.filter((diagnostic) => {\n const key = `${diagnostic.code}:${diagnostic.start}:${diagnostic.length}`;\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n }),\n ];\n }\n\n function getHover(fileName, sourceText, languageId, position) {\n const service = getOrCreateProjectService(fileName, sourceText, languageId);\n const queryFileName = service.queryFileName ?? fileName;\n const virtualization = service.getVirtualization(queryFileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const info = service.languageService.getQuickInfoAtPosition(queryFileName, mappedPosition);\n\n const hoistInfo = inferLitsxStaticHoistInfoAtPosition(sourceText, position);\n if (hoistInfo) {\n return {\n start: hoistInfo.start,\n length: hoistInfo.length,\n code: `${hoistInfo.name}(...): static hoist`,\n documentation: hoistInfo.documentation,\n };\n }\n\n if (!info) {\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n const checker = program?.getTypeChecker();\n if (!program || !sourceFile || !checker) {\n const bindingHoverInfo = getBindingHoverInfo(\n inferLitsxAttributeInfoAtPosition(sourceText, position),\n );\n return bindingHoverInfo\n ? {\n start: bindingHoverInfo.start,\n length: bindingHoverInfo.length,\n code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,\n documentation: bindingHoverInfo.detail,\n }\n : null;\n }\n\n let node = findDeepestNodeAtPosition(sourceFile, mappedPosition);\n while (node) {\n const symbol = checker.getSymbolAtLocation(node) ?? null;\n const type = checker.getTypeAtLocation(node) ?? null;\n if (!type) {\n node = node.parent ?? null;\n continue;\n }\n\n const remappedNodeSpan = virtualization\n ? remapToolingTextSpanToOriginal(\n {\n start: node.getStart(sourceFile),\n length: node.getWidth(sourceFile),\n },\n virtualization,\n )\n : {\n start: position,\n length: 0,\n };\n\n return {\n start: remappedNodeSpan.start,\n length: remappedNodeSpan.length,\n code: `${symbol?.getName?.() ?? node.getText(sourceFile)}: ${checker.typeToString(type)}`,\n documentation: symbol\n ? ts.displayPartsToString(symbol.getDocumentationComment(checker))\n : \"\",\n };\n }\n\n const bindingHoverInfo = getBindingHoverInfo(\n inferLitsxAttributeInfoAtPosition(sourceText, position),\n );\n return bindingHoverInfo\n ? {\n start: bindingHoverInfo.start,\n length: bindingHoverInfo.length,\n code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,\n documentation: bindingHoverInfo.detail,\n }\n : null;\n }\n\n const remappedSpan = virtualization\n ? remapToolingTextSpanToOriginal(info.textSpan, virtualization)\n : info.textSpan;\n const displayText = (remapDisplayParts(info.displayParts) ?? [])\n .map((entry) => entry.text)\n .join(\"\");\n const documentation = (remapDisplayParts(info.documentation) ?? [])\n .map((entry) => entry.text)\n .join(\"\");\n\n return {\n start: remappedSpan.start,\n length: remappedSpan.length,\n code: displayText || \"symbol\",\n documentation,\n };\n }\n\n function getCompletions(fileName, sourceText, languageId, position, completionKindAdapter) {\n const adaptKind = createCompletionKindAdapter(completionKindAdapter);\n const service = getOrCreateProjectService(fileName, sourceText, languageId);\n const queryFileName = service.queryFileName ?? fileName;\n const virtualization = service.getVirtualization(queryFileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const completions = service.languageService.getCompletionsAtPosition(queryFileName, mappedPosition, {\n includeCompletionsForModuleExports: true,\n includeCompletionsWithInsertText: true,\n });\n const rawCompletionEntriesByName = new Map(\n (completions?.entries ?? []).map((entry) => [entry.name, entry]),\n );\n\n const context = inferLitsxAttributeCompletionContext(sourceText, position);\n const markupContext = inferLitsxMarkupCompletionContext(sourceText, position);\n const isComponentTag = /^[A-Z]/.test(markupContext?.tagName ?? \"\");\n const contextualEntries = context\n ? getLitsxAttributeCompletionNames(context).map((name) => ({\n ...getContextualCompletionEdit(name, context),\n label: name,\n kind: adaptKind(getCompletionKindToken(name), {\n source: \"litsx\",\n label: name,\n }),\n detail: \"LitSX binding\",\n documentation: `LitSX binding for <${context.tagName}>.`,\n }))\n : [];\n const componentEventEntries = getComponentEventCompletionEntries(\n service,\n ts,\n queryFileName,\n sourceText,\n position,\n adaptKind,\n ).filter((entry) => !contextualEntries.some((contextualEntry) => contextualEntry.label === entry.label));\n const componentStaticPropEntries = getComponentStaticPropCompletionEntries(\n service,\n ts,\n queryFileName,\n sourceText,\n position,\n adaptKind,\n );\n const markupEntries = markupContext && !isComponentTag\n ? getLitsxMarkupCompletionNames(markupContext).map((name) => ({\n label: name,\n kind: adaptKind(\n name.startsWith(\"@\")\n ? \"Event\"\n : name.startsWith(\".\") || name.startsWith(\"?\")\n ? \"Property\"\n : \"Property\",\n {\n source: \"litsx-markup\",\n label: name,\n },\n ),\n detail: name.startsWith(\"@\")\n ? \"LitSX event binding\"\n : name.startsWith(\".\")\n ? \"LitSX property binding\"\n : name.startsWith(\"?\")\n ? \"LitSX boolean attribute binding\"\n : \"LitSX markup attribute\",\n documentation: name.startsWith(\"@\") || name.startsWith(\".\") || name.startsWith(\"?\")\n ? `LitSX binding for <${markupContext.tagName}>.`\n : `LitSX-authored attribute for <${markupContext.tagName}>.`,\n start: markupContext.start,\n length: markupContext.length,\n }))\n : [];\n const scopePrefix = getScopeCompletionPrefix(sourceText, position);\n const jsxImportSourceEntries = markupContext\n ? []\n : getJsxImportSourceExportEntries(service, ts, scopePrefix, adaptKind, position).map((entry) => ({\n ...entry,\n additionalTextEdits: getCompletionEntryImportEdits(\n service.languageService,\n queryFileName,\n fileName,\n mappedPosition,\n rawCompletionEntriesByName.get(entry.label),\n virtualization,\n ),\n }));\n\n const mergedEntries = [\n ...contextualEntries,\n ...componentEventEntries,\n ...componentStaticPropEntries,\n ...markupEntries,\n ...jsxImportSourceEntries,\n ];\n const seen = new Set(mergedEntries.map((entry) => entry.label));\n\n for (const entry of completions?.entries ?? []) {\n if (\n decodeVirtualAttributeName(entry.name) ||\n seen.has(entry.name) ||\n isInternalCompletionName(entry.name)\n ) {\n continue;\n }\n\n if (markupContext && !isComponentTag && !isLikelyIntrinsicMarkupCompletionName(entry.name)) {\n continue;\n }\n\n if (markupContext && isComponentTag && !isLikelyComponentPropCompletionName(entry.name)) {\n continue;\n }\n\n seen.add(entry.name);\n\n const remappedSpan = virtualization && entry.replacementSpan\n ? remapToolingTextSpanToOriginal(entry.replacementSpan, virtualization)\n : entry.replacementSpan ?? { start: position, length: 0 };\n\n const kindToken = COMPLETION_KIND_BY_TS_KIND[entry.kind] ?? \"Text\";\n mergedEntries.push({\n label: entry.name,\n kind: adaptKind(kindToken, {\n source: \"typescript\",\n label: entry.name,\n tsKind: entry.kind,\n kindModifiers: entry.kindModifiers,\n }),\n detail: entry.kindModifiers || entry.kind,\n documentation: entry.source ? `From ${entry.source}` : \"TypeScript completion\",\n start: remappedSpan.start,\n length: remappedSpan.length,\n additionalTextEdits: getCompletionEntryImportEdits(\n service.languageService,\n queryFileName,\n fileName,\n mappedPosition,\n entry,\n virtualization,\n ),\n });\n }\n\n if (mergedEntries.length === (contextualEntries.length + componentEventEntries.length + componentStaticPropEntries.length)) {\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n const checker = program?.getTypeChecker();\n const node = sourceFile ? findDeepestNodeAtPosition(sourceFile, mappedPosition) : null;\n const prefix = scopePrefix;\n\n if (node && checker && !markupContext) {\n const scopeSymbols = checker.getSymbolsInScope(\n node,\n ts.SymbolFlags.Value | ts.SymbolFlags.Type | ts.SymbolFlags.Namespace | ts.SymbolFlags.Alias,\n );\n\n for (const symbol of scopeSymbols) {\n const name = symbol.getName?.();\n if (!name || isInternalCompletionName(name) || seen.has(name) || !name.startsWith(prefix)) {\n continue;\n }\n\n seen.add(name);\n const kindToken = getSymbolCompletionKind(ts, symbol);\n mergedEntries.push({\n label: name,\n kind: adaptKind(kindToken, {\n source: \"typescript-scope\",\n label: name,\n }),\n detail: \"TypeScript symbol\",\n documentation: \"Project-backed TypeScript completion\",\n start: position - prefix.length,\n length: prefix.length,\n });\n }\n }\n }\n\n if (markupContext) {\n return mergedEntries;\n }\n\n return mergedEntries.sort((left, right) => (\n compareCompletionEntries(left, right, scopePrefix)\n ));\n }\n\n log(\"LitSX editor session initialized\");\n\n return {\n typescript: ts,\n bundledLibDir,\n getDiagnostics,\n getHover,\n getCompletions,\n clear() {\n projectServiceCache.clear();\n },\n };\n}\n\nexport {\n createLitsxEditorSession,\n};\n"],"names":["remapVirtualText","virtualization","remapToolingTextSpanToOriginal","inferLitsxAttributeCompletionContext","inferLitsxComponentEventNames","inferLitsxMarkupCompletionContext","inferLitsxComponentPropNames","ts","defaultTs","looksLikeLitsxJsx","createToolingVirtualLitsxSource","collectLitsxAuthoredDiagnostics","mapOriginalPositionToToolingVirtual","inferLitsxStaticHoistInfoAtPosition","inferLitsxAttributeInfoAtPosition","getLitsxAttributeCompletionNames","getLitsxMarkupCompletionNames","decodeVirtualAttributeName"],"mappings":"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"}
|