ttsc 0.31.6 → 0.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cmd/ttsc/compiler_argument_cwd_test.go +38 -38
- package/cmd/ttscserver/main.go +2 -12
- package/cmd/ttscserver/resolve_launch_uses_native_flag_authority_test.go +7 -7
- package/driver/lsp.go +4 -43
- package/driver/rewrite.go +1 -1
- package/internal/e2etrace/completion_hints.go +3 -3
- package/internal/e2etrace/completion_hints_test.go +26 -12
- package/internal/graph/build.go +5 -6
- package/internal/graph/graph.go +3 -3
- package/internal/graph/line_model.go +2 -35
- package/internal/lspserver/lsp_clean_didopen_refreshes_compiler_state_test.go +13 -36
- package/internal/lspserver/lsp_hints_refresh_ignores_a_superseded_generation_test.go +9 -3
- package/internal/lspserver/lsp_plugin.go +19 -0
- package/internal/lspserver/lsp_proxy.go +9 -129
- package/internal/lspserver/lsp_server.go +0 -8
- package/internal/lspserver/lsp_watched_file_changes_reach_compiler_caches_test.go +6 -36
- package/internal/sourceprocess/windows_target_owns_suspended_admission_test.go +5 -5
- package/lib/TtscCompiler.js +1 -1
- package/lib/TtscCompiler.js.map +1 -1
- package/lib/compiler/internal/ResidentCheckProcess.d.ts +74 -96
- package/lib/compiler/internal/ResidentCheckProcess.js +150 -335
- package/lib/compiler/internal/ResidentCheckProcess.js.map +1 -1
- package/lib/compiler/internal/ResidentCheckProcessHost.d.ts +127 -0
- package/lib/compiler/internal/ResidentCheckProcessHost.js +447 -0
- package/lib/compiler/internal/ResidentCheckProcessHost.js.map +1 -0
- package/lib/compiler/internal/ResidentCheckProcessProtocol.d.ts +64 -0
- package/lib/compiler/internal/ResidentCheckProcessProtocol.js +3 -0
- package/lib/compiler/internal/ResidentCheckProcessProtocol.js.map +1 -0
- package/lib/compiler/internal/build/BuildExecution.d.ts +103 -1
- package/lib/compiler/internal/build/BuildExecution.js +92 -12
- package/lib/compiler/internal/build/BuildExecution.js.map +1 -1
- package/lib/compiler/internal/build/ResidentCheckWatchSession.d.ts +16 -11
- package/lib/compiler/internal/build/ResidentCheckWatchSession.js +37 -21
- package/lib/compiler/internal/build/ResidentCheckWatchSession.js.map +1 -1
- package/lib/compiler/internal/build/RunBuildOptions.d.ts +6 -5
- package/lib/compiler/internal/build/TsgoArguments.js.map +1 -1
- package/lib/compiler/internal/build/WatchInputPublication.d.ts +59 -0
- package/lib/compiler/internal/build/WatchInputPublication.js +93 -0
- package/lib/compiler/internal/build/WatchInputPublication.js.map +1 -0
- package/lib/compiler/internal/build/runBuild.d.ts +29 -2
- package/lib/compiler/internal/build/runBuild.js +45 -19
- package/lib/compiler/internal/build/runBuild.js.map +1 -1
- package/lib/compiler/internal/buildNativeCompiler.d.ts +2 -0
- package/lib/compiler/internal/buildNativeCompiler.js +1 -0
- package/lib/compiler/internal/buildNativeCompiler.js.map +1 -1
- package/lib/compiler/internal/compileProjectInMemory.js +4 -2
- package/lib/compiler/internal/compileProjectInMemory.js.map +1 -1
- package/lib/compiler/internal/project/CompilerProjectSelection.d.ts +9 -8
- package/lib/compiler/internal/project/CompilerProjectSelection.js +11 -9
- package/lib/compiler/internal/project/CompilerProjectSelection.js.map +1 -1
- package/lib/compiler/internal/project/resolveOwningProjectConfig.d.ts +25 -8
- package/lib/compiler/internal/project/resolveOwningProjectConfig.js +26 -14
- package/lib/compiler/internal/project/resolveOwningProjectConfig.js.map +1 -1
- package/lib/compiler/internal/readEffectiveCompilerOptions.js +1 -1
- package/lib/compiler/internal/readEffectiveCompilerOptions.js.map +1 -1
- package/lib/compiler/internal/resolveBinary.d.ts +1 -0
- package/lib/compiler/internal/resolveBinary.js.map +1 -1
- package/lib/compiler/internal/resolveTsgo.d.ts +6 -0
- package/lib/compiler/internal/resolveTsgo.js.map +1 -1
- package/lib/compiler/internal/runSingleFileEmit.d.ts +32 -4
- package/lib/compiler/internal/runSingleFileEmit.js +124 -89
- package/lib/compiler/internal/runSingleFileEmit.js.map +1 -1
- package/lib/compiler/internal/startResidentTransform.js +8 -2
- package/lib/compiler/internal/startResidentTransform.js.map +1 -1
- package/lib/compiler/internal/transformProjectInMemory.js +11 -3
- package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
- package/lib/compiler/internal/transformProjectInWorker.d.ts +1 -1
- package/lib/compiler/internal/transformProjectInWorker.js +3 -2
- package/lib/compiler/internal/transformProjectInWorker.js.map +1 -1
- package/lib/flags/ParseOptions.d.ts +2 -2
- package/lib/internal/E2ETrace.js.map +1 -1
- package/lib/internal/OwnedNativeProcess.d.ts +2 -2
- package/lib/internal/OwnedNativeProcess.js +2 -2
- package/lib/internal/SourceNativeRetirement.d.ts +8 -7
- package/lib/internal/SourceNativeRetirement.js +19 -10
- package/lib/internal/SourceNativeRetirement.js.map +1 -1
- package/lib/internal/TtsxNodeOptions.d.ts +79 -0
- package/lib/internal/TtsxNodeOptions.js +121 -0
- package/lib/internal/TtsxNodeOptions.js.map +1 -0
- package/lib/internal/javascriptRuntimeCapabilities.js +4 -1
- package/lib/internal/javascriptRuntimeCapabilities.js.map +1 -1
- package/lib/internal/parseWindowsDirectoryCaseSensitivity.d.ts +5 -5
- package/lib/internal/parseWindowsDirectoryCaseSensitivity.js +5 -5
- package/lib/internal/pathIdentity/createCaseSensitivityObservations.d.ts +35 -0
- package/lib/internal/pathIdentity/createCaseSensitivityObservations.js +209 -0
- package/lib/internal/pathIdentity/createCaseSensitivityObservations.js.map +1 -0
- package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.js +2 -143
- package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.js.map +1 -1
- package/lib/internal/projectInputPathIdentity.d.ts +1 -0
- package/lib/internal/projectInputPathIdentity.js +1 -0
- package/lib/internal/projectInputPathIdentity.js.map +1 -1
- package/lib/internal/workerModuleUrl.d.ts +28 -0
- package/lib/internal/workerModuleUrl.js +40 -0
- package/lib/internal/workerModuleUrl.js.map +1 -0
- package/lib/launcher/internal/buildSingleRootProject.js +2 -1
- package/lib/launcher/internal/buildSingleRootProject.js.map +1 -1
- package/lib/launcher/internal/getCompilerVersionText.js +3 -2
- package/lib/launcher/internal/getCompilerVersionText.js.map +1 -1
- package/lib/launcher/internal/parseTtsxCLI.d.ts +5 -4
- package/lib/launcher/internal/parseTtsxCLI.js +5 -4
- package/lib/launcher/internal/parseTtsxCLI.js.map +1 -1
- package/lib/launcher/internal/prepareExecution.js +2 -1
- package/lib/launcher/internal/prepareExecution.js.map +1 -1
- package/lib/launcher/internal/resolveSingleFileOutput.d.ts +8 -9
- package/lib/launcher/internal/resolveSingleFileOutput.js +8 -9
- package/lib/launcher/internal/resolveSingleFileOutput.js.map +1 -1
- package/lib/launcher/internal/runTtsc.js +91 -41
- package/lib/launcher/internal/runTtsc.js.map +1 -1
- package/lib/launcher/internal/runTtsx.js +5 -2
- package/lib/launcher/internal/runTtsx.js.map +1 -1
- package/lib/launcher/internal/runtime/CommonJsRuntimeSource.d.ts +10 -6
- package/lib/launcher/internal/runtime/CommonJsRuntimeSource.js +11 -9
- package/lib/launcher/internal/runtime/CommonJsRuntimeSource.js.map +1 -1
- package/lib/launcher/internal/runtime/RuntimeEntrySources.d.ts +40 -0
- package/lib/launcher/internal/runtime/RuntimeEntrySources.js +57 -0
- package/lib/launcher/internal/runtime/RuntimeEntrySources.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeProjectOwnership.d.ts +5 -4
- package/lib/launcher/internal/runtime/RuntimeProjectOwnership.js +8 -6
- package/lib/launcher/internal/runtime/RuntimeProjectOwnership.js.map +1 -1
- package/lib/launcher/internal/runtime/advertiseTypeScriptExtensions.d.ts +20 -0
- package/lib/launcher/internal/runtime/advertiseTypeScriptExtensions.js +27 -0
- package/lib/launcher/internal/runtime/advertiseTypeScriptExtensions.js.map +1 -0
- package/lib/launcher/internal/runtime/commonJsExportNames.d.ts +2 -1
- package/lib/launcher/internal/runtime/commonJsExportNames.js +2 -1
- package/lib/launcher/internal/runtime/commonJsExportNames.js.map +1 -1
- package/lib/launcher/internal/runtime/installRuntimeHooks.d.ts +5 -3
- package/lib/launcher/internal/runtime/installRuntimeHooks.js +42 -12
- package/lib/launcher/internal/runtime/installRuntimeHooks.js.map +1 -1
- package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.js +3 -1
- package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.js.map +1 -1
- package/lib/launcher/internal/watch/AsyncWatchTopology.d.ts +113 -0
- package/lib/launcher/internal/watch/AsyncWatchTopology.js +232 -0
- package/lib/launcher/internal/watch/AsyncWatchTopology.js.map +1 -0
- package/lib/launcher/internal/watch/WatchSettlement.d.ts +49 -0
- package/lib/launcher/internal/watch/WatchSettlement.js +70 -0
- package/lib/launcher/internal/watch/WatchSettlement.js.map +1 -0
- package/lib/launcher/internal/watch/WatchTopology.d.ts +103 -13
- package/lib/launcher/internal/watch/WatchTopology.js +380 -95
- package/lib/launcher/internal/watch/WatchTopology.js.map +1 -1
- package/lib/launcher/internal/watch/WatchTopologyWorkerProtocol.d.ts +121 -0
- package/lib/launcher/internal/watch/WatchTopologyWorkerProtocol.js +3 -0
- package/lib/launcher/internal/watch/WatchTopologyWorkerProtocol.js.map +1 -0
- package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.d.ts +4 -1
- package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.js +3 -2
- package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.js.map +1 -1
- package/lib/launcher/internal/watch/serveWatchTopologyWorker.d.ts +19 -0
- package/lib/launcher/internal/watch/serveWatchTopologyWorker.js +62 -0
- package/lib/launcher/internal/watch/serveWatchTopologyWorker.js.map +1 -0
- package/lib/launcher/internal/watch/watchTopologyWorker.d.ts +1 -0
- package/lib/launcher/internal/watch/watchTopologyWorker.js +22 -0
- package/lib/launcher/internal/watch/watchTopologyWorker.js.map +1 -0
- package/lib/plugin/CapabilityPluginResolver.d.ts +1 -1
- package/lib/plugin/CapabilityPluginResolver.js +3 -2
- package/lib/plugin/CapabilityPluginResolver.js.map +1 -1
- package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.d.ts +15 -12
- package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js +13 -11
- package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js.map +1 -1
- package/lib/plugin/internal/load/PluginPackageResolution.d.ts +2 -2
- package/lib/plugin/internal/load/PluginPackageResolution.js +13 -7
- package/lib/plugin/internal/load/PluginPackageResolution.js.map +1 -1
- package/lib/plugin/internal/load/ProjectPluginEntries.d.ts +23 -7
- package/lib/plugin/internal/load/ProjectPluginEntries.js +36 -14
- package/lib/plugin/internal/load/ProjectPluginEntries.js.map +1 -1
- package/lib/plugin/internal/load/collectProjectHostInputs.d.ts +3 -1
- package/lib/plugin/internal/load/collectProjectHostInputs.js +5 -2
- package/lib/plugin/internal/load/collectProjectHostInputs.js.map +1 -1
- package/lib/plugin/internal/load/hasProjectPluginEntries.d.ts +3 -1
- package/lib/plugin/internal/load/hasProjectPluginEntries.js +4 -2
- package/lib/plugin/internal/load/hasProjectPluginEntries.js.map +1 -1
- package/lib/plugin/internal/load/loadProjectPlugins.d.ts +36 -5
- package/lib/plugin/internal/load/loadProjectPlugins.js +477 -421
- package/lib/plugin/internal/load/loadProjectPlugins.js.map +1 -1
- package/lib/plugin/internal/load/pluginResolutionFailure.d.ts +18 -0
- package/lib/plugin/internal/load/pluginResolutionFailure.js +32 -0
- package/lib/plugin/internal/load/pluginResolutionFailure.js.map +1 -0
- package/lib/plugin/internal/load/resolveNativeSource.js +2 -3
- package/lib/plugin/internal/load/resolveNativeSource.js.map +1 -1
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.d.ts +1 -1
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js +3 -2
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js.map +1 -1
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.d.ts +4 -1
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js +9 -2
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js.map +1 -1
- package/lib/structures/ITtscCompilerContext.d.ts +12 -12
- package/lib/structures/ITtscPlugin.d.ts +7 -5
- package/lib/structures/ITtscPluginFactoryContext.d.ts +9 -8
- package/lib/structures/internal/TtscCommonOptions.d.ts +2 -2
- package/lib/structures/internal/TtscSingleFileEmitOptions.d.ts +12 -6
- package/package.json +9 -9
- package/src/TtscCompiler.ts +1 -1
- package/src/compiler/internal/ResidentCheckProcess.ts +159 -374
- package/src/compiler/internal/ResidentCheckProcessHost.ts +502 -0
- package/src/compiler/internal/ResidentCheckProcessProtocol.ts +53 -0
- package/src/compiler/internal/build/BuildExecution.ts +123 -11
- package/src/compiler/internal/build/ResidentCheckWatchSession.ts +41 -24
- package/src/compiler/internal/build/RunBuildOptions.ts +9 -5
- package/src/compiler/internal/build/TsgoArguments.ts +4 -1
- package/src/compiler/internal/build/WatchInputPublication.ts +106 -0
- package/src/compiler/internal/build/runBuild.ts +58 -34
- package/src/compiler/internal/buildNativeCompiler.ts +4 -0
- package/src/compiler/internal/compileProjectInMemory.ts +8 -2
- package/src/compiler/internal/project/CompilerProjectSelection.ts +14 -14
- package/src/compiler/internal/project/resolveOwningProjectConfig.ts +42 -16
- package/src/compiler/internal/readEffectiveCompilerOptions.ts +1 -1
- package/src/compiler/internal/resolveBinary.ts +4 -1
- package/src/compiler/internal/resolveTsgo.ts +7 -0
- package/src/compiler/internal/runSingleFileEmit.ts +145 -101
- package/src/compiler/internal/startResidentTransform.ts +9 -2
- package/src/compiler/internal/transformProjectInMemory.ts +12 -3
- package/src/compiler/internal/transformProjectInWorker.ts +10 -2
- package/src/flags/ParseOptions.ts +2 -2
- package/src/internal/E2ETrace.ts +3 -1
- package/src/internal/OwnedNativeProcess.ts +2 -2
- package/src/internal/SourceNativeRetirement.ts +42 -19
- package/src/internal/TtsxNodeOptions.ts +124 -0
- package/src/internal/javascriptRuntimeCapabilities.ts +6 -1
- package/src/internal/parseWindowsDirectoryCaseSensitivity.ts +5 -5
- package/src/internal/pathIdentity/createCaseSensitivityObservations.ts +242 -0
- package/src/internal/pathIdentity/createFilesystemPathIdentityContext.ts +2 -169
- package/src/internal/projectInputPathIdentity.ts +1 -0
- package/src/internal/workerModuleUrl.ts +34 -0
- package/src/launcher/internal/buildSingleRootProject.ts +2 -0
- package/src/launcher/internal/getCompilerVersionText.ts +3 -2
- package/src/launcher/internal/parseTtsxCLI.ts +5 -4
- package/src/launcher/internal/prepareExecution.ts +6 -1
- package/src/launcher/internal/resolveSingleFileOutput.ts +8 -9
- package/src/launcher/internal/runTtsc.ts +127 -49
- package/src/launcher/internal/runTtsx.ts +17 -8
- package/src/launcher/internal/runtime/CommonJsRuntimeSource.ts +11 -9
- package/src/launcher/internal/runtime/RuntimeEntrySources.ts +57 -0
- package/src/launcher/internal/runtime/RuntimeProjectOwnership.ts +23 -10
- package/src/launcher/internal/runtime/advertiseTypeScriptExtensions.ts +25 -0
- package/src/launcher/internal/runtime/commonJsExportNames.ts +11 -4
- package/src/launcher/internal/runtime/installRuntimeHooks.ts +62 -16
- package/src/launcher/internal/runtime/resolveRuntimeCleanTargets.ts +17 -5
- package/src/launcher/internal/watch/AsyncWatchTopology.ts +267 -0
- package/src/launcher/internal/watch/WatchSettlement.ts +67 -0
- package/src/launcher/internal/watch/WatchTopology.ts +461 -102
- package/src/launcher/internal/watch/WatchTopologyWorkerProtocol.ts +106 -0
- package/src/launcher/internal/watch/projectInputReloadEventShouldNotify.ts +14 -9
- package/src/launcher/internal/watch/serveWatchTopologyWorker.ts +75 -0
- package/src/launcher/internal/watch/watchTopologyWorker.ts +29 -0
- package/src/plugin/CapabilityPluginResolver.ts +9 -2
- package/src/plugin/internal/load/PluginDescriptorEvaluationCache.ts +17 -12
- package/src/plugin/internal/load/PluginPackageResolution.ts +14 -9
- package/src/plugin/internal/load/ProjectPluginEntries.ts +40 -15
- package/src/plugin/internal/load/collectProjectHostInputs.ts +7 -1
- package/src/plugin/internal/load/hasProjectPluginEntries.ts +8 -3
- package/src/plugin/internal/load/loadProjectPlugins.ts +683 -593
- package/src/plugin/internal/load/pluginResolutionFailure.ts +37 -0
- package/src/plugin/internal/load/resolveNativeSource.ts +10 -4
- package/src/plugin/internal/source/PluginBuildEnvironmentReadings.ts +8 -2
- package/src/plugin/internal/source/pluginModuleReplaceDirectories.ts +10 -1
- package/src/structures/ITtscCompilerContext.ts +12 -12
- package/src/structures/ITtscPlugin.ts +7 -5
- package/src/structures/ITtscPluginFactoryContext.ts +9 -8
- package/src/structures/internal/TtscCommonOptions.ts +2 -2
- package/src/structures/internal/TtscSingleFileEmitOptions.ts +22 -11
- package/internal/graphsymbols/position_helpers_follow_ecma_line_terminators_test.go +0 -78
- package/internal/graphsymbols/provider.go +0 -650
- package/internal/lspserver/lsp_symbols.go +0 -212
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createCaseSensitivityObservations = createCaseSensitivityObservations;
|
|
7
|
+
const node_child_process_1 = __importDefault(require("node:child_process"));
|
|
8
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const E2ETrace_1 = require("../E2ETrace");
|
|
11
|
+
const OwnedSynchronousProcess_1 = require("../OwnedSynchronousProcess");
|
|
12
|
+
const parseWindowsDirectoryCaseSensitivity_1 = require("../parseWindowsDirectoryCaseSensitivity");
|
|
13
|
+
const resolveFilesystemPath_1 = require("./resolveFilesystemPath");
|
|
14
|
+
/**
|
|
15
|
+
* Create one unit of work's directory case-policy observations: a function that
|
|
16
|
+
* answers whether a directory's names are case-sensitive, asking the filesystem
|
|
17
|
+
* once per directory for as long as the unit keeps it.
|
|
18
|
+
*
|
|
19
|
+
* An identity context memoizes case answers for itself, but a unit of work that
|
|
20
|
+
* creates several contexts, such as one watch decision, asked each directory
|
|
21
|
+
* once per context. On Windows an inconclusive directory, one that is empty or
|
|
22
|
+
* whose names carry no ASCII case, costs an `fsutil` process per question, and
|
|
23
|
+
* one decision asked the same directory up to seventeen times
|
|
24
|
+
* (samchon/ttsc#1742). Contexts created with this function as their
|
|
25
|
+
* `caseSensitive` operation share its answers.
|
|
26
|
+
*
|
|
27
|
+
* The answers are observations of the moment they were asked, like a context's
|
|
28
|
+
* own. The unit's owner chooses their lifetime; a later unit creates new
|
|
29
|
+
* observations rather than reusing these. A directory's flag can change while
|
|
30
|
+
* it is empty, so an answer outliving its unit could be stale.
|
|
31
|
+
*
|
|
32
|
+
* Unavailable evidence is `undefined`: an unreadable directory, a failed query,
|
|
33
|
+
* or a platform without a read-only probe for an inconclusive directory. Only
|
|
34
|
+
* observed insensitivity permits ASCII folding.
|
|
35
|
+
*
|
|
36
|
+
* @param operations Replaceable filesystem primitives; omitted members use the
|
|
37
|
+
* host's own.
|
|
38
|
+
* @evidence contracts/common.md#principled-implementation Alternate-name observations decide first; a rejected alternate is conclusive only while its original exists. Darwin walks same-device names for its volume-wide policy and Windows asks fsutil's read-only per-directory flag. Failed observation stays unknown.
|
|
39
|
+
* @evidence contracts/common.md#clear-and-simple-design One returned function owns the probe and its per-unit memo; identity resolution stays with the contexts that call it.
|
|
40
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts No answer is inferred from the OS name, and no answer is carried beyond the unit that observed it.
|
|
41
|
+
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain sharing, lifetime, the empty-directory hazard and unknown evidence, with tags separated.
|
|
42
|
+
* @evidence contracts/portability.md#os-neutral-implementation Native realpath, lstat and readdir observe alternate names; darwin and win32 select their read-only volume or directory probes, and the platform's path dialect keys the memo.
|
|
43
|
+
* @evidence contracts/performance.md#efficient-algorithms A miss enumerates the directory's immediate entries and stops at the first conclusive alternate; darwin can walk same-device ancestors and Windows can launch directory and volume fsutil queries. A hit is one map lookup.
|
|
44
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Every context of one unit shares each directory's answer, so a unit asks the filesystem once per directory instead of once per context.
|
|
45
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources The memo holds one entry per queried directory without eviction for the unit's lifetime; releasing the returned function releases it. Probes hold no handle after returning, and a Windows query has no explicit timeout.
|
|
46
|
+
*/
|
|
47
|
+
function createCaseSensitivityObservations(operations = {}) {
|
|
48
|
+
const platform = operations.platform ?? process.platform;
|
|
49
|
+
const probes = {
|
|
50
|
+
lstat: operations.lstat ?? node_fs_1.default.lstatSync,
|
|
51
|
+
readdir: operations.readdir ?? node_fs_1.default.readdirSync,
|
|
52
|
+
realpath: operations.realpath ?? physicalRealpath,
|
|
53
|
+
};
|
|
54
|
+
const answers = new Map();
|
|
55
|
+
return (directory) => {
|
|
56
|
+
const key = (0, resolveFilesystemPath_1.resolveFilesystemPath)(directory, platform);
|
|
57
|
+
if (answers.has(key))
|
|
58
|
+
return answers.get(key);
|
|
59
|
+
let answer;
|
|
60
|
+
try {
|
|
61
|
+
answer = filesystemDirectoryIsCaseSensitive(key, platform, probes);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// A failed capability observation is unknown. This does not suppress
|
|
65
|
+
// strict physical identity errors in a context's realpath resolver.
|
|
66
|
+
answer = undefined;
|
|
67
|
+
}
|
|
68
|
+
answers.set(key, answer);
|
|
69
|
+
return answer;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function physicalRealpath(location) {
|
|
73
|
+
return node_fs_1.default.realpathSync.native?.(location) ?? node_fs_1.default.realpathSync(location);
|
|
74
|
+
}
|
|
75
|
+
function filesystemDirectoryIsCaseSensitive(directory, platform, operations) {
|
|
76
|
+
const pathApi = platform === "win32" ? node_path_1.default.win32 : node_path_1.default.posix;
|
|
77
|
+
let entries;
|
|
78
|
+
try {
|
|
79
|
+
entries = operations.readdir(directory);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
const foldedNames = new Map();
|
|
85
|
+
for (const name of entries) {
|
|
86
|
+
const folded = foldAsciiCase(name);
|
|
87
|
+
const previous = foldedNames.get(folded);
|
|
88
|
+
if (previous !== undefined && previous !== name)
|
|
89
|
+
return true;
|
|
90
|
+
foldedNames.set(folded, name);
|
|
91
|
+
}
|
|
92
|
+
for (const name of entries) {
|
|
93
|
+
const alternate = alternateCase(name);
|
|
94
|
+
if (alternate === name)
|
|
95
|
+
continue;
|
|
96
|
+
try {
|
|
97
|
+
operations.lstat(pathApi.join(directory, alternate));
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
if (isMissingFilesystemEntry(error)) {
|
|
101
|
+
// Enumeration is not an atomic snapshot. An absent alternate proves
|
|
102
|
+
// sensitivity only if the original spelling still names an entry.
|
|
103
|
+
try {
|
|
104
|
+
operations.lstat(pathApi.join(directory, name));
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
catch (originalError) {
|
|
108
|
+
if (isMissingFilesystemEntry(originalError) === false)
|
|
109
|
+
throw originalError;
|
|
110
|
+
}
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
const actual = (0, resolveFilesystemPath_1.resolveFilesystemPath)(operations.realpath(pathApi.join(directory, name)), platform);
|
|
117
|
+
const alias = (0, resolveFilesystemPath_1.resolveFilesystemPath)(operations.realpath(pathApi.join(directory, alternate)), platform);
|
|
118
|
+
return actual !== alias;
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
if (isMissingFilesystemEntry(error) === false)
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (platform === "darwin") {
|
|
126
|
+
// APFS/HFS case semantics are volume-wide. An empty directory has no child
|
|
127
|
+
// name to probe, so ask the same read-only question of its existing name in
|
|
128
|
+
// the parent and walk upward until a name with ASCII case is available.
|
|
129
|
+
// This avoids a write probe while still distinguishing default APFS from a
|
|
130
|
+
// case-sensitive volume.
|
|
131
|
+
let current = (0, resolveFilesystemPath_1.resolveFilesystemPath)(directory, platform);
|
|
132
|
+
while (true) {
|
|
133
|
+
const parent = pathApi.dirname(current);
|
|
134
|
+
if (parent === current)
|
|
135
|
+
break;
|
|
136
|
+
// Names are interpreted by their parent; another mount is not evidence
|
|
137
|
+
// of the directory's own volume case policy.
|
|
138
|
+
if (operations.lstat(current).dev !== operations.lstat(parent).dev)
|
|
139
|
+
return undefined;
|
|
140
|
+
const name = pathApi.basename(current);
|
|
141
|
+
const alternate = alternateCase(name);
|
|
142
|
+
if (alternate !== name) {
|
|
143
|
+
try {
|
|
144
|
+
const actual = (0, resolveFilesystemPath_1.resolveFilesystemPath)(operations.realpath(current), platform);
|
|
145
|
+
const alias = (0, resolveFilesystemPath_1.resolveFilesystemPath)(operations.realpath(pathApi.join(parent, alternate)), platform);
|
|
146
|
+
return actual !== alias;
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
if (isMissingFilesystemEntry(error) === false)
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
current = parent;
|
|
154
|
+
}
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
157
|
+
if (platform !== "win32")
|
|
158
|
+
return undefined;
|
|
159
|
+
// Node does not expose the Windows per-directory flag. Prefer fsutil's
|
|
160
|
+
// read-only answer; unavailable capability remains unknown.
|
|
161
|
+
const queried = queryWindowsDirectoryCaseSensitivity(directory);
|
|
162
|
+
if (queried !== undefined)
|
|
163
|
+
return queried;
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Read the per-directory flag without depending on fsutil's display language.
|
|
168
|
+
*
|
|
169
|
+
* English output is cheap to recognize directly. Other Windows locales write
|
|
170
|
+
* console-code-page bytes that Node cannot reliably decode, so their raw
|
|
171
|
+
* message is interpreted against the volume-root query.
|
|
172
|
+
*/
|
|
173
|
+
function queryWindowsDirectoryCaseSensitivity(directory) {
|
|
174
|
+
const result = queryWindowsDirectoryCaseSensitivityBytes(directory);
|
|
175
|
+
if (result === undefined)
|
|
176
|
+
return undefined;
|
|
177
|
+
const volumeRoot = node_path_1.default.win32.parse(directory).root;
|
|
178
|
+
const direct = (0, parseWindowsDirectoryCaseSensitivity_1.parseWindowsDirectoryCaseSensitivity)(result, undefined, volumeRoot);
|
|
179
|
+
if (direct !== undefined)
|
|
180
|
+
return direct;
|
|
181
|
+
const volume = queryWindowsDirectoryCaseSensitivityBytes(volumeRoot);
|
|
182
|
+
return (0, parseWindowsDirectoryCaseSensitivity_1.parseWindowsDirectoryCaseSensitivity)(result, volume, volumeRoot);
|
|
183
|
+
}
|
|
184
|
+
function queryWindowsDirectoryCaseSensitivityBytes(directory) {
|
|
185
|
+
const args = ["file", "queryCaseSensitiveInfo", directory];
|
|
186
|
+
const result = E2ETrace_1.E2ETrace.synchronous("fsutil.exe", args, {}, "path-case-probe", () => OwnedSynchronousProcess_1.OwnedSynchronousProcess.launch("fsutil.exe", args, {
|
|
187
|
+
windowsHide: true,
|
|
188
|
+
}) ?? node_child_process_1.default.spawnSync("fsutil.exe", args, { windowsHide: true }));
|
|
189
|
+
return result.error === undefined &&
|
|
190
|
+
result.status === 0 &&
|
|
191
|
+
Buffer.isBuffer(result.stdout)
|
|
192
|
+
? result.stdout
|
|
193
|
+
: undefined;
|
|
194
|
+
}
|
|
195
|
+
function alternateCase(value) {
|
|
196
|
+
return value.replace(/[A-Za-z]/g, (character) => character === character.toLowerCase()
|
|
197
|
+
? character.toUpperCase()
|
|
198
|
+
: character.toLowerCase());
|
|
199
|
+
}
|
|
200
|
+
/** ASCII folding is the case equivalence observed by the read-only probes. */
|
|
201
|
+
function foldAsciiCase(value) {
|
|
202
|
+
return value.replace(/[A-Z]/g, (character) => character.toLowerCase());
|
|
203
|
+
}
|
|
204
|
+
function isMissingFilesystemEntry(error) {
|
|
205
|
+
return (error instanceof Error &&
|
|
206
|
+
"code" in error &&
|
|
207
|
+
(error.code === "ENOENT" || error.code === "ENOTDIR"));
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=createCaseSensitivityObservations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCaseSensitivityObservations.js","sourceRoot":"","sources":["../../../src/internal/pathIdentity/createCaseSensitivityObservations.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createFilesystemPathIdentityContext = createFilesystemPathIdentityContext;
|
|
7
|
-
const node_child_process_1 = __importDefault(require("node:child_process"));
|
|
8
7
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
-
const
|
|
11
|
-
const OwnedSynchronousProcess_1 = require("../OwnedSynchronousProcess");
|
|
12
|
-
const parseWindowsDirectoryCaseSensitivity_1 = require("../parseWindowsDirectoryCaseSensitivity");
|
|
9
|
+
const createCaseSensitivityObservations_1 = require("./createCaseSensitivityObservations");
|
|
13
10
|
const isFilesystemPathIdentityWithin_1 = require("./isFilesystemPathIdentityWithin");
|
|
14
11
|
const resolveFilesystemPath_1 = require("./resolveFilesystemPath");
|
|
15
12
|
/**
|
|
@@ -45,20 +42,7 @@ function createFilesystemPathIdentityContext(operations = {}) {
|
|
|
45
42
|
const lstat = operations.lstat ?? node_fs_1.default.lstatSync;
|
|
46
43
|
const readdir = operations.readdir ?? node_fs_1.default.readdirSync;
|
|
47
44
|
const caseSensitive = operations.caseSensitive ??
|
|
48
|
-
((
|
|
49
|
-
try {
|
|
50
|
-
return filesystemDirectoryIsCaseSensitive(directory, platform, {
|
|
51
|
-
lstat,
|
|
52
|
-
readdir,
|
|
53
|
-
realpath,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
// A failed capability observation is unknown. This does not suppress
|
|
58
|
-
// strict physical identity errors in the separate realpath resolver.
|
|
59
|
-
return undefined;
|
|
60
|
-
}
|
|
61
|
-
});
|
|
45
|
+
(0, createCaseSensitivityObservations_1.createCaseSensitivityObservations)({ lstat, platform, readdir, realpath });
|
|
62
46
|
const resolve = (location) => {
|
|
63
47
|
const normalized = (0, resolveFilesystemPath_1.resolveFilesystemPath)(location, platform);
|
|
64
48
|
const cached = identities.get(normalized);
|
|
@@ -193,137 +177,12 @@ function cachedCaseSensitivity(cache, caseSensitive, directory) {
|
|
|
193
177
|
function physicalRealpath(location) {
|
|
194
178
|
return node_fs_1.default.realpathSync.native?.(location) ?? node_fs_1.default.realpathSync(location);
|
|
195
179
|
}
|
|
196
|
-
function filesystemDirectoryIsCaseSensitive(directory, platform, operations) {
|
|
197
|
-
const pathApi = platform === "win32" ? node_path_1.default.win32 : node_path_1.default.posix;
|
|
198
|
-
let entries;
|
|
199
|
-
try {
|
|
200
|
-
entries = operations.readdir(directory);
|
|
201
|
-
}
|
|
202
|
-
catch {
|
|
203
|
-
return undefined;
|
|
204
|
-
}
|
|
205
|
-
const foldedNames = new Map();
|
|
206
|
-
for (const name of entries) {
|
|
207
|
-
const folded = foldAsciiCase(name);
|
|
208
|
-
const previous = foldedNames.get(folded);
|
|
209
|
-
if (previous !== undefined && previous !== name)
|
|
210
|
-
return true;
|
|
211
|
-
foldedNames.set(folded, name);
|
|
212
|
-
}
|
|
213
|
-
for (const name of entries) {
|
|
214
|
-
const alternate = alternateCase(name);
|
|
215
|
-
if (alternate === name)
|
|
216
|
-
continue;
|
|
217
|
-
try {
|
|
218
|
-
operations.lstat(pathApi.join(directory, alternate));
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
if (isMissingFilesystemEntry(error)) {
|
|
222
|
-
// Enumeration is not an atomic snapshot. An absent alternate proves
|
|
223
|
-
// sensitivity only if the original spelling still names an entry.
|
|
224
|
-
try {
|
|
225
|
-
operations.lstat(pathApi.join(directory, name));
|
|
226
|
-
return true;
|
|
227
|
-
}
|
|
228
|
-
catch (originalError) {
|
|
229
|
-
if (isMissingFilesystemEntry(originalError) === false)
|
|
230
|
-
throw originalError;
|
|
231
|
-
}
|
|
232
|
-
continue;
|
|
233
|
-
}
|
|
234
|
-
throw error;
|
|
235
|
-
}
|
|
236
|
-
try {
|
|
237
|
-
const actual = (0, resolveFilesystemPath_1.resolveFilesystemPath)(operations.realpath(pathApi.join(directory, name)), platform);
|
|
238
|
-
const alias = (0, resolveFilesystemPath_1.resolveFilesystemPath)(operations.realpath(pathApi.join(directory, alternate)), platform);
|
|
239
|
-
return actual !== alias;
|
|
240
|
-
}
|
|
241
|
-
catch (error) {
|
|
242
|
-
if (isMissingFilesystemEntry(error) === false)
|
|
243
|
-
throw error;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
if (platform === "darwin") {
|
|
247
|
-
// APFS/HFS case semantics are volume-wide. An empty directory has no child
|
|
248
|
-
// name to probe, so ask the same read-only question of its existing name in
|
|
249
|
-
// the parent and walk upward until a name with ASCII case is available.
|
|
250
|
-
// This avoids a write probe while still distinguishing default APFS from a
|
|
251
|
-
// case-sensitive volume.
|
|
252
|
-
let current = (0, resolveFilesystemPath_1.resolveFilesystemPath)(directory, platform);
|
|
253
|
-
while (true) {
|
|
254
|
-
const parent = pathApi.dirname(current);
|
|
255
|
-
if (parent === current)
|
|
256
|
-
break;
|
|
257
|
-
// Names are interpreted by their parent; another mount is not evidence
|
|
258
|
-
// of the directory's own volume case policy.
|
|
259
|
-
if (operations.lstat(current).dev !== operations.lstat(parent).dev)
|
|
260
|
-
return undefined;
|
|
261
|
-
const name = pathApi.basename(current);
|
|
262
|
-
const alternate = alternateCase(name);
|
|
263
|
-
if (alternate !== name) {
|
|
264
|
-
try {
|
|
265
|
-
const actual = (0, resolveFilesystemPath_1.resolveFilesystemPath)(operations.realpath(current), platform);
|
|
266
|
-
const alias = (0, resolveFilesystemPath_1.resolveFilesystemPath)(operations.realpath(pathApi.join(parent, alternate)), platform);
|
|
267
|
-
return actual !== alias;
|
|
268
|
-
}
|
|
269
|
-
catch (error) {
|
|
270
|
-
if (isMissingFilesystemEntry(error) === false)
|
|
271
|
-
throw error;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
current = parent;
|
|
275
|
-
}
|
|
276
|
-
return undefined;
|
|
277
|
-
}
|
|
278
|
-
if (platform !== "win32")
|
|
279
|
-
return undefined;
|
|
280
|
-
// Node does not expose the Windows per-directory flag. Prefer fsutil's
|
|
281
|
-
// read-only answer; unavailable capability remains unknown.
|
|
282
|
-
const queried = queryWindowsDirectoryCaseSensitivity(directory);
|
|
283
|
-
if (queried !== undefined)
|
|
284
|
-
return queried;
|
|
285
|
-
return undefined;
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Read the per-directory flag without depending on fsutil's display language.
|
|
289
|
-
*
|
|
290
|
-
* English output is cheap to recognize directly. Other Windows locales write
|
|
291
|
-
* console-code-page bytes that Node cannot reliably decode, so their raw
|
|
292
|
-
* message is interpreted against the volume-root query.
|
|
293
|
-
*/
|
|
294
|
-
function queryWindowsDirectoryCaseSensitivity(directory) {
|
|
295
|
-
const result = queryWindowsDirectoryCaseSensitivityBytes(directory);
|
|
296
|
-
if (result === undefined)
|
|
297
|
-
return undefined;
|
|
298
|
-
const volumeRoot = node_path_1.default.win32.parse(directory).root;
|
|
299
|
-
const direct = (0, parseWindowsDirectoryCaseSensitivity_1.parseWindowsDirectoryCaseSensitivity)(result, undefined, volumeRoot);
|
|
300
|
-
if (direct !== undefined)
|
|
301
|
-
return direct;
|
|
302
|
-
const volume = queryWindowsDirectoryCaseSensitivityBytes(volumeRoot);
|
|
303
|
-
return (0, parseWindowsDirectoryCaseSensitivity_1.parseWindowsDirectoryCaseSensitivity)(result, volume, volumeRoot);
|
|
304
|
-
}
|
|
305
|
-
function queryWindowsDirectoryCaseSensitivityBytes(directory) {
|
|
306
|
-
const args = ["file", "queryCaseSensitiveInfo", directory];
|
|
307
|
-
const result = E2ETrace_1.E2ETrace.synchronous("fsutil.exe", args, {}, "path-case-probe", () => OwnedSynchronousProcess_1.OwnedSynchronousProcess.launch("fsutil.exe", args, {
|
|
308
|
-
windowsHide: true,
|
|
309
|
-
}) ?? node_child_process_1.default.spawnSync("fsutil.exe", args, { windowsHide: true }));
|
|
310
|
-
return result.error === undefined &&
|
|
311
|
-
result.status === 0 &&
|
|
312
|
-
Buffer.isBuffer(result.stdout)
|
|
313
|
-
? result.stdout
|
|
314
|
-
: undefined;
|
|
315
|
-
}
|
|
316
180
|
function filesystemPathIdentityKey(location, platform) {
|
|
317
181
|
if (platform !== "win32")
|
|
318
182
|
return location;
|
|
319
183
|
const root = node_path_1.default.win32.parse(location).root;
|
|
320
184
|
return `${root.toLowerCase()}${location.slice(root.length)}`;
|
|
321
185
|
}
|
|
322
|
-
function alternateCase(value) {
|
|
323
|
-
return value.replace(/[A-Za-z]/g, (character) => character === character.toLowerCase()
|
|
324
|
-
? character.toUpperCase()
|
|
325
|
-
: character.toLowerCase());
|
|
326
|
-
}
|
|
327
186
|
/** ASCII folding is the case equivalence observed by the read-only probes. */
|
|
328
187
|
function foldAsciiCase(value) {
|
|
329
188
|
return value.replace(/[A-Z]/g, (character) => character.toLowerCase());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createFilesystemPathIdentityContext.js","sourceRoot":"","sources":["../../../src/internal/pathIdentity/createFilesystemPathIdentityContext.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createFilesystemPathIdentityContext.js","sourceRoot":"","sources":["../../../src/internal/pathIdentity/createFilesystemPathIdentityContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
export * from "./pathIdentity/FilesystemPathIdentity";
|
|
17
17
|
export * from "./pathIdentity/FilesystemPathIdentityOperations";
|
|
18
18
|
export * from "./pathIdentity/FilesystemPathIdentityContext";
|
|
19
|
+
export * from "./pathIdentity/createCaseSensitivityObservations";
|
|
19
20
|
export * from "./pathIdentity/createFilesystemPathIdentityContext";
|
|
20
21
|
export * from "./pathIdentity/isFilesystemPathIdentityWithin";
|
|
21
22
|
export * from "./pathIdentity/resolveFilesystemPath";
|
|
@@ -32,6 +32,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
32
32
|
__exportStar(require("./pathIdentity/FilesystemPathIdentity"), exports);
|
|
33
33
|
__exportStar(require("./pathIdentity/FilesystemPathIdentityOperations"), exports);
|
|
34
34
|
__exportStar(require("./pathIdentity/FilesystemPathIdentityContext"), exports);
|
|
35
|
+
__exportStar(require("./pathIdentity/createCaseSensitivityObservations"), exports);
|
|
35
36
|
__exportStar(require("./pathIdentity/createFilesystemPathIdentityContext"), exports);
|
|
36
37
|
__exportStar(require("./pathIdentity/isFilesystemPathIdentityWithin"), exports);
|
|
37
38
|
__exportStar(require("./pathIdentity/resolveFilesystemPath"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectInputPathIdentity.js","sourceRoot":"","sources":["../../src/internal/projectInputPathIdentity.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,wEAAsD;AACtD,kFAAgE;AAChE,+EAA6D;AAC7D,qFAAmE;AACnE,gFAA8D;AAC9D,uEAAqD;AACrD,0EAAwD;AACxD,oFAAkE;AAClE,iFAA+D;AAC/D,uFAAqE;AACrE,kFAAgE;AAChE,yEAAuD;AACvD,sFAAoE"}
|
|
1
|
+
{"version":3,"file":"projectInputPathIdentity.js","sourceRoot":"","sources":["../../src/internal/projectInputPathIdentity.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,wEAAsD;AACtD,kFAAgE;AAChE,+EAA6D;AAC7D,mFAAiE;AACjE,qFAAmE;AACnE,gFAA8D;AAC9D,uEAAqD;AACrD,0EAAwD;AACxD,oFAAkE;AAClE,iFAA+D;AAC/D,uFAAqE;AACrE,kFAAgE;AAChE,yEAAuD;AACvD,sFAAoE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load an owned CommonJS worker through a module URL while retaining Node's
|
|
3
|
+
* inherited execution options and preload hooks.
|
|
4
|
+
*
|
|
5
|
+
* A parent launched with --input-type interprets stdin or evaluated source.
|
|
6
|
+
* With a preload, module resolution rejects that inherited option at a file
|
|
7
|
+
* worker entry before the worker can start. A supported data URL supplies
|
|
8
|
+
* module source that requires the real entry. Setting execArgv instead would
|
|
9
|
+
* replace Node's inherited-option handling and can reject otherwise valid
|
|
10
|
+
* process options such as --max-old-space-size. createRequire preserves the
|
|
11
|
+
* entry's CommonJS resolution, including literal POSIX backslashes that file
|
|
12
|
+
* URL imports reject as encoded separators. The worker entry must use the
|
|
13
|
+
* package's CommonJS source or emitted format.
|
|
14
|
+
*
|
|
15
|
+
* @param filename Native entry path, resolved from cwd when relative.
|
|
16
|
+
* @returns A data URL accepted by the Worker constructor; it owns no thread.
|
|
17
|
+
* @evidence contracts/common.md#principled-implementation Node documents data URL worker entries and inherited options; a module-source entry requires the selected CommonJS owner without applying the parent's stdin-only input type to that file's initial module resolution.
|
|
18
|
+
* @evidence contracts/common.md#clear-and-simple-design One URL constructor owns the bootstrap representation while callers retain worker options, thread lifetime and actual entry selection.
|
|
19
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Supported createRequire loads the actual CommonJS owner; no flags are guessed, stripped or replaced and no foreign process state is changed.
|
|
20
|
+
* @evidence contracts/common.md#meaningful-documentation Prose explains the stdin inheritance failure, the explicit-execArgv hazard, CommonJS entry requirements and the native path input.
|
|
21
|
+
* @evidence contracts/portability.md#os-neutral-implementation Native path resolution and createRequire retain filesystem path spelling, including POSIX literal backslashes; JSON string encoding and data URL encoding separate that path from JavaScript and URL syntax without routing it through ESM file-URL separator rules.
|
|
22
|
+
* @evidence contracts/performance.md#efficient-algorithms Native path resolution, string encoding and data URL construction each visit entry-path text; the returned URL and its module source occupy linear space in that text.
|
|
23
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work Each call represents its selected entry and retains no computed answer.
|
|
24
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This operation returns a URL without acquiring a worker, file handle or persistent state; the caller owns the URL and thread.
|
|
25
|
+
* @see https://nodejs.org/api/worker_threads.html#new-workerfilename-options
|
|
26
|
+
* @see https://nodejs.org/api/cli.html#--input-typetype
|
|
27
|
+
*/
|
|
28
|
+
export declare function workerModuleUrl(filename: string): URL;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.workerModuleUrl = workerModuleUrl;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
/**
|
|
9
|
+
* Load an owned CommonJS worker through a module URL while retaining Node's
|
|
10
|
+
* inherited execution options and preload hooks.
|
|
11
|
+
*
|
|
12
|
+
* A parent launched with --input-type interprets stdin or evaluated source.
|
|
13
|
+
* With a preload, module resolution rejects that inherited option at a file
|
|
14
|
+
* worker entry before the worker can start. A supported data URL supplies
|
|
15
|
+
* module source that requires the real entry. Setting execArgv instead would
|
|
16
|
+
* replace Node's inherited-option handling and can reject otherwise valid
|
|
17
|
+
* process options such as --max-old-space-size. createRequire preserves the
|
|
18
|
+
* entry's CommonJS resolution, including literal POSIX backslashes that file
|
|
19
|
+
* URL imports reject as encoded separators. The worker entry must use the
|
|
20
|
+
* package's CommonJS source or emitted format.
|
|
21
|
+
*
|
|
22
|
+
* @param filename Native entry path, resolved from cwd when relative.
|
|
23
|
+
* @returns A data URL accepted by the Worker constructor; it owns no thread.
|
|
24
|
+
* @evidence contracts/common.md#principled-implementation Node documents data URL worker entries and inherited options; a module-source entry requires the selected CommonJS owner without applying the parent's stdin-only input type to that file's initial module resolution.
|
|
25
|
+
* @evidence contracts/common.md#clear-and-simple-design One URL constructor owns the bootstrap representation while callers retain worker options, thread lifetime and actual entry selection.
|
|
26
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Supported createRequire loads the actual CommonJS owner; no flags are guessed, stripped or replaced and no foreign process state is changed.
|
|
27
|
+
* @evidence contracts/common.md#meaningful-documentation Prose explains the stdin inheritance failure, the explicit-execArgv hazard, CommonJS entry requirements and the native path input.
|
|
28
|
+
* @evidence contracts/portability.md#os-neutral-implementation Native path resolution and createRequire retain filesystem path spelling, including POSIX literal backslashes; JSON string encoding and data URL encoding separate that path from JavaScript and URL syntax without routing it through ESM file-URL separator rules.
|
|
29
|
+
* @evidence contracts/performance.md#efficient-algorithms Native path resolution, string encoding and data URL construction each visit entry-path text; the returned URL and its module source occupy linear space in that text.
|
|
30
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work Each call represents its selected entry and retains no computed answer.
|
|
31
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This operation returns a URL without acquiring a worker, file handle or persistent state; the caller owns the URL and thread.
|
|
32
|
+
* @see https://nodejs.org/api/worker_threads.html#new-workerfilename-options
|
|
33
|
+
* @see https://nodejs.org/api/cli.html#--input-typetype
|
|
34
|
+
*/
|
|
35
|
+
function workerModuleUrl(filename) {
|
|
36
|
+
const entry = JSON.stringify(node_path_1.default.resolve(filename));
|
|
37
|
+
const source = `import { createRequire } from "node:module"; createRequire(${entry})(${entry});`;
|
|
38
|
+
return new URL(`data:text/javascript,${encodeURIComponent(source)}`);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=workerModuleUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerModuleUrl.js","sourceRoot":"","sources":["../../src/internal/workerModuleUrl.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,yBAAgC,QAAgB;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,8DAA8D,KAAK,KAAK,KAAK,IAAI,CAAC;IACjG,OAAO,IAAI,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -9,6 +9,7 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
9
9
|
const runBuild_1 = require("../../compiler/internal/build/runBuild");
|
|
10
10
|
const readProjectConfig_1 = require("../../compiler/internal/project/readProjectConfig");
|
|
11
11
|
const readEffectiveCompilerOptions_1 = require("../../compiler/internal/readEffectiveCompilerOptions");
|
|
12
|
+
const SidecarEnvironment_1 = require("../../compiler/internal/sharedHost/SidecarEnvironment");
|
|
12
13
|
const createFilesystemPathIdentityContext_1 = require("../../internal/pathIdentity/createFilesystemPathIdentityContext");
|
|
13
14
|
const DependencyBuildGeneration_1 = require("./runtime/DependencyBuildGeneration");
|
|
14
15
|
const runtimeCompilerArgs_1 = require("./runtimeCompilerArgs");
|
|
@@ -128,7 +129,7 @@ function buildSingleRootProject(props) {
|
|
|
128
129
|
tsconfig,
|
|
129
130
|
});
|
|
130
131
|
node_fs_1.default.mkdirSync(props.emitDir, { recursive: true });
|
|
131
|
-
const effectiveOptions = (0, readEffectiveCompilerOptions_1.readEffectiveCompilerOptions)(project, options.passthrough, options.binary);
|
|
132
|
+
const effectiveOptions = (0, readEffectiveCompilerOptions_1.readEffectiveCompilerOptions)(project, options.passthrough, options.binary, SidecarEnvironment_1.SidecarEnvironment.merge(process.env, options.env));
|
|
132
133
|
const result = (0, runBuild_1.runBuild)({
|
|
133
134
|
binary: options.binary,
|
|
134
135
|
checkers: options.checkers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildSingleRootProject.js","sourceRoot":"","sources":["../../../src/launcher/internal/buildSingleRootProject.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"buildSingleRootProject.js","sourceRoot":"","sources":["../../../src/launcher/internal/buildSingleRootProject.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,10 +25,11 @@ const spawnNative_1 = require("../../compiler/internal/spawnNative");
|
|
|
25
25
|
* @evidenceExclude contracts/performance.md#reuse-equivalent-work This helper queries the current selected compiler and package metadata each call rather than retaining its banner; delegated runtime capability/cache policies are owned by their helpers.
|
|
26
26
|
*/
|
|
27
27
|
function getCompilerVersionText(options = {}) {
|
|
28
|
-
const
|
|
28
|
+
const env = SidecarEnvironment_1.SidecarEnvironment.merge(process.env, options.env);
|
|
29
|
+
const tsgo = (0, resolveTsgo_1.resolveTsgo)({ ...options, env });
|
|
29
30
|
const res = (0, spawnNative_1.spawnNative)(tsgo.binary, ["--version"], {
|
|
30
31
|
cwd: options.cwd,
|
|
31
|
-
env
|
|
32
|
+
env,
|
|
32
33
|
});
|
|
33
34
|
if (res.error || res.status !== 0) {
|
|
34
35
|
throw new Error("ttsc.version: failed: " + ((0, outputText_1.outputText)(res.stderr) || res.error?.message));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCompilerVersionText.js","sourceRoot":"","sources":["../../../src/launcher/internal/getCompilerVersionText.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B,mEAAgE;AAChE,qEAAkE;AAClE,8FAA2F;AAC3F,qEAAkE;AAGlE;;;;;;;;;;;;;GAaG;AACH,gCACE,OAAO,GAAsB,EAAE;IAE/B,MAAM,
|
|
1
|
+
{"version":3,"file":"getCompilerVersionText.js","sourceRoot":"","sources":["../../../src/launcher/internal/getCompilerVersionText.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B,mEAAgE;AAChE,qEAAkE;AAClE,8FAA2F;AAC3F,qEAAkE;AAGlE;;;;;;;;;;;;;GAaG;AACH,gCACE,OAAO,GAAsB,EAAE;IAE/B,MAAM,GAAG,GAAG,uCAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAA,yBAAW,EAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAA,yBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE;QAClD,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,CAAC,IAAA,uBAAU,EAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,qBAAqB,EAAE,KAAK,IAAA,uBAAU,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB;IAC5B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAEnD,CAAC;QACF,OAAO,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
* Compiler flags before the first entry, repeated preloads and launcher-owned
|
|
5
5
|
* settings are separated once through the shared flag schema. Terminal requests
|
|
6
6
|
* are recognized only before the entry; unsupported watch/build requests fail
|
|
7
|
-
* before a check, build or program is started. These decisions inspect the
|
|
8
|
-
* argv frame; this parser does not read response-file contents or
|
|
9
|
-
* eventual native effects. Preparation inspects response frames
|
|
10
|
-
* project's actual compiler directory before requesting its
|
|
7
|
+
* before a check, build or program is started. These decisions inspect the
|
|
8
|
+
* supplied argv frame; this parser does not read response-file contents or
|
|
9
|
+
* certify their eventual native effects. Preparation inspects response frames
|
|
10
|
+
* at the selected project's actual compiler directory before requesting its
|
|
11
|
+
* build.
|
|
11
12
|
*
|
|
12
13
|
* @param argv Command tokens as received from the launcher.
|
|
13
14
|
* @returns A terminal request or the launcher's typed option record.
|