diff --git a/.yarn/versions/67374fa9.yml b/.yarn/versions/67374fa9.yml new file mode 100644 index 00000000000..1494bd47142 --- /dev/null +++ b/.yarn/versions/67374fa9.yml @@ -0,0 +1,23 @@ +releases: + "@yarnpkg/cli": patch + "@yarnpkg/plugin-compat": patch + +declined: + - "@yarnpkg/plugin-constraints" + - "@yarnpkg/plugin-dlx" + - "@yarnpkg/plugin-essentials" + - "@yarnpkg/plugin-init" + - "@yarnpkg/plugin-interactive-tools" + - "@yarnpkg/plugin-nm" + - "@yarnpkg/plugin-npm-cli" + - "@yarnpkg/plugin-pack" + - "@yarnpkg/plugin-patch" + - "@yarnpkg/plugin-pnp" + - "@yarnpkg/plugin-pnpm" + - "@yarnpkg/plugin-stage" + - "@yarnpkg/plugin-typescript" + - "@yarnpkg/plugin-version" + - "@yarnpkg/plugin-workspace-tools" + - "@yarnpkg/builder" + - "@yarnpkg/core" + - "@yarnpkg/doctor" diff --git a/packages/plugin-compat/extra/typescript/gen-typescript-patch.js b/packages/plugin-compat/extra/typescript/gen-typescript-patch.js index cba6873049c..5f6bcadbe6f 100644 --- a/packages/plugin-compat/extra/typescript/gen-typescript-patch.js +++ b/packages/plugin-compat/extra/typescript/gen-typescript-patch.js @@ -281,7 +281,14 @@ const SLICES = [ from: `5b321aa5835f9f4dba6d55553fd559985d44b1a9`, to: `c41328460d8dba2fac56c220803c68ca961d7cd5`, onto: `ce2e60e4ea15a65992e54a9e8877d16be9d42abb`, - range: `>=5.5.2`, + range: `>=5.5.2 <5.6.0-beta`, + }, + // https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.6-beta + { + from: `b774b54693034b8aeae7f9a7b24d25fcacdbc8a5`, + to: `b774b54693034b8aeae7f9a7b24d25fcacdbc8a5`, + onto: `b4732bdd6199ec353ec0873f334515f391d80d3b`, + range: `>=5.6.0-beta`, }, ]; diff --git a/packages/plugin-compat/extra/typescript/patch-5a1e226dc329170d65e77c4cf6483a90.diff b/packages/plugin-compat/extra/typescript/patch-5a1e226dc329170d65e77c4cf6483a90.diff new file mode 100644 index 00000000000..5270d4fc376 --- /dev/null +++ b/packages/plugin-compat/extra/typescript/patch-5a1e226dc329170d65e77c4cf6483a90.diff @@ -0,0 +1,1034 @@ +diff --git a/lib/tsc.js b/lib/tsc.js +index c9113e23c..8d141d301 100644 +semver exclusivity >=5.6.0-beta +--- a/lib/tsc.js ++++ b/lib/tsc.js +@@ -5064,6 +5064,9 @@ var sys = (() => { + } + } + function isFileSystemCaseSensitive() { ++ if (typeof process.versions.pnp !== `undefined`) { ++ return true; ++ } + if (platform === "win32" || platform === "win64") { + return false; + } +@@ -38786,6 +38789,48 @@ function getDefaultValueForOption(option) { + } + } + ++// src/compiler/pnpapi.ts ++function getPnpApi(path) { ++ if (typeof process.versions.pnp === "undefined") { ++ return; ++ } ++ const { findPnpApi } = require("module"); ++ if (findPnpApi) { ++ return findPnpApi(`${path}/`); ++ } ++} ++function getPnpApiPath(path) { ++ var _a; ++ return (_a = getPnpApi(path)) == null ? void 0 : _a.resolveRequest( ++ "pnpapi", ++ /*issuer*/ ++ null ++ ); ++} ++ ++// src/compiler/pnp.ts ++function getPnpTypeRoots(currentDirectory) { ++ const pnpApi = getPnpApi(currentDirectory); ++ if (!pnpApi) { ++ return []; ++ } ++ currentDirectory = resolvePath(currentDirectory); ++ const currentPackage = pnpApi.findPackageLocator(`${currentDirectory}/`); ++ if (!currentPackage) { ++ return []; ++ } ++ const { packageDependencies } = pnpApi.getPackageInformation(currentPackage); ++ const typeRoots = []; ++ for (const [name, referencish] of Array.from(packageDependencies.entries())) { ++ if (name.startsWith(`@types/`) && referencish !== null) { ++ const dependencyLocator = pnpApi.getLocator(name, referencish); ++ const { packageLocation } = pnpApi.getPackageInformation(dependencyLocator); ++ typeRoots.push(getDirectoryPath(packageLocation)); ++ } ++ } ++ return typeRoots; ++} ++ + // src/compiler/moduleNameResolver.ts + function trace(host, message, ...args) { + host.trace(formatMessage(message, ...args)); +@@ -39003,7 +39048,7 @@ function getEffectiveTypeRoots(options, host) { + return getDefaultTypeRoots(currentDirectory); + } + } +-function getDefaultTypeRoots(currentDirectory) { ++function getNodeModulesTypeRoots(currentDirectory) { + let typeRoots; + forEachAncestorDirectory(normalizePath(currentDirectory), (directory) => { + const atTypes = combinePaths(directory, nodeModulesAtTypes); +@@ -39016,6 +39061,15 @@ function arePathsEqual(path1, path2, host) { + const useCaseSensitiveFileNames2 = typeof host.useCaseSensitiveFileNames === "function" ? host.useCaseSensitiveFileNames() : host.useCaseSensitiveFileNames; + return comparePaths(path1, path2, !useCaseSensitiveFileNames2) === 0 /* EqualTo */; + } ++function getDefaultTypeRoots(currentDirectory) { ++ const nmTypes = getNodeModulesTypeRoots(currentDirectory); ++ const pnpTypes = getPnpTypeRoots(currentDirectory); ++ if (nmTypes == null ? void 0 : nmTypes.length) { ++ return [...nmTypes, ...pnpTypes]; ++ } else if (pnpTypes.length) { ++ return pnpTypes; ++ } ++} + function getOriginalAndResolvedFileName(fileName, host, traceEnabled) { + const resolvedFileName = realPath(fileName, host, traceEnabled); + const pathsAreEqual = arePathsEqual(fileName, resolvedFileName, host); +@@ -40894,7 +40948,15 @@ function loadModuleFromNearestNodeModulesDirectoryWorker(extensions, moduleName, + return lookup(secondaryExtensions); + } + function lookup(extensions2) { +- return forEachAncestorDirectory(normalizeSlashes(directory), (ancestorDirectory) => { ++ const issuer = normalizeSlashes(directory); ++ if (getPnpApi(issuer)) { ++ const resolutionFromCache = tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, issuer, redirectedReference, state); ++ if (resolutionFromCache) { ++ return resolutionFromCache; ++ } ++ return toSearchResult(loadModuleFromImmediateNodeModulesDirectoryPnP(extensions2, moduleName, issuer, state, typesScopeOnly, cache, redirectedReference)); ++ } ++ return forEachAncestorDirectory(issuer, (ancestorDirectory) => { + if (getBaseFileName(ancestorDirectory) !== "node_modules") { + const resolutionFromCache = tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, ancestorDirectory, redirectedReference, state); + if (resolutionFromCache) { +@@ -40929,11 +40991,40 @@ function loadModuleFromImmediateNodeModulesDirectory(extensions, moduleName, dir + return loadModuleFromSpecificNodeModulesDirectory(4 /* Declaration */, mangleScopedPackageNameWithTrace(moduleName, state), nodeModulesAtTypes2, nodeModulesAtTypesExists, state, cache, redirectedReference); + } + } ++function loadModuleFromImmediateNodeModulesDirectoryPnP(extensions, moduleName, directory, state, typesScopeOnly, cache, redirectedReference) { ++ const issuer = normalizeSlashes(directory); ++ if (!typesScopeOnly) { ++ const packageResult = tryLoadModuleUsingPnpResolution(extensions, moduleName, issuer, state, cache, redirectedReference); ++ if (packageResult) { ++ return packageResult; ++ } ++ } ++ if (extensions & 4 /* Declaration */) { ++ return tryLoadModuleUsingPnpResolution(4 /* Declaration */, `@types/${mangleScopedPackageNameWithTrace(moduleName, state)}`, issuer, state, cache, redirectedReference); ++ } ++} + function loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, nodeModulesDirectory, nodeModulesDirectoryExists, state, cache, redirectedReference) { +- var _a, _b; + const candidate = normalizePath(combinePaths(nodeModulesDirectory, moduleName)); + const { packageName, rest } = parsePackageName(moduleName); + const packageDirectory = combinePaths(nodeModulesDirectory, packageName); ++ return loadModuleFromSpecificNodeModulesDirectoryImpl(extensions, nodeModulesDirectoryExists, state, cache, redirectedReference, candidate, rest, packageDirectory); ++} ++function loadModuleFromPnpResolution(extensions, packageDirectory, rest, state, cache, redirectedReference) { ++ const candidate = normalizePath(combinePaths(packageDirectory, rest)); ++ return loadModuleFromSpecificNodeModulesDirectoryImpl( ++ extensions, ++ /*nodeModulesDirectoryExists*/ ++ true, ++ state, ++ cache, ++ redirectedReference, ++ candidate, ++ rest, ++ packageDirectory ++ ); ++} ++function loadModuleFromSpecificNodeModulesDirectoryImpl(extensions, nodeModulesDirectoryExists, state, cache, redirectedReference, candidate, rest, packageDirectory) { ++ var _a, _b; + let rootPackageInfo; + let packageInfo = getPackageJsonInfo(candidate, !nodeModulesDirectoryExists, state); + if (rest !== "" && packageInfo && (!(state.features & 8 /* Exports */) || !hasProperty(((_a = rootPackageInfo = getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state)) == null ? void 0 : _a.contents.packageJsonContent) ?? emptyArray, "exports"))) { +@@ -41234,6 +41325,18 @@ function traceIfEnabled(state, diagnostic, ...args) { + function useCaseSensitiveFileNames(state) { + return !state.host.useCaseSensitiveFileNames ? true : typeof state.host.useCaseSensitiveFileNames === "boolean" ? state.host.useCaseSensitiveFileNames : state.host.useCaseSensitiveFileNames(); + } ++function loadPnpPackageResolution(packageName, containingDirectory) { ++ try { ++ const resolution = getPnpApi(containingDirectory).resolveToUnqualified(packageName, `${containingDirectory}/`, { considerBuiltins: false }); ++ return normalizeSlashes(resolution).replace(/\/$/, ""); ++ } catch { ++ } ++} ++function tryLoadModuleUsingPnpResolution(extensions, moduleName, containingDirectory, state, cache, redirectedReference) { ++ const { packageName, rest } = parsePackageName(moduleName); ++ const packageResolution = loadPnpPackageResolution(packageName, containingDirectory); ++ return packageResolution ? loadModuleFromPnpResolution(extensions, packageResolution, rest, state, cache, redirectedReference) : void 0; ++} + + // src/compiler/binder.ts + function getModuleInstanceState(node, visited) { +@@ -44657,7 +44760,15 @@ function getAllModulePathsWorker(info, importedFileName, host, compilerOptions, + /*preferSymlinks*/ + true, + (path, isRedirect) => { +- const isInNodeModules = pathContainsNodeModules(path); ++ let isInNodeModules = pathContainsNodeModules(path); ++ const pnpapi = getPnpApi(path); ++ if (!isInNodeModules && pnpapi) { ++ const fromLocator = pnpapi.findPackageLocator(info.importingSourceFileName); ++ const toLocator = pnpapi.findPackageLocator(path); ++ if (fromLocator && toLocator && fromLocator !== toLocator) { ++ isInNodeModules = true; ++ } ++ } + allFileNames.set(path, { path: info.getCanonicalFileName(path), isRedirect, isInNodeModules }); + importedFileFromNodeModules = importedFileFromNodeModules || isInNodeModules; + } +@@ -44948,7 +45059,41 @@ function tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileNa + if (!host.fileExists || !host.readFile) { + return void 0; + } +- const parts = getNodeModulePathParts(path); ++ let parts = getNodeModulePathParts(path); ++ let pnpPackageName; ++ const pnpApi = getPnpApi(path); ++ if (pnpApi) { ++ const fromLocator = pnpApi.findPackageLocator(importingSourceFile.fileName); ++ const toLocator = pnpApi.findPackageLocator(path); ++ if (fromLocator === toLocator) { ++ return void 0; ++ } ++ if (fromLocator && toLocator) { ++ const fromInfo = pnpApi.getPackageInformation(fromLocator); ++ if (toLocator.reference === fromInfo.packageDependencies.get(toLocator.name)) { ++ pnpPackageName = toLocator.name; ++ } else { ++ for (const [name, reference] of fromInfo.packageDependencies) { ++ if (Array.isArray(reference)) { ++ if (reference[0] === toLocator.name && reference[1] === toLocator.reference) { ++ pnpPackageName = name; ++ break; ++ } ++ } ++ } ++ } ++ if (!parts) { ++ const toInfo = pnpApi.getPackageInformation(toLocator); ++ parts = { ++ topLevelNodeModulesIndex: void 0, ++ topLevelPackageNameIndex: void 0, ++ // The last character from packageLocation is the trailing "/", we want to point to it ++ packageRootIndex: toInfo.packageLocation.length - 1, ++ fileNameIndex: path.lastIndexOf(`/`) ++ }; ++ } ++ } ++ } + if (!parts) { + return void 0; + } +@@ -44985,14 +45130,16 @@ function tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileNa + if (isRedirect && !isPackageRootPath) { + return void 0; + } +- const globalTypingsCacheLocation = host.getGlobalTypingsCacheLocation && host.getGlobalTypingsCacheLocation(); +- const pathToTopLevelNodeModules = getCanonicalFileName(moduleSpecifier.substring(0, parts.topLevelNodeModulesIndex)); +- if (!(startsWith(canonicalSourceDirectory, pathToTopLevelNodeModules) || globalTypingsCacheLocation && startsWith(getCanonicalFileName(globalTypingsCacheLocation), pathToTopLevelNodeModules))) { +- return void 0; ++ if (typeof process.versions.pnp === "undefined") { ++ const globalTypingsCacheLocation = host.getGlobalTypingsCacheLocation && host.getGlobalTypingsCacheLocation(); ++ const pathToTopLevelNodeModules = getCanonicalFileName(moduleSpecifier.substring(0, parts.topLevelNodeModulesIndex)); ++ if (!(startsWith(canonicalSourceDirectory, pathToTopLevelNodeModules) || globalTypingsCacheLocation && startsWith(getCanonicalFileName(globalTypingsCacheLocation), pathToTopLevelNodeModules))) { ++ return void 0; ++ } + } +- const nodeModulesDirectoryName = moduleSpecifier.substring(parts.topLevelPackageNameIndex + 1); +- const packageName = getPackageNameFromTypesPackageName(nodeModulesDirectoryName); +- return getEmitModuleResolutionKind(options) === 1 /* Classic */ && packageName === nodeModulesDirectoryName ? void 0 : packageName; ++ const nodeModulesDirectoryName = typeof pnpPackageName !== "undefined" ? pnpPackageName + moduleSpecifier.substring(parts.packageRootIndex) : moduleSpecifier.substring(parts.topLevelPackageNameIndex + 1); ++ const packageNameFromPath = getPackageNameFromTypesPackageName(nodeModulesDirectoryName); ++ return getEmitModuleResolutionKind(options) === 1 /* Classic */ && packageNameFromPath === nodeModulesDirectoryName ? void 0 : packageNameFromPath; + function tryDirectoryWithPackageJson(packageRootIndex) { + var _a, _b; + const packageRootPath = path.substring(0, packageRootIndex); +@@ -45005,9 +45152,9 @@ function tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileNa + const importMode = overrideMode || getDefaultResolutionModeForFile(importingSourceFile, host, options); + if (getResolvePackageJsonExports(options)) { + const nodeModulesDirectoryName2 = packageRootPath.substring(parts.topLevelPackageNameIndex + 1); +- const packageName2 = getPackageNameFromTypesPackageName(nodeModulesDirectoryName2); ++ const packageName = getPackageNameFromTypesPackageName(pnpPackageName ? pnpPackageName : nodeModulesDirectoryName2); + const conditions = getConditions(options, importMode); +- const fromExports = (packageJsonContent == null ? void 0 : packageJsonContent.exports) ? tryGetModuleNameFromExports(options, host, path, packageRootPath, packageName2, packageJsonContent.exports, conditions) : void 0; ++ const fromExports = (packageJsonContent == null ? void 0 : packageJsonContent.exports) ? tryGetModuleNameFromExports(options, host, path, packageRootPath, packageName, packageJsonContent.exports, conditions) : void 0; + if (fromExports) { + return { ...fromExports, verbatimFromExports: true }; + } +@@ -126594,6 +126741,11 @@ function createWatchProgram(host) { + if (configFileName) { + configFileWatcher = watchFile2(configFileName, scheduleProgramReload, 2e3 /* High */, watchOptions, WatchType.ConfigFile); + } ++ let pnpFileWatcher; ++ const pnpApiPath = getPnpApiPath(__filename); ++ if (pnpApiPath) { ++ pnpFileWatcher = watchFile2(pnpApiPath, scheduleResolutionReload, 2e3 /* High */, watchOptions, WatchType.ConfigFile); ++ } + const compilerHost = createCompilerHostFromProgramHost(host, () => compilerOptions, directoryStructureHost); + setGetSourceFileAsHashVersioned(compilerHost); + const getNewSourceFile = compilerHost.getSourceFile; +@@ -126657,6 +126809,10 @@ function createWatchProgram(host) { + configFileWatcher.close(); + configFileWatcher = void 0; + } ++ if (pnpFileWatcher) { ++ pnpFileWatcher.close(); ++ pnpFileWatcher = void 0; ++ } + extendedConfigCache == null ? void 0 : extendedConfigCache.clear(); + extendedConfigCache = void 0; + if (sharedExtendedConfigFileWatchers) { +@@ -126692,7 +126848,7 @@ function createWatchProgram(host) { + function getCurrentProgram() { + return builderProgram && builderProgram.getProgramOrUndefined(); + } +- function synchronizeProgram() { ++ function synchronizeProgram(forceAllFilesAsInvalidated = false) { + writeLog(`Synchronizing program`); + Debug.assert(compilerOptions); + Debug.assert(rootFileNames); +@@ -126704,7 +126860,7 @@ function createWatchProgram(host) { + resolutionCache.onChangesAffectModuleResolution(); + } + } +- const { hasInvalidatedResolutions, hasInvalidatedLibResolutions } = resolutionCache.createHasInvalidatedResolutions(customHasInvalidatedResolutions, customHasInvalidLibResolutions); ++ const { hasInvalidatedResolutions, hasInvalidatedLibResolutions } = resolutionCache.createHasInvalidatedResolutions(forceAllFilesAsInvalidated ? returnTrue : customHasInvalidatedResolutions, customHasInvalidLibResolutions); + const { + originalReadFile, + originalFileExists, +@@ -126912,6 +127068,12 @@ function createWatchProgram(host) { + updateLevel = 2 /* Full */; + scheduleProgramUpdate(); + } ++ function scheduleResolutionReload() { ++ writeLog("Clearing resolutions"); ++ resolutionCache.clear(); ++ updateLevel = 3 /* Resolutions */; ++ scheduleProgramUpdate(); ++ } + function updateProgramWithWatchStatus() { + timerToUpdateProgram = void 0; + reportFileChangeDetectedOnCreateProgram = true; +@@ -126925,6 +127087,12 @@ function createWatchProgram(host) { + case 2 /* Full */: + reloadConfigFile(); + break; ++ case 3 /* Resolutions */: ++ synchronizeProgram( ++ /*forceAllFilesAsInvalidated*/ ++ true ++ ); ++ break; + default: + synchronizeProgram(); + break; +diff --git a/lib/tsserver.js b/lib/tsserver.js +index bf00af3be..9140dc50b 100644 +semver exclusivity >=5.6.0-beta +--- a/lib/tsserver.js ++++ b/lib/tsserver.js +@@ -53,6 +53,25 @@ var import_net = __toESM(require("net")); + var import_os = __toESM(require("os")); + var import_readline = __toESM(require("readline")); + ++// src/compiler/pnpapi.ts ++function getPnpApi(path) { ++ if (typeof process.versions.pnp === "undefined") { ++ return; ++ } ++ const { findPnpApi } = require("module"); ++ if (findPnpApi) { ++ return findPnpApi(`${path}/`); ++ } ++} ++function getPnpApiPath(path) { ++ var _a; ++ return (_a = getPnpApi(path)) == null ? void 0 : _a.resolveRequest( ++ "pnpapi", ++ /*issuer*/ ++ null ++ ); ++} ++ + // src/tsserver/common.ts + function getLogLevel(level) { + if (level) { +@@ -243,6 +262,10 @@ function initializeNodeSystem() { + } + try { + const args = [(0, typescript_exports.combinePaths)(libDirectory, "watchGuard.js"), path]; ++ const pnpApiPath = getPnpApiPath(__filename); ++ if (pnpApiPath) { ++ args.unshift("-r", pnpApiPath); ++ } + if (logger.hasLevel(typescript_exports.server.LogLevel.verbose)) { + logger.info(`Starting ${process.execPath} with args:${typescript_exports.server.stringifyIndented(args)}`); + } +@@ -419,6 +442,10 @@ function startNodeSession(options, logger, cancellationToken) { + break; + } + } ++ const pnpApiPath = getPnpApiPath(__filename); ++ if (pnpApiPath) { ++ execArgv.unshift("-r", pnpApiPath); ++ } + const typingsInstaller = (0, typescript_exports.combinePaths)((0, typescript_exports.getDirectoryPath)(typescript_exports.sys.getExecutingFilePath()), "typingsInstaller.js"); + this.installer = import_child_process.default.fork(typingsInstaller, args, { execArgv }); + this.installer.on("message", (m) => this.handleMessage(m)); +diff --git a/lib/typescript.d.ts b/lib/typescript.d.ts +index 7070d1cde..0b33587cf 100644 +semver exclusivity >=5.6.0-beta +--- a/lib/typescript.d.ts ++++ b/lib/typescript.d.ts +@@ -3242,6 +3242,7 @@ declare namespace ts { + private packageJsonFilesMap; + private incompleteCompletionsCache; + private performanceEventHandler?; ++ private pnpWatcher?; + private pendingPluginEnablements?; + private currentPluginEnablementPromise?; + readonly jsDocParsingMode: JSDocParsingMode | undefined; +@@ -3360,6 +3361,7 @@ declare namespace ts { + private enableRequestedPluginsAsync; + private enableRequestedPluginsWorker; + configurePlugin(args: protocol.ConfigurePluginRequestArguments): void; ++ private watchPnpFile; + private watchPackageJsonFile; + private onPackageJsonChange; + } +@@ -9383,6 +9385,8 @@ declare namespace ts { + * - Updating the program + */ + Full = 2, ++ /** Reload the resolutions */ ++ Resolutions = 3, + } + function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName?: string): string | undefined; + function resolveTripleslashReference(moduleName: string, containingFile: string): string; +diff --git a/lib/typescript.js b/lib/typescript.js +index eb00df40a..79a588a4f 100644 +semver exclusivity >=5.6.0-beta +--- a/lib/typescript.js ++++ b/lib/typescript.js +@@ -8441,6 +8441,9 @@ var sys = (() => { + } + } + function isFileSystemCaseSensitive() { ++ if (typeof process.versions.pnp !== `undefined`) { ++ return true; ++ } + if (platform === "win32" || platform === "win64") { + return false; + } +@@ -43126,6 +43129,69 @@ function getDefaultValueForOption(option) { + } + } + ++// src/compiler/pnpapi.ts ++function getPnpApi(path) { ++ if (typeof process.versions.pnp === "undefined") { ++ return; ++ } ++ const { findPnpApi } = require("module"); ++ if (findPnpApi) { ++ return findPnpApi(`${path}/`); ++ } ++} ++function getPnpApiPath(path) { ++ var _a; ++ return (_a = getPnpApi(path)) == null ? void 0 : _a.resolveRequest( ++ "pnpapi", ++ /*issuer*/ ++ null ++ ); ++} ++ ++// src/compiler/pnp.ts ++function getPnpTypeRoots(currentDirectory) { ++ const pnpApi = getPnpApi(currentDirectory); ++ if (!pnpApi) { ++ return []; ++ } ++ currentDirectory = resolvePath(currentDirectory); ++ const currentPackage = pnpApi.findPackageLocator(`${currentDirectory}/`); ++ if (!currentPackage) { ++ return []; ++ } ++ const { packageDependencies } = pnpApi.getPackageInformation(currentPackage); ++ const typeRoots = []; ++ for (const [name, referencish] of Array.from(packageDependencies.entries())) { ++ if (name.startsWith(`@types/`) && referencish !== null) { ++ const dependencyLocator = pnpApi.getLocator(name, referencish); ++ const { packageLocation } = pnpApi.getPackageInformation(dependencyLocator); ++ typeRoots.push(getDirectoryPath(packageLocation)); ++ } ++ } ++ return typeRoots; ++} ++function isImportablePathPnp(fromPath, toPath3) { ++ const pnpApi = getPnpApi(fromPath); ++ const fromLocator = pnpApi.findPackageLocator(fromPath); ++ const toLocator = pnpApi.findPackageLocator(toPath3); ++ if (toLocator === null) { ++ return false; ++ } ++ const fromInfo = pnpApi.getPackageInformation(fromLocator); ++ const toReference = fromInfo.packageDependencies.get(toLocator.name); ++ if (toReference) { ++ return toReference === toLocator.reference; ++ } ++ for (const reference of fromInfo.packageDependencies.values()) { ++ if (Array.isArray(reference)) { ++ if (reference[0] === toLocator.name && reference[1] === toLocator.reference) { ++ return true; ++ } ++ } ++ } ++ return false; ++} ++ + // src/compiler/moduleNameResolver.ts + function trace(host, message, ...args) { + host.trace(formatMessage(message, ...args)); +@@ -43351,7 +43417,7 @@ function getEffectiveTypeRoots(options, host) { + return getDefaultTypeRoots(currentDirectory); + } + } +-function getDefaultTypeRoots(currentDirectory) { ++function getNodeModulesTypeRoots(currentDirectory) { + let typeRoots; + forEachAncestorDirectory(normalizePath(currentDirectory), (directory) => { + const atTypes = combinePaths(directory, nodeModulesAtTypes); +@@ -43364,6 +43430,15 @@ function arePathsEqual(path1, path2, host) { + const useCaseSensitiveFileNames2 = typeof host.useCaseSensitiveFileNames === "function" ? host.useCaseSensitiveFileNames() : host.useCaseSensitiveFileNames; + return comparePaths(path1, path2, !useCaseSensitiveFileNames2) === 0 /* EqualTo */; + } ++function getDefaultTypeRoots(currentDirectory) { ++ const nmTypes = getNodeModulesTypeRoots(currentDirectory); ++ const pnpTypes = getPnpTypeRoots(currentDirectory); ++ if (nmTypes == null ? void 0 : nmTypes.length) { ++ return [...nmTypes, ...pnpTypes]; ++ } else if (pnpTypes.length) { ++ return pnpTypes; ++ } ++} + function getOriginalAndResolvedFileName(fileName, host, traceEnabled) { + const resolvedFileName = realPath(fileName, host, traceEnabled); + const pathsAreEqual = arePathsEqual(fileName, resolvedFileName, host); +@@ -43613,6 +43688,21 @@ function getConditions(options, resolutionMode) { + } + function resolvePackageNameToPackageJson(packageName, containingDirectory, options, host, cache) { + const moduleResolutionState = getTemporaryModuleResolutionState(cache == null ? void 0 : cache.getPackageJsonInfoCache(), host, options); ++ const pnpapi = getPnpApi(containingDirectory); ++ if (pnpapi) { ++ try { ++ const resolution = pnpapi.resolveToUnqualified(packageName, `${containingDirectory}/`, { considerBuiltins: false }); ++ const candidate = normalizeSlashes(resolution).replace(/\/$/, ""); ++ return getPackageJsonInfo( ++ candidate, ++ /*onlyRecordFailures*/ ++ false, ++ moduleResolutionState ++ ); ++ } catch { ++ return; ++ } ++ } + return forEachAncestorDirectory(containingDirectory, (ancestorDirectory) => { + if (getBaseFileName(ancestorDirectory) !== "node_modules") { + const nodeModulesFolder = combinePaths(ancestorDirectory, "node_modules"); +@@ -45394,7 +45484,15 @@ function loadModuleFromNearestNodeModulesDirectoryWorker(extensions, moduleName, + return lookup(secondaryExtensions); + } + function lookup(extensions2) { +- return forEachAncestorDirectory(normalizeSlashes(directory), (ancestorDirectory) => { ++ const issuer = normalizeSlashes(directory); ++ if (getPnpApi(issuer)) { ++ const resolutionFromCache = tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, issuer, redirectedReference, state); ++ if (resolutionFromCache) { ++ return resolutionFromCache; ++ } ++ return toSearchResult(loadModuleFromImmediateNodeModulesDirectoryPnP(extensions2, moduleName, issuer, state, typesScopeOnly, cache, redirectedReference)); ++ } ++ return forEachAncestorDirectory(issuer, (ancestorDirectory) => { + if (getBaseFileName(ancestorDirectory) !== "node_modules") { + const resolutionFromCache = tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, ancestorDirectory, redirectedReference, state); + if (resolutionFromCache) { +@@ -45429,11 +45527,40 @@ function loadModuleFromImmediateNodeModulesDirectory(extensions, moduleName, dir + return loadModuleFromSpecificNodeModulesDirectory(4 /* Declaration */, mangleScopedPackageNameWithTrace(moduleName, state), nodeModulesAtTypes2, nodeModulesAtTypesExists, state, cache, redirectedReference); + } + } ++function loadModuleFromImmediateNodeModulesDirectoryPnP(extensions, moduleName, directory, state, typesScopeOnly, cache, redirectedReference) { ++ const issuer = normalizeSlashes(directory); ++ if (!typesScopeOnly) { ++ const packageResult = tryLoadModuleUsingPnpResolution(extensions, moduleName, issuer, state, cache, redirectedReference); ++ if (packageResult) { ++ return packageResult; ++ } ++ } ++ if (extensions & 4 /* Declaration */) { ++ return tryLoadModuleUsingPnpResolution(4 /* Declaration */, `@types/${mangleScopedPackageNameWithTrace(moduleName, state)}`, issuer, state, cache, redirectedReference); ++ } ++} + function loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, nodeModulesDirectory, nodeModulesDirectoryExists, state, cache, redirectedReference) { +- var _a, _b; + const candidate = normalizePath(combinePaths(nodeModulesDirectory, moduleName)); + const { packageName, rest } = parsePackageName(moduleName); + const packageDirectory = combinePaths(nodeModulesDirectory, packageName); ++ return loadModuleFromSpecificNodeModulesDirectoryImpl(extensions, nodeModulesDirectoryExists, state, cache, redirectedReference, candidate, rest, packageDirectory); ++} ++function loadModuleFromPnpResolution(extensions, packageDirectory, rest, state, cache, redirectedReference) { ++ const candidate = normalizePath(combinePaths(packageDirectory, rest)); ++ return loadModuleFromSpecificNodeModulesDirectoryImpl( ++ extensions, ++ /*nodeModulesDirectoryExists*/ ++ true, ++ state, ++ cache, ++ redirectedReference, ++ candidate, ++ rest, ++ packageDirectory ++ ); ++} ++function loadModuleFromSpecificNodeModulesDirectoryImpl(extensions, nodeModulesDirectoryExists, state, cache, redirectedReference, candidate, rest, packageDirectory) { ++ var _a, _b; + let rootPackageInfo; + let packageInfo = getPackageJsonInfo(candidate, !nodeModulesDirectoryExists, state); + if (rest !== "" && packageInfo && (!(state.features & 8 /* Exports */) || !hasProperty(((_a = rootPackageInfo = getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state)) == null ? void 0 : _a.contents.packageJsonContent) ?? emptyArray, "exports"))) { +@@ -45734,6 +45861,18 @@ function traceIfEnabled(state, diagnostic, ...args) { + function useCaseSensitiveFileNames(state) { + return !state.host.useCaseSensitiveFileNames ? true : typeof state.host.useCaseSensitiveFileNames === "boolean" ? state.host.useCaseSensitiveFileNames : state.host.useCaseSensitiveFileNames(); + } ++function loadPnpPackageResolution(packageName, containingDirectory) { ++ try { ++ const resolution = getPnpApi(containingDirectory).resolveToUnqualified(packageName, `${containingDirectory}/`, { considerBuiltins: false }); ++ return normalizeSlashes(resolution).replace(/\/$/, ""); ++ } catch { ++ } ++} ++function tryLoadModuleUsingPnpResolution(extensions, moduleName, containingDirectory, state, cache, redirectedReference) { ++ const { packageName, rest } = parsePackageName(moduleName); ++ const packageResolution = loadPnpPackageResolution(packageName, containingDirectory); ++ return packageResolution ? loadModuleFromPnpResolution(extensions, packageResolution, rest, state, cache, redirectedReference) : void 0; ++} + + // src/compiler/binder.ts + var ModuleInstanceState = /* @__PURE__ */ ((ModuleInstanceState2) => { +@@ -49275,7 +49414,15 @@ function getAllModulePathsWorker(info, importedFileName, host, compilerOptions, + /*preferSymlinks*/ + true, + (path, isRedirect) => { +- const isInNodeModules = pathContainsNodeModules(path); ++ let isInNodeModules = pathContainsNodeModules(path); ++ const pnpapi = getPnpApi(path); ++ if (!isInNodeModules && pnpapi) { ++ const fromLocator = pnpapi.findPackageLocator(info.importingSourceFileName); ++ const toLocator = pnpapi.findPackageLocator(path); ++ if (fromLocator && toLocator && fromLocator !== toLocator) { ++ isInNodeModules = true; ++ } ++ } + allFileNames.set(path, { path: info.getCanonicalFileName(path), isRedirect, isInNodeModules }); + importedFileFromNodeModules = importedFileFromNodeModules || isInNodeModules; + } +@@ -49566,7 +49713,41 @@ function tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileNa + if (!host.fileExists || !host.readFile) { + return void 0; + } +- const parts = getNodeModulePathParts(path); ++ let parts = getNodeModulePathParts(path); ++ let pnpPackageName; ++ const pnpApi = getPnpApi(path); ++ if (pnpApi) { ++ const fromLocator = pnpApi.findPackageLocator(importingSourceFile.fileName); ++ const toLocator = pnpApi.findPackageLocator(path); ++ if (fromLocator === toLocator) { ++ return void 0; ++ } ++ if (fromLocator && toLocator) { ++ const fromInfo = pnpApi.getPackageInformation(fromLocator); ++ if (toLocator.reference === fromInfo.packageDependencies.get(toLocator.name)) { ++ pnpPackageName = toLocator.name; ++ } else { ++ for (const [name, reference] of fromInfo.packageDependencies) { ++ if (Array.isArray(reference)) { ++ if (reference[0] === toLocator.name && reference[1] === toLocator.reference) { ++ pnpPackageName = name; ++ break; ++ } ++ } ++ } ++ } ++ if (!parts) { ++ const toInfo = pnpApi.getPackageInformation(toLocator); ++ parts = { ++ topLevelNodeModulesIndex: void 0, ++ topLevelPackageNameIndex: void 0, ++ // The last character from packageLocation is the trailing "/", we want to point to it ++ packageRootIndex: toInfo.packageLocation.length - 1, ++ fileNameIndex: path.lastIndexOf(`/`) ++ }; ++ } ++ } ++ } + if (!parts) { + return void 0; + } +@@ -49603,14 +49784,16 @@ function tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileNa + if (isRedirect && !isPackageRootPath) { + return void 0; + } +- const globalTypingsCacheLocation = host.getGlobalTypingsCacheLocation && host.getGlobalTypingsCacheLocation(); +- const pathToTopLevelNodeModules = getCanonicalFileName(moduleSpecifier.substring(0, parts.topLevelNodeModulesIndex)); +- if (!(startsWith(canonicalSourceDirectory, pathToTopLevelNodeModules) || globalTypingsCacheLocation && startsWith(getCanonicalFileName(globalTypingsCacheLocation), pathToTopLevelNodeModules))) { +- return void 0; ++ if (typeof process.versions.pnp === "undefined") { ++ const globalTypingsCacheLocation = host.getGlobalTypingsCacheLocation && host.getGlobalTypingsCacheLocation(); ++ const pathToTopLevelNodeModules = getCanonicalFileName(moduleSpecifier.substring(0, parts.topLevelNodeModulesIndex)); ++ if (!(startsWith(canonicalSourceDirectory, pathToTopLevelNodeModules) || globalTypingsCacheLocation && startsWith(getCanonicalFileName(globalTypingsCacheLocation), pathToTopLevelNodeModules))) { ++ return void 0; ++ } + } +- const nodeModulesDirectoryName = moduleSpecifier.substring(parts.topLevelPackageNameIndex + 1); +- const packageName = getPackageNameFromTypesPackageName(nodeModulesDirectoryName); +- return getEmitModuleResolutionKind(options) === 1 /* Classic */ && packageName === nodeModulesDirectoryName ? void 0 : packageName; ++ const nodeModulesDirectoryName = typeof pnpPackageName !== "undefined" ? pnpPackageName + moduleSpecifier.substring(parts.packageRootIndex) : moduleSpecifier.substring(parts.topLevelPackageNameIndex + 1); ++ const packageNameFromPath = getPackageNameFromTypesPackageName(nodeModulesDirectoryName); ++ return getEmitModuleResolutionKind(options) === 1 /* Classic */ && packageNameFromPath === nodeModulesDirectoryName ? void 0 : packageNameFromPath; + function tryDirectoryWithPackageJson(packageRootIndex) { + var _a, _b; + const packageRootPath = path.substring(0, packageRootIndex); +@@ -49623,9 +49806,9 @@ function tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileNa + const importMode = overrideMode || getDefaultResolutionModeForFile(importingSourceFile, host, options); + if (getResolvePackageJsonExports(options)) { + const nodeModulesDirectoryName2 = packageRootPath.substring(parts.topLevelPackageNameIndex + 1); +- const packageName2 = getPackageNameFromTypesPackageName(nodeModulesDirectoryName2); ++ const packageName = getPackageNameFromTypesPackageName(pnpPackageName ? pnpPackageName : nodeModulesDirectoryName2); + const conditions = getConditions(options, importMode); +- const fromExports = (packageJsonContent == null ? void 0 : packageJsonContent.exports) ? tryGetModuleNameFromExports(options, host, path, packageRootPath, packageName2, packageJsonContent.exports, conditions) : void 0; ++ const fromExports = (packageJsonContent == null ? void 0 : packageJsonContent.exports) ? tryGetModuleNameFromExports(options, host, path, packageRootPath, packageName, packageJsonContent.exports, conditions) : void 0; + if (fromExports) { + return { ...fromExports, verbatimFromExports: true }; + } +@@ -123332,6 +123515,7 @@ var ProgramUpdateLevel = /* @__PURE__ */ ((ProgramUpdateLevel2) => { + ProgramUpdateLevel2[ProgramUpdateLevel2["Update"] = 0] = "Update"; + ProgramUpdateLevel2[ProgramUpdateLevel2["RootNamesAndUpdate"] = 1] = "RootNamesAndUpdate"; + ProgramUpdateLevel2[ProgramUpdateLevel2["Full"] = 2] = "Full"; ++ ProgramUpdateLevel2[ProgramUpdateLevel2["Resolutions"] = 3] = "Resolutions"; + return ProgramUpdateLevel2; + })(ProgramUpdateLevel || {}); + function updateSharedExtendedConfigFileWatcher(projectPath, options, extendedConfigFilesMap, createExtendedConfigFileWatch, toPath3) { +@@ -131537,6 +131721,11 @@ function createWatchProgram(host) { + if (configFileName) { + configFileWatcher = watchFile2(configFileName, scheduleProgramReload, 2e3 /* High */, watchOptions, WatchType.ConfigFile); + } ++ let pnpFileWatcher; ++ const pnpApiPath = getPnpApiPath(__filename); ++ if (pnpApiPath) { ++ pnpFileWatcher = watchFile2(pnpApiPath, scheduleResolutionReload, 2e3 /* High */, watchOptions, WatchType.ConfigFile); ++ } + const compilerHost = createCompilerHostFromProgramHost(host, () => compilerOptions, directoryStructureHost); + setGetSourceFileAsHashVersioned(compilerHost); + const getNewSourceFile = compilerHost.getSourceFile; +@@ -131600,6 +131789,10 @@ function createWatchProgram(host) { + configFileWatcher.close(); + configFileWatcher = void 0; + } ++ if (pnpFileWatcher) { ++ pnpFileWatcher.close(); ++ pnpFileWatcher = void 0; ++ } + extendedConfigCache == null ? void 0 : extendedConfigCache.clear(); + extendedConfigCache = void 0; + if (sharedExtendedConfigFileWatchers) { +@@ -131635,7 +131828,7 @@ function createWatchProgram(host) { + function getCurrentProgram() { + return builderProgram && builderProgram.getProgramOrUndefined(); + } +- function synchronizeProgram() { ++ function synchronizeProgram(forceAllFilesAsInvalidated = false) { + writeLog(`Synchronizing program`); + Debug.assert(compilerOptions); + Debug.assert(rootFileNames); +@@ -131647,7 +131840,7 @@ function createWatchProgram(host) { + resolutionCache.onChangesAffectModuleResolution(); + } + } +- const { hasInvalidatedResolutions, hasInvalidatedLibResolutions } = resolutionCache.createHasInvalidatedResolutions(customHasInvalidatedResolutions, customHasInvalidLibResolutions); ++ const { hasInvalidatedResolutions, hasInvalidatedLibResolutions } = resolutionCache.createHasInvalidatedResolutions(forceAllFilesAsInvalidated ? returnTrue : customHasInvalidatedResolutions, customHasInvalidLibResolutions); + const { + originalReadFile, + originalFileExists, +@@ -131855,6 +132048,12 @@ function createWatchProgram(host) { + updateLevel = 2 /* Full */; + scheduleProgramUpdate(); + } ++ function scheduleResolutionReload() { ++ writeLog("Clearing resolutions"); ++ resolutionCache.clear(); ++ updateLevel = 3 /* Resolutions */; ++ scheduleProgramUpdate(); ++ } + function updateProgramWithWatchStatus() { + timerToUpdateProgram = void 0; + reportFileChangeDetectedOnCreateProgram = true; +@@ -131868,6 +132067,12 @@ function createWatchProgram(host) { + case 2 /* Full */: + reloadConfigFile(); + break; ++ case 3 /* Resolutions */: ++ synchronizeProgram( ++ /*forceAllFilesAsInvalidated*/ ++ true ++ ); ++ break; + default: + synchronizeProgram(); + break; +@@ -138518,7 +138723,14 @@ function createPackageJsonImportFilter(fromFile, preferences, host) { + return false; + } + function getNodeModulesPackageNameFromFileName(importedFileName, moduleSpecifierResolutionHost) { +- if (!importedFileName.includes("node_modules")) { ++ const pnpapi = getPnpApi(importedFileName); ++ if (pnpapi) { ++ const fromLocator = pnpapi.findPackageLocator(fromFile.fileName); ++ const toLocator = pnpapi.findPackageLocator(importedFileName); ++ if (!(fromLocator && toLocator)) { ++ return void 0; ++ } ++ } else if (!importedFileName.includes("node_modules")) { + return void 0; + } + const specifier = ts_moduleSpecifiers_exports.getNodeModulesPackageName( +@@ -139062,6 +139274,9 @@ function isImportableFile(program, from, to, preferences, packageJsonFilter, mod + return hasImportablePath; + } + function isImportablePath(fromPath, toPath3, getCanonicalFileName, globalCachePath) { ++ if (getPnpApi(fromPath)) { ++ return isImportablePathPnp(fromPath, toPath3); ++ } + const toNodeModules = forEachAncestorDirectory(toPath3, (ancestor) => getBaseFileName(ancestor) === "node_modules" ? ancestor : void 0); + const toNodeModulesParent = toNodeModules && getDirectoryPath(getCanonicalFileName(toNodeModules)); + return toNodeModulesParent === void 0 || startsWith(getCanonicalFileName(fromPath), toNodeModulesParent) || !!globalCachePath && startsWith(getCanonicalFileName(globalCachePath), toNodeModulesParent); +@@ -167651,7 +167866,34 @@ function getCompletionEntriesForNonRelativeModules(fragment, scriptPath, mode, p + ); + } + }; +- if (fragmentDirectory && getResolvePackageJsonExports(compilerOptions)) { ++ const checkExports = (packageFile, packageDirectory, fragmentSubpath) => { ++ const packageJson = readJson(packageFile, host); ++ const exports2 = packageJson.exports; ++ if (exports2) { ++ if (typeof exports2 !== "object" || exports2 === null) { ++ return true; ++ } ++ const keys = getOwnKeys(exports2); ++ const conditions = getConditions(compilerOptions, mode); ++ addCompletionEntriesFromPathsOrExports( ++ result, ++ /*isExports*/ ++ true, ++ fragmentSubpath, ++ packageDirectory, ++ extensionOptions, ++ program, ++ host, ++ keys, ++ (key) => singleElementArray(getPatternFromFirstMatchingCondition(exports2[key], conditions)), ++ comparePatternKeys ++ ); ++ return true; ++ } ++ return false; ++ }; ++ const shouldCheckExports = fragmentDirectory && getResolvePackageJsonExports(compilerOptions); ++ if (shouldCheckExports) { + const nodeModulesDirectoryLookup = ancestorLookup; + ancestorLookup = (ancestor) => { + const components = getPathComponents(fragment); +@@ -167670,35 +167912,53 @@ function getCompletionEntriesForNonRelativeModules(fragment, scriptPath, mode, p + const packageDirectory = combinePaths(ancestor, "node_modules", packagePath); + const packageFile = combinePaths(packageDirectory, "package.json"); + if (tryFileExists(host, packageFile)) { +- const packageJson = readJson(packageFile, host); +- const exports2 = packageJson.exports; +- if (exports2) { +- if (typeof exports2 !== "object" || exports2 === null) { +- return; ++ const fragmentSubpath = components.join("/") + (components.length && hasTrailingDirectorySeparator(fragment) ? "/" : ""); ++ if (checkExports(packageFile, packageDirectory, fragmentSubpath)) { ++ return; ++ } ++ } ++ return nodeModulesDirectoryLookup(ancestor); ++ }; ++ } ++ const pnpApi = getPnpApi(scriptPath); ++ if (pnpApi) { ++ const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; ++ const dependencyNameMatch = fragment.match(pathRegExp); ++ if (dependencyNameMatch) { ++ const [, dependencyName, subPath] = dependencyNameMatch; ++ let unqualified; ++ try { ++ unqualified = pnpApi.resolveToUnqualified(dependencyName, scriptPath, { considerBuiltins: false }); ++ } catch { ++ } ++ if (unqualified) { ++ const packageDirectory = normalizePath(unqualified); ++ let shouldGetCompletions = true; ++ if (shouldCheckExports) { ++ const packageFile = combinePaths(packageDirectory, "package.json"); ++ if (tryFileExists(host, packageFile) && checkExports(packageFile, packageDirectory, subPath)) { ++ shouldGetCompletions = false; + } +- const keys = getOwnKeys(exports2); +- const fragmentSubpath = components.join("/") + (components.length && hasTrailingDirectorySeparator(fragment) ? "/" : ""); +- const conditions = getConditions(compilerOptions, mode); +- addCompletionEntriesFromPathsOrExports( +- result, +- /*isExports*/ +- true, +- fragmentSubpath, ++ } ++ if (shouldGetCompletions) { ++ getCompletionEntriesForDirectoryFragment( ++ subPath, + packageDirectory, + extensionOptions, + program, + host, +- keys, +- (key) => singleElementArray(getPatternFromFirstMatchingCondition(exports2[key], conditions)), +- comparePatternKeys ++ /*moduleSpecifierIsRelative*/ ++ false, ++ /*exclude*/ ++ void 0, ++ result + ); +- return; + } + } +- return nodeModulesDirectoryLookup(ancestor); +- }; ++ } ++ } else { ++ forEachAncestorDirectory(scriptPath, ancestorLookup); + } +- forEachAncestorDirectory(scriptPath, ancestorLookup); + } + } + return arrayFrom(result.values()); +@@ -167832,9 +168092,15 @@ function getCompletionEntriesFromTypings(host, program, scriptPath, fragmentDire + for (const root of typeRoots) { + getCompletionEntriesFromDirectories(root); + } +- for (const packageJson of findPackageJsons(scriptPath, host)) { +- const typesDir = combinePaths(getDirectoryPath(packageJson), "node_modules/@types"); +- getCompletionEntriesFromDirectories(typesDir); ++ if (getPnpApi(scriptPath)) { ++ for (const root of getPnpTypeRoots(scriptPath)) { ++ getCompletionEntriesFromDirectories(root); ++ } ++ } else { ++ for (const packageJson of findPackageJsons(scriptPath, host)) { ++ const typesDir = combinePaths(getDirectoryPath(packageJson), "node_modules/@types"); ++ getCompletionEntriesFromDirectories(typesDir); ++ } + } + return result; + function getCompletionEntriesFromDirectories(directory) { +@@ -184951,6 +185217,29 @@ var ConfiguredProject2 = class extends Project2 { + return this.projectReferences; + } + updateReferences(refs) { ++ if (typeof process.versions.pnp !== `undefined`) { ++ const basePath = this.getCurrentDirectory(); ++ const getPnpPath = (path) => { ++ try { ++ const pnpApi = getPnpApi(`${path}/`); ++ if (!pnpApi) { ++ return path; ++ } ++ const targetLocator = pnpApi.findPackageLocator(`${path}/`); ++ const { packageLocation } = pnpApi.getPackageInformation(targetLocator); ++ const request = combinePaths(targetLocator.name, getRelativePathFromDirectory( ++ packageLocation, ++ path, ++ /*ignoreCase*/ ++ false ++ )); ++ return pnpApi.resolveToUnqualified(request, `${basePath}/`); ++ } catch { ++ return path; ++ } ++ }; ++ refs = refs == null ? void 0 : refs.map((r) => ({ ...r, path: getPnpPath(r.path) })); ++ } + this.projectReferences = refs; + this.potentialProjectReferences = void 0; + } +@@ -185695,6 +185984,7 @@ var _ProjectService = class _ProjectService { + getDetailWatchInfo + ); + this.canUseWatchEvents = getCanUseWatchEvents(this, opts.canUseWatchEvents); ++ this.pnpWatcher = this.watchPnpFile(); + (_a = opts.incrementalVerifier) == null ? void 0 : _a.call(opts, this); + } + toPath(fileName) { +@@ -187589,7 +187879,7 @@ Dynamic files must always be opened with service's current directory or service + this.performanceEventHandler = performanceEventHandler; + } + setHostConfiguration(args) { +- var _a; ++ var _a, _b; + if (args.file) { + const info = this.getScriptInfoForNormalizedPath(toNormalizedPath(args.file)); + if (info) { +@@ -187638,6 +187928,8 @@ Dynamic files must always be opened with service's current directory or service + this.hostConfiguration.watchOptions = substitution; + this.hostConfiguration.beforeSubstitution = substitution === watchOptions ? void 0 : watchOptions; + this.logger.info(`Host watch options changed to ${JSON.stringify(this.hostConfiguration.watchOptions)}, it will be take effect for next watches.`); ++ (_b = this.pnpWatcher) == null ? void 0 : _b.close(); ++ this.watchPnpFile(); + } + } + } +@@ -188649,6 +188941,28 @@ Dynamic files must always be opened with service's current directory or service + } + }); + } ++ watchPnpFile() { ++ const pnpApiPath = getPnpApiPath(__filename); ++ if (!pnpApiPath) { ++ return; ++ } ++ return this.watchFactory.watchFile( ++ pnpApiPath, ++ () => { ++ this.forEachProject((project) => { ++ for (const info of project.getScriptInfos()) { ++ project.resolutionCache.invalidateResolutionOfFile(info.path); ++ } ++ project.markAsDirty(); ++ updateProjectIfDirty(project); ++ }); ++ this.delayEnsureProjectForOpenFiles(); ++ }, ++ 250 /* Low */, ++ this.hostConfiguration.watchOptions, ++ WatchType.ConfigFile ++ ); ++ } + watchPackageJsonFile(file, path, project) { + Debug.assert(project !== void 0); + let result = (this.packageJsonFilesMap ?? (this.packageJsonFilesMap = /* @__PURE__ */ new Map())).get(path); diff --git a/packages/plugin-compat/extra/typescript/patch-d6f4469677c4a233add73638f77090a1.diff b/packages/plugin-compat/extra/typescript/patch-d6f4469677c4a233add73638f77090a1.diff index 65dd15fd199..d0daba5dae5 100644 --- a/packages/plugin-compat/extra/typescript/patch-d6f4469677c4a233add73638f77090a1.diff +++ b/packages/plugin-compat/extra/typescript/patch-d6f4469677c4a233add73638f77090a1.diff @@ -1,6 +1,6 @@ diff --git a/lib/tsc.js b/lib/tsc.js index e3dc24d79..d287f962a 100644 -semver exclusivity >=5.5.2 +semver exclusivity >=5.5.2 <5.6.0-beta --- a/lib/tsc.js +++ b/lib/tsc.js @@ -5067,6 +5067,9 @@ var sys = (() => { @@ -347,7 +347,7 @@ semver exclusivity >=5.5.2 function reloadFileNamesFromConfigFile() { diff --git a/lib/tsserver.js b/lib/tsserver.js index 398a3a1ed..8a81feff1 100644 -semver exclusivity >=5.5.2 +semver exclusivity >=5.5.2 <5.6.0-beta --- a/lib/tsserver.js +++ b/lib/tsserver.js @@ -33,6 +33,25 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau @@ -400,7 +400,7 @@ semver exclusivity >=5.5.2 this.installer.on("message", (m) => this.handleMessage(m)); diff --git a/lib/typescript.d.ts b/lib/typescript.d.ts index fbb3e4912..e601e3d32 100644 -semver exclusivity >=5.5.2 +semver exclusivity >=5.5.2 <5.6.0-beta --- a/lib/typescript.d.ts +++ b/lib/typescript.d.ts @@ -9350,6 +9350,8 @@ declare namespace ts { @@ -414,7 +414,7 @@ semver exclusivity >=5.5.2 function resolveTripleslashReference(moduleName: string, containingFile: string): string; diff --git a/lib/typescript.js b/lib/typescript.js index 714953f46..e30a70401 100644 -semver exclusivity >=5.5.2 +semver exclusivity >=5.5.2 <5.6.0-beta --- a/lib/typescript.js +++ b/lib/typescript.js @@ -8626,6 +8626,9 @@ var sys = (() => { diff --git a/packages/plugin-compat/sources/patches/typescript.patch.ts b/packages/plugin-compat/sources/patches/typescript.patch.ts index 367947b607a..b016937328d 100644 --- a/packages/plugin-compat/sources/patches/typescript.patch.ts +++ b/packages/plugin-compat/sources/patches/typescript.patch.ts @@ -2,7 +2,7 @@ let patch: string; export function getPatch() { if (typeof patch === `undefined`) - patch = require(`zlib`).brotliDecompressSync(Buffer.from(`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`, `base64`)).toString(); + patch = require(`zlib`).brotliDecompressSync(Buffer.from(`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`, `base64`)).toString(); return patch; }