@ttsc/lint 0.32.1 → 0.33.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/lib/createTtscPlugin.d.ts +22 -0
- package/lib/createTtscPlugin.js +179 -19
- package/lib/createTtscPlugin.js.map +1 -1
- package/linthost/config.go +79 -1
- package/linthost/loader_canonical_directory_other.go +34 -0
- package/linthost/loader_canonical_directory_windows.go +60 -0
- package/linthost/loader_identity_temp_base_posix_test.go +117 -0
- package/linthost/windows_loader_identity_temp_base_preserves_config_directory_test.go +212 -0
- package/package.json +2 -2
- package/src/createTtscPlugin.ts +199 -22
|
@@ -81,4 +81,26 @@ export default function createTtscPlugin(context: TtscPluginFactoryContext<ITtsc
|
|
|
81
81
|
* check characters no consumer ever sees.
|
|
82
82
|
*/
|
|
83
83
|
export declare const TTSX_EXTRACTOR_SCRIPT = "// @ts-ignore -- internal loader must not require user-installed Node typings.\nimport * as fs from \"node:fs\";\n// @ts-ignore -- internal loader must not require user-installed Node typings.\nimport { Buffer } from \"node:buffer\";\n// @ts-ignore -- internal loader must not require user-installed Node typings.\nimport { createHash } from \"node:crypto\";\n// @ts-ignore -- internal loader must not require user-installed Node typings.\nimport { createRequire, registerHooks } from \"node:module\";\n// @ts-ignore -- internal loader must not require user-installed Node typings.\nimport * as path from \"node:path\";\n// @ts-ignore -- internal loader must not require user-installed Node typings.\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\nconst configUrl = %CONFIG_IMPORT%;\nconst outputPath = %CONFIG_OUTPUT%;\nconst resolutionRoot = path.resolve(%CONFIG_ROOT%);\nconst CONFIG_KEYS = new Set<string>([\n \"files\",\n \"ignores\",\n \"extends\",\n \"plugins\",\n \"rules\",\n \"format\",\n]);\nconst dependencies = new Map<string, {\n digest: string;\n identityStable: boolean;\n kind: \"directory\" | \"file\" | \"optional-file\";\n path: string;\n owners: Set<string>;\n realpath: string | null;\n}>();\nconst graphNodes = new Map<string, string>();\nconst graphEdges: Array<{\n child: string;\n packageBoundary: boolean;\n parent: string;\n}> = [];\nconst configLocation = fileURLToPath(configUrl);\n// Every spelling of this config the module system might key an edge under.\n//\n// Which one it uses is not knowable from here, and guessing has failed in both\n// directions. A path handed in by another producer can be escaped by a rule\n// Node does not share. Node respells a resolved file module through its real\n// path unless \"--preserve-symlinks\" is set, so a config reached through a\n// symlinked directory is keyed by its target. And a Windows 8.3 short name is\n// not a symlink: fs.realpathSync expands it, the module resolver does not, so\n// asking the volume there produces a spelling no edge carries.\n//\n// A seed that names a URL no edge was keyed under sits on a node with no\n// outgoing edges, the walk ends immediately, and every dependency recorded\n// after the first import is demoted from watch to cache. That failure is\n// silent: the build still succeeds and simply stops reacting. Seeding every\n// spelling costs one extra queue entry and cannot be wrong.\nconst configUrlSpellings = [\n ...new Set([\n configUrl,\n pathToFileURL(configLocation).href,\n pathToFileURL(realConfigLocation()).href,\n ]),\n];\nconst configEntryUrls = new Set(configUrlSpellings);\nconst moduleProbeExtensions = [\n \".ts\",\n \".tsx\",\n \".mts\",\n \".cts\",\n \".js\",\n \".mjs\",\n \".cjs\",\n \".json\",\n \".node\",\n] as const;\nconst jsToTsProbeExtensions = new Map<string, readonly string[]>([\n [\".js\", [\".ts\", \".tsx\"]],\n [\".jsx\", [\".tsx\"]],\n [\".mjs\", [\".mts\"]],\n [\".cjs\", [\".cts\"]],\n]);\nfor (const spelling of configUrlSpellings) {\n graphNodes.set(spelling, configLocation);\n}\nrecordDependency(\n \"file\",\n configLocation,\n createHash(\"sha256\").update(fs.readFileSync(configLocation)).digest(\"hex\"),\n configUrlSpellings,\n);\nrecordPackageManifests(configLocation, configUrlSpellings);\n\ndeclare const process: {\n cwd(): string;\n platform: string;\n stdout: { write(value: string): void };\n stderr: { write(value: string): void };\n exit(code?: number): never;\n};\n\nconst hooks = registerHooks({\n resolve(specifier, context, nextResolve) {\n const requestedParent =\n context.parentURL && new URL(context.parentURL).href;\n if (requestedParent !== undefined && graphNodes.has(requestedParent)) {\n recordLocalResolutionCandidates(specifier, requestedParent);\n }\n const resolved = nextResolve(specifier, context);\n if (typeof resolved.url !== \"string\" || !resolved.url.startsWith(\"file:\")) {\n return resolved;\n }\n const url = new URL(resolved.url).href;\n const parent = context.parentURL && new URL(context.parentURL).href;\n const location = fileURLToPath(url);\n // The entry is recognized by what was asked for, not only by what came\n // back. A module URL is assigned by whoever loaded it: a compiling loader\n // can serve the config from its emitted output, and a platform can hand\n // back a different spelling of the same file. Either way the URL bears no\n // resemblance to the one this process was given, so the config's own\n // imports would be rejected here \u2014 their parent is a URL no node was\n // recorded under \u2014 and the graph would collapse to the records made before\n // the first import. The request itself is unambiguous, so it decides.\n const entry =\n configEntryUrls.has(specifier) ||\n url === new URL(configUrl).href ||\n samePhysicalPath(location, configLocation);\n if (!entry && (parent === undefined || !graphNodes.has(parent))) {\n return resolved;\n }\n graphNodes.set(url, location);\n if (entry && configEntryUrls.has(specifier) && specifier !== url) {\n graphEdges.push({ child: url, packageBoundary: false, parent: specifier });\n }\n if (parent !== undefined) {\n graphEdges.push({\n child: url,\n packageBoundary:\n pathHasNodeModules(location) && !isLocalModuleSpecifier(specifier),\n parent,\n });\n recordResolutionTopology(\n specifier,\n parent,\n url,\n location,\n context.conditions,\n );\n }\n try {\n recordDependency(\n \"file\",\n location,\n createHash(\"sha256\").update(fs.readFileSync(location)).digest(\"hex\"),\n [url],\n );\n } catch {\n // The evaluator remains authoritative for the load error. An unreadable\n // dependency simply makes this result non-cacheable in the parent.\n recordDependency(\"file\", location, \"\", [url]);\n }\n return resolved;\n },\n});\n\n// Wrapped and settled explicitly rather than written as a top-level await.\n// The loader tsconfig's \"module\" now follows the config's own package, and\n// TS1378 rejects top-level await under a CommonJS module option however this\n// .mts file emits. The trailing catch is what a top-level await gave for\n// free: without it a throw from the finally would leave the promise\n// unsettled instead of failing the load.\n(async () => {\n try {\n const importedConfig = configLocation.toLowerCase().endsWith(\".json\")\n ? JSON.parse(fs.readFileSync(configLocation, \"utf8\").replace(/^\uFEFF/, \"\"))\n : await import(configUrl);\n const current = await resolveConfig(importedConfig, true);\n const entries = await collectPluginEntries(current, configLocation, %CONFIG_CHAIN%);\n fs.writeFileSync(outputPath, JSON.stringify({\n dependencies: finalizeDependencies(),\n entries,\n }), \"utf8\");\n } catch (error) {\n reportLoaderFailure(error);\n } finally {\n hooks.deregister();\n }\n})().catch((error) => {\n // Reached only when the finally above throws: the catch already ends the\n // process, so this is the deregistration's own failure, not the config's.\n reportLoaderFailure(error);\n});\n\n// reportLoaderFailure ends this loader on an error it can name, on both of the\n// channels the parent uses.\n//\n// The stack is for a reader and streams to stderr as it is written. The reason\n// is a fact about the user's config that a caller has to act on, so it travels\n// as data through the result file the parent already reads. Only a well-formed\n// envelope is honoured there, so a partially written or unrelated file leaves\n// the process status to speak for itself.\nfunction reportLoaderFailure(error: unknown): never {\n // The trailing newline ends the stack as a line of its own. Without it the\n // parent's own message, written to this same stream, starts mid-line.\n process.stderr.write((error instanceof Error && error.stack ? error.stack : String(error)) + \"\\n\");\n try {\n fs.writeFileSync(\n outputPath,\n JSON.stringify({ __ttscLoaderError: error instanceof Error ? error.message : String(error) }),\n \"utf8\",\n );\n } catch {\n // A reason that cannot be written leaves the exit status as the report.\n }\n return process.exit(1);\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\";\n}\n\nfunction recordDependency(\n kind: \"directory\" | \"file\" | \"optional-file\",\n location: string,\n digest: string,\n owners: readonly string[],\n): void {\n const key = kind + \"\\0\" + location;\n const previous = dependencies.get(key);\n const mergedOwners = previous?.owners ?? new Set<string>();\n for (const owner of owners) mergedOwners.add(owner);\n const realpath = dependencyRealpath(location);\n const identityStable =\n previous?.identityStable !== false &&\n (previous === undefined || previous.realpath === realpath);\n dependencies.set(key, {\n digest:\n !identityStable ||\n (previous !== undefined && previous.digest !== digest)\n ? \"\"\n : digest,\n identityStable,\n kind,\n owners: mergedOwners,\n path: location,\n realpath,\n });\n}\n\nfunction dependencyRealpath(location: string): string | null {\n try {\n return realPath(location);\n } catch {\n return null;\n }\n}\n\nfunction isLocalModuleSpecifier(specifier: string): boolean {\n return specifier.startsWith(\".\") ||\n specifier.startsWith(\"/\") ||\n specifier.startsWith(\"file:\") ||\n /^[A-Za-z]:[\\\\/]/.test(specifier);\n}\n\nfunction pathHasNodeModules(location: string): boolean {\n return location.replaceAll(\"\\\\\", \"/\").split(\"/\").includes(\"node_modules\");\n}\n\nfunction recordResolutionTopology(\n specifier: string,\n parentUrl: string,\n childUrl: string,\n childLocation: string,\n conditions: readonly string[],\n): void {\n const owners = [parentUrl, childUrl];\n const parentLocation = graphNodes.get(parentUrl);\n if (parentLocation !== undefined && isLocalModuleSpecifier(specifier)) {\n recordDirectoryDependency(path.dirname(parentLocation), owners);\n }\n recordDirectoryDependency(path.dirname(childLocation), owners);\n recordPackageManifests(childLocation, owners);\n if (parentLocation !== undefined && !isLocalModuleSpecifier(specifier)) {\n recordNodeModulesSearchDirectories(\n parentLocation,\n specifier,\n childLocation,\n owners,\n conditions,\n );\n }\n}\n\nfunction recordDirectoryDependency(\n location: string,\n owners: readonly string[],\n): void {\n try {\n recordDependency(\"directory\", location, directoryDigest(location), owners);\n } catch {\n recordDependency(\"directory\", location, \"\", owners);\n }\n}\n\nfunction directoryDigest(location: string): string {\n const entries: Buffer[] = [];\n if (process.platform === \"win32\") {\n for (const entry of fs.readdirSync(location, { withFileTypes: true })) {\n let target = Buffer.alloc(0);\n if (entry.isSymbolicLink()) {\n try {\n target = Buffer.from(\n fs.readlinkSync(path.join(location, entry.name)),\n \"utf8\",\n );\n } catch {\n target = Buffer.from(\"<unreadable>\");\n }\n }\n entries.push(directoryDigestRecord(Buffer.from(entry.name), entry, target));\n }\n } else {\n for (const entry of fs.readdirSync(location, {\n encoding: \"buffer\",\n withFileTypes: true,\n })) {\n let target = Buffer.alloc(0);\n if (entry.isSymbolicLink()) {\n try {\n target = fs.readlinkSync(\n Buffer.concat([\n Buffer.from(location),\n Buffer.from(path.sep),\n entry.name,\n ]),\n { encoding: \"buffer\" },\n );\n } catch {\n target = Buffer.from(\"<unreadable>\");\n }\n }\n entries.push(directoryDigestRecord(entry.name, entry, target));\n }\n }\n entries.sort(Buffer.compare);\n const serialized = Buffer.concat(\n entries.flatMap((entry, index) =>\n index === 0 ? [entry] : [Buffer.from([0]), entry],\n ),\n );\n return createHash(\"sha256\").update(serialized).digest(\"hex\");\n}\n\nfunction directoryDigestRecord(\n name: Buffer,\n entry: {\n isDirectory(): boolean;\n isFile(): boolean;\n isSymbolicLink(): boolean;\n },\n target: Buffer,\n): Buffer {\n const kind = entry.isDirectory()\n ? \"directory\"\n : entry.isFile()\n ? \"file\"\n : entry.isSymbolicLink()\n ? \"symlink\"\n : \"other\";\n return Buffer.concat([name, Buffer.from(\"\\0\" + kind + \"\\0\"), target]);\n}\n\nfunction optionalFileDigest(location: string): string {\n try {\n const entry = fs.statSync(location);\n if (entry.isFile()) {\n return createHash(\"sha256\")\n .update(Buffer.concat([Buffer.from(\"file\\0\"), fs.readFileSync(location)]))\n .digest(\"hex\");\n }\n if (entry.isDirectory()) {\n return createHash(\"sha256\")\n .update(\"ttsc:host-input:directory\\0\")\n .digest(\"hex\");\n }\n } catch {\n // Missing and unreadable candidates share the absent state.\n }\n return createHash(\"sha256\").update(\"missing\\0\").digest(\"hex\");\n}\n\nfunction recordOptionalFileDependency(\n location: string,\n owners: readonly string[],\n): boolean {\n try {\n if (fs.statSync(location).isFile()) {\n recordDependency(\n \"file\",\n location,\n createHash(\"sha256\").update(fs.readFileSync(location)).digest(\"hex\"),\n owners,\n );\n return true;\n }\n } catch {\n // The exact missing path remains a dependency of the resolution result.\n }\n recordDependency(\"optional-file\", location, optionalFileDigest(location), owners);\n return false;\n}\n\nfunction moduleResolutionCandidates(base: string): string[] {\n const extension = path.extname(base).toLowerCase();\n const substitutions = jsToTsProbeExtensions.get(extension) ?? [];\n const stem = base.slice(0, base.length - extension.length);\n return [\n base,\n ...substitutions.map((candidate) => stem + candidate),\n ...moduleProbeExtensions.map((candidate) => base + candidate),\n path.join(base, \"package.json\"),\n ...moduleProbeExtensions.map((candidate) =>\n path.join(base, \"index\" + candidate),\n ),\n ];\n}\n\n/** Record exact local probes before the runtime resolver chooses one. */\nfunction recordLocalResolutionCandidates(\n specifier: string,\n parentUrl: string,\n): void {\n if (!isLocalModuleSpecifier(specifier)) return;\n let bases: string[];\n try {\n if (specifier.startsWith(\"file:\")) {\n bases = [fileURLToPath(specifier)];\n } else {\n const directory = path.dirname(fileURLToPath(parentUrl));\n const raw = path.resolve(directory, specifier);\n const suffixStart = specifier.search(/[?#]/);\n const pathname =\n suffixStart === -1 ? specifier : specifier.slice(0, suffixStart);\n bases = pathname === \"\"\n ? [raw]\n : [...new Set([raw, path.resolve(directory, pathname)])];\n }\n } catch {\n return;\n }\n const owners = [parentUrl];\n for (const base of bases) {\n try {\n if (fs.statSync(base).isFile()) {\n recordOptionalFileDependency(base, owners);\n continue;\n }\n } catch {\n // A missing exact spelling falls through to source/extension/directory\n // probes, all of which can redirect a later evaluation.\n }\n for (const candidate of moduleResolutionCandidates(base)) {\n recordOptionalFileDependency(candidate, owners);\n }\n }\n}\n\n/** CommonJS LOAD_AS_FILE / LOAD_AS_DIRECTORY candidates for one legacy path. */\nfunction recordLegacyPackagePathCandidates(\n candidate: string,\n owners: readonly string[],\n): void {\n for (const file of [\n candidate,\n candidate + \".js\",\n candidate + \".json\",\n candidate + \".node\",\n path.join(candidate, \"package.json\"),\n path.join(candidate, \"index.js\"),\n path.join(candidate, \"index.json\"),\n path.join(candidate, \"index.node\"),\n ]) {\n recordOptionalFileDependency(file, owners);\n }\n}\n\nfunction recordPackageManifests(\n location: string,\n owners: readonly string[],\n): void {\n let current = path.dirname(location);\n while (true) {\n const manifest = path.join(current, \"package.json\");\n if (recordOptionalFileDependency(manifest, owners)) return;\n const parent = path.dirname(current);\n if (parent === current || path.basename(current) === \"node_modules\") return;\n current = parent;\n }\n}\n\nfunction recordNodeModulesSearchDirectories(\n parentLocation: string,\n specifier: string,\n childLocation: string,\n owners: readonly string[],\n conditions: readonly string[],\n): void {\n const packageName = modulePackageName(specifier);\n const scope =\n specifier.startsWith(\"@\") && specifier.includes(\"/\")\n ? specifier.slice(0, specifier.indexOf(\"/\"))\n : undefined;\n let current = path.dirname(parentLocation);\n while (true) {\n // A newly created nearer node_modules directory can shadow the package\n // selected by this evaluation, so missing search levels are dependencies.\n recordDirectoryDependency(current, owners);\n const modules = path.join(current, \"node_modules\");\n try {\n if (fs.statSync(modules).isDirectory()) {\n recordDirectoryDependency(modules, owners);\n if (scope !== undefined) {\n const scoped = path.join(modules, scope);\n try {\n if (fs.statSync(scoped).isDirectory()) {\n recordDirectoryDependency(scoped, owners);\n }\n } catch {\n // The directory digest of node_modules records a missing scope.\n }\n }\n }\n } catch {\n // Missing search levels do not participate in the current resolution.\n }\n if (packageName !== undefined) {\n const selected = recordPackageCandidateTopology(\n modules,\n packageName,\n specifier,\n childLocation,\n owners,\n conditions,\n );\n if (\n selected ||\n resolvedPackageContains(modules, packageName, childLocation)\n ) {\n return;\n }\n }\n if (\n packageName === undefined &&\n samePhysicalPath(current, resolutionRoot)\n ) {\n return;\n }\n const parent = path.dirname(current);\n if (parent === current) return;\n current = parent;\n }\n}\n\nfunction recordPackageCandidateTopology(\n modules: string,\n packageName: string,\n specifier: string,\n childLocation: string,\n owners: readonly string[],\n conditions: readonly string[],\n): boolean {\n const packageRoot = path.join(modules, packageName);\n const subpath = specifier\n .slice(packageName.length)\n .replace(/^[/\\\\]+/, \"\");\n try {\n if (!fs.statSync(packageRoot).isDirectory()) {\n recordOptionalFileDependency(\n path.join(packageRoot, \"package.json\"),\n owners,\n );\n recordLegacyPackagePathCandidates(\n subpath === \"\" ? packageRoot : path.join(packageRoot, subpath),\n owners,\n );\n return false;\n }\n } catch {\n recordOptionalFileDependency(\n path.join(packageRoot, \"package.json\"),\n owners,\n );\n recordLegacyPackagePathCandidates(\n subpath === \"\" ? packageRoot : path.join(packageRoot, subpath),\n owners,\n );\n return false;\n }\n const rootTopology = recordPackageRootTopology(\n packageRoot,\n owners,\n subpath === \"\",\n subpath === \"\" ? \".\" : \"./\" + subpath.replaceAll(\"\\\\\", \"/\"),\n childLocation,\n conditions,\n );\n if (subpath !== \"\" && !rootTopology.hasExports) {\n return (\n recordPackageSubpathTopology(\n packageRoot,\n subpath,\n childLocation,\n owners,\n ) || rootTopology.selected\n );\n }\n return rootTopology.selected;\n}\n\nfunction recordPackageRootTopology(\n packageRoot: string,\n owners: readonly string[],\n useMain: boolean,\n packageSubpath: string,\n childLocation: string,\n conditions: readonly string[],\n): { hasExports: boolean; selected: boolean } {\n const normalizedRoot = path.resolve(packageRoot);\n const manifest = path.join(normalizedRoot, \"package.json\");\n const legacySelected = (): boolean =>\n useMain &&\n packagePathCandidateMatchesChild(normalizedRoot, childLocation, true);\n if (useMain) recordLegacyPackagePathCandidates(normalizedRoot, owners);\n if (!recordOptionalFileDependency(manifest, owners)) {\n const selected = legacySelected();\n if (!selected) {\n recordPackageIndexCandidates(normalizedRoot, useMain, owners);\n }\n return { hasExports: false, selected };\n }\n try {\n const value = JSON.parse(fs.readFileSync(manifest, \"utf8\"));\n if (value !== null && typeof value === \"object\") {\n const metadata = value as Record<string, unknown>;\n const hasExports =\n metadata.exports !== undefined && metadata.exports !== null;\n if (hasExports) {\n const target = selectPackageExportsTarget(\n metadata.exports,\n packageSubpath,\n new Set(conditions),\n );\n const candidate =\n typeof target === \"string\"\n ? packageExportsTarget(normalizedRoot, target)\n : undefined;\n const selected =\n candidate !== undefined &&\n packagePathCandidateMatchesChild(\n candidate,\n childLocation,\n false,\n );\n if (selected) {\n recordPackagePathCandidate(candidate, owners);\n } else if (candidate !== undefined) {\n // A nearer package the search skipped starts winning the moment its\n // own active target appears, and neither the parent node_modules\n // listing nor the manifest changes when only that file is created.\n recordOptionalFileDependency(candidate, owners);\n }\n return { hasExports: true, selected };\n }\n let selected = legacySelected();\n if (useMain && typeof metadata.main === \"string\") {\n // CommonJS main is a legacy path, not an exports target. Node resolves\n // it literally and permits absolute paths and paths outside the package.\n const main = path.resolve(normalizedRoot, metadata.main);\n recordPackagePathCandidate(main, owners);\n recordLegacyPackagePathCandidates(main, owners);\n selected =\n packagePathCandidateMatchesChild(main, childLocation, true) ||\n selected;\n }\n if (!selected) {\n recordPackageIndexCandidates(normalizedRoot, useMain, owners);\n }\n return {\n hasExports: false,\n selected,\n };\n }\n } catch {\n // Node owns malformed-manifest diagnostics; the manifest digest is enough\n // to invalidate this evaluation when its contents change.\n }\n const selected = legacySelected();\n if (!selected) {\n recordPackageIndexCandidates(normalizedRoot, useMain, owners);\n }\n return { hasExports: false, selected };\n}\n\n// recordPackageIndexCandidates pins the LOAD_INDEX fallbacks of a package root\n// this resolution walked past without selecting. An empty package directory, or\n// one whose manifest declares no usable entry, becomes resolvable as soon as one\n// of these files exists, and that creation changes neither the parent directory\n// listing nor the manifest digest already recorded for the candidate.\nfunction recordPackageIndexCandidates(\n packageRoot: string,\n useMain: boolean,\n owners: readonly string[],\n): void {\n if (!useMain) return;\n for (const name of [\"index.js\", \"index.json\", \"index.node\"]) {\n recordOptionalFileDependency(path.join(packageRoot, name), owners);\n }\n}\n\nfunction selectPackageExportsTarget(\n exportsValue: unknown,\n packageSubpath: string,\n conditions: ReadonlySet<string>,\n): string | null | undefined {\n let mappings: unknown = exportsValue;\n if (\n typeof mappings === \"string\" ||\n Array.isArray(mappings) ||\n (isObject(mappings) &&\n Object.keys(mappings).every((key) => !key.startsWith(\".\")))\n ) {\n if (packageSubpath !== \".\") return undefined;\n return selectPackageTarget(mappings, \"\", false, conditions);\n }\n if (!isObject(mappings)) return undefined;\n if (\n Object.prototype.hasOwnProperty.call(mappings, packageSubpath) &&\n !packageSubpath.includes(\"*\") &&\n !packageSubpath.endsWith(\"/\")\n ) {\n return selectPackageTarget(\n mappings[packageSubpath],\n \"\",\n false,\n conditions,\n );\n }\n let bestMatch = \"\";\n let bestSubpath = \"\";\n for (const key of Object.keys(mappings)) {\n const wildcard = key.indexOf(\"*\");\n if (\n wildcard === -1 ||\n key.lastIndexOf(\"*\") !== wildcard ||\n !packageSubpath.startsWith(key.slice(0, wildcard))\n ) {\n continue;\n }\n const trailer = key.slice(wildcard + 1);\n if (\n packageSubpath.length < key.length ||\n !packageSubpath.endsWith(trailer) ||\n packagePatternKeyCompare(bestMatch, key) !== 1\n ) {\n continue;\n }\n bestMatch = key;\n bestSubpath = packageSubpath.slice(\n wildcard,\n packageSubpath.length - trailer.length,\n );\n }\n return bestMatch === \"\"\n ? undefined\n : selectPackageTarget(\n mappings[bestMatch],\n bestSubpath,\n true,\n conditions,\n );\n}\n\nfunction selectPackageTarget(\n target: unknown,\n subpath: string,\n pattern: boolean,\n conditions: ReadonlySet<string>,\n): string | null | undefined {\n if (typeof target === \"string\") {\n const selected = pattern ? target.replaceAll(\"*\", subpath) : target;\n return validPackageExportsTarget(selected) ? selected : undefined;\n }\n if (Array.isArray(target)) {\n for (const item of target) {\n const selected = selectPackageTarget(\n item,\n subpath,\n pattern,\n conditions,\n );\n if (selected !== undefined && selected !== null) return selected;\n }\n return null;\n }\n if (isObject(target)) {\n for (const [condition, value] of Object.entries(target)) {\n if (condition !== \"default\" && !conditions.has(condition)) continue;\n const selected = selectPackageTarget(\n value,\n subpath,\n pattern,\n conditions,\n );\n if (selected !== undefined) return selected;\n }\n return undefined;\n }\n return target === null ? null : undefined;\n}\n\nfunction packagePatternKeyCompare(left: string, right: string): number {\n const leftWildcard = left.indexOf(\"*\");\n const rightWildcard = right.indexOf(\"*\");\n const leftBase =\n leftWildcard === -1 ? left.length : leftWildcard + 1;\n const rightBase =\n rightWildcard === -1 ? right.length : rightWildcard + 1;\n if (leftBase > rightBase) return -1;\n if (rightBase > leftBase) return 1;\n if (leftWildcard === -1) return 1;\n if (rightWildcard === -1) return -1;\n if (left.length > right.length) return -1;\n if (right.length > left.length) return 1;\n return 0;\n}\n\nfunction packageExportsTarget(\n packageRoot: string,\n target: string,\n): string | undefined {\n if (!validPackageExportsTarget(target)) return undefined;\n try {\n // Node resolves an exports target as a URL against the package manifest,\n // so percent escapes, query strings, and fragments all take part in the\n // path it finally loads. Joining the raw target by hand diverges from that\n // whenever the target is anything but a plain relative path, and a target\n // Node resolves while this model rejects loses the selected file's\n // fingerprint, leaving a retargeted symlink cached as fresh.\n const packageUrl = pathToFileURL(path.join(packageRoot, \"package.json\"));\n const resolved = new URL(target, packageUrl);\n const packagePath = new URL(\".\", packageUrl).pathname;\n if (!resolved.pathname.startsWith(packagePath)) return undefined;\n return fileURLToPath(resolved);\n } catch {\n return undefined;\n }\n}\n\nfunction validPackageExportsTarget(target: string): boolean {\n if (!target.startsWith(\"./\") || /%2f|%5c/i.test(target)) return false;\n const components = target\n .slice(2)\n .replaceAll(\"\\\\\", \"/\")\n .split(\"/\");\n if (\n components.some(\n (component) => {\n try {\n const decoded = decodeURIComponent(component);\n return (\n decoded === \".\" ||\n decoded === \"..\" ||\n decoded.includes(\"/\") ||\n decoded.includes(\"\\\\\") ||\n decoded.toLowerCase() === \"node_modules\"\n );\n } catch {\n return true;\n }\n },\n )\n ) {\n return false;\n }\n return true;\n}\n\nfunction packagePathCandidateMatchesChild(\n candidate: string,\n childLocation: string,\n legacy: boolean,\n): boolean {\n let child: string;\n try {\n child = fs.realpathSync.native(childLocation);\n } catch {\n child = path.resolve(childLocation);\n }\n const candidates = legacy\n ? [\n candidate,\n candidate + \".js\",\n candidate + \".json\",\n candidate + \".node\",\n path.join(candidate, \"index.js\"),\n path.join(candidate, \"index.json\"),\n path.join(candidate, \"index.node\"),\n ]\n : [candidate];\n return candidates.some((location) => {\n try {\n return sameResolutionPath(fs.realpathSync.native(location), child);\n } catch {\n return false;\n }\n });\n}\n\nfunction recordPackageSubpathTopology(\n packageRoot: string,\n subpath: string,\n childLocation: string,\n owners: readonly string[],\n): boolean {\n const candidate = boundedPackageTarget(packageRoot, subpath);\n if (candidate === undefined) return false;\n recordPackagePathCandidate(candidate, owners);\n recordLegacyPackagePathCandidates(candidate, owners);\n let selected = packagePathCandidateMatchesChild(\n candidate,\n childLocation,\n true,\n );\n try {\n if (!fs.statSync(candidate).isDirectory()) return selected;\n } catch {\n return selected;\n }\n const manifest = path.join(candidate, \"package.json\");\n if (!recordOptionalFileDependency(manifest, owners)) return selected;\n try {\n const value = JSON.parse(fs.readFileSync(manifest, \"utf8\"));\n if (value !== null && typeof value === \"object\") {\n const metadata = value as Record<string, unknown>;\n if (typeof metadata.main === \"string\") {\n const main = path.resolve(candidate, metadata.main);\n recordPackagePathCandidate(main, owners);\n recordLegacyPackagePathCandidates(main, owners);\n selected =\n packagePathCandidateMatchesChild(main, childLocation, true) ||\n selected;\n }\n }\n } catch {\n // Node owns malformed nested-package diagnostics.\n }\n return selected;\n}\n\nfunction boundedPackageTarget(\n packageRoot: string,\n target: string,\n): string | undefined {\n const candidate = path.resolve(packageRoot, target);\n const relative = path.relative(packageRoot, candidate);\n if (\n relative === \"..\" ||\n relative.startsWith(\"..\" + path.sep) ||\n path.isAbsolute(relative)\n ) {\n return undefined;\n }\n return candidate;\n}\n\nfunction recordPackagePathCandidate(\n candidate: string,\n owners: readonly string[],\n visited: Set<string> = new Set(),\n depth = 0,\n): void {\n const normalized = path.resolve(candidate);\n // The depth bound owns termination. A platform-wide case fold would merge\n // paths that differ only by case, which a per-directory case-sensitive\n // Windows tree keeps distinct, and would truncate a valid symlink chain.\n if (depth >= 64 || visited.has(normalized)) return;\n visited.add(normalized);\n const parsed = path.parse(normalized);\n const components = normalized\n .slice(parsed.root.length)\n .split(path.sep)\n .filter(Boolean);\n let current = parsed.root;\n for (let index = 0; index < components.length; index++) {\n const component = components[index];\n const next = path.join(current, component);\n let entry: ReturnType<typeof fs.lstatSync>;\n try {\n entry = fs.lstatSync(next);\n } catch {\n recordDirectoryDependency(current, owners);\n return;\n }\n if (entry.isSymbolicLink()) {\n // The containing directory digest carries the raw link target.\n recordDirectoryDependency(current, owners);\n try {\n const target = fs.readlinkSync(next);\n const remainder = components.slice(index + 1);\n recordPackagePathCandidate(\n path.join(\n path.resolve(current, target),\n ...remainder,\n ),\n owners,\n visited,\n depth + 1,\n );\n } catch {\n // The lexical link record already carries the unreadable state.\n }\n }\n let isDirectory = entry.isDirectory();\n if (entry.isSymbolicLink()) {\n try {\n isDirectory = fs.statSync(next).isDirectory();\n } catch {\n return;\n }\n }\n if (index === components.length - 1) {\n recordDirectoryDependency(isDirectory ? next : current, owners);\n return;\n }\n if (!isDirectory) {\n recordDirectoryDependency(current, owners);\n return;\n }\n current = next;\n }\n recordDirectoryDependency(current, owners);\n}\n\nfunction modulePackageName(specifier: string): string | undefined {\n if (specifier.startsWith(\"@\")) {\n const components = specifier.split(\"/\");\n return components.length >= 2\n ? components[0] + \"/\" + components[1]\n : undefined;\n }\n const [name] = specifier.split(\"/\");\n return name && !name.startsWith(\"#\") ? name : undefined;\n}\n\nfunction resolvedPackageContains(\n modules: string,\n packageName: string,\n childLocation: string,\n): boolean {\n try {\n const packageRoot = fs.realpathSync(path.join(modules, packageName));\n const child = fs.realpathSync(childLocation);\n const relative = path.relative(packageRoot, child);\n if (relative === \"..\" || relative.startsWith(\"..\" + path.sep) || path.isAbsolute(relative)) {\n return false;\n }\n let ancestor = child;\n const depth = relative === \"\" ? 0 : relative.split(path.sep).length;\n for (let i = 0; i < depth; i++) ancestor = path.dirname(ancestor);\n return sameResolutionPath(packageRoot, ancestor);\n } catch {\n return false;\n }\n}\n\nfunction sameResolutionPath(left: string, right: string): boolean {\n const leftPath = path.resolve(left);\n const rightPath = path.resolve(right);\n if (leftPath === rightPath) return true;\n if (path.relative(leftPath, rightPath) !== \"\") return false;\n // A native lexical case fold does not establish filesystem identity.\n // Verify case aliases without merging differently located hard links.\n try {\n const leftInfo = fs.statSync(leftPath, { bigint: true });\n const rightInfo = fs.statSync(rightPath, { bigint: true });\n return leftInfo.ino !== 0n && leftInfo.dev === rightInfo.dev && leftInfo.ino === rightInfo.ino;\n } catch {\n return false;\n }\n}\n\nfunction samePhysicalPath(left: string, right: string): boolean {\n try {\n return sameResolutionPath(realPath(left), realPath(right));\n } catch {\n // Exact lexical spelling is still usable when a file disappears. A case\n // alias remains unproven until the filesystem identifies both paths.\n return sameResolutionPath(left, right);\n }\n}\n\n/**\n * The config's real path, or its declared one when the volume will not say.\n *\n * A config can disappear between the host reading it and this loader starting,\n * and a throw here would replace a precise report from the import below with a\n * crash in bookkeeping. Seeding lexically instead only risks the demotion this\n * value exists to prevent, on a file that is already gone.\n */\nfunction realConfigLocation(): string {\n try {\n return realPath(configLocation);\n } catch {\n return configLocation;\n }\n}\n\nfunction realPath(location: string): string {\n return fs.realpathSync.native\n ? fs.realpathSync.native(location)\n : fs.realpathSync(location);\n}\n\nfunction finalizeDependencies(): Array<{\n digest: string;\n identityStable: boolean;\n kind: \"directory\" | \"file\" | \"optional-file\";\n path: string;\n realpath: string | null;\n scope: \"cache\" | \"watch\";\n}> {\n // The evaluator may have observed a dependency, run arbitrary config code,\n // and then serialize after that path changed again. Re-read every recorded\n // dependency under its original ownership set. Differences between recorded\n // observations invalidate reuse; identical digest and realpath observations\n // do not establish that no transient replacement occurred between them.\n for (const dependency of [...dependencies.values()]) {\n recordDependency(\n dependency.kind,\n dependency.path,\n currentDependencyDigest(dependency.kind, dependency.path),\n [...dependency.owners],\n );\n }\n const watched = graphWatchReachability();\n return [...dependencies.values()].map(({ owners, ...dependency }) => ({\n ...dependency,\n scope: [...owners].some((owner) => watched.has(owner))\n ? \"watch\"\n : \"cache\",\n }));\n}\n\nfunction currentDependencyDigest(\n kind: \"directory\" | \"file\" | \"optional-file\",\n location: string,\n): string {\n try {\n if (kind === \"directory\") return directoryDigest(location);\n if (kind === \"optional-file\") return optionalFileDigest(location);\n return createHash(\"sha256\")\n .update(fs.readFileSync(location))\n .digest(\"hex\");\n } catch {\n return \"\";\n }\n}\n\nfunction graphWatchReachability(): Set<string> {\n const adjacency = new Map<string, typeof graphEdges>();\n for (const edge of graphEdges) {\n const outgoing = adjacency.get(edge.parent) ?? [];\n outgoing.push(edge);\n adjacency.set(edge.parent, outgoing);\n }\n const queue: Array<{ url: string; watched: boolean }> =\n configUrlSpellings.map((url) => ({ url, watched: true }));\n const visited = new Set<string>();\n const watched = new Set<string>();\n for (let head = 0; head < queue.length; head++) {\n const state = queue[head]!;\n const key = state.url + \"\\0\" + (state.watched ? \"1\" : \"0\");\n if (visited.has(key)) continue;\n visited.add(key);\n if (state.watched) watched.add(state.url);\n for (const edge of adjacency.get(state.url) ?? []) {\n const childLocation = graphNodes.get(edge.child);\n const childWatched = edge.packageBoundary\n ? false\n : childLocation !== undefined && !pathHasNodeModules(childLocation)\n ? true\n : state.watched;\n queue.push({ url: edge.child, watched: childWatched });\n }\n }\n return watched;\n}\n\nfunction hasOwn(value: Record<string, unknown>, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(value, key);\n}\n\nasync function resolveConfig(value: unknown, allowNamedConfig: boolean): Promise<unknown> {\n let current = value;\n for (let i = 0; i < 8; i++) {\n if (typeof current === \"function\") {\n current = await (current as () => unknown | Promise<unknown>)();\n allowNamedConfig = false;\n continue;\n }\n if (isObject(current) && !Array.isArray(current)) {\n if (hasOwn(current, \"default\")) {\n const defaultValue = current.default;\n if (isModuleNamespace(current) || !hasConfigKey(current)) {\n current = defaultValue;\n allowNamedConfig = false;\n continue;\n }\n const normalizedDefault = await resolveConfig(defaultValue, false);\n if (isObject(normalizedDefault) && !Array.isArray(normalizedDefault)) {\n current = mergeConfigObjects(normalizedDefault, current);\n allowNamedConfig = false;\n continue;\n }\n }\n if (allowNamedConfig && hasOwn(current, \"config\")) {\n current = current.config;\n allowNamedConfig = false;\n continue;\n }\n }\n break;\n }\n return current;\n}\n\nfunction isModuleNamespace(value: Record<string, unknown>): boolean {\n return Object.prototype.toString.call(value) === \"[object Module]\";\n}\n\nfunction hasConfigKey(value: Record<string, unknown>): boolean {\n for (const key of CONFIG_KEYS) {\n if (hasOwn(value, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction mergeConfigObjects(\n base: Record<string, unknown>,\n override: Record<string, unknown>,\n): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const key of CONFIG_KEYS) {\n if (hasOwn(base, key)) {\n out[key] = base[key];\n }\n }\n for (const key of CONFIG_KEYS) {\n if (hasOwn(override, key)) {\n out[key] = override[key];\n }\n }\n return out;\n}\n\n// Follow the same containing-file-relative, base-first extends chain as the\n// native config reader. Each explicit base is a watch input even when it lives\n// in node_modules; imports made by that base retain ordinary package boundaries.\nasync function collectPluginEntries(\n value: unknown,\n location: string,\n chain: readonly string[],\n): Promise<Array<{ namespace: string; source: string } | { configFile: string; chain: readonly string[] }>> {\n const out: Array<{ namespace: string; source: string } | { configFile: string; chain: readonly string[] }> = [];\n if (Array.isArray(value)) {\n for (const item of value) out.push(...await collectPluginEntries(item, location, chain));\n return out;\n }\n if (!isObject(value)) return out;\n if (value.extends !== undefined && value.extends !== null) {\n if (typeof value.extends !== \"string\" || value.extends.trim() === \"\") {\n throw new Error(\"extends must be a non-empty string path to another config file\");\n }\n const next = path.resolve(path.dirname(location), value.extends);\n if (chain.includes(next)) {\n throw new Error(\"extends cycle detected: \" + [...chain, next].join(\" -> \"));\n }\n if (chain.length >= 32) {\n throw new Error(\"extends chain exceeds the depth limit of 32: \" + chain.join(\" -> \"));\n }\n const nextUrl = pathToFileURL(next).href;\n const parentUrl = pathToFileURL(location).href;\n configEntryUrls.add(nextUrl);\n graphNodes.set(nextUrl, next);\n graphEdges.push({ child: nextUrl, packageBoundary: false, parent: parentUrl });\n recordDependency(\"file\", next, createHash(\"sha256\").update(fs.readFileSync(next)).digest(\"hex\"), [nextUrl]);\n recordPackageManifests(next, [nextUrl]);\n // The owning parent evaluates typed bases under their own synthetic project.\n // A dynamic import here would give a typed base the consumer's tsconfig\n // when it falls outside this evaluator's entry manifest.\n if ([\".ts\", \".cts\", \".mts\"].includes(path.extname(next).toLowerCase())) {\n out.push({ configFile: next, chain: [...chain, next] });\n } else {\n const imported = next.toLowerCase().endsWith(\".json\")\n ? JSON.parse(fs.readFileSync(next, \"utf8\").replace(/^\uFEFF/, \"\"))\n : await import(nextUrl);\n const base = await resolveConfig(imported, true);\n out.push(...await collectPluginEntries(base, next, [...chain, next]));\n }\n }\n if (hasOwn(value, \"plugins\") && isObject(value.plugins)) {\n for (const [namespace, plugin] of Object.entries(value.plugins)) {\n const source = extractPluginSource(plugin, location);\n if (source === undefined || source.length === 0) {\n throw new Error(\"contributor \" + JSON.stringify(namespace) + \" must resolve to an object with a non-empty source string\");\n }\n out.push({ namespace, source });\n }\n }\n return out;\n}\n\nfunction extractPluginSource(value: unknown, location: string): string | undefined {\n if (typeof value === \"string\") {\n value = createRequire(pathToFileURL(location))(value);\n }\n if (!isObject(value)) return undefined;\n // ESM-from-CJS interop wraps CJS modules' `exports.default` so the\n // plugin object can land under a `.default` indirection. Walk a few\n // hops so contributors authored as `export default plugin` and\n // contributors authored as plain `module.exports = plugin` both\n // resolve identically.\n let current: Record<string, unknown> = value;\n // Bound default-wrapper traversal so a cyclic descriptor cannot loop.\n for (let i = 0; i < 8; i++) {\n if (typeof current.source === \"string\") break;\n const next = current.default;\n if (!isObject(next)) break;\n current = next;\n }\n const source = current.source;\n return typeof source === \"string\" ? source : undefined;\n}\n";
|
|
84
|
+
/**
|
|
85
|
+
* Creates the typed config evaluator below a stable same-volume cache directory
|
|
86
|
+
* when a descriptor load has already opened one. The identity directory exists
|
|
87
|
+
* before descriptor imports are observed, so creating and removing an evaluator
|
|
88
|
+
* below it leaves the project directory's missing-path witness unchanged. A
|
|
89
|
+
* moved, aliased, unwritable, or differently mounted identity directory uses
|
|
90
|
+
* the established loader placement instead. TypeScript-Go needs the generated
|
|
91
|
+
* loader and the lexical config path on one volume (#305), so a TEMP junction
|
|
92
|
+
* cannot override the volume of the canonical loader path. Without a suitable
|
|
93
|
+
* cache, an existing user temp directory outside the config tree is preferred
|
|
94
|
+
* to writing beside the config. A TEMP path in or above the declared project or
|
|
95
|
+
* config directory yields to an existing identity store so observed ancestor
|
|
96
|
+
* metadata remains stable. An independent config evaluation without descriptor
|
|
97
|
+
* input capture may retain a strict external ancestor as its historical system
|
|
98
|
+
* temp. No safe same-volume directory is an error.
|
|
99
|
+
*
|
|
100
|
+
* @evidence contracts/common.md#principled-implementation Native realpath and the returned canonical child must share the config's lexical volume; a rejected empty child is removed by its physical path. A system temp overlapping a physical project or config ancestor yields to an authoritative identity store, and descriptor-load children retain conservative ancestor handling. Descriptor identities need physical child and config-ancestor checks, and alternate user temp candidates must already exist outside the config tree.
|
|
101
|
+
* @evidence contracts/common.md#clear-and-simple-design This function owns placement, while the existing canonical creator and nearest-cache selector retain their respective creation and discovery responsibilities.
|
|
102
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Selection uses the descriptor's actual cache root and native filesystem identity, and every accepted fallback satisfies the compiler's lexical-volume requirement without returning a mutable junction spelling.
|
|
103
|
+
* @evidence contracts/common.md#meaningful-documentation The comment explains the preexisting cache preference, TEMP junction and ancestor handling, and explicit failure when no usable same-volume directory exists.
|
|
104
|
+
*/
|
|
105
|
+
export declare function createConfigLoaderTempDirectory(configPath: string, systemTemp?: string, recordRoot?: string | undefined, projectRoot?: string): string;
|
|
84
106
|
export {};
|
package/lib/createTtscPlugin.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.TTSX_EXTRACTOR_SCRIPT = void 0;
|
|
7
7
|
exports.default = createTtscPlugin;
|
|
8
|
+
exports.createConfigLoaderTempDirectory = createConfigLoaderTempDirectory;
|
|
8
9
|
const node_buffer_1 = require("node:buffer");
|
|
9
10
|
const node_child_process_1 = require("node:child_process");
|
|
10
11
|
const node_crypto_1 = require("node:crypto");
|
|
@@ -1867,7 +1868,7 @@ function evaluateTtsxConfigPlugins(configPath, context, chain = [configPath], ev
|
|
|
1867
1868
|
const existing = evaluated.get(configPath);
|
|
1868
1869
|
if (existing !== undefined)
|
|
1869
1870
|
return existing;
|
|
1870
|
-
const tempDir =
|
|
1871
|
+
const tempDir = createConfigLoaderTempDirectory(configPath, node_os_1.default.tmpdir(), process.env.TTSC_PLUGIN_RECORD_ROOT, context.projectRoot);
|
|
1871
1872
|
try {
|
|
1872
1873
|
linkNearestNodeModules(tempDir, node_path_1.default.dirname(configPath));
|
|
1873
1874
|
const loaderPath = node_path_1.default.join(tempDir, "loader.mts");
|
|
@@ -2456,27 +2457,186 @@ function linkNearestNodeModules(tempDir, sourceDir) {
|
|
|
2456
2457
|
}
|
|
2457
2458
|
}
|
|
2458
2459
|
/**
|
|
2459
|
-
*
|
|
2460
|
-
*
|
|
2461
|
-
*
|
|
2462
|
-
*
|
|
2463
|
-
*
|
|
2464
|
-
* the
|
|
2465
|
-
*
|
|
2466
|
-
*
|
|
2467
|
-
*
|
|
2468
|
-
*
|
|
2460
|
+
* Creates the typed config evaluator below a stable same-volume cache directory
|
|
2461
|
+
* when a descriptor load has already opened one. The identity directory exists
|
|
2462
|
+
* before descriptor imports are observed, so creating and removing an evaluator
|
|
2463
|
+
* below it leaves the project directory's missing-path witness unchanged. A
|
|
2464
|
+
* moved, aliased, unwritable, or differently mounted identity directory uses
|
|
2465
|
+
* the established loader placement instead. TypeScript-Go needs the generated
|
|
2466
|
+
* loader and the lexical config path on one volume (#305), so a TEMP junction
|
|
2467
|
+
* cannot override the volume of the canonical loader path. Without a suitable
|
|
2468
|
+
* cache, an existing user temp directory outside the config tree is preferred
|
|
2469
|
+
* to writing beside the config. A TEMP path in or above the declared project or
|
|
2470
|
+
* config directory yields to an existing identity store so observed ancestor
|
|
2471
|
+
* metadata remains stable. An independent config evaluation without descriptor
|
|
2472
|
+
* input capture may retain a strict external ancestor as its historical system
|
|
2473
|
+
* temp. No safe same-volume directory is an error.
|
|
2474
|
+
*
|
|
2475
|
+
* @evidence contracts/common.md#principled-implementation Native realpath and the returned canonical child must share the config's lexical volume; a rejected empty child is removed by its physical path. A system temp overlapping a physical project or config ancestor yields to an authoritative identity store, and descriptor-load children retain conservative ancestor handling. Descriptor identities need physical child and config-ancestor checks, and alternate user temp candidates must already exist outside the config tree.
|
|
2476
|
+
* @evidence contracts/common.md#clear-and-simple-design This function owns placement, while the existing canonical creator and nearest-cache selector retain their respective creation and discovery responsibilities.
|
|
2477
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Selection uses the descriptor's actual cache root and native filesystem identity, and every accepted fallback satisfies the compiler's lexical-volume requirement without returning a mutable junction spelling.
|
|
2478
|
+
* @evidence contracts/common.md#meaningful-documentation The comment explains the preexisting cache preference, TEMP junction and ancestor handling, and explicit failure when no usable same-volume directory exists.
|
|
2479
|
+
*/
|
|
2480
|
+
function createConfigLoaderTempDirectory(configPath, systemTemp = node_os_1.default.tmpdir(), recordRoot = process.env.TTSC_PLUGIN_RECORD_ROOT, projectRoot) {
|
|
2481
|
+
const prefix = "ttsc-lint-cfg-";
|
|
2482
|
+
const configVolume = node_path_1.default.parse(configPath).root;
|
|
2483
|
+
if (configVolume === "")
|
|
2484
|
+
return createCanonicalTempDirectory(prefix, systemTemp);
|
|
2485
|
+
const configDir = node_path_1.default.dirname(configPath);
|
|
2486
|
+
const physicalConfigDir = node_fs_1.default.realpathSync.native(configDir);
|
|
2487
|
+
let physicalProjectRoot = physicalConfigDir;
|
|
2488
|
+
if (projectRoot?.trim()) {
|
|
2489
|
+
try {
|
|
2490
|
+
physicalProjectRoot = node_fs_1.default.realpathSync.native(node_path_1.default.resolve(projectRoot));
|
|
2491
|
+
}
|
|
2492
|
+
catch {
|
|
2493
|
+
physicalProjectRoot = undefined;
|
|
2494
|
+
}
|
|
2495
|
+
}
|
|
2496
|
+
const contains = (ancestor, other) => {
|
|
2497
|
+
const relative = node_path_1.default.relative(ancestor, other);
|
|
2498
|
+
return (relative === "" ||
|
|
2499
|
+
(relative !== ".." &&
|
|
2500
|
+
!relative.startsWith(`..${node_path_1.default.sep}`) &&
|
|
2501
|
+
!node_path_1.default.isAbsolute(relative)));
|
|
2502
|
+
};
|
|
2503
|
+
const unavailable = (error) => ["EACCES", "EPERM", "ENOENT", "ENOTDIR", "EROFS"].includes(error.code ?? "");
|
|
2504
|
+
let physicalSystemTemp;
|
|
2505
|
+
try {
|
|
2506
|
+
physicalSystemTemp = node_fs_1.default.realpathSync.native(systemTemp);
|
|
2507
|
+
}
|
|
2508
|
+
catch {
|
|
2509
|
+
// An unavailable system temp can be replaced by an existing safe owner.
|
|
2510
|
+
}
|
|
2511
|
+
const createOnConfigVolume = (parent) => {
|
|
2512
|
+
let directory;
|
|
2513
|
+
try {
|
|
2514
|
+
directory = createCanonicalTempDirectory(prefix, parent);
|
|
2515
|
+
}
|
|
2516
|
+
catch (error) {
|
|
2517
|
+
if (unavailable(error))
|
|
2518
|
+
return undefined;
|
|
2519
|
+
throw error;
|
|
2520
|
+
}
|
|
2521
|
+
if (node_path_1.default.parse(directory).root.toLowerCase() === configVolume.toLowerCase()) {
|
|
2522
|
+
return directory;
|
|
2523
|
+
}
|
|
2524
|
+
node_fs_1.default.rmdirSync(directory);
|
|
2525
|
+
return undefined;
|
|
2526
|
+
};
|
|
2527
|
+
const systemTempOnConfigVolume = physicalSystemTemp !== undefined &&
|
|
2528
|
+
node_path_1.default.parse(physicalSystemTemp).root.toLowerCase() ===
|
|
2529
|
+
configVolume.toLowerCase();
|
|
2530
|
+
const systemTempInsideProjectOrConfig = physicalSystemTemp !== undefined &&
|
|
2531
|
+
(physicalProjectRoot === undefined ||
|
|
2532
|
+
contains(physicalProjectRoot, physicalSystemTemp) ||
|
|
2533
|
+
contains(physicalConfigDir, physicalSystemTemp));
|
|
2534
|
+
const systemTempExternalAncestor = physicalSystemTemp !== undefined &&
|
|
2535
|
+
!systemTempInsideProjectOrConfig &&
|
|
2536
|
+
((physicalProjectRoot !== undefined &&
|
|
2537
|
+
contains(physicalSystemTemp, physicalProjectRoot)) ||
|
|
2538
|
+
contains(physicalSystemTemp, physicalConfigDir));
|
|
2539
|
+
const independentEvaluation = process.env.TTSC_PLUGIN_DESCRIPTOR_LOAD !== "1";
|
|
2540
|
+
if (systemTempOnConfigVolume &&
|
|
2541
|
+
!systemTempInsideProjectOrConfig &&
|
|
2542
|
+
!systemTempExternalAncestor) {
|
|
2543
|
+
const directory = createOnConfigVolume(systemTemp);
|
|
2544
|
+
if (directory !== undefined)
|
|
2545
|
+
return directory;
|
|
2546
|
+
}
|
|
2547
|
+
let preferred;
|
|
2548
|
+
if (recordRoot && node_path_1.default.isAbsolute(recordRoot)) {
|
|
2549
|
+
try {
|
|
2550
|
+
const physicalRoot = node_fs_1.default.realpathSync.native(recordRoot);
|
|
2551
|
+
const identityPath = node_path_1.default.join(recordRoot, "identities");
|
|
2552
|
+
const identityEntry = node_fs_1.default.lstatSync(identityPath);
|
|
2553
|
+
const physicalIdentity = node_fs_1.default.realpathSync.native(identityPath);
|
|
2554
|
+
if (identityEntry.isDirectory() &&
|
|
2555
|
+
!identityEntry.isSymbolicLink() &&
|
|
2556
|
+
node_path_1.default.dirname(physicalIdentity) === physicalRoot &&
|
|
2557
|
+
node_path_1.default.parse(physicalIdentity).root.toLowerCase() ===
|
|
2558
|
+
configVolume.toLowerCase() &&
|
|
2559
|
+
!contains(physicalIdentity, physicalConfigDir)) {
|
|
2560
|
+
preferred = physicalIdentity;
|
|
2561
|
+
}
|
|
2562
|
+
}
|
|
2563
|
+
catch {
|
|
2564
|
+
// The optional cache placement is unavailable; keep the established one.
|
|
2565
|
+
}
|
|
2566
|
+
}
|
|
2567
|
+
if (preferred !== undefined) {
|
|
2568
|
+
const directory = createOnConfigVolume(preferred);
|
|
2569
|
+
if (directory !== undefined)
|
|
2570
|
+
return directory;
|
|
2571
|
+
}
|
|
2572
|
+
if (independentEvaluation &&
|
|
2573
|
+
systemTempOnConfigVolume &&
|
|
2574
|
+
systemTempExternalAncestor &&
|
|
2575
|
+
!recordRoot) {
|
|
2576
|
+
const directory = createOnConfigVolume(systemTemp);
|
|
2577
|
+
if (directory !== undefined)
|
|
2578
|
+
return directory;
|
|
2579
|
+
}
|
|
2580
|
+
const nearest = loaderTempBase(configPath);
|
|
2581
|
+
const ambient = [
|
|
2582
|
+
process.env.TMPDIR,
|
|
2583
|
+
process.env.TMP,
|
|
2584
|
+
process.env.TEMP,
|
|
2585
|
+
process.env.LOCALAPPDATA
|
|
2586
|
+
? node_path_1.default.join(process.env.LOCALAPPDATA, "Temp")
|
|
2587
|
+
: undefined,
|
|
2588
|
+
];
|
|
2589
|
+
const candidates = nearest === configDir ? ambient : [nearest, ...ambient];
|
|
2590
|
+
const seen = new Set();
|
|
2591
|
+
for (const candidate of candidates) {
|
|
2592
|
+
if (!candidate || !node_path_1.default.isAbsolute(candidate))
|
|
2593
|
+
continue;
|
|
2594
|
+
let physical;
|
|
2595
|
+
try {
|
|
2596
|
+
physical = node_fs_1.default.realpathSync.native(candidate);
|
|
2597
|
+
if (!node_fs_1.default.lstatSync(physical).isDirectory())
|
|
2598
|
+
continue;
|
|
2599
|
+
}
|
|
2600
|
+
catch {
|
|
2601
|
+
continue;
|
|
2602
|
+
}
|
|
2603
|
+
if (seen.has(physical))
|
|
2604
|
+
continue;
|
|
2605
|
+
seen.add(physical);
|
|
2606
|
+
if (node_path_1.default.parse(physical).root.toLowerCase() !== configVolume.toLowerCase())
|
|
2607
|
+
continue;
|
|
2608
|
+
if ((nearest === configDir || candidate !== nearest) &&
|
|
2609
|
+
(contains(physical, physicalConfigDir) ||
|
|
2610
|
+
contains(physicalConfigDir, physical))) {
|
|
2611
|
+
continue;
|
|
2612
|
+
}
|
|
2613
|
+
const directory = createOnConfigVolume(physical);
|
|
2614
|
+
if (directory !== undefined)
|
|
2615
|
+
return directory;
|
|
2616
|
+
}
|
|
2617
|
+
if (independentEvaluation &&
|
|
2618
|
+
systemTempOnConfigVolume &&
|
|
2619
|
+
systemTempExternalAncestor &&
|
|
2620
|
+
recordRoot) {
|
|
2621
|
+
const directory = createOnConfigVolume(systemTemp);
|
|
2622
|
+
if (directory !== undefined)
|
|
2623
|
+
return directory;
|
|
2624
|
+
}
|
|
2625
|
+
if (node_path_1.default.parse(physicalConfigDir).root.toLowerCase() ===
|
|
2626
|
+
configVolume.toLowerCase()) {
|
|
2627
|
+
const directory = createOnConfigVolume(configDir);
|
|
2628
|
+
if (directory !== undefined)
|
|
2629
|
+
return directory;
|
|
2630
|
+
}
|
|
2631
|
+
throw new Error(`@ttsc/lint: no writable temporary directory on ${configVolume} for config ${configPath}; set TEMP, TMP, or TMPDIR to an existing directory on that drive or enable a same-drive ttsc cache`);
|
|
2632
|
+
}
|
|
2633
|
+
/**
|
|
2634
|
+
* Finds the nearest node_modules cache, falling back to the config directory.
|
|
2635
|
+
* The caller checks the canonical drive before using either path because a
|
|
2636
|
+
* config junction can place that directory on another drive (#305).
|
|
2469
2637
|
*/
|
|
2470
2638
|
function loaderTempBase(configPath) {
|
|
2471
|
-
const systemTemp = node_os_1.default.tmpdir();
|
|
2472
|
-
const systemRoot = node_path_1.default.parse(systemTemp).root;
|
|
2473
2639
|
const configRoot = node_path_1.default.parse(configPath).root;
|
|
2474
|
-
// A relative config path has no root; "" must not be read as "a volume
|
|
2475
|
-
// other than the system temp's" — it keeps the historical default.
|
|
2476
|
-
if (configRoot === "" ||
|
|
2477
|
-
systemRoot.toLowerCase() === configRoot.toLowerCase()) {
|
|
2478
|
-
return systemTemp;
|
|
2479
|
-
}
|
|
2480
2640
|
const nodeModules = findNearestNodeModules(node_path_1.default.dirname(configPath));
|
|
2481
2641
|
if (!nodeModules)
|
|
2482
2642
|
return node_path_1.default.dirname(configPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTtscPlugin.js","sourceRoot":"","sources":["../src/createTtscPlugin.ts"],"names":[],"mappings":"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GAMG;AACU,QAAA,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"createTtscPlugin.js","sourceRoot":"","sources":["../src/createTtscPlugin.ts"],"names":[],"mappings":"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;GAMG;AACU,QAAA,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|