ttsc 0.31.0 → 0.31.2
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/platform/main.go +2 -2
- package/internal/sourceprocess/contain_windows.go +10 -13
- package/internal/sourceprocess/started_windows.go +41 -0
- package/internal/sourceprocess/windows_started_publication_distinguishes_pending_from_refusal_test.go +76 -0
- package/internal/watchhelper/run.go +30 -20
- package/internal/watchhelper/run_other.go +4 -4
- package/internal/watchhelper/run_windows.go +471 -0
- package/internal/watchhelper/watchhelper.go +8 -2
- package/internal/watchhelper/windows_notifications_preserve_mutations_without_access_noise_test.go +506 -0
- package/lib/compiler/internal/build/BuildExecution.d.ts +4 -2
- package/lib/compiler/internal/build/BuildExecution.js +40 -12
- package/lib/compiler/internal/build/BuildExecution.js.map +1 -1
- package/lib/compiler/internal/startResidentTransform.js +5 -4
- package/lib/compiler/internal/startResidentTransform.js.map +1 -1
- package/lib/compiler/internal/transformProjectInMemory.js +9 -7
- package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
- package/lib/internal/javascriptRuntimeCapabilities.d.ts +13 -4
- package/lib/internal/javascriptRuntimeCapabilities.js +56 -6
- package/lib/internal/javascriptRuntimeCapabilities.js.map +1 -1
- package/lib/internal/nativeBinary.d.ts +3 -3
- package/lib/internal/nativeBinary.js +3 -3
- package/lib/internal/pluginSource.d.ts +1 -0
- package/lib/internal/pluginSource.js +1 -0
- package/lib/internal/pluginSource.js.map +1 -1
- package/lib/internal/resolveNodeBinary.d.ts +6 -1
- package/lib/internal/resolveNodeBinary.js +6 -2
- package/lib/internal/resolveNodeBinary.js.map +1 -1
- package/lib/internal/runtimeExecutableIdentity.d.ts +22 -13
- package/lib/internal/runtimeExecutableIdentity.js +192 -102
- package/lib/internal/runtimeExecutableIdentity.js.map +1 -1
- package/lib/launcher/internal/runtime/installRuntimeHooks.js +58 -4
- package/lib/launcher/internal/runtime/installRuntimeHooks.js.map +1 -1
- package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.d.ts +5 -1
- package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js +7 -2
- package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js.map +1 -1
- package/lib/launcher/internal/ttscserver/runTtscserver.js +8 -1
- package/lib/launcher/internal/ttscserver/runTtscserver.js.map +1 -1
- package/lib/plugin/internal/CapabilityResolutionFormat.d.ts +21 -62
- package/lib/plugin/internal/CapabilityResolutionFormat.js +15 -106
- package/lib/plugin/internal/CapabilityResolutionFormat.js.map +1 -1
- package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.d.ts +6 -0
- package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js +4 -4
- package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js.map +1 -1
- package/lib/plugin/internal/load/loadProjectPlugins.d.ts +24 -14
- package/lib/plugin/internal/load/loadProjectPlugins.js +141 -56
- package/lib/plugin/internal/load/loadProjectPlugins.js.map +1 -1
- package/lib/plugin/internal/readCapabilityResolution.d.ts +6 -0
- package/lib/plugin/internal/readCapabilityResolution.js +8 -5
- package/lib/plugin/internal/readCapabilityResolution.js.map +1 -1
- package/lib/plugin/internal/source/GoEnvironmentReading.d.ts +48 -0
- package/lib/plugin/internal/source/GoEnvironmentReading.js +156 -0
- package/lib/plugin/internal/source/GoEnvironmentReading.js.map +1 -0
- package/lib/plugin/internal/source/NativeSourcePackages.d.ts +51 -13
- package/lib/plugin/internal/source/NativeSourcePackages.js +182 -27
- package/lib/plugin/internal/source/NativeSourcePackages.js.map +1 -1
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.d.ts +42 -3
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js +68 -7
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js.map +1 -1
- package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.d.ts +5 -3
- package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.js +14 -8
- package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.js.map +1 -1
- package/lib/plugin/internal/source/PluginContentIdentities.d.ts +265 -0
- package/lib/plugin/internal/source/PluginContentIdentities.js +452 -0
- package/lib/plugin/internal/source/PluginContentIdentities.js.map +1 -0
- package/lib/plugin/internal/source/PluginLoadAnswers.d.ts +63 -0
- package/lib/plugin/internal/source/PluginLoadAnswers.js +128 -0
- package/lib/plugin/internal/source/PluginLoadAnswers.js.map +1 -0
- package/lib/plugin/internal/source/SourceBuildCacheLayout.d.ts +10 -0
- package/lib/plugin/internal/source/SourceBuildCacheLayout.js +12 -0
- package/lib/plugin/internal/source/SourceBuildCacheLayout.js.map +1 -1
- package/lib/plugin/internal/source/SourcePluginWorkspace.d.ts +53 -19
- package/lib/plugin/internal/source/SourcePluginWorkspace.js +111 -22
- package/lib/plugin/internal/source/SourcePluginWorkspace.js.map +1 -1
- package/lib/plugin/internal/source/buildSourcePlugin.d.ts +34 -18
- package/lib/plugin/internal/source/buildSourcePlugin.js +52 -24
- package/lib/plugin/internal/source/buildSourcePlugin.js.map +1 -1
- package/lib/plugin/internal/source/computeCacheKey.d.ts +25 -7
- package/lib/plugin/internal/source/computeCacheKey.js +85 -34
- package/lib/plugin/internal/source/computeCacheKey.js.map +1 -1
- package/lib/plugin/internal/source/hashPluginBuildEnvironment.d.ts +7 -3
- package/lib/plugin/internal/source/hashPluginBuildEnvironment.js +75 -102
- package/lib/plugin/internal/source/hashPluginBuildEnvironment.js.map +1 -1
- package/lib/plugin/internal/source/pluginBuildEnvironment.d.ts +8 -3
- package/lib/plugin/internal/source/pluginBuildEnvironment.js +8 -4
- package/lib/plugin/internal/source/pluginBuildEnvironment.js.map +1 -1
- package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js +12 -2
- package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js.map +1 -1
- package/lib/plugin/internal/source/pluginBuildVersions.d.ts +2 -2
- package/lib/plugin/internal/source/pluginBuildVersions.js +4 -17
- package/lib/plugin/internal/source/pluginBuildVersions.js.map +1 -1
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.d.ts +6 -5
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js +10 -17
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js.map +1 -1
- package/lib/plugin/internal/source/pluginSourceState.d.ts +6 -2
- package/lib/plugin/internal/source/pluginSourceState.js +20 -8
- package/lib/plugin/internal/source/pluginSourceState.js.map +1 -1
- package/lib/plugin/internal/source/pluginSourceStateHolds.d.ts +7 -2
- package/lib/plugin/internal/source/pluginSourceStateHolds.js +12 -7
- package/lib/plugin/internal/source/pluginSourceStateHolds.js.map +1 -1
- package/lib/plugin/internal/source/processPluginBuildEnvironment.d.ts +7 -2
- package/lib/plugin/internal/source/processPluginBuildEnvironment.js +8 -3
- package/lib/plugin/internal/source/processPluginBuildEnvironment.js.map +1 -1
- package/lib/plugin/internal/source/provenPluginSourceDigest.d.ts +28 -0
- package/lib/plugin/internal/source/provenPluginSourceDigest.js +41 -0
- package/lib/plugin/internal/source/provenPluginSourceDigest.js.map +1 -0
- package/lib/plugin/internal/source/pruneCacheFileRoot.d.ts +3 -2
- package/lib/plugin/internal/source/pruneCacheFileRoot.js +3 -2
- package/lib/plugin/internal/source/pruneCacheFileRoot.js.map +1 -1
- package/lib/plugin/internal/source/ttscPackageVersion.d.ts +26 -0
- package/lib/plugin/internal/source/ttscPackageVersion.js +47 -0
- package/lib/plugin/internal/source/ttscPackageVersion.js.map +1 -0
- package/lib/plugin/internal/writeCapabilityResolution.d.ts +6 -0
- package/lib/plugin/internal/writeCapabilityResolution.js +11 -7
- package/lib/plugin/internal/writeCapabilityResolution.js.map +1 -1
- package/lib/plugin/resolveCapabilityPlugins.js +67 -15
- package/lib/plugin/resolveCapabilityPlugins.js.map +1 -1
- package/package.json +8 -8
- package/src/compiler/internal/build/BuildExecution.ts +46 -13
- package/src/compiler/internal/startResidentTransform.ts +12 -3
- package/src/compiler/internal/transformProjectInMemory.ts +10 -2
- package/src/internal/javascriptRuntimeCapabilities.ts +71 -5
- package/src/internal/nativeBinary.ts +3 -3
- package/src/internal/pluginSource.ts +1 -0
- package/src/internal/resolveNodeBinary.ts +12 -1
- package/src/internal/runtimeExecutableIdentity.ts +227 -141
- package/src/launcher/internal/runtime/installRuntimeHooks.ts +68 -3
- package/src/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.ts +11 -2
- package/src/launcher/internal/ttscserver/runTtscserver.ts +18 -1
- package/src/plugin/internal/CapabilityResolutionFormat.ts +23 -107
- package/src/plugin/internal/load/PluginDescriptorEvaluationCache.ts +14 -4
- package/src/plugin/internal/load/loadProjectPlugins.ts +421 -211
- package/src/plugin/internal/readCapabilityResolution.ts +17 -6
- package/src/plugin/internal/source/GoEnvironmentReading.ts +178 -0
- package/src/plugin/internal/source/NativeSourcePackages.ts +365 -48
- package/src/plugin/internal/source/PluginBuildEnvironmentReadings.ts +83 -5
- package/src/plugin/internal/source/PluginBuildEnvironmentWitness.ts +18 -8
- package/src/plugin/internal/source/PluginContentIdentities.ts +563 -0
- package/src/plugin/internal/source/PluginLoadAnswers.ts +151 -0
- package/src/plugin/internal/source/SourceBuildCacheLayout.ts +14 -0
- package/src/plugin/internal/source/SourcePluginWorkspace.ts +148 -25
- package/src/plugin/internal/source/buildSourcePlugin.ts +104 -36
- package/src/plugin/internal/source/computeCacheKey.ts +129 -55
- package/src/plugin/internal/source/hashPluginBuildEnvironment.ts +152 -105
- package/src/plugin/internal/source/pluginBuildEnvironment.ts +9 -2
- package/src/plugin/internal/source/pluginBuildEnvironmentWorker.ts +18 -2
- package/src/plugin/internal/source/pluginBuildVersions.ts +5 -26
- package/src/plugin/internal/source/pluginModuleReplaceDirectories.ts +13 -25
- package/src/plugin/internal/source/pluginSourceState.ts +28 -12
- package/src/plugin/internal/source/pluginSourceStateHolds.ts +15 -8
- package/src/plugin/internal/source/processPluginBuildEnvironment.ts +8 -2
- package/src/plugin/internal/source/provenPluginSourceDigest.ts +45 -0
- package/src/plugin/internal/source/pruneCacheFileRoot.ts +3 -2
- package/src/plugin/internal/source/ttscPackageVersion.ts +45 -0
- package/src/plugin/internal/writeCapabilityResolution.ts +29 -8
- package/src/plugin/resolveCapabilityPlugins.ts +87 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginSourceStateHolds.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginSourceStateHolds.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"pluginSourceStateHolds.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginSourceStateHolds.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AACxD,mFAAgF;AAChF,yEAAsE;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,gCACE,SAAiB,EACjB,KAAa,EACb,OAAO,GAAoD,EAAE;IAE7D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY,IAAI,IAAA,mDAAwB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3E,IAAI,IAAA,qCAAiB,EAAC,SAAS,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,KAAK,KAAK;QACvE,OAAO,IAAI,CAAC;IACd,IAAA,6DAA6B,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5D,OAAO,IAAA,qCAAiB,EAAC,SAAS,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,KAAK,KAAK,CAAC;AAC/E,CAAC"}
|
|
@@ -19,15 +19,20 @@
|
|
|
19
19
|
* possible metadata-restored change. The build itself never reads through here:
|
|
20
20
|
* it keys each binary on a fresh read.
|
|
21
21
|
*
|
|
22
|
+
* A caller that names its project lets a reading this process does not hold
|
|
23
|
+
* prove the SDK and executables from that project's plugin cache records
|
|
24
|
+
* (#1725) instead of reading the whole GOROOT in every new process.
|
|
25
|
+
*
|
|
22
26
|
* @param directory The directory a build runs `go` in.
|
|
23
27
|
* @param refresh Whether to read the environment again rather than reuse it.
|
|
28
|
+
* @param projectRoot Project whose plugin cache root holds the records.
|
|
24
29
|
* @evidence contracts/common.md#principled-implementation Variable serialization is sorted and length-delimited; reuse additionally requires unchanged pre-read metadata for every external dependency, including all contributing GOROOT directories and files, under the witness's documented metadata-distinguishability premise.
|
|
25
30
|
* @evidence contracts/common.md#clear-and-simple-design One process-local map owns environment memoization; fresh construction and witness validation remain separate operations shared with build verification.
|
|
26
31
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts Refresh performs the real environment read rather than assuming that a stable compiler path or quiet source tree implies a stable toolchain.
|
|
27
32
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain why environment probing is retained, its variable/path invalidation, and why builds still read fresh; descriptive prose and tags are separated.
|
|
28
33
|
* @evidence contracts/portability.md#os-neutral-implementation Native environment and filesystem identity are delegated to the shared platform-aware probe and metadata witness rather than inferred from an OS name.
|
|
29
34
|
* @evidence contracts/performance.md#efficient-algorithms The delegated owner serializes/hashes variable names/values after text-sensitive sorting and validates witnessed native paths. A qualified hit avoids cold tool/content preparation but not native lookup/path/link/text costs. Misses/refresh delegate actual Go/toolchain/SDK readings; V/P counts alone do not bound all bytes or native work.
|
|
30
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Directory and all effective variables identify a candidate reading; the complete external-path witness must hold, otherwise the environment is read and its record replaced.
|
|
35
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Directory and all effective variables identify a candidate reading; the complete external-path witness must hold, otherwise the environment is read and its record replaced. A miss naming a project proves the SDK and executables from that project's record store across processes.
|
|
31
36
|
* @evidence contracts/performance.md#bound-retention-and-release-resources PluginBuildEnvironmentReadings owns the process-shared map and asynchronous worker/request lifetimes, not this forwarding call. Existing keys are replaced, but distinct directory/variable combinations retain historical witnesses without an eviction bound; consumers and the owner govern that retention.
|
|
32
37
|
*/
|
|
33
|
-
export declare function processPluginBuildEnvironment(directory: string, refresh?: boolean): string;
|
|
38
|
+
export declare function processPluginBuildEnvironment(directory: string, refresh?: boolean, projectRoot?: string): string;
|
|
@@ -23,18 +23,23 @@ const PluginBuildEnvironmentReadings_1 = require("./PluginBuildEnvironmentReadin
|
|
|
23
23
|
* possible metadata-restored change. The build itself never reads through here:
|
|
24
24
|
* it keys each binary on a fresh read.
|
|
25
25
|
*
|
|
26
|
+
* A caller that names its project lets a reading this process does not hold
|
|
27
|
+
* prove the SDK and executables from that project's plugin cache records
|
|
28
|
+
* (#1725) instead of reading the whole GOROOT in every new process.
|
|
29
|
+
*
|
|
26
30
|
* @param directory The directory a build runs `go` in.
|
|
27
31
|
* @param refresh Whether to read the environment again rather than reuse it.
|
|
32
|
+
* @param projectRoot Project whose plugin cache root holds the records.
|
|
28
33
|
* @evidence contracts/common.md#principled-implementation Variable serialization is sorted and length-delimited; reuse additionally requires unchanged pre-read metadata for every external dependency, including all contributing GOROOT directories and files, under the witness's documented metadata-distinguishability premise.
|
|
29
34
|
* @evidence contracts/common.md#clear-and-simple-design One process-local map owns environment memoization; fresh construction and witness validation remain separate operations shared with build verification.
|
|
30
35
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts Refresh performs the real environment read rather than assuming that a stable compiler path or quiet source tree implies a stable toolchain.
|
|
31
36
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain why environment probing is retained, its variable/path invalidation, and why builds still read fresh; descriptive prose and tags are separated.
|
|
32
37
|
* @evidence contracts/portability.md#os-neutral-implementation Native environment and filesystem identity are delegated to the shared platform-aware probe and metadata witness rather than inferred from an OS name.
|
|
33
38
|
* @evidence contracts/performance.md#efficient-algorithms The delegated owner serializes/hashes variable names/values after text-sensitive sorting and validates witnessed native paths. A qualified hit avoids cold tool/content preparation but not native lookup/path/link/text costs. Misses/refresh delegate actual Go/toolchain/SDK readings; V/P counts alone do not bound all bytes or native work.
|
|
34
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Directory and all effective variables identify a candidate reading; the complete external-path witness must hold, otherwise the environment is read and its record replaced.
|
|
39
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Directory and all effective variables identify a candidate reading; the complete external-path witness must hold, otherwise the environment is read and its record replaced. A miss naming a project proves the SDK and executables from that project's record store across processes.
|
|
35
40
|
* @evidence contracts/performance.md#bound-retention-and-release-resources PluginBuildEnvironmentReadings owns the process-shared map and asynchronous worker/request lifetimes, not this forwarding call. Existing keys are replaced, but distinct directory/variable combinations retain historical witnesses without an eviction bound; consumers and the owner govern that retention.
|
|
36
41
|
*/
|
|
37
|
-
function processPluginBuildEnvironment(directory, refresh = false) {
|
|
38
|
-
return PluginBuildEnvironmentReadings_1.PluginBuildEnvironmentReadings.read(directory, refresh);
|
|
42
|
+
function processPluginBuildEnvironment(directory, refresh = false, projectRoot) {
|
|
43
|
+
return PluginBuildEnvironmentReadings_1.PluginBuildEnvironmentReadings.read(directory, refresh, projectRoot);
|
|
39
44
|
}
|
|
40
45
|
//# sourceMappingURL=processPluginBuildEnvironment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processPluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/processPluginBuildEnvironment.ts"],"names":[],"mappings":";;;AAAA,qFAAkF;AAElF
|
|
1
|
+
{"version":3,"file":"processPluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/processPluginBuildEnvironment.ts"],"names":[],"mappings":";;;AAAA,qFAAkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,uCACE,SAAiB,EACjB,OAAO,GAAG,KAAK,EACf,WAAoB;IAEpB,OAAO,+DAA8B,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `pluginSourceDigest` of a plugin source directory, proven from the
|
|
3
|
+
* records of `projectRoot`'s plugin cache when the caller names its project.
|
|
4
|
+
*
|
|
5
|
+
* WARNING (#1725): a consumer that proves a reported plugin-source state in a
|
|
6
|
+
* new process, such as a bundler worker, a capability host or the language
|
|
7
|
+
* server, read every source byte again because its own memo starts empty. The
|
|
8
|
+
* load that reported the state already recorded this digest
|
|
9
|
+
* (`PluginContentIdentities`), so a process that names the same project reuses
|
|
10
|
+
* it while the files' metadata still holds. Without a project, or when no store
|
|
11
|
+
* can be opened, the bytes are read as before.
|
|
12
|
+
*
|
|
13
|
+
* @param directory The source directory.
|
|
14
|
+
* @param projectRoot Project whose plugin cache root holds the records.
|
|
15
|
+
* @param env Environment selecting that cache root; this process's by default.
|
|
16
|
+
* @returns The digest, as lowercase hex.
|
|
17
|
+
* @throws When a listed source file cannot be read, as `pluginSourceDigest`
|
|
18
|
+
* does.
|
|
19
|
+
* @evidence contracts/common.md#principled-implementation The record store applies its separable-signature rule to exactly the files the digest reads; every unproved premise falls back to the content reader.
|
|
20
|
+
* @evidence contracts/common.md#clear-and-simple-design Store opening and the population proof stay with PluginContentIdentities; this entry only names the project for consumers outside the loader.
|
|
21
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts No path, timestamp or process memo stands for content; the store refuses a root inside the source.
|
|
22
|
+
* @evidence contracts/common.md#meaningful-documentation The paragraphs state the regression, the reuse premise and the fallback.
|
|
23
|
+
* @evidence contracts/portability.md#os-neutral-implementation Cache-root selection and device-keyed references are delegated to the shared owners.
|
|
24
|
+
* @evidence contracts/performance.md#efficient-algorithms A proven digest stats the selected files; an unproven one also reads their bytes once. Opening the store writes two reference probes.
|
|
25
|
+
* @evidence contracts/performance.md#reuse-equivalent-work The digest the load recorded is reused across processes under the same project's store.
|
|
26
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources The store lives for this call; records belong to the cache root's single-file pruning.
|
|
27
|
+
*/
|
|
28
|
+
export declare function provenPluginSourceDigest(directory: string, projectRoot?: string, env?: NodeJS.ProcessEnv): string;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.provenPluginSourceDigest = provenPluginSourceDigest;
|
|
4
|
+
const PluginContentIdentities_1 = require("./PluginContentIdentities");
|
|
5
|
+
/**
|
|
6
|
+
* The `pluginSourceDigest` of a plugin source directory, proven from the
|
|
7
|
+
* records of `projectRoot`'s plugin cache when the caller names its project.
|
|
8
|
+
*
|
|
9
|
+
* WARNING (#1725): a consumer that proves a reported plugin-source state in a
|
|
10
|
+
* new process, such as a bundler worker, a capability host or the language
|
|
11
|
+
* server, read every source byte again because its own memo starts empty. The
|
|
12
|
+
* load that reported the state already recorded this digest
|
|
13
|
+
* (`PluginContentIdentities`), so a process that names the same project reuses
|
|
14
|
+
* it while the files' metadata still holds. Without a project, or when no store
|
|
15
|
+
* can be opened, the bytes are read as before.
|
|
16
|
+
*
|
|
17
|
+
* @param directory The source directory.
|
|
18
|
+
* @param projectRoot Project whose plugin cache root holds the records.
|
|
19
|
+
* @param env Environment selecting that cache root; this process's by default.
|
|
20
|
+
* @returns The digest, as lowercase hex.
|
|
21
|
+
* @throws When a listed source file cannot be read, as `pluginSourceDigest`
|
|
22
|
+
* does.
|
|
23
|
+
* @evidence contracts/common.md#principled-implementation The record store applies its separable-signature rule to exactly the files the digest reads; every unproved premise falls back to the content reader.
|
|
24
|
+
* @evidence contracts/common.md#clear-and-simple-design Store opening and the population proof stay with PluginContentIdentities; this entry only names the project for consumers outside the loader.
|
|
25
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts No path, timestamp or process memo stands for content; the store refuses a root inside the source.
|
|
26
|
+
* @evidence contracts/common.md#meaningful-documentation The paragraphs state the regression, the reuse premise and the fallback.
|
|
27
|
+
* @evidence contracts/portability.md#os-neutral-implementation Cache-root selection and device-keyed references are delegated to the shared owners.
|
|
28
|
+
* @evidence contracts/performance.md#efficient-algorithms A proven digest stats the selected files; an unproven one also reads their bytes once. Opening the store writes two reference probes.
|
|
29
|
+
* @evidence contracts/performance.md#reuse-equivalent-work The digest the load recorded is reused across processes under the same project's store.
|
|
30
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources The store lives for this call; records belong to the cache root's single-file pruning.
|
|
31
|
+
*/
|
|
32
|
+
function provenPluginSourceDigest(directory, projectRoot, env = process.env) {
|
|
33
|
+
return PluginContentIdentities_1.PluginContentIdentities.sourceDirectory(projectRoot === undefined
|
|
34
|
+
? undefined
|
|
35
|
+
: PluginContentIdentities_1.PluginContentIdentities.open({
|
|
36
|
+
projectRoot,
|
|
37
|
+
env,
|
|
38
|
+
sources: [directory],
|
|
39
|
+
}), directory);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=provenPluginSourceDigest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenPluginSourceDigest.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/provenPluginSourceDigest.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,kCACE,SAAiB,EACjB,WAAoB,EACpB,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,OAAO,iDAAuB,CAAC,eAAe,CAC5C,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,iDAAuB,CAAC,IAAI,CAAC;YAC3B,WAAW;YACX,GAAG;YACH,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC,EACN,SAAS,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -2,8 +2,9 @@ import type { IPluginCachePruneOptions } from "./IPluginCachePruneOptions";
|
|
|
2
2
|
/**
|
|
3
3
|
* Opportunistically bound a part of the cache root whose entries are single
|
|
4
4
|
* files: the descriptor evaluations under `descriptors/`, the capability
|
|
5
|
-
* answers under `capabilities/`,
|
|
6
|
-
* `
|
|
5
|
+
* answers under `capabilities/`, the plugin content identities under
|
|
6
|
+
* `identities/`, the plugin-load answers under `answers/`, and the lowered
|
|
7
|
+
* orphan sources under `ttsx-orphan/`.
|
|
7
8
|
*
|
|
8
9
|
* The policy is the plugin cache's (`CachePrunePolicy`). An entry's last use is
|
|
9
10
|
* its modification time: a write sets it, and every hit records a use by
|
|
@@ -11,8 +11,9 @@ const SourceBuildCacheLayout_1 = require("./SourceBuildCacheLayout");
|
|
|
11
11
|
/**
|
|
12
12
|
* Opportunistically bound a part of the cache root whose entries are single
|
|
13
13
|
* files: the descriptor evaluations under `descriptors/`, the capability
|
|
14
|
-
* answers under `capabilities/`,
|
|
15
|
-
* `
|
|
14
|
+
* answers under `capabilities/`, the plugin content identities under
|
|
15
|
+
* `identities/`, the plugin-load answers under `answers/`, and the lowered
|
|
16
|
+
* orphan sources under `ttsx-orphan/`.
|
|
16
17
|
*
|
|
17
18
|
* The policy is the plugin cache's (`CachePrunePolicy`). An entry's last use is
|
|
18
19
|
* its modification time: a write sets it, and every hit records a use by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pruneCacheFileRoot.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pruneCacheFileRoot.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B,yDAAsD;AAEtD,qEAAkE;AAElE
|
|
1
|
+
{"version":3,"file":"pruneCacheFileRoot.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pruneCacheFileRoot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The version of this ttsc package, read from its own manifest once per
|
|
3
|
+
* process, or `"0.0.0"` when the manifest cannot be read or names none.
|
|
4
|
+
*
|
|
5
|
+
* WARNING (#1726): a reader that only needs ttsc's own version must take it
|
|
6
|
+
* here, never from `pluginBuildVersions`, which also resolves the project's
|
|
7
|
+
* `typescript` package. A plugin descriptor evaluator opens a record store
|
|
8
|
+
* while its module resolution recorder runs, and on a runtime whose
|
|
9
|
+
* `require.resolve` consults resolve hooks every such lookup became an input of
|
|
10
|
+
* the descriptor: absent `typescript` candidates below the cache root's
|
|
11
|
+
* ancestors, whose proofs the system temporary directory's metadata then
|
|
12
|
+
* withdrew. Reading a file here resolves no module.
|
|
13
|
+
*
|
|
14
|
+
* The host installation is assumed stable for the process lifetime; changing
|
|
15
|
+
* its manifest does not refresh the label.
|
|
16
|
+
*
|
|
17
|
+
* @evidence contracts/common.md#principled-implementation The label is this package's manifest version, the same value plugin keys and record identities have always named; an unreadable manifest yields the documented default instead of a guess.
|
|
18
|
+
* @evidence contracts/common.md#clear-and-simple-design One reader owns the host label; `pluginBuildVersions` composes it with the project's compiler version.
|
|
19
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The manifest beside the compiled module is read directly; no module resolution or fixture version stands in for it.
|
|
20
|
+
* @evidence contracts/common.md#meaningful-documentation The paragraphs state the value, the regression that motivates a resolution-free reader and the process-stable premise.
|
|
21
|
+
* @evidence contracts/portability.md#os-neutral-implementation The manifest path is joined with Node path APIs relative to this module, without separator or case assumptions.
|
|
22
|
+
* @evidence contracts/performance.md#efficient-algorithms The first call reads and parses one small manifest; later calls return the retained label.
|
|
23
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Every caller in the process shares one reading of an installation assumed stable for that process.
|
|
24
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources One label string is retained for the process lifetime; the synchronous read leaves no descriptor open.
|
|
25
|
+
*/
|
|
26
|
+
export declare function ttscPackageVersion(): string;
|
|
@@ -0,0 +1,47 @@
|
|
|
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.ttscPackageVersion = ttscPackageVersion;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
/**
|
|
10
|
+
* The version of this ttsc package, read from its own manifest once per
|
|
11
|
+
* process, or `"0.0.0"` when the manifest cannot be read or names none.
|
|
12
|
+
*
|
|
13
|
+
* WARNING (#1726): a reader that only needs ttsc's own version must take it
|
|
14
|
+
* here, never from `pluginBuildVersions`, which also resolves the project's
|
|
15
|
+
* `typescript` package. A plugin descriptor evaluator opens a record store
|
|
16
|
+
* while its module resolution recorder runs, and on a runtime whose
|
|
17
|
+
* `require.resolve` consults resolve hooks every such lookup became an input of
|
|
18
|
+
* the descriptor: absent `typescript` candidates below the cache root's
|
|
19
|
+
* ancestors, whose proofs the system temporary directory's metadata then
|
|
20
|
+
* withdrew. Reading a file here resolves no module.
|
|
21
|
+
*
|
|
22
|
+
* The host installation is assumed stable for the process lifetime; changing
|
|
23
|
+
* its manifest does not refresh the label.
|
|
24
|
+
*
|
|
25
|
+
* @evidence contracts/common.md#principled-implementation The label is this package's manifest version, the same value plugin keys and record identities have always named; an unreadable manifest yields the documented default instead of a guess.
|
|
26
|
+
* @evidence contracts/common.md#clear-and-simple-design One reader owns the host label; `pluginBuildVersions` composes it with the project's compiler version.
|
|
27
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The manifest beside the compiled module is read directly; no module resolution or fixture version stands in for it.
|
|
28
|
+
* @evidence contracts/common.md#meaningful-documentation The paragraphs state the value, the regression that motivates a resolution-free reader and the process-stable premise.
|
|
29
|
+
* @evidence contracts/portability.md#os-neutral-implementation The manifest path is joined with Node path APIs relative to this module, without separator or case assumptions.
|
|
30
|
+
* @evidence contracts/performance.md#efficient-algorithms The first call reads and parses one small manifest; later calls return the retained label.
|
|
31
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Every caller in the process shares one reading of an installation assumed stable for that process.
|
|
32
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources One label string is retained for the process lifetime; the synchronous read leaves no descriptor open.
|
|
33
|
+
*/
|
|
34
|
+
function ttscPackageVersion() {
|
|
35
|
+
if (version !== undefined)
|
|
36
|
+
return version;
|
|
37
|
+
try {
|
|
38
|
+
const manifest = JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.resolve(__dirname, "..", "..", "..", "..", "package.json"), "utf8"));
|
|
39
|
+
version = manifest.version ?? "0.0.0";
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
version = "0.0.0";
|
|
43
|
+
}
|
|
44
|
+
return version;
|
|
45
|
+
}
|
|
46
|
+
let version;
|
|
47
|
+
//# sourceMappingURL=ttscPackageVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ttscPackageVersion.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/ttscPackageVersion.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH;IACE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,iBAAE,CAAC,YAAY,CACb,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAC/D,MAAM,CACP,CACsB,CAAC;QAC1B,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,IAAI,OAA2B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ITtscCapabilityResolutionEntry } from "./ITtscCapabilityResolutionEntry";
|
|
2
2
|
import type { ITtscCapabilityResolutionPlugin } from "./ITtscCapabilityResolutionPlugin";
|
|
3
|
+
import { PluginContentIdentities } from "./source/PluginContentIdentities";
|
|
3
4
|
/**
|
|
4
5
|
* Record the answer and the state it was true for.
|
|
5
6
|
*
|
|
@@ -53,6 +54,11 @@ export declare function writeCapabilityResolution(options: {
|
|
|
53
54
|
env?: NodeJS.ProcessEnv;
|
|
54
55
|
/** Pre-load authority key; a moved evaluation authority refuses the write. */
|
|
55
56
|
expectedAuthority?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Record store of the project's plugin cache, which proves the runtime and
|
|
59
|
+
* the plugin sources and SDK from metadata instead of their bytes (#1725).
|
|
60
|
+
*/
|
|
61
|
+
identities?: PluginContentIdentities.Store;
|
|
56
62
|
}, answer: {
|
|
57
63
|
/**
|
|
58
64
|
* The evaluation-time content hash or unavailable null state reported by
|
|
@@ -10,8 +10,8 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
10
10
|
const SidecarEnvironment_1 = require("../../compiler/internal/sharedHost/SidecarEnvironment");
|
|
11
11
|
const E2ETrace_1 = require("../../internal/E2ETrace");
|
|
12
12
|
const CapabilityResolutionFormat_1 = require("./CapabilityResolutionFormat");
|
|
13
|
+
const PluginContentIdentities_1 = require("./source/PluginContentIdentities");
|
|
13
14
|
const SourceBuildCacheLayout_1 = require("./source/SourceBuildCacheLayout");
|
|
14
|
-
const pluginSourceDigest_1 = require("./source/pluginSourceDigest");
|
|
15
15
|
const pluginSourceFilesSignature_1 = require("./source/pluginSourceFilesSignature");
|
|
16
16
|
const pluginSourceState_1 = require("./source/pluginSourceState");
|
|
17
17
|
/**
|
|
@@ -116,7 +116,7 @@ function writeCapabilityResolution(options, answer) {
|
|
|
116
116
|
return null;
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
const evidence =
|
|
119
|
+
const evidence = PluginContentIdentities_1.PluginContentIdentities.sourceEvidence(PluginContentIdentities_1.PluginContentIdentities.mintReference(node_path_1.default.dirname(file)));
|
|
120
120
|
const entry = {
|
|
121
121
|
hostInputHashes,
|
|
122
122
|
hostInputRealpaths,
|
|
@@ -124,7 +124,7 @@ function writeCapabilityResolution(options, answer) {
|
|
|
124
124
|
manifest: answer.manifest,
|
|
125
125
|
pluginSources: Object.fromEntries(Object.entries(answer.pluginSources).map(([directory, state]) => [
|
|
126
126
|
directory,
|
|
127
|
-
recordPluginSource(directory, state, evidence),
|
|
127
|
+
recordPluginSource(directory, state, evidence, node_path_1.default.resolve(options.cwd), options.identities),
|
|
128
128
|
])),
|
|
129
129
|
plugins: answer.plugins.map((plugin) => ({
|
|
130
130
|
binary: plugin.binary,
|
|
@@ -173,18 +173,22 @@ function writeCapabilityResolution(options, answer) {
|
|
|
173
173
|
* when both signatures agree, every stamp was separable from a reference minted
|
|
174
174
|
* before the read, and the digest gives the very state the load reported, so
|
|
175
175
|
* the entry never vouches for sources the binary was not built from. Anything
|
|
176
|
-
* else records the state alone, which a read proves in full.
|
|
176
|
+
* else records the state alone, which a read proves in full. The digest comes
|
|
177
|
+
* from the project's record store when its metadata still holds there, which
|
|
178
|
+
* places it inside the same two signatures, so a new process does not read
|
|
179
|
+
* every source byte again (#1725).
|
|
177
180
|
*/
|
|
178
|
-
function recordPluginSource(directory, state, evidence) {
|
|
181
|
+
function recordPluginSource(directory, state, evidence, projectRoot, identities) {
|
|
179
182
|
try {
|
|
180
183
|
const before = (0, pluginSourceFilesSignature_1.pluginSourceFilesSignature)(directory, evidence);
|
|
181
|
-
const digest = (
|
|
184
|
+
const digest = PluginContentIdentities_1.PluginContentIdentities.sourceDirectory(identities, directory);
|
|
182
185
|
const after = (0, pluginSourceFilesSignature_1.pluginSourceFilesSignature)(directory, evidence);
|
|
183
186
|
if (before !== undefined &&
|
|
184
187
|
after !== undefined &&
|
|
185
188
|
before.signature === after.signature &&
|
|
186
189
|
after.separable &&
|
|
187
|
-
(0, pluginSourceState_1.pluginSourceState)(directory, { sourceDigest: digest }) ===
|
|
190
|
+
(0, pluginSourceState_1.pluginSourceState)(directory, { projectRoot, sourceDigest: digest }) ===
|
|
191
|
+
state) {
|
|
188
192
|
return { digest, signature: after.signature, state };
|
|
189
193
|
}
|
|
190
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeCapabilityResolution.js","sourceRoot":"","sources":["../../../src/plugin/internal/writeCapabilityResolution.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AACzB,0DAA6B;AAE7B,8FAA2F;AAC3F,sDAAmD;AACnD,6EAA0E;AAI1E,4EAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"writeCapabilityResolution.js","sourceRoot":"","sources":["../../../src/plugin/internal/writeCapabilityResolution.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AACzB,0DAA6B;AAE7B,8FAA2F;AAC3F,sDAAmD;AACnD,6EAA0E;AAI1E,8EAA2E;AAC3E,4EAAyE;AACzE,oFAAiF;AACjF,kEAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,mCACE,OAqBC,EACD,MA8BC;IAED,IAAI,IAAI,GAAG,uDAA0B,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,mBAAQ,CAAC,oBAAoB,CAAC,eAAe,EAAE;YAC7C,MAAM,EAAE,+BAA+B;SACxC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,OAAO,CAAC,iBAAiB,KAAK,SAAS;QACvC,OAAO,CAAC,iBAAiB,KAAK,IAAI,EAClC,CAAC;QACD,mBAAQ,CAAC,oBAAoB,CAAC,eAAe,EAAE;YAC7C,IAAI;YACJ,MAAM,EAAE,mBAAmB;SAC5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,GAAG,CACR,MAAM,CAAC,UAAU;aACd,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;aAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CACvC;KACF,CAAC,IAAI,EAAE,CAAC;IACT,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,mBAAQ,CAAC,oBAAoB,CAAC,eAAe,EAAE;YAC7C,IAAI;YACJ,MAAM,EAAE,mBAAmB;SAC5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,eAAe,GAAkC,EAAE,CAAC;IAC1D,MAAM,kBAAkB,GAAkC,EAAE,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CACtD,MAAM,CAAC,eAAe,EACtB,KAAK,CACN,CAAC;QACF,IAAI,eAAoC,CAAC;QACzC,IACE,CAAC,WAAW;YACZ,CAAC,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CACtD,MAAM,CAAC,kBAAkB,EACzB,KAAK,CACN,CAAC,EACF,CAAC;YACD,mBAAQ,CAAC,oBAAoB,CAAC,eAAe,EAAE;gBAC7C,IAAI;gBACJ,KAAK;gBACL,MAAM,EAAE,oBAAoB;gBAC5B,WAAW;gBACX,eAAe;aAChB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,eAAe,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,CAAE,CAAC;QACxD,kBAAkB,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,uCAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,+CAAsB,CAAC,6BAA6B,CACvE,mBAAI,CAAC,OAAO,CAAC,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACjC,CAAC;YACF,IAAI,GAAG,mBAAI,CAAC,IAAI,CACd,YAAY,EACZ,+CAAsB,CAAC,wBAAwB,EAC/C,mBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CACpB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,mBAAQ,CAAC,oBAAoB,CAAC,eAAe,EAAE;gBAC7C,IAAI;gBACJ,MAAM,EAAE,0BAA0B;aACnC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,iDAAuB,CAAC,cAAc,CACrD,iDAAuB,CAAC,aAAa,CAAC,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC1D,CAAC;IACF,MAAM,KAAK,GAAmC;QAC5C,eAAe;QACf,kBAAkB;QAClB,UAAU;QACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,aAAa,EAAE,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAC/D,SAAS;YACT,kBAAkB,CAChB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EACzB,OAAO,CAAC,UAAU,CACnB;SACF,CAAC,CACH;QACD,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,YAAY,EAAE,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE;SACzC,CAAC,CAAC;QACH,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,OAAO,EAAE,uDAA0B,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;KACnE,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,qBAAM,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5E,IAAI,CAAC;QACH,iBAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,wEAAwE;QACxE,oEAAoE;QACpE,qDAAqD;QACrD,iBAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QACzD,iBAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7B,mBAAQ,CAAC,oBAAoB,CAAC,iBAAiB,EAAE;YAC/C,IAAI;YACJ,UAAU,EAAE,UAAU,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,mBAAQ,CAAC,oBAAoB,CAAC,eAAe,EAAE;YAC7C,IAAI;YACJ,MAAM,EAAE,uBAAuB;SAChC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,iBAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;QAClE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,kBAAkB,CACzB,SAAiB,EACjB,KAAa,EACb,QAAmE,EACnE,WAAmB,EACnB,UAAqD;IAErD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,uDAA0B,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,iDAAuB,CAAC,eAAe,CACpD,UAAU,EACV,SAAS,CACV,CAAC;QACF,MAAM,KAAK,GAAG,IAAA,uDAA0B,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9D,IACE,MAAM,KAAK,SAAS;YACpB,KAAK,KAAK,SAAS;YACnB,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YACpC,KAAK,CAAC,SAAS;YACf,IAAA,qCAAiB,EAAC,SAAS,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;gBACjE,KAAK,EACP,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -16,6 +16,7 @@ const CapabilityPluginResult_1 = require("./internal/CapabilityPluginResult");
|
|
|
16
16
|
const CapabilityResolutionFormat_1 = require("./internal/CapabilityResolutionFormat");
|
|
17
17
|
const loadProjectPlugins_1 = require("./internal/load/loadProjectPlugins");
|
|
18
18
|
const readCapabilityResolution_1 = require("./internal/readCapabilityResolution");
|
|
19
|
+
const PluginContentIdentities_1 = require("./internal/source/PluginContentIdentities");
|
|
19
20
|
const writeCapabilityResolution_1 = require("./internal/writeCapabilityResolution");
|
|
20
21
|
/**
|
|
21
22
|
* The built sidecars of a project's configured plugins that declare one
|
|
@@ -88,12 +89,26 @@ function resolveCapabilityPluginResolution(options) {
|
|
|
88
89
|
// the same cwd. NUL cannot occur in a filename, so this discovery key cannot
|
|
89
90
|
// collide with an explicitly supplied path.
|
|
90
91
|
const tsconfig = options.tsconfig ?? `${String.fromCharCode(0)}discovered`;
|
|
91
|
-
|
|
92
|
+
// WARNING (#1725): every lookup proved the runtime by streaming it, and a hit
|
|
93
|
+
// proved the plugin sources and the whole GOROOT by their bytes, in each
|
|
94
|
+
// process. One store of the project's plugin cache serves every proof of
|
|
95
|
+
// this resolution, opened only once the runtime may be cached at all.
|
|
96
|
+
const identities = capabilityRecordStore(cwd);
|
|
97
|
+
const runtimeProved = capabilityRuntimeAuthorityComplete(cwd, identities);
|
|
92
98
|
const authority = runtimeProved
|
|
93
|
-
? CapabilityResolutionFormat_1.CapabilityResolutionFormat.resolutionFile({
|
|
99
|
+
? CapabilityResolutionFormat_1.CapabilityResolutionFormat.resolutionFile({
|
|
100
|
+
cwd,
|
|
101
|
+
tsconfig,
|
|
102
|
+
identities: identities(),
|
|
103
|
+
})
|
|
94
104
|
: null;
|
|
95
105
|
const cached = runtimeProved
|
|
96
|
-
? (0, readCapabilityResolution_1.readCapabilityResolution)({
|
|
106
|
+
? (0, readCapabilityResolution_1.readCapabilityResolution)({
|
|
107
|
+
cwd,
|
|
108
|
+
tsconfig,
|
|
109
|
+
version,
|
|
110
|
+
identities: identities(),
|
|
111
|
+
})
|
|
97
112
|
: null;
|
|
98
113
|
E2ETrace_1.E2ETrace.capabilityResolution("lookup", {
|
|
99
114
|
cwd,
|
|
@@ -104,7 +119,7 @@ function resolveCapabilityPluginResolution(options) {
|
|
|
104
119
|
cacheHit: cached !== null,
|
|
105
120
|
});
|
|
106
121
|
if (cached !== null)
|
|
107
|
-
return resolved(cached, options.capability, cwd, tsconfig, authority);
|
|
122
|
+
return resolved(cached, options.capability, cwd, tsconfig, authority, identities);
|
|
108
123
|
const binary = (0, resolveBinary_1.resolveBinary)();
|
|
109
124
|
if (binary === null || binary === undefined)
|
|
110
125
|
return CapabilityPluginResult_1.CapabilityPluginResult.unavailable();
|
|
@@ -153,11 +168,20 @@ function resolveCapabilityPluginResolution(options) {
|
|
|
153
168
|
const recorded = runtimeProved &&
|
|
154
169
|
authority !== null &&
|
|
155
170
|
(authorityUnchanged =
|
|
156
|
-
CapabilityResolutionFormat_1.CapabilityResolutionFormat.resolutionFile({
|
|
157
|
-
|
|
171
|
+
CapabilityResolutionFormat_1.CapabilityResolutionFormat.resolutionFile({
|
|
172
|
+
cwd,
|
|
173
|
+
tsconfig,
|
|
174
|
+
identities: identities(),
|
|
175
|
+
}) === authority) &&
|
|
158
176
|
loaded.descriptorReadsDeclared &&
|
|
159
177
|
loaded.discoveryInputsComplete
|
|
160
|
-
? (0, writeCapabilityResolution_1.writeCapabilityResolution)({
|
|
178
|
+
? (0, writeCapabilityResolution_1.writeCapabilityResolution)({
|
|
179
|
+
cwd,
|
|
180
|
+
tsconfig,
|
|
181
|
+
version,
|
|
182
|
+
expectedAuthority: authority,
|
|
183
|
+
identities: identities(),
|
|
184
|
+
}, answer)
|
|
161
185
|
: null;
|
|
162
186
|
E2ETrace_1.E2ETrace.capabilityResolution("answer", {
|
|
163
187
|
cwd,
|
|
@@ -184,9 +208,29 @@ function resolveCapabilityPluginResolution(options) {
|
|
|
184
208
|
plugins: CapabilityPluginResult_1.CapabilityPluginResult.select(answer, options.capability),
|
|
185
209
|
status: "resolved",
|
|
186
210
|
}
|
|
187
|
-
: resolved(recorded, options.capability, cwd, tsconfig, authority);
|
|
211
|
+
: resolved(recorded, options.capability, cwd, tsconfig, authority, identities);
|
|
188
212
|
});
|
|
189
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* The record store of `cwd`'s plugin cache, opened on first use and kept for
|
|
216
|
+
* the resolution and its later freshness queries, or `undefined` when none can
|
|
217
|
+
* be opened. A kept store's references only grow older, which can make fewer
|
|
218
|
+
* stamps separable but never more.
|
|
219
|
+
*/
|
|
220
|
+
function capabilityRecordStore(cwd) {
|
|
221
|
+
let opened = false;
|
|
222
|
+
let store;
|
|
223
|
+
return () => {
|
|
224
|
+
if (!opened) {
|
|
225
|
+
opened = true;
|
|
226
|
+
store = PluginContentIdentities_1.PluginContentIdentities.open({
|
|
227
|
+
projectRoot: cwd,
|
|
228
|
+
env: process.env,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
return store;
|
|
232
|
+
};
|
|
233
|
+
}
|
|
190
234
|
/**
|
|
191
235
|
* Whether the keyed executable is the actual sole descriptor runtime.
|
|
192
236
|
*
|
|
@@ -198,7 +242,7 @@ function resolveCapabilityPluginResolution(options) {
|
|
|
198
242
|
* operation's existing decision and preserves short-circuited comparisons as
|
|
199
243
|
* unobserved, without repeating native queries.
|
|
200
244
|
*/
|
|
201
|
-
function capabilityRuntimeAuthorityComplete(cwd) {
|
|
245
|
+
function capabilityRuntimeAuthorityComplete(cwd, identities) {
|
|
202
246
|
if (SidecarEnvironment_1.SidecarEnvironment.read(process.env, "NODE_OPTIONS")?.trim()) {
|
|
203
247
|
E2ETrace_1.E2ETrace.capabilityResolution("runtime-authority", {
|
|
204
248
|
cwd,
|
|
@@ -219,7 +263,7 @@ function capabilityRuntimeAuthorityComplete(cwd) {
|
|
|
219
263
|
return false;
|
|
220
264
|
}
|
|
221
265
|
try {
|
|
222
|
-
const capabilities = (0, javascriptRuntimeCapabilities_1.javascriptRuntimeCapabilities)(runtime, process.env, cwd);
|
|
266
|
+
const capabilities = (0, javascriptRuntimeCapabilities_1.javascriptRuntimeCapabilities)(runtime, process.env, cwd, identities());
|
|
223
267
|
let executableMatches;
|
|
224
268
|
const proved = !capabilities.bun &&
|
|
225
269
|
capabilities.registerHooks &&
|
|
@@ -249,17 +293,25 @@ function capabilityRuntimeAuthorityComplete(cwd) {
|
|
|
249
293
|
}
|
|
250
294
|
}
|
|
251
295
|
/** A complete accepted cache generation and its owning validity query. */
|
|
252
|
-
function resolved(entry, capability, cwd, tsconfig, authority) {
|
|
296
|
+
function resolved(entry, capability, cwd, tsconfig, authority, identities) {
|
|
253
297
|
const proof = JSON.stringify(entry);
|
|
254
298
|
return {
|
|
255
299
|
isCurrent: () => {
|
|
256
300
|
try {
|
|
257
301
|
if (authority === null ||
|
|
258
|
-
!capabilityRuntimeAuthorityComplete(cwd) ||
|
|
259
|
-
CapabilityResolutionFormat_1.CapabilityResolutionFormat.resolutionFile({
|
|
260
|
-
|
|
302
|
+
!capabilityRuntimeAuthorityComplete(cwd, identities) ||
|
|
303
|
+
CapabilityResolutionFormat_1.CapabilityResolutionFormat.resolutionFile({
|
|
304
|
+
cwd,
|
|
305
|
+
tsconfig,
|
|
306
|
+
identities: identities(),
|
|
307
|
+
}) !== authority)
|
|
261
308
|
return false;
|
|
262
|
-
const current = (0, readCapabilityResolution_1.readCapabilityResolution)({
|
|
309
|
+
const current = (0, readCapabilityResolution_1.readCapabilityResolution)({
|
|
310
|
+
cwd,
|
|
311
|
+
tsconfig,
|
|
312
|
+
version,
|
|
313
|
+
identities: identities(),
|
|
314
|
+
});
|
|
263
315
|
return current !== null && JSON.stringify(current) === proof;
|
|
264
316
|
}
|
|
265
317
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveCapabilityPlugins.js","sourceRoot":"","sources":["../../src/plugin/resolveCapabilityPlugins.ts"],"names":[],"mappings":";;;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B,gHAA6G;AAC7G,sEAAmE;AACnE,2FAAwF;AACxF,mDAAgD;AAChD,6FAA0F;AAK1F,8EAA2E;AAC3E,sFAAmF;AAEnF,2EAAwE;AACxE,kFAA+E;AAC/E,oFAAiF;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,kCAAyC,OAIxC;IACC,OAAO,CAAC,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,2CAAkD,OASjD;IACC,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,2EAA2E;IAC3E,6EAA6E;IAC7E,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC3E,MAAM,aAAa,GAAG,kCAAkC,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"resolveCapabilityPlugins.js","sourceRoot":"","sources":["../../src/plugin/resolveCapabilityPlugins.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ttsc",
|
|
3
|
-
"version": "0.31.
|
|
3
|
+
"version": "0.31.2",
|
|
4
4
|
"description": "General-purpose TypeScript-Go compiler, runtime, plugin host, and LSP host.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -61,13 +61,13 @@
|
|
|
61
61
|
},
|
|
62
62
|
"optionalDependencies": {
|
|
63
63
|
"fsevents": "^2.3.3",
|
|
64
|
-
"@ttsc/linux-
|
|
65
|
-
"@ttsc/
|
|
66
|
-
"@ttsc/
|
|
67
|
-
"@ttsc/
|
|
68
|
-
"@ttsc/win32-
|
|
69
|
-
"@ttsc/
|
|
70
|
-
"@ttsc/linux-
|
|
64
|
+
"@ttsc/linux-x64": "0.31.2",
|
|
65
|
+
"@ttsc/darwin-x64": "0.31.2",
|
|
66
|
+
"@ttsc/linux-arm64": "0.31.2",
|
|
67
|
+
"@ttsc/win32-x64": "0.31.2",
|
|
68
|
+
"@ttsc/win32-arm64": "0.31.2",
|
|
69
|
+
"@ttsc/darwin-arm64": "0.31.2",
|
|
70
|
+
"@ttsc/linux-arm": "0.31.2"
|
|
71
71
|
},
|
|
72
72
|
"sideEffects": [
|
|
73
73
|
"./lib/register.js",
|