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
|
@@ -0,0 +1,128 @@
|
|
|
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.PluginLoadAnswers = void 0;
|
|
7
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
8
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const E2ETrace_1 = require("../../../internal/E2ETrace");
|
|
11
|
+
const SourceBuildCacheLayout_1 = require("./SourceBuildCacheLayout");
|
|
12
|
+
const recordCacheFileUse_1 = require("./recordCacheFileUse");
|
|
13
|
+
/**
|
|
14
|
+
* Answers a plugin load computed from inputs it could identify by content, kept
|
|
15
|
+
* in the plugin cache root under that identity so a later process with equal
|
|
16
|
+
* inputs reads the answer instead of computing it again.
|
|
17
|
+
*
|
|
18
|
+
* WARNING (#1721, #1723): the key is the whole proof. A caller must fold into
|
|
19
|
+
* `identity` every input that can change the answer, as content identities
|
|
20
|
+
* (`PluginContentIdentities`) or the authoritative live probe results, never a
|
|
21
|
+
* path, a timestamp or a value it merely expects to be stable. An answer is
|
|
22
|
+
* written only after the computation succeeded on inputs the caller proved
|
|
23
|
+
* unchanged around it; a failed or unproved computation is never recorded,
|
|
24
|
+
* since a later process could not tell it from a current one.
|
|
25
|
+
*
|
|
26
|
+
* Entries are single files published by rename, aged out by the single-file
|
|
27
|
+
* collector and removed by `ttsc clean`. Their identity includes the format tag
|
|
28
|
+
* and the ttsc version, so another release never reads them.
|
|
29
|
+
*
|
|
30
|
+
* @evidence contracts/common.md#principled-implementation The content-addressed key carries every caller-declared input identity; reads accept only a matching format, version and kind, and writes are refused for unproved computations by the caller contract.
|
|
31
|
+
* @evidence contracts/common.md#clear-and-simple-design One owner stores and loads opaque answers; callers own key composition, validation of the answer shape and the decision to record.
|
|
32
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts No answer is guessed; a missing, corrupt or foreign entry is a miss and the caller computes.
|
|
33
|
+
* @evidence contracts/common.md#meaningful-documentation Native paragraphs state the key contract that prevents stale answers, the recording rule and the storage lifetime.
|
|
34
|
+
* @evidence contracts/portability.md#os-neutral-implementation Native path joins and same-directory rename publication; keys are hashed text, independent of path dialect.
|
|
35
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms Members state their own costs.
|
|
36
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work Members define reuse through the caller's identity.
|
|
37
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Members state retention; the namespace holds no state.
|
|
38
|
+
*/
|
|
39
|
+
var PluginLoadAnswers;
|
|
40
|
+
(function (PluginLoadAnswers) {
|
|
41
|
+
/**
|
|
42
|
+
* The answer recorded for `identity`, or `undefined` when none is.
|
|
43
|
+
*
|
|
44
|
+
* @param store The opened store, or `undefined` for no persistence.
|
|
45
|
+
* @param kind Answer family; families never share entries.
|
|
46
|
+
* @param identity Every input identity the answer depends on.
|
|
47
|
+
* @evidence contracts/common.md#principled-implementation An entry is returned only for the same format, version, kind and identity hash; the caller validates the value's shape.
|
|
48
|
+
* @evidence contracts/common.md#clear-and-simple-design One lookup returns an opaque value or undefined.
|
|
49
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Unreadable or foreign entries are misses.
|
|
50
|
+
* @evidence contracts/common.md#meaningful-documentation Parameters describe the identity contract.
|
|
51
|
+
* @evidence contracts/portability.md#os-neutral-implementation Native path join and file read.
|
|
52
|
+
* @evidence contracts/performance.md#efficient-algorithms Hashes the serialized identity and reads one small file; a hit refreshes its use time.
|
|
53
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Processes share an answer only for an identical serialized identity under the same version.
|
|
54
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources Nothing is retained in memory; the collector owns entry lifetime.
|
|
55
|
+
*/
|
|
56
|
+
function read(store, kind, identity) {
|
|
57
|
+
if (store === undefined)
|
|
58
|
+
return undefined;
|
|
59
|
+
const file = answerFile(store, kind, identity);
|
|
60
|
+
try {
|
|
61
|
+
const entry = JSON.parse(node_fs_1.default.readFileSync(file, "utf8"));
|
|
62
|
+
if (entry.format !== FORMAT ||
|
|
63
|
+
entry.version !== store.version ||
|
|
64
|
+
entry.kind !== kind ||
|
|
65
|
+
!Object.prototype.hasOwnProperty.call(entry, "value"))
|
|
66
|
+
return undefined;
|
|
67
|
+
(0, recordCacheFileUse_1.recordCacheFileUse)(file);
|
|
68
|
+
E2ETrace_1.E2ETrace.capabilityResolution("plugin-load-answer", {
|
|
69
|
+
kind,
|
|
70
|
+
outcome: "reused",
|
|
71
|
+
});
|
|
72
|
+
return entry.value;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
PluginLoadAnswers.read = read;
|
|
79
|
+
/**
|
|
80
|
+
* Record `value` as the answer for `identity`. Failures are ignored: the
|
|
81
|
+
* answer just computed stands, and the next process computes it again.
|
|
82
|
+
*
|
|
83
|
+
* @param store The opened store, or `undefined` for no persistence.
|
|
84
|
+
* @param kind Answer family.
|
|
85
|
+
* @param identity Every input identity the answer depends on.
|
|
86
|
+
* @param value JSON-serializable answer the caller proved for `identity`.
|
|
87
|
+
* @evidence contracts/common.md#principled-implementation Publication happens only when the caller decided the computation was proven; the entry records the same identity framing that read checks.
|
|
88
|
+
* @evidence contracts/common.md#clear-and-simple-design One atomic publication through the shared metadata writer.
|
|
89
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts A failed write never fails the load or fabricates an entry.
|
|
90
|
+
* @evidence contracts/common.md#meaningful-documentation Native prose states failure behavior.
|
|
91
|
+
* @evidence contracts/portability.md#os-neutral-implementation Same-directory staging and rename through the shared writer.
|
|
92
|
+
* @evidence contracts/performance.md#efficient-algorithms Serializes the identity and value once and writes one small file.
|
|
93
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work Publication creates the reusable entry; read owns reuse.
|
|
94
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources One file per identity, removed by the single-file collector or `ttsc clean`; staging cleanup belongs to the shared writer.
|
|
95
|
+
*/
|
|
96
|
+
function write(store, kind, identity, value) {
|
|
97
|
+
if (store === undefined)
|
|
98
|
+
return;
|
|
99
|
+
const file = answerFile(store, kind, identity);
|
|
100
|
+
try {
|
|
101
|
+
node_fs_1.default.mkdirSync(node_path_1.default.dirname(file), { recursive: true });
|
|
102
|
+
SourceBuildCacheLayout_1.SourceBuildCacheLayout.replaceCacheMetadataFile(file, JSON.stringify({
|
|
103
|
+
format: FORMAT,
|
|
104
|
+
version: store.version,
|
|
105
|
+
kind,
|
|
106
|
+
value,
|
|
107
|
+
}));
|
|
108
|
+
E2ETrace_1.E2ETrace.capabilityResolution("plugin-load-answer", {
|
|
109
|
+
kind,
|
|
110
|
+
outcome: "recorded",
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// The answer just computed stands; only its reuse is lost.
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
PluginLoadAnswers.write = write;
|
|
118
|
+
/** Entry format tag; move it when the entry shape changes. */
|
|
119
|
+
const FORMAT = "ttsc-plugin-load-answer-v1";
|
|
120
|
+
function answerFile(store, kind, identity) {
|
|
121
|
+
const key = node_crypto_1.default
|
|
122
|
+
.createHash("sha256")
|
|
123
|
+
.update(JSON.stringify([FORMAT, store.version, kind, identity]))
|
|
124
|
+
.digest("hex");
|
|
125
|
+
return node_path_1.default.join(store.root, SourceBuildCacheLayout_1.SourceBuildCacheLayout.ANSWER_CACHE_DIRNAME, `${key}.json`);
|
|
126
|
+
}
|
|
127
|
+
})(PluginLoadAnswers || (exports.PluginLoadAnswers = PluginLoadAnswers = {}));
|
|
128
|
+
//# sourceMappingURL=PluginLoadAnswers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginLoadAnswers.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/PluginLoadAnswers.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AACzB,0DAA6B;AAE7B,yDAAsD;AAEtD,qEAAkE;AAClE,6DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,IAAiB,iBAAiB,CAmHjC;AAnHD,WAAiB,iBAAiB;IAChC;;;;;;;;;;;;;;OAcG;IACH,SAAgB,IAAI,CAClB,KAAgD,EAChD,IAAY,EACZ,QAAiB;QAEjB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CACX,CAAC;YACrB,IACE,KAAK,CAAC,MAAM,KAAK,MAAM;gBACvB,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;gBAC/B,KAAK,CAAC,IAAI,KAAK,IAAI;gBACnB,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;gBAErD,OAAO,SAAS,CAAC;YACnB,IAAA,uCAAkB,EAAC,IAAI,CAAC,CAAC;YACzB,mBAAQ,CAAC,oBAAoB,CAAC,oBAAoB,EAAE;gBAClD,IAAI;gBACJ,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IA3Be,kBAAA,IAAI,OA2BnB,CAAA;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,KAAK,CACnB,KAAgD,EAChD,IAAY,EACZ,QAAiB,EACjB,KAAc;QAEd,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,iBAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,+CAAsB,CAAC,wBAAwB,CAC7C,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC;gBACb,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI;gBACJ,KAAK;aACW,CAAC,CACpB,CAAC;YACF,mBAAQ,CAAC,oBAAoB,CAAC,oBAAoB,EAAE;gBAClD,IAAI;gBACJ,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IA1Be,kBAAA,KAAK,QA0BpB,CAAA;IAED,8DAA8D;IAC9D,MAAM,MAAM,GAAG,4BAA4B,CAAC;IAS5C,SAAS,UAAU,CACjB,KAAoC,EACpC,IAAY,EACZ,QAAiB;QAEjB,MAAM,GAAG,GAAG,qBAAM;aACf,UAAU,CAAC,QAAQ,CAAC;aACpB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC/D,MAAM,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,mBAAI,CAAC,IAAI,CACd,KAAK,CAAC,IAAI,EACV,+CAAsB,CAAC,oBAAoB,EAC3C,GAAG,GAAG,OAAO,CACd,CAAC;IACJ,CAAC;AACH,CAAC,EAnHgB,iBAAiB,aAAjB,iBAAiB,GAAjB,iBAAiB,QAmHjC"}
|
|
@@ -36,6 +36,16 @@ export declare namespace SourceBuildCacheLayout {
|
|
|
36
36
|
const DESCRIPTOR_CACHE_DIRNAME = "descriptors";
|
|
37
37
|
/** Directory of the capability-resolution answers inside the cache root. */
|
|
38
38
|
const CAPABILITY_CACHE_DIRNAME = "capabilities";
|
|
39
|
+
/**
|
|
40
|
+
* Directory of the content identities a plugin load proves from metadata
|
|
41
|
+
* (`PluginContentIdentities`) inside the cache root.
|
|
42
|
+
*/
|
|
43
|
+
const IDENTITY_CACHE_DIRNAME = "identities";
|
|
44
|
+
/**
|
|
45
|
+
* Directory of the plugin-load answers keyed by those identities, such as Go
|
|
46
|
+
* package selections and runtime capabilities (`PluginLoadAnswers`).
|
|
47
|
+
*/
|
|
48
|
+
const ANSWER_CACHE_DIRNAME = "answers";
|
|
39
49
|
/** Directory of the ttsx runtime inside the cache root. */
|
|
40
50
|
const RUNTIME_CACHE_DIRNAME = "ttsx";
|
|
41
51
|
/**
|
|
@@ -50,6 +50,16 @@ var SourceBuildCacheLayout;
|
|
|
50
50
|
SourceBuildCacheLayout.DESCRIPTOR_CACHE_DIRNAME = "descriptors";
|
|
51
51
|
/** Directory of the capability-resolution answers inside the cache root. */
|
|
52
52
|
SourceBuildCacheLayout.CAPABILITY_CACHE_DIRNAME = "capabilities";
|
|
53
|
+
/**
|
|
54
|
+
* Directory of the content identities a plugin load proves from metadata
|
|
55
|
+
* (`PluginContentIdentities`) inside the cache root.
|
|
56
|
+
*/
|
|
57
|
+
SourceBuildCacheLayout.IDENTITY_CACHE_DIRNAME = "identities";
|
|
58
|
+
/**
|
|
59
|
+
* Directory of the plugin-load answers keyed by those identities, such as Go
|
|
60
|
+
* package selections and runtime capabilities (`PluginLoadAnswers`).
|
|
61
|
+
*/
|
|
62
|
+
SourceBuildCacheLayout.ANSWER_CACHE_DIRNAME = "answers";
|
|
53
63
|
/** Directory of the ttsx runtime inside the cache root. */
|
|
54
64
|
SourceBuildCacheLayout.RUNTIME_CACHE_DIRNAME = "ttsx";
|
|
55
65
|
/**
|
|
@@ -66,6 +76,8 @@ var SourceBuildCacheLayout;
|
|
|
66
76
|
SourceBuildCacheLayout.CACHE_FILE_DIRNAMES = [
|
|
67
77
|
SourceBuildCacheLayout.DESCRIPTOR_CACHE_DIRNAME,
|
|
68
78
|
SourceBuildCacheLayout.CAPABILITY_CACHE_DIRNAME,
|
|
79
|
+
SourceBuildCacheLayout.IDENTITY_CACHE_DIRNAME,
|
|
80
|
+
SourceBuildCacheLayout.ANSWER_CACHE_DIRNAME,
|
|
69
81
|
SourceBuildCacheLayout.ORPHAN_CACHE_DIRNAME,
|
|
70
82
|
];
|
|
71
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceBuildCacheLayout.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/SourceBuildCacheLayout.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AACzB,0DAA6B;AAE7B,iGAA8F;AAE9F,6DAA0D;AAC1D,mEAAgE;AAChE,iEAA8D;AAE9D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,IAAiB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"SourceBuildCacheLayout.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/SourceBuildCacheLayout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
+
import type { PluginContentIdentities } from "./PluginContentIdentities";
|
|
1
2
|
/**
|
|
2
3
|
* Share generated Go workspace policy between package selection and building.
|
|
3
4
|
*
|
|
4
5
|
* Package selection must use the builder's overlays, generated workspace and
|
|
5
|
-
* selected tool rather than an ancestor go.work found in a source directory.
|
|
6
|
-
*
|
|
7
|
-
* and effective environment;
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* selected tool rather than an ancestor go.work found in a source directory. A
|
|
7
|
+
* load shares early replacement watch, package and build manifest records under
|
|
8
|
+
* its pinned tool and effective environment; identical current bytes in
|
|
9
|
+
* independently proven scratch inputs share their Go parse. A moved native tool
|
|
10
|
+
* clears that reader's syntax memo, and a toolchain retry starts a new reader
|
|
11
|
+
* scope. Each caller has a diagnostic view over the shared native reader state;
|
|
12
|
+
* one plugin cannot inherit another plugin's failure label (#1720). Go supplies
|
|
13
|
+
* the workspace's required Go and toolchain directives. These reads preserve
|
|
14
|
+
* the existing installation/version and sequential-stability limits.
|
|
11
15
|
*
|
|
12
16
|
* @evidence contracts/common.md#principled-implementation Shared manifest acquisition, managed replacement admission, overlay filtering and Go-owned workspace version selection keep metadata and compilation under the same workspace policy; callers own source materialization and effective environment.
|
|
13
17
|
* @evidence contracts/common.md#clear-and-simple-design One namespace owns the generated workspace and its module reader, overlay discovery and Go launch diagnostics; no second manifest parser or build-tag interpreter is introduced.
|
|
14
18
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts Actual Go mod edit and work use commands interpret manifests; selected tool errors propagate and no static workspace version replaces Go's decision.
|
|
15
19
|
* @evidence contracts/common.md#meaningful-documentation Native prose explains shared policy and caller ownership; private helpers remain part of this operation's review surface.
|
|
16
20
|
* @evidence contracts/portability.md#os-neutral-implementation Native fs/path operations preserve path spelling and formatGoWorkPath owns Go syntax quoting; subprocesses use the existing native wrapper owner with hidden windows.
|
|
17
|
-
* @evidence contracts/performance.md#efficient-algorithms Workspace construction scans module and replacement populations; each
|
|
18
|
-
* @evidence contracts/performance.md#reuse-equivalent-work
|
|
21
|
+
* @evidence contracts/performance.md#efficient-algorithms Workspace construction scans module and replacement populations; each reader reads current manifest bytes and memoizes equivalent Go syntax within its pinned native tool/load. Overlay discovery recursively scans admitted directories and sorts paths; native Go output and JSON parsing scale with complete bytes.
|
|
22
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Metadata and materialized builds share Go parsing only for identical current manifest bytes under the same pinned tool/effective environment. Independent materialization/content proof remains with each caller; tool movement clears syntax reuse and retries start another scope.
|
|
19
23
|
* @evidence contracts/performance.md#bound-retention-and-release-resources Readers retain module records only for their enclosing load or materialized build; command capture cleanup belongs to spawnGoTool and scratch lifetime belongs to the caller. Native commands can mutate Go-owned state and their selected-child completion does not prove arbitrary descendants retired.
|
|
20
24
|
*/
|
|
21
25
|
export declare namespace SourcePluginWorkspace {
|
|
@@ -33,7 +37,8 @@ export declare namespace SourcePluginWorkspace {
|
|
|
33
37
|
*/
|
|
34
38
|
export function materialize(source: string, scratch: string): void;
|
|
35
39
|
/**
|
|
36
|
-
* Write the native builder's generated workspace and let Go select its
|
|
40
|
+
* Write the native builder's generated workspace and let Go select its
|
|
41
|
+
* version.
|
|
37
42
|
*
|
|
38
43
|
* @evidence contracts/common.md#principled-implementation Actual manifest records drive managed overlay filtering and replacement admission; Go work use supplies required directives.
|
|
39
44
|
* @evidence contracts/common.md#clear-and-simple-design The writer shares one reader across source/overlay queries and delegates manifest interpretation to Go.
|
|
@@ -51,6 +56,7 @@ export declare namespace SourcePluginWorkspace {
|
|
|
51
56
|
interface GoModInfo {
|
|
52
57
|
readonly modulePath: string | null;
|
|
53
58
|
readonly replacements: readonly GoModReplacement[];
|
|
59
|
+
readonly directives: NonNullable<GoModJson["Replace"]>;
|
|
54
60
|
}
|
|
55
61
|
/**
|
|
56
62
|
* One selected-context manifest reader.
|
|
@@ -67,31 +73,59 @@ export declare namespace SourcePluginWorkspace {
|
|
|
67
73
|
export interface GoModReader {
|
|
68
74
|
/**
|
|
69
75
|
* Observe the module at this native directory within the reader context.
|
|
76
|
+
* The optional diagnostic owner overrides the creating caller's label only;
|
|
77
|
+
* it changes no selected-tool, environment or byte-content authority.
|
|
70
78
|
*
|
|
71
79
|
* @evidence contracts/common.md#principled-implementation The signature associates a native directory with the selected reader's Go-owned module and replacement observation.
|
|
72
|
-
* @evidence contracts/common.md#clear-and-simple-design
|
|
80
|
+
* @evidence contracts/common.md#clear-and-simple-design A directory and optional diagnostic label expose manifest policy without treating the label as native cache authority.
|
|
73
81
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts The signature supplies no parser, alternate selection policy or stability certificate.
|
|
74
|
-
* @evidence contracts/common.md#meaningful-documentation Native prose states
|
|
82
|
+
* @evidence contracts/common.md#meaningful-documentation Native prose states selected-context result ownership and the optional caller label, which changes failure attribution only.
|
|
75
83
|
* @evidence contracts/portability.md#os-neutral-implementation The directory is a native filesystem path; its resolution belongs to the implementing reader.
|
|
76
84
|
* @evidence contracts/performance.md#efficient-algorithms A method signature executes no algorithm; createGoModReader owns acquisition and parsing.
|
|
77
85
|
* @evidence contracts/performance.md#reuse-equivalent-work Implementations supply observations within their selected tool/environment scope; this signature establishes no cross-context memo.
|
|
78
86
|
* @evidence contracts/performance.md#bound-retention-and-release-resources The signature acquires no resource; record retention belongs to the reader's enclosing load or materialized build.
|
|
79
87
|
*/
|
|
80
|
-
read(dir: string): GoModInfo;
|
|
88
|
+
read(dir: string, diagnosticPlugin?: string): GoModInfo;
|
|
89
|
+
}
|
|
90
|
+
interface GoModJson {
|
|
91
|
+
readonly Module?: {
|
|
92
|
+
readonly Path?: string;
|
|
93
|
+
};
|
|
94
|
+
readonly Require?: readonly {
|
|
95
|
+
readonly Path?: string;
|
|
96
|
+
readonly Version?: string;
|
|
97
|
+
}[];
|
|
98
|
+
readonly Replace?: readonly {
|
|
99
|
+
readonly Old?: {
|
|
100
|
+
readonly Path?: string;
|
|
101
|
+
readonly Version?: string;
|
|
102
|
+
};
|
|
103
|
+
readonly New?: {
|
|
104
|
+
readonly Path?: string;
|
|
105
|
+
readonly Version?: string;
|
|
106
|
+
};
|
|
107
|
+
}[];
|
|
81
108
|
}
|
|
82
109
|
/**
|
|
83
|
-
* Read
|
|
110
|
+
* Read current manifest bytes and share identical Go parses within one pinned
|
|
111
|
+
* selected-tool/load context, including copied scratch modules. An optional
|
|
112
|
+
* registry shares native reader state from the first watch query onward; its
|
|
113
|
+
* owner must keep one fixed effective environment and discard it on retry.
|
|
114
|
+
* Caller views share that native state and syntax, while each default
|
|
115
|
+
* diagnostic label remains with its current caller. An optional record store
|
|
116
|
+
* only carries the Go environment-file discovery hint across processes; it
|
|
117
|
+
* never carries a parse.
|
|
84
118
|
*
|
|
85
|
-
* @evidence contracts/common.md#principled-implementation Actual go mod edit JSON determines module/replacement identities;
|
|
86
|
-
* @evidence contracts/common.md#clear-and-simple-design
|
|
119
|
+
* @evidence contracts/common.md#principled-implementation Actual go mod edit JSON determines module/replacement identities; current bytes, selected/dispatched-tool metadata and Go's environment-file witness qualify reuse under the existing metadata-distinguishability premise. Environment values are copied at reader creation. Missing go.mod returns the existing empty module observation, and moving tool/manifest inputs cannot publish a parsed record.
|
|
120
|
+
* @evidence contracts/common.md#clear-and-simple-design One factory acquires load-owned native reader state by selected tool; a thin caller view forwards its diagnostic label without duplicating the byte-content map. Current reads and post-parse byte/tool comparisons qualify insertion.
|
|
87
121
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts No custom Go manifest parser or global context-insensitive memo is introduced.
|
|
88
122
|
* @evidence contracts/common.md#meaningful-documentation Native prose states this operation's authority and delegated boundaries; fields retain separate native comments.
|
|
89
123
|
* @evidence contracts/portability.md#os-neutral-implementation Native path resolution and temporary cwd avoid deep Windows working-directory limits; the selected tool handles manifest syntax.
|
|
90
|
-
* @evidence contracts/performance.md#efficient-algorithms Each distinct
|
|
91
|
-
* @evidence contracts/performance.md#reuse-equivalent-work The caller may share this reader only within one load and the same pinned tool/effective environment;
|
|
92
|
-
* @evidence contracts/performance.md#bound-retention-and-release-resources The map
|
|
124
|
+
* @evidence contracts/performance.md#efficient-algorithms Reader acquisition performs a selected-tool registry lookup; every nonmissing read qualifies tool/environment metadata and reads current manifest bytes. A cold or stale witness first observes the selected launcher; an unavailable or nonfile launcher skips optional environment acquisition and permits only the actual uncached parse attempt. An observed file lends its same pre-read stat to the witness before acquiring current Go values and GOENV evidence through the common reader, without a GOROOT walk. Only complete native GOENV/GOROOT locations qualify syntax sharing; a dispatched tool is witnessed before parsing. Unavailable native environment acquisition disables syntax sharing while preserving actual parse success or failure. Each distinct byte string that earns stable successful syntax in that tool epoch runs Go mod edit and complete JSON parsing once, then rechecks bytes/tool metadata before caching; copied manifests share that parse. Failed queries remain uncached and report the current caller's diagnostic label.
|
|
125
|
+
* @evidence contracts/performance.md#reuse-equivalent-work The caller may share this reader only within one load and the same pinned tool/effective environment; parsed syntax is not cross-load or native containment authority. Caller views share native state while preserving failure attribution; diagnostic labels are not syntax cache inputs.
|
|
126
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources The map retains distinct manifest bytes and parsed syntax for its caller's load/build lifetime; process/output capture cleanup remains delegated.
|
|
93
127
|
*/
|
|
94
|
-
export function createGoModReader(goBinary: string, pluginName: string, env: NodeJS.ProcessEnv): GoModReader;
|
|
128
|
+
export function createGoModReader(goBinary: string, pluginName: string, env: NodeJS.ProcessEnv, readers?: Map<string, GoModReader>, identities?: PluginContentIdentities.Store): GoModReader;
|
|
95
129
|
/**
|
|
96
130
|
* Describe a failed Go launch without confusing missing cwd and missing tool.
|
|
97
131
|
*
|
|
@@ -8,29 +8,34 @@ const node_fs_1 = __importDefault(require("node:fs"));
|
|
|
8
8
|
const node_os_1 = __importDefault(require("node:os"));
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const OwnedSynchronousProcess_1 = require("../../../internal/OwnedSynchronousProcess");
|
|
11
|
+
const GoEnvironmentReading_1 = require("./GoEnvironmentReading");
|
|
11
12
|
const GoSourceInputs_1 = require("./GoSourceInputs");
|
|
12
|
-
const
|
|
13
|
+
const PluginBuildEnvironmentWitness_1 = require("./PluginBuildEnvironmentWitness");
|
|
13
14
|
const SourcePluginAdmission_1 = require("./SourcePluginAdmission");
|
|
15
|
+
const copiesPluginSourceEntry_1 = require("./copiesPluginSourceEntry");
|
|
14
16
|
const formatGoWorkPath_1 = require("./formatGoWorkPath");
|
|
15
17
|
const spawnGoTool_1 = require("./spawnGoTool");
|
|
16
18
|
/**
|
|
17
19
|
* Share generated Go workspace policy between package selection and building.
|
|
18
20
|
*
|
|
19
21
|
* Package selection must use the builder's overlays, generated workspace and
|
|
20
|
-
* selected tool rather than an ancestor go.work found in a source directory.
|
|
21
|
-
*
|
|
22
|
-
* and effective environment;
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* selected tool rather than an ancestor go.work found in a source directory. A
|
|
23
|
+
* load shares early replacement watch, package and build manifest records under
|
|
24
|
+
* its pinned tool and effective environment; identical current bytes in
|
|
25
|
+
* independently proven scratch inputs share their Go parse. A moved native tool
|
|
26
|
+
* clears that reader's syntax memo, and a toolchain retry starts a new reader
|
|
27
|
+
* scope. Each caller has a diagnostic view over the shared native reader state;
|
|
28
|
+
* one plugin cannot inherit another plugin's failure label (#1720). Go supplies
|
|
29
|
+
* the workspace's required Go and toolchain directives. These reads preserve
|
|
30
|
+
* the existing installation/version and sequential-stability limits.
|
|
26
31
|
*
|
|
27
32
|
* @evidence contracts/common.md#principled-implementation Shared manifest acquisition, managed replacement admission, overlay filtering and Go-owned workspace version selection keep metadata and compilation under the same workspace policy; callers own source materialization and effective environment.
|
|
28
33
|
* @evidence contracts/common.md#clear-and-simple-design One namespace owns the generated workspace and its module reader, overlay discovery and Go launch diagnostics; no second manifest parser or build-tag interpreter is introduced.
|
|
29
34
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts Actual Go mod edit and work use commands interpret manifests; selected tool errors propagate and no static workspace version replaces Go's decision.
|
|
30
35
|
* @evidence contracts/common.md#meaningful-documentation Native prose explains shared policy and caller ownership; private helpers remain part of this operation's review surface.
|
|
31
36
|
* @evidence contracts/portability.md#os-neutral-implementation Native fs/path operations preserve path spelling and formatGoWorkPath owns Go syntax quoting; subprocesses use the existing native wrapper owner with hidden windows.
|
|
32
|
-
* @evidence contracts/performance.md#efficient-algorithms Workspace construction scans module and replacement populations; each
|
|
33
|
-
* @evidence contracts/performance.md#reuse-equivalent-work
|
|
37
|
+
* @evidence contracts/performance.md#efficient-algorithms Workspace construction scans module and replacement populations; each reader reads current manifest bytes and memoizes equivalent Go syntax within its pinned native tool/load. Overlay discovery recursively scans admitted directories and sorts paths; native Go output and JSON parsing scale with complete bytes.
|
|
38
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Metadata and materialized builds share Go parsing only for identical current manifest bytes under the same pinned tool/effective environment. Independent materialization/content proof remains with each caller; tool movement clears syntax reuse and retries start another scope.
|
|
34
39
|
* @evidence contracts/performance.md#bound-retention-and-release-resources Readers retain module records only for their enclosing load or materialized build; command capture cleanup belongs to spawnGoTool and scratch lifetime belongs to the caller. Native commands can mutate Go-owned state and their selected-child completion does not prove arbitrary descendants retired.
|
|
35
40
|
*/
|
|
36
41
|
var SourcePluginWorkspace;
|
|
@@ -60,7 +65,8 @@ var SourcePluginWorkspace;
|
|
|
60
65
|
}
|
|
61
66
|
SourcePluginWorkspace.materialize = materialize;
|
|
62
67
|
/**
|
|
63
|
-
* Write the native builder's generated workspace and let Go select its
|
|
68
|
+
* Write the native builder's generated workspace and let Go select its
|
|
69
|
+
* version.
|
|
64
70
|
*
|
|
65
71
|
* @evidence contracts/common.md#principled-implementation Actual manifest records drive managed overlay filtering and replacement admission; Go work use supplies required directives.
|
|
66
72
|
* @evidence contracts/common.md#clear-and-simple-design The writer shares one reader across source/overlay queries and delegates manifest interpretation to Go.
|
|
@@ -132,32 +138,113 @@ var SourcePluginWorkspace;
|
|
|
132
138
|
];
|
|
133
139
|
}
|
|
134
140
|
/**
|
|
135
|
-
* Read
|
|
141
|
+
* Read current manifest bytes and share identical Go parses within one pinned
|
|
142
|
+
* selected-tool/load context, including copied scratch modules. An optional
|
|
143
|
+
* registry shares native reader state from the first watch query onward; its
|
|
144
|
+
* owner must keep one fixed effective environment and discard it on retry.
|
|
145
|
+
* Caller views share that native state and syntax, while each default
|
|
146
|
+
* diagnostic label remains with its current caller. An optional record store
|
|
147
|
+
* only carries the Go environment-file discovery hint across processes; it
|
|
148
|
+
* never carries a parse.
|
|
136
149
|
*
|
|
137
|
-
* @evidence contracts/common.md#principled-implementation Actual go mod edit JSON determines module/replacement identities;
|
|
138
|
-
* @evidence contracts/common.md#clear-and-simple-design
|
|
150
|
+
* @evidence contracts/common.md#principled-implementation Actual go mod edit JSON determines module/replacement identities; current bytes, selected/dispatched-tool metadata and Go's environment-file witness qualify reuse under the existing metadata-distinguishability premise. Environment values are copied at reader creation. Missing go.mod returns the existing empty module observation, and moving tool/manifest inputs cannot publish a parsed record.
|
|
151
|
+
* @evidence contracts/common.md#clear-and-simple-design One factory acquires load-owned native reader state by selected tool; a thin caller view forwards its diagnostic label without duplicating the byte-content map. Current reads and post-parse byte/tool comparisons qualify insertion.
|
|
139
152
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts No custom Go manifest parser or global context-insensitive memo is introduced.
|
|
140
153
|
* @evidence contracts/common.md#meaningful-documentation Native prose states this operation's authority and delegated boundaries; fields retain separate native comments.
|
|
141
154
|
* @evidence contracts/portability.md#os-neutral-implementation Native path resolution and temporary cwd avoid deep Windows working-directory limits; the selected tool handles manifest syntax.
|
|
142
|
-
* @evidence contracts/performance.md#efficient-algorithms Each distinct
|
|
143
|
-
* @evidence contracts/performance.md#reuse-equivalent-work The caller may share this reader only within one load and the same pinned tool/effective environment;
|
|
144
|
-
* @evidence contracts/performance.md#bound-retention-and-release-resources The map
|
|
155
|
+
* @evidence contracts/performance.md#efficient-algorithms Reader acquisition performs a selected-tool registry lookup; every nonmissing read qualifies tool/environment metadata and reads current manifest bytes. A cold or stale witness first observes the selected launcher; an unavailable or nonfile launcher skips optional environment acquisition and permits only the actual uncached parse attempt. An observed file lends its same pre-read stat to the witness before acquiring current Go values and GOENV evidence through the common reader, without a GOROOT walk. Only complete native GOENV/GOROOT locations qualify syntax sharing; a dispatched tool is witnessed before parsing. Unavailable native environment acquisition disables syntax sharing while preserving actual parse success or failure. Each distinct byte string that earns stable successful syntax in that tool epoch runs Go mod edit and complete JSON parsing once, then rechecks bytes/tool metadata before caching; copied manifests share that parse. Failed queries remain uncached and report the current caller's diagnostic label.
|
|
156
|
+
* @evidence contracts/performance.md#reuse-equivalent-work The caller may share this reader only within one load and the same pinned tool/effective environment; parsed syntax is not cross-load or native containment authority. Caller views share native state while preserving failure attribution; diagnostic labels are not syntax cache inputs.
|
|
157
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources The map retains distinct manifest bytes and parsed syntax for its caller's load/build lifetime; process/output capture cleanup remains delegated.
|
|
145
158
|
*/
|
|
146
|
-
function createGoModReader(goBinary, pluginName, env) {
|
|
159
|
+
function createGoModReader(goBinary, pluginName, env, readers, identities) {
|
|
160
|
+
const existing = readers?.get(goBinary);
|
|
161
|
+
if (existing !== undefined)
|
|
162
|
+
return {
|
|
163
|
+
read: (dir, diagnosticPlugin = pluginName) => existing.read(dir, diagnosticPlugin),
|
|
164
|
+
};
|
|
165
|
+
// WARNING (#1712): parse identical bytes once in this pinned tool/load
|
|
166
|
+
// context, including early replacement watch projection and copied scratch
|
|
167
|
+
// manifests. The optional registry belongs to one fixed effective environment
|
|
168
|
+
// and one load; it is never shared with a toolchain retry. Always read current bytes;
|
|
169
|
+
// a pathname or metadata-only memo misses manifest edits. Never promote
|
|
170
|
+
// this map to a process cache: tool/environment epochs change Go authority.
|
|
171
|
+
// Fixed variable strings do not freeze GOENV or a dispatched Go executable.
|
|
172
|
+
// Requalify their actual native evidence before every syntax hit; missing
|
|
173
|
+
// environment authority permits a fresh parse only, never positive reuse.
|
|
174
|
+
// WARNING (#1720): diagnostic names are per caller, not a syntax/cache input.
|
|
175
|
+
// Shared views must forward their current label to every failed native read.
|
|
147
176
|
const cache = new Map();
|
|
148
|
-
|
|
149
|
-
|
|
177
|
+
const environment = { ...env };
|
|
178
|
+
let toolWitness;
|
|
179
|
+
const reader = {
|
|
180
|
+
read(dir, diagnosticPlugin = pluginName) {
|
|
150
181
|
OwnedSynchronousProcess_1.OwnedSynchronousProcess.checkpoint();
|
|
151
182
|
const resolved = node_path_1.default.resolve(dir);
|
|
152
|
-
const
|
|
183
|
+
const manifest = node_path_1.default.join(resolved, "go.mod");
|
|
184
|
+
let bytes;
|
|
185
|
+
try {
|
|
186
|
+
bytes = node_fs_1.default.readFileSync(manifest);
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
if (error.code === "ENOENT")
|
|
190
|
+
return emptyGoModInfo();
|
|
191
|
+
throw error;
|
|
192
|
+
}
|
|
193
|
+
if (toolWitness === undefined ||
|
|
194
|
+
!PluginBuildEnvironmentWitness_1.PluginBuildEnvironmentWitness.holds(toolWitness)) {
|
|
195
|
+
cache.clear();
|
|
196
|
+
const witness = new Map();
|
|
197
|
+
let launcher;
|
|
198
|
+
try {
|
|
199
|
+
launcher = node_fs_1.default.statSync(goBinary, { bigint: true });
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
// Unavailable metadata cannot qualify optional syntax reuse.
|
|
203
|
+
}
|
|
204
|
+
if (launcher?.isFile() === true)
|
|
205
|
+
PluginBuildEnvironmentWitness_1.PluginBuildEnvironmentWitness.add(witness, goBinary, launcher);
|
|
206
|
+
// GOENV can change toolchain selection without changing env strings.
|
|
207
|
+
// Share its existing native discovery owner; do not scan GOROOT here.
|
|
208
|
+
// Do not launch a missing/unobservable tool twice just to learn that
|
|
209
|
+
// optional cache qualification is unavailable (#1712). The actual
|
|
210
|
+
// mod-edit attempt below still owns its current failure or success.
|
|
211
|
+
const observed = launcher?.isFile() === true
|
|
212
|
+
? GoEnvironmentReading_1.GoEnvironmentReading.read(goBinary, node_os_1.default.tmpdir(), environment, ["GOROOT"], witness, identities)
|
|
213
|
+
: undefined;
|
|
214
|
+
if (typeof observed?.GOROOT === "string" &&
|
|
215
|
+
node_path_1.default.isAbsolute(observed.GOROOT))
|
|
216
|
+
PluginBuildEnvironmentWitness_1.PluginBuildEnvironmentWitness.add(witness, node_path_1.default.join(observed.GOROOT, "bin", process.platform === "win32" ? "go.exe" : "go"));
|
|
217
|
+
const complete = typeof observed?.GOROOT === "string" &&
|
|
218
|
+
node_path_1.default.isAbsolute(observed.GOROOT) &&
|
|
219
|
+
typeof observed.GOENV === "string" &&
|
|
220
|
+
(observed.GOENV === "off" || node_path_1.default.isAbsolute(observed.GOENV));
|
|
221
|
+
toolWitness =
|
|
222
|
+
complete && PluginBuildEnvironmentWitness_1.PluginBuildEnvironmentWitness.holds(witness)
|
|
223
|
+
? witness
|
|
224
|
+
: undefined;
|
|
225
|
+
}
|
|
226
|
+
// UTF-8 decoding is lossy for malformed input. Only identical bytes
|
|
227
|
+
// can share Go syntax, even when Go serializes two inputs identically.
|
|
228
|
+
const byteKey = bytes.toString("base64");
|
|
229
|
+
const cached = cache.get(byteKey);
|
|
153
230
|
if (cached !== undefined) {
|
|
154
231
|
return cached;
|
|
155
232
|
}
|
|
156
|
-
const info = readGoModInfo(resolved, goBinary,
|
|
157
|
-
|
|
233
|
+
const info = readGoModInfo(resolved, goBinary, diagnosticPlugin, environment);
|
|
234
|
+
if (!node_fs_1.default.readFileSync(manifest).equals(bytes))
|
|
235
|
+
throw new Error(`ttsc: go.mod changed while Go was reading ${manifest}`);
|
|
236
|
+
if (toolWitness !== undefined &&
|
|
237
|
+
!PluginBuildEnvironmentWitness_1.PluginBuildEnvironmentWitness.holds(toolWitness))
|
|
238
|
+
throw new Error(`ttsc: Go tool or environment changed while reading ${manifest}`);
|
|
239
|
+
// An unavailable environment observation can still execute a fresh Go
|
|
240
|
+
// parse, but it cannot authorize sharing that result on another call.
|
|
241
|
+
if (toolWitness !== undefined)
|
|
242
|
+
cache.set(byteKey, info);
|
|
158
243
|
return info;
|
|
159
244
|
},
|
|
160
245
|
};
|
|
246
|
+
readers?.set(goBinary, reader);
|
|
247
|
+
return reader;
|
|
161
248
|
}
|
|
162
249
|
SourcePluginWorkspace.createGoModReader = createGoModReader;
|
|
163
250
|
function readGoModInfo(dir, goBinary, pluginName, env) {
|
|
@@ -192,6 +279,7 @@ var SourcePluginWorkspace;
|
|
|
192
279
|
}
|
|
193
280
|
return {
|
|
194
281
|
modulePath: json.Module?.Path ?? null,
|
|
282
|
+
directives: json.Replace ?? [],
|
|
195
283
|
replacements: (json.Replace ?? [])
|
|
196
284
|
.map(jsonReplacementToGoModReplacement)
|
|
197
285
|
.filter((replacement) => replacement !== null),
|
|
@@ -200,6 +288,7 @@ var SourcePluginWorkspace;
|
|
|
200
288
|
function emptyGoModInfo() {
|
|
201
289
|
return {
|
|
202
290
|
modulePath: null,
|
|
291
|
+
directives: [],
|
|
203
292
|
replacements: [],
|
|
204
293
|
};
|
|
205
294
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourcePluginWorkspace.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/SourcePluginWorkspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SourcePluginWorkspace.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/SourcePluginWorkspace.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAE7B,uFAAoF;AACpF,iEAA8D;AAC9D,qDAAkD;AAClD,mFAAgF;AAEhF,mEAAgE;AAChE,uEAAoE;AACpE,yDAAsD;AACtD,+CAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,IAAiB,qBAAqB,CAmhBrC;AAnhBD,WAAiB,qBAAqB;IACpC;;;;;;;;;;;OAWG;IACH,SAAgB,WAAW,CAAC,MAAc,EAAE,OAAe;QACzD,iDAAuB,CAAC,UAAU,EAAE,CAAC;QACrC,iBAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,iBAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;YACzB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,iDAAuB,CAAC,UAAU,EAAE,CAAC;gBACrC,OAAO,IAAA,iDAAuB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAVe,sBAAA,WAAW,cAU1B,CAAA;IAED;;;;;;;;;;;;OAYG;IACH,SAAgB,WAAW,CACzB,UAAkB,EAClB,OAA0B,EAC1B,QAAgB,EAChB,UAAkB,EAClB,GAAsB,EACtB,WAAW,GAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC;QAEvE,0BAA0B,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,gBAAgB,GACpB,UAAU,CAAC,UAAU,KAAK,mBAAmB;YAC3C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrB,iDAAuB,CAAC,UAAU,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBACpD,OAAO,CACL,UAAU,KAAK,IAAI;oBACnB,CAAC,6CAAqB,CAAC,eAAe,CAAC,UAAU,CAAC,CACnD,CAAC;YACJ,CAAC,CAAC;YACJ,CAAC,CAAC,OAAO,CAAC;QACd,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACnC,iDAAuB,CAAC,UAAU,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAA,mCAAgB,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,YAAY,GAAG,gCAAgC,CACnD,gBAAgB,EAChB,WAAW,CACZ,CAAC;QACF,MAAM,YAAY,GAChB,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACtE,MAAM,MAAM,GAAG,UAAU,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC;QACjE,iBAAE,CAAC,aAAa,CAAC,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACnE,8EAA8E;QAC9E,6EAA6E;QAC7E,6EAA6E;QAC7E,oEAAoE;QACpE,MAAM,OAAO,GAAG,IAAA,yBAAW,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YACrD,GAAG,EAAE,UAAU;YACf,QAAQ,EAAE,MAAM;YAChB,GAAG,EAAE,+BAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC;YACxD,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,iDAAuB,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,qBAAqB,CACnB,gDAAgD,UAAU,GAAG,EAC7D,UAAU,EACV,QAAQ,EACR,UAAU,EACV,OAAO,CAAC,KAAK,CACd,CACF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,sDAAsD,UAAU,cAAc,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CACjH,CAAC;QACJ,CAAC;IACH,CAAC;IA7De,sBAAA,WAAW,cA6D1B,CAAA;IAED,SAAS,0BAA0B,CACjC,UAAkB,EAClB,OAA0B,EAC1B,WAAwB,EACxB,UAAkB;QAElB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,UAAU,KAAK,mBAAmB,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QACD,MAAM,kBAAkB,GAAG,UAAU,CAAC,YAAY,CAAC;QACnD,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QACD,MAAM,cAAc,GAAG,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACvE,6CAAqB,CAAC,yBAAyB,CAC7C,kBAAkB,EAClB,cAAc,EACd,UAAU,CACX,CAAC;IACJ,CAAC;IAED,SAAS,gCAAgC,CACvC,OAA0B,EAC1B,WAAwB;QAExB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAC3B,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,mBAAmB,CAClE,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,WAAW,mBAAmB,cAAc,IAAA,mCAAgB,EAAC,QAAQ,CAAC,EAAE;SACzE,CAAC;IACJ,CAAC;IA8DD;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAgB,iBAAiB,CAC/B,QAAgB,EAChB,UAAkB,EAClB,GAAsB,EACtB,OAAkC,EAClC,UAA0C;QAE1C,MAAM,QAAQ,GAAG,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS;YACxB,OAAO;gBACL,IAAI,EAAE,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU,EAAE,EAAE,CAC3C,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC;aACvC,CAAC;QACJ,uEAAuE;QACvE,2EAA2E;QAC3E,8EAA8E;QAC9E,sFAAsF;QACtF,wEAAwE;QACxE,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,8EAA8E;QAC9E,6EAA6E;QAC7E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC3C,MAAM,WAAW,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;QAC/B,IAAI,WAA6D,CAAC;QAClE,MAAM,MAAM,GAAgB;YAC1B,IAAI,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU;gBACrC,iDAAuB,CAAC,UAAU,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC/C,IAAI,KAAa,CAAC;gBAClB,IAAI,CAAC;oBACH,KAAK,GAAG,iBAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;wBACpD,OAAO,cAAc,EAAE,CAAC;oBAC1B,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,IACE,WAAW,KAAK,SAAS;oBACzB,CAAC,6DAA6B,CAAC,KAAK,CAAC,WAAW,CAAC,EACjD,CAAC;oBACD,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,MAAM,OAAO,GAAyC,IAAI,GAAG,EAAE,CAAC;oBAChE,IAAI,QAAoC,CAAC;oBACzC,IAAI,CAAC;wBACH,QAAQ,GAAG,iBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrD,CAAC;oBAAC,MAAM,CAAC;wBACP,6DAA6D;oBAC/D,CAAC;oBACD,IAAI,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI;wBAC7B,6DAA6B,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACjE,qEAAqE;oBACrE,sEAAsE;oBACtE,qEAAqE;oBACrE,kEAAkE;oBAClE,oEAAoE;oBACpE,MAAM,QAAQ,GACZ,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI;wBACzB,CAAC,CAAC,2CAAoB,CAAC,IAAI,CACvB,QAAQ,EACR,iBAAE,CAAC,MAAM,EAAE,EACX,WAAW,EACX,CAAC,QAAQ,CAAC,EACV,OAAO,EACP,UAAU,CACX;wBACH,CAAC,CAAC,SAAS,CAAC;oBAChB,IACE,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ;wBACpC,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAEhC,6DAA6B,CAAC,GAAG,CAC/B,OAAO,EACP,mBAAI,CAAC,IAAI,CACP,QAAQ,CAAC,MAAM,EACf,KAAK,EACL,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAC/C,CACF,CAAC;oBACJ,MAAM,QAAQ,GACZ,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ;wBACpC,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAChC,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;wBAClC,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChE,WAAW;wBACT,QAAQ,IAAI,6DAA6B,CAAC,KAAK,CAAC,OAAO,CAAC;4BACtD,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,SAAS,CAAC;gBAClB,CAAC;gBACD,oEAAoE;gBACpE,uEAAuE;gBACvE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,MAAM,IAAI,GAAG,aAAa,CACxB,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,WAAW,CACZ,CAAC;gBACF,IAAI,CAAC,iBAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC1C,MAAM,IAAI,KAAK,CACb,6CAA6C,QAAQ,EAAE,CACxD,CAAC;gBACJ,IACE,WAAW,KAAK,SAAS;oBACzB,CAAC,6DAA6B,CAAC,KAAK,CAAC,WAAW,CAAC;oBAEjD,MAAM,IAAI,KAAK,CACb,sDAAsD,QAAQ,EAAE,CACjE,CAAC;gBACJ,sEAAsE;gBACtE,sEAAsE;gBACtE,IAAI,WAAW,KAAK,SAAS;oBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACxD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC;QACF,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IA5He,sBAAA,iBAAiB,oBA4HhC,CAAA;IAED,SAAS,aAAa,CACpB,GAAW,EACX,QAAgB,EAChB,UAAkB,EAClB,GAAsB;QAEtB,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,cAAc,EAAE,CAAC;QAC1B,CAAC;QAED,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,uCAAuC;QACvC,MAAM,GAAG,GAAG,iBAAE,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,IAAA,yBAAW,EACxB,QAAQ,EACR,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAClD;YACE,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,GAAG,EAAE,+BAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC;YACxD,WAAW,EAAE,IAAI;SAClB,CACF,CAAC;QACF,iDAAuB,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,qBAAqB,CACnB,8BAA8B,UAAU,GAAG,EAC3C,UAAU,EACV,QAAQ,EACR,GAAG,EACH,MAAM,CAAC,KAAK,CACb,CACF,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,oCAAoC,UAAU,cAAc,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAC7F,CAAC;QACJ,CAAC;QAED,IAAI,IAAe,CAAC;QACpB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAc,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,oCAAoC,UAAU,4BAC5C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI;YACrC,UAAU,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC9B,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;iBAC/B,GAAG,CAAC,iCAAiC,CAAC;iBACtC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,KAAK,IAAI,CAAC;SACjD,CAAC;IACJ,CAAC;IAED,SAAS,cAAc;QACrB,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,SAAS,iCAAiC,CACxC,WAAsD;QAEtD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;QACzC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,UAAU;SACX,CAAC;IACJ,CAAC;IAED,SAAS,yBAAyB,CAChC,IAAuB,EACvB,WAAwB;QAExB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,iDAAuB,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YACpD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAgB,qBAAqB,CACnC,MAAc,EACd,UAAkB,EAClB,QAAgB,EAChB,GAAW,EACX,KAAY;QAEZ,IACG,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAClD,CAAC,CAAC,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EACvD,CAAC;YACD,OAAO,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,SAAS,MAAM,oBAAoB,QAAQ,OAAO,GAAG,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACnF,CAAC;IAde,sBAAA,qBAAqB,wBAcpC,CAAA;IAED,SAAS,0BAA0B,CAAC,UAAkB;QACpD,OAAO,CACL,0BAA0B,UAAU,mDAAmD;YACvF,mFAAmF;YACnF,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAgB,mBAAmB;QACjC,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,iBAAE,CAAC,UAAU,CAAC,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAZe,sBAAA,mBAAmB,sBAYlC,CAAA;IAED,SAAS,YAAY,CAAC,GAAW,EAAE,GAAa;QAC9C,iDAAuB,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,iBAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,iDAAuB,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9C,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,iDAAuB,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,IAAI,+BAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC9D,YAAY,CAAC,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,uCAAuC,CAAC;AACtE,CAAC,EAnhBgB,qBAAqB,aAArB,qBAAqB,GAArB,qBAAqB,QAmhBrC"}
|