@ttsc/unplugin 0.31.4 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/core/bridge/TtscProjectRecord.d.cts +8 -0
- package/lib/core/bridge/TtscProjectRecord.d.mts +8 -0
- package/lib/core/bridge/TtscProjectRecord.d.ts +8 -0
- package/lib/core/bridge/readProjectRecordFile.js +5 -1
- package/lib/core/bridge/readProjectRecordFile.js.map +1 -1
- package/lib/core/bridge/readProjectRecordFile.mjs +5 -1
- package/lib/core/bridge/readProjectRecordFile.mjs.map +1 -1
- package/lib/core/observer/WatchScope.d.cts +3 -3
- package/lib/core/observer/WatchScope.d.mts +3 -3
- package/lib/core/observer/WatchScope.d.ts +3 -3
- package/lib/core/observer/createInputObserver.d.cts +7 -8
- package/lib/core/observer/createInputObserver.d.mts +7 -8
- package/lib/core/observer/createInputObserver.d.ts +7 -8
- package/lib/core/observer/createInputObserver.js +7 -8
- package/lib/core/observer/createInputObserver.js.map +1 -1
- package/lib/core/observer/createInputObserver.mjs +7 -8
- package/lib/core/observer/createInputObserver.mjs.map +1 -1
- package/lib/core/transform/envelope/generationCaseSensitivity.d.cts +32 -0
- package/lib/core/transform/envelope/generationCaseSensitivity.d.mts +32 -0
- package/lib/core/transform/envelope/generationCaseSensitivity.d.ts +32 -0
- package/lib/core/transform/envelope/generationCaseSensitivity.js +39 -0
- package/lib/core/transform/envelope/generationCaseSensitivity.js.map +1 -0
- package/lib/core/transform/envelope/generationCaseSensitivity.mjs +37 -0
- package/lib/core/transform/envelope/generationCaseSensitivity.mjs.map +1 -0
- package/lib/core/transform/envelope/selectExternalInputPaths.js +2 -1
- package/lib/core/transform/envelope/selectExternalInputPaths.js.map +1 -1
- package/lib/core/transform/envelope/selectExternalInputPaths.mjs +2 -1
- package/lib/core/transform/envelope/selectExternalInputPaths.mjs.map +1 -1
- package/lib/core/transform/envelope/selectNotifiableAbsentInputs.js +2 -1
- package/lib/core/transform/envelope/selectNotifiableAbsentInputs.js.map +1 -1
- package/lib/core/transform/envelope/selectNotifiableAbsentInputs.mjs +2 -1
- package/lib/core/transform/envelope/selectNotifiableAbsentInputs.mjs.map +1 -1
- package/lib/core/transform/filesystem/createHostPathIdentityContext.d.cts +9 -1
- package/lib/core/transform/filesystem/createHostPathIdentityContext.d.mts +9 -1
- package/lib/core/transform/filesystem/createHostPathIdentityContext.d.ts +9 -1
- package/lib/core/transform/filesystem/createHostPathIdentityContext.js +10 -2
- package/lib/core/transform/filesystem/createHostPathIdentityContext.js.map +1 -1
- package/lib/core/transform/filesystem/createHostPathIdentityContext.mjs +10 -2
- package/lib/core/transform/filesystem/createHostPathIdentityContext.mjs.map +1 -1
- package/lib/core/transform/generation/captureTransformGeneration.js +10 -2
- package/lib/core/transform/generation/captureTransformGeneration.js.map +1 -1
- package/lib/core/transform/generation/captureTransformGeneration.mjs +10 -2
- package/lib/core/transform/generation/captureTransformGeneration.mjs.map +1 -1
- package/lib/core/transform/generation/selectPersistentHostInputs.js +2 -1
- package/lib/core/transform/generation/selectPersistentHostInputs.js.map +1 -1
- package/lib/core/transform/generation/selectPersistentHostInputs.mjs +2 -1
- package/lib/core/transform/generation/selectPersistentHostInputs.mjs.map +1 -1
- package/lib/core/transform/inputs/nativeInputPredicateState.js.map +1 -1
- package/lib/core/transform/inputs/nativeInputPredicateState.mjs.map +1 -1
- package/lib/core/transform/tracker/broker/watchBrokerSource.js +14 -0
- package/lib/core/transform/tracker/broker/watchBrokerSource.js.map +1 -1
- package/lib/core/transform/tracker/broker/watchBrokerSource.mjs +14 -0
- package/lib/core/transform/tracker/broker/watchBrokerSource.mjs.map +1 -1
- package/lib/core/transform/tracker/createHostInputMutationTracker.d.cts +7 -1
- package/lib/core/transform/tracker/createHostInputMutationTracker.d.mts +7 -1
- package/lib/core/transform/tracker/createHostInputMutationTracker.d.ts +7 -1
- package/lib/core/transform/tracker/createHostInputMutationTracker.js +28 -2
- package/lib/core/transform/tracker/createHostInputMutationTracker.js.map +1 -1
- package/lib/core/transform/tracker/createHostInputMutationTracker.mjs +28 -2
- package/lib/core/transform/tracker/createHostInputMutationTracker.mjs.map +1 -1
- package/lib/core/transform/tracker/createProjectMutationTracker.d.cts +10 -7
- package/lib/core/transform/tracker/createProjectMutationTracker.d.mts +10 -7
- package/lib/core/transform/tracker/createProjectMutationTracker.d.ts +10 -7
- package/lib/core/transform/tracker/createProjectMutationTracker.js +82 -38
- package/lib/core/transform/tracker/createProjectMutationTracker.js.map +1 -1
- package/lib/core/transform/tracker/createProjectMutationTracker.mjs +82 -38
- package/lib/core/transform/tracker/createProjectMutationTracker.mjs.map +1 -1
- package/lib/core/transform/transformTtsc.js +5 -1
- package/lib/core/transform/transformTtsc.js.map +1 -1
- package/lib/core/transform/transformTtsc.mjs +5 -1
- package/lib/core/transform/transformTtsc.mjs.map +1 -1
- package/lib/core/transform/watch/TtscWatchInputBaseline.d.cts +2 -1
- package/lib/core/transform/watch/TtscWatchInputBaseline.d.mts +2 -1
- package/lib/core/transform/watch/TtscWatchInputBaseline.d.ts +2 -1
- package/lib/core/transform/watch/isWatchInputKeyBaseline.js.map +1 -1
- package/lib/core/transform/watch/isWatchInputKeyBaseline.mjs.map +1 -1
- package/lib/core/transform/watch/notifyProjectRecord.d.cts +3 -4
- package/lib/core/transform/watch/notifyProjectRecord.d.mts +3 -4
- package/lib/core/transform/watch/notifyProjectRecord.d.ts +3 -4
- package/lib/core/transform/watch/notifyProjectRecord.js +5 -4
- package/lib/core/transform/watch/notifyProjectRecord.js.map +1 -1
- package/lib/core/transform/watch/notifyProjectRecord.mjs +5 -4
- package/lib/core/transform/watch/notifyProjectRecord.mjs.map +1 -1
- package/lib/core/transform/watch/recordedDependencyWitnesses.d.cts +30 -0
- package/lib/core/transform/watch/recordedDependencyWitnesses.d.mts +30 -0
- package/lib/core/transform/watch/recordedDependencyWitnesses.d.ts +30 -0
- package/lib/core/transform/watch/recordedDependencyWitnesses.js +51 -0
- package/lib/core/transform/watch/recordedDependencyWitnesses.js.map +1 -0
- package/lib/core/transform/watch/recordedDependencyWitnesses.mjs +49 -0
- package/lib/core/transform/watch/recordedDependencyWitnesses.mjs.map +1 -0
- package/lib/core/transform/watch/watchInputEvidenceMatchesBaseline.d.cts +1 -2
- package/lib/core/transform/watch/watchInputEvidenceMatchesBaseline.d.mts +1 -2
- package/lib/core/transform/watch/watchInputEvidenceMatchesBaseline.d.ts +1 -2
- package/lib/core/transform/watch/watchInputEvidenceMatchesBaseline.js +1 -2
- package/lib/core/transform/watch/watchInputEvidenceMatchesBaseline.js.map +1 -1
- package/lib/core/transform/watch/watchInputEvidenceMatchesBaseline.mjs +1 -2
- package/lib/core/transform/watch/watchInputEvidenceMatchesBaseline.mjs.map +1 -1
- package/lib/core/tsconfig/TsconfigReadTransaction.d.cts +11 -8
- package/lib/core/tsconfig/TsconfigReadTransaction.d.mts +11 -8
- package/lib/core/tsconfig/TsconfigReadTransaction.d.ts +11 -8
- package/lib/core/tsconfig/TsconfigReadTransaction.js +11 -8
- package/lib/core/tsconfig/TsconfigReadTransaction.js.map +1 -1
- package/lib/core/tsconfig/TsconfigReadTransaction.mjs +11 -8
- package/lib/core/tsconfig/TsconfigReadTransaction.mjs.map +1 -1
- package/lib/core/tsconfig/findDeclaredCompilerOption.d.cts +3 -2
- package/lib/core/tsconfig/findDeclaredCompilerOption.d.mts +3 -2
- package/lib/core/tsconfig/findDeclaredCompilerOption.d.ts +3 -2
- package/lib/core/tsconfig/findDeclaredCompilerOption.js +3 -2
- package/lib/core/tsconfig/findDeclaredCompilerOption.js.map +1 -1
- package/lib/core/tsconfig/findDeclaredCompilerOption.mjs +3 -2
- package/lib/core/tsconfig/findDeclaredCompilerOption.mjs.map +1 -1
- package/lib/core/tsconfig/findDeclaredFileSpecs.d.cts +3 -2
- package/lib/core/tsconfig/findDeclaredFileSpecs.d.mts +3 -2
- package/lib/core/tsconfig/findDeclaredFileSpecs.d.ts +3 -2
- package/lib/core/tsconfig/findDeclaredFileSpecs.js +3 -2
- package/lib/core/tsconfig/findDeclaredFileSpecs.js.map +1 -1
- package/lib/core/tsconfig/findDeclaredFileSpecs.mjs +3 -2
- package/lib/core/tsconfig/findDeclaredFileSpecs.mjs.map +1 -1
- package/lib/core/tsconfig/findDeclaredPaths.d.cts +3 -3
- package/lib/core/tsconfig/findDeclaredPaths.d.mts +3 -3
- package/lib/core/tsconfig/findDeclaredPaths.d.ts +3 -3
- package/lib/core/tsconfig/findDeclaredPaths.js +2 -2
- package/lib/core/tsconfig/findDeclaredPaths.mjs +2 -2
- package/lib/core/tsconfig/findDeclaredValue.d.cts +2 -1
- package/lib/core/tsconfig/findDeclaredValue.d.mts +2 -1
- package/lib/core/tsconfig/findDeclaredValue.d.ts +2 -1
- package/lib/core/tsconfig/findDeclaredValue.js +2 -1
- package/lib/core/tsconfig/findDeclaredValue.js.map +1 -1
- package/lib/core/tsconfig/findDeclaredValue.mjs +2 -1
- package/lib/core/tsconfig/findDeclaredValue.mjs.map +1 -1
- package/lib/core/tsconfig/readEffectiveTsconfigTemplateCompilerOptions.js +1 -1
- package/lib/core/tsconfig/readEffectiveTsconfigTemplateCompilerOptions.mjs +1 -1
- package/lib/core/tsconfig/readEffectiveTsconfigTemplateFileSpecs.d.cts +2 -2
- package/lib/core/tsconfig/readEffectiveTsconfigTemplateFileSpecs.d.mts +2 -2
- package/lib/core/tsconfig/readEffectiveTsconfigTemplateFileSpecs.d.ts +2 -2
- package/lib/core/tsconfig/readEffectiveTsconfigTemplateFileSpecs.js +2 -2
- package/lib/core/tsconfig/readEffectiveTsconfigTemplateFileSpecs.mjs +2 -2
- package/lib/core/tsconfig/readProjectMembershipPolicy.d.cts +3 -3
- package/lib/core/tsconfig/readProjectMembershipPolicy.d.mts +3 -3
- package/lib/core/tsconfig/readProjectMembershipPolicy.d.ts +3 -3
- package/lib/core/tsconfig/readProjectMembershipPolicy.js +4 -4
- package/lib/core/tsconfig/readProjectMembershipPolicy.mjs +4 -4
- package/package.json +4 -4
- package/src/core/bridge/TtscProjectRecord.ts +9 -0
- package/src/core/bridge/readProjectRecordFile.ts +5 -1
- package/src/core/observer/WatchScope.ts +3 -3
- package/src/core/observer/createInputObserver.ts +7 -8
- package/src/core/transform/envelope/generationCaseSensitivity.ts +46 -0
- package/src/core/transform/envelope/selectExternalInputPaths.ts +5 -1
- package/src/core/transform/envelope/selectNotifiableAbsentInputs.ts +5 -1
- package/src/core/transform/filesystem/createHostPathIdentityContext.ts +9 -1
- package/src/core/transform/generation/captureTransformGeneration.ts +10 -0
- package/src/core/transform/generation/selectPersistentHostInputs.ts +5 -1
- package/src/core/transform/inputs/nativeInputPredicateState.ts +1 -3
- package/src/core/transform/tracker/broker/watchBrokerSource.ts +14 -0
- package/src/core/transform/tracker/createHostInputMutationTracker.ts +28 -1
- package/src/core/transform/tracker/createProjectMutationTracker.ts +91 -42
- package/src/core/transform/transformTtsc.ts +5 -1
- package/src/core/transform/watch/TtscWatchInputBaseline.ts +2 -1
- package/src/core/transform/watch/isWatchInputKeyBaseline.ts +4 -2
- package/src/core/transform/watch/notifyProjectRecord.ts +5 -4
- package/src/core/transform/watch/recordedDependencyWitnesses.ts +50 -0
- package/src/core/transform/watch/watchInputEvidenceMatchesBaseline.ts +1 -2
- package/src/core/tsconfig/TsconfigReadTransaction.ts +11 -8
- package/src/core/tsconfig/findDeclaredCompilerOption.ts +3 -2
- package/src/core/tsconfig/findDeclaredFileSpecs.ts +3 -2
- package/src/core/tsconfig/findDeclaredPaths.ts +3 -3
- package/src/core/tsconfig/findDeclaredValue.ts +2 -1
- package/src/core/tsconfig/readEffectiveTsconfigTemplateCompilerOptions.ts +1 -1
- package/src/core/tsconfig/readEffectiveTsconfigTemplateFileSpecs.ts +2 -2
- package/src/core/tsconfig/readProjectMembershipPolicy.ts +4 -4
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { TtscTransformHooks } from "./TtscTransformHooks.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* The dependency-only paths the project record of `tsconfig` carries
|
|
4
|
+
* (`TtscProjectRecord.dependencies`), for a transform cache that has no witness
|
|
5
|
+
* list of its own yet.
|
|
6
|
+
*
|
|
7
|
+
* A compile learns a plugin-reported dependency path only from its own
|
|
8
|
+
* envelope, and one it had no witness for compiles again
|
|
9
|
+
* (`onlyLearnedCompileFacts`). A transform cache keeps the paths in memory
|
|
10
|
+
* (`TRANSFORM_CACHE_DEPENDENCY_WITNESSES`), so every new cache, a dev-server
|
|
11
|
+
* start or a build process, compiled such a project twice (samchon/ttsc#1743).
|
|
12
|
+
* The record the previous process wrote names them. They only say what to read:
|
|
13
|
+
* the capture still witnesses each path afresh, a path the compile no longer
|
|
14
|
+
* reports costs one read, and one the record does not name is retried as
|
|
15
|
+
* before.
|
|
16
|
+
*
|
|
17
|
+
* @param project The host's record directories, when it keeps records.
|
|
18
|
+
* @param tsconfig The project's tsconfig, as the adapter names it.
|
|
19
|
+
* @returns The record's paths, or `undefined` when no readable record names
|
|
20
|
+
* any.
|
|
21
|
+
* @evidence contracts/common.md#principled-implementation The record is the host's persisted project state, written from a completed generation; its paths are hints that the capture re-witnesses, never certified state.
|
|
22
|
+
* @evidence contracts/common.md#clear-and-simple-design One reader selects the first readable record of the host's directories, in the order the writer tries them.
|
|
23
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts No witness or digest is taken from the record; an unreadable or absent record supplies nothing.
|
|
24
|
+
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain the doubled first compile, the hint semantics and the absent cases.
|
|
25
|
+
* @evidence contracts/portability.md#os-neutral-implementation Record paths come from the host's own directories through `projectRecordFile`.
|
|
26
|
+
* @evidence contracts/performance.md#efficient-algorithms At most two record reads and JSON parses, only when a cache has no witness list for the key.
|
|
27
|
+
* @evidence contracts/performance.md#reuse-equivalent-work A new process reuses the dependency names the last generation's record holds instead of compiling once to learn them.
|
|
28
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The returned list belongs to the caller; nothing is retained here.
|
|
29
|
+
*/
|
|
30
|
+
export declare function recordedDependencyWitnesses(project: TtscTransformHooks["project"], tsconfig: string): readonly string[] | undefined;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { TtscTransformHooks } from "./TtscTransformHooks";
|
|
2
|
+
/**
|
|
3
|
+
* The dependency-only paths the project record of `tsconfig` carries
|
|
4
|
+
* (`TtscProjectRecord.dependencies`), for a transform cache that has no witness
|
|
5
|
+
* list of its own yet.
|
|
6
|
+
*
|
|
7
|
+
* A compile learns a plugin-reported dependency path only from its own
|
|
8
|
+
* envelope, and one it had no witness for compiles again
|
|
9
|
+
* (`onlyLearnedCompileFacts`). A transform cache keeps the paths in memory
|
|
10
|
+
* (`TRANSFORM_CACHE_DEPENDENCY_WITNESSES`), so every new cache, a dev-server
|
|
11
|
+
* start or a build process, compiled such a project twice (samchon/ttsc#1743).
|
|
12
|
+
* The record the previous process wrote names them. They only say what to read:
|
|
13
|
+
* the capture still witnesses each path afresh, a path the compile no longer
|
|
14
|
+
* reports costs one read, and one the record does not name is retried as
|
|
15
|
+
* before.
|
|
16
|
+
*
|
|
17
|
+
* @param project The host's record directories, when it keeps records.
|
|
18
|
+
* @param tsconfig The project's tsconfig, as the adapter names it.
|
|
19
|
+
* @returns The record's paths, or `undefined` when no readable record names
|
|
20
|
+
* any.
|
|
21
|
+
* @evidence contracts/common.md#principled-implementation The record is the host's persisted project state, written from a completed generation; its paths are hints that the capture re-witnesses, never certified state.
|
|
22
|
+
* @evidence contracts/common.md#clear-and-simple-design One reader selects the first readable record of the host's directories, in the order the writer tries them.
|
|
23
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts No witness or digest is taken from the record; an unreadable or absent record supplies nothing.
|
|
24
|
+
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain the doubled first compile, the hint semantics and the absent cases.
|
|
25
|
+
* @evidence contracts/portability.md#os-neutral-implementation Record paths come from the host's own directories through `projectRecordFile`.
|
|
26
|
+
* @evidence contracts/performance.md#efficient-algorithms At most two record reads and JSON parses, only when a cache has no witness list for the key.
|
|
27
|
+
* @evidence contracts/performance.md#reuse-equivalent-work A new process reuses the dependency names the last generation's record holds instead of compiling once to learn them.
|
|
28
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The returned list belongs to the caller; nothing is retained here.
|
|
29
|
+
*/
|
|
30
|
+
export declare function recordedDependencyWitnesses(project: TtscTransformHooks["project"], tsconfig: string): readonly string[] | undefined;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var projectRecordFile = require('../../bridge/projectRecordFile.js');
|
|
4
|
+
var readProjectRecordFile = require('../../bridge/readProjectRecordFile.js');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The dependency-only paths the project record of `tsconfig` carries
|
|
8
|
+
* (`TtscProjectRecord.dependencies`), for a transform cache that has no witness
|
|
9
|
+
* list of its own yet.
|
|
10
|
+
*
|
|
11
|
+
* A compile learns a plugin-reported dependency path only from its own
|
|
12
|
+
* envelope, and one it had no witness for compiles again
|
|
13
|
+
* (`onlyLearnedCompileFacts`). A transform cache keeps the paths in memory
|
|
14
|
+
* (`TRANSFORM_CACHE_DEPENDENCY_WITNESSES`), so every new cache, a dev-server
|
|
15
|
+
* start or a build process, compiled such a project twice (samchon/ttsc#1743).
|
|
16
|
+
* The record the previous process wrote names them. They only say what to read:
|
|
17
|
+
* the capture still witnesses each path afresh, a path the compile no longer
|
|
18
|
+
* reports costs one read, and one the record does not name is retried as
|
|
19
|
+
* before.
|
|
20
|
+
*
|
|
21
|
+
* @param project The host's record directories, when it keeps records.
|
|
22
|
+
* @param tsconfig The project's tsconfig, as the adapter names it.
|
|
23
|
+
* @returns The record's paths, or `undefined` when no readable record names
|
|
24
|
+
* any.
|
|
25
|
+
* @evidence contracts/common.md#principled-implementation The record is the host's persisted project state, written from a completed generation; its paths are hints that the capture re-witnesses, never certified state.
|
|
26
|
+
* @evidence contracts/common.md#clear-and-simple-design One reader selects the first readable record of the host's directories, in the order the writer tries them.
|
|
27
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts No witness or digest is taken from the record; an unreadable or absent record supplies nothing.
|
|
28
|
+
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain the doubled first compile, the hint semantics and the absent cases.
|
|
29
|
+
* @evidence contracts/portability.md#os-neutral-implementation Record paths come from the host's own directories through `projectRecordFile`.
|
|
30
|
+
* @evidence contracts/performance.md#efficient-algorithms At most two record reads and JSON parses, only when a cache has no witness list for the key.
|
|
31
|
+
* @evidence contracts/performance.md#reuse-equivalent-work A new process reuses the dependency names the last generation's record holds instead of compiling once to learn them.
|
|
32
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The returned list belongs to the caller; nothing is retained here.
|
|
33
|
+
*/
|
|
34
|
+
function recordedDependencyWitnesses(project, tsconfig) {
|
|
35
|
+
if (project === undefined)
|
|
36
|
+
return undefined;
|
|
37
|
+
for (const directory of [
|
|
38
|
+
project.toolDirectory,
|
|
39
|
+
...(project.fallbackToolDirectory === undefined
|
|
40
|
+
? []
|
|
41
|
+
: [project.fallbackToolDirectory]),
|
|
42
|
+
]) {
|
|
43
|
+
const record = readProjectRecordFile.readProjectRecordFile(projectRecordFile.projectRecordFile(directory, tsconfig));
|
|
44
|
+
if (record !== undefined)
|
|
45
|
+
return record.dependencies;
|
|
46
|
+
}
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
exports.recordedDependencyWitnesses = recordedDependencyWitnesses;
|
|
51
|
+
//# sourceMappingURL=recordedDependencyWitnesses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recordedDependencyWitnesses.js","sources":["../../../../src/core/transform/watch/recordedDependencyWitnesses.ts"],"sourcesContent":[null],"names":["readProjectRecordFile","projectRecordFile"],"mappings":";;;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACG,SAAU,2BAA2B,CACzC,OAAsC,EACtC,QAAgB,EAAA;IAEhB,IAAI,OAAO,KAAK,SAAS;AAAE,QAAA,OAAO,SAAS;IAC3C,KAAK,MAAM,SAAS,IAAI;AACtB,QAAA,OAAO,CAAC,aAAa;AACrB,QAAA,IAAI,OAAO,CAAC,qBAAqB,KAAK;AACpC,cAAE;AACF,cAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACrC,KAAA,EAAE;QACD,MAAM,MAAM,GAAGA,2CAAqB,CAClCC,mCAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CACvC;QACD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,YAAY;IACtD;AACA,IAAA,OAAO,SAAS;AAClB;;;;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { projectRecordFile } from '../../bridge/projectRecordFile.mjs';
|
|
2
|
+
import { readProjectRecordFile } from '../../bridge/readProjectRecordFile.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The dependency-only paths the project record of `tsconfig` carries
|
|
6
|
+
* (`TtscProjectRecord.dependencies`), for a transform cache that has no witness
|
|
7
|
+
* list of its own yet.
|
|
8
|
+
*
|
|
9
|
+
* A compile learns a plugin-reported dependency path only from its own
|
|
10
|
+
* envelope, and one it had no witness for compiles again
|
|
11
|
+
* (`onlyLearnedCompileFacts`). A transform cache keeps the paths in memory
|
|
12
|
+
* (`TRANSFORM_CACHE_DEPENDENCY_WITNESSES`), so every new cache, a dev-server
|
|
13
|
+
* start or a build process, compiled such a project twice (samchon/ttsc#1743).
|
|
14
|
+
* The record the previous process wrote names them. They only say what to read:
|
|
15
|
+
* the capture still witnesses each path afresh, a path the compile no longer
|
|
16
|
+
* reports costs one read, and one the record does not name is retried as
|
|
17
|
+
* before.
|
|
18
|
+
*
|
|
19
|
+
* @param project The host's record directories, when it keeps records.
|
|
20
|
+
* @param tsconfig The project's tsconfig, as the adapter names it.
|
|
21
|
+
* @returns The record's paths, or `undefined` when no readable record names
|
|
22
|
+
* any.
|
|
23
|
+
* @evidence contracts/common.md#principled-implementation The record is the host's persisted project state, written from a completed generation; its paths are hints that the capture re-witnesses, never certified state.
|
|
24
|
+
* @evidence contracts/common.md#clear-and-simple-design One reader selects the first readable record of the host's directories, in the order the writer tries them.
|
|
25
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts No witness or digest is taken from the record; an unreadable or absent record supplies nothing.
|
|
26
|
+
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain the doubled first compile, the hint semantics and the absent cases.
|
|
27
|
+
* @evidence contracts/portability.md#os-neutral-implementation Record paths come from the host's own directories through `projectRecordFile`.
|
|
28
|
+
* @evidence contracts/performance.md#efficient-algorithms At most two record reads and JSON parses, only when a cache has no witness list for the key.
|
|
29
|
+
* @evidence contracts/performance.md#reuse-equivalent-work A new process reuses the dependency names the last generation's record holds instead of compiling once to learn them.
|
|
30
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The returned list belongs to the caller; nothing is retained here.
|
|
31
|
+
*/
|
|
32
|
+
function recordedDependencyWitnesses(project, tsconfig) {
|
|
33
|
+
if (project === undefined)
|
|
34
|
+
return undefined;
|
|
35
|
+
for (const directory of [
|
|
36
|
+
project.toolDirectory,
|
|
37
|
+
...(project.fallbackToolDirectory === undefined
|
|
38
|
+
? []
|
|
39
|
+
: [project.fallbackToolDirectory]),
|
|
40
|
+
]) {
|
|
41
|
+
const record = readProjectRecordFile(projectRecordFile(directory, tsconfig));
|
|
42
|
+
if (record !== undefined)
|
|
43
|
+
return record.dependencies;
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { recordedDependencyWitnesses };
|
|
49
|
+
//# sourceMappingURL=recordedDependencyWitnesses.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recordedDependencyWitnesses.mjs","sources":["../../../../src/core/transform/watch/recordedDependencyWitnesses.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACG,SAAU,2BAA2B,CACzC,OAAsC,EACtC,QAAgB,EAAA;IAEhB,IAAI,OAAO,KAAK,SAAS;AAAE,QAAA,OAAO,SAAS;IAC3C,KAAK,MAAM,SAAS,IAAI;AACtB,QAAA,OAAO,CAAC,aAAa;AACrB,QAAA,IAAI,OAAO,CAAC,qBAAqB,KAAK;AACpC,cAAE;AACF,cAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACrC,KAAA,EAAE;QACD,MAAM,MAAM,GAAG,qBAAqB,CAClC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CACvC;QACD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,YAAY;IACtD;AACA,IAAA,OAAO,SAAS;AAClB;;;;"}
|
|
@@ -5,8 +5,7 @@ import type { TtscWatchInputKeyBaseline } from "./TtscWatchInputKeyBaseline.cjs"
|
|
|
5
5
|
*
|
|
6
6
|
* A codec matches only the facts the baseline actually captured. Native,
|
|
7
7
|
* listing and plugin-tree observations require their optional payloads;
|
|
8
|
-
* membership is a
|
|
9
|
-
* separate project walk and cannot match one path's baseline.
|
|
8
|
+
* membership is a separate project walk and cannot match one path's baseline.
|
|
10
9
|
*
|
|
11
10
|
* @evidence contracts/common.md#principled-implementation Identity and every recorded codec fact must agree with a validated baseline; native predicates additionally require a supported version, stable producer identity, matching raw digest and physical target. Narrow discovery facts and absent optional native/listing/tree payloads cannot establish broader observations.
|
|
12
11
|
* @evidence contracts/common.md#clear-and-simple-design Codec branches reuse the strict baseline guard and native realpath comparator, with one private refinement exposing the broader carrier.
|
|
@@ -5,8 +5,7 @@ import type { TtscWatchInputKeyBaseline } from "./TtscWatchInputKeyBaseline.mjs"
|
|
|
5
5
|
*
|
|
6
6
|
* A codec matches only the facts the baseline actually captured. Native,
|
|
7
7
|
* listing and plugin-tree observations require their optional payloads;
|
|
8
|
-
* membership is a
|
|
9
|
-
* separate project walk and cannot match one path's baseline.
|
|
8
|
+
* membership is a separate project walk and cannot match one path's baseline.
|
|
10
9
|
*
|
|
11
10
|
* @evidence contracts/common.md#principled-implementation Identity and every recorded codec fact must agree with a validated baseline; native predicates additionally require a supported version, stable producer identity, matching raw digest and physical target. Narrow discovery facts and absent optional native/listing/tree payloads cannot establish broader observations.
|
|
12
11
|
* @evidence contracts/common.md#clear-and-simple-design Codec branches reuse the strict baseline guard and native realpath comparator, with one private refinement exposing the broader carrier.
|
|
@@ -5,8 +5,7 @@ import type { TtscWatchInputKeyBaseline } from "./TtscWatchInputKeyBaseline";
|
|
|
5
5
|
*
|
|
6
6
|
* A codec matches only the facts the baseline actually captured. Native,
|
|
7
7
|
* listing and plugin-tree observations require their optional payloads;
|
|
8
|
-
* membership is a
|
|
9
|
-
* separate project walk and cannot match one path's baseline.
|
|
8
|
+
* membership is a separate project walk and cannot match one path's baseline.
|
|
10
9
|
*
|
|
11
10
|
* @evidence contracts/common.md#principled-implementation Identity and every recorded codec fact must agree with a validated baseline; native predicates additionally require a supported version, stable producer identity, matching raw digest and physical target. Narrow discovery facts and absent optional native/listing/tree payloads cannot establish broader observations.
|
|
12
11
|
* @evidence contracts/common.md#clear-and-simple-design Codec branches reuse the strict baseline guard and native realpath comparator, with one private refinement exposing the broader carrier.
|
|
@@ -9,8 +9,7 @@ var isWatchInputKeyBaseline = require('./isWatchInputKeyBaseline.js');
|
|
|
9
9
|
*
|
|
10
10
|
* A codec matches only the facts the baseline actually captured. Native,
|
|
11
11
|
* listing and plugin-tree observations require their optional payloads;
|
|
12
|
-
* membership is a
|
|
13
|
-
* separate project walk and cannot match one path's baseline.
|
|
12
|
+
* membership is a separate project walk and cannot match one path's baseline.
|
|
14
13
|
*
|
|
15
14
|
* @evidence contracts/common.md#principled-implementation Identity and every recorded codec fact must agree with a validated baseline; native predicates additionally require a supported version, stable producer identity, matching raw digest and physical target. Narrow discovery facts and absent optional native/listing/tree payloads cannot establish broader observations.
|
|
16
15
|
* @evidence contracts/common.md#clear-and-simple-design Codec branches reuse the strict baseline guard and native realpath comparator, with one private refinement exposing the broader carrier.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchInputEvidenceMatchesBaseline.js","sources":["../../../../src/core/transform/watch/watchInputEvidenceMatchesBaseline.ts"],"sourcesContent":[null],"names":["isWatchInputKeyBaseline","createHostPathIdentityContext","sameHostInputRealpath"],"mappings":";;;;;;AAOA
|
|
1
|
+
{"version":3,"file":"watchInputEvidenceMatchesBaseline.js","sources":["../../../../src/core/transform/watch/watchInputEvidenceMatchesBaseline.ts"],"sourcesContent":[null],"names":["isWatchInputKeyBaseline","createHostPathIdentityContext","sameHostInputRealpath"],"mappings":"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"}
|
|
@@ -7,8 +7,7 @@ import { isWatchInputKeyBaseline } from './isWatchInputKeyBaseline.mjs';
|
|
|
7
7
|
*
|
|
8
8
|
* A codec matches only the facts the baseline actually captured. Native,
|
|
9
9
|
* listing and plugin-tree observations require their optional payloads;
|
|
10
|
-
* membership is a
|
|
11
|
-
* separate project walk and cannot match one path's baseline.
|
|
10
|
+
* membership is a separate project walk and cannot match one path's baseline.
|
|
12
11
|
*
|
|
13
12
|
* @evidence contracts/common.md#principled-implementation Identity and every recorded codec fact must agree with a validated baseline; native predicates additionally require a supported version, stable producer identity, matching raw digest and physical target. Narrow discovery facts and absent optional native/listing/tree payloads cannot establish broader observations.
|
|
14
13
|
* @evidence contracts/common.md#clear-and-simple-design Codec branches reuse the strict baseline guard and native realpath comparator, with one private refinement exposing the broader carrier.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchInputEvidenceMatchesBaseline.mjs","sources":["../../../../src/core/transform/watch/watchInputEvidenceMatchesBaseline.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAOA
|
|
1
|
+
{"version":3,"file":"watchInputEvidenceMatchesBaseline.mjs","sources":["../../../../src/core/transform/watch/watchInputEvidenceMatchesBaseline.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Share config observations and contextual selections within one synchronous
|
|
2
|
+
* Share config observations and contextual selections within one synchronous
|
|
3
|
+
* read.
|
|
3
4
|
*
|
|
4
5
|
* Lexical paths own parsing and relative extends resolution. Physical paths
|
|
5
6
|
* only guard ancestry cycles. A completed selection can be borrowed when the
|
|
6
7
|
* current ancestors intersect its encountered physical identities exactly as
|
|
7
8
|
* they did originally; otherwise a different cycle cut requires evaluation.
|
|
8
9
|
* Ordered source observations travel with a completed selection, including
|
|
9
|
-
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
10
|
+
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
11
|
+
* inputs.
|
|
10
12
|
*
|
|
11
13
|
* Create a new transaction for each independent freshness observation. This
|
|
12
14
|
* owner neither validates reuse across reads nor supplies compiler diagnostics.
|
|
@@ -74,12 +76,13 @@ export declare class TsconfigReadTransaction {
|
|
|
74
76
|
/**
|
|
75
77
|
* Select one declaration, preserving its lexical directory and observations.
|
|
76
78
|
*
|
|
77
|
-
* An undefined own selection inherits. Null masks inheritance without
|
|
78
|
-
* a value, as an invalid own file list does; a parent ignores that
|
|
79
|
-
* First queries search later bases first; last queries visit
|
|
80
|
-
* The caller's physical ancestor set is copied once and
|
|
81
|
-
* Selectors must preserve the parsed inputs and give the same
|
|
82
|
-
* the same source; query reuse does not repeat their
|
|
79
|
+
* An undefined own selection inherits. Null masks inheritance without
|
|
80
|
+
* supplying a value, as an invalid own file list does; a parent ignores that
|
|
81
|
+
* empty result. First queries search later bases first; last queries visit
|
|
82
|
+
* all bases forward. The caller's physical ancestor set is copied once and
|
|
83
|
+
* never mutated. Selectors must preserve the parsed inputs and give the same
|
|
84
|
+
* declaration for the same source; query reuse does not repeat their
|
|
85
|
+
* incidental effects.
|
|
83
86
|
*
|
|
84
87
|
* @evidence contracts/common.md#principled-implementation A completed answer is reusable only when its encountered physical identities have the same intersection with current ancestry. That preserves every observed cycle decision, including cuts; own declarations and first/last traversal retain lexical origins and key-specific precedence.
|
|
85
88
|
* @evidence contracts/common.md#clear-and-simple-design A query-local visitor owns selection and contextual completed answers; transaction nodes separately share lexical source, identity and edge observations across keys.
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Share config observations and contextual selections within one synchronous
|
|
2
|
+
* Share config observations and contextual selections within one synchronous
|
|
3
|
+
* read.
|
|
3
4
|
*
|
|
4
5
|
* Lexical paths own parsing and relative extends resolution. Physical paths
|
|
5
6
|
* only guard ancestry cycles. A completed selection can be borrowed when the
|
|
6
7
|
* current ancestors intersect its encountered physical identities exactly as
|
|
7
8
|
* they did originally; otherwise a different cycle cut requires evaluation.
|
|
8
9
|
* Ordered source observations travel with a completed selection, including
|
|
9
|
-
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
10
|
+
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
11
|
+
* inputs.
|
|
10
12
|
*
|
|
11
13
|
* Create a new transaction for each independent freshness observation. This
|
|
12
14
|
* owner neither validates reuse across reads nor supplies compiler diagnostics.
|
|
@@ -74,12 +76,13 @@ export declare class TsconfigReadTransaction {
|
|
|
74
76
|
/**
|
|
75
77
|
* Select one declaration, preserving its lexical directory and observations.
|
|
76
78
|
*
|
|
77
|
-
* An undefined own selection inherits. Null masks inheritance without
|
|
78
|
-
* a value, as an invalid own file list does; a parent ignores that
|
|
79
|
-
* First queries search later bases first; last queries visit
|
|
80
|
-
* The caller's physical ancestor set is copied once and
|
|
81
|
-
* Selectors must preserve the parsed inputs and give the same
|
|
82
|
-
* the same source; query reuse does not repeat their
|
|
79
|
+
* An undefined own selection inherits. Null masks inheritance without
|
|
80
|
+
* supplying a value, as an invalid own file list does; a parent ignores that
|
|
81
|
+
* empty result. First queries search later bases first; last queries visit
|
|
82
|
+
* all bases forward. The caller's physical ancestor set is copied once and
|
|
83
|
+
* never mutated. Selectors must preserve the parsed inputs and give the same
|
|
84
|
+
* declaration for the same source; query reuse does not repeat their
|
|
85
|
+
* incidental effects.
|
|
83
86
|
*
|
|
84
87
|
* @evidence contracts/common.md#principled-implementation A completed answer is reusable only when its encountered physical identities have the same intersection with current ancestry. That preserves every observed cycle decision, including cuts; own declarations and first/last traversal retain lexical origins and key-specific precedence.
|
|
85
88
|
* @evidence contracts/common.md#clear-and-simple-design A query-local visitor owns selection and contextual completed answers; transaction nodes separately share lexical source, identity and edge observations across keys.
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Share config observations and contextual selections within one synchronous
|
|
2
|
+
* Share config observations and contextual selections within one synchronous
|
|
3
|
+
* read.
|
|
3
4
|
*
|
|
4
5
|
* Lexical paths own parsing and relative extends resolution. Physical paths
|
|
5
6
|
* only guard ancestry cycles. A completed selection can be borrowed when the
|
|
6
7
|
* current ancestors intersect its encountered physical identities exactly as
|
|
7
8
|
* they did originally; otherwise a different cycle cut requires evaluation.
|
|
8
9
|
* Ordered source observations travel with a completed selection, including
|
|
9
|
-
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
10
|
+
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
11
|
+
* inputs.
|
|
10
12
|
*
|
|
11
13
|
* Create a new transaction for each independent freshness observation. This
|
|
12
14
|
* owner neither validates reuse across reads nor supplies compiler diagnostics.
|
|
@@ -74,12 +76,13 @@ export declare class TsconfigReadTransaction {
|
|
|
74
76
|
/**
|
|
75
77
|
* Select one declaration, preserving its lexical directory and observations.
|
|
76
78
|
*
|
|
77
|
-
* An undefined own selection inherits. Null masks inheritance without
|
|
78
|
-
* a value, as an invalid own file list does; a parent ignores that
|
|
79
|
-
* First queries search later bases first; last queries visit
|
|
80
|
-
* The caller's physical ancestor set is copied once and
|
|
81
|
-
* Selectors must preserve the parsed inputs and give the same
|
|
82
|
-
* the same source; query reuse does not repeat their
|
|
79
|
+
* An undefined own selection inherits. Null masks inheritance without
|
|
80
|
+
* supplying a value, as an invalid own file list does; a parent ignores that
|
|
81
|
+
* empty result. First queries search later bases first; last queries visit
|
|
82
|
+
* all bases forward. The caller's physical ancestor set is copied once and
|
|
83
|
+
* never mutated. Selectors must preserve the parsed inputs and give the same
|
|
84
|
+
* declaration for the same source; query reuse does not repeat their
|
|
85
|
+
* incidental effects.
|
|
83
86
|
*
|
|
84
87
|
* @evidence contracts/common.md#principled-implementation A completed answer is reusable only when its encountered physical identities have the same intersection with current ancestry. That preserves every observed cycle decision, including cuts; own declarations and first/last traversal retain lexical origins and key-specific precedence.
|
|
85
88
|
* @evidence contracts/common.md#clear-and-simple-design A query-local visitor owns selection and contextual completed answers; transaction nodes separately share lexical source, identity and edge observations across keys.
|
|
@@ -8,14 +8,16 @@ var resolveExtendsConfig = require('./resolveExtendsConfig.js');
|
|
|
8
8
|
var resolveRealPath = require('./resolveRealPath.js');
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Share config observations and contextual selections within one synchronous
|
|
11
|
+
* Share config observations and contextual selections within one synchronous
|
|
12
|
+
* read.
|
|
12
13
|
*
|
|
13
14
|
* Lexical paths own parsing and relative extends resolution. Physical paths
|
|
14
15
|
* only guard ancestry cycles. A completed selection can be borrowed when the
|
|
15
16
|
* current ancestors intersect its encountered physical identities exactly as
|
|
16
17
|
* they did originally; otherwise a different cycle cut requires evaluation.
|
|
17
18
|
* Ordered source observations travel with a completed selection, including
|
|
18
|
-
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
19
|
+
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
20
|
+
* inputs.
|
|
19
21
|
*
|
|
20
22
|
* Create a new transaction for each independent freshness observation. This
|
|
21
23
|
* owner neither validates reuse across reads nor supplies compiler diagnostics.
|
|
@@ -96,12 +98,13 @@ class TsconfigReadTransaction {
|
|
|
96
98
|
/**
|
|
97
99
|
* Select one declaration, preserving its lexical directory and observations.
|
|
98
100
|
*
|
|
99
|
-
* An undefined own selection inherits. Null masks inheritance without
|
|
100
|
-
* a value, as an invalid own file list does; a parent ignores that
|
|
101
|
-
* First queries search later bases first; last queries visit
|
|
102
|
-
* The caller's physical ancestor set is copied once and
|
|
103
|
-
* Selectors must preserve the parsed inputs and give the same
|
|
104
|
-
* the same source; query reuse does not repeat their
|
|
101
|
+
* An undefined own selection inherits. Null masks inheritance without
|
|
102
|
+
* supplying a value, as an invalid own file list does; a parent ignores that
|
|
103
|
+
* empty result. First queries search later bases first; last queries visit
|
|
104
|
+
* all bases forward. The caller's physical ancestor set is copied once and
|
|
105
|
+
* never mutated. Selectors must preserve the parsed inputs and give the same
|
|
106
|
+
* declaration for the same source; query reuse does not repeat their
|
|
107
|
+
* incidental effects.
|
|
105
108
|
*
|
|
106
109
|
* @evidence contracts/common.md#principled-implementation A completed answer is reusable only when its encountered physical identities have the same intersection with current ancestry. That preserves every observed cycle decision, including cuts; own declarations and first/last traversal retain lexical origins and key-specific precedence.
|
|
107
110
|
* @evidence contracts/common.md#clear-and-simple-design A query-local visitor owns selection and contextual completed answers; transaction nodes separately share lexical source, identity and edge observations across keys.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TsconfigReadTransaction.js","sources":["../../../src/core/tsconfig/TsconfigReadTransaction.ts"],"sourcesContent":[null],"names":["parseJsonc","tsconfig","resolveRealPath","extendsSpecifiers","resolveExtendsConfig","tsconfigExtendsFileCandidates"],"mappings":";;;;;;;;;AAQA
|
|
1
|
+
{"version":3,"file":"TsconfigReadTransaction.js","sources":["../../../src/core/tsconfig/TsconfigReadTransaction.ts"],"sourcesContent":[null],"names":["parseJsonc","tsconfig","resolveRealPath","extendsSpecifiers","resolveExtendsConfig","tsconfigExtendsFileCandidates"],"mappings":"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"}
|
|
@@ -6,14 +6,16 @@ import { resolveExtendsConfig } from './resolveExtendsConfig.mjs';
|
|
|
6
6
|
import { resolveRealPath } from './resolveRealPath.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Share config observations and contextual selections within one synchronous
|
|
9
|
+
* Share config observations and contextual selections within one synchronous
|
|
10
|
+
* read.
|
|
10
11
|
*
|
|
11
12
|
* Lexical paths own parsing and relative extends resolution. Physical paths
|
|
12
13
|
* only guard ancestry cycles. A completed selection can be borrowed when the
|
|
13
14
|
* current ancestors intersect its encountered physical identities exactly as
|
|
14
15
|
* they did originally; otherwise a different cycle cut requires evaluation.
|
|
15
16
|
* Ordered source observations travel with a completed selection, including
|
|
16
|
-
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
17
|
+
* unresolved file candidates, so reuse preserves the caller's invalidation
|
|
18
|
+
* inputs.
|
|
17
19
|
*
|
|
18
20
|
* Create a new transaction for each independent freshness observation. This
|
|
19
21
|
* owner neither validates reuse across reads nor supplies compiler diagnostics.
|
|
@@ -94,12 +96,13 @@ class TsconfigReadTransaction {
|
|
|
94
96
|
/**
|
|
95
97
|
* Select one declaration, preserving its lexical directory and observations.
|
|
96
98
|
*
|
|
97
|
-
* An undefined own selection inherits. Null masks inheritance without
|
|
98
|
-
* a value, as an invalid own file list does; a parent ignores that
|
|
99
|
-
* First queries search later bases first; last queries visit
|
|
100
|
-
* The caller's physical ancestor set is copied once and
|
|
101
|
-
* Selectors must preserve the parsed inputs and give the same
|
|
102
|
-
* the same source; query reuse does not repeat their
|
|
99
|
+
* An undefined own selection inherits. Null masks inheritance without
|
|
100
|
+
* supplying a value, as an invalid own file list does; a parent ignores that
|
|
101
|
+
* empty result. First queries search later bases first; last queries visit
|
|
102
|
+
* all bases forward. The caller's physical ancestor set is copied once and
|
|
103
|
+
* never mutated. Selectors must preserve the parsed inputs and give the same
|
|
104
|
+
* declaration for the same source; query reuse does not repeat their
|
|
105
|
+
* incidental effects.
|
|
103
106
|
*
|
|
104
107
|
* @evidence contracts/common.md#principled-implementation A completed answer is reusable only when its encountered physical identities have the same intersection with current ancestry. That preserves every observed cycle decision, including cuts; own declarations and first/last traversal retain lexical origins and key-specific precedence.
|
|
105
108
|
* @evidence contracts/common.md#clear-and-simple-design A query-local visitor owns selection and contextual completed answers; transaction nodes separately share lexical source, identity and edge observations across keys.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TsconfigReadTransaction.mjs","sources":["../../../src/core/tsconfig/TsconfigReadTransaction.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAQA
|
|
1
|
+
{"version":3,"file":"TsconfigReadTransaction.mjs","sources":["../../../src/core/tsconfig/TsconfigReadTransaction.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@ import { TsconfigReadTransaction } from "./TsconfigReadTransaction.cjs";
|
|
|
4
4
|
*
|
|
5
5
|
* Own key presence is significant even for null or undefined values; the caller
|
|
6
6
|
* decides whether the selected option value is usable. An optional
|
|
7
|
-
* decoded-source map or graph transaction belongs to one caller read;
|
|
8
|
-
* option searches retain their selectors and physical ancestry
|
|
7
|
+
* decoded-source map or graph transaction belongs to one caller read;
|
|
8
|
+
* independent option searches retain their selectors and physical ancestry
|
|
9
|
+
* contexts.
|
|
9
10
|
*
|
|
10
11
|
* @evidence contracts/common.md#principled-implementation
|
|
11
12
|
* A wrapper preserves key presence through the generic selector, so the own
|
|
@@ -4,8 +4,9 @@ import { TsconfigReadTransaction } from "./TsconfigReadTransaction.mjs";
|
|
|
4
4
|
*
|
|
5
5
|
* Own key presence is significant even for null or undefined values; the caller
|
|
6
6
|
* decides whether the selected option value is usable. An optional
|
|
7
|
-
* decoded-source map or graph transaction belongs to one caller read;
|
|
8
|
-
* option searches retain their selectors and physical ancestry
|
|
7
|
+
* decoded-source map or graph transaction belongs to one caller read;
|
|
8
|
+
* independent option searches retain their selectors and physical ancestry
|
|
9
|
+
* contexts.
|
|
9
10
|
*
|
|
10
11
|
* @evidence contracts/common.md#principled-implementation
|
|
11
12
|
* A wrapper preserves key presence through the generic selector, so the own
|
|
@@ -4,8 +4,9 @@ import { TsconfigReadTransaction } from "./TsconfigReadTransaction";
|
|
|
4
4
|
*
|
|
5
5
|
* Own key presence is significant even for null or undefined values; the caller
|
|
6
6
|
* decides whether the selected option value is usable. An optional
|
|
7
|
-
* decoded-source map or graph transaction belongs to one caller read;
|
|
8
|
-
* option searches retain their selectors and physical ancestry
|
|
7
|
+
* decoded-source map or graph transaction belongs to one caller read;
|
|
8
|
+
* independent option searches retain their selectors and physical ancestry
|
|
9
|
+
* contexts.
|
|
9
10
|
*
|
|
10
11
|
* @evidence contracts/common.md#principled-implementation
|
|
11
12
|
* A wrapper preserves key presence through the generic selector, so the own
|
|
@@ -7,8 +7,9 @@ var findDeclaredValue = require('./findDeclaredValue.js');
|
|
|
7
7
|
*
|
|
8
8
|
* Own key presence is significant even for null or undefined values; the caller
|
|
9
9
|
* decides whether the selected option value is usable. An optional
|
|
10
|
-
* decoded-source map or graph transaction belongs to one caller read;
|
|
11
|
-
* option searches retain their selectors and physical ancestry
|
|
10
|
+
* decoded-source map or graph transaction belongs to one caller read;
|
|
11
|
+
* independent option searches retain their selectors and physical ancestry
|
|
12
|
+
* contexts.
|
|
12
13
|
*
|
|
13
14
|
* @evidence contracts/common.md#principled-implementation
|
|
14
15
|
* A wrapper preserves key presence through the generic selector, so the own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findDeclaredCompilerOption.js","sources":["../../../src/core/tsconfig/findDeclaredCompilerOption.ts"],"sourcesContent":[null],"names":["findDeclaredValue"],"mappings":";;;;AAGA
|
|
1
|
+
{"version":3,"file":"findDeclaredCompilerOption.js","sources":["../../../src/core/tsconfig/findDeclaredCompilerOption.ts"],"sourcesContent":[null],"names":["findDeclaredValue"],"mappings":";;;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCG;SACa,0BAA0B,CACxC,QAAgB,EAChB,GAAW,EACX,OAAwD,EAAA;IAExD,MAAM,QAAQ,GAAGA,mCAAiB,CAChC,QAAQ,EACR,CAAC,MAAM,KAAI;QACT,MAAM,OAAO,GAAI;AACd,aAAA,eAAe;QAClB,OAAO,OAAO,OAAO,KAAK,QAAQ;AAChC,YAAA,OAAO,KAAK,IAAI;AAChB,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACvB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG;cAC/C,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;cACrB,SAAS;IACf,CAAC,EACD,IAAI,GAAG,EAAE,EACT,SAAS,EACT,OAAO,CACR;IACD,OAAO,QAAQ,KAAK;AAClB,UAAE;AACF,UAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;AAChE;;;;"}
|
|
@@ -5,8 +5,9 @@ import { findDeclaredValue } from './findDeclaredValue.mjs';
|
|
|
5
5
|
*
|
|
6
6
|
* Own key presence is significant even for null or undefined values; the caller
|
|
7
7
|
* decides whether the selected option value is usable. An optional
|
|
8
|
-
* decoded-source map or graph transaction belongs to one caller read;
|
|
9
|
-
* option searches retain their selectors and physical ancestry
|
|
8
|
+
* decoded-source map or graph transaction belongs to one caller read;
|
|
9
|
+
* independent option searches retain their selectors and physical ancestry
|
|
10
|
+
* contexts.
|
|
10
11
|
*
|
|
11
12
|
* @evidence contracts/common.md#principled-implementation
|
|
12
13
|
* A wrapper preserves key presence through the generic selector, so the own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findDeclaredCompilerOption.mjs","sources":["../../../src/core/tsconfig/findDeclaredCompilerOption.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA
|
|
1
|
+
{"version":3,"file":"findDeclaredCompilerOption.mjs","sources":["../../../src/core/tsconfig/findDeclaredCompilerOption.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCG;SACa,0BAA0B,CACxC,QAAgB,EAChB,GAAW,EACX,OAAwD,EAAA;IAExD,MAAM,QAAQ,GAAG,iBAAiB,CAChC,QAAQ,EACR,CAAC,MAAM,KAAI;QACT,MAAM,OAAO,GAAI;AACd,aAAA,eAAe;QAClB,OAAO,OAAO,OAAO,KAAK,QAAQ;AAChC,YAAA,OAAO,KAAK,IAAI;AAChB,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACvB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG;cAC/C,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;cACrB,SAAS;IACf,CAAC,EACD,IAAI,GAAG,EAAE,EACT,SAAS,EACT,OAAO,CACR;IACD,OAAO,QAAQ,KAAK;AAClB,UAAE;AACF,UAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;AAChE;;;;"}
|
|
@@ -10,8 +10,9 @@ import { TsconfigReadTransaction } from "./TsconfigReadTransaction.cjs";
|
|
|
10
10
|
* anchored at the named declaring config, including independent link aliases.
|
|
11
11
|
*
|
|
12
12
|
* @returns The list and its directory, undefined when no array is selected, or
|
|
13
|
-
* null when the root config cannot be read as an object. A supplied
|
|
14
|
-
* belongs to this freshness observation; later reads require a
|
|
13
|
+
* null when the root config cannot be read as an object. A supplied
|
|
14
|
+
* transaction belongs to this freshness observation; later reads require a
|
|
15
|
+
* fresh owner.
|
|
15
16
|
* @evidence contracts/common.md#principled-implementation
|
|
16
17
|
* Own invalid values stop inheritance at that node. Forward inherited
|
|
17
18
|
* traversal keeps the last array and ignores empty selections, preserving
|