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":"hashPluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/hashPluginBuildEnvironment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hashPluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/hashPluginBuildEnvironment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PluginBuildEnvironmentWitness } from "./PluginBuildEnvironmentWitness";
|
|
2
|
+
import type { PluginContentIdentities } from "./PluginContentIdentities";
|
|
2
3
|
/**
|
|
3
4
|
* The digest of the environment a plugin build in `directory` is keyed on: the
|
|
4
5
|
* Go compiler the build resolves there, the Go build environment `go env`
|
|
@@ -12,12 +13,16 @@ import type { PluginBuildEnvironmentWitness } from "./PluginBuildEnvironmentWitn
|
|
|
12
13
|
* GOROOT metadata. Witnessing a newly selected environment file can repeat the
|
|
13
14
|
* probe to observe it before reading. Compiler identity reuses a
|
|
14
15
|
* metadata-and-context memo; a changed SDK manifest rehashes all contributing
|
|
15
|
-
* content rather than only edited files.
|
|
16
|
+
* content rather than only edited files. A supplied record store lets a new
|
|
17
|
+
* process take the SDK and executable digests from records instead of their
|
|
18
|
+
* bytes, while `go env` and `go version` still run.
|
|
16
19
|
*
|
|
17
20
|
* @param directory The directory a build runs `go` in.
|
|
18
21
|
* @param env The effective environment, `process.env` by default.
|
|
19
22
|
* @param witness Receives the paths the reading depends on and no variable
|
|
20
23
|
* carries (`hashPluginBuildEnvironment`).
|
|
24
|
+
* @param identities Record store that lets a new process prove the SDK and
|
|
25
|
+
* executables from metadata (#1722).
|
|
21
26
|
* @evidence contracts/common.md#principled-implementation The digest uses the same resolved compiler and environment serializer as the binary key, so reported toolchain state denotes the inputs actually used by the build.
|
|
22
27
|
* @evidence contracts/common.md#clear-and-simple-design Compiler selection, executable resolution and hashing each stay with their owning helper; this function only composes one environment reading.
|
|
23
28
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts The result comes from real Go/environment inputs, not a fixed compiler version or a caller-specific substitute.
|
|
@@ -25,7 +30,7 @@ import type { PluginBuildEnvironmentWitness } from "./PluginBuildEnvironmentWitn
|
|
|
25
30
|
* @evidence contracts/portability.md#os-neutral-implementation Executable identity is resolved before probing, and Node filesystem/process boundaries implement native spelling rather than assuming Windows or POSIX paths are interchangeable.
|
|
26
31
|
* @evidence contracts/performance.md#efficient-algorithms The wrapper resolves the compiler/tool under the supplied environment before delegating full environment hashing. Native resolution/probes, SDK metadata/name/path sorting and changed-manifest full content reads contribute cost; the final hash output is fixed-width but streamed identity/input text and full-file buffers are not. No independent duplicate source-directory digest scan is added here.
|
|
27
32
|
*
|
|
28
|
-
* @
|
|
33
|
+
* @evidence contracts/performance.md#reuse-equivalent-work This is the fresh-reading boundary required by builds: the Go probes run on every call. Content digests of the SDK and executables are shared across processes only through the supplied record store's separable-signature proof; processPluginBuildEnvironment owns reuse of the whole reading when a consumer permits it.
|
|
29
34
|
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Its digest and filesystem adapter are call-local; retained compiler/content memo ownership belongs to the hasher.
|
|
30
35
|
*/
|
|
31
|
-
export declare function pluginBuildEnvironment(directory: string, env?: NodeJS.ProcessEnv, witness?: PluginBuildEnvironmentWitness.Record): string;
|
|
36
|
+
export declare function pluginBuildEnvironment(directory: string, env?: NodeJS.ProcessEnv, witness?: PluginBuildEnvironmentWitness.Record, identities?: PluginContentIdentities.Store): string;
|
|
@@ -22,12 +22,16 @@ const resolveGoCompiler_1 = require("./resolveGoCompiler");
|
|
|
22
22
|
* GOROOT metadata. Witnessing a newly selected environment file can repeat the
|
|
23
23
|
* probe to observe it before reading. Compiler identity reuses a
|
|
24
24
|
* metadata-and-context memo; a changed SDK manifest rehashes all contributing
|
|
25
|
-
* content rather than only edited files.
|
|
25
|
+
* content rather than only edited files. A supplied record store lets a new
|
|
26
|
+
* process take the SDK and executable digests from records instead of their
|
|
27
|
+
* bytes, while `go env` and `go version` still run.
|
|
26
28
|
*
|
|
27
29
|
* @param directory The directory a build runs `go` in.
|
|
28
30
|
* @param env The effective environment, `process.env` by default.
|
|
29
31
|
* @param witness Receives the paths the reading depends on and no variable
|
|
30
32
|
* carries (`hashPluginBuildEnvironment`).
|
|
33
|
+
* @param identities Record store that lets a new process prove the SDK and
|
|
34
|
+
* executables from metadata (#1722).
|
|
31
35
|
* @evidence contracts/common.md#principled-implementation The digest uses the same resolved compiler and environment serializer as the binary key, so reported toolchain state denotes the inputs actually used by the build.
|
|
32
36
|
* @evidence contracts/common.md#clear-and-simple-design Compiler selection, executable resolution and hashing each stay with their owning helper; this function only composes one environment reading.
|
|
33
37
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts The result comes from real Go/environment inputs, not a fixed compiler version or a caller-specific substitute.
|
|
@@ -35,13 +39,13 @@ const resolveGoCompiler_1 = require("./resolveGoCompiler");
|
|
|
35
39
|
* @evidence contracts/portability.md#os-neutral-implementation Executable identity is resolved before probing, and Node filesystem/process boundaries implement native spelling rather than assuming Windows or POSIX paths are interchangeable.
|
|
36
40
|
* @evidence contracts/performance.md#efficient-algorithms The wrapper resolves the compiler/tool under the supplied environment before delegating full environment hashing. Native resolution/probes, SDK metadata/name/path sorting and changed-manifest full content reads contribute cost; the final hash output is fixed-width but streamed identity/input text and full-file buffers are not. No independent duplicate source-directory digest scan is added here.
|
|
37
41
|
*
|
|
38
|
-
* @
|
|
42
|
+
* @evidence contracts/performance.md#reuse-equivalent-work This is the fresh-reading boundary required by builds: the Go probes run on every call. Content digests of the SDK and executables are shared across processes only through the supplied record store's separable-signature proof; processPluginBuildEnvironment owns reuse of the whole reading when a consumer permits it.
|
|
39
43
|
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Its digest and filesystem adapter are call-local; retained compiler/content memo ownership belongs to the hasher.
|
|
40
44
|
*/
|
|
41
|
-
function pluginBuildEnvironment(directory, env = process.env, witness) {
|
|
45
|
+
function pluginBuildEnvironment(directory, env = process.env, witness, identities) {
|
|
42
46
|
const goBinary = GoToolResolution_1.GoToolResolution.resolveGoToolForBuild((0, resolveGoCompiler_1.resolveGoCompiler)(env).binary, env, directory, witness);
|
|
43
47
|
const hash = node_crypto_1.default.createHash("sha256");
|
|
44
|
-
(0, hashPluginBuildEnvironment_1.hashPluginBuildEnvironment)(hash, goBinary, directory, env, { readFile: (location) => node_fs_1.default.readFileSync(location) }, witness);
|
|
48
|
+
(0, hashPluginBuildEnvironment_1.hashPluginBuildEnvironment)(hash, goBinary, directory, env, { readFile: (location) => node_fs_1.default.readFileSync(location) }, witness, identities);
|
|
45
49
|
return hash.digest("hex");
|
|
46
50
|
}
|
|
47
51
|
//# sourceMappingURL=pluginBuildEnvironment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildEnvironment.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AAEzB,yDAAsD;
|
|
1
|
+
{"version":3,"file":"pluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildEnvironment.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AAEzB,yDAAsD;AAGtD,6EAA0E;AAC1E,2DAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,gCACE,SAAiB,EACjB,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,OAA8C,EAC9C,UAA0C;IAE1C,MAAM,QAAQ,GAAG,mCAAgB,CAAC,qBAAqB,CACrD,IAAA,qCAAiB,EAAC,GAAG,CAAC,CAAC,MAAM,EAC7B,GAAG,EACH,SAAS,EACT,OAAO,CACR,CAAC;IACF,MAAM,IAAI,GAAG,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAA,uDAA0B,EACxB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,GAAG,EACH,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EACrD,OAAO,EACP,UAAU,CACX,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -2,18 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const node_worker_threads_1 = require("node:worker_threads");
|
|
4
4
|
const serializeCompilerError_1 = require("../../../internal/serializeCompilerError");
|
|
5
|
+
const PluginContentIdentities_1 = require("./PluginContentIdentities");
|
|
5
6
|
const pluginBuildEnvironment_1 = require("./pluginBuildEnvironment");
|
|
6
7
|
/**
|
|
7
8
|
* Observe one requested native toolchain environment on the exclusive worker.
|
|
8
9
|
* Explicit environment values reach every Go/toolchain reader; no caller
|
|
9
10
|
* process globals are written. Only actual readings and pre-read witnesses
|
|
10
|
-
* cross the worker boundary, and failures retain their real error details.
|
|
11
|
+
* cross the worker boundary, and failures retain their real error details. A
|
|
12
|
+
* request that names its project lets this isolate prove the SDK and the
|
|
13
|
+
* executables from the plugin cache's records instead of their bytes (#1722).
|
|
11
14
|
*/
|
|
12
15
|
node_worker_threads_1.parentPort?.on("message", (request) => {
|
|
13
16
|
try {
|
|
14
17
|
const witness = new Map();
|
|
18
|
+
const identities = request.projectRoot === undefined
|
|
19
|
+
? undefined
|
|
20
|
+
: PluginContentIdentities_1.PluginContentIdentities.open({
|
|
21
|
+
projectRoot: request.projectRoot,
|
|
22
|
+
env: request.env,
|
|
23
|
+
sources: [request.directory],
|
|
24
|
+
});
|
|
15
25
|
node_worker_threads_1.parentPort.postMessage({
|
|
16
|
-
environment: (0, pluginBuildEnvironment_1.pluginBuildEnvironment)(request.directory, request.env, witness),
|
|
26
|
+
environment: (0, pluginBuildEnvironment_1.pluginBuildEnvironment)(request.directory, request.env, witness, identities),
|
|
17
27
|
witness,
|
|
18
28
|
});
|
|
19
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginBuildEnvironmentWorker.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildEnvironmentWorker.ts"],"names":[],"mappings":";;AAAA,6DAAiD;AAEjD,qFAAkF;AAElF,qEAAkE;AAElE
|
|
1
|
+
{"version":3,"file":"pluginBuildEnvironmentWorker.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildEnvironmentWorker.ts"],"names":[],"mappings":";;AAAA,6DAAiD;AAEjD,qFAAkF;AAElF,uEAAoE;AACpE,qEAAkE;AAElE;;;;;;;GAOG;AACH,gCAAU,EAAE,EAAE,CACZ,SAAS,EACT,CAAC,OAIA,EAAE,EAAE;IACH,IAAI,CAAC;QACH,MAAM,OAAO,GAAyC,IAAI,GAAG,EAAE,CAAC;QAChE,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,KAAK,SAAS;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iDAAuB,CAAC,IAAI,CAAC;gBAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;aAC7B,CAAC,CAAC;QACT,gCAAW,CAAC,WAAW,CAAC;YACtB,WAAW,EAAE,IAAA,+CAAsB,EACjC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,GAAG,EACX,OAAO,EACP,UAAU,CACX;YACD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gCAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAA,+CAAsB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CACF,CAAC"}
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
* @param projectRoot The project base used to resolve
|
|
18
18
|
* `typescript/package.json`.
|
|
19
19
|
* @evidence contracts/common.md#principled-implementation Package-version labels supply the same metadata tuple used by plugin keys; absent/unreadable metadata receives the documented unknown/default label rather than an executable identity certificate.
|
|
20
|
-
* @evidence contracts/common.md#clear-and-simple-design
|
|
20
|
+
* @evidence contracts/common.md#clear-and-simple-design The host label comes from its own owner (`ttscPackageVersion`), which a reader needing only that label calls without this function's project resolution; the project-version reader is separate because project resolution varies per call.
|
|
21
21
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts Node package resolution determines the actual project dependency; no particular project or fixture version is embedded.
|
|
22
22
|
* @evidence contracts/common.md#meaningful-documentation Native prose explains persisted-output consumers, metadata fallbacks and the process-stable host premise without claiming that version labels establish executable or output equivalence.
|
|
23
23
|
* @evidence contracts/portability.md#os-neutral-implementation Node createRequire and path APIs locate package metadata using native module resolution without manual separator or case normalization.
|
|
24
24
|
* @evidence contracts/performance.md#efficient-algorithms Each call performs project package resolution and, when successful, reads/parses its manifest bytes; module search/path work and metadata size are not fixed by one logical manifest lookup. The host manifest is attempted only on the first invocation, including native path and JSON costs.
|
|
25
25
|
* @evidence contracts/performance.md#reuse-equivalent-work All callers share the host installation's process-stable version; the project compiler version is resolved afresh so different project roots do not share a false identity.
|
|
26
|
-
* @evidence contracts/performance.md#bound-retention-and-release-resources
|
|
26
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources The host-version owner retains one label for the process lifetime, whose text follows its manifest value rather than a fixed byte limit; the retained label count is independent of project count. Native module-resolution caches belong to Node, and synchronous file reads leave no persistent descriptor here.
|
|
27
27
|
*/
|
|
28
28
|
export declare function pluginBuildVersions(projectRoot: string): {
|
|
29
29
|
tsgo: string;
|
|
@@ -7,6 +7,7 @@ exports.pluginBuildVersions = pluginBuildVersions;
|
|
|
7
7
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
8
|
const node_module_1 = require("node:module");
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const ttscPackageVersion_1 = require("./ttscPackageVersion");
|
|
10
11
|
/**
|
|
11
12
|
* Package-version labels used by plugin build keys (`computeCacheKey`) and
|
|
12
13
|
* persisted transform identities. These are metadata inputs, not a measurement
|
|
@@ -26,30 +27,16 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
26
27
|
* @param projectRoot The project base used to resolve
|
|
27
28
|
* `typescript/package.json`.
|
|
28
29
|
* @evidence contracts/common.md#principled-implementation Package-version labels supply the same metadata tuple used by plugin keys; absent/unreadable metadata receives the documented unknown/default label rather than an executable identity certificate.
|
|
29
|
-
* @evidence contracts/common.md#clear-and-simple-design
|
|
30
|
+
* @evidence contracts/common.md#clear-and-simple-design The host label comes from its own owner (`ttscPackageVersion`), which a reader needing only that label calls without this function's project resolution; the project-version reader is separate because project resolution varies per call.
|
|
30
31
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts Node package resolution determines the actual project dependency; no particular project or fixture version is embedded.
|
|
31
32
|
* @evidence contracts/common.md#meaningful-documentation Native prose explains persisted-output consumers, metadata fallbacks and the process-stable host premise without claiming that version labels establish executable or output equivalence.
|
|
32
33
|
* @evidence contracts/portability.md#os-neutral-implementation Node createRequire and path APIs locate package metadata using native module resolution without manual separator or case normalization.
|
|
33
34
|
* @evidence contracts/performance.md#efficient-algorithms Each call performs project package resolution and, when successful, reads/parses its manifest bytes; module search/path work and metadata size are not fixed by one logical manifest lookup. The host manifest is attempted only on the first invocation, including native path and JSON costs.
|
|
34
35
|
* @evidence contracts/performance.md#reuse-equivalent-work All callers share the host installation's process-stable version; the project compiler version is resolved afresh so different project roots do not share a false identity.
|
|
35
|
-
* @evidence contracts/performance.md#bound-retention-and-release-resources
|
|
36
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources The host-version owner retains one label for the process lifetime, whose text follows its manifest value rather than a fixed byte limit; the retained label count is independent of project count. Native module-resolution caches belong to Node, and synchronous file reads leave no persistent descriptor here.
|
|
36
37
|
*/
|
|
37
38
|
function pluginBuildVersions(projectRoot) {
|
|
38
|
-
return { tsgo: readTsgoVersion(projectRoot), ttsc:
|
|
39
|
-
}
|
|
40
|
-
let cachedTtscVersion = null;
|
|
41
|
-
function readTtscVersion() {
|
|
42
|
-
if (cachedTtscVersion !== null)
|
|
43
|
-
return cachedTtscVersion;
|
|
44
|
-
try {
|
|
45
|
-
const file = node_path_1.default.resolve(__dirname, "..", "..", "..", "..", "package.json");
|
|
46
|
-
const pkg = JSON.parse(node_fs_1.default.readFileSync(file, "utf8"));
|
|
47
|
-
cachedTtscVersion = pkg.version ?? "0.0.0";
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
cachedTtscVersion = "0.0.0";
|
|
51
|
-
}
|
|
52
|
-
return cachedTtscVersion;
|
|
39
|
+
return { tsgo: readTsgoVersion(projectRoot), ttsc: (0, ttscPackageVersion_1.ttscPackageVersion)() };
|
|
53
40
|
}
|
|
54
41
|
function readTsgoVersion(projectRoot) {
|
|
55
42
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginBuildVersions.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildVersions.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,6CAA4C;AAC5C,0DAA6B;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,6BAAoC,WAAmB;IAIrD,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"pluginBuildVersions.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildVersions.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,6CAA4C;AAC5C,0DAA6B;AAE7B,6DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,6BAAoC,WAAmB;IAIrD,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAA,uCAAkB,GAAE,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB;IAC1C,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAA,2BAAa,EAClC,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CACvC,CAAC;QACF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAEtD,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IPluginModuleReplaceDirectory } from "./IPluginModuleReplaceDirectory";
|
|
2
|
+
import { SourcePluginWorkspace } from "./SourcePluginWorkspace";
|
|
2
3
|
/**
|
|
3
4
|
* The local directories outside a plugin's Go module that its `go.mod`
|
|
4
5
|
* `replace` directives name before the build prepares its scratch sources.
|
|
@@ -28,13 +29,13 @@ import type { IPluginModuleReplaceDirectory } from "./IPluginModuleReplaceDirect
|
|
|
28
29
|
* fails or supplies an unusable JSON result. A no-marker manifest skips Go
|
|
29
30
|
* parsing here; this is not general go.mod validation.
|
|
30
31
|
* @evidence contracts/common.md#principled-implementation When the replace marker triggers a query, Go parses its grammar. Unversioned local targets selected outside best-effort root/target spellings are reported, resolving relative paths from the original module; unavailable identity resolution does not certify complete physical containment.
|
|
31
|
-
* @evidence contracts/common.md#clear-and-simple-design A cheap no-replace scan avoids
|
|
32
|
+
* @evidence contracts/common.md#clear-and-simple-design A cheap no-replace scan avoids unnecessary parsing; the common selected-tool/load reader owns Go syntax, and this operation owns current physical containment.
|
|
32
33
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts The implementation uses Go's supported mod-edit interface instead of a handwritten grammar or special-casing particular dependency names.
|
|
33
34
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain external versus internal replacement ownership, original-directory resolution and returned spellings; failure behavior is documented.
|
|
34
35
|
* @evidence contracts/portability.md#os-neutral-implementation Node path and physical-path resolution determine containment; Go local-path syntax accepts native absolute paths and Windows-relative backslashes only on Windows.
|
|
35
|
-
* @evidence contracts/performance.md#efficient-algorithms Full manifest read/UTF-8 marker scan can skip Go parsing. Otherwise
|
|
36
|
+
* @evidence contracts/performance.md#efficient-algorithms Full manifest read/UTF-8 marker scan can skip Go parsing. Otherwise selected-tool reader acquisition and a current manifest read precede a pass over all parsed directives, not only returned ones. Equivalent bytes share Go JSON acquisition only in the supplied fixed-environment load registry; a new syntax record pays native tool/env/capture and full JSON costs; each selected local target uses native best-effort identity resolution, which can traverse ancestors/probe case. Sorting returned module/version strings processes their bytes, with complete manifest/output/path arrays retained transiently and no replacement content digest scan here.
|
|
36
37
|
*
|
|
37
|
-
* @
|
|
38
|
-
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This operation acquires no retained handle
|
|
38
|
+
* @evidence contracts/performance.md#reuse-equivalent-work The optional pinned-tool/load reader or registry shares Go parsing of identical current bytes with package observation and workspace creation. Physical replacement containment is recomputed every call, never borrowed from that syntax memo.
|
|
39
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This operation acquires no retained handle; the supplied load registry retains syntax readers until its caller releases the load. Without it the reader is call-owned. Native capture cleanup remains delegated and can fail; current physical identity contexts are call-owned and returned directories do not pin future state.
|
|
39
40
|
*/
|
|
40
|
-
export declare function pluginModuleReplaceDirectories(moduleRoot: string, env: NodeJS.ProcessEnv, goBinary?: string): IPluginModuleReplaceDirectory[];
|
|
41
|
+
export declare function pluginModuleReplaceDirectories(moduleRoot: string, env: NodeJS.ProcessEnv, goBinary?: string, reader?: SourcePluginWorkspace.GoModReader, readers?: Map<string, SourcePluginWorkspace.GoModReader>): IPluginModuleReplaceDirectory[];
|
|
@@ -7,11 +7,10 @@ exports.pluginModuleReplaceDirectories = pluginModuleReplaceDirectories;
|
|
|
7
7
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const resolvePhysicalPath_1 = require("../../../internal/pathIdentity/resolvePhysicalPath");
|
|
10
|
-
const GoSourceInputs_1 = require("./GoSourceInputs");
|
|
11
10
|
const GoToolResolution_1 = require("./GoToolResolution");
|
|
11
|
+
const SourcePluginWorkspace_1 = require("./SourcePluginWorkspace");
|
|
12
12
|
const resolveGoCompiler_1 = require("./resolveGoCompiler");
|
|
13
13
|
const selectPluginModuleReplaceDirectories_1 = require("./selectPluginModuleReplaceDirectories");
|
|
14
|
-
const spawnGoTool_1 = require("./spawnGoTool");
|
|
15
14
|
/**
|
|
16
15
|
* The local directories outside a plugin's Go module that its `go.mod`
|
|
17
16
|
* `replace` directives name before the build prepares its scratch sources.
|
|
@@ -41,16 +40,16 @@ const spawnGoTool_1 = require("./spawnGoTool");
|
|
|
41
40
|
* fails or supplies an unusable JSON result. A no-marker manifest skips Go
|
|
42
41
|
* parsing here; this is not general go.mod validation.
|
|
43
42
|
* @evidence contracts/common.md#principled-implementation When the replace marker triggers a query, Go parses its grammar. Unversioned local targets selected outside best-effort root/target spellings are reported, resolving relative paths from the original module; unavailable identity resolution does not certify complete physical containment.
|
|
44
|
-
* @evidence contracts/common.md#clear-and-simple-design A cheap no-replace scan avoids
|
|
43
|
+
* @evidence contracts/common.md#clear-and-simple-design A cheap no-replace scan avoids unnecessary parsing; the common selected-tool/load reader owns Go syntax, and this operation owns current physical containment.
|
|
45
44
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts The implementation uses Go's supported mod-edit interface instead of a handwritten grammar or special-casing particular dependency names.
|
|
46
45
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain external versus internal replacement ownership, original-directory resolution and returned spellings; failure behavior is documented.
|
|
47
46
|
* @evidence contracts/portability.md#os-neutral-implementation Node path and physical-path resolution determine containment; Go local-path syntax accepts native absolute paths and Windows-relative backslashes only on Windows.
|
|
48
|
-
* @evidence contracts/performance.md#efficient-algorithms Full manifest read/UTF-8 marker scan can skip Go parsing. Otherwise
|
|
47
|
+
* @evidence contracts/performance.md#efficient-algorithms Full manifest read/UTF-8 marker scan can skip Go parsing. Otherwise selected-tool reader acquisition and a current manifest read precede a pass over all parsed directives, not only returned ones. Equivalent bytes share Go JSON acquisition only in the supplied fixed-environment load registry; a new syntax record pays native tool/env/capture and full JSON costs; each selected local target uses native best-effort identity resolution, which can traverse ancestors/probe case. Sorting returned module/version strings processes their bytes, with complete manifest/output/path arrays retained transiently and no replacement content digest scan here.
|
|
49
48
|
*
|
|
50
|
-
* @
|
|
51
|
-
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This operation acquires no retained handle
|
|
49
|
+
* @evidence contracts/performance.md#reuse-equivalent-work The optional pinned-tool/load reader or registry shares Go parsing of identical current bytes with package observation and workspace creation. Physical replacement containment is recomputed every call, never borrowed from that syntax memo.
|
|
50
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This operation acquires no retained handle; the supplied load registry retains syntax readers until its caller releases the load. Without it the reader is call-owned. Native capture cleanup remains delegated and can fail; current physical identity contexts are call-owned and returned directories do not pin future state.
|
|
52
51
|
*/
|
|
53
|
-
function pluginModuleReplaceDirectories(moduleRoot, env, goBinary) {
|
|
52
|
+
function pluginModuleReplaceDirectories(moduleRoot, env, goBinary, reader, readers) {
|
|
54
53
|
const root = node_path_1.default.resolve(moduleRoot);
|
|
55
54
|
let text;
|
|
56
55
|
try {
|
|
@@ -67,15 +66,9 @@ function pluginModuleReplaceDirectories(moduleRoot, env, goBinary) {
|
|
|
67
66
|
return [];
|
|
68
67
|
const go = goBinary ??
|
|
69
68
|
GoToolResolution_1.GoToolResolution.resolveGoToolForBuild((0, resolveGoCompiler_1.resolveGoCompiler)(env).binary, env, root);
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
windowsHide: true,
|
|
75
|
-
});
|
|
76
|
-
if (result.error !== undefined || result.status !== 0)
|
|
77
|
-
throw new Error(`ttsc: reading ${node_path_1.default.join(root, "go.mod")} failed: ${result.error?.message ?? (result.stderr || result.stdout)}`);
|
|
78
|
-
const parsed = JSON.parse(result.stdout);
|
|
79
|
-
return (0, selectPluginModuleReplaceDirectories_1.selectPluginModuleReplaceDirectories)(root, parsed.Replace ?? [], resolvePhysicalPath_1.resolvePhysicalPath);
|
|
69
|
+
const parsed = (reader ?? SourcePluginWorkspace_1.SourcePluginWorkspace.createGoModReader(go, root, env, readers)).read(root);
|
|
70
|
+
// Parsed syntax may be shared; physical containment is current native state
|
|
71
|
+
// and must be recomputed even when these manifest bytes are unchanged.
|
|
72
|
+
return (0, selectPluginModuleReplaceDirectories_1.selectPluginModuleReplaceDirectories)(root, parsed.directives, resolvePhysicalPath_1.resolvePhysicalPath);
|
|
80
73
|
}
|
|
81
74
|
//# sourceMappingURL=pluginModuleReplaceDirectories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginModuleReplaceDirectories.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginModuleReplaceDirectories.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B,4FAAyF;AACzF,
|
|
1
|
+
{"version":3,"file":"pluginModuleReplaceDirectories.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginModuleReplaceDirectories.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAE7B,4FAAyF;AACzF,yDAAsD;AAEtD,mEAAgE;AAChE,2DAAwD;AACxD,iGAA8F;AAE9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wCACE,UAAkB,EAClB,GAAsB,EACtB,QAAiB,EACjB,MAA0C,EAC1C,OAAwD;IAExD,MAAM,IAAI,GAAG,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,iBAAE,CAAC,YAAY,CAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAClE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,EAAE,GACN,QAAQ;QACR,mCAAgB,CAAC,qBAAqB,CACpC,IAAA,qCAAiB,EAAC,GAAG,CAAC,CAAC,MAAM,EAC7B,GAAG,EACH,IAAI,CACL,CAAC;IACJ,MAAM,MAAM,GAAG,CACb,MAAM,IAAI,6CAAqB,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAC1E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,4EAA4E;IAC5E,uEAAuE;IACvE,OAAO,IAAA,2EAAoC,EACzC,IAAI,EACJ,MAAM,CAAC,UAAU,EACjB,yCAAmB,CACpB,CAAC;AACJ,CAAC"}
|
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
* process's own environment the environment is read once per directory and set
|
|
20
20
|
* of variables (`processPluginBuildEnvironment`), and a proof that must not
|
|
21
21
|
* accept a stale one compares through `pluginSourceStateHolds`, which reads it
|
|
22
|
-
* again before it refutes a state.
|
|
22
|
+
* again before it refutes a state. A caller that names its project proves the
|
|
23
|
+
* sources and the SDK from that project's plugin cache records instead of
|
|
24
|
+
* reading them in every new process (#1725).
|
|
23
25
|
*
|
|
24
26
|
* @param directory The source directory.
|
|
25
27
|
* @param options.env An effective environment other than this process's, which
|
|
@@ -28,6 +30,7 @@
|
|
|
28
30
|
* caller already read it.
|
|
29
31
|
* @param options.environment The directory's `pluginBuildEnvironment`, when the
|
|
30
32
|
* caller already read it, as a plugin build's key does.
|
|
33
|
+
* @param options.projectRoot Project whose plugin cache root holds the records.
|
|
31
34
|
* @returns The state, as lowercase hex.
|
|
32
35
|
* @throws When a listed source file cannot be read, as the build itself would.
|
|
33
36
|
* @evidence contracts/common.md#principled-implementation The state combines source and environment digests because both affect compiled plugin behavior; supplied readings preserve the exact inputs a build already keyed on.
|
|
@@ -36,12 +39,13 @@
|
|
|
36
39
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain module-root versus overlay environment meaning and the provenance required for supplied digests.
|
|
37
40
|
* @evidence contracts/portability.md#os-neutral-implementation Native source and toolchain identity are delegated to the shared filesystem/process readers; the final digest is platform-independent serialized text.
|
|
38
41
|
* @evidence contracts/performance.md#efficient-algorithms Composition serializes/hashes supplied digest strings whose public inputs are not length-validated; owning generated digests are fixed-width hex. Missing readings delegate native source enumeration/full reads and environment variable/witness/tool/SDK work, without establishing an unmeasured dominant cost ranking.
|
|
39
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Supplied source/environment strings are trusted producer readings, not independently revalidated here. Process-environment memos require their owner's variable/path witness checks; explicit injected environments are read fresh. Equality inherits the selected-source and native metadata premises.
|
|
42
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Supplied source/environment strings are trusted producer readings, not independently revalidated here. Process-environment memos require their owner's variable/path witness checks; explicit injected environments are read fresh. A named project lets missing source and SDK readings come from its record store across processes. Equality inherits the selected-source and native metadata premises.
|
|
40
43
|
*
|
|
41
44
|
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This function retains no resource or state after returning; process-environment memo lifetime belongs to its separate owner.
|
|
42
45
|
*/
|
|
43
46
|
export declare function pluginSourceState(directory: string, options?: {
|
|
44
47
|
env?: NodeJS.ProcessEnv;
|
|
45
48
|
environment?: string;
|
|
49
|
+
projectRoot?: string;
|
|
46
50
|
sourceDigest?: string;
|
|
47
51
|
}): string;
|
|
@@ -5,9 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.pluginSourceState = pluginSourceState;
|
|
7
7
|
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
8
|
+
const PluginContentIdentities_1 = require("./PluginContentIdentities");
|
|
8
9
|
const pluginBuildEnvironment_1 = require("./pluginBuildEnvironment");
|
|
9
|
-
const pluginSourceDigest_1 = require("./pluginSourceDigest");
|
|
10
10
|
const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment");
|
|
11
|
+
const provenPluginSourceDigest_1 = require("./provenPluginSourceDigest");
|
|
11
12
|
/**
|
|
12
13
|
* The state of one plugin source directory as a plugin binary is built from it:
|
|
13
14
|
* the digest of its sources (`pluginSourceDigest`) together with the
|
|
@@ -29,7 +30,9 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
|
|
|
29
30
|
* process's own environment the environment is read once per directory and set
|
|
30
31
|
* of variables (`processPluginBuildEnvironment`), and a proof that must not
|
|
31
32
|
* accept a stale one compares through `pluginSourceStateHolds`, which reads it
|
|
32
|
-
* again before it refutes a state.
|
|
33
|
+
* again before it refutes a state. A caller that names its project proves the
|
|
34
|
+
* sources and the SDK from that project's plugin cache records instead of
|
|
35
|
+
* reading them in every new process (#1725).
|
|
33
36
|
*
|
|
34
37
|
* @param directory The source directory.
|
|
35
38
|
* @param options.env An effective environment other than this process's, which
|
|
@@ -38,6 +41,7 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
|
|
|
38
41
|
* caller already read it.
|
|
39
42
|
* @param options.environment The directory's `pluginBuildEnvironment`, when the
|
|
40
43
|
* caller already read it, as a plugin build's key does.
|
|
44
|
+
* @param options.projectRoot Project whose plugin cache root holds the records.
|
|
41
45
|
* @returns The state, as lowercase hex.
|
|
42
46
|
* @throws When a listed source file cannot be read, as the build itself would.
|
|
43
47
|
* @evidence contracts/common.md#principled-implementation The state combines source and environment digests because both affect compiled plugin behavior; supplied readings preserve the exact inputs a build already keyed on.
|
|
@@ -46,18 +50,26 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
|
|
|
46
50
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain module-root versus overlay environment meaning and the provenance required for supplied digests.
|
|
47
51
|
* @evidence contracts/portability.md#os-neutral-implementation Native source and toolchain identity are delegated to the shared filesystem/process readers; the final digest is platform-independent serialized text.
|
|
48
52
|
* @evidence contracts/performance.md#efficient-algorithms Composition serializes/hashes supplied digest strings whose public inputs are not length-validated; owning generated digests are fixed-width hex. Missing readings delegate native source enumeration/full reads and environment variable/witness/tool/SDK work, without establishing an unmeasured dominant cost ranking.
|
|
49
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Supplied source/environment strings are trusted producer readings, not independently revalidated here. Process-environment memos require their owner's variable/path witness checks; explicit injected environments are read fresh. Equality inherits the selected-source and native metadata premises.
|
|
53
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Supplied source/environment strings are trusted producer readings, not independently revalidated here. Process-environment memos require their owner's variable/path witness checks; explicit injected environments are read fresh. A named project lets missing source and SDK readings come from its record store across processes. Equality inherits the selected-source and native metadata premises.
|
|
50
54
|
*
|
|
51
55
|
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This function retains no resource or state after returning; process-environment memo lifetime belongs to its separate owner.
|
|
52
56
|
*/
|
|
53
57
|
function pluginSourceState(directory, options = {}) {
|
|
58
|
+
const sourceDigest = options.sourceDigest ??
|
|
59
|
+
(0, provenPluginSourceDigest_1.provenPluginSourceDigest)(directory, options.projectRoot, options.env);
|
|
60
|
+
const environment = options.environment ??
|
|
61
|
+
(options.env === undefined
|
|
62
|
+
? (0, processPluginBuildEnvironment_1.processPluginBuildEnvironment)(directory, false, options.projectRoot)
|
|
63
|
+
: (0, pluginBuildEnvironment_1.pluginBuildEnvironment)(directory, options.env, undefined, options.projectRoot === undefined
|
|
64
|
+
? undefined
|
|
65
|
+
: PluginContentIdentities_1.PluginContentIdentities.open({
|
|
66
|
+
projectRoot: options.projectRoot,
|
|
67
|
+
env: options.env,
|
|
68
|
+
sources: [directory],
|
|
69
|
+
})));
|
|
54
70
|
return node_crypto_1.default
|
|
55
71
|
.createHash("sha256")
|
|
56
|
-
.update(`source=${
|
|
57
|
-
`environment=${options.environment ??
|
|
58
|
-
(options.env === undefined
|
|
59
|
-
? (0, processPluginBuildEnvironment_1.processPluginBuildEnvironment)(directory)
|
|
60
|
-
: (0, pluginBuildEnvironment_1.pluginBuildEnvironment)(directory, options.env))}\n`)
|
|
72
|
+
.update(`source=${sourceDigest}\nenvironment=${environment}\n`)
|
|
61
73
|
.digest("hex");
|
|
62
74
|
}
|
|
63
75
|
//# sourceMappingURL=pluginSourceState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginSourceState.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginSourceState.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AAEjC,qEAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"pluginSourceState.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginSourceState.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AAEjC,uEAAoE;AACpE,qEAAkE;AAClE,mFAAgF;AAChF,yEAAsE;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,2BACE,SAAiB,EACjB,OAAO,GAKH,EAAE;IAEN,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY;QACpB,IAAA,mDAAwB,EAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACxE,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;QACnB,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;YACxB,CAAC,CAAC,IAAA,6DAA6B,EAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;YACtE,CAAC,CAAC,IAAA,+CAAsB,EACpB,SAAS,EACT,OAAO,CAAC,GAAG,EACX,SAAS,EACT,OAAO,CAAC,WAAW,KAAK,SAAS;gBAC/B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,iDAAuB,CAAC,IAAI,CAAC;oBAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,OAAO,EAAE,CAAC,SAAS,CAAC;iBACrB,CAAC,CACP,CAAC,CAAC;IACT,OAAO,qBAAM;SACV,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,UAAU,YAAY,iBAAiB,WAAW,IAAI,CAAC;SAC9D,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC"}
|
|
@@ -12,12 +12,16 @@
|
|
|
12
12
|
* is refuted. A compile keys its binaries on a fresh read, so a state it
|
|
13
13
|
* reported after a change gets one comparison with a refreshed environment.
|
|
14
14
|
* That retry does not guarantee equality for a changing or differently keyed
|
|
15
|
-
* environment, and a supplied source digest remains the caller's premise.
|
|
15
|
+
* environment, and a supplied source digest remains the caller's premise. A
|
|
16
|
+
* caller that names its project proves the sources and the SDK from that
|
|
17
|
+
* project's plugin cache records instead of reading them in every new process
|
|
18
|
+
* (#1725).
|
|
16
19
|
*
|
|
17
20
|
* @param directory The source directory, as the envelope names it.
|
|
18
21
|
* @param state The state the envelope reported.
|
|
19
22
|
* @param options.sourceDigest The directory's `pluginSourceDigest`, when the
|
|
20
23
|
* caller holds one it can vouch for.
|
|
24
|
+
* @param options.projectRoot Project whose plugin cache root holds the records.
|
|
21
25
|
* @throws When a listed source file cannot be read, as the build itself would.
|
|
22
26
|
* @evidence contracts/common.md#principled-implementation Equality uses shared state composition and one real environment refresh after mismatch. This allows changed observations to be reconsidered without certifying the second comparison must match; supplied digest validity and native witness premises remain with their owners.
|
|
23
27
|
* @evidence contracts/common.md#clear-and-simple-design One source reading is passed through both attempts and only the environment owner performs the refresh.
|
|
@@ -25,10 +29,11 @@
|
|
|
25
29
|
* @evidence contracts/common.md#meaningful-documentation The prose states source-digest provenance, environment invalidation and the reason a mismatching state gets a fresh comparison.
|
|
26
30
|
* @evidence contracts/portability.md#os-neutral-implementation Source reads and Go/environment witnesses use the same native boundary implementations as builds, rather than comparing OS names or guessed installation paths.
|
|
27
31
|
* @evidence contracts/performance.md#efficient-algorithms At most one source digest computation is requested and reused by both comparisons; supplied strings bypass it. Native enumeration/file bytes, full environment identity/witness checks, optional tool/SDK refresh and digest-string hashing contribute work; mismatch repeats environment resolution once rather than bounding total cost by comparison count.
|
|
28
|
-
* @evidence contracts/performance.md#reuse-equivalent-work A caller's proven source digest and the process owner's still-valid environment are reused; a mismatch forces the owning environment refresh before returning false.
|
|
32
|
+
* @evidence contracts/performance.md#reuse-equivalent-work A caller's proven source digest and the process owner's still-valid environment are reused; a mismatch forces the owning environment refresh before returning false. A named project lets the source and SDK readings come from its record store across processes.
|
|
29
33
|
*
|
|
30
34
|
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The proof owns no retained source buffer, process or watcher; its caller owns any saved source digest.
|
|
31
35
|
*/
|
|
32
36
|
export declare function pluginSourceStateHolds(directory: string, state: string, options?: {
|
|
37
|
+
projectRoot?: string;
|
|
33
38
|
sourceDigest?: string;
|
|
34
39
|
}): boolean;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pluginSourceStateHolds = pluginSourceStateHolds;
|
|
4
|
-
const pluginSourceDigest_1 = require("./pluginSourceDigest");
|
|
5
4
|
const pluginSourceState_1 = require("./pluginSourceState");
|
|
6
5
|
const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment");
|
|
6
|
+
const provenPluginSourceDigest_1 = require("./provenPluginSourceDigest");
|
|
7
7
|
/**
|
|
8
8
|
* Whether one plugin source directory still holds the state a transform
|
|
9
9
|
* reported for it (`pluginSourceState`), under this process's environment.
|
|
@@ -18,12 +18,16 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
|
|
|
18
18
|
* is refuted. A compile keys its binaries on a fresh read, so a state it
|
|
19
19
|
* reported after a change gets one comparison with a refreshed environment.
|
|
20
20
|
* That retry does not guarantee equality for a changing or differently keyed
|
|
21
|
-
* environment, and a supplied source digest remains the caller's premise.
|
|
21
|
+
* environment, and a supplied source digest remains the caller's premise. A
|
|
22
|
+
* caller that names its project proves the sources and the SDK from that
|
|
23
|
+
* project's plugin cache records instead of reading them in every new process
|
|
24
|
+
* (#1725).
|
|
22
25
|
*
|
|
23
26
|
* @param directory The source directory, as the envelope names it.
|
|
24
27
|
* @param state The state the envelope reported.
|
|
25
28
|
* @param options.sourceDigest The directory's `pluginSourceDigest`, when the
|
|
26
29
|
* caller holds one it can vouch for.
|
|
30
|
+
* @param options.projectRoot Project whose plugin cache root holds the records.
|
|
27
31
|
* @throws When a listed source file cannot be read, as the build itself would.
|
|
28
32
|
* @evidence contracts/common.md#principled-implementation Equality uses shared state composition and one real environment refresh after mismatch. This allows changed observations to be reconsidered without certifying the second comparison must match; supplied digest validity and native witness premises remain with their owners.
|
|
29
33
|
* @evidence contracts/common.md#clear-and-simple-design One source reading is passed through both attempts and only the environment owner performs the refresh.
|
|
@@ -31,15 +35,16 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
|
|
|
31
35
|
* @evidence contracts/common.md#meaningful-documentation The prose states source-digest provenance, environment invalidation and the reason a mismatching state gets a fresh comparison.
|
|
32
36
|
* @evidence contracts/portability.md#os-neutral-implementation Source reads and Go/environment witnesses use the same native boundary implementations as builds, rather than comparing OS names or guessed installation paths.
|
|
33
37
|
* @evidence contracts/performance.md#efficient-algorithms At most one source digest computation is requested and reused by both comparisons; supplied strings bypass it. Native enumeration/file bytes, full environment identity/witness checks, optional tool/SDK refresh and digest-string hashing contribute work; mismatch repeats environment resolution once rather than bounding total cost by comparison count.
|
|
34
|
-
* @evidence contracts/performance.md#reuse-equivalent-work A caller's proven source digest and the process owner's still-valid environment are reused; a mismatch forces the owning environment refresh before returning false.
|
|
38
|
+
* @evidence contracts/performance.md#reuse-equivalent-work A caller's proven source digest and the process owner's still-valid environment are reused; a mismatch forces the owning environment refresh before returning false. A named project lets the source and SDK readings come from its record store across processes.
|
|
35
39
|
*
|
|
36
40
|
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The proof owns no retained source buffer, process or watcher; its caller owns any saved source digest.
|
|
37
41
|
*/
|
|
38
42
|
function pluginSourceStateHolds(directory, state, options = {}) {
|
|
39
|
-
const
|
|
40
|
-
|
|
43
|
+
const projectRoot = options.projectRoot;
|
|
44
|
+
const sourceDigest = options.sourceDigest ?? (0, provenPluginSourceDigest_1.provenPluginSourceDigest)(directory, projectRoot);
|
|
45
|
+
if ((0, pluginSourceState_1.pluginSourceState)(directory, { projectRoot, sourceDigest }) === state)
|
|
41
46
|
return true;
|
|
42
|
-
(0, processPluginBuildEnvironment_1.processPluginBuildEnvironment)(directory, true);
|
|
43
|
-
return (0, pluginSourceState_1.pluginSourceState)(directory, { sourceDigest }) === state;
|
|
47
|
+
(0, processPluginBuildEnvironment_1.processPluginBuildEnvironment)(directory, true, projectRoot);
|
|
48
|
+
return (0, pluginSourceState_1.pluginSourceState)(directory, { projectRoot, sourceDigest }) === state;
|
|
44
49
|
}
|
|
45
50
|
//# sourceMappingURL=pluginSourceStateHolds.js.map
|